diff --git a/.env.example b/.env.example index 132eccf2..d4346c92 100644 --- a/.env.example +++ b/.env.example @@ -33,3 +33,26 @@ API_KEY_HMAC_SECRET= # Session max age in seconds — defaults to 28800 (8 hours) if unset (optional) # SESSION_MAX_AGE=28800 + +# ── SSO / OIDC (optional) ──────────────────────────────────────────────────── +# Set all three required vars to enable a single OIDC provider via env. +# Requires NEOBOARD_EDITION=enterprise. +# For multiple providers, use the Admin UI (Settings > Authentication). + +# Required (all four must be set to activate SSO) +# NEOBOARD_EDITION=enterprise +# OIDC_ISSUER=https://myorg.okta.com +# OIDC_CLIENT_ID=neoboard +# OIDC_CLIENT_SECRET=your-client-secret + +# Optional +# OIDC_DISPLAY_NAME=Company SSO +# OIDC_SCOPES=openid profile email +# OIDC_CLAIM_KEY=groups +# OIDC_ADMIN_VALUE=neoboard-admins +# OIDC_CREATOR_VALUE=neoboard-editors +# OIDC_READER_VALUE=neoboard-viewers +# OIDC_AUTO_PROVISION=true +# OIDC_DEFAULT_ROLE=creator +# OIDC_ENFORCE_SSO=false + diff --git a/.github/sync-public-exclude b/.github/sync-public-exclude new file mode 100644 index 00000000..51da8207 --- /dev/null +++ b/.github/sync-public-exclude @@ -0,0 +1,7 @@ +# Paths excluded from the public mirror by sync-public.yml. +# Each line maps to a --path argument passed to git filter-repo --invert-paths. +# +# To add a new exclusion: +# 1. Add the path here +# 2. Add a matching --path line in .github/workflows/sync-public.yml +enterprise/ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba187b08..650da73e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,7 @@ on: - 'component/**' - 'connection/**' - 'cli/**' + - 'enterprise/**' - 'sonar-project.properties' - 'Dockerfile' - '.github/workflows/ci.yml' @@ -20,6 +21,7 @@ on: - 'component/**' - 'connection/**' - 'cli/**' + - 'enterprise/**' - 'sonar-project.properties' - 'Dockerfile' - '.github/workflows/ci.yml' @@ -27,6 +29,9 @@ on: - 'package-lock.json' workflow_dispatch: +permissions: + contents: read + concurrency: group: ci-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true @@ -126,12 +131,17 @@ jobs: CONN_PID=$! cd cli && npm run test:coverage & CLI_PID=$! + if [ -d enterprise ]; then + cd enterprise && npm run test & + ENT_PID=$! + fi FAIL=0 wait $APP_PID || FAIL=1 wait $COMP_PID || FAIL=1 wait $CONN_PID || FAIL=1 wait $CLI_PID || FAIL=1 + [ -n "${ENT_PID:-}" ] && { wait $ENT_PID || FAIL=1; } exit $FAIL env: POSTGRES_HOST: localhost diff --git a/.github/workflows/sync-public.yml b/.github/workflows/sync-public.yml new file mode 100644 index 00000000..a3fd85bd --- /dev/null +++ b/.github/workflows/sync-public.yml @@ -0,0 +1,37 @@ +name: Sync to Public Mirror + +# This workflow runs in the PRIVATE repo (neoboard-private) and pushes +# a filtered copy (without enterprise/) to the public repo (neoboard). +# +# Required secret: PUBLIC_REPO_TOKEN — a GitHub PAT with repo push access +# to alfredo1996/neoboard. + +on: + push: + branches: [main, dev] + workflow_dispatch: + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Checkout private repo (full history) + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install git-filter-repo + run: pip install git-filter-repo + + - name: Remove enterprise/ from history + run: | + git filter-repo \ + --force \ + --invert-paths \ + --path enterprise/ + + - name: Push to public mirror + run: | + git remote add public \ + https://x-access-token:${{ secrets.PUBLIC_REPO_TOKEN }}@github.com/alfredo1996/neoboard.git + git push public HEAD:refs/heads/${{ github.ref_name }} --force diff --git a/app/drizzle/migrations/0004_busy_champions.sql b/app/drizzle/migrations/0004_busy_champions.sql new file mode 100644 index 00000000..4c4fc6ed --- /dev/null +++ b/app/drizzle/migrations/0004_busy_champions.sql @@ -0,0 +1,19 @@ +CREATE TYPE "public"."sso_protocol" AS ENUM('oidc');--> statement-breakpoint +CREATE TABLE "sso_provider" ( + "id" text PRIMARY KEY NOT NULL, + "tenant_id" text DEFAULT 'default' NOT NULL, + "name" text NOT NULL, + "protocol" "sso_protocol" DEFAULT 'oidc' NOT NULL, + "issuer" text NOT NULL, + "client_id" text NOT NULL, + "client_secret_encrypted" text NOT NULL, + "scopes" text DEFAULT 'openid profile email' NOT NULL, + "claim_mappings" jsonb, + "auto_provision" boolean DEFAULT true NOT NULL, + "default_role" "user_role" DEFAULT 'creator' NOT NULL, + "enforce_sso" boolean DEFAULT false NOT NULL, + "enabled" boolean DEFAULT true NOT NULL, + "created_at" timestamp DEFAULT now(), + "updated_at" timestamp DEFAULT now(), + CONSTRAINT "sso_provider_tenant_issuer_unique" UNIQUE("tenant_id","issuer") +); diff --git a/app/drizzle/migrations/meta/0004_snapshot.json b/app/drizzle/migrations/meta/0004_snapshot.json new file mode 100644 index 00000000..de4664c0 --- /dev/null +++ b/app/drizzle/migrations/meta/0004_snapshot.json @@ -0,0 +1,876 @@ +{ + "id": "6869ca7d-5077-4d3d-92c9-fcf233a11441", + "prevId": "cdcef0ae-9c28-4d19-bd70-51caab211a45", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.account": { + "name": "account", + "schema": "", + "columns": { + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "providerAccountId": { + "name": "providerAccountId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "token_type": { + "name": "token_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "session_state": { + "name": "session_state", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "account_userId_user_id_fk": { + "name": "account_userId_user_id_fk", + "tableFrom": "account", + "tableTo": "user", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.api_key": { + "name": "api_key", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'default'" + }, + "key_hash": { + "name": "key_hash", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "last_used_at": { + "name": "last_used_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "api_key_userId_user_id_fk": { + "name": "api_key_userId_user_id_fk", + "tableFrom": "api_key", + "tableTo": "user", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "api_key_key_hash_unique": { + "name": "api_key_key_hash_unique", + "nullsNotDistinct": false, + "columns": ["key_hash"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.connection": { + "name": "connection", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "connection_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "configEncrypted": { + "name": "configEncrypted", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updatedAt": { + "name": "updatedAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "connection_userId_user_id_fk": { + "name": "connection_userId_user_id_fk", + "tableFrom": "connection", + "tableTo": "user", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.dashboard_share": { + "name": "dashboard_share", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "dashboardId": { + "name": "dashboardId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'default'" + }, + "role": { + "name": "role", + "type": "share_role", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "dashboard_share_dashboardId_dashboard_id_fk": { + "name": "dashboard_share_dashboardId_dashboard_id_fk", + "tableFrom": "dashboard_share", + "tableTo": "dashboard", + "columnsFrom": ["dashboardId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "dashboard_share_userId_user_id_fk": { + "name": "dashboard_share_userId_user_id_fk", + "tableFrom": "dashboard_share", + "tableTo": "user", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.dashboard": { + "name": "dashboard", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "layoutJson": { + "name": "layoutJson", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"version\":2,\"pages\":[{\"id\":\"page-1\",\"title\":\"Page 1\",\"widgets\":[],\"gridLayout\":[]}]}'::jsonb" + }, + "thumbnailJson": { + "name": "thumbnailJson", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "isPublic": { + "name": "isPublic", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updatedAt": { + "name": "updatedAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_by": { + "name": "updated_by", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "dashboard_userId_user_id_fk": { + "name": "dashboard_userId_user_id_fk", + "tableFrom": "dashboard", + "tableTo": "user", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "dashboard_updated_by_user_id_fk": { + "name": "dashboard_updated_by_user_id_fk", + "tableFrom": "dashboard", + "tableTo": "user", + "columnsFrom": ["updated_by"], + "columnsTo": ["id"], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.session": { + "name": "session", + "schema": "", + "columns": { + "sessionToken": { + "name": "sessionToken", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "userId": { + "name": "userId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "session_userId_user_id_fk": { + "name": "session_userId_user_id_fk", + "tableFrom": "session", + "tableTo": "user", + "columnsFrom": ["userId"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.sso_provider": { + "name": "sso_provider", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "protocol": { + "name": "protocol", + "type": "sso_protocol", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'oidc'" + }, + "issuer": { + "name": "issuer", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "client_id": { + "name": "client_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "client_secret_encrypted": { + "name": "client_secret_encrypted", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'openid profile email'" + }, + "claim_mappings": { + "name": "claim_mappings", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "auto_provision": { + "name": "auto_provision", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "default_role": { + "name": "default_role", + "type": "user_role", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'creator'" + }, + "enforce_sso": { + "name": "enforce_sso", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "sso_provider_tenant_issuer_unique": { + "name": "sso_provider_tenant_issuer_unique", + "nullsNotDistinct": false, + "columns": ["tenant_id", "issuer"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user": { + "name": "user", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "emailVerified": { + "name": "emailVerified", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "passwordHash": { + "name": "passwordHash", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "role": { + "name": "role", + "type": "user_role", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'creator'" + }, + "can_write": { + "name": "can_write", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "force_password_change": { + "name": "force_password_change", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "passwordChangedAt": { + "name": "passwordChangedAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "disabledAt": { + "name": "disabledAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "lastLoginAt": { + "name": "lastLoginAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'default'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "user_email_tenant_unique": { + "name": "user_email_tenant_unique", + "nullsNotDistinct": false, + "columns": ["email", "tenant_id"] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.verificationToken": { + "name": "verificationToken", + "schema": "", + "columns": { + "identifier": { + "name": "identifier", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.widget_template": { + "name": "widget_template", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tags": { + "name": "tags", + "type": "text[]", + "primaryKey": false, + "notNull": false, + "default": "'{}'" + }, + "chartType": { + "name": "chartType", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "connectorType": { + "name": "connectorType", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "connectionId": { + "name": "connectionId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "query": { + "name": "query", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "params": { + "name": "params", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "settings": { + "name": "settings", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "previewImageUrl": { + "name": "previewImageUrl", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "createdBy": { + "name": "createdBy", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'default'" + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updatedAt": { + "name": "updatedAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "widget_template_createdBy_user_id_fk": { + "name": "widget_template_createdBy_user_id_fk", + "tableFrom": "widget_template", + "tableTo": "user", + "columnsFrom": ["createdBy"], + "columnsTo": ["id"], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.connection_type": { + "name": "connection_type", + "schema": "public", + "values": ["neo4j", "postgresql"] + }, + "public.share_role": { + "name": "share_role", + "schema": "public", + "values": ["viewer", "editor"] + }, + "public.sso_protocol": { + "name": "sso_protocol", + "schema": "public", + "values": ["oidc"] + }, + "public.user_role": { + "name": "user_role", + "schema": "public", + "values": ["admin", "creator", "reader"] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} diff --git a/app/drizzle/migrations/meta/_journal.json b/app/drizzle/migrations/meta/_journal.json index 4279b030..8fa55f73 100644 --- a/app/drizzle/migrations/meta/_journal.json +++ b/app/drizzle/migrations/meta/_journal.json @@ -29,6 +29,13 @@ "when": 1778003055667, "tag": "0003_perfect_paibok", "breakpoints": true + }, + { + "idx": 4, + "version": "7", + "when": 1778119327484, + "tag": "0004_busy_champions", + "breakpoints": true } ] } diff --git a/app/e2e/api-docs.spec.ts b/app/e2e/api-docs.spec.ts index 79b9af8a..d811ae05 100644 --- a/app/e2e/api-docs.spec.ts +++ b/app/e2e/api-docs.spec.ts @@ -1,7 +1,9 @@ import { test, expect, ALICE } from "./fixtures"; test.describe("API docs — /api/docs and /api/openapi.json", () => { - test("GET /api/openapi.json returns valid OpenAPI spec", async ({ request }) => { + test("GET /api/openapi.json returns valid OpenAPI spec", async ({ + request, + }) => { const res = await request.get("/api/openapi.json"); expect(res.status()).toBe(200); @@ -15,9 +17,13 @@ test.describe("API docs — /api/docs and /api/openapi.json", () => { expect(body.components.securitySchemes).toHaveProperty("BearerAuth"); }); - test("GET /api/openapi.json sets CORS header", async ({ request }) => { + test("GET /api/openapi.json does not set wildcard CORS header", async ({ + request, + }) => { + // Wildcard CORS was removed in #689 (security hardening). + // The OpenAPI endpoint no longer sets access-control-allow-origin. const res = await request.get("/api/openapi.json"); - expect(res.headers()["access-control-allow-origin"]).toBe("*"); + expect(res.headers()["access-control-allow-origin"]).toBeUndefined(); }); test("GET /api/docs returns Swagger UI HTML page", async ({ request }) => { @@ -31,28 +37,47 @@ test.describe("API docs — /api/docs and /api/openapi.json", () => { expect(body).toContain("NeoBoard"); }); - test("/api/docs page renders Swagger UI in browser", async ({ authPage, page }) => { + test("/api/docs page renders Swagger UI in browser", async ({ + authPage, + page, + }) => { await authPage.login(ALICE.email, ALICE.password); await page.goto("/api/docs"); // Swagger UI injects this class once it mounts (use first() — Swagger renders 2 elements with this class) - await expect(page.locator(".swagger-ui").first()).toBeVisible({ timeout: 15_000 }); + await expect(page.locator(".swagger-ui").first()).toBeVisible({ + timeout: 15_000, + }); // The spec title should appear in the rendered UI - await expect(page.getByRole("heading", { name: "NeoBoard API" })).toBeVisible({ timeout: 15_000 }); + await expect( + page.getByRole("heading", { name: "NeoBoard API" }), + ).toBeVisible({ timeout: 15_000 }); }); test("/api/docs shows all resource sections", async ({ authPage, page }) => { await authPage.login(ALICE.email, ALICE.password); await page.goto("/api/docs"); - await expect(page.locator(".swagger-ui").first()).toBeVisible({ timeout: 15_000 }); + await expect(page.locator(".swagger-ui").first()).toBeVisible({ + timeout: 15_000, + }); // Each tag should render as a section header link (Swagger UI renders tags as links) - await expect(page.getByRole("link", { name: "Connections", exact: true })).toBeVisible(); - await expect(page.getByRole("link", { name: "Dashboards", exact: true })).toBeVisible(); - await expect(page.getByRole("link", { name: "Query", exact: true })).toBeVisible(); - await expect(page.getByRole("link", { name: "Users", exact: true })).toBeVisible(); - await expect(page.getByRole("link", { name: "API Keys", exact: true })).toBeVisible(); + await expect( + page.getByRole("link", { name: "Connections", exact: true }), + ).toBeVisible(); + await expect( + page.getByRole("link", { name: "Dashboards", exact: true }), + ).toBeVisible(); + await expect( + page.getByRole("link", { name: "Query", exact: true }), + ).toBeVisible(); + await expect( + page.getByRole("link", { name: "Users", exact: true }), + ).toBeVisible(); + await expect( + page.getByRole("link", { name: "API Keys", exact: true }), + ).toBeVisible(); }); }); diff --git a/app/e2e/auth-states.spec.ts b/app/e2e/auth-states.spec.ts index b989deaa..74ff5b7e 100644 --- a/app/e2e/auth-states.spec.ts +++ b/app/e2e/auth-states.spec.ts @@ -6,7 +6,7 @@ test.describe("Login — uncovered states", () => { await page.getByLabel("Email").waitFor({ state: "visible" }); await page.getByLabel("Email").fill("wrong@example.com"); await page.getByLabel("Password").fill("wrongpassword"); - await page.getByRole("button", { name: "Sign in" }).click(); + await page.getByRole("button", { name: "Sign in", exact: true }).click(); await expect(page.getByText("Invalid email or password")).toBeVisible({ timeout: 10_000, }); @@ -23,7 +23,7 @@ test.describe("Login — uncovered states", () => { await expect(page.getByLabel("Email")).toBeVisible(); await expect(page.getByLabel("Password")).toBeVisible(); await expect( - page.getByRole("button", { name: "Sign in" }) + page.getByRole("button", { name: "Sign in", exact: true }) ).toBeVisible(); await expect(page.getByRole("link", { name: "Sign up" })).toBeVisible(); }); diff --git a/app/e2e/auth.spec.ts b/app/e2e/auth.spec.ts index b1cdf0a9..e1c83b03 100644 --- a/app/e2e/auth.spec.ts +++ b/app/e2e/auth.spec.ts @@ -45,7 +45,7 @@ test.describe("Authentication", () => { // Re-login — should land back on / via callbackUrl await page.getByLabel("Email").fill(ALICE.email); await page.getByLabel("Password").fill(ALICE.password); - await page.getByRole("button", { name: "Sign in" }).click(); + await page.getByRole("button", { name: "Sign in", exact: true }).click(); await expect(page).toHaveURL("/", { timeout: 15_000 }); await expect(page.getByRole("button", { name: "Dashboards" })).toBeVisible({ @@ -223,7 +223,7 @@ test.describe.serial("Force password change", () => { await page.getByLabel("Email").waitFor({ state: "visible" }); await page.getByLabel("Email").fill(email); await page.getByLabel("Password").fill(password); - await page.getByRole("button", { name: "Sign in" }).click(); + await page.getByRole("button", { name: "Sign in", exact: true }).click(); await page.waitForLoadState("networkidle"); } diff --git a/app/e2e/form-widget.spec.ts b/app/e2e/form-widget.spec.ts index edd3562d..e3f78992 100644 --- a/app/e2e/form-widget.spec.ts +++ b/app/e2e/form-widget.spec.ts @@ -571,7 +571,7 @@ test.describe("Write permission enforcement", () => { await page.getByLabel("Email").waitFor({ state: "visible" }); await page.getByLabel("Email").fill(ALICE.email); await page.getByLabel("Password").fill(ALICE.password); - await page.getByRole("button", { name: "Sign in" }).click(); + await page.getByRole("button", { name: "Sign in", exact: true }).click(); await page.waitForURL("/", { timeout: 15_000 }); // Create a creator user (can_write defaults to true) @@ -665,7 +665,7 @@ test.describe("Write permission enforcement", () => { await page.getByLabel("Email").waitFor({ state: "visible" }); await page.getByLabel("Email").fill(ALICE.email); await page.getByLabel("Password").fill(ALICE.password); - await page.getByRole("button", { name: "Sign in" }).click(); + await page.getByRole("button", { name: "Sign in", exact: true }).click(); await page.waitForURL("/", { timeout: 15_000 }); await page.request.delete(`/api/dashboards/${dashboardId}`); await context.close(); diff --git a/app/e2e/global-setup.ts b/app/e2e/global-setup.ts index c120a998..cba441d9 100644 --- a/app/e2e/global-setup.ts +++ b/app/e2e/global-setup.ts @@ -22,17 +22,22 @@ const TEST_NEXTAUTH_SECRET = const TEST_API_KEY_HMAC_SECRET = "a1f3c9e2d47b6a85f0e12d3c4b5a6978f0e1d2c3b4a59687f0e1d2c3b4a59687"; -/** Encrypt JSON using the same algorithm as the app (aes-256-gcm). */ -function encryptJson(data: unknown): string { +/** Encrypt a plaintext string using the same algorithm as the app (aes-256-gcm). */ +function encryptString(plaintext: string): string { const key = Buffer.from(TEST_ENCRYPTION_KEY, "hex"); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv("aes-256-gcm", key, iv); - let encrypted = cipher.update(JSON.stringify(data), "utf8"); + let encrypted = cipher.update(plaintext, "utf8"); encrypted = Buffer.concat([encrypted, cipher.final()]); const authTag = cipher.getAuthTag(); return `${iv.toString("base64")}:${authTag.toString("base64")}:${encrypted.toString("base64")}`; } +/** Encrypt JSON using the same algorithm as the app (aes-256-gcm). */ +function encryptJson(data: unknown): string { + return encryptString(JSON.stringify(data)); +} + /** Bind to port 0 to let the OS assign an available port, then release it. */ function getFreePort(): Promise { return new Promise((resolve, reject) => { @@ -108,15 +113,54 @@ async function updateConnectionConfigs( } } +const TEST_SSO_PROVIDER_ID = "keycloak-e2e"; + +/** Seed an SSO provider pointing at the Keycloak test container. */ +async function seedSsoProvider(connectionString: string, keycloakPort: number) { + const issuer = `http://localhost:${keycloakPort}/realms/neoboard-test`; + const clientSecret = encryptString("neoboard-test-secret-e2e"); + const claimMappings = JSON.stringify({ + claimKey: "groups", + adminValue: "neoboard-admins", + creatorValue: "neoboard-editors", + readerValue: "neoboard-viewers", + }); + + const sql = postgres(connectionString, { max: 1, idle_timeout: 5 }); + try { + await sql` + INSERT INTO "sso_provider" ( + "id", "tenant_id", "name", "protocol", "issuer", + "client_id", "client_secret_encrypted", "scopes", + "claim_mappings", "auto_provision", "default_role", + "enforce_sso", "enabled", "created_at", "updated_at" + ) VALUES ( + ${TEST_SSO_PROVIDER_ID}, 'default', 'Keycloak Test', 'oidc', + ${issuer}, 'neoboard', ${clientSecret}, + 'openid profile email', ${claimMappings}::jsonb, + true, 'creator', false, true, NOW(), NOW() + ) + ON CONFLICT DO NOTHING + `; + } finally { + await sql.end(); + } +} + export default async function globalSetup() { const dockerRoot = path.resolve(__dirname, "..", "..", "docker"); const pgInitSql = path.join(dockerRoot, "postgres", "init-test.sql"); const neo4jInitCypher = path.join(dockerRoot, "neo4j", "init.cypher"); + const keycloakRealmJson = path.join( + dockerRoot, + "keycloak", + "neoboard-test-realm.json", + ); console.log("\n⏳ Starting test containers...\n"); - // Start both containers in parallel to minimise total startup time. - const [pgContainer, neo4jContainer] = await Promise.all([ + // Start all containers in parallel to minimise total startup time. + const [pgContainer, neo4jContainer, keycloakContainer] = await Promise.all([ new GenericContainer("postgres:16-alpine") .withEnvironment({ POSTGRES_USER: "neoboard", @@ -159,17 +203,36 @@ export default async function globalSetup() { .withWaitStrategy(Wait.forLogMessage(/Started\./, 1)) .withStartupTimeout(120_000) .start(), + + new GenericContainer("quay.io/keycloak/keycloak:24.0") + .withEnvironment({ + KEYCLOAK_ADMIN: "admin", + KEYCLOAK_ADMIN_PASSWORD: "admin123", + }) + .withExposedPorts(8080) + .withCopyFilesToContainer([ + { + source: keycloakRealmJson, + target: "/opt/keycloak/data/import/neoboard-test-realm.json", + }, + ]) + .withCommand(["start-dev", "--import-realm"]) + .withWaitStrategy(Wait.forLogMessage(/Listening on/, 1)) + .withStartupTimeout(120_000) + .start(), ]); const pgHost = pgContainer.getHost(); const pgPort = pgContainer.getMappedPort(5432); const neo4jBoltPort = neo4jContainer.getMappedPort(7687); const neo4jHttpPort = neo4jContainer.getMappedPort(7474); + const keycloakPort = keycloakContainer.getMappedPort(8080); console.log(`✅ PostgreSQL ready at port ${pgPort}`); console.log( `✅ Neo4j ready at bolt port ${neo4jBoltPort}, http port ${neo4jHttpPort}`, ); + console.log(`✅ Keycloak ready at port ${keycloakPort}`); // Seed Neo4j with the init.cypher via cypher-shell inside the container. console.log("⏳ Seeding Neo4j with movies dataset..."); @@ -194,6 +257,7 @@ export default async function globalSetup() { JSON.stringify({ pgContainerId: pgContainer.getId(), neo4jContainerId: neo4jContainer.getId(), + keycloakContainerId: keycloakContainer.getId(), }), ); @@ -212,6 +276,14 @@ export default async function globalSetup() { console.log("⏳ Updating seeded connection configs with encrypted values..."); await updateConnectionConfigs(pgHost, pgPort, neo4jBoltPort); + // ── Seed SSO provider pointing at the Keycloak test container ────────── + console.log("⏳ Seeding SSO provider for Keycloak..."); + await seedSsoProvider( + `postgresql://neoboard:neoboard@${pgHost}:${pgPort}/neoboard`, + keycloakPort, + ); + console.log("✅ SSO provider seeded"); + // ── Resolve the server port ────────────────────────────────────────────── // Use TEST_SERVER_PORT when set; otherwise default to 3100 to stay in sync // with playwright.config.ts which uses the same env var and the same default. @@ -233,6 +305,11 @@ export default async function globalSetup() { `TEST_NEO4J_BOLT_URL=bolt://localhost:${neo4jBoltPort}`, `TEST_NEO4J_HTTP_PORT=${neo4jHttpPort}`, `TEST_PG_PORT=${pgPort}`, + `# Keycloak SSO test container`, + `TEST_KEYCLOAK_URL=http://localhost:${keycloakPort}`, + `TEST_KEYCLOAK_ISSUER=http://localhost:${keycloakPort}/realms/neoboard-test`, + `TEST_KEYCLOAK_CLIENT_ID=neoboard`, + `TEST_KEYCLOAK_CLIENT_SECRET=neoboard-test-secret-e2e`, "", ].join("\n"); @@ -248,6 +325,10 @@ export default async function globalSetup() { process.env.TEST_SERVER_PORT = String(serverPort); process.env.TEST_NEO4J_BOLT_URL = `bolt://localhost:${neo4jBoltPort}`; process.env.TEST_PG_PORT = String(pgPort); + process.env.TEST_KEYCLOAK_URL = `http://localhost:${keycloakPort}`; + process.env.TEST_KEYCLOAK_ISSUER = `http://localhost:${keycloakPort}/realms/neoboard-test`; + process.env.TEST_KEYCLOAK_CLIENT_ID = "neoboard"; + process.env.TEST_KEYCLOAK_CLIENT_SECRET = "neoboard-test-secret-e2e"; // ── Start the Next.js server on a dynamically allocated port ──────────── // Env vars are passed directly to the process — .env.local is never touched. @@ -290,6 +371,20 @@ export default async function globalSetup() { await waitForPort(serverPort, 60_000); console.log(`✅ Next.js server ready on port ${serverPort}`); + // ── Pre-warm critical routes ─────────────────────────────────────────── + // In dev mode webpack compiles routes on first request (3-6s). If the + // first E2E test hits /login before compilation finishes, React hasn't + // hydrated and the form's onSubmit handler isn't attached — causing the + // login to fall back to a GET and stay on /login. Pre-warming ensures + // these routes are compiled and ready before any test runs. + console.log("⏳ Pre-warming critical routes..."); + // Warm sequentially — /login first (most tests start here), then the + // dashboard and API routes that the first wave of tests will hit. + await warmRoute(serverPort, "/login"); + await warmRoute(serverPort, "/api/auth/bootstrap-status"); + await warmRoute(serverPort, "/api/auth/session"); + console.log("✅ Routes pre-warmed"); + // ── Initialize E2E coverage collection (nextcov) ──────────────────────── if (process.env.E2E_COVERAGE) { console.log("⏳ Initializing E2E coverage collection..."); @@ -323,3 +418,21 @@ function waitForPort(port: number, timeoutMs: number): Promise { check(); }); } + +/** + * Trigger a GET request to a route so webpack compiles it ahead of time. + * Non-fatal — if the request fails the route will compile on first test hit. + */ +function warmRoute(port: number, routePath: string): Promise { + return new Promise((resolve) => { + const req = http.get(`http://localhost:${port}${routePath}`, (res) => { + res.resume(); + resolve(); + }); + req.on("error", () => resolve()); + req.setTimeout(15_000, () => { + req.destroy(); + resolve(); + }); + }); +} diff --git a/app/e2e/global-teardown.ts b/app/e2e/global-teardown.ts index f64f1963..176b2ba8 100644 --- a/app/e2e/global-teardown.ts +++ b/app/e2e/global-teardown.ts @@ -27,7 +27,9 @@ export default async function globalTeardown() { } if (isServiceContainerMode) { - console.log("CI service containers — skipping docker rm (GitHub manages them)."); + console.log( + "CI service containers — skipping docker rm (GitHub manages them).", + ); } else { if (!fs.existsSync(STATE_FILE)) { console.log("No container state file found, nothing to clean up."); @@ -35,6 +37,7 @@ export default async function globalTeardown() { const state = JSON.parse(fs.readFileSync(STATE_FILE, "utf-8")) as { pgContainerId: string; neo4jContainerId: string; + keycloakContainerId?: string; }; for (const [name, id] of Object.entries(state)) { @@ -60,9 +63,15 @@ export default async function globalTeardown() { } // Clean up temp files - try { fs.unlinkSync(STATE_FILE); } catch {} - try { fs.unlinkSync(SERVER_PID_FILE); } catch {} - try { fs.unlinkSync(ENV_FILE); } catch {} + try { + fs.unlinkSync(STATE_FILE); + } catch {} + try { + fs.unlinkSync(SERVER_PID_FILE); + } catch {} + try { + fs.unlinkSync(ENV_FILE); + } catch {} console.log("✅ Cleanup complete.\n"); } diff --git a/app/e2e/pages/auth.ts b/app/e2e/pages/auth.ts index ce47dbee..058ad534 100644 --- a/app/e2e/pages/auth.ts +++ b/app/e2e/pages/auth.ts @@ -21,25 +21,52 @@ export class AuthPage { * reliable window to attach listeners before we interact with the form. */ async login(email: string, password: string) { - for (let attempt = 1; attempt <= 3; attempt++) { + for (let attempt = 1; attempt <= 5; attempt++) { await this.page.goto("/login", { waitUntil: "networkidle" }); await this.page.getByLabel("Email").waitFor({ state: "visible" }); + + // Wait for React 19 hydration — the form's onSubmit handler is only + // attached after hydration completes. Without this, clicking "Sign in" + // triggers the browser's default form GET instead of the JS fetch call, + // and the page stays on /login. We detect hydration by checking for + // React's internal fiber property on the submit button OR the form. + try { + await this.page.waitForFunction( + () => { + const form = document.querySelector("form"); + if (!form) return false; + // React attaches __reactFiber$... or __reactInternalInstance$... + // on hydrated elements. Check both form and button. + const hasReact = (el: Element) => + Object.keys(el).some((k) => k.startsWith("__react")); + return hasReact(form); + }, + { timeout: 10_000 }, + ); + } catch { + // Fiber check failed — proceed anyway, retry loop handles it. + } + await this.page.getByLabel("Email").fill(email); await this.page.getByLabel("Password").fill(password); - await this.page.getByRole("button", { name: "Sign in" }).click(); + + // Use Promise.all to click and wait for the auth API call simultaneously. + // This avoids a race where the redirect happens before waitForURL starts. + const signInButton = this.page.getByRole("button", { + name: "Sign in", + exact: true, + }); + await signInButton.click(); + try { - await this.page.waitForURL("/", { timeout: 10_000 }); + await this.page.waitForURL("/", { timeout: 15_000 }); return; } catch { - if (attempt === 3) { - // Strip query params from the URL before logging. In the exact - // failure mode this retry loop exists for — form falls back to - // GET /login?email=...&password=... — the URL contains the - // plaintext password. Never let that land in CI logs. + if (attempt === 5) { const safeUrl = new URL(this.page.url()); safeUrl.search = ""; throw new Error( - `AuthPage.login: failed to reach / after 3 attempts ` + + `AuthPage.login: failed to reach / after 5 attempts ` + `(last path: ${safeUrl.pathname})`, ); } diff --git a/app/e2e/responsive.spec.ts b/app/e2e/responsive.spec.ts index 3b92510e..e72c779f 100644 --- a/app/e2e/responsive.spec.ts +++ b/app/e2e/responsive.spec.ts @@ -34,7 +34,7 @@ test.describe("Responsive — mobile login (unauthenticated)", () => { await expect(page.getByText("NeoBoard")).toBeVisible(); await expect(page.getByLabel("Email")).toBeVisible(); await expect(page.getByLabel("Password")).toBeVisible(); - await expect(page.getByRole("button", { name: "Sign in" })).toBeVisible(); + await expect(page.getByRole("button", { name: "Sign in", exact: true })).toBeVisible(); }); }); diff --git a/app/e2e/sso.spec.ts b/app/e2e/sso.spec.ts new file mode 100644 index 00000000..cc4ce866 --- /dev/null +++ b/app/e2e/sso.spec.ts @@ -0,0 +1,129 @@ +import { test, expect, ALICE } from "./fixtures"; + +/** + * SSO E2E tests — full OIDC flow against a Keycloak test container. + * + * Prerequisites (handled by global-setup.ts): + * - Keycloak container running with neoboard-test realm + * - SSO provider "Keycloak Test" seeded in sso_providers table + * - Test users in Keycloak: sso-admin, sso-editor, sso-viewer, sso-nogroup + */ + +test.describe("SSO — OIDC login flow", () => { + test("login page shows SSO button when provider is configured", async ({ + page, + }) => { + await page.goto("/login", { waitUntil: "networkidle" }); + + // The seeded "Keycloak Test" provider should appear as a button + const ssoButton = page.getByRole("button", { + name: "Sign in with Keycloak Test", + }); + await expect(ssoButton).toBeVisible({ timeout: 10_000 }); + + // Password form should still be visible (enforce_sso is false) + await expect(page.getByLabel("Email")).toBeVisible(); + await expect(page.getByLabel("Password")).toBeVisible(); + }); + + test("SSO button redirects to Keycloak login page", async ({ page }) => { + await page.goto("/login", { waitUntil: "networkidle" }); + + const ssoButton = page.getByRole("button", { + name: "Sign in with Keycloak Test", + }); + await expect(ssoButton).toBeVisible({ timeout: 10_000 }); + + // Click SSO button — should redirect to Keycloak + await ssoButton.click(); + + // Wait for Keycloak login page to load + await expect(page).toHaveURL(/\/realms\/neoboard-test\//, { + timeout: 15_000, + }); + + // Keycloak login form should be visible + await expect(page.locator("#username")).toBeVisible({ timeout: 10_000 }); + await expect(page.locator("#password")).toBeVisible(); + }); + + test("full SSO login flow with Keycloak user (auto-provision)", async ({ + page, + }) => { + test.setTimeout(60_000); + + await page.goto("/login", { waitUntil: "networkidle" }); + + // Click SSO button + const ssoButton = page.getByRole("button", { + name: "Sign in with Keycloak Test", + }); + await expect(ssoButton).toBeVisible({ timeout: 10_000 }); + await ssoButton.click(); + + // Wait for Keycloak login page + await expect(page).toHaveURL(/\/realms\/neoboard-test\//, { + timeout: 15_000, + }); + + // Log in as the editor user on Keycloak + await page.locator("#username").fill("sso-editor"); + await page.locator("#password").fill("password123"); + await page.locator("#kc-login").click(); + + // Should redirect back to NeoBoard dashboard + await expect(page).toHaveURL("/", { timeout: 30_000 }); + + // User should be logged in — check for dashboard content + await expect( + page.getByRole("heading", { name: /dashboard/i }).first(), + ).toBeVisible({ timeout: 10_000 }); + }); + + test("SSO admin user gets admin role via claim mapping", async ({ page }) => { + test.setTimeout(60_000); + + await page.goto("/login", { waitUntil: "networkidle" }); + + const ssoButton = page.getByRole("button", { + name: "Sign in with Keycloak Test", + }); + await expect(ssoButton).toBeVisible({ timeout: 10_000 }); + await ssoButton.click(); + + await expect(page).toHaveURL(/\/realms\/neoboard-test\//, { + timeout: 15_000, + }); + + // Log in as admin user (in neoboard-admins group) + await page.locator("#username").fill("sso-admin"); + await page.locator("#password").fill("password123"); + await page.locator("#kc-login").click(); + + await expect(page).toHaveURL("/", { timeout: 30_000 }); + + // Admin should see the Users page in sidebar (admin-only) + await page.goto("/users"); + await expect(page).toHaveURL("/users"); + await expect( + page.getByRole("heading", { name: /user/i }).first(), + ).toBeVisible({ timeout: 10_000 }); + }); +}); + +test.describe("SSO — Settings > Authentication", () => { + test("admin can see configured SSO providers", async ({ authPage, page }) => { + // Login as admin (Alice) via password + await authPage.login(ALICE.email, ALICE.password); + await expect(page).toHaveURL("/"); + + // Navigate to Settings > Authentication + await page.goto("/settings/authentication"); + + // The seeded Keycloak provider should be listed + await expect(page.getByText("Keycloak Test")).toBeVisible({ + timeout: 10_000, + }); + await expect(page.getByText("Enabled")).toBeVisible(); + }); +}); diff --git a/app/src/__tests__/helpers/drizzle-mocks.ts b/app/src/__tests__/helpers/drizzle-mocks.ts index 0da10fd2..0076a628 100644 --- a/app/src/__tests__/helpers/drizzle-mocks.ts +++ b/app/src/__tests__/helpers/drizzle-mocks.ts @@ -20,10 +20,12 @@ export function makeSelectChain(rows: unknown[]) { return c; } -/** Chainable insert builder. Resolves `returning()` to `returning` array. */ +/** Chainable insert builder. Resolves `returning()` to `returning` array. Supports onConflictDoUpdate/onConflictDoNothing. */ export function makeInsertChain(returning: unknown[] = []) { const c = { values: () => c, + onConflictDoUpdate: () => c, + onConflictDoNothing: () => c, returning: () => Promise.resolve(returning), }; return c; diff --git a/app/src/app/(auth)/login/page.tsx b/app/src/app/(auth)/login/page.tsx index 9c3c8ecb..c038ffd7 100644 --- a/app/src/app/(auth)/login/page.tsx +++ b/app/src/app/(auth)/login/page.tsx @@ -4,6 +4,7 @@ import { Suspense, useState, useEffect } from "react"; import { signIn } from "next-auth/react"; import { useRouter, useSearchParams } from "next/navigation"; import Link from "next/link"; +import { Shield } from "lucide-react"; import { Card, CardContent, @@ -13,11 +14,52 @@ import { CardTitle, Input, Label, + Button, Alert, AlertDescription, } from "@neoboard/components"; import { LoadingButton, PasswordInput } from "@neoboard/components"; +interface SsoProviderInfo { + id: string; + name: string; +} + +function SsoButtons({ providers }: { providers: SsoProviderInfo[] }) { + if (providers.length === 0) return null; + + return ( +
+ {providers.map((provider) => ( + + ))} +
+ ); +} + +function Divider() { + return ( +
+
+ +
+
+ + or continue with + +
+
+ ); +} + function LoginForm() { const router = useRouter(); const searchParams = useSearchParams(); @@ -44,12 +86,10 @@ function LoginForm() { } else if (result) { router.push(callbackUrl); } else { - // Nothing returned → server unreachable setError("Unable to sign in. Please try again."); setLoading(false); } } catch { - // Network error or server unreachable setError("Unable to reach server. Please check your connection."); setLoading(false); } @@ -98,8 +138,14 @@ function LoginForm() { ); } -export default function LoginPage() { +function LoginPageContent() { + const searchParams = useSearchParams(); const [registrationEnabled, setRegistrationEnabled] = useState(true); + const [ssoProviders, setSsoProviders] = useState([]); + const [ssoEnforced, setSsoEnforced] = useState(false); + + // Allow admins to bypass SSO enforcement via ?password=true + const forcePassword = searchParams.get("password") === "true"; useEffect(() => { fetch("/api/auth/bootstrap-status") @@ -109,34 +155,69 @@ export default function LoginPage() { setRegistrationEnabled(payload?.registrationEnabled !== false); }) .catch(() => {}); + + fetch("/api/auth/sso-providers") + .then((r) => r.json()) + .then((body) => { + const providers = body?.data ?? []; + setSsoProviders(providers); + if (body?.meta?.enforceSso) { + setSsoEnforced(true); + } + }) + .catch(() => {}); }, []); + const showPasswordForm = + !ssoEnforced || forcePassword || ssoProviders.length === 0; + return ( -
- - - NeoBoard -

- Visual dashboards for Neo4j & PostgreSQL + + + NeoBoard +

+ Visual dashboards for Neo4j & PostgreSQL +

+ Sign in to your account +
+ + {ssoProviders.length > 0 && } + + {ssoProviders.length > 0 && showPasswordForm && } + + {showPasswordForm && } + + {ssoEnforced && !forcePassword && ssoProviders.length > 0 && ( +

+ + Use password instead +

- Sign in to your account - - - - - - - {registrationEnabled && ( - -

- Don't have an account?{" "} - - Sign up - -

-
)} -
+ + {registrationEnabled && ( + +

+ Don't have an account?{" "} + + Sign up + +

+
+ )} + + ); +} + +export default function LoginPage() { + return ( +
+ + +
); } diff --git a/app/src/app/(dashboard)/connections/page.tsx b/app/src/app/(dashboard)/connections/page.tsx index 5f10760d..77db99fd 100644 --- a/app/src/app/(dashboard)/connections/page.tsx +++ b/app/src/app/(dashboard)/connections/page.tsx @@ -18,6 +18,7 @@ import { Label, Dialog, DialogContent, + DialogDescription, DialogHeader, DialogTitle, DialogFooter, @@ -401,6 +402,9 @@ export default function ConnectionsPage() { <> Choose Database Type + + Choose a database type for the new connection. +
+ ), + Input: (props: React.InputHTMLAttributes) => ( + + ), + Label: ({ + children, + ...props + }: React.LabelHTMLAttributes) => ( + + ), + Badge: ({ + children, + variant, + }: { + children: React.ReactNode; + variant?: string; + }) => {children}, + Switch: ({ + checked, + onCheckedChange, + }: { + checked: boolean; + onCheckedChange: (v: boolean) => void; + }) => ( + + ), + Select: ({ children }: { children: React.ReactNode }) => <>{children}, + SelectContent: ({ children }: { children: React.ReactNode }) => ( + <>{children} + ), + SelectItem: ({ + children, + value, + }: { + children: React.ReactNode; + value: string; + }) => , + SelectTrigger: ({ children }: { children: React.ReactNode }) => ( + <>{children} + ), + SelectValue: () => null, + EmptyState: ({ + title, + description, + action, + }: { + icon: React.ReactNode; + title: string; + description: string; + action: React.ReactNode; + }) => ( +
+

{title}

+

{description}

+ {action} +
+ ), + ConfirmDialog: ({ + open, + onConfirm, + title, + }: { + open: boolean; + onOpenChange: (v: boolean) => void; + title: string; + description: string; + confirmText: string; + variant: string; + onConfirm: () => void; + }) => + open ? ( +
+

{title}

+ +
+ ) : null, + Dialog: ({ + children, + open, + }: { + children: React.ReactNode; + open: boolean; + onOpenChange: (v: boolean) => void; + }) => (open ?
{children}
: null), + DialogContent: ({ + children, + }: { + children: React.ReactNode; + className?: string; + }) =>
{children}
, + DialogHeader: ({ children }: { children: React.ReactNode }) => ( +
{children}
+ ), + DialogTitle: ({ children }: { children: React.ReactNode }) => ( +

{children}

+ ), + DialogDescription: ({ + children, + }: { + children: React.ReactNode; + className?: string; + }) =>

{children}

, + DialogFooter: ({ children }: { children: React.ReactNode }) => ( +
{children}
+ ), + PasswordInput: (props: React.InputHTMLAttributes) => ( + + ), +})); + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +describe("AuthenticationPage", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it("shows loading spinner when fetching", async () => { + mockUseSsoProviders.mockReturnValue({ + data: undefined, + isLoading: true, + }); + + const { default: Page } = await import("../page"); + render(); + + expect(screen.getByText("Authentication")).toBeInTheDocument(); + expect(screen.queryByTestId("empty-state")).not.toBeInTheDocument(); + }); + + it("shows empty state when no providers", async () => { + mockUseSsoProviders.mockReturnValue({ + data: [], + isLoading: false, + }); + + const { default: Page } = await import("../page"); + render(); + + expect(screen.getByTestId("empty-state")).toBeInTheDocument(); + expect(screen.getByText("No SSO providers")).toBeInTheDocument(); + }); + + it("renders provider list when providers exist", async () => { + mockUseSsoProviders.mockReturnValue({ + data: [ + { + id: "sso-1", + name: "Company SSO", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "c", + scopes: "openid", + claimMappings: null, + autoProvision: true, + defaultRole: "creator", + enforceSso: false, + enabled: true, + createdAt: "2026-01-01", + updatedAt: "2026-01-01", + }, + ], + isLoading: false, + }); + + const { default: Page } = await import("../page"); + render(); + + expect(screen.getByText("Company SSO")).toBeInTheDocument(); + expect(screen.getByText("https://idp.example.com")).toBeInTheDocument(); + expect(screen.getByText("Enabled")).toBeInTheDocument(); + expect(screen.getByText("creator")).toBeInTheDocument(); + }); + + it("opens add dialog when Add Provider is clicked", async () => { + mockUseSsoProviders.mockReturnValue({ data: [], isLoading: false }); + + const { default: Page } = await import("../page"); + render(); + + const user = userEvent.setup(); + const addButtons = screen.getAllByText("Add Provider"); + await user.click(addButtons[0]); + + expect(screen.getByText("Add SSO Provider")).toBeInTheDocument(); + expect( + screen.getByPlaceholderText("https://idp.example.com"), + ).toBeInTheDocument(); + }); + + it("shows delete confirmation when trash icon clicked", async () => { + mockUseSsoProviders.mockReturnValue({ + data: [ + { + id: "sso-1", + name: "Test Provider", + protocol: "oidc", + issuer: "https://test.com", + clientId: "c", + scopes: "openid", + claimMappings: null, + autoProvision: true, + defaultRole: "creator", + enforceSso: false, + enabled: true, + createdAt: "2026-01-01", + updatedAt: "2026-01-01", + }, + ], + isLoading: false, + }); + + const { default: Page } = await import("../page"); + render(); + + const user = userEvent.setup(); + const deleteBtn = screen.getByLabelText("Delete Test Provider"); + await user.click(deleteBtn); + + expect(screen.getByTestId("confirm-dialog")).toBeInTheDocument(); + expect(screen.getByText("Delete SSO Provider")).toBeInTheDocument(); + }); + + it("shows Disabled badge for disabled providers", async () => { + mockUseSsoProviders.mockReturnValue({ + data: [ + { + id: "sso-2", + name: "Disabled Provider", + protocol: "oidc", + issuer: "https://disabled.com", + clientId: "c", + scopes: "openid", + claimMappings: null, + autoProvision: true, + defaultRole: "reader", + enforceSso: false, + enabled: false, + createdAt: "2026-01-01", + updatedAt: "2026-01-01", + }, + ], + isLoading: false, + }); + + const { default: Page } = await import("../page"); + render(); + + expect(screen.getByText("Disabled")).toBeInTheDocument(); + expect(screen.getByText("reader")).toBeInTheDocument(); + }); +}); diff --git a/app/src/app/(dashboard)/settings/authentication/page.tsx b/app/src/app/(dashboard)/settings/authentication/page.tsx new file mode 100644 index 00000000..7ff08336 --- /dev/null +++ b/app/src/app/(dashboard)/settings/authentication/page.tsx @@ -0,0 +1,474 @@ +"use client"; + +import { useState } from "react"; +import { + Plus, + Trash2, + Shield, + Globe, + ToggleLeft, + ToggleRight, +} from "lucide-react"; +import { + PageHeader, + Button, + Input, + Label, + Badge, + Switch, + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, + EmptyState, + ConfirmDialog, + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogFooter, + PasswordInput, +} from "@neoboard/components"; +import { + useSsoProviders, + useCreateSsoProvider, + useDeleteSsoProvider, +} from "@/hooks/use-sso-providers"; +import type { + SsoProviderListItem, + CreateSsoProviderInput, +} from "@/hooks/use-sso-providers"; + +// --------------------------------------------------------------------------- +// Add Provider Dialog +// --------------------------------------------------------------------------- + +const EMPTY_FORM: CreateSsoProviderInput = { + name: "", + issuer: "", + clientId: "", + clientSecret: "", + scopes: "openid profile email", + autoProvision: true, + defaultRole: "creator", + enforceSso: false, +}; + +function AddProviderDialog({ + open, + onClose, +}: Readonly<{ + open: boolean; + onClose: () => void; +}>) { + const [form, setForm] = useState(EMPTY_FORM); + const [claimKey, setClaimKey] = useState(""); + const [adminValue, setAdminValue] = useState(""); + const [creatorValue, setCreatorValue] = useState(""); + const [readerValue, setReaderValue] = useState(""); + const createMutation = useCreateSsoProvider(); + + const handleCreate = async () => { + const claimMappings = claimKey.trim() + ? { + claimKey: claimKey.trim(), + ...(adminValue.trim() && { adminValue: adminValue.trim() }), + ...(creatorValue.trim() && { creatorValue: creatorValue.trim() }), + ...(readerValue.trim() && { readerValue: readerValue.trim() }), + } + : undefined; + + await createMutation.mutateAsync({ ...form, claimMappings }); + handleClose(); + }; + + const handleClose = () => { + setForm(EMPTY_FORM); + setClaimKey(""); + setAdminValue(""); + setCreatorValue(""); + setReaderValue(""); + createMutation.reset(); + onClose(); + }; + + const update = (field: keyof CreateSsoProviderInput, value: unknown) => + setForm((prev) => ({ ...prev, [field]: value })); + + const isValid = + form.name.trim() && + form.issuer.trim() && + form.clientId.trim() && + form.clientSecret.trim(); + + return ( + !o && handleClose()}> + + + Add SSO Provider + + Configure an OIDC provider for single sign-on authentication. + + + +
+ {/* Provider Details */} +
+ + update("name", e.target.value)} + /> +
+ +
+ + update("issuer", e.target.value)} + /> +

+ The OIDC discovery endpoint will be resolved from this URL. +

+
+ +
+
+ + update("clientId", e.target.value)} + /> +
+
+ + update("clientSecret", e.target.value)} + /> +
+
+ +
+ + update("scopes", e.target.value)} + /> +
+ + {/* Claim Mapping */} +
+

Role Claim Mapping

+

+ Map an IdP claim to NeoBoard roles. Leave empty to use the default + role for all SSO users. +

+ +
+ + setClaimKey(e.target.value)} + /> +
+ + {claimKey.trim() && ( +
+
+ + setAdminValue(e.target.value)} + className="text-sm" + /> +
+
+ + setCreatorValue(e.target.value)} + className="text-sm" + /> +
+
+ + setReaderValue(e.target.value)} + className="text-sm" + /> +
+
+ )} +
+ + {/* Provisioning Options */} +
+

Provisioning

+ +
+
+

Auto-provision new users

+

+ Automatically create accounts for new SSO users. +

+
+ update("autoProvision", checked)} + /> +
+ +
+
+

Default role

+

+ Role assigned when no claim mapping matches. +

+
+ +
+ +
+
+

Enforce SSO

+

+ Disable password login for non-admin users. +

+
+ update("enforceSso", checked)} + /> +
+
+ + {createMutation.error && ( +

+ {createMutation.error.message} +

+ )} + + + + + +
+
+
+ ); +} + +// --------------------------------------------------------------------------- +// Provider Row +// --------------------------------------------------------------------------- + +function ProviderRow({ + provider, + onDelete, +}: Readonly<{ + provider: SsoProviderListItem; + onDelete: (id: string) => void; +}>) { + const [confirmOpen, setConfirmOpen] = useState(false); + + return ( + + +
+ + {provider.name} +
+ + + {provider.issuer} + + + + {provider.enabled ? "Enabled" : "Disabled"} + + + + {provider.defaultRole} + + + {provider.enforceSso ? ( + + ) : ( + + )} + + + + { + onDelete(provider.id); + setConfirmOpen(false); + }} + /> + + + ); +} + +// --------------------------------------------------------------------------- +// Page +// --------------------------------------------------------------------------- + +export default function AuthenticationPage() { + const [createOpen, setCreateOpen] = useState(false); + const { data: providers = [], isLoading } = useSsoProviders(); + const deleteMutation = useDeleteSsoProvider(); + + const handleDelete = (id: string) => { + deleteMutation.mutate(id); + }; + + return ( +
+ setCreateOpen(true)}> + + Add Provider + + } + /> + + {isLoading && ( +
+
+
+ )} + + {!isLoading && providers.length === 0 && ( + } + title="No SSO providers" + description="Add an OIDC provider to enable single sign-on for your organization." + action={ + + } + /> + )} + + {!isLoading && providers.length > 0 && ( +
+ + + + + + + + + + + + {providers.map((provider) => ( + + ))} + +
+ Provider + + Issuer + + Status + + Default Role + + SSO Enforced + +
+
+ )} + + setCreateOpen(false)} + /> +
+ ); +} diff --git a/app/src/app/(dashboard)/settings/layout.tsx b/app/src/app/(dashboard)/settings/layout.tsx index 73386caf..a2d8dd3f 100644 --- a/app/src/app/(dashboard)/settings/layout.tsx +++ b/app/src/app/(dashboard)/settings/layout.tsx @@ -1,11 +1,12 @@ "use client"; import { useRouter, usePathname } from "next/navigation"; -import { User, KeyRound } from "lucide-react"; +import { User, KeyRound, Shield } from "lucide-react"; const tabs = [ { href: "/settings/profile", label: "Profile", icon: User }, { href: "/settings/api-keys", label: "API Keys", icon: KeyRound }, + { href: "/settings/authentication", label: "Authentication", icon: Shield }, ]; export default function SettingsLayout({ diff --git a/app/src/app/(dashboard)/users/page.tsx b/app/src/app/(dashboard)/users/page.tsx index 6ca04dab..aff963ae 100644 --- a/app/src/app/(dashboard)/users/page.tsx +++ b/app/src/app/(dashboard)/users/page.tsx @@ -20,6 +20,7 @@ import { Label, Dialog, DialogContent, + DialogDescription, DialogHeader, DialogTitle, DialogFooter, @@ -410,6 +411,9 @@ export default function UsersPage() { Create User + + Create a new user account. +
@@ -546,6 +550,9 @@ export default function UsersPage() { Temporary Password + + Temporary password for the new user. +

diff --git a/app/src/app/api/auth/sso-providers/__tests__/route.test.ts b/app/src/app/api/auth/sso-providers/__tests__/route.test.ts new file mode 100644 index 00000000..1c0645a2 --- /dev/null +++ b/app/src/app/api/auth/sso-providers/__tests__/route.test.ts @@ -0,0 +1,64 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; +import { makeSelectChain } from "@/__tests__/helpers/drizzle-mocks"; +import { nextResponseMockFactory } from "@/__tests__/helpers/next-mocks"; + +// --------------------------------------------------------------------------- +// Mocks +// --------------------------------------------------------------------------- + +const mockDb = { + select: vi.fn(), +}; + +vi.mock("@/lib/db", () => ({ db: mockDb })); +vi.mock("next/server", () => nextResponseMockFactory()); + +// --------------------------------------------------------------------------- +// Tests — GET /api/auth/sso-providers (public, no auth required) +// --------------------------------------------------------------------------- + +describe("GET /api/auth/sso-providers", () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let GET: () => Promise; + + beforeEach(async () => { + vi.resetModules(); + vi.clearAllMocks(); + vi.doMock("@/lib/db", () => ({ db: mockDb })); + vi.doMock("next/server", () => nextResponseMockFactory()); + const mod = await import("../route"); + GET = mod.GET; + }); + + it("returns empty array when no providers configured", async () => { + mockDb.select.mockReturnValue(makeSelectChain([])); + const res = await GET(); + expect(res.status).toBe(200); + const body = await res.json(); + expect(body.data).toEqual([]); + }); + + it("returns only id and name of enabled providers", async () => { + const rows = [ + { id: "sso-1", name: "Company SSO" }, + { id: "sso-2", name: "Google Workspace" }, + ]; + mockDb.select.mockReturnValue(makeSelectChain(rows)); + const res = await GET(); + expect(res.status).toBe(200); + const body = await res.json(); + expect(body.data).toHaveLength(2); + expect(body.data[0]).toEqual({ id: "sso-1", name: "Company SSO" }); + // Must not leak secrets or internal config + expect(body.data[0]).not.toHaveProperty("clientId"); + expect(body.data[0]).not.toHaveProperty("clientSecretEncrypted"); + expect(body.data[0]).not.toHaveProperty("issuer"); + }); + + it("does not require authentication", async () => { + mockDb.select.mockReturnValue(makeSelectChain([])); + // If this handler required auth, it would throw — it should not + const res = await GET(); + expect(res.status).toBe(200); + }); +}); diff --git a/app/src/app/api/auth/sso-providers/route.ts b/app/src/app/api/auth/sso-providers/route.ts new file mode 100644 index 00000000..1a9a5bde --- /dev/null +++ b/app/src/app/api/auth/sso-providers/route.ts @@ -0,0 +1,51 @@ +import { and, eq } from "drizzle-orm"; +import { db } from "@/lib/db"; +import { ssoProviders } from "@/lib/db/schema"; +import { loadEnvSsoProvider } from "@/lib/auth/sso/env-provider"; +import { apiSuccess } from "@/lib/api/api-response"; +import { handleRouteError } from "@/lib/api/api-utils"; + +/** + * Public endpoint — returns only id + name of enabled SSO providers. + * Merges the env-based provider (if configured) with DB-based providers. + * Used by the login page to render SSO buttons. + * No auth required (falls under /api/auth/ public prefix). + */ +export async function GET() { + try { + const tenantId = process.env.TENANT_ID ?? "default"; + + const rows = await db + .select({ + id: ssoProviders.id, + name: ssoProviders.name, + enforceSso: ssoProviders.enforceSso, + }) + .from(ssoProviders) + .where( + and( + eq(ssoProviders.tenantId, tenantId), + eq(ssoProviders.enabled, true), + ), + ); + + let enforceSso = rows.some((r) => r.enforceSso); + const providers: { id: string; name: string }[] = rows.map( + ({ id, name }) => ({ id, name }), + ); + + // Prepend env-based provider if configured (appears first on login page) + const envProvider = loadEnvSsoProvider(); + if (envProvider) { + providers.unshift({ + id: envProvider.id.replace("sso-", ""), + name: envProvider.name, + }); + if (envProvider.metadata.enforceSso) enforceSso = true; + } + + return apiSuccess(providers, 200, { enforceSso }); + } catch (e) { + return handleRouteError(e); + } +} diff --git a/app/src/app/api/sso-providers/__tests__/route.test.ts b/app/src/app/api/sso-providers/__tests__/route.test.ts new file mode 100644 index 00000000..134b83a7 --- /dev/null +++ b/app/src/app/api/sso-providers/__tests__/route.test.ts @@ -0,0 +1,398 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; +import { + makeSelectChain, + makeInsertChain, + makeDeleteChain, +} from "@/__tests__/helpers/drizzle-mocks"; +import { makeRequest } from "@/__tests__/helpers/request-helpers"; +import { nextResponseMockFactory } from "@/__tests__/helpers/next-mocks"; + +// --------------------------------------------------------------------------- +// Mocks +// --------------------------------------------------------------------------- + +const mockRequireAdmin = + vi.fn<() => Promise<{ userId: string; tenantId: string; role: string }>>(); +const mockEncrypt = vi.fn((s: string) => `encrypted:${s}`); + +const mockDb = { + select: vi.fn(), + insert: vi.fn(), + delete: vi.fn(), +}; + +class UnauthorizedError extends Error { + constructor() { + super("Unauthorized"); + } +} +class ForbiddenError extends Error { + constructor() { + super("Forbidden"); + } +} + +vi.mock("@/lib/auth/session", () => ({ requireAdmin: mockRequireAdmin })); +vi.mock("@/lib/db", () => ({ db: mockDb })); +vi.mock("@/lib/crypto/crypto", () => ({ encrypt: mockEncrypt })); +vi.mock("next/server", () => nextResponseMockFactory()); + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +const ADMIN_SESSION = { + userId: "admin-1", + tenantId: "default", + role: "admin", + canWrite: true, +}; + +const validProvider = { + name: "Company SSO", + issuer: "https://idp.example.com", + clientId: "client-123", + clientSecret: "secret-456", + scopes: "openid profile email", +}; + +// --------------------------------------------------------------------------- +// Tests — GET /api/sso-providers +// --------------------------------------------------------------------------- + +describe("GET /api/sso-providers", () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let GET: (req: Request) => Promise; + + beforeEach(async () => { + vi.resetModules(); + vi.clearAllMocks(); + vi.doMock("@/lib/auth/session", () => ({ + requireAdmin: mockRequireAdmin, + })); + vi.doMock("@/lib/db", () => ({ db: mockDb })); + vi.doMock("@/lib/crypto/crypto", () => ({ encrypt: mockEncrypt })); + vi.doMock("next/server", () => nextResponseMockFactory()); + const mod = await import("../route"); + GET = mod.GET; + }); + + it("returns 401 when unauthenticated", async () => { + mockRequireAdmin.mockRejectedValue(new UnauthorizedError()); + const res = await GET(makeRequest(null)); + expect(res.status).toBe(401); + }); + + it("returns 403 when non-admin", async () => { + mockRequireAdmin.mockRejectedValue(new ForbiddenError()); + const res = await GET(makeRequest(null)); + expect(res.status).toBe(403); + }); + + it("returns empty array when no providers configured", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + mockDb.select.mockReturnValue(makeSelectChain([])); + const res = await GET(makeRequest(null)); + expect(res.status).toBe(200); + const body = await res.json(); + expect(body.data).toEqual([]); + }); + + it("returns providers without client secrets", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + const rows = [ + { + id: "sso-1", + name: "Company SSO", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "client-123", + scopes: "openid profile email", + claimMappings: null, + autoProvision: true, + defaultRole: "creator", + enforceSso: false, + enabled: true, + createdAt: new Date("2026-01-01"), + updatedAt: new Date("2026-01-01"), + }, + ]; + mockDb.select.mockReturnValue(makeSelectChain(rows)); + const res = await GET(makeRequest(null)); + expect(res.status).toBe(200); + const body = await res.json(); + expect(body.data).toHaveLength(1); + expect(body.data[0]).not.toHaveProperty("clientSecretEncrypted"); + expect(body.data[0].name).toBe("Company SSO"); + }); +}); + +// --------------------------------------------------------------------------- +// Tests — POST /api/sso-providers +// --------------------------------------------------------------------------- + +describe("POST /api/sso-providers", () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let POST: (req: Request) => Promise; + + beforeEach(async () => { + vi.resetModules(); + vi.clearAllMocks(); + vi.doMock("@/lib/auth/session", () => ({ + requireAdmin: mockRequireAdmin, + })); + vi.doMock("@/lib/db", () => ({ db: mockDb })); + vi.doMock("@/lib/crypto/crypto", () => ({ encrypt: mockEncrypt })); + vi.doMock("next/server", () => nextResponseMockFactory()); + vi.mock("@/lib/auth/errors", () => ({ UnauthorizedError, ForbiddenError })); + const mod = await import("../route"); + POST = mod.POST; + }); + + it("returns 401 when unauthenticated", async () => { + mockRequireAdmin.mockRejectedValue(new UnauthorizedError()); + const res = await POST(makeRequest(validProvider)); + expect(res.status).toBe(401); + }); + + it("returns 400 when name is missing", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + const res = await POST(makeRequest({ ...validProvider, name: undefined })); + expect(res.status).toBe(400); + }); + + it("returns 400 when issuer is not a valid URL", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + const res = await POST( + makeRequest({ ...validProvider, issuer: "not-a-url" }), + ); + expect(res.status).toBe(400); + }); + + it("returns 400 when clientId is missing", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + const res = await POST( + makeRequest({ ...validProvider, clientId: undefined }), + ); + expect(res.status).toBe(400); + }); + + it("returns 400 when clientSecret is missing", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + const res = await POST( + makeRequest({ ...validProvider, clientSecret: undefined }), + ); + expect(res.status).toBe(400); + }); + + it("returns 409 when duplicate issuer for tenant", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + // Count check passes (under limit) + mockDb.select.mockReturnValue(makeSelectChain([])); + // Insert fails with unique constraint violation + mockDb.insert.mockReturnValue({ + values: () => ({ + returning: () => + Promise.reject( + new Error( + 'duplicate key value violates unique constraint "sso_provider_tenant_issuer_unique"', + ), + ), + }), + }); + const res = await POST(makeRequest(validProvider)); + expect(res.status).toBe(409); + }); + + it("returns 409 when max providers (5) reached", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + // Count check: 5 existing providers (at limit) + mockDb.select.mockReturnValue( + makeSelectChain([ + { id: "1" }, + { id: "2" }, + { id: "3" }, + { id: "4" }, + { id: "5" }, + ]), + ); + const res = await POST(makeRequest(validProvider)); + expect(res.status).toBe(409); + }); + + it("encrypts client secret before storing", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + // Count check: under limit + mockDb.select.mockReturnValue(makeSelectChain([])); + + let capturedValues: Record | null = null; + const insertChain = { + values: (vals: Record) => { + capturedValues = vals; + return insertChain; + }, + returning: () => + Promise.resolve([ + { + id: "new-sso", + name: "Company SSO", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "client-123", + enabled: true, + createdAt: new Date(), + }, + ]), + }; + mockDb.insert.mockReturnValue(insertChain); + + await POST(makeRequest(validProvider)); + + expect(capturedValues).not.toBeNull(); + expect(mockEncrypt).toHaveBeenCalledWith("secret-456"); + expect(capturedValues!.clientSecretEncrypted).toBe("encrypted:secret-456"); + // Raw secret must NOT be stored + expect(capturedValues!).not.toHaveProperty("clientSecret"); + }); + + it("returns 201 with created provider on valid request", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + mockDb.select + .mockReturnValueOnce(makeSelectChain([])) + .mockReturnValueOnce(makeSelectChain([])); + + const insertedRow = { + id: "new-sso", + name: "Company SSO", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "client-123", + scopes: "openid profile email", + claimMappings: null, + autoProvision: true, + defaultRole: "creator", + enforceSso: false, + enabled: true, + createdAt: new Date(), + updatedAt: new Date(), + }; + mockDb.insert.mockReturnValue(makeInsertChain([insertedRow])); + const res = await POST(makeRequest(validProvider)); + expect(res.status).toBe(201); + const body = await res.json(); + expect(body.data.name).toBe("Company SSO"); + expect(body.data).not.toHaveProperty("clientSecretEncrypted"); + }); + + it("stores tenantId from session", async () => { + mockRequireAdmin.mockResolvedValue({ + ...ADMIN_SESSION, + tenantId: "tenant-x", + }); + mockDb.select + .mockReturnValueOnce(makeSelectChain([])) + .mockReturnValueOnce(makeSelectChain([])); + + let capturedValues: Record | null = null; + const insertChain = { + values: (vals: Record) => { + capturedValues = vals; + return insertChain; + }, + returning: () => + Promise.resolve([{ id: "sso-1", name: "SSO", createdAt: new Date() }]), + }; + mockDb.insert.mockReturnValue(insertChain); + + await POST(makeRequest(validProvider)); + expect(capturedValues).not.toBeNull(); + expect(capturedValues!.tenantId).toBe("tenant-x"); + }); + + it("accepts optional claim mappings", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + mockDb.select + .mockReturnValueOnce(makeSelectChain([])) + .mockReturnValueOnce(makeSelectChain([])); + + let capturedValues: Record | null = null; + const insertChain = { + values: (vals: Record) => { + capturedValues = vals; + return insertChain; + }, + returning: () => + Promise.resolve([{ id: "sso-1", name: "SSO", createdAt: new Date() }]), + }; + mockDb.insert.mockReturnValue(insertChain); + + const claimMappings = { + claimKey: "groups", + adminValue: "neoboard-admins", + creatorValue: "neoboard-editors", + readerValue: "neoboard-viewers", + }; + + await POST(makeRequest({ ...validProvider, claimMappings })); + expect(capturedValues).not.toBeNull(); + expect(capturedValues!.claimMappings).toEqual(claimMappings); + }); +}); + +// --------------------------------------------------------------------------- +// Tests — DELETE /api/sso-providers +// --------------------------------------------------------------------------- + +describe("DELETE /api/sso-providers", () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let DELETE: (req: Request) => Promise; + + beforeEach(async () => { + vi.resetModules(); + vi.clearAllMocks(); + vi.doMock("@/lib/auth/session", () => ({ + requireAdmin: mockRequireAdmin, + })); + vi.doMock("@/lib/db", () => ({ db: mockDb })); + vi.doMock("@/lib/crypto/crypto", () => ({ encrypt: mockEncrypt })); + vi.doMock("next/server", () => nextResponseMockFactory()); + const mod = await import("../route"); + DELETE = mod.DELETE; + }); + + it("returns 401 when unauthenticated", async () => { + mockRequireAdmin.mockRejectedValue(new UnauthorizedError()); + const res = await DELETE( + makeRequest(null, "http://localhost/api/sso-providers?id=sso-1"), + ); + expect(res.status).toBe(401); + }); + + it("returns 400 when id is missing", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + const res = await DELETE( + makeRequest(null, "http://localhost/api/sso-providers"), + ); + expect(res.status).toBe(400); + }); + + it("returns 404 when provider not found", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + mockDb.delete.mockReturnValue(makeDeleteChain([])); + const res = await DELETE( + makeRequest(null, "http://localhost/api/sso-providers?id=nonexistent"), + ); + expect(res.status).toBe(404); + }); + + it("returns 200 when provider deleted successfully", async () => { + mockRequireAdmin.mockResolvedValue(ADMIN_SESSION); + mockDb.delete.mockReturnValue( + makeDeleteChain([{ id: "sso-1", name: "Company SSO" }]), + ); + const res = await DELETE( + makeRequest(null, "http://localhost/api/sso-providers?id=sso-1"), + ); + expect(res.status).toBe(200); + }); +}); diff --git a/app/src/app/api/sso-providers/route.ts b/app/src/app/api/sso-providers/route.ts new file mode 100644 index 00000000..6312e228 --- /dev/null +++ b/app/src/app/api/sso-providers/route.ts @@ -0,0 +1,173 @@ +import { z } from "zod"; +import { and, eq } from "drizzle-orm"; +import { db } from "@/lib/db"; +import { ssoProviders } from "@/lib/db/schema"; +import { requireAdmin } from "@/lib/auth/session"; +import { encrypt } from "@/lib/crypto/crypto"; +import { validateBody, handleRouteError } from "@/lib/api/api-utils"; +import { apiSuccess, apiError } from "@/lib/api/api-response"; + +const MAX_PROVIDERS_PER_TENANT = 5; + +const claimMappingSchema = z.object({ + claimKey: z.string().min(1), + adminValue: z.string().optional(), + creatorValue: z.string().optional(), + readerValue: z.string().optional(), +}); + +const createProviderSchema = z.object({ + name: z.string().min(1), + issuer: z.string().url(), + clientId: z.string().min(1), + clientSecret: z.string().min(1), + scopes: z.string().optional().default("openid profile email"), + claimMappings: claimMappingSchema.optional(), + autoProvision: z.boolean().optional().default(true), + defaultRole: z + .enum(["admin", "creator", "reader"]) + .optional() + .default("creator"), + enforceSso: z.boolean().optional().default(false), +}); + +export async function GET() { + try { + const { tenantId } = await requireAdmin(); + + const rows = await db + .select({ + id: ssoProviders.id, + name: ssoProviders.name, + protocol: ssoProviders.protocol, + issuer: ssoProviders.issuer, + clientId: ssoProviders.clientId, + scopes: ssoProviders.scopes, + claimMappings: ssoProviders.claimMappings, + autoProvision: ssoProviders.autoProvision, + defaultRole: ssoProviders.defaultRole, + enforceSso: ssoProviders.enforceSso, + enabled: ssoProviders.enabled, + createdAt: ssoProviders.createdAt, + updatedAt: ssoProviders.updatedAt, + }) + .from(ssoProviders) + .where(eq(ssoProviders.tenantId, tenantId)); + + return apiSuccess(rows); + } catch (e) { + return handleRouteError(e); + } +} + +export async function POST(request: Request) { + try { + const { tenantId } = await requireAdmin(); + + const body = await request.json(); + const result = validateBody(createProviderSchema, body); + if (!result.success) return result.response; + + const { + name, + issuer, + clientId, + clientSecret, + scopes, + claimMappings, + autoProvision, + defaultRole, + enforceSso, + } = result.data; + + // Check max providers limit before insert to give a clear error message. + // The unique constraint on (tenantId, issuer) handles duplicate detection atomically. + const providerCount = await db + .select({ id: ssoProviders.id }) + .from(ssoProviders) + .where(eq(ssoProviders.tenantId, tenantId)); + + if (providerCount.length >= MAX_PROVIDERS_PER_TENANT) { + return apiError( + "CONFLICT", + "Maximum of " + + String(MAX_PROVIDERS_PER_TENANT) + + " SSO providers per tenant", + ); + } + + try { + const [provider] = await db + .insert(ssoProviders) + .values({ + tenantId, + name, + issuer, + clientId, + clientSecretEncrypted: encrypt(clientSecret), + scopes, + claimMappings: claimMappings ?? null, + autoProvision, + defaultRole, + enforceSso, + }) + .returning({ + id: ssoProviders.id, + name: ssoProviders.name, + protocol: ssoProviders.protocol, + issuer: ssoProviders.issuer, + clientId: ssoProviders.clientId, + scopes: ssoProviders.scopes, + claimMappings: ssoProviders.claimMappings, + autoProvision: ssoProviders.autoProvision, + defaultRole: ssoProviders.defaultRole, + enforceSso: ssoProviders.enforceSso, + enabled: ssoProviders.enabled, + createdAt: ssoProviders.createdAt, + updatedAt: ssoProviders.updatedAt, + }); + + return apiSuccess(provider, 201); + } catch (err: unknown) { + // Unique constraint violation on (tenantId, issuer) — duplicate provider + if ( + err instanceof Error && + err.message.includes("sso_provider_tenant_issuer_unique") + ) { + return apiError( + "CONFLICT", + "An SSO provider with this issuer already exists", + ); + } + throw err; + } + } catch (e) { + return handleRouteError(e); + } +} + +export async function DELETE(request: Request) { + try { + const { tenantId } = await requireAdmin(); + + const url = new URL(request.url); + const id = url.searchParams.get("id"); + + if (!id) { + return apiError("BAD_REQUEST", "Missing required query parameter: id"); + } + + const deleted = await db + .delete(ssoProviders) + .where(and(eq(ssoProviders.id, id), eq(ssoProviders.tenantId, tenantId))) + .returning({ id: ssoProviders.id, name: ssoProviders.name }); + + if (deleted.length === 0) { + return apiError("NOT_FOUND", "SSO provider not found"); + } + + return apiSuccess(deleted[0]); + } catch (e) { + return handleRouteError(e); + } +} diff --git a/app/src/components/dashboard-container.tsx b/app/src/components/dashboard-container.tsx index 4d538f20..bb79118c 100644 --- a/app/src/components/dashboard-container.tsx +++ b/app/src/components/dashboard-container.tsx @@ -343,7 +343,10 @@ export function DashboardContainer({ if (!open) closeFullscreen(); }} > - + {fullscreenWidget ? interpolateTitle( diff --git a/app/src/components/dashboard-picker-dialog.tsx b/app/src/components/dashboard-picker-dialog.tsx index b9c30a92..031febea 100644 --- a/app/src/components/dashboard-picker-dialog.tsx +++ b/app/src/components/dashboard-picker-dialog.tsx @@ -6,6 +6,7 @@ import { useDashboards } from "@/hooks/use-dashboards"; import { Dialog, DialogContent, + DialogDescription, DialogHeader, DialogTitle, Input, @@ -29,7 +30,7 @@ export function DashboardPickerDialog({ const editable = useMemo(() => { if (!dashboards) return []; return dashboards.filter( - (d) => d.role === "owner" || d.role === "editor" || d.role === "admin" + (d) => d.role === "owner" || d.role === "editor" || d.role === "admin", ); }, [dashboards]); @@ -46,10 +47,19 @@ export function DashboardPickerDialog({ } return ( -

{ if (!v) setSearch(""); onOpenChange(v); }}> + { + if (!v) setSearch(""); + onOpenChange(v); + }} + > Choose a Dashboard + + Select a dashboard to navigate to. + {editable.length > 3 && ( @@ -92,7 +102,9 @@ export function DashboardPickerDialog({

{d.name}

{d.description && ( -

{d.description}

+

+ {d.description} +

)}
diff --git a/app/src/components/save-template-dialog.tsx b/app/src/components/save-template-dialog.tsx index 1536d895..17886768 100644 --- a/app/src/components/save-template-dialog.tsx +++ b/app/src/components/save-template-dialog.tsx @@ -6,6 +6,7 @@ import { useCreateWidgetTemplate } from "@/hooks/use-widget-templates"; import { Dialog, DialogContent, + DialogDescription, DialogHeader, DialogTitle, DialogFooter, @@ -88,6 +89,9 @@ export function SaveTemplateDialog({ Save to Widget Lab + + Save the current widget as a reusable template. +
diff --git a/app/src/components/widget-editor-modal.tsx b/app/src/components/widget-editor-modal.tsx index a060b70b..41035919 100644 --- a/app/src/components/widget-editor-modal.tsx +++ b/app/src/components/widget-editor-modal.tsx @@ -1039,6 +1039,7 @@ export function WidgetEditorModal({ size="full" className="max-w-[1200px] max-h-[90vh] flex flex-col overflow-hidden" onInteractOutside={() => onOpenChange(false)} + aria-describedby={undefined} > {dialogStep === "styling-rules" ? ( setDialogStep("main")} /> diff --git a/app/src/hooks/use-sso-providers.ts b/app/src/hooks/use-sso-providers.ts new file mode 100644 index 00000000..48c8a0b3 --- /dev/null +++ b/app/src/hooks/use-sso-providers.ts @@ -0,0 +1,88 @@ +"use client"; + +import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; +import type { SsoClaimMapping, UserRole } from "@/lib/db/schema"; + +export interface SsoProviderListItem { + id: string; + name: string; + protocol: string; + issuer: string; + clientId: string; + scopes: string; + claimMappings: SsoClaimMapping | null; + autoProvision: boolean; + defaultRole: UserRole; + enforceSso: boolean; + enabled: boolean; + createdAt: string; + updatedAt: string; +} + +export interface CreateSsoProviderInput { + name: string; + issuer: string; + clientId: string; + clientSecret: string; + scopes?: string; + claimMappings?: SsoClaimMapping; + autoProvision?: boolean; + defaultRole?: UserRole; + enforceSso?: boolean; +} + +async function fetchJson(url: string, init?: RequestInit): Promise { + const res = await fetch(url, init); + const contentType = res.headers.get("content-type"); + if (res.status === 204 || !contentType?.includes("application/json")) { + if (!res.ok) { + throw new Error("Request failed: " + res.status); + } + return undefined as T; + } + const body = await res.json(); + if (!res.ok) { + throw new Error( + body?.error?.message ?? body?.error ?? "Request failed: " + res.status, + ); + } + return (body?.data === undefined ? body : body.data) as T; +} + +export function useSsoProviders() { + return useQuery({ + queryKey: ["sso-providers"], + queryFn: () => fetchJson("/api/sso-providers"), + }); +} + +export function useCreateSsoProvider() { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (input: CreateSsoProviderInput) => + fetchJson("/api/sso-providers", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(input), + }), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ["sso-providers"] }); + }, + }); +} + +export function useDeleteSsoProvider() { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: (id: string) => + fetchJson<{ id: string }>( + "/api/sso-providers?id=" + encodeURIComponent(id), + { method: "DELETE" }, + ), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ["sso-providers"] }); + }, + }); +} diff --git a/app/src/lib/auth/__tests__/config.test.ts b/app/src/lib/auth/__tests__/config.test.ts index ad7cc908..6eb585e9 100644 --- a/app/src/lib/auth/__tests__/config.test.ts +++ b/app/src/lib/auth/__tests__/config.test.ts @@ -1,28 +1,47 @@ -import { describe, it, expect, vi, beforeEach } from "vitest"; +import { + describe, + it, + expect, + vi, + beforeAll, + beforeEach, + afterAll, +} from "vitest"; // --------------------------------------------------------------------------- -// vi.hoisted runs BEFORE vi.mock factories, so these are available there +// vi.hoisted runs BEFORE vi.mock factories, so these are available there. +// TENANT_ID must be set here so it's available when NextAuth lazy init runs. // --------------------------------------------------------------------------- -const { callbacks, sessionConfig, mockDbSelect } = vi.hoisted(() => { - const callbacks = { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - jwt: null as any, +const { callbacks, sessionConfig, mockDbSelect, originalTenantId } = vi.hoisted( + () => { + const orig = process.env.TENANT_ID; + process.env.TENANT_ID = "test-tenant"; + const callbacks = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + jwt: null as any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + session: null as any, + }; // eslint-disable-next-line @typescript-eslint/no-explicit-any - session: null as any, - }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const sessionConfig = { strategy: "" as string, maxAge: 0 as any }; - const mockDbSelect = vi.fn(); - return { callbacks, sessionConfig, mockDbSelect }; -}); + const sessionConfig = { strategy: "" as string, maxAge: 0 as any }; + const mockDbSelect = vi.fn(); + return { callbacks, sessionConfig, mockDbSelect, originalTenantId: orig }; + }, +); vi.mock("next-auth", () => ({ // eslint-disable-next-line @typescript-eslint/no-explicit-any - default: (config: any) => { - callbacks.jwt = config.callbacks.jwt; - callbacks.session = config.callbacks.session; - sessionConfig.strategy = config.session?.strategy; - sessionConfig.maxAge = config.session?.maxAge; + default: (configOrFn: any) => { + // Support both static config and lazy init (async function) + const resolve = async () => { + const config = + typeof configOrFn === "function" ? await configOrFn() : configOrFn; + callbacks.jwt = config.callbacks.jwt; + callbacks.session = config.callbacks.session; + sessionConfig.strategy = config.session?.strategy; + sessionConfig.maxAge = config.session?.maxAge; + }; + resolve(); return { handlers: {}, auth: vi.fn(), signIn: vi.fn(), signOut: vi.fn() }; }, })); @@ -70,12 +89,25 @@ vi.mock("@/lib/crypto/rate-limiter", () => ({ vi.mock("drizzle-orm", () => ({ eq: vi.fn((a: unknown, b: unknown) => ({ field: a, value: b })), + and: vi.fn((...args: unknown[]) => args), })); vi.mock("bcryptjs", () => ({ default: { compare: vi.fn() }, })); +vi.mock("@/lib/auth/sso/provider-cache", () => ({ + getCachedSsoProviders: vi.fn(async () => []), +})); + +vi.mock("@/lib/auth/sso/claim-mapping", () => ({ + resolveRoleFromClaims: vi.fn(() => "creator"), +})); + +vi.mock("@/lib/auth/sso/provision", () => ({ + provisionOrLinkSsoUser: vi.fn(async () => null), +})); + vi.mock("zod", () => { const schema = { safeParse: vi.fn(() => ({ @@ -91,9 +123,23 @@ vi.mock("zod", () => { }; }); -// Import triggers NextAuth() which captures callbacks +// Import triggers NextAuth() which captures callbacks via the async resolve() import "../config"; +// The lazy init runs asynchronously — give it time to resolve before tests +beforeAll(async () => { + // Wait for the NextAuth mock's resolve() to complete + await new Promise((r) => setTimeout(r, 50)); +}); + +afterAll(() => { + if (originalTenantId !== undefined) { + process.env.TENANT_ID = originalTenantId; + } else { + delete process.env.TENANT_ID; + } +}); + beforeEach(() => { vi.clearAllMocks(); }); diff --git a/app/src/lib/auth/config.ts b/app/src/lib/auth/config.ts index 809af133..3d0c6fc7 100644 --- a/app/src/lib/auth/config.ts +++ b/app/src/lib/auth/config.ts @@ -3,159 +3,242 @@ import Credentials from "next-auth/providers/credentials"; import { DrizzleAdapter } from "@auth/drizzle-adapter"; import { z } from "zod"; import bcrypt from "bcryptjs"; -import { eq } from "drizzle-orm"; +import { and, eq } from "drizzle-orm"; import { db } from "@/lib/db"; import { users, accounts, sessions, verificationTokens } from "@/lib/db/schema"; import { loginRateLimiter } from "@/lib/crypto/rate-limiter"; +import { getCachedSsoProviders } from "@/lib/auth/sso/provider-cache"; +import { resolveRoleFromClaims } from "@/lib/auth/sso/claim-mapping"; +import type { LoadedSsoProvider } from "@/lib/auth/sso/provider-loader"; const loginSchema = z.object({ email: z.string().email(), password: z.string().min(6), }); -export const { handlers, auth, signIn, signOut } = NextAuth({ - trustHost: true, - adapter: DrizzleAdapter(db, { - usersTable: users, - accountsTable: accounts, - sessionsTable: sessions, - verificationTokensTable: verificationTokens, - }), - session: { - strategy: "jwt", - maxAge: parseInt(process.env.SESSION_MAX_AGE || "28800", 10), - }, - pages: { - signIn: "/login", - }, - providers: [ - Credentials({ - name: "Email & Password", - credentials: { - email: { label: "Email", type: "email" }, - password: { label: "Password", type: "password" }, - }, - async authorize(credentials, request) { - const parsed = loginSchema.safeParse(credentials); - if (!parsed.success) return null; - - // Rate limit by IP — 20 attempts per minute. - // In deployments behind a reverse proxy (Vercel, nginx), the first - // x-forwarded-for value is the client IP set by the trusted proxy. - const forwarded = request?.headers?.get?.("x-forwarded-for"); - const ip = forwarded?.split(",")[0]?.trim() ?? "unknown"; - const rateResult = loginRateLimiter.check(ip); - if (!rateResult.allowed) return null; - - const user = await db - .select() +/** + * Auth.js config uses lazy initialization so SSO providers can be loaded + * dynamically from the database on each auth flow. The Credentials provider + * is always present; OIDC providers are appended from the DB with a 60s cache. + */ +export const { handlers, auth, signIn, signOut } = NextAuth(async () => { + const tenantId = process.env.TENANT_ID ?? "default"; + if (!process.env.TENANT_ID) { + console.warn( + "[auth] TENANT_ID not set — defaulting to 'default'. Set TENANT_ID explicitly for multi-tenant deployments.", + ); + } + const ssoProviders = await getCachedSsoProviders(tenantId); + + return { + trustHost: true, + adapter: DrizzleAdapter(db, { + usersTable: users, + accountsTable: accounts, + sessionsTable: sessions, + verificationTokensTable: verificationTokens, + }), + session: { + strategy: "jwt", + maxAge: parseInt(process.env.SESSION_MAX_AGE || "28800", 10), + }, + pages: { + signIn: "/login", + }, + providers: [ + Credentials({ + name: "Email & Password", + credentials: { + email: { label: "Email", type: "email" }, + password: { label: "Password", type: "password" }, + }, + async authorize(credentials, request) { + const parsed = loginSchema.safeParse(credentials); + if (!parsed.success) return null; + + const forwarded = request?.headers?.get?.("x-forwarded-for"); + const ip = forwarded?.split(",")[0]?.trim() ?? "unknown"; + const rateResult = loginRateLimiter.check(ip); + if (!rateResult.allowed) return null; + + const user = await db + .select() + .from(users) + .where( + and( + eq(users.email, parsed.data.email), + eq(users.tenantId, tenantId), + ), + ) + .limit(1) + .then((rows) => rows[0]); + + if (!user?.passwordHash) return null; + if (user.disabledAt) return null; + + const isValid = await bcrypt.compare( + parsed.data.password, + user.passwordHash, + ); + if (!isValid) return null; + + db.update(users) + .set({ lastLoginAt: new Date() }) + .where(eq(users.id, user.id)) + .then( + () => {}, + (err) => console.error("[auth] lastLoginAt update failed", err), + ); + + return { + id: user.id, + name: user.name, + email: user.email, + image: user.image, + role: user.role, + canWrite: user.canWrite, + forcePasswordChange: user.forcePasswordChange, + tenantId: user.tenantId, + }; + }, + }), + // Dynamic OIDC providers loaded from sso_providers table + ...ssoProviders, + ], + callbacks: { + async signIn({ user, account, profile }) { + // Only intercept SSO logins (provider id starts with "sso-") + if (!account || !account.provider.startsWith("sso-")) { + return true; + } + + // Find the matching SSO provider metadata from cache + const providerConfig = ssoProviders.find( + (p: LoadedSsoProvider) => p.id === account.provider, + ); + if (!providerConfig) return false; + + const { claimMappings, autoProvision, defaultRole } = + providerConfig.metadata; + + // Check if user already exists in the DB + const existingUsers = await db + .select({ id: users.id }) .from(users) - .where(eq(users.email, parsed.data.email)) - .limit(1) - .then((rows) => rows[0]); + .where( + and( + eq(users.email, user.email ?? ""), + eq(users.tenantId, tenantId), + ), + ) + .limit(1); - if (!user?.passwordHash) return null; - if (user.disabledAt) return null; + if (existingUsers.length === 0 && !autoProvision) { + // Auto-provision is off and user doesn't exist — reject login + return false; + } - const isValid = await bcrypt.compare( - parsed.data.password, - user.passwordHash, + // Resolve role from IdP claims and sync to DB + const resolvedRole = resolveRoleFromClaims( + (profile ?? {}) as Record, + claimMappings, + defaultRole, ); - if (!isValid) return null; - - // Update lastLoginAt (fire-and-forget — don't block login on this) - db.update(users) - .set({ lastLoginAt: new Date() }) - .where(eq(users.id, user.id)) - .then( - () => {}, - (err) => console.error("[auth] lastLoginAt update failed", err), - ); - return { - id: user.id, - name: user.name, - email: user.email, - image: user.image, - role: user.role, - canWrite: user.canWrite, - forcePasswordChange: user.forcePasswordChange, - tenantId: user.tenantId, - }; - }, - }), - ], - callbacks: { - async jwt({ token, user }) { - if (user) { - token.id = user.id; - token.role = user.role; - token.canWrite = (user as { canWrite?: boolean }).canWrite ?? true; - token.forcePasswordChange = - (user as { forcePasswordChange?: boolean }).forcePasswordChange ?? - false; - token.tenantId = - (user as { tenantId?: string }).tenantId ?? - process.env.TENANT_ID ?? - "default"; - } - // Re-fetch role and canWrite on every token refresh so DB changes propagate to active sessions. - // Wrapped in try/catch so a transient DB hiccup (e.g. dev-server restart) doesn't - // destroy the session — existing token values are preserved as a fallback. - if (token.id) { - try { - const [dbUser] = await db - .select({ - role: users.role, - canWrite: users.canWrite, - disabledAt: users.disabledAt, - forcePasswordChange: users.forcePasswordChange, - name: users.name, - tenantId: users.tenantId, - passwordChangedAt: users.passwordChangedAt, + if (existingUsers.length > 0) { + // Existing user: sync role from IdP claims on every login + await db + .update(users) + .set({ + role: resolvedRole, + canWrite: resolvedRole !== "reader", + lastLoginAt: new Date(), }) - .from(users) - .where(eq(users.id, token.id as string)) - .limit(1); - if (!dbUser) return null; // User deleted — invalidate token - if (dbUser.disabledAt) return null; // User disabled — invalidate token - // Invalidate session if password was changed after token was issued. - // A 30-second grace period prevents the current session from being - // kicked out immediately after a self-service password change — the - // JWT refresh cycle runs within this window and picks up the new iat. - if ( - token.iat && - dbUser.passwordChangedAt && - dbUser.passwordChangedAt.getTime() > - (token.iat as number) * 1000 + 30_000 - ) { - return null; + .where( + and( + eq(users.id, existingUsers[0].id), + eq(users.tenantId, tenantId), + ), + ); + } + + // For new users: the DrizzleAdapter creates the user record + // automatically. We set default role/tenantId via the profile. + // The JWT callback will pick up the role from DB on next refresh. + + return true; + }, + + async jwt({ token, user }) { + if (user) { + token.id = user.id; + token.role = user.role; + token.canWrite = (user as { canWrite?: boolean }).canWrite ?? true; + token.forcePasswordChange = + (user as { forcePasswordChange?: boolean }).forcePasswordChange ?? + false; + token.tenantId = + (user as { tenantId?: string }).tenantId ?? + process.env.TENANT_ID ?? + "default"; + } + if (token.id) { + try { + const [dbUser] = await db + .select({ + role: users.role, + canWrite: users.canWrite, + disabledAt: users.disabledAt, + forcePasswordChange: users.forcePasswordChange, + name: users.name, + tenantId: users.tenantId, + passwordChangedAt: users.passwordChangedAt, + }) + .from(users) + .where( + and( + eq(users.id, token.id as string), + eq(users.tenantId, token.tenantId as string), + ), + ) + .limit(1); + if (!dbUser) return null; + if (dbUser.disabledAt) return null; + if ( + token.iat && + dbUser.passwordChangedAt && + dbUser.passwordChangedAt.getTime() > + (token.iat as number) * 1000 + 30_000 + ) { + return null; + } + token.role = dbUser.role; + token.canWrite = dbUser.canWrite; + token.forcePasswordChange = dbUser.forcePasswordChange; + token.name = dbUser.name; + token.tenantId = dbUser.tenantId; + } catch { + // DB unavailable — keep existing token values } - token.role = dbUser.role; - token.canWrite = dbUser.canWrite; - token.forcePasswordChange = dbUser.forcePasswordChange; - token.name = dbUser.name; - token.tenantId = dbUser.tenantId; - } catch { - // DB unavailable — keep existing token values (graceful degradation) } - } - return token; - }, - async session({ session, token }) { - if (session.user && token.id) { - session.user.id = token.id as string; - session.user.name = token.name as string; - session.user.role = token.role; - session.user.canWrite = (token.canWrite as boolean) ?? true; - session.user.forcePasswordChange = - (token.forcePasswordChange as boolean) ?? false; - session.user.tenantId = - token.tenantId ?? process.env.TENANT_ID ?? "default"; - } - return session; + return token; + }, + + async session({ session, token }) { + if (session.user && token.id) { + session.user.id = token.id as string; + session.user.name = token.name as string; + session.user.role = token.role; + session.user.canWrite = (token.canWrite as boolean) ?? true; + session.user.forcePasswordChange = + (token.forcePasswordChange as boolean) ?? false; + session.user.tenantId = + token.tenantId ?? process.env.TENANT_ID ?? "default"; + } + return session; + }, }, - }, + }; }); export const { GET, POST } = handlers; diff --git a/app/src/lib/auth/sso/__tests__/claim-mapping.test.ts b/app/src/lib/auth/sso/__tests__/claim-mapping.test.ts new file mode 100644 index 00000000..5a4a944b --- /dev/null +++ b/app/src/lib/auth/sso/__tests__/claim-mapping.test.ts @@ -0,0 +1,170 @@ +import { describe, it, expect } from "vitest"; +import { resolveRoleFromClaims } from "../claim-mapping"; +import type { SsoClaimMapping } from "@/lib/db/schema"; + +// --------------------------------------------------------------------------- +// Tests — resolveRoleFromClaims +// --------------------------------------------------------------------------- + +describe("resolveRoleFromClaims", () => { + const mapping: SsoClaimMapping = { + claimKey: "groups", + adminValue: "neoboard-admins", + creatorValue: "neoboard-editors", + readerValue: "neoboard-viewers", + }; + + it("returns admin when claim matches adminValue", () => { + const profile = { groups: ["neoboard-admins", "other-group"] }; + expect(resolveRoleFromClaims(profile, mapping, "creator")).toBe("admin"); + }); + + it("returns creator when claim matches creatorValue", () => { + const profile = { groups: ["neoboard-editors"] }; + expect(resolveRoleFromClaims(profile, mapping, "creator")).toBe("creator"); + }); + + it("returns reader when claim matches readerValue", () => { + const profile = { groups: ["neoboard-viewers"] }; + expect(resolveRoleFromClaims(profile, mapping, "creator")).toBe("reader"); + }); + + it("returns default role when no claim matches", () => { + const profile = { groups: ["unrelated-group"] }; + expect(resolveRoleFromClaims(profile, mapping, "reader")).toBe("reader"); + }); + + it("returns default role when claim key is missing from profile", () => { + const profile = { departments: ["engineering"] }; + expect(resolveRoleFromClaims(profile, mapping, "creator")).toBe("creator"); + }); + + it("returns default role when mapping is null", () => { + const profile = { groups: ["neoboard-admins"] }; + expect(resolveRoleFromClaims(profile, null, "creator")).toBe("creator"); + }); + + it("returns default role when mapping is undefined", () => { + const profile = { groups: ["neoboard-admins"] }; + expect(resolveRoleFromClaims(profile, undefined, "creator")).toBe( + "creator", + ); + }); + + it("handles string claim value (not array)", () => { + const profile = { groups: "neoboard-admins" }; + expect(resolveRoleFromClaims(profile, mapping, "creator")).toBe("admin"); + }); + + it("prioritizes admin > creator > reader when multiple match", () => { + // User is in both admin and editor groups + const profile = { groups: ["neoboard-admins", "neoboard-editors"] }; + expect(resolveRoleFromClaims(profile, mapping, "reader")).toBe("admin"); + }); + + it("handles nested claim key with dot notation", () => { + const nestedMapping: SsoClaimMapping = { + claimKey: "realm_access.roles", + adminValue: "admin", + creatorValue: "editor", + }; + const profile = { realm_access: { roles: ["editor", "user"] } }; + expect(resolveRoleFromClaims(profile, nestedMapping, "reader")).toBe( + "creator", + ); + }); + + it("returns default when nested claim path doesn't exist", () => { + const nestedMapping: SsoClaimMapping = { + claimKey: "realm_access.roles", + adminValue: "admin", + }; + const profile = { groups: ["admin"] }; + expect(resolveRoleFromClaims(profile, nestedMapping, "creator")).toBe( + "creator", + ); + }); + + it("handles mapping with only some values defined", () => { + const partialMapping: SsoClaimMapping = { + claimKey: "role", + adminValue: "super-admin", + // creatorValue and readerValue intentionally omitted + }; + const profile = { role: "super-admin" }; + expect(resolveRoleFromClaims(profile, partialMapping, "reader")).toBe( + "admin", + ); + }); + + it("handles empty claim array", () => { + const profile = { groups: [] }; + expect(resolveRoleFromClaims(profile, mapping, "creator")).toBe("creator"); + }); + + // ── Comma-separated multi-value mapping ───────────────────────────────── + + it("matches any of comma-separated admin values", () => { + const multiMapping: SsoClaimMapping = { + claimKey: "groups", + adminValue: "devops,platform-team,it-ops", + creatorValue: "engineering", + }; + const profile = { groups: ["platform-team", "users"] }; + expect(resolveRoleFromClaims(profile, multiMapping, "reader")).toBe( + "admin", + ); + }); + + it("matches any of comma-separated creator values", () => { + const multiMapping: SsoClaimMapping = { + claimKey: "groups", + adminValue: "devops", + creatorValue: "engineering,data-team,analytics", + }; + const profile = { groups: ["data-team"] }; + expect(resolveRoleFromClaims(profile, multiMapping, "reader")).toBe( + "creator", + ); + }); + + it("matches any of comma-separated reader values", () => { + const multiMapping: SsoClaimMapping = { + claimKey: "groups", + readerValue: "marketing,sales,support", + }; + const profile = { groups: ["sales"] }; + expect(resolveRoleFromClaims(profile, multiMapping, "creator")).toBe( + "reader", + ); + }); + + it("trims whitespace around comma-separated values", () => { + const multiMapping: SsoClaimMapping = { + claimKey: "groups", + adminValue: " devops , platform-team , it-ops ", + }; + const profile = { groups: ["platform-team"] }; + expect(resolveRoleFromClaims(profile, multiMapping, "reader")).toBe( + "admin", + ); + }); + + it("still works with single value (no comma)", () => { + // Existing behavior preserved — single values work as before + const profile = { groups: ["neoboard-admins"] }; + expect(resolveRoleFromClaims(profile, mapping, "reader")).toBe("admin"); + }); + + it("prioritizes admin over creator with comma-separated values", () => { + const multiMapping: SsoClaimMapping = { + claimKey: "groups", + adminValue: "admins,super-admins", + creatorValue: "editors,writers", + }; + const profile = { groups: ["writers", "super-admins"] }; + expect(resolveRoleFromClaims(profile, multiMapping, "reader")).toBe( + "admin", + ); + }); +}); diff --git a/app/src/lib/auth/sso/__tests__/env-provider.test.ts b/app/src/lib/auth/sso/__tests__/env-provider.test.ts new file mode 100644 index 00000000..ccb519d9 --- /dev/null +++ b/app/src/lib/auth/sso/__tests__/env-provider.test.ts @@ -0,0 +1,175 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; + +describe("loadEnvSsoProvider", () => { + beforeEach(() => { + vi.resetModules(); + vi.unstubAllEnvs(); + }); + + it("returns null when NEOBOARD_EDITION is not enterprise", async () => { + vi.stubEnv("NEOBOARD_EDITION", ""); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + const { loadEnvSsoProvider } = await import("../env-provider"); + expect(loadEnvSsoProvider()).toBeNull(); + }); + + it("returns null when no OIDC env vars are set", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", ""); + vi.stubEnv("OIDC_CLIENT_ID", ""); + vi.stubEnv("OIDC_CLIENT_SECRET", ""); + const { loadEnvSsoProvider } = await import("../env-provider"); + expect(loadEnvSsoProvider()).toBeNull(); + }); + + it("returns null when only OIDC_ISSUER is set", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", ""); + vi.stubEnv("OIDC_CLIENT_SECRET", ""); + const { loadEnvSsoProvider } = await import("../env-provider"); + expect(loadEnvSsoProvider()).toBeNull(); + }); + + it("returns null when OIDC_CLIENT_SECRET is missing", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", ""); + const { loadEnvSsoProvider } = await import("../env-provider"); + expect(loadEnvSsoProvider()).toBeNull(); + }); + + it("returns provider when enterprise edition and all required vars set", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + + expect(provider).not.toBeNull(); + expect(provider!.id).toBe("sso-env-oidc"); + expect(provider!.type).toBe("oidc"); + expect(provider!.issuer).toBe("https://idp.example.com"); + expect(provider!.clientId).toBe("neoboard"); + expect(provider!.clientSecret).toBe("secret123"); + }); + + it("uses default display name when OIDC_DISPLAY_NAME is not set", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.name).toBe("SSO"); + }); + + it("uses custom display name from OIDC_DISPLAY_NAME", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + vi.stubEnv("OIDC_DISPLAY_NAME", "Company SSO"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.name).toBe("Company SSO"); + }); + + it("uses default scopes when OIDC_SCOPES is not set", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.authorization.params.scope).toBe("openid profile email"); + }); + + it("builds claim mappings from OIDC_CLAIM_KEY and value vars", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + vi.stubEnv("OIDC_CLAIM_KEY", "groups"); + vi.stubEnv("OIDC_ADMIN_VALUE", "neoboard-admins"); + vi.stubEnv("OIDC_CREATOR_VALUE", "neoboard-editors"); + vi.stubEnv("OIDC_READER_VALUE", "neoboard-viewers"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.metadata.claimMappings).toEqual({ + claimKey: "groups", + adminValue: "neoboard-admins", + creatorValue: "neoboard-editors", + readerValue: "neoboard-viewers", + }); + }); + + it("returns null claim mappings when OIDC_CLAIM_KEY is not set", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.metadata.claimMappings).toBeNull(); + }); + + it("uses default auto-provision and role", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.metadata.autoProvision).toBe(true); + expect(provider!.metadata.defaultRole).toBe("creator"); + expect(provider!.metadata.enforceSso).toBe(false); + }); + + it("respects OIDC_AUTO_PROVISION=false", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + vi.stubEnv("OIDC_AUTO_PROVISION", "false"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.metadata.autoProvision).toBe(false); + }); + + it("respects OIDC_DEFAULT_ROLE=reader", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + vi.stubEnv("OIDC_DEFAULT_ROLE", "reader"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.metadata.defaultRole).toBe("reader"); + }); + + it("respects OIDC_ENFORCE_SSO=true", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + vi.stubEnv("OIDC_ENFORCE_SSO", "true"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.metadata.enforceSso).toBe(true); + }); + + it("includes allowDangerousEmailAccountLinking", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + vi.stubEnv("OIDC_ISSUER", "https://idp.example.com"); + vi.stubEnv("OIDC_CLIENT_ID", "neoboard"); + vi.stubEnv("OIDC_CLIENT_SECRET", "secret123"); + const { loadEnvSsoProvider } = await import("../env-provider"); + const provider = loadEnvSsoProvider(); + expect(provider!.allowDangerousEmailAccountLinking).toBe(true); + }); +}); diff --git a/app/src/lib/auth/sso/__tests__/provider-cache.test.ts b/app/src/lib/auth/sso/__tests__/provider-cache.test.ts new file mode 100644 index 00000000..1fa10cb8 --- /dev/null +++ b/app/src/lib/auth/sso/__tests__/provider-cache.test.ts @@ -0,0 +1,147 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; + +// --------------------------------------------------------------------------- +// Mocks +// --------------------------------------------------------------------------- + +const mockLoadSsoProviders = vi.fn(); +const mockLoadEnvSsoProvider = vi.fn(); + +vi.mock("../provider-loader", () => ({ + loadSsoProviders: (...args: unknown[]) => mockLoadSsoProviders(...args), +})); + +vi.mock("../env-provider", () => ({ + loadEnvSsoProvider: () => mockLoadEnvSsoProvider(), +})); + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +describe("getCachedSsoProviders", () => { + beforeEach(async () => { + vi.resetModules(); + vi.clearAllMocks(); + mockLoadEnvSsoProvider.mockReturnValue(null); // default: no env provider + vi.doMock("../provider-loader", () => ({ + loadSsoProviders: (...args: unknown[]) => mockLoadSsoProviders(...args), + })); + vi.doMock("../env-provider", () => ({ + loadEnvSsoProvider: () => mockLoadEnvSsoProvider(), + })); + }); + + it("calls loadSsoProviders on first call (cache miss)", async () => { + const providers = [{ id: "sso-1", name: "Test" }]; + mockLoadSsoProviders.mockResolvedValue(providers); + + const { getCachedSsoProviders } = await import("../provider-cache"); + const result = await getCachedSsoProviders("default"); + + expect(mockLoadSsoProviders).toHaveBeenCalledWith("default"); + expect(result).toEqual(providers); + }); + + it("returns cached result on second call within TTL", async () => { + const providers = [{ id: "sso-1", name: "Test" }]; + mockLoadSsoProviders.mockResolvedValue(providers); + + const { getCachedSsoProviders } = await import("../provider-cache"); + await getCachedSsoProviders("default"); + await getCachedSsoProviders("default"); + + expect(mockLoadSsoProviders).toHaveBeenCalledTimes(1); + }); + + it("caches separately per tenantId", async () => { + mockLoadSsoProviders.mockResolvedValue([]); + + const { getCachedSsoProviders } = await import("../provider-cache"); + await getCachedSsoProviders("tenant-a"); + await getCachedSsoProviders("tenant-b"); + + expect(mockLoadSsoProviders).toHaveBeenCalledTimes(2); + expect(mockLoadSsoProviders).toHaveBeenCalledWith("tenant-a"); + expect(mockLoadSsoProviders).toHaveBeenCalledWith("tenant-b"); + }); + + it("re-fetches after cache expires", async () => { + vi.useFakeTimers(); + const providers = [{ id: "sso-1", name: "Test" }]; + mockLoadSsoProviders.mockResolvedValue(providers); + + const { getCachedSsoProviders } = await import("../provider-cache"); + await getCachedSsoProviders("default"); + expect(mockLoadSsoProviders).toHaveBeenCalledTimes(1); + + // Advance past the 60s TTL + vi.advanceTimersByTime(61_000); + + await getCachedSsoProviders("default"); + expect(mockLoadSsoProviders).toHaveBeenCalledTimes(2); + + vi.useRealTimers(); + }); + + it("invalidateProviderCache clears cache for a tenant", async () => { + const providers = [{ id: "sso-1", name: "Test" }]; + mockLoadSsoProviders.mockResolvedValue(providers); + + const { getCachedSsoProviders, invalidateProviderCache } = + await import("../provider-cache"); + await getCachedSsoProviders("default"); + expect(mockLoadSsoProviders).toHaveBeenCalledTimes(1); + + invalidateProviderCache("default"); + + await getCachedSsoProviders("default"); + expect(mockLoadSsoProviders).toHaveBeenCalledTimes(2); + }); + + it("returns empty array when loadSsoProviders throws and no env provider", async () => { + mockLoadSsoProviders.mockRejectedValue(new Error("DB down")); + + const { getCachedSsoProviders } = await import("../provider-cache"); + const result = await getCachedSsoProviders("default"); + + expect(result).toEqual([]); + }); + + it("prepends env provider before DB providers", async () => { + const envProvider = { id: "sso-env-oidc", name: "Env SSO" }; + const dbProvider = { id: "sso-db-1", name: "DB SSO" }; + mockLoadEnvSsoProvider.mockReturnValue(envProvider); + mockLoadSsoProviders.mockResolvedValue([dbProvider]); + + const { getCachedSsoProviders } = await import("../provider-cache"); + const result = await getCachedSsoProviders("default"); + + expect(result).toHaveLength(2); + expect(result[0].id).toBe("sso-env-oidc"); + expect(result[1].id).toBe("sso-db-1"); + }); + + it("returns only env provider when DB fails", async () => { + const envProvider = { id: "sso-env-oidc", name: "Env SSO" }; + mockLoadEnvSsoProvider.mockReturnValue(envProvider); + mockLoadSsoProviders.mockRejectedValue(new Error("DB down")); + + const { getCachedSsoProviders } = await import("../provider-cache"); + const result = await getCachedSsoProviders("default"); + + expect(result).toHaveLength(1); + expect(result[0].id).toBe("sso-env-oidc"); + }); + + it("returns only DB providers when env provider is not configured", async () => { + mockLoadEnvSsoProvider.mockReturnValue(null); + mockLoadSsoProviders.mockResolvedValue([{ id: "sso-1", name: "DB" }]); + + const { getCachedSsoProviders } = await import("../provider-cache"); + const result = await getCachedSsoProviders("default"); + + expect(result).toHaveLength(1); + expect(result[0].id).toBe("sso-1"); + }); +}); diff --git a/app/src/lib/auth/sso/__tests__/provider-loader.test.ts b/app/src/lib/auth/sso/__tests__/provider-loader.test.ts new file mode 100644 index 00000000..5d562b8d --- /dev/null +++ b/app/src/lib/auth/sso/__tests__/provider-loader.test.ts @@ -0,0 +1,184 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; +import { makeSelectChain } from "@/__tests__/helpers/drizzle-mocks"; + +// --------------------------------------------------------------------------- +// Mocks +// --------------------------------------------------------------------------- + +const mockDb = { + select: vi.fn(), +}; +const mockDecrypt = vi.fn((s: string) => s.replace("encrypted:", "")); + +vi.mock("@/lib/db", () => ({ db: mockDb })); +vi.mock("@/lib/crypto/crypto", () => ({ decrypt: mockDecrypt })); +vi.mock("@/lib/db/schema", () => ({ + ssoProviders: { + id: "id", + name: "name", + protocol: "protocol", + issuer: "issuer", + clientId: "client_id", + clientSecretEncrypted: "client_secret_encrypted", + scopes: "scopes", + claimMappings: "claim_mappings", + autoProvision: "auto_provision", + defaultRole: "default_role", + enforceSso: "enforce_sso", + enabled: "enabled", + tenantId: "tenant_id", + }, +})); +vi.mock("drizzle-orm", () => ({ + eq: vi.fn((a: unknown, b: unknown) => ({ field: a, value: b })), + and: vi.fn((...args: unknown[]) => args), +})); + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +describe("loadSsoProviders", () => { + beforeEach(async () => { + vi.resetModules(); + vi.clearAllMocks(); + vi.doMock("@/lib/db", () => ({ db: mockDb })); + vi.doMock("@/lib/crypto/crypto", () => ({ decrypt: mockDecrypt })); + vi.doMock("@/lib/db/schema", () => ({ + ssoProviders: { + id: "id", + name: "name", + protocol: "protocol", + issuer: "issuer", + clientId: "client_id", + clientSecretEncrypted: "client_secret_encrypted", + scopes: "scopes", + claimMappings: "claim_mappings", + autoProvision: "auto_provision", + defaultRole: "default_role", + enforceSso: "enforce_sso", + enabled: "enabled", + tenantId: "tenant_id", + }, + })); + vi.doMock("drizzle-orm", () => ({ + eq: vi.fn((a: unknown, b: unknown) => ({ field: a, value: b })), + and: vi.fn((...args: unknown[]) => args), + })); + }); + + it("returns empty array when no providers configured", async () => { + mockDb.select.mockReturnValue(makeSelectChain([])); + const { loadSsoProviders } = await import("../provider-loader"); + const providers = await loadSsoProviders("default"); + expect(providers).toEqual([]); + }); + + it("returns OIDC provider configs for enabled providers", async () => { + const dbRow = { + id: "sso-1", + name: "Company SSO", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "client-123", + clientSecretEncrypted: "encrypted:secret-456", + scopes: "openid profile email", + claimMappings: { + claimKey: "groups", + adminValue: "admins", + }, + autoProvision: true, + defaultRole: "creator", + enforceSso: false, + enabled: true, + }; + mockDb.select.mockReturnValue(makeSelectChain([dbRow])); + + const { loadSsoProviders } = await import("../provider-loader"); + const providers = await loadSsoProviders("default"); + + expect(providers).toHaveLength(1); + const p = providers[0]; + expect(p.id).toBe("sso-sso-1"); + expect(p.name).toBe("Company SSO"); + expect(p.type).toBe("oidc"); + expect(p.issuer).toBe("https://idp.example.com"); + expect(p.clientId).toBe("client-123"); + expect(p.clientSecret).toBe("secret-456"); + }); + + it("decrypts client secret", async () => { + const dbRow = { + id: "sso-1", + name: "SSO", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "c", + clientSecretEncrypted: "encrypted:my-secret", + scopes: "openid", + claimMappings: null, + autoProvision: true, + defaultRole: "creator", + enforceSso: false, + enabled: true, + }; + mockDb.select.mockReturnValue(makeSelectChain([dbRow])); + + const { loadSsoProviders } = await import("../provider-loader"); + const providers = await loadSsoProviders("default"); + + expect(mockDecrypt).toHaveBeenCalledWith("encrypted:my-secret"); + expect(providers[0].clientSecret).toBe("my-secret"); + }); + + it("attaches metadata (claimMappings, autoProvision, defaultRole) to provider", async () => { + const dbRow = { + id: "sso-1", + name: "SSO", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "c", + clientSecretEncrypted: "encrypted:s", + scopes: "openid profile email", + claimMappings: { claimKey: "groups", adminValue: "admins" }, + autoProvision: false, + defaultRole: "reader", + enforceSso: true, + enabled: true, + }; + mockDb.select.mockReturnValue(makeSelectChain([dbRow])); + + const { loadSsoProviders } = await import("../provider-loader"); + const providers = await loadSsoProviders("default"); + + expect(providers[0].metadata).toEqual({ + claimMappings: { claimKey: "groups", adminValue: "admins" }, + autoProvision: false, + defaultRole: "reader", + enforceSso: true, + }); + }); + + it("prefixes provider id with sso- to avoid collisions", async () => { + const dbRow = { + id: "my-provider", + name: "Test", + protocol: "oidc", + issuer: "https://idp.example.com", + clientId: "c", + clientSecretEncrypted: "encrypted:s", + scopes: "openid", + claimMappings: null, + autoProvision: true, + defaultRole: "creator", + enforceSso: false, + enabled: true, + }; + mockDb.select.mockReturnValue(makeSelectChain([dbRow])); + + const { loadSsoProviders } = await import("../provider-loader"); + const providers = await loadSsoProviders("default"); + + expect(providers[0].id).toBe("sso-my-provider"); + }); +}); diff --git a/app/src/lib/auth/sso/__tests__/provision.test.ts b/app/src/lib/auth/sso/__tests__/provision.test.ts new file mode 100644 index 00000000..35162313 --- /dev/null +++ b/app/src/lib/auth/sso/__tests__/provision.test.ts @@ -0,0 +1,228 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; +import { + makeSelectChain, + makeInsertChain, + makeUpdateChain, +} from "@/__tests__/helpers/drizzle-mocks"; + +// --------------------------------------------------------------------------- +// Mocks +// --------------------------------------------------------------------------- + +const mockDb = { + select: vi.fn(), + insert: vi.fn(), + update: vi.fn(), +}; + +vi.mock("@/lib/db", () => ({ db: mockDb })); +vi.mock("@/lib/db/schema", () => ({ + users: { + id: "id", + email: "email", + name: "name", + role: "role", + canWrite: "canWrite", + tenantId: "tenantId", + lastLoginAt: "lastLoginAt", + image: "image", + forcePasswordChange: "forcePasswordChange", + }, + ssoProviders: {}, + userRoleEnum: {}, +})); +vi.mock("drizzle-orm", () => ({ + eq: vi.fn((a: unknown, b: unknown) => ({ field: a, value: b })), + and: vi.fn((...args: unknown[]) => args), +})); + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +describe("provisionOrLinkSsoUser", () => { + beforeEach(async () => { + vi.resetModules(); + vi.clearAllMocks(); + vi.doMock("@/lib/db", () => ({ db: mockDb })); + vi.doMock("@/lib/db/schema", () => ({ + users: { + id: "id", + email: "email", + name: "name", + role: "role", + canWrite: "canWrite", + tenantId: "tenantId", + lastLoginAt: "lastLoginAt", + image: "image", + forcePasswordChange: "forcePasswordChange", + }, + ssoProviders: {}, + userRoleEnum: {}, + })); + vi.doMock("drizzle-orm", () => ({ + eq: vi.fn((a: unknown, b: unknown) => ({ field: a, value: b })), + and: vi.fn((...args: unknown[]) => args), + })); + }); + + it("links existing user and updates role when user found by email", async () => { + const existingUser = { + id: "user-1", + name: "Alice", + email: "alice@example.com", + role: "reader", + canWrite: false, + forcePasswordChange: false, + tenantId: "default", + image: null, + }; + + mockDb.select.mockReturnValue(makeSelectChain([existingUser])); + mockDb.update.mockReturnValue( + makeUpdateChain([{ ...existingUser, role: "admin" }]), + ); + + const { provisionOrLinkSsoUser } = await import("../provision"); + const result = await provisionOrLinkSsoUser({ + email: "alice@example.com", + name: "Alice", + image: null, + resolvedRole: "admin", + tenantId: "default", + autoProvision: true, + }); + + expect(result).not.toBeNull(); + expect(result!.id).toBe("user-1"); + expect(mockDb.update).toHaveBeenCalled(); + }); + + it("creates new user when no existing user and autoProvision is true", async () => { + mockDb.select.mockReturnValue(makeSelectChain([])); + + const newUser = { + id: "new-user", + name: "Bob", + email: "bob@example.com", + role: "creator", + canWrite: true, + forcePasswordChange: false, + tenantId: "default", + image: null, + }; + mockDb.insert.mockReturnValue(makeInsertChain([newUser])); + + const { provisionOrLinkSsoUser } = await import("../provision"); + const result = await provisionOrLinkSsoUser({ + email: "bob@example.com", + name: "Bob", + image: null, + resolvedRole: "creator", + tenantId: "default", + autoProvision: true, + }); + + expect(result).not.toBeNull(); + expect(result!.email).toBe("bob@example.com"); + expect(mockDb.insert).toHaveBeenCalled(); + }); + + it("returns null when no existing user and autoProvision is false", async () => { + mockDb.select.mockReturnValue(makeSelectChain([])); + + const { provisionOrLinkSsoUser } = await import("../provision"); + const result = await provisionOrLinkSsoUser({ + email: "unknown@example.com", + name: "Unknown", + image: null, + resolvedRole: "creator", + tenantId: "default", + autoProvision: false, + }); + + expect(result).toBeNull(); + expect(mockDb.insert).not.toHaveBeenCalled(); + }); + + it("updates lastLoginAt on existing user", async () => { + const existingUser = { + id: "user-1", + name: "Alice", + email: "alice@example.com", + role: "creator", + canWrite: true, + forcePasswordChange: false, + tenantId: "default", + image: null, + }; + + mockDb.select.mockReturnValue(makeSelectChain([existingUser])); + + let capturedSet: Record | null = null; + const updateChain = { + set: (vals: Record) => { + capturedSet = vals; + return updateChain; + }, + where: () => Promise.resolve([existingUser]), + returning: () => Promise.resolve([existingUser]), + }; + mockDb.update.mockReturnValue(updateChain); + + const { provisionOrLinkSsoUser } = await import("../provision"); + await provisionOrLinkSsoUser({ + email: "alice@example.com", + name: "Alice", + image: null, + resolvedRole: "creator", + tenantId: "default", + autoProvision: true, + }); + + expect(capturedSet).not.toBeNull(); + expect(capturedSet!.lastLoginAt).toBeInstanceOf(Date); + }); + + it("sets canWrite based on role for new users", async () => { + mockDb.select.mockReturnValue(makeSelectChain([])); + + let capturedValues: Record | null = null; + const insertChain = { + values: (vals: Record) => { + capturedValues = vals; + return insertChain; + }, + onConflictDoUpdate: () => insertChain, + returning: () => + Promise.resolve([ + { + id: "new", + email: "test@example.com", + name: "Test", + role: "reader", + canWrite: false, + forcePasswordChange: false, + tenantId: "default", + image: null, + }, + ]), + }; + mockDb.insert.mockReturnValue(insertChain); + + const { provisionOrLinkSsoUser } = await import("../provision"); + await provisionOrLinkSsoUser({ + email: "test@example.com", + name: "Test", + image: null, + resolvedRole: "reader", + tenantId: "default", + autoProvision: true, + }); + + expect(capturedValues).not.toBeNull(); + // readers get canWrite=false + expect(capturedValues!.canWrite).toBe(false); + expect(capturedValues!.role).toBe("reader"); + }); +}); diff --git a/app/src/lib/auth/sso/claim-mapping.ts b/app/src/lib/auth/sso/claim-mapping.ts new file mode 100644 index 00000000..ec13ff26 --- /dev/null +++ b/app/src/lib/auth/sso/claim-mapping.ts @@ -0,0 +1,75 @@ +import type { SsoClaimMapping, UserRole } from "@/lib/db/schema"; + +/** + * Resolve a NeoBoard role from an OIDC profile using the configured claim mapping. + * + * Supports: + * - Array claims (e.g. `groups: ["neoboard-admins", "users"]`) + * - String claims (e.g. `role: "admin"`) + * - Nested claim keys with dot notation (e.g. `realm_access.roles`) + * + * Priority: admin > creator > reader. If no match, returns `defaultRole`. + */ +export function resolveRoleFromClaims( + profile: Record, + mapping: SsoClaimMapping | null | undefined, + defaultRole: UserRole, +): UserRole { + if (!mapping) return defaultRole; + + const claimValue = getNestedValue(profile, mapping.claimKey); + if (claimValue === undefined || claimValue === null) return defaultRole; + + const values = normalizeToArray(claimValue); + + // Check in priority order: admin > creator > reader. + // Each mapping value supports comma-separated lists (e.g. "devops,platform-team") + // so multiple IdP groups can map to the same NeoBoard role. + if (mapping.adminValue && matchesAny(values, mapping.adminValue)) + return "admin"; + if (mapping.creatorValue && matchesAny(values, mapping.creatorValue)) + return "creator"; + if (mapping.readerValue && matchesAny(values, mapping.readerValue)) + return "reader"; + + return defaultRole; +} + +/** + * Get a potentially nested value from an object using dot notation. + * e.g. getNestedValue({ realm_access: { roles: ["a"] } }, "realm_access.roles") => ["a"] + */ +function getNestedValue(obj: Record, path: string): unknown { + const parts = path.split("."); + let current: unknown = obj; + + for (const part of parts) { + if ( + current === null || + current === undefined || + typeof current !== "object" + ) + return undefined; + current = (current as Record)[part]; + } + + return current; +} + +/** + * Check if any of the user's claim values matches any of the comma-separated + * mapping targets. Supports "devops,platform-team,it-ops" syntax. + */ +function matchesAny(claimValues: string[], mappingValue: string): boolean { + const targets = mappingValue.split(",").map((s) => s.trim()); + return claimValues.some((v) => targets.includes(v)); +} + +/** + * Normalize a claim value to a string array for uniform matching. + */ +function normalizeToArray(value: unknown): string[] { + if (Array.isArray(value)) return value.map(String); + if (typeof value === "string") return [value]; + return []; +} diff --git a/app/src/lib/auth/sso/env-provider.ts b/app/src/lib/auth/sso/env-provider.ts new file mode 100644 index 00000000..b7e1cd54 --- /dev/null +++ b/app/src/lib/auth/sso/env-provider.ts @@ -0,0 +1,60 @@ +import type { LoadedSsoProvider } from "./provider-loader"; +import type { UserRole } from "@/lib/db/schema"; + +/** + * Load a single OIDC provider from environment variables. + * Returns null if: + * - NEOBOARD_EDITION is not "enterprise" + * - Any of OIDC_ISSUER, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET is missing + * + * SSO is an enterprise feature — both env-based and UI-based providers + * require the enterprise edition. + */ +export function loadEnvSsoProvider(): LoadedSsoProvider | null { + if (process.env.NEOBOARD_EDITION !== "enterprise") { + return null; + } + + const issuer = process.env.OIDC_ISSUER; + const clientId = process.env.OIDC_CLIENT_ID; + const clientSecret = process.env.OIDC_CLIENT_SECRET; + + if (!issuer || !clientId || !clientSecret) { + return null; + } + + const claimKey = process.env.OIDC_CLAIM_KEY; + + const validRoles: UserRole[] = ["admin", "creator", "reader"]; + const rawDefaultRole = process.env.OIDC_DEFAULT_ROLE; + const defaultRole: UserRole = + rawDefaultRole && validRoles.includes(rawDefaultRole as UserRole) + ? (rawDefaultRole as UserRole) + : "creator"; + + return { + id: "sso-env-oidc", + name: process.env.OIDC_DISPLAY_NAME || "SSO", + type: "oidc", + issuer, + clientId, + clientSecret, + authorization: { + params: { scope: process.env.OIDC_SCOPES || "openid profile email" }, + }, + allowDangerousEmailAccountLinking: true, + metadata: { + claimMappings: claimKey + ? { + claimKey, + adminValue: process.env.OIDC_ADMIN_VALUE, + creatorValue: process.env.OIDC_CREATOR_VALUE, + readerValue: process.env.OIDC_READER_VALUE, + } + : null, + autoProvision: process.env.OIDC_AUTO_PROVISION !== "false", + defaultRole, + enforceSso: process.env.OIDC_ENFORCE_SSO === "true", + }, + }; +} diff --git a/app/src/lib/auth/sso/provider-cache.ts b/app/src/lib/auth/sso/provider-cache.ts new file mode 100644 index 00000000..d1c68ace --- /dev/null +++ b/app/src/lib/auth/sso/provider-cache.ts @@ -0,0 +1,56 @@ +import { loadSsoProviders } from "./provider-loader"; +import { loadEnvSsoProvider } from "./env-provider"; +import type { LoadedSsoProvider } from "./provider-loader"; + +const CACHE_TTL_MS = 60_000; // 1 minute + +interface CacheEntry { + providers: LoadedSsoProvider[]; + expiresAt: number; +} + +const cache = new Map(); + +/** + * Load SSO providers for a tenant with in-memory caching (60s TTL). + * Merges the env-based provider (if configured) with DB-based providers. + * Env provider comes first so it appears as the primary SSO button. + * Falls back to empty array if the DB query fails. + */ +export async function getCachedSsoProviders( + tenantId: string, +): Promise { + const now = Date.now(); + const cached = cache.get(tenantId); + + if (cached && cached.expiresAt > now) { + return cached.providers; + } + + const envProvider = loadEnvSsoProvider(); + + let dbProviders: LoadedSsoProvider[] = []; + let dbFailed = false; + try { + dbProviders = await loadSsoProviders(tenantId); + } catch { + // DB unavailable — env provider may still work, but don't cache this result + dbFailed = true; + } + + const providers = envProvider ? [envProvider, ...dbProviders] : dbProviders; + // Only cache when the DB query succeeded — caching a fallback result + // would extend the outage window by the full TTL after DB recovery. + if (!dbFailed) { + cache.set(tenantId, { providers, expiresAt: now + CACHE_TTL_MS }); + } + return providers; +} + +/** + * Clear the cached providers for a tenant. Called when an admin + * adds/removes/updates an SSO provider so changes take effect immediately. + */ +export function invalidateProviderCache(tenantId: string): void { + cache.delete(tenantId); +} diff --git a/app/src/lib/auth/sso/provider-loader.ts b/app/src/lib/auth/sso/provider-loader.ts new file mode 100644 index 00000000..000ced69 --- /dev/null +++ b/app/src/lib/auth/sso/provider-loader.ts @@ -0,0 +1,80 @@ +import { and, eq } from "drizzle-orm"; +import { db } from "@/lib/db"; +import { ssoProviders } from "@/lib/db/schema"; +import type { SsoClaimMapping, UserRole } from "@/lib/db/schema"; +import { decrypt } from "@/lib/crypto/crypto"; + +/** + * Metadata attached to each loaded SSO provider — used by the signIn callback + * to resolve roles from claims and decide whether to auto-provision. + */ +export interface SsoProviderMetadata { + claimMappings: SsoClaimMapping | null; + autoProvision: boolean; + defaultRole: UserRole; + enforceSso: boolean; +} + +/** + * Auth.js-compatible OIDC provider config loaded from the database. + * Includes NeoBoard-specific metadata for claim mapping and provisioning. + */ +export interface LoadedSsoProvider { + id: string; + name: string; + type: "oidc"; + issuer: string; + clientId: string; + clientSecret: string; + authorization: { params: { scope: string } }; + allowDangerousEmailAccountLinking: boolean; + metadata: SsoProviderMetadata; +} + +/** + * Load all enabled SSO providers for a tenant from the database. + * Decrypts client secrets and returns Auth.js-compatible provider configs. + */ +export async function loadSsoProviders( + tenantId: string, +): Promise { + const rows = await db + .select({ + id: ssoProviders.id, + name: ssoProviders.name, + protocol: ssoProviders.protocol, + issuer: ssoProviders.issuer, + clientId: ssoProviders.clientId, + clientSecretEncrypted: ssoProviders.clientSecretEncrypted, + scopes: ssoProviders.scopes, + claimMappings: ssoProviders.claimMappings, + autoProvision: ssoProviders.autoProvision, + defaultRole: ssoProviders.defaultRole, + enforceSso: ssoProviders.enforceSso, + enabled: ssoProviders.enabled, + }) + .from(ssoProviders) + .where( + and(eq(ssoProviders.tenantId, tenantId), eq(ssoProviders.enabled, true)), + ); + + return rows.map((row) => ({ + id: "sso-" + row.id, + name: row.name, + type: "oidc" as const, + issuer: row.issuer, + clientId: row.clientId, + clientSecret: decrypt(row.clientSecretEncrypted), + authorization: { params: { scope: row.scopes } }, + // Allow linking SSO accounts to existing users with the same email. + // Our signIn callback handles provisioning and role mapping — the + // adapter just needs to link the OIDC account to the user record. + allowDangerousEmailAccountLinking: true, + metadata: { + claimMappings: row.claimMappings, + autoProvision: row.autoProvision, + defaultRole: row.defaultRole, + enforceSso: row.enforceSso, + }, + })); +} diff --git a/app/src/lib/auth/sso/provision.ts b/app/src/lib/auth/sso/provision.ts new file mode 100644 index 00000000..f0b95a2d --- /dev/null +++ b/app/src/lib/auth/sso/provision.ts @@ -0,0 +1,117 @@ +import { and, eq } from "drizzle-orm"; +import { db } from "@/lib/db"; +import { users } from "@/lib/db/schema"; +import type { UserRole } from "@/lib/db/schema"; + +interface SsoUserInput { + email: string; + name: string | null; + image: string | null; + resolvedRole: UserRole; + tenantId: string; + autoProvision: boolean; +} + +interface SsoUserResult { + id: string; + name: string | null; + email: string; + role: UserRole; + canWrite: boolean; + forcePasswordChange: boolean; + tenantId: string; + image: string | null; +} + +/** + * Provision or link an SSO user during OIDC callback. + * + * - If user exists (email + tenantId match): update role from claims + lastLoginAt, return user. + * - If user doesn't exist and autoProvision is true: create new user with resolved role. + * - If user doesn't exist and autoProvision is false: return null (login rejected). + */ +export async function provisionOrLinkSsoUser( + input: SsoUserInput, +): Promise { + const { email, name, image, resolvedRole, tenantId, autoProvision } = input; + + // Look up existing user by email + tenant + const [existingUser] = await db + .select({ + id: users.id, + name: users.name, + email: users.email, + role: users.role, + canWrite: users.canWrite, + forcePasswordChange: users.forcePasswordChange, + tenantId: users.tenantId, + image: users.image, + }) + .from(users) + .where(and(eq(users.email, email), eq(users.tenantId, tenantId))); + + if (existingUser) { + // Link: update role from IdP claims and lastLoginAt + await db + .update(users) + .set({ + role: resolvedRole, + canWrite: resolvedRole !== "reader", + lastLoginAt: new Date(), + name: name ?? existingUser.name, + image: image ?? existingUser.image, + }) + .where(and(eq(users.id, existingUser.id), eq(users.tenantId, tenantId))); + + return { + ...existingUser, + role: resolvedRole, + canWrite: resolvedRole !== "reader", + name: name ?? existingUser.name, + image: image ?? existingUser.image, + }; + } + + // No existing user — check auto-provision + if (!autoProvision) { + return null; + } + + // Provision new user — use ON CONFLICT to handle race where two concurrent + // first logins for the same (email, tenantId) both pass the existence check. + const canWrite = resolvedRole !== "reader"; + + const [newUser] = await db + .insert(users) + .values({ + email, + name, + image, + role: resolvedRole, + canWrite, + forcePasswordChange: false, + tenantId, + }) + .onConflictDoUpdate({ + target: [users.email, users.tenantId], + set: { + role: resolvedRole, + canWrite, + lastLoginAt: new Date(), + name: name ?? undefined, + image: image ?? undefined, + }, + }) + .returning({ + id: users.id, + name: users.name, + email: users.email, + role: users.role, + canWrite: users.canWrite, + forcePasswordChange: users.forcePasswordChange, + tenantId: users.tenantId, + image: users.image, + }); + + return newUser; +} diff --git a/app/src/lib/db/schema.ts b/app/src/lib/db/schema.ts index f29a51ae..0d6641fd 100644 --- a/app/src/lib/db/schema.ts +++ b/app/src/lib/db/schema.ts @@ -292,6 +292,55 @@ export interface ClickAction { rules?: ClickActionRule[]; } +// ─── Enterprise tables ────────────────────────────────────────────── + +export const ssoProtocolEnum = pgEnum("sso_protocol", ["oidc"]); + +/** + * Claim-mapping configuration for an SSO provider. + * Maps an IdP claim (e.g. "groups") to NeoBoard roles based on claim values. + */ +export interface SsoClaimMapping { + /** The IdP claim key to inspect (e.g. "groups", "roles", "realm_access.roles"). */ + claimKey: string; + /** Claim value that maps to the admin role. */ + adminValue?: string; + /** Claim value that maps to the creator role. */ + creatorValue?: string; + /** Claim value that maps to the reader role. */ + readerValue?: string; +} + +export const ssoProviders = pgTable( + "sso_provider", + { + id: text("id") + .primaryKey() + .$defaultFn(() => crypto.randomUUID()), + tenantId: text("tenant_id").notNull().default("default"), + name: text("name").notNull(), + protocol: ssoProtocolEnum("protocol").notNull().default("oidc"), + issuer: text("issuer").notNull(), + clientId: text("client_id").notNull(), + /** Encrypted with AES-256-GCM (same scheme as connection credentials). */ + clientSecretEncrypted: text("client_secret_encrypted").notNull(), + scopes: text("scopes").notNull().default("openid profile email"), + claimMappings: jsonb("claim_mappings").$type(), + autoProvision: boolean("auto_provision").notNull().default(true), + defaultRole: userRoleEnum("default_role").notNull().default("creator"), + enforceSso: boolean("enforce_sso").notNull().default(false), + enabled: boolean("enabled").notNull().default(true), + createdAt: timestamp("created_at", { mode: "date" }).defaultNow(), + updatedAt: timestamp("updated_at", { mode: "date" }).defaultNow(), + }, + (table) => [ + unique("sso_provider_tenant_issuer_unique").on( + table.tenantId, + table.issuer, + ), + ], +); + // ─── Inferred types ────────────────────────────────────────────────── export type User = typeof users.$inferSelect; @@ -302,3 +351,5 @@ export type Dashboard = typeof dashboards.$inferSelect; export type NewDashboard = typeof dashboards.$inferInsert; export type DashboardShare = typeof dashboardShares.$inferSelect; export type NewDashboardShare = typeof dashboardShares.$inferInsert; +export type SsoProvider = typeof ssoProviders.$inferSelect; +export type NewSsoProvider = typeof ssoProviders.$inferInsert; diff --git a/app/src/lib/extensions/__tests__/extensions.test.ts b/app/src/lib/extensions/__tests__/extensions.test.ts new file mode 100644 index 00000000..124c88b9 --- /dev/null +++ b/app/src/lib/extensions/__tests__/extensions.test.ts @@ -0,0 +1,67 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; + +// --------------------------------------------------------------------------- +// Tests — bootstrapExtensions() +// --------------------------------------------------------------------------- + +describe("bootstrapExtensions", () => { + beforeEach(() => { + vi.resetModules(); + vi.unstubAllEnvs(); + }); + + it("returns empty registry when NEOBOARD_EDITION is not set", async () => { + vi.stubEnv("NEOBOARD_EDITION", ""); + const { bootstrapExtensions } = await import("../extensions"); + const registry = await bootstrapExtensions(); + expect(registry).toBeDefined(); + expect(registry.ssoProviders).toEqual([]); + }); + + it("returns empty registry when NEOBOARD_EDITION is 'community'", async () => { + vi.stubEnv("NEOBOARD_EDITION", "community"); + const { bootstrapExtensions } = await import("../extensions"); + const registry = await bootstrapExtensions(); + expect(registry.ssoProviders).toEqual([]); + }); + + it("calls enterprise register() when NEOBOARD_EDITION is 'enterprise'", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + + const mockRegister = vi.fn(); + vi.doMock("@neoboard/enterprise", () => ({ + register: mockRegister, + })); + + const { bootstrapExtensions } = await import("../extensions"); + await bootstrapExtensions(); + + expect(mockRegister).toHaveBeenCalledTimes(1); + expect(mockRegister).toHaveBeenCalledWith( + expect.objectContaining({ ssoProviders: expect.any(Array) }), + ); + }); + + it("returns default registry when enterprise module is not installed", async () => { + vi.stubEnv("NEOBOARD_EDITION", "enterprise"); + + vi.doMock("@neoboard/enterprise", () => { + throw new Error("Cannot find module '@neoboard/enterprise'"); + }); + + const { bootstrapExtensions } = await import("../extensions"); + const registry = await bootstrapExtensions(); + // Should not throw — graceful fallback + expect(registry.ssoProviders).toEqual([]); + }); + + it("getExtensions returns the cached registry after bootstrap", async () => { + vi.stubEnv("NEOBOARD_EDITION", ""); + const { bootstrapExtensions, getExtensions } = + await import("../extensions"); + await bootstrapExtensions(); + const registry = getExtensions(); + expect(registry).toBeDefined(); + expect(registry.ssoProviders).toEqual([]); + }); +}); diff --git a/app/src/lib/extensions/extensions.ts b/app/src/lib/extensions/extensions.ts new file mode 100644 index 00000000..d1221610 --- /dev/null +++ b/app/src/lib/extensions/extensions.ts @@ -0,0 +1,89 @@ +/** + * Enterprise extension point registry. + * + * The core always creates an empty registry. When NEOBOARD_EDITION=enterprise, + * it dynamically imports @neoboard/enterprise and calls register() to populate + * the registry with enterprise feature handlers. + * + * This keeps enterprise code out of the open-source build — the dynamic import + * only resolves when the enterprise package is installed. + */ + +export interface ExtensionRegistry { + /** Registered SSO/OIDC provider configurations (populated by enterprise). */ + ssoProviders: unknown[]; +} + +function createEmptyRegistry(): ExtensionRegistry { + return { + ssoProviders: [], + }; +} + +/** Check if an error (or its cause chain) indicates a missing module. */ +function checkModuleNotFound(err: unknown): boolean { + if (!(err instanceof Error)) return false; + const e = err as NodeJS.ErrnoException; + if ( + e.code === "MODULE_NOT_FOUND" || + e.code === "ERR_MODULE_NOT_FOUND" || + e.message.includes("Cannot find module") || + e.message.includes("Cannot find package") + ) { + return true; + } + // Check the cause chain (e.g. bundler/test-runner wrappers) + if (e.cause) return checkModuleNotFound(e.cause); + return false; +} + +let registry: ExtensionRegistry | null = null; + +/** + * Initialize the extension registry. Call once at app startup. + * When NEOBOARD_EDITION=enterprise, loads and calls the enterprise register(). + */ +export async function bootstrapExtensions(): Promise { + registry = createEmptyRegistry(); + + const edition = process.env.NEOBOARD_EDITION; + if (edition !== "enterprise") { + return registry; + } + + try { + // Use a variable to prevent webpack from statically analyzing the import. + // This ensures the build succeeds even when @neoboard/enterprise is not installed. + const moduleName = "@neoboard/enterprise"; + const enterprise = await import(/* webpackIgnore: true */ moduleName); + enterprise.register(registry); + } catch (err: unknown) { + // Distinguish "module not installed" from runtime errors inside register(). + // MODULE_NOT_FOUND / ERR_MODULE_NOT_FOUND means the package isn't installed — + // that's expected in community mode. Any other error is a real bug that + // should propagate so it doesn't silently disable enterprise features. + const isModuleNotFound = checkModuleNotFound(err); + + if (isModuleNotFound) { + console.warn( + "[extensions] NEOBOARD_EDITION=enterprise but @neoboard/enterprise is not installed. Running in community mode.", + ); + } else { + throw err; + } + } + + return registry; +} + +/** + * Get the current extension registry. Throws if bootstrapExtensions() has not been called. + */ +export function getExtensions(): ExtensionRegistry { + if (!registry) { + throw new Error( + "Extension registry not initialized. Call bootstrapExtensions() first.", + ); + } + return registry; +} diff --git a/app/tsconfig.tsbuildinfo b/app/tsconfig.tsbuildinfo index 08e1525b..2b41fd87 100644 --- a/app/tsconfig.tsbuildinfo +++ b/app/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/buffer/index.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/entry-constants.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/lib/bundler.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.d.ts","./node_modules/next/dist/server/app-render/vary-params.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/shared/lib/app-router-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/use-cache/use-cache-wrapper.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/adapter/setup-node-env.external.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","./node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/client/components/readonly-url-search-params.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/segment-cache/types.d.ts","./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/next/dist/client/components/segment-cache/scheduler.d.ts","./node_modules/next/dist/client/components/segment-cache/cache-map.d.ts","./node_modules/next/dist/client/components/segment-cache/vary-path.d.ts","./node_modules/next/dist/client/components/segment-cache/cache.d.ts","./node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","./node_modules/next/dist/client/components/segment-cache/navigation.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","./node_modules/next/dist/server/load-default-error-components.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-samples.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/staged-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/get-supported-browsers.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/lib/cpu-profile.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/define-env.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","./node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/next/dist/server/dev/debug-channel.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-validation.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.d.ts","./node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/@types/react/compiler-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/@types/react-dom/client.d.ts","./node_modules/@types/react-dom/static.d.ts","./node_modules/@types/react-dom/server.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/server/web/spec-extension/url-pattern.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/dist/server/web/exports/index.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/shared/lib/size-limit.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/build/adapter/build-complete.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/dist/client/components/catch-error.d.ts","./node_modules/next/dist/api/error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./.next/dev/types/routes.d.ts","./next-env.d.ts","./node_modules/drizzle-kit/index.d.mts","./drizzle.config.ts","./next.config.ts","./node_modules/playwright-core/types/protocol.d.ts","./node_modules/playwright-core/types/structs.d.ts","./node_modules/playwright-core/types/types.d.ts","./node_modules/playwright-core/index.d.ts","./node_modules/playwright/types/test.d.ts","./node_modules/playwright/test.d.ts","./node_modules/@playwright/test/index.d.ts","./node_modules/nextcov/dist/index.d.ts","./playwright.config.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./node_modules/tailwindcss-animate/index.d.ts","./tailwind.config.ts","./node_modules/@vitest/pretty-format/dist/index.d.ts","./node_modules/@vitest/utils/dist/display.d.ts","./node_modules/@vitest/utils/dist/types.d.ts","./node_modules/@vitest/utils/dist/helpers.d.ts","./node_modules/@vitest/utils/dist/timers.d.ts","./node_modules/@vitest/utils/dist/index.d.ts","./node_modules/@vitest/runner/dist/tasks.d-c7uxawj9.d.ts","./node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","./node_modules/@vitest/utils/dist/diff.d.ts","./node_modules/@vitest/runner/dist/types.d.ts","./node_modules/@vitest/runner/dist/index.d.ts","./node_modules/@vitest/spy/dist/index.d.ts","./node_modules/tinyrainbow/dist/index.d.ts","./node_modules/@standard-schema/spec/dist/index.d.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@vitest/expect/dist/index.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/rollup/dist/rollup.d.ts","./node_modules/rollup/dist/parseast.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/dist/node/module-runner.d.ts","./node_modules/vite/node_modules/esbuild/lib/main.d.ts","./node_modules/vite/types/internal/terseroptions.d.ts","./node_modules/vite/types/internal/csspreprocessoroptions.d.ts","./node_modules/vite/types/internal/lightningcssoptions.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/metadata.d.ts","./node_modules/vite/dist/node/index.d.ts","./node_modules/@vitest/snapshot/dist/environment.d-dhdq1csl.d.ts","./node_modules/@vitest/snapshot/dist/rawsnapshot.d-lfsmjfud.d.ts","./node_modules/@vitest/snapshot/dist/index.d.ts","./node_modules/vitest/dist/chunks/traces.d.402v_yfi.d.ts","./node_modules/vitest/dist/chunks/rpc.d.rh3apgef.d.ts","./node_modules/vitest/dist/chunks/config.d.cy95hicx.d.ts","./node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","./node_modules/vitest/dist/chunks/worker.d.dyxm8del.d.ts","./node_modules/vitest/dist/chunks/browser.d.chkacdzh.d.ts","./node_modules/@vitest/mocker/dist/types.d-b8cckmht.d.ts","./node_modules/@vitest/mocker/dist/index.d-c-slyzi-.d.ts","./node_modules/@vitest/mocker/dist/index.d.ts","./node_modules/@vitest/utils/dist/source-map.d.ts","./node_modules/vitest/dist/chunks/coverage.d.bztk59wp.d.ts","./node_modules/@vitest/utils/dist/serialize.d.ts","./node_modules/@vitest/utils/dist/error.d.ts","./node_modules/vitest/dist/browser.d.ts","./node_modules/vitest/browser/context.d.ts","./node_modules/vitest/optional-types.d.ts","./node_modules/@vitest/runner/dist/utils.d.ts","./node_modules/tinybench/dist/index.d.ts","./node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","./node_modules/@vitest/snapshot/dist/manager.d.ts","./node_modules/vitest/dist/chunks/reporters.d.cwxni2jg.d.ts","./node_modules/vitest/dist/chunks/plugin.d.ctqpeehp.d.ts","./node_modules/vitest/dist/config.d.ts","./node_modules/vitest/config.d.ts","./node_modules/vite-tsconfig-paths/dist/index.d.ts","./vitest.config.ts","./node_modules/nextcov/dist/playwright/index.d.ts","./node_modules/dotenv/lib/main.d.ts","./e2e/pages/auth.ts","./e2e/pages/sidebar.ts","./e2e/fixtures.ts","./e2e/api-docs.spec.ts","./e2e/api-keys.spec.ts","./e2e/auth-states.spec.ts","./e2e/auth.spec.ts","./e2e/auto-refresh.spec.ts","./e2e/charts.spec.ts","./e2e/code-completion.spec.ts","./e2e/connection-advanced.spec.ts","./e2e/connections.spec.ts","./e2e/content-widgets.spec.ts","./e2e/dashboard-metadata.spec.ts","./e2e/dashboard-portability.spec.ts","./e2e/dashboard-states.spec.ts","./e2e/dashboard-visibility.spec.ts","./e2e/dashboards.spec.ts","./e2e/design-system.spec.ts","./e2e/empty-states.spec.ts","./e2e/form-widget.spec.ts","./node_modules/testcontainers/build/common/file-lock.d.ts","./node_modules/testcontainers/build/common/hash.d.ts","./node_modules/testcontainers/build/common/logger.d.ts","./node_modules/testcontainers/build/common/clock.d.ts","./node_modules/testcontainers/build/common/retry.d.ts","./node_modules/testcontainers/build/common/streams.d.ts","./node_modules/testcontainers/build/common/time.d.ts","./node_modules/testcontainers/build/common/type-guards.d.ts","./node_modules/testcontainers/build/common/uuid.d.ts","./node_modules/testcontainers/build/common/index.d.ts","./node_modules/testcontainers/build/container-runtime/auth/types.d.ts","./node_modules/testcontainers/build/container-runtime/auth/get-auth-config.d.ts","./node_modules/testcontainers/build/container-runtime/clients/compose/types.d.ts","./node_modules/testcontainers/build/container-runtime/clients/compose/compose-client.d.ts","./node_modules/@types/ssh2/index.d.ts","./node_modules/@types/docker-modem/index.d.ts","./node_modules/@types/dockerode/index.d.ts","./node_modules/testcontainers/build/container-runtime/clients/container/types.d.ts","./node_modules/testcontainers/build/types.d.ts","./node_modules/testcontainers/build/container-runtime/clients/container/container-client.d.ts","./node_modules/testcontainers/build/container-runtime/image-name.d.ts","./node_modules/testcontainers/build/container-runtime/clients/image/image-client.d.ts","./node_modules/testcontainers/build/container-runtime/clients/network/network-client.d.ts","./node_modules/testcontainers/build/container-runtime/clients/types.d.ts","./node_modules/testcontainers/build/container-runtime/clients/client.d.ts","./node_modules/testcontainers/build/container-runtime/clients/compose/parse-compose-container-name.d.ts","./node_modules/testcontainers/build/container-runtime/index.d.ts","./node_modules/testcontainers/build/utils/pull-policy.d.ts","./node_modules/testcontainers/build/utils/port.d.ts","./node_modules/testcontainers/build/utils/bound-ports.d.ts","./node_modules/testcontainers/build/wait-strategies/wait-strategy.d.ts","./node_modules/testcontainers/build/network/network.d.ts","./node_modules/testcontainers/build/test-container.d.ts","./node_modules/testcontainers/build/generic-container/started-generic-container.d.ts","./node_modules/testcontainers/build/docker-compose-environment/downed-docker-compose-environment.d.ts","./node_modules/testcontainers/build/docker-compose-environment/stopped-docker-compose-environment.d.ts","./node_modules/testcontainers/build/docker-compose-environment/started-docker-compose-environment.d.ts","./node_modules/testcontainers/build/docker-compose-environment/docker-compose-environment.d.ts","./node_modules/testcontainers/build/generic-container/abstract-started-container.d.ts","./node_modules/testcontainers/build/generic-container/abstract-stopped-container.d.ts","./node_modules/testcontainers/build/generic-container/generic-container-builder.d.ts","./node_modules/testcontainers/build/generic-container/generic-container.d.ts","./node_modules/testcontainers/build/reaper/reaper.d.ts","./node_modules/testcontainers/build/socat/socat-container.d.ts","./node_modules/testcontainers/build/test-containers.d.ts","./node_modules/testcontainers/build/utils/labels.d.ts","./node_modules/testcontainers/build/utils/port-generator.d.ts","./node_modules/testcontainers/build/wait-strategies/http-wait-strategy.d.ts","./node_modules/testcontainers/build/wait-strategies/startup-check-strategy.d.ts","./node_modules/testcontainers/build/wait-strategies/composite-wait-strategy.d.ts","./node_modules/testcontainers/build/wait-strategies/log-wait-strategy.d.ts","./node_modules/testcontainers/build/wait-strategies/shell-wait-strategy.d.ts","./node_modules/testcontainers/build/wait-strategies/wait.d.ts","./node_modules/testcontainers/build/wait-strategies/wait-for-container.d.ts","./node_modules/testcontainers/build/index.d.ts","./node_modules/postgres/types/index.d.ts","./node_modules/drizzle-orm/entity.d.ts","./node_modules/drizzle-orm/logger.d.ts","./node_modules/drizzle-orm/casing.d.ts","./node_modules/drizzle-orm/subquery.d.ts","./node_modules/drizzle-orm/table.d.ts","./node_modules/drizzle-orm/operations.d.ts","./node_modules/drizzle-orm/query-builders/select.types.d.ts","./node_modules/drizzle-orm/sql/sql.d.ts","./node_modules/drizzle-orm/utils.d.ts","./node_modules/drizzle-orm/sql/expressions/conditions.d.ts","./node_modules/drizzle-orm/sql/expressions/select.d.ts","./node_modules/drizzle-orm/sql/expressions/index.d.ts","./node_modules/drizzle-orm/sql/functions/aggregate.d.ts","./node_modules/drizzle-orm/query-builders/query-builder.d.ts","./node_modules/drizzle-orm/sql/functions/vector.d.ts","./node_modules/drizzle-orm/sql/functions/index.d.ts","./node_modules/drizzle-orm/sql/index.d.ts","./node_modules/drizzle-orm/gel-core/checks.d.ts","./node_modules/drizzle-orm/gel-core/sequence.d.ts","./node_modules/drizzle-orm/gel-core/columns/int.common.d.ts","./node_modules/drizzle-orm/gel-core/columns/bigintt.d.ts","./node_modules/drizzle-orm/gel-core/columns/boolean.d.ts","./node_modules/drizzle-orm/gel-core/columns/bytes.d.ts","./node_modules/drizzle-orm/gel-core/columns/custom.d.ts","./node_modules/drizzle-orm/gel-core/columns/date-duration.d.ts","./node_modules/drizzle-orm/gel-core/columns/decimal.d.ts","./node_modules/drizzle-orm/gel-core/columns/double-precision.d.ts","./node_modules/drizzle-orm/gel-core/columns/duration.d.ts","./node_modules/drizzle-orm/gel-core/columns/integer.d.ts","./node_modules/drizzle-orm/gel-core/columns/json.d.ts","./node_modules/drizzle-orm/gel-core/columns/date.common.d.ts","./node_modules/drizzle-orm/gel-core/columns/localdate.d.ts","./node_modules/drizzle-orm/gel-core/columns/localtime.d.ts","./node_modules/drizzle-orm/gel-core/columns/real.d.ts","./node_modules/drizzle-orm/gel-core/columns/relative-duration.d.ts","./node_modules/drizzle-orm/gel-core/columns/smallint.d.ts","./node_modules/drizzle-orm/gel-core/columns/text.d.ts","./node_modules/drizzle-orm/gel-core/columns/timestamp.d.ts","./node_modules/drizzle-orm/gel-core/columns/timestamptz.d.ts","./node_modules/drizzle-orm/gel-core/columns/uuid.d.ts","./node_modules/drizzle-orm/gel-core/columns/all.d.ts","./node_modules/drizzle-orm/gel-core/indexes.d.ts","./node_modules/drizzle-orm/gel-core/roles.d.ts","./node_modules/drizzle-orm/gel-core/policies.d.ts","./node_modules/drizzle-orm/gel-core/primary-keys.d.ts","./node_modules/drizzle-orm/gel-core/unique-constraint.d.ts","./node_modules/drizzle-orm/gel-core/table.d.ts","./node_modules/drizzle-orm/gel-core/foreign-keys.d.ts","./node_modules/drizzle-orm/gel-core/columns/common.d.ts","./node_modules/drizzle-orm/gel-core/columns/bigint.d.ts","./node_modules/drizzle-orm/gel-core/columns/index.d.ts","./node_modules/drizzle-orm/gel-core/view-base.d.ts","./node_modules/drizzle-orm/cache/core/types.d.ts","./node_modules/drizzle-orm/relations.d.ts","./node_modules/drizzle-orm/session.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/count.d.ts","./node_modules/drizzle-orm/query-promise.d.ts","./node_modules/drizzle-orm/runnable-query.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/query.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/raw.d.ts","./node_modules/drizzle-orm/gel-core/subquery.d.ts","./node_modules/drizzle-orm/gel-core/db.d.ts","./node_modules/drizzle-orm/gel-core/session.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/delete.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/update.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/insert.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/refresh-materialized-view.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/select.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/index.d.ts","./node_modules/drizzle-orm/gel-core/dialect.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/query-builder.d.ts","./node_modules/drizzle-orm/gel-core/view-common.d.ts","./node_modules/drizzle-orm/gel-core/view.d.ts","./node_modules/drizzle-orm/gel-core/query-builders/select.types.d.ts","./node_modules/drizzle-orm/gel-core/alias.d.ts","./node_modules/drizzle-orm/gel-core/schema.d.ts","./node_modules/drizzle-orm/gel-core/utils.d.ts","./node_modules/drizzle-orm/gel-core/index.d.ts","./node_modules/drizzle-orm/mysql-core/checks.d.ts","./node_modules/drizzle-orm/mysql-core/columns/binary.d.ts","./node_modules/drizzle-orm/mysql-core/columns/boolean.d.ts","./node_modules/drizzle-orm/mysql-core/columns/char.d.ts","./node_modules/drizzle-orm/mysql-core/columns/custom.d.ts","./node_modules/drizzle-orm/mysql-core/columns/date.d.ts","./node_modules/drizzle-orm/mysql-core/columns/datetime.d.ts","./node_modules/drizzle-orm/mysql-core/columns/decimal.d.ts","./node_modules/drizzle-orm/mysql-core/columns/double.d.ts","./node_modules/drizzle-orm/mysql-core/columns/enum.d.ts","./node_modules/drizzle-orm/mysql-core/columns/float.d.ts","./node_modules/drizzle-orm/mysql-core/columns/int.d.ts","./node_modules/drizzle-orm/mysql-core/columns/json.d.ts","./node_modules/drizzle-orm/mysql-core/columns/mediumint.d.ts","./node_modules/drizzle-orm/mysql-core/columns/real.d.ts","./node_modules/drizzle-orm/mysql-core/columns/serial.d.ts","./node_modules/drizzle-orm/mysql-core/columns/smallint.d.ts","./node_modules/drizzle-orm/mysql-core/columns/text.d.ts","./node_modules/drizzle-orm/mysql-core/columns/time.d.ts","./node_modules/drizzle-orm/mysql-core/columns/date.common.d.ts","./node_modules/drizzle-orm/mysql-core/columns/timestamp.d.ts","./node_modules/drizzle-orm/mysql-core/columns/tinyint.d.ts","./node_modules/drizzle-orm/mysql-core/columns/varbinary.d.ts","./node_modules/drizzle-orm/mysql-core/columns/varchar.d.ts","./node_modules/drizzle-orm/mysql-core/columns/year.d.ts","./node_modules/drizzle-orm/mysql-core/columns/all.d.ts","./node_modules/drizzle-orm/mysql-core/indexes.d.ts","./node_modules/drizzle-orm/mysql-core/primary-keys.d.ts","./node_modules/drizzle-orm/mysql-core/unique-constraint.d.ts","./node_modules/drizzle-orm/mysql-core/table.d.ts","./node_modules/drizzle-orm/mysql-core/foreign-keys.d.ts","./node_modules/drizzle-orm/mysql-core/columns/common.d.ts","./node_modules/drizzle-orm/mysql-core/columns/bigint.d.ts","./node_modules/drizzle-orm/mysql-core/columns/index.d.ts","./node_modules/drizzle-orm/migrator.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/delete.d.ts","./node_modules/drizzle-orm/mysql-core/subquery.d.ts","./node_modules/drizzle-orm/mysql-core/view-base.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/select.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/query-builder.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/update.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/insert.d.ts","./node_modules/drizzle-orm/mysql-core/dialect.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/count.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/index.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/query.d.ts","./node_modules/drizzle-orm/mysql-core/db.d.ts","./node_modules/drizzle-orm/mysql-core/session.d.ts","./node_modules/drizzle-orm/mysql-core/view-common.d.ts","./node_modules/drizzle-orm/mysql-core/view.d.ts","./node_modules/drizzle-orm/mysql-core/query-builders/select.types.d.ts","./node_modules/drizzle-orm/mysql-core/alias.d.ts","./node_modules/drizzle-orm/mysql-core/schema.d.ts","./node_modules/drizzle-orm/mysql-core/utils.d.ts","./node_modules/drizzle-orm/mysql-core/index.d.ts","./node_modules/drizzle-orm/pg-core/checks.d.ts","./node_modules/drizzle-orm/pg-core/columns/bigserial.d.ts","./node_modules/drizzle-orm/pg-core/columns/boolean.d.ts","./node_modules/drizzle-orm/pg-core/columns/char.d.ts","./node_modules/drizzle-orm/pg-core/columns/cidr.d.ts","./node_modules/drizzle-orm/pg-core/columns/custom.d.ts","./node_modules/drizzle-orm/pg-core/columns/date.common.d.ts","./node_modules/drizzle-orm/pg-core/columns/date.d.ts","./node_modules/drizzle-orm/pg-core/columns/double-precision.d.ts","./node_modules/drizzle-orm/pg-core/columns/inet.d.ts","./node_modules/drizzle-orm/pg-core/sequence.d.ts","./node_modules/drizzle-orm/pg-core/columns/int.common.d.ts","./node_modules/drizzle-orm/pg-core/columns/integer.d.ts","./node_modules/drizzle-orm/pg-core/columns/timestamp.d.ts","./node_modules/drizzle-orm/pg-core/columns/interval.d.ts","./node_modules/drizzle-orm/pg-core/columns/json.d.ts","./node_modules/drizzle-orm/pg-core/columns/jsonb.d.ts","./node_modules/drizzle-orm/pg-core/columns/line.d.ts","./node_modules/drizzle-orm/pg-core/columns/macaddr.d.ts","./node_modules/drizzle-orm/pg-core/columns/macaddr8.d.ts","./node_modules/drizzle-orm/pg-core/columns/numeric.d.ts","./node_modules/drizzle-orm/pg-core/columns/point.d.ts","./node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.d.ts","./node_modules/drizzle-orm/pg-core/columns/real.d.ts","./node_modules/drizzle-orm/pg-core/columns/serial.d.ts","./node_modules/drizzle-orm/pg-core/columns/smallint.d.ts","./node_modules/drizzle-orm/pg-core/columns/smallserial.d.ts","./node_modules/drizzle-orm/pg-core/columns/text.d.ts","./node_modules/drizzle-orm/pg-core/columns/time.d.ts","./node_modules/drizzle-orm/pg-core/columns/uuid.d.ts","./node_modules/drizzle-orm/pg-core/columns/varchar.d.ts","./node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.d.ts","./node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.d.ts","./node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.d.ts","./node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.d.ts","./node_modules/drizzle-orm/pg-core/columns/all.d.ts","./node_modules/drizzle-orm/pg-core/indexes.d.ts","./node_modules/drizzle-orm/pg-core/roles.d.ts","./node_modules/drizzle-orm/pg-core/policies.d.ts","./node_modules/drizzle-orm/pg-core/primary-keys.d.ts","./node_modules/drizzle-orm/pg-core/unique-constraint.d.ts","./node_modules/drizzle-orm/pg-core/table.d.ts","./node_modules/drizzle-orm/pg-core/foreign-keys.d.ts","./node_modules/drizzle-orm/pg-core/columns/common.d.ts","./node_modules/drizzle-orm/pg-core/columns/bigint.d.ts","./node_modules/drizzle-orm/pg-core/columns/enum.d.ts","./node_modules/drizzle-orm/pg-core/columns/index.d.ts","./node_modules/drizzle-orm/pg-core/view-base.d.ts","./node_modules/drizzle-orm/pg-core/session.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/delete.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/update.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/insert.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.d.ts","./node_modules/drizzle-orm/pg-core/subquery.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/select.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/index.d.ts","./node_modules/drizzle-orm/pg-core/dialect.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/query-builder.d.ts","./node_modules/drizzle-orm/pg-core/view-common.d.ts","./node_modules/drizzle-orm/pg-core/view.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/select.types.d.ts","./node_modules/drizzle-orm/pg-core/alias.d.ts","./node_modules/drizzle-orm/pg-core/schema.d.ts","./node_modules/drizzle-orm/pg-core/utils.d.ts","./node_modules/drizzle-orm/pg-core/utils/array.d.ts","./node_modules/drizzle-orm/pg-core/utils/index.d.ts","./node_modules/drizzle-orm/pg-core/index.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/binary.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/boolean.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/char.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/custom.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/date.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/datetime.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/decimal.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/double.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/enum.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/float.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/int.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/json.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/mediumint.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/real.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/serial.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/smallint.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/text.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/time.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/date.common.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/timestamp.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/tinyint.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/varbinary.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/varchar.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/vector.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/year.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/all.d.ts","./node_modules/drizzle-orm/singlestore-core/indexes.d.ts","./node_modules/drizzle-orm/singlestore-core/primary-keys.d.ts","./node_modules/drizzle-orm/singlestore-core/unique-constraint.d.ts","./node_modules/drizzle-orm/singlestore-core/table.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/common.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/bigint.d.ts","./node_modules/drizzle-orm/singlestore-core/columns/index.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/delete.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/update.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/insert.d.ts","./node_modules/drizzle-orm/singlestore-core/dialect.d.ts","./node_modules/drizzle-orm/cache/core/index.d.ts","./node_modules/drizzle-orm/singlestore/session.d.ts","./node_modules/drizzle-orm/singlestore/driver.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/count.d.ts","./node_modules/drizzle-orm/singlestore-core/subquery.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/select.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/query-builder.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/index.d.ts","./node_modules/drizzle-orm/singlestore-core/db.d.ts","./node_modules/drizzle-orm/singlestore-core/session.d.ts","./node_modules/drizzle-orm/singlestore-core/query-builders/select.types.d.ts","./node_modules/drizzle-orm/singlestore-core/alias.d.ts","./node_modules/drizzle-orm/singlestore-core/schema.d.ts","./node_modules/drizzle-orm/singlestore-core/utils.d.ts","./node_modules/drizzle-orm/singlestore-core/index.d.ts","./node_modules/drizzle-orm/sqlite-core/checks.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/custom.d.ts","./node_modules/drizzle-orm/sqlite-core/indexes.d.ts","./node_modules/drizzle-orm/sqlite-core/primary-keys.d.ts","./node_modules/drizzle-orm/sqlite-core/unique-constraint.d.ts","./node_modules/drizzle-orm/sqlite-core/view-base.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/count.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/query.d.ts","./node_modules/drizzle-orm/sqlite-core/subquery.d.ts","./node_modules/drizzle-orm/sqlite-core/db.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/raw.d.ts","./node_modules/drizzle-orm/sqlite-core/session.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/delete.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/update.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/insert.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/select.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/index.d.ts","./node_modules/drizzle-orm/sqlite-core/dialect.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.d.ts","./node_modules/drizzle-orm/sqlite-core/view.d.ts","./node_modules/drizzle-orm/sqlite-core/utils.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/integer.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/numeric.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/real.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/text.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/all.d.ts","./node_modules/drizzle-orm/sqlite-core/table.d.ts","./node_modules/drizzle-orm/sqlite-core/foreign-keys.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/common.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/blob.d.ts","./node_modules/drizzle-orm/sqlite-core/columns/index.d.ts","./node_modules/drizzle-orm/sqlite-core/query-builders/select.types.d.ts","./node_modules/drizzle-orm/sqlite-core/alias.d.ts","./node_modules/drizzle-orm/sqlite-core/index.d.ts","./node_modules/drizzle-orm/column-builder.d.ts","./node_modules/drizzle-orm/column.d.ts","./node_modules/drizzle-orm/alias.d.ts","./node_modules/drizzle-orm/errors.d.ts","./node_modules/drizzle-orm/view-common.d.ts","./node_modules/drizzle-orm/index.d.ts","./node_modules/drizzle-orm/cache/core/cache.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/count.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/query.d.ts","./node_modules/drizzle-orm/pg-core/query-builders/raw.d.ts","./node_modules/drizzle-orm/pg-core/db.d.ts","./node_modules/drizzle-orm/postgres-js/session.d.ts","./node_modules/drizzle-orm/postgres-js/driver.d.ts","./node_modules/drizzle-orm/postgres-js/index.d.ts","./node_modules/drizzle-orm/postgres-js/migrator.d.ts","./e2e/global-setup.ts","./e2e/global-teardown.ts","./e2e/grid.spec.ts","./e2e/navigation.spec.ts","./e2e/new-charts.spec.ts","./e2e/parameters.spec.ts","./e2e/performance.spec.ts","./e2e/responsive.spec.ts","./e2e/settings-profile.spec.ts","./e2e/sidebar-states.spec.ts","./e2e/styling-rules.spec.ts","./e2e/transforms.spec.ts","./e2e/users.spec.ts","./e2e/widget-lab.spec.ts","./e2e/widget-states.spec.ts","./e2e/widgets.spec.ts","./node_modules/bcryptjs/types.d.ts","./node_modules/bcryptjs/index.d.ts","./node_modules/@auth/core/lib/vendored/cookie.d.ts","./node_modules/oauth4webapi/build/index.d.ts","./node_modules/@auth/core/lib/utils/cookie.d.ts","./node_modules/@auth/core/warnings.d.ts","./node_modules/@auth/core/lib/symbols.d.ts","./node_modules/@auth/core/lib/index.d.ts","./node_modules/@auth/core/lib/utils/env.d.ts","./node_modules/@auth/core/jwt.d.ts","./node_modules/@auth/core/lib/utils/actions.d.ts","./node_modules/@auth/core/index.d.ts","./node_modules/@auth/core/lib/utils/logger.d.ts","./node_modules/@auth/core/providers/webauthn.d.ts","./node_modules/@auth/core/lib/utils/webauthn-utils.d.ts","./node_modules/@auth/core/types.d.ts","./node_modules/preact/src/jsx.d.ts","./node_modules/preact/src/index.d.ts","./node_modules/@auth/core/providers/credentials.d.ts","./node_modules/@auth/core/providers/provider-types.d.ts","./node_modules/@auth/core/providers/nodemailer.d.ts","./node_modules/@auth/core/providers/email.d.ts","./node_modules/@auth/core/providers/oauth.d.ts","./node_modules/@auth/core/providers/index.d.ts","./node_modules/@auth/core/adapters.d.ts","../component/src/lib/utils.ts","../component/src/charts/types.ts","../component/src/charts/theme.ts","../component/src/charts/palettes.ts","../component/src/charts/base-chart.tsx","../component/src/charts/color-threshold.ts","../component/src/charts/styling-rule.ts","../component/src/hooks/usecontainersize.ts","../component/src/charts/chart-utils.ts","../component/src/charts/line-chart.tsx","../component/src/charts/bar-chart.tsx","../component/src/charts/pie-chart.tsx","../component/src/components/ui/card.tsx","../component/src/charts/single-value-chart.tsx","../component/src/components/ui/popover.tsx","../component/src/components/ui/label.tsx","../component/src/charts/graph-chart.tsx","../component/src/lib/design-tokens.ts","../component/src/charts/map-chart.tsx","../component/src/charts/gauge-chart.tsx","../component/src/charts/sankey-chart.tsx","../component/src/charts/sunburst-chart.tsx","../component/src/charts/radar-chart.tsx","../component/src/charts/treemap-chart.tsx","../component/src/charts/index.ts","./src/lib/db/schema.ts","./src/lib/db/index.ts","./src/lib/bootstrap.ts","./src/instrumentation.ts","./node_modules/next-auth/node_modules/@auth/core/lib/vendored/cookie.d.ts","./node_modules/next-auth/node_modules/@auth/core/lib/utils/cookie.d.ts","./node_modules/next-auth/node_modules/@auth/core/warnings.d.ts","./node_modules/next-auth/node_modules/@auth/core/lib/symbols.d.ts","./node_modules/next-auth/node_modules/@auth/core/lib/index.d.ts","./node_modules/next-auth/node_modules/@auth/core/lib/utils/env.d.ts","./node_modules/next-auth/node_modules/@auth/core/providers/credentials.d.ts","./node_modules/next-auth/node_modules/@auth/core/providers/provider-types.d.ts","./node_modules/next-auth/node_modules/@auth/core/providers/nodemailer.d.ts","./node_modules/next-auth/node_modules/@auth/core/providers/email.d.ts","./node_modules/next-auth/node_modules/@auth/core/providers/oauth.d.ts","./node_modules/next-auth/node_modules/@auth/core/providers/webauthn.d.ts","./node_modules/next-auth/node_modules/@auth/core/providers/index.d.ts","./node_modules/next-auth/node_modules/@auth/core/adapters.d.ts","./node_modules/next-auth/node_modules/@auth/core/lib/utils/actions.d.ts","./node_modules/next-auth/node_modules/@auth/core/index.d.ts","./node_modules/next-auth/node_modules/@auth/core/lib/utils/logger.d.ts","./node_modules/next-auth/node_modules/@auth/core/lib/utils/webauthn-utils.d.ts","./node_modules/next-auth/node_modules/@auth/core/types.d.ts","./node_modules/next-auth/node_modules/@auth/core/jwt.d.ts","./node_modules/next-auth/jwt.d.ts","./src/proxy.ts","./node_modules/vitest/dist/chunks/global.d.b15mdlcr.d.ts","./node_modules/vitest/dist/chunks/suite.d.bjwk38hb.d.ts","./node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","./node_modules/expect-type/dist/utils.d.ts","./node_modules/expect-type/dist/overloads.d.ts","./node_modules/expect-type/dist/branding.d.ts","./node_modules/expect-type/dist/messages.d.ts","./node_modules/expect-type/dist/index.d.ts","./node_modules/vitest/dist/index.d.ts","./src/__tests__/instrumentation.test.ts","./src/__tests__/helpers/drizzle-mocks.ts","./src/__tests__/helpers/next-mocks.ts","./src/__tests__/helpers/request-helpers.ts","./src/app/(dashboard)/settings/page.tsx","./src/app/(dashboard)/settings/__tests__/page.test.ts","./node_modules/next-auth/lib/types.d.ts","./node_modules/next-auth/lib/index.d.ts","./node_modules/next-auth/node_modules/@auth/core/errors.d.ts","./node_modules/next-auth/index.d.ts","./node_modules/next-auth/providers/credentials.d.ts","./node_modules/@auth/drizzle-adapter/lib/mysql.d.ts","./node_modules/@auth/drizzle-adapter/lib/pg.d.ts","./node_modules/@auth/drizzle-adapter/lib/sqlite.d.ts","./node_modules/@auth/drizzle-adapter/lib/utils.d.ts","./node_modules/@auth/drizzle-adapter/index.d.ts","./node_modules/zod/v3/helpers/typealiases.d.cts","./node_modules/zod/v3/helpers/util.d.cts","./node_modules/zod/v3/index.d.cts","./node_modules/zod/v3/zoderror.d.cts","./node_modules/zod/v3/locales/en.d.cts","./node_modules/zod/v3/errors.d.cts","./node_modules/zod/v3/helpers/parseutil.d.cts","./node_modules/zod/v3/helpers/enumutil.d.cts","./node_modules/zod/v3/helpers/errorutil.d.cts","./node_modules/zod/v3/helpers/partialutil.d.cts","./node_modules/zod/v3/standard-schema.d.cts","./node_modules/zod/v3/types.d.cts","./node_modules/zod/v3/external.d.cts","./node_modules/zod/index.d.cts","./src/lib/rate-limiter.ts","./src/lib/auth/config.ts","./src/app/api/auth/[...nextauth]/route.ts","./src/lib/auth/password-schema.ts","./src/lib/auth/signup.ts","./src/lib/api-response.ts","./src/app/api/auth/bootstrap-status/route.ts","./src/app/api/auth/bootstrap-status/__tests__/route.test.ts","./src/lib/auth/api-key.ts","./src/lib/auth/errors.ts","./src/lib/auth/session.ts","./src/lib/crypto.ts","./src/lib/connection-adapter.ts","./src/lib/query-params.ts","../connection/src/connector-types.ts","./src/lib/connector-types.ts","./src/lib/query-executor.ts","./src/lib/schema-prefetch.ts","./src/lib/schemas.ts","./src/lib/api-utils.ts","./src/app/api/connections/route.ts","./src/app/api/connections/[id]/route.ts","./src/app/api/connections/[id]/__tests__/route.test.ts","./src/app/api/connections/[id]/schema/route.ts","./src/app/api/connections/[id]/schema/__tests__/route.test.ts","./src/app/api/connections/[id]/test/route.ts","./src/app/api/connections/[id]/test/__tests__/route.test.ts","./src/app/api/connections/__tests__/route.test.ts","./src/app/api/connections/test-inline/route.ts","./src/app/api/connections/test-inline/__tests__/route.test.ts","./src/app/api/dashboards/route.ts","./src/app/api/dashboards/[id]/route.ts","./src/app/api/dashboards/[id]/__tests__/route.test.ts","./src/app/api/dashboards/[id]/duplicate/route.ts","./src/app/api/dashboards/[id]/duplicate/__tests__/route.test.ts","./src/lib/dashboard-export.ts","./src/app/api/dashboards/[id]/export/route.ts","./src/app/api/dashboards/[id]/export/__tests__/route.test.ts","./src/app/api/dashboards/[id]/share/route.ts","./src/app/api/dashboards/[id]/share/__tests__/route.test.ts","./src/app/api/dashboards/__tests__/route.test.ts","./src/lib/dashboard-import.ts","./src/lib/neodash-converter.ts","./src/app/api/dashboards/import/route.ts","./src/app/api/dashboards/import/__tests__/route.test.ts","./src/app/api/docs/route.ts","./src/app/api/docs/__tests__/route.test.ts","./src/app/api/keys/route.ts","./src/app/api/keys/[id]/route.ts","./src/app/api/keys/[id]/__tests__/route.test.ts","./src/app/api/keys/__tests__/route.test.ts","./src/lib/openapi-spec.ts","./src/app/api/openapi/route.ts","./src/app/api/openapi/__tests__/route.test.ts","./src/app/api/openapi.json/route.ts","./src/app/api/openapi.json/__tests__/route.test.ts","./src/lib/query-hash.ts","./src/app/api/query/route.ts","./src/app/api/query/__tests__/route.test.ts","./src/app/api/query/write/route.ts","./src/app/api/query/write/__tests__/route.test.ts","./src/app/api/users/route.ts","./src/app/api/users/[id]/route.ts","./src/app/api/users/[id]/__tests__/route.test.ts","./src/app/api/users/[id]/reset-password/route.ts","./src/app/api/users/[id]/reset-password/__tests__/route.test.ts","./src/app/api/users/__tests__/route.test.ts","./src/app/api/users/me/route.ts","./src/app/api/users/me/__tests__/route.test.ts","./src/app/api/users/me/password/route.ts","./src/app/api/users/me/password/__tests__/route.test.ts","./src/app/api/widget-templates/shared.ts","./src/app/api/widget-templates/route.ts","./src/app/api/widget-templates/[id]/route.ts","./src/app/api/widget-templates/[id]/__tests__/route.test.ts","./src/app/api/widget-templates/__tests__/route.test.ts","../component/src/components/ui/button.tsx","../component/src/components/ui/input.tsx","../component/src/components/ui/badge.tsx","../component/src/components/ui/avatar.tsx","../component/src/components/ui/separator.tsx","../component/src/components/ui/skeleton.tsx","../component/src/components/ui/form.tsx","../component/src/components/ui/select.tsx","../component/src/components/ui/checkbox.tsx","../component/src/components/ui/radio-group.tsx","../component/src/components/ui/switch.tsx","../component/src/components/ui/textarea.tsx","../component/src/components/ui/slider.tsx","../component/src/components/ui/dialog.tsx","../component/src/components/ui/alert-dialog.tsx","../component/src/components/ui/dropdown-menu.tsx","../component/src/components/ui/tooltip.tsx","../component/src/components/ui/toast.tsx","../component/src/hooks/use-toast.ts","../component/src/components/ui/toaster.tsx","../component/src/components/ui/alert.tsx","../component/src/components/ui/tabs.tsx","../component/src/components/ui/accordion.tsx","../component/src/components/ui/navigation-menu.tsx","../component/src/components/ui/breadcrumb.tsx","../component/src/components/ui/pagination.tsx","../component/src/components/ui/sheet.tsx","../component/src/components/ui/table.tsx","../component/src/components/ui/calendar.tsx","../component/src/components/ui/command.tsx","../component/src/components/ui/index.ts","../component/src/components/composed/loading-button.tsx","../component/src/components/composed/password-input.tsx","../component/src/components/composed/copy-button.tsx","../component/src/components/composed/combobox.tsx","../component/src/components/composed/creatable-combobox.tsx","../component/src/components/composed/multi-select.tsx","../component/src/components/composed/date-range-picker.tsx","../component/src/components/composed/confirm-dialog.tsx","../component/src/components/composed/empty-state.tsx","../component/src/components/composed/loading-overlay.tsx","../component/src/components/composed/time-ago.tsx","../component/src/components/composed/json-viewer.tsx","../component/src/components/composed/property-panel.tsx","../component/src/components/composed/page-header.tsx","../component/src/components/composed/widget-card.tsx","../component/src/components/composed/app-shell.tsx","../component/src/components/composed/sidebar.tsx","../component/src/components/composed/sidebar-item.tsx","../component/src/components/composed/toolbar.tsx","../component/src/components/composed/dashboard-grid.tsx","../component/src/components/composed/dashboard-mini-preview.tsx","../component/src/components/composed/data-grid.tsx","../component/src/components/composed/data-grid-column-header.tsx","../component/src/components/composed/data-grid-pagination.tsx","../component/src/components/composed/data-grid-faceted-filter.tsx","../component/src/components/composed/data-grid-view-options.tsx","../component/src/components/composed/chart-type-picker.tsx","../component/src/components/composed/field-picker.tsx","../component/src/components/composed/chart-settings-panel.tsx","../component/src/components/composed/chart-options/shared.ts","../component/src/components/composed/chart-options/bar.ts","../component/src/components/composed/chart-options/line.ts","../component/src/components/composed/chart-options/pie.ts","../component/src/components/composed/chart-options/single-value.ts","../component/src/components/composed/chart-options/graph.ts","../component/src/components/composed/chart-options/map.ts","../component/src/components/composed/chart-options/table.ts","../component/src/components/composed/chart-options/json.ts","../component/src/components/composed/chart-options/parameter-select.ts","../component/src/components/composed/chart-options/form.ts","../component/src/components/composed/chart-options/markdown.ts","../component/src/components/composed/chart-options/iframe.ts","../component/src/components/composed/chart-options/gauge.ts","../component/src/components/composed/chart-options/sankey.ts","../component/src/components/composed/chart-options/sunburst.ts","../component/src/components/composed/chart-options/radar.ts","../component/src/components/composed/chart-options/treemap.ts","../component/src/components/composed/chart-options/index.ts","../component/src/components/composed/chart-options-schema.ts","../component/src/components/composed/chart-options-panel.tsx","../component/src/components/composed/conditional-format-panel.tsx","../component/src/components/composed/connection-status.tsx","../component/src/components/composed/connection-form.tsx","../component/src/components/composed/connection-card.tsx","../component/src/components/composed/parameter-bar.tsx","../component/src/components/composed/cross-filter-tag.tsx","../component/src/components/composed/parameter-widgets/text-input.tsx","../component/src/components/composed/parameter-widgets/param-widget-skeleton.tsx","../component/src/components/composed/parameter-widgets/param-selector.tsx","../component/src/components/composed/parameter-widgets/param-multi-selector.tsx","../component/src/lib/date-utils.ts","../component/src/components/composed/parameter-widgets/date-picker.tsx","../component/src/components/composed/parameter-widgets/date-range-picker.tsx","../component/src/components/composed/parameter-widgets/date-relative-picker.tsx","../component/src/components/composed/parameter-widgets/number-range-slider.tsx","../component/src/components/composed/parameter-widgets/cascading-selector.tsx","../component/src/components/composed/form-widget.tsx","../component/src/components/composed/markdown-widget.tsx","../component/src/components/composed/iframe-widget.tsx","../component/src/lib/schema-transforms.ts","../component/src/lib/cypher-lang/utils.ts","../component/src/lib/cypher-lang/autocomplete.ts","../component/src/lib/cypher-lang/constants.ts","../component/src/lib/cypher-lang/parser-adapter.ts","../component/src/lib/cypher-lang/signature-help.ts","../component/src/lib/cypher-lang/cypher.ts","../component/src/lib/cypher-lang/index.ts","../component/src/lib/language-resolvers.ts","../component/src/components/composed/query-editor.tsx","../component/src/components/composed/code-preview.tsx","../component/src/components/composed/column-mapping-overlay.tsx","../component/src/components/composed/index.ts","../component/src/hooks/usewidgetsize.tsx","../component/src/hooks/usegraphexploration.ts","../component/src/hooks/index.ts","../component/src/lib/param-substitute.ts","../component/src/lib/export-utils.ts","../component/src/utils/index.ts","../component/src/index.ts","./src/lib/derive-form-fields.ts","./src/components/__tests__/form-widget-renderer.test.ts","./node_modules/zustand/esm/vanilla.d.mts","./node_modules/zustand/esm/react.d.mts","./node_modules/zustand/esm/index.d.mts","./node_modules/zustand/esm/react/shallow.d.mts","./src/stores/parameter-store.ts","./src/lib/format-parameter-value.ts","./src/components/__tests__/format-parameter-value.test.ts","./src/components/__tests__/widget-outdated.test.ts","./src/components/parameters/use-param-actions.ts","./node_modules/next-auth/lib/client.d.ts","./node_modules/next-auth/react.d.ts","./node_modules/@tanstack/query-core/build/modern/_tsup-dts-rollup.d.ts","./node_modules/@tanstack/query-core/build/modern/index.d.ts","./node_modules/@tanstack/react-query/build/modern/_tsup-dts-rollup.d.ts","./node_modules/@tanstack/react-query/build/modern/index.d.ts","./src/lib/api-client.ts","./src/hooks/use-seed-query.ts","./src/components/parameters/use-seed-query-options.ts","./src/components/parameters/use-cascading-clear.ts","./src/components/debounced-text-input.tsx","./src/components/parameters/param-text.tsx","./src/components/parameters/param-select.tsx","./src/components/parameters/param-multi-select.tsx","./src/components/parameters/param-date.tsx","./src/components/parameters/param-date-range.tsx","./src/components/parameters/param-date-relative.tsx","./src/components/parameters/param-number-range.tsx","./src/components/parameters/param-cascading-select.tsx","./src/components/parameters/index.ts","./src/components/parameters/__tests__/debounce-logic.test.ts","./src/components/parameters/__tests__/param-cascading-select.test.ts","./src/components/parameters/__tests__/param-date-range.test.ts","./src/components/parameters/__tests__/param-date-relative.test.ts","./src/components/parameters/__tests__/param-date.test.ts","./src/components/parameters/__tests__/param-multi-select.test.ts","./src/components/parameters/__tests__/param-number-range.test.ts","./src/components/parameters/__tests__/param-select.test.ts","./src/components/parameters/__tests__/param-text.test.ts","./src/components/parameters/__tests__/seed-query-logic.test.ts","./node_modules/@types/aria-query/index.d.ts","./node_modules/@testing-library/dom/types/matches.d.ts","./node_modules/@testing-library/dom/types/wait-for.d.ts","./node_modules/@testing-library/dom/types/query-helpers.d.ts","./node_modules/@testing-library/dom/types/queries.d.ts","./node_modules/@testing-library/dom/types/get-queries-for-element.d.ts","./node_modules/pretty-format/build/types.d.ts","./node_modules/pretty-format/build/index.d.ts","./node_modules/@testing-library/dom/types/screen.d.ts","./node_modules/@testing-library/dom/types/wait-for-element-to-be-removed.d.ts","./node_modules/@testing-library/dom/types/get-node-text.d.ts","./node_modules/@testing-library/dom/types/events.d.ts","./node_modules/@testing-library/dom/types/pretty-dom.d.ts","./node_modules/@testing-library/dom/types/role-helpers.d.ts","./node_modules/@testing-library/dom/types/config.d.ts","./node_modules/@testing-library/dom/types/suggestions.d.ts","./node_modules/@testing-library/dom/types/index.d.ts","./node_modules/@types/react-dom/test-utils/index.d.ts","./node_modules/@testing-library/react/types/index.d.ts","./src/components/parameters/__tests__/use-cascading-clear.test.ts","./src/components/parameters/__tests__/use-param-actions.test.ts","./src/components/widget-editor/use-accordion-crud.ts","./src/components/widget-editor/__tests__/use-accordion-crud.test.ts","./src/hooks/use-api-keys.ts","./src/lib/resolve-click-action.ts","./src/hooks/use-click-action.ts","./src/hooks/use-connections.ts","./src/hooks/use-countdown.ts","./src/hooks/use-dashboards.ts","./src/hooks/use-query-execution.ts","./src/lib/schema-types.ts","./src/stores/schema-store.ts","./src/hooks/use-schema.ts","./src/hooks/use-theme.ts","./src/stores/dashboard-store.ts","./src/hooks/use-unsaved-changes-warning.ts","./src/hooks/use-users.ts","./src/lib/date-utils.ts","./src/hooks/use-widget-query.ts","./src/hooks/use-widget-templates.ts","./src/hooks/use-write-query-execution.ts","./src/hooks/__tests__/use-api-keys.test.ts","./src/hooks/__tests__/use-click-action.test.ts","./src/hooks/__tests__/use-connections.test.ts","./src/hooks/__tests__/use-countdown.test.ts","./src/hooks/__tests__/use-dashboards.test.ts","./src/hooks/__tests__/use-query-execution.test.ts","./src/hooks/__tests__/use-schema.test.ts","./src/hooks/__tests__/use-seed-query.test.ts","./src/hooks/__tests__/use-theme.test.ts","./src/hooks/__tests__/use-unsaved-changes-warning.test.ts","./src/hooks/__tests__/use-users.test.ts","./src/hooks/__tests__/use-widget-query.test.ts","./src/hooks/__tests__/use-widget-templates.test.ts","./src/hooks/__tests__/use-write-query-execution.test.ts","./src/lib/apply-param-defaults.ts","./src/lib/chart-plugin-registry.ts","./src/plugins/registry.ts","./src/plugins/chart-types.ts","./src/lib/chart-helpers.ts","./src/lib/capture-preview.ts","./src/lib/capture-dashboard-thumbnails.ts","./src/lib/migrate-color-thresholds.ts","./src/lib/data-transforms.ts","./src/lib/card-utils.ts","./src/lib/collect-parameter-names.ts","./src/lib/dashboard-settings.ts","./src/lib/form-field-def.ts","./src/lib/form-field-validation.ts","./src/lib/interpolate-title.ts","./src/lib/migrate-layout.ts","./src/lib/normalize-value.ts","./src/lib/parse-utils.ts","./src/lib/query-templates.ts","./src/lib/resolve-cache-options.ts","./src/lib/scroll-to-widget.ts","./src/lib/table-utils.ts","./src/lib/url-params.ts","./src/lib/widget-actions.ts","./src/lib/widget-utils.ts","./src/lib/wrap-with-preview-limit.ts","./src/lib/__tests__/api-client.test.ts","./src/lib/__tests__/api-response.test.ts","./src/lib/__tests__/api-utils.test.ts","./src/lib/__tests__/apply-param-defaults.test.ts","./src/lib/__tests__/bootstrap.test.ts","./src/lib/__tests__/capture-preview.test.ts","./src/lib/__tests__/card-utils.test.ts","./src/plugins/utils.ts","./src/plugins/settings/markdown.ts","./src/plugins/markdown.tsx","./src/plugins/transforms/shared.ts","./src/plugins/transforms/bar.ts","./src/plugins/settings/bar.ts","./src/plugins/bar.tsx","./src/plugins/transforms/line.ts","./src/plugins/settings/line.ts","./src/plugins/line.tsx","./src/plugins/transforms/pie.ts","./src/plugins/settings/pie.ts","./src/plugins/pie.tsx","./src/plugins/transforms/single-value.ts","./src/plugins/settings/single-value.ts","./src/plugins/single-value.tsx","./src/stores/graph-widget-store.ts","./src/components/graph-exploration-wrapper.tsx","./src/plugins/transforms/graph.ts","./src/plugins/settings/graph.ts","./src/plugins/graph.tsx","./src/plugins/transforms/map.ts","./src/plugins/settings/map.ts","./src/plugins/map.tsx","./node_modules/@tanstack/table-core/build/lib/utils.d.ts","./node_modules/@tanstack/table-core/build/lib/core/table.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnvisibility.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnordering.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnpinning.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowpinning.d.ts","./node_modules/@tanstack/table-core/build/lib/core/headers.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnfaceting.d.ts","./node_modules/@tanstack/table-core/build/lib/features/globalfaceting.d.ts","./node_modules/@tanstack/table-core/build/lib/filterfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnfiltering.d.ts","./node_modules/@tanstack/table-core/build/lib/features/globalfiltering.d.ts","./node_modules/@tanstack/table-core/build/lib/sortingfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowsorting.d.ts","./node_modules/@tanstack/table-core/build/lib/aggregationfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columngrouping.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowexpanding.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnsizing.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowpagination.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowselection.d.ts","./node_modules/@tanstack/table-core/build/lib/core/row.d.ts","./node_modules/@tanstack/table-core/build/lib/core/cell.d.ts","./node_modules/@tanstack/table-core/build/lib/core/column.d.ts","./node_modules/@tanstack/table-core/build/lib/types.d.ts","./node_modules/@tanstack/table-core/build/lib/columnhelper.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getcorerowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getexpandedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfacetedminmaxvalues.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfacetedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfaceteduniquevalues.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfilteredrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getgroupedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getpaginationrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getsortedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/index.d.ts","./node_modules/@tanstack/react-table/build/lib/index.d.ts","./src/components/table-renderer.tsx","./src/plugins/transforms/table.ts","./src/plugins/settings/table.ts","./src/plugins/table.tsx","./src/components/parameter-widget-renderer.tsx","./src/plugins/transforms/parameter-select.ts","./src/plugins/settings/parameter-select.ts","./src/plugins/parameter-select.tsx","./src/plugins/transforms/json.ts","./src/plugins/settings/json.ts","./src/plugins/json.tsx","./src/components/form-widget-renderer.tsx","./src/plugins/settings/form.ts","./src/plugins/form.tsx","./src/plugins/settings/iframe.ts","./src/plugins/iframe.tsx","./src/plugins/transforms/gauge.ts","./src/plugins/settings/gauge.ts","./src/plugins/gauge.tsx","./src/plugins/transforms/sankey.ts","./src/plugins/settings/sankey.ts","./src/plugins/sankey.tsx","./src/plugins/transforms/hierarchical.ts","./src/plugins/transforms/sunburst.ts","./src/plugins/settings/sunburst.ts","./src/plugins/sunburst.tsx","./src/plugins/transforms/radar.ts","./src/plugins/settings/radar.ts","./src/plugins/radar.tsx","./src/plugins/transforms/treemap.ts","./src/plugins/settings/treemap.ts","./src/plugins/treemap.tsx","./src/plugins/index.ts","./src/lib/__tests__/chart-helpers.test.ts","./src/lib/__tests__/chart-plugin-registry.test.ts","./src/lib/__tests__/collect-parameter-names.test.ts","./src/lib/__tests__/crypto.test.ts","./src/lib/__tests__/dashboard-export.test.ts","./src/lib/__tests__/dashboard-import.test.ts","./src/lib/__tests__/dashboard-settings.test.ts","./src/lib/__tests__/data-transforms.test.ts","./src/lib/__tests__/date-utils.test.ts","./src/lib/__tests__/form-field-def.test.ts","./src/lib/__tests__/form-field-validation.test.ts","./src/lib/__tests__/format-parameter-value.test.ts","./src/lib/__tests__/interpolate-title.test.ts","./src/lib/__tests__/migrate-color-thresholds.test.ts","./src/lib/__tests__/migrate-layout.test.ts","./src/lib/__tests__/neodash-converter.test.ts","./src/lib/__tests__/normalize-value.test.ts","./src/lib/__tests__/parse-utils.test.ts","./src/lib/__tests__/query-executor-core.test.ts","./src/lib/__tests__/query-executor.test.ts","./src/lib/__tests__/query-hash.test.ts","./src/lib/__tests__/rate-limiter.test.ts","./src/lib/__tests__/resolve-cache-options.test.ts","./src/lib/__tests__/resolve-click-action.test.ts","./src/lib/__tests__/schema-prefetch.test.ts","./src/lib/__tests__/schemas.test.ts","./src/lib/__tests__/scroll-to-widget.test.ts","./src/lib/__tests__/table-utils.test.ts","./src/lib/__tests__/url-params.test.ts","./src/lib/__tests__/widget-actions.test.ts","./src/lib/__tests__/widget-utils.test.ts","./src/lib/__tests__/wrap-with-preview-limit.test.ts","./src/lib/auth/__tests__/api-key.test.ts","./src/lib/auth/__tests__/config.test.ts","./src/lib/auth/__tests__/session.test.ts","./src/lib/auth/__tests__/signup.test.ts","./node_modules/@testcontainers/postgresql/build/postgresql-container.d.ts","./node_modules/@testcontainers/postgresql/build/index.d.ts","./src/lib/db/__tests__/migrations.test.ts","./src/plugins/__tests__/chart-types.test.ts","./src/plugins/__tests__/plugin-options.test.ts","./src/plugins/__tests__/registry.test.ts","./src/plugins/settings/index.ts","./src/plugins/settings/__tests__/settings-schemas.test.ts","./src/plugins/transforms/index.ts","./src/plugins/transforms/__tests__/bar.test.ts","./src/plugins/transforms/__tests__/graph.test.ts","./src/plugins/transforms/__tests__/line.test.ts","./src/plugins/transforms/__tests__/pie.test.ts","./src/plugins/transforms/__tests__/remaining.test.ts","./src/plugins/transforms/__tests__/shared.test.ts","./src/stores/connection-store.ts","./src/stores/widget-editor-store.ts","./src/stores/__tests__/connection-store.test.ts","./src/stores/__tests__/dashboard-store.test.ts","./src/stores/__tests__/graph-widget-store.test.ts","./src/stores/__tests__/parameter-store.test.ts","./src/stores/__tests__/schema-store.test.ts","./src/stores/__tests__/widget-editor-store.test.ts","./src/types/next-auth.d.ts","./src/types/__tests__/next-auth-types.test.ts","./node_modules/@testing-library/jest-dom/types/matchers.d.ts","./node_modules/@testing-library/jest-dom/types/vitest.d.ts","./vitest.setup.tsx","./node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/next/font/google/index.d.ts","./src/components/providers.tsx","./src/app/layout.tsx","./src/app/(auth)/change-password/page.tsx","./src/app/(auth)/login/page.tsx","./node_modules/@testing-library/user-event/dist/types/event/eventmap.d.ts","./node_modules/@testing-library/user-event/dist/types/event/types.d.ts","./node_modules/@testing-library/user-event/dist/types/event/dispatchevent.d.ts","./node_modules/@testing-library/user-event/dist/types/event/focus.d.ts","./node_modules/@testing-library/user-event/dist/types/event/input.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/click/isclickableinput.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/datatransfer/blob.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/datatransfer/datatransfer.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/datatransfer/filelist.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/datatransfer/clipboard.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/edit/timevalue.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/edit/iscontenteditable.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/edit/iseditable.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/edit/maxlength.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/edit/setfiles.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/focus/cursor.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/focus/getactiveelement.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/focus/gettabdestination.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/focus/isfocusable.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/focus/selection.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/focus/selector.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/keydef/readnextdescriptor.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/cloneevent.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/findclosest.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/getdocumentfromnode.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/gettreediff.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/getwindow.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/isdescendantorself.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/iselementtype.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/isvisible.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/isdisabled.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/level.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/misc/wait.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/pointer/csspointerevents.d.ts","./node_modules/@testing-library/user-event/dist/types/utils/index.d.ts","./node_modules/@testing-library/user-event/dist/types/document/ui.d.ts","./node_modules/@testing-library/user-event/dist/types/document/getvalueortextcontent.d.ts","./node_modules/@testing-library/user-event/dist/types/document/copyselection.d.ts","./node_modules/@testing-library/user-event/dist/types/document/trackvalue.d.ts","./node_modules/@testing-library/user-event/dist/types/document/index.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/getinputrange.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/modifyselection.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/moveselection.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/setselectionpermouse.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/modifyselectionpermouse.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/selectall.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/setselectionrange.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/setselection.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/updateselectiononfocus.d.ts","./node_modules/@testing-library/user-event/dist/types/event/selection/index.d.ts","./node_modules/@testing-library/user-event/dist/types/event/index.d.ts","./node_modules/@testing-library/user-event/dist/types/system/pointer/buttons.d.ts","./node_modules/@testing-library/user-event/dist/types/system/pointer/shared.d.ts","./node_modules/@testing-library/user-event/dist/types/system/pointer/index.d.ts","./node_modules/@testing-library/user-event/dist/types/system/index.d.ts","./node_modules/@testing-library/user-event/dist/types/system/keyboard.d.ts","./node_modules/@testing-library/user-event/dist/types/options.d.ts","./node_modules/@testing-library/user-event/dist/types/convenience/click.d.ts","./node_modules/@testing-library/user-event/dist/types/convenience/hover.d.ts","./node_modules/@testing-library/user-event/dist/types/convenience/tab.d.ts","./node_modules/@testing-library/user-event/dist/types/convenience/index.d.ts","./node_modules/@testing-library/user-event/dist/types/keyboard/index.d.ts","./node_modules/@testing-library/user-event/dist/types/clipboard/copy.d.ts","./node_modules/@testing-library/user-event/dist/types/clipboard/cut.d.ts","./node_modules/@testing-library/user-event/dist/types/clipboard/paste.d.ts","./node_modules/@testing-library/user-event/dist/types/clipboard/index.d.ts","./node_modules/@testing-library/user-event/dist/types/pointer/index.d.ts","./node_modules/@testing-library/user-event/dist/types/utility/clear.d.ts","./node_modules/@testing-library/user-event/dist/types/utility/selectoptions.d.ts","./node_modules/@testing-library/user-event/dist/types/utility/type.d.ts","./node_modules/@testing-library/user-event/dist/types/utility/upload.d.ts","./node_modules/@testing-library/user-event/dist/types/utility/index.d.ts","./node_modules/@testing-library/user-event/dist/types/setup/api.d.ts","./node_modules/@testing-library/user-event/dist/types/setup/directapi.d.ts","./node_modules/@testing-library/user-event/dist/types/setup/setup.d.ts","./node_modules/@testing-library/user-event/dist/types/setup/index.d.ts","./node_modules/@testing-library/user-event/dist/types/index.d.ts","./src/app/(auth)/login/__tests__/page.test.tsx","./src/app/(auth)/signup/page.tsx","./src/app/(auth)/signup/__tests__/page.test.tsx","./node_modules/lucide-react/dist/lucide-react.d.ts","./src/app/(dashboard)/layout.tsx","./src/app/(dashboard)/page.tsx","./src/components/chart-error-boundary.tsx","./src/components/chart-renderer.tsx","./src/components/card-container.tsx","./src/components/dashboard-container.tsx","./src/components/page-tabs.tsx","./src/app/(dashboard)/[id]/page.tsx","./src/components/widget-editor/chart-type-selector.tsx","./src/components/widget-editor/query-editor-panel.tsx","./node_modules/@dnd-kit/utilities/dist/hooks/usecombinedrefs.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/useevent.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/useisomorphiclayouteffect.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/useinterval.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/uselatestvalue.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/uselazymemo.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/usenoderef.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/useprevious.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/useuniqueid.d.ts","./node_modules/@dnd-kit/utilities/dist/hooks/index.d.ts","./node_modules/@dnd-kit/utilities/dist/adjustment.d.ts","./node_modules/@dnd-kit/utilities/dist/coordinates/types.d.ts","./node_modules/@dnd-kit/utilities/dist/coordinates/geteventcoordinates.d.ts","./node_modules/@dnd-kit/utilities/dist/coordinates/index.d.ts","./node_modules/@dnd-kit/utilities/dist/css.d.ts","./node_modules/@dnd-kit/utilities/dist/event/hasviewportrelativecoordinates.d.ts","./node_modules/@dnd-kit/utilities/dist/event/iskeyboardevent.d.ts","./node_modules/@dnd-kit/utilities/dist/event/istouchevent.d.ts","./node_modules/@dnd-kit/utilities/dist/event/index.d.ts","./node_modules/@dnd-kit/utilities/dist/execution-context/canusedom.d.ts","./node_modules/@dnd-kit/utilities/dist/execution-context/getownerdocument.d.ts","./node_modules/@dnd-kit/utilities/dist/execution-context/getwindow.d.ts","./node_modules/@dnd-kit/utilities/dist/execution-context/index.d.ts","./node_modules/@dnd-kit/utilities/dist/focus/findfirstfocusablenode.d.ts","./node_modules/@dnd-kit/utilities/dist/focus/index.d.ts","./node_modules/@dnd-kit/utilities/dist/type-guards/isdocument.d.ts","./node_modules/@dnd-kit/utilities/dist/type-guards/ishtmlelement.d.ts","./node_modules/@dnd-kit/utilities/dist/type-guards/isnode.d.ts","./node_modules/@dnd-kit/utilities/dist/type-guards/issvgelement.d.ts","./node_modules/@dnd-kit/utilities/dist/type-guards/iswindow.d.ts","./node_modules/@dnd-kit/utilities/dist/type-guards/index.d.ts","./node_modules/@dnd-kit/utilities/dist/types.d.ts","./node_modules/@dnd-kit/utilities/dist/index.d.ts","./node_modules/@dnd-kit/core/dist/types/coordinates.d.ts","./node_modules/@dnd-kit/core/dist/types/direction.d.ts","./node_modules/@dnd-kit/core/dist/utilities/algorithms/types.d.ts","./node_modules/@dnd-kit/core/dist/utilities/algorithms/closestcenter.d.ts","./node_modules/@dnd-kit/core/dist/utilities/algorithms/closestcorners.d.ts","./node_modules/@dnd-kit/core/dist/utilities/algorithms/rectintersection.d.ts","./node_modules/@dnd-kit/core/dist/utilities/algorithms/pointerwithin.d.ts","./node_modules/@dnd-kit/core/dist/utilities/algorithms/helpers.d.ts","./node_modules/@dnd-kit/core/dist/utilities/algorithms/index.d.ts","./node_modules/@dnd-kit/core/dist/sensors/pointer/abstractpointersensor.d.ts","./node_modules/@dnd-kit/core/dist/sensors/pointer/pointersensor.d.ts","./node_modules/@dnd-kit/core/dist/sensors/pointer/index.d.ts","./node_modules/@dnd-kit/core/dist/sensors/types.d.ts","./node_modules/@dnd-kit/core/dist/sensors/usesensor.d.ts","./node_modules/@dnd-kit/core/dist/sensors/usesensors.d.ts","./node_modules/@dnd-kit/core/dist/sensors/mouse/mousesensor.d.ts","./node_modules/@dnd-kit/core/dist/sensors/mouse/index.d.ts","./node_modules/@dnd-kit/core/dist/sensors/touch/touchsensor.d.ts","./node_modules/@dnd-kit/core/dist/sensors/touch/index.d.ts","./node_modules/@dnd-kit/core/dist/sensors/keyboard/types.d.ts","./node_modules/@dnd-kit/core/dist/sensors/keyboard/keyboardsensor.d.ts","./node_modules/@dnd-kit/core/dist/sensors/keyboard/defaults.d.ts","./node_modules/@dnd-kit/core/dist/sensors/keyboard/index.d.ts","./node_modules/@dnd-kit/core/dist/sensors/index.d.ts","./node_modules/@dnd-kit/core/dist/types/events.d.ts","./node_modules/@dnd-kit/core/dist/types/other.d.ts","./node_modules/@dnd-kit/core/dist/types/react.d.ts","./node_modules/@dnd-kit/core/dist/types/rect.d.ts","./node_modules/@dnd-kit/core/dist/types/index.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/useautoscroller.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usecachednode.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usesyntheticlisteners.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usecombineactivators.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usedroppablemeasuring.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/useinitialvalue.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/useinitialrect.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/userect.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/userectdelta.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/useresizeobserver.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usescrollableancestors.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usescrollintoviewifneeded.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usescrolloffsets.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usescrolloffsetsdelta.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usesensorsetup.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/userects.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usewindowrect.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/usedragoverlaymeasuring.d.ts","./node_modules/@dnd-kit/core/dist/hooks/utilities/index.d.ts","./node_modules/@dnd-kit/core/dist/store/constructors.d.ts","./node_modules/@dnd-kit/core/dist/store/types.d.ts","./node_modules/@dnd-kit/core/dist/store/actions.d.ts","./node_modules/@dnd-kit/core/dist/store/context.d.ts","./node_modules/@dnd-kit/core/dist/store/reducer.d.ts","./node_modules/@dnd-kit/core/dist/store/index.d.ts","./node_modules/@dnd-kit/core/dist/components/accessibility/types.d.ts","./node_modules/@dnd-kit/core/dist/components/accessibility/accessibility.d.ts","./node_modules/@dnd-kit/core/dist/components/accessibility/components/restorefocus.d.ts","./node_modules/@dnd-kit/core/dist/components/accessibility/components/index.d.ts","./node_modules/@dnd-kit/core/dist/components/accessibility/defaults.d.ts","./node_modules/@dnd-kit/core/dist/components/accessibility/index.d.ts","./node_modules/@dnd-kit/core/dist/utilities/coordinates/constants.d.ts","./node_modules/@dnd-kit/core/dist/utilities/coordinates/distancebetweenpoints.d.ts","./node_modules/@dnd-kit/core/dist/utilities/coordinates/getrelativetransformorigin.d.ts","./node_modules/@dnd-kit/core/dist/utilities/coordinates/index.d.ts","./node_modules/@dnd-kit/core/dist/utilities/rect/adjustscale.d.ts","./node_modules/@dnd-kit/core/dist/utilities/rect/getrectdelta.d.ts","./node_modules/@dnd-kit/core/dist/utilities/rect/rectadjustment.d.ts","./node_modules/@dnd-kit/core/dist/utilities/rect/getrect.d.ts","./node_modules/@dnd-kit/core/dist/utilities/rect/getwindowclientrect.d.ts","./node_modules/@dnd-kit/core/dist/utilities/rect/rect.d.ts","./node_modules/@dnd-kit/core/dist/utilities/rect/index.d.ts","./node_modules/@dnd-kit/core/dist/utilities/other/noop.d.ts","./node_modules/@dnd-kit/core/dist/utilities/other/index.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollableancestors.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollableelement.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollcoordinates.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/getscrolldirectionandspeed.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollelementrect.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/getscrolloffsets.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollposition.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/documentscrollingelement.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/isscrollable.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/scrollintoviewifneeded.d.ts","./node_modules/@dnd-kit/core/dist/utilities/scroll/index.d.ts","./node_modules/@dnd-kit/core/dist/utilities/index.d.ts","./node_modules/@dnd-kit/core/dist/modifiers/types.d.ts","./node_modules/@dnd-kit/core/dist/modifiers/applymodifiers.d.ts","./node_modules/@dnd-kit/core/dist/modifiers/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dndcontext/types.d.ts","./node_modules/@dnd-kit/core/dist/components/dndcontext/dndcontext.d.ts","./node_modules/@dnd-kit/core/dist/components/dndcontext/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dndmonitor/types.d.ts","./node_modules/@dnd-kit/core/dist/components/dndmonitor/context.d.ts","./node_modules/@dnd-kit/core/dist/components/dndmonitor/usedndmonitor.d.ts","./node_modules/@dnd-kit/core/dist/components/dndmonitor/usedndmonitorprovider.d.ts","./node_modules/@dnd-kit/core/dist/components/dndmonitor/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/components/animationmanager/animationmanager.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/components/animationmanager/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/components/nullifiedcontextprovider/nullifiedcontextprovider.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/components/nullifiedcontextprovider/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/components/positionedoverlay/positionedoverlay.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/components/positionedoverlay/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/components/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/hooks/usedropanimation.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/hooks/usekey.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/hooks/index.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/dragoverlay.d.ts","./node_modules/@dnd-kit/core/dist/components/dragoverlay/index.d.ts","./node_modules/@dnd-kit/core/dist/components/index.d.ts","./node_modules/@dnd-kit/core/dist/hooks/usedraggable.d.ts","./node_modules/@dnd-kit/core/dist/hooks/usedndcontext.d.ts","./node_modules/@dnd-kit/core/dist/hooks/usedroppable.d.ts","./node_modules/@dnd-kit/core/dist/hooks/index.d.ts","./node_modules/@dnd-kit/core/dist/index.d.ts","./node_modules/@dnd-kit/sortable/dist/types/disabled.d.ts","./node_modules/@dnd-kit/sortable/dist/types/data.d.ts","./node_modules/@dnd-kit/sortable/dist/types/strategies.d.ts","./node_modules/@dnd-kit/sortable/dist/types/type-guard.d.ts","./node_modules/@dnd-kit/sortable/dist/types/index.d.ts","./node_modules/@dnd-kit/sortable/dist/components/sortablecontext.d.ts","./node_modules/@dnd-kit/sortable/dist/components/index.d.ts","./node_modules/@dnd-kit/sortable/dist/hooks/types.d.ts","./node_modules/@dnd-kit/sortable/dist/hooks/usesortable.d.ts","./node_modules/@dnd-kit/sortable/dist/hooks/defaults.d.ts","./node_modules/@dnd-kit/sortable/dist/hooks/index.d.ts","./node_modules/@dnd-kit/sortable/dist/strategies/horizontallistsorting.d.ts","./node_modules/@dnd-kit/sortable/dist/strategies/rectsorting.d.ts","./node_modules/@dnd-kit/sortable/dist/strategies/rectswapping.d.ts","./node_modules/@dnd-kit/sortable/dist/strategies/verticallistsorting.d.ts","./node_modules/@dnd-kit/sortable/dist/strategies/index.d.ts","./node_modules/@dnd-kit/sortable/dist/sensors/keyboard/sortablekeyboardcoordinates.d.ts","./node_modules/@dnd-kit/sortable/dist/sensors/keyboard/index.d.ts","./node_modules/@dnd-kit/sortable/dist/sensors/index.d.ts","./node_modules/@dnd-kit/sortable/dist/utilities/arraymove.d.ts","./node_modules/@dnd-kit/sortable/dist/utilities/arrayswap.d.ts","./node_modules/@dnd-kit/sortable/dist/utilities/getsortedrects.d.ts","./node_modules/@dnd-kit/sortable/dist/utilities/isvalidindex.d.ts","./node_modules/@dnd-kit/sortable/dist/utilities/itemsequal.d.ts","./node_modules/@dnd-kit/sortable/dist/utilities/normalizedisabled.d.ts","./node_modules/@dnd-kit/sortable/dist/utilities/index.d.ts","./node_modules/@dnd-kit/sortable/dist/index.d.ts","./src/components/widget-editor/form-fields-editor.tsx","./src/components/widget-editor/parameter-config-section.tsx","./src/components/widget-editor/parameter-preview.tsx","./src/components/widget-editor/field-selector-input.tsx","./src/components/widget-editor/action-rules-editor.tsx","./src/components/widget-editor/value-or-param-input.tsx","./src/components/widget-editor/styling-rules-editor.tsx","./src/components/widget-editor/transform-editor.tsx","./src/components/widget-editor-modal.tsx","./src/components/dashboard-assign-panel.tsx","./src/components/save-template-dialog.tsx","./src/app/(dashboard)/[id]/edit/page.tsx","./src/app/(dashboard)/__tests__/layout.test.tsx","./src/components/db-logos.tsx","./src/app/(dashboard)/connections/page.tsx","./src/app/(dashboard)/dashboards/page.tsx","./src/app/(dashboard)/settings/layout.tsx","./src/app/(dashboard)/settings/api-keys/page.tsx","./src/app/(dashboard)/settings/profile/page.tsx","./src/app/(dashboard)/users/page.tsx","./src/components/dashboard-picker-dialog.tsx","./src/app/(dashboard)/widget-lab/page.tsx","./src/components/__tests__/card-container-states.test.tsx","./src/components/__tests__/card-container.test.tsx","./src/components/__tests__/chart-error-boundary-unit.test.tsx","./src/components/__tests__/chart-error-boundary.test.tsx","./src/components/__tests__/dashboard-container-dblclick.test.tsx","./src/components/widget-editor/__tests__/query-editor-panel.test.tsx","./src/components/widget-editor/__tests__/transform-editor.test.tsx","./src/plugins/__tests__/bar.test.tsx","./src/plugins/__tests__/markdown.test.tsx","./.next/types/routes.d.ts","./.next/types/validator.ts","./.next/types/app/layout.ts","./.next/types/app/(auth)/change-password/page.ts","./.next/types/app/(auth)/login/page.ts","./.next/types/app/(auth)/signup/page.ts","./.next/types/app/(dashboard)/page.ts","./.next/types/app/(dashboard)/[id]/page.ts","./.next/types/app/(dashboard)/[id]/edit/page.ts","./.next/types/app/(dashboard)/connections/page.ts","./.next/types/app/(dashboard)/dashboards/page.ts","./.next/types/app/(dashboard)/settings/layout.ts","./.next/types/app/(dashboard)/settings/page.ts","./.next/types/app/(dashboard)/settings/api-keys/page.ts","./.next/types/app/(dashboard)/settings/profile/page.ts","./.next/types/app/(dashboard)/users/page.ts","./.next/types/app/(dashboard)/widget-lab/page.ts","./.next/types/app/api/auth/[...nextauth]/route.ts","./.next/types/app/api/auth/bootstrap-status/route.ts","./.next/types/app/api/connections/route.ts","./.next/types/app/api/connections/[id]/route.ts","./.next/types/app/api/connections/[id]/schema/route.ts","./.next/types/app/api/connections/[id]/test/route.ts","./.next/types/app/api/connections/test-inline/route.ts","./.next/types/app/api/dashboards/route.ts","./.next/types/app/api/dashboards/[id]/route.ts","./.next/types/app/api/dashboards/[id]/duplicate/route.ts","./.next/types/app/api/dashboards/[id]/export/route.ts","./.next/types/app/api/dashboards/[id]/share/route.ts","./.next/types/app/api/dashboards/import/route.ts","./.next/types/app/api/docs/route.ts","./.next/types/app/api/keys/route.ts","./.next/types/app/api/keys/[id]/route.ts","./.next/types/app/api/openapi/route.ts","./.next/types/app/api/openapi.json/route.ts","./.next/types/app/api/query/route.ts","./.next/types/app/api/query/write/route.ts","./.next/types/app/api/users/route.ts","./.next/types/app/api/users/[id]/route.ts","./.next/types/app/api/users/[id]/reset-password/route.ts","./.next/types/app/api/users/me/route.ts","./.next/types/app/api/users/me/password/route.ts","./.next/types/app/api/widget-templates/route.ts","./.next/types/app/api/widget-templates/[id]/route.ts","./.next/dev/types/cache-life.d.ts","./.next/dev/types/validator.ts","./node_modules/@types/ssh2-streams/index.d.ts","../node_modules/@types/json-schema/index.d.ts"],"fileIdsList":[[74,123,140,141,465,466,467,468],[74,123,140,141],[74,123,140,141,208,506,509,512,1099,1127,1131,1145,1146,1148,1150,1153,1155,1156,1158,1161,1163,1168,1170,1172,1173,1177,1179,1182,1184,1186,1187,1189,1192,1194,1197,1198,1611,1612,1613,1692,1695,1696,1702,1890,1893,1894,1895,1896,1897,1898,1900],[74,123,140,141,208,218,423,1612],[74,123,140,141,208,218,423,1613],[74,123,140,141,208,218,423,1692],[74,123,140,141,208,218,423,1890],[74,123,140,141,208,218,423,1702],[74,123,140,141,208,218,423,1893],[74,123,140,141,208,218,423,1894],[74,123,140,141,208,218,423,1696],[74,123,140,141,208,218,423,1896],[74,123,140,141,208,218,423,1895],[74,123,140,141,208,218,423,1099],[74,123,140,141,208,218,423,1897],[74,123,140,141,208,218,423,1898],[74,123,140,141,208,218,423,1900],[74,123,140,141,208,218,506,1127],[74,123,140,141,208,218,506,1131],[74,123,140,141,208,218,506,1146],[74,123,140,141,208,218,506,1148],[74,123,140,141,208,218,506,1150],[74,123,140,141,208,218,506,1145],[74,123,140,141,208,218,506,1153],[74,123,140,141,208,218,506,1158],[74,123,140,141,208,218,506,1161],[74,123,140,141,208,218,506,1156],[74,123,140,141,208,218,506,1163],[74,123,140,141,208,218,506,1168],[74,123,140,141,208,218,506,1155],[74,123,140,141,208,218,506,1170],[74,123,140,141,208,218,506,1173],[74,123,140,141,208,218,506,1172],[74,123,140,141,208,218,506,1179],[74,123,140,141,208,218,506,1177],[74,123,140,141,208,218,506,1182],[74,123,140,141,208,218,506,1184],[74,123,140,141,208,218,506,1189],[74,123,140,141,208,218,506,1187],[74,123,140,141,208,218,506,1194],[74,123,140,141,208,218,506,1192],[74,123,140,141,208,218,506,1186],[74,123,140,141,208,218,506,1198],[74,123,140,141,208,218,506,1197],[74,123,140,141,208,218,423,1611],[74,123,140,141,208,506,509,1099,1127,1131,1145,1146,1148,1150,1153,1155,1156,1158,1161,1163,1168,1170,1172,1173,1177,1179,1182,1184,1186,1187,1189,1192,1194,1197,1198,1611,1612,1613,1692,1695,1696,1702,1890,1893,1894,1895,1896,1897,1898,1900,1910],[74,123,140,141,208,514],[74,123,140,141,208,618],[74,123,140,141,208,523,616,618],[74,123,140,141,208,523,618],[74,123,135,140,141,144,145,208,618],[74,123,140,141,145,208,523,525,614,615,616,617],[74,123,124,128,135,137,140,141,143,145,208,614,691,692,992,993],[74,123,124,135,140,141,145,208,614],[74,123,140,141,208,523],[74,123,140,141,510,511,512],[74,123,140,141,145,208,510],[74,123,140,141,1025,1033],[74,123,140,141,1016,1017,1018,1019,1020,1022,1025,1033,1034],[74,123,140,141,1022,1025],[74,123,140,141,1016],[74,123,140,141,1025],[74,123,140,141,1021,1025],[74,123,140,141,1015,1021],[74,123,140,141,1014,1023,1025,1034],[74,123,140,141,1025,1027,1033],[74,123,140,141,1025,1029,1030,1033],[74,123,140,141,1023,1025,1028,1031,1032],[74,123,140,141,1025,1031],[74,123,140,141,1013,1016,1021,1025,1029,1033],[74,123,140,141,1012,1013,1014,1015,1021,1022,1024,1033],[74,123,140,141,1034,1109],[74,123,140,141,825,984,1034],[74,123,140,141,892,984,1034],[74,123,140,141,978,984,1034],[74,123,140,141,825,892,978,1106,1107,1108],[62,74,123,140,141,1792],[74,123,140,141,1794],[74,123,140,141,1792],[74,123,140,141,1792,1793,1795,1796],[74,123,140,141,1791],[62,74,123,140,141,1737,1761,1766,1785,1797,1822,1825,1826],[74,123,140,141,1826,1827],[74,123,140,141,1766,1785],[62,74,123,140,141,1829],[74,123,140,141,1829,1830,1831,1832],[74,123,140,141,1766],[74,123,140,141,1829],[62,74,123,140,141,1766],[74,123,140,141,1834],[74,123,140,141,1835,1837,1839],[74,123,140,141,1836],[62,74,123,140,141],[74,123,140,141,1838],[62,74,123,140,141,1737,1766],[62,74,123,140,141,1825,1840,1843],[74,123,140,141,1841,1842],[74,123,140,141,1737,1766,1791,1828],[74,123,140,141,1843,1844],[74,123,140,141,1797,1828,1833,1845],[74,123,140,141,1785,1847,1848,1849],[62,74,123,140,141,1791],[62,74,123,140,141,1737,1766,1785,1791],[62,74,123,140,141,1766,1791],[74,123,140,141,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784],[74,123,140,141,1766,1791],[74,123,140,141,1761,1769],[74,123,140,141,1766,1787],[74,123,140,141,1716,1766],[74,123,140,141,1737],[74,123,140,141,1761],[74,123,140,141,1851],[74,123,140,141,1761,1766,1791,1822,1825,1846,1850],[74,123,140,141,1737,1823],[74,123,140,141,1823,1824],[74,123,140,141,1737,1766,1791],[74,123,140,141,1749,1750,1751,1752,1754,1756,1760],[74,123,140,141,1757],[74,123,140,141,1757,1758,1759],[74,123,140,141,1750,1757],[74,123,140,141,1750,1766],[74,123,140,141,1753],[62,74,123,140,141,1749,1750],[74,123,140,141,1747,1748],[62,74,123,140,141,1747,1750],[74,123,140,141,1755],[62,74,123,140,141,1746,1749,1766,1791],[74,123,140,141,1750],[62,74,123,140,141,1787],[74,123,140,141,1787,1788,1789,1790],[74,123,140,141,1787,1788],[62,74,123,140,141,1737,1746,1766,1785,1786,1788,1846],[74,123,140,141,1738,1746,1761,1766,1791],[74,123,140,141,1738,1739,1762,1763,1764,1765],[62,74,123,140,141,1737],[74,123,140,141,1740],[74,123,140,141,1740,1766],[74,123,140,141,1740,1741,1742,1743,1744,1745],[74,123,140,141,1798,1799,1800],[74,123,140,141,1746,1801,1808,1810,1821],[74,123,140,141,1809],[74,123,140,141,1737,1766],[74,123,140,141,1802,1803,1804,1805,1806,1807],[74,123,140,141,1765],[74,123,140,141,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820],[74,123,140,141,1857],[62,74,123,140,141,1851,1856],[74,123,140,141,1859],[74,123,140,141,1859,1860,1861],[74,123,140,141,1737,1851],[62,74,123,140,141,1737,1785,1851,1856,1859],[74,123,140,141,1856,1858,1862,1867,1870,1877],[74,123,140,141,1869],[74,123,140,141,1868],[74,123,140,141,1856],[74,123,140,141,1863,1864,1865,1866],[74,123,140,141,1852,1853,1854,1855],[74,123,140,141,1851,1853],[74,123,140,141,1871,1872,1873,1874,1875,1876],[74,123,140,141,1716],[74,123,140,141,1716,1717],[74,123,140,141,1720,1721,1722],[74,123,140,141,1724,1725,1726],[74,123,140,141,1728],[74,123,140,141,1705,1706,1707,1708,1709,1710,1711,1712,1713],[74,123,140,141,1714,1715,1718,1719,1723,1727,1729,1735,1736],[74,123,140,141,1730,1731,1732,1733,1734],[74,123,140,141,522],[74,123,140,141,1334],[62,74,123,140,141,208,1335],[74,123,140,141,1336],[62,74,123,140,141,1508],[74,123,140,141,1489],[74,123,140,141,1474,1497],[74,123,140,141,1497],[74,123,140,141,1497,1508],[74,123,140,141,1483,1497,1508],[74,123,140,141,1488,1497,1508],[74,123,140,141,1478,1497],[74,123,140,141,1486,1497,1508],[74,123,140,141,1484],[74,123,140,141,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507],[74,123,140,141,1487],[74,123,140,141,1474,1475,1476,1477,1478,1479,1480,1481,1482,1484,1485,1487,1489,1490,1491,1492,1493,1494,1495,1496],[74,123,140,141,1579],[74,123,140,141,691],[74,123,140,141,1366],[74,123,140,141,1363,1364,1365,1366,1367,1370,1371,1372,1373,1374,1375,1376,1377],[74,123,140,141,1362],[74,123,140,141,1369],[74,123,140,141,1363,1364,1365],[74,123,140,141,1363,1364],[74,123,140,141,1366,1367,1369],[74,123,140,141,1364],[74,123,140,141,1094,1604,1605],[62,74,123,140,141,178,441,1378,1379],[74,123,140,141,1689],[74,123,140,141,1676,1677,1678],[74,123,140,141,1671,1672,1673],[74,123,140,141,1649,1650,1651,1652],[74,123,140,141,1615,1689],[74,123,140,141,1615],[74,123,140,141,1615,1616,1617,1618,1663],[74,123,140,141,1653],[74,123,140,141,1648,1654,1655,1656,1657,1658,1659,1660,1661,1662],[74,123,140,141,1663],[74,123,140,141,1614],[74,123,140,141,1667,1669,1670,1688,1689],[74,123,140,141,1667,1669],[74,123,140,141,1664,1667,1689],[74,123,140,141,1674,1675,1679,1680,1685],[74,123,140,141,1668,1670,1680,1688],[74,123,140,141,1687,1688],[74,123,140,141,1664,1668,1670,1686,1687],[74,123,140,141,1668,1689],[74,123,140,141,1666],[74,123,140,141,1666,1668,1689],[74,123,140,141,1664,1665],[74,123,140,141,1681,1682,1683,1684],[74,123,140,141,1670,1689],[74,123,140,141,1625],[74,123,140,141,1619,1626],[74,123,140,141,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647],[74,123,140,141,1645,1689],[74,123,140,141,566,567],[74,123,137,140,141,143,155,173,651],[74,123,134,140,141,155,173,651,652],[74,120,121,123,140,141],[74,122,123,140,141],[123,140,141],[74,123,128,140,141,158],[74,123,124,129,134,140,141,143,155,166],[74,123,124,125,134,140,141,143],[69,70,71,74,123,140,141],[74,123,126,140,141,167],[74,123,127,128,135,140,141,144],[74,123,128,140,141,155,163],[74,123,129,131,134,140,141,143],[74,122,123,130,140,141],[74,123,131,132,140,141],[74,123,133,134,140,141],[74,122,123,134,140,141],[74,123,134,135,136,140,141,155,166],[74,123,134,135,136,140,141,150,155,158],[74,116,123,131,134,137,140,141,143,155,166],[74,123,134,135,137,138,140,141,143,155,163,166],[74,123,137,139,140,141,155,163,166],[72,73,74,75,76,77,78,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],[74,123,134,140,141],[74,123,140,141,142,166],[74,123,131,134,140,141,143,155],[74,123,140,141,144],[74,123,140,141,145],[74,122,123,140,141,146],[74,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],[74,123,140,141,148],[74,123,140,141,149],[74,123,134,140,141,150,151],[74,123,140,141,150,152,167,169],[74,123,135,140,141],[74,123,134,140,141,155,156,158],[74,123,140,141,157,158],[74,123,140,141,155,156],[74,123,140,141,158],[74,123,140,141,159],[74,120,123,140,141,155,160,166],[74,123,134,140,141,161,162],[74,123,140,141,161,162],[74,123,128,140,141,143,155,163],[74,123,140,141,164],[74,123,140,141,143,165],[74,123,137,140,141,149,166],[74,123,128,140,141,167],[74,123,140,141,155,168],[74,123,140,141,142,169],[74,123,140,141,170],[74,116,123,140,141],[74,116,123,134,136,140,141,146,155,158,166,168,169,171],[74,123,140,141,155,172],[62,66,74,123,140,141,174,175,176,178,460,505],[62,66,74,123,140,141,174,175,176,177,441,460,505],[62,66,74,123,140,141,174,175,177,178,460,505],[62,74,123,140,141,178,441,442],[62,74,123,140,141,178,441],[62,66,74,123,140,141,175,176,177,178,460,505],[62,66,74,123,140,141,174,176,177,178,460,505],[60,61,74,123,140,141],[74,123,140,141,155,173],[74,123,134,137,139,140,141,143,155,173],[74,123,140,141,553,557,560,562,563,564,565,568,1086],[74,123,140,141,594],[74,123,140,141,594,595],[74,123,140,141,557,558,560,561],[74,123,140,141,557],[74,123,140,141,557,558,560],[74,123,140,141,557,558],[74,123,140,141,552,585,586],[74,123,140,141,552,585],[74,123,140,141,552,559],[74,123,140,141,552],[74,123,140,141,552,559,599],[74,123,140,141,554],[74,123,140,141,552,553,554,555,556],[74,123,140,141,1010],[74,123,140,141,166,173],[74,123,140,141,163],[74,123,140,141,693,697,700,746,980],[74,123,140,141,693,745,984],[74,123,140,141,985],[74,123,140,141,693,701,980],[74,123,140,141,693,700,701,770,825,892,944,978,980],[74,123,140,141,693,697,700,701,979],[74,123,140,141,693],[74,123,140,141,739,744,766],[74,123,140,141,693,709,739],[74,123,140,141,713,714,715,716,717,718,719,720,721,722,724,725,726,727,728,729,730,731,732,742],[74,123,140,141,693,712,741,979,980],[74,123,140,141,693,741,979,980],[74,123,140,141,693,700,701,734,739,740,979,980],[74,123,140,141,693,700,701,739,741,979,980],[74,123,140,141,693,741,979],[74,123,140,141,693,739,741,979,980],[74,123,140,141,712,713,714,715,716,717,718,719,720,721,722,724,725,726,727,728,729,730,731,732,741,742],[74,123,140,141,693,711,741,979],[74,123,140,141,693,723,741,979,980],[74,123,140,141,693,723,739,741,979,980],[74,123,140,141,693,696,700,701,706,739,743,744,746,748,751,752,753,755,761,762,766,985],[74,123,140,141,693,700,701,739,743,746,761,765,766],[74,123,140,141,693,739,743],[74,123,140,141,710,711,734,735,736,737,738,739,740,743,753,754,755,761,762,764,765,767,768,769],[74,123,140,141,693,700,739,743],[74,123,140,141,693,700,735,739],[74,123,140,141,693,700,739,755],[74,123,140,141,693,696,699,700,739,749,750,755,762,766],[74,123,140,141,756,757,758,759,760,763,766],[74,123,140,141,693,696,697,699,700,706,734,739,741,749,750,755,757,762,763,766],[74,123,140,141,693,696,700,706,743,753,760,762,766],[74,123,140,141,693,700,701,739,746,749,750,755,762],[74,123,140,141,693,700,747,749,750],[74,123,140,141,693,700,749,750,755,762,765],[74,123,140,141,693,696,699,700,701,706,739,743,744,745,749,750,753,755,762,766],[74,123,140,141,696,697,698,699,700,701,706,739,743,744,755,760,765],[74,123,140,141,693,696,697,699,700,701,739,741,744,749,750,755,762,766,980],[74,123,140,141,693,700,711,739],[74,123,140,141,693,701,709,745,746,747,754,762,766,985],[74,123,140,141,696,699,700],[74,123,140,141,693,697,710,733,734,736,737,738,740,741,979],[74,123,140,141,696,700,710,734,736,737,738,739,740,743,744,765,770,979,980],[74,123,140,141,693,700],[74,123,140,141,693,699,700,701,706,741,744,763,764,979],[74,123,140,141,693,694,696,697,698,701,709,746,749,979,980,981,982,983],[74,123,140,141,800,808,821],[74,123,140,141,693,700,800],[74,123,140,141,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,791,792,793,794,795,803],[74,123,140,141,693,802,979,980],[74,123,140,141,693,701,802,979,980],[74,123,140,141,693,700,701,800,801,979,980],[74,123,140,141,693,700,701,800,802,979,980],[74,123,140,141,693,701,800,802,979,980],[74,123,140,141,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,791,792,793,794,795,802,803],[74,123,140,141,693,782,802,979,980],[74,123,140,141,693,701,790,979,980],[74,123,140,141,693,696,700,701,746,800,807,808,813,814,815,816,818,821,985],[74,123,140,141,693,700,701,746,800,802,805,806,811,812,818,821],[74,123,140,141,693,800,804],[74,123,140,141,771,797,798,799,800,801,804,807,813,815,817,818,819,820,822,823,824],[74,123,140,141,693,700,800,804],[74,123,140,141,693,700,800,808,818],[74,123,140,141,693,696,700,701,749,800,802,813,818,821],[74,123,140,141,806,809,810,811,812,821],[74,123,140,141,693,697,700,706,745,749,750,800,802,810,811,813,818,821],[74,123,140,141,693,696,807,809,813,821],[74,123,140,141,693,700,701,746,749,800,813,818],[74,123,140,141,693,696,699,700,701,706,745,749,797,800,804,807,808,813,818,821],[74,123,140,141,696,697,698,699,700,701,706,800,804,808,809,818,820],[74,123,140,141,693,696,700,701,745,749,800,802,813,818,821,980],[74,123,140,141,693,800,820],[74,123,140,141,693,700,701,745,746,813,817,821,985],[74,123,140,141,696,699,700,706,810],[74,123,140,141,693,697,771,796,797,798,799,801,802,979],[74,123,140,141,696,771,797,798,799,800,801,808,809,820,825,984],[74,123,140,141,693,699,700,706,804,808,810,819,979],[74,123,140,141,696,697,700,980],[74,123,140,141,867,873,886],[74,123,140,141,693,709,867],[74,123,140,141,827,828,829,830,831,833,834,835,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,870],[74,123,140,141,693,837,869,979,980],[74,123,140,141,693,869,979,980],[74,123,140,141,693,701,869,979,980],[74,123,140,141,693,700,701,862,867,868,979,980],[74,123,140,141,693,700,701,867,869,979,980],[74,123,140,141,693,869,979],[74,123,140,141,693,701,832,869,979,980],[74,123,140,141,693,701,867,869,979,980],[74,123,140,141,827,828,829,830,831,833,834,835,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,869,870,871],[74,123,140,141,693,836,869,979],[74,123,140,141,693,839,869,979,980],[74,123,140,141,693,867,869,979,980],[74,123,140,141,693,832,839,867,869,979,980],[74,123,140,141,693,701,832,867,869,979,980],[74,123,140,141,693,696,700,701,746,867,872,873,874,878,879,881,882,885,886,985,986,987,988],[74,123,140,141,693,700,701,746,805,867,872,874,881,885,886],[74,123,140,141,693,867,872],[74,123,140,141,826,836,862,863,864,865,866,867,868,872,874,879,881,882,884,885,887,888,889,891,989],[74,123,140,141,693,700,867,872],[74,123,140,141,693,700,863,867],[74,123,140,141,693,700,701,867,874],[74,123,140,141,693,696,699,700,706,745,749,750,867,874,882,886],[74,123,140,141,875,876,877,878,880,883,886],[74,123,140,141,693,696,697,699,700,706,745,749,750,862,867,869,874,876,882,883,886],[74,123,140,141,693,696,700,872,879,880,882,886],[74,123,140,141,693,700,701,746,749,750,867,874,882],[74,123,140,141,693,700,749,750,874,882,885],[74,123,140,141,693,696,699,700,701,706,745,749,750,867,872,873,874,879,882,886],[74,123,140,141,696,697,698,699,700,701,706,867,872,873,874,880,885],[74,123,140,141,693,696,697,699,700,701,706,745,749,750,867,869,873,874,882,886,980],[74,123,140,141,693,700,701,836,867,871,885],[74,123,140,141,693,701,709,745,746,747,882,886,985,989],[74,123,140,141,696,699,700,706,883],[74,123,140,141,693,697,826,861,862,864,865,866,868,869,979],[74,123,140,141,696,700,826,862,864,865,866,867,868,872,873,885,892,979,980],[74,123,140,141,890],[74,123,140,141,693,699,700,701,706,869,873,883,884,979],[74,123,140,141,692,693,701,989,990],[74,123,140,141,990,991],[74,123,140,141,805,991],[74,123,140,141,692,693,694,700,701,745,746,874,882,886,892,930],[74,123,140,141,693,709],[74,123,140,141,696,697,698,700,701,979,980],[74,123,140,141,693,697,700,701,704,980,984],[74,123,140,141,979],[74,123,140,141,984],[74,123,140,141,922,940],[74,123,140,141,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,912,913,914,915,916,917,924],[74,123,140,141,693,923,979,980],[74,123,140,141,693,701,923,979,980],[74,123,140,141,693,701,922,979,980],[74,123,140,141,693,700,701,922,923,979,980],[74,123,140,141,693,701,922,923,979,980],[74,123,140,141,693,701,709,923,979,980],[74,123,140,141,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,912,913,914,915,916,917,923,924],[74,123,140,141,693,903,923,979,980],[74,123,140,141,693,701,911,979,980],[74,123,140,141,693,696,700,746,922,929,932,933,934,937,939,940,985],[74,123,140,141,693,700,701,746,805,922,923,926,927,928,939,940],[74,123,140,141,919,920,921,922,925,929,934,937,938,939,941,942,943],[74,123,140,141,693,700,922,925],[74,123,140,141,693,922,925],[74,123,140,141,693,700,922,939],[74,123,140,141,693,696,700,701,749,922,923,929,939,940],[74,123,140,141,926,927,928,935,936,940],[74,123,140,141,693,697,700,749,750,922,923,927,929,939,940],[74,123,140,141,693,696,929,934,935,940],[74,123,140,141,693,696,699,700,701,706,745,749,922,925,929,934,939,940],[74,123,140,141,696,697,698,699,700,701,706,922,925,935,939],[74,123,140,141,693,696,700,701,749,922,923,929,939,940,980],[74,123,140,141,693,922],[74,123,140,141,693,700,701,745,746,929,938,940,985],[74,123,140,141,696,699,700,706,936],[74,123,140,141,693,697,918,919,920,921,923,979],[74,123,140,141,696,700,919,920,921,922,944,979,980],[74,123,140,141,693,694,701,746,929,931,938,985],[74,123,140,141,693,694,700,701,745,746,929,930,939,940],[74,123,140,141,700,980],[74,123,140,141,702,703],[74,123,140,141,705,707],[74,123,140,141,700,706,980],[74,123,140,141,700,704,708],[74,123,140,141,693,695,696,697,699,701,980],[74,123,140,141,950,971,976],[74,123,140,141,693,700,971],[74,123,140,141,946,966,967,968,969,974],[74,123,140,141,693,701,973,979,980],[74,123,140,141,693,700,701,971,972,979,980],[74,123,140,141,693,700,701,971,973,979,980],[74,123,140,141,946,966,967,968,969,973,974],[74,123,140,141,693,701,965,971,973,979,980],[74,123,140,141,693,973,979,980],[74,123,140,141,693,701,971,973,979,980],[74,123,140,141,693,696,700,701,746,950,951,952,953,956,961,962,971,976,985],[74,123,140,141,693,700,701,746,805,956,961,971,975,976],[74,123,140,141,693,971,975],[74,123,140,141,945,947,948,949,953,954,956,961,962,964,965,971,972,975,977],[74,123,140,141,693,700,971,975],[74,123,140,141,693,700,956,964,971],[74,123,140,141,693,696,699,700,701,749,750,956,962,971,973,976],[74,123,140,141,957,958,959,960,963,976],[74,123,140,141,693,696,699,700,701,706,749,750,947,956,958,962,963,971,973,976],[74,123,140,141,693,696,953,960,962,976],[74,123,140,141,693,700,701,746,749,750,956,962,971],[74,123,140,141,693,700,747,749,750,962],[74,123,140,141,693,696,699,700,701,706,745,749,750,950,953,956,962,971,975,976],[74,123,140,141,696,697,698,699,700,701,706,950,956,960,964,971,975],[74,123,140,141,693,696,699,700,701,749,750,950,956,962,971,973,976,980],[74,123,140,141,693,700,745,746,747,749,954,955,962,976,985],[74,123,140,141,696,699,700,706,963],[74,123,140,141,693,697,945,947,948,949,970,972,973,979],[74,123,140,141,693,971,973],[74,123,140,141,696,700,945,947,948,949,950,964,971,972,978],[74,123,140,141,693,699,700,706,950,963,973,979],[74,123,140,141,693,698,700,701,980],[74,123,140,141,694,697,700,980,985],[74,123,140,141,1089,1090],[74,123,140,141,1089,1090,1091,1092],[74,123,140,141,1089,1091],[74,123,140,141,1089],[74,123,140,141,506,510,1076,1079,1082,1101,1102,1103],[74,123,140,141,1083],[62,74,123,140,141,1076,1082,1103],[74,123,140,141,506,510,1079,1082,1101],[74,123,140,141,506],[74,123,140,141,1076,1082],[74,123,140,141,1067,1068,1069,1076,1077,1078,1080,1082,1083],[74,123,140,141,1080,1082],[74,123,140,141,1067],[74,123,140,141,1082],[74,123,140,141,1079,1082],[74,123,140,141,1066,1079],[74,123,140,141,1065,1075,1077,1082],[74,123,140,141,1027,1076,1082],[74,123,140,141,1071,1072,1076,1082],[74,123,140,141,1070,1073,1074,1075,1082],[74,123,140,141,1073,1082],[74,123,140,141,1013,1067,1071,1076,1079,1082],[74,123,140,141,1013,1064,1065,1066,1076,1079,1080,1081],[74,123,140,141,1070],[62,74,123,140,141,1076,1082,1332],[74,123,140,141,463],[74,123,140,141,411,474,475],[74,123,140,141,183,184,186,198,222,337,348,456],[74,123,140,141,186,217,218,219,221,456],[74,123,140,141,186,354,356,358,359,361,456,458],[74,123,140,141,186,220,257,456],[74,123,140,141,184,186,197,198,204,210,215,336,337,338,347,456,458],[74,123,140,141,456],[74,123,140,141,193,199,218,238,333],[74,123,140,141,186],[74,123,140,141,179,193,199],[74,123,140,141,365],[74,123,140,141,362,363,365],[74,123,140,141,362,364,456],[74,123,137,140,141,238,435,453],[74,123,137,140,141,309,312,328,333,453],[74,123,137,140,141,281,453],[74,123,140,141,341],[74,123,140,141,340,341,342],[74,123,140,141,340],[68,74,123,137,140,141,179,186,198,204,210,216,218,222,223,236,237,304,334,335,348,456,460],[74,123,140,141,183,186,220,257,354,355,360,456,508],[74,123,140,141,220,508],[74,123,140,141,183,237,406,456,508],[74,123,140,141,508],[74,123,140,141,186,220,221,508],[74,123,140,141,357,508],[74,123,140,141,223,336,339,346],[62,74,123,140,141,411],[74,123,140,141,149,193,208],[74,123,140,141,193,208],[62,74,123,140,141,278],[62,74,123,140,141,208],[62,74,123,140,141,199,208,411],[74,123,140,141,193,264,278,279,490,497],[74,123,140,141,263,491,492,493,494,496],[74,123,140,141,314],[74,123,140,141,314,315],[74,123,140,141,197,199,266,267],[74,123,140,141,199,273,274],[74,123,140,141,199,268,276],[74,123,140,141,273],[74,123,140,141,191,199,266,267,268,269,270,271,272,273,276],[74,123,140,141,199,266,273,274,275,277],[74,123,140,141,199,267,269,270],[74,123,140,141,267,269,272,274],[74,123,140,141,495],[74,123,140,141,199],[62,74,123,140,141,187,484],[62,74,123,140,141,166],[62,74,123,140,141,220,255],[62,74,123,140,141,220,348],[74,123,140,141,253,258],[62,74,123,140,141,254,462],[74,123,140,141,1607],[62,66,74,123,137,140,141,174,175,176,177,178,460,504],[74,123,137,140,141,199],[74,123,137,140,141,198,203,284,301,343,344,348,403,405,456,457],[74,123,140,141,236,345],[74,123,140,141,460],[74,123,140,141,185],[62,74,123,140,141,190,193,408,424,426],[74,123,140,141,149,193,408,423,424,425,507],[74,123,140,141,417,418,419,420,421,422],[74,123,140,141,419],[74,123,140,141,423],[74,123,140,141,208,372,373,375],[62,74,123,140,141,199,366,367,368,369,374],[74,123,140,141,372,374],[74,123,140,141,370],[74,123,140,141,371],[62,74,123,140,141,208,254,462],[62,74,123,140,141,208,461,462],[62,74,123,140,141,208,462],[74,123,140,141,301,302],[74,123,140,141,302],[74,123,137,140,141,457,462],[74,123,140,141,331],[74,122,123,140,141,330],[74,123,140,141,193,199,205,207,309,322,326,328,405,408,445,446,453,457],[74,123,140,141,199,248,270],[74,123,140,141,309,320,323,328],[62,74,123,140,141,190,193,309,312,328,331,365,412,413,414,415,416,427,428,429,430,431,432,433,434,508],[74,123,140,141,190,193,218,309,316,317,318,321,322],[74,123,140,141,155,199,218,320,327,408,409,453],[74,123,140,141,324],[74,123,137,140,141,149,187,199,203,213,245,246,249,301,304,369,403,404,445,456,457,458,460,508],[74,123,140,141,190,191,193],[74,123,140,141,309],[74,122,123,140,141,218,245,246,303,304,305,306,307,308,457],[74,123,140,141,328],[74,122,123,140,141,192,193,203,207,243,309,316,317,318,319,320,323,324,325,326,327,446],[74,123,137,140,141,243,244,316,457,458],[74,123,140,141,218,246,301,304,309,405,457],[74,123,137,140,141,456,458],[74,123,137,140,141,155,453,457,458],[74,123,137,140,141,149,179,193,198,205,207,210,213,220,240,245,246,247,248,249,284,285,287,290,292,295,296,297,298,300,348,403,405,453,456,457,458],[74,123,137,140,141,155],[74,123,140,141,186,187,188,216,453,454,455,460,462,508],[74,123,140,141,183,184,456],[74,123,140,141,377],[74,123,137,140,141,155,166,195,361,365,366,367,368,369,375,376,508],[74,123,140,141,149,166,179,193,195,207,210,246,285,290,300,301,354,381,382,383,389,392,393,403,405,453,456],[74,123,140,141,210,216,223,236,246,304,456],[74,123,137,140,141,166,187,198,207,246,387,453,456],[74,123,140,141,407],[74,123,137,140,141,377,390,391,400],[74,123,140,141,453,456],[74,123,140,141,306,446],[74,123,140,141,207,245,348,462],[74,123,137,140,141,149,185,290,350,354,383,389,392,395,453],[74,123,137,140,141,223,236,354,396],[74,123,140,141,186,247,348,398,456,458],[74,123,137,140,141,166,369,456],[74,123,137,140,141,220,247,348,349,350,359,377,397,399,456],[68,74,123,137,140,141,245,402,460,462],[74,123,140,141,299,403],[74,123,137,140,141,149,193,196,198,199,205,207,213,222,223,236,246,249,285,287,297,300,301,348,381,382,383,384,386,388,403,405,453,462],[74,123,137,140,141,155,223,389,394,400,453],[74,123,140,141,226,227,228,229,230,231,232,233,234,235],[74,123,140,141,240,291],[74,123,140,141,293],[74,123,140,141,291],[74,123,140,141,293,294],[74,123,137,140,141,197,198,199,203,204,457],[74,123,137,140,141,149,185,187,205,209,245,248,249,283,403,453,458,460,462],[74,123,137,140,141,149,166,189,196,197,207,209,246,401,446,452,457],[74,123,140,141,316],[74,123,140,141,317],[74,123,140,141,199,210,445],[74,123,140,141,318],[74,123,140,141,192],[74,123,140,141,194,206],[74,123,137,140,141,194,198,205],[74,123,140,141,201,206],[74,123,140,141,202],[74,123,140,141,194,195],[74,123,140,141,194,250],[74,123,140,141,194],[74,123,140,141,196,240,289],[74,123,140,141,288],[74,123,140,141,193,195,196],[74,123,140,141,196,286],[74,123,140,141,193,195],[74,123,140,141,245,348],[74,123,140,141,445],[74,123,137,140,141,166,205,207,211,245,348,402,405,408,409,410,436,437,440,444,446,453,457],[74,123,140,141,259,262,264,265,278,279],[62,74,123,140,141,176,178,208,438,439],[62,74,123,140,141,176,178,208,438,439,443],[74,123,140,141,332],[74,123,140,141,218,239,244,245,309,310,311,312,313,315,328,329,331,334,402,405,456,458],[74,123,140,141,278],[74,123,137,140,141,283,453],[74,123,140,141,283],[74,123,137,140,141,205,251,280,282,284,402,453,460,462],[74,123,140,141,259,260,261,262,264,265,278,279,461],[68,74,123,137,140,141,149,166,194,195,207,213,245,246,249,348,400,401,403,453,456,457,460],[74,123,140,141,190,193,200],[74,123,140,141,244,246,378,381],[74,123,140,141,244,379,447,448,449,450,451],[74,123,137,140,141,240,456],[74,123,137,140,141],[74,123,140,141,243,328],[74,123,140,141,242],[74,123,140,141,244,297],[74,123,140,141,241,243,456],[74,123,137,140,141,189,244,378,379,380,453,456,457],[62,74,123,140,141,193,199,277],[62,74,123,140,141,191],[74,123,140,141,181,182],[62,74,123,140,141,187],[62,74,123,140,141,193,263],[62,68,74,123,140,141,245,249,460,462],[74,123,140,141,187,484,485],[62,74,123,140,141,258],[62,74,123,140,141,149,166,185,252,254,256,257,462],[74,123,140,141,193,220,457],[74,123,140,141,193,385],[62,74,123,135,137,140,141,149,183,185,258,356,460,461],[62,74,123,140,141,174,175,176,177,178,460,505],[62,63,64,65,66,74,123,140,141],[74,123,128,140,141],[74,123,140,141,351,352,353],[74,123,140,141,351],[62,66,74,123,137,139,140,141,149,173,174,175,176,177,178,179,185,213,218,395,423,458,459,462,505],[74,123,140,141,470],[74,123,140,141,472],[74,123,140,141,476],[74,123,140,141,1608],[74,123,140,141,478],[74,123,140,141,480,481,482],[74,123,140,141,486],[67,74,123,140,141,464,469,471,473,477,479,483,487,489,499,500,502,506,507,508,509],[74,123,140,141,488],[74,123,140,141,498],[74,123,140,141,254],[74,123,140,141,501],[74,122,123,140,141,244,378,379,381,447,448,450,451,503,505],[74,123,140,141,173],[74,123,140,141,523],[74,123,140,141,519],[74,123,124,135,140,141,155,517,518],[74,123,140,141,521],[74,123,140,141,520],[74,123,140,141,541],[74,123,140,141,539,541],[74,123,140,141,530,538,539,540,542,544],[74,123,140,141,528],[74,123,140,141,531,536,541,544],[74,123,140,141,527,544],[74,123,140,141,531,532,535,536,537,544],[74,123,140,141,531,532,533,535,536,544],[74,123,140,141,528,529,530,531,532,536,537,538,540,541,542,544],[74,123,140,141,544],[74,123,140,141,526,528,529,530,531,532,533,535,536,537,538,539,540,541,542,543],[74,123,140,141,526,544],[74,123,140,141,531,533,534,536,537,544],[74,123,140,141,535,544],[74,123,140,141,536,537,541,544],[74,123,140,141,529,539],[74,123,140,141,155],[74,123,140,141,1026],[74,123,140,141,1027],[74,123,140,141,1368],[74,123,140,141,574,583,584],[74,123,140,141,573,574],[74,123,140,141,546,547],[74,123,140,141,545,548],[74,123,140,141,637,638,639,641,642,643,644,645],[74,123,140,141,640],[74,123,140,141,647],[74,123,140,141,650,656,658,659,660],[74,123,140,141,649],[74,123,140,141,646],[74,123,140,141,155,653,654,655],[74,123,140,141,653,657],[74,123,140,141,653],[74,123,140,141,648,649,657,660,661,662],[74,123,140,141,646,655,663,664,667,673],[74,123,140,141,663,670,671,672],[74,123,140,141,663,671],[74,123,140,141,155,655,669],[74,123,140,141,669],[74,123,140,141,646,655,664,678],[74,123,140,141,155,653,655,663,664,665,667,668,669,677],[74,123,140,141,155,653,655,666,667,669],[74,123,140,141,646,655,663,664,665,666,667,668,669,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,689,690],[74,123,140,141,646,653,663],[74,123,140,141,663],[74,123,140,141,669,675,678],[74,123,140,141,155,655,664,665,667,668],[74,123,140,141,155,647,654],[74,123,140,141,655,663,665],[74,123,140,141,653,666,667],[74,123,140,141,653,667],[74,123,140,141,653,663,666,667],[74,123,140,141,653,666],[74,123,140,141,667,684,686,687,688],[74,88,92,123,140,141,166],[74,88,123,140,141,155,166],[74,83,123,140,141],[74,85,88,123,140,141,163,166],[74,123,140,141,143,163],[74,83,123,140,141,173],[74,85,88,123,140,141,143,166],[74,80,81,84,87,123,134,140,141,155,166],[74,88,95,123,140,141],[74,80,86,123,140,141],[74,88,109,110,123,140,141],[74,84,88,123,140,141,158,166,173],[74,109,123,140,141,173],[74,82,83,123,140,141,173],[74,88,123,140,141],[74,82,83,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,123,140,141],[74,88,103,123,140,141],[74,88,95,96,123,140,141],[74,86,88,96,97,123,140,141],[74,87,123,140,141],[74,80,83,88,123,140,141],[74,88,92,96,97,123,140,141],[74,92,123,140,141],[74,86,88,91,123,140,141,166],[74,80,85,88,95,123,140,141],[74,83,88,109,123,140,141,171,173],[74,123,140,141,584,610],[74,123,140,141,570],[74,123,134,135,137,138,139,140,141,143,155,163,166,172,173,545,570,571,572,574,575,577,578,579,580,581,582,583,584],[74,123,140,141,570,571,572,576],[74,123,140,141,572],[74,123,140,141,574,584],[74,123,140,141,601],[74,123,140,141,569,610,1086],[74,123,140,141,552,553,555,556,557,560,562,563,587,588,590,597,598,600,1086],[74,123,140,141,562,604,605,1086],[74,123,140,141,562,588,592,1086],[74,123,140,141,552,560,562,587,1086],[74,123,140,141,577],[74,123,140,141,552,562,569,587,589,606,1086],[74,123,140,141,584,608,610],[74,123,126,135,140,141,155,552,557,560,562,569,584,587,588,589,590,592,593,596,597,598,602,603,606,607,610,1086],[74,123,140,141,562,577,587,588,1086],[74,123,140,141,562,604,605,606,1086],[74,123,140,141,562,577,589,590,591,1086],[74,123,126,135,140,141,155,552,557,560,562,569,577,584,587,588,589,590,591,592,593,596,597,598,602,603,604,605,606,607,608,609,610,1086],[74,123,140,141,552,557,560,562,563,569,577,587,588,589,590,591,592,593,604,605,606,1086,1087,1088,1093],[74,123,140,141,1123],[74,123,140,141,1114,1115],[74,123,140,141,1111,1112,1114,1116,1117,1122],[74,123,140,141,1112,1114],[74,123,140,141,1122],[74,123,140,141,1114],[74,123,140,141,1111,1112,1114,1117,1118,1119,1120,1121],[74,123,140,141,1111,1112,1113],[74,123,140,141,1323,1324],[74,123,140,141,1323],[74,123,140,141,208,523,524],[74,123,140,141,208],[74,123,140,141,208,1063,1094,1605],[62,74,123,140,141,208,1320],[62,74,123,140,141,208,1094,1380,1605,1613,1690],[62,74,123,140,141,208,489,499,1320,1333],[62,74,123,140,141,208,1094,1380,1605,1690,1692],[62,74,123,140,141,208,489,499,1129,1320,1333],[62,74,123,140,141,208,499,1060,1140,1320,1327,1328,1333,1337,1388,1390,1396,1397,1401,1423,1427,1432,1437,1694,1700,1701,1887,1888,1889],[62,74,123,140,141,208,499,1060,1320,1327,1328,1389,1390,1427,1428,1432,1437,1439,1694,1700,1701],[62,74,123,140,141,208,1094,1380,1605,1695],[62,74,123,140,141,208,1140,1320,1388,1434,1694,1892],[74,123,140,141,208,499],[62,74,123,140,141,208,499,1320,1333,1395,1694],[62,74,123,140,141,208,489,499,1167,1320,1333,1388,1390,1694],[74,123,140,141,208,1094,1099,1605],[62,74,123,140,141,208,1320,1385,1694],[74,123,140,141,208,499,1694],[62,74,123,140,141,208,1320,1333],[62,74,123,140,141,208,1060,1104,1320,1333,1398,1509,1602,1694],[62,74,123,140,141,208,499,1060,1140,1320,1333,1388,1401,1421,1694,1887,1899],[74,123,140,141,208,1126],[74,123,140,141,208,1094,1097,1131,1605],[74,123,140,141,208,1129,1130],[74,123,140,141,208,1094,1096,1097,1098,1146,1605],[74,123,140,141,208,984,1060,1061,1130,1135,1136,1140,1142,1143,1144],[74,123,140,141,208,1094,1097,1098,1148,1605],[74,123,140,141,208,984,1060,1061,1130,1135,1136,1140,1141,1142,1144],[74,123,140,141,208,1094,1097,1098,1150,1605],[74,123,140,141,208,984,1060,1061,1130,1135,1136,1141,1144],[74,123,140,141,208,1094,1096,1097,1098,1145,1605],[74,123,140,141,208,984,1060,1061,1130,1135,1136,1142,1143,1144],[74,123,140,141,208,1094,1097,1098,1153,1605],[74,123,140,141,208,1130,1135,1141,1143,1144],[74,123,140,141,208,1094,1096,1097,1098,1156,1605],[74,123,140,141,208,1094,1097,1098,1158,1605],[74,123,140,141,208,984,1060,1061,1130,1135,1144],[74,123,140,141,208,1094,1096,1161,1605],[74,123,140,141,208,984,1060,1061,1135,1144,1160],[74,123,140,141,208,984,1060,1061,1124,1130,1135,1144],[74,123,140,141,208,1094,1096,1097,1098,1163,1605],[74,123,140,141,208,1094,1096,1097,1098,1155,1605],[74,123,140,141,208,1094,1096,1097,1098,1168,1605],[74,123,140,141,208,984,1060,1061,1124,1130,1135,1144,1166,1167],[74,123,140,141,208,1094,1170,1605],[74,123,140,141,208,1094,1096,1097,1098,1173,1605],[74,123,140,141,208,506,984,1060,1061,1135,1144],[74,123,140,141,208,1094,1096,1097,1098,1172,1605],[74,123,140,141,208,984,1060,1061,1124,1130,1133,1135,1144],[74,123,140,141,208,1094,1179,1605],[74,123,140,141,208,506,1176],[74,123,140,141,208,1094,1177,1605],[74,123,140,141,208,1094,1097,1098,1181,1182,1605],[74,123,140,141,208,984,1060,1061,1124,1130,1135,1136,1141,1144,1181],[74,123,140,141,208,1094,1097,1098,1184,1605],[74,123,140,141,208,984,1060,1061,1124,1130,1135,1136,1141,1144],[74,123,140,141,208,1094,1096,1097,1098,1187,1605],[74,123,140,141,208,1094,1096,1097,1098,1189,1605],[74,123,140,141,208,984,1011,1060,1061,1124,1128,1130,1135,1144],[74,123,140,141,208,1094,1096,1097,1098,1186,1605],[74,123,140,141,208,1094,1192,1605],[74,123,140,141,208,1011,1094,1194,1605],[74,123,140,141,208,506,984,1011,1060,1061,1124,1128,1135],[74,123,140,141,208,506,984,1060,1061,1124,1135],[74,123,140,141,208,1094,1096,1097,1198,1605],[74,123,140,141,208,984,1060,1061,1124,1130,1135,1140,1144,1196],[74,123,140,141,208,1094,1096,1097,1197,1605],[74,123,140,141,208,1124,1144],[74,123,140,141,208,507,510,1609,1610],[62,74,123,140,141,208,1060,1094,1380,1605,1699],[74,123,140,141,208,1060,1094,1337,1380,1605,1699],[62,74,123,140,141,208,1094,1380,1605,1697],[62,74,123,140,141,208,1094,1380,1605,1698],[62,74,123,140,141,208,1060,1094,1337,1380,1605,1690,1700],[74,123,140,141,208,1094,1321,1605],[74,123,140,141,208,1094,1327,1328,1605],[74,123,140,141,208,1060,1094,1605],[62,74,123,140,141,208,1060,1320,1327,1387,1400,1421,1425,1426,1427,1436,1437,1694,1698],[62,74,123,140,141,208,1694],[62,74,123,140,141,208,1320,1421,1542,1694,1697],[62,74,123,140,141,208,1320,1390,1694],[62,74,123,140,141,208,1060,1320,1327,1328,1337,1425,1426,1427,1431,1436,1440,1441,1694,1699],[62,74,123,140,141,208,1320,1327,1333,1337,1339,1342,1402,1429,1430],[62,74,123,140,141,208,1320,1338,1421,1433,1466],[62,74,123,140,141,208,1060,1320,1694],[74,123,140,141,208,1327,1351],[74,123,140,141,208,1094,1605],[74,123,140,141,208,1094,1327,1605],[74,123,140,141,208,1094,1327,1341,1380,1605],[74,123,140,141,208,1094,1327,1331,1380,1605],[74,123,140,141,208,1331,1340,1341,1343,1344,1345,1346,1347,1348,1349,1350],[74,123,140,141,208,1320,1331,1340],[74,123,140,141,208,1320,1331],[74,123,140,141,208,1331,1342],[62,74,123,140,141,208,1327],[62,74,123,140,141,208,1327,1333,1339],[62,74,123,140,141,208,1320,1333,1337],[62,74,123,140,141,208,1060,1140,1320,1401,1421],[62,74,123,140,141,208,1320,1438,1509],[62,74,123,140,141,208,1060,1140,1320,1327,1388,1391,1400,1401,1421,1424,1427,1429,1442,1595,1694,1699,1703,1704,1879,1880,1881,1883,1885,1886],[62,74,123,140,141,208,1094,1380,1421,1595,1605,1690,1704],[62,74,123,140,141,208,1094,1380,1425,1605,1690,1886],[74,123,140,141,208,1094,1383,1605],[62,74,123,140,141,208,1060,1320,1383,1595,1694,1882],[74,123,140,141,208,1320,1421,1694],[74,123,140,141,208,1320],[62,74,123,140,141,208,1320,1327,1383,1429,1595,1694,1737,1851,1878],[62,74,123,140,141,208,1320,1595,1694],[74,123,140,141,208,1320,1880],[74,123,140,141,208,473,1320,1393,1394,1421,1595,1694],[62,74,123,140,141,208,1059,1060,1320,1383,1421,1595,1694,1737,1851,1878,1882,1884],[62,74,123,140,141,208,1320,1425,1694,1884],[74,123,140,141,208,1094,1385,1605],[74,123,140,141,208,1060,1094,1327,1380,1386,1387,1605],[74,123,140,141,208,1094,1388,1605],[74,123,140,141,208,1094,1380,1389,1605],[74,123,140,141,208,1094,1390,1605],[74,123,140,141,208,1094,1391,1605],[62,74,123,140,141,208,1094,1337,1380,1392,1393,1394,1605],[62,74,123,140,141,208,1094,1337,1339,1605],[74,123,140,141,208,1094,1380,1395,1605],[74,123,140,141,208,1094,1396,1605],[74,123,140,141,208,1094,1398,1605],[74,123,140,141,208,1094,1399,1400,1605],[74,123,140,141,208,1094,1401,1605],[74,123,140,141,208,1094,1402,1605],[74,123,140,141,208,1337],[62,74,123,140,141,208,1060,1327,1386],[74,123,140,141,208,1140,1337,1338],[74,123,140,141,208,1060,1337,1338],[74,123,140,141,208,1337,1338],[74,123,140,141,208,1337,1338,1392,1393],[62,74,123,140,141,208,1320,1337,1338],[62,74,123,140,141,208,1396],[62,74,123,140,141,208,1320,1327,1337,1338,1399],[74,123,140,141,208,1060,1140,1337,1338],[74,123,140,141,208,1062],[74,123,140,141,208,1094,1338,1605],[74,123,140,141,208,1094,1097,1130,1605],[74,123,140,141,208,1094,1097,1124,1134,1144,1605],[74,123,140,141,208,1060,1094,1417,1605],[74,123,140,141,208,1062,1094,1605],[74,123,140,141,208,1094,1422,1605],[74,123,140,141,208,1060,1094,1426,1605],[74,123,140,141,208,1094,1421,1542,1605],[74,123,140,141,208,1094,1418,1605],[74,123,140,141,208,1060,1094,1427,1605],[74,123,140,141,208,1094,1136,1605],[74,123,140,141,208,1060,1094,1160,1605],[74,123,140,141,208,1060,1094,1166,1605],[74,123,140,141,208,1094,1428,1605],[74,123,140,141,208,1094,1425,1605],[74,123,140,141,208,1094,1399,1605],[74,123,140,141,208,1094,1429,1605],[74,123,140,141,208,1094,1429,1430,1605],[74,123,140,141,208,1094,1327,1431,1605],[74,123,140,141,208,1094,1424,1605],[74,123,140,141,208,1060,1094,1432,1605],[74,123,140,141,208,1094,1167,1605],[74,123,140,141,208,1094,1433,1605],[74,123,140,141,208,1094,1434,1605],[74,123,140,141,208,1094,1141,1605],[74,123,140,141,208,1094,1138,1605],[74,123,140,141,208,1094,1181,1605],[74,123,140,141,208,1094,1125,1605],[74,123,140,141,208,1094,1436,1605],[74,123,140,141,208,1060,1094,1386,1605],[74,123,140,141,208,1094,1141,1142,1605],[74,123,140,141,208,1094,1143,1605],[74,123,140,141,208,1094,1437,1605],[74,123,140,141,208,1094,1438,1605],[74,123,140,141,208,1060,1094,1439,1605],[74,123,140,141,208,1060,1094,1440,1605],[74,123,140,141,208,1060,1094,1441,1605],[74,123,140,141,208,1094,1442,1605],[74,123,140,141,208,506],[74,123,140,141,208,1124,1130],[74,123,140,141,208,1060],[74,123,128,140,141,208,1094,1096,1133,1605],[74,123,140,141,208,1094,1126,1605],[74,123,140,141,208,1094,1135,1605],[74,123,140,141,208,1094,1129,1605],[74,123,128,140,141,208,483,984,1060,1061],[74,123,140,141,208,984,1011,1060,1061,1104,1105,1110,1124,1125,1602],[74,123,140,141,208,1124],[74,123,140,141,208,1060,1126,1133,1134],[74,123,128,140,141,208,483,984,1011,1060,1061,1124,1125,1128],[74,123,140,141,208,1011,1060,1061],[74,123,140,141,208,1422],[74,123,140,141,208,1421],[74,123,140,141,208,1060,1424,1425],[74,123,140,141,208,1140,1320,1418,1419,1420],[62,74,123,140,141,208,1124,1140],[74,123,140,141,208,1139],[74,123,128,140,141,208],[74,123,140,141,208,1060,1124],[74,123,140,141,145,208,692,992,993,1094,1580,1605],[74,123,140,141,208,692,992,1060],[74,123,140,141,208,892,1034,1059],[74,123,140,141,208,1327],[74,123,140,141,208,1429],[74,123,140,141,208,1327,1328],[74,123,140,141,208,1060,1160],[74,123,140,141,208,1137,1138,1140],[74,123,140,141,208,1138,1140,1141],[74,123,140,141,208,1140],[74,123,140,141,208,1124,1140],[74,123,140,141,208,1060,1421],[74,123,140,141,208,1094,1380,1456,1605],[74,123,140,141,208,1094,1420,1542,1605],[74,123,140,141,208,1094,1380,1452,1605],[74,123,140,141,208,1094,1542,1605],[74,123,140,141,208,473,1320,1419,1450,1454,1455],[74,123,140,141,208,1320,1419,1450,1521,1522],[74,123,140,141,208,473,1320,1419,1450,1526,1527],[74,123,140,141,208,473,1320,1419,1450,1467,1468,1469],[74,123,140,141,208,1320,1419,1450,1524],[74,123,140,141,208,1419,1420,1452,1456,1459,1462,1465,1470,1473,1513,1517,1520,1523,1525,1528,1531,1535,1538,1541],[74,123,140,141,208,1320,1419,1450,1518,1519],[74,123,140,141,208,473,1320,1419,1450,1457,1458],[74,123,140,141,208,473,1320,1419,1450,1471,1472],[74,123,140,141,208,1320,1419,1450,1451],[74,123,140,141,208,1320,1327,1419,1450,1514,1515,1516],[74,123,140,141,208,473,1320,1419,1450,1460,1461],[74,123,140,141,208,473,1320,1419,1450,1536,1537],[74,123,140,141,208,1418],[74,123,140,141,208,473,1320,1419,1450,1529,1530],[74,123,140,141,208,1094,1124,1451,1455,1458,1461,1464,1469,1472,1512,1516,1519,1522,1524,1527,1530,1534,1537,1540,1605],[74,123,140,141,208,1451,1455,1458,1461,1464,1469,1472,1512,1516,1519,1522,1524,1527,1530,1534,1537,1540],[74,123,140,141,208,473,1320,1419,1433,1450,1463,1464],[74,123,140,141,208,473,1320,1419,1450,1533,1534],[74,123,140,141,208,1320,1419,1450,1510,1511,1512],[74,123,140,141,208,1094,1454,1605],[74,123,140,141,208,1094,1468,1605],[74,123,140,141,208,1094,1457,1605],[74,123,140,141,208,1094,1460,1605],[74,123,140,141,208,1094,1463,1471,1511,1515,1518,1526,1529,1532,1536,1605],[74,123,140,141,208,1094,1453,1605],[74,123,140,141,208,1453],[74,123,140,141,208,1453,1454,1457,1460,1463,1468,1471,1511,1515,1518,1526,1529,1532,1536],[74,123,140,141,208,1320,1433],[74,123,140,141,208,1532],[74,123,140,141,208,473,1320,1419,1450,1539,1540],[74,123,140,141,208,506,1084,1602],[74,123,140,141,208,1094,1594,1605],[74,123,140,141,208,1094,1466,1605],[74,123,140,141,208,1094,1392,1393,1605],[74,123,140,141,208,1060,1094,1595,1605],[74,123,140,141,208,1325],[74,123,140,141,208,1060,1325],[74,123,140,141,208,1320,1325],[74,123,140,141,208,1325,1326],[74,123,140,141,208,1325,1392],[74,123,140,141,208,1059,1060,1325,1421,1424,1425,1429],[74,123,140,141,208,1060,1084,1094,1104,1602,1605],[74,123,140,141,1060,1084,1104],[74,123,140,141,208,549,550],[74,123,140,141,208,611,612],[74,123,140,141,208,1094,1380,1605],[74,123,140,141,1036,1039,1040,1041,1042,1043],[74,123,140,141,1035,1036,1037,1038],[74,123,140,141,1036,1040,1041],[74,123,140,141,1036,1039,1041,1042,1043],[74,123,140,141,1036,1039,1041,1049,1050],[74,123,140,141,1036,1037,1038,1039,1040,1041,1044,1045,1046,1048,1051,1053,1054,1055,1056,1057,1058],[74,123,140,141,507,1035,1039,1041,1052],[74,123,140,141,1037],[74,123,140,141,1035,1040,1041,1043,1047],[74,123,140,141,1035],[74,123,140,141,1035,1050,1202,1208,1211,1217,1237,1280],[74,123,140,141,1279],[74,123,140,141,1261],[74,123,140,141,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278],[74,123,140,141,1038],[74,123,140,141,1035,1222],[74,123,140,141,1035,1208],[74,123,140,141,1035,1049,1201,1230],[74,123,140,141,1041,1050,1201,1202,1208],[74,123,140,141,1035,1201,1215],[74,123,140,141,1035,1047,1201,1216,1283],[74,123,140,141,1035,1050,1202,1208,1232],[74,123,140,141,1035,1052,1203,1217],[74,123,140,141,1035,1201],[74,123,140,141,1035,1203],[74,123,140,141,507,1035,1206],[74,123,140,141,1035,1052],[74,123,140,141,1035,1201,1216],[74,123,140,141,1035,1049,1201,1203,1205,1230],[74,123,140,141,1201,1208],[74,123,140,141,1201,1216],[74,123,140,141,1035,1201,1209,1228],[74,123,140,141,1035,1049,1201,1229],[74,123,140,141,1035,1052,1203],[74,123,140,141,1050,1052,1201,1202],[74,123,140,141,1035,1240],[74,123,140,141,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1280,1281,1282,1283,1284,1285,1286,1287,1288,1290,1291,1293,1294,1295,1296,1297,1298,1299,1300,1310,1311,1312],[74,123,140,141,1201],[74,123,140,141,1035,1049,1201,1203,1230],[74,123,140,141,1035,1050,1201,1208,1289],[74,123,140,141,1035,1049,1050,1201,1229,1292],[74,123,140,141,1035,1050,1201],[74,123,140,141,1035,1050,1201,1202,1213],[74,123,140,141,1035,1049,1050,1201,1203,1230,1289],[74,123,140,141,1035,1049,1050,1201,1208,1230,1289],[74,123,140,141,1035,1206],[74,123,140,141,1035,1050,1201,1202],[74,123,140,141,1035,1201,1202],[74,123,140,141,1035,1201,1202,1223],[74,123,140,141,1035,1201,1208,1301,1309],[74,123,140,141,1035,1203,1217],[74,123,140,141,1035,1217],[74,123,140,141,1035,1205],[74,123,140,141,1035,1047,1201,1216],[74,123,140,141,1035,1214],[74,123,140,141,1035,1050],[74,123,140,141,1047,1049,1050,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230],[74,123,140,141,1218,1219],[74,123,140,141,1042,1219,1314,1315],[74,123,140,141,1218],[74,123,140,141,1036],[74,123,140,141,1059,1231,1313,1316,1319],[74,123,140,141,1302,1307],[74,123,140,141,1303,1305,1306],[74,123,140,141,1307],[74,123,140,141,1304,1307],[74,123,140,141,1301,1308],[74,123,140,141,1035,1317,1318]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"dc0a7f107690ee5cd8afc8dbf05c4df78085471ce16bdd9881642ec738bc81fe","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"f949f7f6c7802a338039cfc2156d1fe285cdd1e092c64437ebe15ae8edc854e0","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2bc7425ef40526650d6db7e072c1ff4a51101c3ac2cc4b666623b19496a6e27","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b039f55681caaf111d5eb84d292b9bee9e0131d0db1ad0871eef0964f533c73","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"0dba70b3fb0dcd713fda33c2df64fa6751fff6460e536971cee917260fb17882","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"2e07abf27aa06353d46f4448c0bbac73431f6065eef7113128a5cd804d0c384d","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"42bc0e1a903408137c3df2b06dfd7e402cdab5bbfa5fcfb871b22ebfdb30bd0b","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"2f4e6b4d39426a1b85ecf4bdeb9dddbf4d9b3397d95d8555d46f925c9519ec7d","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"89d5d28d4f57e000b836ac273079be1b75710e28ce14750d081fb420d37e2ca5","impliedFormat":1},{"version":"fd4e24ccff3966390600d7f5d6aa1fed5a512e92ada735ea5fbc933d313ad3d3","impliedFormat":1},{"version":"b7cddfe1aa6b86b5fad3c9ccb30d05b3ccb165aebbf112f48d2d8a5f69dd98b1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"bd2c7ada3dee03653d3f601011d30072194bc3970cd93208f9588fbdc0c69347","impliedFormat":1},{"version":"e480da45d32313e7174b265674da504f075f59ef326852f0c5a5d863b438ae85","impliedFormat":1},{"version":"ad54850f61fcf5d014e11be80d2f46fea9265cfa7e77456da876f7833ef81769","impliedFormat":1},{"version":"6f7c9e8bd2b5b6a080b07080065f94900bd3c7e5ebbd3047bc33fcce2fab1dd8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"da5950ee2a90721df6f3fba45f5d05308f7e4c35835392215dd2cd404505e2de","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"f42d5fed19610d485c646a0c430e768115567d078c7fc855c57b0c578b3d6cd3","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"d5630f2ad9b4541e5ce891648121022f9412ecdca1820baa1f0104f70fd7eff7","impliedFormat":1},{"version":"4d15375ab13497104bc8fe56fdef2b5fd6853f29255737d23a33fa306ff7fd69","impliedFormat":1},{"version":"2cd3fc1d0d6a1e85baffd2d4f50f5efb192b5446eef567e97c94765402f0aad4","impliedFormat":1},{"version":"e4cbf2f1e89ecccaddd2c045e600ae41b732295953fb06247c7dcbc2d281ed30","impliedFormat":1},{"version":"27bbdb7509a5bb564020321fc5485764d0db3230a10d2336ae5ce2c1d401b0e7","impliedFormat":1},{"version":"8c1697d90c394a6fd955b98eae01238eff628e129b987a68aea10f898a48e7da","impliedFormat":1},{"version":"7580e62139cb2b44a0270c8d01abcbfcba2819a02514a527342447fa69b34ef1","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"d10d63718e1646c2279e3b33831f82c60e31f622b2b7020f1196409ca4c09242","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"a22dd55aa4d39906252000ab8e8a1b83b195eef7f4274eb51e457c1f11cf6580","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"612d9da66bb046a9c1e2e8d026245ded881fc4b9f98cbfae714415d57ee0ae0b","impliedFormat":1},{"version":"32c2ad9494dad5d11b0564a619fee18f388db6c1e9e2cd3c360b3122549691eb","impliedFormat":1},{"version":"6c301d40aec56a74ec7bd7324e31a728dadf9bfba3e96def02938d3d973534ec","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"25a5f6fd3a2243c859eddc99ab5fba11d970af2fe7a5df9c32b7668f76f97b01","impliedFormat":1},{"version":"8d207e1f9d2c30d6f77dfa693f3827c3fbf0d89240297e10bdfe1041d433df68","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"273782b8454e78f6a8b30d2cfbf6860499c930595095fcc1689637115f0eddda","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"7029e566b8df176f703fb59fd437a38670c7a0e02c58b2d66dfb5b2e2b2defdb","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"e9f147ecca73d9346a4c073432843c159ccbe50bdcb678a78f6da10eae2cecf4","impliedFormat":1},{"version":"de061f7d72bd65c06fc1419f841dfdcb29a8e22fe6fa527d1e6eb20b897d4de0","impliedFormat":1},{"version":"663beafc2446079574570cba86e9b15f986f908ddb1b01274509970126fee945","impliedFormat":1},{"version":"a3102887d5058bf4cb5b37fa6964c09e9527c42053b3b5c642b89878620748de","impliedFormat":1},{"version":"0aaaa1727edd29673d85c9b26d7ca4d54e5407a48586903c51b48b7f7d196f61","impliedFormat":1},{"version":"d35bca0b261bff02635758c48e8ab99c61c420d0dfabbcf467e847171d876b7d","impliedFormat":1},{"version":"3bc12c40d90c342ff88a3d876996c555ed5cbee5fe8c3308a240b321f401ee46","impliedFormat":1},{"version":"ba130768aae855a5477e9e148e5c879548e6e7ccbcc56fd1934c8a18ea5b7569","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"b499af2054a037a162b3b72cd886f48bbf32a3502c865c6e29fac7d2ab3ce0b5","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"d87f90d2df7b638204d81d6c57e1f2a8cc9317c45ca331c691c375649aa9255c","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"4cceef18d7f088e797a463e90b7a9dad10c6bc667724b7686e3e740ae00122be","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"cc1954b539604b1e562319119ac7e888172208b32ca873f9a357a92c826bd046","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"706dd95827e7ebaabda91d5db2b755233e0952d98570e9c032b0f066a15c1177","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"990b8fad2327b77e6920cc792af320e8867e68f02ce849b12c0a6ab9a1aebb09","impliedFormat":1},{"version":"5eb8cd1cb0c9143d74a8190b577c522720878c31aef67d866fcd29973f83e955","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"a6805fcafed712aea7759f8bc731014f9d22738c1d6ef9d43b8091d1d48346d5","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"142617b3cdf902b69c6464c9fbd942b60ab3e733ca18c032b19e0f7e2adbefe8","impliedFormat":1},{"version":"0b603555f1881f87256ffd6344d3e3ed6d466c2e701eabf381f28be8c2125892","impliedFormat":1},{"version":"897e4f7662488e3ecc79e743bdd3b78f13bdb69a97851afa5b440c4211e32ea9","impliedFormat":1},{"version":"e2e1c6d3b2d93add5200bd7bc1a8cccb4e446836b2111ece45db8683a2c765de","impliedFormat":1},{"version":"251b03d5cd243854ce870d9a9a39f491faf69898c5d6b5eee28cc7649c57417b","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"2c4de79f406d137390608e8c0a44fba2ff8e00bacfcae7c9d1781fef10e9440d","impliedFormat":1},{"version":"07ba23a10465791be5d22deaf5ef7de7658774ddff53721e5ea17fedea1bc721","impliedFormat":1},{"version":"dca8c645c5afeb03b1ecedbf16323f33e7d0afaa6256c8e047e6e38087a97f53","impliedFormat":1},{"version":"775f181bd4a533d6f8b5e55ec1d9f1624559720ae8a70e9432258da26b38d27c","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"0659e6650e6c528420733abc2cdc36474ef14cc8d64ef3c6fee794d71c69cc2e","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"cd8ce8d68567f62dd580b3c3c37777ac3f5b81944c7417f5ea83030eab533385","impliedFormat":1},{"version":"e374d1eaa05b7dc38580062942ac8351ce79cbe11f6dbce4946a582a5680582d","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49af4b52f0d4d2304c5f2c6fe5fab3e153e0acc38830d0202821b877c097dd02","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"e68b8e5a1df7c1be2bc105141456ecba70215806e1c28bfbc5c12bfce4be6e68","impliedFormat":1},{"version":"511c8f02329808d47d00b859c532ae9115590048b17325a946c74dac48428650","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"b5f9e66625783eefcbe3d2da074b2e7ba2066d61ce3fc6ef4f22805ad946cab4","impliedFormat":1},{"version":"e37115962d284b9f7a37c2bdd2add50f88365dde41f5e0ff591ffc48a8ec7575","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"f89488602bec98a142072fae7ea5ba99431a569ff580c64b7be39896474799d8","impliedFormat":1},{"version":"bbbc47961f39a57df103cf4ca3bb8f8732b4b6678a18225a0aa76d59c466956c","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"2ffb043dc5163458e473b7010859f86e01dc4edffcae0a93d885d028b426a546","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"04b7b2e0832dfd3c31e81df3975e8d8fda28e7ff999b0aa2932608a8f6661d5c","impliedFormat":1},{"version":"ca2d34c6ed5cbd3070b8b6f32f42ae54adcc6499c1e4b99f0a5798b3f27cc653","impliedFormat":1},{"version":"9ec68995e66dd6b9dac834bf5ae85fde802714ea2e82151a5d1d53ef01b463ef","impliedFormat":1},{"version":"5c4d626b4902f2ef8a1cc146d761d276cef988016dc674e3b98fbad70e64bc9f","impliedFormat":1},{"version":"fdfaa0aad899524962e2955287b5b991ffe3be50f64e02eb60c933ca44644a94","impliedFormat":1},{"version":"53c972a0f9bc3a4ec70fff7314123ea8cfcf75b3703046f767d2dc1eea87b2fb","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"7303b45138d2511035056a5901a1490ebdcbf055cbb1276f8629c5121cbe733e","impliedFormat":1},{"version":"27f874cd5327507eeff699a74567f60c1215b94509f4308633a7b01922471ed2","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"2c6cf04bc525caf6546e859e8ef10bfb9573837ec0bc5ec7b53a7b1b8ca72781","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"87cc05fe13108f02e12da7e3efd8e360fef78d96a0c9e11408ea1b1b9fb3e03d","impliedFormat":1},{"version":"1abbf67c218d23c2ce76887caac2df6c7dab3d97ba2b65348432b876f510002a","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"8bd496cf710d4873d15e4891a5dbf945673e3321ca74cf75187e347fd5ed295e","impliedFormat":1},{"version":"a6dba407fc287f1e25454e75028c91bbc00675f2d1c4e8b3edcc36c08611a486","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"c0723195c85e19656d6b5b9fdb81d3f3403c1ae4679e722c6ea058c516b38d12","impliedFormat":1},{"version":"186eea74805194f04e41038fc5eca653788b9dedbab7c2d7d17e10139622dd92","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"1594da19968752a22b2ac48c2d0e60575700e745c577a8a4a676b841238ad5bb","impliedFormat":1},{"version":"e0cee12109e0a10a4c3d6769fcc7644b7c1ea7f52365bea51728f5af29f8a137","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"3536968defef8a75514f547ead5e2e9c1e984820290ec9b00c5fdfb6ef786535","impliedFormat":1},{"version":"d83773870080c30a230e322ce13a9c6f3398e8dacea4ea8a83e26370f3bac23e","impliedFormat":1},{"version":"dcfeaf98d66314fec29a9076c4290e45d0b196a65827becc19138e9c7b855f37","impliedFormat":1},{"version":"6849fe9210fe4946d5f085bfed36758f33dc6ae15a751338d178dd4daa017c46","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"ffae4e1e06aa848a1e4bcef162cd1c48e5909b26223515981310af9c036bdfc7","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"34e16eb7c31768a11a08aebcfb3d70d7b8f0b016197e98d8419e566ceae6d6c8","impliedFormat":1},{"version":"f94ec1f7e4b709d26960306c9082a7a1b728a6e13089346aa48ba57c74cbf47e","impliedFormat":1},{"version":"9a11cb4033405e96c247cd5aa29790212aaffdd127869e8a5219103f0b389fd5","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"aff5213585cb72e94054dfe17250ff315f3569b3919d1ef1ad235f37c4ee894e","impliedFormat":1},{"version":"fb2ea35e1be6388d722d7725e2b49c697d34d9c890c3b96758faaeb86d35cef8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"456006a6975b26c0a1785feddae165f6d307e2d601ffde27e21fc4a790e448a4","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"1fe0d18b111e1145a7e7601855bccd4ca20f24e3b9a5aba6bb1fa9d1a7059170","impliedFormat":1},{"version":"5632c3c26d420c063eebe64c45b1248b9492a67bf44f1d0c57e9dc8f6cf449bb","impliedFormat":1},{"version":"0df5aa619ab12993a39ea6dae062ee46eadbb4d738916460e636ada52bced75b","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"10ab7be91f87ebe8916b62cf28af2e45b5601fc7b0e311adf838f912c6b31dd8","impliedFormat":1},{"version":"bc636fbc08e0979ceb7eb0731a33000283d77a33b62e1f71ee65be50394e40ba","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"75bbd3be047d539988a0ff0b56384ef7a6a25f3b676ad96bee547d44c31622a7","impliedFormat":1},{"version":"42960001a776b089ade681ab5cfddc936e0afb0615133ec1841f3dee89d3e1bf","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"da47712b394d944328245482603bc6f416d3949b67c9392279caab595076b510","affectsGlobalScope":true,"impliedFormat":1},{"version":"37d0071d8f0a06dc55c2c5e0ec3391affd4fd107c53410bf358196ec0bf3923f","impliedFormat":1},{"version":"b213dad76ca37fd552274c9499056e1c0d9c1bd38a55bb7f68b22ba6b84c3ad7","impliedFormat":1},{"version":"56ccb49443bfb72e5952f7012f0de1a8679f9f75fc93a5c1ac0bafb28725fc5f","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"19df3488557c2fc9b4d8f0bac0fd20fb59aa19dec67c81f93813951a81a867f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b25350193e103ae90423c5418ddb0ad1168dc9c393c9295ef34980b990030617","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"5a49adaef698b7ad7e6127949fa1b0bbd3d46b7cbd11c54e392a4dcdd51f5190","impliedFormat":1},{"version":"96171c03c2e7f314d66d38acd581f9667439845865b7f85da8df598ff9617476","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"2489bf04d77dc025ba67f49f1a56eb24b9db477d5ff88123d887e163ed1776aa","impliedFormat":1},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"0b77b819b5417775fccb20c678293cf614c054a5b1a65421a5b933a9124ba998","impliedFormat":1},{"version":"e1f6076688a95bd82deaac740fccbe3cdea0d8a22057cccc9c5bce4398bdd33b","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"b1f1d57fde8247599731b24a733395c880a6561ec0c882efaaf20d7df968c5af","impliedFormat":1},{"version":"c8dadeff90ccc638d88a989c1139fd6a1329a5b39c2a7cbef1811c83ffe40903","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"5a3ea721d03a361ccbdd7390ccd75f6e84cbca3a3f01f4b331ecc9af31890c49","impliedFormat":1},{"version":"e7dfaee4af38d45b1cab8a1ee0b3bc1f85ddcf64545ed391d675d78ae6526274","affectsGlobalScope":true,"impliedFormat":1},{"version":"98e2b197bf7fe7800f89c87825e2556d66474869845e97ad9c2b36f347c43539","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"07ed3ddab975995eea41b22f3010506fb9f5fb301d04820b07d7a1aee5477d7c","impliedFormat":1},{"version":"969d8b0965849f4bae7cab0ba90bd1e1220e95999c2c6f01117fa7500901c017","impliedFormat":1},{"version":"6ec840ee5e2bc103f557fe38b1d585ee250540468713d7634ee066de372bf332","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"e297c0a524edee7677939122f90027bfbe5f2698939d9a85728e5044b39c7124","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"b62381cae176db34f003cc6172ee8f3e0122014889d66391aa73698105cf4934","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"41eb514d9ce0a6e87957f08a4b7af70d93f87637f37dee706e2d92a6601c25a9","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"7bd01f0f28cd3aeb2046274d85208e245965f6f2948edf4f7b2057bcf9f22ccc","impliedFormat":99},{"version":"d2f2cf2b8cc92bea913cda4a076e0f790b23a21e84f989d12f0116a7fe3906e0","impliedFormat":99},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b20bc288ee49989c95b20847fc93b96bf61cc0845598897a6a53a967dd7d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},{"version":"b64001597a887170a612ba5bd74f4a20e639f7c517447840520bef773b0b94d1","affectsGlobalScope":true},"7ad303e40d4fddf44f156129e397511953a71481c5cfd86b1862649aaaf240cc",{"version":"8dc29269f669320b2fc499e9175aa1ee855a4f006ccaf2a8e6f85ad2de1ba9df","impliedFormat":99},{"version":"4619213479ced58d78ec8b392a3d18868853b18d38f8eaece2d6fdf93b54fe59","signature":"7d35d1a0606d8bef01f74bcc9b550636bb9b3be02ed5a8f4ed39615ed3f98413"},{"version":"a447b3168135256a326bdd1008d3026348d1d5a46eb70d054d2c51a35f69418d","signature":"435a1e418e8338be3f39614b96b81a9aa2700bc8c27bc6b98f064ff9ce17c363"},{"version":"99a323dc5a6e506c78b69913b32beba93453bcd87aae8b507520234f387a4c30","impliedFormat":1},{"version":"32727845ab5bd8a9ef3e4844c567c09f6d418fcf0f90d381c00652a6f23e7f6e","impliedFormat":1},{"version":"af3c4dcb64b945e01285bc0494e1cfa384fac43b08713a56fc3043c8f861553a","impliedFormat":1},{"version":"7a8ec10b0834eb7183e4bfcd929838ac77583828e343211bb73676d1e47f6f01","impliedFormat":1},{"version":"b05adc58d29cc06ef2cac72df7539527ed2b5af140cfded332f0ba2351731cb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","impliedFormat":1},{"version":"ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48","impliedFormat":1},{"version":"b16ff2e928d0ee39fa05981f80cf196e4b172115abf36406460a41cdc383749d","impliedFormat":99},{"version":"dcd3bcc83e4b758a12c53f224adf03e632fb093d6a1ddfefb84ea91eabbddd6f","signature":"dfddc8c6a5513b6ce31cf6e7af222e0d5124641f20f75f975369839962501f17"},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"333caa2bfff7f06017f114de738050dd99a765c7eb16571c6d25a38c0d5365dc","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1251d53755b03cde02466064260bb88fd83c30006a46395b7d9167340bc59b73","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"4cdf27e29feae6c7826cdd5c91751cc35559125e8304f9e7aed8faef97dcf572","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"9688c89e52b4dc1fb91afed9017d78610f3363bef61904c6c17e49afb969fe7a","impliedFormat":1},{"version":"faaebe543daa68bdcb0316b1788f0a32c69a5d671f82637ed59dd725debac61f","signature":"f65ce75c9085571e6321abf2bf9833709f4897e381f89e9925521833dbb7ab16"},{"version":"acfb723d81eda39156251aed414c553294870bf53062429ebfcfba8a68cb4753","impliedFormat":99},{"version":"fa69a90381c2f85889722a911a732a5ee3596dc3acecda8a9aa2fa89b9615d8d","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"57e9e1b0911874c62d743af24b5d56032759846533641d550b12a45ff404bf07","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"854cd3a3375ffc4e7a92b2168dd065d7ff2614b43341038a65cca865a44c00c5","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"2f863ee9b873a65d9c3338ea7aaddbdb41a9673f062f06983d712bd01c25dc6b","impliedFormat":99},{"version":"67aa128c2bc170b93794f191feffc65a4b33e878db211cfcb7658c4b72f7a1f5","impliedFormat":99},{"version":"31fd7c12f6e27154efb52a916b872509a771880f3b20f2dfd045785c13aa813f","impliedFormat":99},{"version":"b481de4ab5379bd481ca12fc0b255cdc47341629a22c240a89cdb4e209522be2","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"4e258d11c899cb9ff36b4b5c53df59cf4a5ccae9a9931529686e77431e0a3518","affectsGlobalScope":true,"impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f582b0fcbf1eea9b318ab92fb89ea9ab2ebb84f9b60af89328a91155e1afce72","impliedFormat":1},{"version":"960bd764c62ac43edc24eaa2af958a4b4f1fa5d27df5237e176d0143b36a39c6","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4af494f7a14b226bbe732e9c130d8811f8c7025911d7c58dd97121a85519715","impliedFormat":1},{"version":"47416e41b1af81e53e8c3cc5bf909d47ff632a7b6eddfe7ff43d187b4dcca047","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"c35b8117804c639c53c87f2c23e0c786df61d552e513bd5179f5b88e29964838","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"67acaedb46832d66c15f1b09fb7b6a0b7f41bdbf8eaa586ec70459b3e8896eb9","impliedFormat":99},{"version":"c609331c6ed4ad4af54e101088c6a4dcb48f8db7b0b97e44a6efeb130f4331bd","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"4535ab977ee871e956eb7bebe2db5de79f5d5ec7dfbbf1d35e08f4a2d6630dac","impliedFormat":99},{"version":"b79b5ed99f26ffb2f8ae4bdcc4b34a9542197dc3fa96cfb425c2a81e618cff28","impliedFormat":99},{"version":"213a00d511892898e9dad3c98efe3b1de230f171b9e91496faca3e40e27ef6a7","impliedFormat":99},{"version":"62486ec77ac020b82d5a65a270096bb7f2a1fd0627a89f29c5a5d3cbd6bd1f59","impliedFormat":99},{"version":"c637a793905f02d354b640fae41a6ae79395ed0d77fbb87c36d9664ecbd95ac1","impliedFormat":99},{"version":"437b7613a30a2fcde463f7b707c6d5567a8823fbc51de50b8641bf5b1d126fad","impliedFormat":99},{"version":"63ea959e28c110923f495576e614fb8b36c09b6828b467b2c7cd7f03b03ccf9f","impliedFormat":99},{"version":"1601a95dbb33059fc3d12638ed2a9aecff899e339c5c0f3a0b28768866d385b4","impliedFormat":99},{"version":"a8dd232837b1d83f76a47a5193c1afd9e17b9bf352cb84345f86f7759ee346d0","impliedFormat":99},{"version":"be5fc0dd37f64420b0423059370b8319521e0b58060d7b07b8f62fe1c145b02e","impliedFormat":99},{"version":"45f770f2ae71acc1cacfac137f50911e1a004ccba52b2b55c4432c0d4bd97814","impliedFormat":99},{"version":"8124828a11be7db984fcdab052fd4ff756b18edcfa8d71118b55388176210923","impliedFormat":99},{"version":"a5ae67a67f786ffe92d34b55467a40fb50fb0093e92388cadce6168fa42690fd","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"b62006bbc815fe8190c7aee262aad6bff993e3f9ade70d7057dfceab6de79d2f","impliedFormat":99},{"version":"a20c4976da01d1c823b165275cef98a896d4758388c6409bc4ce24f0a5b49900","impliedFormat":99},{"version":"dffffa77f7716aa110e4253c6cd73a067e4729d95c97a538dbb20e58f0eb3e1d","impliedFormat":99},{"version":"0daddd6f389da2b55770e95c9ef8831bf2520aab44fb941bae38bb7ddfe1d6b6","impliedFormat":99},{"version":"7bbff6783e96c691a41a7cf12dd5486b8166a01b0c57d071dbcfca55c9525ec4","impliedFormat":99},{"version":"307f6461299ec378c95c31ec85012b9f613fb21f8376eddc42f6edddadbd0df9","impliedFormat":99},{"version":"0839337ddd00aadc6d2e987c66a5dde1dbafdd02d98a81c3290a61ca5a5366bc","signature":"4b96dd19fd2949d28ce80e913412b0026dc421e5bf6c31d87c7b5eb11b5753b4"},{"version":"4ca6bbff55abd18f820efe99f25230361bd94bda9d0690644288589aa6fe096e","impliedFormat":99},{"version":"a1936fd7bdd911dc2fea8bb2edf2e1eb8765c657a9c0a50de2a7cf4e2fa0ca8d","impliedFormat":1},{"version":"c8422d6032abbd7568d12949846d6e66bdf1f14ec0f9e415ff8ff5597da2857e","signature":"2f6fc229df35f47ef0803fc76a1fdaf24852a4bbf37b205857274a86c5316793"},{"version":"ab0a79338c37f33fcd5ada4fe779945bd6040d32638c48b51c4bbe718b660f2d","signature":"f207564d45677800c542adaa44ecd260069f552702e91ea8828a11a3f2a43037"},{"version":"90633033e5d908abd1942142de7cd60471e30d85858d54268c903a3777b1349f","signature":"9968602ca77488b4e78e4c918a5973603edd1b423abb6198cc3eb2f33c919377"},{"version":"68ca3440d7eedc326e8579b5a99dd3c9108f878279bc3f27de088550672650ef","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"612025f95e93fb72a16e66d6f8a84eedd6b482d986ccf82f4a2f4ea438f6cdb4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1d4699f59b1d63c5872e279396e4a8b60ff8d7ada41adc7480f6f7336be734dd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"03f391f2a1593593adb03bd5139ceb3e660383edab329f7120d7c707fa662cf4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e2b22e0d42c47a8af20196712d94899a58a8b8b12d953b40104da39f15f3cd7a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"325b759420b8511426141e2a46d0b7a52e0ce05c5cd1fd9909d4e4841a262cf1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4da07fec7b19a9c5a45794388b25a5434b48e8db5edf06021c3130ccf4751000","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"31096762bae8ac24f006da9d26f37b947d35b1a0a5f6499a8dd9b1bf4014306b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1d9b5d94ef9e8c96b306d2edce602b6a38dd9181b23dfc4395f154ecd94a3b0a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9335a94d81d1112c7d83a7f54b18980779a661de40882b5eb0f95c09f6ef43e7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a4713188829d103b3dfc6c67b7cd13db3552aa58e1cb22e57bc1f3a7c053b6e2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5af6089e996ed976f4d15da29267ae38a4d119089e372fe6350b90c0bac92375","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"95869cf45ef0a72343af4c0bf5dc8c60581d117003bfc0c0368344be2f7e64d3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"562c64dc9a7e6562d2d785e5cda18bf4361b78ec3c20771df0d89504b6efa135","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"212495a0a442be23757abdb29117ee6071d229cff5863619470df87a9b154a48","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"eff9d8b26959de84582ff25aa05265090abc9ad73f1e6eeaaba64c19419bcbc8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b323ecb574399017c6951eeb2705e4fbb72e007e2980da4d27cb8b300b3a4908","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"65b95834a12950cf281bd6cc790453ad5dce67f2b1395bfb3beba7da155391dd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"06fdbe25e9708ee8c154147d4130547116feb7538905e4a0ddd3897747f00c7a","impliedFormat":1},{"version":"4722fd74708636c5ccae96096d2e8105481d8054b1e9f2ba586380d8beae46e9","impliedFormat":1},{"version":"165b1e657a2e782586d02365c6e647625d1f83b0f86434e223e5ae79c961c413","impliedFormat":1},{"version":"6c92284a2b4829e9ae995011130e1577d383073220af9b1b3b10a875e6dc476c","impliedFormat":1},{"version":"7cc5cca50c261857fe6d0a8e16583c25bbe9b7f3edbb31df83cf7e8f0ac25907","impliedFormat":1},{"version":"5c356da2c84f4878800c653c500dd9532330f0759cc47f8ff3f4371c27598073","impliedFormat":1},{"version":"49598095930a8dadf9c462bf2a408f1aad78146409f223b9ee0a5f89a4e382cd","impliedFormat":1},{"version":"45b3baf59d4817d5691ecd36268fd65154edabfb07befd66e24875b59d0fb4b5","impliedFormat":1},{"version":"01f77442e53ce5e94687cf71eb41da6d9bfc38c8559f96cc08b85d5074fe964f","impliedFormat":1},{"version":"85affae5f55f168321490535b401fd910702cd8903f4d40a3c65942ce6482a5d","impliedFormat":1},{"version":"823fe7c69f291da9622f0775cc5630efbedc75fc079c502c7ba38c816c066858","impliedFormat":1},{"version":"6146c6200c43a0eca96e4c65fc666b37f4db80846217701c8e855217ff924ed7","impliedFormat":1},{"version":"afb5d4e43959a9e5bd99903a6e55db6e33b58570cd33bb46574fa7c64f252ea0","impliedFormat":1},{"version":"abdf8aa11c0105e515fbe6049a8cbe96d58873b1577aa4a7f4c8cb59d9f69486","impliedFormat":1},{"version":"4371055bb001f40596e2e236b27583e13bf11e75d937962f8947d56519237fb8","impliedFormat":1},{"version":"89189df027e8910200a4b65af1e29a996225cf25975f5c438fbe9361c008fc6b","impliedFormat":1},{"version":"4555baaea5dfc93e0c0ba3fc326b0ba3ad50bb2ab887fa2dff49c7da7bd3bcaa","impliedFormat":1},{"version":"0b000f734fad76dcc87c70c90158d691ee409680eceb20e531a133de740f2324","impliedFormat":1},{"version":"bf3d905e4e6459cc1d8e3d7d8f62bc11c8ec8497068720f658c3b03618116ecd","impliedFormat":1},{"version":"0f2267d6bd1f5a43718fb292535aa7586503ea542d67bd9ee0600a36ec8a83ea","impliedFormat":1},{"version":"900c6d7b342ed29604a346d6f680a912f7ef60ba97f44e8cb8d5205041969dec","impliedFormat":1},{"version":"8cae686f3bf9ffdc5fad65592f348a37e2ed743a632a1b605000a2431bc7eaf8","impliedFormat":1},{"version":"8d6b7b77814d3beda2224c9d32ab4e77d373a5225f15573b77eae05f03926ed0","impliedFormat":1},{"version":"1c3a0e3abac99928fb5dec8f42d23b8ad1ebd5f26df08cd0a8dcb0c9d43a503d","impliedFormat":1},{"version":"2cb76131ee7c1b849d730d266f49ad5617a285d7b8ad7ebc1ac2749ae454e222","impliedFormat":1},{"version":"34bf6d81c6b9e84f1d53c2465d521277bea994f8612a0d80417fcdaad37cfbcd","impliedFormat":1},{"version":"f489d5e1bd45c038e9355267b9fa20b2298a372c2a4efcfd5cbf9f0fd7e40627","impliedFormat":1},{"version":"2e59c8382b469370e5c7f60648be896285300a54e25acfb75007422c805c1cc6","impliedFormat":1},{"version":"1729f008e7761ea42cb17aee825ab171ec515cf564ace589685f56114d68f2ab","impliedFormat":1},{"version":"85f7a89a18d98bd7c68cda1289a19a3f7bce2166f0f7c2b9030d8a3eb4f427fb","impliedFormat":1},{"version":"a87fa100939aa190bc186945ab7293b5434e91fe3b137d43f5011adc47ecebf9","impliedFormat":1},{"version":"e560695e9bd123be74cd97ea2070204e15bf437dc7e38277f62e9013f09d0314","impliedFormat":1},{"version":"db86b7554668c4a5ccc4468e2ced875e9aa9b6289d11df31daf8e98d68d1e687","impliedFormat":1},{"version":"0d0d7f5ab1a8a0874ebc447216aaaf3a763d01a7b1dd450e0e6335a99dbe372f","impliedFormat":1},{"version":"c7798f43272b09de550520ead6df45f0ddf81bd97000784351d764df923e08d8","impliedFormat":1},{"version":"bb7973ee7b12dc2d956a74a68d589d2ec72209266509f88edabdfaddfb7ab712","impliedFormat":1},{"version":"fb47996d1fde69f078a79dda6a61c025dad9123d5fe1fdfc6bc2681fed5b9ae6","impliedFormat":1},{"version":"cd334950c884229ac8ab64b6b7ac646a4ca36cd8e894772cfcfbb79f2fb577ad","impliedFormat":1},{"version":"11fe56fbe44194784599e6368d155a9905d657d8b7c4fa0218daeeda194da13b","impliedFormat":1},{"version":"f065153d3b9e0f22d4a4dcddfd6fd902c73af666fd7350979525788e15590533","impliedFormat":1},{"version":"fec5c915e8a25765edc8fbc6f19a57da5bc4809b9191b79ce467fe84b1c43511","impliedFormat":1},{"version":"102ceddeca43cd886fdf6d01c1725fbbffd48bac0ed3b3d5b1eb927e38b07195","impliedFormat":1},{"version":"876112a26ad2bb14c5ecf0ef16e3ae963397c771a2e293173b5704c8aee4441e","impliedFormat":1},{"version":"21136f25b4d5a59b94bbb519552a7114f055dcf5736db41c20967dedce6768e1","impliedFormat":1},{"version":"1bdf93cfb8b270ca905a8dfd106ff88277aef6c70cb72077db4faf75b30b94e3","impliedFormat":1},{"version":"c30b233f5f9c1caf20b0e34e90aba73a631e0ed49cdb1f4f93b6a9fc52ea700d","impliedFormat":1},{"version":"6ac9e5eeb91f4e33a6c9440fad06b6ec59a3b9089f69e192eb3702daf92a41cb","impliedFormat":1},{"version":"c449c814cf771b723f4d747f27e4bebe1ffdf236e86fa2812e781753c39452fa","impliedFormat":1},{"version":"31813f5d800846efe3400b7bdeb442fcaee27915efea787d1f50b8edecca34a5","impliedFormat":1},{"version":"b0d558b2e806df3758ee259b14d9b247c967fb7950b598d19459ab5dce263e54","impliedFormat":1},{"version":"244f1dfd6f31217ab2bf572c8c1083c5c20ae1c7252276649b0104288bd6d053","impliedFormat":1},{"version":"82af965d0bbe372b7cea4ee17c2a96ecbbfe0eecca081c4aeaf63e102affcd88","impliedFormat":1},{"version":"af763fbd7007bf8ea62e6ef71a47ea19ebacf8561f1321b7d53347fb2afbaefd","impliedFormat":1},{"version":"dd54b0c1cc6cbe7b8d11e1802bc8cf7b9fda48a46a11ad20b09304b7f2c7321c","impliedFormat":1},{"version":"24e6cde1a508cca4c07ba5aa2bb0675d9e68e7946e4f424452f8fc0b842c2ae9","impliedFormat":1},{"version":"5ec6ba1674cf73d6a2d42e8ec00ded92f0211a92ae1bf5b1af1dbd1eb84e6ffe","impliedFormat":1},{"version":"c6fe327c538417b8dd5b9bb32abcd7911534b10da3a4514f3445cdb28cf3abf2","impliedFormat":99},{"version":"0065cdb7ac9f5b19921632de63f888ec2cc11ad57f7fc868f44bf0faad2fce3e","impliedFormat":99},{"version":"8c1adc3171d0287f3a26f4891a7d1834c89999573a9b444aa5ff519dcc43a2b7","impliedFormat":99},{"version":"a829052855dca3affb8e2ef0afa0f013b03fa9b55762348b1fba76d9c2741c99","impliedFormat":99},{"version":"27aee784c447854a4719f11058579e49f08faa70d06d8e30abe00f5e25538de6","impliedFormat":99},{"version":"8e10049294ca78d6ddffe8628ec671f165bd06db35b858e6c6ce6eeaeb546ba3","impliedFormat":99},{"version":"531de62ccf432c13c76004416714ecd03e6fde98d70d283c1ee2578a25784edf","impliedFormat":99},{"version":"5a2cf4cd852a58131b320da62269b2143850920ce27e8fdec41fed5c2c54ec95","impliedFormat":99},{"version":"99813a55d43aa2535ca273996466414a14a9b6948018050e370f0c65909f77ad","impliedFormat":99},{"version":"6a99940a8a76a1aa20ae6f2afd8e909e47e0b17df939e7cf5a585171480655ff","impliedFormat":99},{"version":"043195af0b52aadd10713870dd60369df0377ed153104b26e6bac1213b19f63e","impliedFormat":99},{"version":"ad17a36132569045ab97c8e5badf8febb556011a8ed7b2776ff823967d6d5aca","impliedFormat":99},{"version":"698d2b22251dbbfc0735e2d6ed350addead9ad031fac48b8bb316e0103d865db","impliedFormat":99},{"version":"7298d28b75c52e89c0b3e5681eac19e14480132cd30baaba5e5ca10211a740ef","impliedFormat":99},{"version":"ff10facf373a13d2864ff4de38c4892d74be27d9c6468dac49c08adabbf9b0eb","impliedFormat":99},{"version":"97b1cf4599cc3bc2e84b997aa1af60d91ca489d96bea0e20aaff0e52a5504b29","impliedFormat":99},{"version":"853dfbcd0999d3edc6be547d83dc0e0d75bf44530365b9583e75519d35984c35","impliedFormat":99},{"version":"9c80bed388d4ed47080423402db9cb1b35a31449045a83a0487f4dfde3d9d747","impliedFormat":99},{"version":"f29bc6a122a4a26c4e23289daae3aa845a18af10da90989cb8b51987e962b7be","impliedFormat":99},{"version":"3a1f39e098971c10633a064bd7a5dbdec464fcf3864300772763c16aa24457f9","impliedFormat":99},{"version":"20e614d6e045d687c3f7d707561b7655ad6177e859afc0c55649b7e346704c77","impliedFormat":99},{"version":"aa0ae1910ba709bc9db460bdc89a6a24d262be1fbea99451bedac8cbbc5fb0cd","impliedFormat":99},{"version":"161d113c2a8b8484de2916480c7ba505c81633d201200d12678f7f91b7a086f0","impliedFormat":99},{"version":"b998a57d4f43e32ac50a1a11f4505e1d7f71c3b87f155c140debe40df10386c8","impliedFormat":99},{"version":"5710e8ed9797ae0042e815eb8f87df2956cb1bf912939c9b98eeb58494a63c13","impliedFormat":99},{"version":"a6bb421dccfec767dbd3e99180b24c07c4a216c0fd549f54a3313f6ce3f9d2c7","impliedFormat":99},{"version":"3b6f1be46f573b1c1f3e6cd949890bfb96b40ff90b6f313e425a379c1c4d5d77","impliedFormat":99},{"version":"28a2c54d0a78d32c29f7279ca04dc6c7860c008579e4e3033938c0ed0201eb9a","impliedFormat":99},{"version":"c2714a402843287624210a47ebea2b1c8dd3ad1438f448633f6831e31eaf37b8","impliedFormat":99},{"version":"b89945ec6707415d739f3e76f2820982d4927dc6b681910b3c433b5ad261b817","impliedFormat":99},{"version":"a72d5822fb2a2c1ef985b30aed889f4c00342c90e12318762fccc550c6a599cf","impliedFormat":99},{"version":"c8616ab60eda93ca87fbb20aada1d6a6cdbcd2cb181a70a2d7728a3cb0613391","impliedFormat":99},{"version":"eeddfd3e0b09890822068de5248d38144f8328e74b5292847eb4e558d8aba8cb","impliedFormat":99},{"version":"d4dc0b6592543314c8549c71e35ad2ec4a57904662d905ff9585836bde1c855a","impliedFormat":99},{"version":"56e1687a174cd10912a35a4676af434bb213aafa5d4371040986c578afe644ab","impliedFormat":99},{"version":"470c280cc484340b97d0942e0c3aa312399eba3849ceb95312d0d7413bac7458","impliedFormat":99},{"version":"ae183f4a6300aad2be92cdbd4dd12d8bcd36eddf8dd1846f998c237235fe0c33","impliedFormat":99},{"version":"4b0eeffddaf51b967e95926a825a6ba1205b81b3a8fecddbe21eaf0e86bdee91","impliedFormat":99},{"version":"bf3ec0d42e33e487c359a989b30e1c9e90fa06de484dc4751e93fb34a9b5cf90","impliedFormat":99},{"version":"7b9656a61d83df1a46c38c2984dbf96dd057bf48f477ddf3f8990311ab98ec23","impliedFormat":99},{"version":"366b85ddb698f3a035e0caa68dc9fef39a85c4368c0810eaf937c3a3c63ac31e","impliedFormat":99},{"version":"d440ee730bc60a5c605903842e398863e7ecdb7a91fc32a9152f14061bf6cc17","impliedFormat":99},{"version":"a12c86c4a691608d19a75320946c80bbce38bb62c091dda32572aee7158edd38","impliedFormat":99},{"version":"3109cb3f8ab0308d2944c26742b6a8a02b4a4ffc23f479a81f0e945d6a6721dd","impliedFormat":99},{"version":"a2289c12a987f2a06f4cf049afde4fdc9455a4af37913445148865938c6eb613","impliedFormat":99},{"version":"55933c1450edcfaf166429425dbbad0a27c0ae8672d5ab5d427e46946a6f2f63","impliedFormat":99},{"version":"6c684fda6998db4112e82367c9e82e27996dc8086a10d58ac9b51d89770d5f9d","impliedFormat":99},{"version":"5c4b4dd983471fcaed17ad3241c98a1f880729f1ca579ddbcdae7e0bf04035df","impliedFormat":99},{"version":"9e430429c7e9e70071a836ac91a1bf6e6651f91d47d9f4baf0a92eefc6130818","impliedFormat":99},{"version":"b3db7f6d7ef72669dc83fa1ff7b90a2ec31d1d8f82778f2a00ef6d101f5247e5","impliedFormat":99},{"version":"354f61bd2a5acaf20462bc4d61048aa25f8fc0dd04dfe3d2f30bdbabbab54e7d","impliedFormat":99},{"version":"d51756340928e549f076c832d7bc2b4180385597b0b4daaa50e422bed53e1a72","impliedFormat":99},{"version":"32c6e3ef96f2bcbc1db7d7f891459241657633aa663cab6812fb28ade7c90608","impliedFormat":99},{"version":"ac2ea00eb8f73665842e57e729e14c6d3feabe9859dc5e87a1ed451b20b889e4","impliedFormat":99},{"version":"730cb342a128f5a8a036ffbd6dbc1135b623ce2100cefe1e1817bb8845bc7100","impliedFormat":99},{"version":"78e387f16df573a98dd51b3c86d023ddbd5bf68e510711a9fee8340e7ccc3703","impliedFormat":99},{"version":"e2381c64702025b4d57b005e94ed0b994b5592488d76f1e5f67f59d1860ebb70","impliedFormat":99},{"version":"d7dfcb039ff9cff38ccd48d2cc1ba95ca45c316670eddbcf81784e21b7128692","impliedFormat":99},{"version":"acaf0a60eb243938f7742df08bf5d52482fbea033fd27141ee3a6d878bbb0d3d","impliedFormat":99},{"version":"fb89aeecfc8eb28f5677c2c89bced74d13442b7f4ebd01ce2ce92127d1b36d69","impliedFormat":99},{"version":"9e91cb0a5bd7aefa2b94a2872828d6d2321df0ca44412e74d99e8b94e579b7d8","impliedFormat":99},{"version":"a56827adea79fb04ecb27671b6a3529fe74c6937ebb9ca9bdd53b7bd0e8c861b","impliedFormat":99},{"version":"192c1a207b44af476190ae66920636de5d56c33b57206bbc2421adc23f673e2e","impliedFormat":99},{"version":"e5aa35b3740170492e06e60989d35a222cfda2148507c650ea55753f726c9213","impliedFormat":99},{"version":"057aa42f6983120c35373aed62b219ffcbd7b476b2df08709139a9eb8dfeed26","impliedFormat":99},{"version":"95a0c46b4675d4d02de6a7c167738f1176b53b26ebec9ccfe8e5d9acb0dc7aee","impliedFormat":99},{"version":"94ad4d9745811c482ae3bad61e5b206e0904f77e0dacf783199193a3df9f6ce6","impliedFormat":99},{"version":"407dc18ecd25802296fade17be81d0d4f499ae75fe88ed132f94e7efdad269e2","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"f6dfe21d867aa5e13bc53d536b69b66427f571707a01e7c3604dc51ded097313","impliedFormat":99},{"version":"4ecd02d0e4ccf7befb9c28802c6c208060e33291d56fd1868900ca295c399077","impliedFormat":99},{"version":"37ada75be4b3f6b888f538091020d81b2a0ad721dc42734f70f639fa4703a5c8","impliedFormat":99},{"version":"aa73ff0024d5434a3e87ea2824f6faece7aad7b9f6c22bd399268241ca051dc7","impliedFormat":99},{"version":"4c9fb50b0697756bab3e4095f28839cf5b55430a4744d2ebbaf850ec8dca54d8","impliedFormat":99},{"version":"782868b723c055c5612c4a243f72a78a8b3c0c3b707ae04954e36e8ab966df4c","impliedFormat":99},{"version":"3de9d9ad4876972e7599fc0b3bddb0fddb1923be75787480a599045a30f14292","impliedFormat":99},{"version":"0f4b3c05937bbdb9cf954722ddc97cd72624e3b810f6f2cf4be334adb1796ec1","impliedFormat":99},{"version":"9fc243c4c87d8560348501080341e923be2e70bf7b5e09a1b26c585d97ae8535","impliedFormat":99},{"version":"4f97089fe15655ae448c9d005bb9a87cc4e599b155edc9e115738c87aa788464","impliedFormat":99},{"version":"f948d562d0a8085f1bd17b50798d5032529a75c147f40adfeb4fd3e453368643","impliedFormat":99},{"version":"22929f9874783b059156ee3cfa864d6f718e1abf9c139f298a037ae0274186f6","impliedFormat":99},{"version":"c72a7c316459b2e872ca4a9aca36cc05d1354798cee10077c57ff34a34440ac2","impliedFormat":99},{"version":"3e5bbf8893b975875f5325ebf790ab1ab38a4173f295ffea2ed1f108d9b1512c","impliedFormat":99},{"version":"9e4a38448c1d26d4503cf408cc96f81b7440a3f0a95d2741df2459fe29807f67","impliedFormat":99},{"version":"84124d21216da35986f92d4d7d1192ca54620baeca32b267d6d7f08b5db00df9","impliedFormat":99},{"version":"efba354914a2dc1056a55510188b6ced85ead18c5d10cc8a767b534e2db4b11b","impliedFormat":99},{"version":"25f5bf39f0785a2976d0af5ac02f5c18ca759cde62bc48dd1d0d99871d9ad86f","impliedFormat":99},{"version":"e711fa7718a2060058ff98ac6bff494c1615b9d42c4f03aa9c8270bc34927164","impliedFormat":99},{"version":"e324b2143fa6e32fac37ed9021b88815e181b045a9f17dbb555b72d55e47cdc1","impliedFormat":99},{"version":"3e90ea83e3803a3da248229e3027a01428c3b3de0f3029f86c121dc76c5cdcc2","impliedFormat":99},{"version":"9368c3e26559a30ad3431d461f3e1b9060ab1d59413f9576e37e19aaf2458041","impliedFormat":99},{"version":"915e5bb8e0e5e65f1dc5f5f36b53872ffcdcaef53903e1c5db7338ea0d57587a","impliedFormat":99},{"version":"92cf986f065f18496f7fcb4f135bff8692588c5973e6c270d523191ef13525ad","impliedFormat":99},{"version":"652f2bd447e7135918bc14c74b964e5fe48f0ba10ff05e96ed325c45ac2e65fb","impliedFormat":99},{"version":"cc2156d0ec0f00ff121ce1a91e23bd2f35b5ab310129ad9f920ddaf1a18c2a4d","impliedFormat":99},{"version":"7b371e5d6e44e49b5c4ff88312ae00e11ab798cfcdd629dee13edc97f32133d8","impliedFormat":99},{"version":"e9166dab89930e97bb2ce6fc18bcc328de1287b1d6e42c2349a0f136fc1f73e6","impliedFormat":99},{"version":"6dc0813d9091dfaed7d19df0c5a079ee72e0248ce5e412562c5633913900be25","impliedFormat":99},{"version":"e704c601079399b3f2ec4acdfc4c761f5fe42f533feaaab7d2c1c1528248ca3e","impliedFormat":99},{"version":"49104d28daa32b15716179e61d76b343635c40763d75fe11369f681a8346b976","impliedFormat":99},{"version":"04cd3418706b1851d2c1d394644775626529c23e615a829b8abfe26ec0ee3aef","impliedFormat":99},{"version":"21e459e9485fc48f21708d946c102e4aaa4a87b4c9ad178e1c5667e3ff6bbc59","impliedFormat":99},{"version":"97e685ac984fc93dcdae6c24f733a7a466274c103fdcf5d3b028eaa9245f59d6","impliedFormat":99},{"version":"68526ea8f3bbf75a95f63a3629bebe3eb8a8d2f81af790ce40bc6aad352a0c12","impliedFormat":99},{"version":"fdfd8c7050f46bb79eae64ca3ece0caf632830fbf326e1e904df352977b60317","impliedFormat":99},{"version":"b5428f35f4ebf7ea46652b0158181d9c709e40a0182e93034b291a9dc53718d8","impliedFormat":99},{"version":"0afcd28553038bca2db622646c1e7fcf3fb6a1c4d3b919ef205a6014edeeae0f","impliedFormat":99},{"version":"ee016606dd83ceedc6340f36c9873fbc319a864948bc88837e71bd3b99fdb4f6","impliedFormat":99},{"version":"0e09ffe659fdd2e452e1cbe4159a51059ae4b2de7c9a02227553f69b82303234","impliedFormat":99},{"version":"4126cb6e6864f09ca50c23a6986f74e8744e6216f08c0e1fe91ab16260dab248","impliedFormat":99},{"version":"4927dba9193c224e56aa3e71474d17623d78a236d58711d8f517322bd752b320","impliedFormat":99},{"version":"3d3f189177511d1452e7095471e3e7854b8c44d94443485dc21f6599c2161921","impliedFormat":99},{"version":"bb0519ff5ef245bbf829d51ad1f90002de702b536691f25334136864be259ec5","impliedFormat":99},{"version":"a64e28f2333ea0324632cf81fd73dc0f7090525547a76308cb1dfe5dab96596a","impliedFormat":99},{"version":"883f9faa0229f5d114f8c89dadd186d0bdf60bdafe94d67d886e0e3b81a3372e","impliedFormat":99},{"version":"d204b9ae964f73721d593e97c54fc55f7fd67de826ce9e9f14b1e762190f23d1","impliedFormat":99},{"version":"91830d20b424859e5582a141efe9a799dc520b5cce17d61b579fb053c9a6cd85","impliedFormat":99},{"version":"68115cdc58303bad32e2b6d59e821ccaada2c3fb63f964df7bd4b2ebd6735e80","impliedFormat":99},{"version":"ee27e47098f1d0955c8a70a50ab89eb0d033d28c5f2d76e071d8f52a804afe07","impliedFormat":99},{"version":"7957b11f126c6af955dc2e08a1288013260f9ec2776ff8cc69045270643bf43e","impliedFormat":99},{"version":"7acda36e46d3aab69093c27bc9765fe8db307840d804858d1b416bd04af6a948","impliedFormat":99},{"version":"85059ed9b6605d92c753daf3a534855ba944be69ff1a12ab4eca28cefbabd07a","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"ea68a96f4e2ba9ca97d557b7080fbdb7f6e6cf781bb6d2e084e54da2ac2bb36c","impliedFormat":99},{"version":"fdae6a221872468d5b6ef3ee06a5ede1b7b3168b6c8346d0bf389fe0490b5269","impliedFormat":99},{"version":"424df1d45a2602f93010cb92967dfe76c3fcadad77d59deb9ca9f7ab76995d40","impliedFormat":99},{"version":"21f96085ed19d415725c5a7d665de964f8283cacef43957de10bdd0333721cc4","impliedFormat":99},{"version":"e8d4da9e0859c6d41c4f1c3f4d0e70446554ba6a6ab91e470f01af6a2dcac9bf","impliedFormat":99},{"version":"2e2421a3eec7afefa5a1344a6852d6fee6304678e2d4ee5380b7805f0ac8b58a","impliedFormat":99},{"version":"a10fd5d76a2aaba572bec4143a35ff58912e81f107aa9e6d97f0cd11e4f12483","impliedFormat":99},{"version":"1215f54401c4af167783d0f88f5bfb2dcb6f0dacf48495607920229a84005538","impliedFormat":99},{"version":"476f8eb2ea60d8ad6b2e9a056fdda655b13fd891b73556b85ef0e2af4f764180","impliedFormat":99},{"version":"2fe93aef0ee58eaa1b22a9b93c8d8279fe94490160703e1aabeff026591f8300","impliedFormat":99},{"version":"bbb02e695c037f84947e56da3485bb0d0da9493ed005fa59e4b3c5bc6d448529","impliedFormat":99},{"version":"ba666b3ab51c8bc916c0cebc11a23f4afec6c504c767fd5f0228358f7d285322","impliedFormat":99},{"version":"c10972922d1887fe48ed1722e04ab963e85e1ac12263a167edef9b804a2af097","impliedFormat":99},{"version":"6efeacbd1759ea57a4c7264eb766c531ae0ab2c00385294be58bc5031ef43ad1","impliedFormat":99},{"version":"1c261f5504d0175be4f1b6b99f101f4c3a129a5a29fc768e65c52d6861ca5784","impliedFormat":99},{"version":"f0e69b5877b378d47cbac219992b851e2bbc0f7e3a3d3579d67496dabd341ec4","impliedFormat":99},{"version":"b5ea27f19a54feca5621f5ba36a51026128ea98e7777e5d47f08b79637527cf5","impliedFormat":99},{"version":"27d065f5610a5a3e91f4941e5ebedea19507945bff28c94677909620424aa382","impliedFormat":99},{"version":"c133db4b6c17a96db7fa36607c59151dec1e5364d9444cbe15e8c0ea4943861e","impliedFormat":99},{"version":"3a0514f77606d399838431166a0da6dbd9f3c7914eae5bbfbd603e3b6a552959","impliedFormat":99},{"version":"fa568f8d605595e1cffbfca3e8c8c492cf88ae2c6ed151f6c64acf0f9e8c25d8","impliedFormat":99},{"version":"c76fb65cb2eb09a0ee91f02ff5b43a607b94a12c34d16d005b2c0afc62870766","impliedFormat":99},{"version":"cf7af60a0d4308a150df0ab01985aabb1128638df2c22dd81a2f5b74495a3e45","impliedFormat":99},{"version":"0291865a9ce360953eaa52512c9ffab4c7c3cfc69a3f022b303601a502455670","impliedFormat":99},{"version":"42d8c168ca861f0a5b3c4c1a91ff299f07e07c2dd31532cd586fd1ee7b5e3ae6","impliedFormat":99},{"version":"a29faa7cb35193109ec1777562ca52c72e7382ffe9916b26859b5874ad61ff29","impliedFormat":99},{"version":"15bdf2eeef95500ba9f1602896e288cb425e50462b77a07fa4ca23f1068abb21","impliedFormat":99},{"version":"452db58fd828ab87401f6cecc9a44e75fa40716cc4be80a6f66cf0a43c5a60cc","impliedFormat":99},{"version":"54592d0215a3fd239a6aa773b1e1a448dc598b7be6ce9554629cd006ee63a9d6","impliedFormat":99},{"version":"9ee28966bb038151e21e240234f81c6ba5be6fde90b07a9e57d4d84ae8bc030c","impliedFormat":99},{"version":"2fe1c1b2b8a41c22a4e44b0ac7316323d1627d8c72f3f898fa979e8b60d83753","impliedFormat":99},{"version":"956e43b28b5244b27fdb431a1737a90f68c042e162673769330947a8d727d399","impliedFormat":99},{"version":"92a2034da56c329a965c55fd7cffb31ccb293627c7295a114a2ccd19ab558d28","impliedFormat":99},{"version":"c1b7957cd42a98ab392ef9027565404e5826d290a2b3239a81fbac51970b2e63","impliedFormat":99},{"version":"4861ee34a633706bcbba4ea64216f52c82c0b972f3e790b14cf02202994d87c5","impliedFormat":99},{"version":"7af4e33f8b95528de005282d6cca852c48d293655dd7118ad3ce3d4e2790146f","impliedFormat":99},{"version":"df345b8d5bf736526fb45ae28992d043b2716838a128d73a47b18efffe90ffa7","impliedFormat":99},{"version":"d22c5b9861c5fc08ccd129b5fc3dcdc7536e053c0c1d463f3ab39820f751c923","impliedFormat":99},{"version":"dcc38f415a89780b34d827b45493d6dbadb05447d194feb4498172e508c416ac","impliedFormat":99},{"version":"7e917e3b599572a2dd9cfa58ff1f68fda9e659537c077a2c08380b2f2b14f523","impliedFormat":99},{"version":"20b108e922abd1c1966c3f7eb79e530d9ac2140e5f51bfa90f299ad5a3180cf9","impliedFormat":99},{"version":"2bc82315d4e4ed88dc470778e2351a11bc32d57e5141807e4cdb612727848740","impliedFormat":99},{"version":"e2dd1e90801b6cd63705f8e641e41efd1e65abd5fce082ef66d472ba1e7b531b","impliedFormat":99},{"version":"a3cb22545f99760ba147eec92816f8a96222fbb95d62e00706a4c0637176df28","impliedFormat":99},{"version":"287671a0fe52f3e017a58a7395fd8e00f1d7cd9af974a8c4b2baf35cfda63cfa","impliedFormat":99},{"version":"e2cdad7543a43a2fb6ed9b5928821558a03665d3632c95e3212094358ae5896b","impliedFormat":99},{"version":"326a980e72f7b9426be0805774c04838e95195b467bea2072189cefe708e9be7","impliedFormat":99},{"version":"e3588e9db86c6eaa572c313a23bf10f7f2f8370e62972996ac79b99da065acaa","impliedFormat":99},{"version":"1f4700278d1383d6b53ef1f5aecd88e84d1b7e77578761838ffac8e305655c29","impliedFormat":99},{"version":"6362a4854c52419f71f14d3fee88b3b434d1e89dcd58a970e9a82602c0fd707a","impliedFormat":99},{"version":"fb1cc1e09d57dfeb315875453a228948b904cbe1450aaf8fda396ff58364a740","impliedFormat":99},{"version":"50652ed03ea16011bb20e5fa5251301bb7e88c80a6bf0c2ea7ed469be353923b","impliedFormat":99},{"version":"d388e0c1c9a42d59ce88412d3f6ce111f63ce2ff558e0a3f84510092431dfee0","impliedFormat":99},{"version":"35ea0a1e995aef5ae19b1553548a793c76eb31bdf7fef30bc74656660c3a09c3","impliedFormat":99},{"version":"56f4ae4e34cbff1e4158ccada4feea68a357bae86adb3bedaa65260d0af579df","impliedFormat":99},{"version":"6eebdacf8e85b2cf70ad7a2f43ead1f8acccfd214ab57ff1d989e9e35661015d","impliedFormat":99},{"version":"a4f90a12cbfac13b45d256697ce70a6b4227790ca2bf3898ffd2359c19eab4eb","impliedFormat":99},{"version":"4a6c2ac831cff2d8fa846dfb010ee5f7afce3f1b9bd294298ee54fdc555f1161","impliedFormat":99},{"version":"a8d491b4eb728dab387933a518d9e1f32d5c9d5a5225ff134d847b0c8cc9c8ce","impliedFormat":99},{"version":"668f628ae1f164dcf6ea8f334ea6a629d5d1a8e7a2754245720a8326ff7f1dc0","impliedFormat":99},{"version":"5105c00e1ae2c0a17c4061e552fa9ec8c74ec41f69359b8719cb88523781018e","impliedFormat":99},{"version":"d2c033af6f2ea426de4657177f0e548ee5bed6756c618a8b3b296c424e542388","impliedFormat":99},{"version":"2d4530d6228c27906cb4351f0b6af52ff761a7fab728622c5f67e946f55f7f00","impliedFormat":99},{"version":"ec359d001e98bf56b0e06b4882bd1421fd088d4d181dff3138f52175c0582a51","impliedFormat":99},{"version":"45be28de10e6f91aacb29fbd2955ba65a0fd3d1b5fddefece9c381043e91e68d","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"6801ebe0b7ab3b24832bc352e939302f481496b5d90b3bc128c00823990d7c7d","impliedFormat":99},{"version":"0abb1feddc76a0283c7e8e8910c28b366612a71f8bfdd5ca42271d7ad96e50b2","impliedFormat":99},{"version":"ac56b2f316b70d6a727fdbbcfa8d124bcd1798c293487acb2b27a43b5c886bb0","impliedFormat":99},{"version":"d849376baf73ec0b17ffd29de702a2fdbbe0c0390ec91bebf12b6732bf430d29","impliedFormat":99},{"version":"40dcd290c10cc7b04a55f7ee5c76f77250f48022cea1624eba2c0589753993b4","impliedFormat":99},{"version":"0f9c9f7d13a5cf1c63eb56318b6ae4dfa2accef1122b2e88b5ed1c22a4f24e3b","impliedFormat":99},{"version":"9c4178832d47d29c9af3b1377c6b019f7813828887b80bb96777393f700eb260","impliedFormat":99},{"version":"dddb8672a0a6d0e51958d539beb906669a0f1d3be87425aaa0ae3141a9ad6402","impliedFormat":99},{"version":"6b514d5159d0d189675a1d5a707ba068a6da6bc097afb2828aae0c98d8b32f08","impliedFormat":99},{"version":"39d7dbcfec85393fedc8c7cf62ee93f7e97c67605279492b085723b54ccaca8e","impliedFormat":99},{"version":"81882f1fa8d1e43debb7fa1c71f50aa14b81de8c94a7a75db803bb714a9d4e27","impliedFormat":99},{"version":"c727a1218e119f1549b56dd0057e721d67cfa456c060174bac8a5594d95cdb2d","impliedFormat":99},{"version":"bca335fd821572e3f8f1522f6c3999b0bc1fe3782b4d443c317df57c925543ed","impliedFormat":99},{"version":"73332a05f142e33969f9a9b4fb9c12b08b57f09ada25eb3bb94194ca035dc83d","impliedFormat":99},{"version":"c366621e6a8febe9bbca8c26275a1272d99a45440156ca11c860df7aa9d97e6d","impliedFormat":99},{"version":"d9397a54c21d12091a2c9f1d6e40d23baa327ae0b5989462a7a4c6e88e360781","impliedFormat":99},{"version":"dc0e2f7f4d1f850eb20e226de8e751d29d35254b36aa34412509e74d79348b75","impliedFormat":99},{"version":"af3102f6aec26d237c750decefdc7a37d167226bb1f90af80e1e900ceb197659","impliedFormat":99},{"version":"dea1773a15722931fbfe48c14a2a1e1ad4b06a9d9f315b6323ee112c0522c814","impliedFormat":99},{"version":"b26e3175cf5cee8367964e73647d215d1bf38be594ac5362a096c611c0e2eea8","impliedFormat":99},{"version":"4280093ace6386de2a0d941b04cff77dda252f59a0c08282bd3d41ccc79f1a50","impliedFormat":99},{"version":"fe17427083904947a4125a325d5e2afa3a3d34adaedf6630170886a74803f4a2","impliedFormat":99},{"version":"0246f9f332b3c3171dcdd10edafab6eccb918c04b2509a74e251f82e8d423fb7","impliedFormat":99},{"version":"f6ef33c2ff6bbdf1654609a6ca52e74600d16d933fda1893f969fc922160d4d7","impliedFormat":99},{"version":"1abd22816a0d992fd33b3465bf17a5c8066bf13a8c6ca4fc0cd28884b495762d","impliedFormat":99},{"version":"82032a08169ea01cf01aa5fd3f7a02f1f417697df5e42fc27d811d23450bc28d","impliedFormat":99},{"version":"9c8cbd1871126e98602502444cffb28997e6aa9fbc62d85a844d9fd142e9ae1b","impliedFormat":99},{"version":"b0e20abc4a73df8f97b3f1223cc330e9ba3b2062db1908aa2a97754a792139ac","impliedFormat":99},{"version":"bc1f2428d738ab789339030078adf313100471c37d8d69f6cf512a5715333afc","impliedFormat":99},{"version":"dc500c6a23c9432849c82478bdab762fa7bdf9245298c2279a7063dd05ae9f9a","impliedFormat":99},{"version":"cd1b6a2503fc554dcab602e053565c4696e4262b641b897664d840a61f519229","impliedFormat":99},{"version":"af1580cd202df0e33fc592fe1d75d720c15930a4127a87633542b33811316724","impliedFormat":99},{"version":"538608f9242fbf4260d694f19c95b454f855152ab3b882ac72114f19b08984d2","impliedFormat":99},{"version":"cd0e1083bd8ae52661544329c311836abdda5d5dda89fc5d7ab038956c0394e8","impliedFormat":99},{"version":"9ea6fea875302b2bb3976f7431680affc45a4319499d057ce12be04e4f487bf9","impliedFormat":99},{"version":"66e0c3f9875da7be383d0c78c8b8940b6ebae3c6a0fbfd7e77698b5e8ade3b05","impliedFormat":99},{"version":"da38d326fe6a72491cad23ea22c4c94dfc244363b6a3ec8a03b5ad5f4ee6337b","impliedFormat":99},{"version":"9742dc7ead36bcc08712e54b7d27083ed6144973b82c763106a876a9180920da","impliedFormat":99},{"version":"517a31c520e08c51cfe6d372bc0f5a6bf7bd6287b670bcaa180a1e05c6d4c4da","impliedFormat":99},{"version":"0263d94b7d33716a01d3e3a348b56c2c59e6d897d89b4210bdbf27311127223c","impliedFormat":99},{"version":"d0120e583750834bf1951c8b9936781a98426fe8d3ad3d951f96e12f43090469","impliedFormat":99},{"version":"a2e6a99c0fb4257e9301d592da0834a2cb321b9b1e0a81498424036109295f8b","impliedFormat":99},{"version":"c6b5ae9f99f1fccadc23d56307a28c8490c48e687678f2cafa006b3b9b8e73e4","impliedFormat":99},{"version":"eae178ee8d7292bcd23be2b773dda60b055bc008a0ddce2acc1bfe30cc36cf04","impliedFormat":99},{"version":"e0b5f197fb47b39a4689ad356b8488e335bbf399b283492c0ffae0cfda88837b","impliedFormat":99},{"version":"adb7aa4b8d8b423d0d7e78b6a8affb88c3a32a98e21cd54fcafd570ad8588d0c","impliedFormat":99},{"version":"643e22362c15304f344868ec0e7c0b4a1bc2b56c8b81d5b9f0ee0a6f3c690fff","impliedFormat":99},{"version":"ead5220d1cd43d1f84829c5734bd540d0e80ef6f50218a4ee03b5ec3cf178bcd","impliedFormat":99},{"version":"4e095c719ab15aa641872ab286d8be229562c4b3dc4eec79888bc4e8e0426ed8","impliedFormat":99},{"version":"6022afc443d2fe0af44f2f5912a0bdd7d17e32fd1d49e6c5694cbc2c0fa11a8f","impliedFormat":99},{"version":"6dd3f823ac463041d89c84d7bbf74931a38d874a9716040492ac7a16c7d2f023","impliedFormat":99},{"version":"a5bf6d947ce6a4f1935e692c376058493dbfbd9f69d9b60bbaf43fd5d22c324b","impliedFormat":99},{"version":"4927ef881b202105603e8416d63f317a1f1ea47d321e32826b9b20a44caa55e2","impliedFormat":99},{"version":"914d11655546eba92ac24d73e6efdb350738bcf4a9a161a2b96e904bad4de809","impliedFormat":99},{"version":"f9fdd2efc37eefc321338d39b5bd341b2aa82292b72610cb900f205f6803ff66","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"ab043784438ef8945a95124d2325308554c8b53dc92ce801f09702e79234282a","impliedFormat":99},{"version":"3fb3501967b0f0224023736d0ad41419482b88a69122e5cb46a50ae5635adb6a","impliedFormat":99},{"version":"06d66a6723085295f3f0ecd254a674478c4dba80e7b01c23a9693a586682252f","impliedFormat":99},{"version":"cc411cd97607f993efb008c8b8a67207e50fdd927b7e33657e8e332c2326c9f3","impliedFormat":99},{"version":"b144c6cdf6525af185cd417dc85fd680a386f0840d7135932a8b6839fdee4da6","impliedFormat":99},{"version":"e8dfa804c81c6b3e3dc411ea7cea81adf192fe20b7c6db21bf5574255f1c9c0e","impliedFormat":99},{"version":"572ee8f367fe4068ccb83f44028ddb124c93e3b2dcc20d65e27544d77a0b84d3","impliedFormat":99},{"version":"7d604c1d876ef8b7fec441cf799296fd0d8f66844cf2232d82cf36eb2ddff8fe","impliedFormat":99},{"version":"7b86b536d3e8ca578f8fbc7e48500f89510925aeda67ed82d5b5a3213baf5685","impliedFormat":99},{"version":"861596a3b58ade9e9733374bd6b45e5833b8b80fd2eb9fe504368fc8f73ae257","impliedFormat":99},{"version":"a3da7cf20826f3344ad9a8a56da040186a1531cace94e2788a2db795f277df94","impliedFormat":99},{"version":"900a9da363740d29e4df6298e09fad18ae01771d4639b4024aa73841c6a725da","impliedFormat":99},{"version":"442f6a9e83bb7d79ff61877dc5f221eea37f1d8609d8848dfbc6228ebc7a8e90","impliedFormat":99},{"version":"4e979a85e80e332414f45089ff02f396683c0b5919598032a491eb7b981fedfd","impliedFormat":99},{"version":"6d3496cac1c65b8a645ecbb3e45ec678dd4d39ce360eecbcb6806a33e3d9a7ae","impliedFormat":99},{"version":"9909129eb7301f470e49bbf19f62a6e7dcdfe9c39fdc3f5030fd1578565c1d28","impliedFormat":99},{"version":"95cdad1f759b74b014cea71cf1a68567b17e4165ec8139930305ba1e21b10a0c","impliedFormat":99},{"version":"7e4fc245cc369ba9c1a39df427563e008b8bfe5bf73c6c3f5d3a928d926a8708","impliedFormat":99},{"version":"3aa7c4c9a6a658802099fb7f72495b9ba80d8203b2a35c4669ddfcbbe4ff402b","impliedFormat":99},{"version":"d39330cb139d83d5fa5071995bb615ea48aa093018646d4985acd3c04b4e443d","impliedFormat":99},{"version":"663800dc36a836040573a5bb161d044da01e1eaf827ccc71a40721c532125a80","impliedFormat":99},{"version":"f28691d933673efd0f69ac7eae66dea47f44d8aa29ec3f9e8b3210f3337d34df","impliedFormat":99},{"version":"ae89fb16575dc616df3ff907c6338d94cfa731881ecef82155b21ab4134b3826","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"418ec48301149dd2c0db1dbd83305ae61fb8517accebdd4b02e72d66b27b6cc7","impliedFormat":99},{"version":"6b7c511d20403a5a1e3f5099056bc55973479960ceff56c066ff0dd14174c53c","impliedFormat":99},{"version":"48b83bd0962dac0e99040e91a49f794d341c7271e1744d84e1077e43ecda9e04","impliedFormat":99},{"version":"b8fd98862aa6e7ea8fe0663309f15b15f54add29d610e70d62cbccff39ea5065","impliedFormat":99},{"version":"ffa53626a9de934a9447b4152579a54a61b2ea103dbbf02b0f65519bfef98cdd","impliedFormat":99},{"version":"d171a70a6e5ff6700fa3e2f0569a15b12401ad9bc5f4d650f8b844f7f20ef977","impliedFormat":99},{"version":"b6e9b15869788861fff21ec7f371bda9a2e1a1b15040cc005db4d2e792ece5ca","impliedFormat":99},{"version":"22c844fbe7c52ee4e27da1e33993c3bbb60f378fa27bb8348f32841baecb9086","impliedFormat":99},{"version":"dee6934166088b55fe84eae24de63d2e7aae9bfe918dfe635b252f682ceca95a","impliedFormat":99},{"version":"c39b9c4f5cc37a8ed51bef12075f5d023135e11a9b215739fd0dd87ee8da804a","impliedFormat":99},{"version":"db027bc9edef650cff3cbe542959f0d4ef8532073308c04a5217af25fc4f5860","impliedFormat":99},{"version":"a4e026fe4d88d36f577fbd38a390bd846a698206b6d0ca669a70c226e444af1b","impliedFormat":99},{"version":"b5a0d4f7a2d54acbe0d05f4d9f5c9efaaeddc06c3ee0ca0c66aba037e1dca34b","impliedFormat":99},{"version":"fa910f88f55844718a277ee9519206abce66629de2692676c3e2ad1c9278bdfd","impliedFormat":99},{"version":"a886a5af337cce28fe3e956fd0ed921345933163f5b14f739266ba9400b92484","impliedFormat":99},{"version":"9ae87bd743e93b6384efbfa306bde1fa70b6ff27533983e1e1fe08a4ef7037b8","impliedFormat":99},{"version":"5f7c0a4aad7a3406db65d674a5de9e36e0d08773f638b0f49d70e441de7127c0","impliedFormat":99},{"version":"29062edaa0d16f06627831f95681877b49c576c0a439ccd1a2f2a8173774d6b2","impliedFormat":99},{"version":"49fcfda71ea42a9475b530479a547f93d4e88c2deb0c713845243f5c08af8d76","impliedFormat":99},{"version":"6d640d840f53fb5f1613829a7627096717b9b0d98356fb86bb771b6168299e2e","impliedFormat":99},{"version":"cee41a6af55d502f3863fe3238a75108dea16ac9c7339e96c2974ad3babd6d78","impliedFormat":99},{"version":"6bd4aa523d61e94da44cee0ee0f3b6c8d5f1a91ef0bd9e8a8cf14530b0a1a6df","impliedFormat":99},{"version":"e3ee1b2216275817b78d5ae0a448410089bc1bd2ed05951eb1958b66affbdec0","impliedFormat":99},{"version":"17da8f27c18a2a07c1a48feb81887cb69dacc0af77c3257217016dacf9202151","impliedFormat":99},{"version":"8395cc6350a8233a4da1c471bdac6b63d5ed0a0605da9f1e0c50818212145b5b","impliedFormat":99},{"version":"b58dda762d6bd8608d50e1a9cc4b4a1663a9d4aa50a9476d592a6ecdc6194af4","impliedFormat":99},{"version":"bc14cb4f3868dab2a0293f54a8fe10aa23c0428f37aece586270e35631dd6b67","impliedFormat":99},{"version":"2ac845b89cae82a74e549c7c1d9f983f993033ba14376ea83cd13b3e38a8537a","impliedFormat":99},{"version":"b85aa9cc05b0c2d32bec9a10c8329138d9297e3ab76d4dd321d6e08b767b33ed","impliedFormat":99},{"version":"b478cef88033c3b939a6b8a9076af57fc7030e7fd957557f82f2f57eddfc2b51","impliedFormat":99},{"version":"2fac70f99da22181acfda399eed248b47395a8eeb33c9c82d75ca966aee58912","impliedFormat":99},{"version":"a03b097607908fed59d8c33333707b2a5303d685fcb68a4f3a818c0cf7b178bc","impliedFormat":99},{"version":"3feb279b5db676c63810e86c031bfc06aa8ab92601a6fb8c430544750f4bdd21","signature":"ca7fc49c423b4f471691a59fffb551d8409f0d013f898c84f929e046315a31c8"},{"version":"c85d2a0601a6701862cd97e451211d5f193240d4fef2b41b3e7015fd05a06a92","signature":"7778690faccc7e92f8d9c44b653f1dc6c8e9aee886850bc739ccd6d318c96f69"},{"version":"595bbf59efb3a5c3e97c8eff2b195c368d1b8cf803ed4a9fa834d7e2cab5c9ed","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8698b230c61a64b99b1f50029d0ff706c04f562c7599f56a6cdccf0ecdf1b49b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8759e271e76587e343e94d6761c105cd0332ea465e811ff8d8f34f6dc9844937","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"092e213fd086069684c994b024f5ef281fd2b9955380de60d5f6438912e24e96","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9781aad9660429f5f5316989ca6efcf4209926d2e7cf33bdd3bf3258a140f50a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"26cb495f55f78a38582a602e122416f0aa2cbe72347bfd52922deab51b4fd82c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e47c805f91bb7ebc40b2fca9765fcff1240f70a1b8dd2eee88d540af5d9bd3a0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a9f197afdc34064f31749c3cefb25bb8c30de7e82fea6c91de1c092fdf121b7f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"000e7c602ca490d7e013d83df90cc2cf535e9479acfbfb08681be9bcdfac3cd6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"93f70562e532af11c9a2427e1bac599c53bcb6dafce687872b75a2a8d10268db","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c5e4f77cfaefece632d3f6e5aa2194627803efdf95a8339c7a94e191a59c293d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c3ed4818ba5f4a16b04f900268e6020aeebeb9e8bfedcb9b2e97bed054d78b63","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3faf12c2f2c0b2c4b2d92e7ca3f28d21d12f2cd3ee3dabe2f73f23f246498833","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"aec4854c6db3bc14b139ab0fb1c5ea5cb7555a97d664af71d04030425282dc84","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"07fcc9be98e12bd2f0f71a501a9bfbe2e53d38c50e8a5e84223fdd05bd8749c5","impliedFormat":99},{"version":"b887a4575db46263f82d7bde681bdc14526e4a2618a1172fef4206c467752d8f","impliedFormat":99},{"version":"fa2c48fd724dd8f0e11dfb04f20d727a2595890bfa95419c83b21ed575ed77d1","impliedFormat":99},{"version":"6d23ffe7f1b73f16b08f5baeca430e6655b46fdc5862fd7bff1483b71fc6b28d","impliedFormat":99},{"version":"20be44c04e883d5fe7840d630a8d0656e95b00c2d6eebab9ab253275e7170534","impliedFormat":99},{"version":"3b674288fbdc0ff0ed2b7fc2839014c2ff209c84999fd06b6339347d0f976a85","impliedFormat":99},{"version":"cc2958d8abd86edcdf05542bb1b40ba659db5bc5a2560720cde08e8950e63bc1","impliedFormat":99},{"version":"e44e0ea195d68c0aea951809bda325322085008c0622fc4ee44db5359f37b747","impliedFormat":99},{"version":"21053659ad72fe51b9dfbde4fa14dbbac0912359fa37c9a5aa75f188782b2ee8","impliedFormat":99},{"version":"e297bdcb7db008d8d7d0481f2c935a9f7f0a338f41b7e5d1cec6a7744140a4ff","impliedFormat":99},{"version":"ef816ad6735a271c4c8035a1914c3a9beaaa90b3c174da312d26bce8736e56ec","impliedFormat":99},{"version":"7202026e24c5e5b7b6e5fe6b99455a91058ef82e74a5cdf6a3a4136b7ae9c080","impliedFormat":99},{"version":"87561cc8a2d7444adf4eed4b3f15bef8c6098cceb0e7617fba1cc45d187ac8c8","impliedFormat":99},{"version":"b52f7568bb9b00bcee6c4929938226541c09d86b849b8ba8db2fe2a8bba46f49","impliedFormat":99},{"version":"d42e1872d53ebb213e7bbe15e5fecdcaa9a490d2f2a2b035ee9cf4a6d3f1e44e","impliedFormat":99},{"version":"2262d96c02073dcb17a31ae8c738651ebff75f102522eae686f5462658b687a8","impliedFormat":99},{"version":"fd40c454d56e1d14e60ce13f3bc60c7fdb9bc70c6ef9c7bfafec1f0eb5d8075b","impliedFormat":1},{"version":"155ced96d70533d95c481061e2691802fae7cfb96869d7c85ac8622f53b51cb7","impliedFormat":1},{"version":"3689b6f599705380d2ceaccb4e58eec5c9439a7a5635d6e37c1ba66ed7c34b35","impliedFormat":99},{"version":"6cf0d3cc668cdbb01358ef7c2e41bbcc14d8d8e4ca424a1b6d2838d9a1cae8ce","impliedFormat":99},{"version":"b7bd70307671536c735389e0a1748555c438c392dfceb6f2ac3aa0a50ca82530","impliedFormat":99},{"version":"661c403f4c5bbf259e03f4fdc3a9e3f51ad562684f702e1b842e6c5336de0752","impliedFormat":99},{"version":"415dd92247ca21db682f75ba7e6289ab2d093cd34c6f471c6c789afd047ad4f3","impliedFormat":99},{"version":"4fc633107330ab389f07f86af80192ac697a68a586ad76dcf43304410e7cfb6a","impliedFormat":99},{"version":"828f8b38dff4e5c47b0112cb437da379c720f0360d40d392457c9775f30c8ae8","impliedFormat":99},"39c379489251d77c0b809dc4724e673528497d8bc4d7efec4de964c4dcf333bc","73f4b23131fe942640bc2692ce79eeefeaed8b3cf9cba76bb2549926b4936487","cd4072a3cb2f470137072459fd067b4ef554337fb48b829db5ed4689a233f5f6","f69e1859ed4ab6a5901f0e494c761099a6831fb87cec49793b94466d895a2289","a81928c211f88efbd3de0c31dac861f124984846ee2c4253741e974e9769f470","c8351b50cef3bf121d64f6a987c03cc14f672e38ef2340f689f093ac54b1799d","32e7c97ed80f6b386638373e8957f824cfbf737efac254e4288e8154d4a73767","7a93e65a587704261eb2035d701d1b0d5c4cdcffc11a4b26bdfeb3bf4789f1c3","6731f00bf95eb1225e131749cead14708ecbb0b4db80492685ec58b46505a7b3","02300dfd210f47865f33d8b2a4dcb006da6f4980eeb837e103ace98d4d9a9568","a003936c539a2c7755c16f825fca73cb6917100416a5d963d2634aaec50388f3","f4b246598ec395414c55ee45713831cb7615ca29e915da4a97bdaa9ee7229450","525c4bb2c051987be64df0e92e1d90174912b219bf541e24ffbc4a3406de49e8","be39be7aa02f2123b77ccf02772f864cc8345e0b332335784aab10e81a705c7f","04cf38bf94abd3fe1b51e90227e6e235ca74776f6fc6af718bfc149e7424f582","e69cfc27d78c9ef31b248ab8ea4fa54327c1038843f70efb5cd85d54c0bf1e0e","9fd5483240c6cfe26f65ebe248e1a7eb6e53410f4fc8c6e96610e7468848be0e","702c33c54bd57989de6ba0672ec3f6fb1596b774d4aa1b0359471b24efbe5a51","955e8c096262b69d6f44488072dfc92a64d995a8033a38261a0a558ccd86bd68","43e602c0396c3cd0a705c49f5b9a22ea2e06f0b7b621f843594915955fb96eab","73680481495f60edc549cf1fc1a0c40b0f20893a65c4f6b2c0b4119a0917f9a3","8eb3eefa55a5ba4deb8e1870800ceb65ea2330a77e6868a8d962890d6fc95c60","9673e1d29c53a28066c1d7c77543339f942571af2b91c1ea61981bc0a3daa087","46400de456ae746bfdc83b0cddfe658480a67a2a6d330d3a4c708fb3da1af5bb","8bf79db11966e9a6c3cb24a63fe11f91a47760ea4721edb651c7711f4bbbb3b2",{"version":"322b75546494306187f9f1bd540bd7a79ef3ffd00a47ab87c7d6a45e3cd33ab9","signature":"99524b2c162f6e51a376b01151372dd2bcbfd0e3723fe8c37a99c951ef37414c"},{"version":"ba10a313e4440bd980505cacb2c920e02d36dcb956763882e83715e4db88288d","signature":"684ee491b675e6b23b4a5ce57e90601b47b323d745cace07a9184ca285606dd5"},{"version":"2cba9cf54756b50009318570ed1a17b993d719d08d666a9223fdf8800488414a","signature":"9e901df45cd8bf96734e5ff217655167e923ea32600e4a05e853b791f139a96c"},{"version":"d49d82e859843352bd1fac242f835782ace8cbbe8c11cabe62cac514382b4ce9","signature":"f6aebd7cfce94a41ef8325969db3e4bb6aab3abbbb0e1697af8b3b97ef2bc6be"},{"version":"fa2c48fd724dd8f0e11dfb04f20d727a2595890bfa95419c83b21ed575ed77d1","impliedFormat":99},{"version":"20be44c04e883d5fe7840d630a8d0656e95b00c2d6eebab9ab253275e7170534","impliedFormat":99},{"version":"3b674288fbdc0ff0ed2b7fc2839014c2ff209c84999fd06b6339347d0f976a85","impliedFormat":99},{"version":"cc2958d8abd86edcdf05542bb1b40ba659db5bc5a2560720cde08e8950e63bc1","impliedFormat":99},{"version":"e44e0ea195d68c0aea951809bda325322085008c0622fc4ee44db5359f37b747","impliedFormat":99},{"version":"21053659ad72fe51b9dfbde4fa14dbbac0912359fa37c9a5aa75f188782b2ee8","impliedFormat":99},{"version":"3689b6f599705380d2ceaccb4e58eec5c9439a7a5635d6e37c1ba66ed7c34b35","impliedFormat":99},{"version":"6cf0d3cc668cdbb01358ef7c2e41bbcc14d8d8e4ca424a1b6d2838d9a1cae8ce","impliedFormat":99},{"version":"b7bd70307671536c735389e0a1748555c438c392dfceb6f2ac3aa0a50ca82530","impliedFormat":99},{"version":"661c403f4c5bbf259e03f4fdc3a9e3f51ad562684f702e1b842e6c5336de0752","impliedFormat":99},{"version":"415dd92247ca21db682f75ba7e6289ab2d093cd34c6f471c6c789afd047ad4f3","impliedFormat":99},{"version":"b52f7568bb9b00bcee6c4929938226541c09d86b849b8ba8db2fe2a8bba46f49","impliedFormat":99},{"version":"39d80ec3c018d7ffe7c99ddd3a7b6844b3376c15e52937a7687d2c2828830fd0","impliedFormat":99},{"version":"828f8b38dff4e5c47b0112cb437da379c720f0360d40d392457c9775f30c8ae8","impliedFormat":99},{"version":"ef816ad6735a271c4c8035a1914c3a9beaaa90b3c174da312d26bce8736e56ec","impliedFormat":99},{"version":"7202026e24c5e5b7b6e5fe6b99455a91058ef82e74a5cdf6a3a4136b7ae9c080","impliedFormat":99},{"version":"87561cc8a2d7444adf4eed4b3f15bef8c6098cceb0e7617fba1cc45d187ac8c8","impliedFormat":99},{"version":"d42e1872d53ebb213e7bbe15e5fecdcaa9a490d2f2a2b035ee9cf4a6d3f1e44e","impliedFormat":99},{"version":"2262d96c02073dcb17a31ae8c738651ebff75f102522eae686f5462658b687a8","impliedFormat":99},{"version":"e297bdcb7db008d8d7d0481f2c935a9f7f0a338f41b7e5d1cec6a7744140a4ff","impliedFormat":99},{"version":"568c26e04942bc025342240f0fadc1463ce47171909302d05024a7f77a31a7c2","impliedFormat":99},{"version":"9808709df97d54a5e08f926d2879d9f51bfe1cfa92f664cd50c23c900760b335","signature":"db358b6b2a8d38be60cd2baba821733cbd84ebe56319644927ee22d4c07a602d"},{"version":"a534e61c2f06a147d97aebad720db97dffd8066b7142212e46bcbcdcb640b81a","impliedFormat":99},{"version":"ddf569d04470a4d629090d43a16735185001f3fcf0ae036ead99f2ceab62be48","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"53c448183c7177c83d3eb0b40824cf8952721a6584cf22052adc24f778986732","impliedFormat":99},{"version":"ff128381c9aee8ec304e33e1db75a0eb00557ea3a935319ddc5849447d5c2a6e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"29862711141ae90f542d8c5190b58747d5134f9ec604b5f1aa5a4e58dc40ef15","signature":"583462e01b4ec7c547107308e1505487458253cf4dd4266a970a6e7240359234"},{"version":"185754a6cc160f3268f702a8323934c79c07a5cf6afcd80f7a13dc43ae638fd6","signature":"00a5a375c05d3a130d7da9e5da563ce4ed2753e7e7f2988eb7e98005bc928ab0"},{"version":"cc562e355340f742084220abe01feb01f77ea3b997ae9c540eff648bf37f03eb","signature":"ed42e7ba0422f9c3a1e645604844e13d91c2d7092fab357d39ae5999b6c9f14d"},{"version":"97991aea0a675693773eb545055369004d18e35ed1dcfae48de09d9c2166c703","signature":"ae201b6a7ecf8e415450eee9cd2ec5ac373da31346c681c470500cfd1805c66c"},{"version":"ee05f1b086657712fbe5473a12052f6eb4a6053d78e6ca8cd044c485e44c3cd1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"69dbe5d61d2f298046513598f55bd1e719c50dfd6af2f9feea6fc84f8aa3c4bf","impliedFormat":99},{"version":"6a78643fbbf1b0bd954a53d4edfa217b6a5f92d357fa9cdf8d2ee430f96b9472","impliedFormat":99},{"version":"2ebe2f0255b6f301ba7bc0e10c3dda289c6cf1876f289f7a8f6444613d988e5e","impliedFormat":99},{"version":"012b5083a47ccbe050763f8df2be89daa50c1606e9a0bb31f64276d508c02d78","impliedFormat":99},{"version":"fc7c3943608aec142abb8c28f5892a1faaf255d48e1137ff2b2e0be0afdd479e","impliedFormat":99},{"version":"e8fc8d807069e0f94d481106510fae66792e6a66f330c45fd3c769053cfa5608","impliedFormat":99},{"version":"4c57148a2cb7736c37a7ca128fc8adec5a683413663c17604a28da143ca1a65b","impliedFormat":99},{"version":"37a5b233da6141bd6cd4e78dd8bcd9c0dd29e33ec10707cb57c66304cf743e46","impliedFormat":99},{"version":"c8e1a516135ad6fd057ddc5a01036067ff3b43b3277d18f1eb4c5df22630b50b","impliedFormat":99},{"version":"7d8b55f6b9e7a7a003063ecd596c72c23fe6d8225d6cf3e00e8b375059123513","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"5f06f984e30dc1aa26f0de82c724c6afe924e058708a71a6fcd2fe3f9312cbc4","signature":"fb8b5d39b1cf005b14672fd2fa1ff384d6b771f72d957e003c2c12e242d395df"},{"version":"10508f9bad450510451296676678f9f743c18168a0fe561b3bd0eae4d3733636","signature":"8dd9bd3964b04c537ea152eddeaf2a10a8d9a04041c30add3c11e6e023494265"},"2cd8ceb9d78233669aced348f594372ec4da99a31e7611b01c419d7e3c090cf8",{"version":"0c450f8c30e98d74a89b2a0753b53dfb7af0b00c4a620ab02623dd2b058794a9","signature":"668a5858ef9c3c70a96fda8e1f64a0414043bcf7d359243af27453bb0a53dceb"},{"version":"da06fea8b6895eaaf4ca9f2fae2a687a5da9f14f409b93b1f6a2b38d94cf4016","signature":"22d30ddaf61da806ca602b1d7ef42dbdd17ec9091030e097f5055b9c450305c8"},{"version":"9d3821630ef85260e117212e68f02ab283259c2e06e59e82436a75aa6c939561","signature":"37d529f94b4208e677d61b5608ab6545bbaf9f252f7890596470cf36e807b6f2"},{"version":"1a2e1bad1e98f30153614454d8e9298de01118b52a2e4e9f62297ed75086ffcf","signature":"1e8a7e0975e4603e5506c43b88fefe79c4edf799a52da25d8fb576178b6073cf"},{"version":"97df4e07ad2428956cca064a741fec695ef77365b7e1fdc02b9923fee8fb0b38","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c7320d7bb7e5dc0ea83e2e20a409407fa77a638db4fefdac818bad074430b365","signature":"43f63c452c814675f777fd81d27c616089dce87d31c5bd633c5e87c808359e8f"},{"version":"2ea19b9ba40d12b4c8f6f555a067e0f99a5bb25c13fc2a68435631eab46feaac","signature":"6fffa77b0736cf4903deca7d796349210963407b5651d952472a0842f6adfc9e"},{"version":"5972c84303ce128d47ea5256f2798da189f66f988cf0ac41613d371dd8b79dc0","signature":"9ac4d5239c77d6d17f4ff247e493ff87be7b3d2df778e32eedd7be57a6e0cd8b"},{"version":"271818adce738ea6ecc503c5617c3e6443ac441531843d8ab803f3adf7b98caf","signature":"b1d411fe11459f332e68f1698d0419812a853c0e272211ac8da8f15a5945abf0"},{"version":"fce0873ca77d89caa3df05e623c3958825cc1a72198615f03c75a4937291a9e5","signature":"789d53645eb17b8e804ed79195fb11a30f24f866bf5d10c69d4b051cb2a9f699"},{"version":"341cf4f57f305dc092896ae8e8594411247fffd486f5576ba0f7581d05d73fc6","signature":"77552bbebbb26f74d48d45eb8008b75b2642088b47bb10ca566fab2fe3b430bd"},"42f9fe43f20cc36900cd2bce094fc8579227579f8a1ffdac259f8bc31a01c316",{"version":"6e9e8c9b8f291451374462905baea4a9b9dc993bad12344827e000af863b1771","signature":"ed134e125807e1715920a0758e0ecdc434b3b5687931482cb8202ee6b9b11ff5"},{"version":"1d8c1300c958097287f708c60b690bb8c06d17e41e6fdf6d0df2b857fdc3362a","signature":"b5381f606d2431f1360e44fa663073d381c0606cf3a593a9778cca20e2b24a43"},{"version":"a0c7dd97921e3e38f763a98dd677872e3f60c2d0d7f86cb61532feb41135ead7","signature":"35302a6197aaa135dc36b0a6347d53459ad862d5416b3db8b9ad4476a7c38c78"},{"version":"6f546730375c8892dabdd92cfff0770c14d536e8559b3d3865b46e05307b33a1","signature":"cfd6d3ef9153842a52f560ebc5f321a06bbbdae51176d86eacadfb9086496261"},{"version":"4f4c97258bcf6a8a9320c80a9cc54f11655c422fa029bcecfddc13cc0b7ef507","signature":"b0d1e36da48321de3f0e43dfc3211426b3329de257e8966e4cc2bdd90cdd7350"},{"version":"56817d8c983e286b33e2e8479fad36bbc8907932ba1016a0324eac2bb6219273","signature":"30d397b5c94a50b22b114db9e9a9e1d235efd97086b1d6973f2a4fe45eba1869"},{"version":"a0377b3e482ce61f5892ad7af28bfd511fac812caf1e5dccf2b3ab2948350277","signature":"feb55a4c3666721c912d079543ae5b26d179dd80ce803a4dd766c48bc77a8069"},{"version":"e4b0a75e935c27594b68ce3f7a76de0e2bb5f2b6130d0443381d3c7e31ec6126","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"554fa9741ea8a3a8d87abdecaafe4061087ada0c74174321ae47ed240ae5a3d8","signature":"c208dfce74491a0a824eb014d05c17f95ba5ea47f37545f35394392d07deaf6b"},{"version":"65b1e53515dc35f4fec01f4fc58764215b43e64da10eadb7219c5a4a47284f72","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"847b5cf4cbc0b7d4329825a840217e5f8b060b9b3f4c35ac3087db74209e9df7","signature":"5eaac2ffcd903f024db9db1d70943317c4d9502a2f05ba0aa1eaa809fd65a737"},{"version":"bb1b3af331e197f5598a0d5e21e9e9da72d7a9315e90957e33b9449ff17f7f2e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5409f09d3e02d33d710938e78fda4914f16f10e02ac20a68660e22526e5daad1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c929c6eb750fefd6329da2f0b3eb4555e09d383bfba096299cfc8613a48f2066","signature":"8638caa7167f1bb81b30b59c0da6a1dcbd809dd04883d89246994f8a8aa1c348"},{"version":"f583e87df1a2943a619b780c54072a7caf3581929338926bb02c285c529f01de","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fec532dd13d0352488950e12e1c39d9571fa2cd4725cb79535c4283f89b12af8","signature":"30d397b5c94a50b22b114db9e9a9e1d235efd97086b1d6973f2a4fe45eba1869"},{"version":"a9d2ebc84518030c0e9bb6714c8288f01e50dc09f84817463bce9d40200f8b5e","signature":"41974c6a368c789c8b8a9d995a003d0b2ac2849ddf8bb69a902782d64a0c0511"},{"version":"76623996addbf8ea18fcdc378fb11aade6fed48078a68507c6cf45f1b16645a3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e556eb6be3b0c3c19656895237a53d076ce5e5e94fc0429eaba9782e0b8ed425","signature":"5eaac2ffcd903f024db9db1d70943317c4d9502a2f05ba0aa1eaa809fd65a737"},{"version":"3ab8d2ff90deb396875e22b0addc53a18c78e411f52b5b4a450f953adfde9a0d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"090daf26112fa2445fe107d95ec578af4e5911a7068c9ab706d879ac019a3d3e","signature":"e01086a749c2360bfd713aeff3f2876664f14db15b167270cf6e8b76230e5328"},{"version":"f2a1057776e669dc19cc050b1859d93c220ded21f7dad4eeb05300422a6a0120","signature":"81921905af55f744ebf75c837c253a189c14d11f9e97db771917ab3416e21e93"},{"version":"0b3ef222fab3ac428021b79cf7ef1a24c6374f8be25734feceaa2cee4bc8f201","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0de64374c856bf48283d4a1004b97aa6e49fb0aa7c7ab220c57628f0574648ad","signature":"f1ef07645b29c9304137c8bc4e20280b8eb08621fda0641e53050c586f568be3"},{"version":"280dfb4ddcb3980ed32e2cbd740cff8b7ad3533aa0a581271149cf77f7f9c983","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c2a58d2ab459550e41f36c62ea5644015f4a63f0e84c43b560ef72e6ed50359f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9954f887fb101478c3376237efabd71ad4fade28914840cc5f89e8e3a077c1a4","signature":"96d948b179aa995d368e27866e514aa90e6221454565780229e3e6a3e241e5f2"},{"version":"5e1ec6452f9539da38a10e3a52feb108d38a52147a237ca1cd973c70b99c92df","signature":"48be45ecf1ad85e94f806efa606cc2991c02cca46895696cba5e9f058f3d1cd5"},{"version":"2066ee0ec59b85e1f16a62326e18c7025cc94b9f8349a0a7f7d4c3697558d818","signature":"8638caa7167f1bb81b30b59c0da6a1dcbd809dd04883d89246994f8a8aa1c348"},{"version":"873aa908b36d23d98db48e1a0e60413d28f01f83ce4ade316a356014faa8a125","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fe3776209eeb9972e5f9f450cbcd0c452c576173b96d834735e64d9c6468c0e9","signature":"4f8a91b5e8be0d4560eff5eccccf7d8d798e5cb4eb643ffa6ada14bc2e436b44"},{"version":"ed9d0e5d83217df43ff976e26293330e3416b8d06e5b76fe0908260970de2893","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"850bdbe9389eafbe716d69e0838a8f29715c6b0298be732759c6d0d2829c0d84","signature":"5a6754535c79eb5fa57ff862d64512ba374d56cbb37c5d5d72434584a1ccf893"},{"version":"aa85087b2f51d80f81401cd324157e2d3bc4044f712b4a3cd26d57b11d46b276","signature":"0d9e44fab4f8bca16f048f312c56a137595f3dc9a085ba824afc1801c6fa45af"},{"version":"b95cc6c2f6164d543751103a7b4dd1b43344e2208ac0bf518737ce6f0d217bda","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9d82824f655a91cd4cdfd1fa707b4bb2d4c3ae0c048520e63cec5f2917bdc47a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e1c4ab7fac150f2ec5bab09514f17903f8499b4dce81a4afd1a53fa108f77a4c","signature":"95342456a2528e79e342d4673e89992d36c83031aed802b5700d9bc17cd97b7b"},{"version":"9205a9f881a5fa4cc31aa437b8a78b15ac8ca1f97b49b8618e4efdc968a4fc6b","signature":"657be8c89278f99da66fcb86b28ddf3fda8f256c46dd49a9cebe0fc1bdcf9dcd"},{"version":"fdb25849c9d3961f3f6be3b837938534349c7150cc2bec167bdee40f86b4e648","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9dca669d1fd58e76dc9e78585da98ce21478d24484868077e80e4f9807c35c8f","signature":"57b0b61b3dc0afa371946ad39627e8bde74fdd71ec37868b08a459fba4a93806"},{"version":"2777b65f59b3218c4cb8209d83d4ef371ed35d7ab56fd7ec3dc9108688c0d887","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7cfee12174fab88d0701cf65ccc5bbb7de677641f9d0bc521b7bec9a16d31db3","signature":"21e37be884f8363a08685b18be7592e606e157cf606b15a55214cc145cdef69f"},{"version":"7437f59565f10756692690de97127f1e56567a5c5259029ce7523b234c452a0c","signature":"8638caa7167f1bb81b30b59c0da6a1dcbd809dd04883d89246994f8a8aa1c348"},{"version":"1e03505f80f5a2175b84c6698e8cfd573b0480af05b1a6a7f730af89aeb5bae5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"64f749f74d81aa168c828dc68c92172fb9a483ac1c1496c0650d820915bfcfdb","signature":"8638caa7167f1bb81b30b59c0da6a1dcbd809dd04883d89246994f8a8aa1c348"},{"version":"aabc0a9f908d6c1bdd9b8bf855388e68a114bed960bb8fdb2a02e3eb4b12fc51","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"85ed4bf25d5181fcce12dd34dca44a8eb7367edab5adbf6da7849d45a4a44624","signature":"30d397b5c94a50b22b114db9e9a9e1d235efd97086b1d6973f2a4fe45eba1869"},{"version":"5fd55272c74fe0de9def1d79ffc34094909a34fd93a2cf43337b61d8dc1b4f75","signature":"feb55a4c3666721c912d079543ae5b26d179dd80ce803a4dd766c48bc77a8069"},{"version":"13e25102d070859f1138ccb104f53bcdb0b3eb5582ef76ff05b15f6dd2715702","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f4c86f92288366a23e9acae4be7fdc00bbb54f33e03a8c042581ceaf8eaa70a2","signature":"49627b6fb8ee410e19e6495583c69af3f5f61569343fe1b6434c73470018b7ca"},{"version":"e255fc90be06c03b927ab0ae0f16e6d3bd2d1c5da46f2905cccd67e5d7b50c8f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9395abcd48b645a194f1ea59ee36a432200bd6e75ab13b1ad78dda12df48ee93","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cd52bfe225aa8c6831bf8b1315f8adab69ba92aeba18b1b85ba4bda51014219b","signature":"bd2a8a99ef626443d4832ab21d88d06ac3bf4aca603522796bfc6957d32cc0cc"},{"version":"46c26d8098ca707a715e5c296cc296436aebeeacf261ce1e413c334d96e76266","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"50989c4af2e9619c671ec065fdf05dbf4c5606e1a6271f7e59e181de0fbd136d","signature":"939d0293159d3a75833d0697a75aaedf76d95698ced2b41347139558512473bd"},{"version":"2170c2f55e4fa8aabfca2d916055b76a60ef4db78bc4b2fa037068574f4ea28e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6f582802df0d4f361063ddbe97523397e622cee3a8a1b1cf041c2d0c4da7862a","signature":"65015195782037ef329d29d106d3876be1d835bb448883f2fc3aa4e95b49b452"},{"version":"2f3142a8420b64d84e9a0b1e8ba0feb86a94c22d8e213d758041500efd316483","signature":"30d397b5c94a50b22b114db9e9a9e1d235efd97086b1d6973f2a4fe45eba1869"},{"version":"e81273f100bc85d69b89b0a4aeaa85f9bffa61e2a72a61c1a2aeed6d574d4411","signature":"64c8b13b86f3ff2614b8511a5d99e78ab68dc878ca65a15b226085333e41c1ff"},{"version":"7a28a0aaf30763dece69790f7a714f11faa10b2d05534344415aacefcc5bb9e6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"78c3853708722d1830a66f983ec68c2eff6709e2394d28663c8dff579161dd0b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"c2b999a96781e6c932632bd089095368e973bf5602e1b1a62156b7d2b43f1e84","6299a6a387dc55e528aec4342deaea0b83f1ea3a365c135a31a18ee55334f441","dab689d836ad3292b41e7f4986b4e68e5d45c6903e4aeaae8972a82d4aebec29","fb33bc4865b74d1f0239b1782dbdc4cc2d38690ba6e245e9e3b024c256b14c2b","995c54f1c5c688f712a675fe35d55bcada2b31dba561dcc71553a1ad601e59ec","87608e7cc815ad3d88e0b9de6c402bb37b58ea1b38636cf69709da1baff6e334","7514a59057759a26fb9ad5d3ff76cdcd83b9eb87e66218c88ecf36967f3e9ece","b8936f21d1af9539d43453a96ac1b65cb188f5d2f8d52e05d6eaaded282b794b","c9e19d480a43172f9504ac9b22f4a9c149de1d916162f24c62395533b7be19f6","9ba7808b7404cdf2159c81883a39290033bc4308f2978eb80797c92b87421301","ab2d009e0fa7366f47ae1a6e0ca35d0aac55c6264c5f61718e12366c196163b4","ec7c92aaed80f6923a7caa4bfe4eead395b50a7001504fd7fbb0b9381804dae9","234e38fef59169bd02d8f5b56ca02e5ec13a0bd6846c328927b924e1299f7fb0","cbcb138217c5bc95c400201059163ad42d7238de8f7864e0323f1420400ccb05","311bede35f785d7b1ecd7398986757e26409d1049352a94ccf83586b8603c92d","dc109123ecd59af01d07aa9f3a8e8a7085bd3f337388c5369799ab1ce6c2d45f","ce6afa34fb9dae51053a863b4c3f7c6e55f3da23b00149f31a8e4402bc963be0","d3c7ad5738d28011b414c43fd3a1bb6b5d4d96036967285cfac496f5bcb79b07","03e892344ad170438ccfc156b4ee7ff0be4e535a2939e038f64556ce03b934ed","1348f1a1f9820e2f1394b93cecc156a7e22f03636ab9270753985549aae2be74","5950ac01377e7eedc94b00eb3fee678745e4cc1a72b5343867f0733d07db6660","6f74706bc6b53f9e4bcebb5e7ab8743b616aef181edc7758b8ee905f9b2fdcd7","00dd6eef660f08ce85154106fa0fa4d943ed699c5ca7b06bb08732978bcebb49","a06d96a582ac207ffcd38445d773c05e841d646efb185b5e9b65f73e5bd388c7","c3d3dcb0d82fc5e91d8830bac7fead905686fe876f1f42c3ed872bb0a6b6584e","0d59f0ca0526d6100430c807c59dc2004728b8d38804b278fa0ab3cc7e3a9cf0","4d3ecfe7df96f773dc0e1c0fb18d6d72db9f38d1b41f34a4fa1a427a6f4bd9d6","a4a6972c2d47d465d7f02c1dc4a6cbfeda7a97e46479c1b0cebdaf26bf9b497a","787a19c855cf2b826942d25440b63150c45094154c6a40e95abdb4109298b8b4","13dc2d1e35226de85458034417bfc0e781211044fad520bac53b7858a290d004","622f95b2d77382fec591bd2c01f60d36c7868edc636d8da291387633ed96ec52","29cb5493c474d07fabd1d53cf8207c222f3691c4b97c61bb9702f04949d333f9","7a29ecaed92b8c39d1e11fd11a73a204e3badb7ef48bfd817fb963d66bc01446","dd32b7ed90dd4e7070af271977d0d943efd9a8d7d2199356e2375e33b6bf662a","abb7dce8e50a2ec4a168ba511d8f98f9519c8b5870c6e4f84c7934f43b4d9597","bc609bfde2b132508718aafd010975dbffcdb93f372457c21231d983d6bfb9da","aab05ca0acd4a51c37a8154cce2b75479d3d62f90341823905631f0a726baa22","79ed3ad7f3ffce96118b23245b494e4779095c248ea6a35565f28fbbc2ec9284","4b9a81535d7d2901fc91f32a2ef52f7d89fb28854a9f242a58e220083d50bdc2","4d6cdb41f5e5eda58fcd4fa2cfe08e057023cec21583202bcb828e5b98a5bcd4","d379b551673ab2ec8ff77f14be81964b9528ead97601978f4333f6a1a777b8fd","ed06668f35fda8824685dafae8b372a34b26e165d96a7c10453992029e0ca4ee","0687999f5f651ff663e2c6673fc0e9610a3ba98e62b75a69a4f7289e0f7ec482","e8288f355bb77b1ecbf31b48ef74e56184fb19ed8bc3be07ed33d7d97830fcee","81374257c87db982d891f53b9f1caf0cfe011d943be775ea3f903952f81fab69","097fc392369de9744117595a3c18edc1acd0651d4f908c47153b5d04310a3878","76cf9f2626be11855617055bea17423597efa9783a0486f552cc59d7045a6b47","9f752ffefe86f1263bc3bbfe4f2da80f52e159225ed698a03485a6770b55b33a","15f49a4ccf8a98a461a83ea0f01288c5a73610bfb65afdd0ef25c1a5ec2ee9a8","10c4200cc040e99f22f3d18bb86f57d4ae5380adae9143321cb2b54938fde5fb","139d7b61669dcc5eeab1846054e420fb385f138553ef50591e82c42081c0cb93","6c705030a172e9a7fef8a44c0e614ff8a6264485288cbcc7e30ba79c9131ad1f","55d56755ef0667f15f6072e374f189f3a0d322fb4fd323c8bbde1ec5de894e35","5babad7b05cb460fbaa04a3ef544518bfb8bcc4115d968bb943a56b1e3641923","cb1f4e899b3220086cbd5439dd821b792399f2e3a7d88070dc81102dcb1c22e9","e90e26e28de8859b6a7aa7a3c600d691e1f4f6ead014cacb5e431094397abec3","524e28981b37d1598d04b83039191dadbe7312086e73d9d7c6bfd9234b149ac6","187e2f405d45f10bb5a130973097f1e5f16b062375b5ad27ae32615668782c67","9412a156c35a8baa72bdee513d96470cf0152f63e0a4db07c85c3cbcf9df6f32","fbf015bbfe776e010855188176b4ff6edfff47d775b6823772af034649cdaa23","59698b84bd69ec62aa51ec496bf011e37bf0eb89de994e9b4b880c8f7c992c65","ae7c13da60181b49c24cac060cab08b6cd90b329570e9f34583f0cc6e73e7576","1593ed04cb28b50ef2518328a20ddcd04e4fb111fd76677663887eb229c0910b","dbe8bf98d1fdd0757a63b7dcef813328a38e026a82634b076bd82d26c0bfafc3","38adc017c7914bdbf1063d504a8bb7b36b8697a3b090069fab216cff78e5cc5f","9a15018312d48e3cf0b1d23866c33e05e9736fbcd9102ed3ce9528c6301531f1","6a9752e3b35c0970a9619b4d9508cc62fb4caa2cd554e90effaf0c07be754f0e","abd2ecdaee03227e98c25ea8e4dbfd1187f813c0eab1d5d6d1a6b2fffe422bff","0fbbdebe47923e003fcdf69b1283340a44e5203b519299a29ee8ef0fd4f46f9d","d5f14158ab4498e7ddf61d434a13ea3439746e4d100a79db5a75c3695a66b1ae","429ed3f2d24d61480862dbcdd006cbe78d9676a867f10df4d557d11afaa98f2c","e0070d800cdfa87bddecde27d5f0f7a00f3852d6a376e17c5dbdbbfef41941e5","bc0d71193ebeb976a1e8345b247e37f7dea9a85444e327f5fbc66d17fa6645ab","315c011315a05e403256532d3d9742611bc9cfd5a55a434fc847d6a6826e70e6","e7fa01fd5396b3903f3b7760cf55148e0c45d0a7c1b8ec893b24af3e4911be46","2c1f10136ca71dcd5673873a32c04267097c9b7519e532b632749372195dd7c1","38a0e2a1127af5f6b824acb367249c23183adbb3f068475f989327aef46c9be9","37ec21e21568d91296a2adadd6a1df0b2f40be642c4cd70858094bfaa1a1de02","4c30b710be482c09be59cadf827454ff4e443026a0d836e9f5133fbb6dfc5926","337de880ba84fae0111c40164c304b91c16ec8d7ec706a43938f0bd5b316db39","0d7a520aa47aec462d793b35f1d63b65c97095f285c833516a984d40874b1dd6","12104b430200479596a1abb8fa6c6713e1c78e812bc2349e06ba84d6cc7f56de","003825c57a137d65571f788582abfe85c5b834187a1a20e7af3cb62d4f749e44","ab1207b585b38d232b3bf1d4bf9a13ea6ed950457a628323a7b3d3e87aa102e3","b6b990c62909bef18f2beba4f2eef533f33f796b89a79485f5f30b163f35b687","083d34dd695a5523c5c2b02043616225c0438a7b5c18028dad0155e2a6cf1b9b","9a69d37481c037ce35bb71730552cbb9d65757dbd827656e12d0a601099249bc","95799184faa0ed49546724de9e7e3c70847ccd7ece420003ba465fc3ceeb28eb","85b528a72177b3d980ded5037b059e4d6a0d66239c85c49b7adfa82b3d0a7e2f","2bfb3b94b45542043862e034c95f7c58bda16061c3d594ee5fe34ce1da3e4d9c","b6906d41cf91b82b726a459287b2c73e17dac90692e4f33d423ae4f63d1354b5","fdef1073c37e5756b4eb3a1041ad557814410e3637289322a6c450b76cfe25bc","7fb5760fb5ab64d98149ad1c3b46b582980cb7af1d78eaffb2a3547d76142af8","5d4dfdccc112c5e5074af03a956b0d7f5ec634f8f8e5eb06cbe6754bca2691ce","f1017429da46fb1c8744e18b3c8bfda91a47bf0adac08f0fc02e920286fe2991","37fbcb8aa4d50ae8263b04636bc1ec7ac2d0a322fd32e8a2995152a18d9599ea","83947a8bfb1e93b090b2c8c6e612a585c4431e1cbebc67a075f938b46e1879a3","877a0e1dea34a564c6040ce664bf6a8ddb585cb5713e34d5bf6716ae0870581e","48d818aebd9d89491e37ddbae2908c38a011662c523d67e1add4ffa4cce4d71c","9578e692aa2c18a379e0033133877c2fc132dbf9cc7b3778f716a6dc8141205d","1d251ee683ae69dbe64f7a3157bbf5f0d8aec4b91982b7cbf777eb824b666d3f","30d25949d75cd6e04b9db98baa5f066219548ef38a6f2a6417c755b27591bb9e","f8903a7abe5860dacd71e7178c73d8597562242379596213628c6912eb01cdd2","d0852bae10e7e84792722dbe73a211d927e484ae7bdeb5322a5cf692576d5332","aa01d4bcacee27ec02b9f24ad3f9e6369ed0abfd1ade70bcc04f5cc3b3797c7f","21039bfba91ae1fb732f9f2f01d6ea213be61f2c80ef2c1115632a340cee6948","8112947bbb042ee38df27e755aba78c6cebb698a19dac332c1787b43b89ae521","9f45876c3a364189c8c1f8f8de4d181e82d3887765a789aa638e7df18f8c8763","eed3b144c55e58569928848d6acbc249c5fa3d0b3869c094ebf7121d8246f69b","85401666452e33496c46cfbed0c8d131e686252aef92125d918dcefceff35b9c","938e89b7bd4c3e47a0ddce6575aa72fb7c0d345964041c1670a4b7c4d70ea75c","689823d4644b38e87cff42b37ac62bdf05aac676dbe5aad82953c24bece5a97b","97ca1dfee36c2c23d576fe40c082c82b8d2db4439a3ec3c6cb509669e73f9ef7","6206b472fe17ea64c81313beb540655ac01081d22982319cf21f5211e4a9b71c","2db1837116083735cbb3126491dec83f309002d05c027c4696f636946b64a6ff","cec34e971d7a4e23252019ca1deedb77af5b3a42c5d62f61095dfe82aa2a848a","9f634f6135bd76998e5f49fdb43569f03d528de8cb8bd722b31c868f4d2fbb78","eae1432ce9b94c02c3135cb75a0ae8229a67293e51c1cd7ef2c439cf03f84947","f7cd8169d5e58682970ede1cb61e5c48429d7877c63f76732758292ac8c7ef3e","a3baee44bc31bf8e91300a47cec243a23421efe90b7c099c93d6b714873095e6",{"version":"23fea8bad58c63e1a9058d779587f091521c525c8a0945247636f24c6e073503","signature":"21c63f6576f08dd88a9616edda06fc70355fd88c2a34cbfa58c7e4538f72e714"},{"version":"218e00e649509c6d8e8176eece29790b11881532adc596c7f7b6b2334a249c2e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4d7d964609a07368d076ce943b07106c5ebee8138c307d3273ba1cf3a0c3c751","impliedFormat":99},{"version":"0e48c1354203ba2ca366b62a0f22fec9e10c251d9d6420c6d435da1d079e6126","impliedFormat":99},{"version":"0662a451f0584bb3026340c3661c3a89774182976cd373eca502a1d3b5c7b580","impliedFormat":99},{"version":"4781142e27cfd19d75a2c0ee432826153fcdf670bdc52631a6078330c9133e6f","impliedFormat":99},{"version":"1355f6ed39fb8abb23f5bdd9800ae95bcdc9e8081aac6b8c5e0934fdea1d9cd8","signature":"760169ac1f87359d2f6d96a14ace0baf9000eeb59c0a0857c0bf9569def90124"},{"version":"3b1f3e57163b2541cf00984780a6417c0b7ea82e72f55fa26d149cb943867498","signature":"a5d30845d783ed03dc9718ba178a480b157d3432c7e6c9129223b9fdbabcc6bb"},{"version":"6d7cd1205e15b287ecdfb2d00c51bab80033a2a9ee37ced6c9310f71f0290f45","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"753358ddfa1f14ed3c7c1be76b938cdd05b3e2a643177c809deea6c780b1a685","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"05be7a703ab6ee10685188082f91cdf606f2d2e87927508baa83ab2be3a22696","signature":"eb318835e9fb8d3e34803b46179e5e3626cbdc0c3fe09cc95a224b7d9e0a65d0"},{"version":"d6056b480feb3370ff004ca083aed2b9dd36b391fc3cef6da7038574bcdb5577","impliedFormat":99},{"version":"d00b7ef279b5e11236738e99e985ced45d75dbf417eab19110519d7fcf029be9","impliedFormat":99},{"version":"50b5e0089cc8135750a422a661660de0b0efc8879363507c703e52fcde653d46","impliedFormat":99},{"version":"b7901072b4348af0c9c02ef413add51f3adbbd608a6f3155c40fd26b6a1ccc53","impliedFormat":99},{"version":"f887c9c3d273371c7fbfbb28128ece44ff88240e94226e2411b3800915ef1ec1","impliedFormat":99},{"version":"4a80acea776bb9bc1315176b7cbc8bd6afd7524ddede00936fab97a9c19e050d","impliedFormat":99},{"version":"a3e3327f133e5f0f7b1944a339071f97b73a00adbf2cf4d46781a8b29f98f536","signature":"8b0a49392bc374f425ca5fe0481bd3a6d7367526cc7bc4f3a94a275860564b81"},{"version":"32ee15409b68095b0ce11b694160472485e3ff423722b60c8e4439ead965e1b2","signature":"5cfad1e58de67ca560a273b7280e098ee6e75ffde8fefc5105d47bc9a139193e"},{"version":"100d108221da55f21edf1ad92af675b9dad1f130e54aa3e259d939f5a0cae0d0","signature":"1fbdfa1aada844256238e86ac3155fded36759320035d7c72d157978dc049a3b"},{"version":"abfff6dac49d53a9da97c87ece340a99df0cc1eac4b4481de9948e089b320c29","signature":"8f524f43f0fbcdcf4a4060e46d7605817e2773ed4fed383c258b7deca9ce9447"},{"version":"904c69311a147514fdcfa68893c13f5e44a1a8717a65078a3891cb8f5a94b0cb","signature":"ea2a881e8503b10a2d0b727d7e5698c07d6b1a3f4879e2f7ab37c1f67b8ac762"},{"version":"7d64dd9e1eaf1ac0bfac701156324f2ee220954a58e7a467e6912ccd8e2c5ebc","signature":"6c2151005903b8cfb48cc1ebdeacf3e1a9999f69ad0571c34d04f48ecb6549cc"},{"version":"1c6997077b7900f0882f9dfc482811cf6f070328a95ee3cd8a13f390e4b8446a","signature":"e66fa21752c366c0e6916750fe22304ab09634cbc35ff64573b5f24a43abd70e"},{"version":"ab4eccc59491d312a5ffc7e284e287f43bbcdebee2fa0131a1499ef45c4ca223","signature":"5ad995b462eded70f323ae21e0224dd405f0e4d2e2548cd4e4f29944448bad72"},{"version":"8ec1baf0c9ac1db7a3ca0ca7df830ab80297d707cf196111f778e92e1f5532f5","signature":"278945045ac045d259fd6f0b4b813bc8fd823a3bab2247f34b953e7e31eb4817"},{"version":"2ca653856f7fd4aca29aeed20c5b2d234c2c09c723e16d8af9ae5bd4219b0a4f","signature":"88ac555c25f14f1ea4c8ce4ff25856ad6f98a41ce0d175bc36ccd59a7b536571"},{"version":"29236e8ff0add978a3502ee765b8918318a7153f1f48f8641cdef697a66d2754","signature":"2cde6b18454db444b0e9125091b0513d758959950d54e591b4ed3006a4c30797"},{"version":"4fcf4ef80f217041524db2fba9114df57822f758f28ab37d0fe097f516dea34e","signature":"84f170cf5a872ea60d83d90a2766811abab2862f080075c0f08dd94f4f5fc572"},{"version":"83f029a91856c61b80292df229e1ac0fd2f6f74b94ffed15f5774a36345bda1e","signature":"89517a41cf9c621983230432e87129bd6db9da0be91b1377bf4da95ca555f2b8"},{"version":"a316fb29567f15192de7624af0661762fb1edfd2fa95abbd200411853749ecc0","signature":"7592e624ca075b6bfd026622d00b48278ec74a54d9dcbe8b06171785bc907c4e"},{"version":"bd069329f7ffafbc6600033a1b082ee5ea0dd08d83ccb22400a23154d109c922","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"db19d6d4896e0c366cbda96448be201db08e42c9f7075bb369ab72cfc70a4ce0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8fc341e6e7d8421c1101308d51c15344ba522984e375bd8ccb3c1c42fcd7049c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a851b40a326c23b7f6b6fb0f3fd6c46f7c703a65558fdba2d4fcd26e07d92c98","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9fcede970a14d445d5ad69f3681c2080b09c5e8525de21f234b49e609a7ee0ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a04a2db5fea845ecfc7898af464e68d9d915268f7dbbb2f7030066d90ec671a0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2dc7528c314980e38f661f02e9e1115e93b4cedbba3f8326397fcfea7e3aa841","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7523b4dc0a867bd3e01780e4729106bba4787c4c9ff71850a26259ce97c8d153","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d2e54abb9219559f6080534b9480213364747be85328959f298bf9284aab3035","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0bbab3d8557c32473afd292083bfa73e372c1e7376f5c01e3ced6e47d101f3da","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"3cfb7c0c642b19fb75132154040bb7cd840f0002f9955b14154e69611b9b3f81","impliedFormat":1},{"version":"8387ec1601cf6b8948672537cf8d430431ba0d87b1f9537b4597c1ab8d3ade5b","impliedFormat":1},{"version":"d16f1c460b1ca9158e030fdf3641e1de11135e0c7169d3e8cf17cc4cc35d5e64","impliedFormat":1},{"version":"a934063af84f8117b8ce51851c1af2b76efe960aa4c7b48d0343a1b15c01aedf","impliedFormat":1},{"version":"e3c5ad476eb2fca8505aee5bdfdf9bf11760df5d0f9545db23f12a5c4d72a718","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"d0570ce419fb38287e7b39c910b468becb5b2278cf33b1000a3d3e82a46ecae2","impliedFormat":1},{"version":"3aca7f4260dad9dcc0a0333654cb3cde6664d34a553ec06c953bce11151764d7","impliedFormat":1},{"version":"a0a6f0095f25f08a7129bc4d7cb8438039ec422dc341218d274e1e5131115988","impliedFormat":1},{"version":"b58f396fe4cfe5a0e4d594996bc8c1bfe25496fbc66cf169d41ac3c139418c77","impliedFormat":1},{"version":"45785e608b3d380c79e21957a6d1467e1206ac0281644e43e8ed6498808ace72","impliedFormat":1},{"version":"bece27602416508ba946868ad34d09997911016dbd6893fb884633017f74e2c5","impliedFormat":1},{"version":"2a90177ebaef25de89351de964c2c601ab54d6e3a157cba60d9cd3eaf5a5ee1a","impliedFormat":1},{"version":"82200e963d3c767976a5a9f41ecf8c65eca14a6b33dcbe00214fcbe959698c46","impliedFormat":1},{"version":"b4966c503c08bbd9e834037a8ab60e5f53c5fd1092e8873c4a1c344806acdab2","impliedFormat":1},{"version":"3d3208d0f061e4836dd5f144425781c172987c430f7eaee483fadaa3c5780f9f","impliedFormat":1},{"version":"34a8a5b4c21e7a6d07d3b6bce72371da300ec1aed58961067e13f1f4dc849712","impliedFormat":1},{"version":"2bc44b70fca15b4544cc841aaf5249b24ab231c129dd59a19f5e64f548a4ccf4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"647687307a2734b64c546f79ea4716f3746b211a6da853141c37f1f6a09a1d17","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7e4d944d211d3ee9c8f7db077eb9ef2736a04ab5a884910e9422f0fb41b56d3c","signature":"b3773398b038e5776a9aed6ac693eb5651de53372a7a11bd71503835cee9e915"},{"version":"33dab8c26a9caf099df839615fd74617ec74ebba2ee4e44ed4576e13fb0f7a31","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a1dfe23f227218894bb6e7e900042e12931a6c46a25140a65ad9ff9cc0fd4f20","signature":"9aa87086373bfb09cb3eaac18ad5f92ba89a60f6404fc39103cd22eb4c7095c1"},{"version":"b2caac8554b05a2c66d4b44bd2ee0ff956eb5456c28f672bb5e814761752e86d","signature":"d908d903a664da4b1f9a5ec64ef790a09c920984baf44960b869a86f9206a6f8"},{"version":"737baa044c64e7c925775a1e52fea843316013875cece93dadc292d7aefb4ff0","signature":"e42f666abe1a4c80e001378ad2bf4acc5e8729de72d7e7293f064d3576895bb8"},{"version":"49d8b7d20ab42e66caab1665be7caaaf434b499361b5352726cd83b2eb6d6713","signature":"56a079a3b9e1b175527126f2e3a2b474999671fcaf766ec75c12eea597afe608"},{"version":"0c4a271c60dbb7f6d86f5de56bb15346116376b486c6316c549e1f35b8a416a5","signature":"0dae3d242db51e2ef475883baa090ada156f523f5884ec58e4e53038add780e4"},{"version":"f44988d2c6bed419a29d99e2ef66ccd6980c74838d21dfe369e9240dd8c0a987","signature":"ad1f11562a9f6825141016c9e708d9985cf95f638c0a92772f8892a4be1d176b"},{"version":"b53ec7332ae7a821ffc0c3d8e2c051e62f3edde59f99881206503594437e0f25","signature":"4694f1f14da89086f105fac1e727ae291d08083e554513ee1eec633f1f14a96a"},{"version":"3cdec75d128a153f712a8f5cec38004a6c6c37477d2c09173afeae79af376f80","signature":"cad2a9dee72e3411d685e4f987c287673dd16e37832777c502192e8600bb62a3"},{"version":"c1f193c94272dc0d85568688e812e5baf7da91858cc0fec08aa01289e80a571e","signature":"8424f2d79f428e49d8a2d2b89e8d379ba1cd8d26849db3a75f35e7d43ad52c45"},{"version":"f7a7e838ddd61132c65eabcb3573ffd74069ea2ffbbaef95d17dd7eb4112e781","signature":"e0c1ab1261c03d853724ab59f797430bbee3b352df88635a27520d3104c4143c"},{"version":"e3ee51212698a619028e525d3df876b692fced06d3be687a7bb1050dfa4da077","signature":"2c8640060c137890ee9ef29204f399d1533fb36ae5efe6d07ca8e7b5bb537b3c"},{"version":"ebc0afe29955b11d326c87e7e624cd1148b0c7d2ab35c09b4f6dca31dbd78c1f","signature":"2d46ae2b798f91a020e72fbe842ebb0332a8158219781ee5c26a1f5c2928ccb2"},{"version":"c814726bddeaeef11e3c1661339114a2d5e48689c7dad75ad32500abbb4395db","signature":"da4dc9a66a8663a164f25fffd8293de942b9f8c81baf60591dca9f782802187b"},{"version":"c67c148b8b73670c1d15b38db1407c6473d00d4e0ed522e9c8d4f1e4be700e6c","signature":"abae5d151a9dceafca9c4cb927be27455d82fffde8b2592938af5d25e6935722"},{"version":"aecbd57591e5813689b3799dda24d6ceb10f5267d415430b753604538a060b6a","signature":"2f1fe7986e5f596e0359609fd4a4eef45e49734450f3032902b41f7a26db2489"},{"version":"9871d5b22b48e054cd2a87e53dcc105b87757353ff6fcfef10478ed3fdd5d4b7","signature":"72509efef61cfa607e34ae64294eb793d2c57aded98c092a07cd4d55cd366650"},{"version":"728d32bef7ce9a37a7cd7009afe9e19aa6d7e8442cef47fc8a9510c833422e94","signature":"2f1c07f360c5e06f67633e0dbcc050d44d261a3da096e8cbf5ddb8108de75f21"},{"version":"3f37ef758e00bd0754bc0d1d225377898f9cb9ea3013a8408859a61065e9cd15","signature":"1c094d143f1f02c5c0d85d2ba8b058bc95f5acbb288be5d57cc54edc6d0b42ab"},{"version":"697d752847c1926d6db8b13502236ed765dd9ce5e7234ecc845416e54c95c78a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"002763406f18d09dc801dfb2b132d4c7120bbefdacc93ed7b7c55ba84ce0c464","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2a81ad78a23d774ebd370247ea5f2be1502959869932088a0cd87536e4614cdc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2c136b5e368dd6dbb82776f1458c528562ec1ffe362800d6108dfc811176de0b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7bef13953c43a7c3d930f0909c5bd7cda7e1021592f8f95d5f03d3217805a71a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"93f440dc12f2436d656312832efa468a70705e3a37d30214a12b300febe900ef","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"88c65786df7a010be1ae1790fa9bac98b4c007a2c769adeed3e8aab4cf148fc3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a85083b996cda6ec35fac943c1b40e7c9dcf4afe30cf1a30d62a21b71b3bb641","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"474c97a4f3c70d8ff164c352b5918a36e65e9568de71855066a201e6e8952f3e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"de176c16940784fcd9e0935bd846e0b6e916c819c3c8cee7c83106ceca3b5fd6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0840e53792c0de3437630dd82c77fdb5ce4d09101214baef2e1d20e01d3e4cd3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"21d1de9e6c40d79f9122d0158b97c62c03cab5a3060eeb0696830475e7060f17","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ba63347059b2bd21ac5df4d7a30973bf24f60f76e45635ed59b7c541856ea6f9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"60fb16e0077c528a2602d8252ade47eecf755850c9b472250078597683bf379c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3c1a5b97d99ec08f8e0d3e98c7a907e40e456783e7de6eed5635eeeb9a5269de","signature":"82b21505ee92ddf15275dcf5de22b2451d51558b659aee04e6d29e860a8288a3"},{"version":"b1b46aa8a7001f395488014bcaa42bef302092591522bd3b366e1f9d3dcd9471","signature":"ababa1c71ee96630826afd79fd537a6beb954b2cf82cccd31453a286eac8ac6f"},{"version":"de7365924f6da9bc2d829975df570a7f4bb72eb83f7cdb7d6febd42987dbbd06","signature":"5b839655e68a1c629af2b40f66bd21887cd6db05d5d061cb3ba7f03a01e9cb01"},{"version":"c1aaa9e355769261cd5802546a93d3c9ad0a55a104b9e7f9545431805e059470","signature":"b0162954b4a5bbd5db5f0b9856fffe449052b9d9182a6b3e253864556c1f3aea"},{"version":"ec3228c336bf3430b939023e0ff9fb40f1c159af0623ceb8c200d8b4f456718b","signature":"f856e4e5e62ddd2cb45017b53a28db47ba7782e0bbfc176ebbb1bad058ac9948"},{"version":"313b54490472616c80d3c0259fd426d816f43e25de22afdcbf3764b78f2b67af","signature":"08070110f6963aaa99ddd59742ef67da601c36c2d607f087870c6850de9dd0ca"},{"version":"af0fe9821160d514e19fbf8409a509f48b6c7ac187aa7c8b740ed7d7a535e88a","signature":"cfb03122d3296fc7960c283ce37cac6adf8791bfc8dd5ac8ad524229c81b0493"},{"version":"c29182fb25dd3dadea12ea8ca8e3329fb3e5408943d029634f9b2cdb201bcec6","signature":"040509427dd2d575753b2d2de25e87802526ce859befaa6898c7fd3a6587fa8e"},{"version":"2bcefe7b643a478358562030a82e32fe5884933235d9e48b80cd635e52b060bb","signature":"2c6e3c2124ab2b623a2e9441698202dd1673a756e94c46f14e389b7f56ed597c"},{"version":"18bf75fdba6d6fb274b6bfe3f1f37ca4bb5871dbe0e40fa06eed23d7d35aebb8","signature":"706d00ef8e9352cd7c383e00038ec9652542e96b947b21e8dc13cdc8a2fa5678"},{"version":"e31898f7bf867637175ef1ba7af4a4d2e380ba3ab2eda0ccf6e1752d27e9724f","signature":"6ff95c75ffd5a17435d0ad7633ec5474520bcf5676966f07659401d577fb0f09"},{"version":"e9a802fbb7f1706a98a8ed4f6b8196bced25383b6078630a5003dc77cd746f46","signature":"3ecb4ed313cd7cf0583a500b22fc61673a03815df10078e35ac620cae116b422"},{"version":"a5aef4674b5f5c1c77e68fb9e94d98fc742c208cb3ec0e6154b143790079d0e1","signature":"3281b801c371d64e9162013cae64981dae22f8e15dd8c048dd51773aabf15835"},{"version":"67d02e3932bc31eea68b016e9087e4792bf9adc7069c5050f66f0d025ef1ac87","signature":"96814160c255893a4e7c5e0ad87312dc88d288e7ca0d6609ca94eefe0fc8b871"},{"version":"14c4dd0a56578dc569ef708da2d60ddbe00a009bc0760684d9cd36b04a296fc7","signature":"3763c07411d78b70fc66479a5a068acdd0ec4d62ee0eb76006f792ddb4092d03"},{"version":"eb8758e2e7e84b83d7208dd8ec94a76db4b603009f7fa58f1d917a2fade570a4","signature":"acaeab5c4273e255d64c8bc4216a4eec82f7c14357f0f48015f4e5a9d9e32154"},{"version":"19110f1633292d89b215c30fba37d05107c2d8eb601854e87102d09c0c512cd8","signature":"14cc966519b7de516392e1dc09103a0c035a1bb66f7333d1e07b5f49aa291c80"},{"version":"3fc95514c1e28f68edb00b0111f5cab93699fb461848354633f8a5bdc3741996","signature":"cb8bef0c225427e121bb2cfcbb1113342cf5c268b164d50f728befbff9836e5e"},{"version":"de38bd31fe43ec321979acdb778a133d5e24343454975af11a4b0efa351f129d","signature":"e290b53c028c6632ee17670939595ef8781072449d60ab7f07803573a7eb7e7d"},{"version":"bcc029f882c873c97fbd934e39ff6a3419f75389fa43535b966d85e05ff83776","signature":"c8b06ac86dbd025d371196fda0a07e7bc974e3e61dc86da7352ebedf12c72903"},{"version":"a5f79b21fb5338996b890ffcfb63d2487682578e9cdf399c3122b7a892e89b7f","signature":"48c8fa862beb2d400fe846b60c0565a10339f1f757f829362df2159c79c47d7d"},{"version":"5e5b0cd97555d52f343c703ac2d2d2a6dd968085e0714265022a9629833fc689","signature":"6d382e92d011ad80c913aea689789542ef63341f7f8ff065f155913c7ef5a5ca"},{"version":"7bb0ad74999af25b3b7aec0c667d38233670a8345742132b52c4463a34e76a56","signature":"b5e21ffebedbf58a741f7592b42c39618a358ebf9886c9763892e2cb59a9ed06"},{"version":"b85a0cb01250569d79f062eb0a99d934985cabe0204cb4a699be5619a33da582","signature":"e2cd21577b9d3e22ba8e9c49dd5798f2a77f22a28e1a91aef3662df6df00055f"},{"version":"57f7ac5864aa6652b4fadec52f8487de6f5d8122aa43398b2f90f986938a6d8e","signature":"5b7ac9316968b5d47c7c4d4c9d5a90a998cd58cefa8ee76f1eb2b2635da0627e"},{"version":"3f8b967c3ce68f6ad1bde6738634ff22702c692b25b98b9e7af9e3f9b48827d6","signature":"cc804693dc85bc2d792def79cf7bf8f2b267cfe9639596629672339178ae647a"},{"version":"ed2343923d63af3d302103fc443cfc49c10826e4790541886481a01867f8e644","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9e5d0da569f601820459b53d1c108ee663242027abd7d3e3aa90f8d184a16bfb","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0d47dfd36db43dacba9fccc5518b29744560a0229c1a2a0e0a37dcf64b2aa4f2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7190b91b4f375c16fb5fab207d0541a888b4bb0ef4f9f0db9d5299de4acfc677","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"22af236bfddaf599772f4cbf08dce5715d3deafc554a63b054d6d279e06483a8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"43811aa13f8aa3f73fd98a4b1a4be0221a5a51255af9cd3413835ed1141a507f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c42def0d66f7023830b0fbf8a623838819e717b30535e0979c6eef3062903bfd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e22dbd9ecaf46740aaee1c38c62dc564d4f11afac8678b7da52699d92faf97f0","signature":"e93a30d0906e5a966690a4f7c8bc2396bc026936a6b7ec8967634e122d9de2ed"},{"version":"7f64de642ee72b59a6a9b4dc34d6f09e5c50127e89c09572e4af8d9e9f61ab88","signature":"9f81eb8c702f57536e2c28a2218aa0d7c5b91d34af014c8e21d547ebe5910047"},{"version":"80a6504c9471e3e167d098e5e43587ae4f8baa3ab45217691906c23a5100fe6a","signature":"171ac7a5ac968a867bc45bdf1d2a22b6ac439975e6a527282f781ea9e48a557f"},{"version":"87e8d5c3d5230e9d6fb45d32b62232476161a88cfa8e245a7b4aae9b890e1bde","signature":"ee67b0ba3693552cdac404232006fb2762c84743485ae2d97e8a6a8386008b65"},{"version":"e1938eef67e26750354b40d1bbf3757e93df276cf8d8f6f98b945417b56aad6f","signature":"c4990a37ba435cd51d973d46f472270cc0d6ce14f057669eed0d37d82f6ebeb9"},{"version":"4bdb0088d3301483d0abfd31bcd6285cf2327459f00598e48e5abd07ed0622a7","signature":"36670175eb13a24e3ac77b3b35c827df2b49ebadd444c514c6770c9aea4d273c"},{"version":"1b1b5a8e4294ab3e6ef65ea36d8c3aedd703edd08ac9abf1921098ecc2b84500","signature":"ba45dbf73505aaa0e4c395347409e5f700c9270a9f819e87a6f1e5f836cbd125"},{"version":"6abe15afff7a90f5ad2262c7c6818bffec755eb663507fb1425009a317f46501","signature":"7293f2c216c444f17fdfead0c8d8f0ce5cafb17e423e4cd20aa14fc0f9c1331f"},{"version":"a95acd56df9729fa349bea0b3a3a315f6fcedd9fe7d37d78139f44a83ecf7d2d","signature":"b0b71a076a98a62f2dfa724f47240463779ab6a35bc127481d09b952dc5a6f54"},{"version":"4e3992754f08574ba86cfa47bd802d4d0b16d9412314fd50350cec3c7f2bbf44","signature":"ebe0fdc5ecb1e7a5b5a2db438ae60efaa7a0e081bed0067d1ec13b0d151d4706"},{"version":"79fca588f46ff3d42a75a0e912669538e913bc7f4ce22e134a5b878349e53a17","signature":"3f254ef33b679904197e32c552985e201c3089ce5d3e19aa6d36eeef3eed9be4"},{"version":"8626cc2da0a95386129ad98eb070c47b49cb0ae5ce69e77944c353cf8f6251ca","signature":"7287636b4ec92f4356413b5cd7054f9e84242922da1a869defedd515cef7ec2e"},{"version":"2c81f16953213258e8d9b5d891e51d070cc043f3b2dd4efa7f560cce1fe26395","signature":"f92be38f3065e43de5160439c169a1f7deabf3b05305d0ed78f83662077d5f50"},{"version":"3e49ba349fb3ffe92eb389015b5871a8b7b1c827c463ff143c3d440b3401b287","signature":"10a3913a4213492724aaef8e7af424e30517a4187550601ae4a044eb52579898"},{"version":"ef13d64287d67de11036fc28c949ee38fbe42d15259a7bb585d9baa6798d1a23","signature":"a517a3685704702d10320555599d7daa1fc2f1e96c97f530ef7365f80721eca4"},{"version":"0e252a30a76dd09c980b0f44815c778d8da7ec44cf739c9424fe08ab9919ba4c","signature":"290d2599a0fb6561fe10305f1bd9bb6b5bdf5985459dd033d4bf478c9bc53118"},{"version":"945cbeea4f66887ce6d79ea7ceb03bfe33475c53c4fa6941ad89967585106fc3","signature":"ad60caf4894a04d95e5c9ec0e1a77c70103ae71a8b2c0d88ed2acecbeb72a731"},{"version":"19ecdb6caf3e9e095c96b88c4f6c014a4142f354f63dc8317fc05f24b99c34f7","signature":"ccb6b5d19edbe4301b67f611f89ff2cc125a1b8078fb2f596883bd2f45744bb2"},{"version":"bbbcbb620b04f96da1d2aabd278d8d00b8c15efa8eb79fefa0abb417f05628ff","signature":"01d8e84411135a9857535b95892b19910c48e8aa068d0d60c03fecfaa271edba"},{"version":"3bf92346492da99a2bd37dd34972d411ddfe7462b437864f0a56e5d05fd405d5","signature":"1b6f32fbc3825ee99d8937ad416251847326059c36ea7739dbf1dd90a6c27742"},{"version":"985f64732e38a7eb5590b43936e317b1e35bfe45065ceb17582d55272a6f3418","signature":"d1febd000ef7c2413ff16da3c5aac7239b5a82f714ba9f677653badd47d085e7"},{"version":"6b4ffe9e9397b2f9fde85cfa5dee8fe5c9c9eb4c227fc381c70d36c8a97f856e","signature":"fc21186863296e5395f8cbb770d9d9092632fefb0478a4dd259146590611e1c9"},{"version":"e18cefe3c11d4c3ebec7f306e6712e7ecbd65c2abf0d6c6e8bd7e719a703e31e","signature":"2ca076ef63f1bf35e7ba917c92a269ef5c3b2b9e9891bda36bfe5cef71dd9a4a"},{"version":"4dc6fe19391994e22070aff996a35b9f0fb78749f34d1b0dd98dc9041d1b3882","signature":"b1588a39ed2d63b0417175c44208b92530d8e1d4bcf09f68cafabe673aaf33cd"},{"version":"e7c2f40dc99121500ad108a4f86541d29cac105ed018f994c7c5a2836e77b257","impliedFormat":1},{"version":"90e930283286ab117ab89f00589cf89ab5e9992bc57e79f303b36ee14649bdd9","impliedFormat":1},{"version":"6d48a6c907c668a6d6eda66acec4242e367c983e073100e35c1e234c424ad1a4","impliedFormat":1},{"version":"68a0e898d6c39160f1326ef922508914498c7a2d0b5a0d9222b7928d343214eb","impliedFormat":1},{"version":"69d96a8522b301a9e923ac4e42dd37fc942763740b183dffa3d51aca87f978d5","impliedFormat":1},{"version":"ff2fadad64868f1542a69edeadf5c5519e9c89e33bec267605298f8d172417c7","impliedFormat":1},{"version":"2866ae69517d6605a28d0c8d5dff4f15a0b876eeb8e5a1cbc51631d9c6793d3f","impliedFormat":1},{"version":"f8c4434aa8cbd4ede2a75cbc5532b6a12c9cac67c3095ed907e54f3f89d2e628","impliedFormat":1},{"version":"0b8adc0ae60a47acf65575952eee568b3d497f9975e3162f408052a99e65f488","impliedFormat":1},{"version":"ede9879d22f7ce68a8c99e455acab32fc45091c6eed9625549742b03e1f1ac1a","impliedFormat":1},{"version":"0e8c007c6e404da951c3d98a489ac0a3e9b6567648b997c03445ac69d7938c1c","impliedFormat":1},{"version":"f2a4866bed198a7c804b58ee39efe74c66ecdcf2dfebef0b9895d534a50790c4","impliedFormat":1},{"version":"ad72538d0c5e417ee6621e1b54691c274bcacaa1807c9895c5fa6d40b45fb631","impliedFormat":1},{"version":"4f851c59f3112702f6178e76204f839e3156daa98b5b7d7e3fc407a6c5764118","impliedFormat":1},{"version":"57511f723968d2f41dd2d55b9fbc5d0f3107af4e4227db0fb357c904bd34e690","impliedFormat":1},{"version":"9585df69c074d82dda33eadd6e5dccd164659f59b09bd5a0d25874770cf6042d","impliedFormat":1},{"version":"f6f6ce3e3718c2e7592e09d91c43b44318d47bca8ee353426252c694127f2dcb","impliedFormat":1},{"version":"4f70076586b8e194ef3d1b9679d626a9a61d449ba7e91dfc73cbe3904b538aa0","impliedFormat":1},{"version":"6d5838c172ff503ef37765b86019b80e3abe370105b2e1c4510d6098b0e84414","impliedFormat":1},{"version":"1876dac2baa902e2b7ebed5e03b95f338192dc03a6e4b0731733d675ba4048f3","impliedFormat":1},{"version":"8086407dd2a53ce700125037abf419bddcce43c14b3cf5ea3ac1ebded5cad011","impliedFormat":1},{"version":"c2501eb4c4e05c2d4de551a4bace9c28d06a0d89b228443f69eb3d7f9049fbd6","impliedFormat":1},{"version":"1829f790849d54ea3d736c61fdefd3237bede9c5784f4c15dfdafb7e0a9b8f63","impliedFormat":1},{"version":"5392feeda1bf0a1cc755f7339ea486b7a4d0d019774da8057ddc85347359ed63","impliedFormat":1},{"version":"c998117afca3af8432598c7e8d530d8376d0ca4871a34137db8caa1e94d94818","impliedFormat":1},{"version":"4e465f7e9a161a5a5248a18af79dbfbf06e8e1255bfdc8f63ab15475a2ba48bd","impliedFormat":1},{"version":"e0353c5070349846fe9835d782a8ce338d6d4172c603d14a6b364d6354957a4e","impliedFormat":1},{"version":"323133630008263f857a6d8350e36fb7f6e8d221ec0a425b075c20290570c020","impliedFormat":1},{"version":"c04e691d64b97e264ca4d000c287a53f2a75527556962cdbe3e8e2b301dac906","impliedFormat":1},{"version":"3733dba5107de9152f98da9bcb21bf6c91ac385f3b22f30ed08d0dc5e74c966f","impliedFormat":1},{"version":"d3ec922ddd9677696ee0552f10e95c4e59f85bb8c93fd76cd41b2dd93988ff39","impliedFormat":1},{"version":"0492c0d35e05c0fdd638980e02f3a7cdec18b311959fc730d85ed7e1d4ff38a7","impliedFormat":1},{"version":"c7122ba860d3497fa04a112d424ee88b50c482360042972bcf0917c5b82f4484","impliedFormat":1},{"version":"838f52090a0d39dce3c42e0ccb0db8db250c712c1fa2cd36799910c8f8a7f7bf","impliedFormat":1},{"version":"116ec624095373939de9edb03619916226f5e5b6e93cd761c4bda4efecb104fc","impliedFormat":1},{"version":"8e6b8259bfd8c8c3d6ed79349b7f2f69476d255aede2cd6c0acb0869ad8c6fdd","impliedFormat":1},{"version":"7c6ff50614e5dec942268087f8f69c50b5f7d220928c23138923251968c8bc79","signature":"7cf05f47e7c97997fff05a32dd3738fe79c7986b2a79c005b97014e772406201"},{"version":"3fbfb8de631356231f38b847349da8cf648b5d50fa2a514eca8b1f88e91c1cfe","signature":"4d29744393ccafb8ea9a2a6199d77f3b76b627c3dcee69a2ed5bc45dfe5299be"},{"version":"943155e04253a2cb4d9e5c1504f9c69152ca4cd443248d2a85c2df8b71f46747","signature":"d5a09402a8ccc1e017c286fcd88bbf90668bfa9bc89615c0644ec61c3ac7ed85"},{"version":"1a9bb0c79683ecd9030eb20a815a213d4cbcf7bd779999c44df9496e5ada1a61","signature":"841ac10f7b2bf27c8d3ece69ddf97cf22a0669596b5e17f834983f7d64605e9b"},{"version":"67c86eef1b7596358c7f02c98a32a77ac8c870a9ab90152d02cb7ce1b1cec897","signature":"bb182bc1f25cf6382cb0cb59b58a3766cf7fe93b7dce16ae0d876cbca2611c26"},{"version":"10f048b953b26a7fd27f6ebffd9471bb850aac252a86363e84d3b8be7d640648","signature":"1f70c6ae233f3162bf1fb0606bba3e3687c2c1e75dab6c7cbeb07e392302ce1c"},{"version":"32542018400a28c79bf93ebb47a6a19620fff4bfb541cd8cd4e298228672df6e","signature":"ed7eacf5b7ae5ef975ea96d83027ab2ad4df18141946f1a83fc432305e50087d"},{"version":"08dac648cb10336ed17238999aea772dd2d2306fd9f1c0b8e355140e771f4be0","signature":"27776a29c753b5423e30b63c99248c85097222e33cafbe545c935b8243275432"},{"version":"c6add587d7696f9ab24e01a5bcd19813110b1fd4c1b75ace45b82472a1169728","signature":"a03e8494db132a6e2ba0efa8ecc969f59a09947e659b9b4b97b60e28519a6999"},{"version":"90a6c01792b82b956a5418e0ea0163fe8777d10c0082f59954c87576f9fbb09d","signature":"a8cdf600291ed7e8a02d591f1df1ff436979ce873be50983716803bfb1be9b89"},{"version":"63d61cb4bfbc2cc21a71a794962eccbff198d8d3d7da203e1a3ed8874344ec3b","signature":"5bcff755193750b63d42bf474eeb2bfe229624cdf17e105eda7592e4d9e4fa13"},{"version":"2de22d7aa7b483de943f6bdc921deca6511b9882b332d9e61e92cddfff08d99d","signature":"2f76dab27160340d0004ad717b35b3b32921bdf2dc6481388d908d81ff699808"},{"version":"27395f516c04921b42dbaf81c1a24925621c15c0807cb8f803b18d84c10d5e2b","signature":"6e32be68053fc3dfae0bad6ff42992b562dd65b6932e73433db2d7205474bd8b"},{"version":"faca7519f9b03d2fa144bdecd84b1a5cf05f204c63cd49ab839b7a78a404cb95","signature":"29504d8eaa0dbf53fedf7ba96cd08e76f57cf6f24580eb89bce72232bca3ecfc"},{"version":"653ae370752d34e376c85ea9d63f796e68f2272d8db60b78dde8a79afa78a6a7","signature":"6a9437bbf8750a5893ff5b990448b7e168f5d282acd489d7a63a3b9c71b92e49"},{"version":"08f43df81632e93a633076befc64b742c5a85539a80772e7ed19260163b5a402","signature":"43453051aba5de926c7b002300dbfe0a7923ac1e09ed5a85c94b982dde86b015"},{"version":"eee486e31a83047798e444d50b3f853c5e2f1ebbf8f33f10f3efafaffc57299f","signature":"3e0416bbe037c5dc7cd944efe92a061f6df236a970204cd751d0db8339f81fcc"},{"version":"a905a038651da20d29f2aafaac166fcd6f72aee8a02fe62bdbee27b5f242704c","signature":"535ceadcaea40ebfbd2329db32300ecbbe1e7dd4e2fd8c341c6e8187b6bb46c9"},{"version":"2123bc3f16d98408047cfd748e3c060ecdbe6662e6b6202ed9a0c88b91a6bf29","signature":"81d80fc840f9c26896b12640d263a2979cf3c8f7a8e7c33b7d182acc0fc4a048"},{"version":"ac6a7706dcd058db65e4b501af128f70d5eb1eca03cca82eeb4f392b523d3316","signature":"0b2946ff434f39f569abbfec27a7fea4991d416ffa887aa7371fa9d1c9218ea8"},{"version":"bf50c9f0b8e85763eb46e4f634ad5143871f8fd9fa469933184a1c17f007a780","signature":"82e0d3c58b57ca1047e3f2489119a90324c6bee328a3905a6f873c2d9f273022"},{"version":"54d9bd90e2d956fe45d2e10bc3d42bd47df0a666d595397fdf169eed8ff948b0","signature":"3fd1894df5a677496ebb5c16d0a94ab47de3984b102f0d9c3f9214feb8ae18e1"},{"version":"e85dbf83386906dd6203d4a75146903eb717c303f0c59390373cf865ddcfb680","signature":"7c317a7ac43ec30976f927b2df07ce270e566c5bcf7c8eb2a58e3ad27c0e88ca"},{"version":"50bb7173083d088adb8d99e5b1d6e0044940f0b9ebca93bc6ff57975858de9c6","signature":"ae31b97bfe52e5065a8d9326be71afded4db03182425c3dbd1039fd6dfe72736"},{"version":"55d50157bfc60dfbae9b901650d72466e61b8186879cb44caded05b6653845a4","signature":"13671d6cac29a8d3985ec254ef779a86a843292055d1d2ad6c6d98c47bd2abe8"},{"version":"d81460a94f077d8c594c7bb6f43670292aa47c0fedbd9257651c76f18384668f","signature":"07a1b27b347aa3a42320481229df8704b8f207a5d0790daefbf46f651b296c25"},{"version":"39e0abc57f232edc838bdbd70a340da2651bf9ca22f382247c9f5b8b194cb812","signature":"c04901594655634ee5234b84e21419e4bdb8bb5042058a8cbb155d38582ef603"},{"version":"bd863b3c134db67223c372e3ae383517e78813d5cc57f403d01a2c8c3384cf2e","signature":"d4a3bc4321715da90ee5723baa8e7afe1d5191bc83b33ed81dea430d2b2ef023"},{"version":"d66e444618574fbb1a7be9bdd576a9f366d0c7d6daea68ca6adb2e64ce7e7ed4","signature":"5d83c1b25e99488776c8d315daa88c46a6441b9115af74e29d28d7d5b480fef7"},{"version":"1398a1695b2a07cad6d516366c7cd7d114175763c196163fea2f6c6561564ed8","signature":"a3d00392eb1913f50c7c2fe746c88cc9a73c31bc32e4793918ce34e4a10cb81f"},{"version":"591903890438503ea618c1a3c2f1cdd7c58c259aad9fd378feca4bf4ef6a1dfb","signature":"9aeb8c284f3e02b12c56b74763ed2d1ac22e9b0360f001cf5e0cdaadb5758780"},{"version":"4be7444d3551cc94e6d8dfcd7383fbace9e228e49ba6aabb077b7d229f0b47d3","signature":"3e96c75b959258c4917f369d2fe08bdd50cc99a8fc9a3d395214867a50cbe691"},{"version":"6428f20c0948200ce573def0705ef093e3e56c2f7586bec4d29b2b01d36874e2","signature":"387dfee22b849006c4db6e3c24c3e7f6c0ba9e3d3d227a5ed46b0e555ae59ecf"},{"version":"ad7df4749b92896d8e759e466e8db808c88bfd4f76221367d5ef56fe1b24168f","signature":"79428153f57790d4fd6337d15c13133e245673712eb671312edd2668c35f5ee7"},{"version":"b52abe688e108ad9fab9560739109e19e6e51e366e8b399e9920078580605030","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"65d65d332caf0f2dd06b168a9eb95d60b6f763f2372fe78378823a34b54605db","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d56e959076cf8cb2ca48490c7d0643d74cd257a700c28a25aec1209820951001","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"63096bdd94ec9aa2d78c55c5555061449ac779a04dd04f93f3aa569fae090bbe","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5d64652f6feb7297ba117159a136a222d0284c36e701a93a8f084020451bd611","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2cb6f03f759fba58d6c7fcb7f678ea227ac87aa892b8a6c7921282b151ce0dd5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9fb1660e07381384085682bdfb2c135597e9de8cfed1f102f1bd8897ac534076","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"120565597209a07683d5f7ad7a0503ab5cdcd3c237d92446574a77d3711444c8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"42c6d1a3e2f496d1b035f3fc35720b3e4a389330c82071bf05159bc3e61e7c4b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"802c813ad31f48d57010669185b74654f3cde92650c8892401b7359387691d13","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3492ecdca33c20eb0f4dd6527bd1c28a5074b6e6706cc41bf10622a6ec4b4912","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9b3805cd540bcf067f5d36a08ef4f34c0fe3ccb9261dc1562ed46d0bc68997d6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"908dc13d7ca26a9a83459288a203feb2cb54e012ca492d251cdfdb7a74bfe62e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"890e9a8a8c8b5dece8429daa458c11f28b75ae878ccd0f079becdd78e7a3708c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e097d4759075002da607c85abb9511c759daf1bc7146ccd0e0750b174a92f9ff","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f654f8eeeb145dae3e05f4e8f515fdaeb4794aee8e52dae9c5a4cb9042a84226","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a4b0c33fd70e38e904869c0f2df8afc6e5fa21cf60ae5035fa9b477e9f50dac2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1b2901ff87fff90e5b6b33f93f1c8599da56512153ef4496236a1de06f847a5f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2a3d8cd0ba12e9d42bffd49f419a9e88cccda9c2dc809211a8f4fcfc09787d20","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7ddbddf826b3628fcf57f332bed85885870249fe217498739e33e7e00b7e7c4f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fbd6d1d55bf70b8c7cf8f0422fdf77fe463779db3424de826032e8825f8f2395","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1bf8f0ec4333800b299a28eac0f92b3f6504d930aee00e488744541ebd226755","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4f08b57e079b9b6c31a9e5252b0d9d283e98330cae1efcc4b745af1976166a38","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f8e5ae340e020d33ba1e2f5527dd37d0d0db1e956eaeda09ba487a3b26e2b4d6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8e5c4bd18b141528dece7df10b165707b3577aa50d2a4d4d7f17eabab2eb97be","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1d32fea095fb2b0c696e8ca618e6a095fe6b1ea019a0ea8a4f05cd9463a6cbbf","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5f94de76d52733dea5529910191f18f0a2a4a815a38a6a081a97790756ea02a6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"894177a8c094d70e93579076d72d0a7fd6f531be1abb6fbd045ecd5afdc0e3b7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9a7153d9a0b2d3f1644286df8e703a1479ea2c6aa4013dea265268d2ed80f830","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2d7f258ea64843f99848a2793c30180710f74a47f1e9348c90c0501b3d78a56c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7b1872aa4ccfa359c601baae478ceb3028f814036dc4824432fa9362866f213b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"04225cb34b34d1aeba0c25484dee5309679c7193abc68ce8e3c0343e9ccb2736","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6d25713e3edd611136bd00d59288705a73b9496f67f132b247037c21c989bb5c","signature":"16042a99b794bfa242da7521c6914b5df3b91d9f035553a71e3a2e966bbd9e6f"},{"version":"3f3b2a750113281706e4aaf6b78d9db8021c86896fd746074b9609c31b2f1aa8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"23f03dd62dd68c38b17a8b28a3177d21f15cf8a52b1961822fcb8cca628cd215","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a3dd7172db966e29dbda5a63d63195dad0dddef033c1b75935712059a6395c12","impliedFormat":1},{"version":"27c79103b3eddd641481f5e04e766adfaa52c6252e5e9fad369a808890291186","impliedFormat":1},{"version":"c32bcfd472e509a021990489cb750319a849c85932f562e3bcc9d72a8f5ad4ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6734360612842d142d88e5d182ffcb65f4f8c87417d7e60d154a1c65527d7719","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cda9f6b56363107b5a8ea903cd90c753d8695f59fc1ed5aeace545f5a61951ba","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dd260174b643879042913bff92cdf2315c7fd05de3682b4b971a4a74e95b2c46","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"92a565721f964270b7269d65f2412a13b8d6c59780aed20892f00995942b2c96","signature":"5337816863c0f0bf7fd06bc8c95c61381c472d7bbeeb93f0863372272d9c7a0f"},{"version":"766ed7ae50fe6a461a84a77b857cecfce95f1ca6508b3d32f9c292cf1a50dbc1","signature":"6857eba85f9267ab3b2c5e7bc04692e163408e64c98fa7c035be0c337293c248"},{"version":"578d29c3cdfd9df4f4b6e113fc2db261f5c34d82d913dd12c96e970026569225","signature":"c365be5a24336197e875f20e73c23cfabb4a522b7b6cceb5fe2a395d17615ef5"},{"version":"1a64700f3de1dc283554f9d7a42d267c4b287666914e18db1794d8e9d5ef8e85","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a5b93c2324cb70bc3fe3bc97b147286fa7d4b3a6ea43571f90cc8c8381670505","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"51aa79b6f8c60d9d9e05bb39088ca5ebb13c4c0b5ca1d92486f0a9ed2018ba3c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"352175aa307c3873ecd2e5ce50b166afa83781fd89983457ccef983bb7d5e0d9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"22c72e43bbf55695779c6e69ec96503fa2dfaec2c6db31efc8e812abf4dc9606","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0bb6a36cc7cf2474d2c378c4ec66c891e8c34f5b68ea1173611ec0346a5b2d99","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e62cc8dc7ed6c75139993da3014d4119645617e9610979b5bf8826121db4678a","signature":"5a4bb46daa590e8b617d84286f738dc02ddc607233ce59d96dc5bb3a67209f11"},{"version":"acc6d6b9c647d412e3fef709d71be6c0c3c2df25d4b64ee4e4a124f240268dac","signature":"e56edd55090011df7d4fdd3298001e7f9e0ed8de6deafed49c1a51a102b10d8b"},{"version":"8c0d3c01bf1f459feb2cbcd4e84ef55de085100e4ff6e28b52bf324b05e34ab0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a3c40d8d67a97c248ac283d5cf0580d86a1f63b7b1eecc9d2d16b52ebd9a15cd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"df44bc17fc7ac1395656df5488dc363ff71806f540bc6317d272e156a850151b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"59f27254779935c5af7674c57e59424c3b12d1e333bac856371085bf93c61df2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fdbfe86229806e56fd2eb2aead03a3e95d41b0fcf9043636c4de193baa4f7fdc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e57d01eeb01f5e6b4511e46ecf82f17b01e8739e1c34401c3f9d02122e24c117","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"f3eba770c1bd12249a3b5c1129f5fb959b710032257e4716e247ab71bf919f33",{"version":"2514dceb2e759f4ae71cd71b99cd0aba597d086f98ee55a658e5086bcaea9a0b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f329dfad7970297cbf07ddc8fce2ad4a24e2a3855917c661922ef86eb24dd1f1","impliedFormat":1},{"version":"480f05e466e86ee6c80af99695d90079f9e2956a4986e930ebd3d578688ff05c","impliedFormat":1},{"version":"9a168900934cfc03d30f0cca9646828912a1b85674956523e2f4cc6602d6058b","signature":"139bc5201ee0eab307b45f2306f14c891b61429d1985ae2f0cf86cb53c094043"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"3255b97f3f24af29c79cc1aa88004efb13b6285ebdde0a567bf32e19bb65250d","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"52844bb4893076de3d60e804334a824bcde07147640e8bd5cf67f0e2cb734ad5","signature":"6af4de77a13a46b7cf848e304c50e5da0dfac628cf008bb261810887682c677a"},{"version":"9fc6a32ad9f1e7a9732faf4e63cc6d7a125fa7b93864f5718c06f24ffd643086","signature":"816bec54b98a990e8cc5a4aa99624cff4b38aa4c9b855ece91a8db8a170cf8f6"},{"version":"4fd779ef69ebc372ee3b0039325a5f98e86af6f07fe14443847c5a88c11e0a20","signature":"f366dfc37144cd2c474685914e0545069bd795eab807442ff0b3c0e12241a00c"},{"version":"8e0d8d0d991a29b8fa96cf9ce95c87b57d4e4774721e08264451796dc69754a9","signature":"26ba71f79eb1ccc526399c703ceb9595712a793b7d939584ca92df4a3ce4fea8"},{"version":"da0f84fcd93700b4a5fbf9c6f166a6cc19fc798231bff56dd1e3875bfc6966eb","impliedFormat":1},{"version":"634ff08e0143bec98401c737de7bfc6883bfec09200bd3806d2a4cfc79c62aaa","impliedFormat":1},{"version":"90a86863e3a57143c50fec5129d844ec12cef8fe44d120e56650ed51a6ce9867","impliedFormat":1},{"version":"472c0a98c5de98b8f5206132c941b052f5cc1ae78860cb8712ac4f1ebf4550ca","impliedFormat":1},{"version":"538c4903ef9f8df7d84c6cf2e065d589a2532d152fa44105c7093a606393b814","impliedFormat":1},{"version":"cfcb6acbb793a78b20899e6537c010bfbbf939c77471abcdc2a41faf9682ca1a","impliedFormat":1},{"version":"a7798e86de8e76844f774f8e0e338149893789cdc08970381f0ae78c86e8667f","impliedFormat":1},{"version":"eebc21bb922816f92302a1f9dcefc938e74d4af8c0a111b2a52519d7e25d4868","impliedFormat":1},{"version":"6b359d3c3138a9f4d3a9c9a8fda24be6fd15bd789e692252b53e68ce99db8edc","impliedFormat":1},{"version":"9488b648a6a4146b26c0fd4e85984f617056293092a89861f5259a69be16ca5c","impliedFormat":1},{"version":"e156513655462b5811a8f980e32ccd204c19042f8c9756430fe4e8d6f7c1326e","impliedFormat":1},{"version":"5679b694d138b8c4b3d56c9b1210f903c6b0ca2b5e7f1682a2dd41a6c955f094","impliedFormat":1},{"version":"ca8da035b76fb0136d2c1390dda650b7979202dbe0f5dc7eaefcde1c76dee4f4","impliedFormat":1},{"version":"4b1022a607444684abeee6537e4cace97263d1ef047c31b012c41fdc15838a79","impliedFormat":1},{"version":"dd0271250f1e4314e52d7e0da9f3b25a708827f8a43ceff847a2a5e3fd3283e8","affectsGlobalScope":true,"impliedFormat":1},{"version":"47971d8a8639a2a2dd684091c6e7660ec5909fed540c4479ca24e22ac237194e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e1075312b07671ef1cbf46409a0fa2eb2b90bb59c6215c94f0e530113013eeda","impliedFormat":1},{"version":"1bfd63c3f3749c5dc925bb0c05f229f9a376b8d3f8173d0e01901c08202caf6f","impliedFormat":1},{"version":"da850b4fdbabdd528f8b9c2784c5ba3b3bedc4e2e1e34dcd08b6407f9ec61a25","impliedFormat":1},{"version":"e61c918bb5f4a39b795a06e22bc4d44befcefd22f6a5c8a732c9ed0b565a6128","impliedFormat":1},{"version":"ee56351989b0e6f31fd35c9048e222146ced0aac68c64ce2e034f7c881327d6d","impliedFormat":1},{"version":"f58b2f1c8f4bcf519377d39f9555631b6507977ad2f4d8b73ac04622716dc925","impliedFormat":1},{"version":"4c805d3d1228c73877e7550afd8b881d89d9bc0c6b73c88940cffcdd2931b1f6","impliedFormat":1},{"version":"4aa74b4bc57c535815ae004550c59a953c8f8c3c61418ac47a7dcfefba76d1ba","impliedFormat":1},{"version":"78b17ceb133d95df989a1e073891259b54c968f71f416cd76185308af4f9a185","impliedFormat":1},{"version":"d76e5d04d111581b97e0aa35de3063022d20d572f22f388d3846a73f6ce0b788","impliedFormat":1},{"version":"0a53bb48eba6e9f5a56e3b85529fbbe786d96e84871579d10593d4f3ae0f9dba","impliedFormat":1},{"version":"d34fb8b0a66f0a406c7ce63a36f16dda7ff4500b11b0bd30a491aa0d59336d1f","impliedFormat":1},{"version":"282b31893b18a06114e5173f775dd085597ca220d183b8bd474d21846c048334","impliedFormat":1},{"version":"ed27d5ce258f069acf0036471d1fbb56b4cb3c16d7401b52a51297eca651db62","impliedFormat":1},{"version":"ec203a515afd88589bf1d384535024f5b90ebe6b5c416fb3dcca0abd428a8ba4","impliedFormat":1},{"version":"32a2a1374b57f0744d284ca93b477bd97825922513a24dfe262cbf3497377d96","impliedFormat":1},{"version":"a8b60d24dc1eb26c0e987f9461c893744339a7f48e4496f8077f258a644cffab","impliedFormat":1},{"version":"3f9df27a77a23d69088e369b42af5f95bcb3e605e6b5c2395f0bfcd82045e051","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fd080a9458c6d6f3eb6d4e2b12a3ec498d7d219863e9dca0646bdee9acce875","impliedFormat":1},{"version":"e5d31928bee2ba0e72aeb858881891f8948326e4f91823028d0aea5c6f9e7564","affectsGlobalScope":true,"impliedFormat":1},{"version":"9a9ba9f6fd097bb2f57d68da8a39403bbe4dc818b8ccd155a780e4e23fa556f2","impliedFormat":1},{"version":"e50c4cd1f5cbce3e74c19a5bbf503c460e6ae86597e6d648a98c7f6c90b596dd","impliedFormat":1},{"version":"fa140f881e20591ce163039a7968b54c5e51c11228708b4f9147473d06471cf5","affectsGlobalScope":true,"impliedFormat":1},{"version":"295eca0c47be1191690fd2fe588195fff9d4dc43852aceb8b4cab2aa634579f0","impliedFormat":1},{"version":"59ee7346e19b0050508a592702871dc943083c6dcb69a47d52e888115d840781","impliedFormat":1},{"version":"067712491fb2094c212c733dd8e2d56e74c309a9ce9dac9e919286b7245a1eb4","impliedFormat":1},{"version":"a5eae58ac55bd30c42359e4b01fb2be5eddac336869d3f04ffb4daa54b58f009","impliedFormat":1},{"version":"d12d691ef8933e8db39f2ca81d6973940ff5e37bb421752f5b6e7bc15dea3abf","impliedFormat":1},{"version":"4c5f8bd9b3a1aae4e4fddfee41667e495a045f73ed603993038fa6a8ba92fa14","impliedFormat":1},{"version":"dfb274ab0f319cf18ce7152067c25f984c7fd1924fc72b3f66734588444c934a","impliedFormat":1},{"version":"108c8c05cbc3fbbbd4ff4fc0779c9bef55655c28528eb0f77829795dc9f0b484","impliedFormat":1},{"version":"a7e5444d24cdec45f113f4fb8a687e1c83a5d30c55d2da19a04be71108ad77bd","impliedFormat":1},{"version":"41ec17e218b7358fcff25c719bc419fec8ec98f13e561b9a33b07392d4fec24c","impliedFormat":1},{"version":"23c204326746e981e02d7f0a15ab6f8015f9035998cb3766c9ddbf8ea247aea2","impliedFormat":1},{"version":"25f994b5d76ce6a3186a3319555bbba79706dac2174019915c39ac6080e98c7e","impliedFormat":1},{"version":"dfa4e2c6a612d43851ccbc499598cb006a3a78bc8c7f972c52078f862fa84e47","impliedFormat":1},{"version":"02c1705fa902f172be6e9020d74bcd92ce5db8d2ef3e1b03aabc2ac8eb46c3db","impliedFormat":1},{"version":"99d2d8a0c7bb3dd77459552269a7b5865fa912cedab69db686d40d2586b551f7","impliedFormat":1},{"version":"b47abe58626d76d258472b1d5f76752dd29efe681545f32698db84e7f83517df","impliedFormat":1},{"version":"3a99bbbbbf42e45c3d203e7c74f1319b79f9821c5e5f3cdd03249184d3e003ce","impliedFormat":1},{"version":"aaacc0e12ab4de27bdf131f666e315d8e60abec26c7f87501e0a7806fc824ae6","impliedFormat":1},{"version":"3b4195afd41a9215afc7be0820f8083f6bd2e85e5e0b45bb0061fb041944711e","impliedFormat":1},{"version":"108df8095f5e25d7189dd0d1433ac2df75ec40c779d8faf7d2670f1485beb643","impliedFormat":1},{"version":"ddd3c1d3c9ff67140191a3cf49b09875e20f28f2fc5535ae5ea16e14293a989b","impliedFormat":1},{"version":"7b496e53d5f7e1737adcb5610516476ee055bf547918797348f245c68e7418fe","impliedFormat":1},{"version":"577f44389d7faedd7fc9c0330caf73140e5d0d5f6c968210bff78be569f398a7","impliedFormat":1},{"version":"3046c57724587a59bceefadd30040d418e9df81b9f3cfd680618a3511302ed7a","impliedFormat":1},{"version":"15ccc911ed15397e838471bfe6d476c28deffe976c05cb057e6b1ea7491242c2","impliedFormat":1},{"version":"64b5a5ebdaead77a9a564aa938f4fb7a45e27cda7441d3bee8c9de8a4df5a04f","impliedFormat":1},{"version":"a48037f7af5f80df8973db5e562e17566407541de284b8dadf1879ea3aed8a2f","impliedFormat":1},{"version":"dab97d96ce986857150db03f0d435b44c060d126b4a387c7807f4e9f6c92e531","impliedFormat":1},{"version":"85f39366ea7bc5e34b596fc97de18a7e377856755e789d8e931054f2191d9b8b","impliedFormat":1},{"version":"daf3ea3d49f6e8a2fa70b7ca1f21bd97f1b65021b31fbfccb73dd55f86abb792","impliedFormat":1},{"version":"b15bd260805f9dd06cd4b2b741057209994823942c5696fd835e8a04fb4aab6b","impliedFormat":1},{"version":"6635a824edf99ed52dbd3502d5bce35990c3ed5e2ec5cef88229df8ac0c52b06","impliedFormat":1},{"version":"d6577effa37aae713c34363b7cc4c84851cbabe399882c60e2b70bcbb02bfa01","impliedFormat":1},{"version":"8eaf80ad438890fe5880c39a7bbf2c998ce7d29d4c14dd56d82db63bd871eefb","impliedFormat":1},{"version":"9b3e7f776f312c76ac67e1060e5398d7ac2c69d6a3a928a9daaae2eb05b15f56","impliedFormat":1},{"version":"202042eccb4789b7dee51ba9ecab0b854834ea5c1d6a3946504bfc733d4468c3","impliedFormat":1},{"version":"2b2ef76a9f36094b07ee6f76a5ac6903f2f65c0a20283201814a8d1e752cb592","impliedFormat":1},{"version":"8882e4e087d0bc8cc713cb3d8090c45d33e373e6f5c83e0f8d00fe6a950ef875","impliedFormat":1},{"version":"475b16f753072474f55cdc6f098a16d991a93889105cd22dce39edf7196bc80a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d7621f9d34c9e2015c5f931f8a510883372e35f887b8d0d57268674659e596fd","signature":"ef38fc7498f6f123b36fcb4a4c22f9df96c764ea263417be343d43376416ff73"},{"version":"6784072646af39bc77563f54ef8483dce56d5615c16c59a16781abff3975a28b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4c54300bb2670678e16cb98079486f3f2bfa061dd1b954e7e4a8999959420507","impliedFormat":1},{"version":"15435bee177deaf5308c7411815ce893d6b7957842497d6ac4e4f9ab69cbb383","signature":"0ddefb7933ac08ab5f9d79397840c6eb8cd82df94f082abc8fc278dee0c2a76a"},{"version":"5ce67a61beec5c928cca19648c12f90f18877b03414b5ae8bd959f145251e6a4","signature":"4ae06473ed42f57047235e325e50a387c4cec4046b95c97cd84ba44cb6a5f717"},{"version":"c833c384413d801a67d6e4cdafbeec35bbe8b689c3ee3fbd5329725e5a8ec81d","signature":"3f79b5fe85423370cba4c2e223cca910fa7ec5fc871c7caf656cb1d6a6e27147"},{"version":"2f07a9b2f470a12d2ce8d89c92e4360a2d0e4bd781eb5f88269ccff1b47f4773","signature":"ebf743338eff8b9ea9f1d5a9ae5de9d3977ffbcaaeb880970bdab20df623f2b9"},"c21351905a95a175f1a37cc3466c25aaac28414ead88b9f0ac69cdb9546b45c7","942d56543dbb3bed1eb24b7e7777769ec18e4c87a0fe941c76912eef090027ca",{"version":"088bb47b98092b56b9de5a0f87ae7d9fb0c6bdc0812613e9430105d9875f0d4a","signature":"66f3144ccf55a7e9e2256ea19c04ec4bcad0d570c0bea38809ac6cb1ec23f99d"},"c8ddbeea443ed40bdb07156d3d2eaac3d1fc95964718d31aa3cd3880141cf3f9",{"version":"655f17ea3d395503ed347c68ca3b9acaa48f236d27d9513dbc2a920f3553edf7","signature":"7b838a875b7fe37236b8e6f5197d59c5b0c9ecc4e21bfe740058eae66e2d68a3"},{"version":"91c0340ee1a81f8cd5121598feff913dab9c41dbe2c5da9c0ac69443bd130703","signature":"e43997983fe37296a83321eb7d384f25f1e3d2069737944caa6ab1e3a5f029ee"},{"version":"dd332252bb45677533cd5553e0c35340cee4c485c90c63360f8e653901286a4f","impliedFormat":1},{"version":"dddde95f3dea44dc49c9095a861298e829122a54a3f56b3b815e615501e2ed16","impliedFormat":1},{"version":"794a88237c94d74302df12ebb02f521cf5389a5bf046a3fdbdd3afb21dc02511","impliedFormat":1},{"version":"66a08d30c55a7aefa847c1f5958924a3ef9bea6cd1c962a8ff1b2548f66a6ce0","impliedFormat":1},{"version":"0790ae78f92ab08c9d7e66b59733a185a9681be5d0dc90bd20ab5d84e54dcb86","impliedFormat":1},{"version":"1046cd42ec19e4fd038c803b4fc1aff31e51e6e48a6b8237a0240a11c1c27792","impliedFormat":1},{"version":"8f93c7e1084de38a142085c7f664b0eb463428601308fb51c68b25cb687e0887","impliedFormat":1},{"version":"83f69c968d32101f8690845f47bcae016cbea049e222a5946889eb3ae37e7582","impliedFormat":1},{"version":"59c3f3ed18de1c7f5927e0eafcdc0e545db88bfae4168695a89e38a85943a86d","impliedFormat":1},{"version":"32e6c27fd3ef2b1ddbf2bf833b2962d282eb07d9d9d3831ca7f4ff63937268e1","impliedFormat":1},{"version":"406ebb72aa8fdd9227bfce7a1b3e390e2c15b27f5da37ea9e3ed19c7fb78d298","impliedFormat":1},{"version":"197109f63a34b5f9379b2d7ba82fc091659d6878db859bd428ea64740cb06669","impliedFormat":1},{"version":"059871a743c0ca4ae511cbd1e356548b4f12e82bc805ab2e1197e15b5588d1c4","impliedFormat":1},{"version":"8ccefe3940a2fcb6fef502cdbc7417bb92a19620a848f81abc6caa146ab963e9","impliedFormat":1},{"version":"44d8ec73d503ae1cb1fd7c64252ffa700243b1b2cc0afe0674cd52fe37104d60","impliedFormat":1},{"version":"67ea5a827a2de267847bb6f1071a56431aa58a4c28f8af9b60d27d5dc87b7289","impliedFormat":1},{"version":"e33bb784508856827448a22947f2cac69e19bc6e9d6ef1c4f42295f7bd4ce293","impliedFormat":1},{"version":"383bb09bfeb8c6ef424c7fbce69ec7dc59b904446f8cfec838b045f0143ce917","impliedFormat":1},{"version":"83508492e3fc5977bc73e63541e92c5a137db076aafc59dcf63e9c6ad34061c7","impliedFormat":1},{"version":"ef064b9a331b7fc9fe0b368499c52623fb85d37d8972d5758edc26064189d14d","impliedFormat":1},{"version":"d64457d06ab06ad5e5f693123ee2f17594f00e6d5481517058569deac326fea0","impliedFormat":1},{"version":"e92ea29d716c5fe1977a34e447866d5cfbd94b3f648e3b9c550603fdae0e94fb","impliedFormat":1},{"version":"3d10f47c6b1e9225c68c140235657a0cdd4fc590c18faf87dcd003fd4e22c67f","impliedFormat":1},{"version":"13989f79ff8749a8756cac50f762f87f153e3fb1c35768cc6df15968ec1adb1a","impliedFormat":1},{"version":"e014c2f91e94855a52dd9fc88867ee641a7d795cfe37e6045840ecf93dab2e6b","impliedFormat":1},{"version":"74b9f867d1cc9f4e6122f81b59c77cbd6ff39f482fb16cffdc96e4cda1b5fdb1","impliedFormat":1},{"version":"7c8574cfc7cb15a86db9bf71a7dc7669593d7f62a68470adc01b05f246bd20ff","impliedFormat":1},{"version":"c8f49d91b2669bf9414dfc47089722168602e5f64e9488dbc2b6fe1a0f6688da","impliedFormat":1},{"version":"3abee758d3d415b3b7b03551f200766c3e5dd98bb1e4ff2c696dc6f0c5f93191","impliedFormat":1},{"version":"79bd7f60a080e7565186cfdfd84eac7781fc4e7b212ab4cd315b9288c93b7dc7","impliedFormat":1},{"version":"4a2f281330a7b5ed71ebc4624111a832cd6835f3f92ad619037d06b944398cf4","impliedFormat":1},{"version":"ea8130014cb8ee30621bf521f58d036bff3b9753b2f6bd090cc88ac15836d33c","impliedFormat":1},{"version":"c740d49c5a0ecc553ddfc14b7c550e6f5a2971be9ed6e4f2280b1f1fa441551d","impliedFormat":1},{"version":"886a56c6252e130f3e4386a6d3340cf543495b54c67522d21384ed6fb80b7241","impliedFormat":1},{"version":"4b7424620432be60792ede80e0763d4b7aab9fe857efc7bbdb374e8180f4092a","impliedFormat":1},{"version":"e407db365f801ee8a693eca5c21b50fefd40acafda5a1fa67f223800319f98a8","impliedFormat":1},{"version":"529660b3de2b5246c257e288557b2cfa5d5b3c8d2240fa55a4f36ba272b57d18","impliedFormat":1},{"version":"0f6646f9aba018d0a48b8df906cb05fa4881dc7f026f27ab21d26118e5aa15de","impliedFormat":1},{"version":"b3620fcf3dd90a0e6a07268553196b65df59a258fe0ec860dfac0169e0f77c52","impliedFormat":1},{"version":"08135e83e8d9e34bab71d0cf35b015c21d0fd930091b09706c6c9c0e766aca28","impliedFormat":1},{"version":"96e14f2fdc1e3a558462ada79368ed49b004efce399f76f084059d50121bb9a9","impliedFormat":1},{"version":"56f2ade178345811f0c6c4e63584696071b1bd207536dc12384494254bc1c386","impliedFormat":1},{"version":"e484786ef14e10d044e4b16b6214179c95741e89122ba80a7c93a7e00bf624b1","impliedFormat":1},{"version":"4763ce202300b838eb045923eaeb32d9cf86092eee956ca2d4e223cef6669b13","impliedFormat":1},{"version":"7cff5fff5d1a92ae954bf587e5c35987f88cacaa006e45331b3164c4e26369de","impliedFormat":1},{"version":"c276acedaadc846336bb51dd6f2031fdf7f299d0fae1ee5936ccba222e1470ef","impliedFormat":1},{"version":"426c3234f768c89ba4810896c1ee4f97708692727cfecba85712c25982e7232b","impliedFormat":1},{"version":"ee12dd75feac91bb075e2cb0760279992a7a8f5cf513b1cffaa935825e3c58be","impliedFormat":1},{"version":"3e51868ea728ceb899bbfd7a4c7b7ad6dd24896b66812ea35893e2301fd3b23f","impliedFormat":1},{"version":"781e8669b80a9de58083ca1f1c6245ef9fb04d98add79667e3ed70bde034dfd5","impliedFormat":1},{"version":"cfd35b460a1e77a73f218ebf7c4cd1e2eeeaf3fa8d0d78a0a314c6514292e626","impliedFormat":1},{"version":"452d635c0302a0e1c5108edebcca06fc704b2f8132123b1e98a5220afa61a965","impliedFormat":1},{"version":"bbe64c26d806764999b94fcd47c69729ba7b8cb0ca839796b9bb4d887f89b367","impliedFormat":1},{"version":"b87d65da85871e6d8c27038146044cffe40defd53e5113dbd198b8bce62c32db","impliedFormat":1},{"version":"c37712451f6a80cbf8abec586510e5ac5911cb168427b08bc276f10480667338","impliedFormat":1},{"version":"ecf02c182eec24a9a449997ccc30b5f1b65da55fd48cbfc2283bcfa8edc19091","impliedFormat":1},{"version":"0b2c6075fc8139b54e8de7bcb0bed655f1f6b4bf552c94c3ee0c1771a78dea73","impliedFormat":1},{"version":"49707726c5b9248c9bac86943fc48326f6ec44fe7895993a82c3e58fb6798751","impliedFormat":1},{"version":"a9679a2147c073267943d90a0a736f271e9171de8fbc9c378803dd4b921f5ed3","impliedFormat":1},{"version":"a8a2529eec61b7639cce291bfaa2dd751cac87a106050c3c599fccb86cc8cf7f","impliedFormat":1},{"version":"bfc46b597ca6b1f6ece27df3004985c84807254753aaebf8afabd6a1a28ed506","impliedFormat":1},{"version":"7fdee9e89b5a38958c6da5a5e03f912ac25b9451dc95d9c5e87a7e1752937f14","impliedFormat":1},{"version":"b8f3eafeaf04ba3057f574a568af391ca808bdcb7b031e35505dd857db13e951","impliedFormat":1},{"version":"30b38ae72b1169c4b0d6d84c91016a7f4c8b817bfe77539817eac099081ce05c","impliedFormat":1},{"version":"c9f17e24cb01635d6969577113be7d5307f7944209205cb7e5ffc000d27a8362","impliedFormat":1},{"version":"685ead6d773e6c63db1df41239c29971a8d053f2524bfabdef49b829ae014b9a","impliedFormat":1},{"version":"b7bdabcd93148ae1aecdc239b6459dfbe35beb86d96c4bd0aca3e63a10680991","impliedFormat":1},{"version":"e83cfc51d3a6d3f4367101bfdb81283222a2a1913b3521108dbaf33e0baf764a","impliedFormat":1},{"version":"95f397d5a1d9946ca89598e67d44a214408e8d88e76cf9e5aecbbd4956802070","impliedFormat":1},{"version":"74042eac50bc369a2ed46afdd7665baf48379cf1a659c080baec52cc4e7c3f13","impliedFormat":1},{"version":"1541765ce91d2d80d16146ca7c7b3978bd696dc790300a4c2a5d48e8f72e4a64","impliedFormat":1},{"version":"ec6acc4492c770e1245ade5d4b6822b3df3ba70cf36263770230eac5927cf479","impliedFormat":1},{"version":"4c39ee6ae1d2aeda104826dd4ce1707d3d54ac34549d6257bea5d55ace844c29","impliedFormat":1},{"version":"deb099454aabad024656e1fc033696d49a9e0994fc3210b56be64c81b59c2b20","impliedFormat":1},{"version":"80eec3c0a549b541de29d3e46f50a3857b0b90552efeeed90c7179aba7215e2f","impliedFormat":1},{"version":"a4153fbd5c9c2f03925575887c4ce96fc2b3d2366a2d80fad5efdb75056e5076","impliedFormat":1},{"version":"6f7c70ca6fa1a224e3407eb308ec7b894cfc58042159168675ccbe8c8d4b3c80","impliedFormat":1},{"version":"4b56181b844219895f36cfb19100c202e4c7322569dcda9d52f5c8e0490583c9","impliedFormat":1},{"version":"5609530206981af90de95236ce25ddb81f10c5a6a346bf347a86e2f5c40ae29b","impliedFormat":1},{"version":"632ce3ee4a6b320a61076aeca3da8432fb2771280719fde0936e077296c988a9","impliedFormat":1},{"version":"8b293d772aff6db4985bd6b33b364d971399993abb7dc3f19ceed0f331262f04","impliedFormat":1},{"version":"4eb7bad32782df05db4ba1c38c6097d029bed58f0cb9cda791b8c104ccfdaa1f","impliedFormat":1},{"version":"c6a8aa80d3dde8461b2d8d03711dbdf40426382923608aac52f1818a3cead189","impliedFormat":1},{"version":"bf5e79170aa7fc005b5bf87f2fe3c28ca8b22a1f7ff970aa2b1103d690593c92","impliedFormat":1},{"version":"ba3c92c785543eba69fbd333642f5f7da0e8bce146dec55f06cfe93b41e7e12f","impliedFormat":1},{"version":"c6d72ececae6067e65c78076a5d4a508f16c806577a3d206259a0d0bfeedc8d1","impliedFormat":1},{"version":"b6429631df099addfcd4a5f33a046cbbde1087e3fc31f75bfbbd7254ef98ea3c","impliedFormat":1},{"version":"4e9cf1b70c0faf6d02f1849c4044368dc734ad005c875fe7957b7df5afe867c9","impliedFormat":1},{"version":"7498b7d83674a020bd6be46aeed3f0717610cb2ae76d8323e560e964eb122d0c","impliedFormat":1},{"version":"b80405e0473b879d933703a335575858b047e38286771609721c6ab1ea242741","impliedFormat":1},{"version":"7193dfd01986cd2da9950af33229f3b7c5f7b1bee0be9743ad2f38ec3042305e","impliedFormat":1},{"version":"1ccb40a5b22a6fb32e28ffb3003dea3656a106dd3ed42f955881858563776d2c","impliedFormat":1},{"version":"8d97d5527f858ae794548d30d7fc78b8b9f6574892717cc7bc06307cc3f19c83","impliedFormat":1},{"version":"ccb4ecdc8f28a4f6644aa4b5ab7337f9d93ff99c120b82b1c109df12915292ac","impliedFormat":1},{"version":"8bbcf9cecabe7a70dcb4555164970cb48ba814945cb186493d38c496f864058f","impliedFormat":1},{"version":"7d57bdfb9d227f8a388524a749f5735910b3f42adfe01bfccca9999dc8cf594c","impliedFormat":1},{"version":"3508810388ea7c6585496ee8d8af3479880aba4f19c6bbd61297b17eb30428f4","impliedFormat":1},{"version":"56931daef761e6bdd586358664ccd37389baabeb5d20fe39025b9af90ea169a5","impliedFormat":1},{"version":"abb48247ab33e8b8f188ef2754dfa578129338c0f2e277bfc5250b14ef1ab7c5","impliedFormat":1},{"version":"beaba1487671ed029cf169a03e6d680540ea9fa8b810050bc94cb95d5e462db2","impliedFormat":1},{"version":"1418ef0ba0a978a148042bc460cf70930cd015f7e6d41e4eb9348c4909f0e16d","impliedFormat":1},{"version":"56be4f89812518a2e4f0551f6ef403ffdeb8158a7c271b681096a946a25227e9","impliedFormat":1},{"version":"bbb0937150b7ab2963a8bc260e86a8f7d2f10dc5ee7ddb1b4976095a678fdaa4","impliedFormat":1},{"version":"862301d178172dc3c6f294a9a04276b30b6a44d5f44302a6e9d7dc1b4145b20b","impliedFormat":1},{"version":"cbf20c7e913c08cb08c4c3f60dae4f190abbabaa3a84506e75e89363459952f0","impliedFormat":1},{"version":"0f3333443f1fea36c7815601af61cb3184842c06116e0426d81436fc23479cb8","impliedFormat":1},{"version":"421d3e78ed21efcbfa86a18e08d5b6b9df5db65340ef618a9948c1f240859cc1","impliedFormat":1},{"version":"b1225bc77c7d2bc3bad15174c4fd1268896a90b9ab3b306c99b1ade2f88cddcc","impliedFormat":1},{"version":"ca46e113e95e7c8d2c659d538b25423eac6348c96e94af3b39382330b3929f2a","impliedFormat":1},{"version":"03ca07dbb8387537b242b3add5deed42c5143b90b5a10a3c51f7135ca645bd63","impliedFormat":1},{"version":"ca936efd902039fda8a9fc3c7e7287801e7e3d5f58dd16bf11523dc848a247d7","impliedFormat":1},{"version":"2c7b3bfa8b39ed4d712a31e24a8f4526b82eeca82abb3828f0e191541f17004c","impliedFormat":1},{"version":"5ffaae8742b1abbe41361441aa9b55a4e42aee109f374f9c710a66835f14a198","impliedFormat":1},{"version":"ecab0f43679211efc9284507075e0b109c5ad024e49b190bb28da4adfe791e49","impliedFormat":1},{"version":"967109d5bc55face1aaa67278fc762ac69c02f57277ab12e5d16b65b9023b04f","impliedFormat":1},{"version":"36d25571c5c35f4ce81c9dcae2bdd6bbaf12e8348d57f75b3ef4e0a92175cd41","impliedFormat":1},{"version":"fde94639a29e3d16b84ea50d5956ee76263f838fa70fe793c04d9fce2e7c85b9","impliedFormat":1},{"version":"5f4c286fea005e44653b760ebfc81162f64aabc3d1712fd4a8b70a982b8a5458","impliedFormat":1},{"version":"e02dabe428d1ffd638eccf04a6b5fba7b2e8fccee984e4ef2437afc4e26f91c2","impliedFormat":1},{"version":"60dc0180bd223aa476f2e6329dca42fb0acaa71b744a39eb3f487ab0f3472e1c","impliedFormat":1},{"version":"b6fdbecf77dcbf1b010e890d1a8d8bfa472aa9396e6c559e0fceee05a3ef572f","impliedFormat":1},{"version":"e1bf9d73576e77e3ae62695273909089dbbb9c44fb52a1471df39262fe518344","impliedFormat":1},{"version":"d2d57df33a7a5ea6db5f393df864e3f8f8b8ee1dfdfe58180fb5d534d617470f","impliedFormat":1},{"version":"fdcd692f0ac95e72a0c6d1e454e13d42349086649828386fe7368ac08c989288","impliedFormat":1},{"version":"5583eef89a59daa4f62dd00179a3aeff4e024db82e1deff2c7ec3014162ea9a2","impliedFormat":1},{"version":"b0641d9de5eaa90bff6645d754517260c3536c925b71c15cb0f189b68c5386b4","impliedFormat":1},{"version":"9899a0434bd02881d19cb08b98ddd0432eb0dafbfe5566fa4226bdd15624b56f","impliedFormat":1},{"version":"4496c81ce10a0a9a2b9cb1dd0e0ddf63169404a3fb116eb65c52b4892a2c91b9","impliedFormat":1},{"version":"ecdb4312822f5595349ec7696136e92ecc7de4c42f1ea61da947807e3f11ebfc","impliedFormat":1},{"version":"42edbfb7198317dd7359ce3e52598815b5dc5ca38af5678be15a4086cccd7744","impliedFormat":1},{"version":"8105321e64143a22ed5411258894fb0ba3ec53816dad6be213571d974542feeb","impliedFormat":1},{"version":"d1b34c4f74d3da4bdf5b29bb930850f79fd5a871f498adafb19691e001c4ea42","impliedFormat":1},{"version":"9a1caf586e868bf47784176a62bf71d4c469ca24734365629d3198ebc80858d7","impliedFormat":1},{"version":"35a443f013255b33d6b5004d6d7e500548536697d3b6ba1937fd788ca4d5d37b","impliedFormat":1},{"version":"b591c69f31d30e46bc0a2b383b713f4b10e63e833ec42ee352531bbad2aadfaa","impliedFormat":1},{"version":"31e686a96831365667cbd0d56e771b19707bad21247d6759f931e43e8d2c797d","impliedFormat":1},{"version":"dfc3b8616bece248bf6cd991987f723f19c0b9484416835a67a8c5055c5960e0","impliedFormat":1},{"version":"03b64b13ecf5eb4e015a48a01bc1e70858565ec105a5639cfb2a9b63db59b8b1","impliedFormat":1},{"version":"c56cc01d91799d39a8c2d61422f4d5df44fab62c584d86c8a4469a5c0675f7c6","impliedFormat":1},{"version":"5205951312e055bc551ed816cbb07e869793e97498ef0f2277f83f1b13e50e03","impliedFormat":1},{"version":"50b1aeef3e7863719038560b323119f9a21f5bd075bb97efe03ee7dec23e9f1b","impliedFormat":1},{"version":"0cc13970d688626da6dce92ae5d32edd7f9eabb926bb336668e5095031833b7c","impliedFormat":1},{"version":"3be9c1368c34165ba541027585f438ed3e12ddc51cdc49af018e4646d175e6a1","impliedFormat":1},{"version":"7d617141eb3f89973b1e58202cdc4ba746ea086ef35cdedf78fb04a8bb9b8236","impliedFormat":1},{"version":"ea6d9d94247fd6d72d146467070fe7fc45e4af6e0f6e046b54438fd20d3bd6a2","impliedFormat":1},{"version":"d584e4046091cdef5df0cb4de600d46ba83ff3a683c64c4d30f5c5a91edc6c6c","impliedFormat":1},{"version":"ce68902c1612e8662a8edde462dff6ee32877ed035f89c2d5e79f8072f96aed0","impliedFormat":1},{"version":"d48ac7569126b1bc3cd899c3930ef9cf22a72d51cf45b60fc129380ae840c2f2","impliedFormat":1},{"version":"e4f0d7556fda4b2288e19465aa787a57174b93659542e3516fd355d965259712","impliedFormat":1},{"version":"756b471ce6ec8250f0682e4ad9e79c2fddbe40618ba42e84931dbb65d7ac9ab0","impliedFormat":1},{"version":"ce9635a3551490c9acdbcb9a0491991c3d9cd472e04d4847c94099252def0c94","impliedFormat":1},{"version":"b70ee10430cc9081d60eb2dc3bee49c1db48619d1269680e05843fdaba4b2f7a","impliedFormat":1},{"version":"9b78500996870179ab99cbbc02dffbb35e973d90ab22c1fb343ed8958598a36c","impliedFormat":1},{"version":"c6ee8f32bb16015c07b17b397e1054d6906bc916ab6f9cd53a1f9026b7080dbf","impliedFormat":1},{"version":"67e913fa79af629ee2805237c335ea5768ea09b0b541403e8a7eaef253e014d9","impliedFormat":1},{"version":"0b8a688a89097bd4487a78c33e45ca2776f5aedaa855a5ba9bc234612303c40e","impliedFormat":1},{"version":"188e5381ed8c466256937791eab2cc2b08ddcc5e4aaf6b4b43b8786ed1ab5edd","impliedFormat":1},{"version":"8559f8d381f1e801133c61d329df80f7fdab1cbad5c69ebe448b6d3c104a65bd","impliedFormat":1},{"version":"00a271352b854c5d07123587d0bb1e18b54bf2b45918ab0e777d95167fd0cb0b","impliedFormat":1},{"version":"10c4be0feeac95619c52d82e31a24f102b593b4a9eba92088c6d40606f95b85d","impliedFormat":1},{"version":"e1385f59b1421fceba87398c3eb16064544a0ce7a01b3a3f21fa06601dc415dc","impliedFormat":1},{"version":"bacf2c0f8cbfc5537b3c64fc79d3636a228ccbb00d769fb1426b542efe273585","impliedFormat":1},{"version":"3103c479ff634c3fbd7f97a1ccbfb645a82742838cb949fdbcf30dd941aa7c85","impliedFormat":1},{"version":"4b37b3fab0318aaa1d73a6fde1e3d886398345cff4604fe3c49e19e7edd8a50d","impliedFormat":1},{"version":"bf429e19e155685bda115cc7ea394868f02dec99ee51cfad8340521a37a5867a","impliedFormat":1},{"version":"72116c0e0042fd5aa020c2c121e6decfa5414cf35d979f7db939f15bb50d2943","impliedFormat":1},{"version":"20510f581b0ee148a80809122f9bcaa38e4691d3183a4ed585d6d02ffe95a606","impliedFormat":1},{"version":"71f4b56ed57bbdea38e1b12ad6455653a1fbf5b1f1f961d75d182bff544a9723","impliedFormat":1},{"version":"b3e1c5db2737b0b8357981082b7c72fe340edf147b68f949413fee503a5e2408","impliedFormat":1},{"version":"396e64a647f4442a770b08ed23df3c559a3fa7e35ffe2ae0bbb1f000791bda51","impliedFormat":1},{"version":"698551f7709eb21c3ddec78b4b7592531c3e72e22e0312a128c40bb68692a03f","impliedFormat":1},{"version":"662b28f09a4f60e802023b3a00bdd52d09571bc90bf2e5bfbdbc04564731a25e","impliedFormat":1},{"version":"e6b8fb8773eda2c898e414658884c25ff9807d2fce8f3bdb637ab09415c08c3c","impliedFormat":1},{"version":"528288d7682e2383242090f09afe55f1a558e2798ceb34dc92ae8d6381e3504a","impliedFormat":1},{"version":"29a1b266763eb17f5501d334607eb81b760e72ff5b576bf7e46528f0745e0334","signature":"42aff1676ae4d328c0bf2219f1b92e94e94794c1e97881d424401a10d2a6cfca"},{"version":"c8b958c186317fff115ef7cb8f00b1705cbdc53e7d76c8e2d33ac0183c77a0e4","signature":"bbce04162cfe436ee85072259500a6421c0f498db2d478227b695c6bcb5f007f"},{"version":"faa895693978941cf98c59b8d9781e0167def8ad8db0888677bddf557e5591b9","signature":"94e74989d943cb3826b64e61e195afbc2fc66640bf8e16b9f2fa1138e889ca7c"},{"version":"87921aae4f4dcd04df1c0847cdd122b7ad5ad601b2f128859f73c3e2ec3bb508","signature":"08ae911bed9f292647cab86bc52ff64228619845a9e779b12c1698aed38d69bb"},{"version":"1bd8428d60b845004af54f3f00e152890fb375fce46bc5a527e23360ce3e8f70","signature":"bde756b5953aee2136db4bbff45d12eae3fdca8dbce4e017a24d4d79da3c4ba6"},{"version":"0d9e2d408a7b2639cd8110cb5761ad1b7db98777a26e9149e0994ceba5af46d6","signature":"b3c18380059c627c8ea611847460aa4c5528f386c294c8be3f3df47761e6738d"},{"version":"10524cf4be2097d02ba095e0412fd1e009dc033d8e8ba1879dc22d326e263cd3","signature":"33c5a014c6a4ad393738f1a2f75fa9be330e947d55bc54fb9e0d06159df8c9b5"},{"version":"1d32f162890037525db55a72f455d9367805ba9c43103827f583cffd7c66be47","signature":"329f1e89b6fbbcf56776da036a84f9a610778d79386c84a5496b894aa962cf15"},"ac821029efce1e943e82bc3c565dc9395c81b8f4da0c5b3694acf277baecb534",{"version":"fe3174926fe6328920581978a088a1ddd61494d3d115c67ef77f006169704790","signature":"be5d56e0c5dabaace18bcaefa257b012f29a0fd7e0c9fad2fec0d119fd825e3d"},{"version":"b6d39fe902ea09f1b3c381a83bb4b2ebfe1b932ca862a2837199f82c995c91d4","signature":"148df91362f1e816a0c1984d04e78d9d1407c5a8ae25d7fca0a9dfdc0e5101e1"},"4e97ee30aa16c1d87389b455f07e431369ff48d1ef558a3eba86c4201178662c",{"version":"eedae8b0ed762a1b39c4b15befd7f9ea2a46e10529f71e07cac16179fa3c6892","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a827c04987a53acd81b692bda49ac2a14b56835aa9b6a1ebafe0a5a88f19b7ab","signature":"268b4dcf4ca1945dc4d0762bb65b6d8dfac399bc694baf498e7db46199e2596e"},{"version":"092d93175c46ccd7fb98299e8621403c9259b3d2a3095a1e0ce51a683b6152bd","signature":"071972511aff8813ef01d3f10326854101392dda7ec45e732dd26a7aa7b715d5"},{"version":"36171b21d86e7ab7bff111a1f84eb163758460e728cab8d226181f722e0a93c4","signature":"dc6a468030edfba54806c11814055d90a22b38143fda84a95f8ffaa3729cdada"},{"version":"16bd23cff2ec71ef4257597c3964480cd187c665d9ec6f138c084828e9b0692a","signature":"042f5c14541d5f24c3f2bfcfa3be372865042fca6b3240fdc6eb4d36c46c6054"},{"version":"3aac5d679566daf7ac6d5151a518e4edd0f5d4b506a7345d17d7b6b27266c9c4","signature":"faf77a35be7f5648e12ab952b900ee69526103333b3d7b86498adf346a207d89"},{"version":"7f97d703d642e73b9b9d4d854f3011e8636b9c2834af144d645fee9b70e83199","signature":"efb4f81a26ca3ca694c5908279d36cbed7c906125d52a966b5a29df7cd0721f0"},{"version":"d80f9b655b1335c34d09e872ca7c2d5d401e6f222090ec80af8de44d8fc622bc","signature":"b0124b48e9bffcc064d24eabc0201dc38517629255e0441ee741835130edc7ee"},{"version":"8a3ae4d577e7e92f29181a3980c79bd278c92cc1edfb41181a90460233f428ba","signature":"04551ded01e4eda977f401c6bd4031f6fb6e9a469978d853779a1dea97e4f4d0"},"e10baaabb0a608d1f8c9d66cc774424b7a28a7426a2275af60b763586f75e171","15de29c89f6ae54d7f80aa6fcc885622c2a2f8f2383475936cf2e8836993b2f6","41a8631aa469d4e6de48f2389b77add02946bb660ae8ce462537d0a29a561f23",{"version":"a7644e8336a74c486bb7f32a567a65db8da98bcb8a51bbccb899b3c0153dfe75","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"abbcdf47417cf5548a18289c1f9e6531d391a6d9da8f70861df65896574c93b7","80aec8a809449fc671dfd6f141610b9e4ba25564765543a7c80d8e789d3078f9",{"version":"b5125dd1ce65322c1455d96e29447f87c93d4ff9d1dd3cb17d8ef992ca96409f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"db53e99bad5ed85073dfeada1ee59b2f5db113052217a9d1eb43b5a70f151e9a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8dedf8b2e92a1a63a4ddfe5d5bb50b1732c3ea2323260e4e5c6aeb7234f54391","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c2007a37f37f04dd1b8f125ef2d0b00521abbf48a6f1ac903acaf8b64a906546","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b64001597a887170a612ba5bd74f4a20e639f7c517447840520bef773b0b94d1","affectsGlobalScope":true},"c5437117c0a0ae2a5fab1235e3dc5e06dec44b09309afc1f2679834547edc0b6",{"version":"176e587d23521c96eed61f276bf2be0bf7f06b638d7c806197bc8599f756f0c2","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"84caff7e7e5e9cd4276b16c3a845a5ed5749ee6e3d2751e0746efbd66fcecbbf","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d38d0a73316a24dcf68283f2c740ad3afd6dae901b5bc50b17421750c2491385","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"60acd117709ad84cfbdfe25e21bc1ef8cc56320cc7289f9b437120d535e0fd02","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ca2942a4457f7913aca2dc061feeefe1296f6eff02788ec7ae574c9b8a405c7c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"760d4ee678d8d5c96af806dd78e3aae46707a07e2bf10cdbfb5dd19a1830524b","93ca7086027eefaa13e340c46b241ba76989d0eca25a9eab150a518bf6e6a46f",{"version":"abd8a39060cb4cdd483fe4826c949bac04dfb0860d811c0f1e984789659fe9b9","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4e27d6322e30b913d3da0580af85e46acdbd0bd396efed9bf8db9f708753426b","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"37bd1549f9536538c82fea9d00eebe0885820f5e20391f16a1e6954f437386fb","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b6d4ac943b8f9dadb06a013f084a9c67472ca54ae18ae20c75578c0ff3f42e05","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"df371f81e7bb764c61d54759cd44c3a3ca444091186decf7ec17aded9fa0652c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"70a5d19fb9d6117ffe0d23e73eb8ac8508dcef2f56be04a722e00c8e72b07e8c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5b01c080aca9a3dd72c1cb09fa794cf3ea0bf34a311cfe646e0a0e286f0e2049","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"d0ea365542df6fce594c0131284307f93870160c85758a232effdbb21dcee778",{"version":"ae49846260037d4fd62529bf37835bf618ddd2019fa1402e5ac50e20eb14f175","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"51dfbb4a17d42d1ae2d53860e750386b82d9a212cfe347d83622acdacb21b76c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"10ae0672f610614535dacbb537e1a81f59892ac4fcb6e4af8f195a4defa6d0a9","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"04d0e7b442c5a4462ab48a08320cfcc38ff5f4cbd77c27664a7ead710764c9d6","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a71a144b6b12f948486feb267b0a2b1ca8a3da0b9410e1788d38ba368939b229","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"56870c802bfe1c1c09159bec623f688aeab05d87221bfed10bc2f027870e76f4","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"492e5096f22d9184c7e893772431dad4de0eb94834f516dfd06d1643cc4dcffb","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5ff3876e2af760adc98e795349c2ac7684072b387daa508f0c5f987626f0db11","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d955fd1897ad2028191050c1b02699477e52b86fed4b6a266d0c54df444e62ab","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"64891ec66184dcf8b57e1205cfaac9471ec3964ca641ea93dd40a481e69cd3b0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"3dd443b3a2d6dd3e211cfdc6f5a2027765ee77455b1d74eabb58c6378a22bb2d","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5e1f1286362429d3ba57451306fdd604f7f29b881fbbef6c1fa82bf7ce6a33c2","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"2395eff988c3e9a6916d7247d0217104d52cc9aedb285afb2e3c59c9c8344d44","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"52204c2f63bd55f5dac2889dc283709d8c123b8957d1f4de5f273e7d4007525c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"3916ef1cc8158d3e5755285e1dade3dd820dbc98fc1e4d7f97894c1d17c4ef6c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"e98c968abe8f6e0e9713dee6670374d07bc92744c987dc70767e40c6871ba057","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a91bc24ea9fd9af8b14c72f3926dc842ddb6a119c610ef9d3457e22ba82259da","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"9a79d4e03422cba531ef26c7d1f600b33234f34a62b7065af7900dfdd9e2a078","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1058324f5f6771caed61611c977a0c89fc95b353fe0bde09d0411bf1f43f1319","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ecd00d33e5c427b4960421c8174006485798a7355b6a237fdee8a19b39e82150","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"58d42bb435eb020a2fe00bbc821f11fb7131074991add1e2b01cd60f46b8d604","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"6ea7d9f3d5a1b210f3933c0d25fb8a809ef61677defa46950a72afba5b4750e0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"0db241793b8fe98791adcf327f161460285ff8c529b775b21eadc0620ee01265","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"39ec642e0f599dbe376e234d8aba7dd3fcdde6b7f2891e40b324ef96f9011e54","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ba497bffb7e2b1d4c5b424820d7bcf021fa54008dbe4cf582ac55dd96d6b54cb","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"7eb2abdb6b6ba98452f18ce013531e93228ddd3df4ac54e1661bff1c5b0661f7","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"949d1e919eaff9934b2a5ddac40e4cea6ea6b6bd1e7cf8502dc85b5aea43a3a6","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"d1986184a09a52db8228cb2bb2a61a8c05c9354e5b93cec8e2628d8579c892d7","a511358e881279cb59c5880f2452af409a4c483f5bb654ad28e5ab7352ef4913",{"version":"2e23be37a190953f60cdc4a62f89e5dfe4d6c64f38c71564bc0fb63c7810c9a1","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1}],"root":[512,513,515,516,525,551,613,[616,636],[994,1009],[1060,1063],1085,[1095,1100],[1125,1138],[1140,1200],1321,1322,[1327,1331],[1338,1361],[1381,1473],[1510,1578],[1581,1603],1606,[1610,1613],[1691,1693],[1695,1704],[1879,1955]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":4,"module":99,"skipLibCheck":true,"strict":true,"target":9},"referencedMap":[[1954,1],[512,2],[1955,3],[1913,4],[1914,5],[1915,6],[1918,7],[1917,8],[1919,9],[1920,10],[1916,11],[1923,12],[1921,13],[1922,14],[1924,15],[1925,16],[1926,17],[1927,18],[1928,19],[1930,20],[1931,21],[1932,22],[1929,23],[1933,24],[1936,25],[1937,26],[1935,27],[1938,28],[1939,29],[1934,30],[1940,31],[1942,32],[1941,33],[1944,34],[1943,35],[1945,36],[1946,37],[1949,38],[1948,39],[1951,40],[1950,41],[1947,42],[1953,43],[1952,44],[1912,45],[1910,2],[1911,46],[515,47],[619,48],[620,48],[621,48],[622,49],[623,48],[624,50],[625,50],[626,48],[627,48],[628,48],[629,48],[630,51],[631,48],[632,48],[633,48],[634,50],[635,48],[618,52],[636,48],[994,53],[995,54],[996,48],[997,48],[998,48],[616,55],[617,55],[999,50],[1000,50],[1001,48],[1002,48],[1003,48],[1004,50],[1005,50],[1006,50],[1007,50],[1008,48],[1009,48],[513,56],[516,57],[1034,58],[1021,59],[1019,60],[1017,61],[1016,2],[1020,62],[1014,62],[1018,63],[1022,64],[1024,65],[1012,2],[1028,66],[1031,67],[1033,68],[1030,69],[1032,70],[1029,2],[1023,58],[1025,71],[1015,2],[1110,72],[1106,73],[1107,74],[1108,75],[1109,76],[1793,77],[1795,78],[1794,2],[1796,79],[1797,80],[1792,81],[1827,82],[1828,83],[1826,84],[1830,85],[1833,86],[1829,87],[1831,88],[1832,88],[1834,89],[1835,90],[1840,91],[1837,92],[1836,93],[1839,94],[1838,95],[1844,96],[1843,97],[1841,98],[1842,87],[1845,99],[1846,100],[1850,101],[1848,102],[1847,103],[1849,104],[1785,105],[1767,87],[1768,106],[1770,107],[1784,106],[1771,108],[1773,87],[1772,2],[1774,87],[1775,109],[1782,87],[1776,2],[1777,2],[1778,2],[1779,87],[1780,110],[1781,111],[1769,89],[1783,112],[1851,113],[1824,114],[1825,115],[1823,116],[1761,117],[1759,118],[1760,119],[1758,120],[1757,121],[1754,122],[1753,123],[1747,121],[1749,124],[1748,125],[1756,126],[1755,123],[1750,127],[1751,128],[1752,128],[1788,108],[1786,108],[1789,129],[1791,130],[1790,131],[1787,132],[1738,110],[1739,2],[1762,133],[1766,134],[1763,2],[1764,135],[1765,2],[1741,136],[1742,136],[1745,137],[1746,138],[1744,136],[1743,137],[1740,106],[1798,87],[1799,87],[1800,87],[1801,139],[1822,140],[1810,141],[1809,2],[1802,142],[1805,87],[1803,87],[1806,87],[1808,143],[1807,144],[1804,87],[1818,2],[1811,2],[1812,2],[1813,87],[1814,87],[1815,2],[1816,87],[1817,2],[1821,145],[1819,2],[1820,87],[1858,146],[1857,147],[1861,148],[1862,149],[1859,150],[1860,151],[1878,152],[1870,153],[1869,154],[1868,112],[1863,155],[1867,156],[1864,155],[1865,155],[1866,155],[1853,112],[1852,2],[1856,157],[1854,150],[1855,158],[1871,2],[1872,2],[1873,112],[1877,159],[1874,2],[1875,112],[1876,155],[1715,2],[1717,160],[1718,161],[1716,2],[1719,2],[1720,2],[1723,162],[1721,2],[1722,2],[1724,2],[1725,2],[1726,2],[1727,163],[1728,2],[1729,164],[1714,165],[1705,2],[1706,2],[1708,2],[1707,93],[1709,93],[1710,2],[1711,93],[1712,2],[1713,2],[1737,166],[1735,167],[1730,2],[1731,2],[1732,2],[1733,2],[1734,2],[1736,2],[356,2],[523,168],[565,2],[1334,2],[1335,169],[1336,170],[1337,171],[1509,172],[1488,173],[1498,174],[1495,174],[1496,175],[1480,175],[1494,175],[1475,174],[1481,176],[1484,177],[1489,178],[1477,176],[1478,175],[1491,179],[1476,176],[1482,176],[1485,176],[1490,176],[1492,175],[1479,175],[1493,175],[1487,180],[1483,181],[1508,182],[1486,183],[1497,184],[1474,175],[1499,175],[1500,175],[1501,175],[1502,175],[1503,175],[1504,175],[1505,175],[1506,175],[1507,175],[1580,185],[1579,186],[1376,2],[1373,2],[1372,2],[1367,187],[1378,188],[1363,189],[1374,190],[1366,191],[1365,192],[1375,2],[1370,193],[1377,2],[1371,194],[1364,2],[1604,189],[1605,195],[1380,196],[1676,197],[1677,197],[1679,198],[1678,197],[1671,197],[1672,197],[1674,199],[1673,197],[1651,2],[1650,2],[1653,200],[1652,2],[1649,2],[1616,201],[1614,202],[1617,2],[1664,203],[1618,197],[1654,204],[1663,205],[1655,2],[1658,206],[1656,2],[1659,2],[1661,2],[1657,206],[1660,2],[1662,2],[1615,207],[1690,208],[1675,197],[1670,209],[1680,210],[1686,211],[1687,212],[1689,213],[1688,214],[1668,209],[1669,215],[1665,216],[1667,217],[1666,218],[1681,197],[1685,219],[1682,197],[1683,220],[1684,197],[1619,2],[1620,2],[1623,2],[1621,2],[1622,2],[1625,2],[1626,221],[1627,2],[1628,2],[1624,2],[1629,2],[1630,2],[1631,2],[1632,2],[1633,222],[1634,2],[1648,223],[1635,2],[1636,2],[1637,2],[1638,2],[1639,2],[1640,2],[1641,2],[1644,2],[1642,2],[1643,2],[1645,197],[1646,197],[1647,224],[1362,2],[568,225],[566,2],[652,226],[653,227],[573,2],[120,228],[121,228],[122,229],[74,230],[123,231],[124,232],[125,233],[69,2],[72,234],[70,2],[71,2],[126,235],[127,236],[128,237],[129,238],[130,239],[131,240],[132,240],[133,241],[134,242],[135,243],[136,244],[75,2],[73,2],[137,245],[138,246],[139,247],[173,248],[140,249],[141,2],[142,250],[143,251],[144,252],[145,253],[146,254],[147,255],[148,256],[149,257],[150,258],[151,258],[152,259],[153,2],[154,260],[155,261],[157,262],[156,263],[158,264],[159,265],[160,266],[161,267],[162,268],[163,269],[164,270],[165,271],[166,272],[167,273],[168,274],[169,275],[170,276],[76,2],[77,2],[78,2],[117,277],[118,2],[119,2],[171,278],[172,279],[177,280],[441,93],[178,281],[176,282],[443,283],[442,284],[1379,93],[174,285],[439,2],[175,286],[60,2],[62,287],[438,93],[208,93],[1956,288],[651,289],[569,290],[595,291],[596,292],[594,2],[552,2],[562,293],[558,294],[561,295],[604,296],[585,2],[587,297],[607,297],[586,298],[563,2],[560,299],[553,300],[600,301],[555,302],[557,303],[599,2],[597,302],[556,2],[559,300],[554,2],[567,2],[1011,304],[1010,2],[79,2],[61,2],[615,305],[514,306],[981,307],[985,308],[930,309],[745,2],[695,310],[979,311],[980,312],[693,2],[982,313],[767,314],[710,315],[733,316],[742,317],[713,317],[714,318],[715,318],[741,319],[716,320],[717,318],[723,321],[718,322],[719,318],[720,318],[743,323],[712,324],[721,317],[722,322],[724,325],[725,325],[726,322],[727,318],[728,317],[729,318],[730,326],[731,326],[732,318],[754,327],[762,328],[740,329],[770,330],[734,331],[736,332],[737,329],[748,333],[756,334],[761,335],[758,336],[763,337],[751,338],[752,339],[759,340],[760,341],[766,342],[757,343],[735,313],[768,344],[711,313],[755,345],[753,346],[739,347],[738,329],[769,348],[744,349],[764,2],[765,350],[984,351],[694,313],[805,2],[822,352],[771,353],[796,354],[803,355],[772,355],[773,355],[774,356],[802,357],[775,358],[790,355],[776,359],[777,359],[778,356],[779,355],[780,356],[781,355],[804,360],[782,355],[783,355],[784,361],[785,355],[786,355],[787,361],[788,356],[789,355],[791,362],[792,361],[793,355],[794,356],[795,355],[817,363],[813,364],[801,365],[825,366],[797,367],[798,365],[814,368],[806,369],[815,370],[812,371],[810,372],[816,373],[809,374],[821,375],[811,376],[823,377],[818,378],[807,379],[800,380],[799,365],[824,381],[808,349],[819,2],[820,382],[698,383],[887,384],[826,385],[861,386],[870,387],[827,388],[828,388],[829,389],[830,388],[869,390],[831,391],[832,392],[833,393],[834,388],[871,394],[872,395],[835,388],[837,396],[838,387],[840,397],[841,398],[842,398],[843,389],[844,388],[845,388],[846,394],[847,389],[848,389],[849,398],[850,388],[851,387],[852,388],[853,389],[854,399],[839,400],[855,388],[856,389],[857,388],[858,388],[859,388],[860,388],[989,401],[882,402],[868,403],[892,404],[862,405],[864,406],[865,403],[986,407],[875,408],[881,409],[877,410],[883,411],[987,412],[988,339],[878,413],[880,414],[886,415],[876,416],[863,313],[888,417],[836,313],[874,418],[879,419],[867,420],[866,403],[889,421],[890,2],[891,422],[873,349],[884,2],[885,423],[991,424],[992,425],[993,426],[990,427],[706,428],[699,429],[749,313],[746,430],[750,431],[747,432],[941,433],[918,434],[924,435],[893,435],[894,435],[895,436],[923,437],[896,438],[911,435],[897,439],[898,439],[899,436],[900,435],[901,440],[902,435],[925,441],[903,435],[904,435],[905,442],[906,435],[907,435],[908,442],[909,436],[910,435],[912,443],[913,442],[914,435],[915,436],[916,435],[917,435],[938,444],[929,445],[944,446],[919,447],[920,448],[933,449],[926,450],[937,451],[928,452],[936,453],[935,454],[940,455],[927,456],[942,457],[939,458],[934,459],[922,460],[921,448],[943,461],[932,462],[931,463],[702,464],[704,465],[703,464],[705,464],[708,466],[707,467],[709,468],[700,469],[977,470],[945,471],[970,472],[974,473],[973,474],[946,475],[975,476],[966,477],[967,473],[968,478],[969,479],[954,480],[962,481],[972,482],[978,483],[947,484],[948,482],[951,485],[957,486],[961,487],[959,488],[963,489],[952,490],[955,491],[960,492],[976,493],[958,494],[956,495],[953,496],[971,497],[949,498],[965,499],[950,349],[964,500],[696,349],[697,501],[701,502],[983,2],[1091,503],[1093,504],[1092,505],[1090,506],[1089,2],[1694,93],[1104,507],[1084,508],[1332,509],[1102,510],[1101,511],[1077,512],[1103,2],[1079,513],[1083,514],[1068,515],[1067,2],[1078,516],[1065,516],[1069,517],[1080,518],[1081,519],[1064,2],[1070,520],[1073,521],[1076,522],[1072,523],[1074,524],[1071,2],[1075,512],[1082,525],[1066,2],[1105,526],[1333,527],[464,528],[469,1],[476,529],[459,530],[212,2],[220,531],[360,532],[363,533],[335,2],[348,534],[355,535],[237,2],[337,2],[218,2],[334,536],[380,537],[219,2],[210,538],[362,539],[364,540],[365,541],[436,542],[329,543],[282,544],[342,545],[343,546],[341,547],[340,2],[336,548],[361,549],[221,550],[406,2],[407,551],[248,552],[222,553],[249,552],[285,552],[188,552],[358,554],[357,2],[347,555],[454,2],[197,2],[475,556],[414,557],[415,558],[411,559],[493,2],[312,2],[416,560],[412,561],[498,562],[497,563],[492,2],[263,2],[315,564],[314,2],[491,565],[413,93],[268,566],[275,567],[277,568],[267,2],[272,569],[274,570],[276,571],[271,572],[269,2],[273,573],[494,2],[490,2],[496,574],[495,2],[266,575],[485,576],[488,577],[256,578],[255,579],[254,580],[501,93],[253,581],[242,2],[503,2],[1608,582],[1607,2],[504,93],[505,583],[180,2],[344,584],[345,585],[346,586],[184,2],[349,2],[204,587],[179,2],[428,93],[186,588],[427,589],[426,590],[417,2],[418,2],[425,2],[420,2],[423,591],[419,2],[421,592],[424,593],[422,592],[217,2],[214,2],[215,552],[369,2],[374,594],[375,595],[373,596],[371,597],[372,598],[367,2],[434,560],[209,560],[463,599],[470,600],[474,601],[303,602],[302,2],[297,2],[450,603],[458,604],[330,605],[331,606],[409,607],[319,2],[432,608],[307,93],[324,609],[435,610],[320,2],[323,611],[321,2],[433,612],[430,613],[429,2],[431,2],[327,2],[405,614],[192,615],[305,616],[309,617],[325,618],[328,619],[317,620],[310,621],[457,622],[383,623],[301,624],[189,625],[456,626],[185,627],[376,628],[368,2],[377,629],[394,630],[366,2],[393,631],[68,2],[388,632],[213,2],[408,633],[384,2],[198,2],[200,2],[339,2],[392,634],[216,2],[240,635],[326,636],[246,637],[306,2],[391,2],[370,2],[396,638],[397,639],[338,2],[399,640],[401,641],[400,642],[350,2],[390,625],[403,643],[300,644],[389,645],[395,646],[225,2],[229,2],[228,2],[227,2],[232,2],[226,2],[235,2],[234,2],[231,2],[230,2],[233,2],[236,647],[224,2],[292,648],[291,2],[296,649],[293,650],[295,651],[298,649],[294,650],[205,652],[284,653],[453,654],[451,2],[480,655],[482,656],[446,657],[481,658],[193,659],[190,659],[223,2],[207,660],[206,661],[202,662],[203,663],[211,664],[239,664],[250,664],[286,665],[251,665],[195,666],[194,2],[290,667],[289,668],[288,669],[287,670],[196,671],[437,672],[238,673],[445,674],[410,675],[440,676],[444,677],[333,678],[332,679],[313,680],[299,681],[281,682],[283,683],[280,684],[402,685],[304,2],[468,2],[201,686],[404,687],[452,688],[311,2],[241,689],[318,690],[316,691],[243,692],[378,693],[447,2],[244,694],[379,694],[466,2],[465,2],[467,2],[449,2],[448,2],[381,695],[308,2],[278,696],[199,697],[257,2],[183,698],[245,2],[472,93],[182,2],[484,699],[265,93],[478,560],[264,700],[461,701],[262,699],[187,2],[486,702],[260,93],[261,93],[252,2],[181,2],[259,703],[258,704],[247,705],[322,257],[382,257],[398,2],[386,706],[385,2],[270,575],[191,2],[279,93],[455,587],[462,707],[63,93],[66,708],[67,709],[64,93],[65,2],[359,710],[354,711],[353,2],[352,712],[351,2],[460,713],[471,714],[473,715],[477,716],[1609,717],[479,718],[483,719],[511,720],[487,720],[510,721],[489,722],[499,723],[500,724],[502,725],[506,726],[509,587],[508,2],[507,727],[524,2],[614,728],[1013,2],[520,729],[517,2],[518,729],[519,730],[522,731],[521,732],[542,733],[540,734],[541,735],[529,736],[530,734],[537,737],[528,738],[533,739],[543,2],[534,740],[539,741],[545,742],[544,743],[527,744],[535,745],[536,746],[531,747],[538,733],[532,748],[692,749],[1027,750],[1026,751],[1369,752],[1368,2],[575,753],[574,754],[387,288],[526,2],[550,2],[548,755],[547,2],[546,2],[549,756],[640,2],[637,2],[638,2],[646,757],[639,2],[641,758],[642,749],[643,2],[644,2],[645,2],[648,759],[647,2],[661,760],[650,761],[662,2],[649,762],[656,763],[654,2],[658,764],[659,765],[660,2],[657,2],[663,766],[674,767],[671,2],[673,768],[672,769],[675,770],[676,771],[677,772],[678,773],[670,774],[691,775],[668,776],[679,777],[680,778],[669,779],[681,2],[655,780],[666,781],[682,2],[683,2],[665,2],[664,2],[686,782],[684,782],[687,782],[688,783],[685,783],[690,784],[667,785],[689,786],[605,2],[564,2],[58,2],[59,2],[10,2],[11,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[22,2],[23,2],[4,2],[24,2],[28,2],[25,2],[26,2],[27,2],[29,2],[30,2],[31,2],[5,2],[32,2],[33,2],[34,2],[35,2],[6,2],[39,2],[36,2],[37,2],[38,2],[40,2],[7,2],[41,2],[46,2],[47,2],[42,2],[43,2],[44,2],[45,2],[8,2],[51,2],[48,2],[49,2],[50,2],[52,2],[9,2],[53,2],[54,2],[55,2],[57,2],[56,2],[1,2],[95,787],[105,788],[94,787],[115,789],[86,790],[85,791],[114,727],[108,792],[113,793],[88,794],[102,795],[87,796],[111,797],[83,798],[82,727],[112,799],[84,800],[89,801],[90,2],[93,801],[80,2],[116,802],[106,803],[97,804],[98,805],[100,806],[96,807],[99,808],[109,727],[91,809],[92,810],[101,811],[81,749],[104,803],[103,801],[107,2],[110,812],[612,813],[571,814],[584,815],[577,816],[578,2],[572,814],[570,2],[576,817],[582,2],[580,2],[581,2],[579,2],[583,818],[602,819],[611,820],[601,821],[606,822],[593,823],[590,824],[598,2],[591,294],[1088,825],[1086,826],[609,827],[608,828],[589,829],[1087,830],[588,2],[592,831],[610,832],[1094,833],[603,2],[1124,834],[1116,835],[1123,836],[1118,2],[1119,2],[1117,837],[1120,838],[1111,2],[1112,2],[1113,834],[1115,839],[1121,2],[1122,840],[1114,841],[1325,842],[1324,843],[1326,2],[1323,2],[525,844],[1096,845],[1097,845],[1098,845],[1095,846],[1612,847],[1691,848],[1613,849],[1693,850],[1692,851],[1890,852],[1702,853],[1891,854],[1893,855],[1894,856],[1695,857],[1696,858],[1100,859],[1896,860],[1895,861],[1099,856],[1897,862],[1898,863],[1900,864],[1127,865],[1132,866],[1131,867],[1147,868],[1146,869],[1149,870],[1148,871],[1151,872],[1150,873],[1152,874],[1145,875],[1154,876],[1153,877],[1157,878],[1159,879],[1158,880],[1162,881],[1161,882],[1156,883],[1164,884],[1163,883],[1165,885],[1169,886],[1168,887],[1155,883],[1171,888],[1170,845],[1174,889],[1173,890],[1175,891],[1172,892],[1180,893],[1179,894],[1178,895],[1177,894],[1183,896],[1182,897],[1185,898],[1184,899],[1188,900],[1190,901],[1189,902],[1187,883],[1191,903],[1193,904],[1195,905],[1194,906],[1192,907],[1186,902],[1199,908],[1198,909],[1200,910],[1197,909],[1196,911],[1611,912],[1901,913],[1902,914],[1903,915],[1904,916],[1905,917],[1322,918],[1329,919],[1330,920],[1699,921],[1697,922],[1698,923],[1888,924],[1700,925],[1899,924],[1892,560],[1342,847],[1521,926],[1467,927],[1701,928],[1514,929],[1352,930],[1353,931],[1354,931],[1355,931],[1356,931],[1357,931],[1358,931],[1359,931],[1360,931],[1361,931],[1381,932],[1382,933],[1351,934],[1350,935],[1347,936],[1348,936],[1346,936],[1345,935],[1349,936],[1344,935],[1343,937],[1341,938],[1331,938],[1340,939],[1610,940],[1889,941],[1510,942],[1887,943],[1906,944],[1907,945],[1384,946],[1883,947],[1703,948],[1882,949],[1879,950],[1880,951],[1881,952],[1704,953],[1885,954],[1886,955],[1383,560],[1884,949],[1403,956],[1404,957],[1405,958],[1406,959],[1407,960],[1408,961],[1409,962],[1410,963],[1411,964],[1412,965],[1413,966],[1414,967],[1415,968],[1416,969],[1385,970],[1387,971],[1388,972],[1389,560],[1390,973],[1391,974],[1394,975],[1339,976],[1395,560],[1397,977],[1398,973],[1400,978],[1401,979],[1402,974],[1063,980],[1443,981],[1444,982],[1445,983],[1446,984],[1447,985],[1448,986],[1449,987],[1543,988],[1544,989],[1545,990],[1546,991],[1547,992],[1548,993],[1549,994],[1550,995],[1551,996],[1552,997],[1553,998],[1554,919],[1555,999],[1556,1000],[1557,1001],[1558,1002],[1559,1003],[1560,1004],[1561,1005],[1562,1006],[1563,1007],[1564,1008],[1565,1009],[1566,1010],[1567,1011],[1568,1012],[1569,1013],[1570,1014],[1571,1015],[1572,1016],[1573,1017],[1574,1018],[1338,845],[1130,1019],[1144,1020],[1417,1021],[1575,1022],[1576,1023],[1577,1024],[1578,1025],[1133,1026],[1126,1027],[1134,845],[1128,1028],[1135,1029],[1129,1030],[1062,1031],[1423,1032],[1422,1033],[1426,1034],[1421,1035],[1418,1036],[1427,1021],[1137,845],[1140,1037],[1136,1038],[1160,1021],[1166,1039],[1428,1021],[1425,845],[1399,949],[1581,1040],[1061,1041],[1060,1042],[1321,949],[1429,1043],[1430,1044],[1328,1043],[1431,1045],[1424,1021],[1432,1021],[1167,1046],[1433,845],[1176,845],[1434,845],[1141,1047],[1181,1038],[1138,845],[1435,1033],[1125,845],[1436,845],[1386,1021],[1142,1048],[1392,1049],[1143,1050],[1437,845],[1438,845],[1439,1021],[1440,1051],[1441,1051],[1442,1049],[1908,1052],[1582,1053],[1909,1054],[1583,1055],[1584,1055],[1456,1056],[1420,845],[1523,1057],[1528,1058],[1470,1059],[1525,1060],[1542,1061],[1520,1062],[1459,1063],[1473,1064],[1452,1065],[1517,1066],[1462,1067],[1538,1068],[1419,1069],[1531,1070],[1586,1071],[1455,1028],[1522,1028],[1527,1028],[1469,1028],[1524,1028],[1585,1072],[1519,1028],[1458,1028],[1472,1028],[1451,1028],[1516,1028],[1461,1028],[1537,1028],[1530,1028],[1464,1028],[1534,1028],[1512,1028],[1540,1028],[1465,1073],[1535,1074],[1513,1075],[1588,1076],[1589,1077],[1590,1078],[1591,1079],[1592,1080],[1593,1081],[1454,1082],[1526,1082],[1468,1082],[1532,1082],[1587,1083],[1518,1082],[1457,1082],[1471,1082],[1515,1082],[1460,1082],[1536,1082],[1529,1082],[1453,1084],[1463,1082],[1533,1085],[1511,1082],[1539,1085],[1541,1086],[1450,847],[1085,1087],[1596,1088],[1597,965],[1598,1089],[1599,931],[1600,1090],[1601,1091],[1594,1092],[1396,1093],[1466,1094],[1327,1095],[1393,1096],[1595,1097],[1603,1098],[1602,1099],[551,1100],[613,1101],[1606,1102],[1045,1103],[1039,1104],[1043,1105],[1040,2],[1054,1106],[1051,1107],[1059,1108],[1044,1103],[1053,1109],[1038,1110],[1046,1103],[1057,1106],[1055,1106],[1048,1111],[1041,2],[1056,1106],[1037,2],[1058,1106],[1036,2],[1247,1112],[1281,1113],[1280,1114],[1262,1115],[1271,1115],[1274,1115],[1266,1115],[1273,1115],[1279,1116],[1269,1115],[1263,1115],[1267,1115],[1272,1115],[1270,1115],[1264,1115],[1277,1115],[1275,1115],[1261,1117],[1265,1115],[1276,1115],[1268,1115],[1278,1115],[1260,1118],[1258,1112],[1311,1112],[1312,1119],[1235,1120],[1282,1121],[1239,1122],[1285,1123],[1284,1124],[1283,1125],[1234,1126],[1236,1112],[1287,1127],[1251,1128],[1252,1129],[1254,1130],[1256,1131],[1255,1132],[1257,1133],[1253,1134],[1238,1135],[1240,1112],[1259,1136],[1298,1137],[1300,1138],[1313,1139],[1243,1129],[1232,1140],[1241,1112],[1299,1138],[1237,1141],[1245,1112],[1286,1126],[1297,1142],[1293,1143],[1294,1143],[1295,1144],[1296,1145],[1291,1146],[1290,1147],[1289,1148],[1288,1149],[1233,1150],[1244,1151],[1310,1152],[1249,1153],[1248,1126],[1242,1154],[1250,1155],[1246,1156],[1223,1112],[1215,1126],[1221,1112],[1204,1112],[1203,1112],[1225,1112],[1201,1112],[1229,1126],[1047,1112],[1209,1112],[1230,1157],[1214,1112],[1216,1112],[1207,1158],[1231,1159],[1202,1112],[1050,1112],[1224,1112],[1226,1126],[1049,1112],[1210,1112],[1208,1112],[1205,1112],[1227,1112],[1206,1112],[1213,1112],[1211,1112],[1228,1112],[1222,1112],[1212,1112],[1218,1112],[1220,1160],[1217,1112],[1316,1161],[1219,1162],[1042,2],[1315,1163],[1314,2],[1320,1164],[1303,1165],[1304,2],[1307,1166],[1308,1167],[1305,1168],[1306,1167],[1302,2],[1292,2],[1052,2],[1318,2],[1309,1169],[1317,2],[1301,2],[1035,2],[1319,1170],[1139,2],[1957,2]],"semanticDiagnosticsPerFile":[[1035,[{"start":103,"length":6,"messageText":"Cannot find module 'clsx' or its corresponding type declarations.","category":1,"code":2307},{"start":135,"length":16,"messageText":"Cannot find module 'tailwind-merge' or its corresponding type declarations.","category":1,"code":2307}]],[1036,[{"start":35,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":75,"length":14,"messageText":"Cannot find module 'echarts/core' or its corresponding type declarations.","category":1,"code":2307}]],[1039,[{"start":44,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":78,"length":14,"messageText":"Cannot find module 'echarts/core' or its corresponding type declarations.","category":1,"code":2307},{"start":245,"length":16,"messageText":"Cannot find module 'echarts/charts' or its corresponding type declarations.","category":1,"code":2307},{"start":450,"length":20,"messageText":"Cannot find module 'echarts/components' or its corresponding type declarations.","category":1,"code":2307},{"start":503,"length":19,"messageText":"Cannot find module 'echarts/renderers' or its corresponding type declarations.","category":1,"code":2307},{"start":559,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":7152,"length":272,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1042,[{"start":57,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307}]],[1043,[{"start":35,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307}]],[1044,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":68,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":6971,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1045,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":68,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":5975,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1046,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":68,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":5485,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1047,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":159,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":182,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":194,"length":143,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":194,"length":143,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":467,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":490,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":502,"length":101,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":744,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":767,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":779,"length":113,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1037,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1060,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1072,"length":101,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1326,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1349,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1361,"length":66,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1571,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1594,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1606,"length":98,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1048,[{"start":2932,"length":263,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1049,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":65,"length":25,"messageText":"Cannot find module '@radix-ui/react-popover' or its corresponding type declarations.","category":1,"code":2307},{"start":426,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":483,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":495,"length":710,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1050,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":63,"length":23,"messageText":"Cannot find module '@radix-ui/react-label' or its corresponding type declarations.","category":1,"code":2307},{"start":126,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":500,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":523,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":535,"length":101,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1051,[{"start":72,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":119,"length":18,"messageText":"Cannot find module '@neo4j-nvl/react' or its corresponding type declarations.","category":1,"code":2307},{"start":187,"length":18,"messageText":"Cannot find module '@neo4j-nvl/react' or its corresponding type declarations.","category":1,"code":2307},{"start":228,"length":17,"messageText":"Cannot find module '@neo4j-nvl/base' or its corresponding type declarations.","category":1,"code":2307},{"start":322,"length":17,"messageText":"Cannot find module '@neo4j-nvl/base' or its corresponding type declarations.","category":1,"code":2307},{"start":10871,"length":4,"messageText":"Parameter 'prev' implicitly has an 'any' type.","category":1,"code":7006},{"start":12762,"length":1,"messageText":"Parameter 'n' implicitly has an 'any' type.","category":1,"code":7006},{"start":13753,"length":4,"messageText":"Parameter 'node' implicitly has an 'any' type.","category":1,"code":7006},{"start":13959,"length":1,"messageText":"Parameter 'x' implicitly has an 'any' type.","category":1,"code":7006},{"start":14079,"length":4,"messageText":"Parameter 'node' implicitly has an 'any' type.","category":1,"code":7006},{"start":14085,"length":4,"messageText":"Parameter '_hit' implicitly has an 'any' type.","category":1,"code":7006},{"start":14091,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":14152,"length":1,"messageText":"Parameter 'n' implicitly has an 'any' type.","category":1,"code":7006},{"start":14464,"length":4,"messageText":"Parameter 'node' implicitly has an 'any' type.","category":1,"code":7006},{"start":14470,"length":4,"messageText":"Parameter '_hit' implicitly has an 'any' type.","category":1,"code":7006},{"start":14476,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":14619,"length":1,"messageText":"Parameter 'n' implicitly has an 'any' type.","category":1,"code":7006},{"start":15063,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":16586,"length":433,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":21479,"length":1282,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '([lbl, propKeys]: [any, any]) => Element' is not assignable to parameter of type '(value: unknown, index: number, array: unknown[]) => Element'.","category":1,"code":2345,"next":[{"messageText":"Types of parameters '__0' and 'value' are incompatible.","category":1,"code":2328,"next":[{"messageText":"Type 'unknown' is not assignable to type '[any, any]'.","category":1,"code":2322}]}]}},{"start":21971,"length":4,"messageText":"Parameter 'prev' implicitly has an 'any' type.","category":1,"code":7006},{"start":22518,"length":3,"messageText":"Parameter 'key' implicitly has an 'any' type.","category":1,"code":7006}]],[1053,[{"start":34,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":57,"length":9,"messageText":"Cannot find module 'leaflet' or its corresponding type declarations.","category":1,"code":2307},{"start":7377,"length":272,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1054,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":58,"length":14,"messageText":"Cannot find module 'echarts/core' or its corresponding type declarations.","category":1,"code":2307},{"start":116,"length":16,"messageText":"Cannot find module 'echarts/charts' or its corresponding type declarations.","category":1,"code":2307},{"start":183,"length":20,"messageText":"Cannot find module 'echarts/components' or its corresponding type declarations.","category":1,"code":2307},{"start":236,"length":19,"messageText":"Cannot find module 'echarts/renderers' or its corresponding type declarations.","category":1,"code":2307},{"start":292,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":4563,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1055,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":58,"length":14,"messageText":"Cannot find module 'echarts/core' or its corresponding type declarations.","category":1,"code":2307},{"start":118,"length":16,"messageText":"Cannot find module 'echarts/charts' or its corresponding type declarations.","category":1,"code":2307},{"start":185,"length":20,"messageText":"Cannot find module 'echarts/components' or its corresponding type declarations.","category":1,"code":2307},{"start":238,"length":19,"messageText":"Cannot find module 'echarts/renderers' or its corresponding type declarations.","category":1,"code":2307},{"start":294,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":3130,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1056,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":58,"length":14,"messageText":"Cannot find module 'echarts/core' or its corresponding type declarations.","category":1,"code":2307},{"start":122,"length":16,"messageText":"Cannot find module 'echarts/charts' or its corresponding type declarations.","category":1,"code":2307},{"start":189,"length":20,"messageText":"Cannot find module 'echarts/components' or its corresponding type declarations.","category":1,"code":2307},{"start":242,"length":19,"messageText":"Cannot find module 'echarts/renderers' or its corresponding type declarations.","category":1,"code":2307},{"start":298,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":4202,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1057,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":58,"length":14,"messageText":"Cannot find module 'echarts/core' or its corresponding type declarations.","category":1,"code":2307},{"start":116,"length":16,"messageText":"Cannot find module 'echarts/charts' or its corresponding type declarations.","category":1,"code":2307},{"start":200,"length":20,"messageText":"Cannot find module 'echarts/components' or its corresponding type declarations.","category":1,"code":2307},{"start":253,"length":19,"messageText":"Cannot find module 'echarts/renderers' or its corresponding type declarations.","category":1,"code":2307},{"start":309,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":3708,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1058,[{"start":24,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":58,"length":14,"messageText":"Cannot find module 'echarts/core' or its corresponding type declarations.","category":1,"code":2307},{"start":120,"length":16,"messageText":"Cannot find module 'echarts/charts' or its corresponding type declarations.","category":1,"code":2307},{"start":187,"length":20,"messageText":"Cannot find module 'echarts/components' or its corresponding type declarations.","category":1,"code":2307},{"start":240,"length":19,"messageText":"Cannot find module 'echarts/renderers' or its corresponding type declarations.","category":1,"code":2307},{"start":296,"length":9,"messageText":"Cannot find module 'echarts' or its corresponding type declarations.","category":1,"code":2307},{"start":4824,"length":109,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1201,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":52,"length":22,"messageText":"Cannot find module '@radix-ui/react-slot' or its corresponding type declarations.","category":1,"code":2307},{"start":114,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":1577,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1588,"length":7,"messageText":"Binding element 'variant' implicitly has an 'any' type.","category":1,"code":7031},{"start":1597,"length":4,"messageText":"Binding element 'size' implicitly has an 'any' type.","category":1,"code":7031},{"start":1632,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1704,"length":120,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1202,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":152,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":163,"length":4,"messageText":"Binding element 'type' implicitly has an 'any' type.","category":1,"code":7031},{"start":181,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":210,"length":499,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":210,"length":499,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1203,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":70,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":967,"length":9,"messageText":"Property 'className' does not exist on type 'BadgeProps'.","category":1,"code":2339},{"start":978,"length":7,"messageText":"Property 'variant' does not exist on type 'BadgeProps'.","category":1,"code":2339},{"start":1028,"length":72,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1028,"length":72,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1204,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":64,"length":24,"messageText":"Cannot find module '@radix-ui/react-avatar' or its corresponding type declarations.","category":1,"code":2307},{"start":273,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":296,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":308,"length":168,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":691,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":714,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1073,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1096,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1205,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":81,"length":27,"messageText":"Cannot find module '@radix-ui/react-separator' or its corresponding type declarations.","category":1,"code":2307},{"start":310,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":384,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":401,"length":280,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1206,[{"start":136,"length":102,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1207,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":77,"length":23,"messageText":"Cannot find module '@radix-ui/react-label' or its corresponding type declarations.","category":1,"code":2307},{"start":122,"length":22,"messageText":"Cannot find module '@radix-ui/react-slot' or its corresponding type declarations.","category":1,"code":2307},{"start":271,"length":17,"messageText":"Cannot find module 'react-hook-form' or its corresponding type declarations.","category":1,"code":2307},{"start":858,"length":121,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1909,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1932,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2033,"length":67,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2325,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2348,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2734,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3237,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3260,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3333,"length":142,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3644,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3655,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":3677,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3852,"length":144,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4014,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1208,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":64,"length":24,"messageText":"Cannot find module '@radix-ui/react-select' or its corresponding type declarations.","category":1,"code":2307},{"start":135,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":470,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":481,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":503,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":515,"length":587,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1354,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1377,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1903,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1926,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2437,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2448,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":2491,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4041,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":4064,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4417,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":4428,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":4450,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4790,"length":80,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4990,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5322,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":5345,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1209,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":80,"length":26,"messageText":"Cannot find module '@radix-ui/react-checkbox' or its corresponding type declarations.","category":1,"code":2307},{"start":129,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":334,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":357,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":369,"length":593,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1210,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":68,"length":29,"messageText":"Cannot find module '@radix-ui/react-radio-group' or its corresponding type declarations.","category":1,"code":2307},{"start":121,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":332,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":355,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":380,"length":111,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":727,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":750,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1211,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":79,"length":24,"messageText":"Cannot find module '@radix-ui/react-switch' or its corresponding type declarations.","category":1,"code":2307},{"start":290,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":313,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":325,"length":759,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1212,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":164,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":187,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":212,"length":374,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":212,"length":374,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1213,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":64,"length":24,"messageText":"Cannot find module '@radix-ui/react-slider' or its corresponding type declarations.","category":1,"code":2307},{"start":273,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":296,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":308,"length":652,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1214,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":64,"length":24,"messageText":"Cannot find module '@radix-ui/react-dialog' or its corresponding type declarations.","category":1,"code":2307},{"start":107,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":161,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":1382,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1405,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1417,"length":261,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1958,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1969,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":1979,"length":4,"messageText":"Binding element 'size' implicitly has an 'any' type.","category":1,"code":7031},{"start":1997,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2550,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2581,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2833,"length":126,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3101,"length":137,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3440,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3463,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3871,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3894,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1215,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":69,"length":30,"messageText":"Cannot find module '@radix-ui/react-alert-dialog' or its corresponding type declarations.","category":1,"code":2307},{"start":527,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":550,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":562,"length":265,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1083,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1106,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2008,"length":124,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2289,"length":137,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2653,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2676,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3068,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3091,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3496,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3519,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3892,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3915,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1216,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":84,"length":31,"messageText":"Cannot find module '@radix-ui/react-dropdown-menu' or its corresponding type declarations.","category":1,"code":2307},{"start":160,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":763,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":774,"length":5,"messageText":"Binding element 'inset' implicitly has an 'any' type.","category":1,"code":7031},{"start":781,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":803,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":815,"length":433,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1526,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1549,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2442,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2481,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3584,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3595,"length":5,"messageText":"Binding element 'inset' implicitly has an 'any' type.","category":1,"code":7031},{"start":3614,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4293,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":4304,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":4314,"length":7,"messageText":"Binding element 'checked' implicitly has an 'any' type.","category":1,"code":7031},{"start":4335,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4722,"length":79,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4933,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5274,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":5285,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":5307,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":5669,"length":79,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5894,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6240,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":6251,"length":5,"messageText":"Binding element 'inset' implicitly has an 'any' type.","category":1,"code":7031},{"start":6270,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":6715,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":6738,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":7077,"length":107,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1217,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":79,"length":25,"messageText":"Cannot find module '@radix-ui/react-tooltip' or its corresponding type declarations.","category":1,"code":2307},{"start":444,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":483,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":495,"length":633,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1218,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":64,"length":23,"messageText":"Cannot find module '@radix-ui/react-toast' or its corresponding type declarations.","category":1,"code":2307},{"start":127,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":172,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":434,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":457,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":469,"length":240,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1889,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1900,"length":7,"messageText":"Binding element 'variant' implicitly has an 'any' type.","category":1,"code":7031},{"start":1921,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2287,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2310,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3123,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3146,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3901,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3924,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4300,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":4323,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1219,[{"start":76,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":3384,"length":4,"messageText":"Parameter 'open' implicitly has an 'any' type.","category":1,"code":7006}]],[1220,[{"start":253,"length":512,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":299,"length":2,"messageText":"Binding element 'id' implicitly has an 'any' type.","category":1,"code":7031},{"start":303,"length":5,"messageText":"Binding element 'title' implicitly has an 'any' type.","category":1,"code":7031},{"start":310,"length":11,"messageText":"Binding element 'description' implicitly has an 'any' type.","category":1,"code":7031},{"start":323,"length":6,"messageText":"Binding element 'action' implicitly has an 'any' type.","category":1,"code":7031}]],[1221,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":70,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":751,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":762,"length":7,"messageText":"Binding element 'variant' implicitly has an 'any' type.","category":1,"code":7031},{"start":783,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":795,"length":113,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":795,"length":113,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1050,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1073,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1085,"length":115,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1360,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1383,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1395,"length":101,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1222,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":62,"length":22,"messageText":"Cannot find module '@radix-ui/react-tabs' or its corresponding type declarations.","category":1,"code":2307},{"start":300,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":323,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":335,"length":194,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":744,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":767,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1490,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1513,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1223,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":81,"length":27,"messageText":"Cannot find module '@radix-ui/react-accordion' or its corresponding type declarations.","category":1,"code":2307},{"start":137,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":392,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":415,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":427,"length":100,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":747,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":758,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":780,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1544,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1555,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":1577,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1776,"length":44,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1830,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1224,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":72,"length":33,"messageText":"Cannot find module '@radix-ui/react-navigation-menu' or its corresponding type declarations.","category":1,"code":2307},{"start":126,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":181,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":404,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":415,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":437,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":449,"length":257,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":958,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":981,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1969,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1980,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":2002,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2634,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2657,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3460,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3483,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3495,"length":68,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4042,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4329,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":4352,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4676,"length":90,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1225,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":52,"length":22,"messageText":"Cannot find module '@radix-ui/react-slot' or its corresponding type declarations.","category":1,"code":2307},{"start":120,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":319,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":327,"length":52,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":327,"length":52,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":525,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":548,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":560,"length":177,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":890,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":913,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":925,"length":103,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1214,"length":7,"messageText":"Binding element 'asChild' implicitly has an 'any' type.","category":1,"code":7031},{"start":1223,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1246,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1589,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1612,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1624,"length":165,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1945,"length":130,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2113,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2272,"length":145,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2465,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2495,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2505,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1226,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":89,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":294,"length":142,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":294,"length":142,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":576,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":599,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":611,"length":103,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":863,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":886,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":898,"length":57,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1078,"length":6,"code":2344,"category":1,"messageText":"Type '\"size\"' does not satisfy the constraint '\"asChild\"'."},{"start":1227,"length":209,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1776,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1790,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2117,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2127,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2339,"length":114,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2501,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2537,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2547,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1227,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":63,"length":24,"messageText":"Cannot find module '@radix-ui/react-dialog' or its corresponding type declarations.","category":1,"code":2307},{"start":127,"length":26,"messageText":"Cannot find module 'class-variance-authority' or its corresponding type declarations.","category":1,"code":2307},{"start":172,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":545,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":568,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":580,"length":260,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2065,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2076,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":2098,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2585,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2616,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2879,"length":124,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3142,"length":137,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3476,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3499,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3871,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3894,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006}]],[1228,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":164,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":187,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":199,"length":47,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":199,"length":172,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":251,"length":111,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":365,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":522,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":545,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":557,"length":75,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":793,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":816,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":828,"length":100,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1087,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1110,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1122,"length":147,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1421,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1444,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1456,"length":164,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1771,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1794,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1806,"length":223,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2182,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2205,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2217,"length":173,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2550,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2573,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2585,"length":110,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1229,[{"start":37,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":119,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":193,"length":18,"messageText":"Cannot find module 'react-day-picker' or its corresponding type declarations.","category":1,"code":2307},{"start":660,"length":5216,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1129,"length":4,"messageText":"Parameter 'date' implicitly has an 'any' type.","category":1,"code":7006},{"start":4694,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":4705,"length":7,"messageText":"Binding element 'rootRef' implicitly has an 'any' type.","category":1,"code":7031},{"start":4762,"length":147,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4953,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":4964,"length":11,"messageText":"Binding element 'orientation' implicitly has an 'any' type.","category":1,"code":7031},{"start":5562,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":5620,"length":15,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5650,"length":81,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5773,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5792,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1230,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":64,"length":24,"messageText":"Cannot find module '@radix-ui/react-dialog' or its corresponding type declarations.","category":1,"code":2307},{"start":133,"length":6,"messageText":"Cannot find module 'cmdk' or its corresponding type declarations.","category":1,"code":2307},{"start":163,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":418,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":441,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":453,"length":192,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1492,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1515,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1527,"length":71,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1939,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2169,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2192,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2564,"length":5,"messageText":"Parameter 'props' implicitly has an 'any' type.","category":1,"code":7006},{"start":2571,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":2908,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":2931,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3505,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3528,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":3886,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":3909,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":4519,"length":142,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1232,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":56,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":330,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":340,"length":7,"messageText":"Binding element 'loading' implicitly has an 'any' type.","category":1,"code":7031},{"start":349,"length":11,"messageText":"Binding element 'loadingText' implicitly has an 'any' type.","category":1,"code":7031},{"start":362,"length":8,"messageText":"Binding element 'disabled' implicitly has an 'any' type.","category":1,"code":7031},{"start":372,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":395,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":424,"length":266,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1233,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":60,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":465,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":488,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":601,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":601,"length":706,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1169,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1269,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1301,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1234,[{"start":25,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":62,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":802,"length":272,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1235,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":85,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1079,"length":1692,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1236,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":1950,"length":60,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1950,"length":1728,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2017,"length":728,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2794,"length":176,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2996,"length":10,"messageText":"Parameter 'suggestion' implicitly has an 'any' type.","category":1,"code":7006},{"start":3025,"length":560,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3469,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3625,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3653,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3672,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1237,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":88,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1573,"length":2748,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1917,"length":45,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2024,"length":52,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2121,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2227,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key: string; variant: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":2403,"length":255,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2604,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":2719,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2837,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | number)[]; variant: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":2992,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3634,"length":339,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4122,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1238,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":118,"length":10,"messageText":"Cannot find module 'date-fns' or its corresponding type declarations.","category":1,"code":2307},{"start":171,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":218,"length":18,"messageText":"Cannot find module 'react-day-picker' or its corresponding type declarations.","category":1,"code":2307},{"start":1875,"length":1582,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2523,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2542,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2673,"length":22,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2732,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3170,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3412,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1239,[{"start":956,"length":799,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1240,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":336,"length":134,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":336,"length":486,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":496,"length":44,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":546,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":568,"length":38,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":613,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":651,"length":59,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":743,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":774,"length":22,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":804,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":816,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1241,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":56,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":371,"length":2,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":408,"length":43,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":475,"length":110,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":690,"length":50,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":746,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":768,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":779,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1242,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":1708,"length":76,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1708,"length":104,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1805,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2009,"length":3,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2037,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1243,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":76,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":582,"length":42,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":582,"length":76,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":651,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":692,"length":42,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":749,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":791,"length":43,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":849,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":888,"length":47,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":939,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":974,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":995,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1575,"length":70,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1692,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1749,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1824,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1865,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1880,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2225,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2237,"length":373,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2835,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2892,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2957,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3052,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3084,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3125,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3183,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3236,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3283,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3381,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3401,"length":53,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3540,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3572,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3613,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3653,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3791,"length":3,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key: string; keyName: string | undefined; value: unknown; depth: number; initialExpanded: number | boolean; isLast: boolean; }' is not assignable to type 'JsonNodeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'key' does not exist on type 'JsonNodeProps'.","category":1,"code":2339}]}},{"start":4058,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4112,"length":45,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4171,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4203,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4244,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4263,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4295,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4413,"length":167,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4713,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1244,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":276,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":968,"length":44,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":968,"length":1233,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1070,"length":25,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1106,"length":43,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1164,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1306,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1726,"length":65,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1851,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2195,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2413,"length":27,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2509,"length":3,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key: string; item: PropertyItem; editable: boolean; onSave: (value: string) => void | undefined; }' is not assignable to type '{ item: PropertyItem; editable: boolean; onSave: (value: string) => void; }'.","category":1,"code":2322,"next":[{"messageText":"Property 'key' does not exist on type '{ item: PropertyItem; editable: boolean; onSave: (value: string) => void; }'.","category":1,"code":2339}]}},{"start":2672,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3134,"length":99,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3240,"length":65,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3315,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3350,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3462,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3563,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":4070,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4097,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4149,"length":47,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4208,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4580,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4600,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1245,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":350,"length":44,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":350,"length":499,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":416,"length":22,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":450,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":464,"length":51,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":524,"length":27,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":562,"length":50,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":619,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":665,"length":37,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":715,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":741,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":768,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":818,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":832,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":843,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1246,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":87,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1326,"length":5,"messageText":"Binding element 'title' implicitly has an 'any' type.","category":1,"code":7031},{"start":1339,"length":8,"messageText":"Binding element 'subtitle' implicitly has an 'any' type.","category":1,"code":7031},{"start":1355,"length":7,"messageText":"Binding element 'actions' implicitly has an 'any' type.","category":1,"code":7031},{"start":1395,"length":9,"messageText":"Binding element 'className' implicitly has an 'any' type.","category":1,"code":7031},{"start":1412,"length":15,"messageText":"Binding element 'headerClassName' implicitly has an 'any' type.","category":1,"code":7031},{"start":1435,"length":16,"messageText":"Binding element 'contentClassName' implicitly has an 'any' type.","category":1,"code":7031},{"start":1459,"length":8,"messageText":"Binding element 'children' implicitly has an 'any' type.","category":1,"code":7031},{"start":1475,"length":21,"messageText":"Binding element 'onDragHandleMouseDown' implicitly has an 'any' type.","category":1,"code":7031},{"start":1504,"length":11,"messageText":"Binding element 'headerExtra' implicitly has an 'any' type.","category":1,"code":7031},{"start":1523,"length":9,"messageText":"Binding element 'onRefresh' implicitly has an 'any' type.","category":1,"code":7031},{"start":1576,"length":3,"messageText":"Parameter 'ref' implicitly has an 'any' type.","category":1,"code":7006},{"start":1608,"length":3207,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1933,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1989,"length":302,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2383,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2424,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2446,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2470,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2522,"length":51,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2580,"length":5,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2654,"length":50,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2714,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2752,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2771,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2790,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3192,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3225,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3581,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3621,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3778,"length":6,"messageText":"Parameter 'action' implicitly has an 'any' type.","category":1,"code":7006},{"start":3786,"length":5,"messageText":"Parameter 'index' implicitly has an 'any' type.","category":1,"code":7006},{"start":4599,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1247,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":303,"length":64,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":303,"length":251,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":390,"length":54,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":470,"length":43,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":523,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":537,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":548,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1248,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":74,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":614,"length":207,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":614,"length":1139,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":849,"length":54,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":931,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":953,"length":68,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1047,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1081,"length":36,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1145,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1199,"length":36,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1584,"length":26,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1689,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1725,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1745,"length":8,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1249,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":579,"length":360,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":579,"length":731,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":955,"length":27,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":988,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1041,"length":44,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1092,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1143,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string | number; variant: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":1301,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1250,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":281,"length":112,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":281,"length":140,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":415,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":610,"length":58,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":690,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1251,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":152,"length":19,"messageText":"Cannot find module 'react-grid-layout' or its corresponding type declarations.","category":1,"code":2307},{"start":213,"length":19,"messageText":"Cannot find module 'react-grid-layout' or its corresponding type declarations.","category":1,"code":2307},{"start":1461,"length":63,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1461,"length":470,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1563,"length":272,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1904,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1925,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2378,"length":60,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3254,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1252,[{"start":540,"length":266,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1253,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":260,"length":23,"messageText":"Cannot find module '@tanstack/react-table' or its corresponding type declarations.","category":1,"code":2307},{"start":440,"length":23,"messageText":"Cannot find module '@tanstack/react-table' or its corresponding type declarations.","category":1,"code":2307},{"start":523,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":5823,"length":5,"messageText":"Binding element 'table' implicitly has an 'any' type.","category":1,"code":7031},{"start":6030,"length":5,"messageText":"Parameter 'value' implicitly has an 'any' type.","category":1,"code":7006},{"start":6151,"length":3,"messageText":"Binding element 'row' implicitly has an 'any' type.","category":1,"code":7031},{"start":6249,"length":5,"messageText":"Parameter 'value' implicitly has an 'any' type.","category":1,"code":7006},{"start":8381,"length":3,"messageText":"Parameter 'row' implicitly has an 'any' type.","category":1,"code":7006},{"start":8733,"length":44,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":8733,"length":7831,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":8836,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":9512,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":9559,"length":35,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":9679,"length":11,"messageText":"Parameter 'headerGroup' implicitly has an 'any' type.","category":1,"code":7006},{"start":9785,"length":6,"messageText":"Parameter 'header' implicitly has an 'any' type.","category":1,"code":7006},{"start":10412,"length":611,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":11280,"length":3,"messageText":"Parameter 'row' implicitly has an 'any' type.","category":1,"code":7006},{"start":11714,"length":4,"messageText":"Parameter 'cell' implicitly has an 'any' type.","category":1,"code":7006},{"start":12265,"length":270,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":12921,"length":53,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":13062,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":13096,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":14215,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":14481,"length":130,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":14722,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15283,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15395,"length":57,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15465,"length":54,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15858,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15877,"length":47,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":16045,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":16528,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":16558,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1254,[{"start":28,"length":23,"messageText":"Cannot find module '@tanstack/react-table' or its corresponding type declarations.","category":1,"code":2307},{"start":121,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":697,"length":44,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1255,[{"start":27,"length":23,"messageText":"Cannot find module '@tanstack/react-table' or its corresponding type declarations.","category":1,"code":2307},{"start":132,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":552,"length":2861,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1218,"length":5,"messageText":"Parameter 'value' implicitly has an 'any' type.","category":1,"code":7006}]],[1256,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":60,"length":23,"messageText":"Cannot find module '@tanstack/react-table' or its corresponding type declarations.","category":1,"code":2307},{"start":119,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1051,"length":3896,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1378,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: number; variant: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":1577,"length":42,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1684,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | number)[]; variant: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":2072,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; key: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":2379,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3428,"length":353,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3854,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4027,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4047,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4137,"length":85,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4296,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1257,[{"start":27,"length":23,"messageText":"Cannot find module '@tanstack/react-table' or its corresponding type declarations.","category":1,"code":2307},{"start":78,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":499,"length":1030,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1030,"length":6,"messageText":"Parameter 'column' implicitly has an 'any' type.","category":1,"code":7006},{"start":1147,"length":6,"messageText":"Parameter 'column' implicitly has an 'any' type.","category":1,"code":7006},{"start":1343,"length":5,"messageText":"Parameter 'value' implicitly has an 'any' type.","category":1,"code":7006}]],[1258,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":187,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":596,"length":33,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1672,"length":57,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1771,"length":410,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2222,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2275,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2306,"length":38,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2358,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2413,"length":66,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2527,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2556,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2580,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1259,[{"start":29,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":604,"length":1263,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1383,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: \"string\" | \"number\" | \"boolean\" | \"object\" | \"date\"; variant: string; className: any; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}}]],[1260,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":999,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":999,"length":522,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1515,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1281,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":561,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1071,"length":86,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1835,"length":51,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2060,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":2124,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2183,"length":29,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2353,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":2771,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2966,"length":29,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3174,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3309,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3581,"length":29,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3904,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3967,"length":29,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4165,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":4269,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4328,"length":29,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4551,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":4624,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4902,"length":27,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4936,"length":273,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5156,"length":4,"messageText":"Parameter 'prev' implicitly has an 'any' type.","category":1,"code":7006},{"start":5386,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5425,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6412,"length":67,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6539,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6593,"length":44,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6772,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":6832,"length":62,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6990,"length":3,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any; key: string; title: string; defaultOpen: boolean; }' is not assignable to type '{ title: string; defaultOpen?: boolean | undefined; children: React.ReactNode; }'.","category":1,"code":2322,"next":[{"messageText":"Property 'key' does not exist on type '{ title: string; defaultOpen?: boolean | undefined; children: React.ReactNode; }'.","category":1,"code":2339}]}},{"start":7062,"length":4,"messageText":"'opts' is of type 'unknown'.","category":1,"code":18046},{"start":7072,"length":3,"messageText":"Parameter 'opt' implicitly has an 'any' type.","category":1,"code":7006},{"start":7125,"length":3,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key: any; option: any; value: unknown; onChange: (key: string, value: unknown) => void; columns: string[] | undefined; }' is not assignable to type '{ option: ChartOptionDef; value: unknown; onChange: (key: string, value: unknown) => void; columns?: string[] | undefined; }'.","category":1,"code":2322,"next":[{"messageText":"Property 'key' does not exist on type '{ option: ChartOptionDef; value: unknown; onChange: (key: string, value: unknown) => void; columns?: string[] | undefined; }'.","category":1,"code":2339}]}},{"start":7364,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":7375,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1282,[{"start":287,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":742,"length":1688,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":960,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":1583,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":2097,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1283,[{"start":1254,"length":174,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1255,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; variant: \"default\" | \"outline\" | \"secondary\" | \"destructive\"; className: any; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}}]],[1284,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":3312,"length":4,"messageText":"Parameter 'prev' implicitly has an 'any' type.","category":1,"code":7006},{"start":3476,"length":69,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3476,"length":2047,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":3552,"length":38,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3634,"length":182,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3939,"length":42,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3982,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4150,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":4762,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":4936,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4961,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4974,"length":33,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5505,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5516,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1285,[{"start":72,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1020,"length":2640,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2216,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1286,[{"start":31,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":584,"length":917,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1287,[{"start":26,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1005,"length":429,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1288,[{"start":33,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":747,"length":849,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1077,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1289,[{"start":480,"length":152,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1290,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":88,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1888,"length":45,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2113,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2318,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2720,"length":52,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2785,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3157,"length":4,"messageText":"Parameter 'term' implicitly has an 'any' type.","category":1,"code":7006},{"start":3725,"length":264,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4070,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4720,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4733,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4803,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5000,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6135,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":6146,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1291,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":88,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":2091,"length":63,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2176,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2229,"length":51,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2795,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3124,"length":53,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3243,"length":60,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3352,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3461,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key: string; variant: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":3577,"length":300,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3764,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3946,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4072,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | number)[]; variant: string; className: string; }' is not assignable to type 'BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'BadgeProps'.","category":1,"code":2339}]}},{"start":4235,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4611,"length":4,"messageText":"Parameter 'term' implicitly has an 'any' type.","category":1,"code":7006},{"start":5027,"length":360,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5492,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5709,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1293,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":70,"length":10,"messageText":"Cannot find module 'date-fns' or its corresponding type declarations.","category":1,"code":2307},{"start":126,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1274,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1274,"length":1456,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1471,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2713,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2724,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1294,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":129,"length":10,"messageText":"Cannot find module 'date-fns' or its corresponding type declarations.","category":1,"code":2307},{"start":185,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":232,"length":18,"messageText":"Cannot find module 'react-day-picker' or its corresponding type declarations.","category":1,"code":2307},{"start":2753,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":2753,"length":2397,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2950,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3888,"length":22,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":3925,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4414,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":4693,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5133,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":5144,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1295,[{"start":1508,"length":883,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1296,[{"start":33,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1641,"length":1851,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":2466,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":2876,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1297,[{"start":33,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":1582,"length":63,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1298,[{"start":18,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":976,"length":56,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":976,"length":837,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1072,"length":46,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1354,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":1424,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1477,"length":45,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1538,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1585,"length":40,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1639,"length":4,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1806,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1299,[{"start":38,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":11194,"length":127,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":11194,"length":296,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":11484,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":11518,"length":434,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1300,[{"start":2271,"length":316,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1302,[{"start":151,"length":29,"messageText":"Cannot find module 'vscode-languageserver-types' or its corresponding type declarations.","category":1,"code":2307}]],[1303,[{"start":192,"length":26,"messageText":"Cannot find module '@codemirror/autocomplete' or its corresponding type declarations.","category":1,"code":2307},{"start":279,"length":32,"messageText":"Cannot find module '@neo4j-cypher/language-support' or its corresponding type declarations.","category":1,"code":2307},{"start":372,"length":29,"messageText":"Cannot find module 'vscode-languageserver-types' or its corresponding type declarations.","category":1,"code":2307},{"start":2457,"length":7,"messageText":"Parameter 'context' implicitly has an 'any' type.","category":1,"code":7006},{"start":3295,"length":1,"messageText":"Parameter 'o' implicitly has an 'any' type.","category":1,"code":7006},{"start":4204,"length":3,"messageText":"Parameter 'tag' implicitly has an 'any' type.","category":1,"code":7006}]],[1304,[{"start":154,"length":22,"messageText":"Cannot find module '@codemirror/language' or its corresponding type declarations.","category":1,"code":2307},{"start":205,"length":19,"messageText":"Cannot find module '@codemirror/state' or its corresponding type declarations.","category":1,"code":2307},{"start":260,"length":15,"messageText":"Cannot find module '@lezer/common' or its corresponding type declarations.","category":1,"code":2307},{"start":314,"length":18,"messageText":"Cannot find module '@lezer/highlight' or its corresponding type declarations.","category":1,"code":2307},{"start":371,"length":32,"messageText":"Cannot find module '@neo4j-cypher/language-support' or its corresponding type declarations.","category":1,"code":2307}]],[1305,[{"start":288,"length":19,"messageText":"Cannot find module '@codemirror/state' or its corresponding type declarations.","category":1,"code":2307},{"start":379,"length":15,"messageText":"Cannot find module '@lezer/common' or its corresponding type declarations.","category":1,"code":2307},{"start":462,"length":32,"messageText":"Cannot find module '@neo4j-cypher/language-support' or its corresponding type declarations.","category":1,"code":2307}]],[1306,[{"start":166,"length":19,"messageText":"Cannot find module '@codemirror/state' or its corresponding type declarations.","category":1,"code":2307},{"start":229,"length":18,"messageText":"Cannot find module '@codemirror/view' or its corresponding type declarations.","category":1,"code":2307},{"start":279,"length":32,"messageText":"Cannot find module '@neo4j-cypher/language-support' or its corresponding type declarations.","category":1,"code":2307},{"start":370,"length":29,"messageText":"Cannot find module 'vscode-languageserver-types' or its corresponding type declarations.","category":1,"code":2307},{"start":1859,"length":5,"messageText":"Parameter 'param' implicitly has an 'any' type.","category":1,"code":7006},{"start":1866,"length":5,"messageText":"Parameter 'index' implicitly has an 'any' type.","category":1,"code":7006},{"start":4738,"length":5,"messageText":"Parameter 'state' implicitly has an 'any' type.","category":1,"code":7006},{"start":4799,"length":8,"messageText":"Parameter 'tooltips' implicitly has an 'any' type.","category":1,"code":7006},{"start":4809,"length":2,"messageText":"Parameter 'tr' implicitly has an 'any' type.","category":1,"code":7006},{"start":4952,"length":1,"messageText":"Parameter 'f' implicitly has an 'any' type.","category":1,"code":7006},{"start":4985,"length":5,"messageText":"Parameter 'state' implicitly has an 'any' type.","category":1,"code":7006}]],[1307,[{"start":360,"length":26,"messageText":"Cannot find module '@codemirror/autocomplete' or its corresponding type declarations.","category":1,"code":2307},{"start":458,"length":22,"messageText":"Cannot find module '@codemirror/language' or its corresponding type declarations.","category":1,"code":2307},{"start":512,"length":32,"messageText":"Cannot find module '@neo4j-cypher/language-support' or its corresponding type declarations.","category":1,"code":2307}]],[1309,[{"start":562,"length":19,"messageText":"Cannot find module '@codemirror/state' or its corresponding type declarations.","category":1,"code":2307},{"start":2071,"length":22,"messageText":"Cannot find module '@codemirror/lang-sql' or its corresponding type declarations.","category":1,"code":2307}]],[1310,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":80,"length":14,"messageText":"Cannot find module 'lucide-react' or its corresponding type declarations.","category":1,"code":2307},{"start":2589,"length":18,"messageText":"Cannot find module '@codemirror/view' or its corresponding type declarations.","category":1,"code":2307},{"start":2621,"length":22,"messageText":"Cannot find module '@codemirror/commands' or its corresponding type declarations.","category":1,"code":2307},{"start":2657,"length":26,"messageText":"Cannot find module '@codemirror/autocomplete' or its corresponding type declarations.","category":1,"code":2307},{"start":2697,"length":28,"messageText":"Cannot find module '@codemirror/theme-one-dark' or its corresponding type declarations.","category":1,"code":2307},{"start":8445,"length":18,"messageText":"Cannot find module '@codemirror/view' or its corresponding type declarations.","category":1,"code":2307},{"start":8481,"length":19,"messageText":"Cannot find module '@codemirror/state' or its corresponding type declarations.","category":1,"code":2307},{"start":15654,"length":89,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15654,"length":2721,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":15772,"length":79,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15860,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":15912,"length":60,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":16011,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":16831,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":16846,"length":41,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":17230,"length":258,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":17503,"length":27,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":17533,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":17554,"length":23,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":17591,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":17611,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":18088,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":18101,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":18152,"length":212,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":18369,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1311,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":995,"length":151,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":995,"length":997,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875},{"start":1176,"length":130,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1336,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1359,"length":74,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1442,"length":105,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1580,"length":7,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1594,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1661,"length":254,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1713,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":1755,"length":4,"messageText":"Parameter 'prev' implicitly has an 'any' type.","category":1,"code":7006},{"start":1963,"length":9,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026},{"start":1986,"length":6,"messageText":"JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.","category":1,"code":7026}]],[1312,[{"start":2189,"length":2718,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1314,[{"start":23,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":73,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":497,"length":81,"messageText":"This JSX tag requires the module path 'react/jsx-runtime' to exist, but none could be found. Make sure you have types for the appropriate package installed.","category":1,"code":2875}]],[1315,[{"start":46,"length":7,"messageText":"Cannot find module 'react' or its corresponding type declarations.","category":1,"code":2307},{"start":6831,"length":4,"messageText":"Parameter 'prev' implicitly has an 'any' type.","category":1,"code":7006},{"start":6878,"length":2,"messageText":"Parameter 'id' implicitly has an 'any' type.","category":1,"code":7006}]],[1467,[{"start":11693,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}}]],[1470,[{"start":1789,"length":5,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(props: {}, context?: any): string | number | bigint | boolean | ReactElement> | Iterable | Promise<...> | Component<...> | null | undefined', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ nodes: GraphNode[]; edges: GraphEdge[]; layout: \"force\" | \"circular\"; showLabels: boolean; onNodeSelect: ((ids: string[]) => void) | undefined; autoFit: boolean | undefined; stylingRules: StylingRule[] | undefined; paramValues: Record<...> | undefined; }' is not assignable to type 'IntrinsicAttributes'.","category":1,"code":2322,"next":[{"messageText":"Property 'nodes' does not exist on type 'IntrinsicAttributes'.","category":1,"code":2339}]}]},{"messageText":"Overload 2 of 2, '(props: {}): string | number | bigint | boolean | ReactElement> | Iterable | Promise<...> | Component<...> | null | undefined', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ nodes: GraphNode[]; edges: GraphEdge[]; layout: \"force\" | \"circular\"; showLabels: boolean; onNodeSelect: ((ids: string[]) => void) | undefined; autoFit: boolean | undefined; stylingRules: StylingRule[] | undefined; paramValues: Record<...> | undefined; }' is not assignable to type 'IntrinsicAttributes'.","category":1,"code":2322,"next":[{"messageText":"Property 'nodes' does not exist on type 'IntrinsicAttributes'.","category":1,"code":2339}]}]}]},"relatedInformation":[]}]],[1695,[{"start":3013,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":4043,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006}]],[1696,[{"start":7984,"length":3,"messageText":"Parameter 'val' implicitly has an 'any' type.","category":1,"code":7006},{"start":16154,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":19713,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":20234,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":23204,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: \"admin\" | \"viewer\" | \"editor\" | \"owner\"; variant: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}}]],[1700,[{"start":11370,"length":4,"messageText":"Parameter 'open' implicitly has an 'any' type.","category":1,"code":7006},{"start":12740,"length":4,"messageText":"Parameter 'open' implicitly has an 'any' type.","category":1,"code":7006}]],[1701,[{"start":3819,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1702,[{"start":9748,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: \"admin\" | \"owner\" | \"viewer\" | \"editor\"; variant: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}}]],[1879,[{"start":1733,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3367,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: ParameterType; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":3694,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":4920,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":6642,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":8807,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":9668,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006}]],[1880,[{"start":2745,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":4397,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":5336,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":6038,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":8484,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1882,[{"start":1043,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1883,[{"start":4480,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":7716,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006}]],[1884,[{"start":1812,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1885,[{"start":5110,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":7921,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":9242,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006}]],[1886,[{"start":3561,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | number)[]; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":4245,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":4915,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":6512,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":7184,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":7953,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":8814,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":9591,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":11976,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":12403,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":13048,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":13242,"length":1,"messageText":"Parameter 's' implicitly has an 'any' type.","category":1,"code":7006},{"start":13805,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1887,[{"start":37998,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":40739,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":41071,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":43354,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":43976,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":44613,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":45128,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":45709,"length":20,"code":2322,"category":1,"messageText":{"messageText":"Type 'string[]' is not assignable to type '(\"map\" | \"parameter-select\" | \"form\" | \"markdown\" | \"iframe\" | \"graph\" | \"bar\" | \"line\" | \"pie\" | \"json\" | \"table\" | \"single-value\" | \"gauge\" | \"sankey\" | \"sunburst\" | \"radar\" | \"treemap\")[]'.","category":1,"code":2322,"next":[{"messageText":"Type 'string' is not assignable to type '\"map\" | \"parameter-select\" | \"form\" | \"markdown\" | \"iframe\" | \"graph\" | \"bar\" | \"line\" | \"pie\" | \"json\" | \"table\" | \"single-value\" | \"gauge\" | \"sankey\" | \"sunburst\" | \"radar\" | \"treemap\"'.","category":1,"code":2322}]},"relatedInformation":[{"file":"./src/components/widget-editor/chart-type-selector.tsx","start":1529,"length":20,"messageText":"The expected type comes from property 'compatibleChartTypes' which is declared here on type 'IntrinsicAttributes & ChartTypeSelectorProps'","category":3,"code":6500}]},{"start":54761,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":55786,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":57110,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":58034,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":59442,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":62748,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006}]],[1888,[{"start":2434,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":2759,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006}]],[1889,[{"start":2686,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3136,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3653,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1893,[{"start":20423,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":29977,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006}]],[1896,[{"start":2211,"length":1,"messageText":"Parameter 'o' implicitly has an 'any' type.","category":1,"code":7006},{"start":3686,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":4130,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1897,[{"start":4272,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string | undefined; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":5939,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":7516,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":7944,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":8370,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1898,[{"start":1829,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":2199,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":6812,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: UserRole; variant: \"default\" | \"outline\" | \"secondary\" | \"destructive\"; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":7139,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: UserRole; variant: \"default\" | \"outline\" | \"secondary\" | \"destructive\"; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":7614,"length":3,"messageText":"Parameter 'val' implicitly has an 'any' type.","category":1,"code":7006},{"start":11823,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":12239,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":12645,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":13041,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":13858,"length":7,"messageText":"Parameter 'checked' implicitly has an 'any' type.","category":1,"code":7006},{"start":15982,"length":4,"messageText":"Parameter 'open' implicitly has an 'any' type.","category":1,"code":7006}]],[1899,[{"start":1243,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":1598,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]],[1900,[{"start":5559,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":5667,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":5837,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; key: string; variant: string; className: string; }' is not assignable to type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & BadgeProps'.","category":1,"code":2339}]}},{"start":11891,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006}]]],"affectedFilesPendingEmit":[1955,1913,1914,1915,1918,1917,1919,1920,1916,1923,1921,1922,1924,1925,1926,1927,1928,1930,1931,1932,1929,1933,1936,1937,1935,1938,1939,1934,1940,1942,1941,1944,1943,1945,1946,1949,1948,1951,1950,1947,1953,1952,1912,1911,515,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,618,636,994,995,996,997,998,616,617,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,516,525,1096,1097,1098,1095,1612,1691,1613,1693,1692,1890,1702,1891,1893,1894,1695,1696,1100,1896,1895,1099,1897,1898,1900,1127,1132,1131,1147,1146,1149,1148,1151,1150,1152,1145,1154,1153,1157,1159,1158,1162,1161,1156,1164,1163,1165,1169,1168,1155,1171,1170,1174,1173,1175,1172,1180,1179,1178,1177,1183,1182,1185,1184,1188,1190,1189,1187,1191,1193,1195,1194,1192,1186,1199,1198,1200,1197,1196,1611,1901,1902,1903,1904,1905,1322,1329,1330,1699,1697,1698,1888,1700,1899,1892,1342,1521,1467,1701,1514,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1381,1382,1351,1350,1347,1348,1346,1345,1349,1344,1343,1341,1331,1340,1610,1889,1510,1887,1906,1907,1384,1883,1703,1882,1879,1880,1881,1704,1885,1886,1383,1884,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1385,1387,1388,1389,1390,1391,1394,1339,1395,1397,1398,1400,1401,1402,1063,1443,1444,1445,1446,1447,1448,1449,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1338,1130,1144,1417,1575,1576,1577,1578,1133,1126,1134,1128,1135,1129,1062,1423,1422,1426,1421,1418,1427,1137,1140,1136,1160,1166,1428,1425,1399,1581,1061,1060,1321,1429,1430,1328,1431,1424,1432,1167,1433,1176,1434,1141,1181,1138,1435,1125,1436,1386,1142,1392,1143,1437,1438,1439,1440,1441,1442,1908,1582,1909,1583,1584,1456,1420,1523,1528,1470,1525,1542,1520,1459,1473,1452,1517,1462,1538,1419,1531,1586,1455,1522,1527,1469,1524,1585,1519,1458,1472,1451,1516,1461,1537,1530,1464,1534,1512,1540,1465,1535,1513,1588,1589,1590,1591,1592,1593,1454,1526,1468,1532,1587,1518,1457,1471,1515,1460,1536,1529,1453,1463,1533,1511,1539,1541,1450,1085,1596,1597,1598,1599,1600,1601,1594,1396,1466,1327,1393,1595,1603,551,613,1606],"version":"5.9.3"} \ No newline at end of file +{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/next/dist/styled-jsx/types/css.d.ts","../node_modules/next/dist/styled-jsx/types/macro.d.ts","../node_modules/next/dist/styled-jsx/types/style.d.ts","../node_modules/next/dist/styled-jsx/types/global.d.ts","../node_modules/next/dist/styled-jsx/types/index.d.ts","../node_modules/next/dist/server/get-page-files.d.ts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/web-globals/abortcontroller.d.ts","../node_modules/@types/node/web-globals/domexception.d.ts","../node_modules/@types/node/web-globals/events.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/web-globals/fetch.d.ts","../node_modules/@types/node/web-globals/navigator.d.ts","../node_modules/@types/node/web-globals/storage.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/inspector.generated.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/sqlite.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/react/canary.d.ts","../node_modules/@types/react/experimental.d.ts","../node_modules/@types/react-dom/index.d.ts","../node_modules/@types/react-dom/canary.d.ts","../node_modules/@types/react-dom/experimental.d.ts","../node_modules/next/dist/lib/fallback.d.ts","../node_modules/next/dist/compiled/webpack/webpack.d.ts","../node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","../node_modules/next/dist/shared/lib/entry-constants.d.ts","../node_modules/next/dist/shared/lib/constants.d.ts","../node_modules/next/dist/lib/bundler.d.ts","../node_modules/next/dist/server/config.d.ts","../node_modules/next/dist/lib/load-custom-routes.d.ts","../node_modules/next/dist/shared/lib/image-config.d.ts","../node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","../node_modules/next/dist/server/body-streams.d.ts","../node_modules/next/dist/server/request/search-params.d.ts","../node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.d.ts","../node_modules/next/dist/server/app-render/vary-params.d.ts","../node_modules/next/dist/server/request/params.d.ts","../node_modules/next/dist/server/route-kind.d.ts","../node_modules/next/dist/server/route-definitions/route-definition.d.ts","../node_modules/next/dist/server/route-matches/route-match.d.ts","../node_modules/next/dist/client/components/app-router-headers.d.ts","../node_modules/next/dist/server/lib/cache-control.d.ts","../node_modules/next/dist/shared/lib/app-router-types.d.ts","../node_modules/next/dist/server/lib/cache-handlers/types.d.ts","../node_modules/next/dist/server/use-cache/use-cache-wrapper.d.ts","../node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","../node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","../node_modules/next/dist/lib/constants.d.ts","../node_modules/next/dist/server/render-result.d.ts","../node_modules/next/dist/server/response-cache/types.d.ts","../node_modules/next/dist/server/response-cache/index.d.ts","../node_modules/@types/react/jsx-runtime.d.ts","../node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","../node_modules/next/dist/build/static-paths/types.d.ts","../node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","../node_modules/next/dist/build/adapter/setup-node-env.external.d.ts","../node_modules/next/dist/server/instrumentation/types.d.ts","../node_modules/next/dist/lib/setup-exception-listeners.d.ts","../node_modules/next/dist/lib/worker.d.ts","../node_modules/next/dist/server/lib/experimental/ppr.d.ts","../node_modules/next/dist/lib/page-types.d.ts","../node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","../node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","../node_modules/next/dist/build/analysis/get-page-static-info.d.ts","../node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","../node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","../node_modules/next/dist/server/require-hook.d.ts","../node_modules/next/dist/server/node-polyfill-crypto.d.ts","../node_modules/next/dist/server/node-environment-baseline.d.ts","../node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","../node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","../node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","../node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.d.ts","../node_modules/next/dist/server/node-environment-extensions/random.d.ts","../node_modules/next/dist/server/node-environment-extensions/date.d.ts","../node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","../node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","../node_modules/next/dist/server/node-environment.d.ts","../node_modules/next/dist/build/page-extensions-type.d.ts","../node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","../node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","../node_modules/next/dist/server/lib/i18n-provider.d.ts","../node_modules/next/dist/server/web/next-url.d.ts","../node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","../node_modules/next/dist/server/web/spec-extension/cookies.d.ts","../node_modules/next/dist/server/web/spec-extension/request.d.ts","../node_modules/next/dist/shared/lib/deep-readonly.d.ts","../node_modules/next/dist/server/lib/incremental-cache/index.d.ts","../node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","../node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","../node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","../node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","../node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","../node_modules/next/dist/shared/lib/mitt.d.ts","../node_modules/next/dist/client/with-router.d.ts","../node_modules/next/dist/client/router.d.ts","../node_modules/next/dist/client/route-loader.d.ts","../node_modules/next/dist/client/page-loader.d.ts","../node_modules/next/dist/shared/lib/bloom-filter.d.ts","../node_modules/next/dist/shared/lib/router/router.d.ts","../node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","../node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","../node_modules/next/dist/client/components/readonly-url-search-params.d.ts","../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","../node_modules/next/dist/client/flight-data-helpers.d.ts","../node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","../node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","../node_modules/next/dist/client/components/segment-cache/types.d.ts","../node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","../node_modules/next/dist/client/components/segment-cache/scheduler.d.ts","../node_modules/next/dist/client/components/segment-cache/cache-map.d.ts","../node_modules/next/dist/client/components/segment-cache/vary-path.d.ts","../node_modules/next/dist/client/components/segment-cache/cache.d.ts","../node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","../node_modules/next/dist/client/components/segment-cache/navigation.d.ts","../node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","../node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","../node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","../node_modules/next/dist/build/templates/pages.d.ts","../node_modules/next/dist/server/route-modules/pages/module.d.ts","../node_modules/next/dist/server/render.d.ts","../node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","../node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","../node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","../node_modules/next/dist/server/route-matchers/route-matcher.d.ts","../node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","../node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","../node_modules/next/dist/server/normalizers/normalizer.d.ts","../node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","../node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","../node_modules/next/dist/server/normalizers/request/suffix.d.ts","../node_modules/next/dist/server/normalizers/request/rsc.d.ts","../node_modules/next/dist/server/normalizers/request/next-data.d.ts","../node_modules/next/dist/server/after/builtin-request-context.d.ts","../node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","../node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","../node_modules/next/dist/server/load-default-error-components.d.ts","../node_modules/next/dist/server/base-server.d.ts","../node_modules/next/dist/server/after/after.d.ts","../node_modules/next/dist/server/after/after-context.d.ts","../node_modules/next/dist/server/use-cache/cache-life.d.ts","../node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","../node_modules/next/dist/server/lib/lazy-result.d.ts","../node_modules/next/dist/server/app-render/create-error-handler.d.ts","../node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","../node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","../node_modules/next/dist/server/async-storage/work-store.d.ts","../node_modules/next/dist/server/web/http.d.ts","../node_modules/next/dist/client/components/hooks-server-context.d.ts","../node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","../node_modules/next/dist/client/components/redirect-status-code.d.ts","../node_modules/next/dist/client/components/redirect-error.d.ts","../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","../node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","../node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","../node_modules/next/dist/server/app-render/cache-signal.d.ts","../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.d.ts","../node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.d.ts","../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","../node_modules/next/dist/server/app-render/instant-validation/instant-samples.d.ts","../node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","../node_modules/next/dist/server/lib/implicit-tags.d.ts","../node_modules/next/dist/server/app-render/staged-rendering.d.ts","../node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","../node_modules/next/dist/build/templates/app-route.d.ts","../node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","../node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","../node_modules/next/dist/server/route-modules/app-route/module.d.ts","../node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","../node_modules/next/dist/build/segment-config/app/app-segments.d.ts","../node_modules/next/dist/build/get-supported-browsers.d.ts","../node_modules/next/dist/build/utils.d.ts","../node_modules/next/dist/build/rendering-mode.d.ts","../node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","../node_modules/next/dist/server/lib/cpu-profile.d.ts","../node_modules/next/dist/build/turborepo-access-trace/types.d.ts","../node_modules/next/dist/build/turborepo-access-trace/result.d.ts","../node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","../node_modules/next/dist/build/turborepo-access-trace/index.d.ts","../node_modules/next/dist/export/routes/types.d.ts","../node_modules/next/dist/export/types.d.ts","../node_modules/next/dist/export/worker.d.ts","../node_modules/next/dist/build/worker.d.ts","../node_modules/next/dist/build/index.d.ts","../node_modules/next/dist/lib/coalesced-function.d.ts","../node_modules/next/dist/server/lib/router-utils/types.d.ts","../node_modules/next/dist/trace/types.d.ts","../node_modules/next/dist/trace/trace.d.ts","../node_modules/next/dist/trace/shared.d.ts","../node_modules/next/dist/trace/index.d.ts","../node_modules/next/dist/build/load-jsconfig.d.ts","../node_modules/@next/env/dist/index.d.ts","../node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","../node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","../node_modules/next/dist/telemetry/storage.d.ts","../node_modules/next/dist/build/build-context.d.ts","../node_modules/next/dist/build/webpack-config.d.ts","../node_modules/next/dist/build/swc/generated-native.d.ts","../node_modules/next/dist/build/define-env.d.ts","../node_modules/next/dist/build/swc/index.d.ts","../node_modules/next/dist/build/swc/types.d.ts","../node_modules/next/dist/server/dev/parse-version-info.d.ts","../node_modules/next/dist/next-devtools/shared/types.d.ts","../node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","../node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","../node_modules/next/dist/server/lib/parse-stack.d.ts","../node_modules/next/dist/next-devtools/server/shared.d.ts","../node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","../node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","../node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","../node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","../node_modules/next/dist/server/dev/debug-channel.d.ts","../node_modules/next/dist/server/dev/hot-reloader-types.d.ts","../node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","../node_modules/next/dist/server/web/spec-extension/response.d.ts","../node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","../node_modules/next/dist/server/web/types.d.ts","../node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","../node_modules/next/dist/server/base-http/node.d.ts","../node_modules/next/dist/server/lib/async-callback-set.d.ts","../node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","../node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","../node_modules/sharp/lib/index.d.ts","../node_modules/next/dist/server/image-optimizer.d.ts","../node_modules/next/dist/server/next-server.d.ts","../node_modules/next/dist/server/lib/types.d.ts","../node_modules/next/dist/server/lib/lru-cache.d.ts","../node_modules/next/dist/server/lib/dev-bundler-service.d.ts","../node_modules/next/dist/server/dev/static-paths-worker.d.ts","../node_modules/next/dist/server/dev/next-dev-server.d.ts","../node_modules/next/dist/server/next.d.ts","../node_modules/next/dist/server/lib/render-server.d.ts","../node_modules/next/dist/server/lib/router-server.d.ts","../node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","../node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","../node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","../node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","../node_modules/next/dist/server/route-modules/route-module.d.ts","../node_modules/next/dist/server/load-components.d.ts","../node_modules/next/dist/server/web/adapter.d.ts","../node_modules/next/dist/server/app-render/types.d.ts","../node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","../node_modules/next/dist/server/lib/app-dir-module.d.ts","../node_modules/next/dist/server/app-render/app-render.d.ts","../node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","../node_modules/next/dist/client/components/error-boundary.d.ts","../node_modules/next/dist/client/components/layout-router.d.ts","../node_modules/next/dist/client/components/render-from-template-context.d.ts","../node_modules/next/dist/client/components/client-page.d.ts","../node_modules/next/dist/client/components/client-segment.d.ts","../node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","../node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","../node_modules/next/dist/lib/metadata/types/extra-types.d.ts","../node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","../node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","../node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","../node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","../node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","../node_modules/next/dist/lib/metadata/types/resolvers.d.ts","../node_modules/next/dist/lib/metadata/types/icons.d.ts","../node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","../node_modules/next/dist/lib/metadata/metadata.d.ts","../node_modules/next/dist/lib/framework/boundary-components.d.ts","../node_modules/next/dist/server/app-render/rsc/preloads.d.ts","../node_modules/next/dist/server/app-render/rsc/postpone.d.ts","../node_modules/next/dist/server/app-render/rsc/taint.d.ts","../node_modules/next/dist/server/app-render/collect-segment-data.d.ts","../node_modules/next/dist/server/app-render/instant-validation/instant-validation.d.ts","../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","../node_modules/next/dist/server/app-render/entry-base.d.ts","../node_modules/next/dist/build/templates/app-page.d.ts","../node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.d.ts","../node_modules/@types/react/jsx-dev-runtime.d.ts","../node_modules/@types/react/compiler-runtime.d.ts","../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","../node_modules/@types/react-dom/client.d.ts","../node_modules/@types/react-dom/static.d.ts","../node_modules/@types/react-dom/server.d.ts","../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","../node_modules/next/dist/server/route-modules/app-page/module.d.ts","../node_modules/next/dist/server/request/fallback-params.d.ts","../node_modules/next/dist/server/web/spec-extension/image-response.d.ts","../node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","../node_modules/next/dist/server/web/spec-extension/url-pattern.d.ts","../node_modules/next/dist/server/after/index.d.ts","../node_modules/next/dist/server/request/connection.d.ts","../node_modules/next/dist/server/web/exports/index.d.ts","../node_modules/next/dist/server/request-meta.d.ts","../node_modules/next/dist/cli/next-test.d.ts","../node_modules/next/dist/shared/lib/size-limit.d.ts","../node_modules/next/dist/server/config-shared.d.ts","../node_modules/next/dist/server/base-http/index.d.ts","../node_modules/next/dist/server/api-utils/index.d.ts","../node_modules/next/dist/build/adapter/build-complete.d.ts","../node_modules/next/dist/types.d.ts","../node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","../node_modules/next/dist/shared/lib/utils.d.ts","../node_modules/next/dist/pages/_app.d.ts","../node_modules/next/app.d.ts","../node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","../node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","../node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","../node_modules/next/dist/server/use-cache/cache-tag.d.ts","../node_modules/next/cache.d.ts","../node_modules/next/dist/pages/_document.d.ts","../node_modules/next/document.d.ts","../node_modules/next/dist/shared/lib/dynamic.d.ts","../node_modules/next/dynamic.d.ts","../node_modules/next/dist/pages/_error.d.ts","../node_modules/next/dist/client/components/catch-error.d.ts","../node_modules/next/dist/api/error.d.ts","../node_modules/next/error.d.ts","../node_modules/next/dist/shared/lib/head.d.ts","../node_modules/next/head.d.ts","../node_modules/next/dist/server/request/cookies.d.ts","../node_modules/next/dist/server/request/headers.d.ts","../node_modules/next/dist/server/request/draft-mode.d.ts","../node_modules/next/headers.d.ts","../node_modules/next/dist/shared/lib/get-img-props.d.ts","../node_modules/next/dist/client/image-component.d.ts","../node_modules/next/dist/shared/lib/image-external.d.ts","../node_modules/next/image.d.ts","../node_modules/next/dist/client/link.d.ts","../node_modules/next/link.d.ts","../node_modules/next/dist/client/components/unrecognized-action-error.d.ts","../node_modules/next/dist/client/components/redirect.d.ts","../node_modules/next/dist/client/components/not-found.d.ts","../node_modules/next/dist/client/components/forbidden.d.ts","../node_modules/next/dist/client/components/unauthorized.d.ts","../node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","../node_modules/next/dist/client/components/unstable-rethrow.d.ts","../node_modules/next/dist/client/components/navigation.react-server.d.ts","../node_modules/next/dist/client/components/navigation.d.ts","../node_modules/next/navigation.d.ts","../node_modules/next/router.d.ts","../node_modules/next/dist/client/script.d.ts","../node_modules/next/script.d.ts","../node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","../node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","../node_modules/next/dist/compiled/@vercel/og/types.d.ts","../node_modules/next/server.d.ts","../node_modules/next/types/global.d.ts","../node_modules/next/types/compiled.d.ts","../node_modules/next/types.d.ts","../node_modules/next/index.d.ts","../node_modules/next/image-types/global.d.ts","./.next/types/routes.d.ts","./next-env.d.ts","../node_modules/drizzle-kit/index.d.mts","./drizzle.config.ts","./next.config.ts","../node_modules/playwright-core/types/protocol.d.ts","../node_modules/playwright-core/types/structs.d.ts","../node_modules/zod/v4/core/json-schema.d.cts","../node_modules/zod/v4/core/standard-schema.d.cts","../node_modules/zod/v4/core/registries.d.cts","../node_modules/zod/v4/core/to-json-schema.d.cts","../node_modules/zod/v4/core/util.d.cts","../node_modules/zod/v4/core/versions.d.cts","../node_modules/zod/v4/core/schemas.d.cts","../node_modules/zod/v4/core/checks.d.cts","../node_modules/zod/v4/core/errors.d.cts","../node_modules/zod/v4/core/core.d.cts","../node_modules/zod/v4/core/parse.d.cts","../node_modules/zod/v4/core/regexes.d.cts","../node_modules/zod/v4/locales/ar.d.cts","../node_modules/zod/v4/locales/az.d.cts","../node_modules/zod/v4/locales/be.d.cts","../node_modules/zod/v4/locales/bg.d.cts","../node_modules/zod/v4/locales/ca.d.cts","../node_modules/zod/v4/locales/cs.d.cts","../node_modules/zod/v4/locales/da.d.cts","../node_modules/zod/v4/locales/de.d.cts","../node_modules/zod/v4/locales/el.d.cts","../node_modules/zod/v4/locales/en.d.cts","../node_modules/zod/v4/locales/eo.d.cts","../node_modules/zod/v4/locales/es.d.cts","../node_modules/zod/v4/locales/fa.d.cts","../node_modules/zod/v4/locales/fi.d.cts","../node_modules/zod/v4/locales/fr.d.cts","../node_modules/zod/v4/locales/fr-ca.d.cts","../node_modules/zod/v4/locales/he.d.cts","../node_modules/zod/v4/locales/hr.d.cts","../node_modules/zod/v4/locales/hu.d.cts","../node_modules/zod/v4/locales/hy.d.cts","../node_modules/zod/v4/locales/id.d.cts","../node_modules/zod/v4/locales/is.d.cts","../node_modules/zod/v4/locales/it.d.cts","../node_modules/zod/v4/locales/ja.d.cts","../node_modules/zod/v4/locales/ka.d.cts","../node_modules/zod/v4/locales/kh.d.cts","../node_modules/zod/v4/locales/km.d.cts","../node_modules/zod/v4/locales/ko.d.cts","../node_modules/zod/v4/locales/lt.d.cts","../node_modules/zod/v4/locales/mk.d.cts","../node_modules/zod/v4/locales/ms.d.cts","../node_modules/zod/v4/locales/nl.d.cts","../node_modules/zod/v4/locales/no.d.cts","../node_modules/zod/v4/locales/ota.d.cts","../node_modules/zod/v4/locales/ps.d.cts","../node_modules/zod/v4/locales/pl.d.cts","../node_modules/zod/v4/locales/pt.d.cts","../node_modules/zod/v4/locales/ro.d.cts","../node_modules/zod/v4/locales/ru.d.cts","../node_modules/zod/v4/locales/sl.d.cts","../node_modules/zod/v4/locales/sv.d.cts","../node_modules/zod/v4/locales/ta.d.cts","../node_modules/zod/v4/locales/th.d.cts","../node_modules/zod/v4/locales/tr.d.cts","../node_modules/zod/v4/locales/ua.d.cts","../node_modules/zod/v4/locales/uk.d.cts","../node_modules/zod/v4/locales/ur.d.cts","../node_modules/zod/v4/locales/uz.d.cts","../node_modules/zod/v4/locales/vi.d.cts","../node_modules/zod/v4/locales/zh-cn.d.cts","../node_modules/zod/v4/locales/zh-tw.d.cts","../node_modules/zod/v4/locales/yo.d.cts","../node_modules/zod/v4/locales/index.d.cts","../node_modules/zod/v4/core/doc.d.cts","../node_modules/zod/v4/core/api.d.cts","../node_modules/zod/v4/core/json-schema-processors.d.cts","../node_modules/zod/v4/core/json-schema-generator.d.cts","../node_modules/zod/v4/core/index.d.cts","../node_modules/zod/v4/classic/errors.d.cts","../node_modules/zod/v4/classic/parse.d.cts","../node_modules/zod/v4/classic/schemas.d.cts","../node_modules/zod/v4/classic/checks.d.cts","../node_modules/zod/v4/classic/compat.d.cts","../node_modules/zod/v4/classic/from-json-schema.d.cts","../node_modules/zod/v4/classic/iso.d.cts","../node_modules/zod/v4/classic/coerce.d.cts","../node_modules/zod/v4/classic/external.d.cts","../node_modules/zod/index.d.cts","../node_modules/zod/v3/helpers/typealiases.d.cts","../node_modules/zod/v3/helpers/util.d.cts","../node_modules/zod/v3/zoderror.d.cts","../node_modules/zod/v3/locales/en.d.cts","../node_modules/zod/v3/errors.d.cts","../node_modules/zod/v3/helpers/parseutil.d.cts","../node_modules/zod/v3/helpers/enumutil.d.cts","../node_modules/zod/v3/helpers/errorutil.d.cts","../node_modules/zod/v3/helpers/partialutil.d.cts","../node_modules/zod/v3/standard-schema.d.cts","../node_modules/zod/v3/types.d.cts","../node_modules/zod/v3/external.d.cts","../node_modules/zod/v3/index.d.cts","../node_modules/playwright-core/types/types.d.ts","../node_modules/playwright-core/index.d.ts","../node_modules/playwright/types/test.d.ts","../node_modules/playwright/test.d.ts","../node_modules/@playwright/test/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/nextcov/dist/index.d.ts","./playwright.config.ts","../node_modules/source-map-js/source-map.d.ts","../node_modules/postcss/lib/previous-map.d.ts","../node_modules/postcss/lib/input.d.ts","../node_modules/postcss/lib/css-syntax-error.d.ts","../node_modules/postcss/lib/declaration.d.ts","../node_modules/postcss/lib/root.d.ts","../node_modules/postcss/lib/warning.d.ts","../node_modules/postcss/lib/lazy-result.d.ts","../node_modules/postcss/lib/no-work-result.d.ts","../node_modules/postcss/lib/processor.d.ts","../node_modules/postcss/lib/result.d.ts","../node_modules/postcss/lib/document.d.ts","../node_modules/postcss/lib/rule.d.ts","../node_modules/postcss/lib/node.d.ts","../node_modules/postcss/lib/comment.d.ts","../node_modules/postcss/lib/container.d.ts","../node_modules/postcss/lib/at-rule.d.ts","../node_modules/postcss/lib/list.d.ts","../node_modules/postcss/lib/postcss.d.ts","../node_modules/postcss/lib/postcss.d.mts","../node_modules/tailwindcss/types/generated/corepluginlist.d.ts","../node_modules/tailwindcss/types/generated/colors.d.ts","../node_modules/tailwindcss/types/config.d.ts","../node_modules/tailwindcss/types/index.d.ts","../node_modules/tailwindcss-animate/index.d.ts","./tailwind.config.ts","../node_modules/@vitest/spy/optional-types.d.ts","../node_modules/@vitest/spy/dist/index.d.ts","../node_modules/tinyrainbow/dist/index.d.ts","../node_modules/@standard-schema/spec/dist/index.d.ts","../node_modules/@vitest/pretty-format/dist/index.d.ts","../node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../node_modules/@vitest/utils/dist/diff.d.ts","../node_modules/@vitest/utils/dist/display.d.ts","../node_modules/@types/deep-eql/index.d.ts","../node_modules/assertion-error/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/vitest/node_modules/@vitest/expect/dist/index.d.ts","../node_modules/vite/types/hmrpayload.d.ts","../node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../node_modules/vite/types/customevent.d.ts","../node_modules/rolldown/dist/shared/logging-c6h4g8da.d.mts","../node_modules/@oxc-project/types/types.d.ts","../node_modules/rolldown/dist/shared/binding-zh1vcmbm.d.mts","../node_modules/rolldown/node_modules/@rolldown/pluginutils/dist/filter/composable-filters.d.ts","../node_modules/rolldown/node_modules/@rolldown/pluginutils/dist/filter/filter-vite-plugins.d.ts","../node_modules/rolldown/node_modules/@rolldown/pluginutils/dist/filter/simple-filters.d.ts","../node_modules/rolldown/node_modules/@rolldown/pluginutils/dist/filter/index.d.ts","../node_modules/rolldown/node_modules/@rolldown/pluginutils/dist/index.d.ts","../node_modules/rolldown/dist/shared/define-config-5hj1b9vg.d.mts","../node_modules/rolldown/dist/index.d.mts","../node_modules/rolldown/dist/parse-ast-index.d.mts","../node_modules/vite/types/internal/rolluptypecompat.d.ts","../node_modules/rolldown/dist/shared/constructors-d0w3rnfa.d.mts","../node_modules/rolldown/dist/plugins-index.d.mts","../node_modules/rolldown/dist/shared/transform-dgz3pasd.d.mts","../node_modules/rolldown/dist/utils-index.d.mts","../node_modules/vite/types/hot.d.ts","../node_modules/vite/dist/node/module-runner.d.ts","../node_modules/esbuild/lib/main.d.ts","../node_modules/vite/types/internal/esbuildoptions.d.ts","../node_modules/vite/types/metadata.d.ts","../node_modules/vite/types/internal/terseroptions.d.ts","../node_modules/lightningcss/node/ast.d.ts","../node_modules/lightningcss/node/targets.d.ts","../node_modules/lightningcss/node/index.d.ts","../node_modules/vite/types/internal/lightningcssoptions.d.ts","../node_modules/vite/types/internal/csspreprocessoroptions.d.ts","../node_modules/rolldown/dist/filter-index.d.mts","../node_modules/vite/types/importglob.d.ts","../node_modules/vite/dist/node/index.d.ts","../node_modules/@vitest/utils/dist/types.d.ts","../node_modules/@vitest/utils/dist/helpers.d.ts","../node_modules/@vitest/utils/dist/timers.d.ts","../node_modules/@vitest/utils/dist/index.d.ts","../node_modules/@vitest/runner/dist/tasks.d-bh0ijn67.d.ts","../node_modules/@vitest/runner/dist/index.d.ts","../node_modules/vitest/dist/chunks/traces.d.d2t_r8rx.d.ts","../node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../node_modules/@vitest/snapshot/dist/index.d.ts","../node_modules/vitest/dist/chunks/config.d.a1h_y6jt.d.ts","../node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../node_modules/vitest/dist/chunks/rpc.d.b_8spu0w.d.ts","../node_modules/vitest/dist/chunks/worker.d.zphpo4yb.d.ts","../node_modules/vitest/dist/chunks/browser.d.bcoexmfg.d.ts","../node_modules/vitest/optional-types.d.ts","../node_modules/@vitest/runner/dist/utils.d.ts","../node_modules/tinybench/dist/index.d.ts","../node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../node_modules/@vitest/mocker/dist/index.d.ts","../node_modules/@vitest/utils/dist/source-map.d.ts","../node_modules/vitest/dist/chunks/global.d.dvssrdq5.d.ts","../node_modules/vitest/optional-runtime-types.d.ts","../node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../node_modules/vitest/dist/runners.d.ts","../node_modules/expect-type/dist/utils.d.ts","../node_modules/expect-type/dist/overloads.d.ts","../node_modules/expect-type/dist/branding.d.ts","../node_modules/expect-type/dist/messages.d.ts","../node_modules/expect-type/dist/index.d.ts","../node_modules/vitest/dist/index.d.ts","../node_modules/vitest/dist/chunks/coverage.d.bztk59wp.d.ts","../node_modules/@vitest/utils/dist/serialize.d.ts","../node_modules/@vitest/utils/dist/error.d.ts","../node_modules/vitest/dist/browser.d.ts","../node_modules/@vitest/browser/aria-role.d.ts","../node_modules/@vitest/browser/jest-dom.d.ts","../node_modules/@vitest/browser/matchers.d.ts","../node_modules/@vitest/browser/context.d.ts","../node_modules/@vitest/browser-playwright/context.d.ts","../node_modules/vitest/browser/context.d.ts","../node_modules/@vitest/snapshot/dist/manager.d.ts","../node_modules/vitest/dist/chunks/reporters.d.cenv6xrv.d.ts","../node_modules/vitest/dist/chunks/plugin.d.bm2tci12.d.ts","../node_modules/vitest/dist/config.d.ts","../node_modules/vitest/config.d.ts","../node_modules/vite-tsconfig-paths/dist/index.d.ts","./vitest.config.ts","../node_modules/nextcov/dist/playwright/index.d.ts","../node_modules/dotenv/lib/main.d.ts","./e2e/pages/auth.ts","./e2e/pages/sidebar.ts","./e2e/fixtures.ts","./e2e/api-docs.spec.ts","./e2e/api-keys.spec.ts","./e2e/auth-states.spec.ts","./e2e/auth.spec.ts","./e2e/auto-refresh.spec.ts","./e2e/charts.spec.ts","./e2e/code-completion.spec.ts","./e2e/connection-advanced.spec.ts","./e2e/connections.spec.ts","./e2e/content-widgets.spec.ts","./e2e/dashboard-metadata.spec.ts","./e2e/dashboard-portability.spec.ts","./e2e/dashboard-states.spec.ts","./e2e/dashboard-visibility.spec.ts","./e2e/dashboards.spec.ts","./e2e/design-system.spec.ts","./e2e/empty-states.spec.ts","./e2e/form-widget.spec.ts","../node_modules/testcontainers/build/common/file-lock.d.ts","../node_modules/testcontainers/build/common/hash.d.ts","../node_modules/testcontainers/build/common/logger.d.ts","../node_modules/testcontainers/build/common/clock.d.ts","../node_modules/testcontainers/build/common/retry.d.ts","../node_modules/testcontainers/build/common/streams.d.ts","../node_modules/testcontainers/build/common/time.d.ts","../node_modules/testcontainers/build/common/type-guards.d.ts","../node_modules/testcontainers/build/common/uuid.d.ts","../node_modules/testcontainers/build/common/index.d.ts","../node_modules/testcontainers/build/container-runtime/auth/types.d.ts","../node_modules/testcontainers/build/container-runtime/auth/get-auth-config.d.ts","../node_modules/testcontainers/build/container-runtime/clients/compose/types.d.ts","../node_modules/testcontainers/build/container-runtime/clients/compose/compose-client.d.ts","../node_modules/@types/ssh2/index.d.ts","../node_modules/@types/docker-modem/index.d.ts","../node_modules/@types/dockerode/index.d.ts","../node_modules/testcontainers/build/container-runtime/clients/container/types.d.ts","../node_modules/testcontainers/build/types.d.ts","../node_modules/testcontainers/build/container-runtime/clients/container/container-client.d.ts","../node_modules/testcontainers/build/container-runtime/image-name.d.ts","../node_modules/testcontainers/build/container-runtime/clients/image/image-client.d.ts","../node_modules/testcontainers/build/container-runtime/clients/network/network-client.d.ts","../node_modules/testcontainers/build/container-runtime/clients/types.d.ts","../node_modules/testcontainers/build/container-runtime/clients/client.d.ts","../node_modules/testcontainers/build/container-runtime/clients/compose/parse-compose-container-name.d.ts","../node_modules/testcontainers/build/container-runtime/index.d.ts","../node_modules/testcontainers/build/utils/pull-policy.d.ts","../node_modules/testcontainers/build/utils/port.d.ts","../node_modules/testcontainers/build/utils/bound-ports.d.ts","../node_modules/testcontainers/build/wait-strategies/wait-strategy.d.ts","../node_modules/testcontainers/build/network/network.d.ts","../node_modules/testcontainers/build/test-container.d.ts","../node_modules/testcontainers/build/generic-container/started-generic-container.d.ts","../node_modules/testcontainers/build/docker-compose-environment/downed-docker-compose-environment.d.ts","../node_modules/testcontainers/build/docker-compose-environment/stopped-docker-compose-environment.d.ts","../node_modules/testcontainers/build/docker-compose-environment/started-docker-compose-environment.d.ts","../node_modules/testcontainers/build/docker-compose-environment/docker-compose-environment.d.ts","../node_modules/testcontainers/build/generic-container/abstract-started-container.d.ts","../node_modules/testcontainers/build/generic-container/abstract-stopped-container.d.ts","../node_modules/testcontainers/build/generic-container/generic-container-builder.d.ts","../node_modules/testcontainers/build/generic-container/generic-container.d.ts","../node_modules/testcontainers/build/reaper/reaper.d.ts","../node_modules/testcontainers/build/socat/socat-container.d.ts","../node_modules/testcontainers/build/test-containers.d.ts","../node_modules/testcontainers/build/utils/labels.d.ts","../node_modules/testcontainers/build/utils/port-generator.d.ts","../node_modules/testcontainers/build/wait-strategies/http-wait-strategy.d.ts","../node_modules/testcontainers/build/wait-strategies/startup-check-strategy.d.ts","../node_modules/testcontainers/build/wait-strategies/composite-wait-strategy.d.ts","../node_modules/testcontainers/build/wait-strategies/log-wait-strategy.d.ts","../node_modules/testcontainers/build/wait-strategies/shell-wait-strategy.d.ts","../node_modules/testcontainers/build/wait-strategies/wait.d.ts","../node_modules/testcontainers/build/wait-strategies/wait-for-container.d.ts","../node_modules/testcontainers/build/index.d.ts","../node_modules/postgres/types/index.d.ts","../node_modules/drizzle-orm/entity.d.ts","../node_modules/drizzle-orm/logger.d.ts","../node_modules/drizzle-orm/casing.d.ts","../node_modules/drizzle-orm/subquery.d.ts","../node_modules/drizzle-orm/table.d.ts","../node_modules/drizzle-orm/operations.d.ts","../node_modules/drizzle-orm/query-builders/select.types.d.ts","../node_modules/drizzle-orm/sql/sql.d.ts","../node_modules/drizzle-orm/utils.d.ts","../node_modules/drizzle-orm/sql/expressions/conditions.d.ts","../node_modules/drizzle-orm/sql/expressions/select.d.ts","../node_modules/drizzle-orm/sql/expressions/index.d.ts","../node_modules/drizzle-orm/sql/functions/aggregate.d.ts","../node_modules/drizzle-orm/query-builders/query-builder.d.ts","../node_modules/drizzle-orm/sql/functions/vector.d.ts","../node_modules/drizzle-orm/sql/functions/index.d.ts","../node_modules/drizzle-orm/sql/index.d.ts","../node_modules/drizzle-orm/gel-core/checks.d.ts","../node_modules/drizzle-orm/gel-core/sequence.d.ts","../node_modules/drizzle-orm/gel-core/columns/int.common.d.ts","../node_modules/drizzle-orm/gel-core/columns/bigintt.d.ts","../node_modules/drizzle-orm/gel-core/columns/boolean.d.ts","../node_modules/drizzle-orm/gel-core/columns/bytes.d.ts","../node_modules/drizzle-orm/gel-core/columns/custom.d.ts","../node_modules/drizzle-orm/gel-core/columns/date-duration.d.ts","../node_modules/drizzle-orm/gel-core/columns/decimal.d.ts","../node_modules/drizzle-orm/gel-core/columns/double-precision.d.ts","../node_modules/drizzle-orm/gel-core/columns/duration.d.ts","../node_modules/drizzle-orm/gel-core/columns/integer.d.ts","../node_modules/drizzle-orm/gel-core/columns/json.d.ts","../node_modules/drizzle-orm/gel-core/columns/date.common.d.ts","../node_modules/drizzle-orm/gel-core/columns/localdate.d.ts","../node_modules/drizzle-orm/gel-core/columns/localtime.d.ts","../node_modules/drizzle-orm/gel-core/columns/real.d.ts","../node_modules/drizzle-orm/gel-core/columns/relative-duration.d.ts","../node_modules/drizzle-orm/gel-core/columns/smallint.d.ts","../node_modules/drizzle-orm/gel-core/columns/text.d.ts","../node_modules/drizzle-orm/gel-core/columns/timestamp.d.ts","../node_modules/drizzle-orm/gel-core/columns/timestamptz.d.ts","../node_modules/drizzle-orm/gel-core/columns/uuid.d.ts","../node_modules/drizzle-orm/gel-core/columns/all.d.ts","../node_modules/drizzle-orm/gel-core/indexes.d.ts","../node_modules/drizzle-orm/gel-core/roles.d.ts","../node_modules/drizzle-orm/gel-core/policies.d.ts","../node_modules/drizzle-orm/gel-core/primary-keys.d.ts","../node_modules/drizzle-orm/gel-core/unique-constraint.d.ts","../node_modules/drizzle-orm/gel-core/table.d.ts","../node_modules/drizzle-orm/gel-core/foreign-keys.d.ts","../node_modules/drizzle-orm/gel-core/columns/common.d.ts","../node_modules/drizzle-orm/gel-core/columns/bigint.d.ts","../node_modules/drizzle-orm/gel-core/columns/index.d.ts","../node_modules/drizzle-orm/gel-core/view-base.d.ts","../node_modules/drizzle-orm/cache/core/types.d.ts","../node_modules/drizzle-orm/relations.d.ts","../node_modules/drizzle-orm/session.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/count.d.ts","../node_modules/drizzle-orm/query-promise.d.ts","../node_modules/drizzle-orm/runnable-query.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/query.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/raw.d.ts","../node_modules/drizzle-orm/gel-core/subquery.d.ts","../node_modules/drizzle-orm/gel-core/db.d.ts","../node_modules/drizzle-orm/gel-core/session.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/delete.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/update.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/insert.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/refresh-materialized-view.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/select.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/index.d.ts","../node_modules/drizzle-orm/gel-core/dialect.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/query-builder.d.ts","../node_modules/drizzle-orm/gel-core/view-common.d.ts","../node_modules/drizzle-orm/gel-core/view.d.ts","../node_modules/drizzle-orm/gel-core/query-builders/select.types.d.ts","../node_modules/drizzle-orm/gel-core/alias.d.ts","../node_modules/drizzle-orm/gel-core/schema.d.ts","../node_modules/drizzle-orm/gel-core/utils.d.ts","../node_modules/drizzle-orm/gel-core/index.d.ts","../node_modules/drizzle-orm/mysql-core/checks.d.ts","../node_modules/drizzle-orm/mysql-core/columns/binary.d.ts","../node_modules/drizzle-orm/mysql-core/columns/boolean.d.ts","../node_modules/drizzle-orm/mysql-core/columns/char.d.ts","../node_modules/drizzle-orm/mysql-core/columns/custom.d.ts","../node_modules/drizzle-orm/mysql-core/columns/date.d.ts","../node_modules/drizzle-orm/mysql-core/columns/datetime.d.ts","../node_modules/drizzle-orm/mysql-core/columns/decimal.d.ts","../node_modules/drizzle-orm/mysql-core/columns/double.d.ts","../node_modules/drizzle-orm/mysql-core/columns/enum.d.ts","../node_modules/drizzle-orm/mysql-core/columns/float.d.ts","../node_modules/drizzle-orm/mysql-core/columns/int.d.ts","../node_modules/drizzle-orm/mysql-core/columns/json.d.ts","../node_modules/drizzle-orm/mysql-core/columns/mediumint.d.ts","../node_modules/drizzle-orm/mysql-core/columns/real.d.ts","../node_modules/drizzle-orm/mysql-core/columns/serial.d.ts","../node_modules/drizzle-orm/mysql-core/columns/smallint.d.ts","../node_modules/drizzle-orm/mysql-core/columns/text.d.ts","../node_modules/drizzle-orm/mysql-core/columns/time.d.ts","../node_modules/drizzle-orm/mysql-core/columns/date.common.d.ts","../node_modules/drizzle-orm/mysql-core/columns/timestamp.d.ts","../node_modules/drizzle-orm/mysql-core/columns/tinyint.d.ts","../node_modules/drizzle-orm/mysql-core/columns/varbinary.d.ts","../node_modules/drizzle-orm/mysql-core/columns/varchar.d.ts","../node_modules/drizzle-orm/mysql-core/columns/year.d.ts","../node_modules/drizzle-orm/mysql-core/columns/all.d.ts","../node_modules/drizzle-orm/mysql-core/indexes.d.ts","../node_modules/drizzle-orm/mysql-core/primary-keys.d.ts","../node_modules/drizzle-orm/mysql-core/unique-constraint.d.ts","../node_modules/drizzle-orm/mysql-core/table.d.ts","../node_modules/drizzle-orm/mysql-core/foreign-keys.d.ts","../node_modules/drizzle-orm/mysql-core/columns/common.d.ts","../node_modules/drizzle-orm/mysql-core/columns/bigint.d.ts","../node_modules/drizzle-orm/mysql-core/columns/index.d.ts","../node_modules/drizzle-orm/migrator.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/delete.d.ts","../node_modules/drizzle-orm/mysql-core/subquery.d.ts","../node_modules/drizzle-orm/mysql-core/view-base.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/select.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/query-builder.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/update.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/insert.d.ts","../node_modules/drizzle-orm/mysql-core/dialect.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/count.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/index.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/query.d.ts","../node_modules/drizzle-orm/mysql-core/db.d.ts","../node_modules/drizzle-orm/mysql-core/session.d.ts","../node_modules/drizzle-orm/mysql-core/view-common.d.ts","../node_modules/drizzle-orm/mysql-core/view.d.ts","../node_modules/drizzle-orm/mysql-core/query-builders/select.types.d.ts","../node_modules/drizzle-orm/mysql-core/alias.d.ts","../node_modules/drizzle-orm/mysql-core/schema.d.ts","../node_modules/drizzle-orm/mysql-core/utils.d.ts","../node_modules/drizzle-orm/mysql-core/index.d.ts","../node_modules/drizzle-orm/pg-core/checks.d.ts","../node_modules/drizzle-orm/pg-core/columns/bigserial.d.ts","../node_modules/drizzle-orm/pg-core/columns/boolean.d.ts","../node_modules/drizzle-orm/pg-core/columns/char.d.ts","../node_modules/drizzle-orm/pg-core/columns/cidr.d.ts","../node_modules/drizzle-orm/pg-core/columns/custom.d.ts","../node_modules/drizzle-orm/pg-core/columns/date.common.d.ts","../node_modules/drizzle-orm/pg-core/columns/date.d.ts","../node_modules/drizzle-orm/pg-core/columns/double-precision.d.ts","../node_modules/drizzle-orm/pg-core/columns/inet.d.ts","../node_modules/drizzle-orm/pg-core/sequence.d.ts","../node_modules/drizzle-orm/pg-core/columns/int.common.d.ts","../node_modules/drizzle-orm/pg-core/columns/integer.d.ts","../node_modules/drizzle-orm/pg-core/columns/timestamp.d.ts","../node_modules/drizzle-orm/pg-core/columns/interval.d.ts","../node_modules/drizzle-orm/pg-core/columns/json.d.ts","../node_modules/drizzle-orm/pg-core/columns/jsonb.d.ts","../node_modules/drizzle-orm/pg-core/columns/line.d.ts","../node_modules/drizzle-orm/pg-core/columns/macaddr.d.ts","../node_modules/drizzle-orm/pg-core/columns/macaddr8.d.ts","../node_modules/drizzle-orm/pg-core/columns/numeric.d.ts","../node_modules/drizzle-orm/pg-core/columns/point.d.ts","../node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.d.ts","../node_modules/drizzle-orm/pg-core/columns/real.d.ts","../node_modules/drizzle-orm/pg-core/columns/serial.d.ts","../node_modules/drizzle-orm/pg-core/columns/smallint.d.ts","../node_modules/drizzle-orm/pg-core/columns/smallserial.d.ts","../node_modules/drizzle-orm/pg-core/columns/text.d.ts","../node_modules/drizzle-orm/pg-core/columns/time.d.ts","../node_modules/drizzle-orm/pg-core/columns/uuid.d.ts","../node_modules/drizzle-orm/pg-core/columns/varchar.d.ts","../node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.d.ts","../node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.d.ts","../node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.d.ts","../node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.d.ts","../node_modules/drizzle-orm/pg-core/columns/all.d.ts","../node_modules/drizzle-orm/pg-core/indexes.d.ts","../node_modules/drizzle-orm/pg-core/roles.d.ts","../node_modules/drizzle-orm/pg-core/policies.d.ts","../node_modules/drizzle-orm/pg-core/primary-keys.d.ts","../node_modules/drizzle-orm/pg-core/unique-constraint.d.ts","../node_modules/drizzle-orm/pg-core/table.d.ts","../node_modules/drizzle-orm/pg-core/foreign-keys.d.ts","../node_modules/drizzle-orm/pg-core/columns/common.d.ts","../node_modules/drizzle-orm/pg-core/columns/bigint.d.ts","../node_modules/drizzle-orm/pg-core/columns/enum.d.ts","../node_modules/drizzle-orm/pg-core/columns/index.d.ts","../node_modules/drizzle-orm/pg-core/view-base.d.ts","../node_modules/drizzle-orm/pg-core/session.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/delete.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/update.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/insert.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.d.ts","../node_modules/drizzle-orm/pg-core/subquery.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/select.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/index.d.ts","../node_modules/drizzle-orm/pg-core/dialect.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/query-builder.d.ts","../node_modules/drizzle-orm/pg-core/view-common.d.ts","../node_modules/drizzle-orm/pg-core/view.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/select.types.d.ts","../node_modules/drizzle-orm/pg-core/alias.d.ts","../node_modules/drizzle-orm/pg-core/schema.d.ts","../node_modules/drizzle-orm/pg-core/utils.d.ts","../node_modules/drizzle-orm/pg-core/utils/array.d.ts","../node_modules/drizzle-orm/pg-core/utils/index.d.ts","../node_modules/drizzle-orm/pg-core/index.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/binary.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/boolean.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/char.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/custom.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/date.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/datetime.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/decimal.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/double.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/enum.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/float.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/int.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/json.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/mediumint.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/real.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/serial.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/smallint.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/text.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/time.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/date.common.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/timestamp.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/tinyint.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/varbinary.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/varchar.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/vector.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/year.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/all.d.ts","../node_modules/drizzle-orm/singlestore-core/indexes.d.ts","../node_modules/drizzle-orm/singlestore-core/primary-keys.d.ts","../node_modules/drizzle-orm/singlestore-core/unique-constraint.d.ts","../node_modules/drizzle-orm/singlestore-core/table.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/common.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/bigint.d.ts","../node_modules/drizzle-orm/singlestore-core/columns/index.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/delete.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/update.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/insert.d.ts","../node_modules/drizzle-orm/singlestore-core/dialect.d.ts","../node_modules/drizzle-orm/cache/core/index.d.ts","../node_modules/drizzle-orm/singlestore/session.d.ts","../node_modules/drizzle-orm/singlestore/driver.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/count.d.ts","../node_modules/drizzle-orm/singlestore-core/subquery.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/select.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/query-builder.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/index.d.ts","../node_modules/drizzle-orm/singlestore-core/db.d.ts","../node_modules/drizzle-orm/singlestore-core/session.d.ts","../node_modules/drizzle-orm/singlestore-core/query-builders/select.types.d.ts","../node_modules/drizzle-orm/singlestore-core/alias.d.ts","../node_modules/drizzle-orm/singlestore-core/schema.d.ts","../node_modules/drizzle-orm/singlestore-core/utils.d.ts","../node_modules/drizzle-orm/singlestore-core/index.d.ts","../node_modules/drizzle-orm/sqlite-core/checks.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/custom.d.ts","../node_modules/drizzle-orm/sqlite-core/indexes.d.ts","../node_modules/drizzle-orm/sqlite-core/primary-keys.d.ts","../node_modules/drizzle-orm/sqlite-core/unique-constraint.d.ts","../node_modules/drizzle-orm/sqlite-core/view-base.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/count.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/query.d.ts","../node_modules/drizzle-orm/sqlite-core/subquery.d.ts","../node_modules/drizzle-orm/sqlite-core/db.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/raw.d.ts","../node_modules/drizzle-orm/sqlite-core/session.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/delete.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/update.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/insert.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/select.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/index.d.ts","../node_modules/drizzle-orm/sqlite-core/dialect.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.d.ts","../node_modules/drizzle-orm/sqlite-core/view.d.ts","../node_modules/drizzle-orm/sqlite-core/utils.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/integer.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/numeric.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/real.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/text.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/all.d.ts","../node_modules/drizzle-orm/sqlite-core/table.d.ts","../node_modules/drizzle-orm/sqlite-core/foreign-keys.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/common.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/blob.d.ts","../node_modules/drizzle-orm/sqlite-core/columns/index.d.ts","../node_modules/drizzle-orm/sqlite-core/query-builders/select.types.d.ts","../node_modules/drizzle-orm/sqlite-core/alias.d.ts","../node_modules/drizzle-orm/sqlite-core/index.d.ts","../node_modules/drizzle-orm/column-builder.d.ts","../node_modules/drizzle-orm/column.d.ts","../node_modules/drizzle-orm/alias.d.ts","../node_modules/drizzle-orm/errors.d.ts","../node_modules/drizzle-orm/view-common.d.ts","../node_modules/drizzle-orm/index.d.ts","../node_modules/drizzle-orm/cache/core/cache.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/count.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/query.d.ts","../node_modules/drizzle-orm/pg-core/query-builders/raw.d.ts","../node_modules/drizzle-orm/pg-core/db.d.ts","../node_modules/drizzle-orm/postgres-js/session.d.ts","../node_modules/drizzle-orm/postgres-js/driver.d.ts","../node_modules/drizzle-orm/postgres-js/index.d.ts","../node_modules/drizzle-orm/postgres-js/migrator.d.ts","./e2e/global-setup.ts","./e2e/global-teardown.ts","./e2e/grid.spec.ts","./e2e/heavy-widgets.spec.ts","./e2e/import-validation.spec.ts","./e2e/navigation.spec.ts","./e2e/new-charts.spec.ts","./e2e/parameter-types.spec.ts","./e2e/parameters.spec.ts","./e2e/performance.spec.ts","./e2e/query-safety.spec.ts","./e2e/responsive.spec.ts","./e2e/settings-profile.spec.ts","./e2e/sharing-permissions.spec.ts","./e2e/sidebar-states.spec.ts","./e2e/styling-rules.spec.ts","./e2e/theme.spec.ts","./e2e/transforms.spec.ts","./e2e/users.spec.ts","./e2e/widget-lab.spec.ts","./e2e/widget-states.spec.ts","./e2e/widgets.spec.ts","./e2e/write-permissions.spec.ts","../node_modules/bcryptjs/types.d.ts","../node_modules/bcryptjs/index.d.ts","../node_modules/@auth/core/lib/vendored/cookie.d.ts","../node_modules/oauth4webapi/build/index.d.ts","../node_modules/@auth/core/lib/utils/cookie.d.ts","../node_modules/@auth/core/warnings.d.ts","../node_modules/@auth/core/lib/symbols.d.ts","../node_modules/@auth/core/lib/index.d.ts","../node_modules/@auth/core/lib/utils/env.d.ts","../node_modules/@auth/core/jwt.d.ts","../node_modules/@auth/core/lib/utils/actions.d.ts","../node_modules/@auth/core/index.d.ts","../node_modules/@auth/core/lib/utils/logger.d.ts","../node_modules/@auth/core/providers/webauthn.d.ts","../node_modules/@auth/core/lib/utils/webauthn-utils.d.ts","../node_modules/@auth/core/types.d.ts","../node_modules/preact/src/jsx.d.ts","../node_modules/preact/src/index.d.ts","../node_modules/@auth/core/providers/credentials.d.ts","../node_modules/@auth/core/providers/provider-types.d.ts","../node_modules/@auth/core/providers/nodemailer.d.ts","../node_modules/@auth/core/providers/email.d.ts","../node_modules/@auth/core/providers/oauth.d.ts","../node_modules/@auth/core/providers/index.d.ts","../node_modules/@auth/core/adapters.d.ts","../node_modules/echarts/types/dist/shared.d.ts","../node_modules/echarts/types/dist/core.d.ts","../node_modules/echarts/core.d.ts","../node_modules/echarts/types/dist/charts.d.ts","../node_modules/echarts/charts.d.ts","../node_modules/echarts/types/dist/components.d.ts","../node_modules/echarts/components.d.ts","../node_modules/echarts/types/dist/renderers.d.ts","../node_modules/echarts/renderers.d.ts","../node_modules/echarts/types/dist/echarts.d.ts","../node_modules/echarts/index.d.ts","../node_modules/clsx/clsx.d.mts","../component/node_modules/tailwind-merge/dist/types.d.ts","../component/src/lib/utils.ts","../component/src/charts/types.ts","../component/src/charts/theme.ts","../component/src/charts/palettes.ts","../component/src/charts/base-chart.tsx","../component/src/charts/color-threshold.ts","../component/src/charts/styling-rule.ts","../component/src/hooks/usecontainersize.ts","../component/src/charts/chart-utils.ts","../component/src/charts/line-chart.tsx","../component/src/charts/bar-chart.tsx","../component/src/charts/pie-chart.tsx","../component/src/components/ui/card.tsx","../component/src/charts/single-value-chart.tsx","../node_modules/@neo4j-nvl/base/dist/types/utils/geometry.d.ts","../node_modules/@neo4j-nvl/base/dist/types/renderers/domrenderer/shared/types.d.ts","../node_modules/@neo4j-nvl/base/dist/types/types/graph-element.d.ts","../node_modules/@neo4j-nvl/base/dist/types/modules/externalcallbackhandler.d.ts","../node_modules/loglevel/index.d.ts","../node_modules/@neo4j-nvl/base/dist/types/modules/dataset.d.ts","../node_modules/@neo4j-nvl/base/dist/types/modules/state/types.d.ts","../node_modules/@neo4j-nvl/base/dist/types/renderers/domrenderer/canvasrenderer/canvasutils.d.ts","../node_modules/@neo4j-nvl/base/dist/types/utils/errors.d.ts","../node_modules/@neo4j-nvl/base/dist/types/utils/hittest.d.ts","../node_modules/neo4j-driver-core/types/integer.d.ts","../node_modules/neo4j-driver-core/types/mapping.highlevel.d.ts","../node_modules/neo4j-driver-core/types/graph-types.d.ts","../node_modules/neo4j-driver-core/types/gql-constants.d.ts","../node_modules/neo4j-driver-core/types/error.d.ts","../node_modules/neo4j-driver-core/types/temporal-types.d.ts","../node_modules/neo4j-driver-core/types/record.d.ts","../node_modules/neo4j-driver-core/types/spatial-types.d.ts","../node_modules/neo4j-driver-core/types/notification.d.ts","../node_modules/neo4j-driver-core/types/protocol-version.d.ts","../node_modules/neo4j-driver-core/types/result-summary.d.ts","../node_modules/neo4j-driver-core/types/notification-filter.d.ts","../node_modules/neo4j-driver-core/types/client-certificate.d.ts","../node_modules/neo4j-driver-core/types/types.d.ts","../node_modules/neo4j-driver-core/types/internal/util.d.ts","../node_modules/neo4j-driver-core/types/internal/temporal-util.d.ts","../node_modules/neo4j-driver-core/types/internal/observers.d.ts","../node_modules/neo4j-driver-core/types/internal/bookmarks.d.ts","../node_modules/neo4j-driver-core/types/internal/constants.d.ts","../node_modules/neo4j-driver-core/types/internal/logger.d.ts","../node_modules/neo4j-driver-core/types/internal/tx-config.d.ts","../node_modules/neo4j-driver-core/types/connection.d.ts","../node_modules/neo4j-driver-core/types/connection-provider.d.ts","../node_modules/neo4j-driver-core/types/internal/connection-holder.d.ts","../node_modules/neo4j-driver-core/types/transaction.d.ts","../node_modules/neo4j-driver-core/types/transaction-promise.d.ts","../node_modules/neo4j-driver-core/types/internal/transaction-executor.d.ts","../node_modules/neo4j-driver-core/types/internal/url-util.d.ts","../node_modules/neo4j-driver-core/types/internal/server-address.d.ts","../node_modules/neo4j-driver-core/types/internal/resolver/base-host-name-resolver.d.ts","../node_modules/neo4j-driver-core/types/internal/resolver/configured-custom-resolver.d.ts","../node_modules/neo4j-driver-core/types/internal/resolver/index.d.ts","../node_modules/neo4j-driver-core/types/internal/object-util.d.ts","../node_modules/neo4j-driver-core/types/internal/bolt-agent/node/bolt-agent.d.ts","../node_modules/neo4j-driver-core/types/internal/bolt-agent/node/index.d.ts","../node_modules/neo4j-driver-core/types/internal/bolt-agent/index.d.ts","../node_modules/neo4j-driver-core/types/internal/pool/pool-config.d.ts","../node_modules/neo4j-driver-core/types/internal/pool/pool.d.ts","../node_modules/neo4j-driver-core/types/internal/pool/index.d.ts","../node_modules/neo4j-driver-core/types/internal/index.d.ts","../node_modules/neo4j-driver-core/types/result.d.ts","../node_modules/neo4j-driver-core/types/result-eager.d.ts","../node_modules/neo4j-driver-core/types/transaction-managed.d.ts","../node_modules/neo4j-driver-core/types/bookmark-manager.d.ts","../node_modules/neo4j-driver-core/types/session.d.ts","../node_modules/neo4j-driver-core/types/result-transformers.d.ts","../node_modules/neo4j-driver-core/types/internal/query-executor.d.ts","../node_modules/neo4j-driver-core/types/driver.d.ts","../node_modules/neo4j-driver-core/types/auth.d.ts","../node_modules/neo4j-driver-core/types/auth-token-manager.d.ts","../node_modules/neo4j-driver-core/types/json.d.ts","../node_modules/neo4j-driver-core/types/vector.d.ts","../node_modules/neo4j-driver-core/types/mapping.nameconventions.d.ts","../node_modules/neo4j-driver-core/types/mapping.rulesfactories.d.ts","../node_modules/neo4j-driver-core/types/mapping.decorators.d.ts","../node_modules/neo4j-driver-core/types/unsupported-type.d.ts","../node_modules/neo4j-driver-core/types/index.d.ts","../node_modules/rxjs/dist/types/internal/subscription.d.ts","../node_modules/rxjs/dist/types/internal/subscriber.d.ts","../node_modules/rxjs/dist/types/internal/operator.d.ts","../node_modules/rxjs/dist/types/internal/observable.d.ts","../node_modules/rxjs/dist/types/internal/types.d.ts","../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","../node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","../node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferwhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/catcherror.d.ts","../node_modules/rxjs/dist/types/internal/operators/combinelatestall.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineall.d.ts","../node_modules/rxjs/dist/types/internal/operators/combinelatest.d.ts","../node_modules/rxjs/dist/types/internal/operators/combinelatestwith.d.ts","../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatall.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatmap.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatmapto.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatwith.d.ts","../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../node_modules/rxjs/dist/types/internal/operators/debouncetime.d.ts","../node_modules/rxjs/dist/types/internal/operators/defaultifempty.d.ts","../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../node_modules/rxjs/dist/types/internal/operators/delaywhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctuntilchanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctuntilkeychanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/elementat.d.ts","../node_modules/rxjs/dist/types/internal/operators/endwith.d.ts","../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustall.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustmap.d.ts","../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../node_modules/rxjs/dist/types/internal/operators/findindex.d.ts","../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../node_modules/rxjs/dist/types/internal/subject.d.ts","../node_modules/rxjs/dist/types/internal/operators/groupby.d.ts","../node_modules/rxjs/dist/types/internal/operators/ignoreelements.d.ts","../node_modules/rxjs/dist/types/internal/operators/isempty.d.ts","../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../node_modules/rxjs/dist/types/internal/operators/mapto.d.ts","../node_modules/rxjs/dist/types/internal/notification.d.ts","../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeall.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergemap.d.ts","../node_modules/rxjs/dist/types/internal/operators/flatmap.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergemapto.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergescan.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergewith.d.ts","../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../node_modules/rxjs/dist/types/internal/observable/connectableobservable.d.ts","../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../node_modules/rxjs/dist/types/internal/operators/observeon.d.ts","../node_modules/rxjs/dist/types/internal/operators/onerrorresumenextwith.d.ts","../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishbehavior.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishlast.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishreplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../node_modules/rxjs/dist/types/internal/operators/racewith.d.ts","../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeatwhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../node_modules/rxjs/dist/types/internal/operators/retrywhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/refcount.d.ts","../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../node_modules/rxjs/dist/types/internal/operators/sampletime.d.ts","../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../node_modules/rxjs/dist/types/internal/operators/sequenceequal.d.ts","../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../node_modules/rxjs/dist/types/internal/operators/sharereplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../node_modules/rxjs/dist/types/internal/operators/skiplast.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipuntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipwhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/startwith.d.ts","../node_modules/rxjs/dist/types/internal/operators/subscribeon.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchall.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchmap.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchmapto.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchscan.d.ts","../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../node_modules/rxjs/dist/types/internal/operators/takelast.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeuntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/takewhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttletime.d.ts","../node_modules/rxjs/dist/types/internal/operators/throwifempty.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeinterval.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeoutwith.d.ts","../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../node_modules/rxjs/dist/types/internal/operators/toarray.d.ts","../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowcount.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowtime.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowtoggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowwhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/withlatestfrom.d.ts","../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipall.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipwith.d.ts","../node_modules/rxjs/dist/types/operators/index.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/action.d.ts","../node_modules/rxjs/dist/types/internal/scheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/testmessage.d.ts","../node_modules/rxjs/dist/types/internal/testing/subscriptionlog.d.ts","../node_modules/rxjs/dist/types/internal/testing/subscriptionloggable.d.ts","../node_modules/rxjs/dist/types/internal/testing/coldobservable.d.ts","../node_modules/rxjs/dist/types/internal/testing/hotobservable.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/asyncscheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/timerhandle.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/asyncaction.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/virtualtimescheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/testscheduler.d.ts","../node_modules/rxjs/dist/types/testing/index.d.ts","../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../node_modules/rxjs/dist/types/internal/observable/dom/animationframes.d.ts","../node_modules/rxjs/dist/types/internal/behaviorsubject.d.ts","../node_modules/rxjs/dist/types/internal/replaysubject.d.ts","../node_modules/rxjs/dist/types/internal/asyncsubject.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/asapscheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/queuescheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/animationframescheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/animationframe.d.ts","../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../node_modules/rxjs/dist/types/internal/util/isobservable.d.ts","../node_modules/rxjs/dist/types/internal/lastvaluefrom.d.ts","../node_modules/rxjs/dist/types/internal/firstvaluefrom.d.ts","../node_modules/rxjs/dist/types/internal/util/argumentoutofrangeerror.d.ts","../node_modules/rxjs/dist/types/internal/util/emptyerror.d.ts","../node_modules/rxjs/dist/types/internal/util/notfounderror.d.ts","../node_modules/rxjs/dist/types/internal/util/objectunsubscribederror.d.ts","../node_modules/rxjs/dist/types/internal/util/sequenceerror.d.ts","../node_modules/rxjs/dist/types/internal/util/unsubscriptionerror.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindcallback.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindnodecallback.d.ts","../node_modules/rxjs/dist/types/internal/anycatcher.d.ts","../node_modules/rxjs/dist/types/internal/observable/combinelatest.d.ts","../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../node_modules/rxjs/dist/types/internal/observable/forkjoin.d.ts","../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromevent.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromeventpattern.d.ts","../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../node_modules/rxjs/dist/types/internal/observable/onerrorresumenext.d.ts","../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../node_modules/rxjs/dist/types/internal/observable/throwerror.d.ts","../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../node_modules/rxjs/dist/types/internal/config.d.ts","../node_modules/rxjs/dist/types/index.d.ts","../node_modules/neo4j-driver/types/result-rx.d.ts","../node_modules/neo4j-driver/types/query-runner.d.ts","../node_modules/neo4j-driver/types/transaction-rx.d.ts","../node_modules/neo4j-driver/types/session-rx.d.ts","../node_modules/neo4j-driver/types/driver.d.ts","../node_modules/neo4j-driver/types/transaction-managed-rx.d.ts","../node_modules/neo4j-driver/types/index.d.ts","../node_modules/@neo4j-nvl/base/dist/types/utils/jsdriverresulttransformer.d.ts","../node_modules/@neo4j-nvl/base/dist/types/utils/zoomfunctions.d.ts","../node_modules/@neo4j-nvl/base/dist/types/index.d.ts","../node_modules/@neo4j-nvl/react/lib/basic-wrapper/basicnvlwrapper.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/base.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/box-select-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/click-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/drag-node-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/draw-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/hover-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/lasso-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/pan-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/interaction-handlers/zoom-interaction.d.ts","../node_modules/@neo4j-nvl/interaction-handlers/lib/index.d.ts","../node_modules/@neo4j-nvl/react/lib/interactive-nvl-wrapper/types.d.ts","../node_modules/@neo4j-nvl/react/lib/interactive-nvl-wrapper/interactivenvlwrapper.d.ts","../node_modules/@neo4j-nvl/react/lib/static-picture-wrapper/staticpicturewrapper.d.ts","../node_modules/@neo4j-nvl/react/lib/index.d.ts","../node_modules/@radix-ui/react-context/dist/index.d.mts","../node_modules/@radix-ui/react-primitive/dist/index.d.mts","../node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts","../node_modules/@radix-ui/react-focus-scope/dist/index.d.mts","../node_modules/@radix-ui/react-arrow/dist/index.d.mts","../node_modules/@radix-ui/rect/dist/index.d.mts","../node_modules/@radix-ui/react-popper/dist/index.d.mts","../node_modules/@radix-ui/react-portal/dist/index.d.mts","../node_modules/@radix-ui/react-popover/dist/index.d.mts","../component/src/components/ui/popover.tsx","../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../node_modules/@radix-ui/react-label/dist/index.d.mts","../node_modules/class-variance-authority/dist/types.d.ts","../node_modules/class-variance-authority/dist/index.d.ts","../component/src/components/ui/label.tsx","../component/src/charts/graph-chart.tsx","../node_modules/@types/geojson/index.d.ts","../node_modules/@types/leaflet/index.d.ts","../node_modules/@types/leaflet.markercluster/index.d.ts","../component/src/lib/design-tokens.ts","../component/src/charts/map-chart.tsx","../component/src/charts/gauge-chart.tsx","../component/src/charts/sankey-chart.tsx","../component/src/charts/sunburst-chart.tsx","../component/src/charts/radar-chart.tsx","../component/src/charts/treemap-chart.tsx","../component/src/charts/index.ts","./src/lib/db/schema.ts","./src/lib/db/index.ts","./src/lib/auth/bootstrap.ts","./src/instrumentation.ts","../node_modules/next-auth/jwt.d.ts","./src/proxy.ts","./src/__tests__/instrumentation.test.ts","./src/__tests__/proxy.test.ts","./src/__tests__/security-headers.test.ts","./src/__tests__/helpers/drizzle-mocks.ts","./src/__tests__/helpers/next-mocks.ts","./src/__tests__/helpers/request-helpers.ts","./src/app/(dashboard)/settings/page.tsx","./src/app/(dashboard)/settings/__tests__/page.test.ts","../node_modules/next-auth/lib/types.d.ts","../node_modules/next-auth/lib/index.d.ts","../node_modules/@auth/core/errors.d.ts","../node_modules/next-auth/index.d.ts","../node_modules/next-auth/providers/credentials.d.ts","../node_modules/@auth/drizzle-adapter/lib/mysql.d.ts","../node_modules/@auth/drizzle-adapter/lib/pg.d.ts","../node_modules/@auth/drizzle-adapter/lib/sqlite.d.ts","../node_modules/@auth/drizzle-adapter/lib/utils.d.ts","../node_modules/@auth/drizzle-adapter/index.d.ts","./node_modules/zod/v3/helpers/typealiases.d.cts","./node_modules/zod/v3/helpers/util.d.cts","./node_modules/zod/v3/index.d.cts","./node_modules/zod/v3/zoderror.d.cts","./node_modules/zod/v3/locales/en.d.cts","./node_modules/zod/v3/errors.d.cts","./node_modules/zod/v3/helpers/parseutil.d.cts","./node_modules/zod/v3/helpers/enumutil.d.cts","./node_modules/zod/v3/helpers/errorutil.d.cts","./node_modules/zod/v3/helpers/partialutil.d.cts","./node_modules/zod/v3/standard-schema.d.cts","./node_modules/zod/v3/types.d.cts","./node_modules/zod/v3/external.d.cts","./node_modules/zod/index.d.cts","./src/lib/crypto/rate-limiter.ts","./src/lib/auth/config.ts","./src/app/api/auth/[...nextauth]/route.ts","./src/lib/auth/password-schema.ts","./src/lib/auth/signup.ts","./src/lib/api/api-response.ts","./src/app/api/auth/bootstrap-status/route.ts","./src/app/api/auth/bootstrap-status/__tests__/route.test.ts","./src/lib/auth/api-key.ts","./src/lib/auth/errors.ts","./src/lib/auth/session.ts","./src/lib/crypto/crypto.ts","../connection/dist/connectionmoduleconfig.d.ts","../connection/dist/generalized/interfaces.d.ts","../connection/dist/generalized/authenticationmodule.d.ts","../connection/dist/generalized/connectionmodule.d.ts","../connection/dist/generalized/connector-plugin.d.ts","../connection/dist/connector-registry.d.ts","../connection/dist/generalized/connectorerror.d.ts","../connection/dist/schema/types.d.ts","../connection/dist/schema/schema-manager.d.ts","../connection/dist/schema/neo4j-schema.d.ts","../connection/dist/schema/pg-schema.d.ts","../connection/dist/connector-types.d.ts","../connection/dist/index.d.ts","./src/lib/connector/connection-adapter.ts","./src/lib/query/query-params.ts","./src/lib/connector/connector-types.ts","./src/lib/query/query-executor.ts","./src/lib/connector/schema-prefetch.ts","./src/lib/shared/schemas.ts","./src/lib/api/api-utils.ts","./src/app/api/connections/route.ts","./src/lib/db/connection-usage.ts","./src/app/api/connections/[id]/route.ts","./src/app/api/connections/[id]/__tests__/route.test.ts","./src/app/api/connections/[id]/schema/route.ts","./src/app/api/connections/[id]/schema/__tests__/route.test.ts","./src/app/api/connections/[id]/test/route.ts","./src/app/api/connections/[id]/test/__tests__/route.test.ts","./src/app/api/connections/[id]/usage/route.ts","./src/app/api/connections/[id]/usage/__tests__/route.test.ts","./src/app/api/connections/__tests__/route.test.ts","./src/app/api/connections/test-inline/route.ts","./src/app/api/connections/test-inline/__tests__/route.test.ts","./src/app/api/dashboards/route.ts","./src/app/api/dashboards/[id]/route.ts","./src/app/api/dashboards/[id]/__tests__/route.test.ts","./src/app/api/dashboards/[id]/duplicate/route.ts","./src/app/api/dashboards/[id]/duplicate/__tests__/route.test.ts","./src/lib/dashboard/dashboard-export.ts","./src/app/api/dashboards/[id]/export/route.ts","./src/app/api/dashboards/[id]/export/__tests__/route.test.ts","./src/app/api/dashboards/[id]/share/route.ts","./src/app/api/dashboards/[id]/share/__tests__/route.test.ts","./src/app/api/dashboards/__tests__/route.test.ts","./src/lib/dashboard/dashboard-import.ts","./src/lib/dashboard/neodash-converter.ts","./src/app/api/dashboards/import/route.ts","./src/app/api/dashboards/import/__tests__/route.test.ts","./src/app/api/docs/route.ts","./src/app/api/docs/__tests__/route.test.ts","./src/app/api/keys/route.ts","./src/app/api/keys/[id]/route.ts","./src/app/api/keys/[id]/__tests__/route.test.ts","./src/app/api/keys/__tests__/route.test.ts","./src/lib/api/openapi-spec.ts","./src/app/api/openapi/route.ts","./src/app/api/openapi/__tests__/route.test.ts","./src/app/api/openapi.json/route.ts","./src/app/api/openapi.json/__tests__/route.test.ts","./src/lib/query/query-hash.ts","./src/app/api/query/route.ts","./src/app/api/query/__tests__/route.test.ts","./src/app/api/query/write/route.ts","./src/app/api/query/write/__tests__/route.test.ts","./src/app/api/users/route.ts","./src/app/api/users/[id]/route.ts","./src/app/api/users/[id]/__tests__/route.test.ts","./src/app/api/users/[id]/reset-password/route.ts","./src/app/api/users/[id]/reset-password/__tests__/route.test.ts","./src/app/api/users/__tests__/route.test.ts","./src/app/api/users/me/route.ts","./src/app/api/users/me/__tests__/route.test.ts","./src/app/api/users/me/password/route.ts","./src/app/api/users/me/password/__tests__/route.test.ts","./src/app/api/widget-templates/shared.ts","./src/app/api/widget-templates/route.ts","./src/app/api/widget-templates/[id]/route.ts","./src/app/api/widget-templates/[id]/__tests__/route.test.ts","./src/app/api/widget-templates/__tests__/route.test.ts","../node_modules/@radix-ui/react-slot/dist/index.d.mts","../component/src/components/ui/button.tsx","../component/src/components/ui/input.tsx","../component/src/components/ui/badge.tsx","../node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.d.mts","../node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../node_modules/@radix-ui/react-avatar/dist/index.d.mts","../component/src/components/ui/avatar.tsx","../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../node_modules/@radix-ui/react-separator/dist/index.d.mts","../component/src/components/ui/separator.tsx","../component/src/components/ui/skeleton.tsx","../node_modules/react-hook-form/dist/constants.d.ts","../node_modules/react-hook-form/dist/utils/createsubject.d.ts","../node_modules/react-hook-form/dist/types/events.d.ts","../node_modules/react-hook-form/dist/types/path/common.d.ts","../node_modules/react-hook-form/dist/types/path/eager.d.ts","../node_modules/react-hook-form/dist/types/path/index.d.ts","../node_modules/react-hook-form/dist/types/fieldarray.d.ts","../node_modules/react-hook-form/dist/types/resolvers.d.ts","../node_modules/react-hook-form/dist/types/form.d.ts","../node_modules/react-hook-form/dist/types/utils.d.ts","../node_modules/react-hook-form/dist/types/fields.d.ts","../node_modules/react-hook-form/dist/types/errors.d.ts","../node_modules/react-hook-form/dist/types/validator.d.ts","../node_modules/react-hook-form/dist/types/controller.d.ts","../node_modules/react-hook-form/dist/types/watch.d.ts","../node_modules/react-hook-form/dist/types/index.d.ts","../node_modules/react-hook-form/dist/controller.d.ts","../node_modules/react-hook-form/dist/form.d.ts","../node_modules/react-hook-form/dist/formstatesubscribe.d.ts","../node_modules/react-hook-form/dist/logic/appenderrors.d.ts","../node_modules/react-hook-form/dist/logic/createformcontrol.d.ts","../node_modules/react-hook-form/dist/logic/index.d.ts","../node_modules/react-hook-form/dist/usecontroller.d.ts","../node_modules/react-hook-form/dist/usefieldarray.d.ts","../node_modules/react-hook-form/dist/useform.d.ts","../node_modules/react-hook-form/dist/useformcontext.d.ts","../node_modules/react-hook-form/dist/useformstate.d.ts","../node_modules/react-hook-form/dist/usewatch.d.ts","../node_modules/react-hook-form/dist/utils/get.d.ts","../node_modules/react-hook-form/dist/utils/set.d.ts","../node_modules/react-hook-form/dist/utils/index.d.ts","../node_modules/react-hook-form/dist/watch.d.ts","../node_modules/react-hook-form/dist/index.d.ts","../component/src/components/ui/form.tsx","../node_modules/@radix-ui/react-select/dist/index.d.mts","../component/node_modules/lucide-react/dist/lucide-react.d.ts","../component/src/components/ui/select.tsx","../node_modules/@radix-ui/react-checkbox/dist/index.d.mts","../component/src/components/ui/checkbox.tsx","../node_modules/@radix-ui/react-roving-focus/dist/index.d.mts","../node_modules/@radix-ui/react-radio-group/dist/index.d.mts","../component/src/components/ui/radio-group.tsx","../node_modules/@radix-ui/react-switch/dist/index.d.mts","../component/src/components/ui/switch.tsx","../component/src/components/ui/textarea.tsx","../node_modules/@radix-ui/react-slider/dist/index.d.mts","../component/src/components/ui/slider.tsx","../node_modules/@radix-ui/react-dialog/dist/index.d.mts","../component/src/components/ui/dialog.tsx","../node_modules/@radix-ui/react-alert-dialog/dist/index.d.mts","../component/src/components/ui/alert-dialog.tsx","../node_modules/@radix-ui/react-menu/dist/index.d.mts","../node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts","../component/src/components/ui/dropdown-menu.tsx","../node_modules/@radix-ui/react-tooltip/dist/index.d.mts","../component/src/components/ui/tooltip.tsx","../node_modules/@radix-ui/react-toast/dist/index.d.mts","../component/src/components/ui/toast.tsx","../component/src/hooks/use-toast.ts","../component/src/components/ui/toaster.tsx","../component/src/components/ui/alert.tsx","../node_modules/@radix-ui/react-tabs/dist/index.d.mts","../component/src/components/ui/tabs.tsx","../node_modules/@radix-ui/react-collapsible/dist/index.d.mts","../node_modules/@radix-ui/react-accordion/dist/index.d.mts","../component/src/components/ui/accordion.tsx","../node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts","../node_modules/@radix-ui/react-navigation-menu/dist/index.d.mts","../component/src/components/ui/navigation-menu.tsx","../component/src/components/ui/breadcrumb.tsx","../component/src/components/ui/pagination.tsx","../component/src/components/ui/sheet.tsx","../component/src/components/ui/table.tsx","../node_modules/@date-fns/tz/constants/index.d.ts","../node_modules/@date-fns/tz/date/index.d.ts","../node_modules/@date-fns/tz/date/mini.d.ts","../node_modules/@date-fns/tz/tz/index.d.ts","../node_modules/@date-fns/tz/tzoffset/index.d.ts","../node_modules/@date-fns/tz/tzscan/index.d.ts","../node_modules/@date-fns/tz/tzname/index.d.ts","../node_modules/@date-fns/tz/index.d.ts","../node_modules/date-fns/constants.d.ts","../node_modules/date-fns/locale/types.d.ts","../node_modules/date-fns/fp/types.d.ts","../node_modules/date-fns/types.d.ts","../node_modules/date-fns/add.d.ts","../node_modules/date-fns/addbusinessdays.d.ts","../node_modules/date-fns/adddays.d.ts","../node_modules/date-fns/addhours.d.ts","../node_modules/date-fns/addisoweekyears.d.ts","../node_modules/date-fns/addmilliseconds.d.ts","../node_modules/date-fns/addminutes.d.ts","../node_modules/date-fns/addmonths.d.ts","../node_modules/date-fns/addquarters.d.ts","../node_modules/date-fns/addseconds.d.ts","../node_modules/date-fns/addweeks.d.ts","../node_modules/date-fns/addyears.d.ts","../node_modules/date-fns/areintervalsoverlapping.d.ts","../node_modules/date-fns/clamp.d.ts","../node_modules/date-fns/closestindexto.d.ts","../node_modules/date-fns/closestto.d.ts","../node_modules/date-fns/compareasc.d.ts","../node_modules/date-fns/comparedesc.d.ts","../node_modules/date-fns/constructfrom.d.ts","../node_modules/date-fns/constructnow.d.ts","../node_modules/date-fns/daystoweeks.d.ts","../node_modules/date-fns/differenceinbusinessdays.d.ts","../node_modules/date-fns/differenceincalendardays.d.ts","../node_modules/date-fns/differenceincalendarisoweekyears.d.ts","../node_modules/date-fns/differenceincalendarisoweeks.d.ts","../node_modules/date-fns/differenceincalendarmonths.d.ts","../node_modules/date-fns/differenceincalendarquarters.d.ts","../node_modules/date-fns/differenceincalendarweeks.d.ts","../node_modules/date-fns/differenceincalendaryears.d.ts","../node_modules/date-fns/differenceindays.d.ts","../node_modules/date-fns/differenceinhours.d.ts","../node_modules/date-fns/differenceinisoweekyears.d.ts","../node_modules/date-fns/differenceinmilliseconds.d.ts","../node_modules/date-fns/differenceinminutes.d.ts","../node_modules/date-fns/differenceinmonths.d.ts","../node_modules/date-fns/differenceinquarters.d.ts","../node_modules/date-fns/differenceinseconds.d.ts","../node_modules/date-fns/differenceinweeks.d.ts","../node_modules/date-fns/differenceinyears.d.ts","../node_modules/date-fns/eachdayofinterval.d.ts","../node_modules/date-fns/eachhourofinterval.d.ts","../node_modules/date-fns/eachminuteofinterval.d.ts","../node_modules/date-fns/eachmonthofinterval.d.ts","../node_modules/date-fns/eachquarterofinterval.d.ts","../node_modules/date-fns/eachweekofinterval.d.ts","../node_modules/date-fns/eachweekendofinterval.d.ts","../node_modules/date-fns/eachweekendofmonth.d.ts","../node_modules/date-fns/eachweekendofyear.d.ts","../node_modules/date-fns/eachyearofinterval.d.ts","../node_modules/date-fns/endofday.d.ts","../node_modules/date-fns/endofdecade.d.ts","../node_modules/date-fns/endofhour.d.ts","../node_modules/date-fns/endofisoweek.d.ts","../node_modules/date-fns/endofisoweekyear.d.ts","../node_modules/date-fns/endofminute.d.ts","../node_modules/date-fns/endofmonth.d.ts","../node_modules/date-fns/endofquarter.d.ts","../node_modules/date-fns/endofsecond.d.ts","../node_modules/date-fns/endoftoday.d.ts","../node_modules/date-fns/endoftomorrow.d.ts","../node_modules/date-fns/endofweek.d.ts","../node_modules/date-fns/endofyear.d.ts","../node_modules/date-fns/endofyesterday.d.ts","../node_modules/date-fns/_lib/format/formatters.d.ts","../node_modules/date-fns/_lib/format/longformatters.d.ts","../node_modules/date-fns/format.d.ts","../node_modules/date-fns/formatdistance.d.ts","../node_modules/date-fns/formatdistancestrict.d.ts","../node_modules/date-fns/formatdistancetonow.d.ts","../node_modules/date-fns/formatdistancetonowstrict.d.ts","../node_modules/date-fns/formatduration.d.ts","../node_modules/date-fns/formatiso.d.ts","../node_modules/date-fns/formatiso9075.d.ts","../node_modules/date-fns/formatisoduration.d.ts","../node_modules/date-fns/formatrfc3339.d.ts","../node_modules/date-fns/formatrfc7231.d.ts","../node_modules/date-fns/formatrelative.d.ts","../node_modules/date-fns/fromunixtime.d.ts","../node_modules/date-fns/getdate.d.ts","../node_modules/date-fns/getday.d.ts","../node_modules/date-fns/getdayofyear.d.ts","../node_modules/date-fns/getdaysinmonth.d.ts","../node_modules/date-fns/getdaysinyear.d.ts","../node_modules/date-fns/getdecade.d.ts","../node_modules/date-fns/_lib/defaultoptions.d.ts","../node_modules/date-fns/getdefaultoptions.d.ts","../node_modules/date-fns/gethours.d.ts","../node_modules/date-fns/getisoday.d.ts","../node_modules/date-fns/getisoweek.d.ts","../node_modules/date-fns/getisoweekyear.d.ts","../node_modules/date-fns/getisoweeksinyear.d.ts","../node_modules/date-fns/getmilliseconds.d.ts","../node_modules/date-fns/getminutes.d.ts","../node_modules/date-fns/getmonth.d.ts","../node_modules/date-fns/getoverlappingdaysinintervals.d.ts","../node_modules/date-fns/getquarter.d.ts","../node_modules/date-fns/getseconds.d.ts","../node_modules/date-fns/gettime.d.ts","../node_modules/date-fns/getunixtime.d.ts","../node_modules/date-fns/getweek.d.ts","../node_modules/date-fns/getweekofmonth.d.ts","../node_modules/date-fns/getweekyear.d.ts","../node_modules/date-fns/getweeksinmonth.d.ts","../node_modules/date-fns/getyear.d.ts","../node_modules/date-fns/hourstomilliseconds.d.ts","../node_modules/date-fns/hourstominutes.d.ts","../node_modules/date-fns/hourstoseconds.d.ts","../node_modules/date-fns/interval.d.ts","../node_modules/date-fns/intervaltoduration.d.ts","../node_modules/date-fns/intlformat.d.ts","../node_modules/date-fns/intlformatdistance.d.ts","../node_modules/date-fns/isafter.d.ts","../node_modules/date-fns/isbefore.d.ts","../node_modules/date-fns/isdate.d.ts","../node_modules/date-fns/isequal.d.ts","../node_modules/date-fns/isexists.d.ts","../node_modules/date-fns/isfirstdayofmonth.d.ts","../node_modules/date-fns/isfriday.d.ts","../node_modules/date-fns/isfuture.d.ts","../node_modules/date-fns/islastdayofmonth.d.ts","../node_modules/date-fns/isleapyear.d.ts","../node_modules/date-fns/ismatch.d.ts","../node_modules/date-fns/ismonday.d.ts","../node_modules/date-fns/ispast.d.ts","../node_modules/date-fns/issameday.d.ts","../node_modules/date-fns/issamehour.d.ts","../node_modules/date-fns/issameisoweek.d.ts","../node_modules/date-fns/issameisoweekyear.d.ts","../node_modules/date-fns/issameminute.d.ts","../node_modules/date-fns/issamemonth.d.ts","../node_modules/date-fns/issamequarter.d.ts","../node_modules/date-fns/issamesecond.d.ts","../node_modules/date-fns/issameweek.d.ts","../node_modules/date-fns/issameyear.d.ts","../node_modules/date-fns/issaturday.d.ts","../node_modules/date-fns/issunday.d.ts","../node_modules/date-fns/isthishour.d.ts","../node_modules/date-fns/isthisisoweek.d.ts","../node_modules/date-fns/isthisminute.d.ts","../node_modules/date-fns/isthismonth.d.ts","../node_modules/date-fns/isthisquarter.d.ts","../node_modules/date-fns/isthissecond.d.ts","../node_modules/date-fns/isthisweek.d.ts","../node_modules/date-fns/isthisyear.d.ts","../node_modules/date-fns/isthursday.d.ts","../node_modules/date-fns/istoday.d.ts","../node_modules/date-fns/istomorrow.d.ts","../node_modules/date-fns/istuesday.d.ts","../node_modules/date-fns/isvalid.d.ts","../node_modules/date-fns/iswednesday.d.ts","../node_modules/date-fns/isweekend.d.ts","../node_modules/date-fns/iswithininterval.d.ts","../node_modules/date-fns/isyesterday.d.ts","../node_modules/date-fns/lastdayofdecade.d.ts","../node_modules/date-fns/lastdayofisoweek.d.ts","../node_modules/date-fns/lastdayofisoweekyear.d.ts","../node_modules/date-fns/lastdayofmonth.d.ts","../node_modules/date-fns/lastdayofquarter.d.ts","../node_modules/date-fns/lastdayofweek.d.ts","../node_modules/date-fns/lastdayofyear.d.ts","../node_modules/date-fns/_lib/format/lightformatters.d.ts","../node_modules/date-fns/lightformat.d.ts","../node_modules/date-fns/max.d.ts","../node_modules/date-fns/milliseconds.d.ts","../node_modules/date-fns/millisecondstohours.d.ts","../node_modules/date-fns/millisecondstominutes.d.ts","../node_modules/date-fns/millisecondstoseconds.d.ts","../node_modules/date-fns/min.d.ts","../node_modules/date-fns/minutestohours.d.ts","../node_modules/date-fns/minutestomilliseconds.d.ts","../node_modules/date-fns/minutestoseconds.d.ts","../node_modules/date-fns/monthstoquarters.d.ts","../node_modules/date-fns/monthstoyears.d.ts","../node_modules/date-fns/nextday.d.ts","../node_modules/date-fns/nextfriday.d.ts","../node_modules/date-fns/nextmonday.d.ts","../node_modules/date-fns/nextsaturday.d.ts","../node_modules/date-fns/nextsunday.d.ts","../node_modules/date-fns/nextthursday.d.ts","../node_modules/date-fns/nexttuesday.d.ts","../node_modules/date-fns/nextwednesday.d.ts","../node_modules/date-fns/parse/_lib/types.d.ts","../node_modules/date-fns/parse/_lib/setter.d.ts","../node_modules/date-fns/parse/_lib/parser.d.ts","../node_modules/date-fns/parse/_lib/parsers.d.ts","../node_modules/date-fns/parse.d.ts","../node_modules/date-fns/parseiso.d.ts","../node_modules/date-fns/parsejson.d.ts","../node_modules/date-fns/previousday.d.ts","../node_modules/date-fns/previousfriday.d.ts","../node_modules/date-fns/previousmonday.d.ts","../node_modules/date-fns/previoussaturday.d.ts","../node_modules/date-fns/previoussunday.d.ts","../node_modules/date-fns/previousthursday.d.ts","../node_modules/date-fns/previoustuesday.d.ts","../node_modules/date-fns/previouswednesday.d.ts","../node_modules/date-fns/quarterstomonths.d.ts","../node_modules/date-fns/quarterstoyears.d.ts","../node_modules/date-fns/roundtonearesthours.d.ts","../node_modules/date-fns/roundtonearestminutes.d.ts","../node_modules/date-fns/secondstohours.d.ts","../node_modules/date-fns/secondstomilliseconds.d.ts","../node_modules/date-fns/secondstominutes.d.ts","../node_modules/date-fns/set.d.ts","../node_modules/date-fns/setdate.d.ts","../node_modules/date-fns/setday.d.ts","../node_modules/date-fns/setdayofyear.d.ts","../node_modules/date-fns/setdefaultoptions.d.ts","../node_modules/date-fns/sethours.d.ts","../node_modules/date-fns/setisoday.d.ts","../node_modules/date-fns/setisoweek.d.ts","../node_modules/date-fns/setisoweekyear.d.ts","../node_modules/date-fns/setmilliseconds.d.ts","../node_modules/date-fns/setminutes.d.ts","../node_modules/date-fns/setmonth.d.ts","../node_modules/date-fns/setquarter.d.ts","../node_modules/date-fns/setseconds.d.ts","../node_modules/date-fns/setweek.d.ts","../node_modules/date-fns/setweekyear.d.ts","../node_modules/date-fns/setyear.d.ts","../node_modules/date-fns/startofday.d.ts","../node_modules/date-fns/startofdecade.d.ts","../node_modules/date-fns/startofhour.d.ts","../node_modules/date-fns/startofisoweek.d.ts","../node_modules/date-fns/startofisoweekyear.d.ts","../node_modules/date-fns/startofminute.d.ts","../node_modules/date-fns/startofmonth.d.ts","../node_modules/date-fns/startofquarter.d.ts","../node_modules/date-fns/startofsecond.d.ts","../node_modules/date-fns/startoftoday.d.ts","../node_modules/date-fns/startoftomorrow.d.ts","../node_modules/date-fns/startofweek.d.ts","../node_modules/date-fns/startofweekyear.d.ts","../node_modules/date-fns/startofyear.d.ts","../node_modules/date-fns/startofyesterday.d.ts","../node_modules/date-fns/sub.d.ts","../node_modules/date-fns/subbusinessdays.d.ts","../node_modules/date-fns/subdays.d.ts","../node_modules/date-fns/subhours.d.ts","../node_modules/date-fns/subisoweekyears.d.ts","../node_modules/date-fns/submilliseconds.d.ts","../node_modules/date-fns/subminutes.d.ts","../node_modules/date-fns/submonths.d.ts","../node_modules/date-fns/subquarters.d.ts","../node_modules/date-fns/subseconds.d.ts","../node_modules/date-fns/subweeks.d.ts","../node_modules/date-fns/subyears.d.ts","../node_modules/date-fns/todate.d.ts","../node_modules/date-fns/transpose.d.ts","../node_modules/date-fns/weekstodays.d.ts","../node_modules/date-fns/yearstodays.d.ts","../node_modules/date-fns/yearstomonths.d.ts","../node_modules/date-fns/yearstoquarters.d.ts","../node_modules/date-fns/index.d.ts","../node_modules/date-fns/locale/af.d.ts","../node_modules/date-fns/locale/ar.d.ts","../node_modules/date-fns/locale/ar-dz.d.ts","../node_modules/date-fns/locale/ar-eg.d.ts","../node_modules/date-fns/locale/ar-ma.d.ts","../node_modules/date-fns/locale/ar-sa.d.ts","../node_modules/date-fns/locale/ar-tn.d.ts","../node_modules/date-fns/locale/az.d.ts","../node_modules/date-fns/locale/be.d.ts","../node_modules/date-fns/locale/be-tarask.d.ts","../node_modules/date-fns/locale/bg.d.ts","../node_modules/date-fns/locale/bn.d.ts","../node_modules/date-fns/locale/bs.d.ts","../node_modules/date-fns/locale/ca.d.ts","../node_modules/date-fns/locale/ckb.d.ts","../node_modules/date-fns/locale/cs.d.ts","../node_modules/date-fns/locale/cy.d.ts","../node_modules/date-fns/locale/da.d.ts","../node_modules/date-fns/locale/de.d.ts","../node_modules/date-fns/locale/de-at.d.ts","../node_modules/date-fns/locale/el.d.ts","../node_modules/date-fns/locale/en-au.d.ts","../node_modules/date-fns/locale/en-ca.d.ts","../node_modules/date-fns/locale/en-gb.d.ts","../node_modules/date-fns/locale/en-ie.d.ts","../node_modules/date-fns/locale/en-in.d.ts","../node_modules/date-fns/locale/en-nz.d.ts","../node_modules/date-fns/locale/en-us.d.ts","../node_modules/date-fns/locale/en-za.d.ts","../node_modules/date-fns/locale/eo.d.ts","../node_modules/date-fns/locale/es.d.ts","../node_modules/date-fns/locale/et.d.ts","../node_modules/date-fns/locale/eu.d.ts","../node_modules/date-fns/locale/fa-ir.d.ts","../node_modules/date-fns/locale/fi.d.ts","../node_modules/date-fns/locale/fr.d.ts","../node_modules/date-fns/locale/fr-ca.d.ts","../node_modules/date-fns/locale/fr-ch.d.ts","../node_modules/date-fns/locale/fy.d.ts","../node_modules/date-fns/locale/gd.d.ts","../node_modules/date-fns/locale/gl.d.ts","../node_modules/date-fns/locale/gu.d.ts","../node_modules/date-fns/locale/he.d.ts","../node_modules/date-fns/locale/hi.d.ts","../node_modules/date-fns/locale/hr.d.ts","../node_modules/date-fns/locale/ht.d.ts","../node_modules/date-fns/locale/hu.d.ts","../node_modules/date-fns/locale/hy.d.ts","../node_modules/date-fns/locale/id.d.ts","../node_modules/date-fns/locale/is.d.ts","../node_modules/date-fns/locale/it.d.ts","../node_modules/date-fns/locale/it-ch.d.ts","../node_modules/date-fns/locale/ja.d.ts","../node_modules/date-fns/locale/ja-hira.d.ts","../node_modules/date-fns/locale/ka.d.ts","../node_modules/date-fns/locale/kk.d.ts","../node_modules/date-fns/locale/km.d.ts","../node_modules/date-fns/locale/kn.d.ts","../node_modules/date-fns/locale/ko.d.ts","../node_modules/date-fns/locale/lb.d.ts","../node_modules/date-fns/locale/lt.d.ts","../node_modules/date-fns/locale/lv.d.ts","../node_modules/date-fns/locale/mk.d.ts","../node_modules/date-fns/locale/mn.d.ts","../node_modules/date-fns/locale/ms.d.ts","../node_modules/date-fns/locale/mt.d.ts","../node_modules/date-fns/locale/nb.d.ts","../node_modules/date-fns/locale/nl.d.ts","../node_modules/date-fns/locale/nl-be.d.ts","../node_modules/date-fns/locale/nn.d.ts","../node_modules/date-fns/locale/oc.d.ts","../node_modules/date-fns/locale/pl.d.ts","../node_modules/date-fns/locale/pt.d.ts","../node_modules/date-fns/locale/pt-br.d.ts","../node_modules/date-fns/locale/ro.d.ts","../node_modules/date-fns/locale/ru.d.ts","../node_modules/date-fns/locale/se.d.ts","../node_modules/date-fns/locale/sk.d.ts","../node_modules/date-fns/locale/sl.d.ts","../node_modules/date-fns/locale/sq.d.ts","../node_modules/date-fns/locale/sr.d.ts","../node_modules/date-fns/locale/sr-latn.d.ts","../node_modules/date-fns/locale/sv.d.ts","../node_modules/date-fns/locale/ta.d.ts","../node_modules/date-fns/locale/te.d.ts","../node_modules/date-fns/locale/th.d.ts","../node_modules/date-fns/locale/tr.d.ts","../node_modules/date-fns/locale/ug.d.ts","../node_modules/date-fns/locale/uk.d.ts","../node_modules/date-fns/locale/uz.d.ts","../node_modules/date-fns/locale/uz-cyrl.d.ts","../node_modules/date-fns/locale/vi.d.ts","../node_modules/date-fns/locale/zh-cn.d.ts","../node_modules/date-fns/locale/zh-hk.d.ts","../node_modules/date-fns/locale/zh-tw.d.ts","../node_modules/date-fns/locale.d.ts","../node_modules/react-day-picker/dist/esm/components/button.d.ts","../node_modules/react-day-picker/dist/esm/components/captionlabel.d.ts","../node_modules/react-day-picker/dist/esm/components/chevron.d.ts","../node_modules/react-day-picker/dist/esm/components/monthcaption.d.ts","../node_modules/react-day-picker/dist/esm/components/week.d.ts","../node_modules/react-day-picker/dist/esm/labels/labeldaybutton.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelgrid.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelgridcell.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelmonthdropdown.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelnav.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelnext.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelprevious.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelweekday.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelweeknumber.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelweeknumberheader.d.ts","../node_modules/react-day-picker/dist/esm/labels/labelyeardropdown.d.ts","../node_modules/react-day-picker/dist/esm/labels/index.d.ts","../node_modules/react-day-picker/dist/esm/ui.d.ts","../node_modules/react-day-picker/dist/esm/classes/calendarweek.d.ts","../node_modules/react-day-picker/dist/esm/classes/calendarmonth.d.ts","../node_modules/react-day-picker/dist/esm/types/props.d.ts","../node_modules/react-day-picker/dist/esm/types/selection.d.ts","../node_modules/react-day-picker/dist/esm/usedaypicker.d.ts","../node_modules/react-day-picker/dist/esm/types/deprecated.d.ts","../node_modules/react-day-picker/dist/esm/types/index.d.ts","../node_modules/react-day-picker/dist/esm/components/day.d.ts","../node_modules/react-day-picker/dist/esm/components/daybutton.d.ts","../node_modules/react-day-picker/dist/esm/components/dropdown.d.ts","../node_modules/react-day-picker/dist/esm/components/dropdownnav.d.ts","../node_modules/react-day-picker/dist/esm/components/footer.d.ts","../node_modules/react-day-picker/dist/esm/components/month.d.ts","../node_modules/react-day-picker/dist/esm/components/monthgrid.d.ts","../node_modules/react-day-picker/dist/esm/components/months.d.ts","../node_modules/react-day-picker/dist/esm/components/monthsdropdown.d.ts","../node_modules/react-day-picker/dist/esm/components/nav.d.ts","../node_modules/react-day-picker/dist/esm/components/nextmonthbutton.d.ts","../node_modules/react-day-picker/dist/esm/components/option.d.ts","../node_modules/react-day-picker/dist/esm/components/previousmonthbutton.d.ts","../node_modules/react-day-picker/dist/esm/components/root.d.ts","../node_modules/react-day-picker/dist/esm/components/select.d.ts","../node_modules/react-day-picker/dist/esm/components/weekday.d.ts","../node_modules/react-day-picker/dist/esm/components/weekdays.d.ts","../node_modules/react-day-picker/dist/esm/components/weeknumber.d.ts","../node_modules/react-day-picker/dist/esm/components/weeknumberheader.d.ts","../node_modules/react-day-picker/dist/esm/components/weeks.d.ts","../node_modules/react-day-picker/dist/esm/components/yearsdropdown.d.ts","../node_modules/react-day-picker/dist/esm/components/custom-components.d.ts","../node_modules/react-day-picker/dist/esm/formatters/formatcaption.d.ts","../node_modules/react-day-picker/dist/esm/formatters/formatday.d.ts","../node_modules/react-day-picker/dist/esm/formatters/formatmonthdropdown.d.ts","../node_modules/react-day-picker/dist/esm/formatters/formatweekdayname.d.ts","../node_modules/react-day-picker/dist/esm/formatters/formatweeknumber.d.ts","../node_modules/react-day-picker/dist/esm/formatters/formatweeknumberheader.d.ts","../node_modules/react-day-picker/dist/esm/formatters/formatyeardropdown.d.ts","../node_modules/react-day-picker/dist/esm/formatters/index.d.ts","../node_modules/react-day-picker/dist/esm/types/shared.d.ts","../node_modules/react-day-picker/dist/esm/locale/en-us.d.ts","../node_modules/react-day-picker/dist/esm/classes/datelib.d.ts","../node_modules/react-day-picker/dist/esm/classes/calendarday.d.ts","../node_modules/react-day-picker/dist/esm/classes/index.d.ts","../node_modules/react-day-picker/dist/esm/daypicker.d.ts","../node_modules/react-day-picker/dist/esm/helpers/getdefaultclassnames.d.ts","../node_modules/react-day-picker/dist/esm/helpers/index.d.ts","../node_modules/react-day-picker/dist/esm/utils/addtorange.d.ts","../node_modules/react-day-picker/dist/esm/utils/datematchmodifiers.d.ts","../node_modules/react-day-picker/dist/esm/utils/rangecontainsdayofweek.d.ts","../node_modules/react-day-picker/dist/esm/utils/rangecontainsmodifiers.d.ts","../node_modules/react-day-picker/dist/esm/utils/rangeincludesdate.d.ts","../node_modules/react-day-picker/dist/esm/utils/rangeoverlaps.d.ts","../node_modules/react-day-picker/dist/esm/utils/typeguards.d.ts","../node_modules/react-day-picker/dist/esm/utils/index.d.ts","../node_modules/react-day-picker/dist/esm/index.d.ts","../component/src/components/ui/calendar.tsx","../node_modules/cmdk/dist/index.d.ts","../component/src/components/ui/command.tsx","../component/src/components/ui/index.ts","../component/src/components/composed/loading-button.tsx","../component/src/components/composed/password-input.tsx","../component/src/components/composed/copy-button.tsx","../component/src/components/composed/combobox.tsx","../component/src/components/composed/creatable-combobox.tsx","../component/src/components/composed/multi-select.tsx","../component/src/components/composed/date-range-picker.tsx","../component/src/components/composed/confirm-dialog.tsx","../component/src/components/composed/empty-state.tsx","../component/src/components/composed/loading-overlay.tsx","../component/src/components/composed/time-ago.tsx","../component/src/components/composed/json-viewer.tsx","../component/src/components/composed/property-panel.tsx","../component/src/components/composed/page-header.tsx","../component/src/components/composed/widget-card.tsx","../component/src/components/composed/app-shell.tsx","../component/src/components/composed/sidebar.tsx","../component/src/components/composed/sidebar-item.tsx","../component/src/components/composed/toolbar.tsx","../node_modules/react-grid-layout/dist/types-jd8mikm1.d.mts","../node_modules/react-grid-layout/dist/responsivegridlayout-bjvraymq.d.mts","../node_modules/react-grid-layout/dist/position-bv-g3ezg.d.mts","../node_modules/react-grid-layout/dist/calculate-dh4evtn1.d.mts","../node_modules/react-grid-layout/dist/react.d.mts","../node_modules/react-grid-layout/dist/responsive-brtv_0tk.d.mts","../node_modules/react-grid-layout/dist/index.d.mts","../component/src/components/composed/dashboard-grid.tsx","../component/src/components/composed/dashboard-mini-preview.tsx","../node_modules/@tanstack/table-core/build/lib/utils.d.ts","../node_modules/@tanstack/table-core/build/lib/core/table.d.ts","../node_modules/@tanstack/table-core/build/lib/features/columnvisibility.d.ts","../node_modules/@tanstack/table-core/build/lib/features/columnordering.d.ts","../node_modules/@tanstack/table-core/build/lib/features/columnpinning.d.ts","../node_modules/@tanstack/table-core/build/lib/features/rowpinning.d.ts","../node_modules/@tanstack/table-core/build/lib/core/headers.d.ts","../node_modules/@tanstack/table-core/build/lib/features/columnfaceting.d.ts","../node_modules/@tanstack/table-core/build/lib/features/globalfaceting.d.ts","../node_modules/@tanstack/table-core/build/lib/filterfns.d.ts","../node_modules/@tanstack/table-core/build/lib/features/columnfiltering.d.ts","../node_modules/@tanstack/table-core/build/lib/features/globalfiltering.d.ts","../node_modules/@tanstack/table-core/build/lib/sortingfns.d.ts","../node_modules/@tanstack/table-core/build/lib/features/rowsorting.d.ts","../node_modules/@tanstack/table-core/build/lib/aggregationfns.d.ts","../node_modules/@tanstack/table-core/build/lib/features/columngrouping.d.ts","../node_modules/@tanstack/table-core/build/lib/features/rowexpanding.d.ts","../node_modules/@tanstack/table-core/build/lib/features/columnsizing.d.ts","../node_modules/@tanstack/table-core/build/lib/features/rowpagination.d.ts","../node_modules/@tanstack/table-core/build/lib/features/rowselection.d.ts","../node_modules/@tanstack/table-core/build/lib/core/row.d.ts","../node_modules/@tanstack/table-core/build/lib/core/cell.d.ts","../node_modules/@tanstack/table-core/build/lib/core/column.d.ts","../node_modules/@tanstack/table-core/build/lib/types.d.ts","../node_modules/@tanstack/table-core/build/lib/columnhelper.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getcorerowmodel.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getexpandedrowmodel.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getfacetedminmaxvalues.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getfacetedrowmodel.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getfaceteduniquevalues.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getfilteredrowmodel.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getgroupedrowmodel.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getpaginationrowmodel.d.ts","../node_modules/@tanstack/table-core/build/lib/utils/getsortedrowmodel.d.ts","../node_modules/@tanstack/table-core/build/lib/index.d.ts","../node_modules/@tanstack/react-table/build/lib/index.d.ts","../component/src/components/composed/data-grid.tsx","../component/src/components/composed/data-grid-column-header.tsx","../component/src/components/composed/data-grid-pagination.tsx","../component/src/components/composed/data-grid-faceted-filter.tsx","../component/src/components/composed/data-grid-view-options.tsx","../component/src/components/composed/chart-type-picker.tsx","../component/src/components/composed/field-picker.tsx","../component/src/components/composed/chart-settings-panel.tsx","../component/src/components/composed/chart-options/shared.ts","../component/src/components/composed/chart-options/bar.ts","../component/src/components/composed/chart-options/line.ts","../component/src/components/composed/chart-options/pie.ts","../component/src/components/composed/chart-options/single-value.ts","../component/src/components/composed/chart-options/graph.ts","../component/src/components/composed/chart-options/map.ts","../component/src/components/composed/chart-options/table.ts","../component/src/components/composed/chart-options/json.ts","../component/src/components/composed/chart-options/parameter-select.ts","../component/src/components/composed/chart-options/form.ts","../component/src/components/composed/chart-options/markdown.ts","../component/src/components/composed/chart-options/iframe.ts","../component/src/components/composed/chart-options/gauge.ts","../component/src/components/composed/chart-options/sankey.ts","../component/src/components/composed/chart-options/sunburst.ts","../component/src/components/composed/chart-options/radar.ts","../component/src/components/composed/chart-options/treemap.ts","../component/src/components/composed/chart-options/index.ts","../component/src/components/composed/chart-options-schema.ts","../component/src/components/composed/chart-options-panel.tsx","../component/src/components/composed/conditional-format-panel.tsx","../component/src/components/composed/connection-status.tsx","../component/src/components/composed/connection-form.tsx","../component/src/components/composed/connection-card.tsx","../component/src/components/composed/parameter-bar.tsx","../component/src/components/composed/cross-filter-tag.tsx","../component/src/components/composed/parameter-widgets/text-input.tsx","../component/src/components/composed/parameter-widgets/param-widget-skeleton.tsx","../component/src/components/composed/parameter-widgets/param-selector.tsx","../component/src/components/composed/parameter-widgets/param-multi-selector.tsx","../component/src/lib/date-utils.ts","../component/src/components/composed/parameter-widgets/date-picker.tsx","../component/src/components/composed/parameter-widgets/date-range-picker.tsx","../component/src/components/composed/parameter-widgets/date-relative-picker.tsx","../component/src/components/composed/parameter-widgets/number-range-slider.tsx","../component/src/components/composed/parameter-widgets/cascading-selector.tsx","../component/src/components/composed/form-widget.tsx","../component/src/components/composed/markdown-widget.tsx","../component/src/components/composed/iframe-widget.tsx","../node_modules/@codemirror/state/dist/index.d.ts","../component/src/lib/schema-transforms.ts","../node_modules/style-mod/src/style-mod.d.ts","../node_modules/@codemirror/view/dist/index.d.ts","../node_modules/@lezer/common/dist/index.d.ts","../node_modules/@codemirror/autocomplete/dist/index.d.ts","../node_modules/@lezer/lr/dist/index.d.ts","../node_modules/@lezer/highlight/dist/index.d.ts","../node_modules/@codemirror/language/dist/index.d.ts","../node_modules/antlr4/src/antlr4/inputstream.d.ts","../node_modules/antlr4/src/antlr4/charstream.d.ts","../node_modules/antlr4/src/antlr4/filestream.d.ts","../node_modules/antlr4/src/antlr4/charstreams.d.ts","../node_modules/antlr4/src/antlr4/tokensource.d.ts","../node_modules/antlr4/src/antlr4/token.d.ts","../node_modules/antlr4/src/antlr4/misc/interval.d.ts","../node_modules/antlr4/src/antlr4/misc/intervalset.d.ts","../node_modules/antlr4/src/antlr4/misc/index.d.ts","../node_modules/antlr4/src/antlr4/tokenstream.d.ts","../node_modules/antlr4/src/antlr4/tree/tree.d.ts","../node_modules/antlr4/src/antlr4/tree/syntaxtree.d.ts","../node_modules/antlr4/src/antlr4/tree/parsetree.d.ts","../node_modules/antlr4/src/antlr4/tree/rulenode.d.ts","../node_modules/antlr4/src/antlr4/tree/terminalnode.d.ts","../node_modules/antlr4/src/antlr4/tree/errornode.d.ts","../node_modules/antlr4/src/antlr4/tree/parsetreelistener.d.ts","../node_modules/antlr4/src/antlr4/tree/parsetreevisitor.d.ts","../node_modules/antlr4/src/antlr4/tree/parsetreewalker.d.ts","../node_modules/antlr4/src/antlr4/tree/index.d.ts","../node_modules/antlr4/src/antlr4/state/atnstate.d.ts","../node_modules/antlr4/src/antlr4/state/decisionstate.d.ts","../node_modules/antlr4/src/antlr4/state/rulestartstate.d.ts","../node_modules/antlr4/src/antlr4/state/rulestopstate.d.ts","../node_modules/antlr4/src/antlr4/state/index.d.ts","../node_modules/antlr4/src/antlr4/atn/atn.d.ts","../node_modules/antlr4/src/antlr4/atn/atnconfig.d.ts","../node_modules/antlr4/src/antlr4/atn/atnconfigset.d.ts","../node_modules/antlr4/src/antlr4/atn/atndeserializationoptions.d.ts","../node_modules/antlr4/src/antlr4/atn/atndeserializer.d.ts","../node_modules/antlr4/src/antlr4/atn/atnsimulator.d.ts","../node_modules/antlr4/src/antlr4/atn/predictioncontextcache.d.ts","../node_modules/antlr4/src/antlr4/dfa/dfa.d.ts","../node_modules/antlr4/src/antlr4/dfa/index.d.ts","../node_modules/antlr4/src/antlr4/atn/lexeratnsimulator.d.ts","../node_modules/antlr4/src/antlr4/atn/predictionmode.d.ts","../node_modules/antlr4/src/antlr4/atn/parseratnsimulator.d.ts","../node_modules/antlr4/src/antlr4/atn/index.d.ts","../node_modules/antlr4/src/antlr4/utils/stringtochararray.d.ts","../node_modules/antlr4/src/antlr4/utils/arraytostring.d.ts","../node_modules/antlr4/src/antlr4/utils/printer.d.ts","../node_modules/antlr4/src/antlr4/utils/index.d.ts","../node_modules/antlr4/src/antlr4/parser.d.ts","../node_modules/antlr4/src/antlr4/context/rulecontext.d.ts","../node_modules/antlr4/src/antlr4/context/parserrulecontext.d.ts","../node_modules/antlr4/src/antlr4/context/index.d.ts","../node_modules/antlr4/src/antlr4/error/recognitionexception.d.ts","../node_modules/antlr4/src/antlr4/error/noviablealtexception.d.ts","../node_modules/antlr4/src/antlr4/error/failedpredicateexception.d.ts","../node_modules/antlr4/src/antlr4/error/inputmismatchexception.d.ts","../node_modules/antlr4/src/antlr4/error/errorstrategy.d.ts","../node_modules/antlr4/src/antlr4/error/defaulterrorstrategy.d.ts","../node_modules/antlr4/src/antlr4/error/bailerrorstrategy.d.ts","../node_modules/antlr4/src/antlr4/error/errorlistener.d.ts","../node_modules/antlr4/src/antlr4/error/diagnosticerrorlistener.d.ts","../node_modules/antlr4/src/antlr4/error/index.d.ts","../node_modules/antlr4/src/antlr4/recognizer.d.ts","../node_modules/antlr4/src/antlr4/lexer.d.ts","../node_modules/antlr4/src/antlr4/bufferedtokenstream.d.ts","../node_modules/antlr4/src/antlr4/commontoken.d.ts","../node_modules/antlr4/src/antlr4/commontokenstream.d.ts","../node_modules/antlr4/src/antlr4/tokenstreamrewriter.d.ts","../node_modules/antlr4/src/antlr4/index.d.cts","../node_modules/vscode-languageserver-types/lib/esm/main.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/types.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/dbschema.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/autocompletion/autocompletion.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/autocompletion/autocompletionhelpers.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/featureflags.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/generated-parser/cyphercmdparserlistener.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/generated-parser/cyphercmdparservisitor.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/generated-parser/cyphercmdparser.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/formatting/formattinghelpers.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/formatting/formatting.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/generated-parser/cyphercmdlexer.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/syntaxvalidation/syntaxvalidation.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/parserwrapper.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/helpers.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/lexersymbols.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/signaturehelp.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/syntaxcolouring/syntaxcolouringhelpers.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/syntaxcolouring/syntaxcolouring.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/tests/testdata.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/textmategrammar.d.ts","../node_modules/@neo4j-cypher/language-support/dist/esm/project/language-support/src/index.d.ts","../component/src/lib/cypher-lang/utils.ts","../component/src/lib/cypher-lang/autocomplete.ts","../component/src/lib/cypher-lang/constants.ts","../component/src/lib/cypher-lang/parser-adapter.ts","../component/src/lib/cypher-lang/signature-help.ts","../component/src/lib/cypher-lang/cypher.ts","../component/src/lib/cypher-lang/index.ts","../node_modules/@codemirror/lang-sql/dist/index.d.ts","../component/src/lib/language-resolvers.ts","../node_modules/@codemirror/commands/dist/index.d.ts","../node_modules/@codemirror/theme-one-dark/dist/index.d.ts","../component/src/components/composed/query-editor.tsx","../component/src/components/composed/code-preview.tsx","../component/src/components/composed/column-mapping-overlay.tsx","../component/src/components/composed/index.ts","../component/src/hooks/usewidgetsize.tsx","../component/src/hooks/usegraphexploration.ts","../component/src/hooks/index.ts","../component/src/lib/param-substitute.ts","../component/src/lib/export-utils.ts","../component/src/utils/index.ts","../component/src/index.ts","./src/lib/widget/derive-form-fields.ts","./src/components/__tests__/form-widget-renderer.test.ts","../node_modules/zustand/esm/vanilla.d.mts","../node_modules/zustand/esm/react.d.mts","../node_modules/zustand/esm/index.d.mts","../node_modules/zustand/esm/react/shallow.d.mts","./src/stores/parameter-store.ts","./src/lib/parameter/format-parameter-value.ts","./src/components/__tests__/format-parameter-value.test.ts","./src/components/__tests__/widget-outdated.test.ts","./src/components/parameters/use-param-actions.ts","../node_modules/next-auth/lib/client.d.ts","../node_modules/next-auth/react.d.ts","../node_modules/@tanstack/query-core/build/modern/_tsup-dts-rollup.d.ts","../node_modules/@tanstack/query-core/build/modern/index.d.ts","../node_modules/@tanstack/react-query/build/modern/_tsup-dts-rollup.d.ts","../node_modules/@tanstack/react-query/build/modern/index.d.ts","./src/lib/api/api-client.ts","./src/hooks/use-seed-query.ts","./src/components/parameters/use-seed-query-options.ts","./src/components/parameters/use-cascading-clear.ts","./src/components/debounced-text-input.tsx","./src/components/parameters/param-text.tsx","./src/components/parameters/param-select.tsx","./src/components/parameters/param-multi-select.tsx","./src/components/parameters/param-date.tsx","./src/components/parameters/param-date-range.tsx","./src/components/parameters/param-date-relative.tsx","./src/components/parameters/param-number-range.tsx","./src/components/parameters/param-cascading-select.tsx","./src/components/parameters/index.ts","./src/components/parameters/__tests__/debounce-logic.test.ts","./src/components/parameters/__tests__/param-cascading-select.test.ts","./src/components/parameters/__tests__/param-date-range.test.ts","./src/components/parameters/__tests__/param-date-relative.test.ts","./src/components/parameters/__tests__/param-date.test.ts","./src/components/parameters/__tests__/param-multi-select.test.ts","./src/components/parameters/__tests__/param-number-range.test.ts","./src/components/parameters/__tests__/param-select.test.ts","./src/components/parameters/__tests__/param-text.test.ts","./src/components/parameters/__tests__/seed-query-logic.test.ts","../node_modules/@types/aria-query/index.d.ts","../node_modules/@testing-library/dom/types/matches.d.ts","../node_modules/@testing-library/dom/types/wait-for.d.ts","../node_modules/@testing-library/dom/types/query-helpers.d.ts","../node_modules/@testing-library/dom/types/queries.d.ts","../node_modules/@testing-library/dom/types/get-queries-for-element.d.ts","../node_modules/pretty-format/build/types.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/@testing-library/dom/types/screen.d.ts","../node_modules/@testing-library/dom/types/wait-for-element-to-be-removed.d.ts","../node_modules/@testing-library/dom/types/get-node-text.d.ts","../node_modules/@testing-library/dom/types/events.d.ts","../node_modules/@testing-library/dom/types/pretty-dom.d.ts","../node_modules/@testing-library/dom/types/role-helpers.d.ts","../node_modules/@testing-library/dom/types/config.d.ts","../node_modules/@testing-library/dom/types/suggestions.d.ts","../node_modules/@testing-library/dom/types/index.d.ts","../node_modules/@types/react-dom/test-utils/index.d.ts","../node_modules/@testing-library/react/types/index.d.ts","./src/components/parameters/__tests__/use-cascading-clear.test.ts","./src/components/parameters/__tests__/use-param-actions.test.ts","./src/components/widget-editor/use-accordion-crud.ts","./src/components/widget-editor/__tests__/use-accordion-crud.test.ts","./src/hooks/use-api-keys.ts","./src/lib/widget/resolve-click-action.ts","./src/hooks/use-click-action.ts","./src/hooks/use-connections.ts","./src/hooks/use-countdown.ts","./src/hooks/use-dashboards.ts","./src/hooks/use-query-execution.ts","./src/lib/connector/schema-types.ts","./src/stores/schema-store.ts","./src/hooks/use-schema.ts","./src/hooks/use-theme.ts","./src/stores/dashboard-store.ts","./src/hooks/use-unsaved-changes-warning.ts","./src/hooks/use-users.ts","./src/lib/shared/date-utils.ts","./src/hooks/use-widget-query.ts","./src/hooks/use-widget-templates.ts","./src/hooks/use-write-query-execution.ts","./src/hooks/__tests__/use-api-keys.test.ts","./src/hooks/__tests__/use-click-action.test.ts","./src/hooks/__tests__/use-connections.test.ts","./src/hooks/__tests__/use-countdown.test.ts","./src/hooks/__tests__/use-dashboards.test.ts","./src/hooks/__tests__/use-query-execution.test.ts","./src/hooks/__tests__/use-schema.test.ts","./src/hooks/__tests__/use-seed-query.test.ts","./src/hooks/__tests__/use-theme.test.ts","./src/hooks/__tests__/use-unsaved-changes-warning.test.ts","./src/hooks/__tests__/use-users.test.ts","./src/hooks/__tests__/use-widget-query.test.ts","./src/hooks/__tests__/use-widget-templates.test.ts","./src/hooks/__tests__/use-write-query-execution.test.ts","./src/lib/__tests__/api/api-client.test.ts","./src/lib/__tests__/api/api-response.test.ts","./src/lib/__tests__/api/api-utils.test.ts","./src/lib/__tests__/auth/bootstrap.test.ts","./src/lib/__tests__/connector/schema-prefetch.test.ts","./src/lib/__tests__/crypto/crypto.test.ts","./src/lib/__tests__/crypto/rate-limiter.test.ts","./src/lib/plugin/chart-plugin-registry.ts","./src/plugins/registry.ts","./src/plugins/chart-types.ts","./src/lib/plugin/chart-helpers.ts","./src/lib/dashboard/capture-preview.ts","./src/lib/__tests__/dashboard/capture-preview.test.ts","./src/lib/__tests__/dashboard/dashboard-export.test.ts","./src/lib/__tests__/dashboard/dashboard-import.test.ts","./src/lib/dashboard/dashboard-settings.ts","./src/lib/__tests__/dashboard/dashboard-settings.test.ts","./src/lib/dashboard/migrate-color-thresholds.ts","./src/lib/__tests__/dashboard/migrate-color-thresholds.test.ts","./src/lib/dashboard/migrate-layout.ts","./src/lib/__tests__/dashboard/migrate-layout.test.ts","./src/lib/__tests__/dashboard/neodash-converter.test.ts","./src/lib/parameter/apply-param-defaults.ts","./src/lib/__tests__/parameter/apply-param-defaults.test.ts","./src/lib/parameter/collect-parameter-names.ts","./src/lib/__tests__/parameter/collect-parameter-names.test.ts","./src/lib/__tests__/parameter/format-parameter-value.test.ts","./src/plugins/utils.ts","./src/plugins/markdown/settings.ts","./src/plugins/markdown/component.tsx","./src/plugins/markdown/index.ts","./src/lib/shared/normalize-value.ts","./src/plugins/transforms/shared-utils.ts","./src/plugins/bar/transform.ts","./src/plugins/bar/settings.ts","./src/plugins/bar/component.tsx","./src/plugins/bar/index.ts","./src/plugins/line/transform.ts","./src/plugins/line/settings.ts","./src/plugins/line/component.tsx","./src/plugins/line/index.ts","./src/plugins/pie/transform.ts","./src/plugins/pie/settings.ts","./src/plugins/pie/component.tsx","./src/plugins/pie/index.ts","./src/plugins/single-value/transform.ts","./src/plugins/single-value/settings.ts","./src/plugins/single-value/component.tsx","./src/plugins/single-value/index.ts","./src/stores/graph-widget-store.ts","./src/components/graph-exploration-wrapper.tsx","./src/plugins/graph/transform.ts","./src/plugins/graph/settings.ts","./src/plugins/graph/component.tsx","./src/plugins/graph/index.ts","./src/plugins/map/transform.ts","./src/plugins/map/settings.ts","./src/plugins/map/component.tsx","./src/plugins/map/index.ts","./src/lib/widget/table-utils.ts","./src/components/table-renderer.tsx","./src/plugins/table/transform.ts","./src/plugins/table/settings.ts","./src/plugins/table/component.tsx","./src/plugins/table/index.ts","./src/components/parameter-widget-renderer.tsx","./src/plugins/parameter-select/transform.ts","./src/plugins/parameter-select/settings.ts","./src/plugins/parameter-select/component.tsx","./src/plugins/parameter-select/index.ts","./src/plugins/json/transform.ts","./src/plugins/json/settings.ts","./src/plugins/json/component.tsx","./src/plugins/json/index.ts","./src/lib/widget/form-field-def.ts","./src/lib/widget/form-field-validation.ts","./src/components/form-widget-renderer.tsx","./src/plugins/form/settings.ts","./src/plugins/form/component.tsx","./src/plugins/form/index.ts","./src/plugins/iframe/settings.ts","./src/plugins/iframe/component.tsx","./src/plugins/iframe/index.ts","./src/plugins/gauge/transform.ts","./src/plugins/gauge/settings.ts","./src/plugins/gauge/component.tsx","./src/plugins/gauge/index.ts","./src/plugins/sankey/transform.ts","./src/plugins/sankey/settings.ts","./src/plugins/sankey/component.tsx","./src/plugins/sankey/index.ts","./src/plugins/transforms/hierarchical-utils.ts","./src/plugins/sunburst/transform.ts","./src/plugins/sunburst/settings.ts","./src/plugins/sunburst/component.tsx","./src/plugins/sunburst/index.ts","./src/plugins/radar/transform.ts","./src/plugins/radar/settings.ts","./src/plugins/radar/component.tsx","./src/plugins/radar/index.ts","./src/plugins/treemap/transform.ts","./src/plugins/treemap/settings.ts","./src/plugins/treemap/component.tsx","./src/plugins/treemap/index.ts","./src/plugins/index.ts","./src/lib/__tests__/plugin/chart-helpers.test.ts","./src/lib/__tests__/plugin/chart-plugin-registry.test.ts","./src/lib/query/data-transforms.ts","./src/lib/__tests__/query/data-transforms.test.ts","./src/lib/__tests__/query/query-executor-core.test.ts","./src/lib/__tests__/query/query-executor.test.ts","./src/lib/__tests__/query/query-hash.test.ts","./src/lib/query/resolve-cache-options.ts","./src/lib/__tests__/query/resolve-cache-options.test.ts","./src/lib/query/wrap-with-preview-limit.ts","./src/lib/__tests__/query/wrap-with-preview-limit.test.ts","./src/lib/__tests__/shared/date-utils.test.ts","./src/lib/__tests__/shared/normalize-value.test.ts","./src/lib/shared/parse-utils.ts","./src/lib/__tests__/shared/parse-utils.test.ts","./src/lib/__tests__/shared/schemas.test.ts","./src/lib/shared/url-params.ts","./src/lib/__tests__/shared/url-params.test.ts","./src/lib/widget/card-utils.ts","./src/lib/__tests__/widget/card-utils.test.ts","./src/lib/__tests__/widget/form-field-def.test.ts","./src/lib/__tests__/widget/form-field-validation.test.ts","./src/lib/widget/interpolate-title.ts","./src/lib/__tests__/widget/interpolate-title.test.ts","./src/lib/__tests__/widget/resolve-click-action.test.ts","./src/lib/widget/scroll-to-widget.ts","./src/lib/__tests__/widget/scroll-to-widget.test.ts","./src/lib/__tests__/widget/table-utils.test.ts","./src/lib/widget/widget-actions.ts","./src/lib/__tests__/widget/widget-actions.test.ts","./src/lib/widget/widget-utils.ts","./src/lib/__tests__/widget/widget-utils.test.ts","./src/lib/auth/__tests__/api-key.test.ts","./src/lib/auth/__tests__/config.test.ts","./src/lib/auth/__tests__/session.test.ts","./src/lib/auth/__tests__/signup.test.ts","./src/lib/dashboard/capture-dashboard-thumbnails.ts","./src/lib/db/__tests__/connection-usage.test.ts","../node_modules/@testcontainers/postgresql/build/postgresql-container.d.ts","../node_modules/@testcontainers/postgresql/build/index.d.ts","./src/lib/db/__tests__/migrations.test.ts","./src/lib/query/query-templates.ts","./src/plugins/__tests__/chart-types.test.ts","./src/plugins/__tests__/plugin-options.test.ts","./src/plugins/__tests__/registry.test.ts","./src/plugins/settings/__tests__/settings-schemas.test.ts","./src/plugins/transforms/index.ts","./src/plugins/transforms/__tests__/bar.test.ts","./src/plugins/transforms/__tests__/graph.test.ts","./src/plugins/transforms/__tests__/line.test.ts","./src/plugins/transforms/__tests__/pie.test.ts","./src/plugins/transforms/__tests__/remaining.test.ts","./src/plugins/transforms/__tests__/shared.test.ts","./src/stores/connection-store.ts","./src/stores/widget-editor-store.ts","./src/stores/__tests__/connection-store.test.ts","./src/stores/__tests__/dashboard-store.test.ts","./src/stores/__tests__/graph-widget-store.test.ts","./src/stores/__tests__/parameter-store.test.ts","./src/stores/__tests__/schema-store.test.ts","./src/stores/__tests__/widget-editor-store.test.ts","./src/types/next-auth.d.ts","./src/types/__tests__/next-auth-types.test.ts","../node_modules/@testing-library/jest-dom/types/matchers.d.ts","../node_modules/@testing-library/jest-dom/types/vitest.d.ts","./vitest.setup.tsx","../node_modules/next/dist/compiled/@next/font/dist/types.d.ts","../node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","../node_modules/next/font/google/index.d.ts","./src/components/providers.tsx","./src/app/layout.tsx","./src/app/(auth)/change-password/page.tsx","./src/app/(auth)/login/page.tsx","../node_modules/@testing-library/user-event/dist/types/event/eventmap.d.ts","../node_modules/@testing-library/user-event/dist/types/event/types.d.ts","../node_modules/@testing-library/user-event/dist/types/event/dispatchevent.d.ts","../node_modules/@testing-library/user-event/dist/types/event/focus.d.ts","../node_modules/@testing-library/user-event/dist/types/event/input.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/click/isclickableinput.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/datatransfer/blob.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/datatransfer/datatransfer.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/datatransfer/filelist.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/datatransfer/clipboard.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/edit/timevalue.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/edit/iscontenteditable.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/edit/iseditable.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/edit/maxlength.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/edit/setfiles.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/focus/cursor.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/focus/getactiveelement.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/focus/gettabdestination.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/focus/isfocusable.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/focus/selection.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/focus/selector.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/keydef/readnextdescriptor.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/cloneevent.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/findclosest.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/getdocumentfromnode.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/gettreediff.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/getwindow.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/isdescendantorself.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/iselementtype.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/isvisible.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/isdisabled.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/level.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/misc/wait.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/pointer/csspointerevents.d.ts","../node_modules/@testing-library/user-event/dist/types/utils/index.d.ts","../node_modules/@testing-library/user-event/dist/types/document/ui.d.ts","../node_modules/@testing-library/user-event/dist/types/document/getvalueortextcontent.d.ts","../node_modules/@testing-library/user-event/dist/types/document/copyselection.d.ts","../node_modules/@testing-library/user-event/dist/types/document/trackvalue.d.ts","../node_modules/@testing-library/user-event/dist/types/document/index.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/getinputrange.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/modifyselection.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/moveselection.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/setselectionpermouse.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/modifyselectionpermouse.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/selectall.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/setselectionrange.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/setselection.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/updateselectiononfocus.d.ts","../node_modules/@testing-library/user-event/dist/types/event/selection/index.d.ts","../node_modules/@testing-library/user-event/dist/types/event/index.d.ts","../node_modules/@testing-library/user-event/dist/types/system/pointer/buttons.d.ts","../node_modules/@testing-library/user-event/dist/types/system/pointer/shared.d.ts","../node_modules/@testing-library/user-event/dist/types/system/pointer/index.d.ts","../node_modules/@testing-library/user-event/dist/types/system/index.d.ts","../node_modules/@testing-library/user-event/dist/types/system/keyboard.d.ts","../node_modules/@testing-library/user-event/dist/types/options.d.ts","../node_modules/@testing-library/user-event/dist/types/convenience/click.d.ts","../node_modules/@testing-library/user-event/dist/types/convenience/hover.d.ts","../node_modules/@testing-library/user-event/dist/types/convenience/tab.d.ts","../node_modules/@testing-library/user-event/dist/types/convenience/index.d.ts","../node_modules/@testing-library/user-event/dist/types/keyboard/index.d.ts","../node_modules/@testing-library/user-event/dist/types/clipboard/copy.d.ts","../node_modules/@testing-library/user-event/dist/types/clipboard/cut.d.ts","../node_modules/@testing-library/user-event/dist/types/clipboard/paste.d.ts","../node_modules/@testing-library/user-event/dist/types/clipboard/index.d.ts","../node_modules/@testing-library/user-event/dist/types/pointer/index.d.ts","../node_modules/@testing-library/user-event/dist/types/utility/clear.d.ts","../node_modules/@testing-library/user-event/dist/types/utility/selectoptions.d.ts","../node_modules/@testing-library/user-event/dist/types/utility/type.d.ts","../node_modules/@testing-library/user-event/dist/types/utility/upload.d.ts","../node_modules/@testing-library/user-event/dist/types/utility/index.d.ts","../node_modules/@testing-library/user-event/dist/types/setup/api.d.ts","../node_modules/@testing-library/user-event/dist/types/setup/directapi.d.ts","../node_modules/@testing-library/user-event/dist/types/setup/setup.d.ts","../node_modules/@testing-library/user-event/dist/types/setup/index.d.ts","../node_modules/@testing-library/user-event/dist/types/index.d.ts","./src/app/(auth)/login/__tests__/page.test.tsx","./src/app/(auth)/signup/page.tsx","./src/app/(auth)/signup/__tests__/page.test.tsx","../node_modules/lucide-react/dist/lucide-react.d.ts","./src/app/(dashboard)/layout.tsx","./src/app/(dashboard)/page.tsx","./src/components/chart-error-boundary.tsx","./src/components/chart-renderer.tsx","./src/components/card-container.tsx","./src/components/dashboard-container.tsx","./src/components/dashboard-error-boundary.tsx","./src/components/save-template-dialog.tsx","./src/components/page-tabs.tsx","./src/app/(dashboard)/[id]/page.tsx","./src/components/widget-editor/chart-type-selector.tsx","./src/components/widget-editor/query-editor-panel.tsx","../node_modules/@dnd-kit/utilities/dist/hooks/usecombinedrefs.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/useevent.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/useisomorphiclayouteffect.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/useinterval.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/uselatestvalue.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/uselazymemo.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/usenoderef.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/useprevious.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/useuniqueid.d.ts","../node_modules/@dnd-kit/utilities/dist/hooks/index.d.ts","../node_modules/@dnd-kit/utilities/dist/adjustment.d.ts","../node_modules/@dnd-kit/utilities/dist/coordinates/types.d.ts","../node_modules/@dnd-kit/utilities/dist/coordinates/geteventcoordinates.d.ts","../node_modules/@dnd-kit/utilities/dist/coordinates/index.d.ts","../node_modules/@dnd-kit/utilities/dist/css.d.ts","../node_modules/@dnd-kit/utilities/dist/event/hasviewportrelativecoordinates.d.ts","../node_modules/@dnd-kit/utilities/dist/event/iskeyboardevent.d.ts","../node_modules/@dnd-kit/utilities/dist/event/istouchevent.d.ts","../node_modules/@dnd-kit/utilities/dist/event/index.d.ts","../node_modules/@dnd-kit/utilities/dist/execution-context/canusedom.d.ts","../node_modules/@dnd-kit/utilities/dist/execution-context/getownerdocument.d.ts","../node_modules/@dnd-kit/utilities/dist/execution-context/getwindow.d.ts","../node_modules/@dnd-kit/utilities/dist/execution-context/index.d.ts","../node_modules/@dnd-kit/utilities/dist/focus/findfirstfocusablenode.d.ts","../node_modules/@dnd-kit/utilities/dist/focus/index.d.ts","../node_modules/@dnd-kit/utilities/dist/type-guards/isdocument.d.ts","../node_modules/@dnd-kit/utilities/dist/type-guards/ishtmlelement.d.ts","../node_modules/@dnd-kit/utilities/dist/type-guards/isnode.d.ts","../node_modules/@dnd-kit/utilities/dist/type-guards/issvgelement.d.ts","../node_modules/@dnd-kit/utilities/dist/type-guards/iswindow.d.ts","../node_modules/@dnd-kit/utilities/dist/type-guards/index.d.ts","../node_modules/@dnd-kit/utilities/dist/types.d.ts","../node_modules/@dnd-kit/utilities/dist/index.d.ts","../node_modules/@dnd-kit/core/dist/types/coordinates.d.ts","../node_modules/@dnd-kit/core/dist/types/direction.d.ts","../node_modules/@dnd-kit/core/dist/utilities/algorithms/types.d.ts","../node_modules/@dnd-kit/core/dist/utilities/algorithms/closestcenter.d.ts","../node_modules/@dnd-kit/core/dist/utilities/algorithms/closestcorners.d.ts","../node_modules/@dnd-kit/core/dist/utilities/algorithms/rectintersection.d.ts","../node_modules/@dnd-kit/core/dist/utilities/algorithms/pointerwithin.d.ts","../node_modules/@dnd-kit/core/dist/utilities/algorithms/helpers.d.ts","../node_modules/@dnd-kit/core/dist/utilities/algorithms/index.d.ts","../node_modules/@dnd-kit/core/dist/sensors/pointer/abstractpointersensor.d.ts","../node_modules/@dnd-kit/core/dist/sensors/pointer/pointersensor.d.ts","../node_modules/@dnd-kit/core/dist/sensors/pointer/index.d.ts","../node_modules/@dnd-kit/core/dist/sensors/types.d.ts","../node_modules/@dnd-kit/core/dist/sensors/usesensor.d.ts","../node_modules/@dnd-kit/core/dist/sensors/usesensors.d.ts","../node_modules/@dnd-kit/core/dist/sensors/mouse/mousesensor.d.ts","../node_modules/@dnd-kit/core/dist/sensors/mouse/index.d.ts","../node_modules/@dnd-kit/core/dist/sensors/touch/touchsensor.d.ts","../node_modules/@dnd-kit/core/dist/sensors/touch/index.d.ts","../node_modules/@dnd-kit/core/dist/sensors/keyboard/types.d.ts","../node_modules/@dnd-kit/core/dist/sensors/keyboard/keyboardsensor.d.ts","../node_modules/@dnd-kit/core/dist/sensors/keyboard/defaults.d.ts","../node_modules/@dnd-kit/core/dist/sensors/keyboard/index.d.ts","../node_modules/@dnd-kit/core/dist/sensors/index.d.ts","../node_modules/@dnd-kit/core/dist/types/events.d.ts","../node_modules/@dnd-kit/core/dist/types/other.d.ts","../node_modules/@dnd-kit/core/dist/types/react.d.ts","../node_modules/@dnd-kit/core/dist/types/rect.d.ts","../node_modules/@dnd-kit/core/dist/types/index.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/useautoscroller.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usecachednode.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usesyntheticlisteners.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usecombineactivators.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usedroppablemeasuring.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/useinitialvalue.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/useinitialrect.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/userect.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/userectdelta.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/useresizeobserver.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usescrollableancestors.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usescrollintoviewifneeded.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usescrolloffsets.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usescrolloffsetsdelta.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usesensorsetup.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/userects.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usewindowrect.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/usedragoverlaymeasuring.d.ts","../node_modules/@dnd-kit/core/dist/hooks/utilities/index.d.ts","../node_modules/@dnd-kit/core/dist/store/constructors.d.ts","../node_modules/@dnd-kit/core/dist/store/types.d.ts","../node_modules/@dnd-kit/core/dist/store/actions.d.ts","../node_modules/@dnd-kit/core/dist/store/context.d.ts","../node_modules/@dnd-kit/core/dist/store/reducer.d.ts","../node_modules/@dnd-kit/core/dist/store/index.d.ts","../node_modules/@dnd-kit/core/dist/components/accessibility/types.d.ts","../node_modules/@dnd-kit/core/dist/components/accessibility/accessibility.d.ts","../node_modules/@dnd-kit/core/dist/components/accessibility/components/restorefocus.d.ts","../node_modules/@dnd-kit/core/dist/components/accessibility/components/index.d.ts","../node_modules/@dnd-kit/core/dist/components/accessibility/defaults.d.ts","../node_modules/@dnd-kit/core/dist/components/accessibility/index.d.ts","../node_modules/@dnd-kit/core/dist/utilities/coordinates/constants.d.ts","../node_modules/@dnd-kit/core/dist/utilities/coordinates/distancebetweenpoints.d.ts","../node_modules/@dnd-kit/core/dist/utilities/coordinates/getrelativetransformorigin.d.ts","../node_modules/@dnd-kit/core/dist/utilities/coordinates/index.d.ts","../node_modules/@dnd-kit/core/dist/utilities/rect/adjustscale.d.ts","../node_modules/@dnd-kit/core/dist/utilities/rect/getrectdelta.d.ts","../node_modules/@dnd-kit/core/dist/utilities/rect/rectadjustment.d.ts","../node_modules/@dnd-kit/core/dist/utilities/rect/getrect.d.ts","../node_modules/@dnd-kit/core/dist/utilities/rect/getwindowclientrect.d.ts","../node_modules/@dnd-kit/core/dist/utilities/rect/rect.d.ts","../node_modules/@dnd-kit/core/dist/utilities/rect/index.d.ts","../node_modules/@dnd-kit/core/dist/utilities/other/noop.d.ts","../node_modules/@dnd-kit/core/dist/utilities/other/index.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollableancestors.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollableelement.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollcoordinates.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/getscrolldirectionandspeed.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollelementrect.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/getscrolloffsets.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/getscrollposition.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/documentscrollingelement.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/isscrollable.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/scrollintoviewifneeded.d.ts","../node_modules/@dnd-kit/core/dist/utilities/scroll/index.d.ts","../node_modules/@dnd-kit/core/dist/utilities/index.d.ts","../node_modules/@dnd-kit/core/dist/modifiers/types.d.ts","../node_modules/@dnd-kit/core/dist/modifiers/applymodifiers.d.ts","../node_modules/@dnd-kit/core/dist/modifiers/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dndcontext/types.d.ts","../node_modules/@dnd-kit/core/dist/components/dndcontext/dndcontext.d.ts","../node_modules/@dnd-kit/core/dist/components/dndcontext/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dndmonitor/types.d.ts","../node_modules/@dnd-kit/core/dist/components/dndmonitor/context.d.ts","../node_modules/@dnd-kit/core/dist/components/dndmonitor/usedndmonitor.d.ts","../node_modules/@dnd-kit/core/dist/components/dndmonitor/usedndmonitorprovider.d.ts","../node_modules/@dnd-kit/core/dist/components/dndmonitor/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/components/animationmanager/animationmanager.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/components/animationmanager/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/components/nullifiedcontextprovider/nullifiedcontextprovider.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/components/nullifiedcontextprovider/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/components/positionedoverlay/positionedoverlay.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/components/positionedoverlay/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/components/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/hooks/usedropanimation.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/hooks/usekey.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/hooks/index.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/dragoverlay.d.ts","../node_modules/@dnd-kit/core/dist/components/dragoverlay/index.d.ts","../node_modules/@dnd-kit/core/dist/components/index.d.ts","../node_modules/@dnd-kit/core/dist/hooks/usedraggable.d.ts","../node_modules/@dnd-kit/core/dist/hooks/usedndcontext.d.ts","../node_modules/@dnd-kit/core/dist/hooks/usedroppable.d.ts","../node_modules/@dnd-kit/core/dist/hooks/index.d.ts","../node_modules/@dnd-kit/core/dist/index.d.ts","../node_modules/@dnd-kit/sortable/dist/types/disabled.d.ts","../node_modules/@dnd-kit/sortable/dist/types/data.d.ts","../node_modules/@dnd-kit/sortable/dist/types/strategies.d.ts","../node_modules/@dnd-kit/sortable/dist/types/type-guard.d.ts","../node_modules/@dnd-kit/sortable/dist/types/index.d.ts","../node_modules/@dnd-kit/sortable/dist/components/sortablecontext.d.ts","../node_modules/@dnd-kit/sortable/dist/components/index.d.ts","../node_modules/@dnd-kit/sortable/dist/hooks/types.d.ts","../node_modules/@dnd-kit/sortable/dist/hooks/usesortable.d.ts","../node_modules/@dnd-kit/sortable/dist/hooks/defaults.d.ts","../node_modules/@dnd-kit/sortable/dist/hooks/index.d.ts","../node_modules/@dnd-kit/sortable/dist/strategies/horizontallistsorting.d.ts","../node_modules/@dnd-kit/sortable/dist/strategies/rectsorting.d.ts","../node_modules/@dnd-kit/sortable/dist/strategies/rectswapping.d.ts","../node_modules/@dnd-kit/sortable/dist/strategies/verticallistsorting.d.ts","../node_modules/@dnd-kit/sortable/dist/strategies/index.d.ts","../node_modules/@dnd-kit/sortable/dist/sensors/keyboard/sortablekeyboardcoordinates.d.ts","../node_modules/@dnd-kit/sortable/dist/sensors/keyboard/index.d.ts","../node_modules/@dnd-kit/sortable/dist/sensors/index.d.ts","../node_modules/@dnd-kit/sortable/dist/utilities/arraymove.d.ts","../node_modules/@dnd-kit/sortable/dist/utilities/arrayswap.d.ts","../node_modules/@dnd-kit/sortable/dist/utilities/getsortedrects.d.ts","../node_modules/@dnd-kit/sortable/dist/utilities/isvalidindex.d.ts","../node_modules/@dnd-kit/sortable/dist/utilities/itemsequal.d.ts","../node_modules/@dnd-kit/sortable/dist/utilities/normalizedisabled.d.ts","../node_modules/@dnd-kit/sortable/dist/utilities/index.d.ts","../node_modules/@dnd-kit/sortable/dist/index.d.ts","./src/components/widget-editor/form-fields-editor.tsx","./src/components/widget-editor/parameter-config-section.tsx","./src/components/widget-editor/parameter-preview.tsx","./src/components/widget-editor/field-selector-input.tsx","./src/components/widget-editor/action-rules-editor.tsx","./src/components/widget-editor/value-or-param-input.tsx","./src/components/widget-editor/styling-rules-editor.tsx","./src/components/widget-editor/transform-editor.tsx","./src/components/widget-editor-modal.tsx","./src/components/dashboard-assign-panel.tsx","./src/app/(dashboard)/[id]/edit/page.tsx","./src/app/(dashboard)/__tests__/layout.test.tsx","./src/components/db-logos.tsx","./src/app/(dashboard)/connections/page.tsx","./src/app/(dashboard)/dashboards/page.tsx","./src/app/(dashboard)/settings/layout.tsx","./src/app/(dashboard)/settings/api-keys/page.tsx","./src/app/(dashboard)/settings/profile/page.tsx","./src/app/(dashboard)/users/page.tsx","./src/components/dashboard-picker-dialog.tsx","./src/app/(dashboard)/widget-lab/page.tsx","./src/components/__tests__/card-container-states.test.tsx","./src/components/__tests__/card-container.test.tsx","./src/components/__tests__/chart-error-boundary-unit.test.tsx","./src/components/__tests__/chart-error-boundary.test.tsx","./src/components/__tests__/dashboard-container-dblclick.test.tsx","./src/components/__tests__/dashboard-error-boundary.test.tsx","./src/components/__tests__/form-widget-renderer-readonly.test.tsx","./src/components/widget-editor/__tests__/query-editor-panel.test.tsx","./src/components/widget-editor/__tests__/transform-editor.test.tsx","./src/plugins/__tests__/bar.test.tsx","./src/plugins/__tests__/markdown.test.tsx","./.next/types/cache-life.d.ts","./.next/types/validator.ts","./.next/types/app/layout.ts","./.next/types/app/(auth)/change-password/page.ts","./.next/types/app/(auth)/login/page.ts","./.next/types/app/(auth)/signup/page.ts","./.next/types/app/(dashboard)/page.ts","./.next/types/app/(dashboard)/[id]/page.ts","./.next/types/app/(dashboard)/[id]/edit/page.ts","./.next/types/app/(dashboard)/connections/page.ts","./.next/types/app/(dashboard)/dashboards/page.ts","./.next/types/app/(dashboard)/settings/layout.ts","./.next/types/app/(dashboard)/settings/page.ts","./.next/types/app/(dashboard)/settings/api-keys/page.ts","./.next/types/app/(dashboard)/settings/profile/page.ts","./.next/types/app/(dashboard)/users/page.ts","./.next/types/app/(dashboard)/widget-lab/page.ts","./.next/types/app/api/auth/[...nextauth]/route.ts","./.next/types/app/api/auth/bootstrap-status/route.ts","./.next/types/app/api/connections/route.ts","./.next/types/app/api/connections/[id]/route.ts","./.next/types/app/api/connections/[id]/schema/route.ts","./.next/types/app/api/connections/[id]/test/route.ts","./.next/types/app/api/connections/[id]/usage/route.ts","./.next/types/app/api/connections/test-inline/route.ts","./.next/types/app/api/dashboards/route.ts","./.next/types/app/api/dashboards/[id]/route.ts","./.next/types/app/api/dashboards/[id]/duplicate/route.ts","./.next/types/app/api/dashboards/[id]/export/route.ts","./.next/types/app/api/dashboards/[id]/share/route.ts","./.next/types/app/api/dashboards/import/route.ts","./.next/types/app/api/docs/route.ts","./.next/types/app/api/keys/route.ts","./.next/types/app/api/keys/[id]/route.ts","./.next/types/app/api/openapi/route.ts","./.next/types/app/api/openapi.json/route.ts","./.next/types/app/api/query/route.ts","./.next/types/app/api/query/write/route.ts","./.next/types/app/api/users/route.ts","./.next/types/app/api/users/[id]/route.ts","./.next/types/app/api/users/[id]/reset-password/route.ts","./.next/types/app/api/users/me/route.ts","./.next/types/app/api/users/me/password/route.ts","./.next/types/app/api/widget-templates/route.ts","./.next/types/app/api/widget-templates/[id]/route.ts","./.next/dev/types/cache-life.d.ts","./.next/dev/types/routes.d.ts","./.next/dev/types/validator.ts","./.next/dev/types/app/layout.ts","./.next/dev/types/app/(auth)/change-password/page.ts","./.next/dev/types/app/(auth)/login/page.ts","./.next/dev/types/app/(auth)/signup/page.ts","./.next/dev/types/app/(dashboard)/layout.ts","./.next/dev/types/app/(dashboard)/page.ts","./.next/dev/types/app/api/auth/[...nextauth]/route.ts","./.next/dev/types/app/api/auth/bootstrap-status/route.ts","./.next/dev/types/app/api/connections/route.ts","./.next/dev/types/app/api/dashboards/route.ts","./.next/dev/types/app/api/users/route.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/d3-hierarchy/index.d.ts","../node_modules/@types/doctrine/index.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/jest-diff/node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/mdx/types.d.ts","../node_modules/@types/mdx/index.d.ts","../node_modules/pg-types/index.d.ts","../node_modules/pg-protocol/dist/messages.d.ts","../node_modules/pg-protocol/dist/serializer.d.ts","../node_modules/pg-protocol/dist/parser.d.ts","../node_modules/pg-protocol/dist/index.d.ts","../node_modules/@types/pg/lib/type-overrides.d.ts","../node_modules/@types/pg/index.d.ts","../node_modules/@types/resolve/index.d.ts","../node_modules/@types/ssh2-streams/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[74,123,140,141,208,218,423,2657,2958,3003],[74,123,140,141,208,218,423,2658,2958,3003],[74,123,140,141,208,218,423,2737,2958,3003],[74,123,140,141,208,218,423,2740,2958,3003],[74,123,140,141,208,218,423,2741,2958,3003],[74,123,140,141,208,218,506,1545,2958,3003],[74,123,140,141,208,218,506,1549,2958,3003],[74,123,140,141,208,218,506,1575,2958,3003],[74,123,140,141,208,218,506,1588,2958,3003],[74,123,140,141,208,218,506,1619,2958,3003],[74,123,140,141,208,218,423,2656,2958,3003],[74,123,140,141,465,466,467,468,2958],[74,123,140,141,2958,3003],[74,123,140,141,208,506,509,1517,1545,1549,1575,1577,1579,1581,1583,1586,1588,1589,1591,1594,1596,1601,1603,1605,1606,1610,1612,1615,1617,1619,1620,1622,1625,1627,1630,1631,2656,2657,2658,2737,2740,2741,2749,2936,2939,2940,2941,2942,2943,2944,2946,2958,3003,3004],[74,123,140,141,208,218,423,2936,2958,3003],[74,123,140,141,208,218,423,2749,2958,3003],[74,123,140,141,208,218,423,2939,2958,3003],[74,123,140,141,208,218,423,2940,2958,3003],[74,123,140,141,208,218,423,2942,2958,3003],[74,123,140,141,208,218,423,2941,2958,3003],[74,123,140,141,208,218,423,1517,2958,3003],[74,123,140,141,208,218,423,2943,2958,3003],[74,123,140,141,208,218,423,2944,2958,3003],[74,123,140,141,208,218,423,2946,2958,3003],[74,123,140,141,208,218,506,1577,2958,3003],[74,123,140,141,208,218,506,1579,2958,3003],[74,123,140,141,208,218,506,1581,2958,3003],[74,123,140,141,208,218,506,1583,2958,3003],[74,123,140,141,208,218,506,1586,2958,3003],[74,123,140,141,208,218,506,1591,2958,3003],[74,123,140,141,208,218,506,1594,2958,3003],[74,123,140,141,208,218,506,1589,2958,3003],[74,123,140,141,208,218,506,1596,2958,3003],[74,123,140,141,208,218,506,1601,2958,3003],[74,123,140,141,208,218,506,1603,2958,3003],[74,123,140,141,208,218,506,1606,2958,3003],[74,123,140,141,208,218,506,1605,2958,3003],[74,123,140,141,208,218,506,1612,2958,3003],[74,123,140,141,208,218,506,1610,2958,3003],[74,123,140,141,208,218,506,1615,2958,3003],[74,123,140,141,208,218,506,1617,2958,3003],[74,123,140,141,208,218,506,1622,2958,3003],[74,123,140,141,208,218,506,1620,2958,3003],[74,123,140,141,208,218,506,1627,2958,3003],[74,123,140,141,208,218,506,1625,2958,3003],[74,123,140,141,208,218,506,1631,2958,3003],[74,123,140,141,208,218,506,1630,2958,3003],[74,123,140,141,465,466,467,468,3003],[74,123,140,141,208,506,509,512,1517,1545,1549,1575,1577,1579,1581,1583,1586,1588,1589,1591,1594,1596,1601,1603,1605,1606,1610,1612,1615,1617,1619,1620,1622,1625,1627,1630,1631,2656,2657,2658,2737,2740,2741,2749,2936,2939,2940,2941,2942,2943,2944,2946,2958,3003],[74,123,140,141,208,514,2958,3003],[74,123,140,141,208,746,2958,3003],[74,123,140,141,208,616,744,746,2958,3003],[74,123,140,141,208,616,746,2958,3003],[74,123,135,140,141,144,145,208,746,2958,3003],[74,123,140,141,145,208,616,619,742,743,744,745,2958,3003],[74,123,124,128,135,137,140,141,143,145,208,742,819,820,1120,1121,2958,3003],[74,123,124,135,140,141,145,208,742,2958,3003],[74,123,140,141,145,208,616,746,2958,3003],[74,123,140,141,208,616,2958,3003],[74,123,140,141,510,511,512,2958,3003],[74,123,140,141,145,208,510,2958,3003],[74,123,140,141,1541,2958,3003],[74,123,140,141,1532,1533,2958,3003],[74,123,140,141,1529,1530,1532,1534,1535,1540,2958,3003],[74,123,140,141,1530,1532,2958,3003],[74,123,140,141,1540,2958,3003],[74,123,140,141,1532,2958,3003],[74,123,140,141,1529,1530,1532,1535,1536,1537,1538,1539,2958,3003],[74,123,140,141,1529,1530,1531,2958,3003],[74,123,140,141,208,616,618,2958,3003],[74,123,140,141,208,2958,3003],[74,123,140,141,208,724,731,1508,2650,2958,3003],[74,123,140,141,208,506,724,731,1510,2650,2958,3003],[74,123,140,141,208,516,724,731,2650,2958,3003],[62,74,123,140,141,208,2384,2958,3003],[62,74,123,140,141,208,724,731,2444,2650,2658,2735,2958,3003],[62,74,123,140,141,208,489,499,2384,2397,2958,3003],[62,74,123,140,141,208,724,731,2444,2650,2735,2737,2958,3003],[62,74,123,140,141,208,489,499,1547,2384,2397,2958,3003],[62,74,123,140,141,208,499,1505,1570,2384,2391,2392,2397,2401,2452,2454,2460,2461,2465,2500,2505,2611,2622,2739,2745,2747,2748,2934,2935,2958,3003],[62,74,123,140,141,208,499,1505,1570,2384,2391,2392,2397,2452,2453,2454,2496,2500,2505,2602,2611,2739,2745,2746,2747,2748,2958,3003],[62,74,123,140,141,208,724,731,2444,2650,2740,2958,3003],[62,74,123,140,141,208,1570,2384,2452,2599,2739,2938,2958,3003],[74,123,140,141,208,499,2958,3003],[62,74,123,140,141,208,499,2384,2397,2459,2739,2958,3003],[62,74,123,140,141,208,489,499,1600,2384,2397,2452,2454,2739,2958,3003],[74,123,140,141,208,724,731,1517,2650,2958,3003],[62,74,123,140,141,208,2384,2449,2739,2958,3003],[74,123,140,141,208,499,2739,2958,3003],[62,74,123,140,141,208,2384,2397,2958,3003],[62,74,123,140,141,208,1505,1522,2220,2384,2397,2462,2647,2739,2958,3003],[62,74,123,140,141,208,499,1505,1570,2384,2397,2452,2465,2491,2739,2934,2945,2958,3003],[74,123,140,141,208,1544,2958,3003],[74,123,140,141,208,724,731,1515,1549,2650,2958,3003],[74,123,140,141,208,1547,1548,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1576,1577,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1548,1553,1554,1570,1572,1573,1574,1576,2958,3003],[74,123,140,141,208,724,731,1515,1516,1579,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1548,1553,1554,1570,1571,1572,1574,2958,3003],[74,123,140,141,208,724,731,1515,1516,1581,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1548,1553,1554,1571,1574,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1583,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1548,1553,1574,1576,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1575,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1548,1553,1554,1572,1573,1574,2958,3003],[74,123,140,141,208,724,731,1515,1516,1586,2650,2958,3003],[74,123,140,141,208,1548,1553,1571,1573,1574,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1589,2650,2958,3003],[74,123,140,141,208,724,731,1515,1516,1591,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1548,1553,1574,2958,3003],[74,123,140,141,208,724,731,1514,1594,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1553,1574,1593,2958,3003],[74,123,140,141,208,1112,1505,1506,1542,1548,1553,1574,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1596,2650,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1588,2650,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1601,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1542,1548,1553,1574,1599,1600,2958,3003],[74,123,140,141,208,724,731,1603,2650,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1606,2650,2958,3003],[74,123,140,141,208,506,1112,1505,1506,1553,1574,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1605,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1542,1548,1551,1553,1574,2958,3003],[74,123,140,141,208,724,731,1612,2650,2958,3003],[74,123,140,141,208,506,1609,2958,3003],[74,123,140,141,208,724,731,1610,2650,2958,3003],[74,123,140,141,208,724,731,1515,1516,1614,1615,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1542,1548,1553,1554,1571,1574,1614,2958,3003],[74,123,140,141,208,724,731,1515,1516,1617,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1542,1548,1553,1554,1571,1574,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1620,2650,2958,3003],[74,123,140,141,208,724,731,1514,1515,1622,2650,2958,3003],[74,123,140,141,208,1112,1146,1505,1506,1542,1546,1548,1553,1574,2958,3003],[74,123,140,141,208,724,731,1514,1515,1516,1619,2650,2958,3003],[74,123,140,141,208,724,731,1625,2650,2958,3003],[74,123,140,141,208,724,731,1146,1627,2650,2958,3003],[74,123,140,141,208,506,1112,1146,1505,1506,1542,1546,1553,2958,3003],[74,123,140,141,208,506,1112,1505,1506,1542,1553,2958,3003],[74,123,140,141,208,724,731,1514,1515,1631,2650,2958,3003],[74,123,140,141,208,1112,1505,1506,1542,1548,1553,1570,1574,1629,2958,3003],[74,123,140,141,208,724,731,1514,1515,1630,2650,2958,3003],[74,123,140,141,208,1542,1574,2958,3003],[74,123,140,141,208,507,510,2654,2655,2958,3003],[62,74,123,140,141,208,724,731,1505,2444,2650,2744,2958,3003],[74,123,140,141,208,724,731,1505,2401,2444,2650,2744,2958,3003],[62,74,123,140,141,208,724,731,2444,2650,2742,2958,3003],[62,74,123,140,141,208,724,731,2444,2650,2743,2958,3003],[62,74,123,140,141,208,724,731,1505,2401,2444,2650,2735,2745,2958,3003],[74,123,140,141,208,724,731,2444,2650,2746,2958,3003],[62,74,123,140,141,208,724,731,2401,2444,2557,2650,2958,3003],[74,123,140,141,208,724,731,2385,2650,2958,3003],[74,123,140,141,208,724,731,2391,2392,2650,2958,3003],[74,123,140,141,208,724,731,1505,2650,2958,3003],[62,74,123,140,141,208,1505,2384,2391,2451,2464,2491,2505,2588,2593,2604,2611,2739,2743,2958,3003],[62,74,123,140,141,208,2739,2958,3003],[62,74,123,140,141,208,2384,2585,2739,2742,2958,3003],[62,74,123,140,141,208,2384,2454,2739,2958,3003],[62,74,123,140,141,208,1505,2384,2391,2392,2401,2505,2588,2593,2604,2608,2614,2616,2739,2744,2958,3003],[62,74,123,140,141,208,2384,2739,2958,3003],[62,74,123,140,141,208,2958,3003],[62,74,123,140,141,208,2384,2391,2397,2401,2403,2406,2466,2555,2556,2958,3003],[62,74,123,140,141,208,2384,2402,2491,2512,2530,2958,3003],[62,74,123,140,141,208,1505,2384,2739,2958,3003],[74,123,140,141,208,2391,2415,2958,3003],[74,123,140,141,208,724,731,2650,2958,3003],[74,123,140,141,208,724,731,2391,2650,2958,3003],[74,123,140,141,208,724,731,2391,2405,2444,2650,2958,3003],[74,123,140,141,208,724,731,2391,2395,2444,2650,2958,3003],[74,123,140,141,208,2395,2404,2405,2407,2408,2409,2410,2411,2412,2413,2414,2958,3003],[74,123,140,141,208,2384,2395,2404,2958,3003],[74,123,140,141,208,2384,2395,2958,3003],[74,123,140,141,208,2395,2406,2958,3003],[62,74,123,140,141,208,2391,2958,3003],[62,74,123,140,141,208,2391,2397,2403,2958,3003],[62,74,123,140,141,208,2384,2397,2401,2958,3003],[62,74,123,140,141,208,1505,1570,2384,2465,2491,2958,3003],[62,74,123,140,141,208,2220,2384,2540,2958,3003],[62,74,123,140,141,208,1505,1570,2384,2391,2452,2455,2464,2465,2491,2498,2505,2555,2595,2640,2739,2744,2750,2751,2926,2927,2928,2930,2932,2933,2958,3003],[62,74,123,140,141,208,724,731,2444,2491,2640,2650,2735,2751,2958,3003],[62,74,123,140,141,208,724,731,2444,2588,2650,2735,2933,2958,3003],[74,123,140,141,208,724,731,2447,2650,2958,3003],[62,74,123,140,141,208,1505,2384,2447,2640,2739,2929,2958,3003],[74,123,140,141,208,2384,2491,2739,2958,3003],[74,123,140,141,208,2384,2958,3003],[62,74,123,140,141,208,2384,2391,2447,2555,2640,2739,2784,2898,2925,2958,3003],[62,74,123,140,141,208,2384,2640,2739,2958,3003],[74,123,140,141,208,2384,2927,2958,3003],[74,123,140,141,208,473,2384,2457,2458,2491,2640,2739,2958,3003],[62,74,123,140,141,208,1504,1505,2384,2447,2491,2640,2739,2784,2898,2925,2929,2931,2958,3003],[62,74,123,140,141,208,2384,2588,2739,2931,2958,3003],[74,123,140,141,208,724,731,2449,2650,2958,3003],[74,123,140,141,208,724,731,1505,2391,2444,2450,2451,2650,2958,3003],[74,123,140,141,208,724,731,2452,2650,2958,3003],[74,123,140,141,208,724,731,2444,2453,2650,2958,3003],[74,123,140,141,208,724,731,2454,2650,2958,3003],[74,123,140,141,208,724,731,2455,2650,2958,3003],[62,74,123,140,141,208,724,731,2401,2444,2456,2457,2458,2650,2958,3003],[62,74,123,140,141,208,724,731,2401,2403,2650,2958,3003],[74,123,140,141,208,724,731,2444,2459,2650,2958,3003],[74,123,140,141,208,724,731,2460,2650,2958,3003],[74,123,140,141,208,724,731,2462,2650,2958,3003],[74,123,140,141,208,724,731,2463,2464,2650,2958,3003],[74,123,140,141,208,724,731,2465,2650,2958,3003],[74,123,140,141,208,724,731,2466,2650,2958,3003],[74,123,140,141,208,2401,2958,3003],[62,74,123,140,141,208,1505,2391,2450,2958,3003],[74,123,140,141,208,1570,2401,2402,2958,3003],[74,123,140,141,208,1505,2401,2402,2958,3003],[74,123,140,141,208,2401,2402,2958,3003],[74,123,140,141,208,2401,2402,2456,2457,2958,3003],[62,74,123,140,141,208,2384,2401,2402,2958,3003],[62,74,123,140,141,208,2460,2958,3003],[62,74,123,140,141,208,2384,2391,2401,2402,2463,2958,3003],[74,123,140,141,208,1505,1570,2401,2402,2958,3003],[74,123,140,141,208,1507,2958,3003],[74,123,140,141,208,724,731,2402,2650,2958,3003],[74,123,140,141,208,724,731,1515,1548,2650,2958,3003],[74,123,140,141,208,724,731,1515,1542,1552,1574,2650,2958,3003],[74,123,140,141,208,724,731,1507,2650,2958,3003],[74,123,140,141,208,724,731,1571,1572,2650,2958,3003],[74,123,140,141,208,724,731,1554,2650,2958,3003],[74,123,140,141,208,724,731,1543,2650,2958,3003],[74,123,140,141,208,724,731,2492,2650,2958,3003],[74,123,140,141,208,724,731,1505,1593,2650,2958,3003],[74,123,140,141,208,724,731,1505,1599,2650,2958,3003],[74,123,140,141,208,724,731,2496,2650,2958,3003],[74,123,140,141,208,724,731,2498,2650,2958,3003],[74,123,140,141,208,724,731,1505,2500,2650,2958,3003],[74,123,140,141,208,724,731,1600,2650,2958,3003],[74,123,140,141,208,724,731,1505,2503,2650,2958,3003],[74,123,140,141,208,724,731,1505,2505,2650,2958,3003],[74,123,140,141,208,724,731,2491,2585,2650,2958,3003],[74,123,140,141,208,724,731,2488,2650,2958,3003],[74,123,140,141,208,724,731,2588,2650,2958,3003],[74,123,140,141,208,724,731,1571,2650,2958,3003],[74,123,140,141,208,724,731,1569,2650,2958,3003],[74,123,140,141,208,724,731,1614,2650,2958,3003],[74,123,140,141,208,724,731,2593,2650,2958,3003],[74,123,140,141,208,724,731,2595,2650,2958,3003],[74,123,140,141,208,724,731,2463,2650,2958,3003],[74,123,140,141,208,724,731,2512,2650,2958,3003],[74,123,140,141,208,724,731,2599,2650,2958,3003],[74,123,140,141,208,724,731,1573,2650,2958,3003],[74,123,140,141,208,724,731,1505,2602,2650,2958,3003],[74,123,140,141,208,724,731,1505,2604,2650,2958,3003],[74,123,140,141,208,724,731,2555,2650,2958,3003],[74,123,140,141,208,724,731,2555,2556,2650,2958,3003],[74,123,140,141,208,724,731,2391,2608,2650,2958,3003],[74,123,140,141,208,724,731,1505,2450,2650,2958,3003],[74,123,140,141,208,724,731,2611,2650,2958,3003],[74,123,140,141,208,724,731,2540,2650,2958,3003],[74,123,140,141,208,724,731,1505,2614,2650,2958,3003],[74,123,140,141,208,724,731,1505,2616,2650,2958,3003],[74,123,140,141,208,506,2958,3003],[74,123,140,141,208,1542,1548,2958,3003],[74,123,128,140,141,208,724,731,1514,1551,2650,2958,3003],[74,123,140,141,208,724,731,1544,2650,2958,3003],[74,123,140,141,208,724,731,1553,2650,2958,3003],[74,123,140,141,208,724,731,1547,2650,2958,3003],[74,123,128,140,141,208,483,1112,1505,1506,2958,3003],[74,123,140,141,208,1146,1505,1506,2958,3003],[74,123,140,141,208,1112,1146,1505,1506,1522,1523,1528,1542,1543,2647,2958,3003],[74,123,140,141,208,1542,2958,3003],[74,123,140,141,208,1505,1544,1551,1552,2958,3003],[74,123,128,140,141,208,483,1112,1146,1505,1506,1542,1543,1546,2958,3003],[74,123,140,141,208,1567,2958,3003],[74,123,140,141,208,1566,2958,3003],[74,123,140,141,208,1567,1569,1570,1571,2958,3003],[74,123,140,141,208,1570,2958,3003],[74,123,128,140,141,208,2958,3003],[74,123,140,141,208,2492,2958,3003],[74,123,140,141,208,2491,2958,3003],[74,123,140,141,208,1505,2958,3003],[74,123,140,141,208,1505,1542,2958,3003],[74,123,140,141,208,1505,1593,2958,3003],[74,123,140,141,208,724,731,1506,1576,2650,2958,3003],[74,123,140,141,145,208,724,731,820,1120,1121,2625,2650,2958,3003],[74,123,140,141,208,1112,1506,2958,3003],[74,123,140,141,208,820,1120,1505,2958,3003],[74,123,140,141,208,1020,1169,1504,2958,3003],[74,123,140,141,208,2391,2958,3003],[74,123,140,141,208,1570,2384,2488,2489,2490,2958,3003],[62,74,123,140,141,208,1542,1570,2958,3003],[74,123,140,141,208,1567,1568,1569,1570,2958,3003],[74,123,140,141,208,1542,1570,2958,3003],[74,123,140,141,208,1505,2498,2588,2958,3003],[74,123,140,141,208,2555,2958,3003],[74,123,140,141,208,2391,2392,2958,3003],[74,123,140,141,208,1505,2491,2958,3003],[74,123,140,141,208,724,731,2444,2517,2650,2958,3003],[74,123,140,141,208,724,731,2490,2585,2650,2958,3003],[74,123,140,141,208,724,731,2444,2511,2650,2958,3003],[74,123,140,141,208,724,731,2585,2650,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2514,2515,2958,3003],[74,123,140,141,208,2516,2958,3003],[74,123,140,141,208,2513,2958,3003],[74,123,140,141,208,2384,2489,2508,2557,2558,2958,3003],[74,123,140,141,208,2559,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2564,2565,2958,3003],[74,123,140,141,208,2566,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2531,2532,2533,2958,3003],[74,123,140,141,208,2534,2958,3003],[74,123,140,141,208,2384,2489,2508,2561,2958,3003],[74,123,140,141,208,2562,2958,3003],[74,123,140,141,208,2489,2490,2511,2517,2521,2525,2529,2535,2539,2545,2550,2554,2560,2563,2567,2571,2576,2580,2584,2958,3003],[74,123,140,141,208,2384,2489,2508,2551,2552,2958,3003],[74,123,140,141,208,2553,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2518,2519,2958,3003],[74,123,140,141,208,2520,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2536,2537,2958,3003],[74,123,140,141,208,2538,2958,3003],[74,123,140,141,208,2384,2489,2508,2509,2958,3003],[74,123,140,141,208,2510,2958,3003],[74,123,140,141,208,2384,2391,2489,2508,2546,2547,2548,2958,3003],[74,123,140,141,208,2549,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2522,2523,2958,3003],[74,123,140,141,208,2524,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2577,2578,2958,3003],[74,123,140,141,208,2579,2958,3003],[74,123,140,141,208,2488,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2568,2569,2958,3003],[74,123,140,141,208,2570,2958,3003],[74,123,140,141,208,724,731,1542,2509,2515,2519,2523,2527,2533,2537,2543,2548,2552,2558,2561,2565,2569,2574,2578,2582,2650,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2512,2526,2527,2958,3003],[74,123,140,141,208,2528,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2573,2574,2958,3003],[74,123,140,141,208,2575,2958,3003],[74,123,140,141,208,2572,2958,3003],[74,123,140,141,208,2384,2489,2508,2541,2542,2543,2958,3003],[74,123,140,141,208,2544,2958,3003],[74,123,140,141,208,724,731,2514,2650,2958,3003],[74,123,140,141,208,724,731,2532,2650,2958,3003],[74,123,140,141,208,724,731,2518,2650,2958,3003],[74,123,140,141,208,724,731,2522,2650,2958,3003],[74,123,140,141,208,724,731,2526,2536,2542,2547,2551,2564,2568,2572,2577,2650,2958,3003],[74,123,140,141,208,724,731,2513,2650,2958,3003],[74,123,140,141,208,2513,2514,2518,2522,2526,2532,2536,2542,2547,2551,2564,2568,2572,2577,2958,3003],[74,123,140,141,208,2384,2512,2958,3003],[74,123,140,141,208,473,2384,2489,2508,2581,2582,2958,3003],[74,123,140,141,208,2583,2958,3003],[74,123,140,141,208,506,1509,2647,2958,3003],[74,123,140,141,208,724,731,2639,2650,2958,3003],[74,123,140,141,208,724,731,2530,2650,2958,3003],[74,123,140,141,208,724,731,2456,2457,2650,2958,3003],[74,123,140,141,208,724,731,1505,2640,2650,2958,3003],[74,123,140,141,208,2389,2958,3003],[74,123,140,141,208,1505,2389,2958,3003],[74,123,140,141,208,2384,2389,2958,3003],[74,123,140,141,208,2389,2390,2958,3003],[74,123,140,141,208,2389,2456,2958,3003],[74,123,140,141,208,1504,1505,2389,2491,2498,2555,2588,2958,3003],[74,123,140,141,208,724,731,1505,1509,1522,2647,2650,2958,3003],[74,123,140,141,1505,1509,1522,2958,3003],[74,123,140,141,208,643,644,2958,3003],[74,123,140,141,208,739,740,2958,3003],[74,123,140,141,208,724,731,2444,2650,2958,3003],[62,74,123,140,141,2958,3003],[62,74,123,140,141,208,1180,1184,1187,1188,1189,1190,1191,2958,3003],[62,74,123,140,141,208,1172,1174,1176,1178,1180,1183,1184,1185,1186,2958,3003],[74,123,140,141,208,1180,1184,1188,1189,2958,3003],[62,74,123,140,141,208,1172,1174,1176,1178,1180,1184,1187,1189,1190,1191,2958,3003],[62,74,123,140,141,208,1184,1187,1189,1462,1477,1487,1492,2958,3003],[74,123,140,141,208,1184,1185,1186,1187,1188,1189,1192,1193,1194,1196,1493,1498,1499,1500,1501,1502,1503,2958,3003],[62,74,123,140,141,208,507,1183,1187,1189,1495,1496,1497,2958,3003],[74,123,140,141,208,1185,2958,3003],[74,123,140,141,208,1183,1188,1189,1191,1195,2958,3003],[74,123,140,141,208,1172,1180,2958,3003],[62,74,123,140,141,208,1183,2958,3003],[62,74,123,140,141,208,1183,1492,1636,1681,1682,1689,1701,2162,2248,2958,3003],[74,123,140,141,208,2247,2958,3003],[74,123,140,141,208,2229,2958,3003],[74,123,140,141,208,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2958,3003],[74,123,140,141,208,1186,2958,3003],[62,74,123,140,141,208,1183,1708,2958,3003],[62,74,123,140,141,208,1183,1681,2958,3003],[74,123,140,141,208,1183,1682,2958,3003],[62,74,123,140,141,208,1183,1487,1635,1681,2155,2958,3003],[74,123,140,141,208,1189,1492,1635,1636,1681,1682,2958,3003],[62,74,123,140,141,208,1183,1635,1696,2958,3003],[74,123,140,141,208,1183,1195,1635,1681,1699,2251,2958,3003],[62,74,123,140,141,208,1183,1492,1636,1682,2157,2958,3003],[74,123,140,141,208,1183,1497,1637,1701,2958,3003],[62,74,123,140,141,208,1183,1635,1681,2958,3003],[74,123,140,141,208,1183,1637,1681,2958,3003],[62,74,123,140,141,208,507,1183,1645,2182,2958,3003],[74,123,140,141,208,1183,1497,2958,3003],[74,123,140,141,208,1183,1635,1681,1699,2220,2958,3003],[62,74,123,140,141,208,1183,1487,1635,1637,1644,1681,2155,2220,2958,3003],[74,123,140,141,208,1635,1681,1682,2220,2958,3003],[74,123,140,141,208,1635,1681,1699,2220,2958,3003],[62,74,123,140,141,208,1183,1635,1681,1684,1718,2220,2958,3003],[62,74,123,140,141,208,1183,1487,1635,1681,1984,2152,2153,2958,3003],[74,123,140,141,208,1183,1497,1637,1681,2958,3003],[62,74,123,140,141,208,1492,1497,1635,1636,2958,3003],[74,123,140,141,208,1183,2165,2958,3003],[74,123,140,141,208,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2183,2184,2221,2222,2223,2224,2225,2226,2227,2228,2248,2249,2250,2251,2252,2253,2254,2255,2256,2258,2259,2261,2262,2263,2264,2265,2266,2267,2268,2374,2375,2376,2958,3003],[62,74,123,140,141,208,1183,1497,1681,2958,3003],[62,74,123,140,141,208,1635,1681,2958,3003],[62,74,123,140,141,208,1183,2165,2958,3003],[62,74,123,140,141,208,1183,1487,1635,1637,1681,2155,2958,3003],[62,74,123,140,141,208,1183,1635,2958,3003],[74,123,140,141,208,1183,1492,1635,1681,1682,2257,2958,3003],[62,74,123,140,141,208,1183,1487,1492,1635,1681,1984,2153,2260,2958,3003],[62,74,123,140,141,208,1183,1487,1492,1635,1681,1984,2152,2153,2260,2958,3003],[74,123,140,141,208,1183,1492,1635,2958,3003],[74,123,140,141,208,1183,1492,1635,1636,1681,1692,2958,3003],[62,74,123,140,141,208,1183,1487,1492,1635,1637,1681,2155,2257,2958,3003],[62,74,123,140,141,208,1183,1487,1492,1635,1681,1682,2155,2257,2958,3003],[74,123,140,141,208,1183,1645,2958,3003],[74,123,140,141,208,1183,1492,1635,1636,1681,2958,3003],[62,74,123,140,141,208,1183,1635,1636,1681,2958,3003],[62,74,123,140,141,208,1183,1635,1636,1681,1711,2958,3003],[62,74,123,140,141,208,1183,1635,1681,1682,2269,2270,2272,2274,2371,2372,2373,2958,3003],[62,74,123,140,141,208,1183,1637,1701,2958,3003],[62,74,123,140,141,208,1183,1701,2958,3003],[62,74,123,140,141,208,1183,1644,2958,3003],[62,74,123,140,141,208,1183,1195,1635,1681,1699,2958,3003],[62,74,123,140,141,208,1183,1681,1710,2958,3003],[62,74,123,140,141,208,1183,1635,1695,2958,3003],[62,74,123,140,141,208,1183,1491,2958,3003],[62,74,123,140,141,208,1183,1640,2958,3003],[62,74,123,140,141,208,1183,1634,1681,2958,3003],[62,74,123,140,141,208,1183,1491,1634,2958,3003],[62,74,123,140,141,208,1183,1635,1681,2152,2958,3003],[62,74,123,140,141,208,1183,1681,1683,2958,3003],[62,74,123,140,141,208,1183,1681,1693,1694,2154,2958,3003],[62,74,123,140,141,208,1183,1491,1681,1693,2958,3003],[62,74,123,140,141,208,1183,1681,1698,2958,3003],[62,74,123,140,141,208,1183,1489,1492,1634,1678,2958,3003],[74,123,140,141,208,1195,1487,1492,1635,1636,1637,1641,1644,1645,1679,1682,1684,1687,1689,1690,1692,1694,1696,1699,1701,1703,1705,1706,1708,1711,1714,1715,1716,1717,1718,2153,2155,2958,3003],[62,74,123,140,141,208,1183,1489,1491,2958,3003],[62,74,123,140,141,208,1183,1491,1681,1713,2958,3003],[62,74,123,140,141,208,1183,1486,2958,3003],[62,74,123,140,141,208,1183,1681,1686,2958,3003],[62,74,123,140,141,208,1183,1680,1681,2958,3003],[62,74,123,140,141,208,1183,1643,2958,3003],[74,123,140,141,208,1183,2958,3003],[62,74,123,140,141,208,1183,1691,2958,3003],[62,74,123,140,141,208,1183,1688,2958,3003],[62,74,123,140,141,208,1183,1707,2958,3003],[62,74,123,140,141,208,1183,1491,1681,1702,2958,3003],[74,123,140,141,208,1703,1704,2958,3003],[62,74,123,140,141,208,1183,1700,2958,3003],[74,123,140,141,208,1190,1704,2378,2379,2958,3003],[62,74,123,140,141,208,1703,2958,3003],[62,74,123,140,141,208,1184,2958,3003],[74,123,140,141,208,1504,2156,2377,2380,2383,2958,3003],[74,123,140,141,208,2274,2341,2362,2363,2368,2958,3003],[74,123,140,141,208,2269,2273,2276,2277,2362,2958,3003],[74,123,140,141,208,2274,2277,2362,2364,2366,2367,2958,3003],[74,123,140,141,208,2368,2958,3003],[74,123,140,141,208,2269,2273,2362,2365,2368,2958,3003],[74,123,140,141,208,2269,2272,2341,2362,2368,2958,3003],[74,123,140,141,208,2341,2958,3003],[74,123,140,141,208,2269,2270,2369,2370,2958,3003],[74,123,140,141,208,1181,1182,2958,3003],[74,123,140,141,208,1183,2381,2382,2958,3003],[74,123,140,141,1558,1559,2958,3003],[74,123,140,141,1556,2958,3003],[74,123,140,141,1556,1557,2958,3003],[74,123,140,141,1556,1558,2958,3003],[74,123,140,141,1555,2958,3003],[74,123,140,141,1555,1556,1559,1560,1561,1562,1564,1565,1566,2958,3003],[74,123,140,141,1556,1562,1563,2958,3003],[74,123,140,141,1556,1562,2958,3003],[74,123,140,141,1160,1168,2958,3003],[74,123,140,141,1151,1152,1153,1154,1155,1157,1160,1168,1169,2958,3003],[74,123,140,141,1157,1160,2958,3003],[74,123,140,141,1151,2958,3003],[74,123,140,141,1160,2958,3003],[74,123,140,141,1156,1160,2958,3003],[74,123,140,141,1150,1156,2958,3003],[74,123,140,141,1149,1158,1160,1169,2958,3003],[74,123,140,141,1160,1162,1168,2958,3003],[74,123,140,141,1160,1164,1165,1168,2958,3003],[74,123,140,141,1158,1160,1163,1166,1167,2958,3003],[74,123,140,141,1160,1166,2958,3003],[74,123,140,141,1148,1151,1156,1160,1164,1168,2958,3003],[74,123,140,141,1147,1148,1149,1150,1156,1157,1159,1168,2958,3003],[74,123,140,141,1169,1527,2958,3003],[74,123,140,141,953,1112,1169,2958,3003],[74,123,140,141,1020,1112,1169,2958,3003],[74,123,140,141,1106,1112,1169,2958,3003],[74,123,140,141,953,1020,1106,1524,1525,1526,2958,3003],[74,123,140,141,2958,3003,3017],[74,123,140,141,2269,2272,2273,2958,3003],[74,123,140,141,2269,2272,2958,3003],[74,123,140,141,2269,2274,2275,2277,2958,3003],[74,123,140,141,2269,2271,2272,2273,2275,2276,2958,3003],[74,123,140,141,2269,2277,2958,3003],[74,123,140,141,2269,2271,2958,3003],[74,123,140,141,1719,2958,3003],[74,123,140,141,1720,2958,3003],[74,123,140,141,1719,1720,1721,1722,1723,1724,1725,2958,3003],[62,74,123,140,141,2839,2958,3003],[74,123,140,141,2841,2958,3003],[74,123,140,141,2839,2958,3003],[74,123,140,141,2839,2840,2842,2843,2958,3003],[74,123,140,141,2838,2958,3003],[62,74,123,140,141,2784,2808,2813,2832,2844,2869,2872,2873,2958,3003],[74,123,140,141,2873,2874,2958,3003],[74,123,140,141,2813,2832,2958,3003],[62,74,123,140,141,2876,2958,3003],[74,123,140,141,2876,2877,2878,2879,2958,3003],[74,123,140,141,2813,2958,3003],[74,123,140,141,2876,2958,3003],[62,74,123,140,141,2813,2958,3003],[74,123,140,141,2881,2958,3003],[74,123,140,141,2882,2884,2886,2958,3003],[74,123,140,141,2883,2958,3003],[74,123,140,141,2885,2958,3003],[62,74,123,140,141,2784,2813,2958,3003],[62,74,123,140,141,2872,2887,2890,2958,3003],[74,123,140,141,2888,2889,2958,3003],[74,123,140,141,2784,2813,2838,2875,2958,3003],[74,123,140,141,2890,2891,2958,3003],[74,123,140,141,2844,2875,2880,2892,2958,3003],[74,123,140,141,2832,2894,2895,2896,2958,3003],[62,74,123,140,141,2838,2958,3003],[62,74,123,140,141,2784,2813,2832,2838,2958,3003],[62,74,123,140,141,2813,2838,2958,3003],[74,123,140,141,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2958,3003],[74,123,140,141,2813,2838,2958,3003],[74,123,140,141,2808,2816,2958,3003],[74,123,140,141,2813,2834,2958,3003],[74,123,140,141,2763,2813,2958,3003],[74,123,140,141,2784,2958,3003],[74,123,140,141,2808,2958,3003],[74,123,140,141,2898,2958,3003],[74,123,140,141,2808,2813,2838,2869,2872,2893,2897,2958,3003],[74,123,140,141,2784,2870,2958,3003],[74,123,140,141,2870,2871,2958,3003],[74,123,140,141,2784,2813,2838,2958,3003],[74,123,140,141,2796,2797,2798,2799,2801,2803,2807,2958,3003],[74,123,140,141,2804,2958,3003],[74,123,140,141,2804,2805,2806,2958,3003],[74,123,140,141,2797,2804,2958,3003],[74,123,140,141,2797,2813,2958,3003],[74,123,140,141,2800,2958,3003],[62,74,123,140,141,2796,2797,2958,3003],[74,123,140,141,2794,2795,2958,3003],[62,74,123,140,141,2794,2797,2958,3003],[74,123,140,141,2802,2958,3003],[62,74,123,140,141,2793,2796,2813,2838,2958,3003],[74,123,140,141,2797,2958,3003],[62,74,123,140,141,2834,2958,3003],[74,123,140,141,2834,2835,2836,2837,2958,3003],[74,123,140,141,2834,2835,2958,3003],[62,74,123,140,141,2784,2793,2813,2832,2833,2835,2893,2958,3003],[74,123,140,141,2785,2793,2808,2813,2838,2958,3003],[74,123,140,141,2785,2786,2809,2810,2811,2812,2958,3003],[62,74,123,140,141,2784,2958,3003],[74,123,140,141,2787,2958,3003],[74,123,140,141,2787,2813,2958,3003],[74,123,140,141,2787,2788,2789,2790,2791,2792,2958,3003],[74,123,140,141,2845,2846,2847,2958,3003],[74,123,140,141,2793,2848,2855,2857,2868,2958,3003],[74,123,140,141,2856,2958,3003],[74,123,140,141,2784,2813,2958,3003],[74,123,140,141,2849,2850,2851,2852,2853,2854,2958,3003],[74,123,140,141,2812,2958,3003],[74,123,140,141,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2958,3003],[74,123,140,141,2904,2958,3003],[62,74,123,140,141,2898,2903,2958,3003],[74,123,140,141,2906,2958,3003],[74,123,140,141,2906,2907,2908,2958,3003],[74,123,140,141,2784,2898,2958,3003],[62,74,123,140,141,2784,2832,2898,2903,2906,2958,3003],[74,123,140,141,2903,2905,2909,2914,2917,2924,2958,3003],[74,123,140,141,2916,2958,3003],[74,123,140,141,2915,2958,3003],[74,123,140,141,2903,2958,3003],[74,123,140,141,2910,2911,2912,2913,2958,3003],[74,123,140,141,2899,2900,2901,2902,2958,3003],[74,123,140,141,2898,2900,2958,3003],[74,123,140,141,2918,2919,2920,2921,2922,2923,2958,3003],[74,123,140,141,2763,2958,3003],[74,123,140,141,2763,2764,2958,3003],[74,123,140,141,2767,2768,2769,2958,3003],[74,123,140,141,2771,2772,2773,2958,3003],[74,123,140,141,2775,2958,3003],[74,123,140,141,2752,2753,2754,2755,2756,2757,2758,2759,2760,2958,3003],[74,123,140,141,2761,2762,2765,2766,2770,2774,2776,2782,2783,2958,3003],[74,123,140,141,2777,2778,2779,2780,2781,2958,3003],[74,123,140,141,2958,3003,3031],[74,123,140,141,2273,2958,3003],[74,123,140,141,2342,2343,2958,3003],[74,123,140,141,2342,2958,3003],[74,123,140,141,2340,2348,2349,2350,2958,3003],[74,123,140,141,2340,2349,2958,3003],[74,123,140,141,2340,2958,3003],[74,123,140,141,2340,2347,2348,2958,3003],[74,123,140,141,2340,2342,2343,2349,2352,2354,2958,3003],[74,123,140,141,2340,2342,2343,2344,2345,2346,2347,2348,2349,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2958,3003],[74,123,140,141,2340,2342,2349,2353,2958,3003],[74,123,140,141,2341,2342,2343,2958,3003],[74,123,140,141,2341,2356,2358,2958,3003],[74,123,140,141,2340,2341,2356,2958,3003],[74,123,140,141,2341,2958,3003],[74,123,140,141,1197,1198,1199,1200,1203,1204,1205,1206,1460,1461,2958,3003],[74,123,140,141,1197,1199,2958,3003],[74,123,140,141,1199,2958,3003],[74,123,140,141,1198,1199,1200,1201,1202,2958,3003],[74,123,140,141,1197,1198,2958,3003],[74,123,140,141,1198,2958,3003],[74,123,140,141,1197,1199,1203,2958,3003],[74,123,140,141,1199,1263,1459,2958,3003],[74,123,140,141,1197,1462,2958,3003],[74,123,140,141,1465,1466,1467,1468,1469,1470,1471,1472,2958,3003],[74,123,140,141,1462,2958,3003],[74,123,140,141,1462,1464,2958,3003],[62,74,123,140,141,1462,2958,3003],[74,123,140,141,1463,1474,1475,1476,2958,3003],[62,74,123,140,141,1462,1474,2958,3003],[74,123,140,141,1463,1473,2958,3003],[74,123,140,141,208,1462,2958,3003],[74,123,140,141,615,2958,3003],[62,74,123,140,141,1478,1479,1709,2958,3003],[62,74,123,140,141,1478,1693,2958,3003],[62,74,123,140,141,1479,2958,3003],[62,74,123,140,141,1488,1638,2958,3003],[62,74,123,140,141,208,1478,1479,2958,3003],[62,74,123,140,141,1478,1479,2958,3003],[62,74,123,140,141,1478,1479,1480,1481,1485,2958,3003],[62,74,123,140,141,1478,1479,1697,2958,3003],[62,74,123,140,141,1488,2958,3003],[62,74,123,140,141,1478,1479,1480,1481,1484,1485,1685,2958,3003],[62,74,123,140,141,1478,1479,1480,1712,2958,3003],[62,74,123,140,141,1478,1479,1480,1481,1484,1485,2958,3003],[62,74,123,140,141,1478,1479,1482,1483,2958,3003],[62,74,123,140,141,1478,1479,1685,2958,3003],[62,66,74,123,140,141,174,175,176,177,178,460,505,2958,3003],[62,74,123,140,141,1478,1479,1480,2958,3003],[62,74,123,140,141,1478,1479,1480,1484,1485,2958,3003],[74,123,140,141,2398,2958,3003],[62,74,123,140,141,208,2399,2958,3003],[74,123,140,141,2400,2958,3003],[62,74,123,140,141,2219,2958,3003],[74,123,140,141,2200,2958,3003],[74,123,140,141,2185,2208,2958,3003],[74,123,140,141,2208,2958,3003],[74,123,140,141,2208,2219,2958,3003],[74,123,140,141,2194,2208,2219,2958,3003],[74,123,140,141,2199,2208,2219,2958,3003],[74,123,140,141,2189,2208,2958,3003],[74,123,140,141,2197,2208,2219,2958,3003],[74,123,140,141,2195,2958,3003],[74,123,140,141,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2958,3003],[74,123,140,141,2198,2958,3003],[74,123,140,141,2185,2186,2187,2188,2189,2190,2191,2192,2193,2195,2196,2198,2200,2201,2202,2203,2204,2205,2206,2207,2958,3003],[74,123,140,141,2624,2958,3003],[74,123,140,141,819,2958,3003],[74,123,140,141,2430,2958,3003],[74,123,140,141,2427,2428,2429,2430,2431,2434,2435,2436,2437,2438,2439,2440,2441,2958,3003],[74,123,140,141,2426,2958,3003],[74,123,140,141,2433,2958,3003],[74,123,140,141,2427,2428,2429,2958,3003],[74,123,140,141,2427,2428,2958,3003],[74,123,140,141,2430,2431,2433,2958,3003],[74,123,140,141,2428,2958,3003],[74,123,140,141,724,731,2649,2650,2958,3003],[62,74,123,140,141,178,441,2442,2443,2958,3003],[74,123,140,141,2734,2958,3003],[74,123,140,141,2721,2722,2723,2958,3003],[74,123,140,141,2716,2717,2718,2958,3003],[74,123,140,141,2694,2695,2696,2697,2958,3003],[74,123,140,141,2660,2734,2958,3003],[74,123,140,141,2660,2958,3003],[74,123,140,141,2660,2661,2662,2663,2708,2958,3003],[74,123,140,141,2698,2958,3003],[74,123,140,141,2693,2699,2700,2701,2702,2703,2704,2705,2706,2707,2958,3003],[74,123,140,141,2708,2958,3003],[74,123,140,141,2659,2958,3003],[74,123,140,141,2712,2714,2715,2733,2734,2958,3003],[74,123,140,141,2712,2714,2958,3003],[74,123,140,141,2709,2712,2734,2958,3003],[74,123,140,141,2719,2720,2724,2725,2730,2958,3003],[74,123,140,141,2713,2715,2725,2733,2958,3003],[74,123,140,141,2732,2733,2958,3003],[74,123,140,141,2709,2713,2715,2731,2732,2958,3003],[74,123,140,141,2713,2734,2958,3003],[74,123,140,141,2711,2958,3003],[74,123,140,141,2711,2713,2734,2958,3003],[74,123,140,141,2709,2710,2958,3003],[74,123,140,141,2726,2727,2728,2729,2958,3003],[74,123,140,141,2715,2734,2958,3003],[74,123,140,141,2670,2958,3003],[74,123,140,141,2664,2671,2958,3003],[74,123,140,141,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2958,3003],[74,123,140,141,2690,2734,2958,3003],[74,123,140,141,2958,3003,3017,3018,3019,3020,3021],[74,123,140,141,2958,3003,3017,3019],[74,123,140,141,654,655,2958,3003],[74,123,137,140,141,143,155,173,779,2958,3003],[74,123,134,140,141,155,173,779,780,2958,3003],[74,123,135,140,141,173,2958,3003],[74,123,140,141,617,2958,3003],[74,123,140,141,2958,3003,3027],[74,123,140,141,2958,3003,3033,3036],[74,123,140,141,2958,3003,3032],[74,123,140,141,1495,1496,2958,3003],[74,123,140,141,1494,2958,3003],[74,123,140,141,2958,3003,3040,3041],[74,120,121,123,140,141,2958,3003],[74,122,123,140,141,2958,3003],[123,140,141,2958,3003],[74,123,128,140,141,158,2958,3003],[74,123,124,129,134,140,141,143,155,166,2958,3003],[74,123,124,125,134,140,141,143,2958,3003],[69,70,71,74,123,140,141,2958,3003],[74,123,126,140,141,167,2958,3003],[74,123,127,128,135,140,141,144,2958,3003],[74,123,128,140,141,155,163,2958,3003],[74,123,129,131,134,140,141,143,2958,3003],[74,122,123,130,140,141,2958,3003],[74,123,131,132,140,141,2958,3003],[74,123,133,134,140,141,2958,3003],[74,122,123,134,140,141,2958,3003],[74,123,134,135,136,140,141,155,166,2958,3003],[74,123,134,135,136,140,141,150,155,158,2958,3003],[74,116,123,131,134,137,140,141,143,155,166,2958,3003],[74,123,134,135,137,138,140,141,143,155,163,166,2958,3003],[74,123,137,139,140,141,155,163,166,2958,3003],[72,73,74,75,76,77,78,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,2958,3003],[74,123,134,140,141,2958,3003],[74,123,140,141,142,166,2958,3003],[74,123,131,134,140,141,143,155,2958,3003],[74,123,140,141,144,2958,3003],[74,123,140,141,145,2958,3003],[74,122,123,140,141,146,2958,3003],[74,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,2958,3003],[74,123,140,141,148,2958,3003],[74,123,140,141,149,2958,3003],[74,123,134,140,141,150,151,2958,3003],[74,123,140,141,150,152,167,169,2958,3003],[74,123,135,140,141,2958,3003],[74,123,134,140,141,155,156,158,2958,3003],[74,123,140,141,157,158,2958,3003],[74,123,140,141,155,156,2958,3003],[74,123,140,141,158,2958,3003],[74,123,140,141,159,2958,3003],[74,120,123,140,141,155,160,166,2958,3003],[74,123,134,140,141,161,162,2958,3003],[74,123,140,141,161,162,2958,3003],[74,123,128,140,141,143,155,163,2958,3003],[74,123,140,141,164,2958,3003],[74,123,140,141,143,165,2958,3003],[74,123,137,140,141,149,166,2958,3003],[74,123,128,140,141,167,2958,3003],[74,123,140,141,155,168,2958,3003],[74,123,140,141,142,169,2958,3003],[74,123,140,141,170,2958,3003],[74,116,123,140,141,2958,3003],[74,116,123,134,136,140,141,146,155,158,166,168,169,171,2958,3003],[74,123,140,141,155,172,2958,3003],[74,123,134,140,141,155,163,173,2958,3003,3042,3043,3046,3047,3048],[74,123,140,141,2958,3003,3048],[62,66,74,123,140,141,174,175,176,178,460,505,1634,2958,3003],[62,66,74,123,140,141,174,175,176,177,441,460,505,1634,2958,3003],[62,66,74,123,140,141,174,175,177,178,460,505,1634,2958,3003],[62,74,123,140,141,178,441,442,2958,3003],[62,74,123,140,141,178,441,2958,3003],[62,66,74,123,140,141,175,176,177,178,460,505,1634,2958,3003],[62,66,74,123,140,141,174,176,177,178,460,505,1634,2958,3003],[60,61,74,123,140,141,2958,3003],[74,123,140,141,155,173,2958,3003],[74,123,134,137,139,140,141,143,155,173,2958,3003],[74,123,140,141,2958,3003,3052],[74,123,140,141,732,2958,3003],[74,123,140,141,724,728,729,731,2650,2958,3003],[74,123,140,141,729,732,2958,3003],[74,123,140,141,724,730,731,732,2650,2958,3003],[74,123,140,141,710,2958,3003],[74,123,140,141,710,711,2958,3003],[74,123,140,141,652,694,695,2958,3003],[74,123,140,141,652,694,2958,3003],[74,123,140,141,694,2958,3003],[74,123,140,141,650,694,698,699,2958,3003],[74,123,140,141,650,694,698,2958,3003],[74,123,140,141,646,2958,3003],[74,123,140,141,650,651,2958,3003],[74,123,140,141,650,2958,3003],[74,123,140,141,650,651,691,726,2958,3003],[74,123,140,141,691,2958,3003],[74,123,140,141,650,653,691,692,693,2958,3003],[74,123,140,141,2286,2302,2323,2958,3003],[74,123,140,141,2302,2958,3003],[74,123,140,141,2304,2958,3003],[74,123,140,141,2303,2306,2958,3003],[74,123,140,141,2303,2304,2305,2307,2309,2312,2313,2314,2958,3003],[74,123,140,141,2279,2303,2308,2309,2311,2334,2958,3003],[74,123,140,141,2283,2287,2303,2308,2309,2311,2313,2323,2334,2958,3003],[74,123,140,141,2287,2335,2958,3003],[74,123,140,141,2279,2958,3003],[74,123,140,141,2278,2282,2283,2958,3003],[74,123,140,141,2283,2335,2336,2958,3003],[74,123,140,141,2321,2322,2958,3003],[74,123,140,141,2283,2297,2320,2321,2333,2958,3003],[74,123,140,141,2297,2320,2958,3003],[74,123,140,141,2310,2958,3003],[74,123,140,141,2329,2958,3003],[74,123,140,141,2283,2320,2324,2328,2958,3003],[74,123,140,141,2324,2331,2334,2958,3003],[74,123,140,141,2324,2334,2958,3003],[74,123,140,141,2283,2320,2324,2958,3003],[74,123,140,141,2320,2324,2958,3003],[74,123,140,141,2324,2325,2326,2327,2328,2329,2330,2331,2332,2958,3003],[74,123,140,141,2283,2315,2324,2334,2958,3003],[74,123,140,141,2279,2283,2287,2323,2334,2958,3003],[74,123,140,141,2278,2279,2280,2281,2283,2286,2287,2297,2302,2311,2315,2319,2320,2323,2333,2334,2335,2336,2337,2338,2339,2958,3003],[74,123,140,141,2279,2283,2315,2334,2958,3003],[74,123,140,141,2284,2285,2958,3003],[74,123,140,141,2283,2958,3003],[74,123,140,141,2284,2958,3003],[74,123,140,141,2283,2286,2287,2297,2315,2319,2323,2333,2334,2958,3003],[74,123,140,141,2333,2958,3003],[74,123,140,141,2315,2958,3003],[74,123,140,141,2298,2299,2300,2301,2958,3003],[74,123,140,141,2279,2282,2958,3003],[74,123,140,141,2283,2286,2958,3003],[74,123,140,141,2283,2284,2338,2958,3003],[74,123,140,141,2292,2958,3003],[74,123,140,141,2290,2291,2292,2293,2294,2295,2296,2958,3003],[74,123,140,141,2289,2958,3003],[74,123,140,141,2292,2293,2323,2958,3003],[74,123,140,141,2290,2291,2292,2293,2958,3003],[74,123,140,141,2290,2294,2958,3003],[74,123,140,141,2290,2958,3003],[74,123,140,141,2288,2958,3003],[74,123,140,141,2283,2290,2323,2958,3003],[74,123,140,141,2316,2317,2318,2958,3003],[74,123,140,141,1145,2958,3003],[74,123,140,141,1181,1490,2958,3003],[74,123,140,141,1181,2958,3003],[62,74,123,140,141,1693,2958,3003],[74,123,140,141,1730,2958,3003],[74,123,140,141,1728,1730,2958,3003],[74,123,140,141,1728,2958,3003],[74,123,140,141,1730,1794,1795,2958,3003],[74,123,140,141,1730,1797,2958,3003],[74,123,140,141,1730,1798,2958,3003],[74,123,140,141,1815,2958,3003],[74,123,140,141,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,2958,3003],[74,123,140,141,1730,1891,2958,3003],[74,123,140,141,1728,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2958,3003],[74,123,140,141,1730,1795,1915,2958,3003],[74,123,140,141,1728,1912,1913,2958,3003],[74,123,140,141,1914,2958,3003],[74,123,140,141,1730,1912,2958,3003],[74,123,140,141,1727,1728,1729,2958,3003],[74,123,140,141,166,173,2958,3003],[74,123,140,141,163,2958,3003],[74,123,140,141,821,825,828,874,1108,2958,3003],[74,123,140,141,821,873,1112,2958,3003],[74,123,140,141,1113,2958,3003],[74,123,140,141,821,829,1108,2958,3003],[74,123,140,141,821,828,829,898,953,1020,1072,1106,1108,2958,3003],[74,123,140,141,821,825,828,829,1107,2958,3003],[74,123,140,141,821,2958,3003],[74,123,140,141,867,872,894,2958,3003],[74,123,140,141,821,837,867,2958,3003],[74,123,140,141,841,842,843,844,845,846,847,848,849,850,852,853,854,855,856,857,858,859,860,870,2958,3003],[74,123,140,141,821,840,869,1107,1108,2958,3003],[74,123,140,141,821,869,1107,1108,2958,3003],[74,123,140,141,821,828,829,862,867,868,1107,1108,2958,3003],[74,123,140,141,821,828,829,867,869,1107,1108,2958,3003],[74,123,140,141,821,869,1107,2958,3003],[74,123,140,141,821,867,869,1107,1108,2958,3003],[74,123,140,141,840,841,842,843,844,845,846,847,848,849,850,852,853,854,855,856,857,858,859,860,869,870,2958,3003],[74,123,140,141,821,839,869,1107,2958,3003],[74,123,140,141,821,851,869,1107,1108,2958,3003],[74,123,140,141,821,851,867,869,1107,1108,2958,3003],[74,123,140,141,821,824,828,829,834,867,871,872,874,876,879,880,881,883,889,890,894,1113,2958,3003],[74,123,140,141,821,828,829,867,871,874,889,893,894,2958,3003],[74,123,140,141,821,867,871,2958,3003],[74,123,140,141,838,839,862,863,864,865,866,867,868,871,881,882,883,889,890,892,893,895,896,897,2958,3003],[74,123,140,141,821,828,867,871,2958,3003],[74,123,140,141,821,828,863,867,2958,3003],[74,123,140,141,821,828,867,883,2958,3003],[74,123,140,141,821,824,827,828,867,877,878,883,890,894,2958,3003],[74,123,140,141,884,885,886,887,888,891,894,2958,3003],[74,123,140,141,821,824,825,827,828,834,862,867,869,877,878,883,885,890,891,894,2958,3003],[74,123,140,141,821,824,828,834,871,881,888,890,894,2958,3003],[74,123,140,141,821,828,829,867,874,877,878,883,890,2958,3003],[74,123,140,141,821,828,875,877,878,2958,3003],[74,123,140,141,821,828,877,878,883,890,893,2958,3003],[74,123,140,141,821,824,827,828,829,834,867,871,872,873,877,878,881,883,890,894,2958,3003],[74,123,140,141,824,825,826,827,828,829,834,867,871,872,883,888,893,2958,3003],[74,123,140,141,821,824,825,827,828,829,867,869,872,877,878,883,890,894,1108,2958,3003],[74,123,140,141,821,828,839,867,2958,3003],[74,123,140,141,821,829,837,873,874,875,882,890,894,1113,2958,3003],[74,123,140,141,824,827,828,2958,3003],[74,123,140,141,821,825,838,861,862,864,865,866,868,869,1107,2958,3003],[74,123,140,141,824,828,838,862,864,865,866,867,868,871,872,893,898,1107,1108,2958,3003],[74,123,140,141,821,828,2958,3003],[74,123,140,141,821,827,828,829,834,869,872,891,892,1107,2958,3003],[74,123,140,141,821,822,824,825,826,829,837,874,877,1107,1108,1109,1110,1111,2958,3003],[74,123,140,141,928,936,949,2958,3003],[74,123,140,141,821,828,928,2958,3003],[74,123,140,141,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,919,920,921,922,923,931,2958,3003],[74,123,140,141,821,930,1107,1108,2958,3003],[74,123,140,141,821,829,930,1107,1108,2958,3003],[74,123,140,141,821,828,829,928,929,1107,1108,2958,3003],[74,123,140,141,821,828,829,928,930,1107,1108,2958,3003],[74,123,140,141,821,829,928,930,1107,1108,2958,3003],[74,123,140,141,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,919,920,921,922,923,930,931,2958,3003],[74,123,140,141,821,910,930,1107,1108,2958,3003],[74,123,140,141,821,829,918,1107,1108,2958,3003],[74,123,140,141,821,824,828,829,874,928,935,936,941,942,943,944,946,949,1113,2958,3003],[74,123,140,141,821,828,829,874,928,930,933,934,939,940,946,949,2958,3003],[74,123,140,141,821,928,932,2958,3003],[74,123,140,141,899,925,926,927,928,929,932,935,941,943,945,946,947,948,950,951,952,2958,3003],[74,123,140,141,821,828,928,932,2958,3003],[74,123,140,141,821,828,928,936,946,2958,3003],[74,123,140,141,821,824,828,829,877,928,930,941,946,949,2958,3003],[74,123,140,141,934,937,938,939,940,949,2958,3003],[74,123,140,141,821,825,828,834,873,877,878,928,930,938,939,941,946,949,2958,3003],[74,123,140,141,821,824,935,937,941,949,2958,3003],[74,123,140,141,821,828,829,874,877,928,941,946,2958,3003],[74,123,140,141,821,824,827,828,829,834,873,877,925,928,932,935,936,941,946,949,2958,3003],[74,123,140,141,824,825,826,827,828,829,834,928,932,936,937,946,948,2958,3003],[74,123,140,141,821,824,828,829,873,877,928,930,941,946,949,1108,2958,3003],[74,123,140,141,821,928,948,2958,3003],[74,123,140,141,821,828,829,873,874,941,945,949,1113,2958,3003],[74,123,140,141,824,827,828,834,938,2958,3003],[74,123,140,141,821,825,899,924,925,926,927,929,930,1107,2958,3003],[74,123,140,141,824,899,925,926,927,928,929,936,937,948,953,1112,2958,3003],[74,123,140,141,821,827,828,834,932,936,938,947,1107,2958,3003],[74,123,140,141,824,825,828,1108,2958,3003],[74,123,140,141,995,1001,1014,2958,3003],[74,123,140,141,821,837,995,2958,3003],[74,123,140,141,955,956,957,958,959,961,962,963,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,998,2958,3003],[74,123,140,141,821,965,997,1107,1108,2958,3003],[74,123,140,141,821,997,1107,1108,2958,3003],[74,123,140,141,821,829,997,1107,1108,2958,3003],[74,123,140,141,821,828,829,990,995,996,1107,1108,2958,3003],[74,123,140,141,821,828,829,995,997,1107,1108,2958,3003],[74,123,140,141,821,997,1107,2958,3003],[74,123,140,141,821,829,960,997,1107,1108,2958,3003],[74,123,140,141,821,829,995,997,1107,1108,2958,3003],[74,123,140,141,955,956,957,958,959,961,962,963,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,997,998,999,2958,3003],[74,123,140,141,821,964,997,1107,2958,3003],[74,123,140,141,821,967,997,1107,1108,2958,3003],[74,123,140,141,821,995,997,1107,1108,2958,3003],[74,123,140,141,821,960,967,995,997,1107,1108,2958,3003],[74,123,140,141,821,829,960,995,997,1107,1108,2958,3003],[74,123,140,141,821,824,828,829,874,995,1000,1001,1002,1006,1007,1009,1010,1013,1014,1113,1114,1115,1116,2958,3003],[74,123,140,141,821,828,829,874,933,995,1000,1002,1009,1013,1014,2958,3003],[74,123,140,141,821,995,1000,2958,3003],[74,123,140,141,954,964,990,991,992,993,994,995,996,1000,1002,1007,1009,1010,1012,1013,1015,1016,1017,1019,1117,2958,3003],[74,123,140,141,821,828,995,1000,2958,3003],[74,123,140,141,821,828,991,995,2958,3003],[74,123,140,141,821,828,829,995,1002,2958,3003],[74,123,140,141,821,824,827,828,834,873,877,878,995,1002,1010,1014,2958,3003],[74,123,140,141,1003,1004,1005,1006,1008,1011,1014,2958,3003],[74,123,140,141,821,824,825,827,828,834,873,877,878,990,995,997,1002,1004,1010,1011,1014,2958,3003],[74,123,140,141,821,824,828,1000,1007,1008,1010,1014,2958,3003],[74,123,140,141,821,828,829,874,877,878,995,1002,1010,2958,3003],[74,123,140,141,821,828,877,878,1002,1010,1013,2958,3003],[74,123,140,141,821,824,827,828,829,834,873,877,878,995,1000,1001,1002,1007,1010,1014,2958,3003],[74,123,140,141,824,825,826,827,828,829,834,995,1000,1001,1002,1008,1013,2958,3003],[74,123,140,141,821,824,825,827,828,829,834,873,877,878,995,997,1001,1002,1010,1014,1108,2958,3003],[74,123,140,141,821,828,829,964,995,999,1013,2958,3003],[74,123,140,141,821,829,837,873,874,875,1010,1014,1113,1117,2958,3003],[74,123,140,141,824,827,828,834,1011,2958,3003],[74,123,140,141,821,825,954,989,990,992,993,994,996,997,1107,2958,3003],[74,123,140,141,824,828,954,990,992,993,994,995,996,1000,1001,1013,1020,1107,1108,2958,3003],[74,123,140,141,1018,2958,3003],[74,123,140,141,821,827,828,829,834,997,1001,1011,1012,1107,2958,3003],[74,123,140,141,820,821,829,1117,1118,2958,3003],[74,123,140,141,1118,1119,2958,3003],[74,123,140,141,933,1119,2958,3003],[74,123,140,141,820,821,822,828,829,873,874,1002,1010,1014,1020,1058,2958,3003],[74,123,140,141,821,837,2958,3003],[74,123,140,141,824,825,826,828,829,1107,1108,2958,3003],[74,123,140,141,821,825,828,829,832,1108,1112,2958,3003],[74,123,140,141,1107,2958,3003],[74,123,140,141,1112,2958,3003],[74,123,140,141,1050,1068,2958,3003],[74,123,140,141,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1040,1041,1042,1043,1044,1045,1052,2958,3003],[74,123,140,141,821,1051,1107,1108,2958,3003],[74,123,140,141,821,829,1051,1107,1108,2958,3003],[74,123,140,141,821,829,1050,1107,1108,2958,3003],[74,123,140,141,821,828,829,1050,1051,1107,1108,2958,3003],[74,123,140,141,821,829,1050,1051,1107,1108,2958,3003],[74,123,140,141,821,829,837,1051,1107,1108,2958,3003],[74,123,140,141,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1040,1041,1042,1043,1044,1045,1051,1052,2958,3003],[74,123,140,141,821,1031,1051,1107,1108,2958,3003],[74,123,140,141,821,829,1039,1107,1108,2958,3003],[74,123,140,141,821,824,828,874,1050,1057,1060,1061,1062,1065,1067,1068,1113,2958,3003],[74,123,140,141,821,828,829,874,933,1050,1051,1054,1055,1056,1067,1068,2958,3003],[74,123,140,141,1047,1048,1049,1050,1053,1057,1062,1065,1066,1067,1069,1070,1071,2958,3003],[74,123,140,141,821,828,1050,1053,2958,3003],[74,123,140,141,821,1050,1053,2958,3003],[74,123,140,141,821,828,1050,1067,2958,3003],[74,123,140,141,821,824,828,829,877,1050,1051,1057,1067,1068,2958,3003],[74,123,140,141,1054,1055,1056,1063,1064,1068,2958,3003],[74,123,140,141,821,825,828,877,878,1050,1051,1055,1057,1067,1068,2958,3003],[74,123,140,141,821,824,1057,1062,1063,1068,2958,3003],[74,123,140,141,821,824,827,828,829,834,873,877,1050,1053,1057,1062,1067,1068,2958,3003],[74,123,140,141,824,825,826,827,828,829,834,1050,1053,1063,1067,2958,3003],[74,123,140,141,821,824,828,829,877,1050,1051,1057,1067,1068,1108,2958,3003],[74,123,140,141,821,1050,2958,3003],[74,123,140,141,821,828,829,873,874,1057,1066,1068,1113,2958,3003],[74,123,140,141,824,827,828,834,1064,2958,3003],[74,123,140,141,821,825,1046,1047,1048,1049,1051,1107,2958,3003],[74,123,140,141,824,828,1047,1048,1049,1050,1072,1107,1108,2958,3003],[74,123,140,141,821,822,829,874,1057,1059,1066,1113,2958,3003],[74,123,140,141,821,822,828,829,873,874,1057,1058,1067,1068,2958,3003],[74,123,140,141,828,1108,2958,3003],[74,123,140,141,830,831,2958,3003],[74,123,140,141,833,835,2958,3003],[74,123,140,141,828,834,1108,2958,3003],[74,123,140,141,828,832,836,2958,3003],[74,123,140,141,821,823,824,825,827,829,1108,2958,3003],[74,123,140,141,1078,1099,1104,2958,3003],[74,123,140,141,821,828,1099,2958,3003],[74,123,140,141,1074,1094,1095,1096,1097,1102,2958,3003],[74,123,140,141,821,829,1101,1107,1108,2958,3003],[74,123,140,141,821,828,829,1099,1100,1107,1108,2958,3003],[74,123,140,141,821,828,829,1099,1101,1107,1108,2958,3003],[74,123,140,141,1074,1094,1095,1096,1097,1101,1102,2958,3003],[74,123,140,141,821,829,1093,1099,1101,1107,1108,2958,3003],[74,123,140,141,821,1101,1107,1108,2958,3003],[74,123,140,141,821,829,1099,1101,1107,1108,2958,3003],[74,123,140,141,821,824,828,829,874,1078,1079,1080,1081,1084,1089,1090,1099,1104,1113,2958,3003],[74,123,140,141,821,828,829,874,933,1084,1089,1099,1103,1104,2958,3003],[74,123,140,141,821,1099,1103,2958,3003],[74,123,140,141,1073,1075,1076,1077,1081,1082,1084,1089,1090,1092,1093,1099,1100,1103,1105,2958,3003],[74,123,140,141,821,828,1099,1103,2958,3003],[74,123,140,141,821,828,1084,1092,1099,2958,3003],[74,123,140,141,821,824,827,828,829,877,878,1084,1090,1099,1101,1104,2958,3003],[74,123,140,141,1085,1086,1087,1088,1091,1104,2958,3003],[74,123,140,141,821,824,827,828,829,834,877,878,1075,1084,1086,1090,1091,1099,1101,1104,2958,3003],[74,123,140,141,821,824,1081,1088,1090,1104,2958,3003],[74,123,140,141,821,828,829,874,877,878,1084,1090,1099,2958,3003],[74,123,140,141,821,828,875,877,878,1090,2958,3003],[74,123,140,141,821,824,827,828,829,834,873,877,878,1078,1081,1084,1090,1099,1103,1104,2958,3003],[74,123,140,141,824,825,826,827,828,829,834,1078,1084,1088,1092,1099,1103,2958,3003],[74,123,140,141,821,824,827,828,829,877,878,1078,1084,1090,1099,1101,1104,1108,2958,3003],[74,123,140,141,821,828,873,874,875,877,1082,1083,1090,1104,1113,2958,3003],[74,123,140,141,824,827,828,834,1091,2958,3003],[74,123,140,141,821,825,1073,1075,1076,1077,1098,1100,1101,1107,2958,3003],[74,123,140,141,821,1099,1101,2958,3003],[74,123,140,141,824,828,1073,1075,1076,1077,1078,1092,1099,1100,1106,2958,3003],[74,123,140,141,821,827,828,834,1078,1091,1101,1107,2958,3003],[74,123,140,141,821,826,828,829,1108,2958,3003],[74,123,140,141,822,825,828,1108,1113,2958,3003],[74,123,140,141,1173,2958,3003],[74,123,140,141,1175,2958,3003],[74,123,140,141,1171,2958,3003],[74,123,140,141,1179,2958,3003],[74,123,140,141,1177,2958,3003],[74,123,140,141,1170,2958,3003],[74,123,140,141,719,720,2958,3003],[74,123,140,141,719,720,721,722,2958,3003],[74,123,140,141,719,721,2958,3003],[74,123,140,141,719,2958,3003],[74,123,140,141,2958,3003,3029,3035],[74,123,140,141,2958,3003,3033],[74,123,140,141,2958,3003,3030,3034],[74,123,140,141,683,684,2958,3003],[74,123,140,141,1220,2958,3003],[74,123,140,141,1216,1217,1220,1228,1246,2958,3003],[74,123,140,141,1216,1218,1223,1224,1225,1227,2958,3003],[74,123,140,141,1216,1217,1218,1220,1224,1226,1229,1235,1237,1248,1250,1251,1252,1253,2958,3003],[74,123,140,141,1210,2958,3003],[74,123,140,141,1209,2958,3003],[74,123,140,141,1207,1208,2958,3003],[74,123,140,141,1207,1208,1209,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1228,1229,1231,1232,1246,1247,1248,1249,1250,1251,1252,1254,1255,1256,1257,1258,1259,1260,1261,1262,2958,3003],[74,123,140,141,1241,2958,3003],[74,123,140,141,1240,2958,3003],[74,123,140,141,1220,1224,1225,1226,1228,1229,2958,3003],[74,123,140,141,1216,2958,3003],[74,123,140,141,1221,1222,1223,1224,1225,1226,1227,1230,1233,1234,1235,1238,1239,1242,1245,2958,3003],[74,123,140,141,1213,1217,1247,2958,3003],[74,123,140,141,1243,1244,2958,3003],[74,123,140,141,1211,1226,1235,1243,2958,3003],[74,123,140,141,1220,1247,1250,1251,2958,3003],[74,123,140,141,1235,2958,3003],[74,123,140,141,1236,1237,2958,3003],[74,123,140,141,1207,1209,2958,3003],[74,123,140,141,1231,1232,2958,3003],[74,123,140,141,1207,1226,2958,3003],[74,123,140,141,1209,1220,2958,3003],[74,123,140,141,1208,2958,3003],[74,123,140,141,1215,2958,3003],[74,123,140,141,1213,1217,2958,3003],[74,123,140,141,1207,1209,1215,1216,2958,3003],[74,123,140,141,1207,1208,1209,1213,1217,1247,1248,2958,3003],[74,123,140,141,1207,1208,1209,1213,1217,1220,1246,2958,3003],[74,123,140,141,1209,1213,1218,1220,1223,1224,1226,1227,1228,1229,1230,1231,1232,1247,1249,1250,2958,3003],[74,123,140,141,1213,1220,1231,1247,2958,3003],[74,123,140,141,1218,1224,1227,1230,1231,2958,3003],[74,123,140,141,1213,1218,1220,1224,1225,1227,1228,1230,1247,2958,3003],[74,123,140,141,1218,1219,2958,3003],[74,123,140,141,1263,1456,2958,3003],[74,123,140,141,1263,1453,1454,1455,1456,1457,1458,2958,3003],[74,123,140,141,1263,2958,3003],[74,123,140,141,1263,1452,2958,3003],[74,123,140,141,1263,1452,1453,1454,1455,2958,3003],[74,123,140,141,1453,1454,2958,3003],[74,123,140,141,1452,1453,1454,2958,3003],[74,123,140,141,506,510,1156,1160,1168,1519,1520,1521,2958,3003],[74,123,140,141,1154,2958,3003],[62,74,123,140,141,1160,1168,1521,2958,3003],[74,123,140,141,506,510,1156,1160,1519,2958,3003],[74,123,140,141,506,2958,3003],[74,123,140,141,1163,2958,3003],[62,74,123,140,141,1160,1168,2396,2958,3003],[74,123,140,141,463,2958,3003],[74,123,140,141,465,466,467,468,2958,3003],[74,123,140,141,411,474,475,2958,3003],[74,123,140,141,183,184,186,198,222,337,348,456,2958,3003],[74,123,140,141,186,217,218,219,221,456,2958,3003],[74,123,140,141,186,354,356,358,359,361,456,458,2958,3003],[74,123,140,141,186,220,257,456,2958,3003],[74,123,140,141,184,186,197,198,204,210,215,336,337,338,347,456,458,2958,3003],[74,123,140,141,456,2958,3003],[74,123,140,141,193,199,218,238,333,2958,3003],[74,123,140,141,186,2958,3003],[74,123,140,141,179,193,199,2958,3003],[74,123,140,141,365,2958,3003],[74,123,140,141,362,363,365,2958,3003],[74,123,140,141,362,364,456,2958,3003],[74,123,137,140,141,238,435,453,2958,3003],[74,123,137,140,141,309,312,328,333,453,2958,3003],[74,123,137,140,141,281,453,2958,3003],[74,123,140,141,341,2958,3003],[74,123,140,141,340,341,342,2958,3003],[74,123,140,141,340,2958,3003],[68,74,123,137,140,141,179,186,198,204,210,216,218,222,223,236,237,304,334,335,348,456,460,2958,3003],[74,123,140,141,183,186,220,257,354,355,360,456,508,2958,3003],[74,123,140,141,220,508,2958,3003],[74,123,140,141,183,237,406,456,508,2958,3003],[74,123,140,141,508,2958,3003],[74,123,140,141,186,220,221,508,2958,3003],[74,123,140,141,357,508,2958,3003],[74,123,140,141,223,336,339,346,2958,3003],[62,74,123,140,141,411,2958,3003],[74,123,140,141,149,193,208,2958,3003],[74,123,140,141,193,208,2958,3003],[62,74,123,140,141,278,2958,3003],[62,74,123,140,141,199,208,411,2958,3003],[74,123,140,141,193,264,278,279,490,497,2958,3003],[74,123,140,141,263,491,492,493,494,496,2958,3003],[74,123,140,141,314,2958,3003],[74,123,140,141,314,315,2958,3003],[74,123,140,141,197,199,266,267,2958,3003],[74,123,140,141,199,273,274,2958,3003],[74,123,140,141,199,268,276,2958,3003],[74,123,140,141,273,2958,3003],[74,123,140,141,191,199,266,267,268,269,270,271,272,273,276,2958,3003],[74,123,140,141,199,266,273,274,275,277,2958,3003],[74,123,140,141,199,267,269,270,2958,3003],[74,123,140,141,267,269,272,274,2958,3003],[74,123,140,141,495,2958,3003],[74,123,140,141,199,2958,3003],[62,74,123,140,141,187,484,2958,3003],[62,74,123,140,141,166,2958,3003],[62,74,123,140,141,220,255,2958,3003],[62,74,123,140,141,220,348,2958,3003],[74,123,140,141,253,258,2958,3003],[62,74,123,140,141,254,462,2958,3003],[74,123,140,141,2652,2958,3003],[62,66,74,123,137,140,141,174,175,176,177,178,460,504,1634,2958,3003],[74,123,137,140,141,199,2958,3003],[74,123,137,140,141,198,203,284,301,343,344,348,403,405,456,457,2958,3003],[74,123,140,141,236,345,2958,3003],[74,123,140,141,460,2958,3003],[74,123,140,141,185,2958,3003],[62,74,123,140,141,190,193,408,424,426,2958,3003],[74,123,140,141,149,193,408,423,424,425,507,2958,3003],[74,123,140,141,417,418,419,420,421,422,2958,3003],[74,123,140,141,419,2958,3003],[74,123,140,141,423,2958,3003],[74,123,140,141,208,372,373,375,2958,3003],[62,74,123,140,141,199,366,367,368,369,374,2958,3003],[74,123,140,141,372,374,2958,3003],[74,123,140,141,370,2958,3003],[74,123,140,141,371,2958,3003],[62,74,123,140,141,208,254,462,2958,3003],[62,74,123,140,141,208,461,462,2958,3003],[62,74,123,140,141,208,462,2958,3003],[74,123,140,141,301,302,2958,3003],[74,123,140,141,302,2958,3003],[74,123,137,140,141,457,462,2958,3003],[74,123,140,141,331,2958,3003],[74,122,123,140,141,330,2958,3003],[74,123,140,141,193,199,205,207,309,322,326,328,405,408,445,446,453,457,2958,3003],[74,123,140,141,199,248,270,2958,3003],[74,123,140,141,309,320,323,328,2958,3003],[62,74,123,140,141,190,193,309,312,328,331,365,412,413,414,415,416,427,428,429,430,431,432,433,434,508,2958,3003],[74,123,140,141,190,193,218,309,316,317,318,321,322,2958,3003],[74,123,140,141,155,199,218,320,327,408,409,453,2958,3003],[74,123,140,141,324,2958,3003],[74,123,137,140,141,149,187,199,203,213,245,246,249,301,304,369,403,404,445,456,457,458,460,508,2958,3003],[74,123,140,141,190,191,193,2958,3003],[74,123,140,141,309,2958,3003],[74,122,123,140,141,218,245,246,303,304,305,306,307,308,457,2958,3003],[74,123,140,141,328,2958,3003],[74,122,123,140,141,192,193,203,207,243,309,316,317,318,319,320,323,324,325,326,327,446,2958,3003],[74,123,137,140,141,243,244,316,457,458,2958,3003],[74,123,140,141,218,246,301,304,309,405,457,2958,3003],[74,123,137,140,141,456,458,2958,3003],[74,123,137,140,141,155,453,457,458,2958,3003],[74,123,137,140,141,149,179,193,198,205,207,210,213,220,240,245,246,247,248,249,284,285,287,290,292,295,296,297,298,300,348,403,405,453,456,457,458,2958,3003],[74,123,137,140,141,155,2958,3003],[74,123,140,141,186,187,188,216,453,454,455,460,462,508,2958,3003],[74,123,140,141,183,184,456,2958,3003],[74,123,140,141,377,2958,3003],[74,123,137,140,141,155,166,195,361,365,366,367,368,369,375,376,508,2958,3003],[74,123,140,141,149,166,179,193,195,207,210,246,285,290,300,301,354,381,382,383,389,392,393,403,405,453,456,2958,3003],[74,123,140,141,210,216,223,236,246,304,456,2958,3003],[74,123,137,140,141,166,187,198,207,246,387,453,456,2958,3003],[74,123,140,141,407,2958,3003],[74,123,137,140,141,377,390,391,400,2958,3003],[74,123,140,141,453,456,2958,3003],[74,123,140,141,306,446,2958,3003],[74,123,140,141,207,245,348,462,2958,3003],[74,123,137,140,141,149,185,290,350,354,383,389,392,395,453,2958,3003],[74,123,137,140,141,223,236,354,396,2958,3003],[74,123,140,141,186,247,348,398,456,458,2958,3003],[74,123,137,140,141,166,369,456,2958,3003],[74,123,137,140,141,220,247,348,349,350,359,377,397,399,456,2958,3003],[68,74,123,137,140,141,245,402,460,462,2958,3003],[74,123,140,141,299,403,2958,3003],[74,123,137,140,141,149,193,196,198,199,205,207,213,222,223,236,246,249,285,287,297,300,301,348,381,382,383,384,386,388,403,405,453,462,2958,3003],[74,123,137,140,141,155,223,389,394,400,453,2958,3003],[74,123,140,141,226,227,228,229,230,231,232,233,234,235,2958,3003],[74,123,140,141,240,291,2958,3003],[74,123,140,141,293,2958,3003],[74,123,140,141,291,2958,3003],[74,123,140,141,293,294,2958,3003],[74,123,137,140,141,197,198,199,203,204,457,2958,3003],[74,123,137,140,141,149,185,187,205,209,245,248,249,283,403,453,458,460,462,2958,3003],[74,123,137,140,141,149,166,189,196,197,207,209,246,401,446,452,457,2958,3003],[74,123,140,141,316,2958,3003],[74,123,140,141,317,2958,3003],[74,123,140,141,199,210,445,2958,3003],[74,123,140,141,318,2958,3003],[74,123,140,141,192,2958,3003],[74,123,140,141,194,206,2958,3003],[74,123,137,140,141,194,198,205,2958,3003],[74,123,140,141,201,206,2958,3003],[74,123,140,141,202,2958,3003],[74,123,140,141,194,195,2958,3003],[74,123,140,141,194,250,2958,3003],[74,123,140,141,194,2958,3003],[74,123,140,141,196,240,289,2958,3003],[74,123,140,141,288,2958,3003],[74,123,140,141,193,195,196,2958,3003],[74,123,140,141,196,286,2958,3003],[74,123,140,141,193,195,2958,3003],[74,123,140,141,245,348,2958,3003],[74,123,140,141,445,2958,3003],[74,123,137,140,141,166,205,207,211,245,348,402,405,408,409,410,436,437,440,444,446,453,457,2958,3003],[74,123,140,141,259,262,264,265,278,279,2958,3003],[62,74,123,140,141,176,178,208,438,439,2958,3003],[62,74,123,140,141,176,178,208,438,439,443,2958,3003],[74,123,140,141,332,2958,3003],[74,123,140,141,218,239,244,245,309,310,311,312,313,315,328,329,331,334,402,405,456,458,2958,3003],[74,123,140,141,278,2958,3003],[74,123,137,140,141,283,453,2958,3003],[74,123,140,141,283,2958,3003],[74,123,137,140,141,205,251,280,282,284,402,453,460,462,2958,3003],[74,123,140,141,259,260,261,262,264,265,278,279,461,2958,3003],[68,74,123,137,140,141,149,166,194,195,207,213,245,246,249,348,400,401,403,453,456,457,460,2958,3003],[74,123,140,141,190,193,200,2958,3003],[74,123,140,141,244,246,378,381,2958,3003],[74,123,140,141,244,379,447,448,449,450,451,2958,3003],[74,123,137,140,141,240,456,2958,3003],[74,123,137,140,141,2958,3003],[74,123,140,141,243,328,2958,3003],[74,123,140,141,242,2958,3003],[74,123,140,141,244,297,2958,3003],[74,123,140,141,241,243,456,2958,3003],[74,123,137,140,141,189,244,378,379,380,453,456,457,2958,3003],[62,74,123,140,141,193,199,277,2958,3003],[62,74,123,140,141,191,2958,3003],[74,123,140,141,181,182,2958,3003],[62,74,123,140,141,187,2958,3003],[62,74,123,140,141,193,263,2958,3003],[62,68,74,123,140,141,245,249,460,462,2958,3003],[74,123,140,141,187,484,485,2958,3003],[62,74,123,140,141,258,2958,3003],[62,74,123,140,141,149,166,185,252,254,256,257,462,2958,3003],[74,123,140,141,193,220,457,2958,3003],[74,123,140,141,193,385,2958,3003],[62,74,123,135,137,140,141,149,183,185,258,356,460,461,2958,3003],[62,74,123,140,141,174,175,176,177,178,460,505,1634,2958,3003],[62,63,64,65,66,74,123,140,141,2958,3003],[74,123,128,140,141,2958,3003],[74,123,140,141,351,352,353,2958,3003],[74,123,140,141,351,2958,3003],[62,66,74,123,137,139,140,141,149,173,174,175,176,177,178,179,185,213,218,395,423,458,459,462,505,1634,2958,3003],[74,123,140,141,470,2958,3003],[74,123,140,141,472,2958,3003],[74,123,140,141,476,2958,3003],[74,123,140,141,2653,2958,3003],[74,123,140,141,478,2958,3003],[74,123,140,141,480,481,482,2958,3003],[74,123,140,141,486,2958,3003],[67,74,123,140,141,464,469,471,473,477,479,483,487,489,499,500,502,506,507,508,509,2958,3003],[74,123,140,141,488,2958,3003],[74,123,140,141,498,2958,3003],[74,123,140,141,254,2958,3003],[74,123,140,141,501,2958,3003],[74,122,123,140,141,244,378,379,381,447,448,450,451,503,505,2958,3003],[74,123,140,141,173,2958,3003],[74,123,140,141,616,617,2958,3003],[74,123,140,141,173,2958,3003,3043,3044,3045],[74,123,140,141,155,173,2958,3003,3043],[74,123,140,141,612,2958,3003],[74,123,124,135,140,141,155,517,518,598,611,2958,3003],[74,123,140,141,614,2958,3003],[74,123,140,141,613,2958,3003],[74,123,140,141,635,2958,3003],[74,123,140,141,633,635,2958,3003],[74,123,140,141,624,632,633,634,636,638,2958,3003],[74,123,140,141,622,2958,3003],[74,123,140,141,625,630,635,638,2958,3003],[74,123,140,141,621,638,2958,3003],[74,123,140,141,625,626,629,630,631,638,2958,3003],[74,123,140,141,625,626,627,629,630,638,2958,3003],[74,123,140,141,622,623,624,625,626,630,631,632,634,635,636,638,2958,3003],[74,123,140,141,638,2958,3003],[74,123,140,141,620,622,623,624,625,626,627,629,630,631,632,633,634,635,636,637,2958,3003],[74,123,140,141,620,638,2958,3003],[74,123,140,141,625,627,628,630,631,638,2958,3003],[74,123,140,141,629,638,2958,3003],[74,123,140,141,630,631,635,638,2958,3003],[74,123,140,141,623,633,2958,3003],[74,123,140,141,155,2958,3003],[74,123,140,141,1161,2958,3003],[74,123,140,141,1162,2958,3003],[74,123,140,141,2432,2958,3003],[74,123,140,141,2138,2958,3003],[74,123,140,141,2099,2958,3003],[74,123,140,141,2139,2958,3003],[74,123,140,141,1984,2080,2136,2137,2958,3003],[74,123,140,141,2099,2100,2138,2139,2958,3003],[74,123,140,141,2081,2082,2083,2084,2085,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2958,3003],[62,74,123,140,141,2105,2140,2958,3003],[62,74,123,140,141,2105,2958,3003],[62,74,123,140,141,2100,2958,3003],[62,74,123,140,141,2140,2958,3003],[62,74,123,140,141,2108,2958,3003],[74,123,140,141,2128,2129,2130,2131,2132,2133,2134,2958,3003],[74,123,140,141,2105,2958,3003],[74,123,140,141,2142,2958,3003],[74,123,140,141,1726,2097,2098,2103,2105,2127,2135,2140,2141,2143,2151,2958,3003],[74,123,140,141,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2958,3003],[74,123,140,141,2105,2138,2958,3003],[74,123,140,141,2084,2085,2097,2098,2101,2103,2136,2958,3003],[74,123,140,141,2101,2102,2104,2136,2958,3003],[62,74,123,140,141,2098,2136,2138,2958,3003],[74,123,140,141,2101,2136,2958,3003],[62,74,123,140,141,2097,2098,2127,2135,2958,3003],[62,74,123,140,141,2100,2101,2102,2136,2139,2958,3003],[74,123,140,141,2144,2145,2146,2147,2148,2149,2150,2958,3003],[74,123,140,141,2176,2958,3003],[62,74,123,140,141,2176,2177,2178,2179,2180,2181,2958,3003],[62,74,123,140,141,2176,2177,2178,2179,2958,3003],[62,74,123,140,141,2176,2958,3003],[62,74,123,140,141,1661,2958,3003],[74,123,140,141,1661,1662,1663,1664,1667,1668,1669,1670,1671,1672,1673,1676,1677,2958,3003],[74,123,140,141,1661,2958,3003],[74,123,140,141,1665,1666,2958,3003],[62,74,123,140,141,1658,1661,2958,3003],[74,123,140,141,1655,1656,1658,2958,3003],[74,123,140,141,1651,1654,1656,1658,2958,3003],[74,123,140,141,1655,1658,2958,3003],[62,74,123,140,141,1646,1647,1648,1651,1652,1653,1655,1656,1657,1658,2958,3003],[74,123,140,141,1648,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,2958,3003],[74,123,140,141,1655,2958,3003],[74,123,140,141,1649,1655,1656,2958,3003],[74,123,140,141,1649,1650,2958,3003],[74,123,140,141,1654,1656,1657,2958,3003],[74,123,140,141,1654,2958,3003],[74,123,140,141,1646,1651,1654,1656,1657,2958,3003],[62,74,123,140,141,1651,1654,1655,1656,2958,3003],[74,123,140,141,1674,1675,2958,3003],[74,123,140,141,669,2958,3003],[74,123,140,141,661,663,669,2958,3003],[74,123,140,141,662,663,2958,3003],[74,123,140,141,663,669,673,2958,3003],[74,123,140,141,662,2958,3003],[74,123,140,141,663,669,2958,3003],[74,123,140,141,661,662,663,668,2958,3003],[74,123,140,141,661,663,2958,3003],[74,123,140,141,662,663,675,2958,3003],[74,123,140,141,664,665,666,2958,3003],[74,123,140,141,667,2958,3003],[74,123,140,141,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1280,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1333,1334,1335,1336,1337,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1383,1384,1385,1387,1396,1398,1399,1400,1401,1402,1403,1405,1406,1408,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,2958,3003],[74,123,140,141,1309,2958,3003],[74,123,140,141,1265,1268,2958,3003],[74,123,140,141,1267,2958,3003],[74,123,140,141,1267,1268,2958,3003],[74,123,140,141,1264,1265,1266,1268,2958,3003],[74,123,140,141,1265,1267,1268,1425,2958,3003],[74,123,140,141,1268,2958,3003],[74,123,140,141,1264,1267,1309,2958,3003],[74,123,140,141,1267,1268,1425,2958,3003],[74,123,140,141,1267,1433,2958,3003],[74,123,140,141,1265,1267,1268,2958,3003],[74,123,140,141,1277,2958,3003],[74,123,140,141,1300,2958,3003],[74,123,140,141,1321,2958,3003],[74,123,140,141,1267,1268,1309,2958,3003],[74,123,140,141,1268,1316,2958,3003],[74,123,140,141,1267,1268,1309,1327,2958,3003],[74,123,140,141,1267,1268,1327,2958,3003],[74,123,140,141,1268,1368,2958,3003],[74,123,140,141,1268,1309,2958,3003],[74,123,140,141,1264,1268,1386,2958,3003],[74,123,140,141,1264,1268,1387,2958,3003],[74,123,140,141,1409,2958,3003],[74,123,140,141,1393,1395,2958,3003],[74,123,140,141,1404,2958,3003],[74,123,140,141,1393,2958,3003],[74,123,140,141,1264,1268,1386,1393,1394,2958,3003],[74,123,140,141,1386,1387,1395,2958,3003],[74,123,140,141,1407,2958,3003],[74,123,140,141,1264,1268,1393,1394,1395,2958,3003],[74,123,140,141,1266,1267,1268,2958,3003],[74,123,140,141,1264,1268,2958,3003],[74,123,140,141,1265,1267,1387,1388,1389,1390,2958,3003],[74,123,140,141,1309,1387,1388,1389,1390,2958,3003],[74,123,140,141,1387,1389,2958,3003],[74,123,140,141,1267,1388,1389,1391,1392,1396,2958,3003],[74,123,140,141,1264,1267,2958,3003],[74,123,140,141,1268,1411,2958,3003],[74,123,140,141,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1310,1311,1312,1313,1314,1315,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,2958,3003],[74,123,140,141,1397,2958,3003],[74,123,140,141,640,641,2958,3003],[74,123,140,141,639,642,2958,3003],[74,123,140,141,765,766,767,769,770,771,772,773,2958,3003],[74,123,140,141,768,2958,3003],[74,123,140,141,775,2958,3003],[74,123,140,141,778,784,786,787,788,2958,3003],[74,123,140,141,777,2958,3003],[74,123,140,141,774,2958,3003],[74,123,140,141,155,781,782,783,2958,3003],[74,123,140,141,781,785,2958,3003],[74,123,140,141,781,2958,3003],[74,123,140,141,776,777,785,788,789,790,2958,3003],[74,123,140,141,774,783,791,792,795,801,2958,3003],[74,123,140,141,791,798,799,800,2958,3003],[74,123,140,141,791,799,2958,3003],[74,123,140,141,155,783,797,2958,3003],[74,123,140,141,797,2958,3003],[74,123,140,141,774,783,792,806,2958,3003],[74,123,140,141,155,781,783,791,792,793,795,796,797,805,2958,3003],[74,123,140,141,155,781,783,794,795,797,2958,3003],[74,123,140,141,774,783,791,792,793,794,795,796,797,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,817,818,2958,3003],[74,123,140,141,774,781,791,2958,3003],[74,123,140,141,791,2958,3003],[74,123,140,141,797,803,806,2958,3003],[74,123,140,141,155,783,792,793,795,796,2958,3003],[74,123,140,141,155,775,782,2958,3003],[74,123,140,141,783,791,793,2958,3003],[74,123,140,141,781,794,795,2958,3003],[74,123,140,141,781,795,2958,3003],[74,123,140,141,781,791,794,795,2958,3003],[74,123,140,141,781,794,2958,3003],[74,123,140,141,795,812,814,815,816,2958,3003],[74,88,92,123,140,141,166,2958,3003],[74,88,123,140,141,155,166,2958,3003],[74,83,123,140,141,2958,3003],[74,85,88,123,140,141,163,166,2958,3003],[74,123,140,141,143,163,2958,3003],[74,83,123,140,141,173,2958,3003],[74,85,88,123,140,141,143,166,2958,3003],[74,80,81,84,87,123,134,140,141,155,166,2958,3003],[74,88,95,123,140,141,2958,3003],[74,80,86,123,140,141,2958,3003],[74,88,109,110,123,140,141,2958,3003],[74,84,88,123,140,141,158,166,173,2958,3003],[74,109,123,140,141,173,2958,3003],[74,82,83,123,140,141,173,2958,3003],[74,88,123,140,141,2958,3003],[74,82,83,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,123,140,141,2958,3003],[74,88,103,123,140,141,2958,3003],[74,88,95,96,123,140,141,2958,3003],[74,86,88,96,97,123,140,141,2958,3003],[74,87,123,140,141,2958,3003],[74,80,83,88,123,140,141,2958,3003],[74,88,92,96,97,123,140,141,2958,3003],[74,92,123,140,141,2958,3003],[74,86,88,91,123,140,141,166,2958,3003],[74,80,85,88,95,123,140,141,2958,3003],[74,83,88,109,123,140,141,171,173,2958,3003],[74,123,140,141,690,738,2958,3003],[74,123,140,141,658,2958,3003],[74,123,134,135,137,138,139,140,141,143,155,163,166,172,173,639,658,659,660,670,671,672,674,676,678,680,681,682,686,687,688,689,690,2958,3003],[74,123,140,141,658,659,660,677,2958,3003],[74,123,140,141,660,2958,3003],[74,123,140,141,679,2958,3003],[74,123,140,141,685,2958,3003],[74,123,140,141,670,681,690,2958,3003],[74,123,140,141,670,690,2958,3003],[74,123,140,141,728,733,2958,3003],[74,123,140,141,657,714,738,2958,3003],[74,123,140,141,647,650,652,653,692,693,694,696,697,700,701,713,714,725,727,2958,3003],[74,123,140,141,696,707,708,714,2958,3003],[74,123,140,141,696,697,704,714,2958,3003],[74,123,140,141,650,652,696,697,700,714,2958,3003],[74,123,140,141,678,2958,3003],[74,123,140,141,650,657,696,697,700,709,714,2958,3003],[74,123,140,141,690,736,738,2958,3003],[74,123,126,135,140,141,155,650,652,657,690,694,696,697,700,701,704,705,706,709,712,713,714,725,734,735,738,2958,3003],[74,123,140,141,678,696,697,700,714,2958,3003],[74,123,140,141,696,707,708,709,714,2958,3003],[74,123,140,141,678,696,701,702,703,714,2958,3003],[74,123,126,135,140,141,155,650,652,657,678,690,694,696,697,700,701,702,703,704,705,706,707,708,709,712,713,714,725,734,735,736,737,738,2958,3003],[74,123,140,141,647,650,652,657,678,694,696,697,700,701,702,703,704,705,707,708,709,712,714,715,716,717,718,723,2958,3003],[74,123,140,141,650,652,696,697,700,701,707,708,709,714,716,2958,3003],[74,123,140,141,647,648,649,652,653,656,2958,3003],[74,123,140,141,597,2958,3003],[74,123,140,141,601,602,2958,3003],[74,123,140,141,599,600,601,603,604,609,2958,3003],[74,123,140,141,600,601,2958,3003],[74,123,140,141,609,2958,3003],[74,123,140,141,610,2958,3003],[74,123,140,141,601,2958,3003],[74,123,140,141,599,600,601,604,605,606,607,608,2958,3003],[74,123,140,141,599,600,611,2958,3003],[74,123,140,141,588,2958,3003],[74,123,140,141,588,591,2958,3003],[74,123,140,141,523,583,586,588,589,590,591,592,593,594,595,596,2958,3003],[74,123,140,141,519,521,591,2958,3003],[74,123,140,141,588,589,2958,3003],[74,123,140,141,520,588,590,2958,3003],[74,123,140,141,521,523,525,526,527,528,2958,3003],[74,123,140,141,523,525,527,528,2958,3003],[74,123,140,141,523,525,527,2958,3003],[74,123,140,141,520,523,525,526,528,2958,3003],[74,123,140,141,519,521,522,523,524,525,526,527,528,529,530,583,584,585,586,587,2958,3003],[74,123,140,141,519,521,522,525,2958,3003],[74,123,140,141,521,522,525,2958,3003],[74,123,140,141,525,528,2958,3003],[74,123,140,141,519,520,522,523,524,526,527,528,2958,3003],[74,123,140,141,519,520,521,525,588,2958,3003],[74,123,140,141,525,526,527,528,2958,3003],[74,123,140,141,527,2958,3003],[74,123,140,141,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,2958,3003],[74,123,140,141,2387,2388,2958,3003],[74,123,140,141,2387,2958,3003]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"dc0a7f107690ee5cd8afc8dbf05c4df78085471ce16bdd9881642ec738bc81fe","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"2e07abf27aa06353d46f4448c0bbac73431f6065eef7113128a5cd804d0c384d","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"42bc0e1a903408137c3df2b06dfd7e402cdab5bbfa5fcfb871b22ebfdb30bd0b","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"2f4e6b4d39426a1b85ecf4bdeb9dddbf4d9b3397d95d8555d46f925c9519ec7d","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"89d5d28d4f57e000b836ac273079be1b75710e28ce14750d081fb420d37e2ca5","impliedFormat":1},{"version":"fd4e24ccff3966390600d7f5d6aa1fed5a512e92ada735ea5fbc933d313ad3d3","impliedFormat":1},{"version":"b7cddfe1aa6b86b5fad3c9ccb30d05b3ccb165aebbf112f48d2d8a5f69dd98b1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"bd2c7ada3dee03653d3f601011d30072194bc3970cd93208f9588fbdc0c69347","impliedFormat":1},{"version":"e480da45d32313e7174b265674da504f075f59ef326852f0c5a5d863b438ae85","impliedFormat":1},{"version":"ad54850f61fcf5d014e11be80d2f46fea9265cfa7e77456da876f7833ef81769","impliedFormat":1},{"version":"6f7c9e8bd2b5b6a080b07080065f94900bd3c7e5ebbd3047bc33fcce2fab1dd8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"da5950ee2a90721df6f3fba45f5d05308f7e4c35835392215dd2cd404505e2de","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"f42d5fed19610d485c646a0c430e768115567d078c7fc855c57b0c578b3d6cd3","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"d5630f2ad9b4541e5ce891648121022f9412ecdca1820baa1f0104f70fd7eff7","impliedFormat":1},{"version":"4d15375ab13497104bc8fe56fdef2b5fd6853f29255737d23a33fa306ff7fd69","impliedFormat":1},{"version":"2cd3fc1d0d6a1e85baffd2d4f50f5efb192b5446eef567e97c94765402f0aad4","impliedFormat":1},{"version":"e4cbf2f1e89ecccaddd2c045e600ae41b732295953fb06247c7dcbc2d281ed30","impliedFormat":1},{"version":"6dcedaef57dff0d79a05ab0ab602cde74db803d1e765468bf91263786a383e1b","impliedFormat":1},{"version":"8c1697d90c394a6fd955b98eae01238eff628e129b987a68aea10f898a48e7da","impliedFormat":1},{"version":"7580e62139cb2b44a0270c8d01abcbfcba2819a02514a527342447fa69b34ef1","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"d10d63718e1646c2279e3b33831f82c60e31f622b2b7020f1196409ca4c09242","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"a22dd55aa4d39906252000ab8e8a1b83b195eef7f4274eb51e457c1f11cf6580","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"612d9da66bb046a9c1e2e8d026245ded881fc4b9f98cbfae714415d57ee0ae0b","impliedFormat":1},{"version":"32c2ad9494dad5d11b0564a619fee18f388db6c1e9e2cd3c360b3122549691eb","impliedFormat":1},{"version":"6c301d40aec56a74ec7bd7324e31a728dadf9bfba3e96def02938d3d973534ec","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"25a5f6fd3a2243c859eddc99ab5fba11d970af2fe7a5df9c32b7668f76f97b01","impliedFormat":1},{"version":"8d207e1f9d2c30d6f77dfa693f3827c3fbf0d89240297e10bdfe1041d433df68","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"273782b8454e78f6a8b30d2cfbf6860499c930595095fcc1689637115f0eddda","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"7029e566b8df176f703fb59fd437a38670c7a0e02c58b2d66dfb5b2e2b2defdb","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"e9f147ecca73d9346a4c073432843c159ccbe50bdcb678a78f6da10eae2cecf4","impliedFormat":1},{"version":"de061f7d72bd65c06fc1419f841dfdcb29a8e22fe6fa527d1e6eb20b897d4de0","impliedFormat":1},{"version":"663beafc2446079574570cba86e9b15f986f908ddb1b01274509970126fee945","impliedFormat":1},{"version":"a3102887d5058bf4cb5b37fa6964c09e9527c42053b3b5c642b89878620748de","impliedFormat":1},{"version":"0aaaa1727edd29673d85c9b26d7ca4d54e5407a48586903c51b48b7f7d196f61","impliedFormat":1},{"version":"d35bca0b261bff02635758c48e8ab99c61c420d0dfabbcf467e847171d876b7d","impliedFormat":1},{"version":"3bc12c40d90c342ff88a3d876996c555ed5cbee5fe8c3308a240b321f401ee46","impliedFormat":1},{"version":"ba130768aae855a5477e9e148e5c879548e6e7ccbcc56fd1934c8a18ea5b7569","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"b499af2054a037a162b3b72cd886f48bbf32a3502c865c6e29fac7d2ab3ce0b5","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"48773ca557b0319c2ee62ae249cf52a81709e8be139920d6479a66274de7c4ed","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"4cceef18d7f088e797a463e90b7a9dad10c6bc667724b7686e3e740ae00122be","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"cc1954b539604b1e562319119ac7e888172208b32ca873f9a357a92c826bd046","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"706dd95827e7ebaabda91d5db2b755233e0952d98570e9c032b0f066a15c1177","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"990b8fad2327b77e6920cc792af320e8867e68f02ce849b12c0a6ab9a1aebb09","impliedFormat":1},{"version":"5eb8cd1cb0c9143d74a8190b577c522720878c31aef67d866fcd29973f83e955","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"a6805fcafed712aea7759f8bc731014f9d22738c1d6ef9d43b8091d1d48346d5","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"142617b3cdf902b69c6464c9fbd942b60ab3e733ca18c032b19e0f7e2adbefe8","impliedFormat":1},{"version":"0b603555f1881f87256ffd6344d3e3ed6d466c2e701eabf381f28be8c2125892","impliedFormat":1},{"version":"897e4f7662488e3ecc79e743bdd3b78f13bdb69a97851afa5b440c4211e32ea9","impliedFormat":1},{"version":"e2e1c6d3b2d93add5200bd7bc1a8cccb4e446836b2111ece45db8683a2c765de","impliedFormat":1},{"version":"251b03d5cd243854ce870d9a9a39f491faf69898c5d6b5eee28cc7649c57417b","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"2c4de79f406d137390608e8c0a44fba2ff8e00bacfcae7c9d1781fef10e9440d","impliedFormat":1},{"version":"07ba23a10465791be5d22deaf5ef7de7658774ddff53721e5ea17fedea1bc721","impliedFormat":1},{"version":"dca8c645c5afeb03b1ecedbf16323f33e7d0afaa6256c8e047e6e38087a97f53","impliedFormat":1},{"version":"775f181bd4a533d6f8b5e55ec1d9f1624559720ae8a70e9432258da26b38d27c","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"9109a1291dd4b9f1541bea81ee11c247a2ca9e1ea89f87f13aa1811c3c069616","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"cd8ce8d68567f62dd580b3c3c37777ac3f5b81944c7417f5ea83030eab533385","impliedFormat":1},{"version":"e374d1eaa05b7dc38580062942ac8351ce79cbe11f6dbce4946a582a5680582d","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49af4b52f0d4d2304c5f2c6fe5fab3e153e0acc38830d0202821b877c097dd02","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"e68b8e5a1df7c1be2bc105141456ecba70215806e1c28bfbc5c12bfce4be6e68","impliedFormat":1},{"version":"511c8f02329808d47d00b859c532ae9115590048b17325a946c74dac48428650","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"b5f9e66625783eefcbe3d2da074b2e7ba2066d61ce3fc6ef4f22805ad946cab4","impliedFormat":1},{"version":"e37115962d284b9f7a37c2bdd2add50f88365dde41f5e0ff591ffc48a8ec7575","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"f89488602bec98a142072fae7ea5ba99431a569ff580c64b7be39896474799d8","impliedFormat":1},{"version":"bbbc47961f39a57df103cf4ca3bb8f8732b4b6678a18225a0aa76d59c466956c","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"2ffb043dc5163458e473b7010859f86e01dc4edffcae0a93d885d028b426a546","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"04b7b2e0832dfd3c31e81df3975e8d8fda28e7ff999b0aa2932608a8f6661d5c","impliedFormat":1},{"version":"ca2d34c6ed5cbd3070b8b6f32f42ae54adcc6499c1e4b99f0a5798b3f27cc653","impliedFormat":1},{"version":"9ec68995e66dd6b9dac834bf5ae85fde802714ea2e82151a5d1d53ef01b463ef","impliedFormat":1},{"version":"5c4d626b4902f2ef8a1cc146d761d276cef988016dc674e3b98fbad70e64bc9f","impliedFormat":1},{"version":"fdfaa0aad899524962e2955287b5b991ffe3be50f64e02eb60c933ca44644a94","impliedFormat":1},{"version":"53c972a0f9bc3a4ec70fff7314123ea8cfcf75b3703046f767d2dc1eea87b2fb","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"7303b45138d2511035056a5901a1490ebdcbf055cbb1276f8629c5121cbe733e","impliedFormat":1},{"version":"27f874cd5327507eeff699a74567f60c1215b94509f4308633a7b01922471ed2","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"2c6cf04bc525caf6546e859e8ef10bfb9573837ec0bc5ec7b53a7b1b8ca72781","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"87cc05fe13108f02e12da7e3efd8e360fef78d96a0c9e11408ea1b1b9fb3e03d","impliedFormat":1},{"version":"1abbf67c218d23c2ce76887caac2df6c7dab3d97ba2b65348432b876f510002a","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"8bd496cf710d4873d15e4891a5dbf945673e3321ca74cf75187e347fd5ed295e","impliedFormat":1},{"version":"a6dba407fc287f1e25454e75028c91bbc00675f2d1c4e8b3edcc36c08611a486","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"c0723195c85e19656d6b5b9fdb81d3f3403c1ae4679e722c6ea058c516b38d12","impliedFormat":1},{"version":"186eea74805194f04e41038fc5eca653788b9dedbab7c2d7d17e10139622dd92","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"1594da19968752a22b2ac48c2d0e60575700e745c577a8a4a676b841238ad5bb","impliedFormat":1},{"version":"e0cee12109e0a10a4c3d6769fcc7644b7c1ea7f52365bea51728f5af29f8a137","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"3536968defef8a75514f547ead5e2e9c1e984820290ec9b00c5fdfb6ef786535","impliedFormat":1},{"version":"d83773870080c30a230e322ce13a9c6f3398e8dacea4ea8a83e26370f3bac23e","impliedFormat":1},{"version":"dcfeaf98d66314fec29a9076c4290e45d0b196a65827becc19138e9c7b855f37","impliedFormat":1},{"version":"6849fe9210fe4946d5f085bfed36758f33dc6ae15a751338d178dd4daa017c46","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"ffae4e1e06aa848a1e4bcef162cd1c48e5909b26223515981310af9c036bdfc7","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"34e16eb7c31768a11a08aebcfb3d70d7b8f0b016197e98d8419e566ceae6d6c8","impliedFormat":1},{"version":"f94ec1f7e4b709d26960306c9082a7a1b728a6e13089346aa48ba57c74cbf47e","impliedFormat":1},{"version":"9a11cb4033405e96c247cd5aa29790212aaffdd127869e8a5219103f0b389fd5","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"aff5213585cb72e94054dfe17250ff315f3569b3919d1ef1ad235f37c4ee894e","impliedFormat":1},{"version":"fb2ea35e1be6388d722d7725e2b49c697d34d9c890c3b96758faaeb86d35cef8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"456006a6975b26c0a1785feddae165f6d307e2d601ffde27e21fc4a790e448a4","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"1fe0d18b111e1145a7e7601855bccd4ca20f24e3b9a5aba6bb1fa9d1a7059170","impliedFormat":1},{"version":"5632c3c26d420c063eebe64c45b1248b9492a67bf44f1d0c57e9dc8f6cf449bb","impliedFormat":1},{"version":"0df5aa619ab12993a39ea6dae062ee46eadbb4d738916460e636ada52bced75b","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"10ab7be91f87ebe8916b62cf28af2e45b5601fc7b0e311adf838f912c6b31dd8","impliedFormat":1},{"version":"bc636fbc08e0979ceb7eb0731a33000283d77a33b62e1f71ee65be50394e40ba","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"75bbd3be047d539988a0ff0b56384ef7a6a25f3b676ad96bee547d44c31622a7","impliedFormat":1},{"version":"42960001a776b089ade681ab5cfddc936e0afb0615133ec1841f3dee89d3e1bf","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"da47712b394d944328245482603bc6f416d3949b67c9392279caab595076b510","affectsGlobalScope":true,"impliedFormat":1},{"version":"37d0071d8f0a06dc55c2c5e0ec3391affd4fd107c53410bf358196ec0bf3923f","impliedFormat":1},{"version":"b213dad76ca37fd552274c9499056e1c0d9c1bd38a55bb7f68b22ba6b84c3ad7","impliedFormat":1},{"version":"56ccb49443bfb72e5952f7012f0de1a8679f9f75fc93a5c1ac0bafb28725fc5f","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"19df3488557c2fc9b4d8f0bac0fd20fb59aa19dec67c81f93813951a81a867f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b25350193e103ae90423c5418ddb0ad1168dc9c393c9295ef34980b990030617","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"5a49adaef698b7ad7e6127949fa1b0bbd3d46b7cbd11c54e392a4dcdd51f5190","impliedFormat":1},{"version":"96171c03c2e7f314d66d38acd581f9667439845865b7f85da8df598ff9617476","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"2489bf04d77dc025ba67f49f1a56eb24b9db477d5ff88123d887e163ed1776aa","impliedFormat":1},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"0b77b819b5417775fccb20c678293cf614c054a5b1a65421a5b933a9124ba998","impliedFormat":1},{"version":"e1f6076688a95bd82deaac740fccbe3cdea0d8a22057cccc9c5bce4398bdd33b","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"b1f1d57fde8247599731b24a733395c880a6561ec0c882efaaf20d7df968c5af","impliedFormat":1},{"version":"6715dc4eb59c8ea9abe2b78c235ed331dc710a06fe56798868dbc4d40cd1b707","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"5a3ea721d03a361ccbdd7390ccd75f6e84cbca3a3f01f4b331ecc9af31890c49","impliedFormat":1},{"version":"e7dfaee4af38d45b1cab8a1ee0b3bc1f85ddcf64545ed391d675d78ae6526274","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8daa443eaf9a27fd382cc1f8ebe30330c0f4d89511cfb469166874806751d35","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"07ed3ddab975995eea41b22f3010506fb9f5fb301d04820b07d7a1aee5477d7c","impliedFormat":1},{"version":"969d8b0965849f4bae7cab0ba90bd1e1220e95999c2c6f01117fa7500901c017","impliedFormat":1},{"version":"6ec840ee5e2bc103f557fe38b1d585ee250540468713d7634ee066de372bf332","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"e297c0a524edee7677939122f90027bfbe5f2698939d9a85728e5044b39c7124","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"b62381cae176db34f003cc6172ee8f3e0122014889d66391aa73698105cf4934","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"41eb514d9ce0a6e87957f08a4b7af70d93f87637f37dee706e2d92a6601c25a9","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"7bd01f0f28cd3aeb2046274d85208e245965f6f2948edf4f7b2057bcf9f22ccc","impliedFormat":99},{"version":"d2f2cf2b8cc92bea913cda4a076e0f790b23a21e84f989d12f0116a7fe3906e0","impliedFormat":99},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b20bc288ee49989c95b20847fc93b96bf61cc0845598897a6a53a967dd7d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},{"version":"b74e4f36fa227c5a93207eefa06f673eb48ccdb65ce5387eb159188ebf474211","affectsGlobalScope":true},"7b550dda9686c16f36a17bf9051d5dbf31e98555b30d114ac49fc49a1e712651",{"version":"8dc29269f669320b2fc499e9175aa1ee855a4f006ccaf2a8e6f85ad2de1ba9df","impliedFormat":99},{"version":"4619213479ced58d78ec8b392a3d18868853b18d38f8eaece2d6fdf93b54fe59","signature":"7d35d1a0606d8bef01f74bcc9b550636bb9b3be02ed5a8f4ed39615ed3f98413"},{"version":"fd4557bd4aaede781662d15357d9e950a54516575a5965b4cc1727f8aee7c731","signature":"435a1e418e8338be3f39614b96b81a9aa2700bc8c27bc6b98f064ff9ce17c363"},{"version":"e08660f21d0e8b367414e78706ae69a19b078fb67b0fe8c818ccaeeeedc00272","impliedFormat":1},{"version":"32727845ab5bd8a9ef3e4844c567c09f6d418fcf0f90d381c00652a6f23e7f6e","impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"40ba6c32eb732a09e4446ade5cb6ad0c147f186f9c9dc6878b90b4418ad9f6ea","impliedFormat":1},{"version":"fdd814741843f85c98281522c58f5a646590ba9019fad2efaa95987655e0611b","impliedFormat":1},{"version":"34e2806fca15db34ea3237c8f00171a057799d91f3e32b60cc2b968c5f32c1f8","impliedFormat":1},{"version":"f80a08ced8818dc99359c0acd5b3f12762e1ce53758007759b0d4e503cbf4a5e","impliedFormat":1},{"version":"37935fa7564bcc6e0bc845b766a24391098d26f7c8245d6e8ab37bc016816e94","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"0f8a263f4c8595c8a07de52e3f3927640c44386c1aa2984de9eae50d75e613b2","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"346fffde7c32da87c2196eb7494422449dc2ca82d3b4e6bf55be1d1a33ffc2b0","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8b5875e4958528042103fdd775e106a7f76bafc29709f0690df9a7d2241d52a7","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"aef26cf95593c8ace1c62c4724f9afac77bdfa756fb8a00613cd152117cb2f43","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"268fd6d9f2e807a39a6c5aa654b00f949feb63d3faa7dd0f9bba7dde9172159c","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"36eb5babc665b890786550d4a8cb20ef7105673a6d5551fbdd7012877bb26942","impliedFormat":1},{"version":"fec412ded391a7239ef58f455278154b62939370309c1fed322293d98c8796a6","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"93c3e73824ad57f98fd23b39335dbdae2db0bd98199b0dc0b9ccc60bf3c5134a","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"8324f3861a7a8db0f9d294f6a189182b2d231840cebb7f3ea5f4635773cdaf41","impliedFormat":1},{"version":"7a8ec10b0834eb7183e4bfcd929838ac77583828e343211bb73676d1e47f6f01","impliedFormat":1},{"version":"be57def447f85b42c8f509a8ce4125c1af5f26597c4a93ef617aae5e0b81fa02","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","impliedFormat":1},{"version":"ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"b16ff2e928d0ee39fa05981f80cf196e4b172115abf36406460a41cdc383749d","impliedFormat":99},{"version":"c3f00b4976e586f7e0609290ffe7e49d1c05c614ca17124fb94985e2c42e6e34","signature":"dfddc8c6a5513b6ce31cf6e7af222e0d5124641f20f75f975369839962501f17"},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"370bde134aa8c2abc926d0e99d3a4d5d5dba65c6ee65459137e4f02670cbf841","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"e3cf0611709328b449ec13f8c436712d62003620ce480139fae46ce001c2ee9f","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"9688c89e52b4dc1fb91afed9017d78610f3363bef61904c6c17e49afb969fe7a","impliedFormat":1},{"version":"faaebe543daa68bdcb0316b1788f0a32c69a5d671f82637ed59dd725debac61f","signature":"f65ce75c9085571e6321abf2bf9833709f4897e381f89e9925521833dbb7ab16"},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"16fe60bb544cfedfd2b5bb2f7d0b3957be7978706d57d9f06edc9c0c8dbdba23","impliedFormat":99},{"version":"82179358c2d9d7347f1602dc9300039a2250e483137b38ebf31d4d2e5519c181","impliedFormat":99},{"version":"c73fdf42528325dd17940937ed787b15ae3445c6a2dae1a2b74bc4d87d337ca2","impliedFormat":99},{"version":"e8e17dfef3cfa9f0847ac93dd535a9896af7fb57c1a1b164484bb1b0ee4a25d8","impliedFormat":99},{"version":"51d2ffea2d1ee4a81c775938588c1e16620281adb60cbc26579a2fc6baa10bd2","impliedFormat":99},{"version":"148debd12783ded0a60d115daeacd8136f77757ae89a05c4e18de6dd77646fd2","impliedFormat":99},{"version":"0088b02dca63c47b273a140d0a3944bdc6dc2eb765fff0ca98e3c3a2786b3a5a","impliedFormat":99},{"version":"a651d06b780fa354231f19b040cbcde484bede3218885752b4f9e9a8f72d3b5f","impliedFormat":99},{"version":"06e26f75bed4c8389a8a63f0e6d6a9068038873dc95d8d1338e8c370a0ae8bc3","impliedFormat":99},{"version":"a2155e2675fd1af52b0b70779371c28611cdd1076b29d0f68bf93b983e5ddce0","impliedFormat":99},{"version":"a413e4b0b99280e1e58f5fe7b2b585e8a9be4996df8c58585399c9e2ca8a683e","impliedFormat":99},{"version":"609ab2c225766bc0851251c1db0fd5492673e190074045d21dc5dc7c3c46d785","impliedFormat":99},{"version":"c074e054c9db79055d37d7d70131e9a3234b8186773b3edb617c13f80bcf8774","impliedFormat":99},{"version":"7d3e062a778b8f5ea4f0cac7e925e31f88e6739812ebc5f827474324a4048f14","impliedFormat":99},{"version":"7f3857dc5cfe1e5e977edb14e931d9939a952e8e41997263a927f8f0299ea652","impliedFormat":99},{"version":"3559624d0102d10d7765c292c60ccbc229541534db32061e06df88bfe1064636","impliedFormat":99},{"version":"5a9834c603c65aee5cba0c1d6b3c7aee85cdc7862832a23165c6aa4139c165f2","impliedFormat":99},{"version":"a7d7b5fa83cd7b3b4c2aa73bc29e7cbd53d5690b74f6fb39a5558af0a94967ba","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"605450898939e8abce51e8085a41b60640278337a969c33cd6b169e7c4f9c3f2","impliedFormat":99},{"version":"161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0864480ea083087d705f9405bd6bf59b795e8474c3447f0d6413b2bce535a09","impliedFormat":99},{"version":"e67cbea16f1994af89efd700542dbf3828a46a52b29e4d67e801bd7869dc103c","impliedFormat":99},{"version":"f582b0fcbf1eea9b318ab92fb89ea9ab2ebb84f9b60af89328a91155e1afce72","impliedFormat":99},{"version":"3fd8a5aefd8c3feb3936ca66f5aa89dff7bf6e6537b4158dbd0f6e0d65ed3b9e","impliedFormat":1},{"version":"a18642ddf216f162052a16cba0944892c4c4c977d3306a87cb673d46abbb0cbf","impliedFormat":1},{"version":"41c41c6e90133bb2a14f7561f29944771886e5535945b2b372e2f6ed6987746e","impliedFormat":1},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":99},{"version":"960bd764c62ac43edc24eaa2af958a4b4f1fa5d27df5237e176d0143b36a39c6","affectsGlobalScope":true,"impliedFormat":99},{"version":"f093d4bd6a9267be5f8ecbfbca19f4f3359b3839883206150c5d833606569e84","impliedFormat":99},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":99},{"version":"4a13397dffad4475c45c70fde584c925fe8c9218b3c7ab94397b68fc434f63b6","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"9443967db823b66d1682be7fc66392be7c7924e10c3e54900f456341e94591a6","impliedFormat":99},{"version":"424f71d1fae96ac2e878af92345bb87bea1d29f757228fbc190133b305643f2c","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"8124828a11be7db984fcdab052fd4ff756b18edcfa8d71118b55388176210923","impliedFormat":99},{"version":"ed9bb55ddcbebd5cb3eee991f57ff21438546ee40ee1c310281bd12a6c7cf65b","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"437b7613a30a2fcde463f7b707c6d5567a8823fbc51de50b8641bf5b1d126fad","impliedFormat":99},{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},{"version":"63ea959e28c110923f495576e614fb8b36c09b6828b467b2c7cd7f03b03ccf9f","impliedFormat":99},{"version":"1601a95dbb33059fc3d12638ed2a9aecff899e339c5c0f3a0b28768866d385b4","impliedFormat":99},{"version":"56fc978580577d30f4c2cdb5b1eb9217b66ed66537dd27141256f426e4b8dd68","impliedFormat":99},{"version":"2c5413050a2580becf9d82dd7e3006b95623e96f145356bf73230cd635352f70","impliedFormat":99},{"version":"7cd92bc6808967f175063fce65f8d1d60a07d752b79ed20aa2eba9a2b8ed0820","impliedFormat":99},{"version":"59de9e07114b1da6421bf15359a951f1b762cb19c3a6abfc2e671a5ac2599dff","impliedFormat":99},{"version":"84e977ab810a75dc103b38cad1e019d3ab8f4ec9042b8f09f117b7d18c4076f0","impliedFormat":99},{"version":"9b98988fc27cbf7f08598871f275999540bcc267a8a47453866a198f93601959","impliedFormat":99},{"version":"2b1795d67cf9aa20167c72d795d4db6badea9cea646d9181869b5ca08c778479","impliedFormat":99},{"version":"860bedc71ead192ea4a0ea5ef4686e65724d14b391ebd1a6671a7044e6bd8e15","impliedFormat":99},{"version":"7c0a845bee4a084cbb8654709f48e5f13e2f6d45e5e2dde7c57cadf79fd9e3d5","impliedFormat":99},{"version":"07ad8a597ac75084e3dd9f9fadf5e8d7ccdcfe2f0c94ea0cf1cd8aa027a6c46e","impliedFormat":99},{"version":"94ddb4a2bb0c69e8efea22c58c2b6f84017eba469a4e433f5396ea8619d051cb","impliedFormat":99},{"version":"064499a671b662b25675beccdd04fb0bdebb6bd49bdb90d448e4b1ce3db20526","impliedFormat":99},{"version":"7bbff6783e96c691a41a7cf12dd5486b8166a01b0c57d071dbcfca55c9525ec4","impliedFormat":99},{"version":"307f6461299ec378c95c31ec85012b9f613fb21f8376eddc42f6edddadbd0df9","impliedFormat":99},{"version":"0839337ddd00aadc6d2e987c66a5dde1dbafdd02d98a81c3290a61ca5a5366bc","signature":"4b96dd19fd2949d28ce80e913412b0026dc421e5bf6c31d87c7b5eb11b5753b4"},{"version":"f3a65afed0da1d516f521d3f7e0aa9aebe88220866bd9bbb49d43523315d049c","impliedFormat":99},{"version":"85652d7bb13bd2141b3d0c68d07ac1a11e933dd32ca2bb4b1b83b8aa5f62251c","impliedFormat":1},{"version":"6874ff6942bf3dfaa8403f99c315a4fc456973f4b6e4ae2f0500130597f13d5b","signature":"272269c1ed3addef0015a325fcfba7d76a0fbaae029eee3fefc42fcc2d0fe94a"},{"version":"ab0a79338c37f33fcd5ada4fe779945bd6040d32638c48b51c4bbe718b660f2d","signature":"f207564d45677800c542adaa44ecd260069f552702e91ea8828a11a3f2a43037"},{"version":"fa264b5f4525d45a502d36d6e5b9cf9b87c567b2acd8a325ecd8269c3a9c79d1","signature":"a89a64f915dda03938070ec88e0d0bf26ff454e66830a0555bd0eaf15cb7d8de"},{"version":"68ca3440d7eedc326e8579b5a99dd3c9108f878279bc3f27de088550672650ef","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"612025f95e93fb72a16e66d6f8a84eedd6b482d986ccf82f4a2f4ea438f6cdb4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1d4699f59b1d63c5872e279396e4a8b60ff8d7ada41adc7480f6f7336be734dd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"20884e562d3b83129d678fdc9e063a0549fc36e9eb140dc7da1405de18a850f9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9f728a563b452d1afe23424c9d2ee24c344401a5b7d1f333443b7abc1901f614","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e193f5b285fdf3c9fff9845e22a14b454eb262be2dc809f200a48eb8223800a9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4da07fec7b19a9c5a45794388b25a5434b48e8db5edf06021c3130ccf4751000","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"31096762bae8ac24f006da9d26f37b947d35b1a0a5f6499a8dd9b1bf4014306b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"99777070c1b615258346cfb260e1363104093b47d884fdb13ce73cf7d740108b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9335a94d81d1112c7d83a7f54b18980779a661de40882b5eb0f95c09f6ef43e7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4cc68a8d7787c38b0ce23c9d25ec9f045191dd1c0bd7a237f8d2e7283195fd09","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"eceb258a7e5bdd2eb9eb6da897710766c890f744fed0ae612cb6ac45616b6aea","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"aad09d98f6b64dbd8933e3ba2cc18dba8e7dc7523654e1b39a11386e2cc14589","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ab0f41b3590bd3b2f6579579179c356ae9644f714faf25091928df3f01754b1f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9e64b3f685a93a0666984f2704fda603edb946fecea458df104a4241ac8c608d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8d4bb197d48c393fa8108ec2ee568c1aad3d3308ccce78bc1a572d2de875fe20","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7ea2cfaa278e6520559851e9443189bb234ac78a8792d6f88e48a3284edb01ec","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9de335c7eaba1b34f582941ae856ac083ef90b7181854cd950d69a12c9fd3926","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"06fdbe25e9708ee8c154147d4130547116feb7538905e4a0ddd3897747f00c7a","impliedFormat":1},{"version":"4722fd74708636c5ccae96096d2e8105481d8054b1e9f2ba586380d8beae46e9","impliedFormat":1},{"version":"165b1e657a2e782586d02365c6e647625d1f83b0f86434e223e5ae79c961c413","impliedFormat":1},{"version":"6c92284a2b4829e9ae995011130e1577d383073220af9b1b3b10a875e6dc476c","impliedFormat":1},{"version":"7cc5cca50c261857fe6d0a8e16583c25bbe9b7f3edbb31df83cf7e8f0ac25907","impliedFormat":1},{"version":"5c356da2c84f4878800c653c500dd9532330f0759cc47f8ff3f4371c27598073","impliedFormat":1},{"version":"49598095930a8dadf9c462bf2a408f1aad78146409f223b9ee0a5f89a4e382cd","impliedFormat":1},{"version":"45b3baf59d4817d5691ecd36268fd65154edabfb07befd66e24875b59d0fb4b5","impliedFormat":1},{"version":"01f77442e53ce5e94687cf71eb41da6d9bfc38c8559f96cc08b85d5074fe964f","impliedFormat":1},{"version":"85affae5f55f168321490535b401fd910702cd8903f4d40a3c65942ce6482a5d","impliedFormat":1},{"version":"823fe7c69f291da9622f0775cc5630efbedc75fc079c502c7ba38c816c066858","impliedFormat":1},{"version":"6146c6200c43a0eca96e4c65fc666b37f4db80846217701c8e855217ff924ed7","impliedFormat":1},{"version":"afb5d4e43959a9e5bd99903a6e55db6e33b58570cd33bb46574fa7c64f252ea0","impliedFormat":1},{"version":"abdf8aa11c0105e515fbe6049a8cbe96d58873b1577aa4a7f4c8cb59d9f69486","impliedFormat":1},{"version":"4371055bb001f40596e2e236b27583e13bf11e75d937962f8947d56519237fb8","impliedFormat":1},{"version":"89189df027e8910200a4b65af1e29a996225cf25975f5c438fbe9361c008fc6b","impliedFormat":1},{"version":"4555baaea5dfc93e0c0ba3fc326b0ba3ad50bb2ab887fa2dff49c7da7bd3bcaa","impliedFormat":1},{"version":"0b000f734fad76dcc87c70c90158d691ee409680eceb20e531a133de740f2324","impliedFormat":1},{"version":"bf3d905e4e6459cc1d8e3d7d8f62bc11c8ec8497068720f658c3b03618116ecd","impliedFormat":1},{"version":"0f2267d6bd1f5a43718fb292535aa7586503ea542d67bd9ee0600a36ec8a83ea","impliedFormat":1},{"version":"900c6d7b342ed29604a346d6f680a912f7ef60ba97f44e8cb8d5205041969dec","impliedFormat":1},{"version":"8cae686f3bf9ffdc5fad65592f348a37e2ed743a632a1b605000a2431bc7eaf8","impliedFormat":1},{"version":"8d6b7b77814d3beda2224c9d32ab4e77d373a5225f15573b77eae05f03926ed0","impliedFormat":1},{"version":"1c3a0e3abac99928fb5dec8f42d23b8ad1ebd5f26df08cd0a8dcb0c9d43a503d","impliedFormat":1},{"version":"2cb76131ee7c1b849d730d266f49ad5617a285d7b8ad7ebc1ac2749ae454e222","impliedFormat":1},{"version":"34bf6d81c6b9e84f1d53c2465d521277bea994f8612a0d80417fcdaad37cfbcd","impliedFormat":1},{"version":"f489d5e1bd45c038e9355267b9fa20b2298a372c2a4efcfd5cbf9f0fd7e40627","impliedFormat":1},{"version":"2e59c8382b469370e5c7f60648be896285300a54e25acfb75007422c805c1cc6","impliedFormat":1},{"version":"1729f008e7761ea42cb17aee825ab171ec515cf564ace589685f56114d68f2ab","impliedFormat":1},{"version":"85f7a89a18d98bd7c68cda1289a19a3f7bce2166f0f7c2b9030d8a3eb4f427fb","impliedFormat":1},{"version":"a87fa100939aa190bc186945ab7293b5434e91fe3b137d43f5011adc47ecebf9","impliedFormat":1},{"version":"e560695e9bd123be74cd97ea2070204e15bf437dc7e38277f62e9013f09d0314","impliedFormat":1},{"version":"3fa11202bf9ec72f55b09ae196089d606a4a219a1bdbaad7815526eaf28e9623","impliedFormat":1},{"version":"0d0d7f5ab1a8a0874ebc447216aaaf3a763d01a7b1dd450e0e6335a99dbe372f","impliedFormat":1},{"version":"c7798f43272b09de550520ead6df45f0ddf81bd97000784351d764df923e08d8","impliedFormat":1},{"version":"bb7973ee7b12dc2d956a74a68d589d2ec72209266509f88edabdfaddfb7ab712","impliedFormat":1},{"version":"fb47996d1fde69f078a79dda6a61c025dad9123d5fe1fdfc6bc2681fed5b9ae6","impliedFormat":1},{"version":"ac69c848ee4198fd88706b36656f200d81a532b777654dad39c5a72f202068d5","impliedFormat":1},{"version":"11fe56fbe44194784599e6368d155a9905d657d8b7c4fa0218daeeda194da13b","impliedFormat":1},{"version":"f065153d3b9e0f22d4a4dcddfd6fd902c73af666fd7350979525788e15590533","impliedFormat":1},{"version":"fec5c915e8a25765edc8fbc6f19a57da5bc4809b9191b79ce467fe84b1c43511","impliedFormat":1},{"version":"6a528740b422c6ffe165acca4d8d98f849012514f780ddefa4cecae8b9878ec1","impliedFormat":1},{"version":"876112a26ad2bb14c5ecf0ef16e3ae963397c771a2e293173b5704c8aee4441e","impliedFormat":1},{"version":"21136f25b4d5a59b94bbb519552a7114f055dcf5736db41c20967dedce6768e1","impliedFormat":1},{"version":"1bdf93cfb8b270ca905a8dfd106ff88277aef6c70cb72077db4faf75b30b94e3","impliedFormat":1},{"version":"c30b233f5f9c1caf20b0e34e90aba73a631e0ed49cdb1f4f93b6a9fc52ea700d","impliedFormat":1},{"version":"6ac9e5eeb91f4e33a6c9440fad06b6ec59a3b9089f69e192eb3702daf92a41cb","impliedFormat":1},{"version":"c449c814cf771b723f4d747f27e4bebe1ffdf236e86fa2812e781753c39452fa","impliedFormat":1},{"version":"31813f5d800846efe3400b7bdeb442fcaee27915efea787d1f50b8edecca34a5","impliedFormat":1},{"version":"b0d558b2e806df3758ee259b14d9b247c967fb7950b598d19459ab5dce263e54","impliedFormat":1},{"version":"244f1dfd6f31217ab2bf572c8c1083c5c20ae1c7252276649b0104288bd6d053","impliedFormat":1},{"version":"82af965d0bbe372b7cea4ee17c2a96ecbbfe0eecca081c4aeaf63e102affcd88","impliedFormat":1},{"version":"af763fbd7007bf8ea62e6ef71a47ea19ebacf8561f1321b7d53347fb2afbaefd","impliedFormat":1},{"version":"dd54b0c1cc6cbe7b8d11e1802bc8cf7b9fda48a46a11ad20b09304b7f2c7321c","impliedFormat":1},{"version":"24e6cde1a508cca4c07ba5aa2bb0675d9e68e7946e4f424452f8fc0b842c2ae9","impliedFormat":1},{"version":"3e9763c4afdadcdca1a4f469ffed3dcbbf5eddfc2aa04b5e588b514e4f57f9f1","impliedFormat":1},{"version":"c6fe327c538417b8dd5b9bb32abcd7911534b10da3a4514f3445cdb28cf3abf2","impliedFormat":99},{"version":"0065cdb7ac9f5b19921632de63f888ec2cc11ad57f7fc868f44bf0faad2fce3e","impliedFormat":99},{"version":"8c1adc3171d0287f3a26f4891a7d1834c89999573a9b444aa5ff519dcc43a2b7","impliedFormat":99},{"version":"a829052855dca3affb8e2ef0afa0f013b03fa9b55762348b1fba76d9c2741c99","impliedFormat":99},{"version":"27aee784c447854a4719f11058579e49f08faa70d06d8e30abe00f5e25538de6","impliedFormat":99},{"version":"8e10049294ca78d6ddffe8628ec671f165bd06db35b858e6c6ce6eeaeb546ba3","impliedFormat":99},{"version":"531de62ccf432c13c76004416714ecd03e6fde98d70d283c1ee2578a25784edf","impliedFormat":99},{"version":"5a2cf4cd852a58131b320da62269b2143850920ce27e8fdec41fed5c2c54ec95","impliedFormat":99},{"version":"99813a55d43aa2535ca273996466414a14a9b6948018050e370f0c65909f77ad","impliedFormat":99},{"version":"6a99940a8a76a1aa20ae6f2afd8e909e47e0b17df939e7cf5a585171480655ff","impliedFormat":99},{"version":"043195af0b52aadd10713870dd60369df0377ed153104b26e6bac1213b19f63e","impliedFormat":99},{"version":"ad17a36132569045ab97c8e5badf8febb556011a8ed7b2776ff823967d6d5aca","impliedFormat":99},{"version":"698d2b22251dbbfc0735e2d6ed350addead9ad031fac48b8bb316e0103d865db","impliedFormat":99},{"version":"7298d28b75c52e89c0b3e5681eac19e14480132cd30baaba5e5ca10211a740ef","impliedFormat":99},{"version":"ff10facf373a13d2864ff4de38c4892d74be27d9c6468dac49c08adabbf9b0eb","impliedFormat":99},{"version":"97b1cf4599cc3bc2e84b997aa1af60d91ca489d96bea0e20aaff0e52a5504b29","impliedFormat":99},{"version":"853dfbcd0999d3edc6be547d83dc0e0d75bf44530365b9583e75519d35984c35","impliedFormat":99},{"version":"9c80bed388d4ed47080423402db9cb1b35a31449045a83a0487f4dfde3d9d747","impliedFormat":99},{"version":"f29bc6a122a4a26c4e23289daae3aa845a18af10da90989cb8b51987e962b7be","impliedFormat":99},{"version":"3a1f39e098971c10633a064bd7a5dbdec464fcf3864300772763c16aa24457f9","impliedFormat":99},{"version":"20e614d6e045d687c3f7d707561b7655ad6177e859afc0c55649b7e346704c77","impliedFormat":99},{"version":"aa0ae1910ba709bc9db460bdc89a6a24d262be1fbea99451bedac8cbbc5fb0cd","impliedFormat":99},{"version":"161d113c2a8b8484de2916480c7ba505c81633d201200d12678f7f91b7a086f0","impliedFormat":99},{"version":"b998a57d4f43e32ac50a1a11f4505e1d7f71c3b87f155c140debe40df10386c8","impliedFormat":99},{"version":"5710e8ed9797ae0042e815eb8f87df2956cb1bf912939c9b98eeb58494a63c13","impliedFormat":99},{"version":"a6bb421dccfec767dbd3e99180b24c07c4a216c0fd549f54a3313f6ce3f9d2c7","impliedFormat":99},{"version":"3b6f1be46f573b1c1f3e6cd949890bfb96b40ff90b6f313e425a379c1c4d5d77","impliedFormat":99},{"version":"28a2c54d0a78d32c29f7279ca04dc6c7860c008579e4e3033938c0ed0201eb9a","impliedFormat":99},{"version":"c2714a402843287624210a47ebea2b1c8dd3ad1438f448633f6831e31eaf37b8","impliedFormat":99},{"version":"b89945ec6707415d739f3e76f2820982d4927dc6b681910b3c433b5ad261b817","impliedFormat":99},{"version":"a72d5822fb2a2c1ef985b30aed889f4c00342c90e12318762fccc550c6a599cf","impliedFormat":99},{"version":"c8616ab60eda93ca87fbb20aada1d6a6cdbcd2cb181a70a2d7728a3cb0613391","impliedFormat":99},{"version":"eeddfd3e0b09890822068de5248d38144f8328e74b5292847eb4e558d8aba8cb","impliedFormat":99},{"version":"d4dc0b6592543314c8549c71e35ad2ec4a57904662d905ff9585836bde1c855a","impliedFormat":99},{"version":"56e1687a174cd10912a35a4676af434bb213aafa5d4371040986c578afe644ab","impliedFormat":99},{"version":"470c280cc484340b97d0942e0c3aa312399eba3849ceb95312d0d7413bac7458","impliedFormat":99},{"version":"ae183f4a6300aad2be92cdbd4dd12d8bcd36eddf8dd1846f998c237235fe0c33","impliedFormat":99},{"version":"4b0eeffddaf51b967e95926a825a6ba1205b81b3a8fecddbe21eaf0e86bdee91","impliedFormat":99},{"version":"bf3ec0d42e33e487c359a989b30e1c9e90fa06de484dc4751e93fb34a9b5cf90","impliedFormat":99},{"version":"7b9656a61d83df1a46c38c2984dbf96dd057bf48f477ddf3f8990311ab98ec23","impliedFormat":99},{"version":"366b85ddb698f3a035e0caa68dc9fef39a85c4368c0810eaf937c3a3c63ac31e","impliedFormat":99},{"version":"d440ee730bc60a5c605903842e398863e7ecdb7a91fc32a9152f14061bf6cc17","impliedFormat":99},{"version":"a12c86c4a691608d19a75320946c80bbce38bb62c091dda32572aee7158edd38","impliedFormat":99},{"version":"3109cb3f8ab0308d2944c26742b6a8a02b4a4ffc23f479a81f0e945d6a6721dd","impliedFormat":99},{"version":"a2289c12a987f2a06f4cf049afde4fdc9455a4af37913445148865938c6eb613","impliedFormat":99},{"version":"55933c1450edcfaf166429425dbbad0a27c0ae8672d5ab5d427e46946a6f2f63","impliedFormat":99},{"version":"6c684fda6998db4112e82367c9e82e27996dc8086a10d58ac9b51d89770d5f9d","impliedFormat":99},{"version":"5c4b4dd983471fcaed17ad3241c98a1f880729f1ca579ddbcdae7e0bf04035df","impliedFormat":99},{"version":"9e430429c7e9e70071a836ac91a1bf6e6651f91d47d9f4baf0a92eefc6130818","impliedFormat":99},{"version":"b3db7f6d7ef72669dc83fa1ff7b90a2ec31d1d8f82778f2a00ef6d101f5247e5","impliedFormat":99},{"version":"354f61bd2a5acaf20462bc4d61048aa25f8fc0dd04dfe3d2f30bdbabbab54e7d","impliedFormat":99},{"version":"d51756340928e549f076c832d7bc2b4180385597b0b4daaa50e422bed53e1a72","impliedFormat":99},{"version":"32c6e3ef96f2bcbc1db7d7f891459241657633aa663cab6812fb28ade7c90608","impliedFormat":99},{"version":"ac2ea00eb8f73665842e57e729e14c6d3feabe9859dc5e87a1ed451b20b889e4","impliedFormat":99},{"version":"730cb342a128f5a8a036ffbd6dbc1135b623ce2100cefe1e1817bb8845bc7100","impliedFormat":99},{"version":"78e387f16df573a98dd51b3c86d023ddbd5bf68e510711a9fee8340e7ccc3703","impliedFormat":99},{"version":"e2381c64702025b4d57b005e94ed0b994b5592488d76f1e5f67f59d1860ebb70","impliedFormat":99},{"version":"d7dfcb039ff9cff38ccd48d2cc1ba95ca45c316670eddbcf81784e21b7128692","impliedFormat":99},{"version":"acaf0a60eb243938f7742df08bf5d52482fbea033fd27141ee3a6d878bbb0d3d","impliedFormat":99},{"version":"fb89aeecfc8eb28f5677c2c89bced74d13442b7f4ebd01ce2ce92127d1b36d69","impliedFormat":99},{"version":"9e91cb0a5bd7aefa2b94a2872828d6d2321df0ca44412e74d99e8b94e579b7d8","impliedFormat":99},{"version":"a56827adea79fb04ecb27671b6a3529fe74c6937ebb9ca9bdd53b7bd0e8c861b","impliedFormat":99},{"version":"192c1a207b44af476190ae66920636de5d56c33b57206bbc2421adc23f673e2e","impliedFormat":99},{"version":"e5aa35b3740170492e06e60989d35a222cfda2148507c650ea55753f726c9213","impliedFormat":99},{"version":"057aa42f6983120c35373aed62b219ffcbd7b476b2df08709139a9eb8dfeed26","impliedFormat":99},{"version":"95a0c46b4675d4d02de6a7c167738f1176b53b26ebec9ccfe8e5d9acb0dc7aee","impliedFormat":99},{"version":"94ad4d9745811c482ae3bad61e5b206e0904f77e0dacf783199193a3df9f6ce6","impliedFormat":99},{"version":"407dc18ecd25802296fade17be81d0d4f499ae75fe88ed132f94e7efdad269e2","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"f6dfe21d867aa5e13bc53d536b69b66427f571707a01e7c3604dc51ded097313","impliedFormat":99},{"version":"4ecd02d0e4ccf7befb9c28802c6c208060e33291d56fd1868900ca295c399077","impliedFormat":99},{"version":"37ada75be4b3f6b888f538091020d81b2a0ad721dc42734f70f639fa4703a5c8","impliedFormat":99},{"version":"aa73ff0024d5434a3e87ea2824f6faece7aad7b9f6c22bd399268241ca051dc7","impliedFormat":99},{"version":"4c9fb50b0697756bab3e4095f28839cf5b55430a4744d2ebbaf850ec8dca54d8","impliedFormat":99},{"version":"782868b723c055c5612c4a243f72a78a8b3c0c3b707ae04954e36e8ab966df4c","impliedFormat":99},{"version":"3de9d9ad4876972e7599fc0b3bddb0fddb1923be75787480a599045a30f14292","impliedFormat":99},{"version":"0f4b3c05937bbdb9cf954722ddc97cd72624e3b810f6f2cf4be334adb1796ec1","impliedFormat":99},{"version":"9fc243c4c87d8560348501080341e923be2e70bf7b5e09a1b26c585d97ae8535","impliedFormat":99},{"version":"4f97089fe15655ae448c9d005bb9a87cc4e599b155edc9e115738c87aa788464","impliedFormat":99},{"version":"f948d562d0a8085f1bd17b50798d5032529a75c147f40adfeb4fd3e453368643","impliedFormat":99},{"version":"22929f9874783b059156ee3cfa864d6f718e1abf9c139f298a037ae0274186f6","impliedFormat":99},{"version":"c72a7c316459b2e872ca4a9aca36cc05d1354798cee10077c57ff34a34440ac2","impliedFormat":99},{"version":"3e5bbf8893b975875f5325ebf790ab1ab38a4173f295ffea2ed1f108d9b1512c","impliedFormat":99},{"version":"9e4a38448c1d26d4503cf408cc96f81b7440a3f0a95d2741df2459fe29807f67","impliedFormat":99},{"version":"84124d21216da35986f92d4d7d1192ca54620baeca32b267d6d7f08b5db00df9","impliedFormat":99},{"version":"efba354914a2dc1056a55510188b6ced85ead18c5d10cc8a767b534e2db4b11b","impliedFormat":99},{"version":"25f5bf39f0785a2976d0af5ac02f5c18ca759cde62bc48dd1d0d99871d9ad86f","impliedFormat":99},{"version":"e711fa7718a2060058ff98ac6bff494c1615b9d42c4f03aa9c8270bc34927164","impliedFormat":99},{"version":"e324b2143fa6e32fac37ed9021b88815e181b045a9f17dbb555b72d55e47cdc1","impliedFormat":99},{"version":"3e90ea83e3803a3da248229e3027a01428c3b3de0f3029f86c121dc76c5cdcc2","impliedFormat":99},{"version":"9368c3e26559a30ad3431d461f3e1b9060ab1d59413f9576e37e19aaf2458041","impliedFormat":99},{"version":"915e5bb8e0e5e65f1dc5f5f36b53872ffcdcaef53903e1c5db7338ea0d57587a","impliedFormat":99},{"version":"92cf986f065f18496f7fcb4f135bff8692588c5973e6c270d523191ef13525ad","impliedFormat":99},{"version":"652f2bd447e7135918bc14c74b964e5fe48f0ba10ff05e96ed325c45ac2e65fb","impliedFormat":99},{"version":"cc2156d0ec0f00ff121ce1a91e23bd2f35b5ab310129ad9f920ddaf1a18c2a4d","impliedFormat":99},{"version":"7b371e5d6e44e49b5c4ff88312ae00e11ab798cfcdd629dee13edc97f32133d8","impliedFormat":99},{"version":"e9166dab89930e97bb2ce6fc18bcc328de1287b1d6e42c2349a0f136fc1f73e6","impliedFormat":99},{"version":"6dc0813d9091dfaed7d19df0c5a079ee72e0248ce5e412562c5633913900be25","impliedFormat":99},{"version":"e704c601079399b3f2ec4acdfc4c761f5fe42f533feaaab7d2c1c1528248ca3e","impliedFormat":99},{"version":"49104d28daa32b15716179e61d76b343635c40763d75fe11369f681a8346b976","impliedFormat":99},{"version":"04cd3418706b1851d2c1d394644775626529c23e615a829b8abfe26ec0ee3aef","impliedFormat":99},{"version":"21e459e9485fc48f21708d946c102e4aaa4a87b4c9ad178e1c5667e3ff6bbc59","impliedFormat":99},{"version":"97e685ac984fc93dcdae6c24f733a7a466274c103fdcf5d3b028eaa9245f59d6","impliedFormat":99},{"version":"68526ea8f3bbf75a95f63a3629bebe3eb8a8d2f81af790ce40bc6aad352a0c12","impliedFormat":99},{"version":"fdfd8c7050f46bb79eae64ca3ece0caf632830fbf326e1e904df352977b60317","impliedFormat":99},{"version":"b5428f35f4ebf7ea46652b0158181d9c709e40a0182e93034b291a9dc53718d8","impliedFormat":99},{"version":"0afcd28553038bca2db622646c1e7fcf3fb6a1c4d3b919ef205a6014edeeae0f","impliedFormat":99},{"version":"ee016606dd83ceedc6340f36c9873fbc319a864948bc88837e71bd3b99fdb4f6","impliedFormat":99},{"version":"0e09ffe659fdd2e452e1cbe4159a51059ae4b2de7c9a02227553f69b82303234","impliedFormat":99},{"version":"4126cb6e6864f09ca50c23a6986f74e8744e6216f08c0e1fe91ab16260dab248","impliedFormat":99},{"version":"4927dba9193c224e56aa3e71474d17623d78a236d58711d8f517322bd752b320","impliedFormat":99},{"version":"3d3f189177511d1452e7095471e3e7854b8c44d94443485dc21f6599c2161921","impliedFormat":99},{"version":"bb0519ff5ef245bbf829d51ad1f90002de702b536691f25334136864be259ec5","impliedFormat":99},{"version":"a64e28f2333ea0324632cf81fd73dc0f7090525547a76308cb1dfe5dab96596a","impliedFormat":99},{"version":"883f9faa0229f5d114f8c89dadd186d0bdf60bdafe94d67d886e0e3b81a3372e","impliedFormat":99},{"version":"d204b9ae964f73721d593e97c54fc55f7fd67de826ce9e9f14b1e762190f23d1","impliedFormat":99},{"version":"91830d20b424859e5582a141efe9a799dc520b5cce17d61b579fb053c9a6cd85","impliedFormat":99},{"version":"68115cdc58303bad32e2b6d59e821ccaada2c3fb63f964df7bd4b2ebd6735e80","impliedFormat":99},{"version":"ee27e47098f1d0955c8a70a50ab89eb0d033d28c5f2d76e071d8f52a804afe07","impliedFormat":99},{"version":"7957b11f126c6af955dc2e08a1288013260f9ec2776ff8cc69045270643bf43e","impliedFormat":99},{"version":"7acda36e46d3aab69093c27bc9765fe8db307840d804858d1b416bd04af6a948","impliedFormat":99},{"version":"85059ed9b6605d92c753daf3a534855ba944be69ff1a12ab4eca28cefbabd07a","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"ea68a96f4e2ba9ca97d557b7080fbdb7f6e6cf781bb6d2e084e54da2ac2bb36c","impliedFormat":99},{"version":"fdae6a221872468d5b6ef3ee06a5ede1b7b3168b6c8346d0bf389fe0490b5269","impliedFormat":99},{"version":"424df1d45a2602f93010cb92967dfe76c3fcadad77d59deb9ca9f7ab76995d40","impliedFormat":99},{"version":"21f96085ed19d415725c5a7d665de964f8283cacef43957de10bdd0333721cc4","impliedFormat":99},{"version":"e8d4da9e0859c6d41c4f1c3f4d0e70446554ba6a6ab91e470f01af6a2dcac9bf","impliedFormat":99},{"version":"2e2421a3eec7afefa5a1344a6852d6fee6304678e2d4ee5380b7805f0ac8b58a","impliedFormat":99},{"version":"a10fd5d76a2aaba572bec4143a35ff58912e81f107aa9e6d97f0cd11e4f12483","impliedFormat":99},{"version":"1215f54401c4af167783d0f88f5bfb2dcb6f0dacf48495607920229a84005538","impliedFormat":99},{"version":"476f8eb2ea60d8ad6b2e9a056fdda655b13fd891b73556b85ef0e2af4f764180","impliedFormat":99},{"version":"2fe93aef0ee58eaa1b22a9b93c8d8279fe94490160703e1aabeff026591f8300","impliedFormat":99},{"version":"bbb02e695c037f84947e56da3485bb0d0da9493ed005fa59e4b3c5bc6d448529","impliedFormat":99},{"version":"ba666b3ab51c8bc916c0cebc11a23f4afec6c504c767fd5f0228358f7d285322","impliedFormat":99},{"version":"c10972922d1887fe48ed1722e04ab963e85e1ac12263a167edef9b804a2af097","impliedFormat":99},{"version":"6efeacbd1759ea57a4c7264eb766c531ae0ab2c00385294be58bc5031ef43ad1","impliedFormat":99},{"version":"1c261f5504d0175be4f1b6b99f101f4c3a129a5a29fc768e65c52d6861ca5784","impliedFormat":99},{"version":"f0e69b5877b378d47cbac219992b851e2bbc0f7e3a3d3579d67496dabd341ec4","impliedFormat":99},{"version":"b5ea27f19a54feca5621f5ba36a51026128ea98e7777e5d47f08b79637527cf5","impliedFormat":99},{"version":"27d065f5610a5a3e91f4941e5ebedea19507945bff28c94677909620424aa382","impliedFormat":99},{"version":"c133db4b6c17a96db7fa36607c59151dec1e5364d9444cbe15e8c0ea4943861e","impliedFormat":99},{"version":"3a0514f77606d399838431166a0da6dbd9f3c7914eae5bbfbd603e3b6a552959","impliedFormat":99},{"version":"fa568f8d605595e1cffbfca3e8c8c492cf88ae2c6ed151f6c64acf0f9e8c25d8","impliedFormat":99},{"version":"c76fb65cb2eb09a0ee91f02ff5b43a607b94a12c34d16d005b2c0afc62870766","impliedFormat":99},{"version":"cf7af60a0d4308a150df0ab01985aabb1128638df2c22dd81a2f5b74495a3e45","impliedFormat":99},{"version":"0291865a9ce360953eaa52512c9ffab4c7c3cfc69a3f022b303601a502455670","impliedFormat":99},{"version":"42d8c168ca861f0a5b3c4c1a91ff299f07e07c2dd31532cd586fd1ee7b5e3ae6","impliedFormat":99},{"version":"a29faa7cb35193109ec1777562ca52c72e7382ffe9916b26859b5874ad61ff29","impliedFormat":99},{"version":"15bdf2eeef95500ba9f1602896e288cb425e50462b77a07fa4ca23f1068abb21","impliedFormat":99},{"version":"452db58fd828ab87401f6cecc9a44e75fa40716cc4be80a6f66cf0a43c5a60cc","impliedFormat":99},{"version":"54592d0215a3fd239a6aa773b1e1a448dc598b7be6ce9554629cd006ee63a9d6","impliedFormat":99},{"version":"9ee28966bb038151e21e240234f81c6ba5be6fde90b07a9e57d4d84ae8bc030c","impliedFormat":99},{"version":"2fe1c1b2b8a41c22a4e44b0ac7316323d1627d8c72f3f898fa979e8b60d83753","impliedFormat":99},{"version":"956e43b28b5244b27fdb431a1737a90f68c042e162673769330947a8d727d399","impliedFormat":99},{"version":"92a2034da56c329a965c55fd7cffb31ccb293627c7295a114a2ccd19ab558d28","impliedFormat":99},{"version":"c1b7957cd42a98ab392ef9027565404e5826d290a2b3239a81fbac51970b2e63","impliedFormat":99},{"version":"4861ee34a633706bcbba4ea64216f52c82c0b972f3e790b14cf02202994d87c5","impliedFormat":99},{"version":"7af4e33f8b95528de005282d6cca852c48d293655dd7118ad3ce3d4e2790146f","impliedFormat":99},{"version":"df345b8d5bf736526fb45ae28992d043b2716838a128d73a47b18efffe90ffa7","impliedFormat":99},{"version":"d22c5b9861c5fc08ccd129b5fc3dcdc7536e053c0c1d463f3ab39820f751c923","impliedFormat":99},{"version":"dcc38f415a89780b34d827b45493d6dbadb05447d194feb4498172e508c416ac","impliedFormat":99},{"version":"7e917e3b599572a2dd9cfa58ff1f68fda9e659537c077a2c08380b2f2b14f523","impliedFormat":99},{"version":"20b108e922abd1c1966c3f7eb79e530d9ac2140e5f51bfa90f299ad5a3180cf9","impliedFormat":99},{"version":"2bc82315d4e4ed88dc470778e2351a11bc32d57e5141807e4cdb612727848740","impliedFormat":99},{"version":"e2dd1e90801b6cd63705f8e641e41efd1e65abd5fce082ef66d472ba1e7b531b","impliedFormat":99},{"version":"a3cb22545f99760ba147eec92816f8a96222fbb95d62e00706a4c0637176df28","impliedFormat":99},{"version":"287671a0fe52f3e017a58a7395fd8e00f1d7cd9af974a8c4b2baf35cfda63cfa","impliedFormat":99},{"version":"e2cdad7543a43a2fb6ed9b5928821558a03665d3632c95e3212094358ae5896b","impliedFormat":99},{"version":"326a980e72f7b9426be0805774c04838e95195b467bea2072189cefe708e9be7","impliedFormat":99},{"version":"e3588e9db86c6eaa572c313a23bf10f7f2f8370e62972996ac79b99da065acaa","impliedFormat":99},{"version":"1f4700278d1383d6b53ef1f5aecd88e84d1b7e77578761838ffac8e305655c29","impliedFormat":99},{"version":"6362a4854c52419f71f14d3fee88b3b434d1e89dcd58a970e9a82602c0fd707a","impliedFormat":99},{"version":"fb1cc1e09d57dfeb315875453a228948b904cbe1450aaf8fda396ff58364a740","impliedFormat":99},{"version":"50652ed03ea16011bb20e5fa5251301bb7e88c80a6bf0c2ea7ed469be353923b","impliedFormat":99},{"version":"d388e0c1c9a42d59ce88412d3f6ce111f63ce2ff558e0a3f84510092431dfee0","impliedFormat":99},{"version":"35ea0a1e995aef5ae19b1553548a793c76eb31bdf7fef30bc74656660c3a09c3","impliedFormat":99},{"version":"56f4ae4e34cbff1e4158ccada4feea68a357bae86adb3bedaa65260d0af579df","impliedFormat":99},{"version":"6eebdacf8e85b2cf70ad7a2f43ead1f8acccfd214ab57ff1d989e9e35661015d","impliedFormat":99},{"version":"a4f90a12cbfac13b45d256697ce70a6b4227790ca2bf3898ffd2359c19eab4eb","impliedFormat":99},{"version":"4a6c2ac831cff2d8fa846dfb010ee5f7afce3f1b9bd294298ee54fdc555f1161","impliedFormat":99},{"version":"a8d491b4eb728dab387933a518d9e1f32d5c9d5a5225ff134d847b0c8cc9c8ce","impliedFormat":99},{"version":"668f628ae1f164dcf6ea8f334ea6a629d5d1a8e7a2754245720a8326ff7f1dc0","impliedFormat":99},{"version":"5105c00e1ae2c0a17c4061e552fa9ec8c74ec41f69359b8719cb88523781018e","impliedFormat":99},{"version":"d2c033af6f2ea426de4657177f0e548ee5bed6756c618a8b3b296c424e542388","impliedFormat":99},{"version":"2d4530d6228c27906cb4351f0b6af52ff761a7fab728622c5f67e946f55f7f00","impliedFormat":99},{"version":"ec359d001e98bf56b0e06b4882bd1421fd088d4d181dff3138f52175c0582a51","impliedFormat":99},{"version":"45be28de10e6f91aacb29fbd2955ba65a0fd3d1b5fddefece9c381043e91e68d","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"6801ebe0b7ab3b24832bc352e939302f481496b5d90b3bc128c00823990d7c7d","impliedFormat":99},{"version":"0abb1feddc76a0283c7e8e8910c28b366612a71f8bfdd5ca42271d7ad96e50b2","impliedFormat":99},{"version":"ac56b2f316b70d6a727fdbbcfa8d124bcd1798c293487acb2b27a43b5c886bb0","impliedFormat":99},{"version":"d849376baf73ec0b17ffd29de702a2fdbbe0c0390ec91bebf12b6732bf430d29","impliedFormat":99},{"version":"40dcd290c10cc7b04a55f7ee5c76f77250f48022cea1624eba2c0589753993b4","impliedFormat":99},{"version":"0f9c9f7d13a5cf1c63eb56318b6ae4dfa2accef1122b2e88b5ed1c22a4f24e3b","impliedFormat":99},{"version":"9c4178832d47d29c9af3b1377c6b019f7813828887b80bb96777393f700eb260","impliedFormat":99},{"version":"dddb8672a0a6d0e51958d539beb906669a0f1d3be87425aaa0ae3141a9ad6402","impliedFormat":99},{"version":"6b514d5159d0d189675a1d5a707ba068a6da6bc097afb2828aae0c98d8b32f08","impliedFormat":99},{"version":"39d7dbcfec85393fedc8c7cf62ee93f7e97c67605279492b085723b54ccaca8e","impliedFormat":99},{"version":"81882f1fa8d1e43debb7fa1c71f50aa14b81de8c94a7a75db803bb714a9d4e27","impliedFormat":99},{"version":"c727a1218e119f1549b56dd0057e721d67cfa456c060174bac8a5594d95cdb2d","impliedFormat":99},{"version":"bca335fd821572e3f8f1522f6c3999b0bc1fe3782b4d443c317df57c925543ed","impliedFormat":99},{"version":"73332a05f142e33969f9a9b4fb9c12b08b57f09ada25eb3bb94194ca035dc83d","impliedFormat":99},{"version":"c366621e6a8febe9bbca8c26275a1272d99a45440156ca11c860df7aa9d97e6d","impliedFormat":99},{"version":"d9397a54c21d12091a2c9f1d6e40d23baa327ae0b5989462a7a4c6e88e360781","impliedFormat":99},{"version":"dc0e2f7f4d1f850eb20e226de8e751d29d35254b36aa34412509e74d79348b75","impliedFormat":99},{"version":"af3102f6aec26d237c750decefdc7a37d167226bb1f90af80e1e900ceb197659","impliedFormat":99},{"version":"dea1773a15722931fbfe48c14a2a1e1ad4b06a9d9f315b6323ee112c0522c814","impliedFormat":99},{"version":"b26e3175cf5cee8367964e73647d215d1bf38be594ac5362a096c611c0e2eea8","impliedFormat":99},{"version":"4280093ace6386de2a0d941b04cff77dda252f59a0c08282bd3d41ccc79f1a50","impliedFormat":99},{"version":"fe17427083904947a4125a325d5e2afa3a3d34adaedf6630170886a74803f4a2","impliedFormat":99},{"version":"0246f9f332b3c3171dcdd10edafab6eccb918c04b2509a74e251f82e8d423fb7","impliedFormat":99},{"version":"f6ef33c2ff6bbdf1654609a6ca52e74600d16d933fda1893f969fc922160d4d7","impliedFormat":99},{"version":"1abd22816a0d992fd33b3465bf17a5c8066bf13a8c6ca4fc0cd28884b495762d","impliedFormat":99},{"version":"82032a08169ea01cf01aa5fd3f7a02f1f417697df5e42fc27d811d23450bc28d","impliedFormat":99},{"version":"9c8cbd1871126e98602502444cffb28997e6aa9fbc62d85a844d9fd142e9ae1b","impliedFormat":99},{"version":"b0e20abc4a73df8f97b3f1223cc330e9ba3b2062db1908aa2a97754a792139ac","impliedFormat":99},{"version":"bc1f2428d738ab789339030078adf313100471c37d8d69f6cf512a5715333afc","impliedFormat":99},{"version":"dc500c6a23c9432849c82478bdab762fa7bdf9245298c2279a7063dd05ae9f9a","impliedFormat":99},{"version":"cd1b6a2503fc554dcab602e053565c4696e4262b641b897664d840a61f519229","impliedFormat":99},{"version":"af1580cd202df0e33fc592fe1d75d720c15930a4127a87633542b33811316724","impliedFormat":99},{"version":"538608f9242fbf4260d694f19c95b454f855152ab3b882ac72114f19b08984d2","impliedFormat":99},{"version":"cd0e1083bd8ae52661544329c311836abdda5d5dda89fc5d7ab038956c0394e8","impliedFormat":99},{"version":"9ea6fea875302b2bb3976f7431680affc45a4319499d057ce12be04e4f487bf9","impliedFormat":99},{"version":"66e0c3f9875da7be383d0c78c8b8940b6ebae3c6a0fbfd7e77698b5e8ade3b05","impliedFormat":99},{"version":"da38d326fe6a72491cad23ea22c4c94dfc244363b6a3ec8a03b5ad5f4ee6337b","impliedFormat":99},{"version":"9742dc7ead36bcc08712e54b7d27083ed6144973b82c763106a876a9180920da","impliedFormat":99},{"version":"517a31c520e08c51cfe6d372bc0f5a6bf7bd6287b670bcaa180a1e05c6d4c4da","impliedFormat":99},{"version":"0263d94b7d33716a01d3e3a348b56c2c59e6d897d89b4210bdbf27311127223c","impliedFormat":99},{"version":"d0120e583750834bf1951c8b9936781a98426fe8d3ad3d951f96e12f43090469","impliedFormat":99},{"version":"a2e6a99c0fb4257e9301d592da0834a2cb321b9b1e0a81498424036109295f8b","impliedFormat":99},{"version":"c6b5ae9f99f1fccadc23d56307a28c8490c48e687678f2cafa006b3b9b8e73e4","impliedFormat":99},{"version":"eae178ee8d7292bcd23be2b773dda60b055bc008a0ddce2acc1bfe30cc36cf04","impliedFormat":99},{"version":"e0b5f197fb47b39a4689ad356b8488e335bbf399b283492c0ffae0cfda88837b","impliedFormat":99},{"version":"adb7aa4b8d8b423d0d7e78b6a8affb88c3a32a98e21cd54fcafd570ad8588d0c","impliedFormat":99},{"version":"643e22362c15304f344868ec0e7c0b4a1bc2b56c8b81d5b9f0ee0a6f3c690fff","impliedFormat":99},{"version":"ead5220d1cd43d1f84829c5734bd540d0e80ef6f50218a4ee03b5ec3cf178bcd","impliedFormat":99},{"version":"4e095c719ab15aa641872ab286d8be229562c4b3dc4eec79888bc4e8e0426ed8","impliedFormat":99},{"version":"6022afc443d2fe0af44f2f5912a0bdd7d17e32fd1d49e6c5694cbc2c0fa11a8f","impliedFormat":99},{"version":"6dd3f823ac463041d89c84d7bbf74931a38d874a9716040492ac7a16c7d2f023","impliedFormat":99},{"version":"a5bf6d947ce6a4f1935e692c376058493dbfbd9f69d9b60bbaf43fd5d22c324b","impliedFormat":99},{"version":"4927ef881b202105603e8416d63f317a1f1ea47d321e32826b9b20a44caa55e2","impliedFormat":99},{"version":"914d11655546eba92ac24d73e6efdb350738bcf4a9a161a2b96e904bad4de809","impliedFormat":99},{"version":"f9fdd2efc37eefc321338d39b5bd341b2aa82292b72610cb900f205f6803ff66","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"ab043784438ef8945a95124d2325308554c8b53dc92ce801f09702e79234282a","impliedFormat":99},{"version":"3fb3501967b0f0224023736d0ad41419482b88a69122e5cb46a50ae5635adb6a","impliedFormat":99},{"version":"06d66a6723085295f3f0ecd254a674478c4dba80e7b01c23a9693a586682252f","impliedFormat":99},{"version":"cc411cd97607f993efb008c8b8a67207e50fdd927b7e33657e8e332c2326c9f3","impliedFormat":99},{"version":"b144c6cdf6525af185cd417dc85fd680a386f0840d7135932a8b6839fdee4da6","impliedFormat":99},{"version":"e8dfa804c81c6b3e3dc411ea7cea81adf192fe20b7c6db21bf5574255f1c9c0e","impliedFormat":99},{"version":"572ee8f367fe4068ccb83f44028ddb124c93e3b2dcc20d65e27544d77a0b84d3","impliedFormat":99},{"version":"7d604c1d876ef8b7fec441cf799296fd0d8f66844cf2232d82cf36eb2ddff8fe","impliedFormat":99},{"version":"7b86b536d3e8ca578f8fbc7e48500f89510925aeda67ed82d5b5a3213baf5685","impliedFormat":99},{"version":"861596a3b58ade9e9733374bd6b45e5833b8b80fd2eb9fe504368fc8f73ae257","impliedFormat":99},{"version":"a3da7cf20826f3344ad9a8a56da040186a1531cace94e2788a2db795f277df94","impliedFormat":99},{"version":"900a9da363740d29e4df6298e09fad18ae01771d4639b4024aa73841c6a725da","impliedFormat":99},{"version":"442f6a9e83bb7d79ff61877dc5f221eea37f1d8609d8848dfbc6228ebc7a8e90","impliedFormat":99},{"version":"4e979a85e80e332414f45089ff02f396683c0b5919598032a491eb7b981fedfd","impliedFormat":99},{"version":"6d3496cac1c65b8a645ecbb3e45ec678dd4d39ce360eecbcb6806a33e3d9a7ae","impliedFormat":99},{"version":"9909129eb7301f470e49bbf19f62a6e7dcdfe9c39fdc3f5030fd1578565c1d28","impliedFormat":99},{"version":"95cdad1f759b74b014cea71cf1a68567b17e4165ec8139930305ba1e21b10a0c","impliedFormat":99},{"version":"7e4fc245cc369ba9c1a39df427563e008b8bfe5bf73c6c3f5d3a928d926a8708","impliedFormat":99},{"version":"3aa7c4c9a6a658802099fb7f72495b9ba80d8203b2a35c4669ddfcbbe4ff402b","impliedFormat":99},{"version":"d39330cb139d83d5fa5071995bb615ea48aa093018646d4985acd3c04b4e443d","impliedFormat":99},{"version":"663800dc36a836040573a5bb161d044da01e1eaf827ccc71a40721c532125a80","impliedFormat":99},{"version":"f28691d933673efd0f69ac7eae66dea47f44d8aa29ec3f9e8b3210f3337d34df","impliedFormat":99},{"version":"ae89fb16575dc616df3ff907c6338d94cfa731881ecef82155b21ab4134b3826","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"418ec48301149dd2c0db1dbd83305ae61fb8517accebdd4b02e72d66b27b6cc7","impliedFormat":99},{"version":"6b7c511d20403a5a1e3f5099056bc55973479960ceff56c066ff0dd14174c53c","impliedFormat":99},{"version":"48b83bd0962dac0e99040e91a49f794d341c7271e1744d84e1077e43ecda9e04","impliedFormat":99},{"version":"b8fd98862aa6e7ea8fe0663309f15b15f54add29d610e70d62cbccff39ea5065","impliedFormat":99},{"version":"ffa53626a9de934a9447b4152579a54a61b2ea103dbbf02b0f65519bfef98cdd","impliedFormat":99},{"version":"d171a70a6e5ff6700fa3e2f0569a15b12401ad9bc5f4d650f8b844f7f20ef977","impliedFormat":99},{"version":"b6e9b15869788861fff21ec7f371bda9a2e1a1b15040cc005db4d2e792ece5ca","impliedFormat":99},{"version":"22c844fbe7c52ee4e27da1e33993c3bbb60f378fa27bb8348f32841baecb9086","impliedFormat":99},{"version":"dee6934166088b55fe84eae24de63d2e7aae9bfe918dfe635b252f682ceca95a","impliedFormat":99},{"version":"c39b9c4f5cc37a8ed51bef12075f5d023135e11a9b215739fd0dd87ee8da804a","impliedFormat":99},{"version":"db027bc9edef650cff3cbe542959f0d4ef8532073308c04a5217af25fc4f5860","impliedFormat":99},{"version":"a4e026fe4d88d36f577fbd38a390bd846a698206b6d0ca669a70c226e444af1b","impliedFormat":99},{"version":"b5a0d4f7a2d54acbe0d05f4d9f5c9efaaeddc06c3ee0ca0c66aba037e1dca34b","impliedFormat":99},{"version":"fa910f88f55844718a277ee9519206abce66629de2692676c3e2ad1c9278bdfd","impliedFormat":99},{"version":"a886a5af337cce28fe3e956fd0ed921345933163f5b14f739266ba9400b92484","impliedFormat":99},{"version":"9ae87bd743e93b6384efbfa306bde1fa70b6ff27533983e1e1fe08a4ef7037b8","impliedFormat":99},{"version":"5f7c0a4aad7a3406db65d674a5de9e36e0d08773f638b0f49d70e441de7127c0","impliedFormat":99},{"version":"29062edaa0d16f06627831f95681877b49c576c0a439ccd1a2f2a8173774d6b2","impliedFormat":99},{"version":"49fcfda71ea42a9475b530479a547f93d4e88c2deb0c713845243f5c08af8d76","impliedFormat":99},{"version":"6d640d840f53fb5f1613829a7627096717b9b0d98356fb86bb771b6168299e2e","impliedFormat":99},{"version":"cee41a6af55d502f3863fe3238a75108dea16ac9c7339e96c2974ad3babd6d78","impliedFormat":99},{"version":"6bd4aa523d61e94da44cee0ee0f3b6c8d5f1a91ef0bd9e8a8cf14530b0a1a6df","impliedFormat":99},{"version":"e3ee1b2216275817b78d5ae0a448410089bc1bd2ed05951eb1958b66affbdec0","impliedFormat":99},{"version":"17da8f27c18a2a07c1a48feb81887cb69dacc0af77c3257217016dacf9202151","impliedFormat":99},{"version":"8395cc6350a8233a4da1c471bdac6b63d5ed0a0605da9f1e0c50818212145b5b","impliedFormat":99},{"version":"b58dda762d6bd8608d50e1a9cc4b4a1663a9d4aa50a9476d592a6ecdc6194af4","impliedFormat":99},{"version":"bc14cb4f3868dab2a0293f54a8fe10aa23c0428f37aece586270e35631dd6b67","impliedFormat":99},{"version":"2ac845b89cae82a74e549c7c1d9f983f993033ba14376ea83cd13b3e38a8537a","impliedFormat":99},{"version":"b85aa9cc05b0c2d32bec9a10c8329138d9297e3ab76d4dd321d6e08b767b33ed","impliedFormat":99},{"version":"b478cef88033c3b939a6b8a9076af57fc7030e7fd957557f82f2f57eddfc2b51","impliedFormat":99},{"version":"2fac70f99da22181acfda399eed248b47395a8eeb33c9c82d75ca966aee58912","impliedFormat":99},{"version":"a03b097607908fed59d8c33333707b2a5303d685fcb68a4f3a818c0cf7b178bc","impliedFormat":99},{"version":"f913cf36945b938119a3ab8c64f679342fb1ed2be81f664973240e231a2cdadc","signature":"ca7fc49c423b4f471691a59fffb551d8409f0d013f898c84f929e046315a31c8"},{"version":"c85d2a0601a6701862cd97e451211d5f193240d4fef2b41b3e7015fd05a06a92","signature":"7778690faccc7e92f8d9c44b653f1dc6c8e9aee886850bc739ccd6d318c96f69"},{"version":"432191296dec8c29c7d6d4274647e556572d159fa39c60766e1fd50ee2dd01f7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e14c33096d8602780eef9881ede9091cdfbedc45b961f1330e9707841400e085","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1bb003e3305170bc9ea41efbe467a86a2761599b5b0e07014f898489e12bf85e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8698b230c61a64b99b1f50029d0ff706c04f562c7599f56a6cdccf0ecdf1b49b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8759e271e76587e343e94d6761c105cd0332ea465e811ff8d8f34f6dc9844937","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9caf1b853ec9902e7ebe2712baf49730fb8d7a0d59faef32c4fdf7bf819203c8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e580c320ed8e26287c869d5f27f9fbe80b4d0ec07bb27f30527c8b44a3f09c0a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0327af4e65778a764ba69366d86c099d278375b8ee1b20907dab0396bb93d0cb","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2a1973f2becb9bcc8f5395307c4b53aedea97b9b5a58f61134cd7ebde27f1bc5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"258440ffdca8e893b9aa076943c6bb967b4bec131d4acd4689df1169ece1e022","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e47c805f91bb7ebc40b2fca9765fcff1240f70a1b8dd2eee88d540af5d9bd3a0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c5b5f3bd1e9c3156f2180b887d98110544968e0fd94efdec4cc35870b5a1e422","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a9f197afdc34064f31749c3cefb25bb8c30de7e82fea6c91de1c092fdf121b7f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"000e7c602ca490d7e013d83df90cc2cf535e9479acfbfb08681be9bcdfac3cd6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c4297cd04af5774216f2c016a937ca8756f7ea7cbb3b71d340fb2f871e0833e7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"93f70562e532af11c9a2427e1bac599c53bcb6dafce687872b75a2a8d10268db","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c5e4f77cfaefece632d3f6e5aa2194627803efdf95a8339c7a94e191a59c293d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"950624df19868c7183d104c7734b41d9436ce1f2dcdf8b2587fcb68db6923698","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"53e9e3dda3d289346131206d20ba6504e170a46b5351ab1aa794456b9171691c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cc9a988d2c3eac7b8b176b4575bad729ef08bd005a6ced9a0a7f0c3e7d3c9cb8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"54a49318286f75b99271b9855364cd9d3197dce682e728e9df83e43133fa09ae","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"07fcc9be98e12bd2f0f71a501a9bfbe2e53d38c50e8a5e84223fdd05bd8749c5","impliedFormat":99},{"version":"b887a4575db46263f82d7bde681bdc14526e4a2618a1172fef4206c467752d8f","impliedFormat":99},{"version":"fa2c48fd724dd8f0e11dfb04f20d727a2595890bfa95419c83b21ed575ed77d1","impliedFormat":99},{"version":"8e48713bdd38b35d69f9242d463744aed4950acb0fd56c22b33e2b8069f5b0fb","impliedFormat":99},{"version":"20be44c04e883d5fe7840d630a8d0656e95b00c2d6eebab9ab253275e7170534","impliedFormat":99},{"version":"3b674288fbdc0ff0ed2b7fc2839014c2ff209c84999fd06b6339347d0f976a85","impliedFormat":99},{"version":"cc2958d8abd86edcdf05542bb1b40ba659db5bc5a2560720cde08e8950e63bc1","impliedFormat":99},{"version":"e44e0ea195d68c0aea951809bda325322085008c0622fc4ee44db5359f37b747","impliedFormat":99},{"version":"21053659ad72fe51b9dfbde4fa14dbbac0912359fa37c9a5aa75f188782b2ee8","impliedFormat":99},{"version":"e297bdcb7db008d8d7d0481f2c935a9f7f0a338f41b7e5d1cec6a7744140a4ff","impliedFormat":99},{"version":"ef816ad6735a271c4c8035a1914c3a9beaaa90b3c174da312d26bce8736e56ec","impliedFormat":99},{"version":"7202026e24c5e5b7b6e5fe6b99455a91058ef82e74a5cdf6a3a4136b7ae9c080","impliedFormat":99},{"version":"87561cc8a2d7444adf4eed4b3f15bef8c6098cceb0e7617fba1cc45d187ac8c8","impliedFormat":99},{"version":"b52f7568bb9b00bcee6c4929938226541c09d86b849b8ba8db2fe2a8bba46f49","impliedFormat":99},{"version":"d42e1872d53ebb213e7bbe15e5fecdcaa9a490d2f2a2b035ee9cf4a6d3f1e44e","impliedFormat":99},{"version":"2262d96c02073dcb17a31ae8c738651ebff75f102522eae686f5462658b687a8","impliedFormat":99},{"version":"fd40c454d56e1d14e60ce13f3bc60c7fdb9bc70c6ef9c7bfafec1f0eb5d8075b","impliedFormat":1},{"version":"155ced96d70533d95c481061e2691802fae7cfb96869d7c85ac8622f53b51cb7","impliedFormat":1},{"version":"3689b6f599705380d2ceaccb4e58eec5c9439a7a5635d6e37c1ba66ed7c34b35","impliedFormat":99},{"version":"6cf0d3cc668cdbb01358ef7c2e41bbcc14d8d8e4ca424a1b6d2838d9a1cae8ce","impliedFormat":99},{"version":"b7bd70307671536c735389e0a1748555c438c392dfceb6f2ac3aa0a50ca82530","impliedFormat":99},{"version":"661c403f4c5bbf259e03f4fdc3a9e3f51ad562684f702e1b842e6c5336de0752","impliedFormat":99},{"version":"415dd92247ca21db682f75ba7e6289ab2d093cd34c6f471c6c789afd047ad4f3","impliedFormat":99},{"version":"4fc633107330ab389f07f86af80192ac697a68a586ad76dcf43304410e7cfb6a","impliedFormat":99},{"version":"828f8b38dff4e5c47b0112cb437da379c720f0360d40d392457c9775f30c8ae8","impliedFormat":99},{"version":"07c859c5e9a953cb9f6f6d796f68911c1e0e0709187fdd2326822a3c14ee9965","impliedFormat":99},{"version":"337a57006982a97cef4fc8b8ae60c5f0d3c821dbe23aecaf7f372bef569c92ab","impliedFormat":99},{"version":"3a6b10911970b0588c5a287642e4c6be91c16b96407a499c6dc81a96daf1085a","impliedFormat":99},{"version":"5964182f2a04bf1343710b40c73877124fdae476d588ade8883e05be3616a5e0","impliedFormat":99},{"version":"32aa20fd978847e617304582657723f0dcd1809de9b087ed0ad5b7090b1a47c1","impliedFormat":99},{"version":"d506c22df30f41fc14199ad23fd4b093e69876c3d1af20358856b2d0769d5b7a","impliedFormat":99},{"version":"c07898a85c15b3b636506443e88fe6d85bbd568c0bb504a9ae5cb371d58f6319","impliedFormat":99},{"version":"576e16db43be11f9c63f88f9dacea43ea236b0ac8d69fb415564add001dbc516","impliedFormat":99},{"version":"44c5d9f47e85552ea141ddc1b0af65903297624f0ff2227372d5ce31ff0380c6","impliedFormat":99},{"version":"126c84b38fb99188436b4c61e4cc5d8008247f687f9ddb5517358f2128c938d6","impliedFormat":99},{"version":"1f3952b74b8c766a2e602a0ba2db19d3d872d00bab4e01746c6b7229c585086c","impliedFormat":99},{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"26c57c9f839e6d2048d6c25e81f805ba0ca32a28fd4d824399fd5456c9b0575b","impliedFormat":1},"39c379489251d77c0b809dc4724e673528497d8bc4d7efec4de964c4dcf333bc","73f4b23131fe942640bc2692ce79eeefeaed8b3cf9cba76bb2549926b4936487","cd4072a3cb2f470137072459fd067b4ef554337fb48b829db5ed4689a233f5f6","41ba05bfc2edcfeb4cb84c86bb1fccb04d7ce29814d60a965d93db16e6a5533d","a81928c211f88efbd3de0c31dac861f124984846ee2c4253741e974e9769f470","c8351b50cef3bf121d64f6a987c03cc14f672e38ef2340f689f093ac54b1799d","32e7c97ed80f6b386638373e8957f824cfbf737efac254e4288e8154d4a73767","7a93e65a587704261eb2035d701d1b0d5c4cdcffc11a4b26bdfeb3bf4789f1c3","6731f00bf95eb1225e131749cead14708ecbb0b4db80492685ec58b46505a7b3","02300dfd210f47865f33d8b2a4dcb006da6f4980eeb837e103ace98d4d9a9568","a003936c539a2c7755c16f825fca73cb6917100416a5d963d2634aaec50388f3","e4128441df7aa1b39ef373edf2a6be67e9d8d4e46af3378a7e405afd64a8f42f","525c4bb2c051987be64df0e92e1d90174912b219bf541e24ffbc4a3406de49e8","be39be7aa02f2123b77ccf02772f864cc8345e0b332335784aab10e81a705c7f",{"version":"08bd56e0588ca86f196ebcc9fa2692cdc54a33f9898eaa96d07fcb08e469a194","impliedFormat":1},{"version":"aeb3aaa10886b6546660b705197ed5ed9b291c3723e6f58d3df69feeeabb878b","impliedFormat":1},{"version":"638262138fd431dc3253891dbd7fad0aa50037096c1e4423a30719b896f8f9ce","impliedFormat":1},{"version":"80ac8ee26de343b7ca9da72cefdb2672ed2b0d3d89da28fff4beb8e76a7d2037","impliedFormat":1},{"version":"4aa7fdc017a0a097c71ada2ca187e1475c987b4f933960c0792eb143997e4709","impliedFormat":1},{"version":"3c546afeef41bb1f9461ab8fa2c03a47efe7270624fd45073ab3942ee9713959","impliedFormat":1},{"version":"e2c8e88d98dc73c922d7bfae116a2213750e8356344f1475cf5609191e9554e5","impliedFormat":1},{"version":"022b875826f17cae23d8c42346f71567dd3641eac42de92707f2cd9e22af0e2e","impliedFormat":1},{"version":"9c99366141847b2d0e47278f799bf652ee21d6c0948f570665dda5d57c24a616","impliedFormat":1},{"version":"5fbe5df6723eb54ad15c4e6572c378eced978e9938da1dcd7d8e1120994e231b","impliedFormat":1},{"version":"cad354bd9addfe6641096887f6eeac3209624a971dd300510d3157e9dd949e18","impliedFormat":1},{"version":"b6d492805801eb5f74311758be130c73b854b787842c932ae1985c7ec90386cc","impliedFormat":1},{"version":"374993f45883f2a59d96dc2040a15da6475f28426167ae2c581708a2801537af","impliedFormat":1},{"version":"d48d487df0c516a79f1ed7161c24957ef7c5fe9daa6b65ce9c3ad53b722fb7dc","impliedFormat":1},{"version":"47bcd4882c5b6fdf44b594d5cc8c35d79bedfb02345589ffe2c37cf9b53ce1ea","impliedFormat":1},{"version":"53ff686121f6095df3a4ed9bad160a23b3d06f8a4396e5d55e333c70bae70fdd","impliedFormat":1},{"version":"bb65ffa4af326524e0ffa0721d9f2d9b50e17a84379ee9f4fdc260164aac495f","impliedFormat":1},{"version":"15645b5a9f19802397a2c8454aa79ed80dbe196f1d9860c846f9ccc7e74140a7","impliedFormat":1},{"version":"918f62963d8acdf74442cbfe8707ffeb00bb9fdea46c9f002be0acdc52871711","impliedFormat":1},{"version":"201750f32c5eeb46ca683b6bdcedc5732e1f7b6565172488529f7327ac28f0f1","impliedFormat":1},{"version":"1d567d12f550acc452d0585b43ba1cc99119eef69bc9f54777a546f86b29ffbf","impliedFormat":1},{"version":"c474a8f49174bb27c05cef03a22259c8e4559c1fe39431e3cfaeb713ecb024ed","impliedFormat":1},{"version":"efb40e9f34f6fef8b8252035f150ad34d63155df5d843a9efa14ecb293ec4e41","impliedFormat":1},{"version":"1ffbc2f979a8ec11a126314d693ea79637e9cfd1388159a41aee45fe42c71fdb","impliedFormat":1},{"version":"6d02f48cb96396733e20ac466903d3fa9947a16bc421f268a187c5e8e476fd3a","impliedFormat":1},{"version":"a70e640de41b5c58911da48c3490201a305555fd829ef80159c4393023a50c4b","impliedFormat":1},{"version":"b83112b5965cd9bb1d70605a321a50262a3904cf6bec0baff097569c1761ba04","impliedFormat":1},{"version":"9ebbf1aa81848c437e3a147319a569b9ae62f58c8e6cf369edb5ed847afb036d","impliedFormat":1},{"version":"12c83647be78c827ac5d76506832bb2ff724940335ab5ef58eb612b6078bbc87","impliedFormat":1},{"version":"1f9121bb8d3b31113e95fb44cc506c756c8d6db7c06fbb26f9a536de376662cb","impliedFormat":1},{"version":"fb4b133415a7e8238ea049926a23c300e048fa8046a53c1ff9b59406af386fac","impliedFormat":1},{"version":"c4aac5d09d46f6d569ffd391365250ee22cc055dc62c0d270367f46691f55f92","impliedFormat":1},{"version":"0bb370c6b404f6fd6190ccf5006f441b2c383d7c5f8efe1215eb2dce6ffd948f","impliedFormat":1},{"version":"01ea993e1b2831936d08c321c84839dd232ecd63d041e2aaadbbe124d7740e20","impliedFormat":1},{"version":"81a6b55cc52b775adad47f0d86073ca1dcd07992df5b1ae6d65a237d5574ca2f","impliedFormat":1},{"version":"49d5de13372a76069a08ae800ace5b23be17dd57d8b44211e28394defdf8ee80","impliedFormat":1},{"version":"6c1c479e7287e53b8dee6a9054d2096edf4fa97e65db3a69b09620a245cda043","impliedFormat":1},{"version":"ec2c3edf7cd39a72164e1cb032c4869d04b31670c77028b75eb6ca1f479833e4","impliedFormat":1},{"version":"cc8a30aee57adcdcc414d28ca014fd9630b4f233ffe2ea5af8fb06044a1d9ded","impliedFormat":1},{"version":"d54a9b317f57afc5faedd216f56aac9899f6d1349ebd01c2154e18eabb8c5749","impliedFormat":1},{"version":"b10470e7e904bc2b1c06b7c3ad769a3f5ebf0d10ce1e483d970f6ab0aa763ae4","impliedFormat":1},{"version":"c6bfd4ae8f9c297603a5451afd545ab2bcada266ea1566951a022f0a23ce2e32","impliedFormat":1},{"version":"25f912ec6cca1c5fe09514a3a8ffc7ff8e5add689bbd8171daeaa7798902b0ff","impliedFormat":1},{"version":"f3e3bd42ba0e0de28405bfb1b99c7a389e6387ff46e985a428d22948180a647a","impliedFormat":1},{"version":"5e1543db1bddecd840231311145bdfa20e4ef7cb5a7b7b1bf62939a1112f0be2","impliedFormat":1},{"version":"d7552881688adb3d1ebacdc34f286b5ab16174ff14be914c011c8c4c091f56fb","impliedFormat":1},{"version":"e223b9379dc8faef3a2109f91b0e447fd69f61b99eeb54a49c26602b0b2264ae","impliedFormat":1},{"version":"4ff051a3535d98a64099359b15ae0a71c129f1f5c9ff2386f179fc443ad8a292","impliedFormat":1},{"version":"60969b4b3429267c2d8cc8b4d72f810662712bd57c982c07fca19c4dc6267a2f","impliedFormat":1},{"version":"eaa9088bdceb60bd1282fe92cafd8bbedce2ffabcee4848564f82531c4f0918f","impliedFormat":1},{"version":"3f361222b9efcd94ec3a3298c552a65cbc5a07ef0841791dcbba252103746f51","impliedFormat":1},{"version":"6e4f7983e80803ef22c3fe2613f36a096e046b990a8f73636763e60332c58af0","impliedFormat":1},{"version":"dd0660556f2d728dde0cb85b9f2f28b54a90a89b8a83b3ff93a0948125237e09","impliedFormat":1},{"version":"04399d897b48a07a4e62617a34fafd9d035e22ce941625f908dbca874284beb8","impliedFormat":1},{"version":"9fa921f6d869589739d0452e4bffa5f73c64311f757974c98af07e05be0449a7","impliedFormat":1},{"version":"5d67354078b66418c05d378a7ccabfd040692cccd02351efccc2f1ada473a00c","impliedFormat":1},{"version":"fba164f651974e6a41b8c8259d66e5a642a5235f45a9584bc037371810092738","impliedFormat":1},{"version":"8de28ca8b0a0544359461f433f5cc7d9d3f5f9eb07b5c54a20c47e80dd52e351","impliedFormat":1},{"version":"19606a6077e2ec02292fc10f4a5d974a23ae4548092fb9c6f2b11f6d678b87bc","impliedFormat":1},{"version":"4a937967fa75e08dd9f4e8999f36c7c99f69556f94147602ce9d065d2cb3d222","impliedFormat":1},{"version":"9061248ddc3ababcabe72c13b4e3ffa932c8cb3199b6a205f1e5ce8f344bdbdc","impliedFormat":1},{"version":"5d0637ff3f01a71665d89ff827b52802c962737f3394888e504730a42c6c3f96","impliedFormat":1},{"version":"00400a37f08853f36b6ffce0150094aa832b534eeec5eb960b9c1ac48f84d06b","impliedFormat":1},{"version":"50de4a87b7a4833126c84def8f08669b6d8aa298b94745be769969c998ab73d4","impliedFormat":1},{"version":"97fc391ea531e7cf09c22fae61a9a10af2bdeb08047eee455c1de857df55fd83","impliedFormat":1},{"version":"f12e5f4c39f9d7d3cab6c75a1fba633e73911766194d1c393be6a31bb4a8cf06","impliedFormat":1},{"version":"e1e77c898296d762e4d90d1ad5b26074bf4f0b8e3f55c8dda8615ab1af1c6e66","impliedFormat":1},{"version":"073ca26c96184db9941b5ec0ddea6981c9b816156d9095747809e524fdd90e35","impliedFormat":1},{"version":"e41d17a2ec23306d953cda34e573ed62954ca6ea9b8c8b74e013d07a6886ce47","impliedFormat":1},{"version":"241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","impliedFormat":1},{"version":"2ae3787e1498b20aad1b9c2ee9ea517ec30e89b70d242d8e3e52d1e091039695","impliedFormat":1},{"version":"c7c72c4cffb1bc83617eefed71ed68cc89df73cab9e19507ccdecb3e72b4967e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","impliedFormat":1},{"version":"38b38db08e7121828294dec10957a7a9ff263e33e2a904b346516d4a4acca482","impliedFormat":1},{"version":"a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","impliedFormat":1},{"version":"8a2aaea564939c22be05d665cc955996721bad6d43148f8fa21ae8f64afecd37","impliedFormat":1},{"version":"e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","impliedFormat":1},{"version":"e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","impliedFormat":1},{"version":"95950a187596e206d32d5d9c7b932901088c65ed8f9040e614aa8e321e0225ef","impliedFormat":1},{"version":"89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","impliedFormat":1},{"version":"e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","impliedFormat":1},{"version":"71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","impliedFormat":1},{"version":"7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","impliedFormat":1},{"version":"78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","impliedFormat":1},{"version":"5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","impliedFormat":1},{"version":"f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","impliedFormat":1},{"version":"9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","impliedFormat":1},{"version":"3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","impliedFormat":1},{"version":"2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","impliedFormat":1},{"version":"4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","impliedFormat":1},{"version":"61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","impliedFormat":1},{"version":"64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","impliedFormat":1},{"version":"0521108c9f8ddb17654a0a54dae6ba9667c99eddccfd6af5748113e022d1c37a","impliedFormat":1},{"version":"c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","impliedFormat":1},{"version":"ee764e6e9a7f2b987cc1a2c0a9afd7a8f4d5ebc4fdb66ad557a7f14a8c2bd320","impliedFormat":1},{"version":"0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","impliedFormat":1},{"version":"5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","impliedFormat":1},{"version":"e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","impliedFormat":1},{"version":"b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","impliedFormat":1},{"version":"6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","impliedFormat":1},{"version":"d7058e75920120b142a9d57be25562a3cd9a936269fd52908505f530105f2ec4","impliedFormat":1},{"version":"6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","impliedFormat":1},{"version":"0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","impliedFormat":1},{"version":"91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","impliedFormat":1},{"version":"db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","impliedFormat":1},{"version":"758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","impliedFormat":1},{"version":"2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","impliedFormat":1},{"version":"6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","impliedFormat":1},{"version":"a472a1d3f25ce13a1d44911cd3983956ac040ce2018e155435ea34afb25f864c","impliedFormat":1},{"version":"b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","impliedFormat":1},{"version":"792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","impliedFormat":1},{"version":"a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","impliedFormat":1},{"version":"93181bac0d90db185bb730c95214f6118ae997fe836a98a49664147fbcaf1988","impliedFormat":1},{"version":"8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","impliedFormat":1},{"version":"b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","impliedFormat":1},{"version":"4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","impliedFormat":1},{"version":"cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","impliedFormat":1},{"version":"75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","impliedFormat":1},{"version":"b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","impliedFormat":1},{"version":"c54166a85bd60f86d1ebb90ce0117c0ecb850b8a33b366691629fdf26f1bbbd8","impliedFormat":1},{"version":"0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","impliedFormat":1},{"version":"80f23f1d60fbed356f726b3b26f9d348dddbb34027926d10d59fad961e70a730","impliedFormat":1},{"version":"cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","impliedFormat":1},{"version":"cc20bb2227dd5de0aab0c8d697d1572f8000550e62c7bf5c92f212f657dd88c5","impliedFormat":1},{"version":"06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","impliedFormat":1},{"version":"860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","impliedFormat":1},{"version":"f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","impliedFormat":1},{"version":"d0da80c845999a16c24d0783033fb5366ada98df17867c98ad433ede05cd87fd","impliedFormat":1},{"version":"bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","impliedFormat":1},{"version":"fd9a991b51870325e46ebb0e6e18722d313f60cd8e596e645ec5ac15b96dbf4e","impliedFormat":1},{"version":"c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","impliedFormat":1},{"version":"a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","impliedFormat":1},{"version":"d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","impliedFormat":1},{"version":"fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","impliedFormat":1},{"version":"063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","impliedFormat":1},{"version":"314e402cd481370d08f63051ae8b8c8e6370db5ee3b8820eeeaaf8d722a6dac6","impliedFormat":1},{"version":"9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","impliedFormat":1},{"version":"4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","impliedFormat":1},{"version":"656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","impliedFormat":1},{"version":"3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","impliedFormat":1},{"version":"1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","impliedFormat":1},{"version":"af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","impliedFormat":1},{"version":"70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","impliedFormat":1},{"version":"af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","impliedFormat":1},{"version":"cefc20054d20b85b534206dbcedd509bb74f87f3d8bc45c58c7be3a76caa45e1","impliedFormat":1},{"version":"ad6eee4877d0f7e5244d34bc5026fd6e9cf8e66c5c79416b73f9f6ebf132f924","impliedFormat":1},{"version":"4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","impliedFormat":1},{"version":"f4749c102ced952aa6f40f0b579865429c4869f6d83df91000e98005476bee87","impliedFormat":1},{"version":"56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","impliedFormat":1},{"version":"8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","impliedFormat":1},{"version":"05f56cd4b929977d18df8f3d08a4c929a2592ef5af083e79974b20a063f30940","impliedFormat":1},{"version":"547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","impliedFormat":1},{"version":"b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","impliedFormat":1},{"version":"3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","impliedFormat":1},{"version":"140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","impliedFormat":1},{"version":"0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","impliedFormat":1},{"version":"cb46b38d5e791acaa243bf342b8b5f8491639847463ac965b93896d4fb0af0d9","impliedFormat":1},{"version":"7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","impliedFormat":1},{"version":"af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","impliedFormat":1},{"version":"006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","impliedFormat":1},{"version":"7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","impliedFormat":1},{"version":"339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","impliedFormat":1},{"version":"34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","impliedFormat":1},{"version":"9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","impliedFormat":1},{"version":"18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","impliedFormat":1},{"version":"5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","impliedFormat":1},{"version":"5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","impliedFormat":1},{"version":"907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","impliedFormat":1},{"version":"ce60a562cd2a92f37a88f2ddd99a3abfbc5848d7baf38c48fb8d3243701fcb75","impliedFormat":1},{"version":"a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","impliedFormat":1},{"version":"f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","impliedFormat":1},{"version":"75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","impliedFormat":1},{"version":"9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","impliedFormat":1},{"version":"b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","impliedFormat":1},{"version":"b6e2b0448ced813b8c207810d96551a26e7d7bb73255eea4b9701698f78846d6","impliedFormat":1},{"version":"8ae10cd85c1bd94d2f2d17c4cbd25c068a4b2471c70c2d96434239f97040747a","impliedFormat":1},{"version":"9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","impliedFormat":1},{"version":"b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","impliedFormat":1},{"version":"e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","impliedFormat":1},{"version":"ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","impliedFormat":1},{"version":"8776a368617ce51129b74db7d55c3373dadcce5d0701e61d106e99998922a239","impliedFormat":1},{"version":"5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","impliedFormat":1},{"version":"9108ab5af05418f599ab48186193b1b07034c79a4a212a7f73535903ba4ca249","impliedFormat":1},{"version":"bb4e2cdcadf9c9e6ee2820af23cee6582d47c9c9c13b0dca1baaffe01fbbcb5f","impliedFormat":1},{"version":"6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","impliedFormat":1},{"version":"423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","impliedFormat":1},{"version":"fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","impliedFormat":1},{"version":"2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","impliedFormat":1},{"version":"c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","impliedFormat":1},{"version":"02ae43d5bae42efcd5a00d3923e764895ce056bca005a9f4e623aa6b4797c8af","impliedFormat":1},{"version":"db6e01f17012a9d7b610ae764f94a1af850f5d98c9c826ad61747dca0fb800bd","impliedFormat":1},{"version":"8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","impliedFormat":1},{"version":"24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","impliedFormat":1},{"version":"33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","impliedFormat":1},{"version":"0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","impliedFormat":1},{"version":"16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","impliedFormat":1},{"version":"8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","impliedFormat":1},{"version":"d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","impliedFormat":1},{"version":"97f9169882d393e6f303f570168ca86b5fe9aab556e9a43672dae7e6bb8e6495","impliedFormat":1},{"version":"7c9adb3fcd7851497818120b7e151465406e711d6a596a71b807f3a17853cb58","impliedFormat":1},{"version":"6752d402f9282dd6f6317c8c048aaaac27295739a166eed27e00391b358fed9a","impliedFormat":1},{"version":"9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","impliedFormat":1},{"version":"fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","impliedFormat":1},{"version":"85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","impliedFormat":1},{"version":"84794e3abd045880e0fadcf062b648faf982aa80cfc56d28d80120e298178626","impliedFormat":1},{"version":"053d8b827286a16a669a36ffc8ccc8acdf8cc154c096610aa12348b8c493c7b8","impliedFormat":1},{"version":"3cce4ce031710970fe12d4f7834375f5fd455aa129af4c11eb787935923ff551","impliedFormat":1},{"version":"8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","impliedFormat":1},{"version":"62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","impliedFormat":1},{"version":"c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","impliedFormat":1},{"version":"8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","impliedFormat":1},{"version":"132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","impliedFormat":1},{"version":"df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","impliedFormat":1},{"version":"33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","impliedFormat":1},{"version":"ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","impliedFormat":1},{"version":"a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","impliedFormat":1},{"version":"eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","impliedFormat":1},{"version":"0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","impliedFormat":1},{"version":"aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","impliedFormat":1},{"version":"0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","impliedFormat":1},{"version":"40f06693e2e3e58526b713c937895c02e113552dc8ba81ecd49cdd9596567ddb","impliedFormat":1},{"version":"4ed5e1992aedb174fb8f5aa8796aa6d4dcb8bd819b4af1b162a222b680a37fa0","impliedFormat":1},{"version":"d7f4bd46a8b97232ea6f8c28012b8d2b995e55e729d11405f159d3e00c51420a","impliedFormat":1},{"version":"d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","impliedFormat":1},{"version":"e4f4f9cf1e3ac9fd91ada072e4d428ecbf0aa6dc57138fb797b8a0ca3a1d521c","impliedFormat":1},{"version":"12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","impliedFormat":1},{"version":"340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","impliedFormat":1},{"version":"c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","impliedFormat":1},{"version":"7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","impliedFormat":1},{"version":"5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","impliedFormat":1},{"version":"9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","impliedFormat":1},{"version":"1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","impliedFormat":1},{"version":"8018dd2e95e7ce6e613ddd81672a54532614dc745520a2f9e3860ff7fb1be0ca","impliedFormat":1},{"version":"b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","impliedFormat":1},{"version":"0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","impliedFormat":1},{"version":"3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","impliedFormat":1},{"version":"032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","impliedFormat":1},{"version":"69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","impliedFormat":1},{"version":"0e704ee6e9fd8b6a5a7167886f4d8915f4bc22ed79f19cb7b32bd28458f50643","impliedFormat":1},{"version":"06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","impliedFormat":1},{"version":"904a96f84b1bcee9a7f0f258d17f8692e6652a0390566515fe6741a5c6db8c1c","impliedFormat":1},{"version":"11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","impliedFormat":1},{"version":"2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","impliedFormat":1},{"version":"1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","impliedFormat":1},{"version":"1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","impliedFormat":1},{"version":"07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","impliedFormat":1},{"version":"619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","impliedFormat":1},{"version":"f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","impliedFormat":1},{"version":"f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","impliedFormat":1},{"version":"350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","impliedFormat":1},{"version":"eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","impliedFormat":1},{"version":"45b74185005ed45bec3f07cac6e4d68eaf02ead9ff5a66721679fb28020e5e7c","impliedFormat":1},{"version":"0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","impliedFormat":1},{"version":"c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","impliedFormat":1},{"version":"5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","impliedFormat":1},{"version":"ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","impliedFormat":1},{"version":"9bf18d0ce20f7a353aaa10f3bb5e30c848c07f7047336e924d085459c00c993a","impliedFormat":1},{"version":"89ef5d771ac372abd1f5edc3d33109f31c134d5a872abd7b79b03f992bb707d0","impliedFormat":1},{"version":"0646812335695e5bb3e79527ceee0fa0cabfda07d70cdf2fbca99a9bad45273f","impliedFormat":1},{"version":"1f19c96e0b107c9235e952bf4934eb7b8be55df04ed4ce0427ed5d4a52bd165b","impliedFormat":1},{"version":"7b3664e21e08e631e99c43c38ac512b0d6939729df86ca66c58bef8e910ce5d4","impliedFormat":1},{"version":"c034ed577f9e54eec587a9460e18de99042d2d46d2fce55a166993100de706f9","impliedFormat":1},{"version":"bb0ea48e9a828b1d522218e815c2f3a969571908e082f57f6f0cf24b5b589453","impliedFormat":1},{"version":"45dc6c23327bce116ff2a9fa2f0429b50a0d62ef6eb6c601e6b7824927edd273","impliedFormat":1},{"version":"31f1ecd8bf0fbdd95553b23ac129c8039507e4c615e757eec727d8c316a0aa87","impliedFormat":1},{"version":"afde78a3b377e0e82df76dd72e383829dcb33c51a84990bfdedc825644d3ae43","impliedFormat":1},{"version":"ebcaa3f55b788b8fc04d7c9e3c41a736748373f3fdd3ae5e55fb06cc385e8123","impliedFormat":1},{"version":"d210cc1986d1787ad00b8235168f3a16e28aeeab05f74e334f9f3e2d6ba94c9d","impliedFormat":1},{"version":"c1bdcb2bce6c1c9601f35cc397fcac1988d3644d86d52e9214bddc96d5356b34","impliedFormat":1},{"version":"d4cc344020cc5995cb16916027dbb48a4659de3d96ed3a2f37869376b4819a8a","impliedFormat":1},{"version":"d2d8b08f2a96400fc93aca226293603e03982d6d87336edbdc1a8bcb9d893f8c","impliedFormat":1},{"version":"17b25e5eaa4436940e7e86315ee3bcc7359938e51646d5421e45dd44aeb1ff10","impliedFormat":1},{"version":"694c2ccda8c028ffc9eed496acff36f08f1fcd4bb1f00f5a3f66e757d136cccf","impliedFormat":1},{"version":"ab0f92c242726fc5bcb917067bdebeea53fd9004d46f676ec057f0d5b66dc476","impliedFormat":1},{"version":"d34d618328653e883cab33d24606bb94397fdb68fb7e38e011f85df2fd3cc845","impliedFormat":1},{"version":"d31f80c5a66c2347e8cb53d6f49445eab7f7c2d6a662d800c7b9a9fe1f2d9c47","impliedFormat":1},{"version":"5b9172039d573cab240aae6b71e1e93772a3f4c45341845c6cf1a85d8aa36df2","impliedFormat":1},{"version":"fae38e81445b9d17eb0f4920f4550b8ecf48f2432da619b3e08b8609d6e6cb0f","impliedFormat":1},{"version":"75dd20f711b026dec3b234bbab5a4bd4340e19345b25a4a4b7d2f647519cce80","impliedFormat":1},{"version":"018ea95d86bdbb345b943639aabcb324af2398082d0d54a618c75250e52a749c","impliedFormat":1},{"version":"af1ec9c12553b1da20d8ec24678c89221aefb8309cd7bbe62ba160c2dea1c9ad","impliedFormat":1},{"version":"a9373d52584b48809ffd61d74f5b3dfd127da846e3c4ee3c415560386df3994b","impliedFormat":99},{"version":"caf4af98bf464ad3e10c46cf7d340556f89197aab0f87f032c7b84eb8ddb24d9","impliedFormat":99},{"version":"7ec047b73f621c526468517fea779fec2007dd05baa880989def59126c98ef79","impliedFormat":99},{"version":"8dd450de6d756cee0761f277c6dc58b0b5a66b8c274b980949318b8cad26d712","impliedFormat":99},{"version":"6b5f886fe41e2e767168e491fe6048398ed6439d44e006d9f51cc31265f08978","impliedFormat":99},{"version":"56a87e37f91f5625eb7d5f8394904f3f1e2a90fb08f347161dc94f1ae586bdd0","impliedFormat":99},{"version":"6b863463764ae572b9ada405bf77aac37b5e5089a3ab420d0862e4471051393b","impliedFormat":99},{"version":"904d6ad970b6bd825449480488a73d9b98432357ab38cf8d31ffd651ae376ff5","impliedFormat":99},{"version":"2535fc1a5fe64892783ff8f61321b181c24f824e688a4a05ae738da33466605b","impliedFormat":99},"04cf38bf94abd3fe1b51e90227e6e235ca74776f6fc6af718bfc149e7424f582",{"version":"caf4af98bf464ad3e10c46cf7d340556f89197aab0f87f032c7b84eb8ddb24d9","impliedFormat":99},{"version":"71acd198e19fa38447a3cbc5c33f2f5a719d933fccf314aaff0e8b0593271324","impliedFormat":99},{"version":"2fbe402f0ee5aa8ab55367f88030f79d46211c0a0f342becaa9f648bf8534e9d","impliedFormat":1},{"version":"b94258ef37e67474ac5522e9c519489a55dcb3d4a8f645e335fc68ea2215fe88","impliedFormat":1},"e69cfc27d78c9ef31b248ab8ea4fa54327c1038843f70efb5cd85d54c0bf1e0e","9fd5483240c6cfe26f65ebe248e1a7eb6e53410f4fc8c6e96610e7468848be0e",{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"a356d9a0ba90d10ec6c0fa33386c0b0e2843fd6f0a49513c44f7809926ac25ff","impliedFormat":1},{"version":"c27f6293397e2ea1131b49a4d3a6f9bca9c8023b9d1ddef0f677c61386fa1728","impliedFormat":1},"702c33c54bd57989de6ba0672ec3f6fb1596b774d4aa1b0359471b24efbe5a51","a80de37d9d51ba02234a140dc6dd7a9659d581412fafb9df2230f1fb7b28615a","65b0a526c950a70110774408c7f80cbbcd1050444e4c97f8899796b0fe85d8fd","73680481495f60edc549cf1fc1a0c40b0f20893a65c4f6b2c0b4119a0917f9a3","c1ee9b8fe59fbb6d0df5b2c6c2c2cbd774634d06c61a11f15e972897d84bb7ec","9673e1d29c53a28066c1d7c77543339f942571af2b91c1ea61981bc0a3daa087","46400de456ae746bfdc83b0cddfe658480a67a2a6d330d3a4c708fb3da1af5bb","8bf79db11966e9a6c3cb24a63fe11f91a47760ea4721edb651c7711f4bbbb3b2",{"version":"bbac61c78e1b1eb7f8435e1e5b2e2c339b50d7799aa4fc37f0cce022a4999ffa","signature":"58a53b4aa4b9d295f26b958dff0d4e310a455f1a20c03cd62de611e505caf1ab"},{"version":"ba10a313e4440bd980505cacb2c920e02d36dcb956763882e83715e4db88288d","signature":"684ee491b675e6b23b4a5ce57e90601b47b323d745cace07a9184ca285606dd5"},{"version":"160e84e5f8b45397e7191daa34b7bb1f1f2b6a8b5ef8b2ded03e8d25e05c0fef","signature":"9e901df45cd8bf96734e5ff217655167e923ea32600e4a05e853b791f139a96c"},{"version":"71528f3a59611d5ea66086489c21e987f8945ee59f5cbc9fcde2e536a496b6b0","signature":"f6aebd7cfce94a41ef8325969db3e4bb6aab3abbbb0e1697af8b3b97ef2bc6be"},{"version":"568c26e04942bc025342240f0fadc1463ce47171909302d05024a7f77a31a7c2","impliedFormat":99},{"version":"f18c38545e7c3e5f990071fdd6a2673630472430082fc5f6fb760a58a40cc09f","signature":"db358b6b2a8d38be60cd2baba821733cbd84ebe56319644927ee22d4c07a602d"},{"version":"9bc62e7922a16903d16a51c7902186b68b35182ad67476f0a20ad0d57c80b837","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7ebf997c5df4e8e3a22bc38553ceac20ece045291857db0b26773f59713298cf","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"29a8fd54565e59f178f7a73cf2da2fe26c7eb23b86923f13aab3400d4f08d67e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"29862711141ae90f542d8c5190b58747d5134f9ec604b5f1aa5a4e58dc40ef15","signature":"583462e01b4ec7c547107308e1505487458253cf4dd4266a970a6e7240359234"},{"version":"185754a6cc160f3268f702a8323934c79c07a5cf6afcd80f7a13dc43ae638fd6","signature":"00a5a375c05d3a130d7da9e5da563ce4ed2753e7e7f2988eb7e98005bc928ab0"},{"version":"cc562e355340f742084220abe01feb01f77ea3b997ae9c540eff648bf37f03eb","signature":"ed42e7ba0422f9c3a1e645604844e13d91c2d7092fab357d39ae5999b6c9f14d"},{"version":"97991aea0a675693773eb545055369004d18e35ed1dcfae48de09d9c2166c703","signature":"ae201b6a7ecf8e415450eee9cd2ec5ac373da31346c681c470500cfd1805c66c"},{"version":"ee05f1b086657712fbe5473a12052f6eb4a6053d78e6ca8cd044c485e44c3cd1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"69dbe5d61d2f298046513598f55bd1e719c50dfd6af2f9feea6fc84f8aa3c4bf","impliedFormat":99},{"version":"6a78643fbbf1b0bd954a53d4edfa217b6a5f92d357fa9cdf8d2ee430f96b9472","impliedFormat":99},{"version":"2ebe2f0255b6f301ba7bc0e10c3dda289c6cf1876f289f7a8f6444613d988e5e","impliedFormat":99},{"version":"012b5083a47ccbe050763f8df2be89daa50c1606e9a0bb31f64276d508c02d78","impliedFormat":99},{"version":"fc7c3943608aec142abb8c28f5892a1faaf255d48e1137ff2b2e0be0afdd479e","impliedFormat":99},{"version":"e8fc8d807069e0f94d481106510fae66792e6a66f330c45fd3c769053cfa5608","impliedFormat":99},{"version":"4c57148a2cb7736c37a7ca128fc8adec5a683413663c17604a28da143ca1a65b","impliedFormat":99},{"version":"37a5b233da6141bd6cd4e78dd8bcd9c0dd29e33ec10707cb57c66304cf743e46","impliedFormat":99},{"version":"c8e1a516135ad6fd057ddc5a01036067ff3b43b3277d18f1eb4c5df22630b50b","impliedFormat":99},{"version":"7d8b55f6b9e7a7a003063ecd596c72c23fe6d8225d6cf3e00e8b375059123513","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"4a4b36b9855372942bd8d67f02b05a40e8dac90396dca5c94bd63342928e50e9","signature":"a0c520d77ef639357625bf1daa30bfc6951e12fbe787bcc6c7bfdbbb02d96784"},{"version":"e3e58048ae4dead8a7c819c9e734f8b4bb890bb9e4b37da35c82a072e8c7e224","signature":"7df01e4c81e5a39fad19a1d41094ebd3ccf122dfc3a5439eb831144febc1d587"},"2cd8ceb9d78233669aced348f594372ec4da99a31e7611b01c419d7e3c090cf8",{"version":"0c450f8c30e98d74a89b2a0753b53dfb7af0b00c4a620ab02623dd2b058794a9","signature":"668a5858ef9c3c70a96fda8e1f64a0414043bcf7d359243af27453bb0a53dceb"},{"version":"f1cc9a1b47b7dfbf490ad900ee82f8b3c1798eabd9a74bf962b3fb82b5df289a","signature":"22d30ddaf61da806ca602b1d7ef42dbdd17ec9091030e097f5055b9c450305c8"},{"version":"dd7464267718510493e56a4c44517a0527011d8d0aeca1ea02def215d41bdc17","signature":"8896d3bd407b1d3b2607281e0798b2a06744495405177b858cb743be29ad9031"},{"version":"123c0d7b540b5f2a27330d474e720a136d7b8d1b2e6faac0f736274da5500075","signature":"1e8a7e0975e4603e5506c43b88fefe79c4edf799a52da25d8fb576178b6073cf"},{"version":"97df4e07ad2428956cca064a741fec695ef77365b7e1fdc02b9923fee8fb0b38","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c7320d7bb7e5dc0ea83e2e20a409407fa77a638db4fefdac818bad074430b365","signature":"43f63c452c814675f777fd81d27c616089dce87d31c5bd633c5e87c808359e8f"},{"version":"2ea19b9ba40d12b4c8f6f555a067e0f99a5bb25c13fc2a68435631eab46feaac","signature":"6fffa77b0736cf4903deca7d796349210963407b5651d952472a0842f6adfc9e"},{"version":"5972c84303ce128d47ea5256f2798da189f66f988cf0ac41613d371dd8b79dc0","signature":"9ac4d5239c77d6d17f4ff247e493ff87be7b3d2df778e32eedd7be57a6e0cd8b"},{"version":"a638e3bfb01b3dd3c15e9579a34a03e3e1f4668a4602a5e21147852a753fe7e8","signature":"b1d411fe11459f332e68f1698d0419812a853c0e272211ac8da8f15a5945abf0"},"89b36a89f13df31a31c8007798c4f6f5f211189d3f337f68324220f4a2036360","c281e26bbdcc9aac2aa5791a9f17cb6bafc9502e0a492c3472bb8552e63d5197","9eb267e00223a94e365dd0d7215da4c310bc7735a30f762ff50c30b7c87b601e","4ff2588c3b1ba9a6b4f4ab5d69bd70b31e8c07d12b80f8e267c70a904d8ad8ce","029118257514192b71009b61853bf9abc2af00a4cc9736bdf868ea2a2aab0f9f","b8a75127eaa3039a7ef471006be7c3d76485ad719933a43dfb4ccd663ee36e01","151ddc5c17d934c509e09d639f6babd38e3eb39007fa4201e2c4f9a98b9309fa","dcb42ba0a4b31b6ba259682edbdd09f490a441743274c732c70768bf24812ea0","3c5116b75192740874b2b98774e4e07972e122da3bb776cb9b7d01c8c19064df","142f9d78dc7f866e9c3407aea220a37aab01e6d577837f1d3addb27c4fb65aa3","40b301603b042faa8afd7ef3c146d68639ae3611af67a758c03682cfee1f47d3","ee0255d7ac09193a9ed908866eb29f18cba391b99b7da832cd2cd4b0dbe2b67c","0d5d6f00add61b7c3dac8f47c7fa4927fcd23433c2627974bf23b0496edad736",{"version":"e5604cb6019dbec3628fb3503fa3b6d2e3305c8f366067ff59689f511cbfb15b","signature":"776462a298d2bb101a9dadcd965ca3551a06e1f74ed064a14dba36dad345a2d4"},{"version":"341cf4f57f305dc092896ae8e8594411247fffd486f5576ba0f7581d05d73fc6","signature":"77552bbebbb26f74d48d45eb8008b75b2642088b47bb10ca566fab2fe3b430bd"},{"version":"3f35d3e3f3c8c1184b0c413c921684180261c073ebba7a6f5445171884893f42","signature":"ad2f46b5c5a6d90a14286c565282ff6cd5a095823b50c270d7ed4e477d9f22e3"},{"version":"50154daf25e6faa0e1585987c1d0ef636bf6510a2367251f5694fc246997387f","signature":"5f2c3ace396d4dbe322b479ceaea3e563af6a0d2c7a3c99f7c90b51aa7267acc"},{"version":"5b28ab0187a644ec109e5e4ffd1d7e91da4e5a5144e4f9dc42402dc8d576bdf5","signature":"e335e239f1d495d5a703f9f270f6d01c43825201edce426e5880a18cb4d6e391"},{"version":"3528385ad5b622c82417fccaa068638b6b76860fc04048f413515d5ab13ca1d8","signature":"aa385b8100720c46dbad0bb3a858f29638392630d7be89f8b1919951389d0165"},{"version":"4f4c97258bcf6a8a9320c80a9cc54f11655c422fa029bcecfddc13cc0b7ef507","signature":"5e4b523d14c48847f106c842403214e798a5224bcac8a5847bde2996a5b980e7"},{"version":"4c84b27a8ee93660418a2e6a2b2ee9b23b666995d000e36d34243fbb7678baa5","signature":"f12c57f72afb4485512919ae3de62c124fe0a6d32ec696aaa304c89f60c2750e"},{"version":"36ed39082a2c62529b5702bbb1e7dc18197a985be49b9c9ec2a0cc086cd827c6","signature":"6991560147dab19d9c607e6d6875e9d22f12e7fe49ea9e4a187b87a6f33df8a0"},{"version":"0674c4aa6358e15a58a3303f6e53153921680924c0bc63dcd29a699facb620dd","signature":"d0f1c34359794f1f8b7966c5430e3b82117f81411be3ad43eac3132d52841518"},{"version":"912647a46260b075a007a93a32dfefbda83ccdbadd10ac21fffc9f99f26d7f25","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"26a68fb0e762d9a0173b787a378a354463614a71d1b19353d50be0b30abd5b3c","signature":"66cbe0a4012e217d938e5ef91d858a3364573c489768e896f01c13c96dff89cf"},{"version":"5f143e9c43ee2a536762953eca81cdd8fa036fd605679f7fe5e071dfc2f7d550","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6685896c30b40f966f4c1ec034b80e3313c46d0254163b847c61ee7bab0663b2","signature":"058c7c006b26e3f8d26b3dae9f4fbf40b3c6150d90c118c7c1e7619ad4b136b2"},{"version":"a36fdb3d2b06e24bccb61f41c3b9d8364a1ecf63d8f3418b49f68a60734cdb62","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2d0f7fb5205b9da635ab24de7f4cb33fc780c00548d1a03a951be4af9b3da6e5","signature":"79f1ae4a6f62460492ce8fbc2a00dee2fd55705fb311c25e647acb817b183628"},{"version":"9f615d63d966a55c227007fe99280a1999e0575b94f381eda5b52477ef76adc3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"24c6937cb9118cd4f0b15a35e643575386464be046f11f1034d678f8b2b8a9b4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3eb5efdf6888e39890152ae3515f8eb609bb013bceee00818d6d7b73ae1c0c68","signature":"ef0ec6404bab785eb3b82ca89b7892b521a392a3b11f87c7f96b2c2238fd7c1e"},{"version":"719efd462a8951744f4925d6e2185681b1f53a58c7d260f917fcbb965a2256f6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"172ff96b10ff9e9bd1a3330e8a7d12c906364ffc5ab42fffa797bf251c0ab487","signature":"f12c57f72afb4485512919ae3de62c124fe0a6d32ec696aaa304c89f60c2750e"},{"version":"4f7d66de190cd4621e86c9fe7c6937a7f5246450694f4f12c1e23135a395eafc","signature":"95dd66660f2290d9641f14295765a803081d468075c076797204e9533174ba45"},{"version":"76623996addbf8ea18fcdc378fb11aade6fed48078a68507c6cf45f1b16645a3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b332de6b7f85d0cde31bc043bf96e4dded6dbe238e8289bf9932190487f06518","signature":"058c7c006b26e3f8d26b3dae9f4fbf40b3c6150d90c118c7c1e7619ad4b136b2"},{"version":"3ab8d2ff90deb396875e22b0addc53a18c78e411f52b5b4a450f953adfde9a0d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e0fa948cb275c4d2dd60748b1a8ca4640c4d7fedbce4398fff47a34549a5460d","signature":"e01086a749c2360bfd713aeff3f2876664f14db15b167270cf6e8b76230e5328"},{"version":"d1dba261a2764bccf73f33fe944fe2f867065ef541978e1e241aefe2cb32b678","signature":"81921905af55f744ebf75c837c253a189c14d11f9e97db771917ab3416e21e93"},{"version":"0b3ef222fab3ac428021b79cf7ef1a24c6374f8be25734feceaa2cee4bc8f201","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fee1ba99204d8cbec88d3c397a63a6391ecaaf787a733270fbcce9a0c616db99","signature":"4be15b00969e9fd0cf1a3848a0774dba9e773d152948f21e5026e39cfcba2026"},{"version":"280dfb4ddcb3980ed32e2cbd740cff8b7ad3533aa0a581271149cf77f7f9c983","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c2a58d2ab459550e41f36c62ea5644015f4a63f0e84c43b560ef72e6ed50359f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9954f887fb101478c3376237efabd71ad4fade28914840cc5f89e8e3a077c1a4","signature":"595b90fa246057e68c7b73580a5b6560a0d4ff761183df057fc2213d6e791506"},{"version":"00eac9b40475f962958125ec0b46c15e306b2298b1fe259d49c4eb6942d47e54","signature":"9e75affcebb841bfb85473a7ef8f3a4566f60c87230229c6eaa3e8bb76eac09e"},{"version":"ec8bd2cdb407535412d3070cf08413c69381354113061ef421bf11912def68a6","signature":"ef0ec6404bab785eb3b82ca89b7892b521a392a3b11f87c7f96b2c2238fd7c1e"},{"version":"873aa908b36d23d98db48e1a0e60413d28f01f83ce4ade316a356014faa8a125","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fe3776209eeb9972e5f9f450cbcd0c452c576173b96d834735e64d9c6468c0e9","signature":"4f8a91b5e8be0d4560eff5eccccf7d8d798e5cb4eb643ffa6ada14bc2e436b44"},{"version":"ed9d0e5d83217df43ff976e26293330e3416b8d06e5b76fe0908260970de2893","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dfd71a0470860c40172e5f285cecf708a3e642c86c5cbc08865bcbb6514d46d7","signature":"071bc8eb127ce7272ca0977a42463d723989496e1f2375f462bc884e9e579841"},{"version":"38b781d15bd0dbb44263b9bb1aa658233ebe27153e4790f47089d41ba56b2f85","signature":"4163bc88d760197513ec4041f70399abec56d621b3f4b3c33ee04f4c43052030"},{"version":"b95cc6c2f6164d543751103a7b4dd1b43344e2208ac0bf518737ce6f0d217bda","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9d82824f655a91cd4cdfd1fa707b4bb2d4c3ae0c048520e63cec5f2917bdc47a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e8997a06de7c0bb4918cd60132dcebb418d6c3d57a37ea5e6f8e28430cf109d1","signature":"95342456a2528e79e342d4673e89992d36c83031aed802b5700d9bc17cd97b7b"},{"version":"d823d5ea342fae2f74e759ee670a0f4cc5a7a0bdecc670b9ccb7db973da1cc01","signature":"657be8c89278f99da66fcb86b28ddf3fda8f256c46dd49a9cebe0fc1bdcf9dcd"},{"version":"fdb25849c9d3961f3f6be3b837938534349c7150cc2bec167bdee40f86b4e648","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b61c49bcf74fa6c17fbb139185a60d4e3d124938e6cecc9105734981a047274f","signature":"57b0b61b3dc0afa371946ad39627e8bde74fdd71ec37868b08a459fba4a93806"},{"version":"399c6b8ca2afc14bbc234182a06f3a82c433d47ca79f427793d51dee6c49c4ef","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9a104743356e28682cd4408582f1c5451a664a2fb7a547f68d3dd027d0aacf67","signature":"21e37be884f8363a08685b18be7592e606e157cf606b15a55214cc145cdef69f"},{"version":"2a70bd49f7ef707bcd6aeddea28301caef537eb6ffcf22b86a974c4bfa070441","signature":"ef0ec6404bab785eb3b82ca89b7892b521a392a3b11f87c7f96b2c2238fd7c1e"},{"version":"c6cf4ed4deed64105409c3f52f53287b2e60256f7ec5da99756c6574b56de86c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2f494adf44598b237ca43b2601a6cecda3eae54c8249293c93133ec50221b977","signature":"ef0ec6404bab785eb3b82ca89b7892b521a392a3b11f87c7f96b2c2238fd7c1e"},{"version":"d6d8051cb0369345f61a4a84e4ec3a5ca87fd20339ac7c87f5b439f93f4b5f7a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"70841a70ee9548ff36b6735d5c8b3ce1b05e344d53b8bb55a829018f477b78f6","signature":"f12c57f72afb4485512919ae3de62c124fe0a6d32ec696aaa304c89f60c2750e"},{"version":"55ac7b268cbc4ff5f65ac04ff9f426255a32807055e723257be5860ab27193f6","signature":"d789e9306fafcd35552aa4ed4ddecdc6ff8f557decd621f8c1f70a553082fc7c"},{"version":"2717058eafbd5e4fed64cb24a0b0097e3c3a66509a5bb9a8c9f04361f61982d6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"de96fe765858d9e50183d75a12c4842eaa76eb93db7352c61e52247e4381c259","signature":"dfbd299a528504d59e9532ab24343faac8a13b49c4c5896d339febe9151b50c7"},{"version":"f2b6fddd964256e2712d1d92d742c06c9f84023e8f1720fb3452972c0a488b70","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9395abcd48b645a194f1ea59ee36a432200bd6e75ab13b1ad78dda12df48ee93","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cd52bfe225aa8c6831bf8b1315f8adab69ba92aeba18b1b85ba4bda51014219b","signature":"3baa4a8f792ab117de6326ab382dde638e6a480e86f557a30a7d6e203c64fb20"},{"version":"46c26d8098ca707a715e5c296cc296436aebeeacf261ce1e413c334d96e76266","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e0815ddf7343bdaba1ee7640603b92d47981e2c9e4a58d1fd57f05d7fee5e14b","signature":"939d0293159d3a75833d0697a75aaedf76d95698ced2b41347139558512473bd"},{"version":"dd8383ac064c8162d682644558bf78788b653bee03bb4e4c2b5edd77cff8f81c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dc4d6775afde497a3716c02f5a4eb4fbe48684c32d28463f3bed1669deb26ee3","signature":"c4ca72a430912f91b272a3cb41b57c5bd26fcb9c27c900503c373472fc1bb4b9"},{"version":"f53285a09de71c4106c69e26c643bada2c07409414bf597abac04b8f45dc73fe","signature":"f12c57f72afb4485512919ae3de62c124fe0a6d32ec696aaa304c89f60c2750e"},{"version":"63e57ef3b6f871bd8b5b006a5078acc6f4cda963d9c90f82c222151393a00ee3","signature":"4b703af7f10d75a1dcc6af3f32bc1949c507fa8fd046ab9e79e8d11fad2cfb21"},{"version":"7a28a0aaf30763dece69790f7a714f11faa10b2d05534344415aacefcc5bb9e6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"78c3853708722d1830a66f983ec68c2eff6709e2394d28663c8dff579161dd0b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a346701ad6dcdaa58e388fe0995fc5304c09c395b8cba68ed872780f8c102004","impliedFormat":99},"c2b999a96781e6c932632bd089095368e973bf5602e1b1a62156b7d2b43f1e84","6299a6a387dc55e528aec4342deaea0b83f1ea3a365c135a31a18ee55334f441","dab689d836ad3292b41e7f4986b4e68e5d45c6903e4aeaae8972a82d4aebec29",{"version":"a9373d52584b48809ffd61d74f5b3dfd127da846e3c4ee3c415560386df3994b","impliedFormat":99},{"version":"caf4af98bf464ad3e10c46cf7d340556f89197aab0f87f032c7b84eb8ddb24d9","impliedFormat":99},{"version":"8085954ba165e611c6230596078063627f3656fed3fb68ad1e36a414c4d7599a","impliedFormat":99},"fb33bc4865b74d1f0239b1782dbdc4cc2d38690ba6e245e9e3b024c256b14c2b",{"version":"caf4af98bf464ad3e10c46cf7d340556f89197aab0f87f032c7b84eb8ddb24d9","impliedFormat":99},{"version":"9c580c6eae94f8c9a38373566e59d5c3282dc194aa266b23a50686fe10560159","impliedFormat":99},"995c54f1c5c688f712a675fe35d55bcada2b31dba561dcc71553a1ad601e59ec","87608e7cc815ad3d88e0b9de6c402bb37b58ea1b38636cf69709da1baff6e334",{"version":"6ce55335012d76737df504baabc950805760acf3be988142d1985aa4893f919e","impliedFormat":1},{"version":"88efe27bebddb62da9655a9f093e0c27719647e96747f16650489dc9671075d6","impliedFormat":1},{"version":"e348f128032c4807ad9359a1fff29fcbc5f551c81be807bfa86db5a45649b7ba","impliedFormat":1},{"version":"8ee6b07974528da39b7835556e12dd3198c0a13e4a9de321217cd2044f3de22e","impliedFormat":1},{"version":"deefd8c43b40f9797c3921d78d3f9243959621a17b817be7f5d95c149f23a9dd","impliedFormat":1},{"version":"5f12132800d430adbe59b49c2c0354d85a71ada7d756e34250a655baa8ad4ae5","impliedFormat":1},{"version":"1996d1cd7d585a8359a35878f67abdd73cc35b1f675c9c6b147b202fdd8dfc3f","impliedFormat":1},{"version":"b16e757e4c35434065120a2b3bf13a518fc9e621dc9c2ed668f91635a9dc4e75","impliedFormat":1},{"version":"ac83121ea57329928ee48f235bc78502497f9f6e607cb1fd4ba3d41b6b98f5fa","impliedFormat":1},{"version":"d02ced7accb512e6198b796b8d284e7979abde0f089b0a77969747a5f27bfb23","impliedFormat":1},{"version":"4374cefdde5c6e9bad52b0436e887b8325b8f407c12035194ad02c28f1553a3a","impliedFormat":1},{"version":"5f1ba0898eb0a54a644cb9c95c2240beaa961d87fd080cbb90807a6cc03daeb3","impliedFormat":1},{"version":"8e92ee8710ba85b158c5d91b0bbc9d0d033f5e062b6e70178063f01b20f63a14","impliedFormat":1},{"version":"ee933420aacba1f60aa70fb8ba47c5e69001b005073b71973114587089a13c7f","impliedFormat":1},{"version":"0a0714999d0a5bdfacd15c7b34cffbcc6f263f6cb0ccb42076cdc541c6987797","impliedFormat":1},{"version":"56584bfc655f9df64afc0f22f7d1122c29e5b74b342c203b891e19de9fa37de8","impliedFormat":1},{"version":"40ec58f0fadd0b3981b3d383e1c12fa0680115ae9f018387fc2cfc0bbcf23204","impliedFormat":1},{"version":"849b9e7283b7309a4556c9b90bb8e2dfc27751f157798065bbc513dcddb09a8c","impliedFormat":1},{"version":"76bba0c97594248c1be19af32d5799f7eff51cec2926d8e4dd59267d7636a0b4","impliedFormat":1},{"version":"10e109212c7be8a9f66e988e5d6c2a8900c9d14bf6beadf5fa70d32ada3425cf","impliedFormat":1},{"version":"f4558bcdc26690cc593cd59217cd17d8e00af0f5fbd0c4f1c0d71ba75029c42e","impliedFormat":1},{"version":"26602933b613e4df3868a6c82e14fffa2393a08531cb333ed27b151923462981","impliedFormat":1},{"version":"f57a588d8f6b3ce5c8b494f2dc759a8885eaee18e80a4952df47de45403fedbe","impliedFormat":1},{"version":"34735727b3fe7a0ed0651a0f88d06449163d1989a2b2de7f047473adc7c1c383","impliedFormat":1},{"version":"a5b13abc88ab3186e713c445e59e2f6eee20c6167943517bc2f56985d89b8c55","impliedFormat":1},{"version":"c8a206a6ba4e32710ebb4a389187772423de0f4f6180b95a7ef1a5a1934c1be6","impliedFormat":1},{"version":"7ae65fe95b18205e241e6695cb2c61c0828d660aca7d08f68781b439a800e6b8","impliedFormat":1},{"version":"c2c8c166199d3a7bd093152437d1f6399d05e458a9ca9364456feecba920cda4","impliedFormat":1},{"version":"369b7270eeeb37982203b2cb18c7302947b89bf5818c1d3d2e95a0418f02b74e","impliedFormat":1},{"version":"94f95d223e2783b0aef4d15d7f6990a6a550fe17d099c501395f690337f7105e","impliedFormat":1},{"version":"039bd8d1e0d151570b66e75ee152877fb0e2f42eca43718632ac195e6884be34","impliedFormat":1},{"version":"d565d66b38d54de037c9d46dede1f12630010d9b45fd9c6b432c7a40b2e30502","impliedFormat":1},{"version":"d7386a1ebe9a3eae227a5561c898c10cacb61a49f941c5a18cdf593f979c693c","impliedFormat":1},"7514a59057759a26fb9ad5d3ff76cdcd83b9eb87e66218c88ecf36967f3e9ece",{"version":"1179ef8174e0e4a09d35576199df04803b1db17c0fb35b9326442884bc0b0cce","impliedFormat":99},{"version":"23874b6d249b9780eb941f5abb1b4c578219dcaaaad8783be2e731f922bdf291","impliedFormat":1},"b8936f21d1af9539d43453a96ac1b65cb188f5d2f8d52e05d6eaaded282b794b",{"version":"2c57db2bf2dbd9e8ef4853be7257d62a1cb72845f7b976bb4ee827d362675f96","impliedFormat":99},"c9e19d480a43172f9504ac9b22f4a9c149de1d916162f24c62395533b7be19f6",{"version":"68b6a7501a56babd7bcd840e0d638ee7ec582f1e70b3c36ebf32e5e5836913c8","impliedFormat":99},{"version":"9f7a3c434912fd3feb87af4aabdf0d1b614152ecb5e7b2aa1fff3429879cdd51","impliedFormat":99},"9ba7808b7404cdf2159c81883a39290033bc4308f2978eb80797c92b87421301",{"version":"4a5aa16151dbec524bb043a5cbce2c3fec75957d175475c115a953aca53999a9","impliedFormat":99},"f7cf3dd39db1de735ae24207bda508b309273e9a113959adc29bb6a0d3f6e42e","ec7c92aaed80f6923a7caa4bfe4eead395b50a7001504fd7fbb0b9381804dae9",{"version":"cc3738ba01d9af5ba1206a313896837ff8779791afcd9869e582783550f17f38","impliedFormat":99},"234e38fef59169bd02d8f5b56ca02e5ec13a0bd6846c328927b924e1299f7fb0",{"version":"dfcf16e716338e9fe8cf790ac7756f61c85b83b699861df970661e97bf482692","impliedFormat":99},"08d77df666777064fc2f4ae8216aa678f9e7672e46927d3cb3e62526ce6c0be8",{"version":"31c30cc54e8c3da37c8e2e40e5658471f65915df22d348990d1601901e8c9ff3","impliedFormat":99},"311bede35f785d7b1ecd7398986757e26409d1049352a94ccf83586b8603c92d",{"version":"89783bd45ab35df55203b522f8271500189c3526976af533a599a86caaf31362","impliedFormat":99},{"version":"26e6c521a290630ea31f0205a46a87cab35faac96e2b30606f37bae7bcda4f9d","impliedFormat":99},"dc109123ecd59af01d07aa9f3a8e8a7085bd3f337388c5369799ab1ce6c2d45f",{"version":"233267a4a036c64aee95f66a0d31e3e0ef048cccc57dd66f9cf87582b38691e4","impliedFormat":99},"ce6afa34fb9dae51053a863b4c3f7c6e55f3da23b00149f31a8e4402bc963be0",{"version":"c5013d60cbff572255ccc87c314c39e198c8cc6c5aa7855db7a21b79e06a510f","impliedFormat":99},"d3c7ad5738d28011b414c43fd3a1bb6b5d4d96036967285cfac496f5bcb79b07","03e892344ad170438ccfc156b4ee7ff0be4e535a2939e038f64556ce03b934ed","1348f1a1f9820e2f1394b93cecc156a7e22f03636ab9270753985549aae2be74","5950ac01377e7eedc94b00eb3fee678745e4cc1a72b5343867f0733d07db6660",{"version":"7a14bf21ae8a29d64c42173c08f026928daf418bed1b97b37ac4bb2aa197b89b","impliedFormat":99},"6f74706bc6b53f9e4bcebb5e7ab8743b616aef181edc7758b8ee905f9b2fdcd7",{"version":"0943a6e4e026d0de8a4969ee975a7283e0627bf41aa4635d8502f6f24365ac9b","impliedFormat":99},{"version":"1461efc4aefd3e999244f238f59c9b9753a7e3dfede923ebe2b4a11d6e13a0d0","impliedFormat":99},"00dd6eef660f08ce85154106fa0fa4d943ed699c5ca7b06bb08732978bcebb49",{"version":"2a00cea77767cb26393ee6f972fd32941249a0d65b246bfcb20a780a2b919a21","impliedFormat":99},{"version":"440cb5b34e06fabe3dcb13a3f77b98d771bf696857c8e97ce170b4f345f8a26b","impliedFormat":99},"a06d96a582ac207ffcd38445d773c05e841d646efb185b5e9b65f73e5bd388c7","c3d3dcb0d82fc5e91d8830bac7fead905686fe876f1f42c3ed872bb0a6b6584e","0d59f0ca0526d6100430c807c59dc2004728b8d38804b278fa0ab3cc7e3a9cf0","4d3ecfe7df96f773dc0e1c0fb18d6d72db9f38d1b41f34a4fa1a427a6f4bd9d6","a4a6972c2d47d465d7f02c1dc4a6cbfeda7a97e46479c1b0cebdaf26bf9b497a",{"version":"57ae71d27ee71b7d1f2c6d867ddafbbfbaa629ad75565e63a508dbaa3ef9f859","impliedFormat":99},{"version":"60924ca0c60f0674f208bfa1eaaa54e6973ced7650df7c7a81ae069730ef665a","impliedFormat":99},{"version":"e3181c7595a89dd03ba9a20eb5065fa37e0b0a514261bed774f6ae2241634470","impliedFormat":99},{"version":"c42d5cbf94816659c01f7c2298d0370247f1a981f8ca6370301b7a03b3ced950","impliedFormat":99},{"version":"18c18ab0341fd5fdfefb5d992c365be1696bfe000c7081c964582b315e33f8f2","impliedFormat":99},{"version":"dafbd4199902d904e3d4a233b5faf5dc4c98847fcd8c0ddd7617b2aed50e90d8","impliedFormat":99},{"version":"9fc866f9783d12d0412ed8d68af5e4c9e44f0072d442b0c33c3bda0a5c8cae15","impliedFormat":99},{"version":"5fc13d24a2d0328eac00c4e73cc052a987fbced2151bc0d3b7eb8f3ba4d0f4e2","impliedFormat":99},{"version":"2cef84bf00cbdb452fdc5d8ecfe7b8c0aa3fa788bdc4ad8961e2e636530dbb60","impliedFormat":99},{"version":"24104650185414f379d5cc35c0e2c19f06684a73de5b472bae79e0d855771ecf","impliedFormat":99},{"version":"799003c0ab928582fca04977f47b8d85b43a8de610f4eef0ad2d069fbb9f9399","impliedFormat":99},{"version":"b13dd41c344a23e085f81b2f5cd96792e6b35ae814f32b25e39d9841844ad240","impliedFormat":99},{"version":"17d8b4e6416e48b6e23b73d05fd2fde407e2af8fddbe9da2a98ede14949c3489","impliedFormat":99},{"version":"6d17b2b41f874ab4369b8e04bdbe660163ea5c8239785c850f767370604959e3","impliedFormat":99},{"version":"04b4c044c8fe6af77b6c196a16c41e0f7d76b285d036d79dcaa6d92e24b4982b","impliedFormat":99},{"version":"30bdeead5293c1ddfaea4097d3e9dd5a6b0bc59a1e07ff4714ea1bbe7c5b2318","impliedFormat":99},{"version":"e7df226dcc1b0ce76b32f160556f3d1550124c894aae2d5f73cefaaf28df7779","impliedFormat":99},{"version":"f2b7eef5c46c61e6e72fba9afd7cc612a08c0c48ed44c3c5518559d8508146a2","impliedFormat":99},{"version":"00f0ba57e829398d10168b7db1e16217f87933e61bd8612b53a894bd7d6371da","impliedFormat":99},{"version":"126b20947d9fa74a88bb4e9281462bda05e529f90e22d08ee9f116a224291e84","impliedFormat":99},{"version":"40d9e43acee39702745eb5c641993978ac40f227475eacc99a83ba893ad995db","impliedFormat":99},{"version":"8a66b69b21c8de9cb88b4b6d12f655d5b7636e692a014c5aa1bd81745c8c51d5","impliedFormat":99},{"version":"ebbb846bdd5a78fdacff59ae04cea7a097912aeb1a2b34f8d88f4ebb84643069","impliedFormat":99},{"version":"7321adb29ffd637acb33ee67ea035f1a97d0aa0b14173291cc2fd58e93296e04","impliedFormat":99},{"version":"320816f1a4211188f07a782bdb6c1a44555b3e716ce13018f528ad7387108d5f","impliedFormat":99},{"version":"b2cc8a474b7657f4a03c67baf6bff75e26635fd4b5850675e8cad524a09ddd0c","impliedFormat":99},{"version":"0d081e9dc251063cc69611041c17d25847e8bdbe18164baaa89b7f1f1633c0ab","impliedFormat":99},{"version":"a64c25d8f4ec16339db49867ea2324e77060782993432a875d6e5e8608b0de1e","impliedFormat":99},{"version":"0739310b6b777f3e2baaf908c0fbc622c71160e6310eb93e0d820d86a52e2e23","impliedFormat":99},{"version":"37b32e4eadd8cd3c263e7ac1681c58b2ac54f3f77bb34c5e4326cc78516d55a9","impliedFormat":99},{"version":"9b7a8974e028c4ed6f7f9abb969e3eb224c069fd7f226e26fcc3a5b0e2a1eba8","impliedFormat":99},{"version":"e8100b569926a5592146ed68a0418109d625a045a94ed878a8c5152b1379237c","impliedFormat":99},{"version":"594201c616c318b7f3149a912abd8d6bdf338d765b7bcbde86bca2e66b144606","impliedFormat":99},{"version":"03e380975e047c5c6ded532cf8589e6cc85abb7be3629e1e4b0c9e703f2fd36f","impliedFormat":99},{"version":"fae14b53b7f52a8eb3274c67c11f261a58530969885599efe3df0277b48909e1","impliedFormat":99},{"version":"c41206757c428186f2e0d1fd373915c823504c249336bdc9a9c9bbdf9da95fef","impliedFormat":99},{"version":"e961f853b7b0111c42b763a6aa46fc70d06a697db3d8ed69b38f7ba0ae42a62b","impliedFormat":99},{"version":"3db90f79e36bcb60b3f8de1bc60321026800979c150e5615047d598c787a64b7","impliedFormat":99},{"version":"639b6fb3afbb8f6067c1564af2bd284c3e883f0f1556d59bd5eb87cdbbdd8486","impliedFormat":99},{"version":"49795f5478cb607fd5965aa337135a8e7fd1c58bc40c0b6db726adf186dd403f","impliedFormat":99},{"version":"7d8890e6e2e4e215959e71d5b5bd49482cf7a23be68d48ea446601a4c99bd511","impliedFormat":99},{"version":"d56f72c4bb518de5702b8b6ae3d3c3045c99e0fd48b3d3b54c653693a8378017","impliedFormat":99},{"version":"4c9ac40163e4265b5750510d6d2933fb7b39023eed69f7b7c68b540ad960826e","impliedFormat":99},{"version":"8dfab17cf48e7be6e023c438a9cdf6d15a9b4d2fa976c26e223ba40c53eb8da8","impliedFormat":99},{"version":"38bdf7ccacfd8e418de3a7b1e3cecc29b5625f90abc2fa4ac7843a290f3bf555","impliedFormat":99},{"version":"9819e46a914735211fbc04b8dc6ba65152c62e3a329ca0601a46ba6e05b2c897","impliedFormat":99},{"version":"50f0dc9a42931fb5d65cdd64ba0f7b378aedd36e0cfca988aa4109aad5e714cb","impliedFormat":99},{"version":"894f23066f9fafccc6e2dd006ed5bd85f3b913de90f17cf1fe15a2eb677fd603","impliedFormat":99},{"version":"abdf39173867e6c2d6045f120a316de451bbb6351a6929546b8470ddf2e4b3b9","impliedFormat":99},{"version":"aa2cb4053f948fbd606228195bbe44d78733861b6f7204558bbee603202ee440","impliedFormat":99},{"version":"6911b41bfe9942ac59c2da1bbcbe5c3c1f4e510bf65cae89ed00f434cc588860","impliedFormat":99},{"version":"7b81bc4d4e2c764e85d869a8dd9fe3652b34b45c065482ac94ffaacc642b2507","impliedFormat":99},{"version":"895df4edb46ccdcbce2ec982f5eed292cf7ea3f7168f1efea738ee346feab273","impliedFormat":99},{"version":"8692bb1a4799eda7b2e3288a6646519d4cebb9a0bddf800085fc1bd8076997a0","impliedFormat":99},{"version":"239c9e98547fe99711b01a0293f8a1a776fc10330094aa261f3970aaba957c82","impliedFormat":99},{"version":"34833ec50360a32efdc12780ae624e9a710dd1fd7013b58c540abf856b54285a","impliedFormat":99},{"version":"647538e4007dcc351a8882067310a0835b5bb8559d1cfa5f378e929bceb2e64d","impliedFormat":99},{"version":"992d6b1abcc9b6092e5a574d51d441238566b6461ade5de53cb9718e4f27da46","impliedFormat":99},{"version":"938702305649bf1050bd79f3803cf5cc2904596fc1edd4e3b91033184eae5c54","impliedFormat":99},{"version":"1e931d3c367d4b96fe043e792196d9c2cf74f672ff9c0b894be54e000280a79d","impliedFormat":99},{"version":"05bec322ea9f6eb9efcd6458bb47087e55bd688afdd232b78379eb5d526816ed","impliedFormat":99},{"version":"4c449a874c2d2e5e5bc508e6aa98f3140218e78c585597a21a508a647acd780a","impliedFormat":99},{"version":"dae15e326140a633d7693e92b1af63274f7295ea94fb7c322d5cbe3f5e48be88","impliedFormat":99},{"version":"c2b0a869713bca307e58d81d1d1f4b99ebfc7ec8b8f17e80dde40739aa8a2bc6","impliedFormat":99},{"version":"6e4b4ff6c7c54fa9c6022e88f2f3e675eac3c6923143eb8b9139150f09074049","impliedFormat":99},{"version":"69559172a9a97bbe34a32bff8c24ef1d8c8063feb5f16a6d3407833b7ee504cf","impliedFormat":99},{"version":"86b94a2a3edcb78d9bfcdb3b382547d47cb017e71abe770c9ee8721e9c84857f","impliedFormat":99},{"version":"e3fafafda82853c45c0afc075fea1eaf0df373a06daf6e6c7f382f9f61b2deb3","impliedFormat":99},{"version":"a4ba4b31de9e9140bc49c0addddbfaf96b943a7956a46d45f894822e12bf5560","impliedFormat":99},{"version":"d8a7926fc75f2ed887f17bae732ee31a4064b8a95a406c87e430c58578ee1f67","impliedFormat":99},{"version":"9886ffbb134b0a0059fd82219eba2a75f8af341d98bc6331b6ef8a921e10ec68","impliedFormat":99},{"version":"c2ead057b70d0ae7b87a771461a6222ebdb187ba6f300c974768b0ae5966d10e","impliedFormat":99},{"version":"46687d985aed8485ab2c71085f82fafb11e69e82e8552cf5d3849c00e64a00a5","impliedFormat":99},{"version":"999ca66d4b5e2790b656e0a7ce42267737577fc7a52b891e97644ec418eff7ec","impliedFormat":99},{"version":"ec948ee7e92d0888f92d4a490fdd0afb27fbf6d7aabebe2347a3e8ac82c36db9","impliedFormat":99},{"version":"03ef2386c683707ce741a1c30cb126e8c51a908aa0acc01c3471fafb9baaacd5","impliedFormat":99},{"version":"66a372e03c41d2d5e920df5282dadcec2acae4c629cb51cab850825d2a144cea","impliedFormat":99},{"version":"ddf9b157bd4c06c2e4646c9f034f36267a0fbd028bd4738214709de7ea7c548b","impliedFormat":99},{"version":"3e795aac9be23d4ad9781c00b153e7603be580602e40e5228e2dafe8a8e3aba1","impliedFormat":99},{"version":"98c461ec5953dfb1b5d5bca5fee0833c8a932383b9e651ca6548e55f1e2c71c3","impliedFormat":99},{"version":"5c42107b46cb1d36b6f1dee268df125e930b81f9b47b5fa0b7a5f2a42d556c10","impliedFormat":99},{"version":"7e32f1251d1e986e9dd98b6ff25f62c06445301b94aeebdf1f4296dbd2b8652f","impliedFormat":99},{"version":"2f7e328dda700dcb2b72db0f58c652ae926913de27391bd11505fc5e9aae6c33","impliedFormat":99},{"version":"3de7190e4d37da0c316db53a8a60096dbcd06d1a50677ccf11d182fa26882080","impliedFormat":99},{"version":"a9d6f87e59b32b02c861aade3f4477d7277c30d43939462b93f48644fa548c58","impliedFormat":99},{"version":"2bce8fd2d16a9432110bbe0ba1e663fd02f7d8b8968cd10178ea7bc306c4a5df","impliedFormat":99},{"version":"798bedbf45a8f1e55594e6879cd46023e8767757ecce1d3feaa78d16ad728703","impliedFormat":99},{"version":"62723d5ac66f7ed6885a3931dd5cfa017797e73000d590492988a944832e8bc2","impliedFormat":99},{"version":"03db8e7df7514bf17fc729c87fff56ca99567b9aa50821f544587a666537c233","impliedFormat":99},{"version":"9b1f311ba4409968b68bf20b5d892dbd3c5b1d65c673d5841c7dbde351bc0d0b","impliedFormat":99},{"version":"2d1e8b5431502739fe335ceec0aaded030b0f918e758a5d76f61effa0965b189","impliedFormat":99},{"version":"e725839b8f884dab141b42e9d7ff5659212f6e1d7b4054caa23bc719a4629071","impliedFormat":99},{"version":"4fa38a0b8ae02507f966675d0a7d230ed67c92ab8b5736d99a16c5fbe2b42036","impliedFormat":99},{"version":"50ec1e8c23bad160ddedf8debeebc722becbddda127b8fdce06c23eacd3fe689","impliedFormat":99},{"version":"9a0aea3a113064fd607f41375ade308c035911d3c8af5ae9db89593b5ca9f1f9","impliedFormat":99},{"version":"8d643903b58a0bf739ce4e6a8b0e5fb3fbdfaacbae50581b90803934b27d5b89","impliedFormat":99},{"version":"19de2915ccebc0a1482c2337b34cb178d446def2493bf775c4018a4ea355adb8","impliedFormat":99},{"version":"9be8fc03c8b5392cd17d40fd61063d73f08d0ee3457ecf075dcb3768ae1427bd","impliedFormat":99},{"version":"a2d89a8dc5a993514ca79585039eea083a56822b1d9b9d9d85b14232e4782cbe","impliedFormat":99},{"version":"f526f20cae73f17e8f38905de4c3765287575c9c4d9ecacee41cfda8c887da5b","impliedFormat":99},{"version":"d9ec0978b7023612b9b83a71fee8972e290d02f8ff894e95cdd732cd0213b070","impliedFormat":99},{"version":"7ab10c473a058ec8ac4790b05cae6f3a86c56be9b0c0a897771d428a2a48a9f9","impliedFormat":99},{"version":"451d7a93f8249d2e1453b495b13805e58f47784ef2131061821b0e456a9fd0e1","impliedFormat":99},{"version":"21c56fe515d227ed4943f275a8b242d884046001722a4ba81f342a08dbe74ae2","impliedFormat":99},{"version":"d8311f0c39381aa1825081c921efde36e618c5cf46258c351633342a11601208","impliedFormat":99},{"version":"6b50c3bcc92dc417047740810596fcb2df2502aa3f280c9e7827e87896da168a","impliedFormat":99},{"version":"18a6b318d1e7b31e5749a52be0cf9bbce1b275f63190ef32e2c79db0579328ca","impliedFormat":99},{"version":"6a2d0af2c27b993aa85414f3759898502aa198301bc58b0d410948fe908b07b0","impliedFormat":99},{"version":"2da11b6f5c374300e5e66a6b01c3c78ec21b5d3fec0748a28cc28e00be73e006","impliedFormat":99},{"version":"0729691b39c24d222f0b854776b00530877217bfc30aac1dc7fa2f4b1795c536","impliedFormat":99},{"version":"ca45bb5c98c474d669f0e47615e4a5ae65d90a2e78531fda7862ee43e687a059","impliedFormat":99},{"version":"c1c058b91d5b9a24c95a51aea814b0ad4185f411c38ac1d5eef0bf3cebec17dc","impliedFormat":99},{"version":"3ab0ed4060b8e5b5e594138aab3e7f0262d68ad671d6678bcda51568d4fc4ccc","impliedFormat":99},{"version":"e2bf1faba4ff10a6020c41df276411f641d3fdce5c6bae1db0ec84a0bf042106","impliedFormat":99},{"version":"80b0a8fe14d47a71e23d7c3d4dcee9584d4282ef1d843b70cab1a42a4ea1588c","impliedFormat":99},{"version":"a0f02a73f6e3de48168d14abe33bf5970fdacdb52d7c574e908e75ad571e78f7","impliedFormat":99},{"version":"c728002a759d8ec6bccb10eed56184e86aeff0a762c1555b62b5d0fa9d1f7d64","impliedFormat":99},{"version":"586f94e07a295f3d02f847f9e0e47dbf14c16e04ccc172b011b3f4774a28aaea","impliedFormat":99},{"version":"cfe1a0f4ed2df36a2c65ea6bc235dbb8cf6e6c25feb6629989f1fa51210b32e7","impliedFormat":99},{"version":"8ba69c9bf6de79c177329451ffde48ddab7ec495410b86972ded226552f664df","impliedFormat":99},{"version":"15111cbe020f8802ad1d150524f974a5251f53d2fe10eb55675f9df1e82dbb62","impliedFormat":99},{"version":"782dc153c56a99c9ed07b2f6f497d8ad2747764966876dbfef32f3e27ce11421","impliedFormat":99},{"version":"cc2db30c3d8bb7feb53a9c9ff9b0b859dd5e04c83d678680930b5594b2bf99cb","impliedFormat":99},{"version":"46909b8c85a6fd52e0807d18045da0991e3bdc7373435794a6ba425bc23cc6be","impliedFormat":99},{"version":"e4e511ff63bb6bd69a2a51e472c6044298bca2c27835a34a20827bc3ef9b7d13","impliedFormat":99},{"version":"2c86f279d7db3c024de0f21cd9c8c2c972972f842357016bfbbd86955723b223","impliedFormat":99},{"version":"112c895cff9554cf754f928477c7d58a21191c8089bffbf6905c87fe2dc6054f","impliedFormat":99},{"version":"8cfc293b33082003cacbf7856b8b5e2d6dd3bde46abbd575b0c935dc83af4844","impliedFormat":99},{"version":"d2c5c53f85ce0474b3a876d76c4fc44ff7bb766b14ed1bf495f9abac181d7f5f","impliedFormat":99},{"version":"3c523f27926905fcbe20b8301a0cc2da317f3f9aea2273f8fc8d9ae88b524819","impliedFormat":99},{"version":"9ca0d706f6b039cc52552323aeccb4db72e600b67ddc7a54cebc095fc6f35539","impliedFormat":99},{"version":"a64909a9f75081342ddd061f8c6b49decf0d28051bc78e698d347bdcb9746577","impliedFormat":99},{"version":"7d8d55ae58766d0d52033eae73084c4db6a93c4630a3e17f419dd8a0b2a4dcd8","impliedFormat":99},{"version":"b8b5c8ba972d9ffff313b3c8a3321e7c14523fc58173862187e8d1cb814168ac","impliedFormat":99},{"version":"9c42c0fa76ee36cf9cc7cc34b1389fbb4bd49033ec124b93674ec635fabf7ffe","impliedFormat":99},{"version":"6184c8da9d8107e3e67c0b99dedb5d2dfe5ccf6dfea55c2a71d4037caf8ca196","impliedFormat":99},{"version":"4030ceea7bf41449c1b86478b786e3b7eadd13dfe5a4f8f5fe2eb359260e08b3","impliedFormat":99},{"version":"7bf516ec5dfc60e97a5bde32a6b73d772bd9de24a2e0ec91d83138d39ac83d04","impliedFormat":99},{"version":"e6a6fb3e6525f84edf42ba92e261240d4efead3093aca3d6eb1799d5942ba393","impliedFormat":99},{"version":"45df74648934f97d26800262e9b2af2f77ef7191d4a5c2eb1df0062f55e77891","impliedFormat":99},{"version":"3fe361e4e567f32a53af1f2c67ad62d958e3d264e974b0a8763d174102fe3b29","impliedFormat":99},{"version":"28b520acee4bc6911bfe458d1ad3ebc455fa23678463f59946ad97a327c9ab2b","impliedFormat":99},{"version":"121b39b1a9ad5d23ed1076b0db2fe326025150ef476dccb8bf87778fcc4f6dd7","impliedFormat":99},{"version":"f791f92a060b52aa043dde44eb60307938f18d4c7ac13df1b52c82a1e658953f","impliedFormat":99},{"version":"df09443e7743fd6adc7eb108e760084bacdf5914403b7aac5fbd4dc4e24e0c2c","impliedFormat":99},{"version":"eeb4ff4aa06956083eaa2aad59070361c20254b865d986bc997ee345dbd44cbb","impliedFormat":99},{"version":"ed84d5043444d51e1e5908f664addc4472c227b9da8401f13daa565f23624b6e","impliedFormat":99},{"version":"146bf888b703d8baa825f3f2fb1b7b31bda5dff803e15973d9636cdda33f4af3","impliedFormat":99},{"version":"b4ec8b7a8d23bdf7e1c31e43e5beac3209deb7571d2ccf2a9572865bf242da7c","impliedFormat":99},{"version":"3fba0d61d172091638e56fba651aa1f8a8500aac02147d29bd5a9cc0bc8f9ec2","impliedFormat":99},{"version":"a5a57deb0351b03041e0a1448d3a0cc5558c48e0ed9b79b69c99163cdca64ad8","impliedFormat":99},{"version":"9bcecf0cbc2bfc17e33199864c19549905309a0f9ecc37871146107aac6e05ae","impliedFormat":99},{"version":"d6a211db4b4a821e93c978add57e484f2a003142a6aef9dbfa1fe990c66f337b","impliedFormat":99},{"version":"bd4d10bd44ce3f630dd9ce44f102422cb2814ead5711955aa537a52c8d2cae14","impliedFormat":99},{"version":"08e4c39ab1e52eea1e528ee597170480405716bae92ebe7a7c529f490afff1e0","impliedFormat":99},{"version":"625bb2bc3867557ea7912bd4581288a9fca4f3423b8dffa1d9ed57fafc8610e3","impliedFormat":99},{"version":"d1992164ecc334257e0bef56b1fd7e3e1cea649c70c64ffc39999bb480c0ecdf","impliedFormat":99},{"version":"a53ff2c4037481eb357e33b85e0d78e8236e285b6428b93aa286ceea1db2f5dc","impliedFormat":99},{"version":"4fe608d524954b6857d78857efce623852fcb0c155f010710656f9db86e973a5","impliedFormat":99},{"version":"b53b62a9838d3f57b70cc456093662302abb9962e5555f5def046172a4fe0d4e","impliedFormat":99},{"version":"9866369eb72b6e77be2a92589c9df9be1232a1a66e96736170819e8a1297b61f","impliedFormat":99},{"version":"43abfbdf4e297868d780b8f4cfdd8b781b90ecd9f588b05e845192146a86df34","impliedFormat":99},{"version":"582419791241fb851403ae4a08d0712a63d4c94787524a7419c2bc8e0eb1b031","impliedFormat":99},{"version":"18437eeb932fe48590b15f404090db0ab3b32d58f831d5ffc157f63b04885ee5","impliedFormat":99},{"version":"0c5eaedf622d7a8150f5c2ec1f79ac3d51eea1966b0b3e61bfdea35e8ca213a7","impliedFormat":99},{"version":"fac39fc7a9367c0246de3543a6ee866a0cf2e4c3a8f64641461c9f2dac0d8aae","impliedFormat":99},{"version":"3b9f559d0200134f3c196168630997caedeadc6733523c8b6076a09615d5dec8","impliedFormat":99},{"version":"932af64286d9723da5ef7b77a0c4229829ce8e085e6bcc5f874cb0b83e8310d4","impliedFormat":99},{"version":"adeb9278f11f5561157feee565171c72fd48f5fe34ed06f71abf24e561fcaa1e","impliedFormat":99},{"version":"2269fef79b4900fc6b08c840260622ca33524771ff24fda5b9101ad98ea551f3","impliedFormat":99},{"version":"73d47498a1b73d5392d40fb42a3e7b009ae900c8423f4088c4faa663cc508886","impliedFormat":99},{"version":"7efc34cdc4da0968c3ba687bc780d5cacde561915577d8d1c1e46c7ac931d023","impliedFormat":99},{"version":"3c20a3bb0c50c819419f44aa55acc58476dad4754a16884cef06012d02b0722f","impliedFormat":99},{"version":"4569abf6bc7d51a455503670f3f1c0e9b4f8632a3b030e0794c61bfbba2d13be","impliedFormat":99},{"version":"98b2297b4dc1404078a54b61758d8643e4c1d7830af724f3ed2445d77a7a2d57","impliedFormat":99},{"version":"952ba89d75f1b589e07070fea2d8174332e3028752e76fd46e1c16cc51e6e2af","impliedFormat":99},{"version":"b6c9a2deefb6a57ff68d2a38d33c34407b9939487fc9ee9f32ba3ecf2987a88a","impliedFormat":99},{"version":"f6b371377bab3018dac2bca63e27502ecbd5d06f708ad7e312658d3b5315d948","impliedFormat":99},{"version":"31947dd8f1c8eeb7841e1f139a493a73bd520f90e59a6415375d0d8e6a031f01","impliedFormat":99},{"version":"95cd83b807e10b1af408e62caf5fea98562221e8ddca9d7ccc053d482283ddda","impliedFormat":99},{"version":"19287d6b76288c2814f1633bdd68d2b76748757ffd355e73e41151644e4773d6","impliedFormat":99},{"version":"fc4e6ec7dade5f9d422b153c5d8f6ad074bd9cc4e280415b7dc58fb5c52b5df1","impliedFormat":99},{"version":"3aea973106e1184db82d8880f0ca134388b6cbc420f7309d1c8947b842886349","impliedFormat":99},{"version":"765e278c464923da94dda7c2b281ece92f58981642421ae097862effe2bd30fa","impliedFormat":99},{"version":"de260bed7f7d25593f59e859bd7c7f8c6e6bb87e8686a0fcafa3774cb5ca02d8","impliedFormat":99},{"version":"b5c341ce978f5777fbe05bc86f65e9906a492fa6b327bda3c6aae900c22e76c6","impliedFormat":99},{"version":"686ddbfaf88f06b02c6324005042f85317187866ca0f8f4c9584dd9479653344","impliedFormat":99},{"version":"7f789c0c1db29dd3aab6e159d1ba82894a046bf8df595ac48385931ae6ad83e0","impliedFormat":99},{"version":"8eb3057d4fe9b59b2492921b73a795a2455ebe94ccb3d01027a7866612ead137","impliedFormat":99},{"version":"1e43c5d7aee1c5ec20611e28b5417f5840c75d048de9d7f1800d6808499236f8","impliedFormat":99},{"version":"d42610a5a2bee4b71769968a24878885c9910cd049569daa2d2ee94208b3a7a5","impliedFormat":99},{"version":"f6ed95506a6ed2d40ed5425747529befaa4c35fcbbc1e0d793813f6d725690fa","impliedFormat":99},{"version":"a6fcc1cd6583939506c906dff1276e7ebdc38fbe12d3e108ba38ad231bd18d97","impliedFormat":99},{"version":"ed13354f0d96fb6d5878655b1fead51722b54875e91d5e53ef16de5b71a0e278","impliedFormat":99},{"version":"1193b4872c1fb65769d8b164ca48124c7ebacc33eae03abf52087c2b29e8c46c","impliedFormat":99},{"version":"af682dfabe85688289b420d939020a10eb61f0120e393d53c127f1968b3e9f66","impliedFormat":99},{"version":"0dca04006bf13f72240c6a6a502df9c0b49c41c3cab2be75e81e9b592dcd4ea8","impliedFormat":99},{"version":"79d6ac4a2a229047259116688f9cd62fda25422dee3ad304f77d7e9af53a41ef","impliedFormat":99},{"version":"64534c17173990dc4c3d9388d16675a059aac407031cfce8f7fdffa4ee2de988","impliedFormat":99},{"version":"ba46d160a192639f3ca9e5b640b870b1263f24ac77b6895ab42960937b42dcbb","impliedFormat":99},{"version":"5e5ddd6fc5b590190dde881974ab969455e7fad61012e32423415ae3d085b037","impliedFormat":99},{"version":"1c16fd00c42b60b96fe0fa62113a953af58ddf0d93b0a49cb4919cf5644616f0","impliedFormat":99},{"version":"eb240c0e6b412c57f7d9a9f1c6cd933642a929837c807b179a818f6e8d3a4e44","impliedFormat":99},{"version":"4a7bde5a1155107fc7d9483b8830099f1a6072b6afda5b78d91eb5d6549b3956","impliedFormat":99},{"version":"3c1baaffa9a24cc7ef9eea6b64742394498e0616b127ca630aca0e11e3298006","impliedFormat":99},{"version":"87ca1c31a326c898fa3feb99ec10750d775e1c84dbb7c4b37252bcf3742c7b21","impliedFormat":99},{"version":"d7bd26af1f5457f037225602035c2d7e876b80d02663ab4ca644099ad3a55888","impliedFormat":99},{"version":"2ad0a6b93e84a56b64f92f36a07de7ebcb910822f9a72ad22df5f5d642aff6f3","impliedFormat":99},{"version":"523d1775135260f53f672264937ee0f3dc42a92a39de8bee6c48c7ea60b50b5a","impliedFormat":99},{"version":"e441b9eebbc1284e5d995d99b53ed520b76a87cab512286651c4612d86cd408e","impliedFormat":99},{"version":"76f853ee21425c339a79d28e0859d74f2e53dee2e4919edafff6883dd7b7a80f","impliedFormat":99},{"version":"00cf042cd6ba1915648c8d6d2aa00e63bbbc300ea54d28ed087185f0f662e080","impliedFormat":99},{"version":"f57e6707d035ab89a03797d34faef37deefd3dd90aa17d90de2f33dce46a2c56","impliedFormat":99},{"version":"cc8b559b2cf9380ca72922c64576a43f000275c72042b2af2415ce0fb88d7077","impliedFormat":99},{"version":"1a337ca294c428ba8f2eb01e887b28d080ee4a4307ae87e02e468b1d26af4a74","impliedFormat":99},{"version":"5a15362fc2e72765a908c0d4dd89e3ab3b763e8bc8c23f19234a709ecfd202fe","impliedFormat":99},{"version":"2dffdfe62ac8af0943853234519616db6fd8958fc7ff631149fd8364e663f361","impliedFormat":99},{"version":"5dbdb2b2229b5547d8177c34705272da5a10b8d0033c49efbc9f6efba5e617f2","impliedFormat":99},{"version":"6fc0498cd8823d139004baff830343c9a0d210c687b2402c1384fb40f0aa461c","impliedFormat":99},{"version":"8492306a4864a1dc6fc7e0cc0de0ae9279cbd37f3aae3e9dc1065afcdc83dddc","impliedFormat":99},{"version":"c011b378127497d6337a93f020a05f726db2c30d55dc56d20e6a5090f05919a6","impliedFormat":99},{"version":"f4556979e95a274687ae206bbab2bb9a71c3ad923b92df241d9ab88c184b3f40","impliedFormat":99},{"version":"50e82bb6e238db008b5beba16d733b77e8b2a933c9152d1019cf8096845171a4","impliedFormat":99},{"version":"d6011f8b8bbf5163ef1e73588e64a53e8bf1f13533c375ec53e631aad95f1375","impliedFormat":99},{"version":"693cd7936ac7acfa026d4bcb5801fce71cec49835ba45c67af1ef90dbfd30af7","impliedFormat":99},{"version":"195e2cf684ecddfc1f6420564535d7c469f9611ce7a380d6e191811f84556cd2","impliedFormat":99},{"version":"1dc6b6e7b2a7f2962f31c77f4713f3a5a132bbe14c00db75d557568fe82e4311","impliedFormat":99},{"version":"add93b1180e9aaac2dae4ef3b16f7655893e2ecbe62bd9e48366c305f0063d89","impliedFormat":99},{"version":"594bd896fe37c970aafb7a376ebeec4c0d636b62a5f611e2e27d30fb839ad8a5","impliedFormat":99},{"version":"b1c6a6faf60542ba4b4271db045d7faea56e143b326ef507d2797815250f3afc","impliedFormat":99},{"version":"8c8b165beb794260f462679329b131419e9f5f35212de11c4d53e6d4d9cbedf6","impliedFormat":99},{"version":"ee5a4cf57d49fcf977249ab73c690a59995997c4672bb73fcaaf2eed65dbd1b2","impliedFormat":99},{"version":"f9f36051f138ab1c40b76b230c2a12b3ce6e1271179f4508da06a959f8bee4c1","impliedFormat":99},{"version":"9dc2011a3573d271a45c12656326530c0930f92539accbec3531d65131a14a14","impliedFormat":99},{"version":"091521ce3ede6747f784ae6f68ad2ea86bbda76b59d2bf678bcad2f9d141f629","impliedFormat":99},{"version":"202c2be951f53bafe943fb2c8d1245e35ed0e4dfed89f48c9a948e4d186dd6d4","impliedFormat":99},{"version":"c618aead1d799dbf4f5b28df5a6b9ce13d72722000a0ec3fe90a8115b1ea9226","impliedFormat":99},{"version":"9b0bf59708549c3e77fddd36530b95b55419414f88bbe5893f7bc8b534617973","impliedFormat":99},{"version":"7e216f67c4886f1bde564fb4eebdd6b185f262fe85ad1d6128cad9b229b10354","impliedFormat":99},{"version":"cd51e60b96b4d43698df74a665aa7a16604488193de86aa60ec0c44d9f114951","impliedFormat":99},{"version":"b63341fb6c7ba6f2aeabd9fc46b43e6cc2d2b9eec06534cfd583d9709f310ec2","impliedFormat":99},{"version":"be2af50c81b15bcfe54ad60f53eb1c72dae681c72d0a9dce1967825e1b5830a3","impliedFormat":99},{"version":"be5366845dfb9726f05005331b9b9645f237f1ddc594c0def851208e8b7d297b","impliedFormat":99},{"version":"5ddd536aaeadd4bf0f020492b3788ed209a7050ce27abec4e01c7563ff65da81","impliedFormat":99},{"version":"e243b24da119c1ef0d79af2a45217e50682b139cb48e7607efd66cc01bd9dcda","impliedFormat":99},{"version":"5b1398c8257fd180d0bf62e999fe0a89751c641e87089a83b24392efda720476","impliedFormat":99},{"version":"1588b1359f8507a16dbef67cd2759965fc2e8d305e5b3eb71be5aa9506277dff","impliedFormat":99},{"version":"4c99f2524eee1ec81356e2b4f67047a4b7efaf145f1c4eb530cd358c36784423","impliedFormat":99},{"version":"b30c6b9f6f30c35d6ef84daed1c3781e367f4360171b90598c02468b0db2fc3d","impliedFormat":99},{"version":"79c0d32274ccfd45fae74ac61d17a2be27aea74c70806d22c43fc625b7e9f12a","impliedFormat":99},{"version":"1b7e3958f668063c9d24ac75279f3e610755b0f49b1c02bb3b1c232deb958f54","impliedFormat":99},{"version":"779d4022c3d0a4df070f94858a33d9ebf54af3664754536c4ce9fd37c6f4a8db","impliedFormat":99},{"version":"e662f063d46aa8c088edffdf1d96cb13d9a2cbf06bc38dc6fc62b4d125fb7b49","impliedFormat":99},{"version":"d1d612df1e41c90d9678b07740d13d4f8e6acec2f17390d4ff4be5c889a6d37d","impliedFormat":99},{"version":"c95933fe140918892d569186f17b70ef6b1162f851a0f13f6a89e8f4d599c5a1","impliedFormat":99},{"version":"1d8d30677f87c13c2786980a80750ac1e281bdb65aa013ea193766fe9f0edd74","impliedFormat":99},{"version":"4661673cbc984b8a6ee5e14875a71ed529b64e7f8e347e12c0db4cecc25ad67d","impliedFormat":99},{"version":"7f980a414274f0f23658baa9a16e21d828535f9eac538e2eab2bb965325841db","impliedFormat":99},{"version":"20fb747a339d3c1d4a032a31881d0c65695f8167575e01f222df98791a65da9b","impliedFormat":99},{"version":"dd4e7ebd3f205a11becf1157422f98db675a626243d2fbd123b8b93efe5fb505","impliedFormat":99},{"version":"43ec6b74c8d31e88bb6947bb256ad78e5c6c435cbbbad991c3ff39315b1a3dba","impliedFormat":99},{"version":"b27242dd3af2a5548d0c7231db7da63d6373636d6c4e72d9b616adaa2acef7e1","impliedFormat":99},{"version":"e0ee7ba0571b83c53a3d6ec761cf391e7128d8f8f590f8832c28661b73c21b68","impliedFormat":99},{"version":"072bfd97fc61c894ef260723f43a416d49ebd8b703696f647c8322671c598873","impliedFormat":99},{"version":"e70875232f5d5528f1650dd6f5c94a5bed344ecf04bdbb998f7f78a3c1317d02","impliedFormat":99},{"version":"8e495129cb6cd8008de6f4ff8ce34fe1302a9e0dcff8d13714bd5593be3f7898","impliedFormat":99},{"version":"0345bc0b1067588c4ea4c48e34425d3284498c629bc6788ebc481c59949c9037","impliedFormat":99},{"version":"e30f5b5d77c891bc16bd65a2e46cd5384ea57ab3d216c377f482f535db48fc8f","impliedFormat":99},{"version":"f113afe92ee919df8fc29bca91cab6b2ffbdd12e4ac441d2bb56121eb5e7dbe3","impliedFormat":99},{"version":"49d567cc002efb337f437675717c04f207033f7067825b42bb59c9c269313d83","impliedFormat":99},{"version":"1d248f707d02dc76555298a934fba0f337f5028bb1163ce59cd7afb831c9070f","impliedFormat":99},{"version":"5d8debffc9e7b842dc0f17b111673fe0fc0cca65e67655a2b543db2150743385","impliedFormat":99},{"version":"5fccbedc3eb3b23bc6a3a1e44ceb110a1f1a70fa8e76941dce3ae25752caa7a9","impliedFormat":99},{"version":"f4031b95f3bab2b40e1616bd973880fb2f1a97c730bac5491d28d6484fac9560","impliedFormat":99},{"version":"dbe75b3c5ed547812656e7945628f023c4cd0bc1879db0db3f43a57fb8ec0e2b","impliedFormat":99},{"version":"b754718a546a1939399a6d2a99f9022d8a515f2db646bab09f7d2b5bff3cbb82","impliedFormat":99},{"version":"2eef10fb18ed0b4be450accf7a6d5bcce7b7f98e02cac4e6e793b7ad04fc0d79","impliedFormat":99},{"version":"c46f471e172c3be12c0d85d24876fedcc0c334b0dab48060cdb1f0f605f09fed","impliedFormat":99},{"version":"7d6ddeead1d208588586c58c26e4a23f0a826b7a143fb93de62ed094d0056a33","impliedFormat":99},{"version":"7c5782291ff6e7f2a3593295681b9a411c126e3736b83b37848032834832e6b9","impliedFormat":99},{"version":"3a3f09df6258a657dd909d06d4067ee360cd2dccc5f5d41533ae397944a11828","impliedFormat":99},{"version":"ea54615be964503fec7bce04336111a6fa455d3e8d93d44da37b02c863b93eb8","impliedFormat":99},{"version":"2a83694bc3541791b64b0e57766228ea23d92834df5bf0b0fcb93c5bb418069c","impliedFormat":99},{"version":"b5913641d6830e7de0c02366c08b1d26063b5758132d8464c938e78a45355979","impliedFormat":99},{"version":"46c095d39c1887979d9494a824eda7857ec13fb5c20a6d4f7d02c2975309bf45","impliedFormat":99},{"version":"f6e02ca076dc8e624aa38038e3488ebd0091e2faea419082ed764187ba8a6500","impliedFormat":99},{"version":"4d49e8a78aba1d4e0ad32289bf8727ae53bc2def9285dff56151a91e7d770c3e","impliedFormat":99},{"version":"63315cf08117cc728eab8f3eec8801a91d2cd86f91d0ae895d7fd928ab54596d","impliedFormat":99},{"version":"a14a6f3a5636bcaebfe9ec2ccfa9b07dc94deb1f6c30358e9d8ea800a1190d5e","impliedFormat":99},{"version":"21206e7e81876dabf2a7af7aa403f343af1c205bdcf7eff24d9d7f4eee6214c4","impliedFormat":99},{"version":"cd0a9f0ffec2486cad86b7ef1e4da42953ffeb0eb9f79f536e16ff933ec28698","impliedFormat":99},{"version":"f609a6ec6f1ab04dba769e14d6b55411262fd4627a099e333aa8876ea125b822","impliedFormat":99},{"version":"6d8052bb814be030c64cb22ca0e041fe036ad3fc8d66208170f4e90d0167d354","impliedFormat":99},{"version":"851f72a5d3e8a2bf7eeb84a3544da82628f74515c92bdf23c4a40af26dcc1d16","impliedFormat":99},{"version":"59692a7938aab65ea812a8339bbc63c160d64097fe5a457906ea734d6f36bcd4","impliedFormat":99},{"version":"8cb3b95e610c44a9986a7eab94d7b8f8462e5de457d5d10a0b9c6dd16bde563b","impliedFormat":99},{"version":"f571713abd9a676da6237fe1e624d2c6b88c0ca271c9f1acc1b4d8efeea60b66","impliedFormat":99},{"version":"16c5d3637d1517a3d17ed5ebcfbb0524f8a9997a7b60f6100f7c5309b3bb5ac8","impliedFormat":99},{"version":"ca1ec669726352c8e9d897f24899abf27ad15018a6b6bcf9168d5cd1242058ab","impliedFormat":99},{"version":"bffb1b39484facf6d0c5d5feefe6c0736d06b73540b9ce0cf0f12da2edfd8e1d","impliedFormat":99},{"version":"f1663c030754f6171b8bb429096c7d2743282de7733bccd6f67f84a4c588d96e","impliedFormat":99},{"version":"dd09693285e58504057413c3adc84943f52b07d2d2fd455917f50fa2a63c9d69","impliedFormat":99},{"version":"d94c94593d03d44a03810a85186ae6d61ebeb3a17a9b210a995d85f4b584f23d","impliedFormat":99},{"version":"c7c3bf625a8cb5a04b1c0a2fbe8066ecdbb1f383d574ca3ffdabe7571589a935","impliedFormat":99},{"version":"7a2f39a4467b819e873cd672c184f45f548511b18f6a408fe4e826136d0193bb","impliedFormat":99},{"version":"f8a0ae0d3d4993616196619da15da60a6ec5a7dfaf294fe877d274385eb07433","impliedFormat":99},{"version":"2cca80de38c80ef6c26deb4e403ca1ff4efbe3cf12451e26adae5e165421b58d","impliedFormat":99},{"version":"0070d3e17aa5ad697538bf865faaff94c41f064db9304b2b949eb8bcccb62d34","impliedFormat":99},{"version":"53df93f2db5b7eb8415e98242c1c60f6afcac2db44bce4a8830c8f21eee6b1dd","impliedFormat":99},{"version":"d67bf28dc9e6691d165357424c8729c5443290367344263146d99b2f02a72584","impliedFormat":99},{"version":"932557e93fbdf0c36cc29b9e35950f6875425b3ac917fa0d3c7c2a6b4f550078","impliedFormat":99},{"version":"e3dc7ec1597fb61de7959335fb7f8340c17bebf2feb1852ed8167a552d9a4a25","impliedFormat":99},{"version":"b64e15030511c5049542c2e0300f1fe096f926cf612662884f40227267f5cd9f","impliedFormat":99},{"version":"1932796f09c193783801972a05d8fb1bfef941bb46ac76fbe1abb0b3bfb674fa","impliedFormat":99},{"version":"d9575d5787311ee7d61ad503f5061ebcfaf76b531cfecce3dc12afb72bb2d105","impliedFormat":99},{"version":"5b41d96c9a4c2c2d83f1200949f795c3b6a4d2be432b357ad1ab687e0f0de07c","impliedFormat":99},{"version":"38ec829a548e869de4c5e51671245a909644c8fb8e7953259ebb028d36b4dd06","impliedFormat":99},{"version":"20c2c5e44d37dac953b516620b5dba60c9abd062235cdf2c3bfbf722d877a96b","impliedFormat":99},{"version":"875fe6f7103cf87c1b741a0895fda9240fed6353d5e7941c8c8cbfb686f072b4","impliedFormat":99},{"version":"c0ccccf8fbcf5d95f88ed151d0d8ce3015aa88cf98d4fd5e8f75e5f1534ee7ae","impliedFormat":99},{"version":"1b1f4aba21fd956269ced249b00b0e5bfdbd5ebd9e628a2877ab1a2cf493c919","impliedFormat":99},{"version":"939e3299952dff0869330e3324ba16efe42d2cf25456d7721d7f01a43c1b0b34","impliedFormat":99},{"version":"f0a9b52faec508ba22053dedfa4013a61c0425c8b96598cef3dea9e4a22637c6","impliedFormat":99},{"version":"d5b302f50db61181adc6e209af46ae1f27d7ef3d822de5ea808c9f44d7d219fd","impliedFormat":99},{"version":"19131632ba492c83e8eeadf91a481def0e0b39ffc3f155bc20a7f640e0570335","impliedFormat":99},{"version":"4581c03abea21396c3e1bb119e2fd785a4d91408756209cbeed0de7070f0ab5b","impliedFormat":99},{"version":"ebcd3b99e17329e9d542ef2ccdd64fddab7f39bc958ee99bbdb09056c02d6e64","impliedFormat":99},{"version":"4b148999deb1d95b8aedd1a810473a41d9794655af52b40e4894b51a8a4e6a6d","impliedFormat":99},{"version":"1781cc99a0f3b4f11668bb37cca7b8d71f136911e87269e032f15cf5baa339bf","impliedFormat":99},{"version":"33f1b7fa96117d690035a235b60ecd3cd979fb670f5f77b08206e4d8eb2eb521","impliedFormat":99},{"version":"01429b306b94ff0f1f5548ce5331344e4e0f5872b97a4776bd38fd2035ad4764","impliedFormat":99},{"version":"c1bc4f2136de7044943d784e7a18cb8411c558dbb7be4e4b4876d273cbd952af","impliedFormat":99},{"version":"5470f84a69b94643697f0d7ec2c8a54a4bea78838aaa9170189b9e0a6e75d2cf","impliedFormat":99},{"version":"36aaa44ee26b2508e9a6e93cd567e20ec700940b62595caf962249035e95b5e3","impliedFormat":99},{"version":"f8343562f283b7f701f86ad3732d0c7fd000c20fe5dc47fa4ed0073614202b4d","impliedFormat":99},{"version":"a53c572630a78cd99a25b529069c1e1370f8a5d8586d98e798875f9052ad7ad1","impliedFormat":99},{"version":"4ad3451d066711dde1430c544e30e123f39e23c744341b2dfd3859431c186c53","impliedFormat":99},{"version":"8069cbef9efa7445b2f09957ffbc27b5f8946fdbade4358fb68019e23df4c462","impliedFormat":99},{"version":"cd8b4e7ad04ba9d54eb5b28ac088315c07335b837ee6908765436a78d382b4c3","impliedFormat":99},{"version":"d533d8f8e5c80a30c51f0cbfe067b60b89b620f2321d3a581b5ba9ac8ffd7c3a","impliedFormat":99},{"version":"33f49f22fdda67e1ddbacdcba39e62924793937ea7f71f4948ed36e237555de3","impliedFormat":99},{"version":"710c31d7c30437e2b8795854d1aca43b540cb37cefd5900f09cfcd9e5b8540c4","impliedFormat":99},{"version":"b2c03a0e9628273bc26a1a58112c311ffbc7a0d39938f3878837ab14acf3bc41","impliedFormat":99},{"version":"a93beb0aa992c9b6408e355ea3f850c6f41e20328186a8e064173106375876c2","impliedFormat":99},{"version":"efdcba88fcd5421867898b5c0e8ea6331752492bd3547942dea96c7ebcb65194","impliedFormat":99},{"version":"a98e777e7a6c2c32336a017b011ba1419e327320c3556b9139413e48a8460b9a","impliedFormat":99},{"version":"ea44f7f8e1fe490516803c06636c1b33a6b82314366be1bd6ffa4ba89bc09f86","impliedFormat":99},{"version":"c25f22d78cc7f46226179c33bef0e4b29c54912bde47b62e5fdaf9312f22ffcb","impliedFormat":99},{"version":"d57579cfedc5a60fda79be303080e47dfe0c721185a5d95276523612228fcefc","impliedFormat":99},{"version":"a41630012afe0d4a9ff14707f96a7e26e1154266c008ddbd229e3f614e4d1cf7","impliedFormat":99},{"version":"298a858633dfa361bb8306bbd4cfd74f25ab7cc20631997dd9f57164bc2116d1","impliedFormat":99},{"version":"921782c45e09940feb232d8626a0b8edb881be2956520c42c44141d9b1ddb779","impliedFormat":99},{"version":"06117e4cc7399ce1c2b512aa070043464e0561f956bda39ef8971a2fcbcdbf2e","impliedFormat":99},{"version":"daccf332594b304566c7677c2732fed6e8d356da5faac8c5f09e38c2f607a4ab","impliedFormat":99},{"version":"4386051a0b6b072f35a2fc0695fecbe4a7a8a469a1d28c73be514548e95cd558","impliedFormat":99},{"version":"78e41de491fe25947a7fd8eeef7ebc8f1c28c1849a90705d6e33f34b1a083b90","impliedFormat":99},{"version":"3ccd198e0a693dd293ed22e527c8537c76b8fe188e1ebf20923589c7cfb2c270","impliedFormat":99},{"version":"2ebf2ee015d5c8008428493d4987e2af9815a76e4598025dd8c2f138edc1dcae","impliedFormat":99},{"version":"0dcc8f61382c9fcdafd48acc54b6ffda69ca4bb7e872f8ad12fb011672e8b20c","impliedFormat":99},{"version":"9db563287eb527ead0bcb9eb26fbec32f662f225869101af3cabcb6aee9259cf","impliedFormat":99},{"version":"068489bec523be43f12d8e4c5c337be4ff6a7efb4fe8658283673ae5aae14b85","impliedFormat":99},{"version":"838212d0dc5b97f7c5b5e29a89953de3906f72fce13c5ae3c5ade346f561d226","impliedFormat":99},{"version":"ddc78d29af824ad7587152ea523ed5d60f2bc0148d8741c5dacf9b5b44587b1b","impliedFormat":99},{"version":"019b522e3783e5519966927ceeb570eefcc64aba3f9545828a5fb4ae1fde53c6","impliedFormat":99},{"version":"b34623cc86497a5123de522afba770390009a56eebddba38d2aa5798b70b0a87","impliedFormat":99},{"version":"d2a8cbeb0c0caaf531342062b4b5c227118862879f6a25033e31fad00797b7eb","impliedFormat":99},{"version":"14891c20f15be1d0d42ecbbd63de1c56a4d745e3ea2b4c56775a4d5d36855630","impliedFormat":99},{"version":"e55a1f6b198a39e38a3cea3ffe916aab6fde7965c827db3b8a1cacf144a67cd9","impliedFormat":99},{"version":"f7910ccfe56131e99d52099d24f3585570dc9df9c85dd599a387b4499596dd4d","impliedFormat":99},{"version":"9409ac347c5779f339112000d7627f17ede6e39b0b6900679ce5454d3ad2e3c9","impliedFormat":99},{"version":"22dfe27b0aa1c669ce2891f5c89ece9be18074a867fe5dd8b8eb7c46be295ca1","impliedFormat":99},{"version":"684a5c26ce2bb7956ef6b21e7f2d1c584172cd120709e5764bc8b89bac1a10eb","impliedFormat":99},{"version":"93761e39ce9d3f8dd58c4327e615483f0713428fa1a230883eb812292d47bbe8","impliedFormat":99},{"version":"c66be51e3d121c163a4e140b6b520a92e1a6a8a8862d44337be682e6f5ec290a","impliedFormat":99},{"version":"66e486a9c9a86154dc9780f04325e61741f677713b7e78e515938bf54364fee2","impliedFormat":99},{"version":"d211bc80b6b6e98445df46fe9dd3091944825dd924986a1c15f9c66d7659c495","impliedFormat":99},{"version":"8dd2b72f5e9bf88939d066d965144d07518e180efec3e2b6d06ae5e725d84c7d","impliedFormat":99},{"version":"949cb88e315ab1a098c3aa4a8b02496a32b79c7ef6d189eee381b96471a7f609","impliedFormat":99},{"version":"bc43af2a5fa30a36be4a3ed195ff29ffb8067bf4925aa350ace9d9f18f380cc2","impliedFormat":99},{"version":"36844f94161a10af6586f50b95d40baa244215fea31055f27bcbea42cd30373e","impliedFormat":99},{"version":"8428e71f6d1b63acf55ceb56244aad9cf07678cf9626166e4aded15e3d252f8a","impliedFormat":99},{"version":"11505212ab24aa0f06d719a09add4be866e26f0fc15e96a1a2a8522c0c6a73a8","impliedFormat":99},{"version":"55828c4ddfee3bc66d533123ff52942ae67a2115f7395b2a2e0a22cea3ca64e7","impliedFormat":99},{"version":"c44bb0071cededc08236d57d1131c44339c1add98b029a95584dfe1462533575","impliedFormat":99},{"version":"7a4935af71877da3bbc53938af00e5d4f6d445ef850e1573a240447dcb137b5c","impliedFormat":99},{"version":"4e313033202712168ecc70a6d830964ad05c9c93f81d806d7a25d344f6352565","impliedFormat":99},{"version":"8a1fc69eaf8fc8d447e6f776fbfa0c1b12245d7f35f1dbfb18fbc2d941f5edd8","impliedFormat":99},{"version":"afb9b4c8bd38fb43d38a674de56e6f940698f91114fded0aa119de99c6cd049a","impliedFormat":99},{"version":"1d277860f19b8825d027947fca9928ee1f3bfaa0095e85a97dd7a681b0698dfc","impliedFormat":99},{"version":"6d32122bb1e7c0b38b6f126d166dff1f74c8020f8ba050248d182dcafc835d08","impliedFormat":99},{"version":"cfac5627d337b82d2fbeff5f0f638b48a370a8d72d653327529868a70c5bc0f8","impliedFormat":99},{"version":"8a826bc18afa4c5ed096ceb5d923e2791a5bae802219e588a999f535b1c80492","impliedFormat":99},{"version":"73e94021c55ab908a1b8c53792e03bf7e0d195fee223bdc5567791b2ccbfcdec","impliedFormat":99},{"version":"5f73eb47b37f3a957fe2ac6fe654648d60185908cab930fc01c31832a5cb4b10","impliedFormat":99},{"version":"cb6372a2460010a342ba39e06e1dcfd722e696c9d63b4a71577f9a3c72d09e0a","impliedFormat":99},{"version":"1e289698069f553f36bbf12ee0084c492245004a69409066faceb173d2304ec4","impliedFormat":99},{"version":"f1ca71145e5c3bba4d7f731db295d593c3353e9a618b40c4af0a4e9a814bb290","impliedFormat":99},{"version":"ac12a6010ff501e641f5a8334b8eaf521d0e0739a7e254451b6eea924c3035c7","impliedFormat":99},{"version":"97395d1e03af4928f3496cc3b118c0468b560765ab896ce811acb86f6b902b5c","impliedFormat":99},{"version":"7dcfbd6a9f1ce1ddf3050bd469aa680e5259973b4522694dc6291afe20a2ae28","impliedFormat":99},{"version":"6e545419ad200ae4614f8e14d32b7e67e039c26a872c0f93437b0713f54cde53","impliedFormat":99},{"version":"efc225581aae9bb47d421a1b9f278db0238bc617b257ce6447943e59a2d1621e","impliedFormat":99},{"version":"8833b88e26156b685bc6f3d6a014c2014a878ffbd240a01a8aee8a9091014e9c","impliedFormat":99},{"version":"7a2a42a1ac642a9c28646731bd77d9849cb1a05aa1b7a8e648f19ab7d72dd7dc","impliedFormat":99},{"version":"4d371c53067a3cc1a882ff16432b03291a016f4834875b77169a2d10bb1b023e","impliedFormat":99},{"version":"99b38f72e30976fd1946d7b4efe91aa227ecf0c9180e1dd6502c1d39f37445b4","impliedFormat":99},{"version":"df1bcf0b1c413e2945ce63a67a1c5a7b21dbbec156a97d55e9ea0eed90d2c604","impliedFormat":99},{"version":"6e2011a859fa435b1196da1720be944ed59c668bb42d2f2711b49a506b3e4e90","impliedFormat":99},{"version":"b4bfa90fac90c6e0d0185d2fe22f059fec67587cc34281f62294f9c4615a8082","impliedFormat":99},{"version":"036d363e409ebe316a6366aff5207380846f8f82e100c2e3db4af5fe0ad0c378","impliedFormat":99},{"version":"5ae6642588e4a72e5a62f6111cb750820034a7fbe56b5d8ec2bcb29df806ce52","impliedFormat":99},{"version":"6fca09e1abc83168caf36b751dec4ddda308b5714ec841c3ff0f3dc07b93c1b8","impliedFormat":99},{"version":"2f7268e6ac610c7122b6b416e34415ce42b51c56d080bef41786d2365f06772d","impliedFormat":99},{"version":"9a07957f75128ed0be5fc8a692a14da900878d5d5c21880f7c08f89688354aa4","impliedFormat":99},{"version":"8b6f3ae84eab35c50cf0f1b608c143fe95f1f765df6f753cd5855ae61b3efbe2","impliedFormat":99},{"version":"992491d83ff2d1e7f64a8b9117daee73724af13161f1b03171f0fa3ffe9b4e3e","impliedFormat":99},{"version":"12bcf6af851be8dd5f3e66c152bb77a83829a6a8ba8c5acc267e7b15e11aa9ab","impliedFormat":99},{"version":"e2704efc7423b077d7d9a21ddb42f640af1565e668d5ec85f0c08550eff8b833","impliedFormat":99},{"version":"e0513c71fd562f859a98940633830a7e5bcd7316b990310e8bb68b1d41d676a3","impliedFormat":99},{"version":"712071b9066a2d8f4e11c3b8b3d5ada6253f211a90f06c6e131cff413312e26d","impliedFormat":99},{"version":"5a187a7bc1e7514ef1c3d6eaafa470fc45541674d8fca0f9898238728d62666a","impliedFormat":99},{"version":"0c06897f7ab3830cef0701e0e083b2c684ed783ae820b306aedd501f32e9562d","impliedFormat":99},{"version":"56cc6eae48fd08fa709cf9163d01649f8d24d3fea5806f488d2b1b53d25e1d6c","impliedFormat":99},{"version":"57a925b13947b38c34277d93fb1e85d6f03f47be18ca5293b14082a1bd4a48f5","impliedFormat":99},{"version":"9d9d64c1fa76211dd529b6a24061b8d724e2110ee55d3829131bca47f3fe4838","impliedFormat":99},{"version":"c13042e244bb8cf65586e4131ef7aed9ca33bf1e029a43ed0ebab338b4465553","impliedFormat":99},{"version":"54be9b9c71a17cb2519b841fad294fa9dc6e0796ed86c8ac8dd9d8c0d1c3a631","impliedFormat":99},{"version":"10881be85efd595bef1d74dfa7b9a76a5ab1bfed9fb4a4ca7f73396b72d25b90","impliedFormat":99},{"version":"925e71eaa87021d9a1215b5cf5c5933f85fe2371ddc81c32d1191d7842565302","impliedFormat":99},{"version":"faed0b3f8979bfbfb54babcff9d91bd51fda90931c7716effa686b4f30a09575","impliedFormat":99},{"version":"53c72d68328780f711dbd39de7af674287d57e387ddc5a7d94f0ffd53d8d3564","impliedFormat":99},{"version":"51129924d359cdebdccbf20dbabc98c381b58bfebe2457a7defed57002a61316","impliedFormat":99},{"version":"7270a757071e3bc7b5e7a6175f1ac9a4ddf4de09f3664d80cb8805138f7d365b","impliedFormat":99},{"version":"ea7b5c6a79a6511cdeeedc47610370be1b0e932e93297404ef75c90f05fc1b61","impliedFormat":99},"787a19c855cf2b826942d25440b63150c45094154c6a40e95abdb4109298b8b4",{"version":"bb703864a1bc9ca5ac3589ffd83785f6dc86f7f6c485c97d7ffd53438777cb9e","impliedFormat":1},"13dc2d1e35226de85458034417bfc0e781211044fad520bac53b7858a290d004","622f95b2d77382fec591bd2c01f60d36c7868edc636d8da291387633ed96ec52","29cb5493c474d07fabd1d53cf8207c222f3691c4b97c61bb9702f04949d333f9","7a29ecaed92b8c39d1e11fd11a73a204e3badb7ef48bfd817fb963d66bc01446","dd32b7ed90dd4e7070af271977d0d943efd9a8d7d2199356e2375e33b6bf662a","a59d17fc811858c08d2b6fd596ccbc0a9b3bed293a24790dfc56fdf8c9994a53","bc609bfde2b132508718aafd010975dbffcdb93f372457c21231d983d6bfb9da","aab05ca0acd4a51c37a8154cce2b75479d3d62f90341823905631f0a726baa22","79ed3ad7f3ffce96118b23245b494e4779095c248ea6a35565f28fbbc2ec9284","c7454985c9af73a99597d839eac967527fd59c6aae7a495c0207ffe9fdb8e4c4","4d6cdb41f5e5eda58fcd4fa2cfe08e057023cec21583202bcb828e5b98a5bcd4","d379b551673ab2ec8ff77f14be81964b9528ead97601978f4333f6a1a777b8fd","ed06668f35fda8824685dafae8b372a34b26e165d96a7c10453992029e0ca4ee","0687999f5f651ff663e2c6673fc0e9610a3ba98e62b75a69a4f7289e0f7ec482","e8288f355bb77b1ecbf31b48ef74e56184fb19ed8bc3be07ed33d7d97830fcee","81374257c87db982d891f53b9f1caf0cfe011d943be775ea3f903952f81fab69","097fc392369de9744117595a3c18edc1acd0651d4f908c47153b5d04310a3878","76cf9f2626be11855617055bea17423597efa9783a0486f552cc59d7045a6b47","9f752ffefe86f1263bc3bbfe4f2da80f52e159225ed698a03485a6770b55b33a","1882b6cab444027543bbe04a6d73daa9fbeeded6669f994b59719b9b8f911b6d","10c4200cc040e99f22f3d18bb86f57d4ae5380adae9143321cb2b54938fde5fb",{"version":"ec826a6027ed908979b62c28e9337092c0a38b1a09c26fbfb2ac28e6c6bc6ab8","impliedFormat":99},{"version":"eb13db65f570c7c549d37b6ef13015fc12219b1d4334b72e55096f872515d0a1","impliedFormat":99},{"version":"23bdba74857cc707cb579c7854bc33a3032405b178f824cd4835739d949cefc6","impliedFormat":99},{"version":"d68c9ce81c6323c1cbe63f3c230e0cd4547a4aaeda15e092ef99bd8e5cb6a6a3","impliedFormat":99},{"version":"60381d350eb7ea23dafb3c48b9ea6d3bd9e9b7dc113616283805e6c5dc0487d5","impliedFormat":99},{"version":"3a4474d2488cc11df888e4645170b1fc26a89875a2aecf79e90e8eaac773560c","impliedFormat":99},{"version":"08c3210a72ce36e62024becd02e660f3324e3f4ffcef86f1821f4387542c8224","impliedFormat":99},"139d7b61669dcc5eeab1846054e420fb385f138553ef50591e82c42081c0cb93","6c705030a172e9a7fef8a44c0e614ff8a6264485288cbcc7e30ba79c9131ad1f",{"version":"e7c2f40dc99121500ad108a4f86541d29cac105ed018f994c7c5a2836e77b257","impliedFormat":1},{"version":"90e930283286ab117ab89f00589cf89ab5e9992bc57e79f303b36ee14649bdd9","impliedFormat":1},{"version":"6d48a6c907c668a6d6eda66acec4242e367c983e073100e35c1e234c424ad1a4","impliedFormat":1},{"version":"68a0e898d6c39160f1326ef922508914498c7a2d0b5a0d9222b7928d343214eb","impliedFormat":1},{"version":"69d96a8522b301a9e923ac4e42dd37fc942763740b183dffa3d51aca87f978d5","impliedFormat":1},{"version":"ff2fadad64868f1542a69edeadf5c5519e9c89e33bec267605298f8d172417c7","impliedFormat":1},{"version":"2866ae69517d6605a28d0c8d5dff4f15a0b876eeb8e5a1cbc51631d9c6793d3f","impliedFormat":1},{"version":"f8c4434aa8cbd4ede2a75cbc5532b6a12c9cac67c3095ed907e54f3f89d2e628","impliedFormat":1},{"version":"0b8adc0ae60a47acf65575952eee568b3d497f9975e3162f408052a99e65f488","impliedFormat":1},{"version":"ede9879d22f7ce68a8c99e455acab32fc45091c6eed9625549742b03e1f1ac1a","impliedFormat":1},{"version":"0e8c007c6e404da951c3d98a489ac0a3e9b6567648b997c03445ac69d7938c1c","impliedFormat":1},{"version":"f2a4866bed198a7c804b58ee39efe74c66ecdcf2dfebef0b9895d534a50790c4","impliedFormat":1},{"version":"ad72538d0c5e417ee6621e1b54691c274bcacaa1807c9895c5fa6d40b45fb631","impliedFormat":1},{"version":"4f851c59f3112702f6178e76204f839e3156daa98b5b7d7e3fc407a6c5764118","impliedFormat":1},{"version":"57511f723968d2f41dd2d55b9fbc5d0f3107af4e4227db0fb357c904bd34e690","impliedFormat":1},{"version":"9585df69c074d82dda33eadd6e5dccd164659f59b09bd5a0d25874770cf6042d","impliedFormat":1},{"version":"f6f6ce3e3718c2e7592e09d91c43b44318d47bca8ee353426252c694127f2dcb","impliedFormat":1},{"version":"4f70076586b8e194ef3d1b9679d626a9a61d449ba7e91dfc73cbe3904b538aa0","impliedFormat":1},{"version":"6d5838c172ff503ef37765b86019b80e3abe370105b2e1c4510d6098b0e84414","impliedFormat":1},{"version":"1876dac2baa902e2b7ebed5e03b95f338192dc03a6e4b0731733d675ba4048f3","impliedFormat":1},{"version":"8086407dd2a53ce700125037abf419bddcce43c14b3cf5ea3ac1ebded5cad011","impliedFormat":1},{"version":"c2501eb4c4e05c2d4de551a4bace9c28d06a0d89b228443f69eb3d7f9049fbd6","impliedFormat":1},{"version":"1829f790849d54ea3d736c61fdefd3237bede9c5784f4c15dfdafb7e0a9b8f63","impliedFormat":1},{"version":"5392feeda1bf0a1cc755f7339ea486b7a4d0d019774da8057ddc85347359ed63","impliedFormat":1},{"version":"c998117afca3af8432598c7e8d530d8376d0ca4871a34137db8caa1e94d94818","impliedFormat":1},{"version":"4e465f7e9a161a5a5248a18af79dbfbf06e8e1255bfdc8f63ab15475a2ba48bd","impliedFormat":1},{"version":"e0353c5070349846fe9835d782a8ce338d6d4172c603d14a6b364d6354957a4e","impliedFormat":1},{"version":"323133630008263f857a6d8350e36fb7f6e8d221ec0a425b075c20290570c020","impliedFormat":1},{"version":"c04e691d64b97e264ca4d000c287a53f2a75527556962cdbe3e8e2b301dac906","impliedFormat":1},{"version":"3733dba5107de9152f98da9bcb21bf6c91ac385f3b22f30ed08d0dc5e74c966f","impliedFormat":1},{"version":"d3ec922ddd9677696ee0552f10e95c4e59f85bb8c93fd76cd41b2dd93988ff39","impliedFormat":1},{"version":"0492c0d35e05c0fdd638980e02f3a7cdec18b311959fc730d85ed7e1d4ff38a7","impliedFormat":1},{"version":"c7122ba860d3497fa04a112d424ee88b50c482360042972bcf0917c5b82f4484","impliedFormat":1},{"version":"838f52090a0d39dce3c42e0ccb0db8db250c712c1fa2cd36799910c8f8a7f7bf","impliedFormat":1},{"version":"116ec624095373939de9edb03619916226f5e5b6e93cd761c4bda4efecb104fc","impliedFormat":1},{"version":"8e6b8259bfd8c8c3d6ed79349b7f2f69476d255aede2cd6c0acb0869ad8c6fdd","impliedFormat":1},"55d56755ef0667f15f6072e374f189f3a0d322fb4fd323c8bbde1ec5de894e35","5babad7b05cb460fbaa04a3ef544518bfb8bcc4115d968bb943a56b1e3641923","cb1f4e899b3220086cbd5439dd821b792399f2e3a7d88070dc81102dcb1c22e9","e90e26e28de8859b6a7aa7a3c600d691e1f4f6ead014cacb5e431094397abec3","8996629a02dc7db97b75b89edf3d5ab51540d8695adb88afd600d17a7e6df217","187e2f405d45f10bb5a130973097f1e5f16b062375b5ad27ae32615668782c67","9412a156c35a8baa72bdee513d96470cf0152f63e0a4db07c85c3cbcf9df6f32","fbf015bbfe776e010855188176b4ff6edfff47d775b6823772af034649cdaa23","59698b84bd69ec62aa51ec496bf011e37bf0eb89de994e9b4b880c8f7c992c65","ae7c13da60181b49c24cac060cab08b6cd90b329570e9f34583f0cc6e73e7576","1593ed04cb28b50ef2518328a20ddcd04e4fb111fd76677663887eb229c0910b","dbe8bf98d1fdd0757a63b7dcef813328a38e026a82634b076bd82d26c0bfafc3","38adc017c7914bdbf1063d504a8bb7b36b8697a3b090069fab216cff78e5cc5f","9a15018312d48e3cf0b1d23866c33e05e9736fbcd9102ed3ce9528c6301531f1","6a9752e3b35c0970a9619b4d9508cc62fb4caa2cd554e90effaf0c07be754f0e","abd2ecdaee03227e98c25ea8e4dbfd1187f813c0eab1d5d6d1a6b2fffe422bff","0fbbdebe47923e003fcdf69b1283340a44e5203b519299a29ee8ef0fd4f46f9d","d5f14158ab4498e7ddf61d434a13ea3439746e4d100a79db5a75c3695a66b1ae","429ed3f2d24d61480862dbcdd006cbe78d9676a867f10df4d557d11afaa98f2c","e0070d800cdfa87bddecde27d5f0f7a00f3852d6a376e17c5dbdbbfef41941e5","bc0d71193ebeb976a1e8345b247e37f7dea9a85444e327f5fbc66d17fa6645ab","315c011315a05e403256532d3d9742611bc9cfd5a55a434fc847d6a6826e70e6","e7fa01fd5396b3903f3b7760cf55148e0c45d0a7c1b8ec893b24af3e4911be46","2c1f10136ca71dcd5673873a32c04267097c9b7519e532b632749372195dd7c1","38a0e2a1127af5f6b824acb367249c23183adbb3f068475f989327aef46c9be9","37ec21e21568d91296a2adadd6a1df0b2f40be642c4cd70858094bfaa1a1de02","4c30b710be482c09be59cadf827454ff4e443026a0d836e9f5133fbb6dfc5926","337de880ba84fae0111c40164c304b91c16ec8d7ec706a43938f0bd5b316db39","0d7a520aa47aec462d793b35f1d63b65c97095f285c833516a984d40874b1dd6","12104b430200479596a1abb8fa6c6713e1c78e812bc2349e06ba84d6cc7f56de","003825c57a137d65571f788582abfe85c5b834187a1a20e7af3cb62d4f749e44","ab1207b585b38d232b3bf1d4bf9a13ea6ed950457a628323a7b3d3e87aa102e3","b6b990c62909bef18f2beba4f2eef533f33f796b89a79485f5f30b163f35b687","083d34dd695a5523c5c2b02043616225c0438a7b5c18028dad0155e2a6cf1b9b","9a69d37481c037ce35bb71730552cbb9d65757dbd827656e12d0a601099249bc","95799184faa0ed49546724de9e7e3c70847ccd7ece420003ba465fc3ceeb28eb","85b528a72177b3d980ded5037b059e4d6a0d66239c85c49b7adfa82b3d0a7e2f","801118dd7a56ef2e3836173dbd6fc4b09133c46a313da13506570da465bbb3c7","8a33e1b04c8e9e8044f82f8df4453aa62b09e5d0f40b63c59105652337b27c93","fdef1073c37e5756b4eb3a1041ad557814410e3637289322a6c450b76cfe25bc","7fb5760fb5ab64d98149ad1c3b46b582980cb7af1d78eaffb2a3547d76142af8","5d4dfdccc112c5e5074af03a956b0d7f5ec634f8f8e5eb06cbe6754bca2691ce","f1017429da46fb1c8744e18b3c8bfda91a47bf0adac08f0fc02e920286fe2991","37fbcb8aa4d50ae8263b04636bc1ec7ac2d0a322fd32e8a2995152a18d9599ea","83947a8bfb1e93b090b2c8c6e612a585c4431e1cbebc67a075f938b46e1879a3","877a0e1dea34a564c6040ce664bf6a8ddb585cb5713e34d5bf6716ae0870581e","48d818aebd9d89491e37ddbae2908c38a011662c523d67e1add4ffa4cce4d71c","9578e692aa2c18a379e0033133877c2fc132dbf9cc7b3778f716a6dc8141205d",{"version":"152accb0c34090709491877e607a5ec957a70040e5320a1516348311c112933a","impliedFormat":99},"1d251ee683ae69dbe64f7a3157bbf5f0d8aec4b91982b7cbf777eb824b666d3f",{"version":"fe9dd679e568dc2a0e5e6959f77b53f8bc1f126d46b0d17631347ba57470b808","impliedFormat":99},{"version":"300627fdf9e8f926a051ffe14c285ab2a2589e2d5d040e0b03f9079cf7cb7f78","impliedFormat":99},{"version":"54e76a6612d9b83fde2b1cc0569f20c5b8d38f7a860b88a1d9d805399bfeead3","impliedFormat":99},{"version":"e9549a400fa6ed33871effcd70b9bc5ab77f24ecc6349c97d8da7ae078e6a25a","impliedFormat":99},{"version":"5a4ddf80b1bdab540fe5d3f837921e9e8dc559a1a319e75451c30f0d5f62ac0f","impliedFormat":99},{"version":"0c6ef3deba595b7dc7b4ee09342435c7a2392fe7752e335acdedfe2476529638","impliedFormat":99},{"version":"00fab36b3130e6d7a2316d0583a2e2a4d328a6f4e01817d90d8b07baad69b4e1","impliedFormat":99},{"version":"c230e5c79d451178f5bb0672a4459aaba9fcd8accf5da919e9fc44c28a935410","impliedFormat":99},{"version":"8749a2a14224f40523f4b73b4737306314b9c525613504a10f0f5d8734ff6bb9","impliedFormat":99},{"version":"5d53b138462bc7fb5c4177f3e1b9ddbcbb067bf2e2c30efec5756432f7a02783","impliedFormat":99},{"version":"5a47c8ad69dcfe848bc192833b6b3ed97e84019d913adc0fe096e3282a850c1b","impliedFormat":99},{"version":"d831e9a63887aba1d1519f71f3a5bd4630811b5bf9369b0a92ae716afedb3595","impliedFormat":99},{"version":"77855b9f4c8a27aa7298edc60d434623591eb8978999643ee00d7962a58e627d","impliedFormat":99},{"version":"15ee337c63e1b9f0ae6c716f8956dc099ca5cef086c6d22b300b538dab00c192","impliedFormat":99},{"version":"e54ff04895008d9c81a7e75244bdf7d778b09dc866cae9df91773a05a93f398a","impliedFormat":99},{"version":"3cba4781dc00ca50d27ba86627632e7de9570b7199395263d7c7254ad23590d4","impliedFormat":99},{"version":"f32b3896585c2e56e45c2ae10c5d0d2e780df489f44f4fec95d2fa8d8593cb68","impliedFormat":99},{"version":"b189c5be82d2d744cc847d35ef0a0f66ced85bb08721d74a289125d7a773f2c3","impliedFormat":99},{"version":"5b71f48b0e60fc32214d44a36bcc0b66f166c2f32504fb70603b1cfb58f02ceb","impliedFormat":99},{"version":"2b77a0c2fc1bae52dba065890032fce18aefb0ab1b1aadf5d45bf1e27ff4f196","impliedFormat":99},{"version":"0f540fd888c72708e7a18d8f79dc87c52463825e8bb41e8dbc5df63fbf7142d7","impliedFormat":99},{"version":"830ab13db11b09e04bc580b04e7db6dec4b64414c9e254c5bf0157a0f3a59b1f","impliedFormat":99},{"version":"caba7b77a5dcec826d9f8b1743f5fff83db2ed9c936d4f7ea1780724bb25c022","impliedFormat":99},{"version":"6adf4954094ae0e42a229cca490e14df93b5525fa5a7e89ba3a80faa05bdbaa5","impliedFormat":99},{"version":"0aba336dd272d7eb6637da14126c45685a94f66447fa8cfed6d499491fa72942","impliedFormat":99},{"version":"64a1fd5dd513421ac9012ce408225daec74e46aad8a52935e12b61ad626c1126","impliedFormat":99},{"version":"dfedd18b030c8da49695891224da74606b502cf4329ae91cb5d08a6852c831af","impliedFormat":99},{"version":"ace6accf2f8631dc7283e949ccdfe2e5fd1b42e14fbb9139043825e33511aaba","impliedFormat":99},{"version":"2c9b89e86f0e8675e6285328ae446151f1bced3194c70faca47df97ab9dc1834","impliedFormat":99},{"version":"9bdac837352fba0b13df63dbb588d5619dceeb04b74b494731f3ae69184cb07f","impliedFormat":99},{"version":"01abcd66a71a6c9baf0899c623433d21bd7471ff710fb0ab977b49e204db65a6","impliedFormat":99},{"version":"c53b183f533146cf34a56aa39d1bb4be09d8e3836c35ff4798abcb3fbb38e000","impliedFormat":99},{"version":"ab11557d5dc14f5978361c7be95fc8d111d68b9b357d29b7fac1b8786210b87f","impliedFormat":99},{"version":"129abe961e67dffd1ee00db337701724e11efa8b81e4727f1f1c5e6095c11fdb","impliedFormat":99},{"version":"4cdbc6730030fab3022fa824b2c4243876c5080bd6929634b409c019c9464b98","impliedFormat":99},{"version":"33a77396615217fbee394ecbdf9d40829928c3902653316039b0ade770fd4c81","impliedFormat":99},{"version":"839f1025be2210a4ea8fb355753b1429ac2f9fc013d9da04cd3ed0ad2703bde3","impliedFormat":99},{"version":"8b64e0600b0a66e887dcd7d4c2179a387c9187ad72e8c8c962be990c5cee5405","impliedFormat":99},{"version":"b0137bacfc8422a20aa2ce0378591a563b195f771772aeca851c46683392151f","impliedFormat":99},{"version":"176fda74e7858f87fbf6614b3ad257b70ee3c46f404dd6bea73d62d9181c0d64","impliedFormat":99},{"version":"fe694e8a44f980c4a39ccbc6c9e1a2c75ceab9c0444b3303eff8019f52c484ad","impliedFormat":99},{"version":"05d447824ff8445601944e904c2752cd264f43a52727c801b43b57b4506f6d4b","impliedFormat":99},{"version":"3284687e82c5630887b8430174cd1354a9edb7cad13bc9d122873d94915cb4f0","impliedFormat":99},{"version":"4facb8d4dd5ab10bbddab0200bb86b2d4ee8fc62b598c8d4769a9c525964d52e","impliedFormat":99},{"version":"c9d0c59317c7c254e1477aa58bff92120421a19e28dace4e88cd9a33e2e1643f","impliedFormat":99},{"version":"4798c60ccd1c17ec256c5146bb2499d98cdc9f5d18edc7e8d840fdc32e751f36","impliedFormat":99},{"version":"86cada0c2fc6804a410b31946171baaae488e2fbae23c8ca8014dac3c23f6254","impliedFormat":99},{"version":"4b784d9ecd53bbb1e5ae184a4e29021237becb3eabf0be83ad5b1b3903edf099","impliedFormat":99},{"version":"9d34b24e5c0d6b80af7d5e7e0955b604018acc5398bf72974d7e7d6e8dcdb576","impliedFormat":99},{"version":"12edc11c881b5bb0b80b10a67b153a0f9f915914d44e39d17634c5369e230bef","impliedFormat":99},{"version":"c471abd9a8a7307d0bbf6703719cb7a37cd8ea51a4dcba66cf742136ca49d818","impliedFormat":99},{"version":"12893dde5d869073618bca39648143c519fd887a1900862c27dce2427a43e13b","impliedFormat":99},{"version":"2acd88722f08e94a6750ab39d79a2bcc66b04402d48384e6f09536028cecd0f6","impliedFormat":99},{"version":"13e53b214e0d5e3a7572d7756f5ba993e369d5e3f3cb7ce8ef2de96dfea4f1e9","impliedFormat":99},{"version":"3b1f288eef769a3368e4be1116333c8e15238c1d7676e29641251989e5142a6f","impliedFormat":99},{"version":"e4ad233d16a44ad74f3039b9d429c34913cdd76b9016d9ca13b3a210d341dedf","impliedFormat":99},{"version":"ed99666b773147c4ab2362885b256d8310248f15525969c5c84b75a9c468fbb3","impliedFormat":99},{"version":"957492b589b81f43bfec7981ee6065a917eb4bebc54045429f8338b77b717843","impliedFormat":99},{"version":"db2058ee3aacd09e647a354c5c1410f29b7e3d763aaacee590aa4455af6d8889","impliedFormat":99},{"version":"9367a4aa7ce573fed27f9f41d42570d3754cc9288ee016ddb6f37e54acba2690","impliedFormat":99},{"version":"abf65b5a4d2ad20b45f12343fb2c3f476a999fc8ddb19b38f3e8fdd8cf71c576","impliedFormat":99},{"version":"e7c7ee8a8ad4db07eec954fb6a6892486ce1b6247d94932a54203421f6d8b1d8","impliedFormat":99},{"version":"b22a0412dadcb7ec9d7b76d0fa03d1ea01a6fdb36bc442b68e5db57270230b0e","impliedFormat":99},{"version":"30f7921bc1f992091e561b32bd7976ab1e997a044dfac30a5336dfcd5cf06811","impliedFormat":99},{"version":"720913e3730b396d00f930ea27cdb04c878192d93fd4825e78d64788117d4d57","impliedFormat":99},{"version":"6c79cad9c85ee8869353437d121fb86bacf3bfe78e974f94a3a0e363d9d7eeb2","impliedFormat":99},{"version":"e8c14f7445d243cf0b93d60ce2079b596f6e7028cdcec75c493963230c9ff4d7","impliedFormat":99},{"version":"d5aec5fc0cc443e9e29b558465a6b470570e0828bf160aac4300b7a1e85ff819","impliedFormat":99},{"version":"6d439ca69a8256b37371852884106f3652ef2cc5bdb20de122822dd5bad2db99","impliedFormat":99},{"version":"d9534a835fd3a0614d66605b4e229d28e7ecbcb52d5d23f5716b1fd495046473","impliedFormat":1},{"version":"2e900e22ef301dafb3a35df7aaab4f139bf1602c8e5dc0bb0ca8b24305af388e","impliedFormat":99},{"version":"9aa36400c5ad94a3607435ea81a0f23dd156941481940ad58d1f5eee9d73fd80","impliedFormat":99},{"version":"34d430065a52b1c9c8412dc7f9d59788da7fb3ef97f30b96123ec87e8349dfb6","impliedFormat":99},{"version":"70079049f1238a883dc20d70ed0a02b440ae7d1551ae4063c5a70a09fc48c749","impliedFormat":99},{"version":"a9b19445b54d5d51530cf35c25cfcfe78077b75eb88d97d780e71d11e081bdf7","impliedFormat":99},{"version":"26c15e4d5579b6631bdaf2a460a38adbfa18e4375f1fd21c99580f871a1e0ccb","impliedFormat":99},{"version":"0d606f30c5a9c20533d04e59d4435c5b4c31556e80b851651fa614613d583cc9","impliedFormat":99},{"version":"9897b484334f1f416ef2762f3b779b7678dc3849eee43ec69ece01659b562d45","impliedFormat":99},{"version":"a1a672233765b4cfc20dd5b7f645704356deb308e4fa665c63af94c0c65d3a16","impliedFormat":99},{"version":"d6c84aca0690c4009696a8cc626956d05162acd88eb66b01b8e14148eb750648","impliedFormat":99},{"version":"390db9742e76bb266f3cdea26b18ce7c32499e280c100af0abf75d193627f1cb","impliedFormat":99},{"version":"9caab1392d9eedbeeaba87473112a25e972a931f131d36ee7684ef902999aeec","impliedFormat":99},{"version":"8551ce727613384290c482f0c158f5b2bbee2725b24b498a7fe9d0c2124eca48","impliedFormat":99},{"version":"f41be7d5d9cff51d7ad736e1f927d0d9b38fddfa3e4dee77cae41141c1aa9e5b","impliedFormat":99},{"version":"a9b3aba73addff9d2cebc0cba327a2bc3135af5c739f4bcae95c02c9f08da41b","impliedFormat":99},{"version":"fae2554f91898292fec2ed60889bb04852576ce4669ff9e097b8ac4ae5b6fa96","impliedFormat":99},{"version":"deb786f3e3f9919b0befaf695229d3169bca681ae0dfa4389b36a945f3423636","impliedFormat":99},{"version":"d6a1f063bc5524068c9345873b59a205c36d49687748265d0ea59f9f284a29cd","impliedFormat":99},{"version":"39a66d1b229156803fa2faa3e9c8b4768b33bd7411824a6fd891934b9a03fbc5","impliedFormat":99},{"version":"0ed8c99b2a5d5716b679cacbd3c165a70e7a46bca6bf1f049d9c258dbe4655b8","impliedFormat":99},{"version":"2758cec54792ec2eff8511692a9e5a3a8b3e3992f914ba313dbaa79ff5e03e85","impliedFormat":99},{"version":"3cebd02973cdec12d8f1af1336c324fd9c60be7b5ee08baa4b225a5577335aca","impliedFormat":99},"30d25949d75cd6e04b9db98baa5f066219548ef38a6f2a6417c755b27591bb9e","f8903a7abe5860dacd71e7178c73d8597562242379596213628c6912eb01cdd2","d0852bae10e7e84792722dbe73a211d927e484ae7bdeb5322a5cf692576d5332","aa01d4bcacee27ec02b9f24ad3f9e6369ed0abfd1ade70bcc04f5cc3b3797c7f","21039bfba91ae1fb732f9f2f01d6ea213be61f2c80ef2c1115632a340cee6948","8112947bbb042ee38df27e755aba78c6cebb698a19dac332c1787b43b89ae521","9f45876c3a364189c8c1f8f8de4d181e82d3887765a789aa638e7df18f8c8763",{"version":"b6299cb4477935a9feaf12efb768d832186f55a7a6703cbd17f64d4cf6be88bc","impliedFormat":99},"eed3b144c55e58569928848d6acbc249c5fa3d0b3869c094ebf7121d8246f69b",{"version":"126eac20336c7374782d571be802e7b7adb9fc5b24c0dd0dfc37bfc9774d9182","impliedFormat":99},{"version":"9001790195bf5cf382c676ded6da44833812e677bb9f31fcb22fa47d389039f4","impliedFormat":99},"85401666452e33496c46cfbed0c8d131e686252aef92125d918dcefceff35b9c","938e89b7bd4c3e47a0ddce6575aa72fb7c0d345964041c1670a4b7c4d70ea75c","689823d4644b38e87cff42b37ac62bdf05aac676dbe5aad82953c24bece5a97b","97ca1dfee36c2c23d576fe40c082c82b8d2db4439a3ec3c6cb509669e73f9ef7","6206b472fe17ea64c81313beb540655ac01081d22982319cf21f5211e4a9b71c","2db1837116083735cbb3126491dec83f309002d05c027c4696f636946b64a6ff","cec34e971d7a4e23252019ca1deedb77af5b3a42c5d62f61095dfe82aa2a848a","9f634f6135bd76998e5f49fdb43569f03d528de8cb8bd722b31c868f4d2fbb78","eae1432ce9b94c02c3135cb75a0ae8229a67293e51c1cd7ef2c439cf03f84947","f7cd8169d5e58682970ede1cb61e5c48429d7877c63f76732758292ac8c7ef3e","a3baee44bc31bf8e91300a47cec243a23421efe90b7c099c93d6b714873095e6",{"version":"23fea8bad58c63e1a9058d779587f091521c525c8a0945247636f24c6e073503","signature":"21c63f6576f08dd88a9616edda06fc70355fd88c2a34cbfa58c7e4538f72e714"},{"version":"c39650d559c799ab84d05ca3b903425dfecdb074ee58459e01ac24e50ef73f0e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4d7d964609a07368d076ce943b07106c5ebee8138c307d3273ba1cf3a0c3c751","impliedFormat":99},{"version":"0e48c1354203ba2ca366b62a0f22fec9e10c251d9d6420c6d435da1d079e6126","impliedFormat":99},{"version":"0662a451f0584bb3026340c3661c3a89774182976cd373eca502a1d3b5c7b580","impliedFormat":99},{"version":"4781142e27cfd19d75a2c0ee432826153fcdf670bdc52631a6078330c9133e6f","impliedFormat":99},{"version":"313e65d29e121376bd4db3b79886a6e3bc79ce9d1bff08237560f989925d8df2","signature":"cf9969293c18a5558d44fa68f43986bf27cc17f4b0102e8057f2615bcfe3f5a2"},{"version":"4c6294953372ad02c692de37400a26f8f78ad38d07d742100822c9d5403e99a4","signature":"a5d30845d783ed03dc9718ba178a480b157d3432c7e6c9129223b9fdbabcc6bb"},{"version":"527197731c5c41a1d1ee70be945120e405c5c85bc4587578ae3791a827c16cd8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"753358ddfa1f14ed3c7c1be76b938cdd05b3e2a643177c809deea6c780b1a685","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"05be7a703ab6ee10685188082f91cdf606f2d2e87927508baa83ab2be3a22696","signature":"eb318835e9fb8d3e34803b46179e5e3626cbdc0c3fe09cc95a224b7d9e0a65d0"},{"version":"d6056b480feb3370ff004ca083aed2b9dd36b391fc3cef6da7038574bcdb5577","impliedFormat":99},{"version":"d00b7ef279b5e11236738e99e985ced45d75dbf417eab19110519d7fcf029be9","impliedFormat":99},{"version":"5a2cdf6adeec348bbc876221be4367e8adff0bb78a5680ebd7d71e5c3bad6cc0","impliedFormat":99},{"version":"e004826eac62081f867c66dabd92d3ef7d126d93a70430a2c88429228c3ecc50","impliedFormat":99},{"version":"38d6857b58d2ac42442e396311c542062d4f0dad40f2adb496dd5fd0756ee400","impliedFormat":99},{"version":"34b7d1e2d15845cf08bcf5e3c01adbb92cea1ec27564ee249ba486cdfb28526c","impliedFormat":99},{"version":"a3e3327f133e5f0f7b1944a339071f97b73a00adbf2cf4d46781a8b29f98f536","signature":"8b0a49392bc374f425ca5fe0481bd3a6d7367526cc7bc4f3a94a275860564b81"},{"version":"2fe3e4140c0feeecb37945088b224ef9b5937cdf57962439c8a75c580f419907","signature":"5cfad1e58de67ca560a273b7280e098ee6e75ffde8fefc5105d47bc9a139193e"},{"version":"100d108221da55f21edf1ad92af675b9dad1f130e54aa3e259d939f5a0cae0d0","signature":"1fbdfa1aada844256238e86ac3155fded36759320035d7c72d157978dc049a3b"},{"version":"abfff6dac49d53a9da97c87ece340a99df0cc1eac4b4481de9948e089b320c29","signature":"8f524f43f0fbcdcf4a4060e46d7605817e2773ed4fed383c258b7deca9ce9447"},{"version":"904c69311a147514fdcfa68893c13f5e44a1a8717a65078a3891cb8f5a94b0cb","signature":"ea2a881e8503b10a2d0b727d7e5698c07d6b1a3f4879e2f7ab37c1f67b8ac762"},{"version":"7d64dd9e1eaf1ac0bfac701156324f2ee220954a58e7a467e6912ccd8e2c5ebc","signature":"6c2151005903b8cfb48cc1ebdeacf3e1a9999f69ad0571c34d04f48ecb6549cc"},{"version":"1c6997077b7900f0882f9dfc482811cf6f070328a95ee3cd8a13f390e4b8446a","signature":"e66fa21752c366c0e6916750fe22304ab09634cbc35ff64573b5f24a43abd70e"},{"version":"ab4eccc59491d312a5ffc7e284e287f43bbcdebee2fa0131a1499ef45c4ca223","signature":"5ad995b462eded70f323ae21e0224dd405f0e4d2e2548cd4e4f29944448bad72"},{"version":"8ec1baf0c9ac1db7a3ca0ca7df830ab80297d707cf196111f778e92e1f5532f5","signature":"278945045ac045d259fd6f0b4b813bc8fd823a3bab2247f34b953e7e31eb4817"},{"version":"2ca653856f7fd4aca29aeed20c5b2d234c2c09c723e16d8af9ae5bd4219b0a4f","signature":"88ac555c25f14f1ea4c8ce4ff25856ad6f98a41ce0d175bc36ccd59a7b536571"},{"version":"29236e8ff0add978a3502ee765b8918318a7153f1f48f8641cdef697a66d2754","signature":"2cde6b18454db444b0e9125091b0513d758959950d54e591b4ed3006a4c30797"},{"version":"4fcf4ef80f217041524db2fba9114df57822f758f28ab37d0fe097f516dea34e","signature":"84f170cf5a872ea60d83d90a2766811abab2862f080075c0f08dd94f4f5fc572"},{"version":"83f029a91856c61b80292df229e1ac0fd2f6f74b94ffed15f5774a36345bda1e","signature":"89517a41cf9c621983230432e87129bd6db9da0be91b1377bf4da95ca555f2b8"},{"version":"a316fb29567f15192de7624af0661762fb1edfd2fa95abbd200411853749ecc0","signature":"7592e624ca075b6bfd026622d00b48278ec74a54d9dcbe8b06171785bc907c4e"},{"version":"bd069329f7ffafbc6600033a1b082ee5ea0dd08d83ccb22400a23154d109c922","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"db19d6d4896e0c366cbda96448be201db08e42c9f7075bb369ab72cfc70a4ce0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8fc341e6e7d8421c1101308d51c15344ba522984e375bd8ccb3c1c42fcd7049c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a851b40a326c23b7f6b6fb0f3fd6c46f7c703a65558fdba2d4fcd26e07d92c98","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e673740d0e811af28741f24e6404afeec74880dc66f2e43d7eca5aa4917d54a7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a04a2db5fea845ecfc7898af464e68d9d915268f7dbbb2f7030066d90ec671a0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2dc7528c314980e38f661f02e9e1115e93b4cedbba3f8326397fcfea7e3aa841","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7523b4dc0a867bd3e01780e4729106bba4787c4c9ff71850a26259ce97c8d153","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d2e54abb9219559f6080534b9480213364747be85328959f298bf9284aab3035","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0bbab3d8557c32473afd292083bfa73e372c1e7376f5c01e3ced6e47d101f3da","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"3cfb7c0c642b19fb75132154040bb7cd840f0002f9955b14154e69611b9b3f81","impliedFormat":1},{"version":"8387ec1601cf6b8948672537cf8d430431ba0d87b1f9537b4597c1ab8d3ade5b","impliedFormat":1},{"version":"d16f1c460b1ca9158e030fdf3641e1de11135e0c7169d3e8cf17cc4cc35d5e64","impliedFormat":1},{"version":"a934063af84f8117b8ce51851c1af2b76efe960aa4c7b48d0343a1b15c01aedf","impliedFormat":1},{"version":"e3c5ad476eb2fca8505aee5bdfdf9bf11760df5d0f9545db23f12a5c4d72a718","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"d0570ce419fb38287e7b39c910b468becb5b2278cf33b1000a3d3e82a46ecae2","impliedFormat":1},{"version":"3aca7f4260dad9dcc0a0333654cb3cde6664d34a553ec06c953bce11151764d7","impliedFormat":1},{"version":"a0a6f0095f25f08a7129bc4d7cb8438039ec422dc341218d274e1e5131115988","impliedFormat":1},{"version":"b58f396fe4cfe5a0e4d594996bc8c1bfe25496fbc66cf169d41ac3c139418c77","impliedFormat":1},{"version":"45785e608b3d380c79e21957a6d1467e1206ac0281644e43e8ed6498808ace72","impliedFormat":1},{"version":"bece27602416508ba946868ad34d09997911016dbd6893fb884633017f74e2c5","impliedFormat":1},{"version":"2a90177ebaef25de89351de964c2c601ab54d6e3a157cba60d9cd3eaf5a5ee1a","impliedFormat":1},{"version":"82200e963d3c767976a5a9f41ecf8c65eca14a6b33dcbe00214fcbe959698c46","impliedFormat":1},{"version":"b4966c503c08bbd9e834037a8ab60e5f53c5fd1092e8873c4a1c344806acdab2","impliedFormat":1},{"version":"3d3208d0f061e4836dd5f144425781c172987c430f7eaee483fadaa3c5780f9f","impliedFormat":1},{"version":"34a8a5b4c21e7a6d07d3b6bce72371da300ec1aed58961067e13f1f4dc849712","impliedFormat":1},{"version":"2bc44b70fca15b4544cc841aaf5249b24ab231c129dd59a19f5e64f548a4ccf4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"647687307a2734b64c546f79ea4716f3746b211a6da853141c37f1f6a09a1d17","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7e4d944d211d3ee9c8f7db077eb9ef2736a04ab5a884910e9422f0fb41b56d3c","signature":"b3773398b038e5776a9aed6ac693eb5651de53372a7a11bd71503835cee9e915"},{"version":"33dab8c26a9caf099df839615fd74617ec74ebba2ee4e44ed4576e13fb0f7a31","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a1dfe23f227218894bb6e7e900042e12931a6c46a25140a65ad9ff9cc0fd4f20","signature":"9aa87086373bfb09cb3eaac18ad5f92ba89a60f6404fc39103cd22eb4c7095c1"},{"version":"07922c8e7ee2cb00e55e113a3941446fba7b708e8a5da97523d3c7f14c1eed7c","signature":"0de81ee13aa601ec3a022abc976f9960158329454ecba752c2e636ba09069e31"},{"version":"15f4885f92f0abb2ad06e35f93dff20b27efa7477dcb514d35f825766a0da2b1","signature":"e42f666abe1a4c80e001378ad2bf4acc5e8729de72d7e7293f064d3576895bb8"},{"version":"9bd313b4c9175247ac2bf47e34a0fd8e7c12aafe906b7dea49b6637d2edd8830","signature":"4e250200e3033d3a80d93eda31644909eed280243bd2432123ca3a7adbb2df29"},{"version":"0c4a271c60dbb7f6d86f5de56bb15346116376b486c6316c549e1f35b8a416a5","signature":"0dae3d242db51e2ef475883baa090ada156f523f5884ec58e4e53038add780e4"},{"version":"5a650a85be297de6e534aba3d756f3707d341c2d4ce6734f01916e398cd37990","signature":"ad1f11562a9f6825141016c9e708d9985cf95f638c0a92772f8892a4be1d176b"},{"version":"f3b63c933606722099277b2209dcfdf82272e2a9cd4cc22f40c0b99cff13895f","signature":"4694f1f14da89086f105fac1e727ae291d08083e554513ee1eec633f1f14a96a"},{"version":"481e5e808bbc9a362d0fbf40921918858a94801e6539cfae85581f885ce18e9e","signature":"126e556d7ea53a9db4b0cccf82ddf4d73e0ef15c79fd1870f4f849e437d18ae5"},{"version":"2bbacc8f22c6ad34b12e6ea0969502c1947ef3565b18ae8ef75d5a922d5b50a0","signature":"148768f631c074c7a9a5239b228caebdb98985f94eb43c681a57a549b4de370e"},{"version":"1150808502ced4bf2dab9caeb9695c421137b49ceef3bae9615244d5d716fca0","signature":"5665025d7918a43f7bc76a72ff264e392801afe0ae1723bbb3bf8e3a9812b988"},{"version":"e3ee51212698a619028e525d3df876b692fced06d3be687a7bb1050dfa4da077","signature":"2c8640060c137890ee9ef29204f399d1533fb36ae5efe6d07ca8e7b5bb537b3c"},{"version":"ebc0afe29955b11d326c87e7e624cd1148b0c7d2ab35c09b4f6dca31dbd78c1f","signature":"2d46ae2b798f91a020e72fbe842ebb0332a8158219781ee5c26a1f5c2928ccb2"},{"version":"c814726bddeaeef11e3c1661339114a2d5e48689c7dad75ad32500abbb4395db","signature":"da4dc9a66a8663a164f25fffd8293de942b9f8c81baf60591dca9f782802187b"},{"version":"3d9a9a6ad4f6ad03fbc701ba136e3e6cadcbe2933b8e39aaff4b6dc52a3d82e0","signature":"abae5d151a9dceafca9c4cb927be27455d82fffde8b2592938af5d25e6935722"},{"version":"79eb254ac47dbe80439750e6af3e814a2824a4e7ae0597e9a67b00d9347c403d","signature":"2f1fe7986e5f596e0359609fd4a4eef45e49734450f3032902b41f7a26db2489"},{"version":"44508e3644799b4949623ef01f7c95a4a5da672f8ace9cd40b3ce85463e56481","signature":"9a131f4a22f58d4c00d5d31e705c236727c37fab353fa57f786c865929a1914e"},{"version":"f56d19b759aed970ba19afce0f99a78f3536c55c1e6c859eaaa54a7da37bd86f","signature":"ba3c4c7da1055c1c2d0ac7ebd99520174226be20d75de7384b356562fed5a3db"},{"version":"94a6c19e897dcb0c6e8c60e3343c3ca899067cf6556f1cc462bb929128f0862e","signature":"1c094d143f1f02c5c0d85d2ba8b058bc95f5acbb288be5d57cc54edc6d0b42ab"},{"version":"697d752847c1926d6db8b13502236ed765dd9ce5e7234ecc845416e54c95c78a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ff94ad21bc8fcf47cdbf0cca414dfc15cd830d2692c593a362a5183745a070fe","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2a8b153fc3840538e9b33f777e12e60ae88378b36eed4f373a4f453ae2760097","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2c136b5e368dd6dbb82776f1458c528562ec1ffe362800d6108dfc811176de0b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7bef13953c43a7c3d930f0909c5bd7cda7e1021592f8f95d5f03d3217805a71a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"93f440dc12f2436d656312832efa468a70705e3a37d30214a12b300febe900ef","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9278b163185853b7fa128c3c7647051cc3ea0d948625fecd998b307e9e799767","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"859d7a830703ebe5e73b96204fdb2415857e9d9b751a117f4b76fc50bc78e9da","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"474c97a4f3c70d8ff164c352b5918a36e65e9568de71855066a201e6e8952f3e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"de176c16940784fcd9e0935bd846e0b6e916c819c3c8cee7c83106ceca3b5fd6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0840e53792c0de3437630dd82c77fdb5ce4d09101214baef2e1d20e01d3e4cd3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c3e25c6afb283664dbdc103b94fa6af2eaa071e1eab977d7c644ba3f9942d6a0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ba63347059b2bd21ac5df4d7a30973bf24f60f76e45635ed59b7c541856ea6f9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"60fb16e0077c528a2602d8252ade47eecf755850c9b472250078597683bf379c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"47a7ab3f2344a28437d484af9468321595ae5ff2a4ed00293446de53792ef597","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"30b512b30fec1ddf436f19cff64f6f37d77299e21df0db29dbca680d95e28ff7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6429f00af69988755f6e7c34e0636d1a0b2876fcc09ceb654cac210af6f493d8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"419646e4694b841e66400f8c33b9de99b20eb6a2e924bd1a5395d9e7cc67ece2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e2f90a307310d9976234b6d7c27d4c612b6cc080ece597c960f41bd3d5678415","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d83e686f5718d76b9f280dcbe9ff35a95ee4ba500a86f9c44a21be50dd4c98b8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1a9a5f2bedbd29648d2f0739c4226c6635e4f7c16c4f931cfea1727dd2099823","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"005a9773ff0ff6b46b7efb18fecf8646c660965d9bbce137c7a0567a28f6f2f1","signature":"3fa28e667bee8dd6ec734c65a23aa484b0912d3509f7f526e7c38d3b8d043431"},{"version":"fdfb747d50252bc3339285ac025b85b0cb9799c71ba448fbfb82028edf23a240","signature":"0cdc1ecf792d8b450c6a9acbfae5c786baa17e767ff63d05899d1b690ce3031d"},{"version":"c1aaa9e355769261cd5802546a93d3c9ad0a55a104b9e7f9545431805e059470","signature":"b0162954b4a5bbd5db5f0b9856fffe449052b9d9182a6b3e253864556c1f3aea"},{"version":"418eccfc2dde556784ff124a5f664dda1ef8519c250a116cd2762de5112d4812","signature":"02b6d9658729c87310b79b636362b5b2c77a6c99690feec4efd35b40c685b00a"},{"version":"6c5570bd7b40f69e05535be338e376ca17fafe7b9d8503f6d0f5bcefeb794b65","signature":"08070110f6963aaa99ddd59742ef67da601c36c2d607f087870c6850de9dd0ca"},{"version":"8fb33626455308ef476eed5794b55dd33ed92ec2e593277fc1a391d3e081c9e4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"66dae5c136ccf17a73b50f0437e3a7db0ec8a8c966cf77300c4efd2ee679effd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"880b0680e3d035f15d745976986f3fe838c10af733a5e3a3d4ccf70c5aa455f5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0e09bfed155ff82b8aaefb036b4abe530b8b77ca37face481e3c872f6a1ba5b2","signature":"3ecb4ed313cd7cf0583a500b22fc61673a03815df10078e35ac620cae116b422"},{"version":"1ac2f4cd4f49d84b2732b6ddf6232278ff21a3ba715d9bcf2d1b8883bcefe9bd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"385bbf0abcccb92a303a15e980661287d75f7dce14ee397ce4ba778ac5533b31","signature":"040509427dd2d575753b2d2de25e87802526ce859befaa6898c7fd3a6587fa8e"},{"version":"c3513036c930b6cebaec98012bc7a1ca6cd83b30a5abfb45f20add938d704a7e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"384f73e2ed837f1dc450b39818c0ddd36fd1a63376c746973fcb773615d60031","signature":"acaeab5c4273e255d64c8bc4216a4eec82f7c14357f0f48015f4e5a9d9e32154"},{"version":"469b4e5a9c770f3590b551d25fb4819952fdd9c07cb0594de483f6fff8f925eb","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0f33f95d988fdcb1ae4ea51b4f95d7dd7c312fbadf287ed7efa8c21f77181832","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3c1a5b97d99ec08f8e0d3e98c7a907e40e456783e7de6eed5635eeeb9a5269de","signature":"82b21505ee92ddf15275dcf5de22b2451d51558b659aee04e6d29e860a8288a3"},{"version":"ac855d31ebe773603d84b009626df879642999e376d89fa52aff2c685c064ea1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"541cfe127cc4cc4d8a358fbc920f44e3aece53b83f859af1da54c32b65d12a98","signature":"3b3131797dc0d5d0914bee81834c05af06ede0a17005878d392081071b6daecf"},{"version":"2b32f493d486810cc515d84ae974b16d170dc3a4ee5a7d573da57a5c139e9fef","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ecf36f6668ef37d5c2ecff86e043353159ee26127ebd5b54b2329515c45f9a38","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e22dbd9ecaf46740aaee1c38c62dc564d4f11afac8678b7da52699d92faf97f0","signature":"e93a30d0906e5a966690a4f7c8bc2396bc026936a6b7ec8967634e122d9de2ed"},{"version":"7f64de642ee72b59a6a9b4dc34d6f09e5c50127e89c09572e4af8d9e9f61ab88","signature":"9f81eb8c702f57536e2c28a2218aa0d7c5b91d34af014c8e21d547ebe5910047"},{"version":"622e18cdc334d26000384f4305e9e9c3eed820b526e927591e31865595fad08b","signature":"05cef8cff86e48cc48f5de88d4493124fb70c3b544b7a131a0c87fb58632f9e3"},"75af4cae3011eaa8b3a816cb32b751b33bd5b455f5ec1cb9ffc4601cbf4b5e03",{"version":"a61b11360be13a2647260c910c2406b3df7ff0b03da6200b92ca7c2e9f34ac4b","signature":"14cc966519b7de516392e1dc09103a0c035a1bb66f7333d1e07b5f49aa291c80"},{"version":"1d1c93a0db1479cda4b2aa5b1105bfb4b23d8ad5825631d106d0c48a2d95a4c8","signature":"8e0a876dbcfe6d342cc6e7e9c56822f427434625afaeef9ecee6d344ea9b1e3a"},{"version":"3f24f44d555f953b420fe64fc4c97ded09e8f6937ff2d15026b323d792273919","signature":"1513a5bf16c1925c948dddec28535fac721fd7c16de67004ea5bdbba2c99a4b8"},{"version":"4bdb0088d3301483d0abfd31bcd6285cf2327459f00598e48e5abd07ed0622a7","signature":"36670175eb13a24e3ac77b3b35c827df2b49ebadd444c514c6770c9aea4d273c"},{"version":"0dd5724cd8e198bf340d88a381c6b430912e8c00bbf0693782a3d05bed9ee6f0","signature":"a2d70c18c891c64e31c994f372284395bfa4921e1468e1812b56e68d48cb0431"},"bf5c6aed1e674228f3dfcd43a52a233368ebeee5a86668415c9c65b8bf509896",{"version":"080d4a057cfa25abb2997c1ccb7fe5facea32638f68c75af36ee44bebc999590","signature":"c75ee8374150777a0c58f33728563deda91cf76d3b2f2044cc838659eb255889"},{"version":"a95acd56df9729fa349bea0b3a3a315f6fcedd9fe7d37d78139f44a83ecf7d2d","signature":"b0b71a076a98a62f2dfa724f47240463779ab6a35bc127481d09b952dc5a6f54"},{"version":"478a952328a5382fd09da5839ff1226bf54b4f140f8123f2c4afc424afd73f1b","signature":"696a9b1e65bedb45ecc9d0c726eb4e1abb2edcc5bb393f217443166fcb947fd7"},"ec2af6ca84eeca9be384e9059c2ccc3a9b5c4e2b6fb01fb40d2e12e2a9c4de96",{"version":"25f1fb13784f1d1245455104ba5af5bc631d4d0cc2efd408e4e09141e8d6c504","signature":"f5b7c4e3286582bf79bab0731ecef195336c895dfd96032886252f2c9767ae8d"},{"version":"f167531d6210fb4cf8f369d81def523076842383be8e7ef2ead15023db6e63b5","signature":"7287636b4ec92f4356413b5cd7054f9e84242922da1a869defedd515cef7ec2e"},{"version":"aabde397ae7672db6e81a2ca1353211060a8d5f303dacbc7b8f1c20d3a7ffda2","signature":"fae9add3b8cf297853e79e9a23408eb4a1c9000f934b8a4ee09b12fd6b76287d"},"860cc0d6622b1216fe206e0cc81e8180b7b356a329a4de7d733b8570c386200f",{"version":"6c11b0fff44fbba52c2f2ebeb12de8d655e3423a341bee5299ba9a83b47dd895","signature":"10a3913a4213492724aaef8e7af424e30517a4187550601ae4a044eb52579898"},{"version":"ef13d64287d67de11036fc28c949ee38fbe42d15259a7bb585d9baa6798d1a23","signature":"a517a3685704702d10320555599d7daa1fc2f1e96c97f530ef7365f80721eca4"},{"version":"74366b50f82fc0a46ef0626bd185e818bec7962c5e6079685b34209f02fa0719","signature":"6a86355c7bc6db9be3a3668f754a7bc958fa0de25553d7c1ad1a9021af1b5a91"},"95a2b867414beb9767f7378b7e40e2dc2b8c6e478539898a6fc3d1eab14ec3c1",{"version":"945cbeea4f66887ce6d79ea7ceb03bfe33475c53c4fa6941ad89967585106fc3","signature":"ad60caf4894a04d95e5c9ec0e1a77c70103ae71a8b2c0d88ed2acecbeb72a731"},{"version":"5c38c19de820b791f820a4e1baf621831ed7e692f8ef816d4d06f503947223df","signature":"ccb6b5d19edbe4301b67f611f89ff2cc125a1b8078fb2f596883bd2f45744bb2"},{"version":"bd49c371e53485a1b7a84c4868c780a0529b0ccf43856c5cfd88711b85e57a12","signature":"01d8e84411135a9857535b95892b19910c48e8aa068d0d60c03fecfaa271edba"},{"version":"3bf92346492da99a2bd37dd34972d411ddfe7462b437864f0a56e5d05fd405d5","signature":"1b6f32fbc3825ee99d8937ad416251847326059c36ea7739dbf1dd90a6c27742"},{"version":"d5ae8572ff8a8f1b6860150330982d405ce481b5d95ae2c6429bb62fe26caa99","signature":"296c9d84800fec67a34dfc01b821df7b6d937fa7301943ee8c4008e2b482e4b2"},"92337763455423280f2931ea50455cf36ec6f64ca3ad6aced8de949ae695ec42",{"version":"a68aed49a324e8f69b57edfd24764eab4b67e0266465cc58de9432775bf58bab","signature":"fc21186863296e5395f8cbb770d9d9092632fefb0478a4dd259146590611e1c9"},{"version":"2f03592044676527ec37478cf5082728f7d601985891733eb3ea962c44eed750","signature":"a070e87485d300c955fef8572e8011baf4618c5a8bd8a4ab461c1c83f9431165"},{"version":"6b6f1d90c3509c03cf4909d5125b20a47f0444df683870d3f8caa7f576b5b408","signature":"991667bb95e9b2093fde2c59098506b65b96bc1c65e2d6ec4c1781993c2832e1"},"5a15128f2f9bfe3dab89ae5f29274e7b2afdc25799fa6406b65d65de1a412f58",{"version":"5e5b0cd97555d52f343c703ac2d2d2a6dd968085e0714265022a9629833fc689","signature":"6d382e92d011ad80c913aea689789542ef63341f7f8ff065f155913c7ef5a5ca"},{"version":"2d42c3eb8e95b4bb00ea124afa618b7ac178d7efdfcb3a20ce7d46d1babfaf1c","signature":"7cf05f47e7c97997fff05a32dd3738fe79c7986b2a79c005b97014e772406201"},{"version":"05ea7745a199cd3b455c067c4f5f87af7154f6b0d6f3a7a9cf666c90471b4cbb","signature":"4d29744393ccafb8ea9a2a6199d77f3b76b627c3dcee69a2ed5bc45dfe5299be"},{"version":"943155e04253a2cb4d9e5c1504f9c69152ca4cd443248d2a85c2df8b71f46747","signature":"d5a09402a8ccc1e017c286fcd88bbf90668bfa9bc89615c0644ec61c3ac7ed85"},{"version":"277972e9d7c66e35ca66c6b6db0c730338101c2d0e5900e9afa94cf319211d37","signature":"7967d339913f5a380307624f3d6c693cb674cf713b58e0790020d7be5f819885"},"410bf22f7ffd557e7a0891f44fbf660d820e08bec3bdbdd16380e6c4a5f93d71",{"version":"67c86eef1b7596358c7f02c98a32a77ac8c870a9ab90152d02cb7ce1b1cec897","signature":"bb182bc1f25cf6382cb0cb59b58a3766cf7fe93b7dce16ae0d876cbca2611c26"},{"version":"710d41bda5d77d9d32d6101af372820bfe3550358dfd7328e9470bc90ef8e916","signature":"1f70c6ae233f3162bf1fb0606bba3e3687c2c1e75dab6c7cbeb07e392302ce1c"},{"version":"ff661c0887dbfec8f7071bb33a5522d218b08e4b6daee5d178bd842031de0b66","signature":"366cbf525cd7bbd07f0a30592653ae0477dcc2e2aaf5520ebf3c63c980fd68e5"},{"version":"2f9949f232bdb210c041ad1db45b7d0601cc3e61f03e488c115206b07f8b7ae9","signature":"8ed67af28072c16e6a8d56f18b5107207f08e06e5c52572fe2997e5af8baf33e"},"5f8268fc93db145b72f00d5647943020126fd44348833007624b3e481cf809fa",{"version":"d412aee56305426e4a3c8105d5389fc49d2cd1a6819f2c4782a6de30c971ea13","signature":"a03e8494db132a6e2ba0efa8ecc969f59a09947e659b9b4b97b60e28519a6999"},{"version":"86ac3832a0e515d12368f2ddfffeee0cb643088475706ee501458cf85dcd2c5f","signature":"a8cdf600291ed7e8a02d591f1df1ff436979ce873be50983716803bfb1be9b89"},{"version":"77341cc991b5931be68cda72d611284cab16fbb242b73fc7438914277fc3a2d8","signature":"7ee712bbd0c0fcfe2150dc8b2669b53f44c7c968dbcccb3def0a9a3651522fc2"},"c4818f1c6b83f3a74fa531a44db6a23068ff43e228f12126ac1f04a699df85d8",{"version":"a5aef4674b5f5c1c77e68fb9e94d98fc742c208cb3ec0e6154b143790079d0e1","signature":"3281b801c371d64e9162013cae64981dae22f8e15dd8c048dd51773aabf15835"},{"version":"67d02e3932bc31eea68b016e9087e4792bf9adc7069c5050f66f0d025ef1ac87","signature":"96814160c255893a4e7c5e0ad87312dc88d288e7ca0d6609ca94eefe0fc8b871"},{"version":"91dbb97238da9dafbaafa5e269a8ccc1ece41983d4d17090998182cb6e70f585","signature":"2f76dab27160340d0004ad717b35b3b32921bdf2dc6481388d908d81ff699808"},{"version":"27395f516c04921b42dbaf81c1a24925621c15c0807cb8f803b18d84c10d5e2b","signature":"6e32be68053fc3dfae0bad6ff42992b562dd65b6932e73433db2d7205474bd8b"},{"version":"774e8e96b4201f340a988f6d46f746a6c64fb05f2bde5163d3655541969ae73d","signature":"7de392be60639594b2ac05b8349f9eecd74fed065788d70569dac99f590dc22d"},"a657329582b4a655a87240f851abdd8622ba61d195793c3c7937789da62afac6",{"version":"653ae370752d34e376c85ea9d63f796e68f2272d8db60b78dde8a79afa78a6a7","signature":"6a9437bbf8750a5893ff5b990448b7e168f5d282acd489d7a63a3b9c71b92e49"},{"version":"e223ad2670b01ac43f64b1045b779737c8049962399020883a5fe0855e34a1ff","signature":"2f00388d3b1c12ec2350981cbf8260f9302dbb05eff5da5698e1493cbd90c9b1"},"9c2a564dd685ca8ed8193418bdc6959e0432c3ccf30c2c079aecc424787f384f",{"version":"fe76b285ffdf1364795ec4b64000c89e4ae6e906c654c4816ba4aa06fa44a9c5","signature":"3e0416bbe037c5dc7cd944efe92a061f6df236a970204cd751d0db8339f81fcc"},{"version":"a905a038651da20d29f2aafaac166fcd6f72aee8a02fe62bdbee27b5f242704c","signature":"535ceadcaea40ebfbd2329db32300ecbbe1e7dd4e2fd8c341c6e8187b6bb46c9"},{"version":"a115bca5a72b52a970c1bebae22a10cea1fd92376f09b2ae75cd637600485c9e","signature":"e1f704b08bd40812f52c606aaec5ac26ba4f6a74a6202e0fcdca6f1558b49871"},"9ee7e8f8719355b913c6cccf02f61d27cc318f7c3ae39f3ecdcd927f5b770962",{"version":"aebeaacc14496dee1d1063a1806b799bb2c33059c2a30afebde063c3198e7c2c","signature":"0b2946ff434f39f569abbfec27a7fea4991d416ffa887aa7371fa9d1c9218ea8"},{"version":"bf50c9f0b8e85763eb46e4f634ad5143871f8fd9fa469933184a1c17f007a780","signature":"82e0d3c58b57ca1047e3f2489119a90324c6bee328a3905a6f873c2d9f273022"},{"version":"881f06a0c5924f510a08009e49ecc64c600adfc1bbd9f984a01701ca2a5b6dc0","signature":"58509ff46b2b13612643d65562041486383fb5d27eb27049d36e05c2a6f810d8"},"8627eed788edd7ef05361716c832ba3a56db74b9d44d3f0614df1dc71bf571f3",{"version":"fb837dcc99613b6191ccffc97720abf3c48fa89cbbd141dc12891403f3ad3503","signature":"7c317a7ac43ec30976f927b2df07ce270e566c5bcf7c8eb2a58e3ad27c0e88ca"},{"version":"6a885fd313b812c678d98b30093726e2ce5014a524097efa1ca7de2fc63cf387","signature":"78594cdf3513918665a27734908caa13e4e30511cad2875fcfabbd323bebe7ee"},{"version":"55d50157bfc60dfbae9b901650d72466e61b8186879cb44caded05b6653845a4","signature":"13671d6cac29a8d3985ec254ef779a86a843292055d1d2ad6c6d98c47bd2abe8"},{"version":"f0ec6a81ec8f0e4cef78061b11540d81b76897b3514eedb9eda734c6053dd254","signature":"8ac03b8aba4746345cd97258076212ac8d691545d676706b9b030bce6f3262a8"},"7bdf0471ee5335b6f74a71a7ecb44b5f9b8a6d492cdcf928f7fc1153a3ad4680",{"version":"944667b97633322cffa6058b304ab007cf8a6f9ea7d61bf95733470c5d391d07","signature":"c04901594655634ee5234b84e21419e4bdb8bb5042058a8cbb155d38582ef603"},{"version":"bd863b3c134db67223c372e3ae383517e78813d5cc57f403d01a2c8c3384cf2e","signature":"d4a3bc4321715da90ee5723baa8e7afe1d5191bc83b33ed81dea430d2b2ef023"},{"version":"c89867594fba7409975b10a85126e66407705f1206cf084352ac017b5c3126d7","signature":"8ce92952c3baa54d967705900fe0283ee26f24e937e594c96f0ec518b673b397"},"276e12be1099d5c26c6e03770bc9fdadefd1f7b5085838c6ba18d3b5ddaf1426",{"version":"b63a2dcd7fecf7480bbc742533c8a354d3172b145594e2d589c0f2b198e0192d","signature":"659eb8d000c6db5d4563b5725d18bdff7e4b54451d0c1d560254fdaef6321939"},{"version":"591903890438503ea618c1a3c2f1cdd7c58c259aad9fd378feca4bf4ef6a1dfb","signature":"9aeb8c284f3e02b12c56b74763ed2d1ac22e9b0360f001cf5e0cdaadb5758780"},{"version":"74cac1a523f7db46d7d282f4fc3c9d5000af8e1e0cd6b6c1df2f940271a7b36d","signature":"a9a491b8b146d77a6d5535a53d93b2c480c249e1d186472fb28a1093120646e6"},"ed216b714bfb52ffbdba8701cfbc6389691ba29da937c65d4b7021a23111541f",{"version":"61d8dd975b0d7a99fe96ee9873a0c170888b7a566cb3cac790b99b32d4d3e627","signature":"387dfee22b849006c4db6e3c24c3e7f6c0ba9e3d3d227a5ed46b0e555ae59ecf"},{"version":"5fce99e839e8ff2e277eb4f3e5780d9da4f7b94f129ac12e37660b6580ae0ecc","signature":"79428153f57790d4fd6337d15c13133e245673712eb671312edd2668c35f5ee7"},{"version":"95782ff90de6ad1373685d0027cac42ef898e241711bf4424b074ba94d2d905d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e2389879c4111cc160dce1d4fbb9df08c464ba2e637524cd929a7506607d6564","signature":"2c6e3c2124ab2b623a2e9441698202dd1673a756e94c46f14e389b7f56ed597c"},{"version":"64e399ea0c51b0be36d0df8cef08f40bb9fb003797dbad4c5c9b6d497ff3ab89","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1c64efd0d81eb7002372427530d56ec955f44843d2b0b6d40eb4789da17db2c6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0fdb781808f341361d9f1604b39422a140cdebdba8a7bd059f7f9b2fae15723b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3716a5c621e227ba9a450e76164a0afffb6e35790fffe2496695baa8e6e02216","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"37b55ca8c1673578cd98209a6234bfa72215e283caa5cf392be6114b6523cd04","signature":"c8b06ac86dbd025d371196fda0a07e7bc974e3e61dc86da7352ebedf12c72903"},{"version":"28c17ffacc1a569658b3eac20a02c079ea117195fbba9c8d0eed9c20255c4e33","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"bb29ee0ff401294967272f52ad1768f9c51cc06e558b7d971e068f6349892ea9","signature":"4ba4d5f796e799224cb46a2e8f917749b5537c2bf1db0e795de414f504ec12c9"},{"version":"7f6105fff763b39836831fd638028c7161d102ea49b85c47e2b9de1b01c3d7f4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a98d0a4649a2e83c556c63b5fa82798bb00db13154b78b0db93d95b997e5e09a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8283bb6e348ab0ec851be32162bc1159d93990f9ccfd576c7ea36c7c61e696f3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2002c95684eab224a099d68fa5295c01976faca9178f7818c38c09e2d398b434","signature":"42bf17b41862961f4960644fa9402b5d365fd9e1a536b78b95ced3f9ad6bd70f"},{"version":"d7796ddc43f73e96e2e30f4bebb40e03023f3cef99f9642390e1ba726af7cb5c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3d203763ac99b5c4e3b6945a5a12b42c202ce1c749a5a0c0c6ea594f3ab40f5b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7bb0ad74999af25b3b7aec0c667d38233670a8345742132b52c4463a34e76a56","signature":"b5e21ffebedbf58a741f7592b42c39618a358ebf9886c9763892e2cb59a9ed06"},{"version":"62f375b96c239e952d5d6cb678d422d83c89a67d32aa4233cf1f12da97ad6894","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"595aa2ceea49a87eb3c90941ce3be5fc14240d1362069a859ab4f73bd0455cce","signature":"10346c5fe4bc82b1dc1ae7c3677493f1335fe036d74de7c87a2775c1dfd58bef"},{"version":"9a374b261a2a11b9e7be3e9da185190b00d08bdf353294abd03aa080ef5a307c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cbb7e0274b0f57004969f7ebf9265cffd145bdbc7544bfba4e1641134bab8357","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"49a0ac2d33b3c62cfcfad0fb93c1d6559c7afa88c29f77137487309f6f6708f5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b4ebb4c417cb986d5cd31d8f732588aeadb0fd787ef4a2a8293e16a706ec0864","signature":"3763c07411d78b70fc66479a5a068acdd0ec4d62ee0eb76006f792ddb4092d03"},{"version":"d9a368f65c0a4d16a2c2d782d83f15be6814181fb58afaed600ccf81d0dbf8cd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6f61b472a8bb01db87597280527c0a6fdaeeb5c3b3d966d38ca308179e1057cd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a5f79b21fb5338996b890ffcfb63d2487682578e9cdf399c3122b7a892e89b7f","signature":"48c8fa862beb2d400fe846b60c0565a10339f1f757f829362df2159c79c47d7d"},{"version":"373061f75599142133729b99848b4b7f98c1dee2612036f0f54e3f6bf5d242ed","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"157fa194f09c21eb09a37b6b42ff18c7cf578f115cc2139722593c752f03ba28","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1f8cdc20bf5a9346d7fb55063fbf7bcee0321f126797c377063fa5734e72445a","signature":"e2cd21577b9d3e22ba8e9c49dd5798f2a77f22a28e1a91aef3662df6df00055f"},{"version":"6f4dea4acd3f690087c10a8ec8a32aac39b067fb6c8b723fbd3ad9438f62e87b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d0ebb3c4ecc679facee0dfda6a5557b24de49ce97b09c247e272f9f17c7282ca","signature":"5b7ac9316968b5d47c7c4d4c9d5a90a998cd58cefa8ee76f1eb2b2635da0627e"},{"version":"04341e4ea1507492619d8ff30eaeb622af01734fa16a77a83781443ccd568f8b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"04225cb34b34d1aeba0c25484dee5309679c7193abc68ce8e3c0343e9ccb2736","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e475a218a3236f101d92709204dac51d46c09e1172e70a0de99a7875fecebe54","signature":"16042a99b794bfa242da7521c6914b5df3b91d9f035553a71e3a2e966bbd9e6f"},{"version":"3f3b2a750113281706e4aaf6b78d9db8021c86896fd746074b9609c31b2f1aa8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5c83f8d9ace0dbb4d38f07bdb3e7ded5cdddd338c4704542d90f3ef99f599293","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8d0e27651b9830cf29e3c0a6d3a075a694fad7010c731ca6d3cd1fc05544862e","signature":"cfb03122d3296fc7960c283ce37cac6adf8791bfc8dd5ac8ad524229c81b0493"},{"version":"5cedd91a4f0e6e52247032994cc650457cf557dc08a8ffbb7ed966be45cfa4a1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a3dd7172db966e29dbda5a63d63195dad0dddef033c1b75935712059a6395c12","impliedFormat":1},{"version":"27c79103b3eddd641481f5e04e766adfaa52c6252e5e9fad369a808890291186","impliedFormat":1},{"version":"c32bcfd472e509a021990489cb750319a849c85932f562e3bcc9d72a8f5ad4ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5d9ea48b8ac10a2bf061e848ece640bd8e5de9dca6402d70aa33f2a3e68e6607","signature":"4fe7a39620270630c644abb2d5ce194f8e7fab43b175e2bbe530b6aff954b6a2"},{"version":"6734360612842d142d88e5d182ffcb65f4f8c87417d7e60d154a1c65527d7719","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cda9f6b56363107b5a8ea903cd90c753d8695f59fc1ed5aeace545f5a61951ba","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dd260174b643879042913bff92cdf2315c7fd05de3682b4b971a4a74e95b2c46","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ce9547fd7b86612fe7f30a39ed232d72f968d16c1ecc4c47bd0ff55ba294696e","signature":"6857eba85f9267ab3b2c5e7bc04692e163408e64c98fa7c035be0c337293c248"},{"version":"6d1635ba3eaffbf730427798ef24b7be27f0058486b4dab9ebec7ee953c706b3","signature":"244b6a38fdb5f9e842b1da43ea29ec246922fff1da83d2cc29a58614d7e8b581"},{"version":"7eb7de77a2b3cb400fb8465feb5fd6069769cb6b0bea01252eb9545055e26498","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5ed30c8282ffd67a00567ca58fbf33bb9d61a3527de8c9d4d610e568c78a5c8a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9244a613c96aa6b0991fbe4e6923d99c0df73128170f73f41246f0623b6f8cd8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9d35d4d2f4116097edaf379edaa7c15f776504cb4c4bd75785b6cdca5a9f3303","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"524b1d180d25356a6a1a6466781bd066be23d0d5b3fe79ae9d4c31083f91a16e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9c55880d128ab74c8348c42576568b475ece62d4020e3172b2883c79329aaabc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e62cc8dc7ed6c75139993da3014d4119645617e9610979b5bf8826121db4678a","signature":"5a4bb46daa590e8b617d84286f738dc02ddc607233ce59d96dc5bb3a67209f11"},{"version":"839ec7597d346614a25739fbec7c5586b7a39315713d8d23f79fdfc964f73c10","signature":"95fe132f021c2a5d07e308f83747be6deeafacea416bfddf89155a90beff5c6f"},{"version":"8c0d3c01bf1f459feb2cbcd4e84ef55de085100e4ff6e28b52bf324b05e34ab0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a3c40d8d67a97c248ac283d5cf0580d86a1f63b7b1eecc9d2d16b52ebd9a15cd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"df44bc17fc7ac1395656df5488dc363ff71806f540bc6317d272e156a850151b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"59f27254779935c5af7674c57e59424c3b12d1e333bac856371085bf93c61df2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6417b051fdf291eb88222b785c2092c79cbcce0fde0c5b03a41afd5031eaa57e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c9a6c1e0af120aa03eda7181ed5b2f6b001bf69a9e562d50c9c23f24d7a61559","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"f3eba770c1bd12249a3b5c1129f5fb959b710032257e4716e247ab71bf919f33",{"version":"2514dceb2e759f4ae71cd71b99cd0aba597d086f98ee55a658e5086bcaea9a0b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f329dfad7970297cbf07ddc8fce2ad4a24e2a3855917c661922ef86eb24dd1f1","impliedFormat":1},{"version":"480f05e466e86ee6c80af99695d90079f9e2956a4986e930ebd3d578688ff05c","impliedFormat":1},{"version":"9a168900934cfc03d30f0cca9646828912a1b85674956523e2f4cc6602d6058b","signature":"139bc5201ee0eab307b45f2306f14c891b61429d1985ae2f0cf86cb53c094043"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"3255b97f3f24af29c79cc1aa88004efb13b6285ebdde0a567bf32e19bb65250d","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"52844bb4893076de3d60e804334a824bcde07147640e8bd5cf67f0e2cb734ad5","signature":"6af4de77a13a46b7cf848e304c50e5da0dfac628cf008bb261810887682c677a"},{"version":"9fc6a32ad9f1e7a9732faf4e63cc6d7a125fa7b93864f5718c06f24ffd643086","signature":"816bec54b98a990e8cc5a4aa99624cff4b38aa4c9b855ece91a8db8a170cf8f6"},{"version":"4fd779ef69ebc372ee3b0039325a5f98e86af6f07fe14443847c5a88c11e0a20","signature":"f366dfc37144cd2c474685914e0545069bd795eab807442ff0b3c0e12241a00c"},{"version":"8e0d8d0d991a29b8fa96cf9ce95c87b57d4e4774721e08264451796dc69754a9","signature":"26ba71f79eb1ccc526399c703ceb9595712a793b7d939584ca92df4a3ce4fea8"},{"version":"da0f84fcd93700b4a5fbf9c6f166a6cc19fc798231bff56dd1e3875bfc6966eb","impliedFormat":1},{"version":"634ff08e0143bec98401c737de7bfc6883bfec09200bd3806d2a4cfc79c62aaa","impliedFormat":1},{"version":"90a86863e3a57143c50fec5129d844ec12cef8fe44d120e56650ed51a6ce9867","impliedFormat":1},{"version":"472c0a98c5de98b8f5206132c941b052f5cc1ae78860cb8712ac4f1ebf4550ca","impliedFormat":1},{"version":"538c4903ef9f8df7d84c6cf2e065d589a2532d152fa44105c7093a606393b814","impliedFormat":1},{"version":"cfcb6acbb793a78b20899e6537c010bfbbf939c77471abcdc2a41faf9682ca1a","impliedFormat":1},{"version":"a7798e86de8e76844f774f8e0e338149893789cdc08970381f0ae78c86e8667f","impliedFormat":1},{"version":"eebc21bb922816f92302a1f9dcefc938e74d4af8c0a111b2a52519d7e25d4868","impliedFormat":1},{"version":"6b359d3c3138a9f4d3a9c9a8fda24be6fd15bd789e692252b53e68ce99db8edc","impliedFormat":1},{"version":"9488b648a6a4146b26c0fd4e85984f617056293092a89861f5259a69be16ca5c","impliedFormat":1},{"version":"e156513655462b5811a8f980e32ccd204c19042f8c9756430fe4e8d6f7c1326e","impliedFormat":1},{"version":"5679b694d138b8c4b3d56c9b1210f903c6b0ca2b5e7f1682a2dd41a6c955f094","impliedFormat":1},{"version":"ca8da035b76fb0136d2c1390dda650b7979202dbe0f5dc7eaefcde1c76dee4f4","impliedFormat":1},{"version":"4b1022a607444684abeee6537e4cace97263d1ef047c31b012c41fdc15838a79","impliedFormat":1},{"version":"dd0271250f1e4314e52d7e0da9f3b25a708827f8a43ceff847a2a5e3fd3283e8","affectsGlobalScope":true,"impliedFormat":1},{"version":"47971d8a8639a2a2dd684091c6e7660ec5909fed540c4479ca24e22ac237194e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e1075312b07671ef1cbf46409a0fa2eb2b90bb59c6215c94f0e530113013eeda","impliedFormat":1},{"version":"1bfd63c3f3749c5dc925bb0c05f229f9a376b8d3f8173d0e01901c08202caf6f","impliedFormat":1},{"version":"da850b4fdbabdd528f8b9c2784c5ba3b3bedc4e2e1e34dcd08b6407f9ec61a25","impliedFormat":1},{"version":"e61c918bb5f4a39b795a06e22bc4d44befcefd22f6a5c8a732c9ed0b565a6128","impliedFormat":1},{"version":"ee56351989b0e6f31fd35c9048e222146ced0aac68c64ce2e034f7c881327d6d","impliedFormat":1},{"version":"f58b2f1c8f4bcf519377d39f9555631b6507977ad2f4d8b73ac04622716dc925","impliedFormat":1},{"version":"4c805d3d1228c73877e7550afd8b881d89d9bc0c6b73c88940cffcdd2931b1f6","impliedFormat":1},{"version":"4aa74b4bc57c535815ae004550c59a953c8f8c3c61418ac47a7dcfefba76d1ba","impliedFormat":1},{"version":"78b17ceb133d95df989a1e073891259b54c968f71f416cd76185308af4f9a185","impliedFormat":1},{"version":"d76e5d04d111581b97e0aa35de3063022d20d572f22f388d3846a73f6ce0b788","impliedFormat":1},{"version":"0a53bb48eba6e9f5a56e3b85529fbbe786d96e84871579d10593d4f3ae0f9dba","impliedFormat":1},{"version":"d34fb8b0a66f0a406c7ce63a36f16dda7ff4500b11b0bd30a491aa0d59336d1f","impliedFormat":1},{"version":"282b31893b18a06114e5173f775dd085597ca220d183b8bd474d21846c048334","impliedFormat":1},{"version":"ed27d5ce258f069acf0036471d1fbb56b4cb3c16d7401b52a51297eca651db62","impliedFormat":1},{"version":"ec203a515afd88589bf1d384535024f5b90ebe6b5c416fb3dcca0abd428a8ba4","impliedFormat":1},{"version":"32a2a1374b57f0744d284ca93b477bd97825922513a24dfe262cbf3497377d96","impliedFormat":1},{"version":"a8b60d24dc1eb26c0e987f9461c893744339a7f48e4496f8077f258a644cffab","impliedFormat":1},{"version":"3f9df27a77a23d69088e369b42af5f95bcb3e605e6b5c2395f0bfcd82045e051","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fd080a9458c6d6f3eb6d4e2b12a3ec498d7d219863e9dca0646bdee9acce875","impliedFormat":1},{"version":"e5d31928bee2ba0e72aeb858881891f8948326e4f91823028d0aea5c6f9e7564","affectsGlobalScope":true,"impliedFormat":1},{"version":"9a9ba9f6fd097bb2f57d68da8a39403bbe4dc818b8ccd155a780e4e23fa556f2","impliedFormat":1},{"version":"e50c4cd1f5cbce3e74c19a5bbf503c460e6ae86597e6d648a98c7f6c90b596dd","impliedFormat":1},{"version":"fa140f881e20591ce163039a7968b54c5e51c11228708b4f9147473d06471cf5","affectsGlobalScope":true,"impliedFormat":1},{"version":"295eca0c47be1191690fd2fe588195fff9d4dc43852aceb8b4cab2aa634579f0","impliedFormat":1},{"version":"59ee7346e19b0050508a592702871dc943083c6dcb69a47d52e888115d840781","impliedFormat":1},{"version":"067712491fb2094c212c733dd8e2d56e74c309a9ce9dac9e919286b7245a1eb4","impliedFormat":1},{"version":"a5eae58ac55bd30c42359e4b01fb2be5eddac336869d3f04ffb4daa54b58f009","impliedFormat":1},{"version":"d12d691ef8933e8db39f2ca81d6973940ff5e37bb421752f5b6e7bc15dea3abf","impliedFormat":1},{"version":"4c5f8bd9b3a1aae4e4fddfee41667e495a045f73ed603993038fa6a8ba92fa14","impliedFormat":1},{"version":"dfb274ab0f319cf18ce7152067c25f984c7fd1924fc72b3f66734588444c934a","impliedFormat":1},{"version":"108c8c05cbc3fbbbd4ff4fc0779c9bef55655c28528eb0f77829795dc9f0b484","impliedFormat":1},{"version":"a7e5444d24cdec45f113f4fb8a687e1c83a5d30c55d2da19a04be71108ad77bd","impliedFormat":1},{"version":"41ec17e218b7358fcff25c719bc419fec8ec98f13e561b9a33b07392d4fec24c","impliedFormat":1},{"version":"23c204326746e981e02d7f0a15ab6f8015f9035998cb3766c9ddbf8ea247aea2","impliedFormat":1},{"version":"25f994b5d76ce6a3186a3319555bbba79706dac2174019915c39ac6080e98c7e","impliedFormat":1},{"version":"dfa4e2c6a612d43851ccbc499598cb006a3a78bc8c7f972c52078f862fa84e47","impliedFormat":1},{"version":"02c1705fa902f172be6e9020d74bcd92ce5db8d2ef3e1b03aabc2ac8eb46c3db","impliedFormat":1},{"version":"99d2d8a0c7bb3dd77459552269a7b5865fa912cedab69db686d40d2586b551f7","impliedFormat":1},{"version":"b47abe58626d76d258472b1d5f76752dd29efe681545f32698db84e7f83517df","impliedFormat":1},{"version":"3a99bbbbbf42e45c3d203e7c74f1319b79f9821c5e5f3cdd03249184d3e003ce","impliedFormat":1},{"version":"aaacc0e12ab4de27bdf131f666e315d8e60abec26c7f87501e0a7806fc824ae6","impliedFormat":1},{"version":"3b4195afd41a9215afc7be0820f8083f6bd2e85e5e0b45bb0061fb041944711e","impliedFormat":1},{"version":"108df8095f5e25d7189dd0d1433ac2df75ec40c779d8faf7d2670f1485beb643","impliedFormat":1},{"version":"ddd3c1d3c9ff67140191a3cf49b09875e20f28f2fc5535ae5ea16e14293a989b","impliedFormat":1},{"version":"7b496e53d5f7e1737adcb5610516476ee055bf547918797348f245c68e7418fe","impliedFormat":1},{"version":"577f44389d7faedd7fc9c0330caf73140e5d0d5f6c968210bff78be569f398a7","impliedFormat":1},{"version":"3046c57724587a59bceefadd30040d418e9df81b9f3cfd680618a3511302ed7a","impliedFormat":1},{"version":"15ccc911ed15397e838471bfe6d476c28deffe976c05cb057e6b1ea7491242c2","impliedFormat":1},{"version":"64b5a5ebdaead77a9a564aa938f4fb7a45e27cda7441d3bee8c9de8a4df5a04f","impliedFormat":1},{"version":"a48037f7af5f80df8973db5e562e17566407541de284b8dadf1879ea3aed8a2f","impliedFormat":1},{"version":"dab97d96ce986857150db03f0d435b44c060d126b4a387c7807f4e9f6c92e531","impliedFormat":1},{"version":"85f39366ea7bc5e34b596fc97de18a7e377856755e789d8e931054f2191d9b8b","impliedFormat":1},{"version":"daf3ea3d49f6e8a2fa70b7ca1f21bd97f1b65021b31fbfccb73dd55f86abb792","impliedFormat":1},{"version":"b15bd260805f9dd06cd4b2b741057209994823942c5696fd835e8a04fb4aab6b","impliedFormat":1},{"version":"6635a824edf99ed52dbd3502d5bce35990c3ed5e2ec5cef88229df8ac0c52b06","impliedFormat":1},{"version":"d6577effa37aae713c34363b7cc4c84851cbabe399882c60e2b70bcbb02bfa01","impliedFormat":1},{"version":"8eaf80ad438890fe5880c39a7bbf2c998ce7d29d4c14dd56d82db63bd871eefb","impliedFormat":1},{"version":"9b3e7f776f312c76ac67e1060e5398d7ac2c69d6a3a928a9daaae2eb05b15f56","impliedFormat":1},{"version":"202042eccb4789b7dee51ba9ecab0b854834ea5c1d6a3946504bfc733d4468c3","impliedFormat":1},{"version":"2b2ef76a9f36094b07ee6f76a5ac6903f2f65c0a20283201814a8d1e752cb592","impliedFormat":1},{"version":"8882e4e087d0bc8cc713cb3d8090c45d33e373e6f5c83e0f8d00fe6a950ef875","impliedFormat":1},{"version":"475b16f753072474f55cdc6f098a16d991a93889105cd22dce39edf7196bc80a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d7621f9d34c9e2015c5f931f8a510883372e35f887b8d0d57268674659e596fd","signature":"ef38fc7498f6f123b36fcb4a4c22f9df96c764ea263417be343d43376416ff73"},{"version":"6784072646af39bc77563f54ef8483dce56d5615c16c59a16781abff3975a28b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4c54300bb2670678e16cb98079486f3f2bfa061dd1b954e7e4a8999959420507","impliedFormat":1},{"version":"0496813dc266672ec6b39f364dd2122e7143c075d44474b9cdb8fbacfd39b4f0","signature":"0ddefb7933ac08ab5f9d79397840c6eb8cd82df94f082abc8fc278dee0c2a76a"},{"version":"04e10c8417a20d6047574b6de7437072aedcc2dbe007040014050ef502d9b3d2","signature":"4ae06473ed42f57047235e325e50a387c4cec4046b95c97cd84ba44cb6a5f717"},{"version":"c833c384413d801a67d6e4cdafbeec35bbe8b689c3ee3fbd5329725e5a8ec81d","signature":"63135dafe5815026dcd032f9f5989af967a332f399bf90243aecbdcff87df421"},{"version":"45d8881d399fe38580039f2f3b50e7fdf7ca7d243b5a91e71d650b4546755def","signature":"ebf743338eff8b9ea9f1d5a9ae5de9d3977ffbcaaeb880970bdab20df623f2b9"},{"version":"58c11c18d58b5c6c13e28779ef69ca250a8279d7368bccf7239e0a4e4d7e8e0e","signature":"5214c6641ccf419862d391ef263eb94233b6968a9bcf02174b636a55df1bac8a"},{"version":"06787f65b4235ad34006c272815147f99419c2b55cd995a4a18a731abe11de75","signature":"a7c6ae285f92b391dbfd270fc6f57fd5e1bce8d562c41e405934db88a203562a"},{"version":"6eaa385c9ff43bf31671681144055c3227bc4babd2f859dc67cd9e5660496ed1","signature":"345b59e73451c4e80648b6fda3bd8f6e4f79a7c00662279ec16dbd041a220ffa"},{"version":"2b4a6d3417ed91bf79ccdcbd7402a495db965c90d6b0b37ac5f06987e42e40f8","signature":"532f5a6e7841cfff6735b5446b6f19708b265daf8c2f306700f875891e6178a1"},{"version":"088bb47b98092b56b9de5a0f87ae7d9fb0c6bdc0812613e9430105d9875f0d4a","signature":"66f3144ccf55a7e9e2256ea19c04ec4bcad0d570c0bea38809ac6cb1ec23f99d"},{"version":"659c075ee3fb5d56779dea76f88f1943379a43f480a305afc2a20d3754fce2bc","signature":"f3dde21626614899f122f3ac2a43169012f49061ef9f4f13afec875569d8cf0e"},{"version":"b8b6672547a1fdfc661e6904f65c1c3e11a7a0167fb8968c93600ae80d02b176","signature":"15e79508689c0a6a79a8ca2bbb37d8b0be8c3a7d1662e7f52a2ff86f38962d9e"},{"version":"ec881c8bd1a9860b682051eac30c9fdef69f0bb48b7e6a50e9953878802cd82c","signature":"f32b73f4c9849dc7cfc1a97f9c93abd5c9b5ba70fdff0bee2da05637a528b3c3"},{"version":"dd332252bb45677533cd5553e0c35340cee4c485c90c63360f8e653901286a4f","impliedFormat":1},{"version":"dddde95f3dea44dc49c9095a861298e829122a54a3f56b3b815e615501e2ed16","impliedFormat":1},{"version":"794a88237c94d74302df12ebb02f521cf5389a5bf046a3fdbdd3afb21dc02511","impliedFormat":1},{"version":"66a08d30c55a7aefa847c1f5958924a3ef9bea6cd1c962a8ff1b2548f66a6ce0","impliedFormat":1},{"version":"0790ae78f92ab08c9d7e66b59733a185a9681be5d0dc90bd20ab5d84e54dcb86","impliedFormat":1},{"version":"1046cd42ec19e4fd038c803b4fc1aff31e51e6e48a6b8237a0240a11c1c27792","impliedFormat":1},{"version":"8f93c7e1084de38a142085c7f664b0eb463428601308fb51c68b25cb687e0887","impliedFormat":1},{"version":"83f69c968d32101f8690845f47bcae016cbea049e222a5946889eb3ae37e7582","impliedFormat":1},{"version":"59c3f3ed18de1c7f5927e0eafcdc0e545db88bfae4168695a89e38a85943a86d","impliedFormat":1},{"version":"32e6c27fd3ef2b1ddbf2bf833b2962d282eb07d9d9d3831ca7f4ff63937268e1","impliedFormat":1},{"version":"406ebb72aa8fdd9227bfce7a1b3e390e2c15b27f5da37ea9e3ed19c7fb78d298","impliedFormat":1},{"version":"197109f63a34b5f9379b2d7ba82fc091659d6878db859bd428ea64740cb06669","impliedFormat":1},{"version":"059871a743c0ca4ae511cbd1e356548b4f12e82bc805ab2e1197e15b5588d1c4","impliedFormat":1},{"version":"8ccefe3940a2fcb6fef502cdbc7417bb92a19620a848f81abc6caa146ab963e9","impliedFormat":1},{"version":"44d8ec73d503ae1cb1fd7c64252ffa700243b1b2cc0afe0674cd52fe37104d60","impliedFormat":1},{"version":"67ea5a827a2de267847bb6f1071a56431aa58a4c28f8af9b60d27d5dc87b7289","impliedFormat":1},{"version":"e33bb784508856827448a22947f2cac69e19bc6e9d6ef1c4f42295f7bd4ce293","impliedFormat":1},{"version":"383bb09bfeb8c6ef424c7fbce69ec7dc59b904446f8cfec838b045f0143ce917","impliedFormat":1},{"version":"83508492e3fc5977bc73e63541e92c5a137db076aafc59dcf63e9c6ad34061c7","impliedFormat":1},{"version":"ef064b9a331b7fc9fe0b368499c52623fb85d37d8972d5758edc26064189d14d","impliedFormat":1},{"version":"d64457d06ab06ad5e5f693123ee2f17594f00e6d5481517058569deac326fea0","impliedFormat":1},{"version":"e92ea29d716c5fe1977a34e447866d5cfbd94b3f648e3b9c550603fdae0e94fb","impliedFormat":1},{"version":"3d10f47c6b1e9225c68c140235657a0cdd4fc590c18faf87dcd003fd4e22c67f","impliedFormat":1},{"version":"13989f79ff8749a8756cac50f762f87f153e3fb1c35768cc6df15968ec1adb1a","impliedFormat":1},{"version":"e014c2f91e94855a52dd9fc88867ee641a7d795cfe37e6045840ecf93dab2e6b","impliedFormat":1},{"version":"74b9f867d1cc9f4e6122f81b59c77cbd6ff39f482fb16cffdc96e4cda1b5fdb1","impliedFormat":1},{"version":"7c8574cfc7cb15a86db9bf71a7dc7669593d7f62a68470adc01b05f246bd20ff","impliedFormat":1},{"version":"c8f49d91b2669bf9414dfc47089722168602e5f64e9488dbc2b6fe1a0f6688da","impliedFormat":1},{"version":"3abee758d3d415b3b7b03551f200766c3e5dd98bb1e4ff2c696dc6f0c5f93191","impliedFormat":1},{"version":"79bd7f60a080e7565186cfdfd84eac7781fc4e7b212ab4cd315b9288c93b7dc7","impliedFormat":1},{"version":"4a2f281330a7b5ed71ebc4624111a832cd6835f3f92ad619037d06b944398cf4","impliedFormat":1},{"version":"ea8130014cb8ee30621bf521f58d036bff3b9753b2f6bd090cc88ac15836d33c","impliedFormat":1},{"version":"c740d49c5a0ecc553ddfc14b7c550e6f5a2971be9ed6e4f2280b1f1fa441551d","impliedFormat":1},{"version":"886a56c6252e130f3e4386a6d3340cf543495b54c67522d21384ed6fb80b7241","impliedFormat":1},{"version":"4b7424620432be60792ede80e0763d4b7aab9fe857efc7bbdb374e8180f4092a","impliedFormat":1},{"version":"e407db365f801ee8a693eca5c21b50fefd40acafda5a1fa67f223800319f98a8","impliedFormat":1},{"version":"529660b3de2b5246c257e288557b2cfa5d5b3c8d2240fa55a4f36ba272b57d18","impliedFormat":1},{"version":"0f6646f9aba018d0a48b8df906cb05fa4881dc7f026f27ab21d26118e5aa15de","impliedFormat":1},{"version":"b3620fcf3dd90a0e6a07268553196b65df59a258fe0ec860dfac0169e0f77c52","impliedFormat":1},{"version":"08135e83e8d9e34bab71d0cf35b015c21d0fd930091b09706c6c9c0e766aca28","impliedFormat":1},{"version":"96e14f2fdc1e3a558462ada79368ed49b004efce399f76f084059d50121bb9a9","impliedFormat":1},{"version":"56f2ade178345811f0c6c4e63584696071b1bd207536dc12384494254bc1c386","impliedFormat":1},{"version":"e484786ef14e10d044e4b16b6214179c95741e89122ba80a7c93a7e00bf624b1","impliedFormat":1},{"version":"4763ce202300b838eb045923eaeb32d9cf86092eee956ca2d4e223cef6669b13","impliedFormat":1},{"version":"7cff5fff5d1a92ae954bf587e5c35987f88cacaa006e45331b3164c4e26369de","impliedFormat":1},{"version":"c276acedaadc846336bb51dd6f2031fdf7f299d0fae1ee5936ccba222e1470ef","impliedFormat":1},{"version":"426c3234f768c89ba4810896c1ee4f97708692727cfecba85712c25982e7232b","impliedFormat":1},{"version":"ee12dd75feac91bb075e2cb0760279992a7a8f5cf513b1cffaa935825e3c58be","impliedFormat":1},{"version":"3e51868ea728ceb899bbfd7a4c7b7ad6dd24896b66812ea35893e2301fd3b23f","impliedFormat":1},{"version":"781e8669b80a9de58083ca1f1c6245ef9fb04d98add79667e3ed70bde034dfd5","impliedFormat":1},{"version":"cfd35b460a1e77a73f218ebf7c4cd1e2eeeaf3fa8d0d78a0a314c6514292e626","impliedFormat":1},{"version":"452d635c0302a0e1c5108edebcca06fc704b2f8132123b1e98a5220afa61a965","impliedFormat":1},{"version":"bbe64c26d806764999b94fcd47c69729ba7b8cb0ca839796b9bb4d887f89b367","impliedFormat":1},{"version":"b87d65da85871e6d8c27038146044cffe40defd53e5113dbd198b8bce62c32db","impliedFormat":1},{"version":"c37712451f6a80cbf8abec586510e5ac5911cb168427b08bc276f10480667338","impliedFormat":1},{"version":"ecf02c182eec24a9a449997ccc30b5f1b65da55fd48cbfc2283bcfa8edc19091","impliedFormat":1},{"version":"0b2c6075fc8139b54e8de7bcb0bed655f1f6b4bf552c94c3ee0c1771a78dea73","impliedFormat":1},{"version":"49707726c5b9248c9bac86943fc48326f6ec44fe7895993a82c3e58fb6798751","impliedFormat":1},{"version":"a9679a2147c073267943d90a0a736f271e9171de8fbc9c378803dd4b921f5ed3","impliedFormat":1},{"version":"a8a2529eec61b7639cce291bfaa2dd751cac87a106050c3c599fccb86cc8cf7f","impliedFormat":1},{"version":"bfc46b597ca6b1f6ece27df3004985c84807254753aaebf8afabd6a1a28ed506","impliedFormat":1},{"version":"7fdee9e89b5a38958c6da5a5e03f912ac25b9451dc95d9c5e87a7e1752937f14","impliedFormat":1},{"version":"b8f3eafeaf04ba3057f574a568af391ca808bdcb7b031e35505dd857db13e951","impliedFormat":1},{"version":"30b38ae72b1169c4b0d6d84c91016a7f4c8b817bfe77539817eac099081ce05c","impliedFormat":1},{"version":"c9f17e24cb01635d6969577113be7d5307f7944209205cb7e5ffc000d27a8362","impliedFormat":1},{"version":"685ead6d773e6c63db1df41239c29971a8d053f2524bfabdef49b829ae014b9a","impliedFormat":1},{"version":"b7bdabcd93148ae1aecdc239b6459dfbe35beb86d96c4bd0aca3e63a10680991","impliedFormat":1},{"version":"e83cfc51d3a6d3f4367101bfdb81283222a2a1913b3521108dbaf33e0baf764a","impliedFormat":1},{"version":"95f397d5a1d9946ca89598e67d44a214408e8d88e76cf9e5aecbbd4956802070","impliedFormat":1},{"version":"74042eac50bc369a2ed46afdd7665baf48379cf1a659c080baec52cc4e7c3f13","impliedFormat":1},{"version":"1541765ce91d2d80d16146ca7c7b3978bd696dc790300a4c2a5d48e8f72e4a64","impliedFormat":1},{"version":"ec6acc4492c770e1245ade5d4b6822b3df3ba70cf36263770230eac5927cf479","impliedFormat":1},{"version":"4c39ee6ae1d2aeda104826dd4ce1707d3d54ac34549d6257bea5d55ace844c29","impliedFormat":1},{"version":"deb099454aabad024656e1fc033696d49a9e0994fc3210b56be64c81b59c2b20","impliedFormat":1},{"version":"80eec3c0a549b541de29d3e46f50a3857b0b90552efeeed90c7179aba7215e2f","impliedFormat":1},{"version":"a4153fbd5c9c2f03925575887c4ce96fc2b3d2366a2d80fad5efdb75056e5076","impliedFormat":1},{"version":"6f7c70ca6fa1a224e3407eb308ec7b894cfc58042159168675ccbe8c8d4b3c80","impliedFormat":1},{"version":"4b56181b844219895f36cfb19100c202e4c7322569dcda9d52f5c8e0490583c9","impliedFormat":1},{"version":"5609530206981af90de95236ce25ddb81f10c5a6a346bf347a86e2f5c40ae29b","impliedFormat":1},{"version":"632ce3ee4a6b320a61076aeca3da8432fb2771280719fde0936e077296c988a9","impliedFormat":1},{"version":"8b293d772aff6db4985bd6b33b364d971399993abb7dc3f19ceed0f331262f04","impliedFormat":1},{"version":"4eb7bad32782df05db4ba1c38c6097d029bed58f0cb9cda791b8c104ccfdaa1f","impliedFormat":1},{"version":"c6a8aa80d3dde8461b2d8d03711dbdf40426382923608aac52f1818a3cead189","impliedFormat":1},{"version":"bf5e79170aa7fc005b5bf87f2fe3c28ca8b22a1f7ff970aa2b1103d690593c92","impliedFormat":1},{"version":"ba3c92c785543eba69fbd333642f5f7da0e8bce146dec55f06cfe93b41e7e12f","impliedFormat":1},{"version":"c6d72ececae6067e65c78076a5d4a508f16c806577a3d206259a0d0bfeedc8d1","impliedFormat":1},{"version":"b6429631df099addfcd4a5f33a046cbbde1087e3fc31f75bfbbd7254ef98ea3c","impliedFormat":1},{"version":"4e9cf1b70c0faf6d02f1849c4044368dc734ad005c875fe7957b7df5afe867c9","impliedFormat":1},{"version":"7498b7d83674a020bd6be46aeed3f0717610cb2ae76d8323e560e964eb122d0c","impliedFormat":1},{"version":"b80405e0473b879d933703a335575858b047e38286771609721c6ab1ea242741","impliedFormat":1},{"version":"7193dfd01986cd2da9950af33229f3b7c5f7b1bee0be9743ad2f38ec3042305e","impliedFormat":1},{"version":"1ccb40a5b22a6fb32e28ffb3003dea3656a106dd3ed42f955881858563776d2c","impliedFormat":1},{"version":"8d97d5527f858ae794548d30d7fc78b8b9f6574892717cc7bc06307cc3f19c83","impliedFormat":1},{"version":"ccb4ecdc8f28a4f6644aa4b5ab7337f9d93ff99c120b82b1c109df12915292ac","impliedFormat":1},{"version":"8bbcf9cecabe7a70dcb4555164970cb48ba814945cb186493d38c496f864058f","impliedFormat":1},{"version":"7d57bdfb9d227f8a388524a749f5735910b3f42adfe01bfccca9999dc8cf594c","impliedFormat":1},{"version":"3508810388ea7c6585496ee8d8af3479880aba4f19c6bbd61297b17eb30428f4","impliedFormat":1},{"version":"56931daef761e6bdd586358664ccd37389baabeb5d20fe39025b9af90ea169a5","impliedFormat":1},{"version":"abb48247ab33e8b8f188ef2754dfa578129338c0f2e277bfc5250b14ef1ab7c5","impliedFormat":1},{"version":"beaba1487671ed029cf169a03e6d680540ea9fa8b810050bc94cb95d5e462db2","impliedFormat":1},{"version":"1418ef0ba0a978a148042bc460cf70930cd015f7e6d41e4eb9348c4909f0e16d","impliedFormat":1},{"version":"56be4f89812518a2e4f0551f6ef403ffdeb8158a7c271b681096a946a25227e9","impliedFormat":1},{"version":"bbb0937150b7ab2963a8bc260e86a8f7d2f10dc5ee7ddb1b4976095a678fdaa4","impliedFormat":1},{"version":"862301d178172dc3c6f294a9a04276b30b6a44d5f44302a6e9d7dc1b4145b20b","impliedFormat":1},{"version":"cbf20c7e913c08cb08c4c3f60dae4f190abbabaa3a84506e75e89363459952f0","impliedFormat":1},{"version":"0f3333443f1fea36c7815601af61cb3184842c06116e0426d81436fc23479cb8","impliedFormat":1},{"version":"421d3e78ed21efcbfa86a18e08d5b6b9df5db65340ef618a9948c1f240859cc1","impliedFormat":1},{"version":"b1225bc77c7d2bc3bad15174c4fd1268896a90b9ab3b306c99b1ade2f88cddcc","impliedFormat":1},{"version":"ca46e113e95e7c8d2c659d538b25423eac6348c96e94af3b39382330b3929f2a","impliedFormat":1},{"version":"03ca07dbb8387537b242b3add5deed42c5143b90b5a10a3c51f7135ca645bd63","impliedFormat":1},{"version":"ca936efd902039fda8a9fc3c7e7287801e7e3d5f58dd16bf11523dc848a247d7","impliedFormat":1},{"version":"2c7b3bfa8b39ed4d712a31e24a8f4526b82eeca82abb3828f0e191541f17004c","impliedFormat":1},{"version":"5ffaae8742b1abbe41361441aa9b55a4e42aee109f374f9c710a66835f14a198","impliedFormat":1},{"version":"ecab0f43679211efc9284507075e0b109c5ad024e49b190bb28da4adfe791e49","impliedFormat":1},{"version":"967109d5bc55face1aaa67278fc762ac69c02f57277ab12e5d16b65b9023b04f","impliedFormat":1},{"version":"36d25571c5c35f4ce81c9dcae2bdd6bbaf12e8348d57f75b3ef4e0a92175cd41","impliedFormat":1},{"version":"fde94639a29e3d16b84ea50d5956ee76263f838fa70fe793c04d9fce2e7c85b9","impliedFormat":1},{"version":"5f4c286fea005e44653b760ebfc81162f64aabc3d1712fd4a8b70a982b8a5458","impliedFormat":1},{"version":"e02dabe428d1ffd638eccf04a6b5fba7b2e8fccee984e4ef2437afc4e26f91c2","impliedFormat":1},{"version":"60dc0180bd223aa476f2e6329dca42fb0acaa71b744a39eb3f487ab0f3472e1c","impliedFormat":1},{"version":"b6fdbecf77dcbf1b010e890d1a8d8bfa472aa9396e6c559e0fceee05a3ef572f","impliedFormat":1},{"version":"e1bf9d73576e77e3ae62695273909089dbbb9c44fb52a1471df39262fe518344","impliedFormat":1},{"version":"d2d57df33a7a5ea6db5f393df864e3f8f8b8ee1dfdfe58180fb5d534d617470f","impliedFormat":1},{"version":"fdcd692f0ac95e72a0c6d1e454e13d42349086649828386fe7368ac08c989288","impliedFormat":1},{"version":"5583eef89a59daa4f62dd00179a3aeff4e024db82e1deff2c7ec3014162ea9a2","impliedFormat":1},{"version":"b0641d9de5eaa90bff6645d754517260c3536c925b71c15cb0f189b68c5386b4","impliedFormat":1},{"version":"9899a0434bd02881d19cb08b98ddd0432eb0dafbfe5566fa4226bdd15624b56f","impliedFormat":1},{"version":"4496c81ce10a0a9a2b9cb1dd0e0ddf63169404a3fb116eb65c52b4892a2c91b9","impliedFormat":1},{"version":"ecdb4312822f5595349ec7696136e92ecc7de4c42f1ea61da947807e3f11ebfc","impliedFormat":1},{"version":"42edbfb7198317dd7359ce3e52598815b5dc5ca38af5678be15a4086cccd7744","impliedFormat":1},{"version":"8105321e64143a22ed5411258894fb0ba3ec53816dad6be213571d974542feeb","impliedFormat":1},{"version":"d1b34c4f74d3da4bdf5b29bb930850f79fd5a871f498adafb19691e001c4ea42","impliedFormat":1},{"version":"9a1caf586e868bf47784176a62bf71d4c469ca24734365629d3198ebc80858d7","impliedFormat":1},{"version":"35a443f013255b33d6b5004d6d7e500548536697d3b6ba1937fd788ca4d5d37b","impliedFormat":1},{"version":"b591c69f31d30e46bc0a2b383b713f4b10e63e833ec42ee352531bbad2aadfaa","impliedFormat":1},{"version":"31e686a96831365667cbd0d56e771b19707bad21247d6759f931e43e8d2c797d","impliedFormat":1},{"version":"dfc3b8616bece248bf6cd991987f723f19c0b9484416835a67a8c5055c5960e0","impliedFormat":1},{"version":"03b64b13ecf5eb4e015a48a01bc1e70858565ec105a5639cfb2a9b63db59b8b1","impliedFormat":1},{"version":"c56cc01d91799d39a8c2d61422f4d5df44fab62c584d86c8a4469a5c0675f7c6","impliedFormat":1},{"version":"5205951312e055bc551ed816cbb07e869793e97498ef0f2277f83f1b13e50e03","impliedFormat":1},{"version":"50b1aeef3e7863719038560b323119f9a21f5bd075bb97efe03ee7dec23e9f1b","impliedFormat":1},{"version":"0cc13970d688626da6dce92ae5d32edd7f9eabb926bb336668e5095031833b7c","impliedFormat":1},{"version":"3be9c1368c34165ba541027585f438ed3e12ddc51cdc49af018e4646d175e6a1","impliedFormat":1},{"version":"7d617141eb3f89973b1e58202cdc4ba746ea086ef35cdedf78fb04a8bb9b8236","impliedFormat":1},{"version":"ea6d9d94247fd6d72d146467070fe7fc45e4af6e0f6e046b54438fd20d3bd6a2","impliedFormat":1},{"version":"d584e4046091cdef5df0cb4de600d46ba83ff3a683c64c4d30f5c5a91edc6c6c","impliedFormat":1},{"version":"ce68902c1612e8662a8edde462dff6ee32877ed035f89c2d5e79f8072f96aed0","impliedFormat":1},{"version":"d48ac7569126b1bc3cd899c3930ef9cf22a72d51cf45b60fc129380ae840c2f2","impliedFormat":1},{"version":"e4f0d7556fda4b2288e19465aa787a57174b93659542e3516fd355d965259712","impliedFormat":1},{"version":"756b471ce6ec8250f0682e4ad9e79c2fddbe40618ba42e84931dbb65d7ac9ab0","impliedFormat":1},{"version":"ce9635a3551490c9acdbcb9a0491991c3d9cd472e04d4847c94099252def0c94","impliedFormat":1},{"version":"b70ee10430cc9081d60eb2dc3bee49c1db48619d1269680e05843fdaba4b2f7a","impliedFormat":1},{"version":"9b78500996870179ab99cbbc02dffbb35e973d90ab22c1fb343ed8958598a36c","impliedFormat":1},{"version":"c6ee8f32bb16015c07b17b397e1054d6906bc916ab6f9cd53a1f9026b7080dbf","impliedFormat":1},{"version":"67e913fa79af629ee2805237c335ea5768ea09b0b541403e8a7eaef253e014d9","impliedFormat":1},{"version":"0b8a688a89097bd4487a78c33e45ca2776f5aedaa855a5ba9bc234612303c40e","impliedFormat":1},{"version":"188e5381ed8c466256937791eab2cc2b08ddcc5e4aaf6b4b43b8786ed1ab5edd","impliedFormat":1},{"version":"8559f8d381f1e801133c61d329df80f7fdab1cbad5c69ebe448b6d3c104a65bd","impliedFormat":1},{"version":"00a271352b854c5d07123587d0bb1e18b54bf2b45918ab0e777d95167fd0cb0b","impliedFormat":1},{"version":"10c4be0feeac95619c52d82e31a24f102b593b4a9eba92088c6d40606f95b85d","impliedFormat":1},{"version":"e1385f59b1421fceba87398c3eb16064544a0ce7a01b3a3f21fa06601dc415dc","impliedFormat":1},{"version":"bacf2c0f8cbfc5537b3c64fc79d3636a228ccbb00d769fb1426b542efe273585","impliedFormat":1},{"version":"3103c479ff634c3fbd7f97a1ccbfb645a82742838cb949fdbcf30dd941aa7c85","impliedFormat":1},{"version":"4b37b3fab0318aaa1d73a6fde1e3d886398345cff4604fe3c49e19e7edd8a50d","impliedFormat":1},{"version":"bf429e19e155685bda115cc7ea394868f02dec99ee51cfad8340521a37a5867a","impliedFormat":1},{"version":"72116c0e0042fd5aa020c2c121e6decfa5414cf35d979f7db939f15bb50d2943","impliedFormat":1},{"version":"20510f581b0ee148a80809122f9bcaa38e4691d3183a4ed585d6d02ffe95a606","impliedFormat":1},{"version":"71f4b56ed57bbdea38e1b12ad6455653a1fbf5b1f1f961d75d182bff544a9723","impliedFormat":1},{"version":"b3e1c5db2737b0b8357981082b7c72fe340edf147b68f949413fee503a5e2408","impliedFormat":1},{"version":"396e64a647f4442a770b08ed23df3c559a3fa7e35ffe2ae0bbb1f000791bda51","impliedFormat":1},{"version":"698551f7709eb21c3ddec78b4b7592531c3e72e22e0312a128c40bb68692a03f","impliedFormat":1},{"version":"662b28f09a4f60e802023b3a00bdd52d09571bc90bf2e5bfbdbc04564731a25e","impliedFormat":1},{"version":"e6b8fb8773eda2c898e414658884c25ff9807d2fce8f3bdb637ab09415c08c3c","impliedFormat":1},{"version":"528288d7682e2383242090f09afe55f1a558e2798ceb34dc92ae8d6381e3504a","impliedFormat":1},{"version":"1685807d3b8fc040be7441574aa5c9e90682aa30d42793e38364256de5c7f254","signature":"42aff1676ae4d328c0bf2219f1b92e94e94794c1e97881d424401a10d2a6cfca"},{"version":"c8b958c186317fff115ef7cb8f00b1705cbdc53e7d76c8e2d33ac0183c77a0e4","signature":"bbce04162cfe436ee85072259500a6421c0f498db2d478227b695c6bcb5f007f"},{"version":"faa895693978941cf98c59b8d9781e0167def8ad8db0888677bddf557e5591b9","signature":"94e74989d943cb3826b64e61e195afbc2fc66640bf8e16b9f2fa1138e889ca7c"},{"version":"87921aae4f4dcd04df1c0847cdd122b7ad5ad601b2f128859f73c3e2ec3bb508","signature":"08ae911bed9f292647cab86bc52ff64228619845a9e779b12c1698aed38d69bb"},{"version":"1bd8428d60b845004af54f3f00e152890fb375fce46bc5a527e23360ce3e8f70","signature":"bde756b5953aee2136db4bbff45d12eae3fdca8dbce4e017a24d4d79da3c4ba6"},{"version":"0d9e2d408a7b2639cd8110cb5761ad1b7db98777a26e9149e0994ceba5af46d6","signature":"b3c18380059c627c8ea611847460aa4c5528f386c294c8be3f3df47761e6738d"},{"version":"479606eeb03cc1ad398a999cba8d39bfebfc624c58ab59d361f3f4b4f2c0c5d7","signature":"33c5a014c6a4ad393738f1a2f75fa9be330e947d55bc54fb9e0d06159df8c9b5"},{"version":"784b8bf45dc0db28e1b7dfa52c818305ebbc1f86b36d4adc68afb1aa3215e199","signature":"87141cb870ed80185699ae70d17e5279f880abc36a85c71bd36ac731f2827f51"},{"version":"937b6b7a3fc2bea8c59b819e526a4f6639a30b7a6a52229a21beb98971b3f4c5","signature":"ecf473dbc175c002849c854ea1cb0edb017a90fe70a1d721380010c32d40f7b4"},{"version":"fe3174926fe6328920581978a088a1ddd61494d3d115c67ef77f006169704790","signature":"be5d56e0c5dabaace18bcaefa257b012f29a0fd7e0c9fad2fec0d119fd825e3d"},{"version":"6f62c41f317a6362ae56729bf276ba75a5ba28c4c74a7c1e859ab7ae43c13453","signature":"b9db872df5e31f6a4592244c7bd44f44ef11efa6464e0001641dbd2339865606"},{"version":"eedae8b0ed762a1b39c4b15befd7f9ea2a46e10529f71e07cac16179fa3c6892","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a827c04987a53acd81b692bda49ac2a14b56835aa9b6a1ebafe0a5a88f19b7ab","signature":"268b4dcf4ca1945dc4d0762bb65b6d8dfac399bc694baf498e7db46199e2596e"},{"version":"f961fbf9ad7ed63835cda84a06c4ade5e579839e1ad2f3421e196ab9b974e665","signature":"071972511aff8813ef01d3f10326854101392dda7ec45e732dd26a7aa7b715d5"},{"version":"36171b21d86e7ab7bff111a1f84eb163758460e728cab8d226181f722e0a93c4","signature":"dc6a468030edfba54806c11814055d90a22b38143fda84a95f8ffaa3729cdada"},{"version":"16bd23cff2ec71ef4257597c3964480cd187c665d9ec6f138c084828e9b0692a","signature":"042f5c14541d5f24c3f2bfcfa3be372865042fca6b3240fdc6eb4d36c46c6054"},{"version":"3aac5d679566daf7ac6d5151a518e4edd0f5d4b506a7345d17d7b6b27266c9c4","signature":"faf77a35be7f5648e12ab952b900ee69526103333b3d7b86498adf346a207d89"},{"version":"7f97d703d642e73b9b9d4d854f3011e8636b9c2834af144d645fee9b70e83199","signature":"efb4f81a26ca3ca694c5908279d36cbed7c906125d52a966b5a29df7cd0721f0"},{"version":"d80f9b655b1335c34d09e872ca7c2d5d401e6f222090ec80af8de44d8fc622bc","signature":"b0124b48e9bffcc064d24eabc0201dc38517629255e0441ee741835130edc7ee"},{"version":"8a3ae4d577e7e92f29181a3980c79bd278c92cc1edfb41181a90460233f428ba","signature":"04551ded01e4eda977f401c6bd4031f6fb6e9a469978d853779a1dea97e4f4d0"},{"version":"a70b57cc8bf124c3c3c701edea01cef62991c213986bb5f410aec1a40292a816","signature":"1cc34f6d05ce818161551a9c1621a5bc56290fd2dbd80ebeb1b1b765205b888b"},{"version":"2b9b2bd8669eec538021711d958eeda0753962cbd963e69c0756b01a65fd3790","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dc746f45136705f568e42df249efa0adc155226d2af7d026f71dfb8f5019d625","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a7644e8336a74c486bb7f32a567a65db8da98bcb8a51bbccb899b3c0153dfe75","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2bcc24ceb55b3c625fa7b6e3099872f0bb9ad9b989edc7eb9ff26778e769036a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"16c6567c6cd65d0527ec39c9d1530a35e0e701e8a8a2cd65adfc602d82a993f3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c7ab6ece56bb932281de297b2d970904b61ea0cc64cc7fd376c6db17050bd811","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"aa1006252e0db74b1be782408e423a91f5a88bf35f4a65d6d4fa81df4a358709","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"07be78c027f5b7d63b01c653f88889d25aae0b5d628cbc84ac7d335ec7ca3dcd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1868aa945e91f119dfa98030067891704a2c81602911276adb9a472ed2256b57","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8dedf8b2e92a1a63a4ddfe5d5bb50b1732c3ea2323260e4e5c6aeb7234f54391","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c2007a37f37f04dd1b8f125ef2d0b00521abbf48a6f1ac903acaf8b64a906546","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"d1986184a09a52db8228cb2bb2a61a8c05c9354e5b93cec8e2628d8579c892d7",{"version":"d97e908ab7d85a7afe4d1252e822a58a418b35e09e89cf297b02e3bdaf23008e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"54cc08a956e362ed262c8fd1944528ce6a863d5bd8fe3777c55b52d2a638da79","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1987f5ec7072415ed08f07dee7ac4d115befbee3b07ea6c9b4ff84e52bae2db6","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"8f9983516f985957870b20426d72ac757b1f701d746ab404a5239efa481ebd6e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ca1966b1b04f95011ecc94903b78a60c6727debe6f769f0f03198ed72464b345","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"54e9455474a4679ab599218d4980a6a4f4eb97ebd6e32824401df2ecd02c2cca","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b7b8aa9c5b538828118a87c4066f2cc8dd18dd64ff53e5faf6aabccdd784ace3","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"52eb6ede918c7f0c36830bc9f12a5deba7927732feb3886c74b6be19128e7edb","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"45e4be44aa99479021609d2386c717095a036426b11b74f04b1b4e5b82314856","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"9c98e6a1e5f3681fe4ca71977db25ed1db038e3a3c93d9950a7559a3574262b2","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"e0a1786b191ee2eb1d300d6a4f13ed7a0c8e14f0749090f0d2ba44f62e6c9a1c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"8af2c0957ccc7bd443450edced79e1bf7ba82f4a987c450b90e8772272a95b9e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d282ca406e654b7525658cb8fba3a70f5a4fb48c9f5f9d905a128b213f2b7952","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"344beeb9a2934349673894c485b4fa6e03ed8049d15574425ae517b554a95a24","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a9553453729eca98245403268c5933460b41710f5402c4d70627c8dcaf3c72f8","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"fca6c3c6ec14a9a7994863449a092a09fe9496691d4579fb914e3ba972b021dd","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"6dbff1d7d69e18549f19cd647c66d7626dad0c1368a4f7d999a80f1c499cdb09","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"50c8cedda91f7ff1974903db4f03e1032e5f57128f8da1084232142e50c679c0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"bc8082353a5a4961eea70812a84e1098b85bf5dd7fe7469f028e0c355190a702","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"9aa749f8d3b790632b0eb6f9cfbf6bef3808205db5caa34062557c7da703f295","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"59c9daa8e85396ae3518db37e2732923ef56d0b508ec6545e01be9acf7125802","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"7b53f3bbea55fcc219eeee2eff62fe794329bdbe76cf9dc6d164c4f6b12753e5","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"71661f93fb6bc3ec10dee09282d67d86d5a33a2e088f854b0b3466dec1dad4f4","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ed6541c9b03d7a730516cb10a0aad9addcba7db7c3b64748d75453ff434563ab","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ad468807dd01cf64c80534979695c3c0f5d2dfce7a0b0721d14dfa45c63c64a3","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f34d28407f34279d62c99ca84e31ea097fd86531fad88edfb032a1fe6c0a119d","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"55abd4ad90e640a0eaa872e91f96dce6bf04229c4aa4dcc399abcf6e80b68aa5","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"027bebc4592e8263ed6a5e19893e60872436760081e9ff44d512618f03f78c18","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a7bacd8d7356852bcae84bad504a9c042de85bdc478e2844f0d4496ed7ed3e62","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"7320462b17c1766d7aadb94276b765fac8467f31ad51ed4024c37ceb08905247","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"84d9bf04579c1292ebf8907f7e46e0c06afd619e71de61f7ea7a70942657321e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"af827348601c443c2900f3c419542c644c2b9ea9fed1c3410a6d001138b3863f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"12afbb6a91436f1db7fae36d01627b986e24edd88435b20f39787eab18b5f441","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5920933e583a1a97e62f8fbe6bb8a350fc9d6d5eb6b4f1d34960c8bf0a2e5fe1","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"2c8c6fa4443016446fe83b98005f27225bb5fcc2f37a48fc026c86a3fac338b0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b77332b4f0653a1c0ff600fdf6d9e2eb515eab1f52c286e8090bf1c3850f9348","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"c3166454ac68773fef113691d0e7d8bd590bccbd8877a170a073cd099af5f95f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"751dec2105ae88a2fa2270da1c73894a8d66d2d3783c9cc6f01a787d00521219","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"31424da4ed559041ca9e3a558fe3fc6e84558ccefaeb4601fb136439c2b4c3e9","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a1a5679184f25169f22217ff826ac036ce44fbce9a121bf48dd0f96169862e04","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f2cc094320801365e0d353bdfc3fa178c37ad9e346c886601280052f3e078d9e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d578c54d51ac622e938cc4310d4f7ea7bf6361c0ead892fadfb489b21e861e1e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1f3bedda321a8d6f6e852aad110e715b3acf59821d937d061e9a795ba3985211","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"00f3307e4ebb5e5cc566e2ce551263c64911958caccdec8f158f0904c9129488","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"d1986184a09a52db8228cb2bb2a61a8c05c9354e5b93cec8e2628d8579c892d7",{"version":"58b46a7c1807fb6deb5dca77453580e98838eabd706a2890eec18f98b9642e47","affectsGlobalScope":true},{"version":"fde173d0a5ae6751de7e69ae7541abd571deb71b9c968ab44fc413ede517ae53","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2b2f126a10216cd6ced597a168ab549d55719af8e7d532aa582d2b10a80762c4","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d4bc0a798fdb5170f10d7e72821f68eded9d21aa5468b310f14c5edc94255d23","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"3bcbbf0824756a3033dfa7cf430be684c96f3968d7e6d0249c27bac658b558f5","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d57efadf60389b87f1af4b42c9b2ec63e8402cf07c849e63ad65c81a3f93a3af","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"100c08d5d4b9486e6408e54e509144f40b8cfe1b7782184ad825e746a0a5cd81","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"732f6278d0025458055e5adfffca39328de0f48637648437c80e18830ec20170","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5b3bb585de834e774aa4fae8ac539a01662e0a6f28873d1fc6e03755297adb9f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d895a2e661728c31f5761735c20a7dd9395d515c4296930c8269a83340f2fa01","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"13a1c520ccdda69a10c768cf4246d2398d99084c540f2c303323f72582d20e6d","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"fcbc695105dd02e3d758eede77a77c485cbd752bcf04ef489588aa12981ceece","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f6fa45fa764ccbac67bde9d88990eeb63b552c89d7cb150f04a2585f2bbd933c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"a80e02af710bdac31f2d8308890ac4de4b6a221aafcbce808123bfc2903c5dc2","impliedFormat":1},{"version":"6382638cfd6a8f05ac8277689de17ba4cd46f8aacefd254a993a53fde9ddc797","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"e1028394c1cf96d5d057ecc647e31e457b919092f882ed0c7092152b077fed9d","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"f8a6bb79327f4a6afc63d28624654522fc80f7536efa7a617ef48200b7a5f673","impliedFormat":1},{"version":"8e0733c50eaac49b4e84954106acc144ec1a8019922d6afcde3762523a3634af","impliedFormat":1},{"version":"f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"6e5c9272f6b3783be7bdddaf207cccdb8e033be3d14c5beacc03ae9d27d50929","impliedFormat":1},{"version":"21ac4cf3f8d8c6e1201cb31f600be708c9a37867fc5c73b7ccf80560fae591c8","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"798367363a3274220cbed839b883fe2f52ba7197b25e8cb2ac59c1e1fd8af6b7","impliedFormat":1},{"version":"2636a309ed87d6876728d9aca846a76b372cf2a21a4fdf9940a82a2dd86687d0","impliedFormat":1},{"version":"5aca5a3bc07d2e16b6824a76c30378d6fb1b92e915d854315e1d1bd2d00974c9","impliedFormat":1},{"version":"2e23be37a190953f60cdc4a62f89e5dfe4d6c64f38c71564bc0fb63c7810c9a1","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[512,513,515,516,619,645,741,[744,764],[1122,1144],[1505,1508],[1510,1518],[1543,1554],[1568,1633],2385,2386,[2391,2395],[2402,2425],[2445,2623],[2626,2648],2651,[2655,2658],[2736,2738],[2740,2751],[2926,3016]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":4,"module":99,"skipLibCheck":true,"strict":true,"target":9},"referencedMap":[[3007,1],[3008,2],[3009,3],[3010,4],[3011,5],[3012,6],[3013,7],[3014,8],[3015,9],[3016,10],[3006,11],[3003,12],[3004,13],[3005,14],[2961,1],[2962,2],[2963,3],[2966,15],[2965,16],[2967,17],[2968,18],[2964,5],[2971,19],[2969,20],[2970,21],[2972,22],[2973,23],[2974,24],[2975,6],[2976,7],[2978,25],[2979,26],[2980,27],[2981,28],[2977,8],[2982,29],[2985,30],[2986,31],[2984,32],[2987,33],[2988,34],[2983,9],[2989,35],[2991,36],[2990,37],[2993,38],[2992,39],[2994,40],[2995,41],[2998,42],[2997,43],[3000,44],[2999,45],[2996,10],[3002,46],[3001,47],[2960,11],[2958,48],[512,13],[2959,49],[515,50],[747,51],[748,51],[749,51],[750,52],[751,51],[752,53],[753,53],[754,51],[755,51],[756,51],[757,51],[758,54],[759,51],[760,51],[761,51],[762,53],[763,51],[746,55],[764,52],[1122,56],[1123,57],[1124,51],[1125,51],[1126,58],[1127,51],[1128,51],[744,59],[745,59],[1129,53],[1130,53],[1131,53],[1132,53],[1133,51],[1134,51],[1135,52],[1136,51],[1137,53],[1138,51],[1139,53],[1140,53],[1141,53],[1142,53],[1143,51],[1144,52],[513,60],[516,61],[1542,62],[1534,63],[1541,64],[1536,13],[1537,13],[1535,65],[1538,66],[1529,13],[1530,13],[1531,62],[1533,67],[1539,13],[1540,68],[1532,69],[619,70],[1514,71],[1515,71],[1516,71],[1511,72],[1512,73],[1513,74],[2657,75],[2736,76],[2658,77],[2738,78],[2737,79],[2936,80],[2749,81],[2937,82],[2939,83],[2940,84],[2740,85],[2741,86],[1518,87],[2942,88],[2941,89],[1517,84],[2943,90],[2944,91],[2946,92],[1545,93],[1550,94],[1549,95],[1578,96],[1577,97],[1580,98],[1579,99],[1582,100],[1581,101],[1584,102],[1583,103],[1585,104],[1575,105],[1587,106],[1586,107],[1590,108],[1592,109],[1591,110],[1595,111],[1594,112],[1589,113],[1597,114],[1596,113],[1598,115],[1602,116],[1601,117],[1588,113],[1604,118],[1603,71],[1607,119],[1606,120],[1608,121],[1605,122],[1613,123],[1612,124],[1611,125],[1610,124],[1616,126],[1615,127],[1618,128],[1617,129],[1621,130],[1623,131],[1622,132],[1620,113],[1624,133],[1626,134],[1628,135],[1627,136],[1625,137],[1619,132],[1632,138],[1631,139],[1633,140],[1630,139],[1629,141],[2656,142],[2947,143],[2948,144],[2949,145],[2950,146],[2951,147],[2952,148],[2953,149],[2386,150],[2393,151],[2394,152],[2744,153],[2742,154],[2743,155],[2935,156],[2745,157],[2746,158],[2945,156],[2938,159],[2406,75],[2557,160],[2531,161],[2748,162],[2546,163],[2416,164],[2417,165],[2418,165],[2419,165],[2420,165],[2421,165],[2422,165],[2423,165],[2424,165],[2425,165],[2445,166],[2446,167],[2415,168],[2414,169],[2411,170],[2412,170],[2410,170],[2409,169],[2413,170],[2408,169],[2407,171],[2405,172],[2395,172],[2404,173],[2655,174],[2747,175],[2541,176],[2934,177],[2954,178],[2955,179],[2448,180],[2930,181],[2750,182],[2929,183],[2926,184],[2927,185],[2928,186],[2751,187],[2932,188],[2933,189],[2447,159],[2931,183],[2467,190],[2468,191],[2469,192],[2470,193],[2471,194],[2472,195],[2473,196],[2474,197],[2475,198],[2476,199],[2477,200],[2478,201],[2479,202],[2480,203],[2449,204],[2451,205],[2452,206],[2453,159],[2454,207],[2455,208],[2458,209],[2403,210],[2459,159],[2461,211],[2462,207],[2464,212],[2465,213],[2466,208],[1508,214],[2481,215],[2482,216],[2483,217],[2484,218],[2485,219],[2486,220],[2487,221],[2493,222],[2494,223],[2495,224],[2497,225],[2499,226],[2501,227],[2502,228],[2504,229],[2506,230],[2507,151],[2586,231],[2587,232],[2589,233],[2590,234],[2591,235],[2592,236],[2594,237],[2596,238],[2597,239],[2598,240],[2600,241],[2601,242],[2603,243],[2605,244],[2606,245],[2607,246],[2609,247],[2610,248],[2612,249],[2613,250],[2615,251],[2617,252],[2402,71],[1548,253],[1574,254],[1609,71],[2618,255],[2619,256],[2620,257],[2621,258],[1551,259],[1507,260],[1544,261],[1552,71],[1546,262],[1553,263],[1547,264],[1568,265],[1570,266],[1572,267],[2456,268],[1554,269],[1543,71],[2622,270],[2492,271],[1593,272],[1599,273],[2496,272],[2498,272],[2500,272],[1600,274],[2623,275],[2626,276],[1576,277],[1506,278],[1505,279],[2503,272],[2505,272],[2392,280],[2491,281],[2488,282],[2588,71],[1571,283],[1614,269],[1569,71],[2627,271],[2593,71],[2595,268],[2463,183],[2512,71],[2599,71],[1573,284],[2602,272],[2604,285],[2385,183],[2555,280],[2556,286],[2608,287],[2450,272],[2611,71],[2540,71],[2614,288],[2616,288],[2956,289],[2628,290],[2957,291],[2629,292],[2630,292],[2516,293],[2517,294],[2515,262],[2514,295],[2490,71],[2559,296],[2560,297],[2558,262],[2566,298],[2567,299],[2565,262],[2564,295],[2534,300],[2535,301],[2533,262],[2532,295],[2562,302],[2563,303],[2561,262],[2585,304],[2553,305],[2554,306],[2552,262],[2551,295],[2520,307],[2521,308],[2519,262],[2518,295],[2538,309],[2539,310],[2537,262],[2536,295],[2510,311],[2511,312],[2509,262],[2549,313],[2550,314],[2548,262],[2547,295],[2524,315],[2525,316],[2523,262],[2522,295],[2579,317],[2580,318],[2578,262],[2577,295],[2489,319],[2570,320],[2571,321],[2569,262],[2568,295],[2631,322],[2528,323],[2529,324],[2527,262],[2526,295],[2575,325],[2576,326],[2574,262],[2573,327],[2544,328],[2545,329],[2543,262],[2542,295],[2633,330],[2634,331],[2635,332],[2636,333],[2637,334],[2638,335],[2572,295],[2632,336],[2513,337],[2583,338],[2584,339],[2582,262],[2581,327],[2508,75],[1510,340],[2641,341],[2642,199],[2643,342],[2644,165],[2645,343],[2646,344],[2639,345],[2460,346],[2530,347],[2391,348],[2457,349],[2640,350],[2648,351],[2647,352],[645,353],[741,354],[2651,355],[1681,356],[1182,13],[1193,357],[1187,358],[1191,359],[1188,71],[1499,360],[1493,361],[1504,362],[1192,357],[1498,363],[1186,364],[1194,357],[1502,360],[1500,360],[1196,365],[1189,71],[1501,360],[1185,71],[1503,360],[1184,366],[2172,367],[2249,368],[2248,369],[2230,370],[2239,370],[2242,370],[2234,370],[2241,370],[2247,371],[2237,370],[2231,370],[2235,370],[2240,370],[2238,370],[2232,370],[2245,370],[2243,370],[2229,372],[2233,370],[2244,370],[2236,370],[2246,370],[2228,373],[2226,374],[2375,367],[2376,375],[2160,376],[2250,377],[2164,378],[2253,379],[2252,380],[2251,381],[2159,382],[2161,367],[2255,383],[2183,384],[2184,385],[2222,386],[2224,387],[2223,388],[2225,389],[2221,390],[2163,391],[2165,367],[2227,392],[2266,393],[2268,394],[2377,395],[2168,396],[2157,397],[2166,374],[2267,398],[2162,399],[2170,367],[2254,400],[2265,401],[2261,402],[2262,403],[2263,404],[2264,405],[2259,406],[2258,407],[2257,408],[2256,409],[2158,410],[2169,411],[2374,412],[2174,413],[2173,382],[2167,414],[2175,415],[2171,416],[1711,417],[1696,418],[1706,419],[1641,420],[1637,419],[1715,421],[1635,422],[2153,423],[1195,367],[1684,424],[2155,425],[1694,426],[1699,427],[1679,428],[2156,429],[1636,367],[1492,430],[1714,431],[1716,382],[1487,432],[1687,433],[1682,434],[1644,435],[1717,426],[1645,436],[1692,437],[1689,438],[1718,367],[1708,439],[1690,367],[1703,440],[1705,441],[1701,442],[2380,443],[1704,444],[1190,159],[2379,445],[2378,159],[2384,446],[2364,447],[2365,448],[2368,449],[2369,450],[2366,451],[2367,452],[2363,453],[2260,71],[1497,71],[2382,71],[2371,454],[2381,71],[2270,71],[1183,455],[2383,456],[1555,13],[1560,457],[1566,13],[1557,458],[1558,459],[1559,460],[1561,13],[1556,461],[1567,462],[1564,463],[1565,463],[1563,464],[1562,13],[1169,465],[1521,13],[1156,466],[1154,467],[1152,468],[1151,13],[1155,469],[1149,469],[1153,470],[1157,471],[1159,472],[1147,13],[1163,473],[1166,474],[1168,475],[1165,476],[1167,477],[1164,13],[1158,465],[1160,478],[1150,13],[1528,479],[1524,480],[1525,481],[1526,482],[1527,483],[3019,484],[3017,13],[2274,485],[2372,486],[2370,487],[2277,488],[2269,13],[2373,489],[2272,490],[1719,13],[1720,491],[1721,492],[1726,493],[1722,492],[1725,13],[1723,13],[1724,13],[2840,494],[2842,495],[2841,13],[2843,496],[2844,497],[2839,498],[2874,499],[2875,500],[2873,501],[2877,502],[2880,503],[2876,504],[2878,505],[2879,505],[2881,506],[2882,507],[2887,508],[2884,509],[2883,356],[2886,510],[2885,511],[2891,512],[2890,513],[2888,514],[2889,504],[2892,515],[2893,516],[2897,517],[2895,518],[2894,519],[2896,520],[2832,521],[2814,504],[2815,522],[2817,523],[2831,522],[2818,524],[2820,504],[2819,13],[2821,504],[2822,525],[2829,504],[2823,13],[2824,13],[2825,13],[2826,504],[2827,526],[2828,527],[2816,506],[2830,528],[2898,529],[2871,530],[2872,531],[2870,532],[2808,533],[2806,534],[2807,535],[2805,536],[2804,537],[2801,538],[2800,539],[2794,537],[2796,540],[2795,541],[2803,542],[2802,539],[2797,543],[2798,544],[2799,544],[2835,524],[2833,524],[2836,545],[2838,546],[2837,547],[2834,548],[2785,526],[2786,13],[2809,549],[2813,550],[2810,13],[2811,551],[2812,13],[2788,552],[2789,552],[2792,553],[2793,554],[2791,552],[2790,553],[2787,522],[2845,504],[2846,504],[2847,504],[2848,555],[2869,556],[2857,557],[2856,13],[2849,558],[2852,504],[2850,504],[2853,504],[2855,559],[2854,560],[2851,504],[2865,13],[2858,13],[2859,13],[2860,504],[2861,504],[2862,13],[2863,504],[2864,13],[2868,561],[2866,13],[2867,504],[2905,562],[2904,563],[2908,564],[2909,565],[2906,566],[2907,567],[2925,568],[2917,569],[2916,570],[2915,528],[2910,571],[2914,572],[2911,571],[2912,571],[2913,571],[2900,528],[2899,13],[2903,573],[2901,566],[2902,574],[2918,13],[2919,13],[2920,528],[2924,575],[2921,13],[2922,528],[2923,571],[2762,13],[2764,576],[2765,577],[2763,13],[2766,13],[2767,13],[2770,578],[2768,13],[2769,13],[2771,13],[2772,13],[2773,13],[2774,579],[2775,13],[2776,580],[2761,581],[2752,13],[2753,13],[2755,13],[2754,356],[2756,356],[2757,13],[2758,356],[2759,13],[2760,13],[2784,582],[2782,583],[2777,13],[2778,13],[2779,13],[2780,13],[2781,13],[2783,13],[3029,13],[3032,584],[2273,13],[2276,585],[2275,585],[2344,586],[2345,13],[2343,587],[2346,13],[2351,588],[2350,589],[2352,590],[2349,591],[2347,589],[2348,589],[2355,592],[2362,593],[2356,13],[2354,594],[2357,595],[2359,596],[2358,597],[2353,595],[2360,586],[2361,13],[2342,598],[1462,599],[1202,600],[1200,601],[1203,602],[1204,603],[1198,600],[1199,604],[1205,13],[1197,601],[1206,605],[1460,606],[1461,607],[1473,608],[1464,609],[1465,610],[1466,610],[1467,610],[1468,610],[1469,610],[1470,610],[1471,610],[1472,610],[1463,611],[1477,612],[1475,613],[1474,614],[1476,615],[356,13],[662,13],[616,616],[1710,617],[1695,618],[1482,619],[1640,620],[1638,356],[1639,356],[1683,621],[1709,622],[1478,356],[1693,623],[1480,619],[1698,624],[1481,619],[1489,625],[1488,356],[1697,626],[1713,627],[1486,628],[1484,629],[1485,619],[1479,356],[1686,630],[1685,622],[1680,628],[1643,625],[1642,356],[1691,622],[1634,631],[1688,622],[1707,630],[1702,632],[1700,633],[1712,619],[1483,13],[3031,13],[649,13],[2398,13],[2399,634],[2400,635],[2401,636],[2220,637],[2199,638],[2209,639],[2206,639],[2207,640],[2191,640],[2205,640],[2186,639],[2192,641],[2195,642],[2200,643],[2188,641],[2189,640],[2202,644],[2187,641],[2193,641],[2196,641],[2201,641],[2203,640],[2190,640],[2204,640],[2198,645],[2194,646],[2219,647],[2197,648],[2208,649],[2185,640],[2210,640],[2211,640],[2212,640],[2213,640],[2214,640],[2215,640],[2216,640],[2217,640],[2218,640],[2625,650],[2624,651],[2440,13],[2437,13],[2436,13],[2431,652],[2442,653],[2427,654],[2438,655],[2430,656],[2429,657],[2439,13],[2434,658],[2441,13],[2435,659],[2428,13],[2649,654],[2650,660],[2444,661],[2721,662],[2722,662],[2724,663],[2723,662],[2716,662],[2717,662],[2719,664],[2718,662],[2696,13],[2695,13],[2698,665],[2697,13],[2694,13],[2661,666],[2659,667],[2662,13],[2709,668],[2663,662],[2699,669],[2708,670],[2700,13],[2703,671],[2701,13],[2704,13],[2706,13],[2702,671],[2705,13],[2707,13],[2660,672],[2735,673],[2720,662],[2715,674],[2725,675],[2731,676],[2732,677],[2734,678],[2733,679],[2713,674],[2714,680],[2710,681],[2712,682],[2711,683],[2726,662],[2730,684],[2727,662],[2728,685],[2729,662],[2664,13],[2665,13],[2668,13],[2666,13],[2667,13],[2670,13],[2671,686],[2672,13],[2673,13],[2669,13],[2674,13],[2675,13],[2676,13],[2677,13],[2678,687],[2679,13],[2693,688],[2680,13],[2681,13],[2682,13],[2683,13],[2684,13],[2685,13],[2686,13],[2689,13],[2687,13],[2688,13],[2690,662],[2691,662],[2692,689],[2426,13],[3022,690],[3018,484],[3020,691],[3021,484],[656,692],[3023,13],[654,13],[780,693],[781,694],[3024,13],[3025,13],[1494,13],[3026,695],[617,13],[3027,696],[3028,697],[3038,698],[3037,699],[3039,13],[1496,700],[1495,701],[3041,702],[3040,13],[120,703],[121,703],[122,704],[74,705],[123,706],[124,707],[125,708],[69,13],[72,709],[70,13],[71,13],[126,710],[127,711],[128,712],[129,713],[130,714],[131,715],[132,715],[133,716],[134,717],[135,718],[136,719],[75,13],[73,13],[137,720],[138,721],[139,722],[173,723],[140,724],[141,13],[142,725],[143,726],[144,727],[145,728],[146,729],[147,730],[148,731],[149,732],[150,733],[151,733],[152,734],[153,13],[154,735],[155,736],[157,737],[156,738],[158,739],[159,740],[160,741],[161,742],[162,743],[163,744],[164,745],[165,746],[166,747],[167,748],[168,749],[169,750],[170,751],[76,13],[77,13],[78,13],[117,752],[118,13],[119,13],[171,753],[172,754],[3048,755],[3047,756],[177,757],[441,356],[178,758],[176,759],[443,760],[442,761],[2443,356],[174,762],[439,13],[175,763],[60,13],[62,764],[438,356],[208,356],[3049,13],[3050,765],[779,766],[3051,13],[3052,13],[3053,767],[733,768],[729,13],[732,769],[730,770],[731,771],[711,772],[712,773],[710,13],[650,13],[696,774],[695,775],[707,774],[698,776],[700,777],[735,777],[699,778],[647,779],[646,13],[652,780],[653,781],[727,782],[692,783],[694,784],[726,13],[713,783],[693,13],[651,781],[691,13],[2303,785],[2304,786],[2305,787],[2306,13],[2307,788],[2308,13],[2315,789],[2312,790],[2314,791],[2309,13],[2313,13],[2336,792],[2279,13],[2281,793],[2337,794],[2338,795],[2323,796],[2322,797],[2321,798],[2310,13],[2311,799],[2330,800],[2329,801],[2332,802],[2331,803],[2328,804],[2326,805],[2333,806],[2327,805],[2325,807],[2324,808],[2280,793],[2340,809],[2278,13],[2335,810],[2286,811],[2284,812],[2285,813],[2320,814],[2334,815],[2298,816],[2299,786],[2302,817],[2300,786],[2301,786],[2283,818],[2282,13],[2287,819],[2339,820],[2293,821],[2297,822],[2290,823],[2294,824],[2295,825],[2296,826],[2291,827],[2289,828],[2292,829],[2288,13],[2317,13],[2319,830],[2318,13],[2316,13],[655,13],[1146,831],[1145,13],[79,13],[3030,13],[1491,832],[1490,833],[1181,13],[2154,834],[61,13],[1815,835],[1794,836],[1891,13],[1795,837],[1731,835],[1732,835],[1733,835],[1734,835],[1735,835],[1736,835],[1737,835],[1738,835],[1739,835],[1740,835],[1741,835],[1742,835],[1743,835],[1744,835],[1745,835],[1746,835],[1747,835],[1748,835],[1727,13],[1749,835],[1750,835],[1751,13],[1752,835],[1753,835],[1755,835],[1754,835],[1756,835],[1757,835],[1758,835],[1759,835],[1760,835],[1761,835],[1762,835],[1763,835],[1764,835],[1765,835],[1766,835],[1767,835],[1768,835],[1769,835],[1770,835],[1771,835],[1772,835],[1773,835],[1774,835],[1776,835],[1777,835],[1778,835],[1775,835],[1779,835],[1780,835],[1781,835],[1782,835],[1783,835],[1784,835],[1785,835],[1786,835],[1787,835],[1788,835],[1789,835],[1790,835],[1791,835],[1792,835],[1793,835],[1796,838],[1797,835],[1798,835],[1799,839],[1800,840],[1801,835],[1802,835],[1803,835],[1804,835],[1807,835],[1805,835],[1806,835],[1729,13],[1808,835],[1809,835],[1810,835],[1811,835],[1812,835],[1813,835],[1814,835],[1816,841],[1817,835],[1818,835],[1819,835],[1821,835],[1820,835],[1822,835],[1823,835],[1824,835],[1825,835],[1826,835],[1827,835],[1828,835],[1829,835],[1830,835],[1831,835],[1833,835],[1832,835],[1834,835],[1835,13],[1836,13],[1837,13],[1984,842],[1838,835],[1839,835],[1840,835],[1841,835],[1842,835],[1843,835],[1844,13],[1845,835],[1846,13],[1847,835],[1848,835],[1849,835],[1850,835],[1851,835],[1852,835],[1853,835],[1854,835],[1855,835],[1856,835],[1857,835],[1858,835],[1859,835],[1860,835],[1861,835],[1862,835],[1863,835],[1864,835],[1865,835],[1866,835],[1867,835],[1868,835],[1869,835],[1870,835],[1871,835],[1872,835],[1873,835],[1874,835],[1875,835],[1876,835],[1877,835],[1878,835],[1879,13],[1880,835],[1881,835],[1882,835],[1883,835],[1884,835],[1885,835],[1886,835],[1887,835],[1888,835],[1889,835],[1890,835],[1892,843],[2080,844],[1985,837],[1987,837],[1988,837],[1989,837],[1990,837],[1991,837],[1986,837],[1992,837],[1994,837],[1993,837],[1995,837],[1996,837],[1997,837],[1998,837],[1999,837],[2000,837],[2001,837],[2002,837],[2004,837],[2003,837],[2005,837],[2006,837],[2007,837],[2008,837],[2009,837],[2010,837],[2011,837],[2012,837],[2013,837],[2014,837],[2015,837],[2016,837],[2017,837],[2018,837],[2019,837],[2021,837],[2022,837],[2020,837],[2023,837],[2024,837],[2025,837],[2026,837],[2027,837],[2028,837],[2029,837],[2030,837],[2031,837],[2032,837],[2033,837],[2034,837],[2036,837],[2035,837],[2038,837],[2037,837],[2039,837],[2040,837],[2041,837],[2042,837],[2043,837],[2044,837],[2045,837],[2046,837],[2047,837],[2048,837],[2049,837],[2050,837],[2051,837],[2053,837],[2052,837],[2054,837],[2055,837],[2056,837],[2058,837],[2057,837],[2059,837],[2060,837],[2061,837],[2062,837],[2063,837],[2064,837],[2066,837],[2065,837],[2067,837],[2068,837],[2069,837],[2070,837],[2071,837],[1728,835],[2072,837],[2073,837],[2075,837],[2074,837],[2076,837],[2077,837],[2078,837],[2079,837],[1893,835],[1894,835],[1895,13],[1896,13],[1897,13],[1898,835],[1899,13],[1900,13],[1901,13],[1902,13],[1903,13],[1904,835],[1905,835],[1906,835],[1907,835],[1908,835],[1909,835],[1910,835],[1911,835],[1916,845],[1914,846],[1915,847],[1913,848],[1912,835],[1917,835],[1918,835],[1919,835],[1920,835],[1921,835],[1922,835],[1923,835],[1924,835],[1925,835],[1926,835],[1927,13],[1928,13],[1929,835],[1930,835],[1931,13],[1932,13],[1933,13],[1934,835],[1935,835],[1936,835],[1937,835],[1938,841],[1939,835],[1940,835],[1941,835],[1942,835],[1943,835],[1944,835],[1945,835],[1946,835],[1947,835],[1948,835],[1949,835],[1950,835],[1951,835],[1952,835],[1953,835],[1954,835],[1955,835],[1956,835],[1957,835],[1958,835],[1959,835],[1960,835],[1961,835],[1962,835],[1963,835],[1964,835],[1965,835],[1966,835],[1967,835],[1968,835],[1969,835],[1970,835],[1971,835],[1972,835],[1973,835],[1974,835],[1975,835],[1976,835],[1977,835],[1978,835],[1979,835],[1730,849],[1980,13],[1981,13],[1982,13],[1983,13],[743,850],[514,851],[1109,852],[1113,853],[1058,854],[873,13],[823,855],[1107,856],[1108,857],[821,13],[1110,858],[895,859],[838,860],[861,861],[870,862],[841,862],[842,863],[843,863],[869,864],[844,865],[845,863],[851,866],[846,867],[847,863],[848,863],[871,868],[840,869],[849,862],[850,867],[852,870],[853,870],[854,867],[855,863],[856,862],[857,863],[858,871],[859,871],[860,863],[882,872],[890,873],[868,874],[898,875],[862,876],[864,877],[865,874],[876,878],[884,879],[889,880],[886,881],[891,882],[879,883],[880,884],[887,885],[888,886],[894,887],[885,888],[863,858],[896,889],[839,858],[883,890],[881,891],[867,892],[866,874],[897,893],[872,894],[892,13],[893,895],[1112,896],[822,858],[933,13],[950,897],[899,898],[924,899],[931,900],[900,900],[901,900],[902,901],[930,902],[903,903],[918,900],[904,904],[905,904],[906,901],[907,900],[908,901],[909,900],[932,905],[910,900],[911,900],[912,906],[913,900],[914,900],[915,906],[916,901],[917,900],[919,907],[920,906],[921,900],[922,901],[923,900],[945,908],[941,909],[929,910],[953,911],[925,912],[926,910],[942,913],[934,914],[943,915],[940,916],[938,917],[944,918],[937,919],[949,920],[939,921],[951,922],[946,923],[935,924],[928,925],[927,910],[952,926],[936,894],[947,13],[948,927],[826,928],[1015,929],[954,930],[989,931],[998,932],[955,933],[956,933],[957,934],[958,933],[997,935],[959,936],[960,937],[961,938],[962,933],[999,939],[1000,940],[963,933],[965,941],[966,932],[968,942],[969,943],[970,943],[971,934],[972,933],[973,933],[974,939],[975,934],[976,934],[977,943],[978,933],[979,932],[980,933],[981,934],[982,944],[967,945],[983,933],[984,934],[985,933],[986,933],[987,933],[988,933],[1117,946],[1010,947],[996,948],[1020,949],[990,950],[992,951],[993,948],[1114,952],[1003,953],[1009,954],[1005,955],[1011,956],[1115,957],[1116,884],[1006,958],[1008,959],[1014,960],[1004,961],[991,858],[1016,962],[964,858],[1002,963],[1007,964],[995,965],[994,948],[1017,966],[1018,13],[1019,967],[1001,894],[1012,13],[1013,968],[1119,969],[1120,970],[1121,971],[1118,972],[834,973],[827,974],[877,858],[874,975],[878,976],[875,977],[1069,978],[1046,979],[1052,980],[1021,980],[1022,980],[1023,981],[1051,982],[1024,983],[1039,980],[1025,984],[1026,984],[1027,981],[1028,980],[1029,985],[1030,980],[1053,986],[1031,980],[1032,980],[1033,987],[1034,980],[1035,980],[1036,987],[1037,981],[1038,980],[1040,988],[1041,987],[1042,980],[1043,981],[1044,980],[1045,980],[1066,989],[1057,990],[1072,991],[1047,992],[1048,993],[1061,994],[1054,995],[1065,996],[1056,997],[1064,998],[1063,999],[1068,1000],[1055,1001],[1070,1002],[1067,1003],[1062,1004],[1050,1005],[1049,993],[1071,1006],[1060,1007],[1059,1008],[830,1009],[832,1010],[831,1009],[833,1009],[836,1011],[835,1012],[837,1013],[828,1014],[1105,1015],[1073,1016],[1098,1017],[1102,1018],[1101,1019],[1074,1020],[1103,1021],[1094,1022],[1095,1018],[1096,1023],[1097,1024],[1082,1025],[1090,1026],[1100,1027],[1106,1028],[1075,1029],[1076,1027],[1079,1030],[1085,1031],[1089,1032],[1087,1033],[1091,1034],[1080,1035],[1083,1036],[1088,1037],[1104,1038],[1086,1039],[1084,1040],[1081,1041],[1099,1042],[1077,1043],[1093,1044],[1078,894],[1092,1045],[824,894],[825,1046],[829,1047],[1111,13],[1174,1048],[1176,1049],[1172,1050],[1180,1051],[1178,1052],[1173,1053],[1175,1053],[1171,1053],[1179,13],[1177,1053],[1170,13],[679,13],[721,1054],[723,1055],[722,1056],[720,1057],[719,13],[3036,1058],[3034,1059],[3033,699],[3035,1060],[683,13],[685,1061],[684,13],[1201,13],[2739,356],[1256,1062],[1255,13],[1250,13],[1219,13],[1229,1063],[1228,1064],[1254,1065],[1211,1066],[1210,1067],[1209,1068],[1263,1069],[1207,13],[1242,1070],[1240,1062],[1241,1071],[1224,13],[1230,1072],[1225,1073],[1246,1074],[1226,1062],[1239,13],[1223,1075],[1245,1076],[1243,13],[1244,1077],[1253,1078],[1236,1079],[1237,1079],[1238,1080],[1235,13],[1222,1081],[1233,1082],[1227,1083],[1234,13],[1221,1084],[1257,13],[1261,1085],[1208,13],[1259,13],[1260,1085],[1218,1086],[1215,1066],[1216,13],[1213,1085],[1248,1087],[1217,1088],[1252,1089],[1247,1090],[1251,1091],[1214,1081],[1212,1081],[1249,1092],[1232,1093],[1231,1094],[1220,1095],[1262,13],[1258,13],[1457,1096],[1459,1097],[1454,1098],[1453,1099],[1456,1100],[1458,1101],[1455,1102],[1522,1103],[1509,1104],[2396,1105],[1520,1106],[1519,1107],[1523,1108],[2397,1109],[464,1110],[469,1111],[476,1112],[459,1113],[212,13],[220,1114],[360,1115],[363,1116],[335,13],[348,1117],[355,1118],[237,13],[337,13],[218,13],[334,1119],[380,1120],[219,13],[210,1121],[362,1122],[364,1123],[365,1124],[436,1125],[329,1126],[282,1127],[342,1128],[343,1129],[341,1130],[340,13],[336,1131],[361,1132],[221,1133],[406,13],[407,1134],[248,1135],[222,1136],[249,1135],[285,1135],[188,1135],[358,1137],[357,13],[347,1138],[454,13],[197,13],[475,1139],[414,1140],[415,1141],[411,1142],[493,13],[312,13],[416,159],[412,1143],[498,1144],[497,1145],[492,13],[263,13],[315,1146],[314,13],[491,1147],[413,356],[268,1148],[275,1149],[277,1150],[267,13],[272,1151],[274,1152],[276,1153],[271,1154],[269,13],[273,1155],[494,13],[490,13],[496,1156],[495,13],[266,1157],[485,1158],[488,1159],[256,1160],[255,1161],[254,1162],[501,356],[253,1163],[242,13],[503,13],[2653,1164],[2652,13],[504,356],[505,1165],[180,13],[344,1166],[345,1167],[346,1168],[184,13],[349,13],[204,1169],[179,13],[428,356],[186,1170],[427,1171],[426,1172],[417,13],[418,13],[425,13],[420,13],[423,1173],[419,13],[421,1174],[424,1175],[422,1174],[217,13],[214,13],[215,1135],[369,13],[374,1176],[375,1177],[373,1178],[371,1179],[372,1180],[367,13],[434,159],[209,159],[463,1181],[470,1182],[474,1183],[303,1184],[302,13],[297,13],[450,1185],[458,1186],[330,1187],[331,1188],[409,1189],[319,13],[432,1190],[307,356],[324,1191],[435,1192],[320,13],[323,1193],[321,13],[433,1194],[430,1195],[429,13],[431,13],[327,13],[405,1196],[192,1197],[305,1198],[309,1199],[325,1200],[328,1201],[317,1202],[310,1203],[457,1204],[383,1205],[301,1206],[189,1207],[456,1208],[185,1209],[376,1210],[368,13],[377,1211],[394,1212],[366,13],[393,1213],[68,13],[388,1214],[213,13],[408,1215],[384,13],[198,13],[200,13],[339,13],[392,1216],[216,13],[240,1217],[326,1218],[246,1219],[306,13],[391,13],[370,13],[396,1220],[397,1221],[338,13],[399,1222],[401,1223],[400,1224],[350,13],[390,1207],[403,1225],[300,1226],[389,1227],[395,1228],[225,13],[229,13],[228,13],[227,13],[232,13],[226,13],[235,13],[234,13],[231,13],[230,13],[233,13],[236,1229],[224,13],[292,1230],[291,13],[296,1231],[293,1232],[295,1233],[298,1231],[294,1232],[205,1234],[284,1235],[453,1236],[451,13],[480,1237],[482,1238],[446,1239],[481,1240],[193,1241],[190,1241],[223,13],[207,1242],[206,1243],[202,1244],[203,1245],[211,1246],[239,1246],[250,1246],[286,1247],[251,1247],[195,1248],[194,13],[290,1249],[289,1250],[288,1251],[287,1252],[196,1253],[437,1254],[238,1255],[445,1256],[410,1257],[440,1258],[444,1259],[333,1260],[332,1261],[313,1262],[299,1263],[281,1264],[283,1265],[280,1266],[402,1267],[304,13],[468,13],[201,1268],[404,1269],[452,1270],[311,13],[241,1271],[318,1272],[316,1273],[243,1274],[378,1275],[447,13],[244,1276],[379,1276],[466,13],[465,13],[467,13],[449,13],[448,13],[381,1277],[308,13],[278,1278],[199,1279],[257,13],[183,1280],[245,13],[472,356],[182,13],[484,1281],[265,356],[478,159],[264,1282],[461,1283],[262,1281],[187,13],[486,1284],[260,356],[261,356],[252,13],[181,13],[259,1285],[258,1286],[247,1287],[322,732],[382,732],[398,13],[386,1288],[385,13],[270,1157],[191,13],[279,356],[455,1169],[462,1289],[63,356],[66,1290],[67,1291],[64,356],[65,13],[359,1292],[354,1293],[353,13],[352,1294],[351,13],[460,1295],[471,1296],[473,1297],[477,1298],[2654,1299],[479,1300],[483,1301],[511,1302],[487,1302],[510,1303],[489,1304],[499,1305],[500,1306],[502,1307],[506,1308],[509,1169],[508,13],[507,1309],[618,696],[742,1310],[1148,13],[3046,1311],[3043,1309],[3045,1312],[3044,13],[3042,13],[613,1313],[517,13],[518,1313],[612,1314],[615,1315],[614,1316],[636,1317],[634,1318],[635,1319],[623,1320],[624,1318],[631,1321],[622,1322],[627,1323],[637,13],[628,1324],[633,1325],[639,1326],[638,1327],[621,1328],[629,1329],[630,1330],[625,1331],[632,1317],[626,1332],[820,1333],[1162,1334],[1161,1335],[2433,1336],[2432,13],[2139,1337],[2100,1338],[2099,1339],[2138,1340],[2140,1341],[2081,356],[2082,356],[2083,356],[2127,1342],[2106,1343],[2107,1343],[2108,1344],[2109,356],[2110,356],[2111,1345],[2084,1346],[2112,356],[2113,356],[2114,1347],[2115,356],[2116,356],[2117,356],[2118,356],[2119,356],[2120,356],[2085,1346],[2121,356],[2122,356],[2123,1346],[2124,356],[2125,356],[2126,1347],[2141,1344],[2128,1337],[2129,1337],[2130,1337],[2131,1337],[2132,1337],[2133,13],[2134,1337],[2135,1348],[2142,1349],[2143,1350],[2152,1351],[2097,1352],[2086,1353],[2087,1337],[2088,1353],[2089,1337],[2090,13],[2091,1337],[2092,13],[2093,1337],[2094,1337],[2095,1337],[2096,1337],[2137,1337],[2104,1354],[2105,1355],[2101,1356],[2102,1357],[2136,1358],[2098,356],[2103,1359],[2144,1353],[2145,1353],[2151,1360],[2146,1337],[2147,1353],[2148,1353],[2149,1337],[2150,1353],[2179,1361],[2182,1362],[2178,1361],[2180,1363],[2181,1361],[2177,1364],[2176,13],[1646,13],[1662,1365],[1663,1365],[1664,1365],[1678,1366],[1665,1367],[1666,1367],[1667,1368],[1659,1369],[1657,1370],[1648,13],[1652,1371],[1656,1372],[1654,1373],[1661,1374],[1649,1375],[1650,1376],[1651,1377],[1653,1378],[1655,1379],[1658,1380],[1660,1381],[1668,1367],[1669,1367],[1670,1367],[1671,1365],[1672,1367],[1673,1367],[1647,1367],[1674,13],[1676,1382],[1675,1367],[1677,1365],[688,1383],[670,1384],[671,1385],[674,1386],[663,1387],[673,1388],[669,1389],[661,13],[675,1390],[676,1391],[664,13],[665,13],[667,1392],[666,13],[668,1393],[1452,1394],[1425,13],[1403,1395],[1401,1395],[1451,1396],[1416,1397],[1415,1397],[1316,1398],[1267,1399],[1423,1398],[1424,1398],[1426,1400],[1427,1398],[1428,1401],[1327,1402],[1429,1398],[1400,1398],[1430,1398],[1431,1403],[1432,1398],[1433,1397],[1434,1404],[1435,1398],[1436,1398],[1437,1398],[1438,1398],[1439,1397],[1440,1398],[1441,1398],[1442,1398],[1443,1398],[1444,1405],[1445,1398],[1446,1398],[1447,1398],[1448,1398],[1449,1398],[1266,1396],[1269,1401],[1270,1401],[1271,1401],[1272,1401],[1273,1401],[1274,1401],[1275,1401],[1276,1398],[1278,1406],[1279,1401],[1277,1401],[1280,1401],[1281,1401],[1282,1401],[1283,1401],[1284,1401],[1285,1401],[1286,1398],[1287,1401],[1288,1401],[1289,1401],[1290,1401],[1291,1401],[1292,1398],[1293,1401],[1294,1401],[1295,1401],[1296,1401],[1297,1401],[1298,1401],[1299,1398],[1301,1407],[1300,1401],[1302,1401],[1303,1401],[1304,1401],[1305,1401],[1306,1405],[1307,1398],[1308,1398],[1322,1408],[1310,1409],[1311,1401],[1312,1401],[1313,1398],[1314,1401],[1315,1401],[1317,1410],[1318,1401],[1319,1401],[1320,1401],[1321,1401],[1323,1401],[1324,1401],[1325,1401],[1326,1401],[1328,1411],[1329,1401],[1330,1401],[1331,1401],[1332,1398],[1333,1401],[1334,1412],[1335,1412],[1336,1412],[1337,1398],[1338,1401],[1339,1401],[1340,1401],[1345,1401],[1341,1401],[1342,1398],[1343,1401],[1344,1398],[1346,1401],[1347,1401],[1348,1401],[1349,1401],[1350,1401],[1351,1401],[1352,1398],[1353,1401],[1354,1401],[1355,1401],[1356,1401],[1357,1401],[1358,1401],[1359,1401],[1360,1401],[1361,1401],[1362,1401],[1363,1401],[1364,1401],[1365,1401],[1366,1401],[1367,1401],[1368,1401],[1369,1413],[1370,1401],[1371,1401],[1372,1401],[1373,1401],[1374,1401],[1375,1401],[1376,1398],[1377,1398],[1378,1398],[1379,1398],[1380,1398],[1381,1401],[1382,1401],[1383,1401],[1384,1401],[1402,1414],[1450,1398],[1387,1415],[1386,1416],[1410,1417],[1409,1418],[1405,1419],[1404,1418],[1406,1420],[1395,1421],[1393,1422],[1408,1423],[1407,1420],[1394,13],[1396,1424],[1309,1425],[1265,1426],[1264,1401],[1399,13],[1391,1427],[1392,1428],[1389,13],[1390,1429],[1388,1401],[1397,1430],[1268,1431],[1417,13],[1418,13],[1411,13],[1414,1397],[1413,13],[1419,13],[1420,13],[1412,1432],[1421,13],[1422,13],[1385,1433],[1398,1434],[387,765],[620,13],[2271,13],[644,13],[642,1435],[641,13],[640,13],[643,1436],[768,13],[765,13],[766,13],[774,1437],[767,13],[769,1438],[770,1333],[771,13],[772,13],[773,13],[776,1439],[775,13],[789,1440],[778,1441],[790,13],[777,1442],[784,1443],[782,13],[786,1444],[787,1445],[788,13],[785,13],[791,1446],[802,1447],[799,13],[801,1448],[800,1449],[803,1450],[804,1451],[805,1452],[806,1453],[798,1454],[819,1455],[796,1456],[807,1457],[808,1458],[797,1459],[809,13],[783,1460],[794,1461],[810,13],[811,13],[793,13],[792,13],[814,1462],[812,1462],[815,1462],[816,1463],[813,1463],[818,1464],[795,1465],[817,1466],[708,13],[648,13],[58,13],[59,13],[10,13],[11,13],[13,13],[12,13],[2,13],[14,13],[15,13],[16,13],[17,13],[18,13],[19,13],[20,13],[21,13],[3,13],[22,13],[23,13],[4,13],[24,13],[28,13],[25,13],[26,13],[27,13],[29,13],[30,13],[31,13],[5,13],[32,13],[33,13],[34,13],[35,13],[6,13],[39,13],[36,13],[37,13],[38,13],[40,13],[7,13],[41,13],[46,13],[47,13],[42,13],[43,13],[44,13],[45,13],[8,13],[51,13],[48,13],[49,13],[50,13],[52,13],[9,13],[53,13],[54,13],[55,13],[57,13],[56,13],[1,13],[95,1467],[105,1468],[94,1467],[115,1469],[86,1470],[85,1471],[114,1309],[108,1472],[113,1473],[88,1474],[102,1475],[87,1476],[111,1477],[83,1478],[82,1309],[112,1479],[84,1480],[89,1481],[90,13],[93,1481],[80,13],[116,1482],[106,1483],[97,1484],[98,1485],[100,1486],[96,1487],[99,1488],[109,1309],[91,1489],[92,1490],[101,1491],[81,1333],[104,1483],[103,1481],[107,13],[110,1492],[740,1493],[659,1494],[690,1495],[678,1496],[660,1494],[658,13],[677,1497],[689,13],[687,13],[680,1498],[686,1499],[672,1500],[682,13],[681,1501],[734,1502],[739,1503],[728,1504],[709,1505],[705,1506],[701,1507],[725,13],[702,776],[717,1508],[714,1509],[737,1510],[736,1511],[703,1512],[716,1513],[697,13],[704,1514],[738,1515],[724,1516],[718,1517],[657,1518],[715,13],[706,13],[2341,13],[598,1519],[603,1520],[610,1521],[605,13],[606,13],[604,1522],[607,1523],[599,13],[600,13],[611,1524],[602,1525],[608,13],[609,1526],[601,1527],[592,1528],[596,1529],[593,1529],[589,1528],[597,1530],[594,1531],[595,1529],[590,1532],[591,1533],[585,1534],[526,1535],[528,1536],[584,13],[527,1537],[588,1538],[587,1539],[586,1540],[519,13],[529,1535],[530,13],[521,1541],[525,1542],[520,13],[522,1543],[523,1544],[524,13],[531,1545],[532,1545],[533,1545],[534,1545],[535,1545],[536,1545],[537,1545],[538,1545],[539,1545],[540,1545],[541,1545],[542,1545],[543,1545],[544,1545],[546,1545],[545,1545],[547,1545],[548,1545],[549,1545],[550,1545],[551,1545],[583,1546],[552,1545],[553,1545],[554,1545],[555,1545],[556,1545],[557,1545],[558,1545],[559,1545],[560,1545],[561,1545],[562,1545],[563,1545],[564,1545],[566,1545],[565,1545],[567,1545],[568,1545],[569,1545],[570,1545],[571,1545],[572,1545],[573,1545],[574,1545],[575,1545],[576,1545],[577,1545],[578,1545],[579,1545],[582,1545],[580,1545],[581,1545],[2389,1547],[2388,1548],[2390,13],[2387,13]],"semanticDiagnosticsPerFile":[[3005,[{"start":7627,"length":58,"messageText":"Cannot find module '../../../src/app/api/connections/[id]/databases/route.js' or its corresponding type declarations.","category":1,"code":2307},{"start":9390,"length":65,"messageText":"Cannot find module '../../../src/app/api/connections/list-databases-inline/route.js' or its corresponding type declarations.","category":1,"code":2307}]]],"affectedFilesPendingEmit":[3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3006,3005,2961,2962,2963,2966,2965,2967,2968,2964,2971,2969,2970,2972,2973,2974,2975,2976,2978,2979,2980,2981,2977,2982,2985,2986,2984,2987,2988,2983,2989,2991,2990,2993,2992,2994,2995,2998,2997,3000,2999,2996,3002,3001,2960,2959,515,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,746,764,1122,1123,1124,1125,1126,1127,1128,744,745,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,516,619,1514,1515,1516,1511,1512,1513,2657,2736,2658,2738,2737,2936,2749,2937,2939,2940,2740,2741,1518,2942,2941,1517,2943,2944,2946,1545,1550,1549,1578,1577,1580,1579,1582,1581,1584,1583,1585,1575,1587,1586,1590,1592,1591,1595,1594,1589,1597,1596,1598,1602,1601,1588,1604,1603,1607,1606,1608,1605,1613,1612,1611,1610,1616,1615,1618,1617,1621,1623,1622,1620,1624,1626,1628,1627,1625,1619,1632,1631,1633,1630,1629,2656,2947,2948,2949,2950,2951,2952,2953,2386,2393,2394,2744,2742,2743,2935,2745,2746,2945,2938,2406,2557,2531,2748,2546,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2445,2446,2415,2414,2411,2412,2410,2409,2413,2408,2407,2405,2395,2404,2655,2747,2541,2934,2954,2955,2448,2930,2750,2929,2926,2927,2928,2751,2932,2933,2447,2931,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2449,2451,2452,2453,2454,2455,2458,2403,2459,2461,2462,2464,2465,2466,1508,2481,2482,2483,2484,2485,2486,2487,2493,2494,2495,2497,2499,2501,2502,2504,2506,2507,2586,2587,2589,2590,2591,2592,2594,2596,2597,2598,2600,2601,2603,2605,2606,2607,2609,2610,2612,2613,2615,2617,2402,1548,1574,1609,2618,2619,2620,2621,1551,1507,1544,1552,1546,1553,1547,1568,1570,1572,2456,1554,1543,2622,2492,1593,1599,2496,2498,2500,1600,2623,2626,1576,1506,1505,2503,2505,2392,2491,2488,2588,1571,1614,1569,2627,2593,2595,2463,2512,2599,1573,2602,2604,2385,2555,2556,2608,2450,2611,2540,2614,2616,2956,2628,2957,2629,2630,2516,2517,2515,2514,2490,2559,2560,2558,2566,2567,2565,2564,2534,2535,2533,2532,2562,2563,2561,2585,2553,2554,2552,2551,2520,2521,2519,2518,2538,2539,2537,2536,2510,2511,2509,2549,2550,2548,2547,2524,2525,2523,2522,2579,2580,2578,2577,2489,2570,2571,2569,2568,2631,2528,2529,2527,2526,2575,2576,2574,2573,2544,2545,2543,2542,2633,2634,2635,2636,2637,2638,2572,2632,2513,2583,2584,2582,2581,2508,1510,2641,2642,2643,2644,2645,2646,2639,2460,2530,2391,2457,2640,2648,645,741,2651],"version":"5.9.3"} \ No newline at end of file diff --git a/component/stories/ui/breadcrumb.stories.tsx b/component/stories/ui/breadcrumb.stories.tsx index 0d6b7e92..460e8980 100644 --- a/component/stories/ui/breadcrumb.stories.tsx +++ b/component/stories/ui/breadcrumb.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react'; +import type { Meta, StoryObj } from "@storybook/react"; import { Breadcrumb, BreadcrumbEllipsis, @@ -7,23 +7,23 @@ import { BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, -} from '@/components/ui/breadcrumb'; +} from "@/components/ui/breadcrumb"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@/components/ui/dropdown-menu'; +} from "@/components/ui/dropdown-menu"; const meta = { - title: 'UI/Breadcrumb', + title: "UI/Breadcrumb", component: Breadcrumb, - parameters: { layout: 'centered' }, - tags: ['autodocs'], + parameters: { layout: "centered" }, + tags: ["autodocs"], argTypes: { className: { - control: 'text', - description: 'Additional CSS classes for the breadcrumb', + control: "text", + description: "Additional CSS classes for the breadcrumb", }, }, } satisfies Meta; @@ -61,9 +61,11 @@ export const WithEllipsis: Story = { - - - Toggle menu + + Documentation diff --git a/docker/keycloak/neoboard-test-realm.json b/docker/keycloak/neoboard-test-realm.json new file mode 100644 index 00000000..de0a4c02 --- /dev/null +++ b/docker/keycloak/neoboard-test-realm.json @@ -0,0 +1,124 @@ +{ + "realm": "neoboard-test", + "enabled": true, + "displayName": "NeoBoard Test Realm", + "sslRequired": "none", + "registrationAllowed": false, + "loginWithEmailAllowed": true, + "groups": [ + { + "name": "neoboard-admins", + "path": "/neoboard-admins" + }, + { + "name": "neoboard-editors", + "path": "/neoboard-editors" + }, + { + "name": "neoboard-viewers", + "path": "/neoboard-viewers" + } + ], + "users": [ + { + "username": "sso-admin", + "email": "sso-admin@example.com", + "firstName": "SSO", + "lastName": "Admin", + "enabled": true, + "emailVerified": true, + "credentials": [ + { + "type": "password", + "value": "password123", + "temporary": false + } + ], + "groups": ["/neoboard-admins"] + }, + { + "username": "sso-editor", + "email": "sso-editor@example.com", + "firstName": "SSO", + "lastName": "Editor", + "enabled": true, + "emailVerified": true, + "credentials": [ + { + "type": "password", + "value": "password123", + "temporary": false + } + ], + "groups": ["/neoboard-editors"] + }, + { + "username": "sso-viewer", + "email": "sso-viewer@example.com", + "firstName": "SSO", + "lastName": "Viewer", + "enabled": true, + "emailVerified": true, + "credentials": [ + { + "type": "password", + "value": "password123", + "temporary": false + } + ], + "groups": ["/neoboard-viewers"] + }, + { + "username": "sso-nogroup", + "email": "sso-nogroup@example.com", + "firstName": "SSO", + "lastName": "NoGroup", + "enabled": true, + "emailVerified": true, + "credentials": [ + { + "type": "password", + "value": "password123", + "temporary": false + } + ], + "groups": [] + } + ], + "clients": [ + { + "clientId": "neoboard", + "name": "NeoBoard E2E Test Client", + "enabled": true, + "publicClient": false, + "clientAuthenticatorType": "client-secret", + "secret": "neoboard-test-secret-e2e", + "redirectUris": [ + "*" + ], + "webOrigins": [ + "+" + ], + "protocol": "openid-connect", + "standardFlowEnabled": true, + "directAccessGrantsEnabled": true, + "implicitFlowEnabled": false, + "serviceAccountsEnabled": false, + "protocolMappers": [ + { + "name": "groups", + "protocol": "openid-connect", + "protocolMapper": "oidc-group-membership-mapper", + "consentRequired": false, + "config": { + "full.path": "false", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "groups", + "userinfo.token.claim": "true" + } + } + ] + } + ] +} diff --git a/docs/.astro/collections/docs.schema.json b/docs/.astro/collections/docs.schema.json index 040fafa8..3a38d064 100644 --- a/docs/.astro/collections/docs.schema.json +++ b/docs/.astro/collections/docs.schema.json @@ -62,7 +62,9 @@ "default": "" } }, - "required": ["tag"], + "required": [ + "tag" + ], "additionalProperties": false }, "default": [] @@ -98,7 +100,10 @@ }, "template": { "type": "string", - "enum": ["doc", "splash"], + "enum": [ + "doc", + "splash" + ], "default": "doc" }, "hero": { @@ -123,7 +128,9 @@ "type": "string" } }, - "required": ["file"], + "required": [ + "file" + ], "additionalProperties": false }, { @@ -140,7 +147,10 @@ "type": "string" } }, - "required": ["dark", "light"], + "required": [ + "dark", + "light" + ], "additionalProperties": false }, { @@ -150,7 +160,9 @@ "type": "string" } }, - "required": ["html"], + "required": [ + "html" + ], "additionalProperties": false } ] @@ -168,7 +180,11 @@ }, "variant": { "type": "string", - "enum": ["primary", "secondary", "minimal"], + "enum": [ + "primary", + "secondary", + "minimal" + ], "default": "primary" }, "icon": { @@ -429,11 +445,18 @@ "attrs": { "type": "object", "additionalProperties": { - "type": ["string", "number", "boolean"] + "type": [ + "string", + "number", + "boolean" + ] } } }, - "required": ["text", "link"], + "required": [ + "text", + "link" + ], "additionalProperties": false }, "default": [] @@ -548,7 +571,9 @@ "type": "string" } }, - "required": ["text"], + "required": [ + "text" + ], "additionalProperties": false } ] @@ -584,7 +609,9 @@ "type": "string" } }, - "required": ["content"], + "required": [ + "content" + ], "additionalProperties": false }, "pagefind": { @@ -599,9 +626,11 @@ "type": "string" } }, - "required": ["title"], + "required": [ + "title" + ], "additionalProperties": false } }, "$schema": "http://json-schema.org/draft-07/schema#" -} +} \ No newline at end of file diff --git a/docs/.astro/content-modules.mjs b/docs/.astro/content-modules.mjs index 22459493..e4e95ad8 100644 --- a/docs/.astro/content-modules.mjs +++ b/docs/.astro/content-modules.mjs @@ -1,48 +1,56 @@ export default new Map([ -["src/content/docs/charts/bar.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fbar.mdx&astroContentModuleFlag=true")], -["src/content/docs/charts/iframe.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fiframe.mdx&astroContentModuleFlag=true")], ["src/content/docs/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Findex.mdx&astroContentModuleFlag=true")], +["src/content/docs/administration/managing-users.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fadministration%2Fmanaging-users.mdx&astroContentModuleFlag=true")], +["src/content/docs/connections/connecting-databases.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconnections%2Fconnecting-databases.mdx&astroContentModuleFlag=true")], +["src/content/docs/administration/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fadministration%2Findex.mdx&astroContentModuleFlag=true")], +["src/content/docs/administration/multi-tenancy.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fadministration%2Fmulti-tenancy.mdx&astroContentModuleFlag=true")], +["src/content/docs/connections/query-safety.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconnections%2Fquery-safety.mdx&astroContentModuleFlag=true")], +["src/content/docs/connections/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconnections%2Findex.mdx&astroContentModuleFlag=true")], +["src/content/docs/charts/bar.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fbar.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/form.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fform.mdx&astroContentModuleFlag=true")], +["src/content/docs/connections/connectors.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconnections%2Fconnectors.mdx&astroContentModuleFlag=true")], +["src/content/docs/charts/graph.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fgraph.mdx&astroContentModuleFlag=true")], +["src/content/docs/charts/iframe.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fiframe.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Findex.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/json.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fjson.mdx&astroContentModuleFlag=true")], -["src/content/docs/charts/graph.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fgraph.mdx&astroContentModuleFlag=true")], -["src/content/docs/charts/map.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fmap.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/line.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fline.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/markdown.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fmarkdown.mdx&astroContentModuleFlag=true")], +["src/content/docs/charts/map.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fmap.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/param-select.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fparam-select.mdx&astroContentModuleFlag=true")], +["src/content/docs/charts/pie.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fpie.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/single-value.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fsingle-value.mdx&astroContentModuleFlag=true")], ["src/content/docs/charts/table.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Ftable.mdx&astroContentModuleFlag=true")], -["src/content/docs/charts/pie.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcharts%2Fpie.mdx&astroContentModuleFlag=true")], -["src/content/docs/cli/docker-setup.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcli%2Fdocker-setup.mdx&astroContentModuleFlag=true")], ["src/content/docs/cli/commands.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcli%2Fcommands.mdx&astroContentModuleFlag=true")], +["src/content/docs/cli/docker-setup.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcli%2Fdocker-setup.mdx&astroContentModuleFlag=true")], ["src/content/docs/cli/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcli%2Findex.mdx&astroContentModuleFlag=true")], ["src/content/docs/cli/local-setup.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fcli%2Flocal-setup.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/architecture.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Farchitecture.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/connectors.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Fconnectors.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/dashboards.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Fdashboards.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Findex.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/multi-tenancy.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Fmulti-tenancy.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/parameters.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Fparameters.mdx&astroContentModuleFlag=true")], +["src/content/docs/dashboards/first-dashboard.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdashboards%2Ffirst-dashboard.mdx&astroContentModuleFlag=true")], +["src/content/docs/dashboards/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdashboards%2Findex.mdx&astroContentModuleFlag=true")], +["src/content/docs/dashboards/overview.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdashboards%2Foverview.mdx&astroContentModuleFlag=true")], +["src/content/docs/dashboards/parameters.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdashboards%2Fparameters.mdx&astroContentModuleFlag=true")], +["src/content/docs/dashboards/widgets.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdashboards%2Fwidgets.mdx&astroContentModuleFlag=true")], +["src/content/docs/developer/architecture.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Farchitecture.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Findex.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/query-safety.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Fquery-safety.mdx&astroContentModuleFlag=true")], -["src/content/docs/concepts/widgets.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fconcepts%2Fwidgets.mdx&astroContentModuleFlag=true")], +["src/content/docs/getting-started/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fgetting-started%2Findex.mdx&astroContentModuleFlag=true")], ["src/content/docs/getting-started/configuration.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fgetting-started%2Fconfiguration.mdx&astroContentModuleFlag=true")], ["src/content/docs/getting-started/installation.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fgetting-started%2Finstallation.mdx&astroContentModuleFlag=true")], -["src/content/docs/getting-started/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fgetting-started%2Findex.mdx&astroContentModuleFlag=true")], ["src/content/docs/getting-started/quick-start.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fgetting-started%2Fquick-start.mdx&astroContentModuleFlag=true")], -["src/content/docs/guides/connecting-databases.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fguides%2Fconnecting-databases.mdx&astroContentModuleFlag=true")], -["src/content/docs/guides/first-dashboard.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fguides%2Ffirst-dashboard.mdx&astroContentModuleFlag=true")], -["src/content/docs/guides/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fguides%2Findex.mdx&astroContentModuleFlag=true")], +["src/content/docs/authentication/api-keys.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fauthentication%2Fapi-keys.mdx&astroContentModuleFlag=true")], +["src/content/docs/authentication/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fauthentication%2Findex.mdx&astroContentModuleFlag=true")], +["src/content/docs/authentication/password-login.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fauthentication%2Fpassword-login.mdx&astroContentModuleFlag=true")], +["src/content/docs/authentication/roles.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fauthentication%2Froles.mdx&astroContentModuleFlag=true")], +["src/content/docs/authentication/sso.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fauthentication%2Fsso.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/contributing/code-style.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fcontributing%2Fcode-style.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/contributing/pr-workflow.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fcontributing%2Fpr-workflow.mdx&astroContentModuleFlag=true")], -["src/content/docs/guides/managing-users.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fguides%2Fmanaging-users.mdx&astroContentModuleFlag=true")], -["src/content/docs/developer/contributing/setup.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fcontributing%2Fsetup.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/contributing/testing.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fcontributing%2Ftesting.mdx&astroContentModuleFlag=true")], +["src/content/docs/developer/contributing/setup.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fcontributing%2Fsetup.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/extending/new-chart-plugin.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-chart-plugin.mdx&astroContentModuleFlag=true")], -["src/content/docs/developer/extending/new-connector-plugin.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-connector-plugin.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/extending/new-chart-type.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-chart-type.mdx&astroContentModuleFlag=true")], +["src/content/docs/developer/extending/new-connector-plugin.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-connector-plugin.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/extending/new-connector.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-connector.mdx&astroContentModuleFlag=true")], ["src/content/docs/developer/extending/new-parameter-type.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-parameter-type.mdx&astroContentModuleFlag=true")], -["src/content/docs/developer/extending/new-widget-type.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-widget-type.mdx&astroContentModuleFlag=true")]]); +["src/content/docs/developer/extending/new-widget-type.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fextending%2Fnew-widget-type.mdx&astroContentModuleFlag=true")], +["src/content/docs/developer/plugins/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fplugins%2Findex.mdx&astroContentModuleFlag=true")], +["src/content/docs/developer/plugins/mongodb-connector.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fdeveloper%2Fplugins%2Fmongodb-connector.mdx&astroContentModuleFlag=true")]]); \ No newline at end of file diff --git a/docs/.astro/content.d.ts b/docs/.astro/content.d.ts index 9b64b089..faf4105a 100644 --- a/docs/.astro/content.d.ts +++ b/docs/.astro/content.d.ts @@ -56,6 +56,10 @@ declare module 'astro:content' { collection: C; slug: E; }; + export type ReferenceLiveEntry = { + collection: C; + id: string; + }; /** @deprecated Use `getEntry` instead. */ export function getEntryBySlug< @@ -84,6 +88,13 @@ declare module 'astro:content' { filter?: (entry: CollectionEntry) => unknown, ): Promise[]>; + export function getLiveCollection( + collection: C, + filter?: LiveLoaderCollectionFilterType, + ): Promise< + import('astro').LiveDataCollectionResult, LiveLoaderErrorType> + >; + export function getEntry< C extends keyof ContentEntryMap, E extends ValidContentEntrySlug | (string & {}), @@ -120,6 +131,10 @@ declare module 'astro:content' { ? Promise | undefined : Promise : Promise | undefined>; + export function getLiveEntry( + collection: C, + filter: string | LiveLoaderEntryFilterType, + ): Promise, LiveLoaderErrorType>>; /** Resolve an array of entry references from the same collection */ export function getEntries( @@ -173,5 +188,33 @@ declare module 'astro:content' { type AnyEntryMap = ContentEntryMap & DataEntryMap; + type ExtractLoaderTypes = T extends import('astro/loaders').LiveLoader< + infer TData, + infer TEntryFilter, + infer TCollectionFilter, + infer TError + > + ? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError } + : { data: never; entryFilter: never; collectionFilter: never; error: never }; + type ExtractDataType = ExtractLoaderTypes['data']; + type ExtractEntryFilterType = ExtractLoaderTypes['entryFilter']; + type ExtractCollectionFilterType = ExtractLoaderTypes['collectionFilter']; + type ExtractErrorType = ExtractLoaderTypes['error']; + + type LiveLoaderDataType = + LiveContentConfig['collections'][C]['schema'] extends undefined + ? ExtractDataType + : import('astro/zod').infer< + Exclude + >; + type LiveLoaderEntryFilterType = + ExtractEntryFilterType; + type LiveLoaderCollectionFilterType = + ExtractCollectionFilterType; + type LiveLoaderErrorType = ExtractErrorType< + LiveContentConfig['collections'][C]['loader'] + >; + export type ContentConfig = typeof import("../src/content.config.js"); + export type LiveContentConfig = never; } diff --git a/docs/.astro/data-store.json b/docs/.astro/data-store.json new file mode 100644 index 00000000..3000b52e --- /dev/null +++ b/docs/.astro/data-store.json @@ -0,0 +1 @@ +[["Map",1,2,9,10],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.18.1","content-config-digest","2cafd64cc6413832","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"where\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":3001,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":false,\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"css-variables\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[null,null,null],\"rehypePlugins\":[null,[null,{\"themes\":[{\"name\":\"Night Owl No Italics\",\"type\":\"dark\",\"colors\":{\"focusBorder\":\"#122d42\",\"foreground\":\"#d6deeb\",\"disabledForeground\":\"#cccccc80\",\"descriptionForeground\":\"#d6deebb3\",\"errorForeground\":\"#ef5350\",\"icon.foreground\":\"#c5c5c5\",\"contrastActiveBorder\":null,\"contrastBorder\":\"#122d42\",\"textBlockQuote.background\":\"#7f7f7f1a\",\"textBlockQuote.border\":\"#007acc80\",\"textCodeBlock.background\":\"#4f4f4f\",\"textLink.activeForeground\":\"#3794ff\",\"textLink.foreground\":\"#3794ff\",\"textPreformat.foreground\":\"#d7ba7d\",\"textSeparator.foreground\":\"#ffffff2e\",\"editor.background\":\"#23262f\",\"editor.foreground\":\"#d6deeb\",\"editorLineNumber.foreground\":\"#4b6479\",\"editorLineNumber.activeForeground\":\"#c5e4fd\",\"editorActiveLineNumber.foreground\":\"#c6c6c6\",\"editor.selectionBackground\":\"#1d3b53\",\"editor.inactiveSelectionBackground\":\"#7e57c25a\",\"editor.selectionHighlightBackground\":\"#5f7e9779\",\"editorError.foreground\":\"#ef5350\",\"editorWarning.foreground\":\"#b39554\",\"editorInfo.foreground\":\"#3794ff\",\"editorHint.foreground\":\"#eeeeeeb2\",\"problemsErrorIcon.foreground\":\"#ef5350\",\"problemsWarningIcon.foreground\":\"#b39554\",\"problemsInfoIcon.foreground\":\"#3794ff\",\"editor.findMatchBackground\":\"#5f7e9779\",\"editor.findMatchHighlightBackground\":\"#1085bb5d\",\"editor.findRangeHighlightBackground\":\"#3a3d4166\",\"editorLink.activeForeground\":\"#4e94ce\",\"editorLightBulb.foreground\":\"#ffcc00\",\"editorLightBulbAutoFix.foreground\":\"#75beff\",\"diffEditor.insertedTextBackground\":\"#99b76d23\",\"diffEditor.insertedTextBorder\":\"#c5e47833\",\"diffEditor.removedTextBackground\":\"#ef535033\",\"diffEditor.removedTextBorder\":\"#ef53504d\",\"diffEditor.insertedLineBackground\":\"#9bb95533\",\"diffEditor.removedLineBackground\":\"#ff000033\",\"editorStickyScroll.background\":\"#011627\",\"editorStickyScrollHover.background\":\"#2a2d2e\",\"editorInlayHint.background\":\"#5f7e97cc\",\"editorInlayHint.foreground\":\"#ffffff\",\"editorInlayHint.typeBackground\":\"#5f7e97cc\",\"editorInlayHint.typeForeground\":\"#ffffff\",\"editorInlayHint.parameterBackground\":\"#5f7e97cc\",\"editorInlayHint.parameterForeground\":\"#ffffff\",\"editorPane.background\":\"#011627\",\"editorGroup.emptyBackground\":\"#011627\",\"editorGroup.focusedEmptyBorder\":null,\"editorGroupHeader.tabsBackground\":\"var(--sl-color-black)\",\"editorGroupHeader.tabsBorder\":\"color-mix(in srgb, var(--sl-color-gray-5), transparent 25%)\",\"editorGroupHeader.noTabsBackground\":\"#011627\",\"editorGroupHeader.border\":null,\"editorGroup.border\":\"#011627\",\"editorGroup.dropBackground\":\"#7e57c273\",\"editorGroup.dropIntoPromptForeground\":\"#d6deeb\",\"editorGroup.dropIntoPromptBackground\":\"#021320\",\"editorGroup.dropIntoPromptBorder\":null,\"sideBySideEditor.horizontalBorder\":\"#011627\",\"sideBySideEditor.verticalBorder\":\"#011627\",\"scrollbar.shadow\":\"#010b14\",\"scrollbarSlider.background\":\"#ffffff17\",\"scrollbarSlider.hoverBackground\":\"#ffffff40\",\"scrollbarSlider.activeBackground\":\"#084d8180\",\"panel.background\":\"#011627\",\"panel.border\":\"#5f7e97\",\"panelTitle.activeBorder\":\"#5f7e97\",\"panelTitle.activeForeground\":\"#ffffffcc\",\"panelTitle.inactiveForeground\":\"#d6deeb80\",\"panelSectionHeader.background\":\"#80808051\",\"terminal.background\":\"#011627\",\"widget.shadow\":\"#011627\",\"editorWidget.background\":\"#021320\",\"editorWidget.foreground\":\"#d6deeb\",\"editorWidget.border\":\"#5f7e97\",\"quickInput.background\":\"#021320\",\"quickInput.foreground\":\"#d6deeb\",\"quickInputTitle.background\":\"#ffffff1a\",\"pickerGroup.foreground\":\"#d1aaff\",\"pickerGroup.border\":\"#011627\",\"editor.hoverHighlightBackground\":\"#7e57c25a\",\"editorHoverWidget.background\":\"#011627\",\"editorHoverWidget.foreground\":\"#d6deeb\",\"editorHoverWidget.border\":\"#5f7e97\",\"editorHoverWidget.statusBarBackground\":\"#011a2f\",\"titleBar.activeBackground\":\"var(--sl-color-black)\",\"titleBar.activeForeground\":\"var(--sl-color-text)\",\"titleBar.inactiveBackground\":\"#010e1a\",\"titleBar.inactiveForeground\":\"#eeefff99\",\"titleBar.border\":\"color-mix(in srgb, var(--sl-color-gray-5), transparent 25%)\",\"toolbar.hoverBackground\":\"#5a5d5e50\",\"toolbar.activeBackground\":\"#63666750\",\"tab.activeBackground\":\"#0b2942\",\"tab.unfocusedActiveBackground\":\"#0b2942\",\"tab.inactiveBackground\":\"#01111d\",\"tab.unfocusedInactiveBackground\":\"#01111d\",\"tab.activeForeground\":\"var(--sl-color-text)\",\"tab.inactiveForeground\":\"#5f7e97\",\"tab.unfocusedActiveForeground\":\"#5f7e97\",\"tab.unfocusedInactiveForeground\":\"#5f7e97\",\"tab.hoverBackground\":null,\"tab.unfocusedHoverBackground\":null,\"tab.hoverForeground\":null,\"tab.unfocusedHoverForeground\":null,\"tab.border\":\"#272b3b\",\"tab.lastPinnedBorder\":\"#585858\",\"tab.activeBorder\":\"transparent\",\"tab.unfocusedActiveBorder\":\"#262a39\",\"tab.activeBorderTop\":\"var(--sl-color-accent-high)\",\"tab.unfocusedActiveBorderTop\":null,\"tab.hoverBorder\":null,\"tab.unfocusedHoverBorder\":null,\"tab.activeModifiedBorder\":\"#3399cc\",\"tab.inactiveModifiedBorder\":\"#3399cc80\",\"tab.unfocusedActiveModifiedBorder\":\"#3399cc80\",\"tab.unfocusedInactiveModifiedBorder\":\"#3399cc40\",\"badge.background\":\"#5f7e97\",\"badge.foreground\":\"#ffffff\",\"button.background\":\"#7e57c2cc\",\"button.foreground\":\"#ffffffcc\",\"button.border\":\"#122d42\",\"button.separator\":\"#ffffff52\",\"button.hoverBackground\":\"#7e57c2\",\"button.secondaryBackground\":\"#3a3d41\",\"button.secondaryForeground\":\"#ffffff\",\"button.secondaryHoverBackground\":\"#46494e\",\"dropdown.background\":\"#011627\",\"dropdown.foreground\":\"#ffffffcc\",\"dropdown.border\":\"#5f7e97\",\"list.activeSelectionBackground\":\"#234d708c\",\"list.activeSelectionForeground\":\"#ffffff\",\"tree.indentGuidesStroke\":\"#585858\",\"input.background\":\"#0b253a\",\"input.foreground\":\"#ffffffcc\",\"input.placeholderForeground\":\"#5f7e97\",\"inputOption.activeBorder\":\"#ffffffcc\",\"inputOption.hoverBackground\":\"#5a5d5e80\",\"inputOption.activeBackground\":\"#122d4266\",\"inputOption.activeForeground\":\"#ffffff\",\"inputValidation.infoBackground\":\"#00589ef2\",\"inputValidation.infoBorder\":\"#64b5f6\",\"inputValidation.warningBackground\":\"#675700f2\",\"inputValidation.warningBorder\":\"#ffca28\",\"inputValidation.errorBackground\":\"#ab0300f2\",\"inputValidation.errorBorder\":\"#ef5350\",\"keybindingLabel.background\":\"#8080802b\",\"keybindingLabel.foreground\":\"#cccccc\",\"keybindingLabel.border\":\"#33333399\",\"keybindingLabel.bottomBorder\":\"#44444499\",\"menu.foreground\":\"#ffffffcc\",\"menu.background\":\"#011627\",\"menu.selectionForeground\":\"#ffffff\",\"menu.selectionBackground\":\"#234d708c\",\"menu.separatorBackground\":\"#606060\",\"editor.snippetTabstopHighlightBackground\":\"#7c7c74c\",\"editor.snippetFinalTabstopHighlightBorder\":\"#525252\",\"terminal.ansiBlack\":\"#011627\",\"terminal.ansiRed\":\"#ef5350\",\"terminal.ansiGreen\":\"#22da6e\",\"terminal.ansiYellow\":\"#c5e478\",\"terminal.ansiBlue\":\"#82aaff\",\"terminal.ansiMagenta\":\"#c792ea\",\"terminal.ansiCyan\":\"#21c7a8\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiBrightBlack\":\"#575656\",\"terminal.ansiBrightRed\":\"#ef5350\",\"terminal.ansiBrightGreen\":\"#22da6e\",\"terminal.ansiBrightYellow\":\"#ffeb95\",\"terminal.ansiBrightBlue\":\"#82aaff\",\"terminal.ansiBrightMagenta\":\"#c792ea\",\"terminal.ansiBrightCyan\":\"#7fdbca\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"selection.background\":\"#4373c2\",\"input.border\":\"#5f7e97\",\"punctuation.definition.generic.begin.html\":\"#ef5350f2\",\"progress.background\":\"#7e57c2\",\"breadcrumb.foreground\":\"#a599e9\",\"breadcrumb.focusForeground\":\"#ffffff\",\"breadcrumb.activeSelectionForeground\":\"#ffffff\",\"breadcrumbPicker.background\":\"#001122\",\"list.invalidItemForeground\":\"#975f94\",\"list.dropBackground\":\"#011627\",\"list.focusBackground\":\"#010d18\",\"list.focusForeground\":\"#ffffff\",\"list.highlightForeground\":\"#ffffff\",\"list.hoverBackground\":\"#011627\",\"list.hoverForeground\":\"#ffffff\",\"list.inactiveSelectionBackground\":\"#0e293f\",\"list.inactiveSelectionForeground\":\"#5f7e97\",\"activityBar.background\":\"#011627\",\"activityBar.dropBackground\":\"#5f7e97\",\"activityBar.foreground\":\"#5f7e97\",\"activityBar.border\":\"#011627\",\"activityBarBadge.background\":\"#44596b\",\"activityBarBadge.foreground\":\"#ffffff\",\"sideBar.background\":\"#011627\",\"sideBar.foreground\":\"#89a4bb\",\"sideBar.border\":\"#011627\",\"sideBarTitle.foreground\":\"#5f7e97\",\"sideBarSectionHeader.background\":\"#011627\",\"sideBarSectionHeader.foreground\":\"#5f7e97\",\"editorCursor.foreground\":\"#80a4c2\",\"editor.wordHighlightBackground\":\"#f6bbe533\",\"editor.wordHighlightStrongBackground\":\"#e2a2f433\",\"editor.lineHighlightBackground\":\"#0003\",\"editor.rangeHighlightBackground\":\"#7e57c25a\",\"editorIndentGuide.background\":\"#5e81ce52\",\"editorIndentGuide.activeBackground\":\"#7e97ac\",\"editorRuler.foreground\":\"#5e81ce52\",\"editorCodeLens.foreground\":\"#5e82ceb4\",\"editorBracketMatch.background\":\"#5f7e974d\",\"editorOverviewRuler.currentContentForeground\":\"#7e57c2\",\"editorOverviewRuler.incomingContentForeground\":\"#7e57c2\",\"editorOverviewRuler.commonContentForeground\":\"#7e57c2\",\"editorGutter.background\":\"#011627\",\"editorGutter.modifiedBackground\":\"#e2b93d\",\"editorGutter.addedBackground\":\"#9ccc65\",\"editorGutter.deletedBackground\":\"#ef5350\",\"editorSuggestWidget.background\":\"#2c3043\",\"editorSuggestWidget.border\":\"#2b2f40\",\"editorSuggestWidget.foreground\":\"#d6deeb\",\"editorSuggestWidget.highlightForeground\":\"#ffffff\",\"editorSuggestWidget.selectedBackground\":\"#5f7e97\",\"debugExceptionWidget.background\":\"#011627\",\"debugExceptionWidget.border\":\"#5f7e97\",\"editorMarkerNavigation.background\":\"#0b2942\",\"editorMarkerNavigationError.background\":\"#ef5350\",\"editorMarkerNavigationWarning.background\":\"#ffca28\",\"peekView.border\":\"#5f7e97\",\"peekViewEditor.background\":\"#011627\",\"peekViewEditor.matchHighlightBackground\":\"#7e57c25a\",\"peekViewResult.background\":\"#011627\",\"peekViewResult.fileForeground\":\"#5f7e97\",\"peekViewResult.lineForeground\":\"#5f7e97\",\"peekViewResult.matchHighlightBackground\":\"#ffffffcc\",\"peekViewResult.selectionBackground\":\"#2e3250\",\"peekViewResult.selectionForeground\":\"#5f7e97\",\"peekViewTitle.background\":\"#011627\",\"peekViewTitleDescription.foreground\":\"#697098\",\"peekViewTitleLabel.foreground\":\"#5f7e97\",\"merge.currentHeaderBackground\":\"#5f7e97\",\"merge.incomingHeaderBackground\":\"#7e57c25a\",\"statusBar.background\":\"#011627\",\"statusBar.foreground\":\"#5f7e97\",\"statusBar.border\":\"#262a39\",\"statusBar.debuggingBackground\":\"#202431\",\"statusBar.debuggingBorder\":\"#1f2330\",\"statusBar.noFolderBackground\":\"#011627\",\"statusBar.noFolderBorder\":\"#25293a\",\"statusBarItem.activeBackground\":\"#202431\",\"statusBarItem.hoverBackground\":\"#202431\",\"statusBarItem.prominentBackground\":\"#202431\",\"statusBarItem.prominentHoverBackground\":\"#202431\",\"notifications.background\":\"#01111d\",\"notifications.border\":\"#262a39\",\"notificationCenter.border\":\"#262a39\",\"notificationToast.border\":\"#262a39\",\"notifications.foreground\":\"#ffffffcc\",\"notificationLink.foreground\":\"#80cbc4\",\"extensionButton.prominentForeground\":\"#ffffffcc\",\"extensionButton.prominentBackground\":\"#7e57c2cc\",\"extensionButton.prominentHoverBackground\":\"#7e57c2\",\"terminal.selectionBackground\":\"#1b90dd4d\",\"terminalCursor.background\":\"#234d70\",\"debugToolBar.background\":\"#011627\",\"welcomePage.buttonBackground\":\"#011627\",\"welcomePage.buttonHoverBackground\":\"#011627\",\"walkThrough.embeddedEditorBackground\":\"#011627\",\"gitDecoration.modifiedResourceForeground\":\"#a2bffc\",\"gitDecoration.deletedResourceForeground\":\"#ef535090\",\"gitDecoration.untrackedResourceForeground\":\"#c5e478ff\",\"gitDecoration.ignoredResourceForeground\":\"#395a75\",\"gitDecoration.conflictingResourceForeground\":\"#ffeb95cc\",\"source.elm\":\"#5f7e97\",\"string.quoted.single.js\":\"#ffffff\",\"meta.objectliteral.js\":\"#82aaff\"},\"fg\":\"#d6deeb\",\"bg\":\"#23262f\",\"semanticHighlighting\":false,\"settings\":[{\"name\":\"Changed\",\"scope\":[\"markup.changed\",\"meta.diff.header.git\",\"meta.diff.header.from-file\",\"meta.diff.header.to-file\"],\"settings\":{\"foreground\":\"#a2bffc\"}},{\"name\":\"Deleted\",\"scope\":[\"markup.deleted.diff\"],\"settings\":{\"foreground\":\"#f27775fe\"}},{\"name\":\"Inserted\",\"scope\":[\"markup.inserted.diff\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Global settings\",\"settings\":{\"background\":\"#011627\",\"foreground\":\"#d6deeb\"}},{\"name\":\"Comment\",\"scope\":[\"comment\"],\"settings\":{\"foreground\":\"#919f9f\",\"fontStyle\":\"\"}},{\"name\":\"String\",\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#ecc48d\"}},{\"name\":\"String Quoted\",\"scope\":[\"string.quoted\",\"variable.other.readwrite.js\"],\"settings\":{\"foreground\":\"#ecc48d\"}},{\"name\":\"Support Constant Math\",\"scope\":[\"support.constant.math\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Number\",\"scope\":[\"constant.numeric\",\"constant.character.numeric\"],\"settings\":{\"foreground\":\"#f78c6c\",\"fontStyle\":\"\"}},{\"name\":\"Built-in constant\",\"scope\":[\"constant.language\",\"punctuation.definition.constant\",\"variable.other.constant\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"User-defined constant\",\"scope\":[\"constant.character\",\"constant.other\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Constant Character Escape\",\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#f78c6c\"}},{\"name\":\"RegExp String\",\"scope\":[\"string.regexp\",\"string.regexp keyword.other\"],\"settings\":{\"foreground\":\"#5ca7e4\"}},{\"name\":\"Comma in functions\",\"scope\":[\"meta.function punctuation.separator.comma\"],\"settings\":{\"foreground\":\"#889fb2\"}},{\"name\":\"Variable\",\"scope\":[\"variable\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Keyword\",\"scope\":[\"punctuation.accessor\",\"keyword\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Storage\",\"scope\":[\"storage\",\"meta.var.expr\",\"meta.class meta.method.declaration meta.var.expr storage.type.js\",\"storage.type.property.js\",\"storage.type.property.ts\",\"storage.type.property.tsx\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Storage type\",\"scope\":[\"storage.type\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"Storage type\",\"scope\":[\"storage.type.function.arrow.js\"],\"settings\":{\"fontStyle\":\"\"}},{\"name\":\"Class name\",\"scope\":[\"entity.name.class\",\"meta.class entity.name.type.class\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"Inherited class\",\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Function name\",\"scope\":[\"entity.name.function\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Meta Tag\",\"scope\":[\"punctuation.definition.tag\",\"meta.tag\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"HTML Tag names\",\"scope\":[\"entity.name.tag\",\"meta.tag.other.html\",\"meta.tag.other.js\",\"meta.tag.other.tsx\",\"entity.name.tag.tsx\",\"entity.name.tag.js\",\"entity.name.tag\",\"meta.tag.js\",\"meta.tag.tsx\",\"meta.tag.html\"],\"settings\":{\"foreground\":\"#caece6\",\"fontStyle\":\"\"}},{\"name\":\"Tag attribute\",\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c5e478\"}},{\"name\":\"Entity Name Tag Custom\",\"scope\":[\"entity.name.tag.custom\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Library (function & constant)\",\"scope\":[\"support.function\",\"support.constant\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Support Constant Property Value meta\",\"scope\":[\"support.constant.meta.property-value\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Library class/type\",\"scope\":[\"support.type\",\"support.class\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Support Variable DOM\",\"scope\":[\"support.variable.dom\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Invalid\",\"scope\":[\"invalid\"],\"settings\":{\"background\":\"#ff2c83\",\"foreground\":\"#ffffff\"}},{\"name\":\"Invalid deprecated\",\"scope\":[\"invalid.deprecated\"],\"settings\":{\"foreground\":\"#ffffff\",\"background\":\"#d3423e\"}},{\"name\":\"Keyword Operator\",\"scope\":[\"keyword.operator\"],\"settings\":{\"foreground\":\"#7fdbca\",\"fontStyle\":\"\"}},{\"name\":\"Keyword Operator Relational\",\"scope\":[\"keyword.operator.relational\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Keyword Operator Assignment\",\"scope\":[\"keyword.operator.assignment\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"Keyword Operator Arithmetic\",\"scope\":[\"keyword.operator.arithmetic\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"Keyword Operator Bitwise\",\"scope\":[\"keyword.operator.bitwise\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"Keyword Operator Increment\",\"scope\":[\"keyword.operator.increment\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"Keyword Operator Ternary\",\"scope\":[\"keyword.operator.ternary\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"Double-Slashed Comment\",\"scope\":[\"comment.line.double-slash\"],\"settings\":{\"foreground\":\"#919f9f\"}},{\"name\":\"Object\",\"scope\":[\"object\"],\"settings\":{\"foreground\":\"#cdebf7\"}},{\"name\":\"Null\",\"scope\":[\"constant.language.null\"],\"settings\":{\"foreground\":\"#ff6a83\"}},{\"name\":\"Meta Brace\",\"scope\":[\"meta.brace\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"Meta Delimiter Period\",\"scope\":[\"meta.delimiter.period\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Punctuation Definition String\",\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#d9f5dd\"}},{\"name\":\"Punctuation Definition String Markdown\",\"scope\":[\"punctuation.definition.string.begin.markdown\"],\"settings\":{\"foreground\":\"#ff6a83\"}},{\"name\":\"Boolean\",\"scope\":[\"constant.language.boolean\"],\"settings\":{\"foreground\":\"#ff6a83\"}},{\"name\":\"Object Comma\",\"scope\":[\"object.comma\"],\"settings\":{\"foreground\":\"#ffffff\"}},{\"name\":\"Variable Parameter Function\",\"scope\":[\"variable.parameter.function\"],\"settings\":{\"foreground\":\"#7fdbca\",\"fontStyle\":\"\"}},{\"name\":\"Support Type Property Name & entity name tags\",\"scope\":[\"support.type.vendor.property-name\",\"support.constant.vendor.property-value\",\"support.type.property-name\",\"meta.property-list entity.name.tag\"],\"settings\":{\"foreground\":\"#80cbc4\",\"fontStyle\":\"\"}},{\"name\":\"Entity Name tag reference in stylesheets\",\"scope\":[\"meta.property-list entity.name.tag.reference\"],\"settings\":{\"foreground\":\"#57eaf1\"}},{\"name\":\"Constant Other Color RGB Value Punctuation Definition Constant\",\"scope\":[\"constant.other.color.rgb-value punctuation.definition.constant\"],\"settings\":{\"foreground\":\"#f78c6c\"}},{\"name\":\"Constant Other Color\",\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#ffeb95\"}},{\"name\":\"Keyword Other Unit\",\"scope\":[\"keyword.other.unit\"],\"settings\":{\"foreground\":\"#ffeb95\"}},{\"name\":\"Meta Selector\",\"scope\":[\"meta.selector\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Entity Other Attribute Name Id\",\"scope\":[\"entity.other.attribute-name.id\"],\"settings\":{\"foreground\":\"#fad430\"}},{\"name\":\"Meta Property Name\",\"scope\":[\"meta.property-name\"],\"settings\":{\"foreground\":\"#80cbc4\"}},{\"name\":\"Doctypes\",\"scope\":[\"entity.name.tag.doctype\",\"meta.tag.sgml.doctype\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Punctuation Definition Parameters\",\"scope\":[\"punctuation.definition.parameters\"],\"settings\":{\"foreground\":\"#d9f5dd\"}},{\"name\":\"Keyword Control Operator\",\"scope\":[\"keyword.control.operator\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Keyword Operator Logical\",\"scope\":[\"keyword.operator.logical\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Variable Instances\",\"scope\":[\"variable.instance\",\"variable.other.instance\",\"variable.readwrite.instance\",\"variable.other.readwrite.instance\",\"variable.other.property\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Variable Property Other object property\",\"scope\":[\"variable.other.object.property\"],\"settings\":{\"foreground\":\"#faf39f\",\"fontStyle\":\"\"}},{\"name\":\"Variable Property Other object\",\"scope\":[\"variable.other.object.js\"],\"settings\":{\"fontStyle\":\"\"}},{\"name\":\"Entity Name Function\",\"scope\":[\"entity.name.function\"],\"settings\":{\"foreground\":\"#82aaff\",\"fontStyle\":\"\"}},{\"name\":\"Keyword Operator Comparison, returns, imports, and Keyword Operator Ruby\",\"scope\":[\"keyword.control.conditional.js\",\"keyword.operator.comparison\",\"keyword.control.flow.js\",\"keyword.control.flow.ts\",\"keyword.control.flow.tsx\",\"keyword.control.ruby\",\"keyword.control.def.ruby\",\"keyword.control.loop.js\",\"keyword.control.loop.ts\",\"keyword.control.import.js\",\"keyword.control.import.ts\",\"keyword.control.import.tsx\",\"keyword.control.from.js\",\"keyword.control.from.ts\",\"keyword.control.from.tsx\",\"keyword.control.conditional.js\",\"keyword.control.conditional.ts\",\"keyword.control.switch.js\",\"keyword.control.switch.ts\",\"keyword.operator.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.instanceof.tsx\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords\",\"scope\":[\"support.constant\",\"keyword.other.special-method\",\"keyword.other.new\",\"keyword.other.debugger\",\"keyword.control\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Support Function\",\"scope\":[\"support.function\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Invalid Broken\",\"scope\":[\"invalid.broken\"],\"settings\":{\"foreground\":\"#989da0\",\"background\":\"#F78C6C\"}},{\"name\":\"Invalid Unimplemented\",\"scope\":[\"invalid.unimplemented\"],\"settings\":{\"background\":\"#8BD649\",\"foreground\":\"#ffffff\"}},{\"name\":\"Invalid Illegal\",\"scope\":[\"invalid.illegal\"],\"settings\":{\"foreground\":\"#ffffff\",\"background\":\"#ec5f67\"}},{\"name\":\"Language Variable\",\"scope\":[\"variable.language\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Support Variable Property\",\"scope\":[\"support.variable.property\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Variable Function\",\"scope\":[\"variable.function\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Variable Interpolation\",\"scope\":[\"variable.interpolation\"],\"settings\":{\"foreground\":\"#ef787f\"}},{\"name\":\"Meta Function Call\",\"scope\":[\"meta.function-call\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Punctuation Section Embedded\",\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#e2817f\"}},{\"name\":\"Punctuation Tweaks\",\"scope\":[\"punctuation.terminator.expression\",\"punctuation.definition.arguments\",\"punctuation.definition.array\",\"punctuation.section.array\",\"meta.array\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"More Punctuation Tweaks\",\"scope\":[\"punctuation.definition.list.begin\",\"punctuation.definition.list.end\",\"punctuation.separator.arguments\",\"punctuation.definition.list\"],\"settings\":{\"foreground\":\"#d9f5dd\"}},{\"name\":\"Template Strings\",\"scope\":[\"string.template meta.template.expression\"],\"settings\":{\"foreground\":\"#e2817f\"}},{\"name\":\"Backtics(``) in Template Strings\",\"scope\":[\"string.template punctuation.definition.string\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"Italics\",\"scope\":[\"italic\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"italic\"}},{\"name\":\"Bold\",\"scope\":[\"bold\"],\"settings\":{\"foreground\":\"#c5e478\",\"fontStyle\":\"bold\"}},{\"name\":\"Quote\",\"scope\":[\"quote\"],\"settings\":{\"foreground\":\"#969bb7\",\"fontStyle\":\"\"}},{\"name\":\"Raw Code\",\"scope\":[\"raw\"],\"settings\":{\"foreground\":\"#80cbc4\"}},{\"name\":\"CoffeScript Variable Assignment\",\"scope\":[\"variable.assignment.coffee\"],\"settings\":{\"foreground\":\"#31e1eb\"}},{\"name\":\"CoffeScript Parameter Function\",\"scope\":[\"variable.parameter.function.coffee\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"CoffeeScript Assignments\",\"scope\":[\"variable.assignment.coffee\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"C# Readwrite Variables\",\"scope\":[\"variable.other.readwrite.cs\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"C# Classes & Storage types\",\"scope\":[\"entity.name.type.class.cs\",\"storage.type.cs\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"C# Namespaces\",\"scope\":[\"entity.name.type.namespace.cs\"],\"settings\":{\"foreground\":\"#b2ccd6\"}},{\"name\":\"C# Unquoted String Zone\",\"scope\":[\"string.unquoted.preprocessor.message.cs\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"C# Region\",\"scope\":[\"punctuation.separator.hash.cs\",\"keyword.preprocessor.region.cs\",\"keyword.preprocessor.endregion.cs\"],\"settings\":{\"foreground\":\"#ffcb8b\",\"fontStyle\":\"bold\"}},{\"name\":\"C# Other Variables\",\"scope\":[\"variable.other.object.cs\"],\"settings\":{\"foreground\":\"#b2ccd6\"}},{\"name\":\"C# Enum\",\"scope\":[\"entity.name.type.enum.cs\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Dart String\",\"scope\":[\"string.interpolated.single.dart\",\"string.interpolated.double.dart\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"Dart Class\",\"scope\":[\"support.class.dart\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"Tag names in Stylesheets\",\"scope\":[\"entity.name.tag.css\",\"entity.name.tag.less\",\"entity.name.tag.custom.css\",\"support.constant.property-value.css\"],\"settings\":{\"foreground\":\"#ff6d6d\",\"fontStyle\":\"\"}},{\"name\":\"Wildcard(*) selector in Stylesheets\",\"scope\":[\"entity.name.tag.wildcard.css\",\"entity.name.tag.wildcard.less\",\"entity.name.tag.wildcard.scss\",\"entity.name.tag.wildcard.sass\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"CSS Keyword Other Unit\",\"scope\":[\"keyword.other.unit.css\"],\"settings\":{\"foreground\":\"#ffeb95\"}},{\"name\":\"Attribute Name for CSS\",\"scope\":[\"meta.attribute-selector.css entity.other.attribute-name.attribute\",\"variable.other.readwrite.js\"],\"settings\":{\"foreground\":\"#f78c6c\"}},{\"name\":\"Elixir Classes\",\"scope\":[\"source.elixir support.type.elixir\",\"source.elixir meta.module.elixir entity.name.class.elixir\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Elixir Functions\",\"scope\":[\"source.elixir entity.name.function\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Elixir Constants\",\"scope\":[\"source.elixir constant.other.symbol.elixir\",\"source.elixir constant.other.keywords.elixir\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Elixir String Punctuations\",\"scope\":[\"source.elixir punctuation.definition.string\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Elixir\",\"scope\":[\"source.elixir variable.other.readwrite.module.elixir\",\"source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Elixir Binary Punctuations\",\"scope\":[\"source.elixir .punctuation.binary.elixir\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"Closure Constant Keyword\",\"scope\":[\"constant.keyword.clojure\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Go Function Calls\",\"scope\":[\"source.go meta.function-call.go\"],\"settings\":{\"foreground\":\"#dddddd\"}},{\"name\":\"Go Keywords\",\"scope\":[\"source.go keyword.package.go\",\"source.go keyword.import.go\",\"source.go keyword.function.go\",\"source.go keyword.type.go\",\"source.go keyword.struct.go\",\"source.go keyword.interface.go\",\"source.go keyword.const.go\",\"source.go keyword.var.go\",\"source.go keyword.map.go\",\"source.go keyword.channel.go\",\"source.go keyword.control.go\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"Go Constants e.g. nil, string format (%s, %d, etc.)\",\"scope\":[\"source.go constant.language.go\",\"source.go constant.other.placeholder.go\"],\"settings\":{\"foreground\":\"#ff6a83\"}},{\"name\":\"C++ Functions\",\"scope\":[\"entity.name.function.preprocessor.cpp\",\"entity.scope.name.cpp\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"C++ Meta Namespace\",\"scope\":[\"meta.namespace-block.cpp\"],\"settings\":{\"foreground\":\"#e0dec6\"}},{\"name\":\"C++ Language Primitive Storage\",\"scope\":[\"storage.type.language.primitive.cpp\"],\"settings\":{\"foreground\":\"#ff6a83\"}},{\"name\":\"C++ Preprocessor Macro\",\"scope\":[\"meta.preprocessor.macro.cpp\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"C++ Variable Parameter\",\"scope\":[\"variable.parameter\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"Powershell Variables\",\"scope\":[\"variable.other.readwrite.powershell\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Powershell Function\",\"scope\":[\"support.function.powershell\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"ID Attribute Name in HTML\",\"scope\":[\"entity.other.attribute-name.id.html\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"HTML Punctuation Definition Tag\",\"scope\":[\"punctuation.definition.tag.html\"],\"settings\":{\"foreground\":\"#6ae9f0\"}},{\"name\":\"HTML Doctype\",\"scope\":[\"meta.tag.sgml.doctype.html\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"\"}},{\"name\":\"JavaScript Classes\",\"scope\":[\"meta.class entity.name.type.class.js\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"JavaScript Method Declaration e.g. `constructor`\",\"scope\":[\"meta.method.declaration storage.type.js\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"JavaScript Terminator\",\"scope\":[\"terminator.js\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"JavaScript Meta Punctuation Definition\",\"scope\":[\"meta.js punctuation.definition.js\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"Entity Names in Code Documentations\",\"scope\":[\"entity.name.type.instance.jsdoc\",\"entity.name.type.instance.phpdoc\"],\"settings\":{\"foreground\":\"#889fb2\"}},{\"name\":\"Other Variables in Code Documentations\",\"scope\":[\"variable.other.jsdoc\",\"variable.other.phpdoc\"],\"settings\":{\"foreground\":\"#78ccf0\"}},{\"name\":\"JavaScript module imports and exports\",\"scope\":[\"variable.other.meta.import.js\",\"meta.import.js variable.other\",\"variable.other.meta.export.js\",\"meta.export.js variable.other\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"JavaScript Variable Parameter Function\",\"scope\":[\"variable.parameter.function.js\"],\"settings\":{\"foreground\":\"#8b96ea\"}},{\"name\":\"JavaScript[React] Variable Other Object\",\"scope\":[\"variable.other.object.js\",\"variable.other.object.jsx\",\"variable.object.property.js\",\"variable.object.property.jsx\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"JavaScript Variables\",\"scope\":[\"variable.js\",\"variable.other.js\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"JavaScript Entity Name Type\",\"scope\":[\"entity.name.type.js\",\"entity.name.type.module.js\"],\"settings\":{\"foreground\":\"#ffcb8b\",\"fontStyle\":\"\"}},{\"name\":\"JavaScript Support Classes\",\"scope\":[\"support.class.js\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"JSON Property Names\",\"scope\":[\"support.type.property-name.json\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"JSON Support Constants\",\"scope\":[\"support.constant.json\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"JSON Property values (string)\",\"scope\":[\"meta.structure.dictionary.value.json string.quoted.double\"],\"settings\":{\"foreground\":\"#c789d6\"}},{\"name\":\"Strings in JSON values\",\"scope\":[\"string.quoted.double.json punctuation.definition.string.json\"],\"settings\":{\"foreground\":\"#80cbc4\"}},{\"name\":\"Specific JSON Property values like null\",\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value constant.language\"],\"settings\":{\"foreground\":\"#ff6a83\"}},{\"name\":\"JavaScript Other Variable\",\"scope\":[\"variable.other.object.js\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Ruby Variables\",\"scope\":[\"variable.other.ruby\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"Ruby Class\",\"scope\":[\"entity.name.type.class.ruby\"],\"settings\":{\"foreground\":\"#ecc48d\"}},{\"name\":\"Ruby Hashkeys\",\"scope\":[\"constant.language.symbol.hashkey.ruby\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"LESS Tag names\",\"scope\":[\"entity.name.tag.less\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"LESS Keyword Other Unit\",\"scope\":[\"keyword.other.unit.css\"],\"settings\":{\"foreground\":\"#ffeb95\"}},{\"name\":\"Attribute Name for LESS\",\"scope\":[\"meta.attribute-selector.less entity.other.attribute-name.attribute\"],\"settings\":{\"foreground\":\"#f78c6c\"}},{\"name\":\"Markdown Headings\",\"scope\":[\"markup.heading.markdown\",\"markup.heading.setext.1.markdown\",\"markup.heading.setext.2.markdown\"],\"settings\":{\"foreground\":\"#82b1ff\"}},{\"name\":\"Markdown Italics\",\"scope\":[\"markup.italic.markdown\"],\"settings\":{\"foreground\":\"#c792ea\",\"fontStyle\":\"italic\"}},{\"name\":\"Markdown Bold\",\"scope\":[\"markup.bold.markdown\"],\"settings\":{\"foreground\":\"#c5e478\",\"fontStyle\":\"bold\"}},{\"name\":\"Markdown Quote + others\",\"scope\":[\"markup.quote.markdown\"],\"settings\":{\"foreground\":\"#969bb7\",\"fontStyle\":\"\"}},{\"name\":\"Markdown Raw Code + others\",\"scope\":[\"markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#80cbc4\"}},{\"name\":\"Markdown Links\",\"scope\":[\"markup.underline.link.markdown\",\"markup.underline.link.image.markdown\"],\"settings\":{\"foreground\":\"#ff869a\",\"fontStyle\":\"underline\"}},{\"name\":\"Markdown Link Title and Description\",\"scope\":[\"string.other.link.title.markdown\",\"string.other.link.description.markdown\"],\"settings\":{\"foreground\":\"#d6deeb\",\"fontStyle\":\"underline\"}},{\"name\":\"Markdown Punctuation\",\"scope\":[\"punctuation.definition.string.markdown\",\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"meta.link.inline.markdown punctuation.definition.string\"],\"settings\":{\"foreground\":\"#82b1ff\"}},{\"name\":\"Markdown MetaData Punctuation\",\"scope\":[\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"Markdown List Punctuation\",\"scope\":[\"beginning.punctuation.definition.list.markdown\"],\"settings\":{\"foreground\":\"#82b1ff\"}},{\"name\":\"Markdown Inline Raw String\",\"scope\":[\"markup.inline.raw.string.markdown\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"PHP Variables\",\"scope\":[\"variable.other.php\"],\"settings\":{\"foreground\":\"#bec5d4\"}},{\"name\":\"Support Classes in PHP\",\"scope\":[\"support.class.php\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"Punctuations in PHP function calls\",\"scope\":[\"meta.function-call.php punctuation\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"PHP Global Variables\",\"scope\":[\"variable.other.global.php\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Declaration Punctuation in PHP Global Variables\",\"scope\":[\"variable.other.global.php punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Language Constants in Python\",\"scope\":[\"constant.language.python\"],\"settings\":{\"foreground\":\"#ff6a83\"}},{\"name\":\"Python Function Parameter and Arguments\",\"scope\":[\"variable.parameter.function.python\",\"meta.function-call.arguments.python\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Python Function Call\",\"scope\":[\"meta.function-call.python\",\"meta.function-call.generic.python\"],\"settings\":{\"foreground\":\"#b2ccd6\"}},{\"name\":\"Punctuations in Python\",\"scope\":[\"punctuation.python\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"Decorator Functions in Python\",\"scope\":[\"entity.name.function.decorator.python\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Python Language Variable\",\"scope\":[\"source.python variable.language.special\"],\"settings\":{\"foreground\":\"#8eace3\"}},{\"name\":\"Python import control keyword\",\"scope\":[\"keyword.control\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"SCSS Variable\",\"scope\":[\"variable.scss\",\"variable.sass\",\"variable.parameter.url.scss\",\"variable.parameter.url.sass\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"name\":\"Variables in SASS At-Rules\",\"scope\":[\"source.css.scss meta.at-rule variable\",\"source.css.sass meta.at-rule variable\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"Variables in SASS At-Rules\",\"scope\":[\"source.css.scss meta.at-rule variable\",\"source.css.sass meta.at-rule variable\"],\"settings\":{\"foreground\":\"#bec5d4\"}},{\"name\":\"Attribute Name for SASS\",\"scope\":[\"meta.attribute-selector.scss entity.other.attribute-name.attribute\",\"meta.attribute-selector.sass entity.other.attribute-name.attribute\"],\"settings\":{\"foreground\":\"#f78c6c\"}},{\"name\":\"Tag names in SASS\",\"scope\":[\"entity.name.tag.scss\",\"entity.name.tag.sass\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"SASS Keyword Other Unit\",\"scope\":[\"keyword.other.unit.scss\",\"keyword.other.unit.sass\"],\"settings\":{\"foreground\":\"#ffeb95\"}},{\"name\":\"TypeScript[React] Variables and Object Properties\",\"scope\":[\"variable.other.readwrite.alias.ts\",\"variable.other.readwrite.alias.tsx\",\"variable.other.readwrite.ts\",\"variable.other.readwrite.tsx\",\"variable.other.object.ts\",\"variable.other.object.tsx\",\"variable.object.property.ts\",\"variable.object.property.tsx\",\"variable.other.ts\",\"variable.other.tsx\",\"variable.tsx\",\"variable.ts\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"TypeScript[React] Entity Name Types\",\"scope\":[\"entity.name.type.ts\",\"entity.name.type.tsx\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"TypeScript[React] Node Classes\",\"scope\":[\"support.class.node.ts\",\"support.class.node.tsx\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"TypeScript[React] Entity Name Types as Parameters\",\"scope\":[\"meta.type.parameters.ts entity.name.type\",\"meta.type.parameters.tsx entity.name.type\"],\"settings\":{\"foreground\":\"#889fb2\"}},{\"name\":\"TypeScript[React] Import/Export Punctuations\",\"scope\":[\"meta.import.ts punctuation.definition.block\",\"meta.import.tsx punctuation.definition.block\",\"meta.export.ts punctuation.definition.block\",\"meta.export.tsx punctuation.definition.block\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"TypeScript[React] Punctuation Decorators\",\"scope\":[\"meta.decorator punctuation.decorator.ts\",\"meta.decorator punctuation.decorator.tsx\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"TypeScript[React] Punctuation Decorators\",\"scope\":[\"meta.tag.js meta.jsx.children.tsx\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"YAML Entity Name Tags\",\"scope\":[\"entity.name.tag.yaml\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"name\":\"JavaScript Variable Other ReadWrite\",\"scope\":[\"variable.other.readwrite.js\",\"variable.parameter\"],\"settings\":{\"foreground\":\"#d7dbe0\"}},{\"name\":\"Support Class Component\",\"scope\":[\"support.class.component.js\",\"support.class.component.tsx\"],\"settings\":{\"foreground\":\"#f78c6c\",\"fontStyle\":\"\"}},{\"name\":\"Text nested in React tags\",\"scope\":[\"meta.jsx.children\",\"meta.jsx.children.js\",\"meta.jsx.children.tsx\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"name\":\"TypeScript Classes\",\"scope\":[\"meta.class entity.name.type.class.tsx\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"TypeScript Entity Name Type\",\"scope\":[\"entity.name.type.tsx\",\"entity.name.type.module.tsx\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"name\":\"TypeScript Class Variable Keyword\",\"scope\":[\"meta.class.ts meta.var.expr.ts storage.type.ts\",\"meta.class.tsx meta.var.expr.tsx storage.type.tsx\"],\"settings\":{\"foreground\":\"#c792ea\"}},{\"name\":\"TypeScript Method Declaration e.g. `constructor`\",\"scope\":[\"meta.method.declaration storage.type.ts\",\"meta.method.declaration storage.type.tsx\"],\"settings\":{\"foreground\":\"#82aaff\"}},{\"name\":\"normalize font style of certain components\",\"scope\":[\"meta.property-list.css meta.property-value.css variable.other.less\",\"meta.property-list.scss variable.scss\",\"meta.property-list.sass variable.sass\",\"meta.brace\",\"keyword.operator.operator\",\"keyword.operator.or.regexp\",\"keyword.operator.expression.in\",\"keyword.operator.relational\",\"keyword.operator.assignment\",\"keyword.operator.comparison\",\"keyword.operator.type\",\"keyword.operator\",\"keyword\",\"punctuation.definintion.string\",\"punctuation\",\"variable.other.readwrite.js\",\"storage.type\",\"source.css\",\"string.quoted\"],\"settings\":{\"fontStyle\":\"\"}}],\"styleOverrides\":{\"frames\":{\"editorBackground\":\"var(--sl-color-gray-6)\",\"terminalBackground\":\"var(--sl-color-gray-6)\",\"editorActiveTabBackground\":\"var(--sl-color-gray-6)\",\"terminalTitlebarDotsForeground\":\"color-mix(in srgb, var(--sl-color-gray-5), transparent 25%)\",\"terminalTitlebarDotsOpacity\":\"0.75\",\"inlineButtonForeground\":\"var(--sl-color-text)\",\"frameBoxShadowCssValue\":\"none\"},\"textMarkers\":{\"markBackground\":\"#ffffff17\",\"markBorderColor\":\"#ffffff40\"}}},{\"name\":\"Night Owl Light\",\"type\":\"light\",\"colors\":{\"focusBorder\":\"#93a1a1\",\"foreground\":\"#403f53\",\"disabledForeground\":\"#61616180\",\"descriptionForeground\":\"#403f53\",\"errorForeground\":\"#403f53\",\"icon.foreground\":\"#424242\",\"contrastActiveBorder\":null,\"contrastBorder\":null,\"textBlockQuote.background\":\"#7f7f7f1a\",\"textBlockQuote.border\":\"#007acc80\",\"textCodeBlock.background\":\"#dcdcdc66\",\"textLink.activeForeground\":\"#006ab1\",\"textLink.foreground\":\"#006ab1\",\"textPreformat.foreground\":\"#a31515\",\"textSeparator.foreground\":\"#0000002e\",\"editor.background\":\"#f6f7f9\",\"editor.foreground\":\"#403f53\",\"editorLineNumber.foreground\":\"#90a7b2\",\"editorLineNumber.activeForeground\":\"#403f53\",\"editorActiveLineNumber.foreground\":\"#0b216f\",\"editor.selectionBackground\":\"#e0e0e0\",\"editor.inactiveSelectionBackground\":\"#e0e0e080\",\"editor.selectionHighlightBackground\":\"#339cec33\",\"editorError.foreground\":\"#e64d49\",\"editorWarning.foreground\":\"#daaa01\",\"editorInfo.foreground\":\"#1a85ff\",\"editorHint.foreground\":\"#6c6c6c\",\"problemsErrorIcon.foreground\":\"#e64d49\",\"problemsWarningIcon.foreground\":\"#daaa01\",\"problemsInfoIcon.foreground\":\"#1a85ff\",\"editor.findMatchBackground\":\"#93a1a16c\",\"editor.findMatchHighlightBackground\":\"#93a1a16c\",\"editor.findRangeHighlightBackground\":\"#7497a633\",\"editorLink.activeForeground\":\"#0000ff\",\"editorLightBulb.foreground\":\"#ddb100\",\"editorLightBulbAutoFix.foreground\":\"#007acc\",\"diffEditor.insertedTextBackground\":\"#9ccc2c40\",\"diffEditor.insertedTextBorder\":null,\"diffEditor.removedTextBackground\":\"#ff000033\",\"diffEditor.removedTextBorder\":null,\"diffEditor.insertedLineBackground\":\"#9bb95533\",\"diffEditor.removedLineBackground\":\"#ff000033\",\"editorStickyScroll.background\":\"#fbfbfb\",\"editorStickyScrollHover.background\":\"#f0f0f0\",\"editorInlayHint.background\":\"#2aa29899\",\"editorInlayHint.foreground\":\"#f0f0f0\",\"editorInlayHint.typeBackground\":\"#2aa29899\",\"editorInlayHint.typeForeground\":\"#f0f0f0\",\"editorInlayHint.parameterBackground\":\"#2aa29899\",\"editorInlayHint.parameterForeground\":\"#f0f0f0\",\"editorPane.background\":\"#fbfbfb\",\"editorGroup.emptyBackground\":null,\"editorGroup.focusedEmptyBorder\":null,\"editorGroupHeader.tabsBackground\":\"var(--sl-color-gray-6)\",\"editorGroupHeader.tabsBorder\":\"color-mix(in srgb, var(--sl-color-gray-5), transparent 25%)\",\"editorGroupHeader.noTabsBackground\":\"#f0f0f0\",\"editorGroupHeader.border\":null,\"editorGroup.border\":\"#f0f0f0\",\"editorGroup.dropBackground\":\"#2677cb2d\",\"editorGroup.dropIntoPromptForeground\":\"#403f53\",\"editorGroup.dropIntoPromptBackground\":\"#f0f0f0\",\"editorGroup.dropIntoPromptBorder\":null,\"sideBySideEditor.horizontalBorder\":\"#f0f0f0\",\"sideBySideEditor.verticalBorder\":\"#f0f0f0\",\"scrollbar.shadow\":\"#cccccc\",\"scrollbarSlider.background\":\"#0000001a\",\"scrollbarSlider.hoverBackground\":\"#00000055\",\"scrollbarSlider.activeBackground\":\"#00000099\",\"panel.background\":\"#f0f0f0\",\"panel.border\":\"#d9d9d9\",\"panelTitle.activeBorder\":\"#424242\",\"panelTitle.activeForeground\":\"#424242\",\"panelTitle.inactiveForeground\":\"#424242bf\",\"panelSectionHeader.background\":\"#80808051\",\"terminal.background\":\"#f6f6f6\",\"widget.shadow\":\"#d9d9d9\",\"editorWidget.background\":\"#f0f0f0\",\"editorWidget.foreground\":\"#403f53\",\"editorWidget.border\":\"#d9d9d9\",\"quickInput.background\":\"#f0f0f0\",\"quickInput.foreground\":\"#403f53\",\"quickInputTitle.background\":\"#0000000f\",\"pickerGroup.foreground\":\"#403f53\",\"pickerGroup.border\":\"#d9d9d9\",\"editor.hoverHighlightBackground\":\"#339cec33\",\"editorHoverWidget.background\":\"#f0f0f0\",\"editorHoverWidget.foreground\":\"#403f53\",\"editorHoverWidget.border\":\"#d9d9d9\",\"editorHoverWidget.statusBarBackground\":\"#e4e4e4\",\"titleBar.activeBackground\":\"var(--sl-color-gray-6)\",\"titleBar.activeForeground\":\"var(--sl-color-text)\",\"titleBar.inactiveBackground\":\"#f0f0f099\",\"titleBar.inactiveForeground\":\"#33333399\",\"titleBar.border\":\"color-mix(in srgb, var(--sl-color-gray-5), transparent 25%)\",\"toolbar.hoverBackground\":\"#b8b8b850\",\"toolbar.activeBackground\":\"#a6a6a650\",\"tab.activeBackground\":\"#f6f6f6\",\"tab.unfocusedActiveBackground\":\"#f6f6f6\",\"tab.inactiveBackground\":\"#f0f0f0\",\"tab.unfocusedInactiveBackground\":\"#f0f0f0\",\"tab.activeForeground\":\"var(--sl-color-text)\",\"tab.inactiveForeground\":\"#403f53\",\"tab.unfocusedActiveForeground\":\"#403f53b3\",\"tab.unfocusedInactiveForeground\":\"#403f5380\",\"tab.hoverBackground\":null,\"tab.unfocusedHoverBackground\":null,\"tab.hoverForeground\":null,\"tab.unfocusedHoverForeground\":null,\"tab.border\":\"#f0f0f0\",\"tab.lastPinnedBorder\":\"#a9a9a9\",\"tab.activeBorder\":\"transparent\",\"tab.unfocusedActiveBorder\":null,\"tab.activeBorderTop\":\"var(--sl-color-accent)\",\"tab.unfocusedActiveBorderTop\":null,\"tab.hoverBorder\":null,\"tab.unfocusedHoverBorder\":null,\"tab.activeModifiedBorder\":\"#2aa298\",\"tab.inactiveModifiedBorder\":\"#93a1a1\",\"tab.unfocusedActiveModifiedBorder\":\"#93a1a1\",\"tab.unfocusedInactiveModifiedBorder\":\"#93a1a1\",\"badge.background\":\"#2aa298\",\"badge.foreground\":\"#f0f0f0\",\"button.background\":\"#2aa298\",\"button.foreground\":\"#f0f0f0\",\"button.border\":null,\"button.separator\":\"#f0f0f066\",\"button.hoverBackground\":\"#22827a\",\"button.secondaryBackground\":\"#5f6a79\",\"button.secondaryForeground\":\"#ffffff\",\"button.secondaryHoverBackground\":\"#4c5561\",\"dropdown.background\":\"#f0f0f0\",\"dropdown.foreground\":\"#403f53\",\"dropdown.border\":\"#d9d9d9\",\"list.activeSelectionBackground\":\"#d3e8f8\",\"list.activeSelectionForeground\":\"#403f53\",\"tree.indentGuidesStroke\":\"#a9a9a9\",\"input.background\":\"#f0f0f0\",\"input.foreground\":\"#403f53\",\"input.placeholderForeground\":\"#93a1a1\",\"inputOption.activeBorder\":\"#2aa298\",\"inputOption.hoverBackground\":\"#b8b8b850\",\"inputOption.activeBackground\":\"#93a1a133\",\"inputOption.activeForeground\":\"#000000\",\"inputValidation.infoBackground\":\"#f0f0f0\",\"inputValidation.infoBorder\":\"#d0d0d0\",\"inputValidation.warningBackground\":\"#daaa01\",\"inputValidation.warningBorder\":\"#e0af02\",\"inputValidation.errorBackground\":\"#f76e6e\",\"inputValidation.errorBorder\":\"#de3d3b\",\"keybindingLabel.background\":\"#dddddd66\",\"keybindingLabel.foreground\":\"#555555\",\"keybindingLabel.border\":\"#cccccc66\",\"keybindingLabel.bottomBorder\":\"#bbbbbb66\",\"menu.foreground\":\"#403f53\",\"menu.background\":\"#f0f0f0\",\"menu.selectionForeground\":\"#403f53\",\"menu.selectionBackground\":\"#d3e8f8\",\"menu.separatorBackground\":\"#d4d4d4\",\"editor.snippetTabstopHighlightBackground\":\"#0a326433\",\"editor.snippetFinalTabstopHighlightBorder\":\"#0a326480\",\"terminal.ansiBlack\":\"#403f53\",\"terminal.ansiRed\":\"#de3d3b\",\"terminal.ansiGreen\":\"#08916a\",\"terminal.ansiYellow\":\"#e0af02\",\"terminal.ansiBlue\":\"#288ed7\",\"terminal.ansiMagenta\":\"#d6438a\",\"terminal.ansiCyan\":\"#2aa298\",\"terminal.ansiWhite\":\"#f0f0f0\",\"terminal.ansiBrightBlack\":\"#403f53\",\"terminal.ansiBrightRed\":\"#de3d3b\",\"terminal.ansiBrightGreen\":\"#08916a\",\"terminal.ansiBrightYellow\":\"#daaa01\",\"terminal.ansiBrightBlue\":\"#288ed7\",\"terminal.ansiBrightMagenta\":\"#d6438a\",\"terminal.ansiBrightCyan\":\"#2aa298\",\"terminal.ansiBrightWhite\":\"#f0f0f0\",\"selection.background\":\"#7a8181ad\",\"notifications.background\":\"#f0f0f0\",\"notifications.foreground\":\"#403f53\",\"notificationLink.foreground\":\"#994cc3\",\"notifications.border\":\"#cccccc\",\"notificationCenter.border\":\"#cccccc\",\"notificationToast.border\":\"#cccccc\",\"notificationCenterHeader.foreground\":\"#403f53\",\"notificationCenterHeader.background\":\"#f0f0f0\",\"input.border\":\"#d9d9d9\",\"progressBar.background\":\"#2aa298\",\"list.inactiveSelectionBackground\":\"#e0e7ea\",\"list.inactiveSelectionForeground\":\"#403f53\",\"list.focusBackground\":\"#d3e8f8\",\"list.hoverBackground\":\"#d3e8f8\",\"list.focusForeground\":\"#403f53\",\"list.hoverForeground\":\"#403f53\",\"list.highlightForeground\":\"#403f53\",\"list.errorForeground\":\"#e64d49\",\"list.warningForeground\":\"#daaa01\",\"activityBar.background\":\"#f0f0f0\",\"activityBar.foreground\":\"#403f53\",\"activityBar.dropBackground\":\"#d0d0d0\",\"activityBarBadge.background\":\"#403f53\",\"activityBarBadge.foreground\":\"#f0f0f0\",\"activityBar.border\":\"#f0f0f0\",\"sideBar.background\":\"#f0f0f0\",\"sideBar.foreground\":\"#403f53\",\"sideBarTitle.foreground\":\"#403f53\",\"sideBar.border\":\"#f0f0f0\",\"editorGroup.background\":\"#f6f6f6\",\"editorCursor.foreground\":\"#90a7b2\",\"editor.wordHighlightBackground\":\"#339cec33\",\"editor.wordHighlightStrongBackground\":\"#007dd659\",\"editor.lineHighlightBackground\":\"#f0f0f0\",\"editor.rangeHighlightBackground\":\"#7497a633\",\"editorWhitespace.foreground\":\"#d9d9d9\",\"editorIndentGuide.background\":\"#d9d9d9\",\"editorCodeLens.foreground\":\"#403f53\",\"editorBracketMatch.background\":\"#d3e8f8\",\"editorBracketMatch.border\":\"#2aa298\",\"editorError.border\":\"#fbfbfb\",\"editorWarning.border\":\"#daaa01\",\"editorGutter.addedBackground\":\"#49d0c5\",\"editorGutter.modifiedBackground\":\"#6fbef6\",\"editorGutter.deletedBackground\":\"#f76e6e\",\"editorRuler.foreground\":\"#d9d9d9\",\"editorOverviewRuler.errorForeground\":\"#e64d49\",\"editorOverviewRuler.warningForeground\":\"#daaa01\",\"editorSuggestWidget.background\":\"#f0f0f0\",\"editorSuggestWidget.foreground\":\"#403f53\",\"editorSuggestWidget.highlightForeground\":\"#403f53\",\"editorSuggestWidget.selectedBackground\":\"#d3e8f8\",\"editorSuggestWidget.border\":\"#d9d9d9\",\"debugExceptionWidget.background\":\"#f0f0f0\",\"debugExceptionWidget.border\":\"#d9d9d9\",\"editorMarkerNavigation.background\":\"#d0d0d0\",\"editorMarkerNavigationError.background\":\"#f76e6e\",\"editorMarkerNavigationWarning.background\":\"#daaa01\",\"debugToolBar.background\":\"#f0f0f0\",\"extensionButton.prominentBackground\":\"#2aa298\",\"extensionButton.prominentForeground\":\"#f0f0f0\",\"statusBar.background\":\"#f0f0f0\",\"statusBar.border\":\"#f0f0f0\",\"statusBar.debuggingBackground\":\"#f0f0f0\",\"statusBar.debuggingForeground\":\"#403f53\",\"statusBar.foreground\":\"#403f53\",\"statusBar.noFolderBackground\":\"#f0f0f0\",\"statusBar.noFolderForeground\":\"#403f53\",\"peekView.border\":\"#d9d9d9\",\"peekViewEditor.background\":\"#f6f6f6\",\"peekViewEditorGutter.background\":\"#f6f6f6\",\"peekViewEditor.matchHighlightBackground\":\"#49d0c5\",\"peekViewResult.background\":\"#f0f0f0\",\"peekViewResult.fileForeground\":\"#403f53\",\"peekViewResult.lineForeground\":\"#403f53\",\"peekViewResult.matchHighlightBackground\":\"#49d0c5\",\"peekViewResult.selectionBackground\":\"#e0e7ea\",\"peekViewResult.selectionForeground\":\"#403f53\",\"peekViewTitle.background\":\"#f0f0f0\",\"peekViewTitleLabel.foreground\":\"#403f53\",\"peekViewTitleDescription.foreground\":\"#403f53\",\"terminal.foreground\":\"#403f53\"},\"fg\":\"#403f53\",\"bg\":\"#f6f7f9\",\"semanticHighlighting\":false,\"settings\":[{\"name\":\"Changed\",\"scope\":[\"markup.changed\",\"meta.diff.header.git\",\"meta.diff.header.from-file\",\"meta.diff.header.to-file\"],\"settings\":{\"foreground\":\"#556484\"}},{\"name\":\"Deleted\",\"scope\":[\"markup.deleted.diff\"],\"settings\":{\"foreground\":\"#ae3c3afd\"}},{\"name\":\"Inserted\",\"scope\":[\"markup.inserted.diff\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Global settings\",\"settings\":{\"background\":\"#011627\",\"foreground\":\"#403f53\"}},{\"name\":\"Comment\",\"scope\":[\"comment\"],\"settings\":{\"foreground\":\"#5f636f\"}},{\"name\":\"String\",\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"String Quoted\",\"scope\":[\"string.quoted\",\"variable.other.readwrite.js\"],\"settings\":{\"foreground\":\"#984e4d\"}},{\"name\":\"Support Constant Math\",\"scope\":[\"support.constant.math\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Number\",\"scope\":[\"constant.numeric\",\"constant.character.numeric\"],\"settings\":{\"foreground\":\"#aa0982\",\"fontStyle\":\"\"}},{\"name\":\"Built-in constant\",\"scope\":[\"constant.language\",\"punctuation.definition.constant\",\"variable.other.constant\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"User-defined constant\",\"scope\":[\"constant.character\",\"constant.other\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Constant Character Escape\",\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"RegExp String\",\"scope\":[\"string.regexp\",\"string.regexp keyword.other\"],\"settings\":{\"foreground\":\"#3a688f\"}},{\"name\":\"Comma in functions\",\"scope\":[\"meta.function punctuation.separator.comma\"],\"settings\":{\"foreground\":\"#4d667b\"}},{\"name\":\"Variable\",\"scope\":[\"variable\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Keyword\",\"scope\":[\"punctuation.accessor\",\"keyword\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Storage\",\"scope\":[\"storage\",\"meta.var.expr\",\"meta.class meta.method.declaration meta.var.expr storage.type.js\",\"storage.type.property.js\",\"storage.type.property.ts\",\"storage.type.property.tsx\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Storage type\",\"scope\":[\"storage.type\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Storage type\",\"scope\":[\"storage.type.function.arrow.js\"],\"settings\":{\"fontStyle\":\"\"}},{\"name\":\"Class name\",\"scope\":[\"entity.name.class\",\"meta.class entity.name.type.class\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Inherited class\",\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Function name\",\"scope\":[\"entity.name.function\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Meta Tag\",\"scope\":[\"punctuation.definition.tag\",\"meta.tag\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"HTML Tag names\",\"scope\":[\"entity.name.tag\",\"meta.tag.other.html\",\"meta.tag.other.js\",\"meta.tag.other.tsx\",\"entity.name.tag.tsx\",\"entity.name.tag.js\",\"entity.name.tag\",\"meta.tag.js\",\"meta.tag.tsx\",\"meta.tag.html\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Tag attribute\",\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Entity Name Tag Custom\",\"scope\":[\"entity.name.tag.custom\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Library (function & constant)\",\"scope\":[\"support.function\",\"support.constant\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Support Constant Property Value meta\",\"scope\":[\"support.constant.meta.property-value\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Library class/type\",\"scope\":[\"support.type\",\"support.class\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Support Variable DOM\",\"scope\":[\"support.variable.dom\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Invalid\",\"scope\":[\"invalid\"],\"settings\":{\"foreground\":\"#bb2060\"}},{\"name\":\"Invalid deprecated\",\"scope\":[\"invalid.deprecated\"],\"settings\":{\"foreground\":\"#b23834\"}},{\"name\":\"Keyword Operator\",\"scope\":[\"keyword.operator\"],\"settings\":{\"foreground\":\"#096e72\",\"fontStyle\":\"\"}},{\"name\":\"Keyword Operator Relational\",\"scope\":[\"keyword.operator.relational\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Keyword Operator Assignment\",\"scope\":[\"keyword.operator.assignment\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Keyword Operator Arithmetic\",\"scope\":[\"keyword.operator.arithmetic\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Keyword Operator Bitwise\",\"scope\":[\"keyword.operator.bitwise\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Keyword Operator Increment\",\"scope\":[\"keyword.operator.increment\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Keyword Operator Ternary\",\"scope\":[\"keyword.operator.ternary\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Double-Slashed Comment\",\"scope\":[\"comment.line.double-slash\"],\"settings\":{\"foreground\":\"#5d6376\"}},{\"name\":\"Object\",\"scope\":[\"object\"],\"settings\":{\"foreground\":\"#58656a\"}},{\"name\":\"Null\",\"scope\":[\"constant.language.null\"],\"settings\":{\"foreground\":\"#a24848\"}},{\"name\":\"Meta Brace\",\"scope\":[\"meta.brace\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"Meta Delimiter Period\",\"scope\":[\"meta.delimiter.period\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Punctuation Definition String\",\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Punctuation Definition String Markdown\",\"scope\":[\"punctuation.definition.string.begin.markdown\"],\"settings\":{\"foreground\":\"#a24848\"}},{\"name\":\"Boolean\",\"scope\":[\"constant.language.boolean\"],\"settings\":{\"foreground\":\"#a24848\"}},{\"name\":\"Object Comma\",\"scope\":[\"object.comma\"],\"settings\":{\"foreground\":\"#646464\"}},{\"name\":\"Variable Parameter Function\",\"scope\":[\"variable.parameter.function\"],\"settings\":{\"foreground\":\"#096e72\",\"fontStyle\":\"\"}},{\"name\":\"Support Type Property Name & entity name tags\",\"scope\":[\"support.type.vendor.property-name\",\"support.constant.vendor.property-value\",\"support.type.property-name\",\"meta.property-list entity.name.tag\"],\"settings\":{\"foreground\":\"#096e72\",\"fontStyle\":\"\"}},{\"name\":\"Entity Name tag reference in stylesheets\",\"scope\":[\"meta.property-list entity.name.tag.reference\"],\"settings\":{\"foreground\":\"#286d70\"}},{\"name\":\"Constant Other Color RGB Value Punctuation Definition Constant\",\"scope\":[\"constant.other.color.rgb-value punctuation.definition.constant\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Constant Other Color\",\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Keyword Other Unit\",\"scope\":[\"keyword.other.unit\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Meta Selector\",\"scope\":[\"meta.selector\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Entity Other Attribute Name Id\",\"scope\":[\"entity.other.attribute-name.id\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Meta Property Name\",\"scope\":[\"meta.property-name\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Doctypes\",\"scope\":[\"entity.name.tag.doctype\",\"meta.tag.sgml.doctype\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Punctuation Definition Parameters\",\"scope\":[\"punctuation.definition.parameters\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Keyword Control Operator\",\"scope\":[\"keyword.control.operator\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Keyword Operator Logical\",\"scope\":[\"keyword.operator.logical\"],\"settings\":{\"foreground\":\"#8844ae\",\"fontStyle\":\"\"}},{\"name\":\"Variable Instances\",\"scope\":[\"variable.instance\",\"variable.other.instance\",\"variable.readwrite.instance\",\"variable.other.readwrite.instance\",\"variable.other.property\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Variable Property Other object property\",\"scope\":[\"variable.other.object.property\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Variable Property Other object\",\"scope\":[\"variable.other.object.js\"],\"settings\":{\"fontStyle\":\"\"}},{\"name\":\"Entity Name Function\",\"scope\":[\"entity.name.function\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Keyword Operator Comparison, imports, returns and Keyword Operator Ruby\",\"scope\":[\"keyword.operator.comparison\",\"keyword.control.flow.js\",\"keyword.control.flow.ts\",\"keyword.control.flow.tsx\",\"keyword.control.ruby\",\"keyword.control.module.ruby\",\"keyword.control.class.ruby\",\"keyword.control.def.ruby\",\"keyword.control.loop.js\",\"keyword.control.loop.ts\",\"keyword.control.import.js\",\"keyword.control.import.ts\",\"keyword.control.import.tsx\",\"keyword.control.from.js\",\"keyword.control.from.ts\",\"keyword.control.from.tsx\",\"keyword.operator.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.instanceof.tsx\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Keyword Control Conditional\",\"scope\":[\"keyword.control.conditional.js\",\"keyword.control.conditional.ts\",\"keyword.control.switch.js\",\"keyword.control.switch.ts\"],\"settings\":{\"foreground\":\"#8844ae\",\"fontStyle\":\"\"}},{\"name\":\"Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords\",\"scope\":[\"support.constant\",\"keyword.other.special-method\",\"keyword.other.new\",\"keyword.other.debugger\",\"keyword.control\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Support Function\",\"scope\":[\"support.function\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Invalid Broken\",\"scope\":[\"invalid.broken\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Invalid Unimplemented\",\"scope\":[\"invalid.unimplemented\"],\"settings\":{\"foreground\":\"#486e26\"}},{\"name\":\"Invalid Illegal\",\"scope\":[\"invalid.illegal\"],\"settings\":{\"foreground\":\"#984e4d\"}},{\"name\":\"Language Variable\",\"scope\":[\"variable.language\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Support Variable Property\",\"scope\":[\"support.variable.property\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Variable Function\",\"scope\":[\"variable.function\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Variable Interpolation\",\"scope\":[\"variable.interpolation\"],\"settings\":{\"foreground\":\"#a64348\"}},{\"name\":\"Meta Function Call\",\"scope\":[\"meta.function-call\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Punctuation Section Embedded\",\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#b23834\"}},{\"name\":\"Punctuation Tweaks\",\"scope\":[\"punctuation.terminator.expression\",\"punctuation.definition.arguments\",\"punctuation.definition.array\",\"punctuation.section.array\",\"meta.array\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"More Punctuation Tweaks\",\"scope\":[\"punctuation.definition.list.begin\",\"punctuation.definition.list.end\",\"punctuation.separator.arguments\",\"punctuation.definition.list\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Template Strings\",\"scope\":[\"string.template meta.template.expression\"],\"settings\":{\"foreground\":\"#b23834\"}},{\"name\":\"Backtics(``) in Template Strings\",\"scope\":[\"string.template punctuation.definition.string\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"Italics\",\"scope\":[\"italic\"],\"settings\":{\"foreground\":\"#8844ae\",\"fontStyle\":\"italic\"}},{\"name\":\"Bold\",\"scope\":[\"bold\"],\"settings\":{\"foreground\":\"#3b61b0\",\"fontStyle\":\"bold\"}},{\"name\":\"Quote\",\"scope\":[\"quote\"],\"settings\":{\"foreground\":\"#5c6285\"}},{\"name\":\"Raw Code\",\"scope\":[\"raw\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"CoffeScript Variable Assignment\",\"scope\":[\"variable.assignment.coffee\"],\"settings\":{\"foreground\":\"#186e73\"}},{\"name\":\"CoffeScript Parameter Function\",\"scope\":[\"variable.parameter.function.coffee\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"CoffeeScript Assignments\",\"scope\":[\"variable.assignment.coffee\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"C# Readwrite Variables\",\"scope\":[\"variable.other.readwrite.cs\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"C# Classes & Storage types\",\"scope\":[\"entity.name.type.class.cs\",\"storage.type.cs\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"C# Namespaces\",\"scope\":[\"entity.name.type.namespace.cs\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Tag names in Stylesheets\",\"scope\":[\"entity.name.tag.css\",\"entity.name.tag.less\",\"entity.name.tag.custom.css\",\"support.constant.property-value.css\"],\"settings\":{\"foreground\":\"#984e4d\",\"fontStyle\":\"\"}},{\"name\":\"Wildcard(*) selector in Stylesheets\",\"scope\":[\"entity.name.tag.wildcard.css\",\"entity.name.tag.wildcard.less\",\"entity.name.tag.wildcard.scss\",\"entity.name.tag.wildcard.sass\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"CSS Keyword Other Unit\",\"scope\":[\"keyword.other.unit.css\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Attribute Name for CSS\",\"scope\":[\"meta.attribute-selector.css entity.other.attribute-name.attribute\",\"variable.other.readwrite.js\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Elixir Classes\",\"scope\":[\"source.elixir support.type.elixir\",\"source.elixir meta.module.elixir entity.name.class.elixir\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Elixir Functions\",\"scope\":[\"source.elixir entity.name.function\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Elixir Constants\",\"scope\":[\"source.elixir constant.other.symbol.elixir\",\"source.elixir constant.other.keywords.elixir\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Elixir String Punctuations\",\"scope\":[\"source.elixir punctuation.definition.string\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Elixir\",\"scope\":[\"source.elixir variable.other.readwrite.module.elixir\",\"source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Elixir Binary Punctuations\",\"scope\":[\"source.elixir .punctuation.binary.elixir\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Closure Constant Keyword\",\"scope\":[\"constant.keyword.clojure\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Go Function Calls\",\"scope\":[\"source.go meta.function-call.go\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Go Keywords\",\"scope\":[\"source.go keyword.package.go\",\"source.go keyword.import.go\",\"source.go keyword.function.go\",\"source.go keyword.type.go\",\"source.go keyword.struct.go\",\"source.go keyword.interface.go\",\"source.go keyword.const.go\",\"source.go keyword.var.go\",\"source.go keyword.map.go\",\"source.go keyword.channel.go\",\"source.go keyword.control.go\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"Go Constants e.g. nil, string format (%s, %d, etc.)\",\"scope\":[\"source.go constant.language.go\",\"source.go constant.other.placeholder.go\"],\"settings\":{\"foreground\":\"#a24848\"}},{\"name\":\"C++ Functions\",\"scope\":[\"entity.name.function.preprocessor.cpp\",\"entity.scope.name.cpp\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"C++ Meta Namespace\",\"scope\":[\"meta.namespace-block.cpp\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"C++ Language Primitive Storage\",\"scope\":[\"storage.type.language.primitive.cpp\"],\"settings\":{\"foreground\":\"#a24848\"}},{\"name\":\"C++ Preprocessor Macro\",\"scope\":[\"meta.preprocessor.macro.cpp\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"C++ Variable Parameter\",\"scope\":[\"variable.parameter\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Powershell Variables\",\"scope\":[\"variable.other.readwrite.powershell\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Powershell Function\",\"scope\":[\"support.function.powershell\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"ID Attribute Name in HTML\",\"scope\":[\"entity.other.attribute-name.id.html\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"HTML Punctuation Definition Tag\",\"scope\":[\"punctuation.definition.tag.html\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"HTML Doctype\",\"scope\":[\"meta.tag.sgml.doctype.html\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"JavaScript Classes\",\"scope\":[\"meta.class entity.name.type.class.js\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"JavaScript Method Declaration e.g. `constructor`\",\"scope\":[\"meta.method.declaration storage.type.js\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"JavaScript Terminator\",\"scope\":[\"terminator.js\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"JavaScript Meta Punctuation Definition\",\"scope\":[\"meta.js punctuation.definition.js\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"Entity Names in Code Documentations\",\"scope\":[\"entity.name.type.instance.jsdoc\",\"entity.name.type.instance.phpdoc\"],\"settings\":{\"foreground\":\"#4d667b\"}},{\"name\":\"Other Variables in Code Documentations\",\"scope\":[\"variable.other.jsdoc\",\"variable.other.phpdoc\"],\"settings\":{\"foreground\":\"#3e697c\"}},{\"name\":\"JavaScript module imports and exports\",\"scope\":[\"variable.other.meta.import.js\",\"meta.import.js variable.other\",\"variable.other.meta.export.js\",\"meta.export.js variable.other\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"JavaScript Variable Parameter Function\",\"scope\":[\"variable.parameter.function.js\"],\"settings\":{\"foreground\":\"#555ea2\"}},{\"name\":\"JavaScript[React] Variable Other Object\",\"scope\":[\"variable.other.object.js\",\"variable.other.object.jsx\",\"variable.object.property.js\",\"variable.object.property.jsx\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"JavaScript Variables\",\"scope\":[\"variable.js\",\"variable.other.js\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"JavaScript Entity Name Type\",\"scope\":[\"entity.name.type.js\",\"entity.name.type.module.js\"],\"settings\":{\"foreground\":\"#111111\",\"fontStyle\":\"\"}},{\"name\":\"JavaScript Support Classes\",\"scope\":[\"support.class.js\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"JSON Property Names\",\"scope\":[\"support.type.property-name.json\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"JSON Support Constants\",\"scope\":[\"support.constant.json\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"JSON Property values (string)\",\"scope\":[\"meta.structure.dictionary.value.json string.quoted.double\"],\"settings\":{\"foreground\":\"#7c5686\"}},{\"name\":\"Strings in JSON values\",\"scope\":[\"string.quoted.double.json punctuation.definition.string.json\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Specific JSON Property values like null\",\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value constant.language\"],\"settings\":{\"foreground\":\"#a24848\"}},{\"name\":\"JavaScript Other Variable\",\"scope\":[\"variable.other.object.js\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Ruby Variables\",\"scope\":[\"variable.other.ruby\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"Ruby Class\",\"scope\":[\"entity.name.type.class.ruby\"],\"settings\":{\"foreground\":\"#984e4d\"}},{\"name\":\"Ruby Hashkeys\",\"scope\":[\"constant.language.symbol.hashkey.ruby\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Ruby Symbols\",\"scope\":[\"constant.language.symbol.ruby\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"LESS Tag names\",\"scope\":[\"entity.name.tag.less\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"LESS Keyword Other Unit\",\"scope\":[\"keyword.other.unit.css\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Attribute Name for LESS\",\"scope\":[\"meta.attribute-selector.less entity.other.attribute-name.attribute\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Markdown Headings\",\"scope\":[\"markup.heading.markdown\",\"markup.heading.setext.1.markdown\",\"markup.heading.setext.2.markdown\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Markdown Italics\",\"scope\":[\"markup.italic.markdown\"],\"settings\":{\"foreground\":\"#8844ae\",\"fontStyle\":\"italic\"}},{\"name\":\"Markdown Bold\",\"scope\":[\"markup.bold.markdown\"],\"settings\":{\"foreground\":\"#3b61b0\",\"fontStyle\":\"bold\"}},{\"name\":\"Markdown Quote + others\",\"scope\":[\"markup.quote.markdown\"],\"settings\":{\"foreground\":\"#5c6285\"}},{\"name\":\"Markdown Raw Code + others\",\"scope\":[\"markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Markdown Links\",\"scope\":[\"markup.underline.link.markdown\",\"markup.underline.link.image.markdown\"],\"settings\":{\"foreground\":\"#954f5a\",\"fontStyle\":\"underline\"}},{\"name\":\"Markdown Link Title and Description\",\"scope\":[\"string.other.link.title.markdown\",\"string.other.link.description.markdown\"],\"settings\":{\"foreground\":\"#403f53\",\"fontStyle\":\"underline\"}},{\"name\":\"Markdown Punctuation\",\"scope\":[\"punctuation.definition.string.markdown\",\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"meta.link.inline.markdown punctuation.definition.string\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Markdown MetaData Punctuation\",\"scope\":[\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Markdown List Punctuation\",\"scope\":[\"beginning.punctuation.definition.list.markdown\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Markdown Inline Raw String\",\"scope\":[\"markup.inline.raw.string.markdown\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"PHP Variables\",\"scope\":[\"variable.other.php\",\"variable.other.property.php\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Support Classes in PHP\",\"scope\":[\"support.class.php\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Punctuations in PHP function calls\",\"scope\":[\"meta.function-call.php punctuation\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"PHP Global Variables\",\"scope\":[\"variable.other.global.php\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Declaration Punctuation in PHP Global Variables\",\"scope\":[\"variable.other.global.php punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Language Constants in Python\",\"scope\":[\"constant.language.python\"],\"settings\":{\"foreground\":\"#a24848\"}},{\"name\":\"Python Function Parameter and Arguments\",\"scope\":[\"variable.parameter.function.python\",\"meta.function-call.arguments.python\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Python Function Call\",\"scope\":[\"meta.function-call.python\",\"meta.function-call.generic.python\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"Punctuations in Python\",\"scope\":[\"punctuation.python\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"Decorator Functions in Python\",\"scope\":[\"entity.name.function.decorator.python\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Python Language Variable\",\"scope\":[\"source.python variable.language.special\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Python import control keyword\",\"scope\":[\"keyword.control\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"SCSS Variable\",\"scope\":[\"variable.scss\",\"variable.sass\",\"variable.parameter.url.scss\",\"variable.parameter.url.sass\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Variables in SASS At-Rules\",\"scope\":[\"source.css.scss meta.at-rule variable\",\"source.css.sass meta.at-rule variable\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"Variables in SASS At-Rules\",\"scope\":[\"source.css.scss meta.at-rule variable\",\"source.css.sass meta.at-rule variable\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"Attribute Name for SASS\",\"scope\":[\"meta.attribute-selector.scss entity.other.attribute-name.attribute\",\"meta.attribute-selector.sass entity.other.attribute-name.attribute\"],\"settings\":{\"foreground\":\"#aa0982\"}},{\"name\":\"Tag names in SASS\",\"scope\":[\"entity.name.tag.scss\",\"entity.name.tag.sass\"],\"settings\":{\"foreground\":\"#096e72\"}},{\"name\":\"SASS Keyword Other Unit\",\"scope\":[\"keyword.other.unit.scss\",\"keyword.other.unit.sass\"],\"settings\":{\"foreground\":\"#8844ae\"}},{\"name\":\"TypeScript[React] Variables and Object Properties\",\"scope\":[\"variable.other.readwrite.alias.ts\",\"variable.other.readwrite.alias.tsx\",\"variable.other.readwrite.ts\",\"variable.other.readwrite.tsx\",\"variable.other.object.ts\",\"variable.other.object.tsx\",\"variable.object.property.ts\",\"variable.object.property.tsx\",\"variable.other.ts\",\"variable.other.tsx\",\"variable.tsx\",\"variable.ts\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"TypeScript[React] Entity Name Types\",\"scope\":[\"entity.name.type.ts\",\"entity.name.type.tsx\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"TypeScript[React] Node Classes\",\"scope\":[\"support.class.node.ts\",\"support.class.node.tsx\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"TypeScript[React] Entity Name Types as Parameters\",\"scope\":[\"meta.type.parameters.ts entity.name.type\",\"meta.type.parameters.tsx entity.name.type\"],\"settings\":{\"foreground\":\"#4d667b\"}},{\"name\":\"TypeScript[React] Import/Export Punctuations\",\"scope\":[\"meta.import.ts punctuation.definition.block\",\"meta.import.tsx punctuation.definition.block\",\"meta.export.ts punctuation.definition.block\",\"meta.export.tsx punctuation.definition.block\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"TypeScript[React] Punctuation Decorators\",\"scope\":[\"meta.decorator punctuation.decorator.ts\",\"meta.decorator punctuation.decorator.tsx\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"TypeScript[React] Punctuation Decorators\",\"scope\":[\"meta.tag.js meta.jsx.children.tsx\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"YAML Entity Name Tags\",\"scope\":[\"entity.name.tag.yaml\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"JavaScript Variable Other ReadWrite\",\"scope\":[\"variable.other.readwrite.js\",\"variable.parameter\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"Support Class Component\",\"scope\":[\"support.class.component.js\",\"support.class.component.tsx\"],\"settings\":{\"foreground\":\"#aa0982\",\"fontStyle\":\"\"}},{\"name\":\"Text nested in React tags\",\"scope\":[\"meta.jsx.children\",\"meta.jsx.children.js\",\"meta.jsx.children.tsx\"],\"settings\":{\"foreground\":\"#403f53\"}},{\"name\":\"TypeScript Classes\",\"scope\":[\"meta.class entity.name.type.class.tsx\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"TypeScript Entity Name Type\",\"scope\":[\"entity.name.type.tsx\",\"entity.name.type.module.tsx\"],\"settings\":{\"foreground\":\"#111111\"}},{\"name\":\"TypeScript Class Variable Keyword\",\"scope\":[\"meta.class.ts meta.var.expr.ts storage.type.ts\",\"meta.class.tsx meta.var.expr.tsx storage.type.tsx\"],\"settings\":{\"foreground\":\"#76578b\"}},{\"name\":\"TypeScript Method Declaration e.g. `constructor`\",\"scope\":[\"meta.method.declaration storage.type.ts\",\"meta.method.declaration storage.type.tsx\"],\"settings\":{\"foreground\":\"#3b61b0\"}},{\"name\":\"normalize font style of certain components\",\"scope\":[\"meta.property-list.css meta.property-value.css variable.other.less\",\"meta.property-list.scss variable.scss\",\"meta.property-list.sass variable.sass\",\"meta.brace\",\"keyword.operator.operator\",\"keyword.operator.or.regexp\",\"keyword.operator.expression.in\",\"keyword.operator.relational\",\"keyword.operator.assignment\",\"keyword.operator.comparison\",\"keyword.operator.type\",\"keyword.operator\",\"keyword\",\"punctuation.definintion.string\",\"punctuation\",\"variable.other.readwrite.js\",\"storage.type\",\"source.css\",\"string.quoted\"],\"settings\":{\"fontStyle\":\"\"}}],\"styleOverrides\":{\"frames\":{\"editorBackground\":\"var(--sl-color-gray-7)\",\"terminalBackground\":\"var(--sl-color-gray-7)\",\"editorActiveTabBackground\":\"var(--sl-color-gray-7)\",\"terminalTitlebarDotsForeground\":\"color-mix(in srgb, var(--sl-color-gray-5), transparent 25%)\",\"terminalTitlebarDotsOpacity\":\"0.75\",\"inlineButtonForeground\":\"var(--sl-color-text)\",\"frameBoxShadowCssValue\":\"none\"},\"textMarkers\":{\"markBackground\":\"#0000001a\",\"markBorderColor\":\"#00000055\"}}}],\"defaultLocale\":\"en\",\"styleOverrides\":{\"borderRadius\":\"0px\",\"borderWidth\":\"1px\",\"codePaddingBlock\":\"0.75rem\",\"codePaddingInline\":\"1rem\",\"codeFontFamily\":\"var(--__sl-font-mono)\",\"codeFontSize\":\"var(--sl-text-code)\",\"codeLineHeight\":\"var(--sl-line-height)\",\"uiFontFamily\":\"var(--__sl-font)\",\"textMarkers\":{\"lineDiffIndicatorMarginLeft\":\"0.25rem\",\"defaultChroma\":\"45\",\"backgroundOpacity\":\"60%\"}},\"plugins\":[{\"name\":\"Starlight Plugin\",\"hooks\":{}},{\"name\":\"astro-expressive-code\",\"hooks\":{}}]}]],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[],\"actionBodySizeLimit\":1048576},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false,\"failOnPrerenderConflict\":false,\"svgo\":false},\"legacy\":{\"collections\":false},\"prefetch\":{\"prefetchAll\":true},\"i18n\":{\"defaultLocale\":\"en\",\"locales\":[\"en\"],\"routing\":{\"prefixDefaultLocale\":false,\"redirectToDefaultLocale\":false,\"fallbackType\":\"redirect\"}}}","docs",["Map",11,12,41,42,54,55,66,67,78,79,90,91,102,103,114,115,126,127,138,139,150,151,162,163,174,175,186,187,198,199,210,211,222,223,234,235,246,247,258,259,270,271,282,283,294,295,306,307,318,319,330,331,342,343,354,355,366,367,378,379,390,391,402,403,414,415,426,427,438,439,450,451,462,463,474,475,486,487,498,499,510,511,522,523,534,535,546,547,558,559,570,571,582,583,594,595,606,607,618,619,630,631,641,642,653,654],"index",{"id":11,"data":13,"body":37,"filePath":38,"digest":39,"legacyId":40,"deferredRender":16},{"title":14,"description":15,"editUrl":16,"head":17,"template":18,"hero":19,"sidebar":34,"pagefind":16,"draft":35},"NeoBoard","Visual dashboards for Neo4j & PostgreSQL",true,[],"splash",{"tagline":20,"actions":21},"Visual dashboards for Neo4j & PostgreSQL. Connect your databases, write queries, and build interactive charts — all from the browser.",[22,29],{"text":23,"link":24,"variant":25,"icon":26},"Get Started","/getting-started/installation/","primary",{"type":27,"name":28},"icon","right-arrow",{"text":30,"link":31,"variant":25,"icon":32},"View on GitHub","https://github.com/alfredo1996/neoboard",{"type":27,"name":33},"external",{"hidden":35,"attrs":36},false,{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\n## What is NeoBoard?\n\nNeoBoard is an open-source dashboarding tool for hybrid database architectures. It connects to **Neo4j** and **PostgreSQL** databases, letting you build rich, interactive dashboards without writing frontend code.\n\n**Key capabilities:**\n\n- **12+ chart types** -- bar, line, pie, single value, table, graph visualization, map, JSON viewer, and more\n- **Interactive parameters** -- dropdowns, date pickers, sliders, and text fields that filter data across all widgets\n- **Form widgets** -- run write queries (INSERT, CREATE, UPDATE) directly from the dashboard\n- **Multi-page dashboards** -- organize related views into pages with drag-and-drop layouts\n- **Export and import** -- share dashboards as JSON files across NeoBoard instances\n- **Role-based access** -- Admin, Creator, and Reader roles with granular write permissions\n- **Encrypted credentials** -- AES-256-GCM encryption for all stored database passwords\n- **Multi-tenancy** -- full tenant isolation for SaaS deployments\n\n## Get Started\n\nChoose the path that fits your setup:\n\n| Method | Command | Time |\n|--------|---------|------|\n| **Docker (recommended)** | `neoboard demo` | ~5 minutes |\n| **Local + Docker DBs** | `neoboard setup --mode local` | ~10 minutes |\n| **Fully local** | `git clone` + `npm ci` + `npm run dev` | ~15 minutes |\n\nSee the [Installation guide](/getting-started/installation/) for full instructions.\n\n## Explore the Docs\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Quick Start\" description=\"Create your first dashboard in 5 minutes\" href=\"/getting-started/quick-start/\" />\n \u003CLinkCard title=\"Dashboards\" description=\"Build and configure dashboards\" href=\"/dashboards/\" />\n \u003CLinkCard title=\"Connections\" description=\"Connect to Neo4j and PostgreSQL\" href=\"/connections/\" />\n \u003CLinkCard title=\"Authentication\" description=\"Passwords, SSO, API keys, roles\" href=\"/authentication/\" />\n\u003C/CardGrid>","src/content/docs/index.mdx","fd891eb16e95e33d","index.mdx","charts/bar",{"id":41,"data":43,"body":50,"filePath":51,"digest":52,"legacyId":53,"deferredRender":16},{"title":44,"description":45,"editUrl":16,"head":46,"template":47,"sidebar":48,"pagefind":16,"draft":35},"Bar Chart","Horizontal and vertical bar charts for comparing categories.",[],"doc",{"hidden":35,"attrs":49},{},"## Overview\n\nThe Bar Chart displays categorical data as rectangular bars whose lengths are proportional to the values they represent. Use it when comparing discrete categories or showing ranked data.\n\n## Query Format\n\nReturn 2 or more columns: the first column is used as the category label (x-axis), and remaining columns become numeric series (y-axis). Multiple value columns produce grouped or stacked bars.\n\n### Cypher\n\n```cypher\nMATCH (m:Movie)\nRETURN m.released AS label, count(*) AS value\nORDER BY value DESC LIMIT 10\n```\n\n### SQL\n\n```sql\nSELECT role AS label, COUNT(*) AS value\nFROM \"user\"\nGROUP BY role\nORDER BY value DESC\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Orientation | select | vertical | Vertical bars (upward) or horizontal bars (left-to-right) |\n| Stacked | boolean | false | Stack series on top of each other instead of side by side |\n| Bar Width (px) | number | 0 (auto) | Width of each bar in pixels. 0 lets the chart auto-size |\n| Bar Gap | text | 30% | Gap between bar groups as a percentage of bar width |\n| Show Values | boolean | false | Display the numeric value as a label on each bar |\n| Show Legend | boolean | true | Show the legend identifying each data series |\n| X-Axis Label | text | (empty) | Custom label below the horizontal axis |\n| Y-Axis Label | text | (empty) | Custom label beside the vertical axis |\n| Show Grid Lines | boolean | true | Show faint horizontal reference lines |\n| Axis Label Rotation | number | -1 (auto) | Override axis label angle (0-90). -1 auto-rotates at 8+ categories |\n| Reference Lines | text | (empty) | JSON array of horizontal reference lines |\n| Enable Scroll Zoom | boolean | false | Allow scroll-to-zoom on the data axis |\n| Decimal Places | number | -1 (auto) | Fixed decimal places in tooltips (0-6) |\n\n## Tips\n\n- Use horizontal orientation when category labels are long -- it avoids overlapping text.\n- Enable stacking when you want to show both the total and the contribution of each series.\n- For large datasets, enable Scroll Zoom to let users explore a subset of categories interactively.","src/content/docs/charts/bar.mdx","ca8ab05aa6c5603e","charts/bar.mdx","charts/form",{"id":54,"data":56,"body":62,"filePath":63,"digest":64,"legacyId":65,"deferredRender":16},{"title":57,"description":58,"editUrl":16,"head":59,"template":47,"sidebar":60,"pagefind":16,"draft":35},"Form Widget","Input fields that execute write queries against your database.",[],{"hidden":35,"attrs":61},{},"## Overview\n\nThe Form widget renders a set of input fields that, when submitted, execute a write query (CREATE, MERGE, INSERT, UPDATE) against your database. Use it to build data entry forms, admin tools, or any workflow that requires writing data from the dashboard.\n\n## Query Format\n\nWrite a mutation query with `$param_xxx` placeholders for each form field. The form fields editor (in the widget editor) lets you define the fields, their types, and validation rules.\n\n### Cypher\n\n```cypher\nCREATE (n:Person {name: $param_name, email: $param_email, age: toInteger($param_age)})\n```\n\n### SQL\n\n```sql\nINSERT INTO people (name, email, age)\nVALUES ($param_name, $param_email, $param_age)\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Submit Button Text | text | Submit | Label for the form submit button |\n| Success Message | text | Form submitted successfully | Message shown after a successful submission |\n| Reset on Success | boolean | true | Clear all form fields after a successful submission |\n\n## Form Fields\n\nForm fields are configured in the widget editor's **Fields** tab (not in Chart Options). Each field has:\n\n- **Parameter name** -- maps to `$param_xxx` in the query\n- **Label** -- display text shown to the user\n- **Type** -- text, number, email, date, select, textarea, checkbox\n- **Required** -- whether the field must be filled before submission\n- **Default value** -- pre-filled value on form load\n\n## Tips\n\n- The connector must have `can_write` permission enabled by an admin for the form to execute. Additionally, each user who needs to submit forms must have **write permission** enabled on the Users page (toggle in the Write column). Both conditions are enforced server-side.\n- Use descriptive parameter names like `$param_email` rather than `$param_1` to keep your query readable.\n- Enable Reset on Success for data entry workflows where users submit multiple records in a row.","src/content/docs/charts/form.mdx","2e8c475dbdbee098","charts/form.mdx","charts/graph",{"id":66,"data":68,"body":74,"filePath":75,"digest":76,"legacyId":77,"deferredRender":16},{"title":69,"description":70,"editUrl":16,"head":71,"template":47,"sidebar":72,"pagefind":16,"draft":35},"Graph Visualization","Interactive node-and-relationship visualization for Neo4j graph data.",[],{"hidden":35,"attrs":73},{},"## Overview\n\nThe Graph widget renders Neo4j nodes and relationships as an interactive force-directed graph. Users can drag nodes, zoom, and click to explore properties. This widget is only available for Neo4j connectors.\n\n## Query Format\n\nReturn nodes, relationships, or paths -- not tabular data. The transform automatically extracts graph structures from the query result.\n\n### Cypher\n\n```cypher\nMATCH (a:Person)-[r:ACTED_IN]->(m:Movie)\nRETURN a, r, m\nLIMIT 50\n```\n\nPaths also work:\n\n```cypher\nMATCH p = shortestPath((a:Person {name: 'Tom Hanks'})-[*]-(b:Person {name: 'Kevin Bacon'}))\nRETURN p\n```\n\n### SQL\n\nGraph visualization is not available for PostgreSQL connectors. Use a Neo4j connection for graph data.\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Layout | select | force | Node positioning algorithm: Force (physics simulation), Circular (ring), or Hierarchical (tree) |\n| Node Size | select | medium | Visual size of each node: Small, Medium, or Large |\n| Show Labels | boolean | true | Show the node label (first string property) on each node |\n| Show Relationship Labels | boolean | true | Show the relationship type name on each edge |\n| Enable Physics | boolean | true | Enable physics simulation so nodes repel and edges act as springs |\n\n## Tips\n\n- Add a `LIMIT` to your query to keep the graph readable -- more than 200 nodes can get cluttered.\n- Use the Hierarchical layout for tree-like data (org charts, category hierarchies).\n- Disable physics after the layout stabilizes if you want to manually position nodes by dragging them.","src/content/docs/charts/graph.mdx","d2056fad737104ab","charts/graph.mdx","charts/iframe",{"id":78,"data":80,"body":86,"filePath":87,"digest":88,"legacyId":89,"deferredRender":16},{"title":81,"description":82,"editUrl":16,"head":83,"template":47,"sidebar":84,"pagefind":16,"draft":35},"iFrame Widget","Embed an external web page within a dashboard widget.",[],{"hidden":35,"attrs":85},{},"## Overview\n\nThe iFrame widget embeds an external web page directly into a dashboard. Use it to include third-party tools, documentation pages, or external dashboards alongside your NeoBoard widgets. No query or database connection is required.\n\n## Query Format\n\nThis widget does not use a query. Configure the URL and settings in the Chart Options panel.\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| URL | text | (empty) | The URL of the external page to embed. Must be an https:// URL |\n| Title | text | Embedded content | Accessible title for screen readers |\n| Sandbox Policy | text | (empty) | HTML sandbox attributes controlling what the embedded page can do |\n\n## Sandbox Policy\n\nThe sandbox field accepts standard HTML `sandbox` attribute values. Common values:\n\n| Value | Effect |\n|-------|--------|\n| (empty) | Maximum restrictions: no scripts, no forms, no popups |\n| `allow-scripts` | Allow JavaScript execution |\n| `allow-forms` | Allow form submission |\n| `allow-same-origin` | Treat embedded content as same-origin |\n| `allow-scripts allow-same-origin` | Allow scripts and same-origin access (use with trusted content only) |\n\n## Tips\n\n- Always use `https://` URLs. Most browsers block mixed content (HTTP inside HTTPS).\n- Leave the Sandbox Policy empty for untrusted content to apply maximum restrictions.\n- Some sites block embedding via `X-Frame-Options` or `Content-Security-Policy` headers -- if the page appears blank, the target site may not allow iframing.","src/content/docs/charts/iframe.mdx","bbca88d3a0a57d4f","charts/iframe.mdx","charts",{"id":90,"data":92,"body":98,"filePath":99,"digest":100,"legacyId":101,"deferredRender":16},{"title":93,"description":94,"editUrl":16,"head":95,"template":47,"sidebar":96,"pagefind":16,"draft":35},"Chart Types","Overview of all widget and chart types available in NeoBoard.",[],{"hidden":35,"attrs":97},{},"NeoBoard includes a variety of chart and widget types to visualize data from Neo4j and PostgreSQL. Each type expects a specific query result shape and offers its own configuration options.\n\n## Available Chart Types\n\n| Type | Description | Data Sources |\n|------|-------------|-------------|\n| [Bar Chart](/charts/bar) | Vertical or horizontal bars for comparing categories | Neo4j, PostgreSQL |\n| [Line Chart](/charts/line) | Trend lines and time series | Neo4j, PostgreSQL |\n| [Pie / Doughnut](/charts/pie) | Proportional slices for part-to-whole comparisons | Neo4j, PostgreSQL |\n| [Single Value](/charts/single-value) | One large number (KPI card) with optional trend | Neo4j, PostgreSQL |\n| [Data Table](/charts/table) | Sortable, filterable, paginated data grid | Neo4j, PostgreSQL |\n| [Graph](/charts/graph) | Interactive node-and-relationship visualization | Neo4j only |\n| [Map](/charts/map) | Geographic markers on a Leaflet map | Neo4j, PostgreSQL |\n| [JSON Viewer](/charts/json) | Collapsible JSON tree for raw data inspection | Neo4j, PostgreSQL |\n| [Form](/charts/form) | Input fields that execute write queries | Neo4j, PostgreSQL |\n| [Markdown](/charts/markdown) | Static rich text content (no query needed) | N/A |\n| [iFrame](/charts/iframe) | Embed an external web page | N/A |\n| [Parameter Select](/charts/param-select) | Dropdown, date picker, or other input that feeds parameters to other widgets | Neo4j, PostgreSQL |\n\n## Choosing a Chart Type\n\n- **Comparing categories?** Use a [Bar Chart](/charts/bar).\n- **Showing trends over time?** Use a [Line Chart](/charts/line).\n- **Part-to-whole breakdown?** Use a [Pie Chart](/charts/pie).\n- **Single KPI metric?** Use a [Single Value](/charts/single-value).\n- **Exploring raw data?** Use a [Data Table](/charts/table) or [JSON Viewer](/charts/json).\n- **Visualizing a graph?** Use the [Graph](/charts/graph) widget (Neo4j only).\n- **Geographic data?** Use the [Map](/charts/map) widget.\n- **Collecting user input?** Use a [Form](/charts/form) or [Parameter Select](/charts/param-select).\n\n## Shared Options\n\nMost chart types share these common options:\n\n| Option | Description |\n|--------|-------------|\n| Show Refresh Button | Adds a manual refresh button to the widget header |\n| Manual Run | Requires the user to click \"Run Query\" before executing |\n| Cache Mode | TTL (time-based refresh) or Forever (cache until manual refresh) |\n| Color Palette | Color scheme for chart series (ECharts-based charts only) |\n| Colorblind Mode | Overlays patterns so series are distinguishable without color (ECharts-based charts only) |","src/content/docs/charts/index.mdx","4f9f48fcee72a958","charts/index.mdx","charts/json",{"id":102,"data":104,"body":110,"filePath":111,"digest":112,"legacyId":113,"deferredRender":16},{"title":105,"description":106,"editUrl":16,"head":107,"template":47,"sidebar":108,"pagefind":16,"draft":35},"JSON Viewer","Collapsible JSON tree for inspecting raw query results.",[],{"hidden":35,"attrs":109},{},"## Overview\n\nThe JSON Viewer renders query results as an interactive, collapsible JSON tree. Use it for debugging queries, inspecting nested data structures, or displaying complex objects that do not fit neatly into charts or tables.\n\n## Query Format\n\nReturn any data -- all query results are rendered as a JSON tree. Particularly useful for queries that return nested or complex objects.\n\n### Cypher\n\n```cypher\nMATCH (n:Person)\nRETURN properties(n) AS data\nLIMIT 5\n```\n\n### SQL\n\n```sql\nSELECT row_to_json(u) AS data\nFROM users u\nLIMIT 5\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Initial Expand Depth | number | 2 | How many levels deep the tree is expanded on first render (0 = fully collapsed) |\n| Font Size | select | sm | Font size for the JSON syntax highlighting: Small, Medium, or Large |\n| Show Copy Button | boolean | true | Show a button to copy the full JSON payload to the clipboard |\n| Theme | select | dark | Color theme for syntax highlighting: Dark or Light |\n\n## Tips\n\n- Set Initial Expand Depth to 0 for large payloads so users can selectively expand the sections they need.\n- Use the Copy Button to quickly grab query results for use in other tools or for sharing.\n- The JSON Viewer is a great debugging tool during dashboard development -- switch to a proper chart type once your query is finalized.","src/content/docs/charts/json.mdx","3f1ac85b29eb1230","charts/json.mdx","charts/line",{"id":114,"data":116,"body":122,"filePath":123,"digest":124,"legacyId":125,"deferredRender":16},{"title":117,"description":118,"editUrl":16,"head":119,"template":47,"sidebar":120,"pagefind":16,"draft":35},"Line Chart","Trend lines and time series for tracking changes over time.",[],{"hidden":35,"attrs":121},{},"## Overview\n\nThe Line Chart connects data points with lines, making it ideal for showing trends, time series, and continuous data. Multiple series are rendered as separate lines for comparison.\n\n## Query Format\n\nReturn 2 or more columns: the first column is used as the x-axis (dates, numbers, or labels), and remaining columns become numeric series.\n\n### Cypher\n\n```cypher\nMATCH (m:Movie)\nRETURN m.released AS year, count(*) AS movies\nORDER BY year\n```\n\n### SQL\n\n```sql\nSELECT date_trunc('month', created_at)::date AS month,\n COUNT(*) AS signups\nFROM \"user\"\nGROUP BY month\nORDER BY month\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Smooth Curve | boolean | false | Render lines as smooth curves instead of straight segments |\n| Fill Area | boolean | false | Fill the area beneath the line to emphasise volume |\n| Line Width (px) | number | 2 | Stroke width of the line in pixels |\n| Stepped Line | boolean | false | Draw the line as a step function for discrete state changes |\n| Show Data Points | boolean | false | Draw a dot at each data point along the line |\n| Show Grid Lines | boolean | true | Show faint horizontal reference lines |\n| X-Axis Label | text | (empty) | Custom label below the horizontal axis |\n| Y-Axis Label | text | (empty) | Custom label beside the vertical axis |\n| Show Legend | boolean | true | Show the legend identifying each data series |\n| Reference Lines | text | (empty) | JSON array of horizontal reference lines |\n| Sampling Threshold | number | 1000 | Enable LTTB downsampling when points exceed this count. 0 disables |\n| Sampling Method | select | lttb | Algorithm for downsampling: LTTB, Average, Max, or Min |\n| Enable Scroll Zoom | boolean | false | Allow scroll-to-zoom on the data axis |\n| Decimal Places | number | -1 (auto) | Fixed decimal places in tooltips (0-6) |\n\n## Tips\n\n- Enable Fill Area and Smooth Curve together for a polished area chart look.\n- For datasets with more than 1,000 points, the LTTB sampling algorithm keeps the chart responsive while preserving visual shape.\n- Use Stepped Line for data that changes in discrete jumps (e.g., pricing tiers, status codes).","src/content/docs/charts/line.mdx","f9ef9a26fd3ba440","charts/line.mdx","charts/map",{"id":126,"data":128,"body":134,"filePath":135,"digest":136,"legacyId":137,"deferredRender":16},{"title":129,"description":130,"editUrl":16,"head":131,"template":47,"sidebar":132,"pagefind":16,"draft":35},"Map","Geographic markers on a Leaflet map for location-based data.",[],{"hidden":35,"attrs":133},{},"## Overview\n\nThe Map widget plots geographic data points as markers on an interactive Leaflet map. Use it for location-based data such as store locations, events, or any dataset with latitude and longitude columns.\n\n## Query Format\n\nReturn columns containing latitude and longitude values. Column names must contain \"lat\" and \"lng\" (or \"lon\"/\"long\"). An optional label column (matching \"name\", \"label\", or \"title\") is shown in marker popups.\n\n### Cypher\n\n> The demo Neo4j dataset does not include geographic data. The example below assumes you have loaded nodes with latitude/longitude properties.\n\n```cypher\nMATCH (s:Location)\nRETURN s.latitude AS lat, s.longitude AS lng, s.name AS name\n```\n\n### SQL\n\n> The demo PostgreSQL database does not include geographic data. Replace the table and column names with your own.\n\n```sql\nSELECT latitude AS lat, longitude AS lng, name\nFROM locations\nWHERE latitude IS NOT NULL\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Tile Layer | select | osm | Base-map provider: OpenStreetMap, Carto Light, or Carto Dark |\n| Default Zoom | number | 3 | Initial zoom level (1 = world, 18 = street level) |\n| Min Zoom | number | 2 | Minimum zoom level the user can zoom out to |\n| Max Zoom | number | 18 | Maximum zoom level the user can zoom in to |\n| Auto-fit Bounds | boolean | true | Automatically pan and zoom to fit all markers on load |\n| Marker Size (px) | number | 6 | Radius of each marker circle in pixels |\n| Cluster Markers | boolean | false | Group nearby markers into cluster badges at lower zoom levels |\n| Show Popup on Click | boolean | true | Show a popup with row data when clicking a marker |\n\n## Tips\n\n- Enable Cluster Markers when plotting hundreds of points to keep the map readable at low zoom levels.\n- Use Carto Dark or Carto Light tile layers for a cleaner background when the data overlay is the focus.\n- Set Auto-fit Bounds to true so the map automatically frames all your data points on first load.","src/content/docs/charts/map.mdx","f5c4e16a9594d24b","charts/map.mdx","charts/markdown",{"id":138,"data":140,"body":146,"filePath":147,"digest":148,"legacyId":149,"deferredRender":16},{"title":141,"description":142,"editUrl":16,"head":143,"template":47,"sidebar":144,"pagefind":16,"draft":35},"Markdown Widget","Static rich text content for dashboard annotations and instructions.",[],{"hidden":35,"attrs":145},{},"## Overview\n\nThe Markdown widget renders static rich text content directly on the dashboard. Use it for headings, instructions, documentation links, or any explanatory text that helps users understand the dashboard. No query or database connection is required.\n\n## Query Format\n\nThis widget does not use a query. Content is entered directly in the Chart Options panel.\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Markdown Content | text | (empty) | Markdown text to render. Supports headings, bold, italic, links, lists, code blocks, and blockquotes |\n\n## Supported Markdown Syntax\n\n```markdown\n# Heading 1\n## Heading 2\n### Heading 3\n\n**Bold text** and *italic text*\n\n- Bullet list item\n- Another item\n\n1. Numbered list\n2. Second item\n\n[Link text](https://example.com)\n\n> Blockquote\n\n`inline code` and code blocks with triple backticks\n```\n\n## Tips\n\n- Use Markdown widgets as section headers to organize a dashboard into logical groups.\n- Add a brief description at the top of a dashboard explaining what data sources it covers and how to interpret the charts.\n- Markdown widgets resize with the grid layout, so keep content concise to avoid scrolling in small widgets.","src/content/docs/charts/markdown.mdx","394f5ecd095a7b03","charts/markdown.mdx","charts/param-select",{"id":150,"data":152,"body":158,"filePath":159,"digest":160,"legacyId":161,"deferredRender":16},{"title":153,"description":154,"editUrl":16,"head":155,"template":47,"sidebar":156,"pagefind":16,"draft":35},"Parameter Select","Dropdown, date picker, and other input controls that feed parameters to other widgets.",[],{"hidden":35,"attrs":157},{},"## Overview\n\nParameter Select widgets collect user input and pass it to other widgets' queries as `$param_name` variables. They enable interactive filtering across an entire dashboard without modifying queries. Parameter widgets do not display data themselves.\n\n## Parameter Types\n\n| Type | Input Control | Value Produced |\n|------|--------------|----------------|\n| Select | Dropdown (populated by a seed query) | Single string |\n| Text | Free-text input | String |\n| Number | Numeric input | Number |\n| Date | Date picker | ISO date string |\n| Date Range | Start/end date pickers | `{start, end}` object |\n| Boolean | Toggle switch | `true` or `false` |\n| Multiselect | Multi-value dropdown | Array of strings |\n| Slider | Range slider | Number |\n\n## Seed Query (Select / Multiselect)\n\nFor Select and Multiselect types, a seed query populates the dropdown options. Return a single column -- each row becomes an option.\n\n### Cypher\n\n```cypher\nMATCH (m:Movie)\nRETURN DISTINCT m.released AS year\nORDER BY year\n```\n\n### SQL\n\n```sql\nSELECT DISTINCT role FROM \"user\" ORDER BY role\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Placeholder | text | (empty) | Hint text shown when no value has been chosen |\n| Search-as-you-type | boolean | true | Allow typing to filter the option list in real time |\n| Default Value | text | (empty) | Value used on dashboard load when no selection has been made |\n| Sync to URL | boolean | false | Persist the selected value as a URL parameter for sharing and page reloads |\n\n## Using Parameters in Queries\n\nOther widgets reference parameter values using `$param_name` syntax in their queries:\n\n```cypher\nMATCH (m:Movie)\nWHERE m.released = $param_year\nRETURN m.title, m.released\nORDER BY m.title\n```\n\n```sql\nSELECT name, email FROM \"user\"\nWHERE role = $param_role\nORDER BY name\n```\n\n## Tips\n\n- Enable Sync to URL so users can bookmark or share a dashboard with specific filter values pre-selected.\n- Set a Default Value for parameters that should always have a selection on first load.\n- See [Parameters](/dashboards/parameters) for details on parameter substitution, cascading parameters, and advanced usage.","src/content/docs/charts/param-select.mdx","51a7201adb00f509","charts/param-select.mdx","charts/pie",{"id":162,"data":164,"body":170,"filePath":171,"digest":172,"legacyId":173,"deferredRender":16},{"title":165,"description":166,"editUrl":16,"head":167,"template":47,"sidebar":168,"pagefind":16,"draft":35},"Pie / Doughnut Chart","Proportional slices for part-to-whole comparisons.",[],{"hidden":35,"attrs":169},{},"## Overview\n\nThe Pie Chart shows how a total is divided among categories. Each slice represents a category's share of the whole. Enable donut mode to add a center cutout, which is useful for displaying a total or label in the middle.\n\n## Query Format\n\nReturn exactly 2 columns: the first column is the slice label (string), and the second column is the numeric value.\n\n### Cypher\n\n```cypher\nMATCH (p:Person)-[r]->(m:Movie)\nRETURN type(r) AS category, count(*) AS total\nORDER BY total DESC\n```\n\n### SQL\n\n```sql\nSELECT role AS category, COUNT(*) AS total\nFROM \"user\"\nGROUP BY role\nORDER BY total DESC\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Donut Style | boolean | false | Cut a hole in the centre to render as a donut |\n| Rose/Nightingale Mode | boolean | false | Vary each slice's radius by its value |\n| Label Position | select | outside | Where to place slice labels: outside, inside, or center |\n| Show Labels | boolean | true | Show the category name on each slice |\n| Show Percentage | boolean | true | Show the percentage value on each slice |\n| Show Legend | boolean | true | Show the legend identifying each slice |\n| Sort Slices by Value | boolean | false | Sort slices largest-first for a cleaner layout |\n| Top N Slices | number | 0 (all) | Show only the top N slices; group the rest into \"Other\" |\n| Donut Center Text | text | (empty) | Custom text in the donut center. Blank shows the total |\n| Decimal Places | number | -1 (auto) | Fixed decimal places in tooltips (0-6) |\n\n## Tips\n\n- Use Top N Slices to avoid visual clutter when you have many small categories -- the rest are grouped into \"Other\".\n- Enable Donut Style and set Donut Center Text to display a KPI in the middle of the chart.\n- Rose/Nightingale mode works well when you want to emphasize the magnitude difference between categories.","src/content/docs/charts/pie.mdx","6cbca5cacfa0cdd7","charts/pie.mdx","charts/single-value",{"id":174,"data":176,"body":182,"filePath":183,"digest":184,"legacyId":185,"deferredRender":16},{"title":177,"description":178,"editUrl":16,"head":179,"template":47,"sidebar":180,"pagefind":16,"draft":35},"Single Value","Large KPI card for displaying one key metric.",[],{"hidden":35,"attrs":181},{},"## Overview\n\nThe Single Value widget displays a single number prominently, making it ideal for KPIs and key metrics. It supports prefixes, suffixes, number formatting, and an optional trend indicator comparing to a previous period.\n\n## Query Format\n\nReturn a single row with 1 numeric column. For trend mode, return 2 rows where the first row is the current period and the second row is the previous period.\n\n### Cypher\n\n```cypher\nMATCH (p:Person)\nRETURN count(p) AS total\n```\n\n### SQL\n\n```sql\nSELECT COUNT(*) AS total FROM \"user\"\n```\n\nFor trend mode (2 rows):\n\n```sql\nSELECT COUNT(*) AS total FROM \"user\" WHERE created_at >= NOW() - INTERVAL '7 days'\nUNION ALL\nSELECT COUNT(*) AS total FROM \"user\" WHERE created_at >= NOW() - INTERVAL '14 days'\n AND created_at \u003C NOW() - INTERVAL '7 days'\nORDER BY total DESC\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Title | text | (empty) | Custom heading shown above the value |\n| Prefix | text | (empty) | Text prepended to the value (e.g., \"$\", \"EUR\") |\n| Suffix | text | (empty) | Text appended to the value (e.g., \"%\", \" items\") |\n| Decimal Places | number | -1 (auto) | Fixed decimal places (0-6). -1 for automatic |\n| Font Size | select | lg | Size of the displayed value: Small, Medium, Large, Extra Large |\n| Number Format | select | plain | Plain, Comma (1,234), Compact (1.2k), or Percent |\n| Show Trend Indicator | boolean | false | Show a trend arrow comparing current to previous period (requires 2 rows) |\n\n## Tips\n\n- Combine Prefix and Number Format for currency displays: set Prefix to \"$\" and Number Format to \"Comma\" for values like \"$1,234,567\".\n- Enable Show Trend Indicator and return two rows to add an up/down arrow showing period-over-period change.\n- Use Compact number format for large numbers that would otherwise be hard to read at a glance.","src/content/docs/charts/single-value.mdx","dbb01f8cf370e793","charts/single-value.mdx","charts/table",{"id":186,"data":188,"body":194,"filePath":195,"digest":196,"legacyId":197,"deferredRender":16},{"title":189,"description":190,"editUrl":16,"head":191,"template":47,"sidebar":192,"pagefind":16,"draft":35},"Data Table","Sortable, filterable, paginated data grid for tabular results.",[],{"hidden":35,"attrs":193},{},"## Overview\n\nThe Data Table displays query results as a fully interactive grid with sorting, filtering, pagination, and optional row grouping. Use it when you need to browse raw data or let users explore results interactively.\n\n## Query Format\n\nReturn any columns -- all are displayed as-is in the table. Column names become the header labels.\n\n### Cypher\n\n```cypher\nMATCH (p:Person)-[:ACTED_IN]->(m:Movie)\nRETURN p.name AS actor, m.title AS movie, m.released AS year\nORDER BY m.released DESC LIMIT 100\n```\n\n### SQL\n\n```sql\nSELECT name, email, created_at, role\nFROM \"user\"\nORDER BY created_at DESC\nLIMIT 100\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| Enable Sorting | boolean | true | Allow clicking column headers to sort rows |\n| Row Selection | boolean | false | Allow selecting individual rows by clicking |\n| Global Search | boolean | true | Show a search box that filters across all columns |\n| Column Filters | boolean | true | Show per-column filter inputs below each header |\n| Column Resizing | boolean | false | Allow drag-to-resize column borders |\n| Enable Pagination | boolean | true | Show Previous/Next controls for paging |\n| Page Size | number | 10 | Number of rows shown per page |\n| Empty Message | text | No results | Text displayed when the query returns no rows |\n| Enable Row Grouping | boolean | false | Allow grouping rows by column values |\n| Group By Columns | column-multi-select | (none) | Columns to group by. Order determines nesting hierarchy |\n| Aggregation Function | select | sum | Aggregation for numeric columns in groups: Sum, Average, Median, Count, Min, Max |\n\n## Tips\n\n- Combine Global Search with Column Filters for power users who need to drill into specific column values.\n- Enable Row Grouping with an aggregation function to create summary views without changing your query.\n- Set Page Size to match your widget height -- 10-15 rows is typical for a half-height widget.","src/content/docs/charts/table.mdx","766cbd3aab3946d2","charts/table.mdx","developer",{"id":198,"data":200,"body":206,"filePath":207,"digest":208,"legacyId":209,"deferredRender":16},{"title":201,"description":202,"editUrl":16,"head":203,"template":47,"sidebar":204,"pagefind":16,"draft":35},"Developer Guide","Extend NeoBoard with new chart types, connectors, parameters, and widgets.",[],{"hidden":35,"attrs":205},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nThis section covers how to contribute to NeoBoard and extend it with new features.\n\n**New here?** Start with these in order:\n\n1. [Architecture](/developer/architecture) — understand the packages, data flow, and where code lives\n2. [Dev Setup](/developer/contributing/setup) — clone, install, run the dev server\n3. [Testing Guide](/developer/contributing/testing) — write tests before code (TDD)\n4. [PR Workflow](/developer/contributing/pr-workflow) — submit your changes\n\n## Built-in Plugins\n\nAdd new chart types or database connectors directly to the NeoBoard codebase (requires a PR):\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Chart Plugin\" description=\"Add a new chart type (heatmap, funnel, etc.)\" href=\"/developer/extending/new-chart-plugin\" />\n \u003CLinkCard title=\"Connector Plugin\" description=\"Add a new database (MySQL, etc.)\" href=\"/developer/extending/new-connector-plugin\" />\n\u003C/CardGrid>\n\n## External Plugins\n\nBuild and publish NeoBoard plugins as independent npm packages:\n\n\u003CCardGrid>\n \u003CLinkCard title=\"External Plugin Guide\" description=\"Architecture, when to use, and how plugins work\" href=\"/developer/plugins\" />\n \u003CLinkCard title=\"MongoDB Example\" description=\"Full end-to-end: build, test, publish a MongoDB connector\" href=\"/developer/plugins/mongodb-connector\" />\n\u003C/CardGrid>\n\n## Other Extending Guides\n\n\u003CCardGrid>\n \u003CLinkCard title=\"New Parameter Type\" href=\"/developer/extending/new-parameter-type\" />\n \u003CLinkCard title=\"New Widget Type\" href=\"/developer/extending/new-widget-type\" />\n\u003C/CardGrid>\n\n## Contributing\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Dev Setup\" href=\"/developer/contributing/setup\" />\n \u003CLinkCard title=\"Testing\" href=\"/developer/contributing/testing\" />\n \u003CLinkCard title=\"Code Style\" href=\"/developer/contributing/code-style\" />\n \u003CLinkCard title=\"PR Workflow\" href=\"/developer/contributing/pr-workflow\" />\n\u003C/CardGrid>","src/content/docs/developer/index.mdx","e1429f31fdc7364a","developer/index.mdx","cli/commands",{"id":210,"data":212,"body":218,"filePath":219,"digest":220,"legacyId":221,"deferredRender":16},{"title":213,"description":214,"editUrl":16,"head":215,"template":47,"sidebar":216,"pagefind":16,"draft":35},"Command Reference","Complete reference for all NeoBoard CLI commands.",[],{"hidden":35,"attrs":217},{},"All commands are run from the repository root as `node cli/dist/index.js \u003Ccommand>`. If you have the CLI installed globally, replace with `neoboard \u003Ccommand>`.\n\n## setup\n\nFull setup in one command: runs `init`, then `start` (which includes migrations).\n\n```bash\nneoboard setup [--mode \u003Cdocker|local>]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--mode \u003Cmode>` | `docker` | `docker` -- everything in containers. `local` -- app locally, databases separate. |\n\n```bash\n# Docker setup (default)\nneoboard setup\n\n# Local setup\nneoboard setup --mode local\n```\n\n## init\n\nInitialize project configuration and install dependencies. Creates `neoboard.config.json` and `.neoboard.local`. In local mode, also installs npm dependencies and generates `app/.env.local`.\n\n```bash\nneoboard init [--mode \u003Cdocker|local>]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--mode \u003Cmode>` | `docker` | `docker` or `local`. |\n\n```bash\nneoboard init --mode local\n```\n\n## start\n\nStart NeoBoard services and run database migrations. In Docker mode, launches containers via `docker compose`. In local mode, connects to your running PostgreSQL and Neo4j instances.\n\n```bash\nneoboard start\n```\n\nNo options. The mode is read from `.neoboard.local` (set during `init` or `setup`).\n\n```bash\nneoboard start\n```\n\n## stop\n\nStop Docker containers. Only applies to Docker mode.\n\n```bash\nneoboard stop [--volumes]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--volumes` | `false` | Also remove data volumes, giving you a clean slate. |\n\n```bash\n# Stop but keep data\nneoboard stop\n\n# Stop and delete all data\nneoboard stop --volumes\n```\n\n## dev\n\nStart the Next.js dev server with hot reload. Only works in local mode. If databases are not running, attempts to start them via Docker Compose automatically.\n\n```bash\nneoboard dev\n```\n\nNo options. Validates that `app/.env.local` has all required variables before starting. Press `Ctrl+C` to stop.\n\n```bash\nneoboard dev\n```\n\n## status\n\nShow the health of PostgreSQL, Neo4j, and the NeoBoard app. Displays mode, version, container count, and migration status.\n\n```bash\nneoboard status\n```\n\n```bash\nneoboard status\n# Mode: docker\n# Version: 1.0.0\n# Docker: running (3 containers)\n#\n# Service Status\n# ---\n# PostgreSQL healthy (localhost:5432)\n# Neo4j healthy (localhost:7687)\n# App healthy (http://localhost:3000)\n#\n# Migrations: 12 applied (latest: 0012_add_sharing)\n```\n\n## doctor\n\nCheck that all prerequisites are met: Docker daemon, Docker Compose v2, Node.js version, port availability, `node_modules`, and `.env.local`. Exits with code 1 if any check fails in Docker mode. In local mode, Docker checks are downgraded to warnings.\n\n```bash\nneoboard doctor\n```\n\n```bash\nneoboard doctor\n```\n\n## demo\n\nSet up a full demo environment with sample data. Runs `setup`, then seeds Neo4j with graph data and PostgreSQL with a demo user and sample dashboards.\n\n```bash\nneoboard demo [--mode \u003Cdocker|local>]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--mode \u003Cmode>` | `docker` | `docker` or `local`. |\n\n```bash\nneoboard demo\n# ...setup output...\n# Login credentials:\n# Email: admin@neoboard.local\n# Password: admin123\n```\n\n## env\n\nGenerate or validate the `app/.env.local` file. In Docker mode, environment is managed by `docker-compose` so this command is not needed.\n\n```bash\nneoboard env [--regenerate] [--validate]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--regenerate` | `false` | Overwrite existing `.env.local` with fresh secrets. |\n| `--validate` | `false` | Check that all required variables (`DATABASE_URL`, `ENCRYPTION_KEY`, `NEXTAUTH_SECRET`, `NEXTAUTH_URL`) are set. |\n\n```bash\n# Generate .env.local (skips if it already exists)\nneoboard env\n\n# Force regenerate all secrets\nneoboard env --regenerate\n\n# Validate existing file\nneoboard env --validate\n```\n\n## config list\n\nShow all configuration values from `neoboard.config.json`.\n\n```bash\nneoboard config list\n```\n\n```bash\nneoboard config list\n# ports.app = 3000\n# ports.postgres = 5432\n# ports.neo4j_http = 7474\n# ports.neo4j_bolt = 7687\n# postgres.user = neoboard\n# ...\n```\n\n## config get\n\nGet a single configuration value by key.\n\n```bash\nneoboard config get \u003Ckey>\n```\n\nValid keys: `ports.app`, `ports.postgres`, `ports.neo4j_http`, `ports.neo4j_bolt`, `postgres.user`, `postgres.password`, `postgres.database`, `neo4j.user`, `neo4j.password`, `seed.script`, `seed.neo4j_cypher`.\n\n```bash\nneoboard config get ports.app\n# 3000\n```\n\n## config set\n\nSet a configuration value. Port values are automatically parsed as numbers.\n\n```bash\nneoboard config set \u003Ckey> \u003Cvalue>\n```\n\n```bash\nneoboard config set ports.app 4000\nneoboard config set postgres.database mydb\n```\n\n## logs\n\nTail Docker container logs. Available services: `postgres` (or `pg`), `neo4j`, `app`.\n\n```bash\nneoboard logs [service] [-f] [-n \u003Clines>]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `[service]` | all | Service to show logs for: `postgres`, `pg`, `neo4j`, or `app`. Omit for all. |\n| `-f, --follow` | `false` | Follow log output in real time. |\n| `-n, --lines \u003Cn>` | `50` | Number of lines to show. |\n\n```bash\n# Last 50 lines from all containers\nneoboard logs\n\n# Follow PostgreSQL logs\nneoboard logs postgres -f\n\n# Last 100 lines from Neo4j\nneoboard logs neo4j -n 100\n```\n\n## db migrate\n\nRun Drizzle database migrations. Can also show migration status or preview what would be applied.\n\n```bash\nneoboard db migrate [--status] [--to \u003Cversion>] [--dry-run]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--status` | `false` | Show applied migrations and their dates. |\n| `--to \u003Cversion>` | latest | Target migration version (not yet fully supported). |\n| `--dry-run` | `false` | Preview migrations without applying them. |\n\n```bash\n# Apply all pending migrations\nneoboard db migrate\n\n# Check what's been applied\nneoboard db migrate --status\n\n# Preview without applying\nneoboard db migrate --dry-run\n```\n\n## db seed\n\nSeed databases with sample data. Seeds both Neo4j and PostgreSQL by default.\n\n```bash\nneoboard db seed [--neo4j] [--demo]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--neo4j` | `false` | Seed only Neo4j graph data. |\n| `--demo` | `false` | Seed only PostgreSQL demo user and dashboards. |\n\nIf Neo4j already has nodes, the Neo4j seed is skipped automatically.\n\n```bash\n# Seed everything\nneoboard db seed\n\n# Seed only Neo4j\nneoboard db seed --neo4j\n\n# Seed only demo user/dashboards\nneoboard db seed --demo\n```\n\n## db reset\n\nDrop and recreate the PostgreSQL database, replay all migrations, and optionally re-seed. Only works on localhost databases as a safety measure.\n\n```bash\nneoboard db reset [--no-seed] [--force]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--no-seed` | `false` | Skip seeding after reset. |\n| `--force` | `false` | Skip the confirmation prompt. |\n\n```bash\n# Reset with confirmation prompt\nneoboard db reset\n\n# Reset without prompting, skip seed\nneoboard db reset --force --no-seed\n```\n\n## db dump\n\nExport the PostgreSQL database to a SQL file. Useful for backups before migrations or resets.\n\n```bash\nneoboard db dump [--output \u003Cpath>] [--data-only]\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--output \u003Cpath>` | `neoboard-dump-\u003Ctimestamp>.sql` | Output file path. |\n| `--data-only` | `false` | Dump data only, no schema definitions. |\n\n```bash\n# Dump to default file\nneoboard db dump\n\n# Dump to specific file\nneoboard db dump --output backup.sql\n\n# Dump data only\nneoboard db dump --data-only\n```","src/content/docs/cli/commands.mdx","4fb5b35c5d2422ee","cli/commands.mdx","cli/docker-setup",{"id":222,"data":224,"body":230,"filePath":231,"digest":232,"legacyId":233,"deferredRender":16},{"title":225,"description":226,"editUrl":16,"head":227,"template":47,"sidebar":228,"pagefind":16,"draft":35},"Docker Setup","Get NeoBoard running with Docker in under 5 minutes.",[],{"hidden":35,"attrs":229},{},"This guide sets up NeoBoard with everything running in Docker containers -- the app, PostgreSQL, and Neo4j. This is the recommended approach for trying NeoBoard quickly.\n\n## Prerequisites\n\n- **Docker Desktop** -- running and accessible from the terminal\n- **Node.js 20+** -- to build and run the CLI\n- **Git** -- to clone the repository\n\n## Steps\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/alfredo1996/neoboard.git\ncd neoboard\n```\n\n### 2. Build the CLI\n\n```bash\nnpm run cli:build\n```\n\n### 3. Verify prerequisites\n\n```bash\nnode cli/dist/index.js doctor\n```\n\nThis checks that Docker is running, Node.js is the right version, required ports are available, and config files exist. Fix any issues before continuing.\n\n### 4. Run the demo setup\n\n```bash\nnode cli/dist/index.js demo\n```\n\nThis single command does everything:\n\n1. **init** -- creates `neoboard.config.json` and `.neoboard.local`\n2. **start** -- launches Docker containers via `docker compose`, waits for health checks\n3. **migrate** -- runs Drizzle database migrations against PostgreSQL\n4. **seed** -- loads Neo4j graph data and creates a demo user with sample dashboards\n\n### 5. Open NeoBoard\n\nNavigate to [http://localhost:3000](http://localhost:3000) and log in:\n\n| Field | Value |\n|-------|-------|\n| Email | `admin@neoboard.local` |\n| Password | `admin123` |\n\n## Default Ports\n\n| Service | Port | URL |\n|---------|------|-----|\n| NeoBoard app | 3000 | `http://localhost:3000` |\n| Neo4j Browser | 7474 | `http://localhost:7474` |\n| Neo4j Bolt | 7687 | `bolt://localhost:7687` |\n| PostgreSQL | 5432 | `localhost:5432` |\n\nChange ports with `neoboard config set`:\n\n```bash\nnode cli/dist/index.js config set ports.app 4000\n```\n\n## Stopping and Restarting\n\n```bash\n# Stop containers (keeps data)\nnode cli/dist/index.js stop\n\n# Stop containers and delete all data\nnode cli/dist/index.js stop --volumes\n\n# Restart\nnode cli/dist/index.js start\n```\n\n## Common Issues\n\n### Ports already in use\n\nIf `doctor` reports ports in use, either stop the conflicting process or change the port:\n\n```bash\nnode cli/dist/index.js config set ports.postgres 5433\n```\n\n### Docker daemon not running\n\nStart Docker Desktop and wait for it to be ready. Verify with:\n\n```bash\ndocker info\n```\n\n### Slow first build\n\nThe first `docker compose up` downloads images and builds the app container. This can take several minutes depending on your internet connection. Subsequent starts are fast.\n\n### Container won't start\n\nCheck container logs for errors:\n\n```bash\nnode cli/dist/index.js logs postgres\nnode cli/dist/index.js logs neo4j\n```\n\nTo start completely fresh:\n\n```bash\nnode cli/dist/index.js stop --volumes\nnode cli/dist/index.js demo\n```","src/content/docs/cli/docker-setup.mdx","59d975ce5afd1d8a","cli/docker-setup.mdx","cli",{"id":234,"data":236,"body":242,"filePath":243,"digest":244,"legacyId":245,"deferredRender":16},{"title":237,"description":238,"editUrl":16,"head":239,"template":47,"sidebar":240,"pagefind":16,"draft":35},"CLI Overview","Install, run, and manage NeoBoard from the command line.",[],{"hidden":35,"attrs":241},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nThe NeoBoard CLI handles project setup, database management, and service lifecycle. One command gets you from clone to running app.\n\n## Installation Modes\n\n| Mode | Command | What it does |\n|------|---------|-------------|\n| **Docker** (default) | `neoboard setup` | Runs everything in containers -- app, PostgreSQL, Neo4j |\n| **Local + Docker DBs** | `neoboard setup --mode local` | App runs locally with Node.js, databases in Docker |\n| **Fully local** | `neoboard init --mode local` | Install deps and generate config -- bring your own PostgreSQL and Neo4j |\n\n## Prerequisites\n\n- **Node.js 20+** -- required for all modes\n- **Docker Desktop** -- required for Docker mode, optional for local mode\n- **Git** -- to clone the repository\n\n## Command Reference\n\n### Top-Level Commands\n\n| Command | Description |\n|---------|-------------|\n| `neoboard setup` | Full setup: init + start + migrate. One command to get running. |\n| `neoboard init` | Initialize config and install dependencies. |\n| `neoboard start` | Start services, run migrations, verify health. |\n| `neoboard stop` | Stop Docker containers. |\n| `neoboard dev` | Start Next.js dev server with hot reload (local mode). |\n| `neoboard status` | Show health of PostgreSQL, Neo4j, and the app. |\n| `neoboard doctor` | Check prerequisites: Docker, Node.js, ports, env file. |\n| `neoboard demo` | Full setup + seed demo data and sample dashboards. |\n| `neoboard env` | Generate or validate `app/.env.local`. |\n| `neoboard logs` | Tail Docker container logs. |\n\n### Config Commands\n\n| Command | Description |\n|---------|-------------|\n| `neoboard config list` | Show all config values. |\n| `neoboard config get \u003Ckey>` | Get a single config value (e.g. `ports.app`). |\n| `neoboard config set \u003Ckey> \u003Cvalue>` | Set a config value (e.g. `neoboard config set ports.app 4000`). |\n\n### Database Commands\n\n| Command | Description |\n|---------|-------------|\n| `neoboard db migrate` | Run Drizzle migrations. |\n| `neoboard db seed` | Seed database with sample data. |\n| `neoboard db reset` | Drop and recreate the database, replay migrations. |\n| `neoboard db dump` | Export PostgreSQL database to a SQL file. |\n\n## Quick Start\n\nThe fastest path from zero to running:\n\n```bash\ngit clone https://github.com/alfredo1996/neoboard.git\ncd neoboard\nnpm run cli:build\nnode cli/dist/index.js demo\n```\n\nOpen `http://localhost:3000` and log in with `admin@neoboard.local` / `admin123`.\n\n## Next Steps\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Docker Setup\" href=\"/cli/docker-setup\" />\n \u003CLinkCard title=\"Local Setup\" href=\"/cli/local-setup\" />\n \u003CLinkCard title=\"Command Reference\" href=\"/cli/commands\" />\n\u003C/CardGrid>","src/content/docs/cli/index.mdx","9a4bba1b4fa7b2e9","cli/index.mdx","cli/local-setup",{"id":246,"data":248,"body":254,"filePath":255,"digest":256,"legacyId":257,"deferredRender":16},{"title":249,"description":250,"editUrl":16,"head":251,"template":47,"sidebar":252,"pagefind":16,"draft":35},"Local Setup","Run NeoBoard locally with your own PostgreSQL and Neo4j.",[],{"hidden":35,"attrs":253},{},"Local mode runs the Next.js app directly on your machine with Node.js. Use this when you have existing databases, cannot run Docker, or want a production-like setup.\n\n## When to Use Local Mode\n\n- You already have PostgreSQL and Neo4j running\n- Docker is unavailable or restricted in your environment\n- You want hot-reload during development\n- You need a setup closer to production\n\n## Prerequisites\n\n- **Node.js 20+**\n- **PostgreSQL 14+** -- running and accessible\n- **Neo4j 5+** -- running and accessible\n- **Git**\n\n## Steps\n\n### 1. Initialize the project\n\n```bash\ngit clone https://github.com/alfredo1996/neoboard.git\ncd neoboard\nnpm run cli:build\nnode cli/dist/index.js init --mode local\n```\n\nThis installs dependencies across all packages (`app/`, `component/`, `connection/`) and generates `app/.env.local` with fresh secrets.\n\n### 2. Configure your database connection\n\nEdit `app/.env.local` and set `DATABASE_URL` to point at your PostgreSQL instance:\n\n```bash\nDATABASE_URL=postgresql://neoboard:neoboard@localhost:5432/neoboard\n```\n\n### 3. Customize ports and credentials\n\nEdit `neoboard.config.json` at the project root, or use the CLI:\n\n```bash\nnode cli/dist/index.js config set ports.postgres 5433\nnode cli/dist/index.js config set postgres.user myuser\nnode cli/dist/index.js config set postgres.password mypassword\n```\n\n### 4. Start your databases\n\nMake sure PostgreSQL and Neo4j are running and reachable on the configured ports. The CLI will check connectivity during startup.\n\n### 5. Start NeoBoard\n\n```bash\nnode cli/dist/index.js start\n```\n\nThis verifies database health, runs migrations, and prints the service URLs. If a database is unreachable, you will see a warning with the expected host and port.\n\n### 6. Start the dev server\n\n```bash\nnode cli/dist/index.js dev\n```\n\nThis launches the Next.js dev server with hot reload. If databases are not running, it will attempt to start them via Docker Compose as a fallback.\n\nOpen [http://localhost:3000](http://localhost:3000) to access NeoBoard.\n\n## Environment Variables\n\nThe `app/.env.local` file is generated by `neoboard init --mode local`. These are the required variables:\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `DATABASE_URL` | PostgreSQL connection string | `postgresql://neoboard:neoboard@localhost:5432/neoboard` |\n| `ENCRYPTION_KEY` | AES-256-GCM key for connector credentials (64 hex chars) | Auto-generated |\n| `NEXTAUTH_SECRET` | Auth.js session signing secret | Auto-generated |\n| `NEXTAUTH_URL` | Base URL of the app | `http://localhost:3000` |\n| `ADMIN_BOOTSTRAP_TOKEN` | One-time token for first admin signup | Auto-generated |\n\nTo regenerate all secrets:\n\n```bash\nnode cli/dist/index.js env --regenerate\n```\n\nTo check that all required variables are set:\n\n```bash\nnode cli/dist/index.js env --validate\n```\n\n## Config Keys\n\nAll keys available in `neoboard.config.json`:\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `ports.app` | `3000` | App server port |\n| `ports.postgres` | `5432` | PostgreSQL port |\n| `ports.neo4j_http` | `7474` | Neo4j HTTP/Browser port |\n| `ports.neo4j_bolt` | `7687` | Neo4j Bolt protocol port |\n| `postgres.user` | `neoboard` | PostgreSQL username |\n| `postgres.password` | `neoboard` | PostgreSQL password |\n| `postgres.database` | `neoboard` | PostgreSQL database name |\n| `neo4j.user` | `neo4j` | Neo4j username |\n| `neo4j.password` | `neoboard123` | Neo4j password |\n| `seed.script` | `scripts/seed-demo.mjs` | PostgreSQL seed script path |\n| `seed.neo4j_cypher` | `docker/neo4j/init.cypher` | Neo4j seed Cypher file path |\n\n## First-Time Signup\n\nAfter starting the app, navigate to `/signup`. You will need the `ADMIN_BOOTSTRAP_TOKEN` printed during `init`. The first user gets the **admin** role automatically.","src/content/docs/cli/local-setup.mdx","7c8b8ead53bdfddf","cli/local-setup.mdx","getting-started/configuration",{"id":258,"data":260,"body":266,"filePath":267,"digest":268,"legacyId":269,"deferredRender":16},{"title":261,"description":262,"editUrl":16,"head":263,"template":47,"sidebar":264,"pagefind":16,"draft":35},"Configuration","Environment variables and configuration options for NeoBoard.",[],{"hidden":35,"attrs":265},{},"NeoBoard is configured through environment variables and an optional config file. Create a `.env.local` file in the `app/` directory (i.e. `app/.env.local`).\n\n## Example `.env.local`\n\n```bash\n# Required\nDATABASE_URL=\"postgresql://neoboard:neoboard@localhost:5432/neoboard\"\nNEXTAUTH_SECRET=\"your-random-secret-here\"\nENCRYPTION_KEY=\"your-64-char-hex-key-here\"\n\n# Optional\nNEXTAUTH_URL=\"http://localhost:3000\"\nMAX_QUERY_ROWS=1000\nQUERY_TIMEOUT_MS=30000\n```\n\nGenerate secrets with:\n\n```bash\n# NEXTAUTH_SECRET\nopenssl rand -base64 32\n\n# ENCRYPTION_KEY\nopenssl rand -hex 32\n```\n\n## Required Variables\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `DATABASE_URL` | PostgreSQL connection string for metadata | `postgresql://user:pass@localhost:5432/neoboard` |\n| `NEXTAUTH_SECRET` | Secret for signing session tokens | Output of `openssl rand -base64 32` |\n| `ENCRYPTION_KEY` | AES-256 key for encrypting stored credentials | Output of `openssl rand -hex 32` |\n\n## Optional Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `NEXTAUTH_URL` | Public URL of the NeoBoard instance | `http://localhost:3000` |\n| `DEFAULT_TENANT_ID` | Default tenant for single-tenant deployments | `default` |\n| `MAX_QUERY_ROWS` | Maximum rows returned per query | `1000` |\n| `QUERY_TIMEOUT_MS` | Default query timeout in milliseconds | `30000` |\n\n## SSO / OIDC Variables\n\nSSO requires `NEOBOARD_EDITION=enterprise`. Set the three required OIDC variables plus the edition flag to enable single sign-on. See the [SSO guide](/authentication/sso) for full setup instructions and IdP examples.\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `OIDC_ISSUER` | OIDC issuer URL | (required for SSO) |\n| `OIDC_CLIENT_ID` | OIDC client identifier | (required for SSO) |\n| `OIDC_CLIENT_SECRET` | OIDC client secret | (required for SSO) |\n| `OIDC_DISPLAY_NAME` | Login button label | `SSO` |\n| `OIDC_CLAIM_KEY` | IdP claim for role mapping | (unset — no mapping) |\n| `OIDC_DEFAULT_ROLE` | Role when no claim matches | `creator` |\n| `OIDC_ENFORCE_SSO` | Hide password form for non-admins | `false` |\n\n## Enterprise Variables\n\nSet `NEOBOARD_EDITION=enterprise` to enable enterprise features like the Admin UI for multi-provider SSO, custom roles, and more.\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `NEOBOARD_EDITION` | Set to `enterprise` to enable enterprise features | (unset — community edition) |\n\n## Config File (Optional)\n\nYou can also use a `neoboard.config.json` file in the project root for non-secret settings:\n\n```json\n{\n \"maxQueryRows\": 1000,\n \"queryTimeoutMs\": 30000,\n \"defaultTenantId\": \"default\",\n \"features\": {\n \"sso\": false,\n \"customRoles\": false,\n \"connectorLabels\": false\n }\n}\n```\n\n## View Current Config\n\nUse the CLI to see all active configuration values:\n\n```bash\nneoboard config list\n```\n\n```\n NeoBoard Config\n ---------------\n DATABASE_URL = postgresql://...@localhost:5432/neoboard\n NEXTAUTH_URL = http://localhost:3000\n ENCRYPTION_KEY = ******** (set)\n MAX_QUERY_ROWS = 1000\n QUERY_TIMEOUT_MS = 30000\n DEFAULT_TENANT_ID = default\n```\n\n## Security Notes\n\n- **`ENCRYPTION_KEY`** is critical. If lost, all stored database credentials become unrecoverable.\n- Never commit `.env.local` to version control.\n- Rotate `NEXTAUTH_SECRET` periodically in production.","src/content/docs/getting-started/configuration.mdx","fd8bdf785e79d4d8","getting-started/configuration.mdx","getting-started",{"id":270,"data":272,"body":278,"filePath":279,"digest":280,"legacyId":281,"deferredRender":16},{"title":273,"description":274,"editUrl":16,"head":275,"template":47,"sidebar":276,"pagefind":16,"draft":35},"Getting Started","Set up NeoBoard and create your first dashboard.",[],{"hidden":35,"attrs":277},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nGet NeoBoard running in minutes with Docker Compose, then create your first dashboard.\n\n## Prerequisites\n\n- [Docker](https://docs.docker.com/get-docker/) and Docker Compose\n- A Neo4j or PostgreSQL database to connect to (or use the included dev containers)\n\n## Next Steps\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Installation\" href=\"/getting-started/installation\" />\n \u003CLinkCard title=\"Quick Start\" href=\"/getting-started/quick-start\" />\n \u003CLinkCard title=\"Configuration\" href=\"/getting-started/configuration\" />\n\u003C/CardGrid>","src/content/docs/getting-started/index.mdx","6522ef6a867abde8","getting-started/index.mdx","getting-started/installation",{"id":282,"data":284,"body":290,"filePath":291,"digest":292,"legacyId":293,"deferredRender":16},{"title":285,"description":286,"editUrl":16,"head":287,"template":47,"sidebar":288,"pagefind":16,"draft":35},"Installation","Install NeoBoard using Docker Compose, the CLI, or from source.",[],{"hidden":35,"attrs":289},{},"Pick one of three installation paths. Docker is the fastest.\n\n## Option 1: Docker (Recommended)\n\nClone the repo and start everything in one command:\n\n```bash\ngit clone https://github.com/alfredo1996/neoboard.git\ncd neoboard\nneoboard demo\n```\n\nThis starts NeoBoard on `http://localhost:3000`, PostgreSQL on port 5432, and Neo4j on ports 7474/7687.\n\n## Option 2: Local Mode (CLI)\n\nIf you have the NeoBoard CLI installed:\n\n```bash\nneoboard setup --mode local\n```\n\nThe CLI creates a `.env.local` file, starts database containers, runs migrations, and opens the app.\n\n## Option 3: Manual Setup\n\nFor full control or development:\n\n```bash\ngit clone https://github.com/alfredo1996/neoboard.git\ncd neoboard\n\n# Start database containers\ndocker compose up -d postgres neo4j\n\n# Install dependencies\nnpm ci --prefix connection\nnpm ci --prefix component\nnpm ci --prefix app\n\n# Run migrations and start dev server\nnpm run db:migrate\nnpm run dev\n```\n\nThe app will be available at `http://localhost:3000`.\n\n## First-Time Setup\n\n1. Go to `http://localhost:3000/signup`\n2. Create the first admin account\n3. The first user automatically gets the **admin** role\n\n## Verify Installation\n\nRun the doctor command to check that all services are healthy:\n\n```bash\nneoboard doctor\n```\n\nExpected output:\n\n```\n NeoBoard Doctor\n ---------------\n Next.js server ... running (http://localhost:3000)\n PostgreSQL ... connected (localhost:5432)\n Neo4j ... connected (localhost:7687)\n Encryption key ... set\n Migrations ... up to date\n All checks passed.\n```\n\nIf you see the dashboard list page after signing in, NeoBoard is running correctly.","src/content/docs/getting-started/installation.mdx","c7ef412107906526","getting-started/installation.mdx","getting-started/quick-start",{"id":294,"data":296,"body":302,"filePath":303,"digest":304,"legacyId":305,"deferredRender":16},{"title":297,"description":298,"editUrl":16,"head":299,"template":47,"sidebar":300,"pagefind":16,"draft":35},"Quick Start","Create your first dashboard in 5 minutes.",[],{"hidden":35,"attrs":301},{},"This guide walks you through creating your first dashboard. You will log in, add a connection, create a dashboard, and add a chart widget.\n\n## 1. Log In\n\nOpen `http://localhost:3000` in your browser. Sign in with the admin account you created during installation.\n\n![NeoBoard login page](/screenshots/login.png)\n\n## 2. Add a Connection\n\n1. Click **Connections** in the sidebar\n2. Click **Add Connection**\n3. Fill in your database details (name, type, URI, credentials)\n4. Click **Test Connection** to verify, then **Save**\n\nIf you used `neoboard demo`, a sample Neo4j database is already connected.\n\n## 3. Create a Dashboard\n\n![Dashboard list](/screenshots/dashboard-list.png)\n\n1. Click **Dashboards** in the sidebar\n2. Click **New Dashboard**\n3. Enter a name and click **Create**\n\n## 4. Add a Widget\n\n1. Click **Edit** on your new dashboard\n2. Click **Add Widget**\n3. Choose **Bar Chart** as the chart type\n4. Select your connection\n5. Enter a query:\n\n**Neo4j (Cypher):**\n```cypher\nMATCH (m:Movie)\nRETURN m.year AS year, count(*) AS count\nORDER BY year\n```\n\n**PostgreSQL (SQL):**\n```sql\nSELECT year, count(*)\nFROM movies\nGROUP BY year\nORDER BY year;\n```\n\n6. Click **Run** to preview the result\n7. Click **Save** to add the widget to your dashboard\n\n## 5. Arrange the Layout\n\n- **Drag** widgets to reposition them\n- **Resize** by dragging widget edges\n- Click **Save** when you are happy with the layout\n\n## Next Steps\n\n- Add [parameters](/dashboards/parameters) to make your dashboard interactive\n- Explore different [widget types](/dashboards/widgets) (tables, graphs, maps, forms)\n- Learn about [dashboard export/import](/dashboards/overview)","src/content/docs/getting-started/quick-start.mdx","1a7818a959bf15be","getting-started/quick-start.mdx","developer/contributing/code-style",{"id":306,"data":308,"body":314,"filePath":315,"digest":316,"legacyId":317,"deferredRender":16},{"title":309,"description":310,"editUrl":16,"head":311,"template":47,"sidebar":312,"pagefind":16,"draft":35},"Code Style","TypeScript conventions, lint rules, and coding standards.",[],{"hidden":35,"attrs":313},{},"## TypeScript\n\n- **Strict mode** enabled across all packages\n- No `any` without a comment explaining why\n- Prefer `unknown` over `any` for untyped values\n- Use explicit return types for exported functions\n\n## Linting\n\n```bash\nnpm run lint # Lint all packages\ncd app && npx next lint --fix # Auto-fix app/ lint errors\n```\n\nRun lint after every change to `app/`.\n\n## Naming Conventions\n\n| Item | Convention | Example |\n|------|-----------|---------|\n| Files | kebab-case | `chart-registry.ts` |\n| Components | PascalCase | `BaseChart` |\n| Functions | camelCase | `buildExportPayload` |\n| Constants | UPPER_SNAKE | `MAX_QUERY_ROWS` |\n| Types/Interfaces | PascalCase | `ConnectionCredentials` |\n| Test files | `*.test.ts` | `chart-registry.test.ts` |\n\n## Package Boundaries\n\nThese are **strict** — violations will be caught in code review:\n\n- `component/` — NO API calls, NO stores, NO imports from `app/`\n- `connection/` — NO UI, NO React, NO imports from `app/` or `component/`\n- `app/` — CAN import from `component/` and `connection/`\n\n## Query Safety\n\n- **Always** use parameterized queries\n- **Never** interpolate user input into query strings\n- **Never** modify or wrap user queries\n- Enforce read-only at the driver/transaction level","src/content/docs/developer/contributing/code-style.mdx","d941495da2e8d132","developer/contributing/code-style.mdx","developer/contributing/setup",{"id":318,"data":320,"body":326,"filePath":327,"digest":328,"legacyId":329,"deferredRender":16},{"title":321,"description":322,"editUrl":16,"head":323,"template":47,"sidebar":324,"pagefind":16,"draft":35},"Development Setup","Set up the NeoBoard development environment.",[],{"hidden":35,"attrs":325},{},"## Prerequisites\n\n- **Node.js 20+**\n- **Docker** and Docker Compose\n- **npm** (not pnpm or yarn)\n\n## Clone and Install\n\n```bash\ngit clone https://github.com/alfredo1996/neoboard.git\ncd neoboard\n\n# Start dev databases\ndocker compose up -d\n\n# Install all packages\nnpm ci --prefix connection\nnpm ci --prefix component\nnpm ci --prefix app\n\n# Run database migrations\nnpm run db:migrate\n\n# Start the dev server\nnpm run dev\n```\n\n## Available Commands\n\n| Command | Description |\n|---------|-------------|\n| `npm run dev` | Start dev server (port 3000) |\n| `npm run build` | Production build + type-check |\n| `npm run lint` | ESLint all packages |\n| `cd app && npm test` | App unit tests |\n| `cd component && npm test` | Component unit tests |\n| `cd connection && npm test` | Connection integration tests (needs Docker) |\n| `npm run test:e2e` | Playwright E2E tests |\n| `npm run storybook` | Component library viewer |\n| `npm run db:migrate` | Run Drizzle migrations |\n| `npm run db:generate` | Generate migration from schema |\n\n## Environment Setup\n\nCopy `.env.example` to `.env.local` and fill in the required values. See [Configuration](/getting-started/configuration) for details.\n\n## IDE Setup\n\nRecommended VS Code extensions:\n- ESLint\n- Tailwind CSS IntelliSense\n- Prettier","src/content/docs/developer/contributing/setup.mdx","fae2018cbe709afc","developer/contributing/setup.mdx","developer/contributing/pr-workflow",{"id":330,"data":332,"body":338,"filePath":339,"digest":340,"legacyId":341,"deferredRender":16},{"title":333,"description":334,"editUrl":16,"head":335,"template":47,"sidebar":336,"pagefind":16,"draft":35},"PR Workflow","Branch naming, labels, review process, and CI requirements.",[],{"hidden":35,"attrs":337},{},"## Branch Naming\n\nBranch from `dev`, not `main`:\n\n```\nfeat/issue-\u003CN>-\u003Cslug> # New features\nfix/issue-\u003CN>-\u003Cslug> # Bug fixes\nchore/\u003Cslug> # Maintenance\n```\n\n## Commit Messages\n\nFollow [Conventional Commits](https://www.conventionalcommits.org/):\n\n```\ntype(scope): description\n\nfeat(app): add API key authentication\nfix(component): correct pie chart tooltip overflow\ntest(connection): add Neo4j pool timeout tests\nchore: update dependencies\n```\n\n## Pull Requests\n\n- PRs target `dev` (integration) before merging to `main`\n- Link the issue: `Closes #N` in the PR body\n- Add labels: type (`feat`, `fix`) + package (`pkg:app`) + area (`area:api`)\n- Set the correct milestone\n\n## CI Requirements\n\nAll PRs must pass:\n\n1. **Lint & Type Check** — ESLint + `tsc --noEmit`\n2. **Unit Tests** — Vitest (app, component) + Jest (connection)\n3. **E2E Tests** — Playwright with real databases\n4. **SonarCloud** — Coverage ≥ 80%, duplication ≤ 3%, no bugs/vulnerabilities\n\n## Code Review\n\n- **CodeRabbit** automatically reviews PRs — address or dismiss all suggestions\n- **SonarQube** quality gate must pass\n- At least one human approval required before merge","src/content/docs/developer/contributing/pr-workflow.mdx","7b81331b2b948d3f","developer/contributing/pr-workflow.mdx","developer/contributing/testing",{"id":342,"data":344,"body":350,"filePath":351,"digest":352,"legacyId":353,"deferredRender":16},{"title":345,"description":346,"editUrl":16,"head":347,"template":47,"sidebar":348,"pagefind":16,"draft":35},"Testing","TDD workflow, test boundaries, and testing patterns in NeoBoard.",[],{"hidden":35,"attrs":349},{},"NeoBoard follows a strict **Test-Driven Development** (TDD) workflow.\n\n## TDD Workflow (Mandatory)\n\n1. **Red** — Write a failing test describing expected behavior\n2. **Green** — Write the minimum code to make it pass\n3. **Refactor** — Clean up without breaking tests\n\nEvery new behavior, bug fix, and edge case gets a test. No exceptions.\n\n## Test Boundaries\n\n| Layer | Tool | Package | Examples |\n|-------|------|---------|---------|\n| Pure functions | Vitest | `app/` | chart-registry, date-utils, query-hash |\n| API routes | Vitest (mocked DB/auth) | `app/` | Validation, permissions, error handling |\n| Zustand stores | Vitest (no mocks) | `app/` | State transitions, cascading logic |\n| UI components | Vitest + RTL | `component/` | Isolated rendering, props |\n| Integration | Jest + Testcontainers | `connection/` | Real DB queries |\n| Full flows | Playwright | `app/` | Real rendering, real data |\n\n**Important**: Do NOT add `@testing-library/react` render tests in `app/`. UI rendering is tested via Playwright E2E. Vitest in `app/` is for pure logic only.\n\n## Coverage Target\n\n**80% per package** (unit + E2E combined).\n\nTrack coverage with:\n```bash\ncd app && npm run test:coverage\ncd component && npm run test:coverage\ncd connection && npm run test:coverage\n```\n\n## Test File Location\n\nTests live in `__tests__/` directories next to the file under test:\n\n```\nsrc/lib/\n├── chart-registry.ts\n├── __tests__/\n│ └── chart-registry.test.ts\n```\n\n## Common Patterns\n\n### Mocking API Routes\n\n```typescript\nconst mockDb = { select: vi.fn(), insert: vi.fn() };\nvi.mock(\"@/lib/db\", () => ({ db: mockDb }));\nvi.mock(\"@/lib/auth/session\", () => ({ requireSession: mockRequireSession }));\nvi.mock(\"next/server\", () => nextResponseMockFactory());\n```\n\n### E2E Test Fixtures\n\n```typescript\nimport { test, expect } from \"./fixtures\";\n\ntest(\"create dashboard\", async ({ page, authPage }) => {\n await authPage.login({ email: \"alice@example.com\", password: \"password123\" });\n // ...\n});\n```","src/content/docs/developer/contributing/testing.mdx","a99aa07b4b0486e8","developer/contributing/testing.mdx","developer/extending/new-chart-plugin",{"id":354,"data":356,"body":362,"filePath":363,"digest":364,"legacyId":365,"deferredRender":16},{"title":357,"description":358,"editUrl":16,"head":359,"template":47,"sidebar":360,"pagefind":16,"draft":35},"Creating a Chart Plugin","Add a new chart type to NeoBoard without modifying core code.",[],{"hidden":35,"attrs":361},{},"NeoBoard's chart system is plugin-based. Each chart type (bar, line, pie, etc.) is a self-contained plugin that registers itself with the chart registry. You can add new chart types by creating a single plugin file.\n\n## Quick Start\n\nCreate a file at `app/src/plugins/your-chart.tsx`:\n\n```tsx\nimport dynamic from \"next/dynamic\";\nimport { Skeleton } from \"@neoboard/components\";\nimport { defineChartPlugin } from \"./registry\";\nimport { useEChartsClick, type PluginProps } from \"./utils\";\n\n// Lazy-load your chart component (ECharts needs client-side only)\nconst MyChart = dynamic(\n () => import(\"@neoboard/components\").then((m) => ({ default: m.MyChart })),\n { ssr: false, loading: () => \u003CSkeleton className=\"w-full h-full\" /> },\n);\n\nfunction MyChartPlugin({ data, settings, onChartClick }: PluginProps) {\n const onClick = useEChartsClick(onChartClick, data);\n return (\n \u003CMyChart\n data={data ?? []}\n showLegend={settings.showLegend as boolean}\n onClick={onClick}\n />\n );\n}\n\nexport const myChartPlugin = defineChartPlugin({\n type: \"my-chart\",\n label: \"My Chart\",\n component: MyChartPlugin,\n transform: (rows) => rows, // transform raw query rows to chart data\n compatibleWith: [\"neo4j\", \"postgresql\"],\n capabilities: {\n supportsClickAction: true,\n supportsStyling: false,\n isECharts: true,\n requiresQuery: true,\n },\n queryHint: \"Return label and value columns.\\nExample: RETURN name, count\",\n options: [\n {\n key: \"showLegend\",\n label: \"Show Legend\",\n type: \"boolean\",\n default: true,\n category: \"Labels\",\n description: \"Show the chart legend.\",\n },\n ],\n});\n```\n\nThen register it in `app/src/plugins/index.ts`:\n\n```ts\nimport { myChartPlugin } from \"./my-chart\";\n\n// Add to the BUILT_IN_PLUGINS array:\nconst BUILT_IN_PLUGINS = [\n // ... existing plugins\n myChartPlugin,\n];\n```\n\nThat's it. Your chart appears in the widget editor's chart type picker.\n\n## Plugin Config Reference\n\n```ts\ndefineChartPlugin({\n // Required\n type: string, // unique ID: \"heatmap\", \"funnel\", etc.\n label: string, // display name in the UI\n component: React.FC, // React component that renders the chart\n transform: (data) => T, // convert raw query rows to chart's data shape\n\n // Optional\n transformWithMapping?: (data, mapping) => T, // with column mapping\n validate?: (data) => string | null, // return error or null\n options?: ChartOptionDef[], // chart options panel entries\n queryHint?: string, // shown in query editor\n compatibleWith?: ConnectorType[], // [\"neo4j\", \"postgresql\"]\n stylingTargets?: { value, label }[], // enables rule-based styling\n enrichClickEvent?: (event, row) => event, // customize click payload\n\n // Capabilities (all have sensible defaults)\n capabilities?: {\n supportsClickAction: boolean, // default: true\n supportsStyling: boolean, // default: true if stylingTargets set\n isECharts: boolean, // default: false\n requiresQuery: boolean, // default: true\n },\n});\n```\n\n## Plugin Component Props\n\nEvery plugin component receives these props via `PluginProps` (import from `./utils`):\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `data` | `unknown` | Transformed query result data |\n| `settings` | `Record\u003Cstring, unknown>` | User-configured chart options |\n| `onChartClick` | `(row) => void` | Raw click callback (use `useEChartsClick()` for ECharts) |\n| `stylingRules` | `StylingRule[]` | Conditional color rules |\n| `paramValues` | `Record\u003Cstring, unknown>` | Current parameter values |\n| `colorScales` | `ColorScaleConfig[]` | Gradient color scales |\n| `connectionId` | `string` | Current connector ID |\n| `widgetId` | `string` | Widget identifier |\n| `resultId` | `string` | Query result cache ID |\n| `query` | `string` | Current query text |\n| `autoFit` | `boolean` | Auto-fit on resize |\n| `colorThresholds` | `string` | Legacy threshold JSON |\n\n## Chart Options\n\nOptions define what users can configure in the Chart Options panel:\n\n```ts\ninterface ChartOptionDef {\n key: string; // settings key (e.g. \"showLegend\")\n label: string; // UI label\n type: \"boolean\" | \"select\" | \"text\" | \"number\" | \"column-multi-select\";\n default: unknown; // default value\n category: string; // group heading (e.g. \"Layout\", \"Labels\", \"Style\")\n options?: { label: string; value: string }[]; // for \"select\" type\n description?: string; // tooltip text\n}\n```\n\n## ECharts vs Custom Charts\n\n**ECharts-based charts** (bar, line, pie, gauge, etc.):\n- Use `dynamic(() => import(\"@neoboard/components\")...)` with `ssr: false`\n- Use `useEChartsClick(onChartClick, data)` to wrap the click handler\n- Set `capabilities.isECharts: true`\n\n**Non-ECharts charts** (graph, map, table, form):\n- Import components directly (no dynamic import needed if not using browser APIs)\n- Use `onChartClick` directly (no wrapping needed)\n- Set `capabilities.isECharts: false`\n\n**Content-only widgets** (markdown, iframe):\n- Set `capabilities.requiresQuery: false`\n- `transform` returns `null`\n- No click action or styling\n\n## Example: Adding a Heatmap\n\n```tsx\n// app/src/plugins/heatmap.tsx\nimport dynamic from \"next/dynamic\";\nimport { Skeleton } from \"@neoboard/components\";\nimport { defineChartPlugin } from \"./registry\";\nimport { useEChartsClick, type PluginProps } from \"./utils\";\n\nconst HeatmapChart = dynamic(\n () => import(\"../components/charts/heatmap-chart\").then((m) => ({ default: m.HeatmapChart })),\n { ssr: false, loading: () => \u003CSkeleton className=\"w-full h-full\" /> },\n);\n\nfunction HeatmapPlugin({ data, settings, onChartClick }: PluginProps) {\n const onClick = useEChartsClick(onChartClick, data);\n return (\n \u003CHeatmapChart\n data={data ?? []}\n xField={settings.xField as string}\n yField={settings.yField as string}\n valueField={settings.valueField as string}\n onClick={onClick}\n />\n );\n}\n\nexport const heatmapPlugin = defineChartPlugin({\n type: \"heatmap\",\n label: \"Heatmap\",\n component: HeatmapPlugin,\n transform: (rows) => rows,\n compatibleWith: [\"neo4j\", \"postgresql\"],\n capabilities: { supportsClickAction: true, isECharts: true, requiresQuery: true, supportsStyling: false },\n queryHint: \"Return 3 columns: x, y, value.\\nExample: RETURN day, hour, count\",\n options: [\n { key: \"xField\", label: \"X Field\", type: \"text\", default: \"\", category: \"Data\" },\n { key: \"yField\", label: \"Y Field\", type: \"text\", default: \"\", category: \"Data\" },\n { key: \"valueField\", label: \"Value Field\", type: \"text\", default: \"\", category: \"Data\" },\n ],\n});\n```","src/content/docs/developer/extending/new-chart-plugin.mdx","a42fd3bc0e3731ee","developer/extending/new-chart-plugin.mdx","developer/extending/new-chart-type",{"id":366,"data":368,"body":374,"filePath":375,"digest":376,"legacyId":377,"deferredRender":16},{"title":369,"description":370,"editUrl":16,"head":371,"template":47,"sidebar":372,"pagefind":16,"draft":35},"Adding a New Chart Type","Step-by-step guide to registering a new chart type in NeoBoard.",[],{"hidden":35,"attrs":373},{},"This guide walks through adding a new chart type to NeoBoard, from registration to rendering.\n\n## Overview\n\nAdding a chart type involves:\n1. Define the chart type identifier\n2. Create the chart component in `component/`\n3. Register a transform function in the chart registry\n4. Add a data validator\n5. Add to the chart type picker UI\n6. Write tests\n\n## Step 1: Define the Chart Type\n\nAdd your chart type to the `ChartType` union in `component/src/charts/types.ts`:\n\n```typescript\nexport type ChartType =\n | \"bar\"\n | \"line\"\n | \"pie\"\n | \"single-value\"\n | \"table\"\n | \"graph\"\n | \"map\"\n | \"json\"\n | \"your-new-chart\"; // Add here\n```\n\n## Step 2: Create the Chart Component\n\nCreate a new file in `component/src/charts/`:\n\n```typescript\n// component/src/charts/your-new-chart.tsx\nimport type { BaseChartProps } from \"./types\";\n\ninterface YourNewChartProps extends BaseChartProps {\n // Add chart-specific props\n}\n\nexport function YourNewChart({ options, loading, error, className }: YourNewChartProps) {\n // Use ECharts BaseChart or build a custom renderer\n // ...\n}\n```\n\n**Important**: Use modular ECharts imports only:\n```typescript\nimport * as echarts from \"echarts/core\";\nimport { BarChart } from \"echarts/charts\";\n// Never: import * as echarts from \"echarts\"\n```\n\n## Step 3: Register in Chart Registry\n\nAdd your chart to `app/src/lib/chart-registry.ts`:\n\n```typescript\nregistry.set(\"your-new-chart\", {\n label: \"Your New Chart\",\n icon: ChartIcon, // from lucide-react\n transform: (data, settings) => {\n // Transform query results into ECharts options\n return { /* EChartsOption */ };\n },\n validate: (data) => {\n // Return true if data shape is compatible\n return data.length > 0 && data[0].hasOwnProperty(\"value\");\n },\n defaultSettings: {\n // Default chart options\n },\n});\n```\n\n## Step 4: Add to Chart Type Picker\n\nUpdate the widget editor to include your chart in the type selection dropdown.\n\n## Step 5: Dynamic Import\n\nCharts must be lazy-loaded with SSR disabled:\n\n```typescript\n// In the page renderer\nconst YourNewChart = dynamic(\n () => import(\"@neoboard/components\").then((m) => m.YourNewChart),\n { ssr: false }\n);\n```\n\n## Step 6: Write Tests\n\n1. **Chart registry test** — verify transform and validate functions\n2. **Component test** — render the chart with mock data (in `component/`)\n3. **E2E test** — create a widget with the new chart type","src/content/docs/developer/extending/new-chart-type.mdx","de597ca5093f0c00","developer/extending/new-chart-type.mdx","developer/extending/new-connector-plugin",{"id":378,"data":380,"body":386,"filePath":387,"digest":388,"legacyId":389,"deferredRender":16},{"title":381,"description":382,"editUrl":16,"head":383,"template":47,"sidebar":384,"pagefind":16,"draft":35},"Creating a Connector Plugin","Add a new database connector to NeoBoard without modifying core code.",[],{"hidden":35,"attrs":385},{},"NeoBoard's connector system is plugin-based. Each database type (Neo4j, PostgreSQL) is a self-contained plugin. You can add support for new databases by creating a connector plugin.\n\n## Quick Start\n\nCreate a plugin file in the connection package:\n\n```ts\n// connection/src/my-database/plugin.ts\nimport type { ConnectorPlugin } from \"../generalized/connector-plugin\";\nimport type { AuthConfig } from \"../generalized/interfaces\";\nimport { MyDatabaseConnectionModule } from \"./MyDatabaseConnectionModule\";\n\nexport const myDatabasePlugin: ConnectorPlugin = {\n type: \"my-database\",\n label: \"My Database\",\n category: \"database\",\n queryLanguage: \"sql\",\n supportsWrite: true,\n supportsGraphData: false,\n allowedProtocols: [\"mydb:\", \"mydb+ssl:\"],\n uriPlaceholder: \"mydb://localhost:5555/mydb\",\n databasePlaceholder: \"mydb\",\n\n createModule(authConfig: AuthConfig, advancedOptions?: Record\u003Cstring, unknown>) {\n return new MyDatabaseConnectionModule(authConfig, advancedOptions);\n },\n};\n```\n\nThen register it in `connection/src/connector-registry.ts`:\n\n```ts\nimport { myDatabasePlugin } from \"./my-database/plugin\";\n\n// Add after the existing registrations:\nregistry.register(myDatabasePlugin);\n```\n\n## Connector Plugin Reference\n\n```ts\ninterface ConnectorPlugin {\n // Required\n type: string; // unique ID: \"mysql\", \"mongodb\", \"rest-api\"\n label: string; // display name: \"MySQL\", \"MongoDB\"\n category: \"database\" | \"graph\" | \"api\" | \"file\";\n createModule(auth, opts): ConnectionModule; // factory for the driver\n\n // Optional\n supportsGraphData?: boolean; // can produce nodes/edges? (default: false)\n supportsWrite?: boolean; // supports INSERT/CREATE? (default: false)\n queryLanguage?: string; // \"cypher\", \"sql\", or custom\n allowedProtocols?: string[]; // URI validation: [\"mysql:\", \"mysql+ssl:\"]\n uriPlaceholder?: string; // shown in connection form\n databasePlaceholder?: string; // shown in database field\n}\n```\n\n## Implementing a ConnectionModule\n\nYour connector must extend the abstract `ConnectionModule` class:\n\n```ts\nimport { ConnectionModule } from \"../generalized/ConnectionModule\";\nimport { AuthenticationModule } from \"../generalized/AuthenticationModule\";\nimport type { ConnectionConfig, QueryCallback, QueryParams } from \"../generalized/interfaces\";\n\nexport class MyDatabaseConnectionModule extends ConnectionModule {\n authModule: AuthenticationModule;\n\n constructor(authConfig: AuthConfig, advancedOptions?: Record\u003Cstring, unknown>) {\n super();\n // Initialize your driver here\n this.authModule = new MyDatabaseAuthModule(authConfig);\n }\n\n async runQuery\u003CT>(\n queryParams: QueryParams,\n callbacks: QueryCallback\u003CT>,\n config: ConnectionConfig,\n ): Promise\u003Cvoid> {\n // Handle empty query\n if (this.handleEmptyQuery(queryParams.query, callbacks)) return;\n\n try {\n // Execute the query using your driver\n const results = await this.executeQuery(queryParams.query, queryParams.params);\n\n // Convert results to NeoBoard's record format\n const records = results.map(row => ({\n // Map each column to key-value pairs\n ...row,\n }));\n\n // Call the success callback\n if (callbacks.setRecords) {\n callbacks.setRecords(records as T);\n }\n } catch (error) {\n if (callbacks.setError) {\n callbacks.setError(error);\n }\n }\n }\n\n async checkConnection(config?: ConnectionConfig): Promise\u003Cboolean> {\n try {\n // Try to connect and run a simple query\n await this.executeQuery(\"SELECT 1\");\n return true;\n } catch {\n return false;\n }\n }\n}\n```\n\n## Built-in Connectors\n\nNeoBoard ships with two built-in connector plugins:\n\n### Neo4j\n- **Type:** `\"neo4j\"`\n- **Category:** `\"graph\"`\n- **Language:** Cypher\n- **Graph data:** Yes (nodes, relationships, paths)\n- **Write:** Yes (CREATE, MERGE, DELETE)\n- **Protocols:** `bolt:`, `neo4j:`, `bolt+s:`, `neo4j+s:`\n\n### PostgreSQL\n- **Type:** `\"postgresql\"`\n- **Category:** `\"database\"`\n- **Language:** SQL\n- **Graph data:** No\n- **Write:** Yes (INSERT, UPDATE, DELETE)\n- **Protocols:** `postgresql:`, `postgres:`\n\n## Registry API\n\n```ts\nimport {\n registerConnector,\n getConnector,\n getAllConnectors,\n createConnectionModule,\n} from \"@neoboard/connection/src/connector-registry\";\n\n// Register a new connector\nregisterConnector(myPlugin);\n\n// Look up a connector\nconst plugin = getConnector(\"mysql\");\n\n// List all registered connectors\nconst all = getAllConnectors(); // [neo4jPlugin, postgresPlugin, ...]\n\n// Create a connection module (replaces the old factory)\nconst module = createConnectionModule(\"neo4j\", authConfig, advancedOptions);\n```\n\n## Testing Your Connector\n\nUse the existing test patterns:\n\n```ts\n// connection/__tests__/my-database/plugin.test.ts\nimport { createConnectorRegistry } from \"../src/generalized/connector-plugin\";\nimport { myDatabasePlugin } from \"../src/my-database/plugin\";\n\ndescribe(\"myDatabasePlugin\", () => {\n it(\"registers without error\", () => {\n const registry = createConnectorRegistry();\n expect(() => registry.register(myDatabasePlugin)).not.toThrow();\n });\n\n it(\"has correct type and category\", () => {\n expect(myDatabasePlugin.type).toBe(\"my-database\");\n expect(myDatabasePlugin.category).toBe(\"database\");\n });\n\n it(\"creates a connection module\", () => {\n const module = myDatabasePlugin.createModule({\n uri: \"mydb://localhost:5555/test\",\n username: \"user\",\n password: \"pass\",\n authType: 1,\n });\n expect(module).toBeDefined();\n expect(typeof module.runQuery).toBe(\"function\");\n expect(typeof module.checkConnection).toBe(\"function\");\n });\n});\n```","src/content/docs/developer/extending/new-connector-plugin.mdx","3d37c8df0ca970ee","developer/extending/new-connector-plugin.mdx","developer/extending/new-connector",{"id":390,"data":392,"body":398,"filePath":399,"digest":400,"legacyId":401,"deferredRender":16},{"title":393,"description":394,"editUrl":16,"head":395,"template":47,"sidebar":396,"pagefind":16,"draft":35},"Adding a New Connector","Step-by-step guide to implementing a new database connector.",[],{"hidden":35,"attrs":397},{},"This guide covers implementing a new database connector in the `connection/` package.\n\n## Overview\n\nA connector consists of four classes plus a factory registration:\n1. **AuthenticationModule** — manages connection pool and credentials\n2. **ConnectionModule** — executes queries and tests connections\n3. **RecordParser** — transforms raw results into NeoBoard's format\n4. **SchemaManager** (optional) — introspects database schema\n\nNew files needed: 4 (auth module, connection module, record parser, advanced options type).\nExisting files to edit: 2 (factory registration + `ConnectionModuleConfig` enum).\n\n## Step 1: Add Connection Type\n\nIn `connection/src/ConnectionModuleConfig.ts`:\n\n```typescript\nexport enum ConnectionTypes {\n NEO4J = 1,\n POSTGRESQL = 2,\n YOUR_DB = 3, // Add here\n}\n```\n\n## Step 2: Define Advanced Options\n\nEach connector has its own advanced options type. Add yours in `connection/src/generalized/interfaces.ts`:\n\n```typescript\nexport interface YourDbAdvancedOptions extends BaseAdvancedOptions {\n yourDbConnectionTimeout?: number;\n yourDbMaxPoolSize?: number;\n}\n```\n\nThen add it to the union type:\n\n```typescript\nexport type AdvancedConnectionOptions =\n | Neo4jAdvancedOptions\n | PostgresAdvancedOptions\n | YourDbAdvancedOptions;\n```\n\n## Step 3: Implement AuthenticationModule\n\nExtend the abstract `AuthenticationModule`. The `createDriver()` method returns `unknown` — your subclass narrows to the concrete driver type.\n\n```typescript\n// connection/src/yourdb/YourDbAuthenticationModule.ts\nimport { AuthenticationModule } from \"../generalized/AuthenticationModule\";\nimport { AuthConfig, YourDbAdvancedOptions } from \"../generalized/interfaces\";\n\nexport class YourDbAuthenticationModule extends AuthenticationModule {\n private pool: YourDbPool;\n\n constructor(authConfig: AuthConfig, advancedOptions?: YourDbAdvancedOptions) {\n super();\n this._checkConfigurationConsistency(authConfig);\n this._validateUri(authConfig.uri, [\"yourdb:\"]);\n this.pool = this.createDriver();\n }\n\n createDriver(): YourDbPool {\n return new YourDbPool({\n host: this._authConfig.uri,\n user: this._authConfig.username,\n password: this._authConfig.password,\n });\n }\n\n async verifyAuthentication(): Promise\u003Cboolean> {\n // Test the connection\n }\n\n async updateAuthConfig(authConfig: AuthConfig): Promise\u003Cvoid> {\n // Recreate driver with new config\n }\n\n getPool(): YourDbPool {\n return this.pool;\n }\n\n async close(): Promise\u003Cvoid> {\n await this.pool.end();\n }\n}\n```\n\n## Step 4: Implement ConnectionModule\n\nExtend the abstract `ConnectionModule`. Wrap errors using `wrapError()` so consumers receive normalized `ConnectorError` instances.\n\n```typescript\n// connection/src/yourdb/YourDbConnectionModule.ts\nimport { ConnectionModule } from \"../generalized/ConnectionModule\";\nimport { wrapError, ConnectorErrorType } from \"../generalized/ConnectorError\";\nimport { QueryStatus } from \"../generalized/interfaces\";\n\nexport class YourDbConnectionModule extends ConnectionModule {\n authModule: YourDbAuthenticationModule;\n\n async runQuery(params, callbacks, config) {\n if (this.handleEmptyQuery(params.query, callbacks)) return;\n try {\n const result = await this.authModule.getPool().query(params.query);\n callbacks.onSuccess(result);\n } catch (error) {\n const wrapped = wrapError(error, \"yourdb\");\n callbacks.setStatus?.(\n wrapped.type === ConnectorErrorType.TIMEOUT\n ? QueryStatus.TIMED_OUT\n : QueryStatus.ERROR,\n );\n callbacks.onFail?.(wrapped);\n }\n }\n\n async checkConnection(config): Promise\u003Cboolean> {\n try {\n await this.authModule.getPool().query(\"SELECT 1\");\n return true;\n } catch (error) {\n const wrapped = wrapError(error, \"yourdb\");\n console.warn(\"Connection check failed:\", wrapped.type);\n return false;\n }\n }\n}\n```\n\n> **Note:** You must also add a `detectYourDbErrorType()` function in `ConnectorError.ts` and update `wrapError()` to handle the new DB type.\n\n## Step 5: Implement RecordParser\n\nExtend `NeodashRecordParser` to transform raw query results into NeoBoard's tabular format.\n\n## Step 6: Implement SchemaManager (optional)\n\nImplement the `SchemaManager` interface for query editor autocomplete:\n\n```typescript\nimport { SchemaManager } from \"../schema/schema-manager\";\nimport { DatabaseSchema } from \"../schema/types\";\n\nexport class YourDbSchemaManager implements SchemaManager {\n async fetchSchema(authConfig: AuthConfig): Promise\u003CDatabaseSchema> {\n // Return tables, columns, etc.\n }\n}\n```\n\n## Step 7: Register in Factory\n\nIn `connection/src/adapters/factory.ts`:\n\n```typescript\ncase ConnectionTypes.YOUR_DB:\n return new YourDbConnectionModule(authConfig, advancedOptions);\n```\n\n## Step 8: Add Connection Form Fields\n\nUpdate `component/src/components/composed/connection-form.tsx` to include UI fields specific to your database.\n\n## Step 9: Write Tests\n\nUse **Testcontainers** for integration tests:\n\n```typescript\nimport { GenericContainer } from \"testcontainers\";\n\nconst container = await new GenericContainer(\"yourdb:latest\")\n .withExposedPorts(5555)\n .start();\n```\n\n## Checklist\n\n- [ ] `ConnectionTypes` enum updated\n- [ ] `YourDbAdvancedOptions` interface defined + added to union\n- [ ] `YourDbAuthenticationModule` extends `AuthenticationModule`\n- [ ] `YourDbConnectionModule` extends `ConnectionModule`\n- [ ] Errors wrapped with `wrapError()` / `ConnectorError`\n- [ ] `detectYourDbErrorType()` added to `ConnectorError.ts`\n- [ ] RecordParser implemented\n- [ ] Factory case added\n- [ ] `cd connection && npm test` passes\n- [ ] `npm run build` and `npm run lint` pass","src/content/docs/developer/extending/new-connector.mdx","0169f374bd04d139","developer/extending/new-connector.mdx","developer/extending/new-parameter-type",{"id":402,"data":404,"body":410,"filePath":411,"digest":412,"legacyId":413,"deferredRender":16},{"title":405,"description":406,"editUrl":16,"head":407,"template":47,"sidebar":408,"pagefind":16,"draft":35},"Adding a New Parameter Type","Step-by-step guide to implementing a new parameter type.",[],{"hidden":35,"attrs":409},{},"This guide covers adding a new interactive parameter type to NeoBoard.\n\n## Overview\n\nA parameter type requires:\n1. Add to the `ParameterType` union\n2. Handle in the parameter store\n3. Create the widget component\n4. Add formatting logic\n5. Wire into the renderer\n\n## Step 1: Define the Type\n\nAdd your type to the parameter type union:\n\n```typescript\nexport type ParameterType =\n | \"select\"\n | \"text\"\n | \"number\"\n | \"date\"\n | \"dateRange\"\n | \"boolean\"\n | \"multiselect\"\n | \"slider\"\n | \"your-type\"; // Add here\n```\n\n## Step 2: Update Parameter Store\n\nIn `app/src/stores/parameter-store.ts`, handle your type's default value and coercion:\n\n```typescript\ncase \"your-type\":\n return coerceYourType(rawValue);\n```\n\nThe store manages parameter state, persistence, and cross-widget dependencies.\n\n## Step 3: Create Widget Component\n\nIn `component/src/components/composed/parameter-widgets/`:\n\n```typescript\nexport function YourTypeWidget({\n value,\n onChange,\n label,\n ...props\n}: YourTypeWidgetProps) {\n return (\n // Your input UI\n );\n}\n```\n\n**Boundary rule**: The component must be pure UI — no API calls, no stores.\n\n## Step 4: Add Formatting\n\nIn `app/src/lib/format-parameter-value.ts`, add formatting for query substitution:\n\n```typescript\ncase \"your-type\":\n return formatYourType(value);\n```\n\n## Step 5: Wire into Renderer\n\nUpdate `app/src/components/parameter-widget-renderer.tsx` to render your widget type.\n\n## Step 6: Write Tests\n\n1. **Store test** — verify coercion and state management\n2. **Component test** — render with mock props (in `component/`)\n3. **E2E test** — add parameter widget to a dashboard and verify it filters data","src/content/docs/developer/extending/new-parameter-type.mdx","f178022a08929c7a","developer/extending/new-parameter-type.mdx","developer/extending/new-widget-type",{"id":414,"data":416,"body":422,"filePath":423,"digest":424,"legacyId":425,"deferredRender":16},{"title":417,"description":418,"editUrl":16,"head":419,"template":47,"sidebar":420,"pagefind":16,"draft":35},"Adding a New Widget Type","End-to-end guide for adding a completely new widget type.",[],{"hidden":35,"attrs":421},{},"This guide covers adding a new widget type that isn't just a chart variation but a fundamentally new kind of widget (like the Form widget or Graph widget).\n\n## When to Use This Guide\n\nUse this guide when:\n- Your widget has a unique data flow (e.g., writes data instead of reading)\n- Your widget doesn't fit the standard chart transform pipeline\n- Your widget needs custom editor UI\n\nFor standard chart types, see [Adding a New Chart Type](/developer/extending/new-chart-type).\n\n## Steps\n\n### 1. Define Widget Identity\n\nAdd your widget type to the chart type system. Even non-chart widgets register through the chart registry for consistent handling.\n\n### 2. Create the Component\n\nBuild the rendering component in `component/`. Follow existing patterns:\n- Accept standard widget props (data, loading, error, settings)\n- Handle empty states gracefully\n- Support responsive sizing within the grid\n\n### 3. Custom Editor (Optional)\n\nIf your widget needs special configuration beyond the standard query + chart options:\n- Create editor step components\n- Register them in the widget editor modal flow\n\n### 4. Custom Query Handling (Optional)\n\nIf your widget handles queries differently:\n- Override query execution in the page renderer\n- Handle write queries via the `/api/query/write` endpoint if needed\n\n### 5. Dynamic Loading\n\nAll heavy dependencies must be lazy-loaded:\n\n```typescript\nconst YourWidget = dynamic(() => import(\"./your-widget\"), { ssr: false });\n```\n\n### 6. Testing\n\nFollow the standard testing pyramid:\n- **Unit tests** — pure logic (transforms, validators)\n- **Component tests** — rendering with mock data\n- **E2E tests** — full widget lifecycle in a real dashboard","src/content/docs/developer/extending/new-widget-type.mdx","0d3eb6bf33e73a74","developer/extending/new-widget-type.mdx","developer/plugins",{"id":426,"data":428,"body":434,"filePath":435,"digest":436,"legacyId":437,"deferredRender":16},{"title":429,"description":430,"editUrl":16,"head":431,"template":47,"sidebar":432,"pagefind":16,"draft":35},"External Plugins","Build and publish NeoBoard plugins as independent packages.",[],{"hidden":35,"attrs":433},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nExternal plugins let you add chart types and database connectors to NeoBoard **without modifying the core codebase**. They can be published as npm packages and installed by any NeoBoard instance.\n\nThis is different from the [extending guides](/developer/extending/new-chart-plugin) which cover adding built-in types that require a PR to the NeoBoard repository.\n\n\u003CCardGrid>\n \u003CLinkCard title=\"MongoDB Connector Plugin\" description=\"Full end-to-end example: build, test, and publish a MongoDB connector\" href=\"/developer/plugins/mongodb-connector\" />\n\u003C/CardGrid>\n\n## When to Create an External Plugin\n\n- You want to support a database that NeoBoard doesn't ship with\n- You want to add a custom chart type for your organization\n- You want to distribute a plugin via npm without forking NeoBoard\n\n## Plugin Architecture\n\nA connector plugin implements the `ConnectorPlugin` interface:\n\n```ts\ninterface ConnectorPlugin {\n type: string; // Unique identifier (e.g., \"mongodb\")\n label: string; // Display name\n category: string; // \"database\", \"graph\", \"api\", \"file\"\n queryLanguage?: string; // CodeMirror syntax (e.g., \"json\", \"sql\")\n createModule(auth, opts): ConnectionModule;\n formFields?: ConnectorFormField[]; // Auto-generated connection form\n}\n```\n\nA chart plugin is created with `defineChartPlugin()`:\n\n```ts\ndefineChartPlugin({\n type: \"heatmap\",\n label: \"Heatmap\",\n component: HeatmapComponent,\n transform: transformToHeatmapData,\n settingsSchema: heatmapSettingsSchema,\n capabilities: { ... },\n});\n```","src/content/docs/developer/plugins/index.mdx","1c84f5be12167b00","developer/plugins/index.mdx","developer/plugins/mongodb-connector",{"id":438,"data":440,"body":446,"filePath":447,"digest":448,"legacyId":449,"deferredRender":16},{"title":441,"description":442,"editUrl":16,"head":443,"template":47,"sidebar":444,"pagefind":16,"draft":35},"Example: MongoDB Connector Plugin","Build a MongoDB connector plugin for NeoBoard from scratch.",[],{"hidden":35,"attrs":445},{},"This guide walks through building a complete MongoDB connector plugin for NeoBoard. By the end, you will have a working plugin that lets users connect to MongoDB, run queries, and visualize results.\n\n## Prerequisites\n\n- Node.js 22+\n- A NeoBoard instance running locally (`npm run dev`)\n- A MongoDB instance (local or Atlas)\n\n## 1. Scaffold the Plugin\n\nCreate a new directory in the connection package:\n\n```bash\nmkdir -p connection/src/mongodb\n```\n\n## 2. Implement the Connection Module\n\nThe connection module handles query execution. Create `connection/src/mongodb/MongoConnectionModule.ts`:\n\n```ts\nimport { ConnectionModule } from \"../generalized/ConnectionModule\";\nimport type { AuthConfig, QueryParams, QueryCallback } from \"../generalized/interfaces\";\nimport { MongoClient } from \"mongodb\";\n\nexport class MongoConnectionModule extends ConnectionModule {\n authModule = null as any; // Satisfies abstract property; MongoDB uses client directly\n private client: MongoClient;\n\n constructor(authConfig: AuthConfig) {\n super();\n this.client = new MongoClient(authConfig.uri);\n }\n\n async runQuery\u003CT>(\n queryParams: QueryParams,\n callbacks: QueryCallback\u003CT>,\n config: Record\u003Cstring, unknown>,\n ): Promise\u003Cvoid> {\n try {\n await this.client.connect();\n const db = this.client.db(config.database as string);\n\n // Parse the query as a JSON command: { collection: \"users\", filter: {} }\n const command = JSON.parse(queryParams.query);\n const collection = db.collection(command.collection);\n const results = await collection.find(command.filter ?? {}).limit(1000).toArray();\n\n // Convert MongoDB documents to plain objects\n const rows = results.map((doc) => {\n const { _id, ...rest } = doc;\n return { _id: _id.toString(), ...rest };\n });\n\n callbacks.onSuccess?.(rows as T);\n } catch (error) {\n callbacks.onFail?.(error);\n }\n }\n\n async checkConnection(config: Record\u003Cstring, unknown>): Promise\u003Cboolean> {\n try {\n await this.client.connect();\n await this.client.db(config.database as string).command({ ping: 1 });\n return true;\n } catch {\n return false;\n }\n }\n\n async close(): Promise\u003Cvoid> {\n await this.client.close();\n }\n}\n```\n\n## 3. Create the Plugin Definition\n\nCreate `connection/src/mongodb/plugin.ts`:\n\n```ts\nimport type { ConnectorPlugin } from \"../generalized/connector-plugin\";\nimport type { AuthConfig } from \"../generalized/interfaces\";\nimport { MongoConnectionModule } from \"./MongoConnectionModule\";\n\nexport const mongoPlugin: ConnectorPlugin = {\n type: \"mongodb\",\n label: \"MongoDB\",\n category: \"database\",\n queryLanguage: \"json\",\n supportsWrite: true,\n supportsGraphData: false,\n allowedProtocols: [\"mongodb:\", \"mongodb+srv:\"],\n uriPlaceholder: \"mongodb://localhost:27017\",\n databasePlaceholder: \"mydb\",\n\n createModule(authConfig: AuthConfig) {\n return new MongoConnectionModule(authConfig);\n },\n\n formFields: [\n {\n key: \"uri\",\n label: \"Connection URI\",\n type: \"text\",\n required: true,\n placeholder: \"mongodb://localhost:27017\",\n },\n {\n key: \"database\",\n label: \"Database\",\n type: \"text\",\n required: true,\n placeholder: \"mydb\",\n },\n {\n key: \"username\",\n label: \"Username\",\n type: \"text\",\n required: false,\n },\n {\n key: \"password\",\n label: \"Password\",\n type: \"password\",\n required: false,\n },\n ],\n};\n```\n\n## 4. Register the Plugin\n\nAdd it to the connector registry in `connection/src/connector-registry.ts`:\n\n```ts\nimport { mongoPlugin } from \"./mongodb/plugin\";\n\n// After existing registrations:\nregistry.register(mongoPlugin);\n```\n\nOr, for external plugins, register at startup:\n\n```ts\nimport { registerConnector } from \"@neoboard/connection\";\nimport { mongoPlugin } from \"neoboard-plugin-mongodb\";\n\nregisterConnector(mongoPlugin);\n```\n\n## 5. Install the MongoDB Driver\n\n```bash\nnpm install mongodb --workspace=connection\n```\n\n## 6. Test the Plugin\n\nCreate `connection/__tests__/mongodb/` with integration tests using Testcontainers:\n\n```ts\nimport { MongoDBContainer } from \"@testcontainers/mongodb\";\n\ndescribe(\"MongoDB connector\", () => {\n let container;\n\n beforeAll(async () => {\n container = await new MongoDBContainer(\"mongo:7\").start();\n });\n\n afterAll(async () => {\n await container.stop();\n });\n\n it(\"executes a find query\", async () => {\n const module = mongoPlugin.createModule({\n uri: container.getConnectionString(),\n username: \"\",\n password: \"\",\n authType: 1,\n });\n\n // Insert test data, then query\n // ...\n });\n});\n```\n\n## 7. Use It\n\nAfter registration, MongoDB appears in the connection type picker. Users can:\n\n1. Create a new connection with type \"MongoDB\"\n2. Enter their MongoDB URI and database name\n3. Write queries as JSON: `{ \"collection\": \"users\", \"filter\": { \"age\": { \"$gt\": 25 } } }`\n4. Visualize results in any chart type\n\n## Publishing as an npm Package\n\nTo distribute your plugin:\n\n1. Create a separate package: `neoboard-plugin-mongodb`\n2. Export the plugin definition\n3. Users install with `npm install neoboard-plugin-mongodb`\n4. Register in their NeoBoard instance's startup code\n\n```ts\n// In the user's app startup\nimport { registerConnector } from \"@neoboard/connection\";\nimport { mongoPlugin } from \"neoboard-plugin-mongodb\";\n\nregisterConnector(mongoPlugin);\n```","src/content/docs/developer/plugins/mongodb-connector.mdx","838a732c0c29b60e","developer/plugins/mongodb-connector.mdx","authentication/sso",{"id":450,"data":452,"body":458,"filePath":459,"digest":460,"legacyId":461,"deferredRender":16},{"title":453,"description":454,"editUrl":16,"head":455,"template":47,"sidebar":456,"pagefind":16,"draft":35},"Single Sign-On (SSO)","Configure OIDC single sign-on providers to enable SSO login for your organization.",[],{"hidden":35,"attrs":457},{},"import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';\n\nNeoBoard supports OIDC-based single sign-on (SSO). Users can sign in with their organization's identity provider (Okta, Azure AD/Entra, Google Workspace, Keycloak, Auth0, etc.) instead of managing separate NeoBoard passwords.\n\n## How It Works\n\n1. SSO is configured via **environment variables** (recommended) or the **Admin UI**\n2. The login page shows \"Sign in with [Provider]\" buttons above the password form\n3. Clicking a button redirects the user to the identity provider (IdP)\n4. After authentication, the IdP redirects back to NeoBoard with an authorization code\n5. NeoBoard exchanges the code for tokens, reads the user's profile and group claims, and creates or links the user account\n\n## Prerequisites\n\nBefore configuring SSO, you need:\n\n- `NEOBOARD_EDITION=enterprise` set in your environment\n- An OIDC client registered in your identity provider\n- The client ID, client secret, and issuer URL from your IdP\n\n## Quick Setup (Environment Variables)\n\n\u003CAside type=\"note\">\nSSO is an enterprise feature. Set `NEOBOARD_EDITION=enterprise` in your environment to enable it.\n\u003C/Aside>\n\nThe fastest way to enable SSO. Set these variables and restart NeoBoard:\n\n```bash\nNEOBOARD_EDITION=enterprise\nOIDC_ISSUER=https://myorg.okta.com\nOIDC_CLIENT_ID=neoboard\nOIDC_CLIENT_SECRET=your-client-secret\n```\n\nThat's it — an SSO button will appear on the login page.\n\n### All Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `OIDC_ISSUER` | Yes | — | OIDC issuer URL (e.g., `https://myorg.okta.com`) |\n| `OIDC_CLIENT_ID` | Yes | — | OIDC client identifier |\n| `OIDC_CLIENT_SECRET` | Yes | — | OIDC client secret |\n| `OIDC_DISPLAY_NAME` | No | `SSO` | Button label on the login page |\n| `OIDC_SCOPES` | No | `openid profile email` | OIDC scopes to request |\n| `OIDC_CLAIM_KEY` | No | — | IdP claim key for role mapping (e.g., `groups`) |\n| `OIDC_ADMIN_VALUE` | No | — | Claim value(s) that map to Admin role (comma-separated) |\n| `OIDC_CREATOR_VALUE` | No | — | Claim value(s) that map to Creator role (comma-separated) |\n| `OIDC_READER_VALUE` | No | — | Claim value(s) that map to Reader role (comma-separated) |\n| `OIDC_AUTO_PROVISION` | No | `true` | Auto-create users on first SSO login |\n| `OIDC_DEFAULT_ROLE` | No | `creator` | Role when no claim matches |\n| `OIDC_ENFORCE_SSO` | No | `false` | Hide password form for non-admin users |\n\n### Docker Compose Example\n\n```yaml\nservices:\n neoboard:\n image: neoboard:latest\n environment:\n DATABASE_URL: postgresql://neoboard:neoboard@db:5432/neoboard\n ENCRYPTION_KEY: ${ENCRYPTION_KEY}\n NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}\n NEXTAUTH_URL: https://neoboard.example.com\n # Enterprise + SSO\n NEOBOARD_EDITION: enterprise\n OIDC_ISSUER: https://myorg.okta.com\n OIDC_CLIENT_ID: neoboard-prod\n OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}\n OIDC_DISPLAY_NAME: Company SSO\n OIDC_CLAIM_KEY: groups\n OIDC_ADMIN_VALUE: devops,platform-team\n OIDC_CREATOR_VALUE: engineering,data-team\n OIDC_READER_VALUE: marketing,sales\n```\n\n## Multi-Provider Setup (Admin UI)\n\n\u003CAside type=\"note\">\nFor multiple SSO providers, use the Admin UI in Settings > Authentication. The env-based provider and UI-based providers work together.\n\u003C/Aside>\n\nFor organizations that need multiple SSO providers (e.g., Okta + Azure AD), use the Admin UI. The env-based provider and UI-based providers work together — the env provider appears first on the login page.\n\n### Configuring a Provider\n\n\u003CSteps>\n\n1. **Log in as an admin** and navigate to **Settings > Authentication**\n\n2. **Click \"Add Provider\"** and fill in the form:\n\n | Field | Description | Example |\n |-------|-------------|---------|\n | Display Name | Shown on the login button | `Company SSO` |\n | Issuer URL | Your IdP's OIDC issuer endpoint | `https://login.example.com/realms/myorg` |\n | Client ID | The OIDC client identifier | `neoboard-prod` |\n | Client Secret | The OIDC client secret (stored encrypted) | `abc123...` |\n | Scopes | OIDC scopes to request | `openid profile email` (default) |\n\n3. **Configure role mapping** (optional) to map IdP group claims to NeoBoard roles:\n\n | Field | Description | Example |\n |-------|-------------|---------|\n | IdP Claim Key | The token claim containing groups | `groups` or `realm_access.roles` |\n | Admin | Claim value that maps to Admin role | `neoboard-admins` |\n | Creator | Claim value that maps to Creator role | `neoboard-editors` |\n | Reader | Claim value that maps to Reader role | `neoboard-viewers` |\n\n4. **Set provisioning options:**\n\n - **Auto-provision new users** — When enabled, users signing in via SSO for the first time are automatically created in NeoBoard. When disabled, only pre-existing users can use SSO.\n - **Default role** — The role assigned when no claim mapping matches (default: Creator).\n - **Enforce SSO** — When enabled, the password login form is hidden for non-admin users. Admins can still use password login via `?password=true` in the URL.\n\n5. **Click \"Add Provider\"** to save\n\n\u003C/Steps>\n\nThe SSO button will appear on the login page immediately.\n\n## IdP Configuration Examples\n\n### Okta\n\n\u003CSteps>\n\n1. In the Okta admin console, go to **Applications > Create App Integration**\n2. Select **OIDC - OpenID Connect** and **Web Application**\n3. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}`\n4. Note the **Client ID** and **Client Secret**\n5. The issuer URL is your Okta domain: `https://your-org.okta.com`\n6. To map groups: go to **Directory > Groups**, create groups like `neoboard-admins`, assign users\n7. In the app's **Sign On** settings, add a **Groups claim** with filter `Matches regex: neoboard-.*`\n\n\u003C/Steps>\n\nIn NeoBoard Settings > Authentication:\n```\nDisplay Name: Okta\nIssuer URL: https://your-org.okta.com\nClient ID: 0oa1234567890abcdef\nClient Secret: your-client-secret\nClaim Key: groups\nAdmin value: neoboard-admins\nCreator value: neoboard-editors\nReader value: neoboard-viewers\n```\n\n### Azure AD / Entra ID\n\n\u003CSteps>\n\n1. In the Azure portal, go to **App Registrations > New Registration**\n2. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}`\n3. Under **Certificates & Secrets**, create a new client secret\n4. Under **Token Configuration**, add the `groups` optional claim to the ID token\n5. The issuer URL is: `https://login.microsoftonline.com/{tenant-id}/v2.0`\n\n\u003C/Steps>\n\nIn NeoBoard Settings > Authentication:\n```\nDisplay Name: Azure AD\nIssuer URL: https://login.microsoftonline.com/{tenant-id}/v2.0\nClient ID: your-app-client-id\nClient Secret: your-client-secret\nClaim Key: groups\nAdmin value: {group-object-id-for-admins}\nCreator value: {group-object-id-for-editors}\n```\n\n\u003CAside type=\"tip\">\nAzure AD returns group object IDs (GUIDs) in the `groups` claim, not group names. Use the group's Object ID from the Azure portal as the mapping value.\n\u003C/Aside>\n\n### Keycloak\n\n\u003CSteps>\n\n1. In the Keycloak admin console, create a new **Client** in your realm\n2. Set **Client authentication** to On (confidential client)\n3. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}`\n4. Under **Client Scopes > neoboard-dedicated**, add a **Group Membership** mapper with claim name `groups`\n5. Create groups (e.g., `neoboard-admins`, `neoboard-editors`) and assign users\n\n\u003C/Steps>\n\nIn NeoBoard Settings > Authentication:\n```\nDisplay Name: Keycloak\nIssuer URL: https://keycloak.example.com/realms/your-realm\nClient ID: neoboard\nClient Secret: your-client-secret\nClaim Key: groups\nAdmin value: neoboard-admins\nCreator value: neoboard-editors\nReader value: neoboard-viewers\n```\n\n### Google Workspace\n\n\u003CSteps>\n\n1. In the Google Cloud Console, go to **APIs & Services > Credentials**\n2. Create an **OAuth 2.0 Client ID** (Web application)\n3. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}`\n4. The issuer URL is: `https://accounts.google.com`\n\n\u003C/Steps>\n\n\u003CAside type=\"caution\">\nGoogle's OIDC tokens don't include a `groups` claim by default. All Google SSO users will get the **default role** unless you use Google Workspace directory groups with a custom claim mapper.\n\u003C/Aside>\n\n## Role Mapping\n\nRole mapping is evaluated on **every login**, not just the first time. If a user's group membership changes in the IdP, their NeoBoard role updates automatically on their next sign-in.\n\n**Priority order:** Admin > Creator > Reader. If a user is in multiple mapped groups, the highest-priority role wins.\n\n**Multiple groups per role:** Use comma-separated values to map several IdP groups to the same NeoBoard role:\n\n```bash\nOIDC_ADMIN_VALUE=devops,platform-team,it-ops\nOIDC_CREATOR_VALUE=engineering,data-team,analytics\nOIDC_READER_VALUE=marketing,sales,support\n```\n\nIf a user belongs to any of the listed groups, they get that role. This also works in the Admin UI claim mapping fields.\n\n**Nested claims** are supported with dot notation. For example, Keycloak's `realm_access.roles` claim can be mapped with:\n\n```\nClaim Key: realm_access.roles\n```\n\nWhen no claim mapping is configured, or no claim matches, the **default role** is used.\n\n## Account Linking\n\nWhen an SSO user's email matches an existing password-based NeoBoard account, the accounts are automatically linked. The user can then sign in with either method. The SSO login will update the user's role based on the latest IdP claims.\n\n## Limits\n\n- Up to **5 SSO providers** can be configured per tenant\n- Client secrets are encrypted at rest using AES-256-GCM (same encryption as database connection credentials)\n- Provider configurations are cached for 60 seconds — changes take up to 1 minute to propagate\n\n## Deleting a Provider\n\nWhen you delete an SSO provider:\n\n- Users who were provisioned via that provider **keep their accounts**\n- They can no longer sign in via SSO for that provider\n- If they have a password set, they can still use password login\n- An admin can assign them a new password in **Users** management\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| \"Invalid parameter: redirect_uri\" | The redirect URI in your IdP doesn't match. Set it to `https://your-domain/api/auth/callback/sso-{provider-id}` where `{provider-id}` is the provider's ID in NeoBoard (visible in Settings > Authentication URL). |\n| SSO button not showing | Check that the provider is **Enabled** in Settings > Authentication. The public endpoint only returns enabled providers. |\n| User gets wrong role | Verify the claim key and values match exactly what your IdP sends. Check the IdP's token debugger to inspect the actual claims. |\n| \"Auto-provision is disabled\" error | The user doesn't exist in NeoBoard and auto-provisioning is turned off. Create the user manually first, or enable auto-provisioning. |\n| Login loops back to /login | Ensure `NEXTAUTH_URL` is set correctly in your environment and matches the URL users access NeoBoard from. |","src/content/docs/authentication/sso.mdx","cdb2ba77bec62123","authentication/sso.mdx","authentication/api-keys",{"id":462,"data":464,"body":470,"filePath":471,"digest":472,"legacyId":473,"deferredRender":16},{"title":465,"description":466,"editUrl":16,"head":467,"template":47,"sidebar":468,"pagefind":16,"draft":35},"API Key Authentication","Use API keys to access NeoBoard programmatically.",[],{"hidden":35,"attrs":469},{},"API keys let you access NeoBoard's REST API without a browser session. They are useful for scripts, CI/CD pipelines, and integrations.\n\n## Creating an API Key\n\n1. Navigate to **Settings > API Keys** in the sidebar\n2. Click **Create API Key**\n3. Enter a **name** (e.g., \"CI Pipeline\") and optional **expiration date**\n4. Click **Create**\n5. **Copy the key immediately** -- it is shown only once and cannot be retrieved later\n\nThe key starts with `nb_` followed by a random string.\n\n## Using an API Key\n\nInclude the key in the `Authorization` header:\n\n```bash\ncurl -H \"Authorization: Bearer nb_your_key_here\" \\\n https://your-neoboard.example.com/api/dashboards\n```\n\n**JavaScript / fetch:**\n\n```javascript\nconst response = await fetch(\"https://your-neoboard.example.com/api/dashboards\", {\n headers: {\n Authorization: \"Bearer nb_your_key_here\",\n },\n});\nconst data = await response.json();\n```\n\n**Python / requests:**\n\n```python\nimport requests\n\nresponse = requests.get(\n \"https://your-neoboard.example.com/api/dashboards\",\n headers={\"Authorization\": \"Bearer nb_your_key_here\"},\n)\ndata = response.json()\n```\n\n## Available Endpoints\n\nAll data endpoints support API key authentication (38 of 45 total endpoints). The only exceptions are:\n\n| Endpoint | Reason |\n|----------|--------|\n| `/api/auth/*` | Session-only (NextAuth handlers) |\n| `/api/auth/bootstrap-status` | Public (no auth required) |\n| `/api/docs` | Public (documentation page) |\n| `/api/openapi`, `/api/openapi.json` | Public (API specification) |\n\n### Common Operations\n\n| Operation | Method | Endpoint |\n|-----------|--------|----------|\n| List dashboards | `GET` | `/api/dashboards` |\n| Get dashboard | `GET` | `/api/dashboards/:id` |\n| Create dashboard | `POST` | `/api/dashboards` |\n| Export dashboard | `GET` | `/api/dashboards/:id/export` |\n| Import dashboard | `POST` | `/api/dashboards/import` |\n| Execute query | `POST` | `/api/query` |\n| Execute write query | `POST` | `/api/query/write` |\n| List connections | `GET` | `/api/connections` |\n| Test connection | `POST` | `/api/connections/:id/test` |\n| Fetch schema | `GET` | `/api/connections/:id/schema` |\n| List users (admin) | `GET` | `/api/users` |\n| Create user (admin) | `POST` | `/api/users` |\n\nFor the full API specification, visit `/api/docs` or `/api/openapi.json` on your NeoBoard instance.\n\n## Key Management\n\n| Operation | Method | Endpoint |\n|-----------|--------|----------|\n| List your API keys | `GET` | `/api/keys` |\n| Create a new key | `POST` | `/api/keys` |\n| Revoke a key | `DELETE` | `/api/keys/:id` |\n\n### Expiration\n\nKeys can have an optional expiration date. Expired keys return `401 Unauthorized`. The `lastUsedAt` field is updated on each use for audit purposes.\n\n## Error Responses\n\nUnauthenticated requests return:\n\n```json\n{ \"error\": \"Unauthorized\" }\n```\n\nWith HTTP status `401`. Ensure your key is:\n- Correctly prefixed with `nb_`\n- Not expired\n- Not revoked\n- Included in the `Authorization` header (not query params)\n\n## Security Notes\n\n- API keys are hashed with HMAC-SHA256 before storage. NeoBoard never stores the plain-text key.\n- Keys inherit the permissions of the user who created them (role, tenantId, canWrite).\n- Revoked keys are immediately invalid.\n- Use short expiration dates for temporary access.","src/content/docs/authentication/api-keys.mdx","77c38ae886319226","authentication/api-keys.mdx","dashboards/first-dashboard",{"id":474,"data":476,"body":482,"filePath":483,"digest":484,"legacyId":485,"deferredRender":16},{"title":477,"description":478,"editUrl":16,"head":479,"template":47,"sidebar":480,"pagefind":16,"draft":35},"Creating Your First Dashboard","Build a dashboard with your first widget in under 10 minutes.",[],{"hidden":35,"attrs":481},{},"This guide walks you through logging in, creating a dashboard, and adding your first chart widget.\n\n## 1. Log In\n\nOpen NeoBoard in your browser. You will see the login screen.\n\n![NeoBoard login screen](/screenshots/login.png)\n\nEnter your email and password. If you are using the demo environment, the default credentials are:\n\n- **Email**: `admin@neoboard.local`\n- **Password**: `admin123`\n\nClick **Sign In** to continue.\n\n## 2. Create a New Dashboard\n\nAfter logging in, you land on the dashboard list.\n\n![Dashboard list](/screenshots/dashboard-list.png)\n\n1. Click the **New Dashboard** button in the top-right corner.\n2. Enter a **name** for your dashboard (e.g., \"Movie Analytics\").\n3. Add an optional **description** to help others understand its purpose.\n4. Click **Create**.\n\nYou are now in **edit mode** on your new, empty dashboard.\n\n## 3. Add Your First Widget\n\n1. Click the **Add Widget** button in the toolbar.\n2. In the widget editor dialog, select a **connection** from the dropdown. This tells NeoBoard which database to query. If you have not added a connection yet, see the [Connecting to Your Database](/connections/connecting-databases) guide first.\n3. Choose a **chart type**. For your first widget, **Bar Chart** is a great choice. It works well with most data shapes.\n\n## 4. Write a Query\n\nType a query into the query editor. Here are two examples depending on your database.\n\n**Neo4j (Cypher):**\n\n```cypher\nMATCH (m:Movie)\nRETURN m.title AS label, m.released AS value\nORDER BY m.released DESC\nLIMIT 10\n```\n\n**PostgreSQL (SQL):**\n\n```sql\nSELECT name, email\nFROM \"user\"\nORDER BY created_at DESC\nLIMIT 10\n```\n\n> The SQL example above queries the built-in `user` table. Replace it with your own table if you have loaded custom data.\n\nYour query should return at least two columns. The chart will use the first column as labels and the second as values.\n\n## 5. Preview and Save\n\n1. Click **Run** to preview the results. You will see your data rendered as a bar chart below the query editor.\n2. If the chart looks good, click **Save** to add the widget to your dashboard.\n3. You can **drag** the widget to reposition it or **resize** it by dragging its edges.\n\n## 6. Exit Edit Mode\n\nClick the **Edit** toggle in the toolbar to exit edit mode. Your dashboard is now live. Anyone with access can view it.\n\n## Next Steps\n\n- Add more widgets to build a complete dashboard.\n- Explore all available [widget types](/dashboards/widgets) including tables, graphs, maps, and forms.\n- Set up database connections in [Connecting to Your Database](/connections/connecting-databases).\n- Control who can see your dashboards in [Managing Users and Permissions](/administration/managing-users).","src/content/docs/dashboards/first-dashboard.mdx","964e609e6d49de33","dashboards/first-dashboard.mdx","dashboards/widgets",{"id":486,"data":488,"body":494,"filePath":495,"digest":496,"legacyId":497,"deferredRender":16},{"title":489,"description":490,"editUrl":16,"head":491,"template":47,"sidebar":492,"pagefind":16,"draft":35},"Widgets","Widget types, lifecycle, and configuration.",[],{"hidden":35,"attrs":493},{},"Widgets are the building blocks of dashboards. Each widget runs a query and displays the result as a chart, table, graph, or form.\n\n## Widget Types\n\n| Type | What it shows | Expected data |\n|------|--------------|---------------|\n| Bar Chart | Vertical or horizontal bars | Rows with a category column and a value column |\n| Line Chart | Time series and trend lines | Rows with an x-axis column and one or more y-axis columns |\n| Pie Chart | Proportional slices | Rows with a label column and a value column |\n| Single Value | One large number (KPI) | A single row with one column |\n| Table | Sortable, paginated data grid | Any tabular result |\n| Graph | Nodes and relationships (Neo4j) | Graph data (nodes and edges) |\n| Map | Geographic markers on a map | Rows with latitude and longitude columns |\n| JSON Viewer | Collapsible JSON tree | Any query result |\n| Form | Input fields that run a write query | User-defined form fields |\n\n## How to Create a Widget\n\nThe widget editor walks you through five steps:\n\n1. **Connection** — pick which database to query\n2. **Query** — write a Cypher or SQL query\n3. **Chart type** — choose how to visualize the result\n4. **Options** — map columns, set colors, configure axes and labels\n5. **Save** — the widget appears on your dashboard\n\nClick **Run** at any point to preview the result before saving.\n\n## Parameter Widgets\n\nParameter widgets collect user input and pass it to other widgets' queries. They do not display data themselves.\n\n| Parameter type | Input control | Value produced |\n|---------------|---------------|----------------|\n| Select | Dropdown (populated by a seed query) | Single string |\n| Text | Free-text input | String |\n| Number | Numeric input | Number |\n| Date | Date picker | ISO date string |\n| Date Range | Start/end date pickers | `{start, end}` object |\n| Boolean | Toggle switch | `true` or `false` |\n| Multiselect | Multi-value dropdown | Array of strings |\n| Slider | Range slider | Number |\n\nOther widgets reference parameter values with `$param_name` in their queries. See [Parameters](/dashboards/parameters) for details.\n\n## Widget Templates (Widget Lab)\n\nYou can save any widget configuration as a reusable template in the Widget Lab.\n\n![Widget Lab](/screenshots/widget-lab.png)\n\nTemplates include the chart type, query, column mappings, and options. Browse the lab, preview a template, and add it to any dashboard with one click.","src/content/docs/dashboards/widgets.mdx","4cfbb9ea2fbdd8c9","dashboards/widgets.mdx","dashboards/parameters",{"id":498,"data":500,"body":506,"filePath":507,"digest":508,"legacyId":509,"deferredRender":16},{"title":501,"description":502,"editUrl":16,"head":503,"template":47,"sidebar":504,"pagefind":16,"draft":35},"Parameters","Interactive filters that drive queries across widgets.",[],{"hidden":35,"attrs":505},{},"Parameters make dashboards interactive. A user picks a value from a dropdown, types into a text field, or selects a date — and every widget that references that parameter re-runs its query automatically.\n\n## How It Works\n\n1. You add a **parameter widget** to your dashboard (e.g., a dropdown)\n2. The user selects a value\n3. Other widgets reference the parameter with `$param_name` in their queries\n4. When the value changes, dependent widgets refresh automatically\n\n## The `$param_name` Syntax\n\nUse `$param_name` anywhere in your query to reference a parameter value. NeoBoard replaces it safely using parameterized queries — values are never interpolated into the query string.\n\n**Cypher (Neo4j):**\n\n```cypher\nMATCH (m:Movie)\nWHERE m.year >= $param_start_year\n AND m.year \u003C= $param_end_year\nRETURN m.title, m.year\nORDER BY m.year\n```\n\n**SQL (PostgreSQL):**\n\n```sql\nSELECT title, year\nFROM movies\nWHERE year >= $param_start_year\n AND year \u003C= $param_end_year\nORDER BY year;\n```\n\nThe parameter name must match exactly. If your parameter widget is named `start_year`, reference it as `$param_start_year` (NeoBoard adds the `param_` prefix automatically).\n\n## Parameter Types\n\n| Type | Input control | Value produced | Use case |\n|------|--------------|----------------|----------|\n| Select | Dropdown | Single string | Filter by category (e.g., country, status) |\n| Text | Free-text input | String | Search by name or keyword |\n| Number | Numeric input | Number | Filter by threshold or ID |\n| Date | Date picker | ISO date string | Filter by specific date |\n| Date Range | Start/end pickers | `{start, end}` | Filter a time window |\n| Boolean | Toggle switch | `true` / `false` | Enable/disable a filter |\n| Multiselect | Multi-value dropdown | Array of strings | Filter by multiple categories |\n| Slider | Range slider | Number | Adjust a numeric threshold visually |\n\n## Seed Queries\n\nFor **Select** and **Multiselect** parameters, you write a seed query that populates the dropdown options. The seed query runs once when the dashboard loads.\n\n**Example seed query (Cypher):**\n\n```cypher\nMATCH (c:Country)\nRETURN DISTINCT c.name AS value\nORDER BY c.name\n```\n\n**Example seed query (SQL):**\n\n```sql\nSELECT DISTINCT country AS value\nFROM customers\nORDER BY country;\n```\n\nThe query must return a column named `value`. Each row becomes a dropdown option.\n\n## Where Parameter Values Come From\n\n- **User input** — the user selects or types a value (default)\n- **Seed query** — a query populates dropdown options\n- **Default values** — initial values set during widget configuration\n- **Click actions** — clicking a chart element sets a parameter value (configured in the widget's Advanced tab)","src/content/docs/dashboards/parameters.mdx","e9b8c25855307ecd","dashboards/parameters.mdx","dashboards/overview",{"id":510,"data":512,"body":518,"filePath":519,"digest":520,"legacyId":521,"deferredRender":16},{"title":513,"description":514,"editUrl":16,"head":515,"template":47,"sidebar":516,"pagefind":16,"draft":35},"Dashboards","Dashboard structure, layout system, and multi-page support.",[],{"hidden":35,"attrs":517},{},"Dashboards are the primary way to organize and display data in NeoBoard.\n\n![Dashboard list](/screenshots/dashboard-list.png)\n\n## Creating a Dashboard\n\n1. Click **Dashboards** in the sidebar\n2. Click **New Dashboard**\n3. Enter a name and optional description\n4. Click **Create**\n\nTo edit, click the **Edit** button on any dashboard. To delete, open **Dashboard options** and select **Delete**.\n\n## Structure\n\nEach dashboard contains:\n\n- **Name** and optional **description**\n- One or more **pages**, each with its own set of widgets\n- A **grid layout** (12-column responsive grid)\n- **Settings** like auto-refresh interval\n\n## Multi-Page Support\n\nDashboards can have multiple pages. Each page has independent widgets and layouts. Use pages to organize related views:\n\n- Page 1: Overview metrics\n- Page 2: Detailed analysis\n- Page 3: Graph exploration\n\n## Grid Layout\n\n- **Drag** widgets to reposition them\n- **Resize** by dragging widget edges\n- Minimum size: 2 columns by 2 rows\n- Layout is saved per page\n\n## Permissions\n\n| Role | View | Edit | Delete | Share |\n|------|------|------|--------|-------|\n| Admin | All | All | All | All |\n| Creator | Own + shared | Own + shared (editor) | Own only | Own only |\n| Reader | Shared only | No | No | No |\n\n## Export and Import\n\nDashboards can be exported as JSON and imported into other NeoBoard instances.\n\n**What the export includes:**\n- All widgets, queries, chart options, and layout\n- Connection metadata (name, type) but **not credentials**\n- Portable connection keys instead of internal IDs\n\n**Example export format:**\n\n```json\n{\n \"name\": \"Sales Overview\",\n \"pages\": [\n {\n \"name\": \"Page 1\",\n \"widgets\": [\n {\n \"type\": \"bar\",\n \"title\": \"Revenue by Month\",\n \"connectionKey\": \"sales-db\",\n \"query\": \"SELECT month, revenue FROM sales\",\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 6, \"h\": 4 }\n }\n ]\n }\n ],\n \"connections\": {\n \"sales-db\": { \"name\": \"Sales DB\", \"type\": \"postgresql\" }\n }\n}\n```\n\nTo import, click **Import Dashboard** on the dashboard list page and select a JSON file.","src/content/docs/dashboards/overview.mdx","7b274acaa356c566","dashboards/overview.mdx","connections/connecting-databases",{"id":522,"data":524,"body":530,"filePath":531,"digest":532,"legacyId":533,"deferredRender":16},{"title":525,"description":526,"editUrl":16,"head":527,"template":47,"sidebar":528,"pagefind":16,"draft":35},"Connecting to Your Database","Add Neo4j and PostgreSQL connections to NeoBoard.",[],{"hidden":35,"attrs":529},{},"NeoBoard supports two database types: **Neo4j** (graph) and **PostgreSQL** (relational). This guide shows you how to add and test connections for both.\n\n![Connections page](/screenshots/connections.png)\n\n## Adding a Neo4j Connection\n\n1. Navigate to **Connections** in the sidebar.\n2. Click **Add Connection**.\n3. Select **Neo4j** as the connection type.\n4. Fill in the connection details:\n\n| Field | Example | Notes |\n|-------|---------|-------|\n| **Name** | Movie Database | A label to identify this connection |\n| **URI** | `bolt://localhost:7687` | Bolt protocol URI |\n| **Username** | `neo4j` | Your Neo4j username |\n| **Password** | `password` | Your Neo4j password |\n| **Database** | `neo4j` | Optional. Defaults to the default database |\n| **Timeout** | `30` | Query timeout in seconds |\n\n5. Click **Test Connection** to verify NeoBoard can reach your database.\n6. If the test passes, click **Create**.\n\n## Adding a PostgreSQL Connection\n\n1. Navigate to **Connections** in the sidebar.\n2. Click **Add Connection**.\n3. Select **PostgreSQL** as the connection type.\n4. Fill in the connection details:\n\n| Field | Example | Notes |\n|-------|---------|-------|\n| **Name** | Analytics DB | A label to identify this connection |\n| **URI** | `postgresql://user:pass@localhost:5432/mydb` | Full connection string |\n| **SSL** | Enabled/Disabled | Enable for production databases |\n| **Timeout** | `30` | Query timeout in seconds |\n\n5. Click **Test Connection** to verify, then click **Create**.\n\n## Troubleshooting\n\nIf you see an **Error** badge next to your connection, try these steps.\n\n### Check Your URI and Credentials\n\nMake sure the URI, username, and password are correct. A typo in any field will cause a connection failure.\n\n### Docker Networking\n\nIf NeoBoard and your database both run in Docker, use the **container name** instead of `localhost`:\n\n```\nbolt://neoboard-neo4j:7687\npostgresql://user:pass@neoboard-postgres:5432/mydb\n```\n\nContainers on the same Docker network communicate by service name, not `localhost`.\n\n### Local Databases\n\nIf your database runs directly on your machine (not in Docker), use `localhost` with the correct port:\n\n- Neo4j Bolt: `7687` (default)\n- PostgreSQL: `5432` (default)\n\n### Firewall and Network\n\nEnsure no firewall rules block traffic between NeoBoard and your database. Cloud-hosted databases may require you to allowlist the NeoBoard server IP.\n\n## Next Steps\n\n- Use your new connection to [create your first dashboard](/dashboards/first-dashboard).\n- Explore all available [widget types](/dashboards/widgets) including charts, tables, graphs, and forms.","src/content/docs/connections/connecting-databases.mdx","46802affe7c751e7","connections/connecting-databases.mdx","connections/connectors",{"id":534,"data":536,"body":542,"filePath":543,"digest":544,"legacyId":545,"deferredRender":16},{"title":537,"description":538,"editUrl":16,"head":539,"template":47,"sidebar":540,"pagefind":16,"draft":35},"Connectors","How NeoBoard connects to Neo4j and PostgreSQL databases.",[],{"hidden":35,"attrs":541},{},"Connectors are the bridge between NeoBoard and your databases. Each connector stores encrypted credentials and manages a connection pool.\n\n![Connections management page](/screenshots/connections.png)\n\n## Supported Databases\n\n| Database | Protocol | Query Language |\n|----------|----------|---------------|\n| Neo4j | `bolt://`, `neo4j://` | Cypher |\n| PostgreSQL | `postgresql://` | SQL |\n\n## Setting Up a Connection\n\n1. Go to **Connections** in the sidebar\n2. Click **Add Connection**\n3. Fill in the form fields:\n\n| Field | Description | Example |\n|-------|-------------|---------|\n| Name | A label you will see in dropdowns | `Movie Database` |\n| Type | Neo4j or PostgreSQL | `Neo4j` |\n| URI | Database connection string | `bolt://localhost:7687` |\n| Username | Database user | `neo4j` |\n| Password | Database password | `password` |\n\n4. Click **Test Connection** to verify connectivity\n5. Click **Save**\n\n## Connection Lifecycle\n\n1. **Create** — you provide URI, username, and password\n2. **Encrypt** — credentials are encrypted with AES-256-GCM before storage\n3. **Test** — NeoBoard verifies connectivity before saving\n4. **Pool** — a connection pool is created on first query\n5. **Cache** — the pool is reused for subsequent queries to the same database\n\n## Credential Security\n\n- Credentials are encrypted at rest using AES-256-GCM (envelope encryption with HKDF-SHA256)\n- Plaintext credentials are never logged or stored\n- If `ENCRYPTION_KEY` is lost, all stored credentials become unrecoverable\n\n## Advanced Settings\n\n| Setting | Description | Default |\n|---------|-------------|---------|\n| Connection Timeout | Time to establish a connection | 30s |\n| Query Timeout | Maximum query execution time | 30s |\n| Max Pool Size | Maximum concurrent connections | 10 |\n| Idle Timeout | Time before idle connections close | 10s |\n| Statement Timeout | PostgreSQL statement timeout | (query timeout) |\n| SSL Reject Unauthorized | Verify SSL certificates | true |\n\n## Schema Introspection\n\nNeoBoard can read your database schema to help with query writing:\n\n- **Neo4j** — node labels, relationship types, property keys\n- **PostgreSQL** — tables, columns, data types","src/content/docs/connections/connectors.mdx","f136d4db6b5fa8f0","connections/connectors.mdx","connections/query-safety",{"id":546,"data":548,"body":554,"filePath":555,"digest":556,"legacyId":557,"deferredRender":16},{"title":549,"description":550,"editUrl":16,"head":551,"template":47,"sidebar":552,"pagefind":16,"draft":35},"Query Safety","How NeoBoard protects your databases from harmful queries.",[],{"hidden":35,"attrs":553},{},"NeoBoard enforces multiple layers of safety to protect your databases.\n\n## Parameterized Queries\n\nUser input is **never** interpolated into query strings. All parameters use the database driver's native parameterization:\n\n- **Neo4j**: Cypher parameters (`$param_name`)\n- **PostgreSQL**: Positional parameters (`$1`, `$2`)\n\n## Read-Only by Default\n\nNon-form widgets execute queries in read-only mode:\n\n- **PostgreSQL**: `BEGIN READ ONLY` transactions\n- **Neo4j**: Read access mode sessions\n\nWrite operations are only allowed through **Form widgets** with the `can_write` permission, enforced server-side.\n\n## Timeouts\n\nEvery query has a timeout enforced at the driver level:\n\n- Default: 30 seconds (configurable via `QUERY_TIMEOUT_MS`)\n- Uses `AbortSignal` for PostgreSQL\n- Native timeout for Neo4j driver\n\n## Row Limits\n\nResults are consumed with a `MAX_ROWS + 1` pattern:\n- The extra row detects if results were truncated\n- NeoBoard **never** adds `LIMIT` clauses to user queries\n- Default limit: 1000 rows\n\n## Concurrency Control\n\nEach connector uses a per-connection queue (`p-queue`) to prevent overwhelming the database with concurrent queries.\n\n## Credential Protection\n\n- AES-256-GCM encryption at rest\n- HKDF-SHA256 key derivation per credential\n- Decrypted credentials never logged\n- Lost `ENCRYPTION_KEY` = unrecoverable credentials","src/content/docs/connections/query-safety.mdx","84e6ef778a772b82","connections/query-safety.mdx","administration/managing-users",{"id":558,"data":560,"body":566,"filePath":567,"digest":568,"legacyId":569,"deferredRender":16},{"title":561,"description":562,"editUrl":16,"head":563,"template":47,"sidebar":564,"pagefind":16,"draft":35},"Managing Users and Permissions","Create users, assign roles, and control access in NeoBoard.",[],{"hidden":35,"attrs":565},{},"NeoBoard uses role-based access control to manage what each user can see and do. This guide covers user creation, roles, and the write permission toggle.\n\n![Users management page](/screenshots/users.png)\n\n## Roles\n\nEvery user is assigned one of three roles.\n\n| Role | Dashboards | Connections | Users | Write Queries |\n|------|-----------|-------------|-------|---------------|\n| **Admin** | View, create, edit, delete | Manage all connections | Create and manage users | Yes (if enabled) |\n| **Creator** | View, create, edit, delete own | View connections | No access | Yes (if enabled) |\n| **Reader** | View only | No access | No access | No |\n\n- **Admin** has full access to everything: dashboards, connections, user management, and settings.\n- **Creator** can build and edit dashboards and widgets. Creators can run queries against connections but cannot add or modify connections.\n- **Reader** can only view published dashboards. Readers cannot edit anything or run custom queries.\n\n## Write Permission\n\nThe **write permission** toggle is an additional control, separate from the role. It determines whether a user can execute write queries (e.g., `CREATE`, `INSERT`, `UPDATE`, `DELETE`).\n\n- When **enabled**, the user can run queries that modify data.\n- When **disabled**, the user is restricted to read-only queries, regardless of their role.\n\nThis is useful when you want a Creator to build dashboards but not modify the underlying data.\n\n## Creating a User\n\n1. Navigate to **Users** in the sidebar.\n2. Click **Create User**.\n3. Fill in the user details:\n - **Name**: The user's display name\n - **Email**: Their login email address\n - **Password**: A strong initial password\n - **Role**: Select Admin, Creator, or Reader\n4. Toggle **Write permission** on or off based on your needs.\n5. Click **Create**.\n\nThe new user can now log in with their email and password.\n\n## API Keys\n\nFor programmatic access to NeoBoard, you can generate API keys.\n\n![Settings page](/screenshots/settings.png)\n\n1. Navigate to **Settings** in the sidebar.\n2. Go to the **API Keys** section.\n3. Click **Create API Key**.\n4. Copy the key immediately. It will not be shown again.\n\nUse the API key in the `Authorization` header when calling the NeoBoard REST API.\n\n## Next Steps\n\n- Start building dashboards with the [first dashboard guide](/dashboards/first-dashboard).\n- Set up database connections in [Connecting to Your Database](/connections/connecting-databases).","src/content/docs/administration/managing-users.mdx","f541d4d4e10a8a0e","administration/managing-users.mdx","administration/multi-tenancy",{"id":570,"data":572,"body":578,"filePath":579,"digest":580,"legacyId":581,"deferredRender":16},{"title":573,"description":574,"editUrl":16,"head":575,"template":47,"sidebar":576,"pagefind":16,"draft":35},"Multi-Tenancy","Tenant isolation and data security in NeoBoard.",[],{"hidden":35,"attrs":577},{},"NeoBoard supports multi-tenancy for SaaS deployments and team isolation.\n\n## How It Works\n\n- Every table in the metadata database has a `tenant_id` column\n- Every database query includes a tenant filter at the ORM level\n- JWT tokens include a `tenantId` claim, validated before any data access\n\n## Isolation Guarantees\n\n- Users in tenant A **cannot** see or modify data belonging to tenant B\n- Connections, dashboards, widgets, and API keys are all tenant-scoped\n- Admin users have full access within their tenant only\n\n## Roles\n\n| Role | Permissions |\n|------|------------|\n| **Admin** | Full access to all resources in the tenant |\n| **Creator** | Create/edit own dashboards, view connections |\n| **Reader** | View-only access to shared dashboards |\n\n## Configuration\n\nMulti-tenancy is controlled by environment variables — no code branches:\n\n- `DEFAULT_TENANT_ID`: Used for single-tenant deployments\n- Tenant assignment happens at user creation time","src/content/docs/administration/multi-tenancy.mdx","fe1767d0a9e9c1bf","administration/multi-tenancy.mdx","developer/architecture",{"id":582,"data":584,"body":590,"filePath":591,"digest":592,"legacyId":593,"deferredRender":16},{"title":585,"description":586,"editUrl":16,"head":587,"template":47,"sidebar":588,"pagefind":16,"draft":35},"Architecture","Three-package monorepo design, data flow, and how the pieces fit together.",[],{"hidden":35,"attrs":589},{},"NeoBoard is a monorepo with three packages plus a CLI. Each package has strict boundaries that keep the codebase modular and testable.\n\n## Package Boundaries\n\n```mermaid\ngraph TD\n APP[\"\u003Cb>app/\u003C/b>\u003Cbr/>Next.js Application\u003Cbr/>API routes, stores, hooks, pages\"]\n COMP[\"\u003Cb>component/\u003C/b>\u003Cbr/>React UI Library\u003Cbr/>Charts, forms, shadcn/ui\"]\n CONN[\"\u003Cb>connection/\u003C/b>\u003Cbr/>DB Connector Library\u003Cbr/>Neo4j, PostgreSQL drivers\"]\n CLI[\"\u003Cb>cli/\u003C/b>\u003Cbr/>CLI Tool\u003Cbr/>Setup, migrations\"]\n ENT[\"\u003Cb>enterprise/\u003C/b>\u003Cbr/>Enterprise Features\u003Cbr/>SSO, custom roles\"]\n\n APP -->|imports UI| COMP\n APP -->|imports connectors| CONN\n APP -.->|dynamic import| ENT\n\n style APP fill:#3b82f6,color:#fff\n style COMP fill:#10b981,color:#fff\n style CONN fill:#f59e0b,color:#fff\n style CLI fill:#6b7280,color:#fff\n style ENT fill:#8b5cf6,color:#fff\n```\n\n| Package | What it does | What it must NOT do |\n|---------|-------------|---------------------|\n| `app/` | API routes, pages, stores, hooks, plugins. Orchestrates the other two. | -- |\n| `component/` | React UI components, charts, forms. Viewable in Storybook. | No business logic. No API calls. No imports from `app/`. |\n| `connection/` | Neo4j and PostgreSQL drivers, schema introspection, query parsing. | No UI. No React. No imports from `app/` or `component/`. |\n| `cli/` | Setup, migrations, dev server management. | Standalone Node.js tool. |\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Framework | Next.js 16 (App Router) |\n| UI | React 19, shadcn/ui, Tailwind CSS |\n| Charts | ECharts (modular imports) |\n| Graph | Neo4j NVL |\n| Maps | Leaflet |\n| State | Zustand (6 stores), TanStack Query |\n| Auth | Auth.js v5 (JWT sessions) |\n| ORM | Drizzle (PostgreSQL) |\n| Testing | Vitest, Playwright, Testcontainers |\n| Build | npm workspaces, Turbopack (dev), webpack (build) |\n\n## Data Flow: Query Execution\n\nWhen a widget renders its data, here is the full path:\n\n1. **Widget component** reads parameters from the Parameter Store (Zustand)\n2. **`useWidgetQuery` hook** merges parameters into the query and calls TanStack Query\n3. **TanStack Query** checks its cache. On miss, sends `POST /api/query`\n4. **API route** validates auth via `requireSession()`, decrypts connection credentials\n5. **Query Executor** gets or creates a cached connection module\n6. **Connection Module** runs the query (Cypher for Neo4j, SQL for PostgreSQL)\n7. **Database** returns results\n8. **Response** flows back through the API to TanStack Query cache\n9. **Plugin transform** converts raw rows into chart-specific data format\n10. **Chart component** renders (ECharts, NVL, Leaflet, or custom)\n\n## State Management\n\nNeoBoard uses **Zustand** for client-only state and **TanStack Query** for server state:\n\n| Store | Purpose | Persistence |\n|-------|---------|-------------|\n| Dashboard Store | Layout, pages, widgets, grid positions | API (saved on user action) |\n| Widget Editor Store | Current widget being edited (chart type, query, options) | Ephemeral (modal lifetime) |\n| Parameter Store | Dashboard parameter values | localStorage per dashboard |\n| Connection Store | Active connection ID, widget-to-connection mapping | Ephemeral |\n| Schema Store | Cached database schemas by connection ID | Ephemeral |\n| Graph Widget Store | Graph exploration state (nodes, edges, layout) | Ephemeral |\n\n**TanStack Query** manages all API data: dashboards list, connections, users, API keys, widget templates. Mutations use optimistic updates with automatic cache invalidation.\n\n## Plugin System\n\nChart types are implemented as **plugins**. Each plugin defines:\n\n- **Component** -- the React component that renders the chart\n- **Transform** -- function that converts raw query rows into chart-specific data\n- **Settings Schema** -- Zod schema for type-safe chart options\n- **Options** -- UI definition for the chart options panel\n- **Capabilities** -- flags like `supportsClickAction`, `supportsStyling`, `isECharts`\n\n17 chart plugins are registered at startup: bar, line, pie, gauge, single-value, table, graph, map, json, markdown, form, iframe, sankey, sunburst, radar, treemap, parameter-select.\n\nSee the [Chart Plugin Guide](/developer/extending/new-chart-plugin) to add your own.\n\n## Authentication Flow\n\nAll routes are protected by `proxy.ts` (Next.js middleware):\n\n1. **Public routes** pass through: `/login`, `/signup`, `/api/auth/*`, `/api/docs`, `/api/openapi*`\n2. **API key requests** (`Authorization: Bearer nb_*`) pass through to server-side validation\n3. **Unauthenticated page requests** redirect to `/login`\n4. **Unauthenticated API requests** return `401 JSON`\n5. **Authenticated requests** continue to the route handler\n\nInside route handlers, `requireSession()` extracts the user's `userId`, `role`, `tenantId`, and `canWrite` from the JWT or API key. Admin-only routes use `requireAdmin()`.\n\n## Multi-Tenancy\n\nEvery data table includes a `tenant_id` column. All queries filter by the authenticated user's tenant. See [Multi-Tenancy](/administration/multi-tenancy) for details.\n\n## Security\n\n- **Credentials**: AES-256-GCM envelope encryption. Lost `ENCRYPTION_KEY` = unrecoverable.\n- **Queries**: Always parameterized. User input never interpolated into query strings.\n- **Read-only**: PostgreSQL uses `BEGIN TRANSACTION READ ONLY`. Neo4j uses `session.executeRead()`.\n- **Timeouts**: Enforced at driver level (statement timeout for PostgreSQL, transaction timeout for Neo4j).\n- **Rate limiting**: Login attempts limited to 20 per minute per IP.\n\n## Where Does Code Live?\n\n| Feature | Package | Key Directory |\n|---------|---------|--------------|\n| API routes | `app/` | `src/app/api/` |\n| Dashboard pages | `app/` | `src/app/(dashboard)/` |\n| Auth (login, signup) | `app/` | `src/app/(auth)/`, `src/lib/auth/` |\n| Zustand stores | `app/` | `src/stores/` |\n| React hooks | `app/` | `src/hooks/` |\n| Widget editor | `app/` | `src/components/widget-editor/` |\n| Chart components | `component/` | `src/charts/` |\n| UI primitives (shadcn) | `component/` | `src/components/ui/` |\n| Composed components | `component/` | `src/components/composed/` |\n| Chart options schema | `component/` | `src/components/composed/chart-options-schema.ts` |\n| Neo4j driver | `connection/` | `src/neo4j/` |\n| PostgreSQL driver | `connection/` | `src/postgresql/` |\n| Schema introspection | `connection/` | `src/schema/` |\n| DB schema (Drizzle) | `app/` | `src/lib/db/schema.ts` |\n| Migrations | `app/` | `drizzle/migrations/` |\n| E2E tests | `app/` | `e2e/` |\n| SSO (enterprise) | `enterprise/` | `src/` |\n\n## Common Tasks\n\n### Add a new API route\n\n1. Create `app/src/app/api/your-route/route.ts`\n2. Use `requireSession()` or `requireAdmin()` for auth\n3. Use `apiSuccess()` / `apiError()` for response envelope\n4. Add tests in `__tests__/route.test.ts` next to the route\n5. See any existing route in `app/src/app/api/` for the pattern\n\n### Add a new chart type\n\nFollow the [Chart Plugin Guide](/developer/extending/new-chart-plugin). Key steps:\n1. Create the chart component in `component/src/charts/`\n2. Register it in `app/src/lib/chart-registry.ts`\n3. Add chart options in `component/src/components/composed/chart-options-schema.ts`\n\n### Add a new setting\n\n1. Add the env var to `.env.example`\n2. Read it in the relevant module via `process.env.YOUR_VAR`\n3. Document it in `docs/src/content/docs/getting-started/configuration.mdx`\n\n### Add a new database table\n\n1. Add the Drizzle schema in `app/src/lib/db/schema.ts`\n2. Run `npm run db:generate` to create the migration\n3. Add inferred types at the bottom of `schema.ts`","src/content/docs/developer/architecture.mdx","2766674f4252ce0e","developer/architecture.mdx","authentication",{"id":594,"data":596,"body":602,"filePath":603,"digest":604,"legacyId":605,"deferredRender":16},{"title":597,"description":598,"editUrl":16,"head":599,"template":47,"sidebar":600,"pagefind":16,"draft":35},"Authentication","How users authenticate with NeoBoard — passwords, SSO, API keys, and roles.",[],{"hidden":35,"attrs":601},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nNeoBoard supports multiple authentication methods and role-based access control.\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Password Login\" href=\"/authentication/password-login\" />\n \u003CLinkCard title=\"Single Sign-On (SSO)\" description=\"Enterprise\" href=\"/authentication/sso\" />\n \u003CLinkCard title=\"API Keys\" href=\"/authentication/api-keys\" />\n \u003CLinkCard title=\"Roles & Permissions\" href=\"/authentication/roles\" />\n\u003C/CardGrid>","src/content/docs/authentication/index.mdx","0fb211e13c4895b9","authentication/index.mdx","authentication/password-login",{"id":606,"data":608,"body":614,"filePath":615,"digest":616,"legacyId":617,"deferredRender":16},{"title":609,"description":610,"editUrl":16,"head":611,"template":47,"sidebar":612,"pagefind":16,"draft":35},"Password Login","Email and password authentication in NeoBoard.",[],{"hidden":35,"attrs":613},{},"NeoBoard ships with built-in email/password authentication. No external identity provider is required.\n\n## First Admin Setup\n\nWhen NeoBoard starts for the first time with an empty database, the first user to sign up becomes the **Admin**. This bootstrap flow:\n\n1. Navigate to `/signup`\n2. If `ADMIN_BOOTSTRAP_TOKEN` is set in your environment, enter it in the bootstrap token field\n3. Fill in your name, email, and password\n4. Click **Create account**\n\nYou are now the first Admin and can create additional users.\n\n## Signing In\n\n1. Navigate to `/login`\n2. Enter your email and password\n3. Click **Sign in**\n\nIf SSO is configured, SSO buttons appear above the password form. Both login methods work simultaneously unless SSO enforcement is enabled.\n\n## Password Requirements\n\n- Minimum 8 characters\n- At least 1 letter\n- At least 1 number\n\n## Forced Password Change\n\nAdmins can require a user to change their password on next login by enabling **Force password change** when creating or editing a user. The user will be redirected to `/change-password` before they can access any dashboard.\n\n## Session Management\n\n- Sessions use JWT tokens (stateless)\n- Default session duration: 8 hours (configurable via `SESSION_MAX_AGE`)\n- Sessions are invalidated when:\n - A user's password is changed (with a 30-second grace period)\n - A user is disabled by an admin\n - A user's role is changed\n\n## Rate Limiting\n\nLogin attempts are rate-limited by IP address:\n\n- **20 login attempts** per minute per IP\n- **10 signup attempts** per minute per IP\n\nExceeding the limit silently rejects further attempts until the window resets.\n\n## Registration Control\n\nSet `REGISTRATION_ENABLED=false` to disable the `/signup` page. Existing users can still log in, and admins can still create users via the Users management page.\n\n## Related\n\n- [Roles & Permissions](/authentication/roles) — understand what each role can do\n- [Single Sign-On](/authentication/sso) — enable OIDC-based login (Enterprise)\n- [Configuration](/getting-started/configuration) — all environment variables","src/content/docs/authentication/password-login.mdx","1beb954e32cf5363","authentication/password-login.mdx","authentication/roles",{"id":618,"data":620,"body":626,"filePath":627,"digest":628,"legacyId":629,"deferredRender":16},{"title":621,"description":622,"editUrl":16,"head":623,"template":47,"sidebar":624,"pagefind":16,"draft":35},"Roles & Permissions","Understand NeoBoard's role-based access control system.",[],{"hidden":35,"attrs":625},{},"Every NeoBoard user is assigned one of three roles. Roles determine what a user can see and do across the application.\n\n## Role Comparison\n\n| Capability | Admin | Creator | Reader |\n|-----------|-------|---------|--------|\n| View dashboards | Yes | Yes | Yes |\n| Create/edit dashboards | Yes | Yes (own) | No |\n| Delete dashboards | Yes | Yes (own) | No |\n| Manage connections | Yes | View only | No |\n| Manage users | Yes | No | No |\n| Access settings | Yes | No | No |\n| Run read queries | Yes | Yes | No |\n| Run write queries | Yes (if enabled) | Yes (if enabled) | No |\n\n## Admin\n\nFull access to everything: dashboards, connections, user management, and settings. Admins are the only role that can create other users and configure SSO providers.\n\n## Creator\n\nCan build and edit their own dashboards and widgets. Creators can run queries against existing connections but cannot add, modify, or delete connections. They cannot access user management or settings.\n\n## Reader\n\nView-only access. Readers can view dashboards shared with them but cannot edit anything, run custom queries, or access connections.\n\n## Write Permission\n\nThe **write permission** toggle is an additional control, independent of the role. It determines whether a user can execute write queries (`CREATE`, `INSERT`, `UPDATE`, `DELETE`).\n\n| Role | Write Permission On | Write Permission Off |\n|------|-------------------|---------------------|\n| Admin | Can write | Can write (always) |\n| Creator | Can write | Read-only queries |\n| Reader | No effect | No effect |\n\nAdmins always have write access regardless of the toggle. This is useful when you want a Creator to build dashboards but not modify the underlying data.\n\n## Role Assignment\n\n### At user creation\nAdmins assign a role when creating a user in **Users** management.\n\n### Via SSO claim mapping\nWhen SSO is configured, roles can be automatically assigned based on IdP group claims. See [SSO Role Mapping](/authentication/sso#role-mapping).\n\n### Default role\nNew SSO users who don't match any claim mapping get the configured **default role** (defaults to Creator).\n\n## Related\n\n- [Managing Users](/administration/managing-users) — create and manage user accounts\n- [Password Login](/authentication/password-login) — email/password setup\n- [SSO](/authentication/sso) — automatic role assignment from IdP claims","src/content/docs/authentication/roles.mdx","ae3fa49651bcfb18","authentication/roles.mdx","dashboards",{"id":630,"data":632,"body":637,"filePath":638,"digest":639,"legacyId":640,"deferredRender":16},{"title":513,"description":633,"editUrl":16,"head":634,"template":47,"sidebar":635,"pagefind":16,"draft":35},"Create, configure, and share interactive dashboards.",[],{"hidden":35,"attrs":636},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nDashboards are the core of NeoBoard. Each dashboard contains one or more widgets that visualize data from your connected databases.\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Creating Your First Dashboard\" href=\"/dashboards/first-dashboard\" />\n \u003CLinkCard title=\"Widgets & Charts\" href=\"/dashboards/widgets\" />\n \u003CLinkCard title=\"Parameters & Interactivity\" href=\"/dashboards/parameters\" />\n \u003CLinkCard title=\"Dashboard Concepts\" href=\"/dashboards/overview\" />\n\u003C/CardGrid>","src/content/docs/dashboards/index.mdx","f9a3547d7806f9f2","dashboards/index.mdx","connections",{"id":641,"data":643,"body":649,"filePath":650,"digest":651,"legacyId":652,"deferredRender":16},{"title":644,"description":645,"editUrl":16,"head":646,"template":47,"sidebar":647,"pagefind":16,"draft":35},"Connections","Connect NeoBoard to Neo4j and PostgreSQL databases.",[],{"hidden":35,"attrs":648},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nNeoBoard connects to **Neo4j** (graph) and **PostgreSQL** (relational) databases. All credentials are encrypted at rest with AES-256-GCM.\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Connecting to Your Database\" href=\"/connections/connecting-databases\" />\n \u003CLinkCard title=\"Connectors Overview\" href=\"/connections/connectors\" />\n \u003CLinkCard title=\"Query Safety\" href=\"/connections/query-safety\" />\n\u003C/CardGrid>","src/content/docs/connections/index.mdx","daf105a37098002c","connections/index.mdx","administration",{"id":653,"data":655,"body":661,"filePath":662,"digest":663,"legacyId":664,"deferredRender":16},{"title":656,"description":657,"editUrl":16,"head":658,"template":47,"sidebar":659,"pagefind":16,"draft":35},"Administration","Manage users, settings, and multi-tenant configuration.",[],{"hidden":35,"attrs":660},{},"import { LinkCard, CardGrid } from '@astrojs/starlight/components';\n\nAdministration covers user management, system settings, and multi-tenant deployment configuration.\n\n\u003CCardGrid>\n \u003CLinkCard title=\"Managing Users\" href=\"/administration/managing-users\" />\n \u003CLinkCard title=\"Multi-tenancy\" href=\"/administration/multi-tenancy\" />\n\u003C/CardGrid>","src/content/docs/administration/index.mdx","1ad88284a1ab783b","administration/index.mdx"] \ No newline at end of file diff --git a/docs/.astro/settings.json b/docs/.astro/settings.json new file mode 100644 index 00000000..8efce30a --- /dev/null +++ b/docs/.astro/settings.json @@ -0,0 +1,5 @@ +{ + "_variables": { + "lastUpdateCheck": 1778193073747 + } +} \ No newline at end of file diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 4af72243..945bbf73 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -16,20 +16,28 @@ export default defineConfig({ autogenerate: { directory: "getting-started" }, }, { - label: "CLI", - autogenerate: { directory: "cli" }, + label: "Authentication", + autogenerate: { directory: "authentication" }, + }, + { + label: "Dashboards", + autogenerate: { directory: "dashboards" }, }, { - label: "User Guides", - autogenerate: { directory: "guides" }, + label: "Connections", + autogenerate: { directory: "connections" }, }, { label: "Chart Types", autogenerate: { directory: "charts" }, }, { - label: "Concepts", - autogenerate: { directory: "concepts" }, + label: "Administration", + autogenerate: { directory: "administration" }, + }, + { + label: "CLI", + autogenerate: { directory: "cli" }, }, { label: "Developer Guide", diff --git a/docs/src/content/docs/administration/index.mdx b/docs/src/content/docs/administration/index.mdx new file mode 100644 index 00000000..35741834 --- /dev/null +++ b/docs/src/content/docs/administration/index.mdx @@ -0,0 +1,13 @@ +--- +title: Administration +description: Manage users, settings, and multi-tenant configuration. +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + +Administration covers user management, system settings, and multi-tenant deployment configuration. + + + + + diff --git a/docs/src/content/docs/guides/managing-users.mdx b/docs/src/content/docs/administration/managing-users.mdx similarity index 95% rename from docs/src/content/docs/guides/managing-users.mdx rename to docs/src/content/docs/administration/managing-users.mdx index abecce7c..5b7f945d 100644 --- a/docs/src/content/docs/guides/managing-users.mdx +++ b/docs/src/content/docs/administration/managing-users.mdx @@ -59,5 +59,5 @@ Use the API key in the `Authorization` header when calling the NeoBoard REST API ## Next Steps -- Start building dashboards with the [first dashboard guide](/guides/first-dashboard). -- Set up database connections in [Connecting to Your Database](/guides/connecting-databases). +- Start building dashboards with the [first dashboard guide](/dashboards/first-dashboard). +- Set up database connections in [Connecting to Your Database](/connections/connecting-databases). diff --git a/docs/src/content/docs/concepts/multi-tenancy.mdx b/docs/src/content/docs/administration/multi-tenancy.mdx similarity index 100% rename from docs/src/content/docs/concepts/multi-tenancy.mdx rename to docs/src/content/docs/administration/multi-tenancy.mdx diff --git a/docs/src/content/docs/guides/api-keys.mdx b/docs/src/content/docs/authentication/api-keys.mdx similarity index 100% rename from docs/src/content/docs/guides/api-keys.mdx rename to docs/src/content/docs/authentication/api-keys.mdx diff --git a/docs/src/content/docs/authentication/index.mdx b/docs/src/content/docs/authentication/index.mdx new file mode 100644 index 00000000..29211fb3 --- /dev/null +++ b/docs/src/content/docs/authentication/index.mdx @@ -0,0 +1,15 @@ +--- +title: Authentication +description: How users authenticate with NeoBoard — passwords, SSO, API keys, and roles. +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + +NeoBoard supports multiple authentication methods and role-based access control. + + + + + + + diff --git a/docs/src/content/docs/authentication/password-login.mdx b/docs/src/content/docs/authentication/password-login.mdx new file mode 100644 index 00000000..f93b0fb9 --- /dev/null +++ b/docs/src/content/docs/authentication/password-login.mdx @@ -0,0 +1,63 @@ +--- +title: Password Login +description: Email and password authentication in NeoBoard. +--- + +NeoBoard ships with built-in email/password authentication. No external identity provider is required. + +## First Admin Setup + +When NeoBoard starts for the first time with an empty database, the first user to sign up becomes the **Admin**. This bootstrap flow: + +1. Navigate to `/signup` +2. If `ADMIN_BOOTSTRAP_TOKEN` is set in your environment, enter it in the bootstrap token field +3. Fill in your name, email, and password +4. Click **Create account** + +You are now the first Admin and can create additional users. + +## Signing In + +1. Navigate to `/login` +2. Enter your email and password +3. Click **Sign in** + +If SSO is configured, SSO buttons appear above the password form. Both login methods work simultaneously unless SSO enforcement is enabled. + +## Password Requirements + +- Minimum 8 characters +- At least 1 letter +- At least 1 number + +## Forced Password Change + +Admins can require a user to change their password on next login by enabling **Force password change** when creating or editing a user. The user will be redirected to `/change-password` before they can access any dashboard. + +## Session Management + +- Sessions use JWT tokens (stateless) +- Default session duration: 8 hours (configurable via `SESSION_MAX_AGE`) +- Sessions are invalidated when: + - A user's password is changed (with a 30-second grace period) + - A user is disabled by an admin + - A user's role is changed + +## Rate Limiting + +Login attempts are rate-limited by IP address: + +- **20 login attempts** per minute per IP +- **10 signup attempts** per minute per IP + +Exceeding the limit silently rejects further attempts until the window resets. + +## Registration Control + +Set `REGISTRATION_ENABLED=false` to disable the `/signup` page. Existing users can still log in, and admins can still create users via the Users management page. + +## Related + +- [Roles & Permissions](/authentication/roles) — understand what each role can do +- [Single Sign-On](/authentication/sso) — enable OIDC-based login (Enterprise) +- [Configuration](/getting-started/configuration) — all environment variables diff --git a/docs/src/content/docs/authentication/roles.mdx b/docs/src/content/docs/authentication/roles.mdx new file mode 100644 index 00000000..5f8b6df2 --- /dev/null +++ b/docs/src/content/docs/authentication/roles.mdx @@ -0,0 +1,60 @@ +--- +title: Roles & Permissions +description: Understand NeoBoard's role-based access control system. +--- + +Every NeoBoard user is assigned one of three roles. Roles determine what a user can see and do across the application. + +## Role Comparison + +| Capability | Admin | Creator | Reader | +|-----------|-------|---------|--------| +| View dashboards | Yes | Yes | Yes | +| Create/edit dashboards | Yes | Yes (own) | No | +| Delete dashboards | Yes | Yes (own) | No | +| Manage connections | Yes | View only | No | +| Manage users | Yes | No | No | +| Access settings | Yes | No | No | +| Run read queries | Yes | Yes | No | +| Run write queries | Yes (if enabled) | Yes (if enabled) | No | + +## Admin + +Full access to everything: dashboards, connections, user management, and settings. Admins are the only role that can create other users and configure SSO providers. + +## Creator + +Can build and edit their own dashboards and widgets. Creators can run queries against existing connections but cannot add, modify, or delete connections. They cannot access user management or settings. + +## Reader + +View-only access. Readers can view dashboards shared with them but cannot edit anything, run custom queries, or access connections. + +## Write Permission + +The **write permission** toggle is an additional control, independent of the role. It determines whether a user can execute write queries (`CREATE`, `INSERT`, `UPDATE`, `DELETE`). + +| Role | Write Permission On | Write Permission Off | +|------|-------------------|---------------------| +| Admin | Can write | Can write (always) | +| Creator | Can write | Read-only queries | +| Reader | No effect | No effect | + +Admins always have write access regardless of the toggle. This is useful when you want a Creator to build dashboards but not modify the underlying data. + +## Role Assignment + +### At user creation +Admins assign a role when creating a user in **Users** management. + +### Via SSO claim mapping +When SSO is configured, roles can be automatically assigned based on IdP group claims. See [SSO Role Mapping](/authentication/sso#role-mapping). + +### Default role +New SSO users who don't match any claim mapping get the configured **default role** (defaults to Creator). + +## Related + +- [Managing Users](/administration/managing-users) — create and manage user accounts +- [Password Login](/authentication/password-login) — email/password setup +- [SSO](/authentication/sso) — automatic role assignment from IdP claims diff --git a/docs/src/content/docs/authentication/sso.mdx b/docs/src/content/docs/authentication/sso.mdx new file mode 100644 index 00000000..8e89ca04 --- /dev/null +++ b/docs/src/content/docs/authentication/sso.mdx @@ -0,0 +1,276 @@ +--- +title: Single Sign-On (SSO) +description: Configure OIDC single sign-on providers to enable SSO login for your organization. +badge: + text: Enterprise + variant: tip +--- + +import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components'; + +NeoBoard supports OIDC-based single sign-on (SSO). Users can sign in with their organization's identity provider (Okta, Azure AD/Entra, Google Workspace, Keycloak, Auth0, etc.) instead of managing separate NeoBoard passwords. + +## How It Works + +1. SSO is configured via **environment variables** (recommended) or the **Admin UI** +2. The login page shows "Sign in with [Provider]" buttons above the password form +3. Clicking a button redirects the user to the identity provider (IdP) +4. After authentication, the IdP redirects back to NeoBoard with an authorization code +5. NeoBoard exchanges the code for tokens, reads the user's profile and group claims, and creates or links the user account + +## Prerequisites + +Before configuring SSO, you need: + +- `NEOBOARD_EDITION=enterprise` set in your environment +- An OIDC client registered in your identity provider +- The client ID, client secret, and issuer URL from your IdP + +## Quick Setup (Environment Variables) + + + +The fastest way to enable SSO. Set these variables and restart NeoBoard: + +```bash +NEOBOARD_EDITION=enterprise +OIDC_ISSUER=https://myorg.okta.com +OIDC_CLIENT_ID=neoboard +OIDC_CLIENT_SECRET=your-client-secret +``` + +That's it — an SSO button will appear on the login page. + +### All Environment Variables + +| Variable | Required | Default | Description | +|----------|----------|---------|-------------| +| `OIDC_ISSUER` | Yes | — | OIDC issuer URL (e.g., `https://myorg.okta.com`) | +| `OIDC_CLIENT_ID` | Yes | — | OIDC client identifier | +| `OIDC_CLIENT_SECRET` | Yes | — | OIDC client secret | +| `OIDC_DISPLAY_NAME` | No | `SSO` | Button label on the login page | +| `OIDC_SCOPES` | No | `openid profile email` | OIDC scopes to request | +| `OIDC_CLAIM_KEY` | No | — | IdP claim key for role mapping (e.g., `groups`) | +| `OIDC_ADMIN_VALUE` | No | — | Claim value(s) that map to Admin role (comma-separated) | +| `OIDC_CREATOR_VALUE` | No | — | Claim value(s) that map to Creator role (comma-separated) | +| `OIDC_READER_VALUE` | No | — | Claim value(s) that map to Reader role (comma-separated) | +| `OIDC_AUTO_PROVISION` | No | `true` | Auto-create users on first SSO login | +| `OIDC_DEFAULT_ROLE` | No | `creator` | Role when no claim matches | +| `OIDC_ENFORCE_SSO` | No | `false` | Hide password form for non-admin users | + +### Docker Compose Example + +```yaml +services: + neoboard: + image: neoboard:latest + environment: + DATABASE_URL: postgresql://neoboard:neoboard@db:5432/neoboard + ENCRYPTION_KEY: ${ENCRYPTION_KEY} + NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} + NEXTAUTH_URL: https://neoboard.example.com + # Enterprise + SSO + NEOBOARD_EDITION: enterprise + OIDC_ISSUER: https://myorg.okta.com + OIDC_CLIENT_ID: neoboard-prod + OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET} + OIDC_DISPLAY_NAME: Company SSO + OIDC_CLAIM_KEY: groups + OIDC_ADMIN_VALUE: devops,platform-team + OIDC_CREATOR_VALUE: engineering,data-team + OIDC_READER_VALUE: marketing,sales +``` + +## Multi-Provider Setup (Admin UI) + + + +For organizations that need multiple SSO providers (e.g., Okta + Azure AD), use the Admin UI. The env-based provider and UI-based providers work together — the env provider appears first on the login page. + +### Configuring a Provider + + + +1. **Log in as an admin** and navigate to **Settings > Authentication** + +2. **Click "Add Provider"** and fill in the form: + + | Field | Description | Example | + |-------|-------------|---------| + | Display Name | Shown on the login button | `Company SSO` | + | Issuer URL | Your IdP's OIDC issuer endpoint | `https://login.example.com/realms/myorg` | + | Client ID | The OIDC client identifier | `neoboard-prod` | + | Client Secret | The OIDC client secret (stored encrypted) | `abc123...` | + | Scopes | OIDC scopes to request | `openid profile email` (default) | + +3. **Configure role mapping** (optional) to map IdP group claims to NeoBoard roles: + + | Field | Description | Example | + |-------|-------------|---------| + | IdP Claim Key | The token claim containing groups | `groups` or `realm_access.roles` | + | Admin | Claim value that maps to Admin role | `neoboard-admins` | + | Creator | Claim value that maps to Creator role | `neoboard-editors` | + | Reader | Claim value that maps to Reader role | `neoboard-viewers` | + +4. **Set provisioning options:** + + - **Auto-provision new users** — When enabled, users signing in via SSO for the first time are automatically created in NeoBoard. When disabled, only pre-existing users can use SSO. + - **Default role** — The role assigned when no claim mapping matches (default: Creator). + - **Enforce SSO** — When enabled, the password login form is hidden for non-admin users. Admins can still use password login via `?password=true` in the URL. + +5. **Click "Add Provider"** to save + + + +The SSO button will appear on the login page immediately. + +## IdP Configuration Examples + +### Okta + + + +1. In the Okta admin console, go to **Applications > Create App Integration** +2. Select **OIDC - OpenID Connect** and **Web Application** +3. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}` +4. Note the **Client ID** and **Client Secret** +5. The issuer URL is your Okta domain: `https://your-org.okta.com` +6. To map groups: go to **Directory > Groups**, create groups like `neoboard-admins`, assign users +7. In the app's **Sign On** settings, add a **Groups claim** with filter `Matches regex: neoboard-.*` + + + +In NeoBoard Settings > Authentication: +``` +Display Name: Okta +Issuer URL: https://your-org.okta.com +Client ID: 0oa1234567890abcdef +Client Secret: your-client-secret +Claim Key: groups +Admin value: neoboard-admins +Creator value: neoboard-editors +Reader value: neoboard-viewers +``` + +### Azure AD / Entra ID + + + +1. In the Azure portal, go to **App Registrations > New Registration** +2. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}` +3. Under **Certificates & Secrets**, create a new client secret +4. Under **Token Configuration**, add the `groups` optional claim to the ID token +5. The issuer URL is: `https://login.microsoftonline.com/{tenant-id}/v2.0` + + + +In NeoBoard Settings > Authentication: +``` +Display Name: Azure AD +Issuer URL: https://login.microsoftonline.com/{tenant-id}/v2.0 +Client ID: your-app-client-id +Client Secret: your-client-secret +Claim Key: groups +Admin value: {group-object-id-for-admins} +Creator value: {group-object-id-for-editors} +``` + + + +### Keycloak + + + +1. In the Keycloak admin console, create a new **Client** in your realm +2. Set **Client authentication** to On (confidential client) +3. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}` +4. Under **Client Scopes > neoboard-dedicated**, add a **Group Membership** mapper with claim name `groups` +5. Create groups (e.g., `neoboard-admins`, `neoboard-editors`) and assign users + + + +In NeoBoard Settings > Authentication: +``` +Display Name: Keycloak +Issuer URL: https://keycloak.example.com/realms/your-realm +Client ID: neoboard +Client Secret: your-client-secret +Claim Key: groups +Admin value: neoboard-admins +Creator value: neoboard-editors +Reader value: neoboard-viewers +``` + +### Google Workspace + + + +1. In the Google Cloud Console, go to **APIs & Services > Credentials** +2. Create an **OAuth 2.0 Client ID** (Web application) +3. Set the redirect URI to: `https://your-neoboard-domain/api/auth/callback/sso-{provider-id}` +4. The issuer URL is: `https://accounts.google.com` + + + + + +## Role Mapping + +Role mapping is evaluated on **every login**, not just the first time. If a user's group membership changes in the IdP, their NeoBoard role updates automatically on their next sign-in. + +**Priority order:** Admin > Creator > Reader. If a user is in multiple mapped groups, the highest-priority role wins. + +**Multiple groups per role:** Use comma-separated values to map several IdP groups to the same NeoBoard role: + +```bash +OIDC_ADMIN_VALUE=devops,platform-team,it-ops +OIDC_CREATOR_VALUE=engineering,data-team,analytics +OIDC_READER_VALUE=marketing,sales,support +``` + +If a user belongs to any of the listed groups, they get that role. This also works in the Admin UI claim mapping fields. + +**Nested claims** are supported with dot notation. For example, Keycloak's `realm_access.roles` claim can be mapped with: + +``` +Claim Key: realm_access.roles +``` + +When no claim mapping is configured, or no claim matches, the **default role** is used. + +## Account Linking + +When an SSO user's email matches an existing password-based NeoBoard account, the accounts are automatically linked. The user can then sign in with either method. The SSO login will update the user's role based on the latest IdP claims. + +## Limits + +- Up to **5 SSO providers** can be configured per tenant +- Client secrets are encrypted at rest using AES-256-GCM (same encryption as database connection credentials) +- Provider configurations are cached for 60 seconds — changes take up to 1 minute to propagate + +## Deleting a Provider + +When you delete an SSO provider: + +- Users who were provisioned via that provider **keep their accounts** +- They can no longer sign in via SSO for that provider +- If they have a password set, they can still use password login +- An admin can assign them a new password in **Users** management + +## Troubleshooting + +| Issue | Solution | +|-------|----------| +| "Invalid parameter: redirect_uri" | The redirect URI in your IdP doesn't match. Set it to `https://your-domain/api/auth/callback/sso-{provider-id}` where `{provider-id}` is the provider's ID in NeoBoard (visible in Settings > Authentication URL). | +| SSO button not showing | Check that the provider is **Enabled** in Settings > Authentication. The public endpoint only returns enabled providers. | +| User gets wrong role | Verify the claim key and values match exactly what your IdP sends. Check the IdP's token debugger to inspect the actual claims. | +| "Auto-provision is disabled" error | The user doesn't exist in NeoBoard and auto-provisioning is turned off. Create the user manually first, or enable auto-provisioning. | +| Login loops back to /login | Ensure `NEXTAUTH_URL` is set correctly in your environment and matches the URL users access NeoBoard from. | diff --git a/docs/src/content/docs/charts/param-select.mdx b/docs/src/content/docs/charts/param-select.mdx index 6ffda080..d5b4c3ae 100644 --- a/docs/src/content/docs/charts/param-select.mdx +++ b/docs/src/content/docs/charts/param-select.mdx @@ -68,4 +68,4 @@ ORDER BY name - Enable Sync to URL so users can bookmark or share a dashboard with specific filter values pre-selected. - Set a Default Value for parameters that should always have a selection on first load. -- See [Parameters](/concepts/parameters) for details on parameter substitution, cascading parameters, and advanced usage. +- See [Parameters](/dashboards/parameters) for details on parameter substitution, cascading parameters, and advanced usage. diff --git a/docs/src/content/docs/concepts/index.mdx b/docs/src/content/docs/concepts/index.mdx deleted file mode 100644 index c0b43d61..00000000 --- a/docs/src/content/docs/concepts/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Concepts -description: Core concepts and architecture of NeoBoard. ---- - -import { LinkCard, CardGrid } from '@astrojs/starlight/components'; - -Understand the building blocks of NeoBoard before diving into guides and API reference. - - - - - - - - - - diff --git a/docs/src/content/docs/guides/connecting-databases.mdx b/docs/src/content/docs/connections/connecting-databases.mdx similarity index 92% rename from docs/src/content/docs/guides/connecting-databases.mdx rename to docs/src/content/docs/connections/connecting-databases.mdx index 1e0945a7..60e982b7 100644 --- a/docs/src/content/docs/guides/connecting-databases.mdx +++ b/docs/src/content/docs/connections/connecting-databases.mdx @@ -74,5 +74,5 @@ Ensure no firewall rules block traffic between NeoBoard and your database. Cloud ## Next Steps -- Use your new connection to [create your first dashboard](/guides/first-dashboard). -- Explore all available [widget types](/concepts/widgets) including charts, tables, graphs, and forms. +- Use your new connection to [create your first dashboard](/dashboards/first-dashboard). +- Explore all available [widget types](/dashboards/widgets) including charts, tables, graphs, and forms. diff --git a/docs/src/content/docs/concepts/connectors.mdx b/docs/src/content/docs/connections/connectors.mdx similarity index 100% rename from docs/src/content/docs/concepts/connectors.mdx rename to docs/src/content/docs/connections/connectors.mdx diff --git a/docs/src/content/docs/connections/index.mdx b/docs/src/content/docs/connections/index.mdx new file mode 100644 index 00000000..548008d9 --- /dev/null +++ b/docs/src/content/docs/connections/index.mdx @@ -0,0 +1,14 @@ +--- +title: Connections +description: Connect NeoBoard to Neo4j and PostgreSQL databases. +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + +NeoBoard connects to **Neo4j** (graph) and **PostgreSQL** (relational) databases. All credentials are encrypted at rest with AES-256-GCM. + + + + + + diff --git a/docs/src/content/docs/concepts/query-safety.mdx b/docs/src/content/docs/connections/query-safety.mdx similarity index 100% rename from docs/src/content/docs/concepts/query-safety.mdx rename to docs/src/content/docs/connections/query-safety.mdx diff --git a/docs/src/content/docs/guides/first-dashboard.mdx b/docs/src/content/docs/dashboards/first-dashboard.mdx similarity index 91% rename from docs/src/content/docs/guides/first-dashboard.mdx rename to docs/src/content/docs/dashboards/first-dashboard.mdx index c6839fa8..dcea13fe 100644 --- a/docs/src/content/docs/guides/first-dashboard.mdx +++ b/docs/src/content/docs/dashboards/first-dashboard.mdx @@ -34,7 +34,7 @@ You are now in **edit mode** on your new, empty dashboard. ## 3. Add Your First Widget 1. Click the **Add Widget** button in the toolbar. -2. In the widget editor dialog, select a **connection** from the dropdown. This tells NeoBoard which database to query. If you have not added a connection yet, see the [Connecting to Your Database](/guides/connecting-databases) guide first. +2. In the widget editor dialog, select a **connection** from the dropdown. This tells NeoBoard which database to query. If you have not added a connection yet, see the [Connecting to Your Database](/connections/connecting-databases) guide first. 3. Choose a **chart type**. For your first widget, **Bar Chart** is a great choice. It works well with most data shapes. ## 4. Write a Query @@ -76,6 +76,6 @@ Click the **Edit** toggle in the toolbar to exit edit mode. Your dashboard is no ## Next Steps - Add more widgets to build a complete dashboard. -- Explore all available [widget types](/concepts/widgets) including tables, graphs, maps, and forms. -- Set up database connections in [Connecting to Your Database](/guides/connecting-databases). -- Control who can see your dashboards in [Managing Users and Permissions](/guides/managing-users). +- Explore all available [widget types](/dashboards/widgets) including tables, graphs, maps, and forms. +- Set up database connections in [Connecting to Your Database](/connections/connecting-databases). +- Control who can see your dashboards in [Managing Users and Permissions](/administration/managing-users). diff --git a/docs/src/content/docs/dashboards/index.mdx b/docs/src/content/docs/dashboards/index.mdx new file mode 100644 index 00000000..b9fa9e7e --- /dev/null +++ b/docs/src/content/docs/dashboards/index.mdx @@ -0,0 +1,15 @@ +--- +title: Dashboards +description: Create, configure, and share interactive dashboards. +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + +Dashboards are the core of NeoBoard. Each dashboard contains one or more widgets that visualize data from your connected databases. + + + + + + + diff --git a/docs/src/content/docs/concepts/dashboards.mdx b/docs/src/content/docs/dashboards/overview.mdx similarity index 100% rename from docs/src/content/docs/concepts/dashboards.mdx rename to docs/src/content/docs/dashboards/overview.mdx diff --git a/docs/src/content/docs/concepts/parameters.mdx b/docs/src/content/docs/dashboards/parameters.mdx similarity index 100% rename from docs/src/content/docs/concepts/parameters.mdx rename to docs/src/content/docs/dashboards/parameters.mdx diff --git a/docs/src/content/docs/concepts/widgets.mdx b/docs/src/content/docs/dashboards/widgets.mdx similarity index 97% rename from docs/src/content/docs/concepts/widgets.mdx rename to docs/src/content/docs/dashboards/widgets.mdx index b98a9644..466a74be 100644 --- a/docs/src/content/docs/concepts/widgets.mdx +++ b/docs/src/content/docs/dashboards/widgets.mdx @@ -46,7 +46,7 @@ Parameter widgets collect user input and pass it to other widgets' queries. They | Multiselect | Multi-value dropdown | Array of strings | | Slider | Range slider | Number | -Other widgets reference parameter values with `$param_name` in their queries. See [Parameters](/concepts/parameters) for details. +Other widgets reference parameter values with `$param_name` in their queries. See [Parameters](/dashboards/parameters) for details. ## Widget Templates (Widget Lab) diff --git a/docs/src/content/docs/concepts/architecture.mdx b/docs/src/content/docs/developer/architecture.mdx similarity index 62% rename from docs/src/content/docs/concepts/architecture.mdx rename to docs/src/content/docs/developer/architecture.mdx index fb25aeaa..19e4b648 100644 --- a/docs/src/content/docs/concepts/architecture.mdx +++ b/docs/src/content/docs/developer/architecture.mdx @@ -7,22 +7,23 @@ NeoBoard is a monorepo with three packages plus a CLI. Each package has strict b ## Package Boundaries -``` - +-----------------------+ - | app/ | - | Next.js Application | - | API routes, stores, | - | hooks, pages, plugins| - +------+--------+-------+ - | | - imports UI | | imports connectors - v v - +----------------+ +------------------+ - | component/ | | connection/ | - | React UI lib | | DB connector lib | - | Charts, forms | | Neo4j, Postgres | - | shadcn/ui | | Query execution | - +----------------+ +------------------+ +```mermaid +graph TD + APP["app/
Next.js Application
API routes, stores, hooks, pages"] + COMP["component/
React UI Library
Charts, forms, shadcn/ui"] + CONN["connection/
DB Connector Library
Neo4j, PostgreSQL drivers"] + CLI["cli/
CLI Tool
Setup, migrations"] + ENT["enterprise/
Enterprise Features
SSO, custom roles"] + + APP -->|imports UI| COMP + APP -->|imports connectors| CONN + APP -.->|dynamic import| ENT + + style APP fill:#3b82f6,color:#fff + style COMP fill:#10b981,color:#fff + style CONN fill:#f59e0b,color:#fff + style CLI fill:#6b7280,color:#fff + style ENT fill:#8b5cf6,color:#fff ``` | Package | What it does | What it must NOT do | @@ -105,7 +106,7 @@ Inside route handlers, `requireSession()` extracts the user's `userId`, `role`, ## Multi-Tenancy -Every data table includes a `tenant_id` column. All queries filter by the authenticated user's tenant. See [Multi-Tenancy](/concepts/multi-tenancy) for details. +Every data table includes a `tenant_id` column. All queries filter by the authenticated user's tenant. See [Multi-Tenancy](/administration/multi-tenancy) for details. ## Security @@ -114,3 +115,54 @@ Every data table includes a `tenant_id` column. All queries filter by the authen - **Read-only**: PostgreSQL uses `BEGIN TRANSACTION READ ONLY`. Neo4j uses `session.executeRead()`. - **Timeouts**: Enforced at driver level (statement timeout for PostgreSQL, transaction timeout for Neo4j). - **Rate limiting**: Login attempts limited to 20 per minute per IP. + +## Where Does Code Live? + +| Feature | Package | Key Directory | +|---------|---------|--------------| +| API routes | `app/` | `src/app/api/` | +| Dashboard pages | `app/` | `src/app/(dashboard)/` | +| Auth (login, signup) | `app/` | `src/app/(auth)/`, `src/lib/auth/` | +| Zustand stores | `app/` | `src/stores/` | +| React hooks | `app/` | `src/hooks/` | +| Widget editor | `app/` | `src/components/widget-editor/` | +| Chart components | `component/` | `src/charts/` | +| UI primitives (shadcn) | `component/` | `src/components/ui/` | +| Composed components | `component/` | `src/components/composed/` | +| Chart options schema | `component/` | `src/components/composed/chart-options-schema.ts` | +| Neo4j driver | `connection/` | `src/neo4j/` | +| PostgreSQL driver | `connection/` | `src/postgresql/` | +| Schema introspection | `connection/` | `src/schema/` | +| DB schema (Drizzle) | `app/` | `src/lib/db/schema.ts` | +| Migrations | `app/` | `drizzle/migrations/` | +| E2E tests | `app/` | `e2e/` | +| SSO (enterprise) | `enterprise/` | `src/` | + +## Common Tasks + +### Add a new API route + +1. Create `app/src/app/api/your-route/route.ts` +2. Use `requireSession()` or `requireAdmin()` for auth +3. Use `apiSuccess()` / `apiError()` for response envelope +4. Add tests in `__tests__/route.test.ts` next to the route +5. See any existing route in `app/src/app/api/` for the pattern + +### Add a new chart type + +Follow the [Chart Plugin Guide](/developer/extending/new-chart-plugin). Key steps: +1. Create the chart component in `component/src/charts/` +2. Register it in `app/src/lib/chart-registry.ts` +3. Add chart options in `component/src/components/composed/chart-options-schema.ts` + +### Add a new setting + +1. Add the env var to `.env.example` +2. Read it in the relevant module via `process.env.YOUR_VAR` +3. Document it in `docs/src/content/docs/getting-started/configuration.mdx` + +### Add a new database table + +1. Add the Drizzle schema in `app/src/lib/db/schema.ts` +2. Run `npm run db:generate` to create the migration +3. Add inferred types at the bottom of `schema.ts` diff --git a/docs/src/content/docs/developer/index.mdx b/docs/src/content/docs/developer/index.mdx index ed91c859..09486898 100644 --- a/docs/src/content/docs/developer/index.mdx +++ b/docs/src/content/docs/developer/index.mdx @@ -5,11 +5,14 @@ description: Extend NeoBoard with new chart types, connectors, parameters, and w import { LinkCard, CardGrid } from '@astrojs/starlight/components'; -This section covers how to extend NeoBoard and contribute to the project. +This section covers how to contribute to NeoBoard and extend it with new features. -Before diving in, read the [Architecture](/concepts/architecture) page to understand how the three packages fit together, the data flow, and the plugin system. +**New here?** Start with these in order: -For a detailed technical diagram with file paths and Mermaid diagrams, see [`ARCHITECTURE.md`](https://github.com/alfredo1996/neoboard/blob/release/1.1/ARCHITECTURE.md) in the repository root. +1. [Architecture](/developer/architecture) — understand the packages, data flow, and where code lives +2. [Dev Setup](/developer/contributing/setup) — clone, install, run the dev server +3. [Testing Guide](/developer/contributing/testing) — write tests before code (TDD) +4. [PR Workflow](/developer/contributing/pr-workflow) — submit your changes ## Built-in Plugins diff --git a/docs/src/content/docs/getting-started/configuration.mdx b/docs/src/content/docs/getting-started/configuration.mdx index 567e8921..81181611 100644 --- a/docs/src/content/docs/getting-started/configuration.mdx +++ b/docs/src/content/docs/getting-started/configuration.mdx @@ -46,15 +46,27 @@ openssl rand -hex 32 | `MAX_QUERY_ROWS` | Maximum rows returned per query | `1000` | | `QUERY_TIMEOUT_MS` | Default query timeout in milliseconds | `30000` | +## SSO / OIDC Variables + +SSO requires `NEOBOARD_EDITION=enterprise`. Set the three required OIDC variables plus the edition flag to enable single sign-on. See the [SSO guide](/authentication/sso) for full setup instructions and IdP examples. + +| Variable | Description | Default | +|----------|-------------|---------| +| `OIDC_ISSUER` | OIDC issuer URL | (required for SSO) | +| `OIDC_CLIENT_ID` | OIDC client identifier | (required for SSO) | +| `OIDC_CLIENT_SECRET` | OIDC client secret | (required for SSO) | +| `OIDC_DISPLAY_NAME` | Login button label | `SSO` | +| `OIDC_CLAIM_KEY` | IdP claim for role mapping | (unset — no mapping) | +| `OIDC_DEFAULT_ROLE` | Role when no claim matches | `creator` | +| `OIDC_ENFORCE_SSO` | Hide password form for non-admins | `false` | + ## Enterprise Variables -These enable enterprise features when set: +Set `NEOBOARD_EDITION=enterprise` to enable enterprise features like the Admin UI for multi-provider SSO, custom roles, and more. -| Variable | Description | -|----------|-------------| -| `SSO_ENABLED` | Enable SSO authentication providers | -| `CUSTOM_ROLES_ENABLED` | Enable custom role definitions | -| `CONNECTOR_LABELS_ENABLED` | Enable labeling connectors | +| Variable | Description | Default | +|----------|-------------|---------| +| `NEOBOARD_EDITION` | Set to `enterprise` to enable enterprise features | (unset — community edition) | ## Config File (Optional) diff --git a/docs/src/content/docs/getting-started/quick-start.mdx b/docs/src/content/docs/getting-started/quick-start.mdx index 9cd6d465..0ca236ec 100644 --- a/docs/src/content/docs/getting-started/quick-start.mdx +++ b/docs/src/content/docs/getting-started/quick-start.mdx @@ -62,6 +62,6 @@ ORDER BY year; ## Next Steps -- Add [parameters](/concepts/parameters) to make your dashboard interactive -- Explore different [widget types](/concepts/widgets) (tables, graphs, maps, forms) -- Learn about [dashboard export/import](/concepts/dashboards) +- Add [parameters](/dashboards/parameters) to make your dashboard interactive +- Explore different [widget types](/dashboards/widgets) (tables, graphs, maps, forms) +- Learn about [dashboard export/import](/dashboards/overview) diff --git a/docs/src/content/docs/guides/index.mdx b/docs/src/content/docs/guides/index.mdx deleted file mode 100644 index 33e88647..00000000 --- a/docs/src/content/docs/guides/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: User Guides -description: Step-by-step guides for common NeoBoard tasks. ---- - -import { LinkCard, CardGrid } from '@astrojs/starlight/components'; - -Learn how to use NeoBoard with these practical guides. Each one walks you through a specific task from start to finish. - - - - - - - diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 5912e6d8..0667cfd7 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -47,7 +47,7 @@ See the [Installation guide](/getting-started/installation/) for full instructio - - - + + + diff --git a/enterprise/package.json b/enterprise/package.json new file mode 100644 index 00000000..c93ef22a --- /dev/null +++ b/enterprise/package.json @@ -0,0 +1,35 @@ +{ + "name": "@neoboard/enterprise", + "version": "0.1.0-dev", + "private": true, + "description": "NeoBoard enterprise package — commercial license required. Registers enterprise features (SSO, custom roles, user groups, etc.) into the open-source core via the extension point system.", + "license": "UNLICENSED", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "tsc", + "test": "vitest run", + "test:watch": "vitest", + "lint": "eslint src --ext .ts", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "@types/node": "^22.10.0", + "typescript": "^5.7.2", + "vitest": "^4.1.3", + "eslint": "^9.16.0", + "@typescript-eslint/parser": "^8.17.0", + "@typescript-eslint/eslint-plugin": "^8.17.0" + }, + "peerDependencies": { + "@neoboard/app": "*" + }, + "peerDependenciesMeta": { + "@neoboard/app": { + "optional": true + } + } +} diff --git a/enterprise/src/__tests__/register.test.ts b/enterprise/src/__tests__/register.test.ts new file mode 100644 index 00000000..30f2451d --- /dev/null +++ b/enterprise/src/__tests__/register.test.ts @@ -0,0 +1,28 @@ +import { describe, it, expect, vi } from "vitest"; +import { register } from "../register"; +import type { Extensions } from "../register"; + +describe("@neoboard/enterprise register", () => { + it("exposes a callable register function", () => { + expect(typeof register).toBe("function"); + }); + + it("is a no-op when called with an empty extensions object", () => { + const extensions: Extensions = {}; + expect(() => register(extensions)).not.toThrow(); + expect(Object.keys(extensions)).toHaveLength(0); + }); + + it("does not throw on a realistic extensions shape", () => { + // Mirror the core's extensions singleton shape. Real implementations + // will register handlers into these arrays. + const extensions: Extensions = { + authProviders: { register: vi.fn(), getAll: () => [] }, + permissionCheckers: { register: vi.fn(), getAll: () => [] }, + resourceFilters: { register: vi.fn(), getAll: () => [] }, + roleProviders: { register: vi.fn(), getAll: () => [] }, + queryMiddleware: { register: vi.fn(), getAll: () => [] }, + }; + expect(() => register(extensions)).not.toThrow(); + }); +}); diff --git a/enterprise/src/index.ts b/enterprise/src/index.ts new file mode 100644 index 00000000..302f6a60 --- /dev/null +++ b/enterprise/src/index.ts @@ -0,0 +1,11 @@ +/** + * @neoboard/enterprise — entry point. + * + * The NeoBoard core dynamically imports this module when + * `NEOBOARD_EDITION=enterprise` is set. It expects a named `register` + * export that populates the core's extension point registries. + * + * See `register.ts` for the implementation. + */ +export { register } from "./register"; +export type { EnterpriseRegisterFn } from "./register"; diff --git a/enterprise/src/register.ts b/enterprise/src/register.ts new file mode 100644 index 00000000..6e79d9bd --- /dev/null +++ b/enterprise/src/register.ts @@ -0,0 +1,27 @@ +/** + * Enterprise bootstrap — called by the core's `bootstrapExtensions()` + * when the NeoBoard instance is running in enterprise edition. + * + * The `extensions` argument is the core's extension registry singleton. + * Each enterprise feature should register its handlers here without + * modifying any core files. + * + * The type is intentionally loose (`Record`) because the + * core's `Extensions` type is defined in `alfredo1996/neoboard` and we + * don't want a hard dependency on the core sources at type-check time. + * Cast inside each feature's register function if you need the specific + * extension point type. + */ +export type Extensions = Record; + +export type EnterpriseRegisterFn = (extensions: Extensions) => void; + +export const register: EnterpriseRegisterFn = () => { + // No features registered yet. Each enterprise feature adds a line here + // that calls into its own register function. Example (future): + // + // import { registerSsoProviders } from "./auth/sso"; + // import { registerCustomRoles } from "./auth/custom-roles"; + // registerSsoProviders(extensions); + // registerCustomRoles(extensions); +}; diff --git a/enterprise/tsconfig.json b/enterprise/tsconfig.json new file mode 100644 index 00000000..c7eecaaf --- /dev/null +++ b/enterprise/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "esModuleInterop": true, + "skipLibCheck": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "outDir": "./dist", + "rootDir": "./src", + "lib": ["ES2022"], + "types": ["node", "vitest/globals"] + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "**/*.test.ts"] +} diff --git a/package-lock.json b/package-lock.json index 155b664b..5d7ab611 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "app", "component", "connection", - "cli" + "cli", + "enterprise" ], "devDependencies": { "@eslint/js": "^9.39.1", @@ -286,6 +287,27 @@ "ts-jest": "^29.4.9" } }, + "enterprise": { + "name": "@neoboard/enterprise", + "version": "0.1.0-dev", + "license": "UNLICENSED", + "devDependencies": { + "@types/node": "^22.10.0", + "@typescript-eslint/eslint-plugin": "^8.17.0", + "@typescript-eslint/parser": "^8.17.0", + "eslint": "^9.16.0", + "typescript": "^5.7.2", + "vitest": "^4.1.3" + }, + "peerDependencies": { + "@neoboard/app": "*" + }, + "peerDependenciesMeta": { + "@neoboard/app": { + "optional": true + } + } + }, "node_modules/@acemir/cssom": { "version": "0.9.31", "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", @@ -4251,6 +4273,10 @@ "resolved": "connection", "link": true }, + "node_modules/@neoboard/enterprise": { + "resolved": "enterprise", + "link": true + }, "node_modules/@neoconfetti/react": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@neoconfetti/react/-/react-1.0.0.tgz", @@ -6264,8 +6290,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.60.1", @@ -6279,8 +6304,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.60.1", @@ -6294,8 +6318,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.60.1", @@ -6309,8 +6332,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.60.1", @@ -6324,8 +6346,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.60.1", @@ -6339,8 +6360,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.60.1", @@ -6354,8 +6374,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.60.1", @@ -6369,8 +6388,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.60.1", @@ -6384,8 +6402,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.60.1", @@ -6399,8 +6416,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.60.1", @@ -6414,8 +6430,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { "version": "4.60.1", @@ -6429,8 +6444,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.60.1", @@ -6444,8 +6458,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { "version": "4.60.1", @@ -6459,8 +6472,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.60.1", @@ -6474,8 +6486,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.60.1", @@ -6489,8 +6500,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.60.1", @@ -6504,8 +6514,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.60.1", @@ -6519,8 +6528,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.60.1", @@ -6534,8 +6542,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openbsd-x64": { "version": "4.60.1", @@ -6549,8 +6556,7 @@ "optional": true, "os": [ "openbsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.60.1", @@ -6564,8 +6570,7 @@ "optional": true, "os": [ "openharmony" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.60.1", @@ -6579,8 +6584,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.60.1", @@ -6594,8 +6598,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.60.1", @@ -6609,8 +6612,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.60.1", @@ -6624,8 +6626,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@segment/analytics-core": { "version": "1.8.2", diff --git a/package.json b/package.json index 5dd7064b..8d4a322a 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,13 @@ "app", "component", "connection", - "cli" + "cli", + "enterprise" ], "scripts": { "dev": "npm -w app run dev", "build": "npm -w connection run build && npm -w app run build", - "test": "npm -w app run test && npm -w component run test && npm -w cli run test", + "test": "npm -w app run test && npm -w component run test && npm -w cli run test && npm -w enterprise run test", "test:app": "npm -w app run test", "test:components": "npm -w component run test", "test:cli": "npm -w cli run test", @@ -38,6 +39,9 @@ "connection/**/*.{ts,tsx}": [ "prettier --write" ], + "enterprise/**/*.{ts,tsx}": [ + "prettier --write" + ], "**/*.{js,jsx,json,css,md}": [ "prettier --write" ]