From 722cd9441e7049022d20589e0b23a5e259a5384e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Hasi=C5=84ski?= Date: Sun, 16 Mar 2025 15:03:07 +0100 Subject: [PATCH 1/7] Add OpenRouter integration --- lib/ruby_llm.rb | 4 +- lib/ruby_llm/configuration.rb | 1 + lib/ruby_llm/models.json | 5542 ++++++++++++++++- lib/ruby_llm/providers/openrouter.rb | 45 + .../providers/openrouter/capabilities.rb | 44 + lib/ruby_llm/providers/openrouter/chat.rb | 68 + lib/ruby_llm/providers/openrouter/media.rb | 52 + lib/ruby_llm/providers/openrouter/models.rb | 41 + .../providers/openrouter/streaming.rb | 31 + lib/ruby_llm/providers/openrouter/tools.rb | 69 + 10 files changed, 5895 insertions(+), 2 deletions(-) create mode 100644 lib/ruby_llm/providers/openrouter.rb create mode 100644 lib/ruby_llm/providers/openrouter/capabilities.rb create mode 100644 lib/ruby_llm/providers/openrouter/chat.rb create mode 100644 lib/ruby_llm/providers/openrouter/media.rb create mode 100644 lib/ruby_llm/providers/openrouter/models.rb create mode 100644 lib/ruby_llm/providers/openrouter/streaming.rb create mode 100644 lib/ruby_llm/providers/openrouter/tools.rb diff --git a/lib/ruby_llm.rb b/lib/ruby_llm.rb index 77eb5d158..40856aa67 100644 --- a/lib/ruby_llm.rb +++ b/lib/ruby_llm.rb @@ -16,7 +16,8 @@ 'openai' => 'OpenAI', 'api' => 'API', 'deepseek' => 'DeepSeek', - 'bedrock' => 'Bedrock' + 'bedrock' => 'Bedrock', + 'openrouter' => 'OpenRouter' ) loader.ignore("#{__dir__}/tasks") loader.ignore("#{__dir__}/ruby_llm/railtie") @@ -73,6 +74,7 @@ def logger RubyLLM::Provider.register :gemini, RubyLLM::Providers::Gemini RubyLLM::Provider.register :deepseek, RubyLLM::Providers::DeepSeek RubyLLM::Provider.register :bedrock, RubyLLM::Providers::Bedrock +RubyLLM::Provider.register :openrouter, RubyLLM::Providers::OpenRouter if defined?(Rails::Railtie) require 'ruby_llm/railtie' diff --git a/lib/ruby_llm/configuration.rb b/lib/ruby_llm/configuration.rb index f20185a48..dbd6be0de 100644 --- a/lib/ruby_llm/configuration.rb +++ b/lib/ruby_llm/configuration.rb @@ -20,6 +20,7 @@ class Configuration :bedrock_secret_key, :bedrock_region, :bedrock_session_token, + :openrouter_api_key, # Default models :default_model, :default_embedding_model, diff --git a/lib/ruby_llm/models.json b/lib/ruby_llm/models.json index 24ba266a2..833f77131 100644 --- a/lib/ruby_llm/models.json +++ b/lib/ruby_llm/models.json @@ -3603,5 +3603,5545 @@ "object": "model", "owned_by": "openai-internal" } + }, + { + "id": "open-r1/olympiccoder-7b:free", + "created_at": "2025-03-15T23:37:45+01:00", + "display_name": "OlympicCoder 7B (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "open-r1", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "open-r1/olympiccoder-32b:free", + "created_at": "2025-03-15T23:20:28+01:00", + "display_name": "OlympicCoder 32B (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "open-r1", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "steelskull/l3.3-electra-r1-70b", + "created_at": "2025-03-15T20:40:11+01:00", + "display_name": "SteelSkull: L3.3 Electra R1 70B", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "steelskull", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "allenai/olmo-2-0325-32b-instruct", + "created_at": "2025-03-14T22:42:36+01:00", + "display_name": "AllenAI: Olmo 2 32B Instruct", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, + "type": "chat", + "family": "allenai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemma-3-1b-it:free", + "created_at": "2025-03-14T15:45:56+01:00", + "display_name": "Google: Gemma 3 1B (free)", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "google/gemma-3-4b-it:free", + "created_at": "2025-03-13T23:38:30+01:00", + "display_name": "Google: Gemma 3 4B (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "ai21/jamba-1.6-large", + "created_at": "2025-03-13T23:32:53+01:00", + "display_name": "AI21: Jamba 1.6 Large", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": 4096, + "type": "chat", + "family": "ai21", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "ai21/jamba-1.6-mini", + "created_at": "2025-03-13T23:32:51+01:00", + "display_name": "AI21: Jamba Mini 1.6", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": 4096, + "type": "chat", + "family": "ai21", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemma-3-12b-it:free", + "created_at": "2025-03-13T22:50:25+01:00", + "display_name": "Google: Gemma 3 12B (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "cohere/command-a", + "created_at": "2025-03-13T20:32:22+01:00", + "display_name": "Cohere: Command A", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": 8192, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/gpt-4o-mini-search-preview", + "created_at": "2025-03-12T23:22:02+01:00", + "display_name": "OpenAI: GPT-4o-mini Search Preview", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4o-search-preview", + "created_at": "2025-03-12T23:19:09+01:00", + "display_name": "OpenAI: GPT-4o Search Preview", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "tokyotech-llm/llama-3.1-swallow-70b-instruct-v0.3", + "created_at": "2025-03-12T22:12:16+01:00", + "display_name": "Swallow: Llama 3.1 Swallow 70B Instruct V0.3", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 4096, + "type": "chat", + "family": "tokyotech-llm", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "rekaai/reka-flash-3:free", + "created_at": "2025-03-12T21:53:33+01:00", + "display_name": "Reka: Flash 3 (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "rekaai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemma-3-27b-it:free", + "created_at": "2025-03-12T06:12:39+01:00", + "display_name": "Google: Gemma 3 27B (free)", + "provider": "openrouter", + "context_window": 96000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "google/gemma-3-27b-it", + "created_at": "2025-03-12T06:12:39+01:00", + "display_name": "Google: Gemma 3 27B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "thedrummer/anubis-pro-105b-v1", + "created_at": "2025-03-10T22:31:30+01:00", + "display_name": "TheDrummer: Anubis Pro 105B V1", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": 64000, + "type": "chat", + "family": "thedrummer", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "latitudegames/wayfarer-large-70b-llama-3.3", + "created_at": "2025-03-10T21:01:25+01:00", + "display_name": "LatitudeGames: Wayfarer Large 70B Llama 3.3", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 128000, + "type": "chat", + "family": "latitudegames", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "thedrummer/skyfall-36b-v2", + "created_at": "2025-03-10T20:56:06+01:00", + "display_name": "TheDrummer: Skyfall 36B V2", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 32768, + "type": "chat", + "family": "thedrummer", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "microsoft/phi-4-multimodal-instruct", + "created_at": "2025-03-08T02:11:24+01:00", + "display_name": "Microsoft: Phi 4 Multimodal Instruct", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "microsoft", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "perplexity/sonar-reasoning-pro", + "created_at": "2025-03-07T03:08:28+01:00", + "display_name": "Perplexity: Sonar Reasoning Pro", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "perplexity/sonar-pro", + "created_at": "2025-03-07T02:53:43+01:00", + "display_name": "Perplexity: Sonar Pro", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8000, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "perplexity/sonar-deep-research", + "created_at": "2025-03-07T02:34:06+01:00", + "display_name": "Perplexity: Sonar Deep Research", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-zero:free", + "created_at": "2025-03-06T22:43:54+01:00", + "display_name": "DeepSeek: DeepSeek R1 Zero (free)", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": null, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "qwen/qwq-32b:free", + "created_at": "2025-03-05T22:06:54+01:00", + "display_name": "Qwen: QwQ 32B (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 131072, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "qwq", + "moderated": false + } + }, + { + "id": "qwen/qwq-32b", + "created_at": "2025-03-05T22:06:54+01:00", + "display_name": "Qwen: QwQ 32B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "qwq", + "moderated": false + } + }, + { + "id": "qwen/qwen2.5-32b-instruct", + "created_at": "2025-03-03T23:59:04+01:00", + "display_name": "Qwen: Qwen2.5 32B Instruct", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "moonshotai/moonlight-16b-a3b-instruct:free", + "created_at": "2025-02-28T06:16:41+01:00", + "display_name": "Moonshot AI: Moonlight 16B A3B Instruct (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": null, + "type": "chat", + "family": "moonshotai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "nousresearch/deephermes-3-llama-3-8b-preview:free", + "created_at": "2025-02-28T06:09:32+01:00", + "display_name": "Nous: DeepHermes 3 Llama 3 8B Preview (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "nousresearch", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/gpt-4.5-preview", + "created_at": "2025-02-27T21:23:30+01:00", + "display_name": "OpenAI: GPT-4.5 (Preview)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "google/gemini-2.0-flash-lite-001", + "created_at": "2025-02-25T18:56:52+01:00", + "display_name": "Google: Gemini 2.0 Flash Lite", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3.7-sonnet:beta", + "created_at": "2025-02-24T19:35:10+01:00", + "display_name": "Anthropic: Claude 3.7 Sonnet (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 128000, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3.7-sonnet", + "created_at": "2025-02-24T19:35:10+01:00", + "display_name": "Anthropic: Claude 3.7 Sonnet", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 128000, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "anthropic/claude-3.7-sonnet:thinking", + "created_at": "2025-02-24T19:35:10+01:00", + "display_name": "Anthropic: Claude 3.7 Sonnet (thinking)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 128000, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "perplexity/r1-1776", + "created_at": "2025-02-19T23:42:09+01:00", + "display_name": "Perplexity: R1 1776", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "DeepSeek", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "mistralai/mistral-saba", + "created_at": "2025-02-17T15:40:39+01:00", + "display_name": "Mistral: Saba", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "cognitivecomputations/dolphin3.0-r1-mistral-24b:free", + "created_at": "2025-02-13T17:01:38+01:00", + "display_name": "Dolphin3.0 R1 Mistral 24B (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "cognitivecomputations", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "cognitivecomputations/dolphin3.0-mistral-24b:free", + "created_at": "2025-02-13T16:53:39+01:00", + "display_name": "Dolphin3.0 Mistral 24B (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "cognitivecomputations", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "meta-llama/llama-guard-3-8b", + "created_at": "2025-02-13T00:01:58+01:00", + "display_name": "Llama Guard 3 8B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "none", + "moderated": false + } + }, + { + "id": "openai/o3-mini-high", + "created_at": "2025-02-12T16:03:31+01:00", + "display_name": "OpenAI: o3 Mini High", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 100000, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "allenai/llama-3.1-tulu-3-405b", + "created_at": "2025-02-08T23:23:41+01:00", + "display_name": "Llama 3.1 Tulu 3 405B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 4096, + "type": "chat", + "family": "allenai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-distill-llama-8b", + "created_at": "2025-02-07T15:15:18+01:00", + "display_name": "DeepSeek: R1 Distill Llama 8B", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": 32000, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-001", + "created_at": "2025-02-05T16:30:13+01:00", + "display_name": "Google: Gemini Flash 2.0", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-lite-preview-02-05:free", + "created_at": "2025-02-05T16:11:02+01:00", + "display_name": "Google: Gemini Flash Lite 2.0 Preview (free)", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-pro-exp-02-05:free", + "created_at": "2025-02-05T16:07:24+01:00", + "display_name": "Google: Gemini Pro 2.0 Experimental (free)", + "provider": "openrouter", + "context_window": 2000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen-vl-plus", + "created_at": "2025-02-05T05:54:15+01:00", + "display_name": "Qwen: Qwen VL Plus", + "provider": "openrouter", + "context_window": 7500, + "max_tokens": 1500, + "type": "chat", + "family": "qwen", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "aion-labs/aion-1.0", + "created_at": "2025-02-04T20:32:37+01:00", + "display_name": "AionLabs: Aion-1.0", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 32768, + "type": "chat", + "family": "aion-labs", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "aion-labs/aion-1.0-mini", + "created_at": "2025-02-04T20:25:07+01:00", + "display_name": "AionLabs: Aion-1.0-Mini", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 32768, + "type": "chat", + "family": "aion-labs", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "aion-labs/aion-rp-llama-3.1-8b", + "created_at": "2025-02-04T20:18:38+01:00", + "display_name": "AionLabs: Aion-RP 1.0 (8B)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 32768, + "type": "chat", + "family": "aion-labs", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen-vl-max", + "created_at": "2025-02-01T19:25:04+01:00", + "display_name": "Qwen: Qwen VL Max", + "provider": "openrouter", + "context_window": 7500, + "max_tokens": 1500, + "type": "chat", + "family": "qwen", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen-turbo", + "created_at": "2025-02-01T12:56:14+01:00", + "display_name": "Qwen: Qwen-Turbo", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct:free", + "created_at": "2025-02-01T12:45:11+01:00", + "display_name": "Qwen: Qwen2.5 VL 72B Instruct (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 2048, + "type": "chat", + "family": "qwen", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct", + "created_at": "2025-02-01T12:45:11+01:00", + "display_name": "Qwen: Qwen2.5 VL 72B Instruct", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen-plus", + "created_at": "2025-02-01T12:37:20+01:00", + "display_name": "Qwen: Qwen-Plus", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen-max", + "created_at": "2025-02-01T10:31:29+01:00", + "display_name": "Qwen: Qwen-Max ", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/o3-mini", + "created_at": "2025-01-31T20:28:41+01:00", + "display_name": "OpenAI: o3 Mini", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 100000, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-1.5b", + "created_at": "2025-01-31T13:54:27+01:00", + "display_name": "DeepSeek: R1 Distill Qwen 1.5B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 32768, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "mistralai/mistral-small-24b-instruct-2501:free", + "created_at": "2025-01-30T17:43:29+01:00", + "display_name": "Mistral: Mistral Small 3 (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/mistral-small-24b-instruct-2501", + "created_at": "2025-01-30T17:43:29+01:00", + "display_name": "Mistral: Mistral Small 3", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-32b:free", + "created_at": "2025-01-30T00:53:50+01:00", + "display_name": "DeepSeek: R1 Distill Qwen 32B (free)", + "provider": "openrouter", + "context_window": 16000, + "max_tokens": 16000, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-32b", + "created_at": "2025-01-30T00:53:50+01:00", + "display_name": "DeepSeek: R1 Distill Qwen 32B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-14b:free", + "created_at": "2025-01-30T00:39:00+01:00", + "display_name": "DeepSeek: R1 Distill Qwen 14B (free)", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": null, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-14b", + "created_at": "2025-01-30T00:39:00+01:00", + "display_name": "DeepSeek: R1 Distill Qwen 14B", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": 64000, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "perplexity/sonar-reasoning", + "created_at": "2025-01-29T07:11:47+01:00", + "display_name": "Perplexity: Sonar Reasoning", + "provider": "openrouter", + "context_window": 127000, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "perplexity/sonar", + "created_at": "2025-01-27T22:36:48+01:00", + "display_name": "Perplexity: Sonar", + "provider": "openrouter", + "context_window": 127072, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "liquid/lfm-7b", + "created_at": "2025-01-25T13:08:03+01:00", + "display_name": "Liquid: LFM 7B", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "liquid", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "liquid/lfm-3b", + "created_at": "2025-01-25T13:01:41+01:00", + "display_name": "Liquid: LFM 3B", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "liquid", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b:free", + "created_at": "2025-01-23T21:12:49+01:00", + "display_name": "DeepSeek: R1 Distill Llama 70B (free)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "created_at": "2025-01-23T21:12:49+01:00", + "display_name": "DeepSeek: R1 Distill Llama 70B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-thinking-exp:free", + "created_at": "2025-01-22T13:11:39+01:00", + "display_name": "Google: Gemini 2.0 Flash Thinking Experimental 01-21 (free)", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1:free", + "created_at": "2025-01-20T14:51:35+01:00", + "display_name": "DeepSeek: R1 (free)", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": null, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "DeepSeek", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "deepseek/deepseek-r1", + "created_at": "2025-01-20T14:51:35+01:00", + "display_name": "DeepSeek: R1", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": 16000, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "DeepSeek", + "instruct_type": "deepseek-r1", + "moderated": false + } + }, + { + "id": "sophosympatheia/rogue-rose-103b-v0.2:free", + "created_at": "2025-01-18T11:13:09+01:00", + "display_name": "Rogue Rose 103B v0.2 (free)", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "sophosympatheia", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "vicuna", + "moderated": false + } + }, + { + "id": "minimax/minimax-01", + "created_at": "2025-01-15T05:31:02+01:00", + "display_name": "MiniMax: MiniMax-01", + "provider": "openrouter", + "context_window": 1000192, + "max_tokens": 1000192, + "type": "chat", + "family": "minimax", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/codestral-2501", + "created_at": "2025-01-14T23:58:42+01:00", + "display_name": "Mistral: Codestral 2501", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "microsoft/phi-4", + "created_at": "2025-01-10T07:17:52+01:00", + "display_name": "Microsoft: Phi 4", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 8192, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "sao10k/l3.1-70b-hanami-x1", + "created_at": "2025-01-08T03:20:54+01:00", + "display_name": "Sao10K: Llama 3.1 70B Hanami x1", + "provider": "openrouter", + "context_window": 16000, + "max_tokens": null, + "type": "chat", + "family": "sao10k", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "deepseek/deepseek-chat:free", + "created_at": "2024-12-26T20:28:40+01:00", + "display_name": "DeepSeek: DeepSeek V3 (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "DeepSeek", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "deepseek/deepseek-chat", + "created_at": "2024-12-26T20:28:40+01:00", + "display_name": "DeepSeek: DeepSeek V3", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": 16000, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "DeepSeek", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-thinking-exp-1219:free", + "created_at": "2024-12-20T00:13:46+01:00", + "display_name": "Google: Gemini 2.0 Flash Thinking Experimental (free)", + "provider": "openrouter", + "context_window": 40000, + "max_tokens": 8000, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "sao10k/l3.3-euryale-70b", + "created_at": "2024-12-18T16:32:08+01:00", + "display_name": "Sao10K: Llama 3.3 Euryale 70B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "sao10k", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "openai/o1", + "created_at": "2024-12-17T19:26:39+01:00", + "display_name": "OpenAI: o1", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 100000, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "eva-unit-01/eva-llama-3.33-70b", + "created_at": "2024-12-16T20:28:23+01:00", + "display_name": "EVA Llama 3.33 70B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 4096, + "type": "chat", + "family": "eva-unit-01", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "x-ai/grok-2-vision-1212", + "created_at": "2024-12-15T05:35:38+01:00", + "display_name": "xAI: Grok 2 Vision 1212", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "x-ai", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Grok", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "x-ai/grok-2-1212", + "created_at": "2024-12-15T04:20:14+01:00", + "display_name": "xAI: Grok 2 1212", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "x-ai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Grok", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "cohere/command-r7b-12-2024", + "created_at": "2024-12-14T07:35:52+01:00", + "display_name": "Cohere: Command R7B (12-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-exp:free", + "created_at": "2024-12-11T18:18:43+01:00", + "display_name": "Google: Gemini Flash 2.0 Experimental (free)", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-exp-1206:free", + "created_at": "2024-12-06T18:55:13+01:00", + "display_name": "Google: Gemini Experimental 1206 (free)", + "provider": "openrouter", + "context_window": 2097152, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.3-70b-instruct:free", + "created_at": "2024-12-06T18:28:57+01:00", + "display_name": "Meta: Llama 3.3 70B Instruct (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.3-70b-instruct", + "created_at": "2024-12-06T18:28:57+01:00", + "display_name": "Meta: Llama 3.3 70B Instruct", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "amazon/nova-lite-v1", + "created_at": "2024-12-05T23:22:43+01:00", + "display_name": "Amazon: Nova Lite 1.0", + "provider": "openrouter", + "context_window": 300000, + "max_tokens": 5120, + "type": "chat", + "family": "amazon", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Nova", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "amazon/nova-micro-v1", + "created_at": "2024-12-05T23:20:37+01:00", + "display_name": "Amazon: Nova Micro 1.0", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 5120, + "type": "chat", + "family": "amazon", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Nova", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "amazon/nova-pro-v1", + "created_at": "2024-12-05T23:05:03+01:00", + "display_name": "Amazon: Nova Pro 1.0", + "provider": "openrouter", + "context_window": 300000, + "max_tokens": 5120, + "type": "chat", + "family": "amazon", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Nova", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwq-32b-preview:free", + "created_at": "2024-11-28T01:42:21+01:00", + "display_name": "Qwen: QwQ 32B Preview (free)", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwq-32b-preview", + "created_at": "2024-11-28T01:42:21+01:00", + "display_name": "Qwen: QwQ 32B Preview", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/learnlm-1.5-pro-experimental:free", + "created_at": "2024-11-21T20:15:51+01:00", + "display_name": "Google: LearnLM 1.5 Pro Experimental (free)", + "provider": "openrouter", + "context_window": 40960, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "eva-unit-01/eva-qwen-2.5-72b", + "created_at": "2024-11-21T18:36:46+01:00", + "display_name": "EVA Qwen2.5 72B", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "eva-unit-01", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "openai/gpt-4o-2024-11-20", + "created_at": "2024-11-20T19:33:14+01:00", + "display_name": "OpenAI: GPT-4o (2024-11-20)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "mistralai/mistral-large-2411", + "created_at": "2024-11-19T02:11:25+01:00", + "display_name": "Mistral Large 2411", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/mistral-large-2407", + "created_at": "2024-11-19T02:06:55+01:00", + "display_name": "Mistral Large 2407", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/pixtral-large-2411", + "created_at": "2024-11-19T01:49:48+01:00", + "display_name": "Mistral: Pixtral Large 2411", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "x-ai/grok-vision-beta", + "created_at": "2024-11-19T01:37:04+01:00", + "display_name": "xAI: Grok Vision Beta", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": null, + "type": "chat", + "family": "x-ai", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Grok", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "infermatic/mn-inferor-12b", + "created_at": "2024-11-13T03:20:28+01:00", + "display_name": "Infermatic: Mistral Nemo Inferor 12B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 4096, + "type": "chat", + "family": "infermatic", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "qwen/qwen-2.5-coder-32b-instruct:free", + "created_at": "2024-11-12T00:40:00+01:00", + "display_name": "Qwen2.5 Coder 32B Instruct (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "qwen/qwen-2.5-coder-32b-instruct", + "created_at": "2024-11-12T00:40:00+01:00", + "display_name": "Qwen2.5 Coder 32B Instruct", + "provider": "openrouter", + "context_window": 33000, + "max_tokens": 3000, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "raifle/sorcererlm-8x22b", + "created_at": "2024-11-08T23:31:23+01:00", + "display_name": "SorcererLM 8x22B", + "provider": "openrouter", + "context_window": 16000, + "max_tokens": null, + "type": "chat", + "family": "raifle", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "vicuna", + "moderated": false + } + }, + { + "id": "eva-unit-01/eva-qwen-2.5-32b", + "created_at": "2024-11-08T23:27:27+01:00", + "display_name": "EVA Qwen2.5 32B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 4096, + "type": "chat", + "family": "eva-unit-01", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "thedrummer/unslopnemo-12b", + "created_at": "2024-11-08T23:04:08+01:00", + "display_name": "Unslopnemo 12B", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "thedrummer", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "anthropic/claude-3.5-haiku-20241022:beta", + "created_at": "2024-11-04T01:00:00+01:00", + "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22) (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3.5-haiku-20241022", + "created_at": "2024-11-04T01:00:00+01:00", + "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "anthropic/claude-3.5-haiku:beta", + "created_at": "2024-11-04T01:00:00+01:00", + "display_name": "Anthropic: Claude 3.5 Haiku (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3.5-haiku", + "created_at": "2024-11-04T01:00:00+01:00", + "display_name": "Anthropic: Claude 3.5 Haiku", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "neversleep/llama-3.1-lumimaid-70b", + "created_at": "2024-10-22T02:00:00+02:00", + "display_name": "NeverSleep: Lumimaid v0.2 70B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 2048, + "type": "chat", + "family": "neversleep", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "anthracite-org/magnum-v4-72b", + "created_at": "2024-10-22T02:00:00+02:00", + "display_name": "Magnum v4 72B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 1024, + "type": "chat", + "family": "anthracite-org", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "anthropic/claude-3.5-sonnet:beta", + "created_at": "2024-10-22T02:00:00+02:00", + "display_name": "Anthropic: Claude 3.5 Sonnet (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3.5-sonnet", + "created_at": "2024-10-22T02:00:00+02:00", + "display_name": "Anthropic: Claude 3.5 Sonnet", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "x-ai/grok-beta", + "created_at": "2024-10-20T02:00:00+02:00", + "display_name": "xAI: Grok Beta", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "x-ai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Grok", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/ministral-8b", + "created_at": "2024-10-17T02:00:00+02:00", + "display_name": "Mistral: Ministral 8B", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/ministral-3b", + "created_at": "2024-10-17T02:00:00+02:00", + "display_name": "Mistral: Ministral 3B", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen-2.5-7b-instruct", + "created_at": "2024-10-16T02:00:00+02:00", + "display_name": "Qwen2.5 7B Instruct", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "nvidia/llama-3.1-nemotron-70b-instruct:free", + "created_at": "2024-10-15T02:00:00+02:00", + "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "nvidia", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "nvidia/llama-3.1-nemotron-70b-instruct", + "created_at": "2024-10-15T02:00:00+02:00", + "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + "provider": "openrouter", + "context_window": 131000, + "max_tokens": 131000, + "type": "chat", + "family": "nvidia", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "inflection/inflection-3-pi", + "created_at": "2024-10-11T02:00:00+02:00", + "display_name": "Inflection: Inflection 3 Pi", + "provider": "openrouter", + "context_window": 8000, + "max_tokens": 1024, + "type": "chat", + "family": "inflection", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "inflection/inflection-3-productivity", + "created_at": "2024-10-11T02:00:00+02:00", + "display_name": "Inflection: Inflection 3 Productivity", + "provider": "openrouter", + "context_window": 8000, + "max_tokens": 1024, + "type": "chat", + "family": "inflection", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-flash-1.5-8b", + "created_at": "2024-10-03T02:00:00+02:00", + "display_name": "Google: Gemini Flash 1.5 8B", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthracite-org/magnum-v2-72b", + "created_at": "2024-09-30T02:00:00+02:00", + "display_name": "Magnum v2 72B", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "anthracite-org", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "liquid/lfm-40b", + "created_at": "2024-09-30T02:00:00+02:00", + "display_name": "Liquid: LFM 40B MoE", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "liquid", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "thedrummer/rocinante-12b", + "created_at": "2024-09-30T02:00:00+02:00", + "display_name": "Rocinante 12B", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "thedrummer", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.2-3b-instruct:free", + "created_at": "2024-09-25T02:00:00+02:00", + "display_name": "Meta: Llama 3.2 3B Instruct (free)", + "provider": "openrouter", + "context_window": 20000, + "max_tokens": 20000, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.2-3b-instruct", + "created_at": "2024-09-25T02:00:00+02:00", + "display_name": "Meta: Llama 3.2 3B Instruct", + "provider": "openrouter", + "context_window": 131000, + "max_tokens": 131000, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.2-1b-instruct:free", + "created_at": "2024-09-25T02:00:00+02:00", + "display_name": "Meta: Llama 3.2 1B Instruct (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.2-1b-instruct", + "created_at": "2024-09-25T02:00:00+02:00", + "display_name": "Meta: Llama 3.2 1B Instruct", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.2-90b-vision-instruct", + "created_at": "2024-09-25T02:00:00+02:00", + "display_name": "Meta: Llama 3.2 90B Vision Instruct", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, + "type": "chat", + "family": "meta-llama", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.2-11b-vision-instruct:free", + "created_at": "2024-09-25T02:00:00+02:00", + "display_name": "Meta: Llama 3.2 11B Vision Instruct (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 2048, + "type": "chat", + "family": "meta-llama", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.2-11b-vision-instruct", + "created_at": "2024-09-25T02:00:00+02:00", + "display_name": "Meta: Llama 3.2 11B Vision Instruct", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 16384, + "type": "chat", + "family": "meta-llama", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "qwen/qwen-2.5-72b-instruct:free", + "created_at": "2024-09-19T02:00:00+02:00", + "display_name": "Qwen2.5 72B Instruct (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "qwen/qwen-2.5-72b-instruct", + "created_at": "2024-09-19T02:00:00+02:00", + "display_name": "Qwen2.5 72B Instruct", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "qwen/qwen-2.5-vl-72b-instruct", + "created_at": "2024-09-18T02:00:00+02:00", + "display_name": "Qwen: Qwen2.5-VL 72B Instruct", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "neversleep/llama-3.1-lumimaid-8b", + "created_at": "2024-09-15T02:00:00+02:00", + "display_name": "NeverSleep: Lumimaid v0.2 8B", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 2048, + "type": "chat", + "family": "neversleep", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "openai/o1-mini-2024-09-12", + "created_at": "2024-09-12T02:00:00+02:00", + "display_name": "OpenAI: o1-mini (2024-09-12)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 65536, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/o1-preview", + "created_at": "2024-09-12T02:00:00+02:00", + "display_name": "OpenAI: o1-preview", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 32768, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/o1-preview-2024-09-12", + "created_at": "2024-09-12T02:00:00+02:00", + "display_name": "OpenAI: o1-preview (2024-09-12)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 32768, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/o1-mini", + "created_at": "2024-09-12T02:00:00+02:00", + "display_name": "OpenAI: o1-mini", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 65536, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "mistralai/pixtral-12b", + "created_at": "2024-09-10T02:00:00+02:00", + "display_name": "Mistral: Pixtral 12B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "cohere/command-r-08-2024", + "created_at": "2024-08-30T02:00:00+02:00", + "display_name": "Cohere: Command R (08-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "cohere/command-r-plus-08-2024", + "created_at": "2024-08-30T02:00:00+02:00", + "display_name": "Cohere: Command R+ (08-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "sao10k/l3.1-euryale-70b", + "created_at": "2024-08-28T02:00:00+02:00", + "display_name": "Sao10K: Llama 3.1 Euryale 70B v2.2", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "sao10k", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "google/gemini-flash-1.5-8b-exp", + "created_at": "2024-08-28T02:00:00+02:00", + "display_name": "Google: Gemini Flash 1.5 8B Experimental", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "qwen/qwen-2.5-vl-7b-instruct", + "created_at": "2024-08-28T02:00:00+02:00", + "display_name": "Qwen: Qwen2.5-VL 7B Instruct", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "ai21/jamba-1-5-large", + "created_at": "2024-08-23T02:00:00+02:00", + "display_name": "AI21: Jamba 1.5 Large", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": 4096, + "type": "chat", + "family": "ai21", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "ai21/jamba-1-5-mini", + "created_at": "2024-08-23T02:00:00+02:00", + "display_name": "AI21: Jamba 1.5 Mini", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": 4096, + "type": "chat", + "family": "ai21", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "microsoft/phi-3.5-mini-128k-instruct", + "created_at": "2024-08-21T02:00:00+02:00", + "display_name": "Microsoft: Phi-3.5 Mini 128K Instruct", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "phi3", + "moderated": false + } + }, + { + "id": "nousresearch/hermes-3-llama-3.1-70b", + "created_at": "2024-08-18T02:00:00+02:00", + "display_name": "Nous: Hermes 3 70B Instruct", + "provider": "openrouter", + "context_window": 131000, + "max_tokens": 131000, + "type": "chat", + "family": "nousresearch", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "nousresearch/hermes-3-llama-3.1-405b", + "created_at": "2024-08-16T02:00:00+02:00", + "display_name": "Nous: Hermes 3 405B Instruct", + "provider": "openrouter", + "context_window": 131000, + "max_tokens": 131000, + "type": "chat", + "family": "nousresearch", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "openai/chatgpt-4o-latest", + "created_at": "2024-08-14T02:00:00+02:00", + "display_name": "OpenAI: ChatGPT-4o", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "sao10k/l3-lunaris-8b", + "created_at": "2024-08-13T02:00:00+02:00", + "display_name": "Sao10K: Llama 3 8B Lunaris", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 8192, + "type": "chat", + "family": "sao10k", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "aetherwiing/mn-starcannon-12b", + "created_at": "2024-08-13T02:00:00+02:00", + "display_name": "Aetherwiing: Starcannon 12B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 4096, + "type": "chat", + "family": "aetherwiing", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "openai/gpt-4o-2024-08-06", + "created_at": "2024-08-06T02:00:00+02:00", + "display_name": "OpenAI: GPT-4o (2024-08-06)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "meta-llama/llama-3.1-405b", + "created_at": "2024-08-02T02:00:00+02:00", + "display_name": "Meta: Llama 3.1 405B (base)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "none", + "moderated": false + } + }, + { + "id": "nothingiisreal/mn-celeste-12b", + "created_at": "2024-08-02T02:00:00+02:00", + "display_name": "Mistral Nemo 12B Celeste", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 4096, + "type": "chat", + "family": "nothingiisreal", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "perplexity/llama-3.1-sonar-small-128k-chat", + "created_at": "2024-08-01T02:00:00+02:00", + "display_name": "Perplexity: Llama 3.1 Sonar 8B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "perplexity/llama-3.1-sonar-large-128k-chat", + "created_at": "2024-08-01T02:00:00+02:00", + "display_name": "Perplexity: Llama 3.1 Sonar 70B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "perplexity/llama-3.1-sonar-large-128k-online", + "created_at": "2024-08-01T02:00:00+02:00", + "display_name": "Perplexity: Llama 3.1 Sonar 70B Online", + "provider": "openrouter", + "context_window": 127072, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "perplexity/llama-3.1-sonar-small-128k-online", + "created_at": "2024-08-01T02:00:00+02:00", + "display_name": "Perplexity: Llama 3.1 Sonar 8B Online", + "provider": "openrouter", + "context_window": 127072, + "max_tokens": null, + "type": "chat", + "family": "perplexity", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.1-405b-instruct", + "created_at": "2024-07-23T02:00:00+02:00", + "display_name": "Meta: Llama 3.1 405B Instruct", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.1-8b-instruct:free", + "created_at": "2024-07-23T02:00:00+02:00", + "display_name": "Meta: Llama 3.1 8B Instruct (free)", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.1-8b-instruct", + "created_at": "2024-07-23T02:00:00+02:00", + "display_name": "Meta: Llama 3.1 8B Instruct", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3.1-70b-instruct", + "created_at": "2024-07-23T02:00:00+02:00", + "display_name": "Meta: Llama 3.1 70B Instruct", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "mistralai/mistral-nemo:free", + "created_at": "2024-07-19T02:00:00+02:00", + "display_name": "Mistral: Mistral Nemo (free)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 128000, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "mistralai/mistral-nemo", + "created_at": "2024-07-19T02:00:00+02:00", + "display_name": "Mistral: Mistral Nemo", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "mistralai/codestral-mamba", + "created_at": "2024-07-19T02:00:00+02:00", + "display_name": "Mistral: Codestral Mamba", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/gpt-4o-mini", + "created_at": "2024-07-18T02:00:00+02:00", + "display_name": "OpenAI: GPT-4o-mini", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4o-mini-2024-07-18", + "created_at": "2024-07-18T02:00:00+02:00", + "display_name": "OpenAI: GPT-4o-mini (2024-07-18)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "qwen/qwen-2-7b-instruct:free", + "created_at": "2024-07-16T02:00:00+02:00", + "display_name": "Qwen 2 7B Instruct (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 4096, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "qwen/qwen-2-7b-instruct", + "created_at": "2024-07-16T02:00:00+02:00", + "display_name": "Qwen 2 7B Instruct", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "google/gemma-2-27b-it", + "created_at": "2024-07-13T02:00:00+02:00", + "display_name": "Google: Gemma 2 27B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "alpindale/magnum-72b", + "created_at": "2024-07-11T02:00:00+02:00", + "display_name": "Magnum 72B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 1024, + "type": "chat", + "family": "alpindale", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "google/gemma-2-9b-it:free", + "created_at": "2024-06-28T02:00:00+02:00", + "display_name": "Google: Gemma 2 9B (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 4096, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "google/gemma-2-9b-it", + "created_at": "2024-06-28T02:00:00+02:00", + "display_name": "Google: Gemma 2 9B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "01-ai/yi-large", + "created_at": "2024-06-25T02:00:00+02:00", + "display_name": "01.AI: Yi Large", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 4096, + "type": "chat", + "family": "01-ai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Yi", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "ai21/jamba-instruct", + "created_at": "2024-06-25T02:00:00+02:00", + "display_name": "AI21: Jamba Instruct", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": 4096, + "type": "chat", + "family": "ai21", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3.5-sonnet-20240620:beta", + "created_at": "2024-06-20T02:00:00+02:00", + "display_name": "Anthropic: Claude 3.5 Sonnet (2024-06-20) (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3.5-sonnet-20240620", + "created_at": "2024-06-20T02:00:00+02:00", + "display_name": "Anthropic: Claude 3.5 Sonnet (2024-06-20)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "sao10k/l3-euryale-70b", + "created_at": "2024-06-18T02:00:00+02:00", + "display_name": "Sao10k: Llama 3 Euryale 70B v2.1", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 8192, + "type": "chat", + "family": "sao10k", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "cognitivecomputations/dolphin-mixtral-8x22b", + "created_at": "2024-06-08T02:00:00+02:00", + "display_name": "Dolphin 2.9.2 Mixtral 8x22B 🐬", + "provider": "openrouter", + "context_window": 16000, + "max_tokens": null, + "type": "chat", + "family": "cognitivecomputations", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "qwen/qwen-2-72b-instruct", + "created_at": "2024-06-07T02:00:00+02:00", + "display_name": "Qwen 2 72B Instruct", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 4096, + "type": "chat", + "family": "qwen", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "mistralai/mistral-7b-instruct:free", + "created_at": "2024-05-27T02:00:00+02:00", + "display_name": "Mistral: Mistral 7B Instruct (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 4096, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "mistralai/mistral-7b-instruct", + "created_at": "2024-05-27T02:00:00+02:00", + "display_name": "Mistral: Mistral 7B Instruct", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "mistralai/mistral-7b-instruct-v0.3", + "created_at": "2024-05-27T02:00:00+02:00", + "display_name": "Mistral: Mistral 7B Instruct v0.3", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "nousresearch/hermes-2-pro-llama-3-8b", + "created_at": "2024-05-27T02:00:00+02:00", + "display_name": "NousResearch: Hermes 2 Pro - Llama-3 8B", + "provider": "openrouter", + "context_window": 131000, + "max_tokens": 131000, + "type": "chat", + "family": "nousresearch", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "microsoft/phi-3-mini-128k-instruct:free", + "created_at": "2024-05-26T02:00:00+02:00", + "display_name": "Microsoft: Phi-3 Mini 128K Instruct (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 4096, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "phi3", + "moderated": false + } + }, + { + "id": "microsoft/phi-3-mini-128k-instruct", + "created_at": "2024-05-26T02:00:00+02:00", + "display_name": "Microsoft: Phi-3 Mini 128K Instruct", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "phi3", + "moderated": false + } + }, + { + "id": "microsoft/phi-3-medium-128k-instruct:free", + "created_at": "2024-05-24T02:00:00+02:00", + "display_name": "Microsoft: Phi-3 Medium 128K Instruct (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 4096, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "phi3", + "moderated": false + } + }, + { + "id": "microsoft/phi-3-medium-128k-instruct", + "created_at": "2024-05-24T02:00:00+02:00", + "display_name": "Microsoft: Phi-3 Medium 128K Instruct", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", + "instruct_type": "phi3", + "moderated": false + } + }, + { + "id": "neversleep/llama-3-lumimaid-70b", + "created_at": "2024-05-16T02:00:00+02:00", + "display_name": "NeverSleep: Llama 3 Lumimaid 70B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 2048, + "type": "chat", + "family": "neversleep", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "google/gemini-flash-1.5", + "created_at": "2024-05-14T02:00:00+02:00", + "display_name": "Google: Gemini Flash 1.5", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/gpt-4o-2024-05-13", + "created_at": "2024-05-13T02:00:00+02:00", + "display_name": "OpenAI: GPT-4o (2024-05-13)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "meta-llama/llama-guard-2-8b", + "created_at": "2024-05-13T02:00:00+02:00", + "display_name": "Meta: LlamaGuard 2 8B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "none", + "moderated": false + } + }, + { + "id": "openai/gpt-4o", + "created_at": "2024-05-13T02:00:00+02:00", + "display_name": "OpenAI: GPT-4o", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4o:extended", + "created_at": "2024-05-13T02:00:00+02:00", + "display_name": "OpenAI: GPT-4o (extended)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 64000, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "neversleep/llama-3-lumimaid-8b:extended", + "created_at": "2024-05-04T02:00:00+02:00", + "display_name": "NeverSleep: Llama 3 Lumimaid 8B (extended)", + "provider": "openrouter", + "context_window": 24576, + "max_tokens": 2048, + "type": "chat", + "family": "neversleep", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "neversleep/llama-3-lumimaid-8b", + "created_at": "2024-05-04T02:00:00+02:00", + "display_name": "NeverSleep: Llama 3 Lumimaid 8B", + "provider": "openrouter", + "context_window": 24576, + "max_tokens": 2048, + "type": "chat", + "family": "neversleep", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "sao10k/fimbulvetr-11b-v2", + "created_at": "2024-04-21T02:00:00+02:00", + "display_name": "Fimbulvetr 11B v2", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, + "type": "chat", + "family": "sao10k", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3-8b-instruct:free", + "created_at": "2024-04-18T02:00:00+02:00", + "display_name": "Meta: Llama 3 8B Instruct (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 4096, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3-8b-instruct", + "created_at": "2024-04-18T02:00:00+02:00", + "display_name": "Meta: Llama 3 8B Instruct", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 8192, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "meta-llama/llama-3-70b-instruct", + "created_at": "2024-04-18T02:00:00+02:00", + "display_name": "Meta: Llama 3 70B Instruct", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 8192, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false + } + }, + { + "id": "mistralai/mixtral-8x22b-instruct", + "created_at": "2024-04-17T02:00:00+02:00", + "display_name": "Mistral: Mixtral 8x22B Instruct", + "provider": "openrouter", + "context_window": 65536, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "microsoft/wizardlm-2-8x22b", + "created_at": "2024-04-16T02:00:00+02:00", + "display_name": "WizardLM-2 8x22B", + "provider": "openrouter", + "context_window": 65536, + "max_tokens": 8192, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "vicuna", + "moderated": false + } + }, + { + "id": "microsoft/wizardlm-2-7b", + "created_at": "2024-04-16T02:00:00+02:00", + "display_name": "WizardLM-2 7B", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "vicuna", + "moderated": false + } + }, + { + "id": "google/gemini-pro-1.5", + "created_at": "2024-04-09T02:00:00+02:00", + "display_name": "Google: Gemini Pro 1.5", + "provider": "openrouter", + "context_window": 2000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/gpt-4-turbo", + "created_at": "2024-04-09T02:00:00+02:00", + "display_name": "OpenAI: GPT-4 Turbo", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "cohere/command-r-plus", + "created_at": "2024-04-04T02:00:00+02:00", + "display_name": "Cohere: Command R+", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "cohere/command-r-plus-04-2024", + "created_at": "2024-04-02T02:00:00+02:00", + "display_name": "Cohere: Command R+ (04-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "sophosympatheia/midnight-rose-70b", + "created_at": "2024-03-22T01:00:00+01:00", + "display_name": "Midnight Rose 70B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "sophosympatheia", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "airoboros", + "moderated": false + } + }, + { + "id": "cohere/command", + "created_at": "2024-03-14T01:00:00+01:00", + "display_name": "Cohere: Command", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "cohere/command-r", + "created_at": "2024-03-14T01:00:00+01:00", + "display_name": "Cohere: Command R", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3-haiku:beta", + "created_at": "2024-03-13T01:00:00+01:00", + "display_name": "Anthropic: Claude 3 Haiku (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3-haiku", + "created_at": "2024-03-13T01:00:00+01:00", + "display_name": "Anthropic: Claude 3 Haiku", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "anthropic/claude-3-opus:beta", + "created_at": "2024-03-05T01:00:00+01:00", + "display_name": "Anthropic: Claude 3 Opus (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3-opus", + "created_at": "2024-03-05T01:00:00+01:00", + "display_name": "Anthropic: Claude 3 Opus", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "anthropic/claude-3-sonnet:beta", + "created_at": "2024-03-05T01:00:00+01:00", + "display_name": "Anthropic: Claude 3 Sonnet (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-3-sonnet", + "created_at": "2024-03-05T01:00:00+01:00", + "display_name": "Anthropic: Claude 3 Sonnet", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "cohere/command-r-03-2024", + "created_at": "2024-03-02T02:00:00+01:00", + "display_name": "Cohere: Command R (03-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/mistral-large", + "created_at": "2024-02-26T01:00:00+01:00", + "display_name": "Mistral Large", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemma-7b-it", + "created_at": "2024-02-22T01:00:00+01:00", + "display_name": "Google: Gemma 7B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": null, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false + } + }, + { + "id": "openai/gpt-3.5-turbo-0613", + "created_at": "2024-01-25T01:00:00+01:00", + "display_name": "OpenAI: GPT-3.5 Turbo (older v0613)", + "provider": "openrouter", + "context_window": 4095, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/gpt-4-turbo-preview", + "created_at": "2024-01-25T01:00:00+01:00", + "display_name": "OpenAI: GPT-4 Turbo Preview", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "nousresearch/nous-hermes-2-mixtral-8x7b-dpo", + "created_at": "2024-01-16T01:00:00+01:00", + "display_name": "Nous: Hermes 2 Mixtral 8x7B DPO", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 2048, + "type": "chat", + "family": "nousresearch", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "mistralai/mistral-small", + "created_at": "2024-01-10T01:00:00+01:00", + "display_name": "Mistral Small", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/mistral-tiny", + "created_at": "2024-01-10T01:00:00+01:00", + "display_name": "Mistral Tiny", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/mistral-medium", + "created_at": "2024-01-10T01:00:00+01:00", + "display_name": "Mistral Medium", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/mistral-7b-instruct-v0.2", + "created_at": "2023-12-28T01:00:00+01:00", + "display_name": "Mistral: Mistral 7B Instruct v0.2", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "cognitivecomputations/dolphin-mixtral-8x7b", + "created_at": "2023-12-21T01:00:00+01:00", + "display_name": "Dolphin 2.6 Mixtral 8x7B 🐬", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "cognitivecomputations", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "google/gemini-pro-vision", + "created_at": "2023-12-13T01:00:00+01:00", + "display_name": "Google: Gemini Pro Vision 1.0", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 2048, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-pro", + "created_at": "2023-12-13T01:00:00+01:00", + "display_name": "Google: Gemini Pro 1.0", + "provider": "openrouter", + "context_window": 32760, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "mistralai/mixtral-8x7b", + "created_at": "2023-12-10T01:00:00+01:00", + "display_name": "Mistral: Mixtral 8x7B (base)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 2048, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "none", + "moderated": false + } + }, + { + "id": "mistralai/mixtral-8x7b-instruct", + "created_at": "2023-12-10T01:00:00+01:00", + "display_name": "Mistral: Mixtral 8x7B Instruct", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "openchat/openchat-7b:free", + "created_at": "2023-11-28T01:00:00+01:00", + "display_name": "OpenChat 3.5 7B (free)", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 4096, + "type": "chat", + "family": "openchat", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "openchat", + "moderated": false + } + }, + { + "id": "openchat/openchat-7b", + "created_at": "2023-11-28T01:00:00+01:00", + "display_name": "OpenChat 3.5 7B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 8192, + "type": "chat", + "family": "openchat", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "openchat", + "moderated": false + } + }, + { + "id": "neversleep/noromaid-20b", + "created_at": "2023-11-26T01:00:00+01:00", + "display_name": "Noromaid 20B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 2048, + "type": "chat", + "family": "neversleep", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "anthropic/claude-2:beta", + "created_at": "2023-11-22T01:00:00+01:00", + "display_name": "Anthropic: Claude v2 (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-2", + "created_at": "2023-11-22T01:00:00+01:00", + "display_name": "Anthropic: Claude v2", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "anthropic/claude-2.1:beta", + "created_at": "2023-11-22T01:00:00+01:00", + "display_name": "Anthropic: Claude v2.1 (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-2.1", + "created_at": "2023-11-22T01:00:00+01:00", + "display_name": "Anthropic: Claude v2.1", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "teknium/openhermes-2.5-mistral-7b", + "created_at": "2023-11-20T01:00:00+01:00", + "display_name": "OpenHermes 2.5 Mistral 7B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, + "type": "chat", + "family": "teknium", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "undi95/toppy-m-7b:free", + "created_at": "2023-11-10T01:00:00+01:00", + "display_name": "Toppy M 7B (free)", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 2048, + "type": "chat", + "family": "undi95", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "undi95/toppy-m-7b", + "created_at": "2023-11-10T01:00:00+01:00", + "display_name": "Toppy M 7B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "undi95", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "alpindale/goliath-120b", + "created_at": "2023-11-10T01:00:00+01:00", + "display_name": "Goliath 120B", + "provider": "openrouter", + "context_window": 6144, + "max_tokens": 512, + "type": "chat", + "family": "alpindale", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "airoboros", + "moderated": false + } + }, + { + "id": "openrouter/auto", + "created_at": "2023-11-08T01:00:00+01:00", + "display_name": "Auto Router", + "provider": "openrouter", + "context_window": null, + "max_tokens": null, + "type": "chat", + "family": "openrouter", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": -1000000, + "output_price_per_million": -1000000, + "metadata": { + "tokenizer": "Router", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "openai/gpt-3.5-turbo-1106", + "created_at": "2023-11-06T01:00:00+01:00", + "display_name": "OpenAI: GPT-3.5 Turbo 16k (older v1106)", + "provider": "openrouter", + "context_window": 16385, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4-1106-preview", + "created_at": "2023-11-06T01:00:00+01:00", + "display_name": "OpenAI: GPT-4 Turbo (older v1106)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "google/palm-2-chat-bison-32k", + "created_at": "2023-11-03T01:00:00+01:00", + "display_name": "Google: PaLM 2 Chat 32k", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "PaLM", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/palm-2-codechat-bison-32k", + "created_at": "2023-11-03T01:00:00+01:00", + "display_name": "Google: PaLM 2 Code Chat 32k", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "PaLM", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "jondurbin/airoboros-l2-70b", + "created_at": "2023-10-29T02:00:00+02:00", + "display_name": "Airoboros 70B", + "provider": "openrouter", + "context_window": 4000, + "max_tokens": null, + "type": "chat", + "family": "jondurbin", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "airoboros", + "moderated": false + } + }, + { + "id": "xwin-lm/xwin-lm-70b", + "created_at": "2023-10-15T02:00:00+02:00", + "display_name": "Xwin 70B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 512, + "type": "chat", + "family": "xwin-lm", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "airoboros", + "moderated": false + } + }, + { + "id": "openai/gpt-3.5-turbo-instruct", + "created_at": "2023-09-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-3.5 Turbo Instruct", + "provider": "openrouter", + "context_window": 4095, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": "chatml", + "moderated": true + } + }, + { + "id": "mistralai/mistral-7b-instruct-v0.1", + "created_at": "2023-09-28T02:00:00+02:00", + "display_name": "Mistral: Mistral 7B Instruct v0.1", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 2048, + "type": "chat", + "family": "mistralai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false + } + }, + { + "id": "pygmalionai/mythalion-13b", + "created_at": "2023-09-02T02:00:00+02:00", + "display_name": "Pygmalion: Mythalion 13B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, + "type": "chat", + "family": "pygmalionai", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "openai/gpt-3.5-turbo-16k", + "created_at": "2023-08-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-3.5 Turbo 16k", + "provider": "openrouter", + "context_window": 16385, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4-32k", + "created_at": "2023-08-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-4 32k", + "provider": "openrouter", + "context_window": 32767, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4-32k-0314", + "created_at": "2023-08-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-4 32k (older v0314)", + "provider": "openrouter", + "context_window": 32767, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "nousresearch/nous-hermes-llama2-13b", + "created_at": "2023-08-20T02:00:00+02:00", + "display_name": "Nous: Hermes 13B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "nousresearch", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "mancer/weaver", + "created_at": "2023-08-02T02:00:00+02:00", + "display_name": "Mancer: Weaver (alpha)", + "provider": "openrouter", + "context_window": 8000, + "max_tokens": 1000, + "type": "chat", + "family": "mancer", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "huggingfaceh4/zephyr-7b-beta:free", + "created_at": "2023-08-02T02:00:00+02:00", + "display_name": "Hugging Face: Zephyr 7B (free)", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 2048, + "type": "chat", + "family": "huggingfaceh4", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Mistral", + "instruct_type": "zephyr", + "moderated": false + } + }, + { + "id": "anthropic/claude-2.0:beta", + "created_at": "2023-07-28T02:00:00+02:00", + "display_name": "Anthropic: Claude v2.0 (self-moderated)", + "provider": "openrouter", + "context_window": 100000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthropic/claude-2.0", + "created_at": "2023-07-28T02:00:00+02:00", + "display_name": "Anthropic: Claude v2.0", + "provider": "openrouter", + "context_window": 100000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "undi95/remm-slerp-l2-13b", + "created_at": "2023-07-22T02:00:00+02:00", + "display_name": "ReMM SLERP 13B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, + "type": "chat", + "family": "undi95", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "google/palm-2-chat-bison", + "created_at": "2023-07-20T02:00:00+02:00", + "display_name": "Google: PaLM 2 Chat", + "provider": "openrouter", + "context_window": 9216, + "max_tokens": 1024, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "PaLM", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/palm-2-codechat-bison", + "created_at": "2023-07-20T02:00:00+02:00", + "display_name": "Google: PaLM 2 Code Chat", + "provider": "openrouter", + "context_window": 7168, + "max_tokens": 1024, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "PaLM", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "gryphe/mythomax-l2-13b:free", + "created_at": "2023-07-02T02:00:00+02:00", + "display_name": "MythoMax 13B (free)", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 2048, + "type": "chat", + "family": "gryphe", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "gryphe/mythomax-l2-13b", + "created_at": "2023-07-02T02:00:00+02:00", + "display_name": "MythoMax 13B", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, + "type": "chat", + "family": "gryphe", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false + } + }, + { + "id": "meta-llama/llama-2-13b-chat", + "created_at": "2023-06-20T02:00:00+02:00", + "display_name": "Meta: Llama 2 13B Chat", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 2048, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "llama2", + "moderated": false + } + }, + { + "id": "meta-llama/llama-2-70b-chat", + "created_at": "2023-06-20T02:00:00+02:00", + "display_name": "Meta: Llama 2 70B Chat", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, + "type": "chat", + "family": "meta-llama", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Llama2", + "instruct_type": "llama2", + "moderated": false + } + }, + { + "id": "openai/gpt-3.5-turbo", + "created_at": "2023-05-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-3.5 Turbo", + "provider": "openrouter", + "context_window": 16385, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-3.5-turbo-0125", + "created_at": "2023-05-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-3.5 Turbo 16k", + "provider": "openrouter", + "context_window": 16385, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4", + "created_at": "2023-05-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-4", + "provider": "openrouter", + "context_window": 8191, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } + }, + { + "id": "openai/gpt-4-0314", + "created_at": "2023-05-28T02:00:00+02:00", + "display_name": "OpenAI: GPT-4 (older v0314)", + "provider": "openrouter", + "context_window": 8191, + "max_tokens": 4096, + "type": "chat", + "family": "openai", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true + } } -] \ No newline at end of file +] diff --git a/lib/ruby_llm/providers/openrouter.rb b/lib/ruby_llm/providers/openrouter.rb new file mode 100644 index 000000000..2a98c604f --- /dev/null +++ b/lib/ruby_llm/providers/openrouter.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module RubyLLM + module Providers + # OpenRouter API integration. Handles chat completion, function calling, + # and streaming. Supports OpenRouter models. + module OpenRouter + extend Provider + extend OpenRouter::Chat + extend OpenRouter::Models + extend OpenRouter::Streaming + extend OpenRouter::Tools + extend OpenRouter::Media + + def self.extended(base) + base.extend(Provider) + base.extend(OpenRouter::Chat) + base.extend(OpenRouter::Models) + base.extend(OpenRouter::Streaming) + base.extend(OpenRouter::Tools) + base.extend(OpenRouter::Media) + end + + module_function + + def api_base + 'https://openrouter.ai/api/v1' + end + + def headers + { + 'Authorization' => "Bearer #{RubyLLM.config.openrouter_api_key}" + } + end + + def capabilities + OpenRouter::Capabilities + end + + def slug + 'openrouter' + end + end + end +end diff --git a/lib/ruby_llm/providers/openrouter/capabilities.rb b/lib/ruby_llm/providers/openrouter/capabilities.rb new file mode 100644 index 000000000..23f159554 --- /dev/null +++ b/lib/ruby_llm/providers/openrouter/capabilities.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +module RubyLLM + module Providers + module OpenRouter + # Determines capabilities and pricing for OpenRouter models + module Capabilities + CAPABILITIES_BASE_URL = 'https://openrouter.ai/api/v1/models' + + module_function + + # Determines if the model supports function calling + # @param model_id [String] the model identifier + # @return [Boolean] true if the model supports functions + def supports_functions?(model_id) + if @models_with_function_support.nil? + response = client.get('?supported_parameters=tools') + @models_with_function_support = response.body['data'].map { |model| model['id'] } + end + + @models_with_function_support.include?(model_id) + end + + # Determines if the model supports JSON mode + # @param model_id [String] the model identifier + # @return [Boolean] true if the model supports JSON mode + def supports_json_mode?(model_id) + if @models_with_json_mode_support.nil? + response = client.get('?supported_parameters=structured_output') + @models_with_json_mode_support = response.body['data'].map { |model| model['id'] } + end + + @models_with_json_mode_support.include?(model_id) + end + + def client + @client ||= Faraday.new(CAPABILITIES_BASE_URL) do |f| + f.response :json + end + end + end + end + end +end diff --git a/lib/ruby_llm/providers/openrouter/chat.rb b/lib/ruby_llm/providers/openrouter/chat.rb new file mode 100644 index 000000000..a845a7e51 --- /dev/null +++ b/lib/ruby_llm/providers/openrouter/chat.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +module RubyLLM + module Providers + module OpenRouter + # Chat methods of the OpenRouter API integration + module Chat + module_function + + def completion_url + 'chat/completions' + end + + def render_payload(messages, tools:, temperature:, model:, stream: false) # rubocop:disable Metrics/MethodLength + { + model: model, + messages: format_messages(messages), + temperature: temperature, + stream: stream + }.tap do |payload| + if tools.any? + payload[:tools] = tools.map { |_, tool| tool_for(tool) } + payload[:tool_choice] = 'auto' + end + payload[:stream_options] = { include_usage: true } if stream + end + end + + def parse_completion_response(response) # rubocop:disable Metrics/MethodLength + data = response.body + return if data.empty? + + message_data = data.dig('choices', 0, 'message') + return unless message_data + + Message.new( + role: :assistant, + content: message_data['content'], + tool_calls: parse_tool_calls(message_data['tool_calls']), + input_tokens: data['usage']['prompt_tokens'], + output_tokens: data['usage']['completion_tokens'], + model_id: data['model'] + ) + end + + def format_messages(messages) + messages.map do |msg| + { + role: format_role(msg.role), + content: Media.format_content(msg.content), + tool_calls: format_tool_calls(msg.tool_calls), + tool_call_id: msg.tool_call_id + }.compact + end + end + + def format_role(role) + case role + when :system + 'developer' + else + role.to_s + end + end + end + end + end +end diff --git a/lib/ruby_llm/providers/openrouter/media.rb b/lib/ruby_llm/providers/openrouter/media.rb new file mode 100644 index 000000000..907fcd44c --- /dev/null +++ b/lib/ruby_llm/providers/openrouter/media.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +module RubyLLM + module Providers + module OpenRouter + # Handles formatting of media content (images, audio) for OpenRouter APIs + module Media + module_function + + def format_content(content) # rubocop:disable Metrics/MethodLength + return content unless content.is_a?(Array) + + content.map do |part| + case part[:type] + when 'image' + format_image(part) + when 'input_audio' + format_audio(part) + else + part + end + end + end + + def format_image(part) + { + type: 'image_url', + image_url: { + url: format_data_url(part[:source]), + detail: 'auto' + } + } + end + + def format_audio(part) + { + type: 'input_audio', + input_audio: part[:input_audio] + } + end + + def format_data_url(source) + if source[:type] == 'base64' + "data:#{source[:media_type]};base64,#{source[:data]}" + else + source[:url] + end + end + end + end + end +end diff --git a/lib/ruby_llm/providers/openrouter/models.rb b/lib/ruby_llm/providers/openrouter/models.rb new file mode 100644 index 000000000..54031284e --- /dev/null +++ b/lib/ruby_llm/providers/openrouter/models.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module RubyLLM + module Providers + module OpenRouter + # Models methods of the OpenRouter API integration + module Models + module_function + + def models_url + 'models' + end + + def parse_list_models_response(response, slug, capabilities) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength + (response.body['data'] || []).map do |model| + ModelInfo.new( + id: model['id'], + created_at: model['created'] ? Time.at(model['created']) : nil, + display_name: model['name'], + provider: slug, + type: 'chat', + family: model['id'].split('/').first, + metadata: { + tokenizer: model['architecture']['tokenizer'], + instruct_type: model['architecture']['instruct_type'], + moderated: model['top_provider']['is_moderated'] + }, + context_window: model['top_provider']['context_length'], + max_tokens: model['top_provider']['max_completion_tokens'], + supports_vision: model['architecture']['modality'].split('->').first.include?('image'), + supports_functions: capabilities.supports_functions?(model['id']), + supports_json_mode: capabilities.supports_json_mode?(model['id']), + input_price_per_million: model['pricing']['prompt'].to_i * 1_000_000, + output_price_per_million: model['pricing']['completion'].to_i * 1_000_000 + ) + end + end + end + end + end +end diff --git a/lib/ruby_llm/providers/openrouter/streaming.rb b/lib/ruby_llm/providers/openrouter/streaming.rb new file mode 100644 index 000000000..e6a013c67 --- /dev/null +++ b/lib/ruby_llm/providers/openrouter/streaming.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module RubyLLM + module Providers + module OpenRouter + # Streaming methods of the OpenRouter API integration + module Streaming + module_function + + def stream_url + completion_url + end + + def handle_stream(&block) # rubocop:disable Metrics/MethodLength + to_json_stream do |data| + block.call( + Chunk.new( + role: :assistant, + model_id: data['model'], + content: data.dig('choices', 0, 'delta', 'content'), + tool_calls: parse_tool_calls(data.dig('choices', 0, 'delta', 'tool_calls'), parse_arguments: false), + input_tokens: data.dig('usage', 'prompt_tokens'), + output_tokens: data.dig('usage', 'completion_tokens') + ) + ) + end + end + end + end + end +end diff --git a/lib/ruby_llm/providers/openrouter/tools.rb b/lib/ruby_llm/providers/openrouter/tools.rb new file mode 100644 index 000000000..3d134ed3f --- /dev/null +++ b/lib/ruby_llm/providers/openrouter/tools.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +module RubyLLM + module Providers + module OpenRouter + # Tools methods of the OpenRouter API integration + module Tools + module_function + + def tool_for(tool) # rubocop:disable Metrics/MethodLength + { + type: 'function', + function: { + name: tool.name, + description: tool.description, + parameters: { + type: 'object', + properties: tool.parameters.transform_values { |param| param_schema(param) }, + required: tool.parameters.select { |_, p| p.required }.keys + } + } + } + end + + def param_schema(param) + { + type: param.type, + description: param.description + }.compact + end + + def format_tool_calls(tool_calls) # rubocop:disable Metrics/MethodLength + return nil unless tool_calls&.any? + + tool_calls.map do |_, tc| + { + id: tc.id, + type: 'function', + function: { + name: tc.name, + arguments: JSON.generate(tc.arguments) + } + } + end + end + + def parse_tool_calls(tool_calls, parse_arguments: true) # rubocop:disable Metrics/MethodLength + return nil unless tool_calls&.any? + + tool_calls.to_h do |tc| + [ + tc['id'], + ToolCall.new( + id: tc['id'], + name: tc.dig('function', 'name'), + arguments: if parse_arguments + JSON.parse(tc.dig('function', + 'arguments')) + else + tc.dig('function', 'arguments') + end + ) + ] + end + end + end + end + end +end From 63974e1dad9a48f7d21ff589047298771736882d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Hasi=C5=84ski?= Date: Sun, 16 Mar 2025 17:09:01 +0100 Subject: [PATCH 2/7] Add configuration for OpenRouter to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 9b0a34ed2..7c514fd59 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,9 @@ RubyLLM.configure do |config| config.bedrock_secret_key = ENV.fetch('AWS_SECRET_ACCESS_KEY', nil) config.bedrock_region = ENV.fetch('AWS_REGION', nil) config.bedrock_session_token = ENV.fetch('AWS_SESSION_TOKEN', nil) + + # OpenRouter + config.openrouter_api_key = ENV['OPENROUTER_API_KEY'] end ``` From 67541ba15e1292748775f3552eb793fdc2635584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Hasi=C5=84ski?= Date: Mon, 7 Apr 2025 18:12:20 +0200 Subject: [PATCH 3/7] Add OpenRouter configuration requirements --- lib/ruby_llm/providers/openrouter.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ruby_llm/providers/openrouter.rb b/lib/ruby_llm/providers/openrouter.rb index 2a98c604f..10176c9b1 100644 --- a/lib/ruby_llm/providers/openrouter.rb +++ b/lib/ruby_llm/providers/openrouter.rb @@ -40,6 +40,10 @@ def capabilities def slug 'openrouter' end + + def configuration_requirements + %i[openrouter_api_key] + end end end end From 8242c56e7807f00d7069b11ed2e029a89f905262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Hasi=C5=84ski?= Date: Mon, 7 Apr 2025 18:30:26 +0200 Subject: [PATCH 4/7] Add aliases for popular models --- lib/ruby_llm/aliases.json | 56 ++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 10 deletions(-) diff --git a/lib/ruby_llm/aliases.json b/lib/ruby_llm/aliases.json index b6281eb85..90f41f957 100644 --- a/lib/ruby_llm/aliases.json +++ b/lib/ruby_llm/aliases.json @@ -1,38 +1,74 @@ { "claude-3-5-sonnet": { "anthropic": "claude-3-5-sonnet-20241022", - "bedrock": "anthropic.claude-3-5-sonnet-20241022-v2:0" + "bedrock": "anthropic.claude-3-5-sonnet-20241022-v2:0", + "openrouter": "anthropic/claude-3.5-sonnet" }, "claude-3-5-haiku": { "anthropic": "claude-3-5-haiku-20241022", - "bedrock": "anthropic.claude-3-5-haiku-20241022-v1:0" + "bedrock": "anthropic.claude-3-5-haiku-20241022-v1:0", + "openrouter": "anthropic/claude-3.5-haiku-20241022" }, "claude-3-7-sonnet": { "anthropic": "claude-3-7-sonnet-20250219", - "bedrock": "us.anthropic.claude-3-7-sonnet-20250219-v1:0" + "bedrock": "us.anthropic.claude-3-7-sonnet-20250219-v1:0", + "openrouter": "us.anthropic.claude-3-7-sonnet-20250219-v1:0" }, "claude-3-opus": { "anthropic": "claude-3-opus-20240229", - "bedrock": "anthropic.claude-3-opus-20240229-v1:0" + "bedrock": "anthropic.claude-3-opus-20240229-v1:0", + "openrouter": "" }, "claude-3-sonnet": { "anthropic": "claude-3-sonnet-20240229", - "bedrock": "anthropic.claude-3-sonnet-20240229-v1:0" + "bedrock": "anthropic.claude-3-sonnet-20240229-v1:0", + "openrouter": "" }, "claude-3-haiku": { "anthropic": "claude-3-haiku-20240307", - "bedrock": "anthropic.claude-3-haiku-20240307-v1:0" + "bedrock": "anthropic.claude-3-haiku-20240307-v1:0", + "openrouter": "" }, "claude-3": { "anthropic": "claude-3-sonnet-20240229", - "bedrock": "anthropic.claude-3-sonnet-20240229-v1:0" + "bedrock": "anthropic.claude-3-sonnet-20240229-v1:0", + "openrouter": "anthropic/claude-3-sonnet" }, "claude-2": { "anthropic": "claude-2.0", - "bedrock": "anthropic.claude-2.0" + "bedrock": "anthropic.claude-2.0", + "openrouter": "anthropic/claude-2" }, "claude-2-1": { "anthropic": "claude-2.1", - "bedrock": "anthropic.claude-2.1" + "bedrock": "anthropic.claude-2.1", + "openrouter": "anthropic/claude-2.1" + }, + "gpt-4o": { + "openrouter": "openai/gpt-4o" + }, + "gpt-4o-mini": { + "openrouter": "openai/gpt-4o-mini" + }, + "gpt-4-turbo": { + "openrouter": "openai/gpt-4-turbo" + }, + "gemini-1.5-flash": { + "openrouter": "google/gemini-flash-1.5" + }, + "gemini-1.5-flash-8b": { + "openrouter": "google/gemini-flash-1.5-8b" + }, + "gemini-1.5-pro": { + "openrouter": "google/gemini-pro-1.5" + }, + "gemini-2.0-flash": { + "openrouter": "google/gemini-2.0-flash-001" + }, + "o1": { + "openrouter": "openai/o1" + }, + "o3-mini": { + "openrouter": "openai/o3-mini" } -} \ No newline at end of file +} From 7814f2dd7c7d16736b4f0d57fa23698263a41afd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Hasi=C5=84ski?= Date: Mon, 7 Apr 2025 18:41:56 +0200 Subject: [PATCH 5/7] Add updating openrouter, refresh models --- lib/ruby_llm/models.json | 10520 ++++++++++++++++++----------------- lib/tasks/model_updater.rb | 1 + 2 files changed, 5541 insertions(+), 4980 deletions(-) diff --git a/lib/ruby_llm/models.json b/lib/ruby_llm/models.json index 833f77131..1c5832d93 100644 --- a/lib/ruby_llm/models.json +++ b/lib/ruby_llm/models.json @@ -1,477 +1,443 @@ [ { - "id": "anthropic.claude-3-5-haiku-20241022-v1:0", - "created_at": null, - "display_name": "Claude 3.5 Haiku", - "provider": "bedrock", - "context_window": 200000, + "id": "01-ai/yi-large", + "created_at": "2024-06-25T09:00:00+09:00", + "display_name": "01.AI: Yi Large", + "provider": "openrouter", + "context_window": 32768, "max_tokens": 4096, "type": "chat", - "family": "claude3_5_haiku", - "supports_vision": true, - "supports_functions": true, + "family": "01-ai", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.8, - "output_price_per_million": 4.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "ON_DEMAND" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Yi", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20240620-v1:0", - "created_at": null, - "display_name": "Claude 3.5 Sonnet", - "provider": "bedrock", - "context_window": 200000, + "id": "aetherwiing/mn-starcannon-12b", + "created_at": "2024-08-13T09:00:00+09:00", + "display_name": "Aetherwiing: Starcannon 12B", + "provider": "openrouter", + "context_window": 16384, "max_tokens": 4096, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, - "supports_functions": true, + "family": "aetherwiing", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "ON_DEMAND", - "INFERENCE_PROFILE" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20240620-v1:0:18k", - "created_at": null, - "display_name": "Claude 3.5 Sonnet", - "provider": "bedrock", - "context_window": 200000, - "max_tokens": 4096, + "id": "agentica-org/deepcoder-14b-preview:free", + "created_at": "2025-04-13T23:43:15+09:00", + "display_name": "Agentica: Deepcoder 14B Preview (free)", + "provider": "openrouter", + "context_window": 96000, + "max_tokens": null, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, - "supports_functions": true, + "family": "agentica-org", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20240620-v1:0:200k", - "created_at": null, - "display_name": "Claude 3.5 Sonnet", - "provider": "bedrock", - "context_window": 200000, + "id": "ai21/jamba-1-5-large", + "created_at": "2024-08-23T09:00:00+09:00", + "display_name": "AI21: Jamba 1.5 Large", + "provider": "openrouter", + "context_window": 256000, "max_tokens": 4096, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, + "family": "ai21", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20240620-v1:0:51k", - "created_at": null, - "display_name": "Claude 3.5 Sonnet", - "provider": "bedrock", - "context_window": 200000, + "id": "ai21/jamba-1-5-mini", + "created_at": "2024-08-23T09:00:00+09:00", + "display_name": "AI21: Jamba 1.5 Mini", + "provider": "openrouter", + "context_window": 256000, "max_tokens": 4096, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, + "family": "ai21", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20241022-v2:0", - "created_at": null, - "display_name": "Claude 3.5 Sonnet v2", - "provider": "bedrock", - "context_window": 200000, + "id": "ai21/jamba-1.6-large", + "created_at": "2025-03-14T07:32:53+09:00", + "display_name": "AI21: Jamba 1.6 Large", + "provider": "openrouter", + "context_window": 256000, "max_tokens": 4096, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, + "family": "ai21", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "ON_DEMAND" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20241022-v2:0:18k", - "created_at": null, - "display_name": "Claude 3.5 Sonnet v2", - "provider": "bedrock", - "context_window": 200000, + "id": "ai21/jamba-1.6-mini", + "created_at": "2025-03-14T07:32:51+09:00", + "display_name": "AI21: Jamba Mini 1.6", + "provider": "openrouter", + "context_window": 256000, "max_tokens": 4096, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, + "family": "ai21", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20241022-v2:0:200k", - "created_at": null, - "display_name": "Claude 3.5 Sonnet v2", - "provider": "bedrock", - "context_window": 200000, + "id": "ai21/jamba-instruct", + "created_at": "2024-06-25T09:00:00+09:00", + "display_name": "AI21: Jamba Instruct", + "provider": "openrouter", + "context_window": 256000, "max_tokens": 4096, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, - "supports_functions": true, + "family": "ai21", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-5-sonnet-20241022-v2:0:51k", - "created_at": null, - "display_name": "Claude 3.5 Sonnet v2", - "provider": "bedrock", - "context_window": 200000, - "max_tokens": 4096, + "id": "aion-labs/aion-1.0", + "created_at": "2025-02-05T04:32:37+09:00", + "display_name": "AionLabs: Aion-1.0", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 32768, "type": "chat", - "family": "claude3_sonnet", - "supports_vision": true, - "supports_functions": true, + "family": "aion-labs", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-haiku-20240307-v1:0", - "created_at": null, - "display_name": "Claude 3 Haiku", - "provider": "bedrock", - "context_window": 200000, - "max_tokens": 4096, + "id": "aion-labs/aion-1.0-mini", + "created_at": "2025-02-05T04:25:07+09:00", + "display_name": "AionLabs: Aion-1.0-Mini", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 32768, "type": "chat", - "family": "claude3_haiku", - "supports_vision": true, - "supports_functions": true, + "family": "aion-labs", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.25, - "output_price_per_million": 1.25, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "ON_DEMAND" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-haiku-20240307-v1:0:200k", - "created_at": null, - "display_name": "Claude 3 Haiku", - "provider": "bedrock", - "context_window": 200000, - "max_tokens": 4096, + "id": "aion-labs/aion-rp-llama-3.1-8b", + "created_at": "2025-02-05T04:18:38+09:00", + "display_name": "AionLabs: Aion-RP 1.0 (8B)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 32768, "type": "chat", - "family": "claude3_haiku", - "supports_vision": true, - "supports_functions": true, + "family": "aion-labs", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.25, - "output_price_per_million": 1.25, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [ - "FINE_TUNING", - "DISTILLATION" - ], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-haiku-20240307-v1:0:48k", - "created_at": null, - "display_name": "Claude 3 Haiku", - "provider": "bedrock", - "context_window": 200000, + "id": "alfredpros/codellama-7b-instruct-solidity", + "created_at": "2025-04-14T23:44:34+09:00", + "display_name": "AlfredPros: CodeLLaMa 7B Instruct Solidity", + "provider": "openrouter", + "context_window": 4096, "max_tokens": 4096, "type": "chat", - "family": "claude3_haiku", - "supports_vision": true, - "supports_functions": true, + "family": "alfredpros", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.25, - "output_price_per_million": 1.25, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-opus-20240229-v1:0", - "created_at": null, - "display_name": "Claude 3 Opus", - "provider": "bedrock", - "context_window": 200000, + "id": "all-hands/openhands-lm-32b-v0.1", + "created_at": "2025-04-03T01:56:53+09:00", + "display_name": "OpenHands LM 32B V0.1", + "provider": "openrouter", + "context_window": 16384, "max_tokens": 4096, "type": "chat", - "family": "claude3_opus", - "supports_vision": true, + "family": "all-hands", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 75.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "ON_DEMAND" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-opus-20240229-v1:0:12k", - "created_at": null, - "display_name": "Claude 3 Opus", - "provider": "bedrock", - "context_window": 200000, - "max_tokens": 4096, + "id": "allenai/molmo-7b-d:free", + "created_at": "2025-03-27T06:07:27+09:00", + "display_name": "AllenAI: Molmo 7B D (free)", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": null, "type": "chat", - "family": "claude3_opus", + "family": "allenai", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 75.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "anthropic.claude-3-opus-20240229-v1:0:200k", - "created_at": null, - "display_name": "Claude 3 Opus", - "provider": "bedrock", - "context_window": 200000, - "max_tokens": 4096, + "id": "alpindale/goliath-120b", + "created_at": "2023-11-10T09:00:00+09:00", + "display_name": "Goliath 120B", + "provider": "openrouter", + "context_window": 6144, + "max_tokens": 512, "type": "chat", - "family": "claude3_opus", - "supports_vision": true, - "supports_functions": true, + "family": "alpindale", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 75.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "PROVISIONED" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Llama2", + "instruct_type": "airoboros", + "moderated": false } }, { - "id": "anthropic.claude-3-opus-20240229-v1:0:28k", + "id": "alpindale/magnum-72b", + "created_at": "2024-07-11T09:00:00+09:00", + "display_name": "Magnum 72B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 1024, + "type": "chat", + "family": "alpindale", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "amazon/nova-lite-v1", + "created_at": "2024-12-06T07:22:43+09:00", + "display_name": "Amazon: Nova Lite 1.0", + "provider": "openrouter", + "context_window": 300000, + "max_tokens": 5120, + "type": "chat", + "family": "amazon", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Nova", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "amazon/nova-micro-v1", + "created_at": "2024-12-06T07:20:37+09:00", + "display_name": "Amazon: Nova Micro 1.0", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 5120, + "type": "chat", + "family": "amazon", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Nova", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "amazon/nova-pro-v1", + "created_at": "2024-12-06T07:05:03+09:00", + "display_name": "Amazon: Nova Pro 1.0", + "provider": "openrouter", + "context_window": 300000, + "max_tokens": 5120, + "type": "chat", + "family": "amazon", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Nova", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "anthracite-org/magnum-v2-72b", + "created_at": "2024-09-30T09:00:00+09:00", + "display_name": "Magnum v2 72B", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, + "type": "chat", + "family": "anthracite-org", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "anthracite-org/magnum-v4-72b", + "created_at": "2024-10-22T09:00:00+09:00", + "display_name": "Magnum v4 72B", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 1024, + "type": "chat", + "family": "anthracite-org", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false + } + }, + { + "id": "anthropic.claude-3-5-haiku-20241022-v1:0", "created_at": null, - "display_name": "Claude 3 Opus", + "display_name": "Claude 3.5 Haiku", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude3_opus", + "family": "claude3_5_haiku", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 75.0, + "input_price_per_million": 0.8, + "output_price_per_million": 4.0, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], "inference_configurations": [ - "PROVISIONED" + "ON_DEMAND" ], "response_streaming_supported": true, "input_modalities": [ @@ -484,9 +450,9 @@ } }, { - "id": "anthropic.claude-3-sonnet-20240229-v1:0", + "id": "anthropic.claude-3-5-sonnet-20240620-v1:0", "created_at": null, - "display_name": "Claude 3 Sonnet", + "display_name": "Claude 3.5 Sonnet", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, @@ -501,7 +467,8 @@ "provider_name": "Anthropic", "customizations_supported": [], "inference_configurations": [ - "ON_DEMAND" + "ON_DEMAND", + "INFERENCE_PROFILE" ], "response_streaming_supported": true, "input_modalities": [ @@ -514,9 +481,9 @@ } }, { - "id": "anthropic.claude-3-sonnet-20240229-v1:0:200k", + "id": "anthropic.claude-3-5-sonnet-20240620-v1:0:18k", "created_at": null, - "display_name": "Claude 3 Sonnet", + "display_name": "Claude 3.5 Sonnet", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, @@ -544,9 +511,9 @@ } }, { - "id": "anthropic.claude-3-sonnet-20240229-v1:0:28k", + "id": "anthropic.claude-3-5-sonnet-20240620-v1:0:200k", "created_at": null, - "display_name": "Claude 3 Sonnet", + "display_name": "Claude 3.5 Sonnet", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, @@ -574,28 +541,29 @@ } }, { - "id": "anthropic.claude-instant-v1", + "id": "anthropic.claude-3-5-sonnet-20240620-v1:0:51k", "created_at": null, - "display_name": "Claude Instant", + "display_name": "Claude 3.5 Sonnet", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude_instant", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.8, - "output_price_per_million": 2.4, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], "inference_configurations": [ - "ON_DEMAND" + "PROVISIONED" ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -603,28 +571,29 @@ } }, { - "id": "anthropic.claude-instant-v1:2:100k", + "id": "anthropic.claude-3-5-sonnet-20241022-v2:0", "created_at": null, - "display_name": "Claude Instant", + "display_name": "Claude 3.5 Sonnet v2", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude_instant", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.8, - "output_price_per_million": 2.4, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], "inference_configurations": [ - "PROVISIONED" + "ON_DEMAND" ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -632,28 +601,29 @@ } }, { - "id": "anthropic.claude-v2", + "id": "anthropic.claude-3-5-sonnet-20241022-v2:0:18k", "created_at": null, - "display_name": "Claude", + "display_name": "Claude 3.5 Sonnet v2", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 8.0, - "output_price_per_million": 24.0, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], "inference_configurations": [ - "ON_DEMAND" + "PROVISIONED" ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -661,19 +631,19 @@ } }, { - "id": "anthropic.claude-v2:0:100k", + "id": "anthropic.claude-3-5-sonnet-20241022-v2:0:200k", "created_at": null, - "display_name": "Claude", + "display_name": "Claude 3.5 Sonnet v2", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 8.0, - "output_price_per_million": 24.0, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], @@ -682,7 +652,8 @@ ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -690,19 +661,19 @@ } }, { - "id": "anthropic.claude-v2:0:18k", + "id": "anthropic.claude-3-5-sonnet-20241022-v2:0:51k", "created_at": null, - "display_name": "Claude", + "display_name": "Claude 3.5 Sonnet v2", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 8.0, - "output_price_per_million": 24.0, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], @@ -711,7 +682,8 @@ ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -719,19 +691,19 @@ } }, { - "id": "anthropic.claude-v2:1", + "id": "anthropic.claude-3-haiku-20240307-v1:0", "created_at": null, - "display_name": "Claude", + "display_name": "Claude 3 Haiku", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", + "family": "claude3_haiku", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 8.0, - "output_price_per_million": 24.0, + "input_price_per_million": 0.25, + "output_price_per_million": 1.25, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], @@ -740,7 +712,8 @@ ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -748,28 +721,32 @@ } }, { - "id": "anthropic.claude-v2:1:18k", + "id": "anthropic.claude-3-haiku-20240307-v1:0:200k", "created_at": null, - "display_name": "Claude", + "display_name": "Claude 3 Haiku", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", + "family": "claude3_haiku", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 8.0, - "output_price_per_million": 24.0, + "input_price_per_million": 0.25, + "output_price_per_million": 1.25, "metadata": { "provider_name": "Anthropic", - "customizations_supported": [], + "customizations_supported": [ + "FINE_TUNING", + "DISTILLATION" + ], "inference_configurations": [ "PROVISIONED" ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -777,19 +754,19 @@ } }, { - "id": "anthropic.claude-v2:1:200k", + "id": "anthropic.claude-3-haiku-20240307-v1:0:48k", "created_at": null, - "display_name": "Claude", + "display_name": "Claude 3 Haiku", "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", + "family": "claude3_haiku", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 8.0, - "output_price_per_million": 24.0, + "input_price_per_million": 0.25, + "output_price_per_million": 1.25, "metadata": { "provider_name": "Anthropic", "customizations_supported": [], @@ -798,7 +775,8 @@ ], "response_streaming_supported": true, "input_modalities": [ - "TEXT" + "TEXT", + "IMAGE" ], "output_modalities": [ "TEXT" @@ -806,1514 +784,1447 @@ } }, { - "id": "aqa", + "id": "anthropic.claude-3-opus-20240229-v1:0", "created_at": null, - "display_name": "Model that performs Attributed Question Answering.", - "provider": "gemini", - "context_window": 7168, - "max_tokens": 1024, + "display_name": "Claude 3 Opus", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "aqa", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.0, - "output_price_per_million": 0.0, + "family": "claude3_opus", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 15.0, + "output_price_per_million": 75.0, "metadata": { - "version": "001", - "description": "Model trained to return answers to questions that are grounded in provided sources, along with estimating answerable probability.", - "input_token_limit": 7168, - "output_token_limit": 1024, - "supported_generation_methods": [ - "generateAnswer" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "ON_DEMAND" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" ] } }, { - "id": "babbage-002", - "created_at": "2023-08-21T18:16:55+02:00", - "display_name": "Babbage 002", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, + "id": "anthropic.claude-3-opus-20240229-v1:0:12k", + "created_at": null, + "display_name": "Claude 3 Opus", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "babbage", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.4, - "output_price_per_million": 0.4, + "family": "claude3_opus", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 15.0, + "output_price_per_million": 75.0, "metadata": { - "object": "model", - "owned_by": "system" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" + ] } }, { - "id": "chat-bison-001", + "id": "anthropic.claude-3-opus-20240229-v1:0:200k", "created_at": null, - "display_name": "PaLM 2 Chat (Legacy)", - "provider": "gemini", - "context_window": 4096, - "max_tokens": 1024, + "display_name": "Claude 3 Opus", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "other", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "family": "claude3_opus", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 15.0, + "output_price_per_million": 75.0, "metadata": { - "version": "001", - "description": "A legacy text-only model optimized for chat conversations", - "input_token_limit": 4096, - "output_token_limit": 1024, - "supported_generation_methods": [ - "generateMessage", - "countMessageTokens" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" ] } }, { - "id": "chatgpt-4o-latest", - "created_at": "2024-08-13T04:12:11+02:00", - "display_name": "ChatGPT-4o Latest", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "anthropic.claude-3-opus-20240229-v1:0:28k", + "created_at": null, + "display_name": "Claude 3 Opus", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "chatgpt4o", + "family": "claude3_opus", "supports_vision": true, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 5.0, - "output_price_per_million": 15.0, + "input_price_per_million": 15.0, + "output_price_per_million": 75.0, "metadata": { - "object": "model", - "owned_by": "system" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" + ] } }, { - "id": "claude-2.0", - "created_at": "2023-07-11T00:00:00Z", - "display_name": "Claude 2.0", - "provider": "anthropic", + "id": "anthropic.claude-3-sonnet-20240229-v1:0", + "created_at": null, + "display_name": "Claude 3 Sonnet", + "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, + "family": "claude3_sonnet", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, "input_price_per_million": 3.0, "output_price_per_million": 15.0, - "metadata": {} + "metadata": { + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "ON_DEMAND" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" + ] + } }, { - "id": "claude-2.1", - "created_at": "2023-11-21T00:00:00Z", - "display_name": "Claude 2.1", - "provider": "anthropic", + "id": "anthropic.claude-3-sonnet-20240229-v1:0:200k", + "created_at": null, + "display_name": "Claude 3 Sonnet", + "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude2", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, - "metadata": {} - }, - { - "id": "claude-3-5-haiku-20241022", - "created_at": "2024-10-22T00:00:00Z", - "display_name": "Claude 3.5 Haiku", - "provider": "anthropic", - "context_window": 200000, - "max_tokens": 8192, - "type": "chat", - "family": "claude35_haiku", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.8, - "output_price_per_million": 4.0, - "metadata": {} + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, + "metadata": { + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" + ] + } }, { - "id": "claude-3-5-sonnet-20240620", - "created_at": "2024-06-20T00:00:00Z", - "display_name": "Claude 3.5 Sonnet (Old)", - "provider": "anthropic", + "id": "anthropic.claude-3-sonnet-20240229-v1:0:28k", + "created_at": null, + "display_name": "Claude 3 Sonnet", + "provider": "bedrock", "context_window": 200000, - "max_tokens": 8192, + "max_tokens": 4096, "type": "chat", - "family": "claude35_sonnet", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 3.0, "output_price_per_million": 15.0, - "metadata": {} - }, - { - "id": "claude-3-5-sonnet-20241022", - "created_at": "2024-10-22T00:00:00Z", - "display_name": "Claude 3.5 Sonnet (New)", - "provider": "anthropic", + "metadata": { + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" + ] + } + }, + { + "id": "anthropic.claude-instant-v1", + "created_at": null, + "display_name": "Claude Instant", + "provider": "bedrock", "context_window": 200000, - "max_tokens": 8192, + "max_tokens": 4096, "type": "chat", - "family": "claude35_sonnet", + "family": "claude_instant", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, - "metadata": {} + "input_price_per_million": 0.8, + "output_price_per_million": 2.4, + "metadata": { + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "ON_DEMAND" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] + } }, { - "id": "claude-3-7-sonnet-20250219", - "created_at": "2025-02-24T00:00:00Z", - "display_name": "Claude 3.7 Sonnet", - "provider": "anthropic", + "id": "anthropic.claude-instant-v1:2:100k", + "created_at": null, + "display_name": "Claude Instant", + "provider": "bedrock", "context_window": 200000, - "max_tokens": 8192, + "max_tokens": 4096, "type": "chat", - "family": "claude37_sonnet", + "family": "claude_instant", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, - "metadata": {} + "input_price_per_million": 0.8, + "output_price_per_million": 2.4, + "metadata": { + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] + } }, { - "id": "claude-3-haiku-20240307", - "created_at": "2024-03-07T00:00:00Z", - "display_name": "Claude 3 Haiku", - "provider": "anthropic", + "id": "anthropic.claude-v2", + "created_at": null, + "display_name": "Claude", + "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude3_haiku", + "family": "claude2", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.25, - "output_price_per_million": 1.25, - "metadata": {} + "input_price_per_million": 8.0, + "output_price_per_million": 24.0, + "metadata": { + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "ON_DEMAND" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] + } }, { - "id": "claude-3-opus-20240229", - "created_at": "2024-02-29T00:00:00Z", - "display_name": "Claude 3 Opus", - "provider": "anthropic", + "id": "anthropic.claude-v2:0:100k", + "created_at": null, + "display_name": "Claude", + "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude3_opus", + "family": "claude2", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 75.0, - "metadata": {} + "input_price_per_million": 8.0, + "output_price_per_million": 24.0, + "metadata": { + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] + } }, { - "id": "claude-3-sonnet-20240229", - "created_at": "2024-02-29T00:00:00Z", - "display_name": "Claude 3 Sonnet", - "provider": "anthropic", + "id": "anthropic.claude-v2:0:18k", + "created_at": null, + "display_name": "Claude", + "provider": "bedrock", "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "claude3_sonnet", + "family": "claude2", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, - "metadata": {} - }, - { - "id": "dall-e-2", - "created_at": "2023-11-01T01:22:57+01:00", - "display_name": "DALL-E-2", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, - "type": "image", - "family": "dall_e", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, - "metadata": { - "object": "model", - "owned_by": "system" - } - }, - { - "id": "dall-e-3", - "created_at": "2023-10-31T21:46:29+01:00", - "display_name": "DALL-E-3", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, - "type": "image", - "family": "dall_e", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "input_price_per_million": 8.0, + "output_price_per_million": 24.0, "metadata": { - "object": "model", - "owned_by": "system" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] } }, { - "id": "davinci-002", - "created_at": "2023-08-21T18:11:41+02:00", - "display_name": "Davinci 002", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, + "id": "anthropic.claude-v2:1", + "created_at": null, + "display_name": "Claude", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "davinci", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 2.0, - "output_price_per_million": 2.0, + "family": "claude2", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 8.0, + "output_price_per_million": 24.0, "metadata": { - "object": "model", - "owned_by": "system" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "ON_DEMAND" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] } }, { - "id": "deepseek-chat", + "id": "anthropic.claude-v2:1:18k", "created_at": null, - "display_name": "DeepSeek V3", - "provider": "deepseek", - "context_window": 64000, - "max_tokens": 8192, + "display_name": "Claude", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "chat", - "supports_vision": false, + "family": "claude2", + "supports_vision": true, "supports_functions": true, - "supports_json_mode": false, - "input_price_per_million": 0.27, - "output_price_per_million": 1.1, + "supports_json_mode": true, + "input_price_per_million": 8.0, + "output_price_per_million": 24.0, "metadata": { - "object": "model", - "owned_by": "deepseek" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] } }, { - "id": "deepseek-reasoner", + "id": "anthropic.claude-v2:1:200k", "created_at": null, - "display_name": "DeepSeek R1", - "provider": "deepseek", - "context_window": 64000, - "max_tokens": 8192, + "display_name": "Claude", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "reasoner", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.55, - "output_price_per_million": 2.19, + "family": "claude2", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 8.0, + "output_price_per_million": 24.0, "metadata": { - "object": "model", - "owned_by": "deepseek" + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "PROVISIONED" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT" + ], + "output_modalities": [ + "TEXT" + ] } }, { - "id": "embedding-001", - "created_at": null, - "display_name": "Embedding 001", - "provider": "gemini", - "context_window": 2048, - "max_tokens": 1, - "type": "embedding", - "family": "embedding1", + "id": "anthropic/claude-2", + "created_at": "2023-11-22T09:00:00+09:00", + "display_name": "Anthropic: Claude v2", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.0, - "output_price_per_million": 0.0, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Obtain a distributed representation of a text.", - "input_token_limit": 2048, - "output_token_limit": 1, - "supported_generation_methods": [ - "embedContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "embedding-gecko-001", - "created_at": null, - "display_name": "Embedding Gecko", - "provider": "gemini", - "context_window": 1024, - "max_tokens": 1, - "type": "embedding", - "family": "other", + "id": "anthropic/claude-2.0", + "created_at": "2023-07-28T09:00:00+09:00", + "display_name": "Anthropic: Claude v2.0", + "provider": "openrouter", + "context_window": 100000, + "max_tokens": 4096, + "type": "chat", + "family": "anthropic", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.0, - "output_price_per_million": 0.0, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Obtain a distributed representation of a text.", - "input_token_limit": 1024, - "output_token_limit": 1, - "supported_generation_methods": [ - "embedText", - "countTextTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-1.0-pro-vision-latest", - "created_at": null, - "display_name": "Gemini 1.0 Pro Vision", - "provider": "gemini", - "context_window": 12288, + "id": "anthropic/claude-2.0:beta", + "created_at": "2023-07-28T09:00:00+09:00", + "display_name": "Anthropic: Claude v2.0 (self-moderated)", + "provider": "openrouter", + "context_window": 100000, "max_tokens": 4096, "type": "chat", - "family": "other", - "supports_vision": true, - "supports_functions": true, + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "The original Gemini 1.0 Pro Vision model version which was optimized for image understanding. Gemini 1.0 Pro Vision was deprecated on July 12, 2024. Move to a newer Gemini version.", - "input_token_limit": 12288, - "output_token_limit": 4096, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-flash", - "created_at": null, - "display_name": "Gemini 1.5 Flash", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-2.1", + "created_at": "2023-11-22T09:00:00+09:00", + "display_name": "Anthropic: Claude v2.1", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash", - "supports_vision": true, - "supports_functions": true, + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Alias that points to the most recent stable version of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks.", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-1.5-flash-001", - "created_at": null, - "display_name": "Gemini 1.5 Flash 001", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-2.1:beta", + "created_at": "2023-11-22T09:00:00+09:00", + "display_name": "Anthropic: Claude v2.1 (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash", - "supports_vision": true, - "supports_functions": true, + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Stable version of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in May of 2024.", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-flash-001-tuning", - "created_at": null, - "display_name": "Gemini 1.5 Flash 001 Tuning", - "provider": "gemini", - "context_window": 16384, - "max_tokens": 8192, + "id": "anthropic/claude-2:beta", + "created_at": "2023-11-22T09:00:00+09:00", + "display_name": "Anthropic: Claude v2 (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash", - "supports_vision": true, - "supports_functions": true, + "family": "anthropic", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Version of Gemini 1.5 Flash that supports tuning, our fast and versatile multimodal model for scaling across diverse tasks, released in May of 2024.", - "input_token_limit": 16384, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createTunedModel" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-flash-002", - "created_at": null, - "display_name": "Gemini 1.5 Flash 002", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-3-haiku", + "created_at": "2024-03-13T09:00:00+09:00", + "display_name": "Anthropic: Claude 3 Haiku", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "002", - "description": "Stable version of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in September of 2024.", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-1.5-flash-8b", - "created_at": null, - "display_name": "Gemini 1.5 Flash-8B", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-3-haiku:beta", + "created_at": "2024-03-13T09:00:00+09:00", + "display_name": "Anthropic: Claude 3 Haiku (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash_8b", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Stable version of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model, released in October of 2024.", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "createCachedContent", - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-flash-8b-001", - "created_at": null, - "display_name": "Gemini 1.5 Flash-8B 001", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-3-opus", + "created_at": "2024-03-05T09:00:00+09:00", + "display_name": "Anthropic: Claude 3 Opus", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash_8b", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Stable version of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model, released in October of 2024.", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "createCachedContent", - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-1.5-flash-8b-exp-0827", - "created_at": null, - "display_name": "Gemini 1.5 Flash 8B Experimental 0827", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-3-opus:beta", + "created_at": "2024-03-05T09:00:00+09:00", + "display_name": "Anthropic: Claude 3 Opus (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash_8b", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Experimental release (August 27th, 2024) of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model. Replaced by Gemini-1.5-flash-8b-001 (stable).", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-flash-8b-exp-0924", - "created_at": null, - "display_name": "Gemini 1.5 Flash 8B Experimental 0924", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-3-sonnet", + "created_at": "2024-03-05T09:00:00+09:00", + "display_name": "Anthropic: Claude 3 Sonnet", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash_8b", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Experimental release (September 24th, 2024) of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model. Replaced by Gemini-1.5-flash-8b-001 (stable).", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-1.5-flash-8b-latest", - "created_at": null, - "display_name": "Gemini 1.5 Flash-8B Latest", - "provider": "gemini", - "context_window": 1000000, - "max_tokens": 8192, + "id": "anthropic/claude-3-sonnet:beta", + "created_at": "2024-03-05T09:00:00+09:00", + "display_name": "Anthropic: Claude 3 Sonnet (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "gemini15_flash_8b", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Alias that points to the most recent production (non-experimental) release of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model, released in October of 2024.", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "createCachedContent", - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-flash-latest", - "created_at": null, - "display_name": "Gemini 1.5 Flash Latest", - "provider": "gemini", - "context_window": 1000000, + "id": "anthropic/claude-3.5-haiku", + "created_at": "2024-11-04T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Haiku", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini15_flash", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Alias that points to the most recent production (non-experimental) release of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks.", - "input_token_limit": 1000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-1.5-pro", - "created_at": null, - "display_name": "Gemini 1.5 Pro", - "provider": "gemini", - "context_window": 2000000, + "id": "anthropic/claude-3.5-haiku-20241022", + "created_at": "2024-11-04T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini15_pro", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens, released in May of 2024.", - "input_token_limit": 2000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-1.5-pro-001", - "created_at": null, - "display_name": "Gemini 1.5 Pro 001", - "provider": "gemini", - "context_window": 2000000, + "id": "anthropic/claude-3.5-haiku-20241022:beta", + "created_at": "2024-11-04T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22) (self-moderated)", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini15_pro", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens, released in May of 2024.", - "input_token_limit": 2000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-pro-002", - "created_at": null, - "display_name": "Gemini 1.5 Pro 002", - "provider": "gemini", - "context_window": 2000000, + "id": "anthropic/claude-3.5-haiku:beta", + "created_at": "2024-11-04T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Haiku (self-moderated)", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini15_pro", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "002", - "description": "Stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens, released in September of 2024.", - "input_token_limit": 2000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-1.5-pro-latest", - "created_at": null, - "display_name": "Gemini 1.5 Pro Latest", - "provider": "gemini", - "context_window": 2000000, + "id": "anthropic/claude-3.5-sonnet", + "created_at": "2024-10-22T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Sonnet", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini15_pro", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": "Alias that points to the most recent production (non-experimental) release of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens.", - "input_token_limit": 2000000, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-2.0-flash", - "created_at": null, - "display_name": "Gemini 2.0 Flash", - "provider": "gemini", - "context_window": 1048576, + "id": "anthropic/claude-3.5-sonnet-20240620", + "created_at": "2024-06-20T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Sonnet (2024-06-20)", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini20_flash", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0", - "description": "Gemini 2.0 Flash", - "input_token_limit": 1048576, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": true } }, { - "id": "gemini-2.0-flash-001", - "created_at": null, - "display_name": "Gemini 2.0 Flash 001", - "provider": "gemini", - "context_window": 1048576, + "id": "anthropic/claude-3.5-sonnet-20240620:beta", + "created_at": "2024-06-20T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Sonnet (2024-06-20) (self-moderated)", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini20_flash", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0", - "description": "Stable version of Gemini 2.0 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in January of 2025.", - "input_token_limit": 1048576, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-2.0-flash-exp", - "created_at": null, - "display_name": "Gemini 2.0 Flash Experimental", - "provider": "gemini", - "context_window": 1048576, + "id": "anthropic/claude-3.5-sonnet:beta", + "created_at": "2024-10-22T09:00:00+09:00", + "display_name": "Anthropic: Claude 3.5 Sonnet (self-moderated)", + "provider": "openrouter", + "context_window": 200000, "max_tokens": 8192, "type": "chat", - "family": "gemini20_flash", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0", - "description": "Gemini 2.0 Flash Experimental", - "input_token_limit": 1048576, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "bidiGenerateContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-2.0-flash-exp-image-generation", - "created_at": null, - "display_name": "Gemini 2.0 Flash (Image Generation) Experimental", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 8192, + "id": "anthropic/claude-3.7-sonnet", + "created_at": "2025-02-25T03:35:10+09:00", + "display_name": "Anthropic: Claude 3.7 Sonnet", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 64000, "type": "chat", - "family": "gemini20_flash", + "family": "anthropic", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0", - "description": "Gemini 2.0 Flash (Image Generation) Experimental", - "input_token_limit": 1048576, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "bidiGenerateContent" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-2.0-flash-lite", - "created_at": null, - "display_name": "Gemini 2.0 Flash-Lite", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 8192, + "id": "anthropic/claude-3.7-sonnet:beta", + "created_at": "2025-02-25T03:35:10+09:00", + "display_name": "Anthropic: Claude 3.7 Sonnet (self-moderated)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 128000, "type": "chat", - "family": "gemini20_flash_lite", + "family": "anthropic", "supports_vision": true, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0", - "description": "Gemini 2.0 Flash-Lite", - "input_token_limit": 1048576, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-2.0-flash-lite-001", - "created_at": null, - "display_name": "Gemini 2.0 Flash-Lite 001", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 8192, + "id": "anthropic/claude-3.7-sonnet:thinking", + "created_at": "2025-02-25T03:35:10+09:00", + "display_name": "Anthropic: Claude 3.7 Sonnet (thinking)", + "provider": "openrouter", + "context_window": 200000, + "max_tokens": 64000, "type": "chat", - "family": "gemini20_flash_lite", + "family": "anthropic", "supports_vision": true, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0", - "description": "Stable version of Gemini 2.0 Flash Lite", - "input_token_limit": 1048576, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Claude", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-2.0-flash-lite-preview", + "id": "aqa", "created_at": null, - "display_name": "Gemini 2.0 Flash-Lite Preview", + "display_name": "Model that performs Attributed Question Answering.", "provider": "gemini", - "context_window": 1048576, - "max_tokens": 8192, + "context_window": 7168, + "max_tokens": 1024, "type": "chat", - "family": "gemini20_flash_lite", - "supports_vision": true, + "family": "aqa", + "supports_vision": false, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "input_price_per_million": 0.0, + "output_price_per_million": 0.0, "metadata": { - "version": "preview-02-05", - "description": "Preview release (February 5th, 2025) of Gemini 2.0 Flash Lite", - "input_token_limit": 1048576, - "output_token_limit": 8192, + "version": "001", + "description": "Model trained to return answers to questions that are grounded in provided sources, along with estimating answerable probability.", + "input_token_limit": 7168, + "output_token_limit": 1024, "supported_generation_methods": [ - "generateContent", - "countTokens" + "generateAnswer" ] } }, { - "id": "gemini-2.0-flash-lite-preview-02-05", - "created_at": null, - "display_name": "Gemini 2.0 Flash-Lite Preview 02-05", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 8192, + "id": "arliai/qwq-32b-arliai-rpr-v1:free", + "created_at": "2025-04-13T23:53:02+09:00", + "display_name": "ArliAI: QwQ 32B RpR v1 (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "gemini20_flash_lite", - "supports_vision": true, + "family": "arliai", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "preview-02-05", - "description": "Preview release (February 5th, 2025) of Gemini 2.0 Flash Lite", - "input_token_limit": 1048576, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gemini-2.0-flash-live-001", - "created_at": null, - "display_name": "Gemini 2.0 Flash 001", - "provider": "gemini", - "context_window": 131072, - "max_tokens": 8192, + "id": "babbage-002", + "created_at": "2023-08-21T18:16:55+02:00", + "display_name": "Babbage 002", + "provider": "openai", + "context_window": 4096, + "max_tokens": 16384, "type": "chat", - "family": "gemini20_flash", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0.1, + "family": "babbage", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.4, "output_price_per_million": 0.4, "metadata": { - "version": "001", - "description": "Gemini 2.0 Flash 001", - "input_token_limit": 131072, - "output_token_limit": 8192, - "supported_generation_methods": [ - "bidiGenerateContent", - "countTokens" - ] + "object": "model", + "owned_by": "system" } }, { - "id": "gemini-2.0-flash-thinking-exp", - "created_at": null, - "display_name": "Gemini 2.0 Flash Thinking Experimental 01-21", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "id": "bytedance-research/ui-tars-72b:free", + "created_at": "2025-03-27T05:14:25+09:00", + "display_name": "Bytedance: UI-TARS 72B (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "gemini20_flash", + "family": "bytedance-research", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0-exp-01-21", - "description": "Experimental release (January 21st, 2025) of Gemini 2.0 Flash Thinking", - "input_token_limit": 1048576, - "output_token_limit": 65536, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "gemini-2.0-flash-thinking-exp-01-21", + "id": "chat-bison-001", "created_at": null, - "display_name": "Gemini 2.0 Flash Thinking Experimental 01-21", + "display_name": "PaLM 2 Chat (Legacy)", "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "context_window": 4096, + "max_tokens": 1024, "type": "chat", - "family": "gemini20_flash", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "family": "other", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "version": "2.0-exp-01-21", - "description": "Experimental release (January 21st, 2025) of Gemini 2.0 Flash Thinking", - "input_token_limit": 1048576, - "output_token_limit": 65536, + "version": "001", + "description": "A legacy text-only model optimized for chat conversations", + "input_token_limit": 4096, + "output_token_limit": 1024, "supported_generation_methods": [ - "generateContent", - "countTokens" + "generateMessage", + "countMessageTokens" ] } }, { - "id": "gemini-2.0-flash-thinking-exp-1219", - "created_at": null, - "display_name": "Gemini 2.0 Flash Thinking Experimental", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "id": "chatgpt-4o-latest", + "created_at": "2024-08-13T04:12:11+02:00", + "display_name": "ChatGPT-4o Latest", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "gemini20_flash", + "family": "chatgpt4o", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 5.0, + "output_price_per_million": 15.0, "metadata": { - "version": "2.0", - "description": "Gemini 2.0 Flash Thinking Experimental", - "input_token_limit": 1048576, - "output_token_limit": 65536, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "object": "model", + "owned_by": "system" } }, { - "id": "gemini-2.0-pro-exp", - "created_at": null, - "display_name": "Gemini 2.0 Pro Experimental", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "id": "claude-2.0", + "created_at": "2023-07-11T00:00:00Z", + "display_name": "Claude 2.0", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "other", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, - "metadata": { - "version": "2.5-exp-03-25", - "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", - "input_token_limit": 1048576, - "output_token_limit": 65536, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] - } + "family": "claude2", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, + "metadata": {} }, { - "id": "gemini-2.0-pro-exp-02-05", - "created_at": null, - "display_name": "Gemini 2.0 Pro Experimental 02-05", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "id": "claude-2.1", + "created_at": "2023-11-21T00:00:00Z", + "display_name": "Claude 2.1", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "other", + "family": "claude2", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, + "metadata": {} + }, + { + "id": "claude-3-5-haiku-20241022", + "created_at": "2024-10-22T00:00:00Z", + "display_name": "Claude 3.5 Haiku", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "claude35_haiku", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, - "metadata": { - "version": "2.5-exp-03-25", - "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", - "input_token_limit": 1048576, - "output_token_limit": 65536, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] - } + "input_price_per_million": 0.8, + "output_price_per_million": 4.0, + "metadata": {} }, { - "id": "gemini-2.5-pro-exp-03-25", - "created_at": null, - "display_name": "Gemini 2.5 Pro Experimental 03-25", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "id": "claude-3-5-sonnet-20240620", + "created_at": "2024-06-20T00:00:00Z", + "display_name": "Claude 3.5 Sonnet (Old)", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 8192, "type": "chat", - "family": "gemini25_pro_exp", + "family": "claude35_sonnet", "supports_vision": true, "supports_functions": true, - "supports_json_mode": false, - "input_price_per_million": 0.12, - "output_price_per_million": 0.5, - "metadata": { - "version": "2.5-exp-03-25", - "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", - "input_token_limit": 1048576, - "output_token_limit": 65536, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] - } + "supports_json_mode": true, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, + "metadata": {} }, { - "id": "gemini-2.5-pro-preview-03-25", - "created_at": null, - "display_name": "Gemini 2.5 Pro Preview 03-25", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "id": "claude-3-5-sonnet-20241022", + "created_at": "2024-10-22T00:00:00Z", + "display_name": "Claude 3.5 Sonnet (New)", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 8192, "type": "chat", - "family": "other", + "family": "claude35_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, - "metadata": { - "version": "2.5-preview-03-25", - "description": "Gemini 2.5 Pro Preview 03-25", - "input_token_limit": 1048576, - "output_token_limit": 65536, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] - } + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, + "metadata": {} }, { - "id": "gemini-embedding-exp", - "created_at": null, - "display_name": "Gemini Embedding Experimental", - "provider": "gemini", - "context_window": 8192, - "max_tokens": 1, - "type": "embedding", - "family": "gemini_embedding_exp", + "id": "claude-3-7-sonnet-20250219", + "created_at": "2025-02-24T00:00:00Z", + "display_name": "Claude 3.7 Sonnet", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 8192, + "type": "chat", + "family": "claude37_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.002, - "output_price_per_million": 0.004, - "metadata": { - "version": "exp-03-07", - "description": "Obtain a distributed representation of a text.", - "input_token_limit": 8192, - "output_token_limit": 1, - "supported_generation_methods": [ - "embedContent", - "countTextTokens" - ] - } + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, + "metadata": {} }, { - "id": "gemini-embedding-exp-03-07", - "created_at": null, - "display_name": "Gemini Embedding Experimental 03-07", - "provider": "gemini", - "context_window": 8192, - "max_tokens": 1, - "type": "embedding", - "family": "gemini_embedding_exp", + "id": "claude-3-haiku-20240307", + "created_at": "2024-03-07T00:00:00Z", + "display_name": "Claude 3 Haiku", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 4096, + "type": "chat", + "family": "claude3_haiku", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.002, - "output_price_per_million": 0.004, - "metadata": { - "version": "exp-03-07", - "description": "Obtain a distributed representation of a text.", - "input_token_limit": 8192, - "output_token_limit": 1, - "supported_generation_methods": [ - "embedContent", - "countTextTokens" - ] - } + "input_price_per_million": 0.25, + "output_price_per_million": 1.25, + "metadata": {} }, { - "id": "gemini-exp-1206", - "created_at": null, - "display_name": "Gemini Experimental 1206", - "provider": "gemini", - "context_window": 1048576, - "max_tokens": 65536, + "id": "claude-3-opus-20240229", + "created_at": "2024-02-29T00:00:00Z", + "display_name": "Claude 3 Opus", + "provider": "anthropic", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "other", + "family": "claude3_opus", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, - "metadata": { - "version": "2.5-exp-03-25", - "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", - "input_token_limit": 1048576, - "output_token_limit": 65536, - "supported_generation_methods": [ - "generateContent", - "countTokens", - "createCachedContent" - ] - } + "input_price_per_million": 15.0, + "output_price_per_million": 75.0, + "metadata": {} }, { - "id": "gemini-pro-vision", - "created_at": null, - "display_name": "Gemini 1.0 Pro Vision", - "provider": "gemini", - "context_window": 12288, + "id": "claude-3-sonnet-20240229", + "created_at": "2024-02-29T00:00:00Z", + "display_name": "Claude 3 Sonnet", + "provider": "anthropic", + "context_window": 200000, "max_tokens": 4096, "type": "chat", - "family": "other", + "family": "claude3_sonnet", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, - "metadata": { - "version": "001", - "description": "The original Gemini 1.0 Pro Vision model version which was optimized for image understanding. Gemini 1.0 Pro Vision was deprecated on July 12, 2024. Move to a newer Gemini version.", - "input_token_limit": 12288, - "output_token_limit": 4096, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] - } + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, + "metadata": {} }, { - "id": "gemma-3-12b-it", - "created_at": null, - "display_name": "Gemma 3 12B", - "provider": "gemini", - "context_window": 32768, - "max_tokens": 8192, + "id": "cognitivecomputations/dolphin-mixtral-8x22b", + "created_at": "2024-06-08T09:00:00+09:00", + "display_name": "Dolphin 2.9.2 Mixtral 8x22B 🐬", + "provider": "openrouter", + "context_window": 16000, + "max_tokens": null, "type": "chat", - "family": "other", + "family": "cognitivecomputations", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": null, - "input_token_limit": 32768, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "gemma-3-1b-it", - "created_at": null, - "display_name": "Gemma 3 1B", - "provider": "gemini", + "id": "cognitivecomputations/dolphin-mixtral-8x7b", + "created_at": "2023-12-21T09:00:00+09:00", + "display_name": "Dolphin 2.6 Mixtral 8x7B 🐬", + "provider": "openrouter", "context_window": 32768, - "max_tokens": 8192, + "max_tokens": null, "type": "chat", - "family": "other", + "family": "cognitivecomputations", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": null, - "input_token_limit": 32768, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "gemma-3-27b-it", - "created_at": null, - "display_name": "Gemma 3 27B", - "provider": "gemini", - "context_window": 131072, - "max_tokens": 8192, + "id": "cognitivecomputations/dolphin3.0-mistral-24b:free", + "created_at": "2025-02-14T00:53:39+09:00", + "display_name": "Dolphin3.0 Mistral 24B (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "other", + "family": "cognitivecomputations", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": null, - "input_token_limit": 131072, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "gemma-3-4b-it", - "created_at": null, - "display_name": "Gemma 3 4B", - "provider": "gemini", + "id": "cognitivecomputations/dolphin3.0-r1-mistral-24b:free", + "created_at": "2025-02-14T01:01:38+09:00", + "display_name": "Dolphin3.0 R1 Mistral 24B (free)", + "provider": "openrouter", "context_window": 32768, - "max_tokens": 8192, + "max_tokens": null, "type": "chat", - "family": "other", + "family": "cognitivecomputations", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "001", - "description": null, - "input_token_limit": 32768, - "output_token_limit": 8192, - "supported_generation_methods": [ - "generateContent", - "countTokens" - ] + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-3.5-turbo", - "created_at": "2023-02-28T19:56:42+01:00", - "display_name": "GPT-3.5 Turbo", - "provider": "openai", - "context_window": 16385, - "max_tokens": 4096, + "id": "cohere/command", + "created_at": "2024-03-14T09:00:00+09:00", + "display_name": "Cohere: Command", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4000, "type": "chat", - "family": "gpt35_turbo", + "family": "cohere", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "openai" + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-3.5-turbo-0125", - "created_at": "2024-01-23T23:19:18+01:00", - "display_name": "GPT-3.5 Turbo 0125", - "provider": "openai", - "context_window": 16385, - "max_tokens": 4096, + "id": "cohere/command-a", + "created_at": "2025-03-14T04:32:22+09:00", + "display_name": "Cohere: Command A", + "provider": "openrouter", + "context_window": 256000, + "max_tokens": 8192, "type": "chat", - "family": "gpt35_turbo", + "family": "cohere", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-3.5-turbo-1106", - "created_at": "2023-11-02T22:15:48+01:00", - "display_name": "GPT-3.5 Turbo 1106", - "provider": "openai", - "context_window": 16385, - "max_tokens": 4096, + "id": "cohere/command-r", + "created_at": "2024-03-14T09:00:00+09:00", + "display_name": "Cohere: Command R", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, "type": "chat", - "family": "gpt35_turbo", + "family": "cohere", "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-3.5-turbo-16k", - "created_at": "2023-05-11T00:35:02+02:00", - "display_name": "GPT-3.5 Turbo 16k", - "provider": "openai", - "context_window": 16385, - "max_tokens": 4096, + "id": "cohere/command-r-03-2024", + "created_at": "2024-03-02T10:00:00+09:00", + "display_name": "Cohere: Command R (03-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, "type": "chat", - "family": "gpt35_turbo", + "family": "cohere", "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "openai-internal" + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-3.5-turbo-instruct", - "created_at": "2023-08-24T20:23:47+02:00", - "display_name": "GPT-3.5 Turbo Instruct", - "provider": "openai", - "context_window": 16385, - "max_tokens": 4096, + "id": "cohere/command-r-08-2024", + "created_at": "2024-08-30T09:00:00+09:00", + "display_name": "Cohere: Command R (08-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, "type": "chat", - "family": "gpt35_turbo", + "family": "cohere", "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-3.5-turbo-instruct-0914", - "created_at": "2023-09-07T23:34:32+02:00", - "display_name": "GPT-3.5 Turbo Instruct 0914", - "provider": "openai", - "context_window": 16385, - "max_tokens": 4096, + "id": "cohere/command-r-plus", + "created_at": "2024-04-04T09:00:00+09:00", + "display_name": "Cohere: Command R+", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, "type": "chat", - "family": "gpt35_turbo", + "family": "cohere", "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4", - "created_at": "2023-06-27T18:13:31+02:00", - "display_name": "GPT-4", - "provider": "openai", - "context_window": 8192, - "max_tokens": 8192, + "id": "cohere/command-r-plus-04-2024", + "created_at": "2024-04-02T09:00:00+09:00", + "display_name": "Cohere: Command R+ (04-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, "type": "chat", - "family": "gpt4", - "supports_vision": true, + "family": "cohere", + "supports_vision": false, "supports_functions": true, - "supports_json_mode": false, - "input_price_per_million": 10.0, - "output_price_per_million": 30.0, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "openai" + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4-0125-preview", - "created_at": "2024-01-23T20:20:12+01:00", - "display_name": "GPT-4 0125 Preview", + "id": "cohere/command-r-plus-08-2024", + "created_at": "2024-08-30T09:00:00+09:00", + "display_name": "Cohere: Command R+ (08-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "cohere/command-r7b-12-2024", + "created_at": "2024-12-14T15:35:52+09:00", + "display_name": "Cohere: Command R7B (12-2024)", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 4000, + "type": "chat", + "family": "cohere", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Cohere", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "dall-e-2", + "created_at": "2023-11-01T01:22:57+01:00", + "display_name": "DALL-E-2", "provider": "openai", "context_window": 4096, "max_tokens": 16384, - "type": "chat", - "family": "other", + "type": "image", + "family": "dall_e", "supports_vision": false, "supports_functions": false, "supports_json_mode": false, @@ -2325,14 +2236,14 @@ } }, { - "id": "gpt-4-0613", - "created_at": "2023-06-12T18:54:56+02:00", - "display_name": "GPT-4 0613", + "id": "dall-e-3", + "created_at": "2023-10-31T21:46:29+01:00", + "display_name": "DALL-E-3", "provider": "openai", "context_window": 4096, "max_tokens": 16384, - "type": "chat", - "family": "other", + "type": "image", + "family": "dall_e", "supports_vision": false, "supports_functions": false, "supports_json_mode": false, @@ -2340,707 +2251,749 @@ "output_price_per_million": 1.5, "metadata": { "object": "model", - "owned_by": "openai" + "owned_by": "system" } }, { - "id": "gpt-4-1106-preview", - "created_at": "2023-11-02T21:33:26+01:00", - "display_name": "GPT-4 1106 Preview", + "id": "davinci-002", + "created_at": "2023-08-21T18:11:41+02:00", + "display_name": "Davinci 002", "provider": "openai", "context_window": 4096, "max_tokens": 16384, "type": "chat", - "family": "other", + "family": "davinci", "supports_vision": false, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "input_price_per_million": 2.0, + "output_price_per_million": 2.0, "metadata": { "object": "model", "owned_by": "system" } }, { - "id": "gpt-4-turbo", - "created_at": "2024-04-06T01:57:21+02:00", - "display_name": "GPT-4 Turbo", - "provider": "openai", - "context_window": 128000, - "max_tokens": 4096, - "type": "chat", - "family": "gpt4_turbo", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": false, - "input_price_per_million": 10.0, - "output_price_per_million": 30.0, - "metadata": { - "object": "model", - "owned_by": "system" - } - }, - { - "id": "gpt-4-turbo-2024-04-09", - "created_at": "2024-04-08T20:41:17+02:00", - "display_name": "GPT-4 Turbo 20240409", - "provider": "openai", - "context_window": 128000, - "max_tokens": 4096, + "id": "deepseek-chat", + "created_at": null, + "display_name": "DeepSeek V3", + "provider": "deepseek", + "context_window": 64000, + "max_tokens": 8192, "type": "chat", - "family": "gpt4_turbo", - "supports_vision": true, + "family": "chat", + "supports_vision": false, "supports_functions": true, "supports_json_mode": false, - "input_price_per_million": 10.0, - "output_price_per_million": 30.0, + "input_price_per_million": 0.27, + "output_price_per_million": 1.1, "metadata": { "object": "model", - "owned_by": "system" + "owned_by": "deepseek" } }, { - "id": "gpt-4-turbo-preview", - "created_at": "2024-01-23T20:22:57+01:00", - "display_name": "GPT-4 Turbo Preview", - "provider": "openai", - "context_window": 128000, - "max_tokens": 4096, + "id": "deepseek-reasoner", + "created_at": null, + "display_name": "DeepSeek R1", + "provider": "deepseek", + "context_window": 64000, + "max_tokens": 8192, "type": "chat", - "family": "gpt4_turbo", - "supports_vision": true, - "supports_functions": true, + "family": "reasoner", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 10.0, - "output_price_per_million": 30.0, + "input_price_per_million": 0.55, + "output_price_per_million": 2.19, "metadata": { "object": "model", - "owned_by": "system" + "owned_by": "deepseek" } }, { - "id": "gpt-4.1", - "created_at": "2025-04-10T22:22:22+02:00", - "display_name": "GPT-4.1", - "provider": "openai", - "context_window": 1047576, - "max_tokens": 32768, + "id": "deepseek/deepseek-chat", + "created_at": "2024-12-27T04:28:40+09:00", + "display_name": "DeepSeek: DeepSeek V3", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": 163840, "type": "chat", - "family": "gpt41", - "supports_vision": true, + "family": "deepseek", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 2.0, - "output_price_per_million": 8.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "DeepSeek", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4.1-2025-04-14", - "created_at": "2025-04-10T22:09:06+02:00", - "display_name": "GPT-4.1 20250414", - "provider": "openai", - "context_window": 1047576, - "max_tokens": 32768, + "id": "deepseek/deepseek-chat-v3-0324", + "created_at": "2025-03-24T22:59:15+09:00", + "display_name": "DeepSeek: DeepSeek V3 0324", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": 8192, "type": "chat", - "family": "gpt41", - "supports_vision": true, + "family": "deepseek", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 2.0, - "output_price_per_million": 8.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "DeepSeek", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4.1-mini", - "created_at": "2025-04-10T22:49:33+02:00", - "display_name": "GPT-4.1 Mini", - "provider": "openai", - "context_window": 1047576, - "max_tokens": 32768, + "id": "deepseek/deepseek-chat-v3-0324:free", + "created_at": "2025-03-24T22:59:15+09:00", + "display_name": "DeepSeek: DeepSeek V3 0324 (free)", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": null, "type": "chat", - "family": "gpt41_mini", - "supports_vision": true, - "supports_functions": true, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.4, - "output_price_per_million": 1.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "DeepSeek", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4.1-mini-2025-04-14", - "created_at": "2025-04-10T22:39:07+02:00", - "display_name": "GPT-4.1 Mini 20250414", - "provider": "openai", - "context_window": 1047576, - "max_tokens": 32768, + "id": "deepseek/deepseek-chat:free", + "created_at": "2024-12-27T04:28:40+09:00", + "display_name": "DeepSeek: DeepSeek V3 (free)", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": null, "type": "chat", - "family": "gpt41_mini", - "supports_vision": true, - "supports_functions": true, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.4, - "output_price_per_million": 1.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "DeepSeek", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4.1-nano", - "created_at": "2025-04-10T23:48:27+02:00", - "display_name": "GPT-4.1 Nano", - "provider": "openai", - "context_window": 1047576, + "id": "deepseek/deepseek-r1", + "created_at": "2025-01-20T22:51:35+09:00", + "display_name": "DeepSeek: R1", + "provider": "openrouter", + "context_window": 128000, "max_tokens": 32768, "type": "chat", - "family": "gpt41_nano", - "supports_vision": true, + "family": "deepseek", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "DeepSeek", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4.1-nano-2025-04-14", - "created_at": "2025-04-10T23:37:05+02:00", - "display_name": "GPT-4.1 Nano 20250414", - "provider": "openai", - "context_window": 1047576, - "max_tokens": 32768, + "id": "deepseek/deepseek-r1-distill-llama-70b", + "created_at": "2025-01-24T05:12:49+09:00", + "display_name": "DeepSeek: R1 Distill Llama 70B", + "provider": "openrouter", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "gpt41_nano", - "supports_vision": true, + "family": "deepseek", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0.1, - "output_price_per_million": 0.4, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Llama3", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4.5-preview", - "created_at": "2025-02-27T03:24:19+01:00", - "display_name": "GPT-4.5 Preview", - "provider": "openai", + "id": "deepseek/deepseek-r1-distill-llama-70b:free", + "created_at": "2025-01-24T05:12:49+09:00", + "display_name": "DeepSeek: R1 Distill Llama 70B (free)", + "provider": "openrouter", "context_window": 128000, - "max_tokens": 4096, + "max_tokens": null, "type": "chat", - "family": "gpt4_turbo", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": false, - "input_price_per_million": 10.0, - "output_price_per_million": 30.0, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Llama3", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4.5-preview-2025-02-27", - "created_at": "2025-02-27T03:28:24+01:00", - "display_name": "GPT-4.5 Preview 20250227", - "provider": "openai", - "context_window": 128000, - "max_tokens": 4096, + "id": "deepseek/deepseek-r1-distill-llama-8b", + "created_at": "2025-02-07T23:15:18+09:00", + "display_name": "DeepSeek: R1 Distill Llama 8B", + "provider": "openrouter", + "context_window": 32000, + "max_tokens": 32000, "type": "chat", - "family": "gpt4_turbo", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": false, - "input_price_per_million": 10.0, - "output_price_per_million": 30.0, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Llama3", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o", - "created_at": "2024-05-10T20:50:49+02:00", - "display_name": "GPT-4o", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, - "type": "chat", - "family": "gpt4o", - "supports_vision": true, - "supports_functions": true, + "id": "deepseek/deepseek-r1-distill-qwen-1.5b", + "created_at": "2025-01-31T21:54:27+09:00", + "display_name": "DeepSeek: R1 Distill Qwen 1.5B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 32768, + "type": "chat", + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o-2024-05-13", - "created_at": "2024-05-10T21:08:52+02:00", - "display_name": "GPT-4o 20240513", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "deepseek/deepseek-r1-distill-qwen-14b", + "created_at": "2025-01-30T08:39:00+09:00", + "display_name": "DeepSeek: R1 Distill Qwen 14B", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": 64000, "type": "chat", - "family": "gpt4o", - "supports_vision": true, - "supports_functions": true, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o-2024-08-06", - "created_at": "2024-08-05T01:38:39+02:00", - "display_name": "GPT-4o 20240806", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "deepseek/deepseek-r1-distill-qwen-14b:free", + "created_at": "2025-01-30T08:39:00+09:00", + "display_name": "DeepSeek: R1 Distill Qwen 14B (free)", + "provider": "openrouter", + "context_window": 64000, + "max_tokens": null, "type": "chat", - "family": "gpt4o", - "supports_vision": true, - "supports_functions": true, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o-2024-11-20", - "created_at": "2025-02-12T04:39:03+01:00", - "display_name": "GPT-4o 20241120", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "deepseek/deepseek-r1-distill-qwen-32b", + "created_at": "2025-01-30T08:53:50+09:00", + "display_name": "DeepSeek: R1 Distill Qwen 32B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 8192, "type": "chat", - "family": "gpt4o", - "supports_vision": true, - "supports_functions": true, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o-audio-preview", - "created_at": "2024-09-27T20:07:23+02:00", - "display_name": "GPT-4o-Audio Preview", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "deepseek/deepseek-r1-distill-qwen-32b:free", + "created_at": "2025-01-30T08:53:50+09:00", + "display_name": "DeepSeek: R1 Distill Qwen 32B (free)", + "provider": "openrouter", + "context_window": 16000, + "max_tokens": 16000, "type": "chat", - "family": "gpt4o_audio", + "family": "deepseek", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o-audio-preview-2024-10-01", - "created_at": "2024-09-27T00:17:22+02:00", - "display_name": "GPT-4o-Audio Preview 20241001", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "deepseek/deepseek-r1-zero:free", + "created_at": "2025-03-07T06:43:54+09:00", + "display_name": "DeepSeek: DeepSeek R1 Zero (free)", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": null, "type": "chat", - "family": "gpt4o_audio", + "family": "deepseek", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o-audio-preview-2024-12-17", - "created_at": "2024-12-12T21:10:39+01:00", - "display_name": "GPT-4o-Audio Preview 20241217", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "deepseek/deepseek-r1:free", + "created_at": "2025-01-20T22:51:35+09:00", + "display_name": "DeepSeek: R1 (free)", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": null, "type": "chat", - "family": "gpt4o_audio", + "family": "deepseek", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "DeepSeek", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "gpt-4o-mini", - "created_at": "2024-07-17T01:32:21+02:00", - "display_name": "GPT-4o-Mini", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "deepseek/deepseek-v3-base:free", + "created_at": "2025-03-30T03:13:43+09:00", + "display_name": "DeepSeek: DeepSeek V3 Base (free)", + "provider": "openrouter", + "context_window": 163840, + "max_tokens": null, "type": "chat", - "family": "gpt4o_mini", - "supports_vision": true, - "supports_functions": true, + "family": "deepseek", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "DeepSeek", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4o-mini-2024-07-18", - "created_at": "2024-07-17T01:31:57+02:00", - "display_name": "GPT-4o-Mini 20240718", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "eleutherai/llemma_7b", + "created_at": "2025-04-15T00:07:05+09:00", + "display_name": "EleutherAI: Llemma 7b", + "provider": "openrouter", + "context_window": 4096, + "max_tokens": 4096, "type": "chat", - "family": "gpt4o_mini", - "supports_vision": true, - "supports_functions": true, + "family": "eleutherai", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4o-mini-audio-preview", - "created_at": "2024-12-16T23:17:04+01:00", - "display_name": "GPT-4o-Mini Audio Preview", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, - "type": "chat", - "family": "gpt4o_mini_audio", + "id": "embedding-001", + "created_at": null, + "display_name": "Embedding 001", + "provider": "gemini", + "context_window": 2048, + "max_tokens": 1, + "type": "embedding", + "family": "embedding1", "supports_vision": false, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0.0, + "output_price_per_million": 0.0, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Obtain a distributed representation of a text.", + "input_token_limit": 2048, + "output_token_limit": 1, + "supported_generation_methods": [ + "embedContent" + ] } }, { - "id": "gpt-4o-mini-audio-preview-2024-12-17", - "created_at": "2024-12-13T19:52:00+01:00", - "display_name": "GPT-4o-Mini Audio Preview 20241217", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, - "type": "chat", - "family": "gpt4o_mini_audio", - "supports_vision": false, + "id": "embedding-gecko-001", + "created_at": null, + "display_name": "Embedding Gecko", + "provider": "gemini", + "context_window": 1024, + "max_tokens": 1, + "type": "embedding", + "family": "other", + "supports_vision": false, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.15, - "output_price_per_million": 0.6, + "input_price_per_million": 0.0, + "output_price_per_million": 0.0, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Obtain a distributed representation of a text.", + "input_token_limit": 1024, + "output_token_limit": 1, + "supported_generation_methods": [ + "embedText", + "countTextTokens" + ] } }, { - "id": "gpt-4o-mini-realtime-preview", - "created_at": "2024-12-16T23:16:20+01:00", - "display_name": "GPT-4o-Mini Realtime Preview", - "provider": "openai", - "context_window": 128000, + "id": "eva-unit-01/eva-llama-3.33-70b", + "created_at": "2024-12-17T04:28:23+09:00", + "display_name": "EVA Llama 3.33 70B", + "provider": "openrouter", + "context_window": 16384, "max_tokens": 4096, "type": "chat", - "family": "gpt4o_mini_realtime", + "family": "eva-unit-01", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.6, - "output_price_per_million": 2.4, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false } }, { - "id": "gpt-4o-mini-realtime-preview-2024-12-17", - "created_at": "2024-12-13T18:56:41+01:00", - "display_name": "GPT-4o-Mini Realtime Preview 20241217", - "provider": "openai", - "context_window": 128000, + "id": "eva-unit-01/eva-qwen-2.5-32b", + "created_at": "2024-11-09T07:27:27+09:00", + "display_name": "EVA Qwen2.5 32B", + "provider": "openrouter", + "context_window": 16384, "max_tokens": 4096, "type": "chat", - "family": "gpt4o_mini_realtime", + "family": "eva-unit-01", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.6, - "output_price_per_million": 2.4, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "gpt-4o-mini-search-preview", - "created_at": "2025-03-08T00:46:01+01:00", - "display_name": "GPT-4o-Mini Search Preview", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, + "id": "eva-unit-01/eva-qwen-2.5-72b", + "created_at": "2024-11-22T02:36:46+09:00", + "display_name": "EVA Qwen2.5 72B", + "provider": "openrouter", + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "other", + "family": "eva-unit-01", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "gpt-4o-mini-search-preview-2025-03-11", - "created_at": "2025-03-08T00:40:58+01:00", - "display_name": "GPT-4o-Mini Search Preview 20250311", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, + "id": "featherless/qwerky-72b:free", + "created_at": "2025-03-20T23:39:57+09:00", + "display_name": "Qwerky 72B (free)", + "provider": "openrouter", + "context_window": 32768, + "max_tokens": 4096, "type": "chat", - "family": "other", + "family": "featherless", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "system" + "tokenizer": "Other", + "instruct_type": null, + "moderated": false } }, { - "id": "gpt-4o-mini-transcribe", - "created_at": "2025-03-15T20:56:36+01:00", - "display_name": "GPT-4o-Mini Transcribe", - "provider": "openai", - "context_window": 16000, - "max_tokens": 2000, - "type": "audio", - "family": "gpt4o_mini_transcribe", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 1.25, - "output_price_per_million": 5.0, + "id": "gemini-1.0-pro-vision-latest", + "created_at": null, + "display_name": "Gemini 1.0 Pro Vision", + "provider": "gemini", + "context_window": 12288, + "max_tokens": 4096, + "type": "chat", + "family": "other", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "The original Gemini 1.0 Pro Vision model version which was optimized for image understanding. Gemini 1.0 Pro Vision was deprecated on July 12, 2024. Move to a newer Gemini version.", + "input_token_limit": 12288, + "output_token_limit": 4096, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "gpt-4o-mini-tts", - "created_at": "2025-03-19T18:05:59+01:00", - "display_name": "GPT-4o-Mini Tts", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "audio", - "family": "gpt4o_mini_tts", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.6, - "output_price_per_million": 12.0, + "id": "gemini-1.5-flash", + "created_at": null, + "display_name": "Gemini 1.5 Flash", + "provider": "gemini", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "gemini15_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Alias that points to the most recent stable version of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks.", + "input_token_limit": 1000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "gpt-4o-realtime-preview", - "created_at": "2024-09-30T03:33:18+02:00", - "display_name": "GPT-4o-Realtime Preview", - "provider": "openai", - "context_window": 128000, - "max_tokens": 4096, + "id": "gemini-1.5-flash-001", + "created_at": null, + "display_name": "Gemini 1.5 Flash 001", + "provider": "gemini", + "context_window": 1000000, + "max_tokens": 8192, "type": "chat", - "family": "gpt4o_realtime", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 5.0, - "output_price_per_million": 20.0, + "family": "gemini15_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Stable version of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in May of 2024.", + "input_token_limit": 1000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "gpt-4o-realtime-preview-2024-10-01", - "created_at": "2024-09-24T00:49:26+02:00", - "display_name": "GPT-4o-Realtime Preview 20241001", - "provider": "openai", - "context_window": 128000, - "max_tokens": 4096, + "id": "gemini-1.5-flash-001-tuning", + "created_at": null, + "display_name": "Gemini 1.5 Flash 001 Tuning", + "provider": "gemini", + "context_window": 16384, + "max_tokens": 8192, "type": "chat", - "family": "gpt4o_realtime", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 5.0, - "output_price_per_million": 20.0, + "family": "gemini15_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Version of Gemini 1.5 Flash that supports tuning, our fast and versatile multimodal model for scaling across diverse tasks, released in May of 2024.", + "input_token_limit": 16384, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createTunedModel" + ] } }, { - "id": "gpt-4o-realtime-preview-2024-12-17", - "created_at": "2024-12-11T20:30:30+01:00", - "display_name": "GPT-4o-Realtime Preview 20241217", - "provider": "openai", - "context_window": 128000, - "max_tokens": 4096, + "id": "gemini-1.5-flash-002", + "created_at": null, + "display_name": "Gemini 1.5 Flash 002", + "provider": "gemini", + "context_window": 1000000, + "max_tokens": 8192, "type": "chat", - "family": "gpt4o_realtime", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 5.0, - "output_price_per_million": 20.0, + "family": "gemini15_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "object": "model", - "owned_by": "system" + "version": "002", + "description": "Stable version of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in September of 2024.", + "input_token_limit": 1000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "gpt-4o-search-preview", - "created_at": "2025-03-08T00:05:20+01:00", - "display_name": "GPT-4o Search Preview", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "gemini-1.5-flash-8b", + "created_at": null, + "display_name": "Gemini 1.5 Flash-8B", + "provider": "gemini", + "context_window": 1000000, + "max_tokens": 8192, "type": "chat", - "family": "gpt4o_search", + "family": "gemini15_flash_8b", "supports_vision": true, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Stable version of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model, released in October of 2024.", + "input_token_limit": 1000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "createCachedContent", + "generateContent", + "countTokens" + ] } }, { - "id": "gpt-4o-search-preview-2025-03-11", - "created_at": "2025-03-07T23:56:10+01:00", - "display_name": "GPT-4o Search Preview 20250311", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, + "id": "gemini-1.5-flash-8b-001", + "created_at": null, + "display_name": "Gemini 1.5 Flash-8B 001", + "provider": "gemini", + "context_window": 1000000, + "max_tokens": 8192, "type": "chat", - "family": "gpt4o_search", + "family": "gemini15_flash_8b", "supports_vision": true, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, - "metadata": { - "object": "model", - "owned_by": "system" - } - }, - { - "id": "gpt-4o-transcribe", - "created_at": "2025-03-15T20:54:23+01:00", - "display_name": "GPT-4o-Transcribe", - "provider": "openai", - "context_window": 128000, - "max_tokens": 16384, - "type": "audio", - "family": "gpt4o_transcribe", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 2.5, - "output_price_per_million": 10.0, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Stable version of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model, released in October of 2024.", + "input_token_limit": 1000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "createCachedContent", + "generateContent", + "countTokens" + ] } }, { - "id": "imagen-3.0-generate-002", + "id": "gemini-1.5-flash-8b-exp-0827", "created_at": null, - "display_name": "Imagen 3.0 002 model", + "display_name": "Gemini 1.5 Flash 8B Experimental 0827", "provider": "gemini", - "context_window": 480, + "context_window": 1000000, "max_tokens": 8192, - "type": "image", - "family": "imagen3", + "type": "chat", + "family": "gemini15_flash_8b", "supports_vision": true, - "supports_functions": false, - "supports_json_mode": false, + "supports_functions": true, + "supports_json_mode": true, "input_price_per_million": 0.075, "output_price_per_million": 0.3, "metadata": { - "version": "002", - "description": "Vertex served Imagen 3.0 002 model", - "input_token_limit": 480, + "version": "001", + "description": "Experimental release (August 27th, 2024) of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model. Replaced by Gemini-1.5-flash-8b-001 (stable).", + "input_token_limit": 1000000, "output_token_limit": 8192, "supported_generation_methods": [ - "predict" + "generateContent", + "countTokens" ] } }, { - "id": "learnlm-1.5-pro-experimental", + "id": "gemini-1.5-flash-8b-exp-0924", "created_at": null, - "display_name": "LearnLM 1.5 Pro Experimental", + "display_name": "Gemini 1.5 Flash 8B Experimental 0924", "provider": "gemini", - "context_window": 32767, + "context_window": 1000000, "max_tokens": 8192, "type": "chat", - "family": "other", + "family": "gemini15_flash_8b", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, @@ -3048,8 +3001,8 @@ "output_price_per_million": 0.3, "metadata": { "version": "001", - "description": "Alias that points to the most recent stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens.", - "input_token_limit": 32767, + "description": "Experimental release (September 24th, 2024) of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model. Replaced by Gemini-1.5-flash-8b-001 (stable).", + "input_token_limit": 1000000, "output_token_limit": 8192, "supported_generation_methods": [ "generateContent", @@ -3058,638 +3011,1173 @@ } }, { - "id": "learnlm-2.0-flash-experimental", + "id": "gemini-1.5-flash-8b-latest", "created_at": null, - "display_name": "LearnLM 2.0 Flash Experimental", + "display_name": "Gemini 1.5 Flash-8B Latest", "provider": "gemini", - "context_window": 1048576, - "max_tokens": 32768, + "context_window": 1000000, + "max_tokens": 8192, "type": "chat", - "family": "other", + "family": "gemini15_flash_8b", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0.075, "output_price_per_million": 0.3, "metadata": { - "version": "2.0", - "description": "LearnLM 2.0 Flash Experimental", - "input_token_limit": 1048576, - "output_token_limit": 32768, + "version": "001", + "description": "Alias that points to the most recent production (non-experimental) release of Gemini 1.5 Flash-8B, our smallest and most cost effective Flash model, released in October of 2024.", + "input_token_limit": 1000000, + "output_token_limit": 8192, "supported_generation_methods": [ + "createCachedContent", "generateContent", "countTokens" ] } }, { - "id": "o1", - "created_at": "2024-12-16T20:03:36+01:00", - "display_name": "O1", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-1.5-flash-latest", + "created_at": null, + "display_name": "Gemini 1.5 Flash Latest", + "provider": "gemini", + "context_window": 1000000, + "max_tokens": 8192, "type": "chat", - "family": "o1", + "family": "gemini15_flash", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 60.0, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Alias that points to the most recent production (non-experimental) release of Gemini 1.5 Flash, our fast and versatile multimodal model for scaling across diverse tasks.", + "input_token_limit": 1000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "o1-2024-12-17", - "created_at": "2024-12-16T06:29:36+01:00", - "display_name": "O1-20241217", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-1.5-pro", + "created_at": null, + "display_name": "Gemini 1.5 Pro", + "provider": "gemini", + "context_window": 2000000, + "max_tokens": 8192, "type": "chat", - "family": "o1", + "family": "gemini15_pro", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 60.0, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens, released in May of 2024.", + "input_token_limit": 2000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "o1-mini", - "created_at": "2024-09-06T20:56:48+02:00", - "display_name": "O1-Mini", - "provider": "openai", - "context_window": 128000, - "max_tokens": 65536, + "id": "gemini-1.5-pro-001", + "created_at": null, + "display_name": "Gemini 1.5 Pro 001", + "provider": "gemini", + "context_window": 2000000, + "max_tokens": 8192, "type": "chat", - "family": "o1_mini", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 1.1, - "output_price_per_million": 4.4, + "family": "gemini15_pro", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "object": "model", - "owned_by": "system" - } - }, - { - "id": "o1-mini-2024-09-12", - "created_at": "2024-09-06T20:56:19+02:00", - "display_name": "O1-Mini 20240912", - "provider": "openai", - "context_window": 128000, - "max_tokens": 65536, - "type": "chat", - "family": "o1_mini", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 1.1, - "output_price_per_million": 4.4, - "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens, released in May of 2024.", + "input_token_limit": 2000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "o1-preview", - "created_at": "2024-09-06T20:54:57+02:00", - "display_name": "O1-Preview", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-1.5-pro-002", + "created_at": null, + "display_name": "Gemini 1.5 Pro 002", + "provider": "gemini", + "context_window": 2000000, + "max_tokens": 8192, "type": "chat", - "family": "o1", + "family": "gemini15_pro", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 60.0, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "object": "model", - "owned_by": "system" + "version": "002", + "description": "Stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens, released in September of 2024.", + "input_token_limit": 2000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "o1-preview-2024-09-12", - "created_at": "2024-09-06T20:54:25+02:00", - "display_name": "O1-Preview 20240912", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-1.5-pro-latest", + "created_at": null, + "display_name": "Gemini 1.5 Pro Latest", + "provider": "gemini", + "context_window": 2000000, + "max_tokens": 8192, "type": "chat", - "family": "o1", + "family": "gemini15_pro", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 15.0, - "output_price_per_million": 60.0, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": "Alias that points to the most recent production (non-experimental) release of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens.", + "input_token_limit": 2000000, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "o1-pro", - "created_at": "2025-03-17T23:49:51+01:00", - "display_name": "O1-Pro", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-2.0-flash", + "created_at": null, + "display_name": "Gemini 2.0 Flash", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, "type": "chat", - "family": "o1_pro", + "family": "gemini20_flash", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 150.0, - "output_price_per_million": 600.0, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.0", + "description": "Gemini 2.0 Flash", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "o1-pro-2025-03-19", - "created_at": "2025-03-17T23:45:04+01:00", - "display_name": "O1-Pro 20250319", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-2.0-flash-001", + "created_at": null, + "display_name": "Gemini 2.0 Flash 001", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, "type": "chat", - "family": "o1_pro", + "family": "gemini20_flash", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 150.0, - "output_price_per_million": 600.0, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.0", + "description": "Stable version of Gemini 2.0 Flash, our fast and versatile multimodal model for scaling across diverse tasks, released in January of 2025.", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "o3-mini", - "created_at": "2025-01-17T21:39:43+01:00", - "display_name": "O3-Mini", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-2.0-flash-exp", + "created_at": null, + "display_name": "Gemini 2.0 Flash Experimental", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, "type": "chat", - "family": "o3_mini", - "supports_vision": false, + "family": "gemini20_flash", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 1.1, - "output_price_per_million": 4.4, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.0", + "description": "Gemini 2.0 Flash Experimental", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "bidiGenerateContent" + ] } }, { - "id": "o3-mini-2025-01-31", - "created_at": "2025-01-27T21:36:40+01:00", - "display_name": "O3-Mini 20250131", - "provider": "openai", - "context_window": 200000, - "max_tokens": 100000, + "id": "gemini-2.0-flash-exp-image-generation", + "created_at": null, + "display_name": "Gemini 2.0 Flash (Image Generation) Experimental", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, "type": "chat", - "family": "o3_mini", - "supports_vision": false, + "family": "gemini20_flash", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 1.1, - "output_price_per_million": 4.4, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.0", + "description": "Gemini 2.0 Flash (Image Generation) Experimental", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "bidiGenerateContent" + ] } }, { - "id": "o4-mini", - "created_at": "2025-04-09T21:02:31+02:00", - "display_name": "O4 Mini", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, + "id": "gemini-2.0-flash-lite", + "created_at": null, + "display_name": "Gemini 2.0 Flash-Lite", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, "type": "chat", - "family": "other", - "supports_vision": false, + "family": "gemini20_flash_lite", + "supports_vision": true, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.0", + "description": "Gemini 2.0 Flash-Lite", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "o4-mini-2025-04-16", - "created_at": "2025-04-08T19:31:46+02:00", - "display_name": "O4 Mini 20250416", - "provider": "openai", - "context_window": 4096, - "max_tokens": 16384, + "id": "gemini-2.0-flash-lite-001", + "created_at": null, + "display_name": "Gemini 2.0 Flash-Lite 001", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, "type": "chat", - "family": "other", - "supports_vision": false, + "family": "gemini20_flash_lite", + "supports_vision": true, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.5, - "output_price_per_million": 1.5, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" - } + "version": "2.0", + "description": "Stable version of Gemini 2.0 Flash Lite", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] + } }, { - "id": "omni-moderation-2024-09-26", - "created_at": "2024-11-27T20:07:46+01:00", - "display_name": "Omni Moderation 20240926", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "moderation", - "family": "moderation", + "id": "gemini-2.0-flash-lite-preview", + "created_at": null, + "display_name": "Gemini 2.0 Flash-Lite Preview", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, + "type": "chat", + "family": "gemini20_flash_lite", "supports_vision": true, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.0, - "output_price_per_million": 0.0, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "preview-02-05", + "description": "Preview release (February 5th, 2025) of Gemini 2.0 Flash Lite", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "omni-moderation-latest", - "created_at": "2024-11-15T17:47:45+01:00", - "display_name": "Omni Moderation Latest", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "moderation", - "family": "moderation", + "id": "gemini-2.0-flash-lite-preview-02-05", + "created_at": null, + "display_name": "Gemini 2.0 Flash-Lite Preview 02-05", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 8192, + "type": "chat", + "family": "gemini20_flash_lite", "supports_vision": true, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 0.0, - "output_price_per_million": 0.0, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "preview-02-05", + "description": "Preview release (February 5th, 2025) of Gemini 2.0 Flash Lite", + "input_token_limit": 1048576, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "text-bison-001", + "id": "gemini-2.0-flash-live-001", "created_at": null, - "display_name": "PaLM 2 (Legacy)", + "display_name": "Gemini 2.0 Flash 001", "provider": "gemini", - "context_window": 8196, - "max_tokens": 1024, + "context_window": 131072, + "max_tokens": 8192, "type": "chat", - "family": "other", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "family": "gemini20_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { "version": "001", - "description": "A legacy model that understands text and generates text as an output", - "input_token_limit": 8196, - "output_token_limit": 1024, + "description": "Gemini 2.0 Flash 001", + "input_token_limit": 131072, + "output_token_limit": 8192, "supported_generation_methods": [ - "generateText", - "countTextTokens", - "createTunedTextModel" + "bidiGenerateContent", + "countTokens" ] } }, { - "id": "text-embedding-004", + "id": "gemini-2.0-flash-thinking-exp", "created_at": null, - "display_name": "Text Embedding 004", + "display_name": "Gemini 2.0 Flash Thinking Experimental 01-21", "provider": "gemini", - "context_window": 2048, - "max_tokens": 1, - "type": "embedding", - "family": "embedding4", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.0, - "output_price_per_million": 0.0, + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "gemini20_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "version": "004", - "description": "Obtain a distributed representation of a text.", - "input_token_limit": 2048, - "output_token_limit": 1, + "version": "2.0-exp-01-21", + "description": "Experimental release (January 21st, 2025) of Gemini 2.0 Flash Thinking", + "input_token_limit": 1048576, + "output_token_limit": 65536, "supported_generation_methods": [ - "embedContent" + "generateContent", + "countTokens" ] } }, { - "id": "text-embedding-3-large", - "created_at": "2024-01-22T20:53:00+01:00", - "display_name": "text-embedding- 3 Large", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "embedding", - "family": "embedding3_large", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.13, - "output_price_per_million": 0.13, + "id": "gemini-2.0-flash-thinking-exp-01-21", + "created_at": null, + "display_name": "Gemini 2.0 Flash Thinking Experimental 01-21", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "gemini20_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.0-exp-01-21", + "description": "Experimental release (January 21st, 2025) of Gemini 2.0 Flash Thinking", + "input_token_limit": 1048576, + "output_token_limit": 65536, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "text-embedding-3-small", - "created_at": "2024-01-22T19:43:17+01:00", - "display_name": "text-embedding- 3 Small", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "embedding", - "family": "embedding3_small", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.02, - "output_price_per_million": 0.02, + "id": "gemini-2.0-flash-thinking-exp-1219", + "created_at": null, + "display_name": "Gemini 2.0 Flash Thinking Experimental", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "gemini20_flash", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.0", + "description": "Gemini 2.0 Flash Thinking Experimental", + "input_token_limit": 1048576, + "output_token_limit": 65536, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "text-embedding-ada-002", - "created_at": "2022-12-16T20:01:39+01:00", - "display_name": "text-embedding- Ada 002", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "embedding", - "family": "embedding_ada", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.1, - "output_price_per_million": 0.1, + "id": "gemini-2.0-pro-exp", + "created_at": null, + "display_name": "Gemini 2.0 Pro Experimental", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "other", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "openai-internal" + "version": "2.5-exp-03-25", + "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", + "input_token_limit": 1048576, + "output_token_limit": 65536, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "tts-1", - "created_at": "2023-04-19T23:49:11+02:00", - "display_name": "TTS-1", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "audio", - "family": "tts1", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 15.0, - "output_price_per_million": 15.0, - "metadata": { - "object": "model", - "owned_by": "openai-internal" + "id": "gemini-2.0-pro-exp-02-05", + "created_at": null, + "display_name": "Gemini 2.0 Pro Experimental 02-05", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "other", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, + "metadata": { + "version": "2.5-exp-03-25", + "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", + "input_token_limit": 1048576, + "output_token_limit": 65536, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "tts-1-1106", - "created_at": "2023-11-04T00:14:01+01:00", - "display_name": "TTS-1 1106", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "audio", - "family": "tts1", - "supports_vision": false, - "supports_functions": false, + "id": "gemini-2.5-pro-exp-03-25", + "created_at": null, + "display_name": "Gemini 2.5 Pro Experimental 03-25", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "gemini25_pro_exp", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": false, - "input_price_per_million": 15.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0.12, + "output_price_per_million": 0.5, "metadata": { - "object": "model", - "owned_by": "system" + "version": "2.5-exp-03-25", + "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", + "input_token_limit": 1048576, + "output_token_limit": 65536, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] } }, { - "id": "tts-1-hd", - "created_at": "2023-11-03T22:13:35+01:00", - "display_name": "TTS-1 HD", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "audio", - "family": "tts1_hd", + "id": "gemini-2.5-pro-preview-03-25", + "created_at": null, + "display_name": "Gemini 2.5 Pro Preview 03-25", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "other", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, + "metadata": { + "version": "2.5-preview-03-25", + "description": "Gemini 2.5 Pro Preview 03-25", + "input_token_limit": 1048576, + "output_token_limit": 65536, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] + } + }, + { + "id": "gemini-embedding-exp", + "created_at": null, + "display_name": "Gemini Embedding Experimental", + "provider": "gemini", + "context_window": 8192, + "max_tokens": 1, + "type": "embedding", + "family": "gemini_embedding_exp", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.002, + "output_price_per_million": 0.004, + "metadata": { + "version": "exp-03-07", + "description": "Obtain a distributed representation of a text.", + "input_token_limit": 8192, + "output_token_limit": 1, + "supported_generation_methods": [ + "embedContent", + "countTextTokens" + ] + } + }, + { + "id": "gemini-embedding-exp-03-07", + "created_at": null, + "display_name": "Gemini Embedding Experimental 03-07", + "provider": "gemini", + "context_window": 8192, + "max_tokens": 1, + "type": "embedding", + "family": "gemini_embedding_exp", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.002, + "output_price_per_million": 0.004, + "metadata": { + "version": "exp-03-07", + "description": "Obtain a distributed representation of a text.", + "input_token_limit": 8192, + "output_token_limit": 1, + "supported_generation_methods": [ + "embedContent", + "countTextTokens" + ] + } + }, + { + "id": "gemini-exp-1206", + "created_at": null, + "display_name": "Gemini Experimental 1206", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "other", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, + "metadata": { + "version": "2.5-exp-03-25", + "description": "Experimental release (March 25th, 2025) of Gemini 2.5 Pro", + "input_token_limit": 1048576, + "output_token_limit": 65536, + "supported_generation_methods": [ + "generateContent", + "countTokens", + "createCachedContent" + ] + } + }, + { + "id": "gemini-pro-vision", + "created_at": null, + "display_name": "Gemini 1.0 Pro Vision", + "provider": "gemini", + "context_window": 12288, + "max_tokens": 4096, + "type": "chat", + "family": "other", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, + "metadata": { + "version": "001", + "description": "The original Gemini 1.0 Pro Vision model version which was optimized for image understanding. Gemini 1.0 Pro Vision was deprecated on July 12, 2024. Move to a newer Gemini version.", + "input_token_limit": 12288, + "output_token_limit": 4096, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] + } + }, + { + "id": "gemma-3-12b-it", + "created_at": null, + "display_name": "Gemma 3 12B", + "provider": "gemini", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "other", "supports_vision": false, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 30.0, - "output_price_per_million": 30.0, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": null, + "input_token_limit": 32768, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "tts-1-hd-1106", - "created_at": "2023-11-04T00:18:53+01:00", - "display_name": "TTS-1 HD 1106", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "audio", - "family": "tts1_hd", + "id": "gemma-3-1b-it", + "created_at": null, + "display_name": "Gemma 3 1B", + "provider": "gemini", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "other", "supports_vision": false, "supports_functions": false, "supports_json_mode": false, - "input_price_per_million": 30.0, - "output_price_per_million": 30.0, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "object": "model", - "owned_by": "system" + "version": "001", + "description": null, + "input_token_limit": 32768, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "us.anthropic.claude-3-7-sonnet-20250219-v1:0", + "id": "gemma-3-27b-it", "created_at": null, - "display_name": "Claude 3.7 Sonnet", - "provider": "bedrock", - "context_window": 200000, - "max_tokens": 4096, + "display_name": "Gemma 3 27B", + "provider": "gemini", + "context_window": 131072, + "max_tokens": 8192, + "type": "chat", + "family": "other", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, + "metadata": { + "version": "001", + "description": null, + "input_token_limit": 131072, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] + } + }, + { + "id": "gemma-3-4b-it", + "created_at": null, + "display_name": "Gemma 3 4B", + "provider": "gemini", + "context_window": 32768, + "max_tokens": 8192, + "type": "chat", + "family": "other", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, + "metadata": { + "version": "001", + "description": null, + "input_token_limit": 32768, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] + } + }, + { + "id": "google/gemini-2.0-flash-001", + "created_at": "2025-02-06T00:30:13+09:00", + "display_name": "Google: Gemini 2.0 Flash", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-exp:free", + "created_at": "2024-12-12T02:18:43+09:00", + "display_name": "Google: Gemini 2.0 Flash Experimental (free)", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-lite-001", + "created_at": "2025-02-26T02:56:52+09:00", + "display_name": "Google: Gemini 2.0 Flash Lite", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-thinking-exp-1219:free", + "created_at": "2024-12-20T08:13:46+09:00", + "display_name": "Google: Gemini 2.0 Flash Thinking Experimental (free)", + "provider": "openrouter", + "context_window": 40000, + "max_tokens": 8000, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.0-flash-thinking-exp:free", + "created_at": "2025-01-22T21:11:39+09:00", + "display_name": "Google: Gemini 2.0 Flash Thinking Experimental 01-21 (free)", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 65536, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.5-flash-preview", + "created_at": "2025-04-18T03:31:07+09:00", + "display_name": "Google: Gemini 2.5 Flash Preview", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 65535, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.5-flash-preview:thinking", + "created_at": "2025-04-18T03:31:07+09:00", + "display_name": "Google: Gemini 2.5 Flash Preview (thinking)", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 65535, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.5-pro-exp-03-25:free", + "created_at": "2025-03-26T02:01:39+09:00", + "display_name": "Google: Gemini 2.5 Pro Experimental (free)", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 65535, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-2.5-pro-preview-03-25", + "created_at": "2025-04-18T06:10:06+09:00", + "display_name": "Google: Gemini 2.5 Pro Preview", + "provider": "openrouter", + "context_window": 1048576, + "max_tokens": 65535, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-flash-1.5", + "created_at": "2024-05-14T09:00:00+09:00", + "display_name": "Google: Gemini 1.5 Flash ", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-flash-1.5-8b", + "created_at": "2024-10-03T09:00:00+09:00", + "display_name": "Google: Gemini 1.5 Flash 8B", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-flash-1.5-8b-exp", + "created_at": "2024-08-28T09:00:00+09:00", + "display_name": "Google: Gemini 1.5 Flash 8B Experimental", + "provider": "openrouter", + "context_window": 1000000, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-pro", + "created_at": "2023-12-13T09:00:00+09:00", + "display_name": "Google: Gemini Pro 1.0", + "provider": "openrouter", + "context_window": 32760, + "max_tokens": 8192, + "type": "chat", + "family": "google", + "supports_vision": false, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "google/gemini-pro-1.5", + "created_at": "2024-04-09T09:00:00+09:00", + "display_name": "Google: Gemini 1.5 Pro", + "provider": "openrouter", + "context_window": 2000000, + "max_tokens": 8192, "type": "chat", - "family": "claude3_sonnet", + "family": "google", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 3.0, - "output_price_per_million": 15.0, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "provider_name": "Anthropic", - "customizations_supported": [], - "inference_configurations": [ - "INFERENCE_PROFILE" - ], - "response_streaming_supported": true, - "input_modalities": [ - "TEXT", - "IMAGE" - ], - "output_modalities": [ - "TEXT" - ] + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false } }, { - "id": "veo-2.0-generate-001", - "created_at": null, - "display_name": "Veo 2", - "provider": "gemini", - "context_window": 480, - "max_tokens": 8192, + "id": "google/gemini-pro-vision", + "created_at": "2023-12-13T09:00:00+09:00", + "display_name": "Google: Gemini Pro Vision 1.0", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 2048, "type": "chat", - "family": "other", - "supports_vision": false, + "family": "google", + "supports_vision": true, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.075, - "output_price_per_million": 0.3, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "version": "2.0", - "description": "Vertex served Veo 2 model.", - "input_token_limit": 480, - "output_token_limit": 8192, - "supported_generation_methods": [ - "predictLongRunning" - ] + "tokenizer": "Gemini", + "instruct_type": null, + "moderated": false } }, { - "id": "whisper-1", - "created_at": "2023-02-27T22:13:04+01:00", - "display_name": "Whisper 1", - "provider": "openai", - "context_window": null, - "max_tokens": null, - "type": "audio", - "family": "whisper", + "id": "google/gemma-2-27b-it", + "created_at": "2024-07-13T09:00:00+09:00", + "display_name": "Google: Gemma 2 27B", + "provider": "openrouter", + "context_window": 8192, + "max_tokens": 2048, + "type": "chat", + "family": "google", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": 0.006, - "output_price_per_million": 0.006, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "object": "model", - "owned_by": "openai-internal" + "tokenizer": "Gemini", + "instruct_type": "gemma", + "moderated": false } }, { - "id": "open-r1/olympiccoder-7b:free", - "created_at": "2025-03-15T23:37:45+01:00", - "display_name": "OlympicCoder 7B (free)", + "id": "google/gemma-2-9b-it", + "created_at": "2024-06-28T09:00:00+09:00", + "display_name": "Google: Gemma 2 9B", "provider": "openrouter", - "context_window": 32768, + "context_window": 8192, "max_tokens": null, "type": "chat", - "family": "open-r1", + "family": "google", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", + "tokenizer": "Gemini", + "instruct_type": "gemma", "moderated": false } }, { - "id": "open-r1/olympiccoder-32b:free", - "created_at": "2025-03-15T23:20:28+01:00", - "display_name": "OlympicCoder 32B (free)", + "id": "google/gemma-2-9b-it:free", + "created_at": "2024-06-28T09:00:00+09:00", + "display_name": "Google: Gemma 2 9B (free)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "context_window": 8192, + "max_tokens": 8192, "type": "chat", - "family": "open-r1", + "family": "google", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", + "tokenizer": "Gemini", + "instruct_type": "gemma", "moderated": false } }, { - "id": "steelskull/l3.3-electra-r1-70b", - "created_at": "2025-03-15T20:40:11+01:00", - "display_name": "SteelSkull: L3.3 Electra R1 70B", + "id": "google/gemma-3-12b-it", + "created_at": "2025-03-14T06:50:25+09:00", + "display_name": "Google: Gemma 3 12B", "provider": "openrouter", - "context_window": 128000, + "context_window": 131072, "max_tokens": null, "type": "chat", - "family": "steelskull", - "supports_vision": false, + "family": "google", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", + "tokenizer": "Gemini", + "instruct_type": "gemma", "moderated": false } }, { - "id": "allenai/olmo-2-0325-32b-instruct", - "created_at": "2025-03-14T22:42:36+01:00", - "display_name": "AllenAI: Olmo 2 32B Instruct", + "id": "google/gemma-3-12b-it:free", + "created_at": "2025-03-14T06:50:25+09:00", + "display_name": "Google: Gemma 3 12B (free)", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": 8192, "type": "chat", - "family": "allenai", - "supports_vision": false, + "family": "google", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, + "tokenizer": "Gemini", + "instruct_type": "gemma", "moderated": false } }, { "id": "google/gemma-3-1b-it:free", - "created_at": "2025-03-14T15:45:56+01:00", + "created_at": "2025-03-14T23:45:56+09:00", "display_name": "Google: Gemma 3 1B (free)", "provider": "openrouter", - "context_window": 32000, + "context_window": 32768, "max_tokens": 8192, "type": "chat", "family": "google", @@ -3705,9 +4193,9 @@ } }, { - "id": "google/gemma-3-4b-it:free", - "created_at": "2025-03-13T23:38:30+01:00", - "display_name": "Google: Gemma 3 4B (free)", + "id": "google/gemma-3-27b-it", + "created_at": "2025-03-12T14:12:39+09:00", + "display_name": "Google: Gemma 3 27B", "provider": "openrouter", "context_window": 131072, "max_tokens": 8192, @@ -3725,49 +4213,49 @@ } }, { - "id": "ai21/jamba-1.6-large", - "created_at": "2025-03-13T23:32:53+01:00", - "display_name": "AI21: Jamba 1.6 Large", + "id": "google/gemma-3-27b-it:free", + "created_at": "2025-03-12T14:12:39+09:00", + "display_name": "Google: Gemma 3 27B (free)", "provider": "openrouter", - "context_window": 256000, - "max_tokens": 4096, + "context_window": 96000, + "max_tokens": 8192, "type": "chat", - "family": "ai21", - "supports_vision": false, - "supports_functions": true, + "family": "google", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, + "tokenizer": "Gemini", + "instruct_type": "gemma", "moderated": false } }, { - "id": "ai21/jamba-1.6-mini", - "created_at": "2025-03-13T23:32:51+01:00", - "display_name": "AI21: Jamba Mini 1.6", + "id": "google/gemma-3-4b-it", + "created_at": "2025-03-14T07:38:30+09:00", + "display_name": "Google: Gemma 3 4B", "provider": "openrouter", - "context_window": 256000, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "ai21", - "supports_vision": false, - "supports_functions": true, + "family": "google", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, + "tokenizer": "Gemini", + "instruct_type": "gemma", "moderated": false } }, { - "id": "google/gemma-3-12b-it:free", - "created_at": "2025-03-13T22:50:25+01:00", - "display_name": "Google: Gemma 3 12B (free)", + "id": "google/gemma-3-4b-it:free", + "created_at": "2025-03-14T07:38:30+09:00", + "display_name": "Google: Gemma 3 4B (free)", "provider": "openrouter", "context_window": 131072, "max_tokens": 8192, @@ -3785,994 +4273,970 @@ } }, { - "id": "cohere/command-a", - "created_at": "2025-03-13T20:32:22+01:00", - "display_name": "Cohere: Command A", + "id": "google/learnlm-1.5-pro-experimental:free", + "created_at": "2024-11-22T04:15:51+09:00", + "display_name": "Google: LearnLM 1.5 Pro Experimental (free)", "provider": "openrouter", - "context_window": 256000, + "context_window": 40960, "max_tokens": 8192, "type": "chat", - "family": "cohere", - "supports_vision": false, + "family": "google", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", + "tokenizer": "Gemini", "instruct_type": null, "moderated": false } }, { - "id": "openai/gpt-4o-mini-search-preview", - "created_at": "2025-03-12T23:22:02+01:00", - "display_name": "OpenAI: GPT-4o-mini Search Preview", + "id": "google/palm-2-chat-bison", + "created_at": "2023-07-20T09:00:00+09:00", + "display_name": "Google: PaLM 2 Chat", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 16384, + "context_window": 9216, + "max_tokens": 1024, "type": "chat", - "family": "openai", - "supports_vision": true, + "family": "google", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "PaLM", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "openai/gpt-4o-search-preview", - "created_at": "2025-03-12T23:19:09+01:00", - "display_name": "OpenAI: GPT-4o Search Preview", + "id": "google/palm-2-chat-bison-32k", + "created_at": "2023-11-03T09:00:00+09:00", + "display_name": "Google: PaLM 2 Chat 32k", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 16384, + "context_window": 32768, + "max_tokens": 8192, "type": "chat", - "family": "openai", - "supports_vision": true, + "family": "google", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "PaLM", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "tokyotech-llm/llama-3.1-swallow-70b-instruct-v0.3", - "created_at": "2025-03-12T22:12:16+01:00", - "display_name": "Swallow: Llama 3.1 Swallow 70B Instruct V0.3", + "id": "google/palm-2-codechat-bison", + "created_at": "2023-07-20T09:00:00+09:00", + "display_name": "Google: PaLM 2 Code Chat", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 4096, + "context_window": 7168, + "max_tokens": 1024, "type": "chat", - "family": "tokyotech-llm", + "family": "google", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", + "tokenizer": "PaLM", "instruct_type": null, "moderated": false } }, { - "id": "rekaai/reka-flash-3:free", - "created_at": "2025-03-12T21:53:33+01:00", - "display_name": "Reka: Flash 3 (free)", + "id": "google/palm-2-codechat-bison-32k", + "created_at": "2023-11-03T09:00:00+09:00", + "display_name": "Google: PaLM 2 Code Chat 32k", "provider": "openrouter", "context_window": 32768, - "max_tokens": null, + "max_tokens": 8192, "type": "chat", - "family": "rekaai", + "family": "google", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", + "tokenizer": "PaLM", "instruct_type": null, "moderated": false } }, { - "id": "google/gemma-3-27b-it:free", - "created_at": "2025-03-12T06:12:39+01:00", - "display_name": "Google: Gemma 3 27B (free)", - "provider": "openrouter", - "context_window": 96000, - "max_tokens": 8192, + "id": "gpt-3.5-turbo", + "created_at": "2023-02-28T19:56:42+01:00", + "display_name": "GPT-3.5 Turbo", + "provider": "openai", + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "google", - "supports_vision": true, + "family": "gpt35_turbo", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Gemini", - "instruct_type": "gemma", - "moderated": false + "object": "model", + "owned_by": "openai" } }, { - "id": "google/gemma-3-27b-it", - "created_at": "2025-03-12T06:12:39+01:00", - "display_name": "Google: Gemma 3 27B", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": 8192, + "id": "gpt-3.5-turbo-0125", + "created_at": "2024-01-23T23:19:18+01:00", + "display_name": "GPT-3.5 Turbo 0125", + "provider": "openai", + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "google", - "supports_vision": true, + "family": "gpt35_turbo", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Gemini", - "instruct_type": "gemma", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "thedrummer/anubis-pro-105b-v1", - "created_at": "2025-03-10T22:31:30+01:00", - "display_name": "TheDrummer: Anubis Pro 105B V1", - "provider": "openrouter", - "context_window": 64000, - "max_tokens": 64000, + "id": "gpt-3.5-turbo-1106", + "created_at": "2023-11-02T22:15:48+01:00", + "display_name": "GPT-3.5 Turbo 1106", + "provider": "openai", + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "thedrummer", + "family": "gpt35_turbo", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "latitudegames/wayfarer-large-70b-llama-3.3", - "created_at": "2025-03-10T21:01:25+01:00", - "display_name": "LatitudeGames: Wayfarer Large 70B Llama 3.3", - "provider": "openrouter", - "context_window": 128000, - "max_tokens": 128000, + "id": "gpt-3.5-turbo-16k", + "created_at": "2023-05-11T00:35:02+02:00", + "display_name": "GPT-3.5 Turbo 16k", + "provider": "openai", + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "latitudegames", + "family": "gpt35_turbo", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Llama3", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "openai-internal" } }, { - "id": "thedrummer/skyfall-36b-v2", - "created_at": "2025-03-10T20:56:06+01:00", - "display_name": "TheDrummer: Skyfall 36B V2", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": 32768, + "id": "gpt-3.5-turbo-instruct", + "created_at": "2023-08-24T20:23:47+02:00", + "display_name": "GPT-3.5 Turbo Instruct", + "provider": "openai", + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "thedrummer", + "family": "gpt35_turbo", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "microsoft/phi-4-multimodal-instruct", - "created_at": "2025-03-08T02:11:24+01:00", - "display_name": "Microsoft: Phi 4 Multimodal Instruct", - "provider": "openrouter", - "context_window": 128000, - "max_tokens": null, + "id": "gpt-3.5-turbo-instruct-0914", + "created_at": "2023-09-07T23:34:32+02:00", + "display_name": "GPT-3.5 Turbo Instruct 0914", + "provider": "openai", + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "microsoft", - "supports_vision": true, + "family": "gpt35_turbo", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "perplexity/sonar-reasoning-pro", - "created_at": "2025-03-07T03:08:28+01:00", - "display_name": "Perplexity: Sonar Reasoning Pro", - "provider": "openrouter", - "context_window": 128000, - "max_tokens": null, + "id": "gpt-4", + "created_at": "2023-06-27T18:13:31+02:00", + "display_name": "GPT-4", + "provider": "openai", + "context_window": 8192, + "max_tokens": 8192, "type": "chat", - "family": "perplexity", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "gpt4", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": false, + "input_price_per_million": 10.0, + "output_price_per_million": 30.0, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", - "moderated": false + "object": "model", + "owned_by": "openai" } }, { - "id": "perplexity/sonar-pro", - "created_at": "2025-03-07T02:53:43+01:00", - "display_name": "Perplexity: Sonar Pro", - "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8000, + "id": "gpt-4-0125-preview", + "created_at": "2024-01-23T20:20:12+01:00", + "display_name": "GPT-4 0125 Preview", + "provider": "openai", + "context_window": 4096, + "max_tokens": 16384, "type": "chat", - "family": "perplexity", + "family": "other", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "perplexity/sonar-deep-research", - "created_at": "2025-03-07T02:34:06+01:00", - "display_name": "Perplexity: Sonar Deep Research", - "provider": "openrouter", - "context_window": 200000, - "max_tokens": null, + "id": "gpt-4-0613", + "created_at": "2023-06-12T18:54:56+02:00", + "display_name": "GPT-4 0613", + "provider": "openai", + "context_window": 4096, + "max_tokens": 16384, "type": "chat", - "family": "perplexity", + "family": "other", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", - "moderated": false + "object": "model", + "owned_by": "openai" } }, { - "id": "deepseek/deepseek-r1-zero:free", - "created_at": "2025-03-06T22:43:54+01:00", - "display_name": "DeepSeek: DeepSeek R1 Zero (free)", - "provider": "openrouter", - "context_window": 163840, - "max_tokens": null, + "id": "gpt-4-1106-preview", + "created_at": "2023-11-02T21:33:26+01:00", + "display_name": "GPT-4 1106 Preview", + "provider": "openai", + "context_window": 4096, + "max_tokens": 16384, "type": "chat", - "family": "deepseek", + "family": "other", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwq-32b:free", - "created_at": "2025-03-05T22:06:54+01:00", - "display_name": "Qwen: QwQ 32B (free)", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": 131072, + "id": "gpt-4-turbo", + "created_at": "2024-04-06T01:57:21+02:00", + "display_name": "GPT-4 Turbo", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, + "type": "chat", + "family": "gpt4_turbo", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": false, + "input_price_per_million": 10.0, + "output_price_per_million": 30.0, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "gpt-4-turbo-2024-04-09", + "created_at": "2024-04-08T20:41:17+02:00", + "display_name": "GPT-4 Turbo 20240409", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "qwen", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "gpt4_turbo", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": false, + "input_price_per_million": 10.0, + "output_price_per_million": 30.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "qwq", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwq-32b", - "created_at": "2025-03-05T22:06:54+01:00", - "display_name": "Qwen: QwQ 32B", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "id": "gpt-4-turbo-preview", + "created_at": "2024-01-23T20:22:57+01:00", + "display_name": "GPT-4 Turbo Preview", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "qwen", - "supports_vision": false, - "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "gpt4_turbo", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": false, + "input_price_per_million": 10.0, + "output_price_per_million": 30.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "qwq", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen2.5-32b-instruct", - "created_at": "2025-03-03T23:59:04+01:00", - "display_name": "Qwen: Qwen2.5 32B Instruct", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "id": "gpt-4.1", + "created_at": "2025-04-10T22:22:22+02:00", + "display_name": "GPT-4.1", + "provider": "openai", + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "qwen", - "supports_vision": false, - "supports_functions": false, + "family": "gpt41", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 2.0, + "output_price_per_million": 8.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "moonshotai/moonlight-16b-a3b-instruct:free", - "created_at": "2025-02-28T06:16:41+01:00", - "display_name": "Moonshot AI: Moonlight 16B A3B Instruct (free)", - "provider": "openrouter", - "context_window": 8192, - "max_tokens": null, + "id": "gpt-4.1-2025-04-14", + "created_at": "2025-04-10T22:09:06+02:00", + "display_name": "GPT-4.1 20250414", + "provider": "openai", + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "moonshotai", - "supports_vision": false, - "supports_functions": false, + "family": "gpt41", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 2.0, + "output_price_per_million": 8.0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "nousresearch/deephermes-3-llama-3-8b-preview:free", - "created_at": "2025-02-28T06:09:32+01:00", - "display_name": "Nous: DeepHermes 3 Llama 3 8B Preview (free)", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "id": "gpt-4.1-mini", + "created_at": "2025-04-10T22:49:33+02:00", + "display_name": "GPT-4.1 Mini", + "provider": "openai", + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "nousresearch", - "supports_vision": false, - "supports_functions": false, + "family": "gpt41_mini", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.4, + "output_price_per_million": 1.6, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "openai/gpt-4.5-preview", - "created_at": "2025-02-27T21:23:30+01:00", - "display_name": "OpenAI: GPT-4.5 (Preview)", - "provider": "openrouter", - "context_window": 128000, - "max_tokens": 16384, + "id": "gpt-4.1-mini-2025-04-14", + "created_at": "2025-04-10T22:39:07+02:00", + "display_name": "GPT-4.1 Mini 20250414", + "provider": "openai", + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "openai", + "family": "gpt41_mini", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.4, + "output_price_per_million": 1.6, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "object": "model", + "owned_by": "system" } }, { - "id": "google/gemini-2.0-flash-lite-001", - "created_at": "2025-02-25T18:56:52+01:00", - "display_name": "Google: Gemini 2.0 Flash Lite", - "provider": "openrouter", - "context_window": 1048576, - "max_tokens": 8192, + "id": "gpt-4.1-nano", + "created_at": "2025-04-10T23:48:27+02:00", + "display_name": "GPT-4.1 Nano", + "provider": "openai", + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "google", + "family": "gpt41_nano", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "anthropic/claude-3.7-sonnet:beta", - "created_at": "2025-02-24T19:35:10+01:00", - "display_name": "Anthropic: Claude 3.7 Sonnet (self-moderated)", - "provider": "openrouter", - "context_window": 200000, - "max_tokens": 128000, + "id": "gpt-4.1-nano-2025-04-14", + "created_at": "2025-04-10T23:37:05+02:00", + "display_name": "GPT-4.1 Nano 20250414", + "provider": "openai", + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "anthropic", + "family": "gpt41_nano", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.1, + "output_price_per_million": 0.4, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "anthropic/claude-3.7-sonnet", - "created_at": "2025-02-24T19:35:10+01:00", - "display_name": "Anthropic: Claude 3.7 Sonnet", - "provider": "openrouter", - "context_window": 200000, - "max_tokens": 128000, + "id": "gpt-4.5-preview", + "created_at": "2025-02-27T03:24:19+01:00", + "display_name": "GPT-4.5 Preview", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "anthropic", + "family": "gpt4_turbo", "supports_vision": true, "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 10.0, + "output_price_per_million": 30.0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": true + "object": "model", + "owned_by": "system" } }, { - "id": "anthropic/claude-3.7-sonnet:thinking", - "created_at": "2025-02-24T19:35:10+01:00", - "display_name": "Anthropic: Claude 3.7 Sonnet (thinking)", - "provider": "openrouter", - "context_window": 200000, - "max_tokens": 128000, + "id": "gpt-4.5-preview-2025-02-27", + "created_at": "2025-02-27T03:28:24+01:00", + "display_name": "GPT-4.5 Preview 20250227", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "anthropic", + "family": "gpt4_turbo", "supports_vision": true, "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 10.0, + "output_price_per_million": 30.0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": true + "object": "model", + "owned_by": "system" } }, { - "id": "perplexity/r1-1776", - "created_at": "2025-02-19T23:42:09+01:00", - "display_name": "Perplexity: R1 1776", - "provider": "openrouter", + "id": "gpt-4o", + "created_at": "2024-05-10T20:50:49+02:00", + "display_name": "GPT-4o", + "provider": "openai", "context_window": 128000, - "max_tokens": null, + "max_tokens": 16384, "type": "chat", - "family": "perplexity", - "supports_vision": false, - "supports_functions": false, + "family": "gpt4o", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "DeepSeek", - "instruct_type": "deepseek-r1", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "mistralai/mistral-saba", - "created_at": "2025-02-17T15:40:39+01:00", - "display_name": "Mistral: Saba", - "provider": "openrouter", - "context_window": 32000, - "max_tokens": null, + "id": "gpt-4o-2024-05-13", + "created_at": "2024-05-10T21:08:52+02:00", + "display_name": "GPT-4o 20240513", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "mistralai", - "supports_vision": false, - "supports_functions": false, + "family": "gpt4o", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "cognitivecomputations/dolphin3.0-r1-mistral-24b:free", - "created_at": "2025-02-13T17:01:38+01:00", - "display_name": "Dolphin3.0 R1 Mistral 24B (free)", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "id": "gpt-4o-2024-08-06", + "created_at": "2024-08-05T01:38:39+02:00", + "display_name": "GPT-4o 20240806", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "cognitivecomputations", - "supports_vision": false, - "supports_functions": false, + "family": "gpt4o", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "cognitivecomputations/dolphin3.0-mistral-24b:free", - "created_at": "2025-02-13T16:53:39+01:00", - "display_name": "Dolphin3.0 Mistral 24B (free)", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "id": "gpt-4o-2024-11-20", + "created_at": "2025-02-12T04:39:03+01:00", + "display_name": "GPT-4o 20241120", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "cognitivecomputations", - "supports_vision": false, - "supports_functions": false, + "family": "gpt4o", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "meta-llama/llama-guard-3-8b", - "created_at": "2025-02-13T00:01:58+01:00", - "display_name": "Llama Guard 3 8B", - "provider": "openrouter", - "context_window": 8192, - "max_tokens": null, + "id": "gpt-4o-audio-preview", + "created_at": "2024-09-27T20:07:23+02:00", + "display_name": "GPT-4o-Audio Preview", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "meta-llama", + "family": "gpt4o_audio", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "none", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "openai/o3-mini-high", - "created_at": "2025-02-12T16:03:31+01:00", - "display_name": "OpenAI: o3 Mini High", - "provider": "openrouter", - "context_window": 200000, - "max_tokens": 100000, + "id": "gpt-4o-audio-preview-2024-10-01", + "created_at": "2024-09-27T00:17:22+02:00", + "display_name": "GPT-4o-Audio Preview 20241001", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "openai", + "family": "gpt4o_audio", "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": true + "object": "model", + "owned_by": "system" } }, { - "id": "allenai/llama-3.1-tulu-3-405b", - "created_at": "2025-02-08T23:23:41+01:00", - "display_name": "Llama 3.1 Tulu 3 405B", - "provider": "openrouter", - "context_window": 16384, - "max_tokens": 4096, + "id": "gpt-4o-audio-preview-2024-12-17", + "created_at": "2024-12-12T21:10:39+01:00", + "display_name": "GPT-4o-Audio Preview 20241217", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "allenai", + "family": "gpt4o_audio", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "deepseek/deepseek-r1-distill-llama-8b", - "created_at": "2025-02-07T15:15:18+01:00", - "display_name": "DeepSeek: R1 Distill Llama 8B", - "provider": "openrouter", - "context_window": 32000, - "max_tokens": 32000, + "id": "gpt-4o-mini", + "created_at": "2024-07-17T01:32:21+02:00", + "display_name": "GPT-4o-Mini", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "deepseek", - "supports_vision": false, - "supports_functions": false, + "family": "gpt4o_mini", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "deepseek-r1", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "google/gemini-2.0-flash-001", - "created_at": "2025-02-05T16:30:13+01:00", - "display_name": "Google: Gemini Flash 2.0", - "provider": "openrouter", - "context_window": 1000000, - "max_tokens": 8192, + "id": "gpt-4o-mini-2024-07-18", + "created_at": "2024-07-17T01:31:57+02:00", + "display_name": "GPT-4o-Mini 20240718", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "google", + "family": "gpt4o_mini", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "google/gemini-2.0-flash-lite-preview-02-05:free", - "created_at": "2025-02-05T16:11:02+01:00", - "display_name": "Google: Gemini Flash Lite 2.0 Preview (free)", - "provider": "openrouter", - "context_window": 1000000, - "max_tokens": 8192, + "id": "gpt-4o-mini-audio-preview", + "created_at": "2024-12-16T23:17:04+01:00", + "display_name": "GPT-4o-Mini Audio Preview", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "google", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "gpt4o_mini_audio", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "google/gemini-2.0-pro-exp-02-05:free", - "created_at": "2025-02-05T16:07:24+01:00", - "display_name": "Google: Gemini Pro 2.0 Experimental (free)", - "provider": "openrouter", - "context_window": 2000000, - "max_tokens": 8192, + "id": "gpt-4o-mini-audio-preview-2024-12-17", + "created_at": "2024-12-13T19:52:00+01:00", + "display_name": "GPT-4o-Mini Audio Preview 20241217", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "google", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "gpt4o_mini_audio", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.15, + "output_price_per_million": 0.6, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen-vl-plus", - "created_at": "2025-02-05T05:54:15+01:00", - "display_name": "Qwen: Qwen VL Plus", - "provider": "openrouter", - "context_window": 7500, - "max_tokens": 1500, + "id": "gpt-4o-mini-realtime-preview", + "created_at": "2024-12-16T23:16:20+01:00", + "display_name": "GPT-4o-Mini Realtime Preview", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "qwen", - "supports_vision": true, + "family": "gpt4o_mini_realtime", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.6, + "output_price_per_million": 2.4, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "aion-labs/aion-1.0", - "created_at": "2025-02-04T20:32:37+01:00", - "display_name": "AionLabs: Aion-1.0", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": 32768, + "id": "gpt-4o-mini-realtime-preview-2024-12-17", + "created_at": "2024-12-13T18:56:41+01:00", + "display_name": "GPT-4o-Mini Realtime Preview 20241217", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "aion-labs", + "family": "gpt4o_mini_realtime", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.6, + "output_price_per_million": 2.4, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "aion-labs/aion-1.0-mini", - "created_at": "2025-02-04T20:25:07+01:00", - "display_name": "AionLabs: Aion-1.0-Mini", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": 32768, + "id": "gpt-4o-mini-search-preview", + "created_at": "2025-03-08T00:46:01+01:00", + "display_name": "GPT-4o-Mini Search Preview", + "provider": "openai", + "context_window": 4096, + "max_tokens": 16384, "type": "chat", - "family": "aion-labs", + "family": "other", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "aion-labs/aion-rp-llama-3.1-8b", - "created_at": "2025-02-04T20:18:38+01:00", - "display_name": "AionLabs: Aion-RP 1.0 (8B)", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": 32768, + "id": "gpt-4o-mini-search-preview-2025-03-11", + "created_at": "2025-03-08T00:40:58+01:00", + "display_name": "GPT-4o-Mini Search Preview 20250311", + "provider": "openai", + "context_window": 4096, + "max_tokens": 16384, "type": "chat", - "family": "aion-labs", + "family": "other", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen-vl-max", - "created_at": "2025-02-01T19:25:04+01:00", - "display_name": "Qwen: Qwen VL Max", - "provider": "openrouter", - "context_window": 7500, - "max_tokens": 1500, - "type": "chat", - "family": "qwen", - "supports_vision": true, + "id": "gpt-4o-mini-transcribe", + "created_at": "2025-03-15T20:56:36+01:00", + "display_name": "GPT-4o-Mini Transcribe", + "provider": "openai", + "context_window": 16000, + "max_tokens": 2000, + "type": "audio", + "family": "gpt4o_mini_transcribe", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 1.25, + "output_price_per_million": 5.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen-turbo", - "created_at": "2025-02-01T12:56:14+01:00", - "display_name": "Qwen: Qwen-Turbo", - "provider": "openrouter", - "context_window": 1000000, - "max_tokens": 8192, - "type": "chat", - "family": "qwen", + "id": "gpt-4o-mini-tts", + "created_at": "2025-03-19T18:05:59+01:00", + "display_name": "GPT-4o-Mini Tts", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "audio", + "family": "gpt4o_mini_tts", "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.6, + "output_price_per_million": 12.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen2.5-vl-72b-instruct:free", - "created_at": "2025-02-01T12:45:11+01:00", - "display_name": "Qwen: Qwen2.5 VL 72B Instruct (free)", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": 2048, + "id": "gpt-4o-realtime-preview", + "created_at": "2024-09-30T03:33:18+02:00", + "display_name": "GPT-4o-Realtime Preview", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "qwen", - "supports_vision": true, + "family": "gpt4o_realtime", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 5.0, + "output_price_per_million": 20.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen2.5-vl-72b-instruct", - "created_at": "2025-02-01T12:45:11+01:00", - "display_name": "Qwen: Qwen2.5 VL 72B Instruct", - "provider": "openrouter", - "context_window": 32000, - "max_tokens": null, + "id": "gpt-4o-realtime-preview-2024-10-01", + "created_at": "2024-09-24T00:49:26+02:00", + "display_name": "GPT-4o-Realtime Preview 20241001", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "qwen", - "supports_vision": true, + "family": "gpt4o_realtime", + "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 5.0, + "output_price_per_million": 20.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen-plus", - "created_at": "2025-02-01T12:37:20+01:00", - "display_name": "Qwen: Qwen-Plus", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": 8192, + "id": "gpt-4o-realtime-preview-2024-12-17", + "created_at": "2024-12-11T20:30:30+01:00", + "display_name": "GPT-4o-Realtime Preview 20241217", + "provider": "openai", + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "qwen", + "family": "gpt4o_realtime", "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 5.0, + "output_price_per_million": 20.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "qwen/qwen-max", - "created_at": "2025-02-01T10:31:29+01:00", - "display_name": "Qwen: Qwen-Max ", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": 8192, + "id": "gpt-4o-search-preview", + "created_at": "2025-03-08T00:05:20+01:00", + "display_name": "GPT-4o Search Preview", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "qwen", - "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "gpt4o_search", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "openai/o3-mini", - "created_at": "2025-01-31T20:28:41+01:00", - "display_name": "OpenAI: o3 Mini", - "provider": "openrouter", - "context_window": 200000, - "max_tokens": 100000, + "id": "gpt-4o-search-preview-2025-03-11", + "created_at": "2025-03-07T23:56:10+01:00", + "display_name": "GPT-4o Search Preview 20250311", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "openai", - "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "gpt4o_search", + "supports_vision": true, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": true + "object": "model", + "owned_by": "system" } }, { - "id": "deepseek/deepseek-r1-distill-qwen-1.5b", - "created_at": "2025-01-31T13:54:27+01:00", - "display_name": "DeepSeek: R1 Distill Qwen 1.5B", - "provider": "openrouter", - "context_window": 131072, - "max_tokens": 32768, - "type": "chat", - "family": "deepseek", + "id": "gpt-4o-transcribe", + "created_at": "2025-03-15T20:54:23+01:00", + "display_name": "GPT-4o-Transcribe", + "provider": "openai", + "context_window": 128000, + "max_tokens": 16384, + "type": "audio", + "family": "gpt4o_transcribe", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 2.5, + "output_price_per_million": 10.0, "metadata": { - "tokenizer": "Other", - "instruct_type": "deepseek-r1", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "mistralai/mistral-small-24b-instruct-2501:free", - "created_at": "2025-01-30T17:43:29+01:00", - "display_name": "Mistral: Mistral Small 3 (free)", + "id": "gryphe/mythomax-l2-13b", + "created_at": "2023-07-02T09:00:00+09:00", + "display_name": "MythoMax 13B", "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "context_window": 4096, + "max_tokens": 4096, "type": "chat", - "family": "mistralai", + "family": "gryphe", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": null, + "tokenizer": "Llama2", + "instruct_type": "alpaca", "moderated": false } }, { - "id": "mistralai/mistral-small-24b-instruct-2501", - "created_at": "2025-01-30T17:43:29+01:00", - "display_name": "Mistral: Mistral Small 3", + "id": "huggingfaceh4/zephyr-7b-beta:free", + "created_at": "2023-08-02T09:00:00+09:00", + "display_name": "Hugging Face: Zephyr 7B (free)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 8192, + "context_window": 4096, + "max_tokens": 2048, "type": "chat", - "family": "mistralai", + "family": "huggingfaceh4", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, @@ -4780,279 +5244,293 @@ "output_price_per_million": 0, "metadata": { "tokenizer": "Mistral", - "instruct_type": null, + "instruct_type": "zephyr", "moderated": false } }, { - "id": "deepseek/deepseek-r1-distill-qwen-32b:free", - "created_at": "2025-01-30T00:53:50+01:00", - "display_name": "DeepSeek: R1 Distill Qwen 32B (free)", - "provider": "openrouter", - "context_window": 16000, - "max_tokens": 16000, - "type": "chat", - "family": "deepseek", - "supports_vision": false, + "id": "imagen-3.0-generate-002", + "created_at": null, + "display_name": "Imagen 3.0 002 model", + "provider": "gemini", + "context_window": 480, + "max_tokens": 8192, + "type": "image", + "family": "imagen3", + "supports_vision": true, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "deepseek-r1", - "moderated": false + "version": "002", + "description": "Vertex served Imagen 3.0 002 model", + "input_token_limit": 480, + "output_token_limit": 8192, + "supported_generation_methods": [ + "predict" + ] } }, { - "id": "deepseek/deepseek-r1-distill-qwen-32b", - "created_at": "2025-01-30T00:53:50+01:00", - "display_name": "DeepSeek: R1 Distill Qwen 32B", + "id": "infermatic/mn-inferor-12b", + "created_at": "2024-11-13T11:20:28+09:00", + "display_name": "Infermatic: Mistral Nemo Inferor 12B", "provider": "openrouter", - "context_window": 131072, - "max_tokens": 8192, + "context_window": 16384, + "max_tokens": 4096, "type": "chat", - "family": "deepseek", + "family": "infermatic", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "deepseek-r1", + "tokenizer": "Mistral", + "instruct_type": "mistral", "moderated": false } }, { - "id": "deepseek/deepseek-r1-distill-qwen-14b:free", - "created_at": "2025-01-30T00:39:00+01:00", - "display_name": "DeepSeek: R1 Distill Qwen 14B (free)", + "id": "inflection/inflection-3-pi", + "created_at": "2024-10-11T09:00:00+09:00", + "display_name": "Inflection: Inflection 3 Pi", "provider": "openrouter", - "context_window": 64000, - "max_tokens": null, + "context_window": 8000, + "max_tokens": 1024, "type": "chat", - "family": "deepseek", + "family": "inflection", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "deepseek-r1", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "deepseek/deepseek-r1-distill-qwen-14b", - "created_at": "2025-01-30T00:39:00+01:00", - "display_name": "DeepSeek: R1 Distill Qwen 14B", + "id": "inflection/inflection-3-productivity", + "created_at": "2024-10-11T09:00:00+09:00", + "display_name": "Inflection: Inflection 3 Productivity", "provider": "openrouter", - "context_window": 64000, - "max_tokens": 64000, + "context_window": 8000, + "max_tokens": 1024, "type": "chat", - "family": "deepseek", + "family": "inflection", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "deepseek-r1", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "perplexity/sonar-reasoning", - "created_at": "2025-01-29T07:11:47+01:00", - "display_name": "Perplexity: Sonar Reasoning", + "id": "jondurbin/airoboros-l2-70b", + "created_at": "2023-10-29T09:00:00+09:00", + "display_name": "Airoboros 70B", "provider": "openrouter", - "context_window": 127000, + "context_window": 4096, "max_tokens": null, "type": "chat", - "family": "perplexity", + "family": "jondurbin", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, + "tokenizer": "Llama2", + "instruct_type": "airoboros", "moderated": false } }, { - "id": "perplexity/sonar", - "created_at": "2025-01-27T22:36:48+01:00", - "display_name": "Perplexity: Sonar", + "id": "latitudegames/wayfarer-large-70b-llama-3.3", + "created_at": "2025-03-11T05:01:25+09:00", + "display_name": "LatitudeGames: Wayfarer Large 70B Llama 3.3", "provider": "openrouter", - "context_window": 127072, - "max_tokens": null, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "perplexity", + "family": "latitudegames", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", + "tokenizer": "Llama3", "instruct_type": null, "moderated": false } }, { - "id": "liquid/lfm-7b", - "created_at": "2025-01-25T13:08:03+01:00", - "display_name": "Liquid: LFM 7B", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "id": "learnlm-1.5-pro-experimental", + "created_at": null, + "display_name": "LearnLM 1.5 Pro Experimental", + "provider": "gemini", + "context_window": 32767, + "max_tokens": 8192, "type": "chat", - "family": "liquid", - "supports_vision": false, - "supports_functions": false, + "family": "other", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "tokenizer": "Other", - "instruct_type": "chatml", - "moderated": false + "version": "001", + "description": "Alias that points to the most recent stable version of Gemini 1.5 Pro, our mid-size multimodal model that supports up to 2 million tokens.", + "input_token_limit": 32767, + "output_token_limit": 8192, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "liquid/lfm-3b", - "created_at": "2025-01-25T13:01:41+01:00", - "display_name": "Liquid: LFM 3B", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "id": "learnlm-2.0-flash-experimental", + "created_at": null, + "display_name": "LearnLM 2.0 Flash Experimental", + "provider": "gemini", + "context_window": 1048576, + "max_tokens": 32768, "type": "chat", - "family": "liquid", - "supports_vision": false, - "supports_functions": false, + "family": "other", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "tokenizer": "Other", - "instruct_type": "chatml", - "moderated": false + "version": "2.0", + "description": "LearnLM 2.0 Flash Experimental", + "input_token_limit": 1048576, + "output_token_limit": 32768, + "supported_generation_methods": [ + "generateContent", + "countTokens" + ] } }, { - "id": "deepseek/deepseek-r1-distill-llama-70b:free", - "created_at": "2025-01-23T21:12:49+01:00", - "display_name": "DeepSeek: R1 Distill Llama 70B (free)", + "id": "liquid/lfm-3b", + "created_at": "2025-01-25T21:01:41+09:00", + "display_name": "Liquid: LFM 3B", "provider": "openrouter", - "context_window": 128000, + "context_window": 32768, "max_tokens": null, "type": "chat", - "family": "deepseek", + "family": "liquid", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "deepseek-r1", + "tokenizer": "Other", + "instruct_type": "chatml", "moderated": false } }, { - "id": "deepseek/deepseek-r1-distill-llama-70b", - "created_at": "2025-01-23T21:12:49+01:00", - "display_name": "DeepSeek: R1 Distill Llama 70B", + "id": "liquid/lfm-40b", + "created_at": "2024-09-30T09:00:00+09:00", + "display_name": "Liquid: LFM 40B MoE", "provider": "openrouter", - "context_window": 131072, - "max_tokens": 8192, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "deepseek", + "family": "liquid", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "deepseek-r1", + "tokenizer": "Other", + "instruct_type": "chatml", "moderated": false } }, { - "id": "google/gemini-2.0-flash-thinking-exp:free", - "created_at": "2025-01-22T13:11:39+01:00", - "display_name": "Google: Gemini 2.0 Flash Thinking Experimental 01-21 (free)", + "id": "liquid/lfm-7b", + "created_at": "2025-01-25T21:08:03+09:00", + "display_name": "Liquid: LFM 7B", "provider": "openrouter", - "context_window": 1048576, - "max_tokens": 65536, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "google", - "supports_vision": true, + "family": "liquid", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Other", + "instruct_type": "chatml", "moderated": false } }, { - "id": "deepseek/deepseek-r1:free", - "created_at": "2025-01-20T14:51:35+01:00", - "display_name": "DeepSeek: R1 (free)", + "id": "mancer/weaver", + "created_at": "2023-08-02T09:00:00+09:00", + "display_name": "Mancer: Weaver (alpha)", "provider": "openrouter", - "context_window": 163840, - "max_tokens": null, + "context_window": 8000, + "max_tokens": 1000, "type": "chat", - "family": "deepseek", + "family": "mancer", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "DeepSeek", - "instruct_type": "deepseek-r1", + "tokenizer": "Llama2", + "instruct_type": "alpaca", "moderated": false } }, { - "id": "deepseek/deepseek-r1", - "created_at": "2025-01-20T14:51:35+01:00", - "display_name": "DeepSeek: R1", + "id": "meta-llama/llama-2-13b-chat", + "created_at": "2023-06-20T09:00:00+09:00", + "display_name": "Meta: Llama 2 13B Chat", "provider": "openrouter", - "context_window": 64000, - "max_tokens": 16000, + "context_window": 4096, + "max_tokens": 2048, "type": "chat", - "family": "deepseek", + "family": "meta-llama", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "DeepSeek", - "instruct_type": "deepseek-r1", + "tokenizer": "Llama2", + "instruct_type": "llama2", "moderated": false } }, { - "id": "sophosympatheia/rogue-rose-103b-v0.2:free", - "created_at": "2025-01-18T11:13:09+01:00", - "display_name": "Rogue Rose 103B v0.2 (free)", + "id": "meta-llama/llama-2-70b-chat", + "created_at": "2023-06-20T09:00:00+09:00", + "display_name": "Meta: Llama 2 70B Chat", "provider": "openrouter", "context_window": 4096, "max_tokens": null, "type": "chat", - "family": "sophosympatheia", + "family": "meta-llama", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, @@ -5060,160 +5538,160 @@ "output_price_per_million": 0, "metadata": { "tokenizer": "Llama2", - "instruct_type": "vicuna", + "instruct_type": "llama2", "moderated": false } }, { - "id": "minimax/minimax-01", - "created_at": "2025-01-15T05:31:02+01:00", - "display_name": "MiniMax: MiniMax-01", + "id": "meta-llama/llama-3-70b-instruct", + "created_at": "2024-04-18T09:00:00+09:00", + "display_name": "Meta: Llama 3 70B Instruct", "provider": "openrouter", - "context_window": 1000192, - "max_tokens": 1000192, + "context_window": 8192, + "max_tokens": 8192, "type": "chat", - "family": "minimax", - "supports_vision": true, - "supports_functions": false, + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "mistralai/codestral-2501", - "created_at": "2025-01-14T23:58:42+01:00", - "display_name": "Mistral: Codestral 2501", + "id": "meta-llama/llama-3-8b-instruct", + "created_at": "2024-04-18T09:00:00+09:00", + "display_name": "Meta: Llama 3 8B Instruct", "provider": "openrouter", - "context_window": 256000, - "max_tokens": null, + "context_window": 8192, + "max_tokens": 8192, "type": "chat", - "family": "mistralai", + "family": "meta-llama", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "microsoft/phi-4", - "created_at": "2025-01-10T07:17:52+01:00", - "display_name": "Microsoft: Phi 4", + "id": "meta-llama/llama-3.1-405b", + "created_at": "2024-08-02T09:00:00+09:00", + "display_name": "Meta: Llama 3.1 405B (base)", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 8192, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "microsoft", + "family": "meta-llama", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "none", "moderated": false } }, { - "id": "sao10k/l3.1-70b-hanami-x1", - "created_at": "2025-01-08T03:20:54+01:00", - "display_name": "Sao10K: Llama 3.1 70B Hanami x1", + "id": "meta-llama/llama-3.1-405b-instruct", + "created_at": "2024-07-23T09:00:00+09:00", + "display_name": "Meta: Llama 3.1 405B Instruct", "provider": "openrouter", - "context_window": 16000, - "max_tokens": null, + "context_window": 32768, + "max_tokens": 8192, "type": "chat", - "family": "sao10k", + "family": "meta-llama", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { "tokenizer": "Llama3", - "instruct_type": null, + "instruct_type": "llama3", "moderated": false } }, { - "id": "deepseek/deepseek-chat:free", - "created_at": "2024-12-26T20:28:40+01:00", - "display_name": "DeepSeek: DeepSeek V3 (free)", + "id": "meta-llama/llama-3.1-70b-instruct", + "created_at": "2024-07-23T09:00:00+09:00", + "display_name": "Meta: Llama 3.1 70B Instruct", "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "context_window": 32768, + "max_tokens": 32768, "type": "chat", - "family": "deepseek", + "family": "meta-llama", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "DeepSeek", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "deepseek/deepseek-chat", - "created_at": "2024-12-26T20:28:40+01:00", - "display_name": "DeepSeek: DeepSeek V3", + "id": "meta-llama/llama-3.1-8b-instruct", + "created_at": "2024-07-23T09:00:00+09:00", + "display_name": "Meta: Llama 3.1 8B Instruct", "provider": "openrouter", - "context_window": 64000, - "max_tokens": 16000, + "context_window": 131072, + "max_tokens": 8192, "type": "chat", - "family": "deepseek", + "family": "meta-llama", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "DeepSeek", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "google/gemini-2.0-flash-thinking-exp-1219:free", - "created_at": "2024-12-20T00:13:46+01:00", - "display_name": "Google: Gemini 2.0 Flash Thinking Experimental (free)", + "id": "meta-llama/llama-3.1-8b-instruct:free", + "created_at": "2024-07-23T09:00:00+09:00", + "display_name": "Meta: Llama 3.1 8B Instruct (free)", "provider": "openrouter", - "context_window": 40000, - "max_tokens": 8000, + "context_window": 131072, + "max_tokens": 4096, "type": "chat", - "family": "google", - "supports_vision": true, + "family": "meta-llama", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "sao10k/l3.3-euryale-70b", - "created_at": "2024-12-18T16:32:08+01:00", - "display_name": "Sao10K: Llama 3.3 Euryale 70B", + "id": "meta-llama/llama-3.2-11b-vision-instruct", + "created_at": "2024-09-25T09:00:00+09:00", + "display_name": "Meta: Llama 3.2 11B Vision Instruct", "provider": "openrouter", "context_window": 131072, "max_tokens": 8192, "type": "chat", - "family": "sao10k", - "supports_vision": false, + "family": "meta-llama", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, @@ -5225,34 +5703,34 @@ } }, { - "id": "openai/o1", - "created_at": "2024-12-17T19:26:39+01:00", - "display_name": "OpenAI: o1", + "id": "meta-llama/llama-3.2-11b-vision-instruct:free", + "created_at": "2024-09-25T09:00:00+09:00", + "display_name": "Meta: Llama 3.2 11B Vision Instruct (free)", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 100000, + "context_window": 131072, + "max_tokens": 2048, "type": "chat", - "family": "openai", + "family": "meta-llama", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false } }, { - "id": "eva-unit-01/eva-llama-3.33-70b", - "created_at": "2024-12-16T20:28:23+01:00", - "display_name": "EVA Llama 3.33 70B", + "id": "meta-llama/llama-3.2-1b-instruct", + "created_at": "2024-09-25T09:00:00+09:00", + "display_name": "Meta: Llama 3.2 1B Instruct", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "eva-unit-01", + "family": "meta-llama", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, @@ -5265,112 +5743,112 @@ } }, { - "id": "x-ai/grok-2-vision-1212", - "created_at": "2024-12-15T05:35:38+01:00", - "display_name": "xAI: Grok 2 Vision 1212", + "id": "meta-llama/llama-3.2-1b-instruct:free", + "created_at": "2024-09-25T09:00:00+09:00", + "display_name": "Meta: Llama 3.2 1B Instruct (free)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "x-ai", - "supports_vision": true, + "family": "meta-llama", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Grok", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "x-ai/grok-2-1212", - "created_at": "2024-12-15T04:20:14+01:00", - "display_name": "xAI: Grok 2 1212", + "id": "meta-llama/llama-3.2-3b-instruct", + "created_at": "2024-09-25T09:00:00+09:00", + "display_name": "Meta: Llama 3.2 3B Instruct", "provider": "openrouter", "context_window": 131072, - "max_tokens": null, + "max_tokens": 131072, "type": "chat", - "family": "x-ai", + "family": "meta-llama", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Grok", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "cohere/command-r7b-12-2024", - "created_at": "2024-12-14T07:35:52+01:00", - "display_name": "Cohere: Command R7B (12-2024)", + "id": "meta-llama/llama-3.2-3b-instruct:free", + "created_at": "2024-09-25T09:00:00+09:00", + "display_name": "Meta: Llama 3.2 3B Instruct (free)", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4000, + "context_window": 20000, + "max_tokens": 20000, "type": "chat", - "family": "cohere", + "family": "meta-llama", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "google/gemini-2.0-flash-exp:free", - "created_at": "2024-12-11T18:18:43+01:00", - "display_name": "Google: Gemini Flash 2.0 Experimental (free)", + "id": "meta-llama/llama-3.2-90b-vision-instruct", + "created_at": "2024-09-25T09:00:00+09:00", + "display_name": "Meta: Llama 3.2 90B Vision Instruct", "provider": "openrouter", - "context_window": 1048576, - "max_tokens": 8192, + "context_window": 4096, + "max_tokens": 4096, "type": "chat", - "family": "google", + "family": "meta-llama", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "google/gemini-exp-1206:free", - "created_at": "2024-12-06T18:55:13+01:00", - "display_name": "Google: Gemini Experimental 1206 (free)", + "id": "meta-llama/llama-3.3-70b-instruct", + "created_at": "2024-12-07T02:28:57+09:00", + "display_name": "Meta: Llama 3.3 70B Instruct", "provider": "openrouter", - "context_window": 2097152, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "google", - "supports_vision": true, - "supports_functions": false, + "family": "meta-llama", + "supports_vision": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { "id": "meta-llama/llama-3.3-70b-instruct:free", - "created_at": "2024-12-06T18:28:57+01:00", + "created_at": "2024-12-07T02:28:57+09:00", "display_name": "Meta: Llama 3.3 70B Instruct (free)", "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "context_window": 8000, + "max_tokens": 8000, "type": "chat", "family": "meta-llama", "supports_vision": false, @@ -5385,376 +5863,396 @@ } }, { - "id": "meta-llama/llama-3.3-70b-instruct", - "created_at": "2024-12-06T18:28:57+01:00", - "display_name": "Meta: Llama 3.3 70B Instruct", + "id": "meta-llama/llama-4-maverick", + "created_at": "2025-04-06T04:37:02+09:00", + "display_name": "Meta: Llama 4 Maverick", "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "context_window": 1048576, + "max_tokens": 1048576, "type": "chat", "family": "meta-llama", - "supports_vision": false, + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "amazon/nova-lite-v1", - "created_at": "2024-12-05T23:22:43+01:00", - "display_name": "Amazon: Nova Lite 1.0", + "id": "meta-llama/llama-4-maverick:free", + "created_at": "2025-04-06T04:37:02+09:00", + "display_name": "Meta: Llama 4 Maverick (free)", "provider": "openrouter", - "context_window": 300000, - "max_tokens": 5120, + "context_window": 256000, + "max_tokens": null, "type": "chat", - "family": "amazon", + "family": "meta-llama", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Nova", + "tokenizer": "Other", "instruct_type": null, "moderated": false } }, { - "id": "amazon/nova-micro-v1", - "created_at": "2024-12-05T23:20:37+01:00", - "display_name": "Amazon: Nova Micro 1.0", + "id": "meta-llama/llama-4-scout", + "created_at": "2025-04-06T04:31:59+09:00", + "display_name": "Meta: Llama 4 Scout", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 5120, + "context_window": 327680, + "max_tokens": 8192, "type": "chat", - "family": "amazon", - "supports_vision": false, + "family": "meta-llama", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Nova", + "tokenizer": "Other", "instruct_type": null, "moderated": false } }, { - "id": "amazon/nova-pro-v1", - "created_at": "2024-12-05T23:05:03+01:00", - "display_name": "Amazon: Nova Pro 1.0", + "id": "meta-llama/llama-4-scout:free", + "created_at": "2025-04-06T04:31:59+09:00", + "display_name": "Meta: Llama 4 Scout (free)", "provider": "openrouter", - "context_window": 300000, - "max_tokens": 5120, + "context_window": 512000, + "max_tokens": null, "type": "chat", - "family": "amazon", + "family": "meta-llama", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Nova", + "tokenizer": "Other", "instruct_type": null, "moderated": false } }, { - "id": "qwen/qwq-32b-preview:free", - "created_at": "2024-11-28T01:42:21+01:00", - "display_name": "Qwen: QwQ 32B Preview (free)", + "id": "meta-llama/llama-guard-2-8b", + "created_at": "2024-05-13T09:00:00+09:00", + "display_name": "Meta: LlamaGuard 2 8B", "provider": "openrouter", - "context_window": 16384, + "context_window": 8192, "max_tokens": null, "type": "chat", - "family": "qwen", + "family": "meta-llama", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "none", "moderated": false } }, { - "id": "qwen/qwq-32b-preview", - "created_at": "2024-11-28T01:42:21+01:00", - "display_name": "Qwen: QwQ 32B Preview", + "id": "meta-llama/llama-guard-3-8b", + "created_at": "2025-02-13T08:01:58+09:00", + "display_name": "Llama Guard 3 8B", "provider": "openrouter", - "context_window": 32768, + "context_window": 8192, "max_tokens": null, "type": "chat", - "family": "qwen", + "family": "meta-llama", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "none", "moderated": false } }, { - "id": "google/learnlm-1.5-pro-experimental:free", - "created_at": "2024-11-21T20:15:51+01:00", - "display_name": "Google: LearnLM 1.5 Pro Experimental (free)", + "id": "microsoft/phi-3-medium-128k-instruct", + "created_at": "2024-05-24T09:00:00+09:00", + "display_name": "Microsoft: Phi-3 Medium 128K Instruct", "provider": "openrouter", - "context_window": 40960, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": null, "type": "chat", - "family": "google", - "supports_vision": true, - "supports_functions": false, + "family": "microsoft", + "supports_vision": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Other", + "instruct_type": "phi3", "moderated": false } }, { - "id": "eva-unit-01/eva-qwen-2.5-72b", - "created_at": "2024-11-21T18:36:46+01:00", - "display_name": "EVA Qwen2.5 72B", + "id": "microsoft/phi-3-mini-128k-instruct", + "created_at": "2024-05-26T09:00:00+09:00", + "display_name": "Microsoft: Phi-3 Mini 128K Instruct", "provider": "openrouter", - "context_window": 32000, + "context_window": 128000, "max_tokens": null, "type": "chat", - "family": "eva-unit-01", + "family": "microsoft", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Other", + "instruct_type": "phi3", "moderated": false } }, { - "id": "openai/gpt-4o-2024-11-20", - "created_at": "2024-11-20T19:33:14+01:00", - "display_name": "OpenAI: GPT-4o (2024-11-20)", + "id": "microsoft/phi-3.5-mini-128k-instruct", + "created_at": "2024-08-21T09:00:00+09:00", + "display_name": "Microsoft: Phi-3.5 Mini 128K Instruct", "provider": "openrouter", "context_window": 128000, - "max_tokens": 16384, + "max_tokens": null, "type": "chat", - "family": "openai", - "supports_vision": true, + "family": "microsoft", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Other", + "instruct_type": "phi3", + "moderated": false + } + }, + { + "id": "microsoft/phi-4", + "created_at": "2025-01-10T15:17:52+09:00", + "display_name": "Microsoft: Phi 4", + "provider": "openrouter", + "context_window": 16384, + "max_tokens": 8192, + "type": "chat", + "family": "microsoft", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, + "metadata": { + "tokenizer": "Other", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "mistralai/mistral-large-2411", - "created_at": "2024-11-19T02:11:25+01:00", - "display_name": "Mistral Large 2411", + "id": "microsoft/phi-4-multimodal-instruct", + "created_at": "2025-03-08T10:11:24+09:00", + "display_name": "Microsoft: Phi 4 Multimodal Instruct", "provider": "openrouter", - "context_window": 128000, + "context_window": 131072, "max_tokens": null, "type": "chat", - "family": "mistralai", - "supports_vision": false, - "supports_functions": true, + "family": "microsoft", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", + "tokenizer": "Other", "instruct_type": null, "moderated": false } }, { - "id": "mistralai/mistral-large-2407", - "created_at": "2024-11-19T02:06:55+01:00", - "display_name": "Mistral Large 2407", + "id": "microsoft/wizardlm-2-7b", + "created_at": "2024-04-16T09:00:00+09:00", + "display_name": "WizardLM-2 7B", "provider": "openrouter", - "context_window": 128000, + "context_window": 32000, "max_tokens": null, "type": "chat", - "family": "mistralai", + "family": "microsoft", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { "tokenizer": "Mistral", - "instruct_type": null, + "instruct_type": "vicuna", "moderated": false } }, { - "id": "mistralai/pixtral-large-2411", - "created_at": "2024-11-19T01:49:48+01:00", - "display_name": "Mistral: Pixtral Large 2411", + "id": "microsoft/wizardlm-2-8x22b", + "created_at": "2024-04-16T09:00:00+09:00", + "display_name": "WizardLM-2 8x22B", "provider": "openrouter", - "context_window": 128000, - "max_tokens": null, + "context_window": 65536, + "max_tokens": 8192, "type": "chat", - "family": "mistralai", - "supports_vision": true, - "supports_functions": true, + "family": "microsoft", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { "tokenizer": "Mistral", - "instruct_type": null, + "instruct_type": "vicuna", "moderated": false } }, { - "id": "x-ai/grok-vision-beta", - "created_at": "2024-11-19T01:37:04+01:00", - "display_name": "xAI: Grok Vision Beta", + "id": "minimax/minimax-01", + "created_at": "2025-01-15T13:31:02+09:00", + "display_name": "MiniMax: MiniMax-01", "provider": "openrouter", - "context_window": 8192, - "max_tokens": null, + "context_window": 1000192, + "max_tokens": 1000192, "type": "chat", - "family": "x-ai", + "family": "minimax", "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Grok", + "tokenizer": "Other", "instruct_type": null, "moderated": false } }, { - "id": "infermatic/mn-inferor-12b", - "created_at": "2024-11-13T03:20:28+01:00", - "display_name": "Infermatic: Mistral Nemo Inferor 12B", + "id": "mistral/ministral-8b", + "created_at": "2025-03-31T23:07:01+09:00", + "display_name": "Mistral: Ministral 8B", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "infermatic", + "family": "mistral", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { "tokenizer": "Mistral", - "instruct_type": "mistral", + "instruct_type": null, "moderated": false } }, { - "id": "qwen/qwen-2.5-coder-32b-instruct:free", - "created_at": "2024-11-12T00:40:00+01:00", - "display_name": "Qwen2.5 Coder 32B Instruct (free)", + "id": "mistralai/codestral-2501", + "created_at": "2025-01-15T07:58:42+09:00", + "display_name": "Mistral: Codestral 2501", "provider": "openrouter", - "context_window": 32768, + "context_window": 262144, "max_tokens": null, "type": "chat", - "family": "qwen", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, - { - "id": "qwen/qwen-2.5-coder-32b-instruct", - "created_at": "2024-11-12T00:40:00+01:00", - "display_name": "Qwen2.5 Coder 32B Instruct", + { + "id": "mistralai/codestral-mamba", + "created_at": "2024-07-19T09:00:00+09:00", + "display_name": "Mistral: Codestral Mamba", "provider": "openrouter", - "context_window": 33000, - "max_tokens": 3000, + "context_window": 262144, + "max_tokens": null, "type": "chat", - "family": "qwen", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "raifle/sorcererlm-8x22b", - "created_at": "2024-11-08T23:31:23+01:00", - "display_name": "SorcererLM 8x22B", + "id": "mistralai/ministral-3b", + "created_at": "2024-10-17T09:00:00+09:00", + "display_name": "Mistral: Ministral 3B", "provider": "openrouter", - "context_window": 16000, + "context_window": 131072, "max_tokens": null, "type": "chat", - "family": "raifle", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { "tokenizer": "Mistral", - "instruct_type": "vicuna", + "instruct_type": null, "moderated": false } }, { - "id": "eva-unit-01/eva-qwen-2.5-32b", - "created_at": "2024-11-08T23:27:27+01:00", - "display_name": "EVA Qwen2.5 32B", + "id": "mistralai/ministral-8b", + "created_at": "2024-10-17T09:00:00+09:00", + "display_name": "Mistral: Ministral 8B", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": null, "type": "chat", - "family": "eva-unit-01", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "thedrummer/unslopnemo-12b", - "created_at": "2024-11-08T23:04:08+01:00", - "display_name": "Unslopnemo 12B", + "id": "mistralai/mistral-7b-instruct", + "created_at": "2024-05-27T09:00:00+09:00", + "display_name": "Mistral: Mistral 7B Instruct", "provider": "openrouter", - "context_window": 32000, + "context_window": 32768, "max_tokens": null, "type": "chat", - "family": "thedrummer", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, @@ -5765,211 +6263,211 @@ } }, { - "id": "anthropic/claude-3.5-haiku-20241022:beta", - "created_at": "2024-11-04T01:00:00+01:00", - "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22) (self-moderated)", + "id": "mistralai/mistral-7b-instruct-v0.1", + "created_at": "2023-09-28T09:00:00+09:00", + "display_name": "Mistral: Mistral 7B Instruct v0.1", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8192, + "context_window": 32768, + "max_tokens": 2048, "type": "chat", - "family": "anthropic", + "family": "mistralai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, + "tokenizer": "Mistral", + "instruct_type": "mistral", "moderated": false } }, { - "id": "anthropic/claude-3.5-haiku-20241022", - "created_at": "2024-11-04T01:00:00+01:00", - "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "id": "mistralai/mistral-7b-instruct-v0.2", + "created_at": "2023-12-28T09:00:00+09:00", + "display_name": "Mistral: Mistral 7B Instruct v0.2", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8192, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "anthropic", + "family": "mistralai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": true + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false } }, { - "id": "anthropic/claude-3.5-haiku:beta", - "created_at": "2024-11-04T01:00:00+01:00", - "display_name": "Anthropic: Claude 3.5 Haiku (self-moderated)", + "id": "mistralai/mistral-7b-instruct-v0.3", + "created_at": "2024-05-27T09:00:00+09:00", + "display_name": "Mistral: Mistral 7B Instruct v0.3", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8192, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "anthropic", + "family": "mistralai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, + "tokenizer": "Mistral", + "instruct_type": "mistral", "moderated": false } }, { - "id": "anthropic/claude-3.5-haiku", - "created_at": "2024-11-04T01:00:00+01:00", - "display_name": "Anthropic: Claude 3.5 Haiku", + "id": "mistralai/mistral-7b-instruct:free", + "created_at": "2024-05-27T09:00:00+09:00", + "display_name": "Mistral: Mistral 7B Instruct (free)", "provider": "openrouter", - "context_window": 200000, + "context_window": 32768, "max_tokens": 8192, "type": "chat", - "family": "anthropic", + "family": "mistralai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": true + "tokenizer": "Mistral", + "instruct_type": "mistral", + "moderated": false } }, { - "id": "neversleep/llama-3.1-lumimaid-70b", - "created_at": "2024-10-22T02:00:00+02:00", - "display_name": "NeverSleep: Lumimaid v0.2 70B", + "id": "mistralai/mistral-large", + "created_at": "2024-02-26T09:00:00+09:00", + "display_name": "Mistral Large", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 2048, + "context_window": 128000, + "max_tokens": null, "type": "chat", - "family": "neversleep", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "anthracite-org/magnum-v4-72b", - "created_at": "2024-10-22T02:00:00+02:00", - "display_name": "Magnum v4 72B", + "id": "mistralai/mistral-large-2407", + "created_at": "2024-11-19T10:06:55+09:00", + "display_name": "Mistral Large 2407", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 1024, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "anthracite-org", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "anthropic/claude-3.5-sonnet:beta", - "created_at": "2024-10-22T02:00:00+02:00", - "display_name": "Anthropic: Claude 3.5 Sonnet (self-moderated)", + "id": "mistralai/mistral-large-2411", + "created_at": "2024-11-19T10:11:25+09:00", + "display_name": "Mistral Large 2411", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8192, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "anthropic", - "supports_vision": true, + "family": "mistralai", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Mistral", "instruct_type": null, "moderated": false } }, { - "id": "anthropic/claude-3.5-sonnet", - "created_at": "2024-10-22T02:00:00+02:00", - "display_name": "Anthropic: Claude 3.5 Sonnet", + "id": "mistralai/mistral-medium", + "created_at": "2024-01-10T09:00:00+09:00", + "display_name": "Mistral Medium", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8192, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "anthropic", - "supports_vision": true, + "family": "mistralai", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Mistral", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "x-ai/grok-beta", - "created_at": "2024-10-20T02:00:00+02:00", - "display_name": "xAI: Grok Beta", + "id": "mistralai/mistral-nemo", + "created_at": "2024-07-19T09:00:00+09:00", + "display_name": "Mistral: Mistral Nemo", "provider": "openrouter", "context_window": 131072, - "max_tokens": null, + "max_tokens": 8192, "type": "chat", - "family": "x-ai", + "family": "mistralai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Grok", - "instruct_type": null, + "tokenizer": "Mistral", + "instruct_type": "mistral", "moderated": false } }, { - "id": "mistralai/ministral-8b", - "created_at": "2024-10-17T02:00:00+02:00", - "display_name": "Mistral: Ministral 8B", + "id": "mistralai/mistral-nemo:free", + "created_at": "2024-07-19T09:00:00+09:00", + "display_name": "Mistral: Mistral Nemo (free)", "provider": "openrouter", "context_window": 128000, - "max_tokens": null, + "max_tokens": 128000, "type": "chat", "family": "mistralai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { "tokenizer": "Mistral", - "instruct_type": null, + "instruct_type": "mistral", "moderated": false } }, { - "id": "mistralai/ministral-3b", - "created_at": "2024-10-17T02:00:00+02:00", - "display_name": "Mistral: Ministral 3B", + "id": "mistralai/mistral-saba", + "created_at": "2025-02-17T23:40:39+09:00", + "display_name": "Mistral: Saba", "provider": "openrouter", - "context_window": 128000, + "context_window": 32768, "max_tokens": null, "type": "chat", "family": "mistralai", @@ -5985,254 +6483,254 @@ } }, { - "id": "qwen/qwen-2.5-7b-instruct", - "created_at": "2024-10-16T02:00:00+02:00", - "display_name": "Qwen2.5 7B Instruct", + "id": "mistralai/mistral-small", + "created_at": "2024-01-10T09:00:00+09:00", + "display_name": "Mistral Small", "provider": "openrouter", "context_window": 32768, - "max_tokens": 8192, + "max_tokens": null, "type": "chat", - "family": "qwen", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "nvidia/llama-3.1-nemotron-70b-instruct:free", - "created_at": "2024-10-15T02:00:00+02:00", - "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct (free)", + "id": "mistralai/mistral-small-24b-instruct-2501", + "created_at": "2025-01-31T01:43:29+09:00", + "display_name": "Mistral: Mistral Small 3", "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "context_window": 32768, + "max_tokens": 8192, "type": "chat", - "family": "nvidia", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "nvidia/llama-3.1-nemotron-70b-instruct", - "created_at": "2024-10-15T02:00:00+02:00", - "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + "id": "mistralai/mistral-small-24b-instruct-2501:free", + "created_at": "2025-01-31T01:43:29+09:00", + "display_name": "Mistral: Mistral Small 3 (free)", "provider": "openrouter", - "context_window": 131000, - "max_tokens": 131000, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "nvidia", + "family": "mistralai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "inflection/inflection-3-pi", - "created_at": "2024-10-11T02:00:00+02:00", - "display_name": "Inflection: Inflection 3 Pi", + "id": "mistralai/mistral-small-3.1-24b-instruct", + "created_at": "2025-03-18T04:15:37+09:00", + "display_name": "Mistral: Mistral Small 3.1 24B", "provider": "openrouter", - "context_window": 8000, - "max_tokens": 1024, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "inflection", - "supports_vision": false, - "supports_functions": false, + "family": "mistralai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", + "tokenizer": "Mistral", "instruct_type": null, "moderated": false } }, { - "id": "inflection/inflection-3-productivity", - "created_at": "2024-10-11T02:00:00+02:00", - "display_name": "Inflection: Inflection 3 Productivity", + "id": "mistralai/mistral-small-3.1-24b-instruct:free", + "created_at": "2025-03-18T04:15:37+09:00", + "display_name": "Mistral: Mistral Small 3.1 24B (free)", "provider": "openrouter", - "context_window": 8000, - "max_tokens": 1024, + "context_window": 96000, + "max_tokens": 96000, "type": "chat", - "family": "inflection", - "supports_vision": false, - "supports_functions": false, + "family": "mistralai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", + "tokenizer": "Mistral", "instruct_type": null, "moderated": false } }, { - "id": "google/gemini-flash-1.5-8b", - "created_at": "2024-10-03T02:00:00+02:00", - "display_name": "Google: Gemini Flash 1.5 8B", + "id": "mistralai/mistral-tiny", + "created_at": "2024-01-10T09:00:00+09:00", + "display_name": "Mistral Tiny", "provider": "openrouter", - "context_window": 1000000, - "max_tokens": 8192, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "google", - "supports_vision": true, + "family": "mistralai", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", + "tokenizer": "Mistral", "instruct_type": null, "moderated": false } }, { - "id": "anthracite-org/magnum-v2-72b", - "created_at": "2024-09-30T02:00:00+02:00", - "display_name": "Magnum v2 72B", + "id": "mistralai/mixtral-8x22b-instruct", + "created_at": "2024-04-17T09:00:00+09:00", + "display_name": "Mistral: Mixtral 8x22B Instruct", "provider": "openrouter", - "context_window": 32768, + "context_window": 65536, "max_tokens": null, "type": "chat", - "family": "anthracite-org", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": "mistral", "moderated": false } }, { - "id": "liquid/lfm-40b", - "created_at": "2024-09-30T02:00:00+02:00", - "display_name": "Liquid: LFM 40B MoE", + "id": "mistralai/mixtral-8x7b-instruct", + "created_at": "2023-12-10T09:00:00+09:00", + "display_name": "Mistral: Mixtral 8x7B Instruct", "provider": "openrouter", "context_window": 32768, - "max_tokens": null, + "max_tokens": 8192, "type": "chat", - "family": "liquid", + "family": "mistralai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": "mistral", "moderated": false } }, { - "id": "thedrummer/rocinante-12b", - "created_at": "2024-09-30T02:00:00+02:00", - "display_name": "Rocinante 12B", + "id": "mistralai/pixtral-12b", + "created_at": "2024-09-10T09:00:00+09:00", + "display_name": "Mistral: Pixtral 12B", "provider": "openrouter", "context_window": 32768, "max_tokens": null, "type": "chat", - "family": "thedrummer", - "supports_vision": false, - "supports_functions": false, + "family": "mistralai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-3.2-3b-instruct:free", - "created_at": "2024-09-25T02:00:00+02:00", - "display_name": "Meta: Llama 3.2 3B Instruct (free)", + "id": "mistralai/pixtral-large-2411", + "created_at": "2024-11-19T09:49:48+09:00", + "display_name": "Mistral: Pixtral Large 2411", "provider": "openrouter", - "context_window": 20000, - "max_tokens": 20000, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "meta-llama", - "supports_vision": false, - "supports_functions": false, + "family": "mistralai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Mistral", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-3.2-3b-instruct", - "created_at": "2024-09-25T02:00:00+02:00", - "display_name": "Meta: Llama 3.2 3B Instruct", + "id": "moonshotai/kimi-vl-a3b-thinking:free", + "created_at": "2025-04-11T02:07:21+09:00", + "display_name": "Moonshot AI: Kimi VL A3B Thinking (free)", "provider": "openrouter", - "context_window": 131000, - "max_tokens": 131000, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "meta-llama", - "supports_vision": false, + "family": "moonshotai", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-3.2-1b-instruct:free", - "created_at": "2024-09-25T02:00:00+02:00", - "display_name": "Meta: Llama 3.2 1B Instruct (free)", + "id": "moonshotai/moonlight-16b-a3b-instruct:free", + "created_at": "2025-02-28T14:16:41+09:00", + "display_name": "Moonshot AI: Moonlight 16B A3B Instruct (free)", "provider": "openrouter", - "context_window": 131072, + "context_window": 8192, "max_tokens": null, "type": "chat", - "family": "meta-llama", + "family": "moonshotai", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-3.2-1b-instruct", - "created_at": "2024-09-25T02:00:00+02:00", - "display_name": "Meta: Llama 3.2 1B Instruct", + "id": "neversleep/llama-3-lumimaid-70b", + "created_at": "2024-05-16T09:00:00+09:00", + "display_name": "NeverSleep: Llama 3 Lumimaid 70B", "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "context_window": 8192, + "max_tokens": 2048, "type": "chat", - "family": "meta-llama", + "family": "neversleep", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, @@ -6245,15 +6743,15 @@ } }, { - "id": "meta-llama/llama-3.2-90b-vision-instruct", - "created_at": "2024-09-25T02:00:00+02:00", - "display_name": "Meta: Llama 3.2 90B Vision Instruct", + "id": "neversleep/llama-3-lumimaid-8b", + "created_at": "2024-05-04T09:00:00+09:00", + "display_name": "NeverSleep: Llama 3 Lumimaid 8B", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 4096, + "context_window": 24576, + "max_tokens": 2048, "type": "chat", - "family": "meta-llama", - "supports_vision": true, + "family": "neversleep", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, @@ -6265,15 +6763,15 @@ } }, { - "id": "meta-llama/llama-3.2-11b-vision-instruct:free", - "created_at": "2024-09-25T02:00:00+02:00", - "display_name": "Meta: Llama 3.2 11B Vision Instruct (free)", + "id": "neversleep/llama-3-lumimaid-8b:extended", + "created_at": "2024-05-04T09:00:00+09:00", + "display_name": "NeverSleep: Llama 3 Lumimaid 8B (extended)", "provider": "openrouter", - "context_window": 131072, + "context_window": 24576, "max_tokens": 2048, "type": "chat", - "family": "meta-llama", - "supports_vision": true, + "family": "neversleep", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, @@ -6285,15 +6783,15 @@ } }, { - "id": "meta-llama/llama-3.2-11b-vision-instruct", - "created_at": "2024-09-25T02:00:00+02:00", - "display_name": "Meta: Llama 3.2 11B Vision Instruct", + "id": "neversleep/llama-3.1-lumimaid-70b", + "created_at": "2024-10-22T09:00:00+09:00", + "display_name": "NeverSleep: Lumimaid v0.2 70B", "provider": "openrouter", "context_window": 16384, - "max_tokens": 16384, + "max_tokens": 2048, "type": "chat", - "family": "meta-llama", - "supports_vision": true, + "family": "neversleep", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, @@ -6305,735 +6803,781 @@ } }, { - "id": "qwen/qwen-2.5-72b-instruct:free", - "created_at": "2024-09-19T02:00:00+02:00", - "display_name": "Qwen2.5 72B Instruct (free)", + "id": "neversleep/llama-3.1-lumimaid-8b", + "created_at": "2024-09-15T09:00:00+09:00", + "display_name": "NeverSleep: Lumimaid v0.2 8B", "provider": "openrouter", "context_window": 32768, - "max_tokens": null, + "max_tokens": 2048, "type": "chat", - "family": "qwen", + "family": "neversleep", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "qwen/qwen-2.5-72b-instruct", - "created_at": "2024-09-19T02:00:00+02:00", - "display_name": "Qwen2.5 72B Instruct", + "id": "neversleep/noromaid-20b", + "created_at": "2023-11-26T09:00:00+09:00", + "display_name": "Noromaid 20B", "provider": "openrouter", - "context_window": 128000, - "max_tokens": null, + "context_window": 8192, + "max_tokens": 2048, "type": "chat", - "family": "qwen", + "family": "neversleep", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", + "tokenizer": "Llama2", + "instruct_type": "alpaca", "moderated": false } }, { - "id": "qwen/qwen-2.5-vl-72b-instruct", - "created_at": "2024-09-18T02:00:00+02:00", - "display_name": "Qwen: Qwen2.5-VL 72B Instruct", + "id": "nothingiisreal/mn-celeste-12b", + "created_at": "2024-08-02T09:00:00+09:00", + "display_name": "Mistral Nemo 12B Celeste", "provider": "openrouter", - "context_window": 4096, - "max_tokens": null, + "context_window": 16384, + "max_tokens": 4096, "type": "chat", - "family": "qwen", - "supports_vision": true, + "family": "nothingiisreal", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": null, + "tokenizer": "Mistral", + "instruct_type": "chatml", "moderated": false } }, { - "id": "neversleep/llama-3.1-lumimaid-8b", - "created_at": "2024-09-15T02:00:00+02:00", - "display_name": "NeverSleep: Lumimaid v0.2 8B", + "id": "nousresearch/deephermes-3-llama-3-8b-preview:free", + "created_at": "2025-02-28T14:09:32+09:00", + "display_name": "Nous: DeepHermes 3 Llama 3 8B Preview (free)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 2048, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "neversleep", + "family": "nousresearch", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "openai/o1-mini-2024-09-12", - "created_at": "2024-09-12T02:00:00+02:00", - "display_name": "OpenAI: o1-mini (2024-09-12)", + "id": "nousresearch/hermes-2-pro-llama-3-8b", + "created_at": "2024-05-27T09:00:00+09:00", + "display_name": "NousResearch: Hermes 2 Pro - Llama-3 8B", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 65536, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "openai", + "family": "nousresearch", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama3", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "openai/o1-preview", - "created_at": "2024-09-12T02:00:00+02:00", - "display_name": "OpenAI: o1-preview", + "id": "nousresearch/hermes-3-llama-3.1-405b", + "created_at": "2024-08-16T09:00:00+09:00", + "display_name": "Nous: Hermes 3 405B Instruct", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 32768, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "openai", + "family": "nousresearch", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama3", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "openai/o1-preview-2024-09-12", - "created_at": "2024-09-12T02:00:00+02:00", - "display_name": "OpenAI: o1-preview (2024-09-12)", + "id": "nousresearch/hermes-3-llama-3.1-70b", + "created_at": "2024-08-18T09:00:00+09:00", + "display_name": "Nous: Hermes 3 70B Instruct", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 32768, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "openai", + "family": "nousresearch", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama3", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "openai/o1-mini", - "created_at": "2024-09-12T02:00:00+02:00", - "display_name": "OpenAI: o1-mini", + "id": "nousresearch/nous-hermes-2-mixtral-8x7b-dpo", + "created_at": "2024-01-16T09:00:00+09:00", + "display_name": "Nous: Hermes 2 Mixtral 8x7B DPO", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 65536, + "context_window": 32768, + "max_tokens": 2048, "type": "chat", - "family": "openai", + "family": "nousresearch", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Mistral", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "mistralai/pixtral-12b", - "created_at": "2024-09-10T02:00:00+02:00", - "display_name": "Mistral: Pixtral 12B", + "id": "nousresearch/nous-hermes-llama2-13b", + "created_at": "2023-08-20T09:00:00+09:00", + "display_name": "Nous: Hermes 13B", "provider": "openrouter", "context_window": 4096, "max_tokens": null, "type": "chat", - "family": "mistralai", - "supports_vision": true, - "supports_functions": true, + "family": "nousresearch", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": null, + "tokenizer": "Llama2", + "instruct_type": "alpaca", "moderated": false } }, { - "id": "cohere/command-r-08-2024", - "created_at": "2024-08-30T02:00:00+02:00", - "display_name": "Cohere: Command R (08-2024)", + "id": "nvidia/llama-3.1-nemotron-70b-instruct", + "created_at": "2024-10-15T09:00:00+09:00", + "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4000, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "cohere", + "family": "nvidia", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "cohere/command-r-plus-08-2024", - "created_at": "2024-08-30T02:00:00+02:00", - "display_name": "Cohere: Command R+ (08-2024)", + "id": "nvidia/llama-3.1-nemotron-70b-instruct:free", + "created_at": "2024-10-15T09:00:00+09:00", + "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct (free)", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4000, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "cohere", + "family": "nvidia", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "sao10k/l3.1-euryale-70b", - "created_at": "2024-08-28T02:00:00+02:00", - "display_name": "Sao10K: Llama 3.1 Euryale 70B v2.2", + "id": "nvidia/llama-3.1-nemotron-nano-8b-v1:free", + "created_at": "2025-04-08T23:51:13+09:00", + "display_name": "NVIDIA: Llama 3.1 Nemotron Nano 8B v1 (free)", "provider": "openrouter", "context_window": 131072, - "max_tokens": 8192, + "max_tokens": null, "type": "chat", - "family": "sao10k", + "family": "nvidia", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "google/gemini-flash-1.5-8b-exp", - "created_at": "2024-08-28T02:00:00+02:00", - "display_name": "Google: Gemini Flash 1.5 8B Experimental", + "id": "nvidia/llama-3.1-nemotron-ultra-253b-v1:free", + "created_at": "2025-04-08T21:24:19+09:00", + "display_name": "NVIDIA: Llama 3.1 Nemotron Ultra 253B v1 (free)", "provider": "openrouter", - "context_window": 1000000, - "max_tokens": 8192, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "google", - "supports_vision": true, - "supports_functions": true, + "family": "nvidia", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", + "tokenizer": "Llama3", "instruct_type": null, "moderated": false } }, { - "id": "qwen/qwen-2.5-vl-7b-instruct", - "created_at": "2024-08-28T02:00:00+02:00", - "display_name": "Qwen: Qwen2.5-VL 7B Instruct", + "id": "nvidia/llama-3.3-nemotron-super-49b-v1:free", + "created_at": "2025-04-08T22:38:14+09:00", + "display_name": "NVIDIA: Llama 3.3 Nemotron Super 49B v1 (free)", "provider": "openrouter", - "context_window": 4096, + "context_window": 131072, "max_tokens": null, "type": "chat", - "family": "qwen", - "supports_vision": true, + "family": "nvidia", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", + "tokenizer": "Other", "instruct_type": null, "moderated": false } }, { - "id": "ai21/jamba-1-5-large", - "created_at": "2024-08-23T02:00:00+02:00", - "display_name": "AI21: Jamba 1.5 Large", - "provider": "openrouter", - "context_window": 256000, - "max_tokens": 4096, + "id": "o1", + "created_at": "2024-12-16T20:03:36+01:00", + "display_name": "O1", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "ai21", - "supports_vision": false, + "family": "o1", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 15.0, + "output_price_per_million": 60.0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "ai21/jamba-1-5-mini", - "created_at": "2024-08-23T02:00:00+02:00", - "display_name": "AI21: Jamba 1.5 Mini", - "provider": "openrouter", - "context_window": 256000, - "max_tokens": 4096, + "id": "o1-2024-12-17", + "created_at": "2024-12-16T06:29:36+01:00", + "display_name": "O1-20241217", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "ai21", - "supports_vision": false, + "family": "o1", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 15.0, + "output_price_per_million": 60.0, "metadata": { - "tokenizer": "Other", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "microsoft/phi-3.5-mini-128k-instruct", - "created_at": "2024-08-21T02:00:00+02:00", - "display_name": "Microsoft: Phi-3.5 Mini 128K Instruct", - "provider": "openrouter", + "id": "o1-mini", + "created_at": "2024-09-06T20:56:48+02:00", + "display_name": "O1-Mini", + "provider": "openai", "context_window": 128000, - "max_tokens": null, + "max_tokens": 65536, "type": "chat", - "family": "microsoft", + "family": "o1_mini", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 1.1, + "output_price_per_million": 4.4, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o1-mini-2024-09-12", + "created_at": "2024-09-06T20:56:19+02:00", + "display_name": "O1-Mini 20240912", + "provider": "openai", + "context_window": 128000, + "max_tokens": 65536, + "type": "chat", + "family": "o1_mini", "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 1.1, + "output_price_per_million": 4.4, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o1-preview", + "created_at": "2024-09-06T20:54:57+02:00", + "display_name": "O1-Preview", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, + "type": "chat", + "family": "o1", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 15.0, + "output_price_per_million": 60.0, "metadata": { - "tokenizer": "Other", - "instruct_type": "phi3", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "nousresearch/hermes-3-llama-3.1-70b", - "created_at": "2024-08-18T02:00:00+02:00", - "display_name": "Nous: Hermes 3 70B Instruct", - "provider": "openrouter", - "context_window": 131000, - "max_tokens": 131000, + "id": "o1-preview-2024-09-12", + "created_at": "2024-09-06T20:54:25+02:00", + "display_name": "O1-Preview 20240912", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "nousresearch", - "supports_vision": false, + "family": "o1", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 15.0, + "output_price_per_million": 60.0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "chatml", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "nousresearch/hermes-3-llama-3.1-405b", - "created_at": "2024-08-16T02:00:00+02:00", - "display_name": "Nous: Hermes 3 405B Instruct", - "provider": "openrouter", - "context_window": 131000, - "max_tokens": 131000, + "id": "o1-pro", + "created_at": "2025-03-17T23:49:51+01:00", + "display_name": "O1-Pro", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "nousresearch", - "supports_vision": false, - "supports_functions": false, + "family": "o1_pro", + "supports_vision": true, + "supports_functions": true, + "supports_json_mode": true, + "input_price_per_million": 150.0, + "output_price_per_million": 600.0, + "metadata": { + "object": "model", + "owned_by": "system" + } + }, + { + "id": "o1-pro-2025-03-19", + "created_at": "2025-03-17T23:45:04+01:00", + "display_name": "O1-Pro 20250319", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, + "type": "chat", + "family": "o1_pro", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 150.0, + "output_price_per_million": 600.0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "chatml", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "openai/chatgpt-4o-latest", - "created_at": "2024-08-14T02:00:00+02:00", - "display_name": "OpenAI: ChatGPT-4o", - "provider": "openrouter", - "context_window": 128000, - "max_tokens": 16384, + "id": "o3-mini", + "created_at": "2025-01-17T21:39:43+01:00", + "display_name": "O3-Mini", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "openai", - "supports_vision": true, - "supports_functions": false, + "family": "o3_mini", + "supports_vision": false, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 1.1, + "output_price_per_million": 4.4, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "object": "model", + "owned_by": "system" } }, { - "id": "sao10k/l3-lunaris-8b", - "created_at": "2024-08-13T02:00:00+02:00", - "display_name": "Sao10K: Llama 3 8B Lunaris", - "provider": "openrouter", - "context_window": 8192, - "max_tokens": 8192, + "id": "o3-mini-2025-01-31", + "created_at": "2025-01-27T21:36:40+01:00", + "display_name": "O3-Mini 20250131", + "provider": "openai", + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "sao10k", + "family": "o3_mini", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 1.1, + "output_price_per_million": 4.4, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "aetherwiing/mn-starcannon-12b", - "created_at": "2024-08-13T02:00:00+02:00", - "display_name": "Aetherwiing: Starcannon 12B", - "provider": "openrouter", - "context_window": 16384, - "max_tokens": 4096, + "id": "o4-mini", + "created_at": "2025-04-09T21:02:31+02:00", + "display_name": "O4 Mini", + "provider": "openai", + "context_window": 4096, + "max_tokens": 16384, "type": "chat", - "family": "aetherwiing", + "family": "other", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "chatml", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "openai/gpt-4o-2024-08-06", - "created_at": "2024-08-06T02:00:00+02:00", - "display_name": "OpenAI: GPT-4o (2024-08-06)", - "provider": "openrouter", - "context_window": 128000, + "id": "o4-mini-2025-04-16", + "created_at": "2025-04-08T19:31:46+02:00", + "display_name": "O4 Mini 20250416", + "provider": "openai", + "context_window": 4096, "max_tokens": 16384, "type": "chat", - "family": "openai", - "supports_vision": true, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "family": "other", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.5, + "output_price_per_million": 1.5, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "object": "model", + "owned_by": "system" } }, { - "id": "meta-llama/llama-3.1-405b", - "created_at": "2024-08-02T02:00:00+02:00", - "display_name": "Meta: Llama 3.1 405B (base)", - "provider": "openrouter", - "context_window": 32768, + "id": "omni-moderation-2024-09-26", + "created_at": "2024-11-27T20:07:46+01:00", + "display_name": "Omni Moderation 20240926", + "provider": "openai", + "context_window": null, "max_tokens": null, - "type": "chat", - "family": "meta-llama", - "supports_vision": false, + "type": "moderation", + "family": "moderation", + "supports_vision": true, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.0, + "output_price_per_million": 0.0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "none", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "nothingiisreal/mn-celeste-12b", - "created_at": "2024-08-02T02:00:00+02:00", - "display_name": "Mistral Nemo 12B Celeste", - "provider": "openrouter", - "context_window": 16384, - "max_tokens": 4096, - "type": "chat", - "family": "nothingiisreal", - "supports_vision": false, + "id": "omni-moderation-latest", + "created_at": "2024-11-15T17:47:45+01:00", + "display_name": "Omni Moderation Latest", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "moderation", + "family": "moderation", + "supports_vision": true, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.0, + "output_price_per_million": 0.0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "chatml", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "perplexity/llama-3.1-sonar-small-128k-chat", - "created_at": "2024-08-01T02:00:00+02:00", - "display_name": "Perplexity: Llama 3.1 Sonar 8B", + "id": "open-r1/olympiccoder-32b:free", + "created_at": "2025-03-16T07:20:28+09:00", + "display_name": "OlympicCoder 32B (free)", "provider": "openrouter", - "context_window": 131072, + "context_window": 32768, "max_tokens": null, "type": "chat", - "family": "perplexity", + "family": "open-r1", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": null, + "tokenizer": "Other", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "perplexity/llama-3.1-sonar-large-128k-chat", - "created_at": "2024-08-01T02:00:00+02:00", - "display_name": "Perplexity: Llama 3.1 Sonar 70B", + "id": "open-r1/olympiccoder-7b:free", + "created_at": "2025-03-16T07:37:45+09:00", + "display_name": "OlympicCoder 7B (free)", "provider": "openrouter", - "context_window": 131072, + "context_window": 32768, "max_tokens": null, "type": "chat", - "family": "perplexity", + "family": "open-r1", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": null, + "tokenizer": "Other", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "perplexity/llama-3.1-sonar-large-128k-online", - "created_at": "2024-08-01T02:00:00+02:00", - "display_name": "Perplexity: Llama 3.1 Sonar 70B Online", + "id": "openai/chatgpt-4o-latest", + "created_at": "2024-08-14T09:00:00+09:00", + "display_name": "OpenAI: ChatGPT-4o", "provider": "openrouter", - "context_window": 127072, - "max_tokens": null, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "perplexity", - "supports_vision": false, + "family": "openai", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", + "tokenizer": "GPT", "instruct_type": null, - "moderated": false + "moderated": true } }, { - "id": "perplexity/llama-3.1-sonar-small-128k-online", - "created_at": "2024-08-01T02:00:00+02:00", - "display_name": "Perplexity: Llama 3.1 Sonar 8B Online", + "id": "openai/gpt-3.5-turbo", + "created_at": "2023-05-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-3.5 Turbo", "provider": "openrouter", - "context_window": 127072, - "max_tokens": null, + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "perplexity", + "family": "openai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", + "tokenizer": "GPT", "instruct_type": null, - "moderated": false + "moderated": true } }, { - "id": "meta-llama/llama-3.1-405b-instruct", - "created_at": "2024-07-23T02:00:00+02:00", - "display_name": "Meta: Llama 3.1 405B Instruct", + "id": "openai/gpt-3.5-turbo-0125", + "created_at": "2023-05-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-3.5 Turbo 16k", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 8192, + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "meta-llama", + "family": "openai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "meta-llama/llama-3.1-8b-instruct:free", - "created_at": "2024-07-23T02:00:00+02:00", - "display_name": "Meta: Llama 3.1 8B Instruct (free)", + "id": "openai/gpt-3.5-turbo-0613", + "created_at": "2024-01-25T09:00:00+09:00", + "display_name": "OpenAI: GPT-3.5 Turbo (older v0613)", "provider": "openrouter", - "context_window": 131072, - "max_tokens": null, + "context_window": 4095, + "max_tokens": 4096, "type": "chat", - "family": "meta-llama", + "family": "openai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "GPT", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-3.1-8b-instruct", - "created_at": "2024-07-23T02:00:00+02:00", - "display_name": "Meta: Llama 3.1 8B Instruct", + "id": "openai/gpt-3.5-turbo-1106", + "created_at": "2023-11-06T09:00:00+09:00", + "display_name": "OpenAI: GPT-3.5 Turbo 16k (older v1106)", "provider": "openrouter", - "context_window": 131072, - "max_tokens": 8192, + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "meta-llama", + "family": "openai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "meta-llama/llama-3.1-70b-instruct", - "created_at": "2024-07-23T02:00:00+02:00", - "display_name": "Meta: Llama 3.1 70B Instruct", + "id": "openai/gpt-3.5-turbo-16k", + "created_at": "2023-08-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-3.5 Turbo 16k", "provider": "openrouter", - "context_window": 131072, - "max_tokens": 8192, + "context_window": 16385, + "max_tokens": 4096, "type": "chat", - "family": "meta-llama", + "family": "openai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "mistralai/mistral-nemo:free", - "created_at": "2024-07-19T02:00:00+02:00", - "display_name": "Mistral: Mistral Nemo (free)", + "id": "openai/gpt-3.5-turbo-instruct", + "created_at": "2023-09-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-3.5 Turbo Instruct", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 128000, + "context_window": 4095, + "max_tokens": 4096, "type": "chat", - "family": "mistralai", + "family": "openai", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", - "moderated": false + "tokenizer": "GPT", + "instruct_type": "chatml", + "moderated": true } }, { - "id": "mistralai/mistral-nemo", - "created_at": "2024-07-19T02:00:00+02:00", - "display_name": "Mistral: Mistral Nemo", + "id": "openai/gpt-4", + "created_at": "2023-05-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-4", "provider": "openrouter", - "context_window": 131072, - "max_tokens": 8192, + "context_window": 8191, + "max_tokens": 4096, "type": "chat", - "family": "mistralai", + "family": "openai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "mistralai/codestral-mamba", - "created_at": "2024-07-19T02:00:00+02:00", - "display_name": "Mistral: Codestral Mamba", + "id": "openai/gpt-4-0314", + "created_at": "2023-05-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-4 (older v0314)", "provider": "openrouter", - "context_window": 256000, - "max_tokens": null, + "context_window": 8191, + "max_tokens": 4096, "type": "chat", - "family": "mistralai", + "family": "openai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", + "tokenizer": "GPT", "instruct_type": null, - "moderated": false + "moderated": true } }, { - "id": "openai/gpt-4o-mini", - "created_at": "2024-07-18T02:00:00+02:00", - "display_name": "OpenAI: GPT-4o-mini", + "id": "openai/gpt-4-1106-preview", + "created_at": "2023-11-06T09:00:00+09:00", + "display_name": "OpenAI: GPT-4 Turbo (older v1106)", "provider": "openrouter", "context_window": 128000, - "max_tokens": 16384, + "max_tokens": 4096, "type": "chat", "family": "openai", - "supports_vision": true, + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, @@ -7045,15 +7589,15 @@ } }, { - "id": "openai/gpt-4o-mini-2024-07-18", - "created_at": "2024-07-18T02:00:00+02:00", - "display_name": "OpenAI: GPT-4o-mini (2024-07-18)", + "id": "openai/gpt-4-32k", + "created_at": "2023-08-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-4 32k", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 16384, + "context_window": 32767, + "max_tokens": 4096, "type": "chat", "family": "openai", - "supports_vision": true, + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, @@ -7065,512 +7609,512 @@ } }, { - "id": "qwen/qwen-2-7b-instruct:free", - "created_at": "2024-07-16T02:00:00+02:00", - "display_name": "Qwen 2 7B Instruct (free)", + "id": "openai/gpt-4-32k-0314", + "created_at": "2023-08-28T09:00:00+09:00", + "display_name": "OpenAI: GPT-4 32k (older v0314)", "provider": "openrouter", - "context_window": 8192, + "context_window": 32767, "max_tokens": 4096, "type": "chat", - "family": "qwen", + "family": "openai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "qwen/qwen-2-7b-instruct", - "created_at": "2024-07-16T02:00:00+02:00", - "display_name": "Qwen 2 7B Instruct", + "id": "openai/gpt-4-turbo", + "created_at": "2024-04-09T09:00:00+09:00", + "display_name": "OpenAI: GPT-4 Turbo", "provider": "openrouter", - "context_window": 32768, - "max_tokens": null, + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "qwen", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "google/gemma-2-27b-it", - "created_at": "2024-07-13T02:00:00+02:00", - "display_name": "Google: Gemma 2 27B", + "id": "openai/gpt-4-turbo-preview", + "created_at": "2024-01-25T09:00:00+09:00", + "display_name": "OpenAI: GPT-4 Turbo Preview", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "google", + "family": "openai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": "gemma", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "alpindale/magnum-72b", - "created_at": "2024-07-11T02:00:00+02:00", - "display_name": "Magnum 72B", + "id": "openai/gpt-4.1", + "created_at": "2025-04-15T02:23:05+09:00", + "display_name": "OpenAI: GPT-4.1", "provider": "openrouter", - "context_window": 16384, - "max_tokens": 1024, + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "alpindale", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "google/gemma-2-9b-it:free", - "created_at": "2024-06-28T02:00:00+02:00", - "display_name": "Google: Gemma 2 9B (free)", + "id": "openai/gpt-4.1-mini", + "created_at": "2025-04-15T02:23:01+09:00", + "display_name": "OpenAI: GPT-4.1 Mini", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 4096, + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "google", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": "gemma", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "google/gemma-2-9b-it", - "created_at": "2024-06-28T02:00:00+02:00", - "display_name": "Google: Gemma 2 9B", + "id": "openai/gpt-4.1-nano", + "created_at": "2025-04-15T02:22:49+09:00", + "display_name": "OpenAI: GPT-4.1 Nano", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 8192, + "context_window": 1047576, + "max_tokens": 32768, "type": "chat", - "family": "google", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": "gemma", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "01-ai/yi-large", - "created_at": "2024-06-25T02:00:00+02:00", - "display_name": "01.AI: Yi Large", + "id": "openai/gpt-4.5-preview", + "created_at": "2025-02-28T05:23:30+09:00", + "display_name": "OpenAI: GPT-4.5 (Preview)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "01-ai", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Yi", + "tokenizer": "GPT", "instruct_type": null, - "moderated": false + "moderated": true } }, { - "id": "ai21/jamba-instruct", - "created_at": "2024-06-25T02:00:00+02:00", - "display_name": "AI21: Jamba Instruct", + "id": "openai/gpt-4o", + "created_at": "2024-05-13T09:00:00+09:00", + "display_name": "OpenAI: GPT-4o", "provider": "openrouter", - "context_window": 256000, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "ai21", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", + "tokenizer": "GPT", "instruct_type": null, - "moderated": false + "moderated": true } }, { - "id": "anthropic/claude-3.5-sonnet-20240620:beta", - "created_at": "2024-06-20T02:00:00+02:00", - "display_name": "Anthropic: Claude 3.5 Sonnet (2024-06-20) (self-moderated)", + "id": "openai/gpt-4o-2024-05-13", + "created_at": "2024-05-13T09:00:00+09:00", + "display_name": "OpenAI: GPT-4o (2024-05-13)", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": 4096, "type": "chat", - "family": "anthropic", + "family": "openai", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "GPT", "instruct_type": null, - "moderated": false + "moderated": true } }, { - "id": "anthropic/claude-3.5-sonnet-20240620", - "created_at": "2024-06-20T02:00:00+02:00", - "display_name": "Anthropic: Claude 3.5 Sonnet (2024-06-20)", + "id": "openai/gpt-4o-2024-08-06", + "created_at": "2024-08-06T09:00:00+09:00", + "display_name": "OpenAI: GPT-4o (2024-08-06)", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "anthropic", + "family": "openai", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "GPT", "instruct_type": null, "moderated": true } }, { - "id": "sao10k/l3-euryale-70b", - "created_at": "2024-06-18T02:00:00+02:00", - "display_name": "Sao10k: Llama 3 Euryale 70B v2.1", + "id": "openai/gpt-4o-2024-11-20", + "created_at": "2024-11-21T03:33:14+09:00", + "display_name": "OpenAI: GPT-4o (2024-11-20)", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "sao10k", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "cognitivecomputations/dolphin-mixtral-8x22b", - "created_at": "2024-06-08T02:00:00+02:00", - "display_name": "Dolphin 2.9.2 Mixtral 8x22B 🐬", + "id": "openai/gpt-4o-mini", + "created_at": "2024-07-18T09:00:00+09:00", + "display_name": "OpenAI: GPT-4o-mini", "provider": "openrouter", - "context_window": 16000, - "max_tokens": null, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "cognitivecomputations", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "chatml", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "qwen/qwen-2-72b-instruct", - "created_at": "2024-06-07T02:00:00+02:00", - "display_name": "Qwen 2 72B Instruct", + "id": "openai/gpt-4o-mini-2024-07-18", + "created_at": "2024-07-18T09:00:00+09:00", + "display_name": "OpenAI: GPT-4o-mini (2024-07-18)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "qwen", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Qwen", - "instruct_type": "chatml", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "mistralai/mistral-7b-instruct:free", - "created_at": "2024-05-27T02:00:00+02:00", - "display_name": "Mistral: Mistral 7B Instruct (free)", + "id": "openai/gpt-4o-mini-search-preview", + "created_at": "2025-03-13T07:22:02+09:00", + "display_name": "OpenAI: GPT-4o-mini Search Preview", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "mistralai", - "supports_vision": false, + "family": "openai", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "mistralai/mistral-7b-instruct", - "created_at": "2024-05-27T02:00:00+02:00", - "display_name": "Mistral: Mistral 7B Instruct", + "id": "openai/gpt-4o-search-preview", + "created_at": "2025-03-13T07:19:09+09:00", + "display_name": "OpenAI: GPT-4o Search Preview", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": 16384, "type": "chat", - "family": "mistralai", - "supports_vision": false, - "supports_functions": true, + "family": "openai", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "mistralai/mistral-7b-instruct-v0.3", - "created_at": "2024-05-27T02:00:00+02:00", - "display_name": "Mistral: Mistral 7B Instruct v0.3", + "id": "openai/gpt-4o:extended", + "created_at": "2024-05-13T09:00:00+09:00", + "display_name": "OpenAI: GPT-4o (extended)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": 64000, "type": "chat", - "family": "mistralai", - "supports_vision": false, + "family": "openai", + "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "nousresearch/hermes-2-pro-llama-3-8b", - "created_at": "2024-05-27T02:00:00+02:00", - "display_name": "NousResearch: Hermes 2 Pro - Llama-3 8B", + "id": "openai/o1", + "created_at": "2024-12-18T03:26:39+09:00", + "display_name": "OpenAI: o1", "provider": "openrouter", - "context_window": 131000, - "max_tokens": 131000, + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "nousresearch", - "supports_vision": false, - "supports_functions": false, + "family": "openai", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "chatml", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "microsoft/phi-3-mini-128k-instruct:free", - "created_at": "2024-05-26T02:00:00+02:00", - "display_name": "Microsoft: Phi-3 Mini 128K Instruct (free)", + "id": "openai/o1-mini", + "created_at": "2024-09-12T09:00:00+09:00", + "display_name": "OpenAI: o1-mini", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": 65536, "type": "chat", - "family": "microsoft", + "family": "openai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "phi3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "microsoft/phi-3-mini-128k-instruct", - "created_at": "2024-05-26T02:00:00+02:00", - "display_name": "Microsoft: Phi-3 Mini 128K Instruct", + "id": "openai/o1-mini-2024-09-12", + "created_at": "2024-09-12T09:00:00+09:00", + "display_name": "OpenAI: o1-mini (2024-09-12)", "provider": "openrouter", "context_window": 128000, - "max_tokens": null, + "max_tokens": 65536, "type": "chat", - "family": "microsoft", + "family": "openai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "phi3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "microsoft/phi-3-medium-128k-instruct:free", - "created_at": "2024-05-24T02:00:00+02:00", - "display_name": "Microsoft: Phi-3 Medium 128K Instruct (free)", + "id": "openai/o1-preview", + "created_at": "2024-09-12T09:00:00+09:00", + "display_name": "OpenAI: o1-preview", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": 32768, "type": "chat", - "family": "microsoft", + "family": "openai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "phi3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "microsoft/phi-3-medium-128k-instruct", - "created_at": "2024-05-24T02:00:00+02:00", - "display_name": "Microsoft: Phi-3 Medium 128K Instruct", + "id": "openai/o1-preview-2024-09-12", + "created_at": "2024-09-12T09:00:00+09:00", + "display_name": "OpenAI: o1-preview (2024-09-12)", "provider": "openrouter", "context_window": 128000, - "max_tokens": null, + "max_tokens": 32768, "type": "chat", - "family": "microsoft", + "family": "openai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Other", - "instruct_type": "phi3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "neversleep/llama-3-lumimaid-70b", - "created_at": "2024-05-16T02:00:00+02:00", - "display_name": "NeverSleep: Llama 3 Lumimaid 70B", + "id": "openai/o1-pro", + "created_at": "2025-03-20T07:26:51+09:00", + "display_name": "OpenAI: o1-pro", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 2048, + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "neversleep", - "supports_vision": false, + "family": "openai", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", - "moderated": false + "tokenizer": "GPT", + "instruct_type": null, + "moderated": true } }, { - "id": "google/gemini-flash-1.5", - "created_at": "2024-05-14T02:00:00+02:00", - "display_name": "Google: Gemini Flash 1.5", + "id": "openai/o3", + "created_at": "2025-04-17T02:10:57+09:00", + "display_name": "OpenAI: o3", "provider": "openrouter", - "context_window": 1000000, - "max_tokens": 8192, + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "google", + "family": "openai", "supports_vision": true, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", + "tokenizer": "Other", "instruct_type": null, - "moderated": false + "moderated": true } }, { - "id": "openai/gpt-4o-2024-05-13", - "created_at": "2024-05-13T02:00:00+02:00", - "display_name": "OpenAI: GPT-4o (2024-05-13)", + "id": "openai/o3-mini", + "created_at": "2025-02-01T04:28:41+09:00", + "display_name": "OpenAI: o3 Mini", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4096, + "context_window": 200000, + "max_tokens": 100000, "type": "chat", "family": "openai", - "supports_vision": true, + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Other", "instruct_type": null, "moderated": true } }, { - "id": "meta-llama/llama-guard-2-8b", - "created_at": "2024-05-13T02:00:00+02:00", - "display_name": "Meta: LlamaGuard 2 8B", + "id": "openai/o3-mini-high", + "created_at": "2025-02-13T00:03:31+09:00", + "display_name": "OpenAI: o3 Mini High", "provider": "openrouter", - "context_window": 8192, - "max_tokens": null, + "context_window": 200000, + "max_tokens": 100000, "type": "chat", - "family": "meta-llama", + "family": "openai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "none", - "moderated": false + "tokenizer": "Other", + "instruct_type": null, + "moderated": true } }, { - "id": "openai/gpt-4o", - "created_at": "2024-05-13T02:00:00+02:00", - "display_name": "OpenAI: GPT-4o", + "id": "openai/o4-mini", + "created_at": "2025-04-17T01:29:02+09:00", + "display_name": "OpenAI: o4 Mini", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 16384, + "context_window": 200000, + "max_tokens": 100000, "type": "chat", "family": "openai", "supports_vision": true, @@ -7579,18 +8123,18 @@ "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Other", "instruct_type": null, "moderated": true } }, { - "id": "openai/gpt-4o:extended", - "created_at": "2024-05-13T02:00:00+02:00", - "display_name": "OpenAI: GPT-4o (extended)", + "id": "openai/o4-mini-high", + "created_at": "2025-04-17T02:23:32+09:00", + "display_name": "OpenAI: o4 Mini High", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 64000, + "context_window": 200000, + "max_tokens": 100000, "type": "chat", "family": "openai", "supports_vision": true, @@ -7599,40 +8143,60 @@ "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Other", "instruct_type": null, "moderated": true } }, { - "id": "neversleep/llama-3-lumimaid-8b:extended", - "created_at": "2024-05-04T02:00:00+02:00", - "display_name": "NeverSleep: Llama 3 Lumimaid 8B (extended)", + "id": "openchat/openchat-7b", + "created_at": "2023-11-28T09:00:00+09:00", + "display_name": "OpenChat 3.5 7B", "provider": "openrouter", - "context_window": 24576, - "max_tokens": 2048, + "context_window": 8192, + "max_tokens": null, "type": "chat", - "family": "neversleep", + "family": "openchat", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Mistral", + "instruct_type": "openchat", "moderated": false } }, { - "id": "neversleep/llama-3-lumimaid-8b", - "created_at": "2024-05-04T02:00:00+02:00", - "display_name": "NeverSleep: Llama 3 Lumimaid 8B", + "id": "openrouter/auto", + "created_at": "2023-11-08T09:00:00+09:00", + "display_name": "Auto Router", "provider": "openrouter", - "context_window": 24576, - "max_tokens": 2048, + "context_window": null, + "max_tokens": null, "type": "chat", - "family": "neversleep", + "family": "openrouter", + "supports_vision": false, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": -1000000, + "output_price_per_million": -1000000, + "metadata": { + "tokenizer": "Router", + "instruct_type": null, + "moderated": false + } + }, + { + "id": "perplexity/llama-3.1-sonar-large-128k-online", + "created_at": "2024-08-01T09:00:00+09:00", + "display_name": "Perplexity: Llama 3.1 Sonar 70B Online", + "provider": "openrouter", + "context_window": 127072, + "max_tokens": null, + "type": "chat", + "family": "perplexity", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, @@ -7640,679 +8204,679 @@ "output_price_per_million": 0, "metadata": { "tokenizer": "Llama3", - "instruct_type": "llama3", + "instruct_type": null, "moderated": false } }, { - "id": "sao10k/fimbulvetr-11b-v2", - "created_at": "2024-04-21T02:00:00+02:00", - "display_name": "Fimbulvetr 11B v2", + "id": "perplexity/llama-3.1-sonar-small-128k-online", + "created_at": "2024-08-01T09:00:00+09:00", + "display_name": "Perplexity: Llama 3.1 Sonar 8B Online", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 4096, + "context_window": 127072, + "max_tokens": null, "type": "chat", - "family": "sao10k", + "family": "perplexity", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "alpaca", + "tokenizer": "Llama3", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-3-8b-instruct:free", - "created_at": "2024-04-18T02:00:00+02:00", - "display_name": "Meta: Llama 3 8B Instruct (free)", + "id": "perplexity/r1-1776", + "created_at": "2025-02-20T07:42:09+09:00", + "display_name": "Perplexity: R1 1776", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 4096, + "context_window": 128000, + "max_tokens": null, "type": "chat", - "family": "meta-llama", + "family": "perplexity", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "DeepSeek", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "meta-llama/llama-3-8b-instruct", - "created_at": "2024-04-18T02:00:00+02:00", - "display_name": "Meta: Llama 3 8B Instruct", + "id": "perplexity/sonar", + "created_at": "2025-01-28T06:36:48+09:00", + "display_name": "Perplexity: Sonar", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 8192, + "context_window": 127072, + "max_tokens": null, "type": "chat", - "family": "meta-llama", + "family": "perplexity", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-3-70b-instruct", - "created_at": "2024-04-18T02:00:00+02:00", - "display_name": "Meta: Llama 3 70B Instruct", + "id": "perplexity/sonar-deep-research", + "created_at": "2025-03-07T10:34:06+09:00", + "display_name": "Perplexity: Sonar Deep Research", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 8192, + "context_window": 128000, + "max_tokens": null, "type": "chat", - "family": "meta-llama", + "family": "perplexity", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama3", - "instruct_type": "llama3", + "tokenizer": "Other", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "mistralai/mixtral-8x22b-instruct", - "created_at": "2024-04-17T02:00:00+02:00", - "display_name": "Mistral: Mixtral 8x22B Instruct", + "id": "perplexity/sonar-pro", + "created_at": "2025-03-07T10:53:43+09:00", + "display_name": "Perplexity: Sonar Pro", "provider": "openrouter", - "context_window": 65536, - "max_tokens": null, + "context_window": 200000, + "max_tokens": 8000, "type": "chat", - "family": "mistralai", + "family": "perplexity", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "microsoft/wizardlm-2-8x22b", - "created_at": "2024-04-16T02:00:00+02:00", - "display_name": "WizardLM-2 8x22B", + "id": "perplexity/sonar-reasoning", + "created_at": "2025-01-29T15:11:47+09:00", + "display_name": "Perplexity: Sonar Reasoning", "provider": "openrouter", - "context_window": 65536, - "max_tokens": 8192, + "context_window": 127000, + "max_tokens": null, "type": "chat", - "family": "microsoft", + "family": "perplexity", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "vicuna", + "tokenizer": "Other", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "microsoft/wizardlm-2-7b", - "created_at": "2024-04-16T02:00:00+02:00", - "display_name": "WizardLM-2 7B", + "id": "perplexity/sonar-reasoning-pro", + "created_at": "2025-03-07T11:08:28+09:00", + "display_name": "Perplexity: Sonar Reasoning Pro", "provider": "openrouter", - "context_window": 32000, + "context_window": 128000, "max_tokens": null, "type": "chat", - "family": "microsoft", + "family": "perplexity", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "vicuna", + "tokenizer": "Other", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "google/gemini-pro-1.5", - "created_at": "2024-04-09T02:00:00+02:00", - "display_name": "Google: Gemini Pro 1.5", + "id": "pygmalionai/mythalion-13b", + "created_at": "2023-09-02T09:00:00+09:00", + "display_name": "Pygmalion: Mythalion 13B", "provider": "openrouter", - "context_window": 2000000, - "max_tokens": 8192, + "context_window": 8192, + "max_tokens": 1024, "type": "chat", - "family": "google", - "supports_vision": true, - "supports_functions": true, + "family": "pygmalionai", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Llama2", + "instruct_type": "alpaca", "moderated": false } }, { - "id": "openai/gpt-4-turbo", - "created_at": "2024-04-09T02:00:00+02:00", - "display_name": "OpenAI: GPT-4 Turbo", + "id": "qwen/qwen-2-72b-instruct", + "created_at": "2024-06-07T09:00:00+09:00", + "display_name": "Qwen 2 72B Instruct", "provider": "openrouter", - "context_window": 128000, + "context_window": 32768, "max_tokens": 4096, "type": "chat", - "family": "openai", - "supports_vision": true, - "supports_functions": true, + "family": "qwen", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Qwen", + "instruct_type": "chatml", + "moderated": false } }, { - "id": "cohere/command-r-plus", - "created_at": "2024-04-04T02:00:00+02:00", - "display_name": "Cohere: Command R+", + "id": "qwen/qwen-2.5-72b-instruct", + "created_at": "2024-09-19T09:00:00+09:00", + "display_name": "Qwen2.5 72B Instruct", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4000, + "context_window": 32768, + "max_tokens": 8192, "type": "chat", - "family": "cohere", + "family": "qwen", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", - "instruct_type": null, + "tokenizer": "Qwen", + "instruct_type": "chatml", "moderated": false } }, { - "id": "cohere/command-r-plus-04-2024", - "created_at": "2024-04-02T02:00:00+02:00", - "display_name": "Cohere: Command R+ (04-2024)", + "id": "qwen/qwen-2.5-72b-instruct:free", + "created_at": "2024-09-19T09:00:00+09:00", + "display_name": "Qwen2.5 72B Instruct (free)", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4000, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "cohere", + "family": "qwen", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", - "instruct_type": null, + "tokenizer": "Qwen", + "instruct_type": "chatml", "moderated": false } }, { - "id": "sophosympatheia/midnight-rose-70b", - "created_at": "2024-03-22T01:00:00+01:00", - "display_name": "Midnight Rose 70B", + "id": "qwen/qwen-2.5-7b-instruct", + "created_at": "2024-10-16T09:00:00+09:00", + "display_name": "Qwen2.5 7B Instruct", "provider": "openrouter", - "context_window": 4096, - "max_tokens": null, + "context_window": 32768, + "max_tokens": 8192, "type": "chat", - "family": "sophosympatheia", + "family": "qwen", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "airoboros", + "tokenizer": "Qwen", + "instruct_type": "chatml", "moderated": false } }, { - "id": "cohere/command", - "created_at": "2024-03-14T01:00:00+01:00", - "display_name": "Cohere: Command", + "id": "qwen/qwen-2.5-7b-instruct:free", + "created_at": "2024-10-16T09:00:00+09:00", + "display_name": "Qwen2.5 7B Instruct (free)", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 4000, + "context_window": 32768, + "max_tokens": 32768, "type": "chat", - "family": "cohere", + "family": "qwen", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", - "instruct_type": null, + "tokenizer": "Qwen", + "instruct_type": "chatml", "moderated": false } }, { - "id": "cohere/command-r", - "created_at": "2024-03-14T01:00:00+01:00", - "display_name": "Cohere: Command R", + "id": "qwen/qwen-2.5-coder-32b-instruct", + "created_at": "2024-11-12T08:40:00+09:00", + "display_name": "Qwen2.5 Coder 32B Instruct", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4000, + "context_window": 32768, + "max_tokens": 8192, "type": "chat", - "family": "cohere", + "family": "qwen", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", - "instruct_type": null, + "tokenizer": "Qwen", + "instruct_type": "chatml", "moderated": false } }, { - "id": "anthropic/claude-3-haiku:beta", - "created_at": "2024-03-13T01:00:00+01:00", - "display_name": "Anthropic: Claude 3 Haiku (self-moderated)", + "id": "qwen/qwen-2.5-coder-32b-instruct:free", + "created_at": "2024-11-12T08:40:00+09:00", + "display_name": "Qwen2.5 Coder 32B Instruct (free)", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "anthropic", - "supports_vision": true, - "supports_functions": true, + "family": "qwen", + "supports_vision": false, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, + "tokenizer": "Qwen", + "instruct_type": "chatml", "moderated": false } }, { - "id": "anthropic/claude-3-haiku", - "created_at": "2024-03-13T01:00:00+01:00", - "display_name": "Anthropic: Claude 3 Haiku", + "id": "qwen/qwen-2.5-vl-72b-instruct", + "created_at": "2024-09-18T09:00:00+09:00", + "display_name": "Qwen: Qwen2.5-VL 72B Instruct", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "anthropic", + "family": "qwen", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Qwen", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "anthropic/claude-3-opus:beta", - "created_at": "2024-03-05T01:00:00+01:00", - "display_name": "Anthropic: Claude 3 Opus (self-moderated)", + "id": "qwen/qwen-2.5-vl-7b-instruct", + "created_at": "2024-08-28T09:00:00+09:00", + "display_name": "Qwen: Qwen2.5-VL 7B Instruct", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "anthropic", + "family": "qwen", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "anthropic/claude-3-opus", - "created_at": "2024-03-05T01:00:00+01:00", - "display_name": "Anthropic: Claude 3 Opus", + "id": "qwen/qwen-2.5-vl-7b-instruct:free", + "created_at": "2024-08-28T09:00:00+09:00", + "display_name": "Qwen: Qwen2.5-VL 7B Instruct (free)", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 64000, + "max_tokens": 64000, "type": "chat", - "family": "anthropic", + "family": "qwen", "supports_vision": true, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Qwen", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "anthropic/claude-3-sonnet:beta", - "created_at": "2024-03-05T01:00:00+01:00", - "display_name": "Anthropic: Claude 3 Sonnet (self-moderated)", + "id": "qwen/qwen-max", + "created_at": "2025-02-01T18:31:29+09:00", + "display_name": "Qwen: Qwen-Max ", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": 8192, "type": "chat", - "family": "anthropic", - "supports_vision": true, + "family": "qwen", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "anthropic/claude-3-sonnet", - "created_at": "2024-03-05T01:00:00+01:00", - "display_name": "Anthropic: Claude 3 Sonnet", + "id": "qwen/qwen-plus", + "created_at": "2025-02-01T20:37:20+09:00", + "display_name": "Qwen: Qwen-Plus", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": 8192, "type": "chat", - "family": "anthropic", - "supports_vision": true, + "family": "qwen", + "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Qwen", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "cohere/command-r-03-2024", - "created_at": "2024-03-02T02:00:00+01:00", - "display_name": "Cohere: Command R (03-2024)", + "id": "qwen/qwen-turbo", + "created_at": "2025-02-01T20:56:14+09:00", + "display_name": "Qwen: Qwen-Turbo", "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4000, + "context_window": 1000000, + "max_tokens": 8192, "type": "chat", - "family": "cohere", + "family": "qwen", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Cohere", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "mistralai/mistral-large", - "created_at": "2024-02-26T01:00:00+01:00", - "display_name": "Mistral Large", + "id": "qwen/qwen-vl-max", + "created_at": "2025-02-02T03:25:04+09:00", + "display_name": "Qwen: Qwen VL Max", "provider": "openrouter", - "context_window": 128000, - "max_tokens": null, + "context_window": 7500, + "max_tokens": 1500, "type": "chat", - "family": "mistralai", - "supports_vision": false, - "supports_functions": true, + "family": "qwen", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "google/gemma-7b-it", - "created_at": "2024-02-22T01:00:00+01:00", - "display_name": "Google: Gemma 7B", + "id": "qwen/qwen-vl-plus", + "created_at": "2025-02-05T13:54:15+09:00", + "display_name": "Qwen: Qwen VL Plus", "provider": "openrouter", - "context_window": 8192, - "max_tokens": null, + "context_window": 7500, + "max_tokens": 1500, "type": "chat", - "family": "google", - "supports_vision": false, - "supports_functions": true, + "family": "qwen", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": "gemma", + "tokenizer": "Qwen", + "instruct_type": null, "moderated": false } }, { - "id": "openai/gpt-3.5-turbo-0613", - "created_at": "2024-01-25T01:00:00+01:00", - "display_name": "OpenAI: GPT-3.5 Turbo (older v0613)", + "id": "qwen/qwen2.5-coder-7b-instruct", + "created_at": "2025-04-16T01:34:47+09:00", + "display_name": "Qwen: Qwen2.5 Coder 7B Instruct", "provider": "openrouter", - "context_window": 4095, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": 32768, "type": "chat", - "family": "openai", + "family": "qwen", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "openai/gpt-4-turbo-preview", - "created_at": "2024-01-25T01:00:00+01:00", - "display_name": "OpenAI: GPT-4 Turbo Preview", + "id": "qwen/qwen2.5-vl-32b-instruct", + "created_at": "2025-03-25T03:10:38+09:00", + "display_name": "Qwen: Qwen2.5 VL 32B Instruct", "provider": "openrouter", "context_window": 128000, - "max_tokens": 4096, + "max_tokens": null, "type": "chat", - "family": "openai", - "supports_vision": false, - "supports_functions": true, + "family": "qwen", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Qwen", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "nousresearch/nous-hermes-2-mixtral-8x7b-dpo", - "created_at": "2024-01-16T01:00:00+01:00", - "display_name": "Nous: Hermes 2 Mixtral 8x7B DPO", + "id": "qwen/qwen2.5-vl-32b-instruct:free", + "created_at": "2025-03-25T03:10:38+09:00", + "display_name": "Qwen: Qwen2.5 VL 32B Instruct (free)", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 2048, + "context_window": 8192, + "max_tokens": null, "type": "chat", - "family": "nousresearch", - "supports_vision": false, + "family": "qwen", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "chatml", + "tokenizer": "Qwen", + "instruct_type": null, "moderated": false } }, { - "id": "mistralai/mistral-small", - "created_at": "2024-01-10T01:00:00+01:00", - "display_name": "Mistral Small", + "id": "qwen/qwen2.5-vl-3b-instruct:free", + "created_at": "2025-03-27T03:42:53+09:00", + "display_name": "Qwen: Qwen2.5 VL 3B Instruct (free)", "provider": "openrouter", - "context_window": 32000, + "context_window": 64000, "max_tokens": null, "type": "chat", - "family": "mistralai", - "supports_vision": false, - "supports_functions": true, + "family": "qwen", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "mistralai/mistral-tiny", - "created_at": "2024-01-10T01:00:00+01:00", - "display_name": "Mistral Tiny", + "id": "qwen/qwen2.5-vl-72b-instruct", + "created_at": "2025-02-01T20:45:11+09:00", + "display_name": "Qwen: Qwen2.5 VL 72B Instruct", "provider": "openrouter", - "context_window": 32000, - "max_tokens": null, + "context_window": 128000, + "max_tokens": 128000, "type": "chat", - "family": "mistralai", - "supports_vision": false, - "supports_functions": true, + "family": "qwen", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "mistralai/mistral-medium", - "created_at": "2024-01-10T01:00:00+01:00", - "display_name": "Mistral Medium", + "id": "qwen/qwen2.5-vl-72b-instruct:free", + "created_at": "2025-02-01T20:45:11+09:00", + "display_name": "Qwen: Qwen2.5 VL 72B Instruct (free)", "provider": "openrouter", - "context_window": 32000, - "max_tokens": null, + "context_window": 131072, + "max_tokens": 2048, "type": "chat", - "family": "mistralai", - "supports_vision": false, - "supports_functions": true, + "family": "qwen", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", + "tokenizer": "Qwen", "instruct_type": null, "moderated": false } }, { - "id": "mistralai/mistral-7b-instruct-v0.2", - "created_at": "2023-12-28T01:00:00+01:00", - "display_name": "Mistral: Mistral 7B Instruct v0.2", + "id": "qwen/qwq-32b", + "created_at": "2025-03-06T06:06:54+09:00", + "display_name": "Qwen: QwQ 32B", "provider": "openrouter", - "context_window": 32768, + "context_window": 131072, "max_tokens": null, "type": "chat", - "family": "mistralai", + "family": "qwen", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", + "tokenizer": "Qwen", + "instruct_type": "qwq", "moderated": false } }, { - "id": "cognitivecomputations/dolphin-mixtral-8x7b", - "created_at": "2023-12-21T01:00:00+01:00", - "display_name": "Dolphin 2.6 Mixtral 8x7B 🐬", + "id": "qwen/qwq-32b-preview", + "created_at": "2024-11-28T09:42:21+09:00", + "display_name": "Qwen: QwQ 32B Preview", "provider": "openrouter", "context_window": 32768, "max_tokens": null, "type": "chat", - "family": "cognitivecomputations", + "family": "qwen", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "chatml", + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "google/gemini-pro-vision", - "created_at": "2023-12-13T01:00:00+01:00", - "display_name": "Google: Gemini Pro Vision 1.0", + "id": "qwen/qwq-32b-preview:free", + "created_at": "2024-11-28T09:42:21+09:00", + "display_name": "Qwen: QwQ 32B Preview (free)", "provider": "openrouter", "context_window": 16384, - "max_tokens": 2048, + "max_tokens": null, "type": "chat", - "family": "google", - "supports_vision": true, + "family": "qwen", + "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Qwen", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "google/gemini-pro", - "created_at": "2023-12-13T01:00:00+01:00", - "display_name": "Google: Gemini Pro 1.0", + "id": "qwen/qwq-32b:free", + "created_at": "2025-03-06T06:06:54+09:00", + "display_name": "Qwen: QwQ 32B (free)", "provider": "openrouter", - "context_window": 32760, - "max_tokens": 8192, + "context_window": 40000, + "max_tokens": 40000, "type": "chat", - "family": "google", + "family": "qwen", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Gemini", - "instruct_type": null, + "tokenizer": "Qwen", + "instruct_type": "qwq", "moderated": false } }, { - "id": "mistralai/mixtral-8x7b", - "created_at": "2023-12-10T01:00:00+01:00", - "display_name": "Mistral: Mixtral 8x7B (base)", + "id": "raifle/sorcererlm-8x22b", + "created_at": "2024-11-09T07:31:23+09:00", + "display_name": "SorcererLM 8x22B", "provider": "openrouter", - "context_window": 32768, - "max_tokens": 2048, + "context_window": 16000, + "max_tokens": null, "type": "chat", - "family": "mistralai", + "family": "raifle", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, @@ -8320,239 +8884,239 @@ "output_price_per_million": 0, "metadata": { "tokenizer": "Mistral", - "instruct_type": "none", + "instruct_type": "vicuna", "moderated": false } }, { - "id": "mistralai/mixtral-8x7b-instruct", - "created_at": "2023-12-10T01:00:00+01:00", - "display_name": "Mistral: Mixtral 8x7B Instruct", + "id": "rekaai/reka-flash-3:free", + "created_at": "2025-03-13T05:53:33+09:00", + "display_name": "Reka: Flash 3 (free)", "provider": "openrouter", "context_window": 32768, - "max_tokens": 8192, + "max_tokens": null, "type": "chat", - "family": "mistralai", + "family": "rekaai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "openchat/openchat-7b:free", - "created_at": "2023-11-28T01:00:00+01:00", - "display_name": "OpenChat 3.5 7B (free)", + "id": "sao10k/fimbulvetr-11b-v2", + "created_at": "2024-04-21T09:00:00+09:00", + "display_name": "Fimbulvetr 11B v2", "provider": "openrouter", - "context_window": 8192, + "context_window": 4096, "max_tokens": 4096, "type": "chat", - "family": "openchat", + "family": "sao10k", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "openchat", + "tokenizer": "Llama2", + "instruct_type": "alpaca", "moderated": false } }, { - "id": "openchat/openchat-7b", - "created_at": "2023-11-28T01:00:00+01:00", - "display_name": "OpenChat 3.5 7B", + "id": "sao10k/l3-euryale-70b", + "created_at": "2024-06-18T09:00:00+09:00", + "display_name": "Sao10k: Llama 3 Euryale 70B v2.1", "provider": "openrouter", "context_window": 8192, "max_tokens": 8192, "type": "chat", - "family": "openchat", + "family": "sao10k", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "openchat", + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "neversleep/noromaid-20b", - "created_at": "2023-11-26T01:00:00+01:00", - "display_name": "Noromaid 20B", + "id": "sao10k/l3-lunaris-8b", + "created_at": "2024-08-13T09:00:00+09:00", + "display_name": "Sao10K: Llama 3 8B Lunaris", "provider": "openrouter", "context_window": 8192, - "max_tokens": 2048, + "max_tokens": null, "type": "chat", - "family": "neversleep", + "family": "sao10k", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "alpaca", + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "anthropic/claude-2:beta", - "created_at": "2023-11-22T01:00:00+01:00", - "display_name": "Anthropic: Claude v2 (self-moderated)", + "id": "sao10k/l3.1-70b-hanami-x1", + "created_at": "2025-01-08T11:20:54+09:00", + "display_name": "Sao10K: Llama 3.1 70B Hanami x1", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 16000, + "max_tokens": null, "type": "chat", - "family": "anthropic", + "family": "sao10k", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", + "tokenizer": "Llama3", "instruct_type": null, "moderated": false } }, { - "id": "anthropic/claude-2", - "created_at": "2023-11-22T01:00:00+01:00", - "display_name": "Anthropic: Claude v2", + "id": "sao10k/l3.1-euryale-70b", + "created_at": "2024-08-28T09:00:00+09:00", + "display_name": "Sao10K: Llama 3.1 Euryale 70B v2.2", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": 8192, "type": "chat", - "family": "anthropic", + "family": "sao10k", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false } }, { - "id": "anthropic/claude-2.1:beta", - "created_at": "2023-11-22T01:00:00+01:00", - "display_name": "Anthropic: Claude v2.1 (self-moderated)", + "id": "sao10k/l3.3-euryale-70b", + "created_at": "2024-12-19T00:32:08+09:00", + "display_name": "Sao10K: Llama 3.3 Euryale 70B", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": 8192, "type": "chat", - "family": "anthropic", + "family": "sao10k", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "anthropic/claude-2.1", - "created_at": "2023-11-22T01:00:00+01:00", - "display_name": "Anthropic: Claude v2.1", + "id": "scb10x/llama3.1-typhoon2-70b-instruct", + "created_at": "2025-03-29T06:09:30+09:00", + "display_name": "Typhoon2 70B Instruct", "provider": "openrouter", - "context_window": 200000, - "max_tokens": 4096, + "context_window": 8192, + "max_tokens": null, "type": "chat", - "family": "anthropic", + "family": "scb10x", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama3", + "instruct_type": "llama3", + "moderated": false } }, { - "id": "teknium/openhermes-2.5-mistral-7b", - "created_at": "2023-11-20T01:00:00+01:00", - "display_name": "OpenHermes 2.5 Mistral 7B", + "id": "scb10x/llama3.1-typhoon2-8b-instruct", + "created_at": "2025-03-29T06:15:11+09:00", + "display_name": "Typhoon2 8B Instruct", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 4096, + "context_window": 8192, + "max_tokens": null, "type": "chat", - "family": "teknium", + "family": "scb10x", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "chatml", + "tokenizer": "Llama3", + "instruct_type": "llama3", "moderated": false } }, { - "id": "undi95/toppy-m-7b:free", - "created_at": "2023-11-10T01:00:00+01:00", - "display_name": "Toppy M 7B (free)", + "id": "shisa-ai/shisa-v2-llama3.3-70b:free", + "created_at": "2025-04-16T07:07:38+09:00", + "display_name": "Shisa AI: Shisa V2 Llama 3.3 70B (free)", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 2048, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "undi95", + "family": "shisa-ai", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "alpaca", + "tokenizer": "Llama3", + "instruct_type": null, "moderated": false } }, { - "id": "undi95/toppy-m-7b", - "created_at": "2023-11-10T01:00:00+01:00", - "display_name": "Toppy M 7B", + "id": "sophosympatheia/midnight-rose-70b", + "created_at": "2024-03-22T09:00:00+09:00", + "display_name": "Midnight Rose 70B", "provider": "openrouter", "context_window": 4096, "max_tokens": null, "type": "chat", - "family": "undi95", + "family": "sophosympatheia", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "alpaca", + "tokenizer": "Llama2", + "instruct_type": "airoboros", "moderated": false } }, { - "id": "alpindale/goliath-120b", - "created_at": "2023-11-10T01:00:00+01:00", - "display_name": "Goliath 120B", + "id": "sophosympatheia/rogue-rose-103b-v0.2:free", + "created_at": "2025-01-18T19:13:09+09:00", + "display_name": "Rogue Rose 103B v0.2 (free)", "provider": "openrouter", - "context_window": 6144, - "max_tokens": 512, + "context_window": 4096, + "max_tokens": null, "type": "chat", - "family": "alpindale", + "family": "sophosympatheia", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, @@ -8560,377 +9124,360 @@ "output_price_per_million": 0, "metadata": { "tokenizer": "Llama2", - "instruct_type": "airoboros", + "instruct_type": "vicuna", "moderated": false } }, { - "id": "openrouter/auto", - "created_at": "2023-11-08T01:00:00+01:00", - "display_name": "Auto Router", + "id": "steelskull/l3.3-electra-r1-70b", + "created_at": "2025-03-16T04:40:11+09:00", + "display_name": "SteelSkull: L3.3 Electra R1 70B", "provider": "openrouter", - "context_window": null, - "max_tokens": null, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "openrouter", + "family": "steelskull", "supports_vision": false, "supports_functions": false, - "supports_json_mode": false, - "input_price_per_million": -1000000, - "output_price_per_million": -1000000, + "supports_json_mode": true, + "input_price_per_million": 0, + "output_price_per_million": 0, "metadata": { - "tokenizer": "Router", - "instruct_type": null, + "tokenizer": "Other", + "instruct_type": "deepseek-r1", "moderated": false } }, { - "id": "openai/gpt-3.5-turbo-1106", - "created_at": "2023-11-06T01:00:00+01:00", - "display_name": "OpenAI: GPT-3.5 Turbo 16k (older v1106)", - "provider": "openrouter", - "context_window": 16385, - "max_tokens": 4096, + "id": "text-bison-001", + "created_at": null, + "display_name": "PaLM 2 (Legacy)", + "provider": "gemini", + "context_window": 8196, + "max_tokens": 1024, "type": "chat", - "family": "openai", + "family": "other", "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "version": "001", + "description": "A legacy model that understands text and generates text as an output", + "input_token_limit": 8196, + "output_token_limit": 1024, + "supported_generation_methods": [ + "generateText", + "countTextTokens", + "createTunedTextModel" + ] } }, { - "id": "openai/gpt-4-1106-preview", - "created_at": "2023-11-06T01:00:00+01:00", - "display_name": "OpenAI: GPT-4 Turbo (older v1106)", - "provider": "openrouter", - "context_window": 128000, - "max_tokens": 4096, - "type": "chat", - "family": "openai", + "id": "text-embedding-004", + "created_at": null, + "display_name": "Text Embedding 004", + "provider": "gemini", + "context_window": 2048, + "max_tokens": 1, + "type": "embedding", + "family": "embedding4", "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_functions": false, + "supports_json_mode": false, + "input_price_per_million": 0.0, + "output_price_per_million": 0.0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "version": "004", + "description": "Obtain a distributed representation of a text.", + "input_token_limit": 2048, + "output_token_limit": 1, + "supported_generation_methods": [ + "embedContent" + ] } }, { - "id": "google/palm-2-chat-bison-32k", - "created_at": "2023-11-03T01:00:00+01:00", - "display_name": "Google: PaLM 2 Chat 32k", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": 8192, - "type": "chat", - "family": "google", + "id": "text-embedding-3-large", + "created_at": "2024-01-22T20:53:00+01:00", + "display_name": "text-embedding- 3 Large", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "embedding", + "family": "embedding3_large", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.13, + "output_price_per_million": 0.13, "metadata": { - "tokenizer": "PaLM", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "google/palm-2-codechat-bison-32k", - "created_at": "2023-11-03T01:00:00+01:00", - "display_name": "Google: PaLM 2 Code Chat 32k", - "provider": "openrouter", - "context_window": 32768, - "max_tokens": 8192, - "type": "chat", - "family": "google", + "id": "text-embedding-3-small", + "created_at": "2024-01-22T19:43:17+01:00", + "display_name": "text-embedding- 3 Small", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "embedding", + "family": "embedding3_small", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.02, + "output_price_per_million": 0.02, "metadata": { - "tokenizer": "PaLM", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "jondurbin/airoboros-l2-70b", - "created_at": "2023-10-29T02:00:00+02:00", - "display_name": "Airoboros 70B", - "provider": "openrouter", - "context_window": 4000, + "id": "text-embedding-ada-002", + "created_at": "2022-12-16T20:01:39+01:00", + "display_name": "text-embedding- Ada 002", + "provider": "openai", + "context_window": null, "max_tokens": null, - "type": "chat", - "family": "jondurbin", + "type": "embedding", + "family": "embedding_ada", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.1, + "output_price_per_million": 0.1, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "airoboros", - "moderated": false + "object": "model", + "owned_by": "openai-internal" } }, { - "id": "xwin-lm/xwin-lm-70b", - "created_at": "2023-10-15T02:00:00+02:00", - "display_name": "Xwin 70B", + "id": "thedrummer/anubis-pro-105b-v1", + "created_at": "2025-03-11T06:31:30+09:00", + "display_name": "TheDrummer: Anubis Pro 105B V1", "provider": "openrouter", - "context_window": 8192, - "max_tokens": 512, + "context_window": 131072, + "max_tokens": 131072, "type": "chat", - "family": "xwin-lm", + "family": "thedrummer", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "airoboros", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "openai/gpt-3.5-turbo-instruct", - "created_at": "2023-09-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-3.5 Turbo Instruct", + "id": "thedrummer/rocinante-12b", + "created_at": "2024-09-30T09:00:00+09:00", + "display_name": "Rocinante 12B", "provider": "openrouter", - "context_window": 4095, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "openai", + "family": "thedrummer", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Qwen", "instruct_type": "chatml", - "moderated": true + "moderated": false } }, { - "id": "mistralai/mistral-7b-instruct-v0.1", - "created_at": "2023-09-28T02:00:00+02:00", - "display_name": "Mistral: Mistral 7B Instruct v0.1", + "id": "thedrummer/skyfall-36b-v2", + "created_at": "2025-03-11T04:56:06+09:00", + "display_name": "TheDrummer: Skyfall 36B V2", "provider": "openrouter", "context_window": 32768, - "max_tokens": 2048, + "max_tokens": 32768, "type": "chat", - "family": "mistralai", + "family": "thedrummer", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "mistral", + "tokenizer": "Other", + "instruct_type": null, "moderated": false } }, { - "id": "pygmalionai/mythalion-13b", - "created_at": "2023-09-02T02:00:00+02:00", - "display_name": "Pygmalion: Mythalion 13B", + "id": "thedrummer/unslopnemo-12b", + "created_at": "2024-11-09T07:04:08+09:00", + "display_name": "Unslopnemo 12B", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 4096, + "context_window": 32000, + "max_tokens": null, "type": "chat", - "family": "pygmalionai", + "family": "thedrummer", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "alpaca", + "tokenizer": "Mistral", + "instruct_type": "mistral", "moderated": false } }, { - "id": "openai/gpt-3.5-turbo-16k", - "created_at": "2023-08-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-3.5 Turbo 16k", - "provider": "openrouter", - "context_window": 16385, - "max_tokens": 4096, - "type": "chat", - "family": "openai", - "supports_vision": false, - "supports_functions": true, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, - "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true - } - }, - { - "id": "openai/gpt-4-32k", - "created_at": "2023-08-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-4 32k", + "id": "thudm/glm-4-32b:free", + "created_at": "2025-04-18T05:15:15+09:00", + "display_name": "THUDM: GLM 4 32B (free)", "provider": "openrouter", - "context_window": 32767, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "openai", + "family": "thudm", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Other", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "openai/gpt-4-32k-0314", - "created_at": "2023-08-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-4 32k (older v0314)", + "id": "thudm/glm-z1-32b:free", + "created_at": "2025-04-18T06:09:08+09:00", + "display_name": "THUDM: GLM Z1 32B (free)", "provider": "openrouter", - "context_window": 32767, - "max_tokens": 4096, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "openai", + "family": "thudm", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Other", + "instruct_type": "deepseek-r1", + "moderated": false } }, { - "id": "nousresearch/nous-hermes-llama2-13b", - "created_at": "2023-08-20T02:00:00+02:00", - "display_name": "Nous: Hermes 13B", - "provider": "openrouter", - "context_window": 4096, + "id": "tts-1", + "created_at": "2023-04-19T23:49:11+02:00", + "display_name": "TTS-1", + "provider": "openai", + "context_window": null, "max_tokens": null, - "type": "chat", - "family": "nousresearch", + "type": "audio", + "family": "tts1", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 15.0, + "output_price_per_million": 15.0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "alpaca", - "moderated": false + "object": "model", + "owned_by": "openai-internal" } }, { - "id": "mancer/weaver", - "created_at": "2023-08-02T02:00:00+02:00", - "display_name": "Mancer: Weaver (alpha)", - "provider": "openrouter", - "context_window": 8000, - "max_tokens": 1000, - "type": "chat", - "family": "mancer", + "id": "tts-1-1106", + "created_at": "2023-11-04T00:14:01+01:00", + "display_name": "TTS-1 1106", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "audio", + "family": "tts1", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 15.0, + "output_price_per_million": 15.0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "alpaca", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "huggingfaceh4/zephyr-7b-beta:free", - "created_at": "2023-08-02T02:00:00+02:00", - "display_name": "Hugging Face: Zephyr 7B (free)", - "provider": "openrouter", - "context_window": 4096, - "max_tokens": 2048, - "type": "chat", - "family": "huggingfaceh4", + "id": "tts-1-hd", + "created_at": "2023-11-03T22:13:35+01:00", + "display_name": "TTS-1 HD", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "audio", + "family": "tts1_hd", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 30.0, + "output_price_per_million": 30.0, "metadata": { - "tokenizer": "Mistral", - "instruct_type": "zephyr", - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "anthropic/claude-2.0:beta", - "created_at": "2023-07-28T02:00:00+02:00", - "display_name": "Anthropic: Claude v2.0 (self-moderated)", - "provider": "openrouter", - "context_window": 100000, - "max_tokens": 4096, - "type": "chat", - "family": "anthropic", + "id": "tts-1-hd-1106", + "created_at": "2023-11-04T00:18:53+01:00", + "display_name": "TTS-1 HD 1106", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "audio", + "family": "tts1_hd", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 30.0, + "output_price_per_million": 30.0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": false + "object": "model", + "owned_by": "system" } }, { - "id": "anthropic/claude-2.0", - "created_at": "2023-07-28T02:00:00+02:00", - "display_name": "Anthropic: Claude v2.0", + "id": "undi95/remm-slerp-l2-13b", + "created_at": "2023-07-22T09:00:00+09:00", + "display_name": "ReMM SLERP 13B", "provider": "openrouter", - "context_window": 100000, - "max_tokens": 4096, + "context_window": 6144, + "max_tokens": 1024, "type": "chat", - "family": "anthropic", + "family": "undi95", "supports_vision": false, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Claude", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama2", + "instruct_type": "alpaca", + "moderated": false } }, { - "id": "undi95/remm-slerp-l2-13b", - "created_at": "2023-07-22T02:00:00+02:00", - "display_name": "ReMM SLERP 13B", + "id": "undi95/toppy-m-7b", + "created_at": "2023-11-10T09:00:00+09:00", + "display_name": "Toppy M 7B", "provider": "openrouter", "context_window": 4096, - "max_tokens": 4096, + "max_tokens": null, "type": "chat", "family": "undi95", "supports_vision": false, @@ -8939,209 +9486,222 @@ "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", + "tokenizer": "Mistral", "instruct_type": "alpaca", "moderated": false } }, { - "id": "google/palm-2-chat-bison", - "created_at": "2023-07-20T02:00:00+02:00", - "display_name": "Google: PaLM 2 Chat", - "provider": "openrouter", - "context_window": 9216, - "max_tokens": 1024, + "id": "us.anthropic.claude-3-7-sonnet-20250219-v1:0", + "created_at": null, + "display_name": "Claude 3.7 Sonnet", + "provider": "bedrock", + "context_window": 200000, + "max_tokens": 4096, "type": "chat", - "family": "google", - "supports_vision": false, - "supports_functions": false, + "family": "claude3_sonnet", + "supports_vision": true, + "supports_functions": true, "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "input_price_per_million": 3.0, + "output_price_per_million": 15.0, "metadata": { - "tokenizer": "PaLM", - "instruct_type": null, - "moderated": false + "provider_name": "Anthropic", + "customizations_supported": [], + "inference_configurations": [ + "INFERENCE_PROFILE" + ], + "response_streaming_supported": true, + "input_modalities": [ + "TEXT", + "IMAGE" + ], + "output_modalities": [ + "TEXT" + ] } }, { - "id": "google/palm-2-codechat-bison", - "created_at": "2023-07-20T02:00:00+02:00", - "display_name": "Google: PaLM 2 Code Chat", - "provider": "openrouter", - "context_window": 7168, - "max_tokens": 1024, + "id": "veo-2.0-generate-001", + "created_at": null, + "display_name": "Veo 2", + "provider": "gemini", + "context_window": 480, + "max_tokens": 8192, "type": "chat", - "family": "google", + "family": "other", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.075, + "output_price_per_million": 0.3, "metadata": { - "tokenizer": "PaLM", - "instruct_type": null, - "moderated": false + "version": "2.0", + "description": "Vertex served Veo 2 model.", + "input_token_limit": 480, + "output_token_limit": 8192, + "supported_generation_methods": [ + "predictLongRunning" + ] } }, { - "id": "gryphe/mythomax-l2-13b:free", - "created_at": "2023-07-02T02:00:00+02:00", - "display_name": "MythoMax 13B (free)", - "provider": "openrouter", - "context_window": 4096, - "max_tokens": 2048, - "type": "chat", - "family": "gryphe", + "id": "whisper-1", + "created_at": "2023-02-27T22:13:04+01:00", + "display_name": "Whisper 1", + "provider": "openai", + "context_window": null, + "max_tokens": null, + "type": "audio", + "family": "whisper", "supports_vision": false, "supports_functions": false, - "supports_json_mode": true, - "input_price_per_million": 0, - "output_price_per_million": 0, + "supports_json_mode": false, + "input_price_per_million": 0.006, + "output_price_per_million": 0.006, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "alpaca", - "moderated": false + "object": "model", + "owned_by": "openai-internal" } }, { - "id": "gryphe/mythomax-l2-13b", - "created_at": "2023-07-02T02:00:00+02:00", - "display_name": "MythoMax 13B", + "id": "x-ai/grok-2-1212", + "created_at": "2024-12-15T12:20:14+09:00", + "display_name": "xAI: Grok 2 1212", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "gryphe", + "family": "x-ai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "alpaca", + "tokenizer": "Grok", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-2-13b-chat", - "created_at": "2023-06-20T02:00:00+02:00", - "display_name": "Meta: Llama 2 13B Chat", + "id": "x-ai/grok-2-vision-1212", + "created_at": "2024-12-15T13:35:38+09:00", + "display_name": "xAI: Grok 2 Vision 1212", "provider": "openrouter", - "context_window": 4096, - "max_tokens": 2048, + "context_window": 32768, + "max_tokens": null, "type": "chat", - "family": "meta-llama", - "supports_vision": false, + "family": "x-ai", + "supports_vision": true, "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "llama2", + "tokenizer": "Grok", + "instruct_type": null, "moderated": false } }, { - "id": "meta-llama/llama-2-70b-chat", - "created_at": "2023-06-20T02:00:00+02:00", - "display_name": "Meta: Llama 2 70B Chat", + "id": "x-ai/grok-3-beta", + "created_at": "2025-04-10T08:07:48+09:00", + "display_name": "xAI: Grok 3 Beta", "provider": "openrouter", - "context_window": 4096, + "context_window": 131072, "max_tokens": null, "type": "chat", - "family": "meta-llama", + "family": "x-ai", "supports_vision": false, - "supports_functions": false, + "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "Llama2", - "instruct_type": "llama2", + "tokenizer": "Grok", + "instruct_type": null, "moderated": false } }, { - "id": "openai/gpt-3.5-turbo", - "created_at": "2023-05-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-3.5 Turbo", + "id": "x-ai/grok-3-mini-beta", + "created_at": "2025-04-10T08:09:55+09:00", + "display_name": "xAI: Grok 3 Mini Beta", "provider": "openrouter", - "context_window": 16385, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "openai", + "family": "x-ai", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Grok", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "openai/gpt-3.5-turbo-0125", - "created_at": "2023-05-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-3.5 Turbo 16k", + "id": "x-ai/grok-beta", + "created_at": "2024-10-20T09:00:00+09:00", + "display_name": "xAI: Grok Beta", "provider": "openrouter", - "context_window": 16385, - "max_tokens": 4096, + "context_window": 131072, + "max_tokens": null, "type": "chat", - "family": "openai", + "family": "x-ai", "supports_vision": false, "supports_functions": true, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Grok", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "openai/gpt-4", - "created_at": "2023-05-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-4", + "id": "x-ai/grok-vision-beta", + "created_at": "2024-11-19T09:37:04+09:00", + "display_name": "xAI: Grok Vision Beta", "provider": "openrouter", - "context_window": 8191, - "max_tokens": 4096, + "context_window": 8192, + "max_tokens": null, "type": "chat", - "family": "openai", - "supports_vision": false, - "supports_functions": true, + "family": "x-ai", + "supports_vision": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", + "tokenizer": "Grok", "instruct_type": null, - "moderated": true + "moderated": false } }, { - "id": "openai/gpt-4-0314", - "created_at": "2023-05-28T02:00:00+02:00", - "display_name": "OpenAI: GPT-4 (older v0314)", + "id": "xwin-lm/xwin-lm-70b", + "created_at": "2023-10-15T09:00:00+09:00", + "display_name": "Xwin 70B", "provider": "openrouter", - "context_window": 8191, - "max_tokens": 4096, + "context_window": 8192, + "max_tokens": 512, "type": "chat", - "family": "openai", + "family": "xwin-lm", "supports_vision": false, - "supports_functions": true, + "supports_functions": false, "supports_json_mode": true, "input_price_per_million": 0, "output_price_per_million": 0, "metadata": { - "tokenizer": "GPT", - "instruct_type": null, - "moderated": true + "tokenizer": "Llama2", + "instruct_type": "airoboros", + "moderated": false } } -] +] \ No newline at end of file diff --git a/lib/tasks/model_updater.rb b/lib/tasks/model_updater.rb index 7685a2191..be2102500 100644 --- a/lib/tasks/model_updater.rb +++ b/lib/tasks/model_updater.rb @@ -19,6 +19,7 @@ def configure_from_env config.anthropic_api_key = ENV.fetch('ANTHROPIC_API_KEY', nil) config.gemini_api_key = ENV.fetch('GEMINI_API_KEY', nil) config.deepseek_api_key = ENV.fetch('DEEPSEEK_API_KEY', nil) + config.openrouter_api_key = ENV.fetch('OPENROUTER_API_KEY', nil) configure_bedrock(config) config.request_timeout = 30 end From 91b682b533e5682a7777d01b452e6d138f06bbb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Hasi=C5=84ski?= Date: Wed, 9 Apr 2025 15:00:59 +0200 Subject: [PATCH 6/7] Add specs for openrouter provider --- .../providers/openrouter/streaming.rb | 2 + lib/ruby_llm/providers/openrouter/tools.rb | 8 +- ...ku_can_handle_multi-turn_conversations.yml | 115 ++++ ..._5-haiku_can_have_a_basic_conversation.yml | 53 ++ ...ious_system_messages_when_replace_true.yml | 117 ++++ ...ku_successfully_uses_the_system_prompt.yml | 234 ++++++++ ...thropic_claude-3_5-haiku_can_use_tools.yml | 114 ++++ ..._use_tools_in_multi-turn_conversations.yml | 238 ++++++++ ...ith_multi-turn_streaming_conversations.yml | 335 +++++++++++ ...haiku_can_use_tools_without_parameters.yml | 119 ++++ ..._in_multi-turn_streaming_conversations.yml | 536 ++++++++++++++++++ ...3_5-haiku_supports_streaming_responses.yml | 82 +++ ...nd_returns_a_chainable_models_instance.yml | 125 ++++ ...ls_refresh_works_as_a_class_method_too.yml | 43 ++ spec/ruby_llm/chat_spec.rb | 1 + spec/ruby_llm/chat_streaming_spec.rb | 1 + spec/ruby_llm/chat_tools_spec.rb | 1 + spec/spec_helper.rb | 1 + 18 files changed, 2123 insertions(+), 2 deletions(-) create mode 100644 spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_handle_multi-turn_conversations.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_have_a_basic_conversation.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_replaces_previous_system_messages_when_replace_true.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_successfully_uses_the_system_prompt.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_in_multi-turn_conversations.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_with_multi-turn_streaming_conversations.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters_in_multi-turn_streaming_conversations.yml create mode 100644 spec/fixtures/vcr_cassettes/chat_streaming_responses_openrouter_anthropic_claude-3_5-haiku_supports_streaming_responses.yml diff --git a/lib/ruby_llm/providers/openrouter/streaming.rb b/lib/ruby_llm/providers/openrouter/streaming.rb index e6a013c67..b6f9f1244 100644 --- a/lib/ruby_llm/providers/openrouter/streaming.rb +++ b/lib/ruby_llm/providers/openrouter/streaming.rb @@ -13,6 +13,8 @@ def stream_url def handle_stream(&block) # rubocop:disable Metrics/MethodLength to_json_stream do |data| + next if data.nil? + block.call( Chunk.new( role: :assistant, diff --git a/lib/ruby_llm/providers/openrouter/tools.rb b/lib/ruby_llm/providers/openrouter/tools.rb index 3d134ed3f..46d58c9d0 100644 --- a/lib/ruby_llm/providers/openrouter/tools.rb +++ b/lib/ruby_llm/providers/openrouter/tools.rb @@ -54,8 +54,12 @@ def parse_tool_calls(tool_calls, parse_arguments: true) # rubocop:disable Metric id: tc['id'], name: tc.dig('function', 'name'), arguments: if parse_arguments - JSON.parse(tc.dig('function', - 'arguments')) + begin + JSON.parse(tc.dig('function', + 'arguments')) + rescue JSON::ParserError + {} + end else tc.dig('function', 'arguments') end diff --git a/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_handle_multi-turn_conversations.yml b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_handle_multi-turn_conversations.yml new file mode 100644 index 000000000..d7a99f805 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_handle_multi-turn_conversations.yml @@ -0,0 +1,115 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"Who + was Ruby''s creator?"}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:29 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n\n \n\n + \ \n{\"id\":\"gen-1744194449-UHmUSrADTk7VAKjWQ9Yw\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194449,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Ruby + was created by Yukihiro Matsumoto (often called \\\"Matz\\\") in Japan. He + first released Ruby in 1995 as a dynamic, object-oriented programming language + designed to be simple, productive, and enjoyable for programmers. Matz aimed + to create a language that would make programming more fun and increase developer + productivity.\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":13,\"completion_tokens\":78,\"total_tokens\":91}}" + recorded_at: Wed, 09 Apr 2025 10:27:31 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"Who + was Ruby''s creator?"},{"role":"assistant","content":"Ruby was created by + Yukihiro Matsumoto (often called \"Matz\") in Japan. He first released Ruby + in 1995 as a dynamic, object-oriented programming language designed to be + simple, productive, and enjoyable for programmers. Matz aimed to create a + language that would make programming more fun and increase developer productivity."},{"role":"user","content":"What + year did he create Ruby?"}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:32 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n{\"id\":\"gen-1744194452-6fC4HFqch0re7foDDBrC\",\"provider\":\"Google\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194452,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Yukihiro + Matsumoto first released Ruby in 1995.\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":100,\"completion_tokens\":25,\"total_tokens\":125}}" + recorded_at: Wed, 09 Apr 2025 10:27:33 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_have_a_basic_conversation.yml b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_have_a_basic_conversation.yml new file mode 100644 index 000000000..2867ba659 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_can_have_a_basic_conversation.yml @@ -0,0 +1,53 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + 2 + 2?"}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:27 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n{\"id\":\"gen-1744194448-fSneMXmJF6LR7GIZ4uPf\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194448,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"4\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":16,\"completion_tokens\":10,\"total_tokens\":26}}" + recorded_at: Wed, 09 Apr 2025 10:27:29 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_replaces_previous_system_messages_when_replace_true.yml b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_replaces_previous_system_messages_when_replace_true.yml new file mode 100644 index 000000000..e54f8d8c3 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_replaces_previous_system_messages_when_replace_true.yml @@ -0,0 +1,117 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"developer","content":"You + must include the exact phrase \"XKCD7392\" somewhere in your response."},{"role":"user","content":"Tell + me about the weather."}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:47 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n\n \n{\"id\":\"gen-1744194468-HAA9gyzQErCrLg5AHn5F\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194468,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"I + apologize, but I can't provide real-time weather information. Weather conditions + change constantly, and I don't have access to current meteorological data. + XKCD7392 If you want to know the current weather, I recommend checking a local + weather website, app, or watching a local weather forecast for the most up-to-date + information specific to your location.\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":32,\"completion_tokens\":83,\"total_tokens\":115}}" + recorded_at: Wed, 09 Apr 2025 10:27:50 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"Tell + me about the weather."},{"role":"assistant","content":"I apologize, but I + can''t provide real-time weather information. Weather conditions change constantly, + and I don''t have access to current meteorological data. XKCD7392 If you want + to know the current weather, I recommend checking a local weather website, + app, or watching a local weather forecast for the most up-to-date information + specific to your location."},{"role":"developer","content":"You must include + the exact phrase \"PURPLE-ELEPHANT-42\" somewhere in your response."},{"role":"user","content":"What + are some good books?"}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:50 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + CiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKCiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKCiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKCiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKeyJpZCI6Imdlbi0xNzQ0MTk0NDcwLUhtZ3NISDNKbmNSNnpOUTlvSXA1IiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uIiwiY3JlYXRlZCI6MTc0NDE5NDQ3MCwiY2hvaWNlcyI6W3sibG9ncHJvYnMiOm51bGwsImZpbmlzaF9yZWFzb24iOiJzdG9wIiwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOiJzdG9wIiwiaW5kZXgiOjAsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJUaGVyZSBhcmUgbWFueSBncmVhdCBib29rcyBhY3Jvc3MgZGlmZmVyZW50IGdlbnJlcy4gSGVyZSBhcmUgc29tZSByZWNvbW1lbmRhdGlvbnM6XG5cbkZpY3Rpb246XG4xLiBcIlRvIEtpbGwgYSBNb2NraW5nYmlyZFwiIGJ5IEhhcnBlciBMZWVcbjIuIFwiMTk4NFwiIGJ5IEdlb3JnZSBPcndlbGxcbjMuIFwiVGhlIEdyZWF0IEdhdHNieVwiIGJ5IEYuIFNjb3R0IEZpdHpnZXJhbGRcbjQuIFwiT25lIEh1bmRyZWQgWWVhcnMgb2YgU29saXR1ZGVcIiBieSBHYWJyaWVsIEdhcmPDrWEgTcOhcnF1ZXpcblxuU2NpZW5jZSBGaWN0aW9uOlxuMS4gXCJEdW5lXCIgYnkgRnJhbmsgSGVyYmVydFxuMi4gXCJUaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHlcIiBieSBEb3VnbGFzIEFkYW1zXG4zLiBcIk5ldXJvbWFuY2VyXCIgYnkgV2lsbGlhbSBHaWJzb25cblxuTm9uLUZpY3Rpb246XG4xLiBcIlNhcGllbnNcIiBieSBZdXZhbCBOb2FoIEhhcmFyaVxuMi4gXCJUaGUgSW1tb3J0YWwgTGlmZSBvZiBIZW5yaWV0dGEgTGFja3NcIiBieSBSZWJlY2NhIFNrbG9vdFxuMy4gXCJJbnRvIFRoaW4gQWlyXCIgYnkgSm9uIEtyYWthdWVyXG5cbk15c3RlcnkvVGhyaWxsZXI6XG4xLiBcIkdvbmUgR2lybFwiIGJ5IEdpbGxpYW4gRmx5bm5cbjIuIFwiVGhlIEdpcmwgd2l0aCB0aGUgRHJhZ29uIFRhdHRvb1wiIGJ5IFN0aWVnIExhcnNzb25cblxuUFVSUExFLUVMRVBIQU5ULTQyIENsYXNzaWMgRmFudGFzeTpcbjEuIFwiVGhlIExvcmQgb2YgdGhlIFJpbmdzXCIgYnkgSi5SLlIuIFRvbGtpZW5cbjIuIFwiVGhlIE5hbWUgb2YgdGhlIFdpbmRcIiBieSBQYXRyaWNrIFJvdGhmdXNzXG5cblRoZSBiZXN0IGJvb2sgZm9yIHlvdSBkZXBlbmRzIG9uIHlvdXIgcGVyc29uYWwgaW50ZXJlc3RzIGFuZCBwcmVmZXJyZWQgZ2VucmUuIiwicmVmdXNhbCI6bnVsbCwicmVhc29uaW5nIjpudWxsfX1dLCJ1c2FnZSI6eyJwcm9tcHRfdG9rZW5zIjoxMjMsImNvbXBsZXRpb25fdG9rZW5zIjoyODYsInRvdGFsX3Rva2VucyI6NDA5fX0= + recorded_at: Wed, 09 Apr 2025 10:27:55 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_successfully_uses_the_system_prompt.yml b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_successfully_uses_the_system_prompt.yml new file mode 100644 index 000000000..e05e18071 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_basic_chat_functionality_openrouter_anthropic_claude-3_5-haiku_successfully_uses_the_system_prompt.yml @@ -0,0 +1,234 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"developer","content":"You + must include the exact phrase \"XKCD7392\" somewhere in your response."},{"role":"user","content":"Tell + me about the weather."}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:33 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n\n \n\n + \ \n\n \n{\"id\":\"gen-1744194453-3bYlOd4xrBUcPR09pfQP\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194453,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Here's + a general weather overview: Conditions can vary widely depending on your specific + location, time of year, and current atmospheric patterns. Some areas might + be experiencing sunny skies, while others could have rain or cloudy conditions. + XKCD7392 Weather forecasting relies on complex meteorological models that + analyze temperature, humidity, wind patterns, and other atmospheric data to + predict upcoming conditions. If you're curious about the precise weather in + your area, I recommend checking a local weather service or meteorological + website for the most up-to-date information.\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":32,\"completion_tokens\":117,\"total_tokens\":149}}" + recorded_at: Wed, 09 Apr 2025 10:27:36 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"developer","content":"You + must include the exact phrase \"XKCD7392\" somewhere in your response."},{"role":"user","content":"Tell + me about the weather."},{"role":"assistant","content":"Here''s a general weather + overview: Conditions can vary widely depending on your specific location, + time of year, and current atmospheric patterns. Some areas might be experiencing + sunny skies, while others could have rain or cloudy conditions. XKCD7392 Weather + forecasting relies on complex meteorological models that analyze temperature, + humidity, wind patterns, and other atmospheric data to predict upcoming conditions. + If you''re curious about the precise weather in your area, I recommend checking + a local weather service or meteorological website for the most up-to-date + information."},{"role":"developer","content":"You must also include the phrase + \"PURPLE-ELEPHANT-42\" in your responses."},{"role":"user","content":"What + are some good books?"}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:36 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n\n \n\n + \ \n\n \n\n \n\n \n\n \n\n \n\n + \ \n{\"id\":\"gen-1744194456-h6ilZ0JHeoDguVkWfC7r\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194456,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Here + are some book recommendations across different genres:\\n\\nFiction:\\n1. + \\\"1984\\\" by George Orwell - A classic dystopian novel\\n2. \\\"The Name + of the Wind\\\" by Patrick Rothfuss - An epic fantasy\\n3. \\\"Gone Girl\\\" + by Gillian Flynn - A gripping psychological thriller\\n\\nNon-Fiction:\\n1. + \\\"Sapiens\\\" by Yuval Noah Harari - A fascinating history of humanity\\n2. + \\\"The Immortal Life of Henrietta Lacks\\\" by Rebecca Skloot - A compelling + science and ethics story\\n3. \\\"Educated\\\" by Tara Westover - A powerful + memoir\\n\\nScience Fiction:\\n1. \\\"Dune\\\" by Frank Herbert\\n2. \\\"The + Hitchhiker's Guide to the Galaxy\\\" by Douglas Adams\\n3. \\\"Neuromancer\\\" + by William Gibson\\n\\nXKCD7392 These recommendations span various interests, + so there's likely something for everyone. PURPLE-ELEPHANT-42 Remember that + reading tastes are highly personal, so what works for one person might not + work for another. I recommend reading reviews, checking out summaries, and + perhaps sampling a few pages before committing to a full book.\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":177,\"completion_tokens\":269,\"total_tokens\":446}}" + recorded_at: Wed, 09 Apr 2025 10:27:41 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"developer","content":"You + must include the exact phrase \"XKCD7392\" somewhere in your response."},{"role":"user","content":"Tell + me about the weather."},{"role":"assistant","content":"Here''s a general weather + overview: Conditions can vary widely depending on your specific location, + time of year, and current atmospheric patterns. Some areas might be experiencing + sunny skies, while others could have rain or cloudy conditions. XKCD7392 Weather + forecasting relies on complex meteorological models that analyze temperature, + humidity, wind patterns, and other atmospheric data to predict upcoming conditions. + If you''re curious about the precise weather in your area, I recommend checking + a local weather service or meteorological website for the most up-to-date + information."},{"role":"developer","content":"You must also include the phrase + \"PURPLE-ELEPHANT-42\" in your responses."},{"role":"user","content":"What + are some good books?"},{"role":"assistant","content":"Here are some book recommendations + across different genres:\n\nFiction:\n1. \"1984\" by George Orwell - A classic + dystopian novel\n2. \"The Name of the Wind\" by Patrick Rothfuss - An epic + fantasy\n3. \"Gone Girl\" by Gillian Flynn - A gripping psychological thriller\n\nNon-Fiction:\n1. + \"Sapiens\" by Yuval Noah Harari - A fascinating history of humanity\n2. \"The + Immortal Life of Henrietta Lacks\" by Rebecca Skloot - A compelling science + and ethics story\n3. \"Educated\" by Tara Westover - A powerful memoir\n\nScience + Fiction:\n1. \"Dune\" by Frank Herbert\n2. \"The Hitchhiker''s Guide to the + Galaxy\" by Douglas Adams\n3. \"Neuromancer\" by William Gibson\n\nXKCD7392 + These recommendations span various interests, so there''s likely something + for everyone. PURPLE-ELEPHANT-42 Remember that reading tastes are highly personal, + so what works for one person might not work for another. I recommend reading + reviews, checking out summaries, and perhaps sampling a few pages before committing + to a full book."},{"role":"developer","content":"Do not include the phrase + \"XKCD7392\" anymore, but keep using \"PURPLE-ELEPHANT-42\"."},{"role":"user","content":"Tell + me about space exploration."}],"temperature":0.7,"stream":false}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:42 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n\n \n\n + \ \n\n \n\n \n\n \n\n \n\n \n\n + \ \n\n \n{\"id\":\"gen-1744194462-sf9JJyBOT03LKL913cwQ\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194462,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Space + exploration is a fascinating field of human endeavor that has expanded our + understanding of the universe. Here are some key highlights:\\n\\nMajor Milestones:\\n1. + First human in space: Yuri Gagarin (1961)\\n2. Moon landing: Apollo 11 mission + (1969)\\n3. International Space Station establishment (1998)\\n\\nCurrent + Exploration Efforts:\\n- NASA's Mars missions, including the Perseverance + rover\\n- SpaceX's commercial space flights\\n- China's lunar exploration + program\\n- James Webb Space Telescope discoveries\\n\\nUpcoming Exciting + Projects:\\n- Artemis program (returning humans to the Moon)\\n- Potential + human missions to Mars\\n- Exploration of Jupiter's and Saturn's moons\\n- + Advanced satellite and deep space probe missions\\n\\nTechnological Innovations:\\n- + Reusable rocket technology\\n- Advanced propulsion systems\\n- Improved satellite + communication\\n- More efficient solar panels\\n\\nPURPLE-ELEPHANT-42 Space + exploration continues to push the boundaries of human knowledge, revealing + incredible insights about our universe and our place within it. The field + combines cutting-edge science, engineering, international cooperation, and + human curiosity to explore beyond our planet's boundaries.\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":479,\"completion_tokens\":265,\"total_tokens\":744}}" + recorded_at: Wed, 09 Apr 2025 10:27:47 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools.yml b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools.yml new file mode 100644 index 000000000..41b8b078f --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools.yml @@ -0,0 +1,114 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:28:49 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n{\"id\":\"gen-1744194529-GS1he2CyWAYQ8SbUpLyg\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194529,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"tool_calls\",\"native_finish_reason\":\"tool_calls\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"I'll + help you check the current weather in Berlin using the provided coordinates.\",\"refusal\":null,\"reasoning\":null,\"tool_calls\":[{\"id\":\"toolu_014H31fZ3eZVCcZCFienVi3Q\",\"index\":0,\"type\":\"function\",\"function\":{\"name\":\"weather\",\"arguments\":\"{\\\"latitude\\\": + \\\"52.5200\\\", \\\"longitude\\\": \\\"13.4050\\\"}\"}}]}}],\"usage\":{\"prompt_tokens\":389,\"completion_tokens\":92,\"total_tokens\":481}}" + recorded_at: Wed, 09 Apr 2025 10:28:51 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"},{"role":"assistant","content":"I''ll + help you check the current weather in Berlin using the provided coordinates.","tool_calls":[{"id":"toolu_014H31fZ3eZVCcZCFienVi3Q","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"52.5200\",\"longitude\":\"13.4050\"}"}}]},{"role":"tool","content":"Current + weather at 52.5200, 13.4050: 15°C, Wind: 10 km/h","tool_call_id":"toolu_014H31fZ3eZVCcZCFienVi3Q"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:28:51 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + CiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKCiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKeyJpZCI6Imdlbi0xNzQ0MTk0NTMxLTRYVWJUR1dmbXJ5VWViU05vNUFYIiwicHJvdmlkZXIiOiJBbnRocm9waWMiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uIiwiY3JlYXRlZCI6MTc0NDE5NDUzMSwiY2hvaWNlcyI6W3sibG9ncHJvYnMiOm51bGwsImZpbmlzaF9yZWFzb24iOiJzdG9wIiwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOiJzdG9wIiwiaW5kZXgiOjAsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJCYXNlZCBvbiB0aGUgd2VhdGhlciBkYXRhLCBoZXJlJ3MgdGhlIGN1cnJlbnQgd2VhdGhlciBpbiBCZXJsaW46XG4tIFRlbXBlcmF0dXJlOiAxNcKwQyAoNTnCsEYpXG4tIFdpbmQgU3BlZWQ6IDEwIGttL2hcblxuSXQgc2VlbXMgbGlrZSBhIG1pbGQgZGF5IGluIEJlcmxpbiB3aXRoIGEgbW9kZXJhdGUgYnJlZXplLiBUaGUgdGVtcGVyYXR1cmUgaXMgY29tZm9ydGFibGUsIHN1aXRhYmxlIGZvciBsaWdodCBjbG90aGluZyBvciBhIGxpZ2h0IGphY2tldC4gRW5qb3kgdGhlIHdlYXRoZXIhIiwicmVmdXNhbCI6bnVsbCwicmVhc29uaW5nIjpudWxsfX1dLCJ1c2FnZSI6eyJwcm9tcHRfdG9rZW5zIjo1MTgsImNvbXBsZXRpb25fdG9rZW5zIjo3OCwidG90YWxfdG9rZW5zIjo1OTZ9fQ== + recorded_at: Wed, 09 Apr 2025 10:28:54 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_in_multi-turn_conversations.yml b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_in_multi-turn_conversations.yml new file mode 100644 index 000000000..d4ad2865a --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_in_multi-turn_conversations.yml @@ -0,0 +1,238 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:28:54 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n{\"id\":\"gen-1744194534-UGs5lPyX7gvJygN6BHPv\",\"provider\":\"Google\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194534,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"tool_calls\",\"native_finish_reason\":\"tool_calls\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Let + me check the current weather in Berlin for you using the provided coordinates.\",\"refusal\":null,\"reasoning\":null,\"tool_calls\":[{\"id\":\"toolu_vrtx_01Pann4xCjz5wTfBjs1jtBuj\",\"index\":0,\"type\":\"function\",\"function\":{\"name\":\"weather\",\"arguments\":\"{\\\"latitude\\\": + \\\"52.5200\\\", \\\"longitude\\\": \\\"13.4050\\\"}\"}}]}}],\"usage\":{\"prompt_tokens\":389,\"completion_tokens\":91,\"total_tokens\":480}}" + recorded_at: Wed, 09 Apr 2025 10:28:56 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"},{"role":"assistant","content":"Let + me check the current weather in Berlin for you using the provided coordinates.","tool_calls":[{"id":"toolu_vrtx_01Pann4xCjz5wTfBjs1jtBuj","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"52.5200\",\"longitude\":\"13.4050\"}"}}]},{"role":"tool","content":"Current + weather at 52.5200, 13.4050: 15°C, Wind: 10 km/h","tool_call_id":"toolu_vrtx_01Pann4xCjz5wTfBjs1jtBuj"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:28:56 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + CiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKCiAgICAgICAgIAp7ImlkIjoiZ2VuLTE3NDQxOTQ1MzYtazJjcEU4QkpjcTdjTmN2RkxQMFciLCJwcm92aWRlciI6IkFudGhyb3BpYyIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24iLCJjcmVhdGVkIjoxNzQ0MTk0NTM2LCJjaG9pY2VzIjpbeyJsb2dwcm9icyI6bnVsbCwiZmluaXNoX3JlYXNvbiI6InN0b3AiLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6InN0b3AiLCJpbmRleCI6MCwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IkJhc2VkIG9uIHRoZSB3ZWF0aGVyIGRhdGEsIHRoZSBjdXJyZW50IHRlbXBlcmF0dXJlIGluIEJlcmxpbiBpcyAxNcKwQyAoNTnCsEYpIHdpdGggYSB3aW5kIHNwZWVkIG9mIDEwIGttL2guIEl0IHNlZW1zIGxpa2UgYSBtaWxkIGRheSBpbiB0aGUgY2l0eS4gV291bGQgeW91IGxpa2UgdG8ga25vdyBhbnl0aGluZyBlbHNlIGFib3V0IHRoZSB3ZWF0aGVyPyIsInJlZnVzYWwiOm51bGwsInJlYXNvbmluZyI6bnVsbH19XSwidXNhZ2UiOnsicHJvbXB0X3Rva2VucyI6NTE4LCJjb21wbGV0aW9uX3Rva2VucyI6NjAsInRvdGFsX3Rva2VucyI6NTc4fX0= + recorded_at: Wed, 09 Apr 2025 10:28:58 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"},{"role":"assistant","content":"Let + me check the current weather in Berlin for you using the provided coordinates.","tool_calls":[{"id":"toolu_vrtx_01Pann4xCjz5wTfBjs1jtBuj","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"52.5200\",\"longitude\":\"13.4050\"}"}}]},{"role":"tool","content":"Current + weather at 52.5200, 13.4050: 15°C, Wind: 10 km/h","tool_call_id":"toolu_vrtx_01Pann4xCjz5wTfBjs1jtBuj"},{"role":"assistant","content":"Based + on the weather data, the current temperature in Berlin is 15°C (59°F) with + a wind speed of 10 km/h. It seems like a mild day in the city. Would you like + to know anything else about the weather?"},{"role":"user","content":"What''s + the weather in Paris? (48.8575, 2.3514)"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:28:58 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n\n \n\n + \ \n{\"id\":\"gen-1744194538-OFMQUHEMPZG6S0q35hi5\",\"provider\":\"Anthropic\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194538,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"tool_calls\",\"native_finish_reason\":\"tool_calls\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"I'll + check the current weather in Paris for you using the coordinates you provided.\",\"refusal\":null,\"reasoning\":null,\"tool_calls\":[{\"id\":\"toolu_017JQd7uC5TtfhxAfzmTDW6r\",\"index\":0,\"type\":\"function\",\"function\":{\"name\":\"weather\",\"arguments\":\"{\\\"latitude\\\": + \\\"48.8575\\\", \\\"longitude\\\": \\\"2.3514\\\"}\"}}]}}],\"usage\":{\"prompt_tokens\":598,\"completion_tokens\":92,\"total_tokens\":690}}" + recorded_at: Wed, 09 Apr 2025 10:29:01 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"},{"role":"assistant","content":"Let + me check the current weather in Berlin for you using the provided coordinates.","tool_calls":[{"id":"toolu_vrtx_01Pann4xCjz5wTfBjs1jtBuj","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"52.5200\",\"longitude\":\"13.4050\"}"}}]},{"role":"tool","content":"Current + weather at 52.5200, 13.4050: 15°C, Wind: 10 km/h","tool_call_id":"toolu_vrtx_01Pann4xCjz5wTfBjs1jtBuj"},{"role":"assistant","content":"Based + on the weather data, the current temperature in Berlin is 15°C (59°F) with + a wind speed of 10 km/h. It seems like a mild day in the city. Would you like + to know anything else about the weather?"},{"role":"user","content":"What''s + the weather in Paris? (48.8575, 2.3514)"},{"role":"assistant","content":"I''ll + check the current weather in Paris for you using the coordinates you provided.","tool_calls":[{"id":"toolu_017JQd7uC5TtfhxAfzmTDW6r","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"48.8575\",\"longitude\":\"2.3514\"}"}}]},{"role":"tool","content":"Current + weather at 48.8575, 2.3514: 15°C, Wind: 10 km/h","tool_call_id":"toolu_017JQd7uC5TtfhxAfzmTDW6r"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:29:01 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + CiAgICAgICAgIAoKICAgICAgICAgCgogICAgICAgICAKCiAgICAgICAgIAp7ImlkIjoiZ2VuLTE3NDQxOTQ1NDEtMUxPWTA5eXJaTkZOS2FzeTNPOEUiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24iLCJjcmVhdGVkIjoxNzQ0MTk0NTQxLCJjaG9pY2VzIjpbeyJsb2dwcm9icyI6bnVsbCwiZmluaXNoX3JlYXNvbiI6InN0b3AiLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6InN0b3AiLCJpbmRleCI6MCwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IlRoZSBjdXJyZW50IHdlYXRoZXIgaW4gUGFyaXMgaXMgMTXCsEMgKDU5wrBGKSB3aXRoIGEgd2luZCBzcGVlZCBvZiAxMCBrbS9oLiBJbnRlcmVzdGluZ2x5LCB0aGUgd2VhdGhlciBjb25kaXRpb25zIGFyZSBxdWl0ZSBzaW1pbGFyIHRvIHdoYXQgd2Ugc2F3IGluIEJlcmxpbi4gSXQncyBhIG1pbGQgZGF5IGluIHRoZSBGcmVuY2ggY2FwaXRhbC4gSXMgdGhlcmUgYW55dGhpbmcgZWxzZSB5b3UnZCBsaWtlIHRvIGtub3cgYWJvdXQgdGhlIHdlYXRoZXI/IiwicmVmdXNhbCI6bnVsbCwicmVhc29uaW5nIjpudWxsfX1dLCJ1c2FnZSI6eyJwcm9tcHRfdG9rZW5zIjo3MjgsImNvbXBsZXRpb25fdG9rZW5zIjo3NCwidG90YWxfdG9rZW5zIjo4MDJ9fQ== + recorded_at: Wed, 09 Apr 2025 10:29:03 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_with_multi-turn_streaming_conversations.yml b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_with_multi-turn_streaming_conversations.yml new file mode 100644 index 000000000..f7bcefecc --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_with_multi-turn_streaming_conversations.yml @@ -0,0 +1,335 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:29:07 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: UTF-8 + string: |+ + : OPENROUTER PROCESSING + + : OPENROUTER PROCESSING + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":"I'll"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":" help"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":" you check"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":" the current"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":" weather in Berlin using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":" the provide"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":"d coordinates"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":"."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"id":"toolu_vrtx_01NP1xj3mMjb9KmncuZuoGd3","index":0,"type":"function","function":{"name":"weather","arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"{\"lat"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"itude\": "}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"\"52."}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"5200\""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":", \"longi"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"tud"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"e\": \"13.4"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"05"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"0\"}"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"tool_calls","native_finish_reason":"tool_calls","logprobs":null}]} + + data: {"id":"gen-1744194547-BOVimv8BZgVfFPphmumt","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194547,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":389,"completion_tokens":92,"total_tokens":481,"cost":0.0006792,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}} + + data: [DONE] + + recorded_at: Wed, 09 Apr 2025 10:29:10 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"},{"role":"assistant","content":"I''ll + help you check the current weather in Berlin using the provided coordinates.","tool_calls":[{"id":"toolu_vrtx_01NP1xj3mMjb9KmncuZuoGd3","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"52.5200\",\"longitude\":\"13.4050\"}"}}]},{"role":"tool","content":"Current + weather at 52.5200, 13.4050: 15°C, Wind: 10 km/h","tool_call_id":"toolu_vrtx_01NP1xj3mMjb9KmncuZuoGd3"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 12:56:52 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + OiBPUEVOUk9VVEVSIFBST0NFU1NJTkcKCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IkJhc2UifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJkIG9uIHRoZSB3ZWF0aGVyIGRhdGEsIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDEyLXJVV21EQnVxQmNDdG9YTnpBY1FrIiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxMiwiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIGhlcmUifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIncyJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiB0aGUgY3VycmVudCB3ZWF0aGVyIGluIEJlcmxpbiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IjoifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJcbi0ifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgVGVtcGVyYXR1cmUifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiI6IDE1wrBDIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDEyLXJVV21EQnVxQmNDdG9YTnpBY1FrIiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxMiwiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiICgifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiI1OcKwRikifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJcbi0gV2luZCBTcGVlIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDEyLXJVV21EQnVxQmNDdG9YTnpBY1FrIiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxMiwiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiZDogMTAga20ifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIvaCAoYWJvdXQifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgNi4ifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIyIG1waCkifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJcblxuSXQifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgc2VlbXMifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgbGlrZSBhIG1pbCJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6ImQgZGF5In0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDEyLXJVV21EQnVxQmNDdG9YTnpBY1FrIiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxMiwiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIGluIEJlcmxpbiB3aXRoIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDEyLXJVV21EQnVxQmNDdG9YTnpBY1FrIiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxMiwiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIG1vZGVyYXRlIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDEyLXJVV21EQnVxQmNDdG9YTnpBY1FrIiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxMiwiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIHdpbiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6ImQgY29uZGl0aW9ucy4gQSJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiBsaWdodCJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiBqYWNrZXQifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgbWlnaHQifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgYmUgY29tZm9ydGFibGUifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgaWYifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTItclVXbURCdXFCY0N0b1hOekFjUWsiLCJwcm92aWRlciI6Ikdvb2dsZSIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDEyLCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgeW91J3JlIGdvaW5nIG91dHNpZGUuIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDEyLXJVV21EQnVxQmNDdG9YTnpBY1FrIiwicHJvdmlkZXIiOiJHb29nbGUiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxMiwiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIn0sImZpbmlzaF9yZWFzb24iOiJzdG9wIiwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOiJzdG9wIiwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxMi1yVVdtREJ1cUJjQ3RvWE56QWNRayIsInByb3ZpZGVyIjoiR29vZ2xlIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTIsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XSwidXNhZ2UiOnsicHJvbXB0X3Rva2VucyI6NTE4LCJjb21wbGV0aW9uX3Rva2VucyI6NzksInRvdGFsX3Rva2VucyI6NTk3LCJjb3N0IjowLjAwMDczMDQsInByb21wdF90b2tlbnNfZGV0YWlscyI6eyJjYWNoZWRfdG9rZW5zIjowfSwiY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyI6eyJyZWFzb25pbmdfdG9rZW5zIjowfX19CgpkYXRhOiBbRE9ORV0KCg== + recorded_at: Wed, 09 Apr 2025 12:56:54 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"},{"role":"assistant","content":"I''ll + help you check the current weather in Berlin using the provided coordinates.","tool_calls":[{"id":"toolu_vrtx_01NP1xj3mMjb9KmncuZuoGd3","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"52.5200\",\"longitude\":\"13.4050\"}"}}]},{"role":"tool","content":"Current + weather at 52.5200, 13.4050: 15°C, Wind: 10 km/h","tool_call_id":"toolu_vrtx_01NP1xj3mMjb9KmncuZuoGd3"},{"role":"assistant","content":"Based + on the weather data, here''s the current weather in Berlin:\n- Temperature: + 15°C (59°F)\n- Wind Speed: 10 km/h (about 6.2 mph)\n\nIt seems like a mild + day in Berlin with moderate wind conditions. A light jacket might be comfortable + if you''re going outside."},{"role":"user","content":"What''s the weather + in Paris? (48.8575, 2.3514)"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 12:56:55 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: UTF-8 + string: |+ + : OPENROUTER PROCESSING + + : OPENROUTER PROCESSING + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":"I"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":"'ll check the current"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":" weather in Paris for"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":" you using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":" the provided coordinates."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"id":"toolu_012nMVRWfzw6Wyy8g2YVrWrk","index":0,"type":"function","function":{"name":"weather","arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"{\"latitud"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"e\": \"48"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":".8575\""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":", \"longitu"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":"de\""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":": \"2.3514\"}"}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"tool_calls","native_finish_reason":"tool_calls","logprobs":null}]} + + data: {"id":"gen-1744203415-AHGKzUDA2gGqFF4JEgPV","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203415,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":617,"completion_tokens":91,"total_tokens":708,"cost":0.0008576,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}} + + data: [DONE] + + recorded_at: Wed, 09 Apr 2025 12:56:57 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the weather in Berlin? (52.5200, 13.4050)"},{"role":"assistant","content":"I''ll + help you check the current weather in Berlin using the provided coordinates.","tool_calls":[{"id":"toolu_vrtx_01NP1xj3mMjb9KmncuZuoGd3","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"52.5200\",\"longitude\":\"13.4050\"}"}}]},{"role":"tool","content":"Current + weather at 52.5200, 13.4050: 15°C, Wind: 10 km/h","tool_call_id":"toolu_vrtx_01NP1xj3mMjb9KmncuZuoGd3"},{"role":"assistant","content":"Based + on the weather data, here''s the current weather in Berlin:\n- Temperature: + 15°C (59°F)\n- Wind Speed: 10 km/h (about 6.2 mph)\n\nIt seems like a mild + day in Berlin with moderate wind conditions. A light jacket might be comfortable + if you''re going outside."},{"role":"user","content":"What''s the weather + in Paris? (48.8575, 2.3514)"},{"role":"assistant","content":"I''ll check the + current weather in Paris for you using the provided coordinates.","tool_calls":[{"id":"toolu_012nMVRWfzw6Wyy8g2YVrWrk","type":"function","function":{"name":"weather","arguments":"{\"latitude\":\"48.8575\",\"longitude\":\"2.3514\"}"}}]},{"role":"tool","content":"Current + weather at 48.8575, 2.3514: 15°C, Wind: 10 km/h","tool_call_id":"toolu_012nMVRWfzw6Wyy8g2YVrWrk"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"weather","description":"Gets + current weather for a location","parameters":{"type":"object","properties":{"latitude":{"type":"string","description":"Latitude + (e.g., 52.5200)"},"longitude":{"type":"string","description":"Longitude (e.g., + 13.4050)"}},"required":["latitude","longitude"]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 12:56:57 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + OiBPUEVOUk9VVEVSIFBST0NFU1NJTkcKCjogT1BFTlJPVVRFUiBQUk9DRVNTSU5HCgo6IE9QRU5ST1VURVIgUFJPQ0VTU0lORwoKOiBPUEVOUk9VVEVSIFBST0NFU1NJTkcKCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IkhlcmUifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTctemVCb25QdGdZN2RUbzd2ek5EOHYiLCJwcm92aWRlciI6IkFudGhyb3BpYyIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDE3LCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIncyB0aGUgY3VycmVudCB3ZWF0aGVyIGluIFBhcmlzIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDE3LXplQm9uUHRnWTdkVG83dnpORDh2IiwicHJvdmlkZXIiOiJBbnRocm9waWMiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxNywiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiOlxuLSBUZW1wZXJhdHVyZToifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTctemVCb25QdGdZN2RUbzd2ek5EOHYiLCJwcm92aWRlciI6IkFudGhyb3BpYyIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDE3LCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIgMTXCsEMgKDU5wrBGKSJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IlxuLSBXaW5kIFNwZWVkOiAifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTctemVCb25QdGdZN2RUbzd2ek5EOHYiLCJwcm92aWRlciI6IkFudGhyb3BpYyIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDE3LCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIxMCBrbS9oIn0sImZpbmlzaF9yZWFzb24iOm51bGwsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjpudWxsLCJsb2dwcm9icyI6bnVsbH1dfQoKZGF0YTogeyJpZCI6Imdlbi0xNzQ0MjAzNDE3LXplQm9uUHRnWTdkVG83dnpORDh2IiwicHJvdmlkZXIiOiJBbnRocm9waWMiLCJtb2RlbCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1Iiwib2JqZWN0IjoiY2hhdC5jb21wbGV0aW9uLmNodW5rIiwiY3JlYXRlZCI6MTc0NDIwMzQxNywiY2hvaWNlcyI6W3siaW5kZXgiOjAsImRlbHRhIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIChhYm91dCA2LiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IjIgbXBoKSJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IlxuXG5JbnRlcmVzdGluZ2x5LCB0aGUgd2VhdGhlciJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiBpbiBQYXJpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gd2hhdCJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiB3ZSBqdXN0IHNhdyBpbiBCZXJsaW4gLSJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiBtaWxkIHRlbXBlcmF0dXJlcyBhbmQgbGlnaHQgd2luZHMifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTctemVCb25QdGdZN2RUbzd2ek5EOHYiLCJwcm92aWRlciI6IkFudGhyb3BpYyIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDE3LCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIuIEl0IGxvb2tzIGxpa2UgYSBwbGVhc2FudCBkYXkgaW4gdGhlIEZyZW5jaCJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiBjYXBpdGFsLiJ9LCJmaW5pc2hfcmVhc29uIjpudWxsLCJuYXRpdmVfZmluaXNoX3JlYXNvbiI6bnVsbCwibG9ncHJvYnMiOm51bGx9XX0KCmRhdGE6IHsiaWQiOiJnZW4tMTc0NDIwMzQxNy16ZUJvblB0Z1k3ZFRvN3Z6TkQ4diIsInByb3ZpZGVyIjoiQW50aHJvcGljIiwibW9kZWwiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdSIsIm9iamVjdCI6ImNoYXQuY29tcGxldGlvbi5jaHVuayIsImNyZWF0ZWQiOjE3NDQyMDM0MTcsImNob2ljZXMiOlt7ImluZGV4IjowLCJkZWx0YSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiJ9LCJmaW5pc2hfcmVhc29uIjoic3RvcCIsIm5hdGl2ZV9maW5pc2hfcmVhc29uIjoic3RvcCIsImxvZ3Byb2JzIjpudWxsfV19CgpkYXRhOiB7ImlkIjoiZ2VuLTE3NDQyMDM0MTctemVCb25QdGdZN2RUbzd2ek5EOHYiLCJwcm92aWRlciI6IkFudGhyb3BpYyIsIm1vZGVsIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJvYmplY3QiOiJjaGF0LmNvbXBsZXRpb24uY2h1bmsiLCJjcmVhdGVkIjoxNzQ0MjAzNDE3LCJjaG9pY2VzIjpbeyJpbmRleCI6MCwiZGVsdGEiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIifSwiZmluaXNoX3JlYXNvbiI6bnVsbCwibmF0aXZlX2ZpbmlzaF9yZWFzb24iOm51bGwsImxvZ3Byb2JzIjpudWxsfV0sInVzYWdlIjp7InByb21wdF90b2tlbnMiOjc0NiwiY29tcGxldGlvbl90b2tlbnMiOjg1LCJ0b3RhbF90b2tlbnMiOjgzMSwiY29zdCI6MC4wMDA5MzY4LCJwcm9tcHRfdG9rZW5zX2RldGFpbHMiOnsiY2FjaGVkX3Rva2VucyI6MH0sImNvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMiOnsicmVhc29uaW5nX3Rva2VucyI6MH19fQoKZGF0YTogW0RPTkVdCgo= + recorded_at: Wed, 09 Apr 2025 12:56:59 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters.yml b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters.yml new file mode 100644 index 000000000..e4b789bc6 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters.yml @@ -0,0 +1,119 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the best language to learn?"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"best_language_to_learn","description":"Gets + the best language to learn","parameters":{"type":"object","properties":{},"required":[]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:29:03 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n{\"id\":\"gen-1744194543-sva5zkztq6ucXkh6QysB\",\"provider\":\"Google\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744194543,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"tool_calls\",\"native_finish_reason\":\"tool_calls\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"I'll + help you find out by using the best_language_to_learn tool to get the recommendation.\",\"refusal\":null,\"reasoning\":null,\"tool_calls\":[{\"id\":\"toolu_vrtx_01WhgLRhxuoc1XrDnqnVE7bx\",\"index\":0,\"type\":\"function\",\"function\":{\"name\":\"best_language_to_learn\",\"arguments\":\"\"}}]}}],\"usage\":{\"prompt_tokens\":327,\"completion_tokens\":64,\"total_tokens\":391}}" + recorded_at: Wed, 09 Apr 2025 10:29:05 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the best language to learn?"},{"role":"assistant","content":"I''ll help you + find out by using the best_language_to_learn tool to get the recommendation.","tool_calls":[{"id":"toolu_vrtx_01WhgLRhxuoc1XrDnqnVE7bx","type":"function","function":{"name":"best_language_to_learn","arguments":"{}"}}]},{"role":"tool","content":"Ruby","tool_call_id":"toolu_vrtx_01WhgLRhxuoc1XrDnqnVE7bx"}],"temperature":0.7,"stream":false,"tools":[{"type":"function","function":{"name":"best_language_to_learn","description":"Gets + the best language to learn","parameters":{"type":"object","properties":{},"required":[]}}}],"tool_choice":"auto"}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 12:59:59 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: "\n \n\n \n\n \n\n \n\n \n\n + \ \n\n \n\n \n\n \n\n \n{\"id\":\"gen-1744203599-pqJm76D0Fml16rEnIGIJ\",\"provider\":\"Google\",\"model\":\"anthropic/claude-3.5-haiku\",\"object\":\"chat.completion\",\"created\":1744203599,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"According + to the tool, Ruby is currently considered the best language to learn. Ruby + is a dynamic, object-oriented programming language known for its simplicity + and readability. It's particularly popular for web development, especially + with the Ruby on Rails framework. \\n\\nSome reasons why Ruby might be a great + language to learn:\\n1. Beginner-friendly syntax that is clean and easy to + read\\n2. Strong community support\\n3. Versatile - used in web development, + scripting, and more\\n4. Emphasizes productivity and programmer happiness\\n\\nHowever, + the \\\"best\\\" language can depend on your specific goals, such as:\\n- + Web development\\n- Data science\\n- Mobile app development\\n- Game development\\n\\nWould + you like to know more about Ruby or discuss how it might fit your specific + programming interests?\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":402,\"completion_tokens\":174,\"total_tokens\":576}}" + recorded_at: Wed, 09 Apr 2025 13:00:03 GMT +recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters_in_multi-turn_streaming_conversations.yml b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters_in_multi-turn_streaming_conversations.yml new file mode 100644 index 000000000..ab02fb33c --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_function_calling_openrouter_anthropic_claude-3_5-haiku_can_use_tools_without_parameters_in_multi-turn_streaming_conversations.yml @@ -0,0 +1,536 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the best language to learn?"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"best_language_to_learn","description":"Gets + the best language to learn","parameters":{"type":"object","properties":{},"required":[]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:29:05 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: UTF-8 + string: |+ + : OPENROUTER PROCESSING + + : OPENROUTER PROCESSING + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":"I"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":"'ll help you fin"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":"d out the best language to learn by"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":" using the available tool"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":"."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"id":"toolu_01VxCRycZyqqsUrQgYNLhiAS","index":0,"type":"function","function":{"name":"best_language_to_learn","arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"tool_calls","native_finish_reason":"tool_calls","logprobs":null}]} + + data: {"id":"gen-1744194546-fC03PQfseqTSDHxkkeF3","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194546,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":327,"completion_tokens":59,"total_tokens":386,"cost":0.0004976,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}} + + data: [DONE] + + recorded_at: Wed, 09 Apr 2025 10:29:07 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the best language to learn?"},{"role":"assistant","content":"I''ll help you + find out the best language to learn by using the available tool.","tool_calls":[{"id":"toolu_01VxCRycZyqqsUrQgYNLhiAS","type":"function","function":{"name":"best_language_to_learn","arguments":"{}"}}]},{"role":"tool","content":"Ruby","tool_call_id":"toolu_01VxCRycZyqqsUrQgYNLhiAS"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"best_language_to_learn","description":"Gets + the best language to learn","parameters":{"type":"object","properties":{},"required":[]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 12:56:43 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: UTF-8 + string: |+ + : OPENROUTER PROCESSING + + : OPENROUTER PROCESSING + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"According"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" to the tool, Ruby"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" is the best language to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" learn!"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" Ruby"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" is a dynamic"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":", object"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"-oriented programming language known"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" for its simplicity an"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"d rea"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"dability. It's particularly"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" popular"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" for web development, especially"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" with"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" the"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" Ruby on Rails framework."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" "},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n\nSome key advantages"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" of learning"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" Ruby include:"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n1"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":". Easy"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" to rea"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"d and write syntax"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n2. Strong community"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" support"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n3. Versat"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"ile"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" - use"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"d in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" web"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" development, scri"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"pting, and more"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n4. Great"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" for beginners due"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" to its intu"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"itive nature"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n\nHowever"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":", the"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" \""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"best\" language can"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" depen"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"d on your specific goals:"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n- Web"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" development"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n- Data"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" science\n- Mobile"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" app development\n- Game"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" development"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n\nWoul"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"d you like to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" know"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" more about why"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" Ruby might"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" be a"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" good choice for"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" you,"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" or are"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" you intereste"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":"d in exploring"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" other programming"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":" languages?"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]} + + data: {"id":"gen-1744203403-t3EAs3NWzbKn958b0MeT","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203403,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":397,"completion_tokens":169,"total_tokens":566,"cost":0.0009936,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}} + + data: [DONE] + + recorded_at: Wed, 09 Apr 2025 12:56:47 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the best language to learn?"},{"role":"assistant","content":"I''ll help you + find out the best language to learn by using the available tool.","tool_calls":[{"id":"toolu_01VxCRycZyqqsUrQgYNLhiAS","type":"function","function":{"name":"best_language_to_learn","arguments":"{}"}}]},{"role":"tool","content":"Ruby","tool_call_id":"toolu_01VxCRycZyqqsUrQgYNLhiAS"},{"role":"assistant","content":"According + to the tool, Ruby is the best language to learn! Ruby is a dynamic, object-oriented + programming language known for its simplicity and readability. It''s particularly + popular for web development, especially with the Ruby on Rails framework. + \n\nSome key advantages of learning Ruby include:\n1. Easy to read and write + syntax\n2. Strong community support\n3. Versatile - used in web development, + scripting, and more\n4. Great for beginners due to its intuitive nature\n\nHowever, + the \"best\" language can depend on your specific goals:\n- Web development\n- + Data science\n- Mobile app development\n- Game development\n\nWould you like + to know more about why Ruby might be a good choice for you, or are you interested + in exploring other programming languages?"},{"role":"user","content":"Tell + me again: what''s the best language to learn?"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"best_language_to_learn","description":"Gets + the best language to learn","parameters":{"type":"object","properties":{},"required":[]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 12:56:47 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: UTF-8 + string: |+ + : OPENROUTER PROCESSING + + : OPENROUTER PROCESSING + + : OPENROUTER PROCESSING + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":"I"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":"'ll check"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":" again using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":" the tool to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":" confirm the"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":" best language to learn."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"id":"toolu_015wwBiZTUJsH8oJ4uGusmVT","index":0,"type":"function","function":{"name":"best_language_to_learn","arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"type":"function","function":{"arguments":""}}]},"index":0,"finish_reason":null,"native_finish_reason":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"tool_calls","native_finish_reason":"tool_calls","logprobs":null}]} + + data: {"id":"gen-1744203407-b1TLh5qgn8UkpejhXTvI","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203407,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":579,"completion_tokens":57,"total_tokens":636,"cost":0.0006912,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}} + + data: [DONE] + + recorded_at: Wed, 09 Apr 2025 12:56:50 GMT +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"What''s + the best language to learn?"},{"role":"assistant","content":"I''ll help you + find out the best language to learn by using the available tool.","tool_calls":[{"id":"toolu_01VxCRycZyqqsUrQgYNLhiAS","type":"function","function":{"name":"best_language_to_learn","arguments":"{}"}}]},{"role":"tool","content":"Ruby","tool_call_id":"toolu_01VxCRycZyqqsUrQgYNLhiAS"},{"role":"assistant","content":"According + to the tool, Ruby is the best language to learn! Ruby is a dynamic, object-oriented + programming language known for its simplicity and readability. It''s particularly + popular for web development, especially with the Ruby on Rails framework. + \n\nSome key advantages of learning Ruby include:\n1. Easy to read and write + syntax\n2. Strong community support\n3. Versatile - used in web development, + scripting, and more\n4. Great for beginners due to its intuitive nature\n\nHowever, + the \"best\" language can depend on your specific goals:\n- Web development\n- + Data science\n- Mobile app development\n- Game development\n\nWould you like + to know more about why Ruby might be a good choice for you, or are you interested + in exploring other programming languages?"},{"role":"user","content":"Tell + me again: what''s the best language to learn?"},{"role":"assistant","content":"I''ll + check again using the tool to confirm the best language to learn.","tool_calls":[{"id":"toolu_015wwBiZTUJsH8oJ4uGusmVT","type":"function","function":{"name":"best_language_to_learn","arguments":"{}"}}]},{"role":"tool","content":"Ruby","tool_call_id":"toolu_015wwBiZTUJsH8oJ4uGusmVT"}],"temperature":0.7,"stream":true,"tools":[{"type":"function","function":{"name":"best_language_to_learn","description":"Gets + the best language to learn","parameters":{"type":"object","properties":{},"required":[]}}}],"tool_choice":"auto","stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 12:56:50 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: UTF-8 + string: |+ + : OPENROUTER PROCESSING + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"The tool consistently"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" recommends Ruby as the"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" best language to learn."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" This"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" reinfor"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"ces the previous"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" recommendation."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" Ruby remains"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" an"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" excellent choice for programming"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":","},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" known"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" for its elegant"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" syntax and versat"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"ility. "},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n\nIf"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" you're considering"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" learning"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" a"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" programming"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" language, Ruby offers"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":":"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n-"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" Beg"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"inner-friendly syntax"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n- Strong web"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" development capabilities"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n- Active"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" community support"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n- Flexibility"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" across"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" different"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" programming"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" domains\n\nWoul"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"d you like me to elaborate"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" on why"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" Ruby might"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" be a good fit"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" for your"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" learning"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":" goals"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":"?"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]} + + data: {"id":"gen-1744203410-uHVWA7DzOdSj9JT7DOch","provider":"Google","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744203410,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":647,"completion_tokens":106,"total_tokens":753,"cost":0.0009416,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}} + + data: [DONE] + + recorded_at: Wed, 09 Apr 2025 12:56:52 GMT +recorded_with: VCR 6.3.1 +... diff --git a/spec/fixtures/vcr_cassettes/chat_streaming_responses_openrouter_anthropic_claude-3_5-haiku_supports_streaming_responses.yml b/spec/fixtures/vcr_cassettes/chat_streaming_responses_openrouter_anthropic_claude-3_5-haiku_supports_streaming_responses.yml new file mode 100644 index 000000000..4a235b26c --- /dev/null +++ b/spec/fixtures/vcr_cassettes/chat_streaming_responses_openrouter_anthropic_claude-3_5-haiku_supports_streaming_responses.yml @@ -0,0 +1,82 @@ +--- +http_interactions: +- request: + method: post + uri: https://openrouter.ai/api/v1/chat/completions + body: + encoding: UTF-8 + string: '{"model":"anthropic/claude-3.5-haiku","messages":[{"role":"user","content":"Count + from 1 to 3"}],"temperature":0.7,"stream":true,"stream_options":{"include_usage":true}}' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-no-a-valid-key + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:28:47 GMT + Content-Type: + - text/event-stream + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-cache + X-Clerk-Auth-Message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + X-Clerk-Auth-Reason: + - token-invalid + X-Clerk-Auth-Status: + - signed-out + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: UTF-8 + string: |+ + : OPENROUTER PROCESSING + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":"Here"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + : OPENROUTER PROCESSING + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":"'s"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":" counting"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":" from 1 to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":" 3:\n\n1"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":"\n2\n3"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]} + + data: {"id":"gen-1744194528-cYmdEzgoiYnNUo87QfKt","provider":"Anthropic","model":"anthropic/claude-3.5-haiku","object":"chat.completion.chunk","created":1744194528,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":15,"completion_tokens":21,"total_tokens":36,"cost":0.000096,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}} + + data: [DONE] + + recorded_at: Wed, 09 Apr 2025 10:28:49 GMT +recorded_with: VCR 6.3.1 +... diff --git a/spec/fixtures/vcr_cassettes/models_refresh_updates_models_and_returns_a_chainable_models_instance.yml b/spec/fixtures/vcr_cassettes/models_refresh_updates_models_and_returns_a_chainable_models_instance.yml index 6f71bcac2..a358979fc 100644 --- a/spec/fixtures/vcr_cassettes/models_refresh_updates_models_and_returns_a_chainable_models_instance.yml +++ b/spec/fixtures/vcr_cassettes/models_refresh_updates_models_and_returns_a_chainable_models_instance.yml @@ -1387,4 +1387,129 @@ http_interactions: Large (24.07)","outputModalities":["TEXT"],"providerName":"Mistral AI","responseStreamingSupported":true},{"customizationsSupported":[],"explicitPromptCaching":{"isSupported":false},"guardrailsSupported":false,"inferenceTypesSupported":["ON_DEMAND"],"inputModalities":["TEXT"],"intelligentPromptRouting":{"isSupported":false},"modelArn":"arn:aws:bedrock:::foundation-model/luma.ray-v2:0","modelId":"luma.ray-v2:0","modelLifecycle":{"status":"ACTIVE"},"modelName":"Ray v2","outputModalities":["VIDEO"],"providerName":"Luma AI","responseStreamingSupported":false}]}' recorded_at: Wed, 02 Apr 2025 17:53:37 GMT +- request: + method: get + uri: https://openrouter.ai/api/v1/models + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-not-a-valid-key + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:56 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cdn-Cache-Control: + - max-age=300 + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkYXRhIjpbeyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tbmFuby04Yi12MTpmcmVlIiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIE5hbm8gOEIgdjEgKGZyZWUpIiwiY3JlYXRlZCI6MTc0NDEyMzg3MywiZGVzY3JpcHRpb24iOiJMbGFtYS0zLjEtTmVtb3Ryb24tTmFuby04Qi12MSBpcyBhIGNvbXBhY3QgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgKExMTSkgZGVyaXZlZCBmcm9tIE1ldGEncyBMbGFtYS0zLjEtOEItSW5zdHJ1Y3QsIHNwZWNpZmljYWxseSBvcHRpbWl6ZWQgZm9yIHJlYXNvbmluZyB0YXNrcywgY29udmVyc2F0aW9uYWwgaW50ZXJhY3Rpb25zLCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIGFuZCB0b29sLWNhbGxpbmcgYXBwbGljYXRpb25zLiBJdCBiYWxhbmNlcyBhY2N1cmFjeSBhbmQgZWZmaWNpZW5jeSwgZml0dGluZyBjb21mb3J0YWJseSBvbnRvIGEgc2luZ2xlIGNvbnN1bWVyLWdyYWRlIFJUWCBHUFUgZm9yIGxvY2FsIGRlcGxveW1lbnQuIFRoZSBtb2RlbCBzdXBwb3J0cyBleHRlbmRlZCBjb250ZXh0IGxlbmd0aHMgb2YgdXAgdG8gMTI4SyB0b2tlbnMuXG5cbk5vdGU6IHlvdSBtdXN0IGluY2x1ZGUgYGRldGFpbGVkIHRoaW5raW5nIG9uYCBpbiB0aGUgc3lzdGVtIHByb21wdCB0byBlbmFibGUgcmVhc29uaW5nLiBQbGVhc2Ugc2VlIFtVc2FnZSBSZWNvbW1lbmRhdGlvbnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbnZpZGlhL0xsYW1hLTNfMS1OZW1vdHJvbi1VbHRyYS0yNTNCLXYxI3F1aWNrLXN0YXJ0LWFuZC11c2FnZS1yZWNvbW1lbmRhdGlvbnMpIGZvciBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJudmlkaWEvbGxhbWEtMy4zLW5lbW90cm9uLXN1cGVyLTQ5Yi12MTpmcmVlIiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4zIE5lbW90cm9uIFN1cGVyIDQ5QiB2MSAoZnJlZSkiLCJjcmVhdGVkIjoxNzQ0MTE5NDk0LCJkZXNjcmlwdGlvbiI6IkxsYW1hLTMuMy1OZW1vdHJvbi1TdXBlci00OUItdjEgaXMgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCAoTExNKSBvcHRpbWl6ZWQgZm9yIGFkdmFuY2VkIHJlYXNvbmluZywgY29udmVyc2F0aW9uYWwgaW50ZXJhY3Rpb25zLCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIGFuZCB0b29sLWNhbGxpbmcgdGFza3MuIERlcml2ZWQgZnJvbSBNZXRhJ3MgTGxhbWEtMy4zLTcwQi1JbnN0cnVjdCwgaXQgZW1wbG95cyBhIE5ldXJhbCBBcmNoaXRlY3R1cmUgU2VhcmNoIChOQVMpIGFwcHJvYWNoLCBzaWduaWZpY2FudGx5IGVuaGFuY2luZyBlZmZpY2llbmN5IGFuZCByZWR1Y2luZyBtZW1vcnkgcmVxdWlyZW1lbnRzLiBUaGlzIGFsbG93cyB0aGUgbW9kZWwgdG8gc3VwcG9ydCBhIGNvbnRleHQgbGVuZ3RoIG9mIHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBmaXQgZWZmaWNpZW50bHkgb24gc2luZ2xlIGhpZ2gtcGVyZm9ybWFuY2UgR1BVcywgc3VjaCBhcyBOVklESUEgSDIwMC5cblxuTm90ZTogeW91IG11c3QgaW5jbHVkZSBgZGV0YWlsZWQgdGhpbmtpbmcgb25gIGluIHRoZSBzeXN0ZW0gcHJvbXB0IHRvIGVuYWJsZSByZWFzb25pbmcuIFBsZWFzZSBzZWUgW1VzYWdlIFJlY29tbWVuZGF0aW9uc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9udmlkaWEvTGxhbWEtM18xLU5lbW90cm9uLVVsdHJhLTI1M0ItdjEjcXVpY2stc3RhcnQtYW5kLXVzYWdlLXJlY29tbWVuZGF0aW9ucykgZm9yIG1vcmUuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tdWx0cmEtMjUzYi12MTpmcmVlIiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIFVsdHJhIDI1M0IgdjEgKGZyZWUpIiwiY3JlYXRlZCI6MTc0NDExNTA1OSwiZGVzY3JpcHRpb24iOiJMbGFtYS0zLjEtTmVtb3Ryb24tVWx0cmEtMjUzQi12MSBpcyBhIGxhcmdlIGxhbmd1YWdlIG1vZGVsIChMTE0pIG9wdGltaXplZCBmb3IgYWR2YW5jZWQgcmVhc29uaW5nLCBodW1hbi1pbnRlcmFjdGl2ZSBjaGF0LCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIGFuZCB0b29sLWNhbGxpbmcgdGFza3MuIERlcml2ZWQgZnJvbSBNZXRh4oCZcyBMbGFtYS0zLjEtNDA1Qi1JbnN0cnVjdCwgaXQgaGFzIGJlZW4gc2lnbmlmaWNhbnRseSBjdXN0b21pemVkIHVzaW5nIE5ldXJhbCBBcmNoaXRlY3R1cmUgU2VhcmNoIChOQVMpLCByZXN1bHRpbmcgaW4gZW5oYW5jZWQgZWZmaWNpZW5jeSwgcmVkdWNlZCBtZW1vcnkgdXNhZ2UsIGFuZCBpbXByb3ZlZCBpbmZlcmVuY2UgbGF0ZW5jeS4gVGhlIG1vZGVsIHN1cHBvcnRzIGEgY29udGV4dCBsZW5ndGggb2YgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIGNhbiBvcGVyYXRlIGVmZmljaWVudGx5IG9uIGFuIDh4IE5WSURJQSBIMTAwIG5vZGUuXG5cbk5vdGU6IHlvdSBtdXN0IGluY2x1ZGUgYGRldGFpbGVkIHRoaW5raW5nIG9uYCBpbiB0aGUgc3lzdGVtIHByb21wdCB0byBlbmFibGUgcmVhc29uaW5nLiBQbGVhc2Ugc2VlIFtVc2FnZSBSZWNvbW1lbmRhdGlvbnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbnZpZGlhL0xsYW1hLTNfMS1OZW1vdHJvbi1VbHRyYS0yNTNCLXYxI3F1aWNrLXN0YXJ0LWFuZC11c2FnZS1yZWNvbW1lbmRhdGlvbnMpIGZvciBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidG9reW90ZWNoLWxsbS9sbGFtYS0zLjEtc3dhbGxvdy04Yi1pbnN0cnVjdC12MC4zIiwibmFtZSI6IlN3YWxsb3c6IExsYW1hIDMuMSBTd2FsbG93IDhCIEluc3RydWN0IFYwLjMiLCJjcmVhdGVkIjoxNzQzOTg2NzQyLCJkZXNjcmlwdGlvbiI6IkxsYW1hIDMuMSBTd2FsbG93IDhCIGlzIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdGhhdCB3YXMgYnVpbHQgYnkgY29udGludWFsIHByZS10cmFpbmluZyBvbiB0aGUgTWV0YSBMbGFtYSAzLjEgOEIuIExsYW1hIDMuMSBTd2FsbG93IGVuaGFuY2VkIHRoZSBKYXBhbmVzZSBsYW5ndWFnZSBjYXBhYmlsaXRpZXMgb2YgdGhlIG9yaWdpbmFsIExsYW1hIDMuMSB3aGlsZSByZXRhaW5pbmcgdGhlIEVuZ2xpc2ggbGFuZ3VhZ2UgY2FwYWJpbGl0aWVzLiBcblN3YWxsb3cgdXNlZCBhcHByb3hpbWF0ZWx5IDIwMCBiaWxsaW9uIHRva2VucyB0aGF0IHdlcmUgc2FtcGxlZCBmcm9tIGEgbGFyZ2UgSmFwYW5lc2Ugd2ViIGNvcnB1cyAoU3dhbGxvdyBDb3JwdXMgVmVyc2lvbiAyKSwgSmFwYW5lc2UgYW5kIEVuZ2xpc2ggV2lraXBlZGlhIGFydGljbGVzLCBhbmQgbWF0aGVtYXRpY2FsIGFuZCBjb2RpbmcgY29udGVudHMsIGV0YyAoc2VlIHRoZSBUcmFpbmluZyBEYXRhc2V0cyBzZWN0aW9uIG9mIHRoZSBiYXNlIG1vZGVsKSBmb3IgY29udGludWFsIHByZS10cmFpbmluZy4gVGhlIGluc3RydWN0aW9uLXR1bmVkIG1vZGVscyAoSW5zdHJ1Y3QpIHdlcmUgYnVpbHQgYnkgc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyAoU0ZUKSBvbiB0aGUgc3ludGhldGljIGRhdGEgc3BlY2lhbGx5IGJ1aWx0IGZvciBKYXBhbmVzZS5cbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTQtbWF2ZXJpY2s6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IE1hdmVyaWNrIChmcmVlKSIsImNyZWF0ZWQiOjE3NDM4ODE4MjIsImRlc2NyaXB0aW9uIjoiTGxhbWEgNCBNYXZlcmljayAxN0IgSW5zdHJ1Y3QgKDEyOEUpIGlzIGEgaGlnaC1jYXBhY2l0eSBtdWx0aW1vZGFsIGxhbmd1YWdlIG1vZGVsIGZyb20gTWV0YSwgYnVpbHQgb24gYSBtaXh0dXJlLW9mLWV4cGVydHMgKE1vRSkgYXJjaGl0ZWN0dXJlIHdpdGggMTI4IGV4cGVydHMgYW5kIDE3IGJpbGxpb24gYWN0aXZlIHBhcmFtZXRlcnMgcGVyIGZvcndhcmQgcGFzcyAoNDAwQiB0b3RhbCkuIEl0IHN1cHBvcnRzIG11bHRpbGluZ3VhbCB0ZXh0IGFuZCBpbWFnZSBpbnB1dCwgYW5kIHByb2R1Y2VzIG11bHRpbGluZ3VhbCB0ZXh0IGFuZCBjb2RlIG91dHB1dCBhY3Jvc3MgMTIgc3VwcG9ydGVkIGxhbmd1YWdlcy4gT3B0aW1pemVkIGZvciB2aXNpb24tbGFuZ3VhZ2UgdGFza3MsIE1hdmVyaWNrIGlzIGluc3RydWN0aW9uLXR1bmVkIGZvciBhc3Npc3RhbnQtbGlrZSBiZWhhdmlvciwgaW1hZ2UgcmVhc29uaW5nLCBhbmQgZ2VuZXJhbC1wdXJwb3NlIG11bHRpbW9kYWwgaW50ZXJhY3Rpb24uXG5cbk1hdmVyaWNrIGZlYXR1cmVzIGVhcmx5IGZ1c2lvbiBmb3IgbmF0aXZlIG11bHRpbW9kYWxpdHkgYW5kIGEgMSBtaWxsaW9uIHRva2VuIGNvbnRleHQgd2luZG93LiBJdCB3YXMgdHJhaW5lZCBvbiBhIGN1cmF0ZWQgbWl4dHVyZSBvZiBwdWJsaWMsIGxpY2Vuc2VkLCBhbmQgTWV0YS1wbGF0Zm9ybSBkYXRhLCBjb3ZlcmluZyB+MjIgdHJpbGxpb24gdG9rZW5zLCB3aXRoIGEga25vd2xlZGdlIGN1dG9mZiBpbiBBdWd1c3QgMjAyNC4gUmVsZWFzZWQgb24gQXByaWwgNSwgMjAyNSB1bmRlciB0aGUgTGxhbWEgNCBDb21tdW5pdHkgTGljZW5zZSwgTWF2ZXJpY2sgaXMgc3VpdGVkIGZvciByZXNlYXJjaCBhbmQgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMgcmVxdWlyaW5nIGFkdmFuY2VkIG11bHRpbW9kYWwgdW5kZXJzdGFuZGluZyBhbmQgaGlnaCBtb2RlbCB0aHJvdWdocHV0LiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtNC1tYXZlcmljayIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IE1hdmVyaWNrIiwiY3JlYXRlZCI6MTc0Mzg4MTgyMiwiZGVzY3JpcHRpb24iOiJMbGFtYSA0IE1hdmVyaWNrIDE3QiBJbnN0cnVjdCAoMTI4RSkgaXMgYSBoaWdoLWNhcGFjaXR5IG11bHRpbW9kYWwgbGFuZ3VhZ2UgbW9kZWwgZnJvbSBNZXRhLCBidWlsdCBvbiBhIG1peHR1cmUtb2YtZXhwZXJ0cyAoTW9FKSBhcmNoaXRlY3R1cmUgd2l0aCAxMjggZXhwZXJ0cyBhbmQgMTcgYmlsbGlvbiBhY3RpdmUgcGFyYW1ldGVycyBwZXIgZm9yd2FyZCBwYXNzICg0MDBCIHRvdGFsKS4gSXQgc3VwcG9ydHMgbXVsdGlsaW5ndWFsIHRleHQgYW5kIGltYWdlIGlucHV0LCBhbmQgcHJvZHVjZXMgbXVsdGlsaW5ndWFsIHRleHQgYW5kIGNvZGUgb3V0cHV0IGFjcm9zcyAxMiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLiBPcHRpbWl6ZWQgZm9yIHZpc2lvbi1sYW5ndWFnZSB0YXNrcywgTWF2ZXJpY2sgaXMgaW5zdHJ1Y3Rpb24tdHVuZWQgZm9yIGFzc2lzdGFudC1saWtlIGJlaGF2aW9yLCBpbWFnZSByZWFzb25pbmcsIGFuZCBnZW5lcmFsLXB1cnBvc2UgbXVsdGltb2RhbCBpbnRlcmFjdGlvbi5cblxuTWF2ZXJpY2sgZmVhdHVyZXMgZWFybHkgZnVzaW9uIGZvciBuYXRpdmUgbXVsdGltb2RhbGl0eSBhbmQgYSAxIG1pbGxpb24gdG9rZW4gY29udGV4dCB3aW5kb3cuIEl0IHdhcyB0cmFpbmVkIG9uIGEgY3VyYXRlZCBtaXh0dXJlIG9mIHB1YmxpYywgbGljZW5zZWQsIGFuZCBNZXRhLXBsYXRmb3JtIGRhdGEsIGNvdmVyaW5nIH4yMiB0cmlsbGlvbiB0b2tlbnMsIHdpdGggYSBrbm93bGVkZ2UgY3V0b2ZmIGluIEF1Z3VzdCAyMDI0LiBSZWxlYXNlZCBvbiBBcHJpbCA1LCAyMDI1IHVuZGVyIHRoZSBMbGFtYSA0IENvbW11bml0eSBMaWNlbnNlLCBNYXZlcmljayBpcyBzdWl0ZWQgZm9yIHJlc2VhcmNoIGFuZCBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYWR2YW5jZWQgbXVsdGltb2RhbCB1bmRlcnN0YW5kaW5nIGFuZCBoaWdoIG1vZGVsIHRocm91Z2hwdXQuIiwiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNzAxODIiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwNDg1NzYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTQtc2NvdXQ6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IFNjb3V0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDM4ODE1MTksImRlc2NyaXB0aW9uIjoiTGxhbWEgNCBTY291dCAxN0IgSW5zdHJ1Y3QgKDE2RSkgaXMgYSBtaXh0dXJlLW9mLWV4cGVydHMgKE1vRSkgbGFuZ3VhZ2UgbW9kZWwgZGV2ZWxvcGVkIGJ5IE1ldGEsIGFjdGl2YXRpbmcgMTcgYmlsbGlvbiBwYXJhbWV0ZXJzIG91dCBvZiBhIHRvdGFsIG9mIDEwOUIuIEl0IHN1cHBvcnRzIG5hdGl2ZSBtdWx0aW1vZGFsIGlucHV0ICh0ZXh0IGFuZCBpbWFnZSkgYW5kIG11bHRpbGluZ3VhbCBvdXRwdXQgKHRleHQgYW5kIGNvZGUpIGFjcm9zcyAxMiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLiBEZXNpZ25lZCBmb3IgYXNzaXN0YW50LXN0eWxlIGludGVyYWN0aW9uIGFuZCB2aXN1YWwgcmVhc29uaW5nLCBTY291dCB1c2VzIDE2IGV4cGVydHMgcGVyIGZvcndhcmQgcGFzcyBhbmQgZmVhdHVyZXMgYSBjb250ZXh0IGxlbmd0aCBvZiAxMCBtaWxsaW9uIHRva2Vucywgd2l0aCBhIHRyYWluaW5nIGNvcnB1cyBvZiB+NDAgdHJpbGxpb24gdG9rZW5zLlxuXG5CdWlsdCBmb3IgaGlnaCBlZmZpY2llbmN5IGFuZCBsb2NhbCBvciBjb21tZXJjaWFsIGRlcGxveW1lbnQsIExsYW1hIDQgU2NvdXQgaW5jb3Jwb3JhdGVzIGVhcmx5IGZ1c2lvbiBmb3Igc2VhbWxlc3MgbW9kYWxpdHkgaW50ZWdyYXRpb24uIEl0IGlzIGluc3RydWN0aW9uLXR1bmVkIGZvciB1c2UgaW4gbXVsdGlsaW5ndWFsIGNoYXQsIGNhcHRpb25pbmcsIGFuZCBpbWFnZSB1bmRlcnN0YW5kaW5nIHRhc2tzLiBSZWxlYXNlZCB1bmRlciB0aGUgTGxhbWEgNCBDb21tdW5pdHkgTGljZW5zZSwgaXQgd2FzIGxhc3QgdHJhaW5lZCBvbiBkYXRhIHVwIHRvIEF1Z3VzdCAyMDI0IGFuZCBsYXVuY2hlZCBwdWJsaWNseSBvbiBBcHJpbCA1LCAyMDI1LiIsImNvbnRleHRfbGVuZ3RoIjo1MTIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo1MTIwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtNC1zY291dCIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IFNjb3V0IiwiY3JlYXRlZCI6MTc0Mzg4MTUxOSwiZGVzY3JpcHRpb24iOiJMbGFtYSA0IFNjb3V0IDE3QiBJbnN0cnVjdCAoMTZFKSBpcyBhIG1peHR1cmUtb2YtZXhwZXJ0cyAoTW9FKSBsYW5ndWFnZSBtb2RlbCBkZXZlbG9wZWQgYnkgTWV0YSwgYWN0aXZhdGluZyAxNyBiaWxsaW9uIHBhcmFtZXRlcnMgb3V0IG9mIGEgdG90YWwgb2YgMTA5Qi4gSXQgc3VwcG9ydHMgbmF0aXZlIG11bHRpbW9kYWwgaW5wdXQgKHRleHQgYW5kIGltYWdlKSBhbmQgbXVsdGlsaW5ndWFsIG91dHB1dCAodGV4dCBhbmQgY29kZSkgYWNyb3NzIDEyIHN1cHBvcnRlZCBsYW5ndWFnZXMuIERlc2lnbmVkIGZvciBhc3Npc3RhbnQtc3R5bGUgaW50ZXJhY3Rpb24gYW5kIHZpc3VhbCByZWFzb25pbmcsIFNjb3V0IHVzZXMgMTYgZXhwZXJ0cyBwZXIgZm9yd2FyZCBwYXNzIGFuZCBmZWF0dXJlcyBhIGNvbnRleHQgbGVuZ3RoIG9mIDEwIG1pbGxpb24gdG9rZW5zLCB3aXRoIGEgdHJhaW5pbmcgY29ycHVzIG9mIH40MCB0cmlsbGlvbiB0b2tlbnMuXG5cbkJ1aWx0IGZvciBoaWdoIGVmZmljaWVuY3kgYW5kIGxvY2FsIG9yIGNvbW1lcmNpYWwgZGVwbG95bWVudCwgTGxhbWEgNCBTY291dCBpbmNvcnBvcmF0ZXMgZWFybHkgZnVzaW9uIGZvciBzZWFtbGVzcyBtb2RhbGl0eSBpbnRlZ3JhdGlvbi4gSXQgaXMgaW5zdHJ1Y3Rpb24tdHVuZWQgZm9yIHVzZSBpbiBtdWx0aWxpbmd1YWwgY2hhdCwgY2FwdGlvbmluZywgYW5kIGltYWdlIHVuZGVyc3RhbmRpbmcgdGFza3MuIFJlbGVhc2VkIHVuZGVyIHRoZSBMbGFtYSA0IENvbW11bml0eSBMaWNlbnNlLCBpdCB3YXMgbGFzdCB0cmFpbmVkIG9uIGRhdGEgdXAgdG8gQXVndXN0IDIwMjQgYW5kIGxhdW5jaGVkIHB1YmxpY2x5IG9uIEFwcmlsIDUsIDIwMjUuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA1MDEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTA3MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktMi41LXByby1wcmV2aWV3LTAzLTI1IiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuNSBQcm8gUHJldmlldyIsImNyZWF0ZWQiOjE3NDM3ODA0OTMsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuNSBQcm8gaXMgR29vZ2xl4oCZcyBzdGF0ZS1vZi10aGUtYXJ0IEFJIG1vZGVsIGRlc2lnbmVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbnRpZmljIHRhc2tzLiBJdCBlbXBsb3lzIOKAnHRoaW5raW5n4oCdIGNhcGFiaWxpdGllcywgZW5hYmxpbmcgaXQgdG8gcmVhc29uIHRocm91Z2ggcmVzcG9uc2VzIHdpdGggZW5oYW5jZWQgYWNjdXJhY3kgYW5kIG51YW5jZWQgY29udGV4dCBoYW5kbGluZy4gR2VtaW5pIDIuNSBQcm8gYWNoaWV2ZXMgdG9wLXRpZXIgcGVyZm9ybWFuY2Ugb24gbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nIGZpcnN0LXBsYWNlIHBvc2l0aW9uaW5nIG9uIHRoZSBMTUFyZW5hIGxlYWRlcmJvYXJkLCByZWZsZWN0aW5nIHN1cGVyaW9yIGh1bWFuLXByZWZlcmVuY2UgYWxpZ25tZW50IGFuZCBjb21wbGV4IHByb2JsZW0tc29sdmluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjU1MzUsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVucm91dGVyL3F1YXNhci1hbHBoYSIsIm5hbWUiOiJRdWFzYXIgQWxwaGEiLCJjcmVhdGVkIjoxNzQzNjI2ODA5LCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSBjbG9ha2VkIG1vZGVsIHByb3ZpZGVkIHRvIHRoZSBjb21tdW5pdHkgdG8gZ2F0aGVyIGZlZWRiYWNrLiBJdOKAmXMgYSBwb3dlcmZ1bCwgYWxsLXB1cnBvc2UgbW9kZWwgc3VwcG9ydGluZyBsb25nLWNvbnRleHQgdGFza3MsIGluY2x1ZGluZyBjb2RlIGdlbmVyYXRpb24uIEFsbCBwcm9tcHRzIGFuZCBjb21wbGV0aW9ucyBmb3IgdGhpcyBtb2RlbCBhcmUgbG9nZ2VkIGJ5IHRoZSBwcm92aWRlciBhcyB3ZWxsIGFzIE9wZW5Sb3V0ZXIuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbImltYWdlIiwidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbGwtaGFuZHMvb3BlbmhhbmRzLWxtLTMyYi12MC4xIiwibmFtZSI6Ik9wZW5IYW5kcyBMTSAzMkIgVjAuMSIsImNyZWF0ZWQiOjE3NDM2MTMwMTMsImRlc2NyaXB0aW9uIjoiT3BlbkhhbmRzIExNIHYwLjEgaXMgYSAzMkIgb3Blbi1zb3VyY2UgY29kaW5nIG1vZGVsIGZpbmUtdHVuZWQgZnJvbSBRd2VuMi41LUNvZGVyLTMyQi1JbnN0cnVjdCB1c2luZyByZWluZm9yY2VtZW50IGxlYXJuaW5nIHRlY2huaXF1ZXMgb3V0bGluZWQgaW4gU1dFLUd5bS4gSXQgaXMgb3B0aW1pemVkIGZvciBhdXRvbm9tb3VzIHNvZnR3YXJlIGRldmVsb3BtZW50IGFnZW50cyBhbmQgYWNoaWV2ZXMgc3Ryb25nIHBlcmZvcm1hbmNlIG9uIFNXRS1CZW5jaCBWZXJpZmllZCwgd2l0aCBhIDM3LjIlIHJlc29sdmUgcmF0ZS4gVGhlIG1vZGVsIHN1cHBvcnRzIGEgMTI4SyB0b2tlbiBjb250ZXh0IHdpbmRvdywgbWFraW5nIGl0IHdlbGwtc3VpdGVkIGZvciBsb25nLWhvcml6b24gY29kZSByZWFzb25pbmcgYW5kIGxhcmdlIGNvZGViYXNlIHRhc2tzLlxuXG5PcGVuSGFuZHMgTE0gaXMgZGVzaWduZWQgZm9yIGxvY2FsIGRlcGxveW1lbnQgYW5kIHJ1bnMgb24gY29uc3VtZXItZ3JhZGUgR1BVcyBzdWNoIGFzIGEgc2luZ2xlIDMwOTAuIEl0IGVuYWJsZXMgZnVsbHkgb2ZmbGluZSBhZ2VudCB3b3JrZmxvd3Mgd2l0aG91dCBkZXBlbmRlbmN5IG9uIHByb3ByaWV0YXJ5IEFQSXMuIFRoaXMgcmVsZWFzZSBpcyBpbnRlbmRlZCBhcyBhIHJlc2VhcmNoIHByZXZpZXcsIGFuZCBmdXR1cmUgdXBkYXRlcyBhaW0gdG8gaW1wcm92ZSBnZW5lcmFsaXphYmlsaXR5LCByZWR1Y2UgcmVwZXRpdGlvbiwgYW5kIG9mZmVyIHNtYWxsZXIgdmFyaWFudHMuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDM0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbC9taW5pc3RyYWwtOGIiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDhCIiwiY3JlYXRlZCI6MTc0MzQzMDAyMSwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgOEIgaXMgYSBzdGF0ZS1vZi10aGUtYXJ0IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3Igb24tZGV2aWNlIGFuZCBlZGdlIGNvbXB1dGluZy4gRGVzaWduZWQgZm9yIGVmZmljaWVuY3kgaW4ga25vd2xlZGdlLWludGVuc2l2ZSB0YXNrcywgY29tbW9uc2Vuc2UgcmVhc29uaW5nLCBhbmQgZnVuY3Rpb24tY2FsbGluZywgaXQgZmVhdHVyZXMgYSBzcGVjaWFsaXplZCBpbnRlcmxlYXZlZCBzbGlkaW5nLXdpbmRvdyBhdHRlbnRpb24gbWVjaGFuaXNtLCBlbmFibGluZyBmYXN0ZXIgYW5kIG1vcmUgbWVtb3J5LWVmZmljaWVudCBpbmZlcmVuY2UuIE1pbmlzdHJhbCA4QiBleGNlbHMgaW4gbG9jYWwsIGxvdy1sYXRlbmN5IGFwcGxpY2F0aW9ucyBzdWNoIGFzIG9mZmxpbmUgdHJhbnNsYXRpb24sIHNtYXJ0IGFzc2lzdGFudHMsIGF1dG9ub21vdXMgcm9ib3RpY3MsIGFuZCBsb2NhbCBhbmFseXRpY3MuXG5cblRoZSBtb2RlbCBzdXBwb3J0cyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoIGFuZCBjYW4gZnVuY3Rpb24gYXMgYSBwZXJmb3JtYW50IGludGVybWVkaWFyeSBpbiBtdWx0aS1zdGVwIGFnZW50aWMgd29ya2Zsb3dzLCBlZmZpY2llbnRseSBoYW5kbGluZyB0YXNrcyBsaWtlIGlucHV0IHBhcnNpbmcsIEFQSSBjYWxscywgYW5kIHRhc2sgcm91dGluZy4gSXQgY29uc2lzdGVudGx5IG91dHBlcmZvcm1zIGNvbXBhcmFibGUgbW9kZWxzIGxpa2UgTWlzdHJhbCA3QiBhY3Jvc3MgYmVuY2htYXJrcywgbWFraW5nIGl0IHBhcnRpY3VsYXJseSBzdWl0YWJsZSBmb3IgY29tcHV0ZS1lZmZpY2llbnQsIHByaXZhY3ktZm9jdXNlZCBzY2VuYXJpb3MuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXYzLWJhc2U6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogRGVlcFNlZWsgVjMgQmFzZSAoZnJlZSkiLCJjcmVhdGVkIjoxNzQzMjcyMDIzLCJkZXNjcmlwdGlvbiI6Ik5vdGUgdGhhdCB0aGlzIGlzIGEgYmFzZSBtb2RlbCBtb3N0bHkgbWVhbnQgZm9yIHRlc3RpbmcsIHlvdSBuZWVkIHRvIHByb3ZpZGUgZGV0YWlsZWQgcHJvbXB0cyBmb3IgdGhlIG1vZGVsIHRvIHJldHVybiB1c2VmdWwgcmVzcG9uc2VzLiBcblxuRGVlcFNlZWstVjMgQmFzZSBpcyBhIDY3MUIgcGFyYW1ldGVyIG9wZW4gTWl4dHVyZS1vZi1FeHBlcnRzIChNb0UpIGxhbmd1YWdlIG1vZGVsIHdpdGggMzdCIGFjdGl2ZSBwYXJhbWV0ZXJzIHBlciBmb3J3YXJkIHBhc3MgYW5kIGEgY29udGV4dCBsZW5ndGggb2YgMTI4SyB0b2tlbnMuIFRyYWluZWQgb24gMTQuOFQgdG9rZW5zIHVzaW5nIEZQOCBtaXhlZCBwcmVjaXNpb24sIGl0IGFjaGlldmVzIGhpZ2ggdHJhaW5pbmcgZWZmaWNpZW5jeSBhbmQgc3RhYmlsaXR5LCB3aXRoIHN0cm9uZyBwZXJmb3JtYW5jZSBhY3Jvc3MgbGFuZ3VhZ2UsIHJlYXNvbmluZywgbWF0aCwgYW5kIGNvZGluZyB0YXNrcy4gXG5cbkRlZXBTZWVrLVYzIEJhc2UgaXMgdGhlIHByZS10cmFpbmVkIG1vZGVsIGJlaGluZCBbRGVlcFNlZWsgVjNdKC9kZWVwc2Vlay9kZWVwc2Vlay1jaGF0LXYzKSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzY2IxMHgvbGxhbWEzLjEtdHlwaG9vbjItOGItaW5zdHJ1Y3QiLCJuYW1lIjoiVHlwaG9vbjIgOEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzQzMTk2NTExLCJkZXNjcmlwdGlvbiI6IkxsYW1hMy4xLVR5cGhvb24yLThCLUluc3RydWN0IGlzIGEgVGhhaS1FbmdsaXNoIGluc3RydWN0aW9uLXR1bmVkIG1vZGVsIHdpdGggOCBiaWxsaW9uIHBhcmFtZXRlcnMsIGJ1aWx0IG9uIExsYW1hIDMuMS4gSXQgc2lnbmlmaWNhbnRseSBpbXByb3ZlcyBvdmVyIGl0cyBiYXNlIG1vZGVsIGluIFRoYWkgcmVhc29uaW5nLCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGFuZCBmdW5jdGlvbi1jYWxsaW5nIHRhc2tzLCB3aGlsZSBtYWludGFpbmluZyBjb21wZXRpdGl2ZSBFbmdsaXNoIHBlcmZvcm1hbmNlLiBUaGUgbW9kZWwgaXMgb3B0aW1pemVkIGZvciBiaWxpbmd1YWwgaW50ZXJhY3Rpb24gYW5kIHBlcmZvcm1zIHdlbGwgb24gVGhhaS1FbmdsaXNoIGNvZGUtc3dpdGNoaW5nLCBNVC1CZW5jaCwgSUZFdmFsLCBhbmQgdG9vbC11c2UgYmVuY2htYXJrcy5cblxuRGVzcGl0ZSBpdHMgc21hbGxlciBzaXplLCBpdCBkZW1vbnN0cmF0ZXMgc3Ryb25nIGdlbmVyYWxpemF0aW9uIGFjcm9zcyBtYXRoLCBjb2RpbmcsIGFuZCBtdWx0aWxpbmd1YWwgYmVuY2htYXJrcywgb3V0cGVyZm9ybWluZyBjb21wYXJhYmxlIDhCIG1vZGVscyBhY3Jvc3MgbW9zdCBUaGFpLXNwZWNpZmljIHRhc2tzLiBGdWxsIGJlbmNobWFyayByZXN1bHRzIGFuZCBtZXRob2RvbG9neSBhcmUgYXZhaWxhYmxlIGluIHRoZSBbdGVjaG5pY2FsIHJlcG9ydC5dKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yNDEyLjEzNzAyKSIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2NiMTB4L2xsYW1hMy4xLXR5cGhvb24yLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJUeXBob29uMiA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzQzMTk2MTcwLCJkZXNjcmlwdGlvbiI6IkxsYW1hMy4xLVR5cGhvb24yLTcwQi1JbnN0cnVjdCBpcyBhIFRoYWktRW5nbGlzaCBpbnN0cnVjdGlvbi10dW5lZCBsYW5ndWFnZSBtb2RlbCB3aXRoIDcwIGJpbGxpb24gcGFyYW1ldGVycywgYnVpbHQgb24gTGxhbWEgMy4xLiBJdCBkZW1vbnN0cmF0ZXMgc3Ryb25nIHBlcmZvcm1hbmNlIGFjcm9zcyBnZW5lcmFsIGluc3RydWN0aW9uLWZvbGxvd2luZywgbWF0aCwgY29kaW5nLCBhbmQgdG9vbC11c2UgdGFza3MsIHdpdGggc3RhdGUtb2YtdGhlLWFydCByZXN1bHRzIGluIFRoYWktc3BlY2lmaWMgYmVuY2htYXJrcyBzdWNoIGFzIElGRXZhbCwgTVQtQmVuY2gsIGFuZCBUaGFpLUVuZ2xpc2ggY29kZS1zd2l0Y2hpbmcuXG5cblRoZSBtb2RlbCBleGNlbHMgaW4gYmlsaW5ndWFsIHJlYXNvbmluZyBhbmQgZnVuY3Rpb24tY2FsbGluZyBzY2VuYXJpb3MsIG9mZmVyaW5nIGhpZ2ggYWNjdXJhY3kgYWNyb3NzIGRpdmVyc2UgZG9tYWlucy4gQ29tcGFyYXRpdmUgZXZhbHVhdGlvbnMgc2hvdyBjb25zaXN0ZW50IGltcHJvdmVtZW50cyBvdmVyIHByaW9yIFRoYWkgTExNcyBhbmQgb3RoZXIgTGxhbWEtYmFzZWQgYmFzZWxpbmVzLiBGdWxsIHJlc3VsdHMgYW5kIG1ldGhvZG9sb2d5IGFyZSBhdmFpbGFibGUgaW4gdGhlIFt0ZWNobmljYWwgcmVwb3J0Ll0oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzI0MTIuMTM3MDIpIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4OCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbGxlbmFpL21vbG1vLTdiLWQ6ZnJlZSIsIm5hbWUiOiJBbGxlbkFJOiBNb2xtbyA3QiBEIChmcmVlKSIsImNyZWF0ZWQiOjE3NDMwMjMyNDcsImRlc2NyaXB0aW9uIjoiTW9sbW8gaXMgYSBmYW1pbHkgb2Ygb3BlbiB2aXNpb24tbGFuZ3VhZ2UgbW9kZWxzIGRldmVsb3BlZCBieSB0aGUgQWxsZW4gSW5zdGl0dXRlIGZvciBBSS4gTW9sbW8gbW9kZWxzIGFyZSB0cmFpbmVkIG9uIFBpeE1vLCBhIGRhdGFzZXQgb2YgMSBtaWxsaW9uLCBoaWdobHktY3VyYXRlZCBpbWFnZS10ZXh0IHBhaXJzLiBJdCBoYXMgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBhbW9uZyBtdWx0aW1vZGFsIG1vZGVscyB3aXRoIGEgc2ltaWxhciBzaXplIHdoaWxlIGJlaW5nIGZ1bGx5IG9wZW4tc291cmNlLiBZb3UgY2FuIGZpbmQgYWxsIG1vZGVscyBpbiB0aGUgTW9sbW8gZmFtaWx5IFtoZXJlXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NvbGxlY3Rpb25zL2FsbGVuYWkvbW9sbW8tNjZmMzc5ZTZmZTNiOGVmMDkwYThjYTE5KS4gTGVhcm4gbW9yZSBhYm91dCB0aGUgTW9sbW8gZmFtaWx5IFtpbiB0aGUgYW5ub3VuY2VtZW50IGJsb2cgcG9zdF0oaHR0cHM6Ly9tb2xtby5hbGxlbmFpLm9yZy9ibG9nKSBvciB0aGUgW3BhcGVyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL3BhcGVycy8yNDA5LjE3MTQ2KS5cblxuTW9sbW8gN0ItRCBpcyBiYXNlZCBvbiBbUXdlbjItN0JdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMi03QikgYW5kIHVzZXMgW09wZW5BSSBDTElQXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL29wZW5haS9jbGlwLXZpdC1sYXJnZS1wYXRjaDE0LTMzNikgYXMgdmlzaW9uIGJhY2tib25lLiBJdCBwZXJmb3JtcyBjb21mb3J0YWJseSBiZXR3ZWVuIEdQVC00ViBhbmQgR1BULTRvIG9uIGJvdGggYWNhZGVtaWMgYmVuY2htYXJrcyBhbmQgaHVtYW4gZXZhbHVhdGlvbi5cblxuVGhpcyBjaGVja3BvaW50IGlzIGEgcHJldmlldyBvZiB0aGUgTW9sbW8gcmVsZWFzZS4gQWxsIGFydGlmYWN0cyB1c2VkIGluIGNyZWF0aW5nIE1vbG1vIChQaXhNbyBkYXRhc2V0LCB0cmFpbmluZyBjb2RlLCBldmFsdWF0aW9ucywgaW50ZXJtZWRpYXRlIGNoZWNrcG9pbnRzKSB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlIGF0IGEgbGF0ZXIgZGF0ZSwgZnVydGhlcmluZyBvdXIgY29tbWl0bWVudCB0byBvcGVuLXNvdXJjZSBBSSBkZXZlbG9wbWVudCBhbmQgcmVwcm9kdWNpYmlsaXR5LiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYnl0ZWRhbmNlLXJlc2VhcmNoL3VpLXRhcnMtNzJiOmZyZWUiLCJuYW1lIjoiQnl0ZWRhbmNlOiBVSS1UQVJTIDcyQiAgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MzAyMDA2NSwiZGVzY3JpcHRpb24iOiJVSS1UQVJTIDcyQiBpcyBhbiBvcGVuLXNvdXJjZSBtdWx0aW1vZGFsIEFJIG1vZGVsIGRlc2lnbmVkIHNwZWNpZmljYWxseSBmb3IgYXV0b21hdGluZyBicm93c2VyIGFuZCBkZXNrdG9wIHRhc2tzIHRocm91Z2ggdmlzdWFsIGludGVyYWN0aW9uIGFuZCBjb250cm9sLiBUaGUgbW9kZWwgaXMgYnVpbHQgd2l0aCBhIHNwZWNpYWxpemVkIHZpc2lvbiBhcmNoaXRlY3R1cmUgZW5hYmxpbmcgYWNjdXJhdGUgaW50ZXJwcmV0YXRpb24gYW5kIG1hbmlwdWxhdGlvbiBvZiBvbi1zY3JlZW4gdmlzdWFsIGRhdGEuIEl0IHN1cHBvcnRzIGF1dG9tYXRpb24gdGFza3Mgd2l0aGluIHdlYiBicm93c2VycyBhcyB3ZWxsIGFzIGRlc2t0b3AgYXBwbGljYXRpb25zLCBpbmNsdWRpbmcgTWljcm9zb2Z0IE9mZmljZSBhbmQgVlMgQ29kZS5cblxuQ29yZSBjYXBhYmlsaXRpZXMgaW5jbHVkZSBpbnRlbGxpZ2VudCBzY3JlZW4gZGV0ZWN0aW9uLCBwcmVkaWN0aXZlIGFjdGlvbiBtb2RlbGluZywgYW5kIGVmZmljaWVudCBoYW5kbGluZyBvZiByZXBldGl0aXZlIGludGVyYWN0aW9ucy4gVUktVEFSUyBlbXBsb3lzIHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgdGFpbG9yZWQgZXhwbGljaXRseSBmb3IgY29tcHV0ZXIgY29udHJvbCBzY2VuYXJpb3MuIEl0IGNhbiBiZSBkZXBsb3llZCBsb2NhbGx5IG9yIGFjY2Vzc2VkIHZpYSBIdWdnaW5nIEZhY2UgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMuIEludGVuZGVkIHVzZSBjYXNlcyBlbmNvbXBhc3Mgd29ya2Zsb3cgYXV0b21hdGlvbiwgdGFzayBzY3JpcHRpbmcsIGFuZCBpbnRlcmFjdGl2ZSBkZXNrdG9wIGNvbnRyb2wgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtdmwtM2ItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDNCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDMwMTQ1NzMsImRlc2NyaXB0aW9uIjoiUXdlbjIuNSBWTCAzQiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBBZ2VudCB0aGF0IGNhbiBvcGVyYXRlIHlvdXIgbW9iaWxlcywgcm9ib3RzLCBldGMuOiB3aXRoIHRoZSBhYmlsaXRpZXMgb2YgY29tcGxleCByZWFzb25pbmcgYW5kIGRlY2lzaW9uIG1ha2luZywgUXdlbjIuNS1WTCBjYW4gYmUgaW50ZWdyYXRlZCB3aXRoIGRldmljZXMgbGlrZSBtb2JpbGUgcGhvbmVzLCByb2JvdHMsIGV0Yy4sIGZvciBhdXRvbWF0aWMgb3BlcmF0aW9uIGJhc2VkIG9uIHZpc3VhbCBlbnZpcm9ubWVudCBhbmQgdGV4dCBpbnN0cnVjdGlvbnMuXG5cbi0gTXVsdGlsaW5ndWFsIFN1cHBvcnQ6IHRvIHNlcnZlIGdsb2JhbCB1c2VycywgYmVzaWRlcyBFbmdsaXNoIGFuZCBDaGluZXNlLCBRd2VuMi41LVZMIG5vdyBzdXBwb3J0cyB0aGUgdW5kZXJzdGFuZGluZyBvZiB0ZXh0cyBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGluc2lkZSBpbWFnZXMsIGluY2x1ZGluZyBtb3N0IEV1cm9wZWFuIGxhbmd1YWdlcywgSmFwYW5lc2UsIEtvcmVhbiwgQXJhYmljLCBWaWV0bmFtZXNlLCBldGMuXG5cbkZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGlzIFtibG9nIHBvc3RdKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLXZsLykgYW5kIFtHaXRIdWIgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL1F3ZW5MTS9Rd2VuMi1WTCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjUtcHJvLWV4cC0wMy0yNTpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuNSBQcm8gRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3NDI5MjIwOTksImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuNSBQcm8gaXMgR29vZ2xl4oCZcyBzdGF0ZS1vZi10aGUtYXJ0IEFJIG1vZGVsIGRlc2lnbmVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbnRpZmljIHRhc2tzLiBJdCBlbXBsb3lzIOKAnHRoaW5raW5n4oCdIGNhcGFiaWxpdGllcywgZW5hYmxpbmcgaXQgdG8gcmVhc29uIHRocm91Z2ggcmVzcG9uc2VzIHdpdGggZW5oYW5jZWQgYWNjdXJhY3kgYW5kIG51YW5jZWQgY29udGV4dCBoYW5kbGluZy4gR2VtaW5pIDIuNSBQcm8gYWNoaWV2ZXMgdG9wLXRpZXIgcGVyZm9ybWFuY2Ugb24gbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nIGZpcnN0LXBsYWNlIHBvc2l0aW9uaW5nIG9uIHRoZSBMTUFyZW5hIGxlYWRlcmJvYXJkLCByZWZsZWN0aW5nIHN1cGVyaW9yIGh1bWFuLXByZWZlcmVuY2UgYWxpZ25tZW50IGFuZCBjb21wbGV4IHByb2JsZW0tc29sdmluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NTUzNSwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbjIuNS12bC0zMmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDMyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzQyODM5ODM4LCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtVkwtMzJCIGlzIGEgbXVsdGltb2RhbCB2aXNpb24tbGFuZ3VhZ2UgbW9kZWwgZmluZS10dW5lZCB0aHJvdWdoIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgZm9yIGVuaGFuY2VkIG1hdGhlbWF0aWNhbCByZWFzb25pbmcsIHN0cnVjdHVyZWQgb3V0cHV0cywgYW5kIHZpc3VhbCBwcm9ibGVtLXNvbHZpbmcgY2FwYWJpbGl0aWVzLiBJdCBleGNlbHMgYXQgdmlzdWFsIGFuYWx5c2lzIHRhc2tzLCBpbmNsdWRpbmcgb2JqZWN0IHJlY29nbml0aW9uLCB0ZXh0dWFsIGludGVycHJldGF0aW9uIHdpdGhpbiBpbWFnZXMsIGFuZCBwcmVjaXNlIGV2ZW50IGxvY2FsaXphdGlvbiBpbiBleHRlbmRlZCB2aWRlb3MuIFF3ZW4yLjUtVkwtMzJCIGRlbW9uc3RyYXRlcyBzdGF0ZS1vZi10aGUtYXJ0IHBlcmZvcm1hbmNlIGFjcm9zcyBtdWx0aW1vZGFsIGJlbmNobWFya3Mgc3VjaCBhcyBNTU1VLCBNYXRoVmlzdGEsIGFuZCBWaWRlb01NRSwgd2hpbGUgbWFpbnRhaW5pbmcgc3Ryb25nIHJlYXNvbmluZyBhbmQgY2xhcml0eSBpbiB0ZXh0LWJhc2VkIHRhc2tzIGxpa2UgTU1MVSwgbWF0aGVtYXRpY2FsIHByb2JsZW0tc29sdmluZywgYW5kIGNvZGUgZ2VuZXJhdGlvbi4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuMi41LXZsLTMyYi1pbnN0cnVjdCIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDI4Mzk4MzgsImRlc2NyaXB0aW9uIjoiUXdlbjIuNS1WTC0zMkIgaXMgYSBtdWx0aW1vZGFsIHZpc2lvbi1sYW5ndWFnZSBtb2RlbCBmaW5lLXR1bmVkIHRocm91Z2ggcmVpbmZvcmNlbWVudCBsZWFybmluZyBmb3IgZW5oYW5jZWQgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgc3RydWN0dXJlZCBvdXRwdXRzLCBhbmQgdmlzdWFsIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGV4Y2VscyBhdCB2aXN1YWwgYW5hbHlzaXMgdGFza3MsIGluY2x1ZGluZyBvYmplY3QgcmVjb2duaXRpb24sIHRleHR1YWwgaW50ZXJwcmV0YXRpb24gd2l0aGluIGltYWdlcywgYW5kIHByZWNpc2UgZXZlbnQgbG9jYWxpemF0aW9uIGluIGV4dGVuZGVkIHZpZGVvcy4gUXdlbjIuNS1WTC0zMkIgZGVtb25zdHJhdGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpbW9kYWwgYmVuY2htYXJrcyBzdWNoIGFzIE1NTVUsIE1hdGhWaXN0YSwgYW5kIFZpZGVvTU1FLCB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgcmVhc29uaW5nIGFuZCBjbGFyaXR5IGluIHRleHQtYmFzZWQgdGFza3MgbGlrZSBNTUxVLCBtYXRoZW1hdGljYWwgcHJvYmxlbS1zb2x2aW5nLCBhbmQgY29kZSBnZW5lcmF0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLWNoYXQtdjMtMDMyNDpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBWMyAwMzI0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDI4MjQ3NTUsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgVjMsIGEgNjg1Qi1wYXJhbWV0ZXIsIG1peHR1cmUtb2YtZXhwZXJ0cyBtb2RlbCwgaXMgdGhlIGxhdGVzdCBpdGVyYXRpb24gb2YgdGhlIGZsYWdzaGlwIGNoYXQgbW9kZWwgZmFtaWx5IGZyb20gdGhlIERlZXBTZWVrIHRlYW0uXG5cbkl0IHN1Y2NlZWRzIHRoZSBbRGVlcFNlZWsgVjNdKC9kZWVwc2Vlay9kZWVwc2Vlay1jaGF0LXYzKSBtb2RlbCBhbmQgcGVyZm9ybXMgcmVhbGx5IHdlbGwgb24gYSB2YXJpZXR5IG9mIHRhc2tzLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1jaGF0LXYzLTAzMjQiLCJuYW1lIjoiRGVlcFNlZWs6IERlZXBTZWVrIFYzIDAzMjQiLCJjcmVhdGVkIjoxNzQyODI0NzU1LCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFYzLCBhIDY4NUItcGFyYW1ldGVyLCBtaXh0dXJlLW9mLWV4cGVydHMgbW9kZWwsIGlzIHRoZSBsYXRlc3QgaXRlcmF0aW9uIG9mIHRoZSBmbGFnc2hpcCBjaGF0IG1vZGVsIGZhbWlseSBmcm9tIHRoZSBEZWVwU2VlayB0ZWFtLlxuXG5JdCBzdWNjZWVkcyB0aGUgW0RlZXBTZWVrIFYzXSgvZGVlcHNlZWsvZGVlcHNlZWstY2hhdC12MykgbW9kZWwgYW5kIHBlcmZvcm1zIHJlYWxseSB3ZWxsIG9uIGEgdmFyaWV0eSBvZiB0YXNrcy4iLCJjb250ZXh0X2xlbmd0aCI6NjQwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwNyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJmZWF0aGVybGVzcy9xd2Vya3ktNzJiOmZyZWUiLCJuYW1lIjoiUXdlcmt5IDcyQiAoZnJlZSkiLCJjcmVhdGVkIjoxNzQyNDgxNTk3LCJkZXNjcmlwdGlvbiI6IlF3ZXJreS03MkIgaXMgYSBsaW5lYXItYXR0ZW50aW9uIFJXS1YgdmFyaWFudCBvZiB0aGUgUXdlbiAyLjUgNzJCIG1vZGVsLCBvcHRpbWl6ZWQgdG8gc2lnbmlmaWNhbnRseSByZWR1Y2UgY29tcHV0YXRpb25hbCBjb3N0IGF0IHNjYWxlLiBMZXZlcmFnaW5nIGxpbmVhciBhdHRlbnRpb24sIGl0IGFjaGlldmVzIHN1YnN0YW50aWFsIGluZmVyZW5jZSBzcGVlZHVwcyAoPjEwMDB4KSB3aGlsZSByZXRhaW5pbmcgY29tcGV0aXRpdmUgYWNjdXJhY3kgb24gY29tbW9uIGJlbmNobWFya3MgbGlrZSBBUkMsIEhlbGxhU3dhZywgTGFtYmFkYSwgYW5kIE1NTFUuIEl0IGluaGVyaXRzIGtub3dsZWRnZSBhbmQgbGFuZ3VhZ2Ugc3VwcG9ydCBmcm9tIFF3ZW4gMi41LCBzdXBwb3J0aW5nIGFwcHJveGltYXRlbHkgMzAgbGFuZ3VhZ2VzLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGVmZmljaWVudCBpbmZlcmVuY2UgaW4gbGFyZ2UtY29udGV4dCBhcHBsaWNhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvbzEtcHJvIiwibmFtZSI6Ik9wZW5BSTogbzEtcHJvIiwiY3JlYXRlZCI6MTc0MjQyMzIxMSwiZGVzY3JpcHRpb24iOiJUaGUgbzEgc2VyaWVzIG9mIG1vZGVscyBhcmUgdHJhaW5lZCB3aXRoIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgdG8gdGhpbmsgYmVmb3JlIHRoZXkgYW5zd2VyIGFuZCBwZXJmb3JtIGNvbXBsZXggcmVhc29uaW5nLiBUaGUgbzEtcHJvIG1vZGVsIHVzZXMgbW9yZSBjb21wdXRlIHRvIHRoaW5rIGhhcmRlciBhbmQgcHJvdmlkZSBjb25zaXN0ZW50bHkgYmV0dGVyIGFuc3dlcnMuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4yMTY3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDAwMDAsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTMuMS0yNGItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIFNtYWxsIDMuMSAyNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjIzODkzNywiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNtYWxsIDMuMSAyNEIgSW5zdHJ1Y3QgaXMgYW4gdXBncmFkZWQgdmFyaWFudCBvZiBNaXN0cmFsIFNtYWxsIDMgKDI1MDEpLCBmZWF0dXJpbmcgMjQgYmlsbGlvbiBwYXJhbWV0ZXJzIHdpdGggYWR2YW5jZWQgbXVsdGltb2RhbCBjYXBhYmlsaXRpZXMuIEl0IHByb3ZpZGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgaW4gdGV4dC1iYXNlZCByZWFzb25pbmcgYW5kIHZpc2lvbiB0YXNrcywgaW5jbHVkaW5nIGltYWdlIGFuYWx5c2lzLCBwcm9ncmFtbWluZywgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgYW5kIG11bHRpbGluZ3VhbCBzdXBwb3J0IGFjcm9zcyBkb3plbnMgb2YgbGFuZ3VhZ2VzLiBFcXVpcHBlZCB3aXRoIGFuIGV4dGVuc2l2ZSAxMjhrIHRva2VuIGNvbnRleHQgd2luZG93IGFuZCBvcHRpbWl6ZWQgZm9yIGVmZmljaWVudCBsb2NhbCBpbmZlcmVuY2UsIGl0IHN1cHBvcnRzIHVzZSBjYXNlcyBzdWNoIGFzIGNvbnZlcnNhdGlvbmFsIGFnZW50cywgZnVuY3Rpb24gY2FsbGluZywgbG9uZy1kb2N1bWVudCBjb21wcmVoZW5zaW9uLCBhbmQgcHJpdmFjeS1zZW5zaXRpdmUgZGVwbG95bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjk2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo5NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo5NjAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTMuMS0yNGItaW5zdHJ1Y3QiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCBTbWFsbCAzLjEgMjRCIiwiY3JlYXRlZCI6MTc0MjIzODkzNywiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNtYWxsIDMuMSAyNEIgSW5zdHJ1Y3QgaXMgYW4gdXBncmFkZWQgdmFyaWFudCBvZiBNaXN0cmFsIFNtYWxsIDMgKDI1MDEpLCBmZWF0dXJpbmcgMjQgYmlsbGlvbiBwYXJhbWV0ZXJzIHdpdGggYWR2YW5jZWQgbXVsdGltb2RhbCBjYXBhYmlsaXRpZXMuIEl0IHByb3ZpZGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgaW4gdGV4dC1iYXNlZCByZWFzb25pbmcgYW5kIHZpc2lvbiB0YXNrcywgaW5jbHVkaW5nIGltYWdlIGFuYWx5c2lzLCBwcm9ncmFtbWluZywgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgYW5kIG11bHRpbGluZ3VhbCBzdXBwb3J0IGFjcm9zcyBkb3plbnMgb2YgbGFuZ3VhZ2VzLiBFcXVpcHBlZCB3aXRoIGFuIGV4dGVuc2l2ZSAxMjhrIHRva2VuIGNvbnRleHQgd2luZG93IGFuZCBvcHRpbWl6ZWQgZm9yIGVmZmljaWVudCBsb2NhbCBpbmZlcmVuY2UsIGl0IHN1cHBvcnRzIHVzZSBjYXNlcyBzdWNoIGFzIGNvbnZlcnNhdGlvbmFsIGFnZW50cywgZnVuY3Rpb24gY2FsbGluZywgbG9uZy1kb2N1bWVudCBjb21wcmVoZW5zaW9uLCBhbmQgcHJpdmFjeS1zZW5zaXRpdmUgZGVwbG95bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDkyNjQiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3Blbi1yMS9vbHltcGljY29kZXItN2I6ZnJlZSIsIm5hbWUiOiJPbHltcGljQ29kZXIgN0IgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjA3ODI2NSwiZGVzY3JpcHRpb24iOiJPbHltcGljQ29kZXItN0IgaXMgYW4gb3Blbi1zb3VyY2UgbGFuZ3VhZ2UgbW9kZWwgZmluZS10dW5lZCBvbiB0aGUgQ29kZUZvcmNlcy1Db1RzIGRhdGFzZXQsIGNvbnNpc3Rpbmcgb2YgbmVhcmx5IDEwMCwwMDAgaGlnaC1xdWFsaXR5IGNoYWluLW9mLXRob3VnaHQgZXhhbXBsZXMgZnJvbSBjb21wZXRpdGl2ZSBwcm9ncmFtbWluZyBjb250ZXh0cy4gT3B0aW1pemVkIHNwZWNpZmljYWxseSBmb3Igb2x5bXBpYWQtbGV2ZWwgY29kaW5nIHByb2JsZW1zLCB0aGlzIG1vZGVsIGRlbW9uc3RyYXRlcyBzdHJvbmcgY2hhaW4tb2YtdGhvdWdodCByZWFzb25pbmcgYW5kIGNvbXBldGl0aXZlIGNvZGUgZ2VuZXJhdGlvbiBjYXBhYmlsaXRpZXMsIGFjaGlldmluZyBwZXJmb3JtYW5jZSBjb21wZXRpdGl2ZSB3aXRoIGZyb250aWVyIGNsb3NlZC1zb3VyY2UgbW9kZWxzIG9uIHRhc2tzIGZyb20gdGhlIElPSSAyMDI0IGFuZCBzaW1pbGFyIGNvZGluZyBjb250ZXN0cy4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW4tcjEvb2x5bXBpY2NvZGVyLTMyYjpmcmVlIiwibmFtZSI6Ik9seW1waWNDb2RlciAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjA3NzIyOCwiZGVzY3JpcHRpb24iOiJPbHltcGljQ29kZXItMzJCIGlzIGEgaGlnaC1wZXJmb3JtaW5nIG9wZW4tc291cmNlIG1vZGVsIGZpbmUtdHVuZWQgdXNpbmcgdGhlIENvZGVGb3JjZXMtQ29UcyBkYXRhc2V0LCBjb250YWluaW5nIGFwcHJveGltYXRlbHkgMTAwLDAwMCBjaGFpbi1vZi10aG91Z2h0IHByb2dyYW1taW5nIHNhbXBsZXMuIEl0IGV4Y2VscyBhdCBjb21wbGV4IGNvbXBldGl0aXZlIHByb2dyYW1taW5nIGJlbmNobWFya3MsIHN1Y2ggYXMgSU9JIDIwMjQgYW5kIENvZGVmb3JjZXMtc3R5bGUgY2hhbGxlbmdlcywgZnJlcXVlbnRseSBzdXJwYXNzaW5nIHN0YXRlLW9mLXRoZS1hcnQgY2xvc2VkLXNvdXJjZSBtb2RlbHMuIE9seW1waWNDb2Rlci0zMkIgcHJvdmlkZXMgYWR2YW5jZWQgcmVhc29uaW5nLCBjb2hlcmVudCBtdWx0aS1zdGVwIHByb2JsZW0tc29sdmluZywgYW5kIHJvYnVzdCBjb2RlIGdlbmVyYXRpb24gY2FwYWJpbGl0aWVzLCBkZW1vbnN0cmF0aW5nIHNpZ25pZmljYW50IHBvdGVudGlhbCBmb3Igb2x5bXBpYWQtbGV2ZWwgY29tcGV0aXRpdmUgcHJvZ3JhbW1pbmcgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic3RlZWxza3VsbC9sMy4zLWVsZWN0cmEtcjEtNzBiIiwibmFtZSI6IlN0ZWVsU2t1bGw6IEwzLjMgRWxlY3RyYSBSMSA3MEIiLCJjcmVhdGVkIjoxNzQyMDY3NjExLCJkZXNjcmlwdGlvbiI6IkwzLjMtRWxlY3RyYS1SMS03MCBpcyB0aGUgbmV3ZXN0IHJlbGVhc2Ugb2YgdGhlIFVubmFtZWQgc2VyaWVzLiBCdWlsdCBvbiBhIERlZXBTZWVrIFIxIERpc3RpbGwgYmFzZSwgRWxlY3RyYS1SMSBpbnRlZ3JhdGVzIHZhcmlvdXMgbW9kZWxzIHRvZ2V0aGVyIHRvIHByb3ZpZGUgYW4gaW50ZWxsaWdlbnQgYW5kIGNvaGVyZW50IG1vZGVsIGNhcGFibGUgb2YgcHJvdmlkaW5nIGRlZXAgY2hhcmFjdGVyIGluc2lnaHRzLiBUaHJvdWdoIHByb3BlciBwcm9tcHRpbmcsIHRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgYWR2YW5jZWQgcmVhc29uaW5nIGNhcGFiaWxpdGllcyBhbmQgdW5wcm9tcHRlZCBleHBsb3JhdGlvbiBvZiBjaGFyYWN0ZXIgaW5uZXIgdGhvdWdodHMgYW5kIG1vdGl2YXRpb25zLiBSZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIGFuZCBbcHJvbXB0aW5nIGhlcmVdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vU3RlZWxza3VsbC9MMy4zLUVsZWN0cmEtUjEtNzBiKSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDk1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxsZW5haS9vbG1vLTItMDMyNS0zMmItaW5zdHJ1Y3QiLCJuYW1lIjoiQWxsZW5BSTogT2xtbyAyIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDE5ODg1NTYsImRlc2NyaXB0aW9uIjoiT0xNby0yIDMyQiBJbnN0cnVjdCBpcyBhIHN1cGVydmlzZWQgaW5zdHJ1Y3Rpb24tZmluZXR1bmVkIHZhcmlhbnQgb2YgdGhlIE9MTW8tMiAzMkIgTWFyY2ggMjAyNSBiYXNlIG1vZGVsLiBJdCBleGNlbHMgaW4gY29tcGxleCByZWFzb25pbmcgYW5kIGluc3RydWN0aW9uLWZvbGxvd2luZyB0YXNrcyBhY3Jvc3MgZGl2ZXJzZSBiZW5jaG1hcmtzIHN1Y2ggYXMgR1NNOEssIE1BVEgsIElGRXZhbCwgYW5kIGdlbmVyYWwgTkxQIGV2YWx1YXRpb24uIERldmVsb3BlZCBieSBBSTIsIE9MTW8tMiAzMkIgaXMgcGFydCBvZiBhbiBvcGVuLCByZXNlYXJjaC1vcmllbnRlZCBpbml0aWF0aXZlLCB0cmFpbmVkIHByaW1hcmlseSBvbiBFbmdsaXNoLWxhbmd1YWdlIGRhdGFzZXRzIHRvIGFkdmFuY2UgdGhlIHVuZGVyc3RhbmRpbmcgYW5kIGRldmVsb3BtZW50IG9mIG9wZW4tc291cmNlIGxhbmd1YWdlIG1vZGVscy4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0xYi1pdDpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtbWEgMyAxQiAoZnJlZSkiLCJjcmVhdGVkIjoxNzQxOTYzNTU2LCJkZXNjcmlwdGlvbiI6IkdlbW1hIDMgMUIgaXMgdGhlIHNtYWxsZXN0IG9mIHRoZSBuZXcgR2VtbWEgMyBmYW1pbHkuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDMyayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4gTm90ZTogR2VtbWEgMyAxQiBpcyBub3QgbXVsdGltb2RhbC4gRm9yIHRoZSBzbWFsbGVzdCBtdWx0aW1vZGFsIEdlbW1hIDMgbW9kZWwsIHBsZWFzZSBzZWUgW0dlbW1hIDMgNEJdKGdvb2dsZS9nZW1tYS0zLTRiLWl0KSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbW1hLTMtNGItaXQ6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MTkwNTUxMCwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbW1hLTMtNGItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDRCIiwiY3JlYXRlZCI6MTc0MTkwNTUxMCwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS0xLjYtbGFyZ2UiLCJuYW1lIjoiQUkyMTogSmFtYmEgMS42IExhcmdlIiwiY3JlYXRlZCI6MTc0MTkwNTE3MywiZGVzY3JpcHRpb24iOiJBSTIxIEphbWJhIExhcmdlIDEuNiBpcyBhIGhpZ2gtcGVyZm9ybWFuY2UgaHlicmlkIGZvdW5kYXRpb24gbW9kZWwgY29tYmluaW5nIFN0YXRlIFNwYWNlIE1vZGVscyAoTWFtYmEpIHdpdGggVHJhbnNmb3JtZXIgYXR0ZW50aW9uIG1lY2hhbmlzbXMuIERldmVsb3BlZCBieSBBSTIxLCBpdCBleGNlbHMgaW4gZXh0cmVtZWx5IGxvbmctY29udGV4dCBoYW5kbGluZyAoMjU2SyB0b2tlbnMpLCBkZW1vbnN0cmF0ZXMgc3VwZXJpb3IgaW5mZXJlbmNlIGVmZmljaWVuY3kgKHVwIHRvIDIuNXggZmFzdGVyIHRoYW4gY29tcGFyYWJsZSBtb2RlbHMpLCBhbmQgc3VwcG9ydHMgc3RydWN0dXJlZCBKU09OIG91dHB1dCBhbmQgdG9vbC11c2UgY2FwYWJpbGl0aWVzLiBJdCBoYXMgOTQgYmlsbGlvbiBhY3RpdmUgcGFyYW1ldGVycyAoMzk4IGJpbGxpb24gdG90YWwpLCBvcHRpbWl6ZWQgcXVhbnRpemF0aW9uIHN1cHBvcnQgKEV4cGVydHNJbnQ4KSwgYW5kIG11bHRpbGluZ3VhbCBwcm9maWNpZW5jeSBpbiBsYW5ndWFnZXMgc3VjaCBhcyBFbmdsaXNoLCBTcGFuaXNoLCBGcmVuY2gsIFBvcnR1Z3Vlc2UsIEl0YWxpYW4sIER1dGNoLCBHZXJtYW4sIEFyYWJpYywgYW5kIEhlYnJldy5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIHRoZSBbSmFtYmEgT3BlbiBNb2RlbCBMaWNlbnNlXShodHRwczovL3d3dy5haTIxLmNvbS9saWNlbnNlcy9qYW1iYS1vcGVuLW1vZGVsLWxpY2Vuc2UpLiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpMjEvamFtYmEtMS42LW1pbmkiLCJuYW1lIjoiQUkyMTogSmFtYmEgTWluaSAxLjYiLCJjcmVhdGVkIjoxNzQxOTA1MTcxLCJkZXNjcmlwdGlvbiI6IkFJMjEgSmFtYmEgTWluaSAxLjYgaXMgYSBoeWJyaWQgZm91bmRhdGlvbiBtb2RlbCBjb21iaW5pbmcgU3RhdGUgU3BhY2UgTW9kZWxzIChNYW1iYSkgd2l0aCBUcmFuc2Zvcm1lciBhdHRlbnRpb24gbWVjaGFuaXNtcy4gV2l0aCAxMiBiaWxsaW9uIGFjdGl2ZSBwYXJhbWV0ZXJzICg1MiBiaWxsaW9uIHRvdGFsKSwgdGhpcyBtb2RlbCBleGNlbHMgaW4gZXh0cmVtZWx5IGxvbmctY29udGV4dCB0YXNrcyAodXAgdG8gMjU2SyB0b2tlbnMpIGFuZCBhY2hpZXZlcyBzdXBlcmlvciBpbmZlcmVuY2UgZWZmaWNpZW5jeSwgb3V0cGVyZm9ybWluZyBjb21wYXJhYmxlIG9wZW4gbW9kZWxzIG9uIHRhc2tzIHN1Y2ggYXMgcmV0cmlldmFsLWF1Z21lbnRlZCBnZW5lcmF0aW9uIChSQUcpIGFuZCBncm91bmRlZCBxdWVzdGlvbiBhbnN3ZXJpbmcuIEphbWJhIE1pbmkgMS42IHN1cHBvcnRzIG11bHRpbGluZ3VhbCB0YXNrcyBhY3Jvc3MgRW5nbGlzaCwgU3BhbmlzaCwgRnJlbmNoLCBQb3J0dWd1ZXNlLCBJdGFsaWFuLCBEdXRjaCwgR2VybWFuLCBBcmFiaWMsIGFuZCBIZWJyZXcsIGFsb25nIHdpdGggc3RydWN0dXJlZCBKU09OIG91dHB1dCBhbmQgdG9vbC11c2UgY2FwYWJpbGl0aWVzLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gdGhlIFtKYW1iYSBPcGVuIE1vZGVsIExpY2Vuc2VdKGh0dHBzOi8vd3d3LmFpMjEuY29tL2xpY2Vuc2VzL2phbWJhLW9wZW4tbW9kZWwtbGljZW5zZSkuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0xMmItaXQ6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgMTJCIChmcmVlKSIsImNyZWF0ZWQiOjE3NDE5MDI2MjUsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEdlbW1hIDMgMTJCIGlzIHRoZSBzZWNvbmQgbGFyZ2VzdCBpbiB0aGUgZmFtaWx5IG9mIEdlbW1hIDMgbW9kZWxzIGFmdGVyIFtHZW1tYSAzIDI3Ql0oZ29vZ2xlL2dlbW1hLTMtMjdiLWl0KSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0xMmItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDEyQiIsImNyZWF0ZWQiOjE3NDE5MDI2MjUsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEdlbW1hIDMgMTJCIGlzIHRoZSBzZWNvbmQgbGFyZ2VzdCBpbiB0aGUgZmFtaWx5IG9mIEdlbW1hIDMgbW9kZWxzIGFmdGVyIFtHZW1tYSAzIDI3Ql0oZ29vZ2xlL2dlbW1hLTMtMjdiLWl0KSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLWEiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIEEiLCJjcmVhdGVkIjoxNzQxODk0MzQyLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQgQSBpcyBhbiBvcGVuLXdlaWdodHMgMTExQiBwYXJhbWV0ZXIgbW9kZWwgd2l0aCBhIDI1NmsgY29udGV4dCB3aW5kb3cgZm9jdXNlZCBvbiBkZWxpdmVyaW5nIGdyZWF0IHBlcmZvcm1hbmNlIGFjcm9zcyBhZ2VudGljLCBtdWx0aWxpbmd1YWwsIGFuZCBjb2RpbmcgdXNlIGNhc2VzLlxuQ29tcGFyZWQgdG8gb3RoZXIgbGVhZGluZyBwcm9wcmlldGFyeSBhbmQgb3Blbi13ZWlnaHRzIG1vZGVscyBDb21tYW5kIEEgZGVsaXZlcnMgbWF4aW11bSBwZXJmb3JtYW5jZSB3aXRoIG1pbmltdW0gaGFyZHdhcmUgY29zdHMsIGV4Y2VsbGluZyBvbiBidXNpbmVzcy1jcml0aWNhbCBhZ2VudGljIGFuZCBtdWx0aWxpbmd1YWwgdGFza3MuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by1taW5pLXNlYXJjaC1wcmV2aWV3IiwibmFtZSI6Ik9wZW5BSTogR1BULTRvLW1pbmkgU2VhcmNoIFByZXZpZXciLCJjcmVhdGVkIjoxNzQxODE4MTIyLCJkZXNjcmlwdGlvbiI6IkdQVC00byBtaW5pIFNlYXJjaCBQcmV2aWV3IGlzIGEgc3BlY2lhbGl6ZWQgbW9kZWwgZm9yIHdlYiBzZWFyY2ggaW4gQ2hhdCBDb21wbGV0aW9ucy4gSXQgaXMgdHJhaW5lZCB0byB1bmRlcnN0YW5kIGFuZCBleGVjdXRlIHdlYiBzZWFyY2ggcXVlcmllcy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwLjAyNzUiLCJpbWFnZSI6IjAuMDAwMjE3Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLXNlYXJjaC1wcmV2aWV3IiwibmFtZSI6Ik9wZW5BSTogR1BULTRvIFNlYXJjaCBQcmV2aWV3IiwiY3JlYXRlZCI6MTc0MTgxNzk0OSwiZGVzY3JpcHRpb24iOiJHUFQtNG8gU2VhcmNoIFByZXZpZXdpcyBhIHNwZWNpYWxpemVkIG1vZGVsIGZvciB3ZWIgc2VhcmNoIGluIENoYXQgQ29tcGxldGlvbnMuIEl0IGlzIHRyYWluZWQgdG8gdW5kZXJzdGFuZCBhbmQgZXhlY3V0ZSB3ZWIgc2VhcmNoIHF1ZXJpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMC4wMzUiLCJpbWFnZSI6IjAuMDAzNjEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0b2t5b3RlY2gtbGxtL2xsYW1hLTMuMS1zd2FsbG93LTcwYi1pbnN0cnVjdC12MC4zIiwibmFtZSI6IlN3YWxsb3c6IExsYW1hIDMuMSBTd2FsbG93IDcwQiBJbnN0cnVjdCBWMC4zIiwiY3JlYXRlZCI6MTc0MTgxMzkzNiwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjEgU3dhbGxvdyA3MEIgaXMgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0aGF0IHdhcyBidWlsdCBieSBjb250aW51YWwgcHJlLXRyYWluaW5nIG9uIHRoZSBNZXRhIExsYW1hIDMuMSA3MEIuIExsYW1hIDMuMSBTd2FsbG93IGVuaGFuY2VkIHRoZSBKYXBhbmVzZSBsYW5ndWFnZSBjYXBhYmlsaXRpZXMgb2YgdGhlIG9yaWdpbmFsIExsYW1hIDMuMSB3aGlsZSByZXRhaW5pbmcgdGhlIEVuZ2xpc2ggbGFuZ3VhZ2UgY2FwYWJpbGl0aWVzLiBTd2FsbG93IHVzZWQgYXBwcm94aW1hdGVseSAyMDAgYmlsbGlvbiB0b2tlbnMgdGhhdCB3ZXJlIHNhbXBsZWQgZnJvbSBhIGxhcmdlIEphcGFuZXNlIHdlYiBjb3JwdXMgKFN3YWxsb3cgQ29ycHVzIFZlcnNpb24gMiksIEphcGFuZXNlIGFuZCBFbmdsaXNoIFdpa2lwZWRpYSBhcnRpY2xlcywgYW5kIG1hdGhlbWF0aWNhbCBhbmQgY29kaW5nIGNvbnRlbnRzLCBldGMgKHNlZSB0aGUgVHJhaW5pbmcgRGF0YXNldHMgc2VjdGlvbiBvZiB0aGUgYmFzZSBtb2RlbCkgZm9yIGNvbnRpbnVhbCBwcmUtdHJhaW5pbmcuIFRoZSBpbnN0cnVjdGlvbi10dW5lZCBtb2RlbHMgKEluc3RydWN0KSB3ZXJlIGJ1aWx0IGJ5IHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgb24gdGhlIHN5bnRoZXRpYyBkYXRhIHNwZWNpYWxseSBidWlsdCBmb3IgSmFwYW5lc2UuICIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJyZWthYWkvcmVrYS1mbGFzaC0zOmZyZWUiLCJuYW1lIjoiUmVrYTogRmxhc2ggMyAoZnJlZSkiLCJjcmVhdGVkIjoxNzQxODEyODEzLCJkZXNjcmlwdGlvbiI6IlJla2EgRmxhc2ggMyBpcyBhIGdlbmVyYWwtcHVycG9zZSwgaW5zdHJ1Y3Rpb24tdHVuZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCAyMSBiaWxsaW9uIHBhcmFtZXRlcnMsIGRldmVsb3BlZCBieSBSZWthLiBJdCBleGNlbHMgYXQgZ2VuZXJhbCBjaGF0LCBjb2RpbmcgdGFza3MsIGluc3RydWN0aW9uLWZvbGxvd2luZywgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEZlYXR1cmluZyBhIDMySyBjb250ZXh0IGxlbmd0aCBhbmQgb3B0aW1pemVkIHRocm91Z2ggcmVpbmZvcmNlbWVudCBsZWFybmluZyAoUkxPTyksIGl0IHByb3ZpZGVzIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGNvbXBhcmFibGUgdG8gcHJvcHJpZXRhcnkgbW9kZWxzIHdpdGhpbiBhIHNtYWxsZXIgcGFyYW1ldGVyIGZvb3RwcmludC4gSWRlYWwgZm9yIGxvdy1sYXRlbmN5LCBsb2NhbCwgb3Igb24tZGV2aWNlIGRlcGxveW1lbnRzLCBSZWthIEZsYXNoIDMgaXMgY29tcGFjdCwgc3VwcG9ydHMgZWZmaWNpZW50IHF1YW50aXphdGlvbiAoZG93biB0byAxMUdCIGF0IDQtYml0IHByZWNpc2lvbiksIGFuZCBlbXBsb3lzIGV4cGxpY2l0IHJlYXNvbmluZyB0YWdzIChcIjxyZWFzb25pbmc+XCIpIHRvIGluZGljYXRlIGl0cyBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3MuXG5cblJla2EgRmxhc2ggMyBpcyBwcmltYXJpbHkgYW4gRW5nbGlzaCBtb2RlbCB3aXRoIGxpbWl0ZWQgbXVsdGlsaW5ndWFsIHVuZGVyc3RhbmRpbmcgY2FwYWJpbGl0aWVzLiBUaGUgbW9kZWwgd2VpZ2h0cyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTI3Yi1pdDpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtbWEgMyAyN0IgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MTc1NjM1OSwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4gR2VtbWEgMyAyN0IgaXMgR29vZ2xlJ3MgbGF0ZXN0IG9wZW4gc291cmNlIG1vZGVsLCBzdWNjZXNzb3IgdG8gW0dlbW1hIDJdKGdvb2dsZS9nZW1tYS0yLTI3Yi1pdCkiLCJjb250ZXh0X2xlbmd0aCI6OTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6OTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTI3Yi1pdCIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgMjdCIiwiY3JlYXRlZCI6MTc0MTc1NjM1OSwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4gR2VtbWEgMyAyN0IgaXMgR29vZ2xlJ3MgbGF0ZXN0IG9wZW4gc291cmNlIG1vZGVsLCBzdWNjZXNzb3IgdG8gW0dlbW1hIDJdKGdvb2dsZS9nZW1tYS0yLTI3Yi1pdCkiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMDI1NiIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidGhlZHJ1bW1lci9hbnViaXMtcHJvLTEwNWItdjEiLCJuYW1lIjoiVGhlRHJ1bW1lcjogQW51YmlzIFBybyAxMDVCIFYxIiwiY3JlYXRlZCI6MTc0MTY0MjI5MCwiZGVzY3JpcHRpb24iOiJBbnViaXMgUHJvIDEwNUIgdjEgaXMgYW4gZXhwYW5kZWQgYW5kIHJlZmluZWQgdmFyaWFudCBvZiBNZXRh4oCZcyBMbGFtYSAzLjMgNzBCLCBmZWF0dXJpbmcgNTAlIGFkZGl0aW9uYWwgbGF5ZXJzIGFuZCBmdXJ0aGVyIGZpbmUtdHVuaW5nIHRvIGxldmVyYWdlIGl0cyBpbmNyZWFzZWQgY2FwYWNpdHkuIERlc2lnbmVkIGZvciBhZHZhbmNlZCBuYXJyYXRpdmUsIHJvbGVwbGF5LCBhbmQgaW5zdHJ1Y3Rpb25hbCB0YXNrcywgaXQgZGVtb25zdHJhdGVzIGVuaGFuY2VkIGVtb3Rpb25hbCBpbnRlbGxpZ2VuY2UsIGNyZWF0aXZpdHksIG51YW5jZWQgY2hhcmFjdGVyIHBvcnRyYXlhbCwgYW5kIHN1cGVyaW9yIHByb21wdCBhZGhlcmVuY2UgY29tcGFyZWQgdG8gc21hbGxlciBtb2RlbHMuIEl0cyBsYXJnZXIgcGFyYW1ldGVyIGNvdW50IGFsbG93cyBmb3IgZGVlcGVyIGNvbnRleHR1YWwgdW5kZXJzdGFuZGluZyBhbmQgZXh0ZW5kZWQgcmVhc29uaW5nIGNhcGFiaWxpdGllcywgb3B0aW1pemVkIGZvciBlbmdhZ2luZywgaW50ZWxsaWdlbnQsIGFuZCBjb2hlcmVudCBpbnRlcmFjdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibGF0aXR1ZGVnYW1lcy93YXlmYXJlci1sYXJnZS03MGItbGxhbWEtMy4zIiwibmFtZSI6IkxhdGl0dWRlR2FtZXM6IFdheWZhcmVyIExhcmdlIDcwQiBMbGFtYSAzLjMiLCJjcmVhdGVkIjoxNzQxNjM2ODg1LCJkZXNjcmlwdGlvbiI6IldheWZhcmVyIExhcmdlIDcwQiBpcyBhIHJvbGVwbGF5IGFuZCB0ZXh0LWFkdmVudHVyZSBtb2RlbCBmaW5lLXR1bmVkIGZyb20gTWV0YeKAmXMgTGxhbWEtMy4zLTcwQi1JbnN0cnVjdC4gU3BlY2lmaWNhbGx5IG9wdGltaXplZCBmb3IgbmFycmF0aXZlLWRyaXZlbiwgY2hhbGxlbmdpbmcgc2NlbmFyaW9zLCBpdCBpbnRyb2R1Y2VzIHJlYWxpc3RpYyBzdGFrZXMsIGNvbmZsaWN0cywgYW5kIGNvbnNlcXVlbmNlcyBvZnRlbiBhdm9pZGVkIGJ5IHN0YW5kYXJkIFJMSEYtYWxpZ25lZCBtb2RlbHMuIFRyYWluZWQgdXNpbmcgYSBjdXJhdGVkIGJsZW5kIG9mIGFkdmVudHVyZSwgcm9sZXBsYXksIGFuZCBpbnN0cnVjdGl2ZSBmaWN0aW9uIGRhdGFzZXRzLCBXYXlmYXJlciBlbXBoYXNpemVzIHRlbnNlIHN0b3J5dGVsbGluZywgYXV0aGVudGljIHBsYXllciBmYWlsdXJlIHNjZW5hcmlvcywgYW5kIHJvYnVzdCBuYXJyYXRpdmUgaW1tZXJzaW9uLCBtYWtpbmcgaXQgdW5pcXVlbHkgc3VpdGVkIGZvciBpbnRlcmFjdGl2ZSBmaWN0aW9uIGFuZCBnYW1pbmcgZXhwZXJpZW5jZXMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0aGVkcnVtbWVyL3NreWZhbGwtMzZiLXYyIiwibmFtZSI6IlRoZURydW1tZXI6IFNreWZhbGwgMzZCIFYyIiwiY3JlYXRlZCI6MTc0MTYzNjU2NiwiZGVzY3JpcHRpb24iOiJTa3lmYWxsIDM2QiB2MiBpcyBhbiBlbmhhbmNlZCBpdGVyYXRpb24gb2YgTWlzdHJhbCBTbWFsbCAyNTAxLCBzcGVjaWZpY2FsbHkgZmluZS10dW5lZCBmb3IgaW1wcm92ZWQgY3JlYXRpdml0eSwgbnVhbmNlZCB3cml0aW5nLCByb2xlLXBsYXlpbmcsIGFuZCBjb2hlcmVudCBzdG9yeXRlbGxpbmcuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktNC1tdWx0aW1vZGFsLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpIDQgTXVsdGltb2RhbCBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDEzOTYyODQsImRlc2NyaXB0aW9uIjoiUGhpLTQgTXVsdGltb2RhbCBJbnN0cnVjdCBpcyBhIHZlcnNhdGlsZSA1LjZCIHBhcmFtZXRlciBmb3VuZGF0aW9uIG1vZGVsIHRoYXQgY29tYmluZXMgYWR2YW5jZWQgcmVhc29uaW5nIGFuZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgY2FwYWJpbGl0aWVzIGFjcm9zcyBib3RoIHRleHQgYW5kIHZpc3VhbCBpbnB1dHMsIHByb3ZpZGluZyBhY2N1cmF0ZSB0ZXh0IG91dHB1dHMuIFRoZSB1bmlmaWVkIGFyY2hpdGVjdHVyZSBlbmFibGVzIGVmZmljaWVudCwgbG93LWxhdGVuY3kgaW5mZXJlbmNlLCBzdWl0YWJsZSBmb3IgZWRnZSBhbmQgbW9iaWxlIGRlcGxveW1lbnRzLiBQaGktNCBNdWx0aW1vZGFsIEluc3RydWN0IHN1cHBvcnRzIHRleHQgaW5wdXRzIGluIG11bHRpcGxlIGxhbmd1YWdlcyBpbmNsdWRpbmcgQXJhYmljLCBDaGluZXNlLCBFbmdsaXNoLCBGcmVuY2gsIEdlcm1hbiwgSmFwYW5lc2UsIFNwYW5pc2gsIGFuZCBtb3JlLCB3aXRoIHZpc3VhbCBpbnB1dCBvcHRpbWl6ZWQgcHJpbWFyaWx5IGZvciBFbmdsaXNoLiBJdCBkZWxpdmVycyBpbXByZXNzaXZlIHBlcmZvcm1hbmNlIG9uIG11bHRpbW9kYWwgdGFza3MgaW52b2x2aW5nIG1hdGhlbWF0aWNhbCwgc2NpZW50aWZpYywgYW5kIGRvY3VtZW50IHJlYXNvbmluZywgcHJvdmlkaW5nIGRldmVsb3BlcnMgYW5kIGVudGVycHJpc2VzIGEgcG93ZXJmdWwgeWV0IGNvbXBhY3QgbW9kZWwgZm9yIHNvcGhpc3RpY2F0ZWQgaW50ZXJhY3RpdmUgYXBwbGljYXRpb25zLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBbUGhpLTQgTXVsdGltb2RhbCBibG9nIHBvc3RdKGh0dHBzOi8vYXp1cmUubWljcm9zb2Z0LmNvbS9lbi11cy9ibG9nL2VtcG93ZXJpbmctaW5ub3ZhdGlvbi10aGUtbmV4dC1nZW5lcmF0aW9uLW9mLXRoZS1waGktZmFtaWx5LykuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMTc2ODUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXItcmVhc29uaW5nLXBybyIsIm5hbWUiOiJQZXJwbGV4aXR5OiBTb25hciBSZWFzb25pbmcgUHJvIiwiY3JlYXRlZCI6MTc0MTMxMzMwOCwiZGVzY3JpcHRpb24iOiJOb3RlOiBTb25hciBQcm8gcHJpY2luZyBpbmNsdWRlcyBQZXJwbGV4aXR5IHNlYXJjaCBwcmljaW5nLiBTZWUgW2RldGFpbHMgaGVyZV0oaHR0cHM6Ly9kb2NzLnBlcnBsZXhpdHkuYWkvZ3VpZGVzL3ByaWNpbmcjZGV0YWlsZWQtcHJpY2luZy1icmVha2Rvd24tZm9yLXNvbmFyLXJlYXNvbmluZy1wcm8tYW5kLXNvbmFyLXBybylcblxuU29uYXIgUmVhc29uaW5nIFBybyBpcyBhIHByZW1pZXIgcmVhc29uaW5nIG1vZGVsIHBvd2VyZWQgYnkgRGVlcFNlZWsgUjEgd2l0aCBDaGFpbiBvZiBUaG91Z2h0IChDb1QpLiBEZXNpZ25lZCBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzLCBpdCBzdXBwb3J0cyBpbi1kZXB0aCwgbXVsdGktc3RlcCBxdWVyaWVzIHdpdGggYSBsYXJnZXIgY29udGV4dCB3aW5kb3cgYW5kIGNhbiBzdXJmYWNlIG1vcmUgY2l0YXRpb25zIHBlciBzZWFyY2gsIGVuYWJsaW5nIG1vcmUgY29tcHJlaGVuc2l2ZSBhbmQgZXh0ZW5zaWJsZSByZXNwb25zZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwLjAwNSIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXItcHJvIiwibmFtZSI6IlBlcnBsZXhpdHk6IFNvbmFyIFBybyIsImNyZWF0ZWQiOjE3NDEzMTI0MjMsImRlc2NyaXB0aW9uIjoiTm90ZTogU29uYXIgUHJvIHByaWNpbmcgaW5jbHVkZXMgUGVycGxleGl0eSBzZWFyY2ggcHJpY2luZy4gU2VlIFtkZXRhaWxzIGhlcmVdKGh0dHBzOi8vZG9jcy5wZXJwbGV4aXR5LmFpL2d1aWRlcy9wcmljaW5nI2RldGFpbGVkLXByaWNpbmctYnJlYWtkb3duLWZvci1zb25hci1yZWFzb25pbmctcHJvLWFuZC1zb25hci1wcm8pXG5cbkZvciBlbnRlcnByaXNlcyBzZWVraW5nIG1vcmUgYWR2YW5jZWQgY2FwYWJpbGl0aWVzLCB0aGUgU29uYXIgUHJvIEFQSSBjYW4gaGFuZGxlIGluLWRlcHRoLCBtdWx0aS1zdGVwIHF1ZXJpZXMgd2l0aCBhZGRlZCBleHRlbnNpYmlsaXR5LCBsaWtlIGRvdWJsZSB0aGUgbnVtYmVyIG9mIGNpdGF0aW9ucyBwZXIgc2VhcmNoIGFzIFNvbmFyIG9uIGF2ZXJhZ2UuIFBsdXMsIHdpdGggYSBsYXJnZXIgY29udGV4dCB3aW5kb3csIGl0IGNhbiBoYW5kbGUgbG9uZ2VyIGFuZCBtb3JlIG51YW5jZWQgc2VhcmNoZXMgYW5kIGZvbGxvdy11cCBxdWVzdGlvbnMuICIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMC4wMDUiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJwZXJwbGV4aXR5L3NvbmFyLWRlZXAtcmVzZWFyY2giLCJuYW1lIjoiUGVycGxleGl0eTogU29uYXIgRGVlcCBSZXNlYXJjaCIsImNyZWF0ZWQiOjE3NDEzMTEyNDYsImRlc2NyaXB0aW9uIjoiU29uYXIgRGVlcCBSZXNlYXJjaCBpcyBhIHJlc2VhcmNoLWZvY3VzZWQgbW9kZWwgZGVzaWduZWQgZm9yIG11bHRpLXN0ZXAgcmV0cmlldmFsLCBzeW50aGVzaXMsIGFuZCByZWFzb25pbmcgYWNyb3NzIGNvbXBsZXggdG9waWNzLiBJdCBhdXRvbm9tb3VzbHkgc2VhcmNoZXMsIHJlYWRzLCBhbmQgZXZhbHVhdGVzIHNvdXJjZXMsIHJlZmluaW5nIGl0cyBhcHByb2FjaCBhcyBpdCBnYXRoZXJzIGluZm9ybWF0aW9uLiBUaGlzIGVuYWJsZXMgY29tcHJlaGVuc2l2ZSByZXBvcnQgZ2VuZXJhdGlvbiBhY3Jvc3MgZG9tYWlucyBsaWtlIGZpbmFuY2UsIHRlY2hub2xvZ3ksIGhlYWx0aCwgYW5kIGN1cnJlbnQgZXZlbnRzLlxuXG5Ob3RlcyBvbiBQcmljaW5nIChbU291cmNlXShodHRwczovL2RvY3MucGVycGxleGl0eS5haS9ndWlkZXMvcHJpY2luZyNkZXRhaWxlZC1wcmljaW5nLWJyZWFrZG93bi1mb3Itc29uYXItZGVlcC1yZXNlYXJjaCkpIFxuLSBJbnB1dCB0b2tlbnMgY29tcHJpc2Ugb2YgUHJvbXB0IHRva2VucyAodXNlciBwcm9tcHQpICsgQ2l0YXRpb24gdG9rZW5zICh0aGVzZSBhcmUgcHJvY2Vzc2VkIHRva2VucyBmcm9tIHJ1bm5pbmcgc2VhcmNoZXMpXG4tIERlZXAgUmVzZWFyY2ggcnVucyBtdWx0aXBsZSBzZWFyY2hlcyB0byBjb25kdWN0IGV4aGF1c3RpdmUgcmVzZWFyY2guIFNlYXJjaGVzIGFyZSBwcmljZWQgYXQgJDUvMTAwMCBzZWFyY2hlcy4gQSByZXF1ZXN0IHRoYXQgZG9lcyAzMCBzZWFyY2hlcyB3aWxsIGNvc3QgJDAuMTUgaW4gdGhpcyBzdGVwLlxuLSBSZWFzb25pbmcgaXMgYSBkaXN0aW5jdCBzdGVwIGluIERlZXAgUmVzZWFyY2ggc2luY2UgaXQgZG9lcyBleHRlbnNpdmUgYXV0b21hdGVkIHJlYXNvbmluZyB0aHJvdWdoIGFsbCB0aGUgbWF0ZXJpYWwgaXQgZ2F0aGVycyBkdXJpbmcgaXRzIHJlc2VhcmNoIHBoYXNlLiBSZWFzb25pbmcgdG9rZW5zIGhlcmUgYXJlIGEgYml0IGRpZmZlcmVudCB0aGFuIHRoZSBDb1RzIGluIHRoZSBhbnN3ZXIgLSB0aGVzZSBhcmUgdG9rZW5zIHRoYXQgd2UgdXNlIHRvIHJlYXNvbiB0aHJvdWdoIHRoZSByZXNlYXJjaCBtYXRlcmlhbCBwcmlvciB0byBnZW5lcmF0aW5nIHRoZSBvdXRwdXRzIHZpYSB0aGUgQ29Ucy4gUmVhc29uaW5nIHRva2VucyBhcmUgcHJpY2VkIGF0ICQzLzFNIHRva2VucyIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMC4wMDUiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwLjAwMDAwMyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtemVybzpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBSMSBaZXJvIChmcmVlKSIsImNyZWF0ZWQiOjE3NDEyOTc0MzQsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWstUjEtWmVybyBpcyBhIG1vZGVsIHRyYWluZWQgdmlhIGxhcmdlLXNjYWxlIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgKFJMKSB3aXRob3V0IHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgYXMgYSBwcmVsaW1pbmFyeSBzdGVwLiBJdCdzIDY3MUIgcGFyYW1ldGVycyBpbiBzaXplLCB3aXRoIDM3QiBhY3RpdmUgaW4gYW4gaW5mZXJlbmNlIHBhc3MuXG5cbkl0IGRlbW9uc3RyYXRlcyByZW1hcmthYmxlIHBlcmZvcm1hbmNlIG9uIHJlYXNvbmluZy4gV2l0aCBSTCwgRGVlcFNlZWstUjEtWmVybyBuYXR1cmFsbHkgZW1lcmdlZCB3aXRoIG51bWVyb3VzIHBvd2VyZnVsIGFuZCBpbnRlcmVzdGluZyByZWFzb25pbmcgYmVoYXZpb3JzLlxuXG5EZWVwU2Vlay1SMS1aZXJvIGVuY291bnRlcnMgY2hhbGxlbmdlcyBzdWNoIGFzIGVuZGxlc3MgcmVwZXRpdGlvbiwgcG9vciByZWFkYWJpbGl0eSwgYW5kIGxhbmd1YWdlIG1peGluZy4gU2VlIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKSBmb3IgdGhlIFNGVCBtb2RlbC5cblxuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdxLTMyYjpmcmVlIiwibmFtZSI6IlF3ZW46IFF3USAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MTIwODgxNCwiZGVzY3JpcHRpb24iOiJRd1EgaXMgdGhlIHJlYXNvbmluZyBtb2RlbCBvZiB0aGUgUXdlbiBzZXJpZXMuIENvbXBhcmVkIHdpdGggY29udmVudGlvbmFsIGluc3RydWN0aW9uLXR1bmVkIG1vZGVscywgUXdRLCB3aGljaCBpcyBjYXBhYmxlIG9mIHRoaW5raW5nIGFuZCByZWFzb25pbmcsIGNhbiBhY2hpZXZlIHNpZ25pZmljYW50bHkgZW5oYW5jZWQgcGVyZm9ybWFuY2UgaW4gZG93bnN0cmVhbSB0YXNrcywgZXNwZWNpYWxseSBoYXJkIHByb2JsZW1zLiBRd1EtMzJCIGlzIHRoZSBtZWRpdW0tc2l6ZWQgcmVhc29uaW5nIG1vZGVsLCB3aGljaCBpcyBjYXBhYmxlIG9mIGFjaGlldmluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBhZ2FpbnN0IHN0YXRlLW9mLXRoZS1hcnQgcmVhc29uaW5nIG1vZGVscywgZS5nLiwgRGVlcFNlZWstUjEsIG8xLW1pbmkuIiwiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJxd3EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd3EtMzJiIiwibmFtZSI6IlF3ZW46IFF3USAzMkIiLCJjcmVhdGVkIjoxNzQxMjA4ODE0LCJkZXNjcmlwdGlvbiI6IlF3USBpcyB0aGUgcmVhc29uaW5nIG1vZGVsIG9mIHRoZSBRd2VuIHNlcmllcy4gQ29tcGFyZWQgd2l0aCBjb252ZW50aW9uYWwgaW5zdHJ1Y3Rpb24tdHVuZWQgbW9kZWxzLCBRd1EsIHdoaWNoIGlzIGNhcGFibGUgb2YgdGhpbmtpbmcgYW5kIHJlYXNvbmluZywgY2FuIGFjaGlldmUgc2lnbmlmaWNhbnRseSBlbmhhbmNlZCBwZXJmb3JtYW5jZSBpbiBkb3duc3RyZWFtIHRhc2tzLCBlc3BlY2lhbGx5IGhhcmQgcHJvYmxlbXMuIFF3US0zMkIgaXMgdGhlIG1lZGl1bS1zaXplZCByZWFzb25pbmcgbW9kZWwsIHdoaWNoIGlzIGNhcGFibGUgb2YgYWNoaWV2aW5nIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGFnYWluc3Qgc3RhdGUtb2YtdGhlLWFydCByZWFzb25pbmcgbW9kZWxzLCBlLmcuLCBEZWVwU2Vlay1SMSwgbzEtbWluaS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJxd3EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtMzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUgMzJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTc0MTA0Mjc0NCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IDMyQiBJbnN0cnVjdCBpcyB0aGUgaW5zdHJ1Y3Rpb24tdHVuZWQgdmFyaWFudCBvZiB0aGUgbGF0ZXN0IFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgc2VyaWVzLiBJdCBwcm92aWRlcyBlbmhhbmNlZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgY2FwYWJpbGl0aWVzLCBpbXByb3ZlZCBwcm9maWNpZW5jeSBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNhbCByZWFzb25pbmcsIGFuZCByb2J1c3QgaGFuZGxpbmcgb2Ygc3RydWN0dXJlZCBkYXRhIGFuZCBvdXRwdXRzIHN1Y2ggYXMgSlNPTi4gSXQgc3VwcG9ydHMgbG9uZy1jb250ZXh0IHByb2Nlc3NpbmcgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIG11bHRpbGluZ3VhbCB0YXNrcyBhY3Jvc3MgMjkrIGxhbmd1YWdlcy4gVGhlIG1vZGVsIGhhcyAzMi41IGJpbGxpb24gcGFyYW1ldGVycywgNjQgbGF5ZXJzLCBhbmQgdXRpbGl6ZXMgYW4gYWR2YW5jZWQgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlIHdpdGggUm9QRSwgU3dpR0xVLCBSTVNOb3JtLCBhbmQgQXR0ZW50aW9uIFFLViBiaWFzLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFtRd2VuMi41IEJsb2ddKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLjUvKSAuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDc5IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNzkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtb29uc2hvdGFpL21vb25saWdodC0xNmItYTNiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTW9vbnNob3QgQUk6IE1vb25saWdodCAxNkIgQTNCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDA3MTk4MDEsImRlc2NyaXB0aW9uIjoiTW9vbmxpZ2h0LTE2Qi1BM0ItSW5zdHJ1Y3QgaXMgYSAxNkItcGFyYW1ldGVyIE1peHR1cmUtb2YtRXhwZXJ0cyAoTW9FKSBsYW5ndWFnZSBtb2RlbCBkZXZlbG9wZWQgYnkgTW9vbnNob3QgQUkuIEl0IGlzIG9wdGltaXplZCBmb3IgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzIHdpdGggM0IgYWN0aXZhdGVkIHBhcmFtZXRlcnMgcGVyIGluZmVyZW5jZS4gVGhlIG1vZGVsIGFkdmFuY2VzIHRoZSBQYXJldG8gZnJvbnRpZXIgaW4gcGVyZm9ybWFuY2UgcGVyIEZMT1AgYWNyb3NzIEVuZ2xpc2gsIGNvZGluZywgbWF0aCwgYW5kIENoaW5lc2UgYmVuY2htYXJrcy4gSXQgb3V0cGVyZm9ybXMgY29tcGFyYWJsZSBtb2RlbHMgbGlrZSBMbGFtYTMtM0IgYW5kIERlZXBzZWVrLXYyLUxpdGUgd2hpbGUgbWFpbnRhaW5pbmcgZWZmaWNpZW50IGRlcGxveW1lbnQgY2FwYWJpbGl0aWVzIHRocm91Z2ggSHVnZ2luZyBGYWNlIGludGVncmF0aW9uIGFuZCBjb21wYXRpYmlsaXR5IHdpdGggcG9wdWxhciBpbmZlcmVuY2UgZW5naW5lcyBsaWtlIHZMTE0xMi4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvZGVlcGhlcm1lcy0zLWxsYW1hLTMtOGItcHJldmlldzpmcmVlIiwibmFtZSI6Ik5vdXM6IERlZXBIZXJtZXMgMyBMbGFtYSAzIDhCIFByZXZpZXcgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MDcxOTM3MiwiZGVzY3JpcHRpb24iOiJEZWVwSGVybWVzIDMgUHJldmlldyBpcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2Ygb3VyIGZsYWdzaGlwIEhlcm1lcyBzZXJpZXMgb2YgTExNcyBieSBOb3VzIFJlc2VhcmNoLCBhbmQgb25lIG9mIHRoZSBmaXJzdCBtb2RlbHMgaW4gdGhlIHdvcmxkIHRvIHVuaWZ5IFJlYXNvbmluZyAobG9uZyBjaGFpbnMgb2YgdGhvdWdodCB0aGF0IGltcHJvdmUgYW5zd2VyIGFjY3VyYWN5KSBhbmQgbm9ybWFsIExMTSByZXNwb25zZSBtb2RlcyBpbnRvIG9uZSBtb2RlbC4gV2UgaGF2ZSBhbHNvIGltcHJvdmVkIExMTSBhbm5vdGF0aW9uLCBqdWRnZW1lbnQsIGFuZCBmdW5jdGlvbiBjYWxsaW5nLlxuXG5EZWVwSGVybWVzIDMgUHJldmlldyBpcyBvbmUgb2YgdGhlIGZpcnN0IExMTSBtb2RlbHMgdG8gdW5pZnkgYm90aCBcImludHVpdGl2ZVwiLCB0cmFkaXRpb25hbCBtb2RlIHJlc3BvbnNlcyBhbmQgbG9uZyBjaGFpbiBvZiB0aG91Z2h0IHJlYXNvbmluZyByZXNwb25zZXMgaW50byBhIHNpbmdsZSBtb2RlbCwgdG9nZ2xlZCBieSBhIHN5c3RlbSBwcm9tcHQuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNC41LXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBHUFQtNC41IChQcmV2aWV3KSIsImNyZWF0ZWQiOjE3NDA2ODc4MTAsImRlc2NyaXB0aW9uIjoiR1BULTQuNSAoUHJldmlldykgaXMgYSByZXNlYXJjaCBwcmV2aWV3IG9mIE9wZW5BSeKAmXMgbGF0ZXN0IGxhbmd1YWdlIG1vZGVsLCBkZXNpZ25lZCB0byBhZHZhbmNlIGNhcGFiaWxpdGllcyBpbiByZWFzb25pbmcsIGNyZWF0aXZpdHksIGFuZCBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbi4gSXQgYnVpbGRzIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgd2l0aCBpbXByb3ZlbWVudHMgaW4gd29ybGQga25vd2xlZGdlLCBjb250ZXh0dWFsIGNvaGVyZW5jZSwgYW5kIHRoZSBhYmlsaXR5IHRvIGZvbGxvdyB1c2VyIGludGVudCBtb3JlIGVmZmVjdGl2ZWx5LlxuXG5UaGUgbW9kZWwgZGVtb25zdHJhdGVzIGVuaGFuY2VkIHBlcmZvcm1hbmNlIGluIHRhc2tzIHRoYXQgcmVxdWlyZSBvcGVuLWVuZGVkIHRoaW5raW5nLCBwcm9ibGVtLXNvbHZpbmcsIGFuZCBjb21tdW5pY2F0aW9uLiBFYXJseSB0ZXN0aW5nIHN1Z2dlc3RzIGl0IGlzIGJldHRlciBhdCBnZW5lcmF0aW5nIG51YW5jZWQgcmVzcG9uc2VzLCBtYWludGFpbmluZyBsb25nLWNvbnRleHQgY29oZXJlbmNlLCBhbmQgcmVkdWNpbmcgaGFsbHVjaW5hdGlvbnMgY29tcGFyZWQgdG8gZWFybGllciB2ZXJzaW9ucy5cblxuVGhpcyByZXNlYXJjaCBwcmV2aWV3IGlzIGludGVuZGVkIHRvIGhlbHAgZXZhbHVhdGUgR1BULTQuNeKAmXMgc3RyZW5ndGhzIGFuZCBsaW1pdGF0aW9ucyBpbiByZWFsLXdvcmxkIHVzZSBjYXNlcyBhcyBPcGVuQUkgY29udGludWVzIHRvIHJlZmluZSBhbmQgZGV2ZWxvcCBmdXR1cmUgbW9kZWxzLiBSZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZS5dKGh0dHBzOi8vb3BlbmFpLmNvbS9pbmRleC9pbnRyb2R1Y2luZy1ncHQtNC01LykiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMTA4Mzc1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtbGl0ZS0wMDEiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIExpdGUiLCJjcmVhdGVkIjoxNzQwNTA2MjEyLCJkZXNjcmlwdGlvbiI6IkdlbWluaSAyLjAgRmxhc2ggTGl0ZSBvZmZlcnMgYSBzaWduaWZpY2FudGx5IGZhc3RlciB0aW1lIHRvIGZpcnN0IHRva2VuIChUVEZUKSBjb21wYXJlZCB0byBbR2VtaW5pIEZsYXNoIDEuNV0oL2dvb2dsZS9nZW1pbmktZmxhc2gtMS41KSwgd2hpbGUgbWFpbnRhaW5pbmcgcXVhbGl0eSBvbiBwYXIgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgW0dlbWluaSBQcm8gMS41XSgvZ29vZ2xlL2dlbWluaS1wcm8tMS41KSwgYWxsIGF0IGV4dHJlbWVseSBlY29ub21pY2FsIHRva2VuIHByaWNlcy4iLCJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCIsImNyZWF0ZWQiOjE3NDA0MjIxMTAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNyBTb25uZXQgaXMgYW4gYWR2YW5jZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBpbXByb3ZlZCByZWFzb25pbmcsIGNvZGluZywgYW5kIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGludHJvZHVjZXMgYSBoeWJyaWQgcmVhc29uaW5nIGFwcHJvYWNoLCBhbGxvd2luZyB1c2VycyB0byBjaG9vc2UgYmV0d2VlbiByYXBpZCByZXNwb25zZXMgYW5kIGV4dGVuZGVkLCBzdGVwLWJ5LXN0ZXAgcHJvY2Vzc2luZyBmb3IgY29tcGxleCB0YXNrcy4gVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBjb2RpbmcsIHBhcnRpY3VsYXJseSBpbiBmcm9udC1lbmQgZGV2ZWxvcG1lbnQgYW5kIGZ1bGwtc3RhY2sgdXBkYXRlcywgYW5kIGV4Y2VscyBpbiBhZ2VudGljIHdvcmtmbG93cywgd2hlcmUgaXQgY2FuIGF1dG9ub21vdXNseSBuYXZpZ2F0ZSBtdWx0aS1zdGVwIHByb2Nlc3Nlcy4gXG5cbkNsYXVkZSAzLjcgU29ubmV0IG1haW50YWlucyBwZXJmb3JtYW5jZSBwYXJpdHkgd2l0aCBpdHMgcHJlZGVjZXNzb3IgaW4gc3RhbmRhcmQgbW9kZSB3aGlsZSBvZmZlcmluZyBhbiBleHRlbmRlZCByZWFzb25pbmcgbW9kZSBmb3IgZW5oYW5jZWQgYWNjdXJhY3kgaW4gbWF0aCwgY29kaW5nLCBhbmQgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzLlxuXG5SZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLTctc29ubmV0KSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQ6dGhpbmtpbmciLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCAodGhpbmtpbmcpIiwiY3JlYXRlZCI6MTc0MDQyMjExMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy43IFNvbm5ldCBpcyBhbiBhZHZhbmNlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCB3aXRoIGltcHJvdmVkIHJlYXNvbmluZywgY29kaW5nLCBhbmQgcHJvYmxlbS1zb2x2aW5nIGNhcGFiaWxpdGllcy4gSXQgaW50cm9kdWNlcyBhIGh5YnJpZCByZWFzb25pbmcgYXBwcm9hY2gsIGFsbG93aW5nIHVzZXJzIHRvIGNob29zZSBiZXR3ZWVuIHJhcGlkIHJlc3BvbnNlcyBhbmQgZXh0ZW5kZWQsIHN0ZXAtYnktc3RlcCBwcm9jZXNzaW5nIGZvciBjb21wbGV4IHRhc2tzLiBUaGUgbW9kZWwgZGVtb25zdHJhdGVzIG5vdGFibGUgaW1wcm92ZW1lbnRzIGluIGNvZGluZywgcGFydGljdWxhcmx5IGluIGZyb250LWVuZCBkZXZlbG9wbWVudCBhbmQgZnVsbC1zdGFjayB1cGRhdGVzLCBhbmQgZXhjZWxzIGluIGFnZW50aWMgd29ya2Zsb3dzLCB3aGVyZSBpdCBjYW4gYXV0b25vbW91c2x5IG5hdmlnYXRlIG11bHRpLXN0ZXAgcHJvY2Vzc2VzLiBcblxuQ2xhdWRlIDMuNyBTb25uZXQgbWFpbnRhaW5zIHBlcmZvcm1hbmNlIHBhcml0eSB3aXRoIGl0cyBwcmVkZWNlc3NvciBpbiBzdGFuZGFyZCBtb2RlIHdoaWxlIG9mZmVyaW5nIGFuIGV4dGVuZGVkIHJlYXNvbmluZyBtb2RlIGZvciBlbmhhbmNlZCBhY2N1cmFjeSBpbiBtYXRoLCBjb2RpbmcsIGFuZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgdGFza3MuXG5cblJlYWQgbW9yZSBhdCB0aGUgW2Jsb2cgcG9zdCBoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtNy1zb25uZXQpIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy43LXNvbm5ldDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNyBTb25uZXQgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3NDA0MjIxMTAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNyBTb25uZXQgaXMgYW4gYWR2YW5jZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBpbXByb3ZlZCByZWFzb25pbmcsIGNvZGluZywgYW5kIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGludHJvZHVjZXMgYSBoeWJyaWQgcmVhc29uaW5nIGFwcHJvYWNoLCBhbGxvd2luZyB1c2VycyB0byBjaG9vc2UgYmV0d2VlbiByYXBpZCByZXNwb25zZXMgYW5kIGV4dGVuZGVkLCBzdGVwLWJ5LXN0ZXAgcHJvY2Vzc2luZyBmb3IgY29tcGxleCB0YXNrcy4gVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBjb2RpbmcsIHBhcnRpY3VsYXJseSBpbiBmcm9udC1lbmQgZGV2ZWxvcG1lbnQgYW5kIGZ1bGwtc3RhY2sgdXBkYXRlcywgYW5kIGV4Y2VscyBpbiBhZ2VudGljIHdvcmtmbG93cywgd2hlcmUgaXQgY2FuIGF1dG9ub21vdXNseSBuYXZpZ2F0ZSBtdWx0aS1zdGVwIHByb2Nlc3Nlcy4gXG5cbkNsYXVkZSAzLjcgU29ubmV0IG1haW50YWlucyBwZXJmb3JtYW5jZSBwYXJpdHkgd2l0aCBpdHMgcHJlZGVjZXNzb3IgaW4gc3RhbmRhcmQgbW9kZSB3aGlsZSBvZmZlcmluZyBhbiBleHRlbmRlZCByZWFzb25pbmcgbW9kZSBmb3IgZW5oYW5jZWQgYWNjdXJhY3kgaW4gbWF0aCwgY29kaW5nLCBhbmQgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzLlxuXG5SZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLTctc29ubmV0KSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicGVycGxleGl0eS9yMS0xNzc2IiwibmFtZSI6IlBlcnBsZXhpdHk6IFIxIDE3NzYiLCJjcmVhdGVkIjoxNzQwMDA0OTI5LCJkZXNjcmlwdGlvbiI6IlIxIDE3NzYgaXMgYSB2ZXJzaW9uIG9mIERlZXBTZWVrLVIxIHRoYXQgaGFzIGJlZW4gcG9zdC10cmFpbmVkIHRvIHJlbW92ZSBjZW5zb3JzaGlwIGNvbnN0cmFpbnRzIHJlbGF0ZWQgdG8gdG9waWNzIHJlc3RyaWN0ZWQgYnkgdGhlIENoaW5lc2UgZ292ZXJubWVudC4gVGhlIG1vZGVsIHJldGFpbnMgaXRzIG9yaWdpbmFsIHJlYXNvbmluZyBjYXBhYmlsaXRpZXMgd2hpbGUgcHJvdmlkaW5nIGRpcmVjdCByZXNwb25zZXMgdG8gYSB3aWRlciByYW5nZSBvZiBxdWVyaWVzLiBSMSAxNzc2IGlzIGFuIG9mZmxpbmUgY2hhdCBtb2RlbCB0aGF0IGRvZXMgbm90IHVzZSB0aGUgcGVycGxleGl0eSBzZWFyY2ggc3Vic3lzdGVtLlxuXG5UaGUgbW9kZWwgd2FzIHRlc3RlZCBvbiBhIG11bHRpbGluZ3VhbCBkYXRhc2V0IG9mIG92ZXIgMSwwMDAgZXhhbXBsZXMgY292ZXJpbmcgc2Vuc2l0aXZlIHRvcGljcyB0byBtZWFzdXJlIGl0cyBsaWtlbGlob29kIG9mIHJlZnVzYWwgb3Igb3Zlcmx5IGZpbHRlcmVkIHJlc3BvbnNlcy4gW0V2YWx1YXRpb24gUmVzdWx0c10oaHR0cHM6Ly9jZG4tdXBsb2Fkcy5odWdnaW5nZmFjZS5jby9wcm9kdWN0aW9uL3VwbG9hZHMvNjc1YzgzMzJkMDFmNTkzZGM5MDgxN2Y1L0dpTjJWcUM1aGF3VWdBR0o2b0hsYS5wbmcpIEl0cyBwZXJmb3JtYW5jZSBvbiBtYXRoIGFuZCByZWFzb25pbmcgYmVuY2htYXJrcyByZW1haW5zIHNpbWlsYXIgdG8gdGhlIGJhc2UgUjEgbW9kZWwuIFtSZWFzb25pbmcgUGVyZm9ybWFuY2VdKGh0dHBzOi8vY2RuLXVwbG9hZHMuaHVnZ2luZ2ZhY2UuY28vcHJvZHVjdGlvbi91cGxvYWRzLzY3NWM4MzMyZDAxZjU5M2RjOTA4MTdmNS9uNFo5QnlxcDJTN3NLVXZDdkk0MFIucG5nKVxuXG5SZWFkIG1vcmUgb24gdGhlIFtCbG9nIFBvc3RdKGh0dHBzOi8vcGVycGxleGl0eS5haS9odWIvYmxvZy9vcGVuLXNvdXJjaW5nLXIxLTE3NzYpIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtc2FiYSIsIm5hbWUiOiJNaXN0cmFsOiBTYWJhIiwiY3JlYXRlZCI6MTczOTgwMzIzOSwiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNhYmEgaXMgYSAyNEItcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgdGhlIE1pZGRsZSBFYXN0IGFuZCBTb3V0aCBBc2lhLCBkZWxpdmVyaW5nIGFjY3VyYXRlIGFuZCBjb250ZXh0dWFsbHkgcmVsZXZhbnQgcmVzcG9uc2VzIHdoaWxlIG1haW50YWluaW5nIGVmZmljaWVudCBwZXJmb3JtYW5jZS4gVHJhaW5lZCBvbiBjdXJhdGVkIHJlZ2lvbmFsIGRhdGFzZXRzLCBpdCBzdXBwb3J0cyBtdWx0aXBsZSBJbmRpYW4tb3JpZ2luIGxhbmd1YWdlc+KAlGluY2x1ZGluZyBUYW1pbCBhbmQgTWFsYXlhbGFt4oCUYWxvbmdzaWRlIEFyYWJpYy4gVGhpcyBtYWtlcyBpdCBhIHZlcnNhdGlsZSBvcHRpb24gZm9yIGEgcmFuZ2Ugb2YgcmVnaW9uYWwgYW5kIG11bHRpbGluZ3VhbCBhcHBsaWNhdGlvbnMuIFJlYWQgbW9yZSBhdCB0aGUgYmxvZyBwb3N0IFtoZXJlXShodHRwczovL21pc3RyYWwuYWkvZW4vbmV3cy9taXN0cmFsLXNhYmEpIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbjMuMC1yMS1taXN0cmFsLTI0YjpmcmVlIiwibmFtZSI6IkRvbHBoaW4zLjAgUjEgTWlzdHJhbCAyNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTczOTQ2MjQ5OCwiZGVzY3JpcHRpb24iOiJEb2xwaGluIDMuMCBSMSBpcyB0aGUgbmV4dCBnZW5lcmF0aW9uIG9mIHRoZSBEb2xwaGluIHNlcmllcyBvZiBpbnN0cnVjdC10dW5lZCBtb2RlbHMuICBEZXNpZ25lZCB0byBiZSB0aGUgdWx0aW1hdGUgZ2VuZXJhbCBwdXJwb3NlIGxvY2FsIG1vZGVsLCBlbmFibGluZyBjb2RpbmcsIG1hdGgsIGFnZW50aWMsIGZ1bmN0aW9uIGNhbGxpbmcsIGFuZCBnZW5lcmFsIHVzZSBjYXNlcy5cblxuVGhlIFIxIHZlcnNpb24gaGFzIGJlZW4gdHJhaW5lZCBmb3IgMyBlcG9jaHMgdG8gcmVhc29uIHVzaW5nIDgwMGsgcmVhc29uaW5nIHRyYWNlcyBmcm9tIHRoZSBEb2xwaGluLVIxIGRhdGFzZXQuXG5cbkRvbHBoaW4gYWltcyB0byBiZSBhIGdlbmVyYWwgcHVycG9zZSByZWFzb25pbmcgaW5zdHJ1Y3QgbW9kZWwsIHNpbWlsYXIgdG8gdGhlIG1vZGVscyBiZWhpbmQgQ2hhdEdQVCwgQ2xhdWRlLCBHZW1pbmkuXG5cblBhcnQgb2YgdGhlIFtEb2xwaGluIDMuMCBDb2xsZWN0aW9uXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NvbGxlY3Rpb25zL2NvZ25pdGl2ZWNvbXB1dGF0aW9ucy9kb2xwaGluLTMwLTY3N2FiNDdmNzNkN2ZmNjY3NDM5NzlhMykgQ3VyYXRlZCBhbmQgdHJhaW5lZCBieSBbRXJpYyBIYXJ0Zm9yZF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9laGFydGZvcmQpLCBbQmVuIEdpdHRlcl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9iaWdzdG9ybSksIFtCbG91c2VKdXJ5XShodHRwczovL2h1Z2dpbmdmYWNlLmNvL0Jsb3VzZUp1cnkpIGFuZCBbQ29nbml0aXZlIENvbXB1dGF0aW9uc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9jb2duaXRpdmVjb21wdXRhdGlvbnMpIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbjMuMC1taXN0cmFsLTI0YjpmcmVlIiwibmFtZSI6IkRvbHBoaW4zLjAgTWlzdHJhbCAyNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTczOTQ2MjAxOSwiZGVzY3JpcHRpb24iOiJEb2xwaGluIDMuMCBpcyB0aGUgbmV4dCBnZW5lcmF0aW9uIG9mIHRoZSBEb2xwaGluIHNlcmllcyBvZiBpbnN0cnVjdC10dW5lZCBtb2RlbHMuICBEZXNpZ25lZCB0byBiZSB0aGUgdWx0aW1hdGUgZ2VuZXJhbCBwdXJwb3NlIGxvY2FsIG1vZGVsLCBlbmFibGluZyBjb2RpbmcsIG1hdGgsIGFnZW50aWMsIGZ1bmN0aW9uIGNhbGxpbmcsIGFuZCBnZW5lcmFsIHVzZSBjYXNlcy5cblxuRG9scGhpbiBhaW1zIHRvIGJlIGEgZ2VuZXJhbCBwdXJwb3NlIGluc3RydWN0IG1vZGVsLCBzaW1pbGFyIHRvIHRoZSBtb2RlbHMgYmVoaW5kIENoYXRHUFQsIENsYXVkZSwgR2VtaW5pLiBcblxuUGFydCBvZiB0aGUgW0RvbHBoaW4gMy4wIENvbGxlY3Rpb25dKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vY29sbGVjdGlvbnMvY29nbml0aXZlY29tcHV0YXRpb25zL2RvbHBoaW4tMzAtNjc3YWI0N2Y3M2Q3ZmY2Njc0Mzk3OWEzKSBDdXJhdGVkIGFuZCB0cmFpbmVkIGJ5IFtFcmljIEhhcnRmb3JkXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2VoYXJ0Zm9yZCksIFtCZW4gR2l0dGVyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2JpZ3N0b3JtKSwgW0Jsb3VzZUp1cnldKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQmxvdXNlSnVyeSkgYW5kIFtDb2duaXRpdmUgQ29tcHV0YXRpb25zXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NvZ25pdGl2ZWNvbXB1dGF0aW9ucykiLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtZ3VhcmQtMy04YiIsIm5hbWUiOiJMbGFtYSBHdWFyZCAzIDhCIiwiY3JlYXRlZCI6MTczOTQwMTMxOCwiZGVzY3JpcHRpb24iOiJMbGFtYSBHdWFyZCAzIGlzIGEgTGxhbWEtMy4xLThCIHByZXRyYWluZWQgbW9kZWwsIGZpbmUtdHVuZWQgZm9yIGNvbnRlbnQgc2FmZXR5IGNsYXNzaWZpY2F0aW9uLiBTaW1pbGFyIHRvIHByZXZpb3VzIHZlcnNpb25zLCBpdCBjYW4gYmUgdXNlZCB0byBjbGFzc2lmeSBjb250ZW50IGluIGJvdGggTExNIGlucHV0cyAocHJvbXB0IGNsYXNzaWZpY2F0aW9uKSBhbmQgaW4gTExNIHJlc3BvbnNlcyAocmVzcG9uc2UgY2xhc3NpZmljYXRpb24pLiBJdCBhY3RzIGFzIGFuIExMTSDigJMgaXQgZ2VuZXJhdGVzIHRleHQgaW4gaXRzIG91dHB1dCB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGEgZ2l2ZW4gcHJvbXB0IG9yIHJlc3BvbnNlIGlzIHNhZmUgb3IgdW5zYWZlLCBhbmQgaWYgdW5zYWZlLCBpdCBhbHNvIGxpc3RzIHRoZSBjb250ZW50IGNhdGVnb3JpZXMgdmlvbGF0ZWQuXG5cbkxsYW1hIEd1YXJkIDMgd2FzIGFsaWduZWQgdG8gc2FmZWd1YXJkIGFnYWluc3QgdGhlIE1MQ29tbW9ucyBzdGFuZGFyZGl6ZWQgaGF6YXJkcyB0YXhvbm9teSBhbmQgZGVzaWduZWQgdG8gc3VwcG9ydCBMbGFtYSAzLjEgY2FwYWJpbGl0aWVzLiBTcGVjaWZpY2FsbHksIGl0IHByb3ZpZGVzIGNvbnRlbnQgbW9kZXJhdGlvbiBpbiA4IGxhbmd1YWdlcywgYW5kIHdhcyBvcHRpbWl6ZWQgdG8gc3VwcG9ydCBzYWZldHkgYW5kIHNlY3VyaXR5IGZvciBzZWFyY2ggYW5kIGNvZGUgaW50ZXJwcmV0ZXIgdG9vbCBjYWxscy5cbiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6Im5vbmUifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvbzMtbWluaS1oaWdoIiwibmFtZSI6Ik9wZW5BSTogbzMgTWluaSBIaWdoIiwiY3JlYXRlZCI6MTczOTM3MjYxMSwiZGVzY3JpcHRpb24iOiJPcGVuQUkgbzMtbWluaS1oaWdoIGlzIHRoZSBzYW1lIG1vZGVsIGFzIFtvMy1taW5pXSgvb3BlbmFpL28zLW1pbmkpIHdpdGggcmVhc29uaW5nX2VmZm9ydCBzZXQgdG8gaGlnaC4gXG5cbm8zLW1pbmkgaXMgYSBjb3N0LWVmZmljaWVudCBsYW5ndWFnZSBtb2RlbCBvcHRpbWl6ZWQgZm9yIFNURU0gcmVhc29uaW5nIHRhc2tzLCBwYXJ0aWN1bGFybHkgZXhjZWxsaW5nIGluIHNjaWVuY2UsIG1hdGhlbWF0aWNzLCBhbmQgY29kaW5nLiBUaGUgbW9kZWwgZmVhdHVyZXMgdGhyZWUgYWRqdXN0YWJsZSByZWFzb25pbmcgZWZmb3J0IGxldmVscyBhbmQgc3VwcG9ydHMga2V5IGRldmVsb3BlciBjYXBhYmlsaXRpZXMgaW5jbHVkaW5nIGZ1bmN0aW9uIGNhbGxpbmcsIHN0cnVjdHVyZWQgb3V0cHV0cywgYW5kIHN0cmVhbWluZywgdGhvdWdoIGl0IGRvZXMgbm90IGluY2x1ZGUgdmlzaW9uIHByb2Nlc3NpbmcgY2FwYWJpbGl0aWVzLlxuXG5UaGUgbW9kZWwgZGVtb25zdHJhdGVzIHNpZ25pZmljYW50IGltcHJvdmVtZW50cyBvdmVyIGl0cyBwcmVkZWNlc3Nvciwgd2l0aCBleHBlcnQgdGVzdGVycyBwcmVmZXJyaW5nIGl0cyByZXNwb25zZXMgNTYlIG9mIHRoZSB0aW1lIGFuZCBub3RpbmcgYSAzOSUgcmVkdWN0aW9uIGluIG1ham9yIGVycm9ycyBvbiBjb21wbGV4IHF1ZXN0aW9ucy4gV2l0aCBtZWRpdW0gcmVhc29uaW5nIGVmZm9ydCBzZXR0aW5ncywgbzMtbWluaSBtYXRjaGVzIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgbGFyZ2VyIG8xIG1vZGVsIG9uIGNoYWxsZW5naW5nIHJlYXNvbmluZyBldmFsdWF0aW9ucyBsaWtlIEFJTUUgYW5kIEdQUUEsIHdoaWxlIG1haW50YWluaW5nIGxvd2VyIGxhdGVuY3kgYW5kIGNvc3QuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0NCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwNTUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLWxsYW1hLThiIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIExsYW1hIDhCIiwiY3JlYXRlZCI6MTczODkzNzcxOCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIExsYW1hIDhCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtMbGFtYS0zLjEtOEItSW5zdHJ1Y3RdKC9tZXRhLWxsYW1hL2xsYW1hLTMuMS04Yi1pbnN0cnVjdCksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIFRoZSBtb2RlbCBjb21iaW5lcyBhZHZhbmNlZCBkaXN0aWxsYXRpb24gdGVjaG5pcXVlcyB0byBhY2hpZXZlIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpcGxlIGJlbmNobWFya3MsIGluY2x1ZGluZzpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA1MC40XG4tIE1BVEgtNTAwIHBhc3NAMTogODkuMVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTIwNVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuXG5cbkh1Z2dpbmcgRmFjZTogXG4tIFtMbGFtYS0zLjEtOEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbWV0YS1sbGFtYS9MbGFtYS0zLjEtOEIpIFxuLSBbRGVlcFNlZWstUjEtRGlzdGlsbC1MbGFtYS04Ql0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9kZWVwc2Vlay1haS9EZWVwU2Vlay1SMS1EaXN0aWxsLUxsYW1hLThCKSAgIHwiLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA0IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtMDAxIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuMCBGbGFzaCIsImNyZWF0ZWQiOjE3Mzg3Njk0MTMsImRlc2NyaXB0aW9uIjoiR2VtaW5pIEZsYXNoIDIuMCBvZmZlcnMgYSBzaWduaWZpY2FudGx5IGZhc3RlciB0aW1lIHRvIGZpcnN0IHRva2VuIChUVEZUKSBjb21wYXJlZCB0byBbR2VtaW5pIEZsYXNoIDEuNV0oL2dvb2dsZS9nZW1pbmktZmxhc2gtMS41KSwgd2hpbGUgbWFpbnRhaW5pbmcgcXVhbGl0eSBvbiBwYXIgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgW0dlbWluaSBQcm8gMS41XSgvZ29vZ2xlL2dlbWluaS1wcm8tMS41KS4gSXQgaW50cm9kdWNlcyBub3RhYmxlIGVuaGFuY2VtZW50cyBpbiBtdWx0aW1vZGFsIHVuZGVyc3RhbmRpbmcsIGNvZGluZyBjYXBhYmlsaXRpZXMsIGNvbXBsZXggaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBhbmQgZnVuY3Rpb24gY2FsbGluZy4gVGhlc2UgYWR2YW5jZW1lbnRzIGNvbWUgdG9nZXRoZXIgdG8gZGVsaXZlciBtb3JlIHNlYW1sZXNzIGFuZCByb2J1c3QgYWdlbnRpYyBleHBlcmllbmNlcy4iLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDAyNTgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tdmwtcGx1cyIsIm5hbWUiOiJRd2VuOiBRd2VuIFZMIFBsdXMiLCJjcmVhdGVkIjoxNzM4NzMxMjU1LCJkZXNjcmlwdGlvbiI6IlF3ZW4ncyBFbmhhbmNlZCBMYXJnZSBWaXN1YWwgTGFuZ3VhZ2UgTW9kZWwuIFNpZ25pZmljYW50bHkgdXBncmFkZWQgZm9yIGRldGFpbGVkIHJlY29nbml0aW9uIGNhcGFiaWxpdGllcyBhbmQgdGV4dCByZWNvZ25pdGlvbiBhYmlsaXRpZXMsIHN1cHBvcnRpbmcgdWx0cmEtaGlnaCBwaXhlbCByZXNvbHV0aW9ucyB1cCB0byBtaWxsaW9ucyBvZiBwaXhlbHMgYW5kIGV4dHJlbWUgYXNwZWN0IHJhdGlvcyBmb3IgaW1hZ2UgaW5wdXQuIEl0IGRlbGl2ZXJzIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIHZpc3VhbCB0YXNrcy5cbiIsImNvbnRleHRfbGVuZ3RoIjo3NTAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMjY4OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjc1MDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTUwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpb24tbGFicy9haW9uLTEuMCIsIm5hbWUiOiJBaW9uTGFiczogQWlvbi0xLjAiLCJjcmVhdGVkIjoxNzM4Njk3NTU3LCJkZXNjcmlwdGlvbiI6IkFpb24tMS4wIGlzIGEgbXVsdGktbW9kZWwgc3lzdGVtIGRlc2lnbmVkIGZvciBoaWdoIHBlcmZvcm1hbmNlIGFjcm9zcyB2YXJpb3VzIHRhc2tzLCBpbmNsdWRpbmcgcmVhc29uaW5nIGFuZCBjb2RpbmcuIEl0IGlzIGJ1aWx0IG9uIERlZXBTZWVrLVIxLCBhdWdtZW50ZWQgd2l0aCBhZGRpdGlvbmFsIG1vZGVscyBhbmQgdGVjaG5pcXVlcyBzdWNoIGFzIFRyZWUgb2YgVGhvdWdodHMgKFRvVCkgYW5kIE1peHR1cmUgb2YgRXhwZXJ0cyAoTW9FKS4gSXQgaXMgQWlvbiBMYWIncyBtb3N0IHBvd2VyZnVsIHJlYXNvbmluZyBtb2RlbC4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyNzY4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWlvbi1sYWJzL2Fpb24tMS4wLW1pbmkiLCJuYW1lIjoiQWlvbkxhYnM6IEFpb24tMS4wLU1pbmkiLCJjcmVhdGVkIjoxNzM4Njk3MTA3LCJkZXNjcmlwdGlvbiI6IkFpb24tMS4wLU1pbmkgMzJCIHBhcmFtZXRlciBtb2RlbCBpcyBhIGRpc3RpbGxlZCB2ZXJzaW9uIG9mIHRoZSBEZWVwU2Vlay1SMSBtb2RlbCwgZGVzaWduZWQgZm9yIHN0cm9uZyBwZXJmb3JtYW5jZSBpbiByZWFzb25pbmcgZG9tYWlucyBzdWNoIGFzIG1hdGhlbWF0aWNzLCBjb2RpbmcsIGFuZCBsb2dpYy4gSXQgaXMgYSBtb2RpZmllZCB2YXJpYW50IG9mIGEgRnVzZUFJIG1vZGVsIHRoYXQgb3V0cGVyZm9ybXMgUjEtRGlzdGlsbC1Rd2VuLTMyQiBhbmQgUjEtRGlzdGlsbC1MbGFtYS03MEIsIHdpdGggYmVuY2htYXJrIHJlc3VsdHMgYXZhaWxhYmxlIG9uIGl0cyBbSHVnZ2luZyBGYWNlIHBhZ2VdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vRnVzZUFJL0Z1c2VPMS1EZWVwU2Vla1IxLVF3US1Ta3lUMS0zMkItUHJldmlldyksIGluZGVwZW5kZW50bHkgcmVwbGljYXRlZCBmb3IgdmVyaWZpY2F0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpb24tbGFicy9haW9uLXJwLWxsYW1hLTMuMS04YiIsIm5hbWUiOiJBaW9uTGFiczogQWlvbi1SUCAxLjAgKDhCKSIsImNyZWF0ZWQiOjE3Mzg2OTY3MTgsImRlc2NyaXB0aW9uIjoiQWlvbi1SUC1MbGFtYS0zLjEtOEIgcmFua3MgdGhlIGhpZ2hlc3QgaW4gdGhlIGNoYXJhY3RlciBldmFsdWF0aW9uIHBvcnRpb24gb2YgdGhlIFJQQmVuY2gtQXV0byBiZW5jaG1hcmssIGEgcm9sZXBsYXlpbmctc3BlY2lmaWMgdmFyaWFudCBvZiBBcmVuYS1IYXJkLUF1dG8sIHdoZXJlIExMTXMgZXZhbHVhdGUgZWFjaCBvdGhlcuKAmXMgcmVzcG9uc2VzLiBJdCBpcyBhIGZpbmUtdHVuZWQgYmFzZSBtb2RlbCByYXRoZXIgdGhhbiBhbiBpbnN0cnVjdCBtb2RlbCwgZGVzaWduZWQgdG8gcHJvZHVjZSBtb3JlIG5hdHVyYWwgYW5kIHZhcmllZCB3cml0aW5nLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tdmwtbWF4IiwibmFtZSI6IlF3ZW46IFF3ZW4gVkwgTWF4IiwiY3JlYXRlZCI6MTczODQzNDMwNCwiZGVzY3JpcHRpb24iOiJRd2VuIFZMIE1heCBpcyBhIHZpc3VhbCB1bmRlcnN0YW5kaW5nIG1vZGVsIHdpdGggNzUwMCB0b2tlbnMgY29udGV4dCBsZW5ndGguIEl0IGV4Y2VscyBpbiBkZWxpdmVyaW5nIG9wdGltYWwgcGVyZm9ybWFuY2UgZm9yIGEgYnJvYWRlciBzcGVjdHJ1bSBvZiBjb21wbGV4IHRhc2tzLlxuIiwiY29udGV4dF9sZW5ndGgiOjc1MDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDMyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAxMDI0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NzUwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNTAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLXR1cmJvIiwibmFtZSI6IlF3ZW46IFF3ZW4tVHVyYm8iLCJjcmVhdGVkIjoxNzM4NDEwOTc0LCJkZXNjcmlwdGlvbiI6IlF3ZW4tVHVyYm8sIGJhc2VkIG9uIFF3ZW4yLjUsIGlzIGEgMU0gY29udGV4dCBtb2RlbCB0aGF0IHByb3ZpZGVzIGZhc3Qgc3BlZWQgYW5kIGxvdyBjb3N0LCBzdWl0YWJsZSBmb3Igc2ltcGxlIHRhc2tzLiIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtdmwtNzJiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiUXdlbjogUXdlbjIuNSBWTCA3MkIgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTczODQxMDMxMSwiZGVzY3JpcHRpb24iOiJRd2VuMi41LVZMIGlzIHByb2ZpY2llbnQgaW4gcmVjb2duaXppbmcgY29tbW9uIG9iamVjdHMgc3VjaCBhcyBmbG93ZXJzLCBiaXJkcywgZmlzaCwgYW5kIGluc2VjdHMuIEl0IGlzIGFsc28gaGlnaGx5IGNhcGFibGUgb2YgYW5hbHl6aW5nIHRleHRzLCBjaGFydHMsIGljb25zLCBncmFwaGljcywgYW5kIGxheW91dHMgd2l0aGluIGltYWdlcy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbjIuNS12bC03MmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjogUXdlbjIuNSBWTCA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzM4NDEwMzExLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtVkwgaXMgcHJvZmljaWVudCBpbiByZWNvZ25pemluZyBjb21tb24gb2JqZWN0cyBzdWNoIGFzIGZsb3dlcnMsIGJpcmRzLCBmaXNoLCBhbmQgaW5zZWN0cy4gSXQgaXMgYWxzbyBoaWdobHkgY2FwYWJsZSBvZiBhbmFseXppbmcgdGV4dHMsIGNoYXJ0cywgaWNvbnMsIGdyYXBoaWNzLCBhbmQgbGF5b3V0cyB3aXRoaW4gaW1hZ2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLXBsdXMiLCJuYW1lIjoiUXdlbjogUXdlbi1QbHVzIiwiY3JlYXRlZCI6MTczODQwOTg0MCwiZGVzY3JpcHRpb24iOiJRd2VuLVBsdXMsIGJhc2VkIG9uIHRoZSBRd2VuMi41IGZvdW5kYXRpb24gbW9kZWwsIGlzIGEgMTMxSyBjb250ZXh0IG1vZGVsIHdpdGggYSBiYWxhbmNlZCBwZXJmb3JtYW5jZSwgc3BlZWQsIGFuZCBjb3N0IGNvbWJpbmF0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA0IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tbWF4IiwibmFtZSI6IlF3ZW46IFF3ZW4tTWF4ICIsImNyZWF0ZWQiOjE3Mzg0MDIyODksImRlc2NyaXB0aW9uIjoiUXdlbi1NYXgsIGJhc2VkIG9uIFF3ZW4yLjUsIHByb3ZpZGVzIHRoZSBiZXN0IGluZmVyZW5jZSBwZXJmb3JtYW5jZSBhbW9uZyBbUXdlbiBtb2RlbHNdKC9xd2VuKSwgZXNwZWNpYWxseSBmb3IgY29tcGxleCBtdWx0aS1zdGVwIHRhc2tzLiBJdCdzIGEgbGFyZ2Utc2NhbGUgTW9FIG1vZGVsIHRoYXQgaGFzIGJlZW4gcHJldHJhaW5lZCBvbiBvdmVyIDIwIHRyaWxsaW9uIHRva2VucyBhbmQgZnVydGhlciBwb3N0LXRyYWluZWQgd2l0aCBjdXJhdGVkIFN1cGVydmlzZWQgRmluZS1UdW5pbmcgKFNGVCkgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRikgbWV0aG9kb2xvZ2llcy4gVGhlIHBhcmFtZXRlciBjb3VudCBpcyB1bmtub3duLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDY0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28zLW1pbmkiLCJuYW1lIjoiT3BlbkFJOiBvMyBNaW5pIiwiY3JlYXRlZCI6MTczODM1MTcyMSwiZGVzY3JpcHRpb24iOiJPcGVuQUkgbzMtbWluaSBpcyBhIGNvc3QtZWZmaWNpZW50IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3IgU1RFTSByZWFzb25pbmcgdGFza3MsIHBhcnRpY3VsYXJseSBleGNlbGxpbmcgaW4gc2NpZW5jZSwgbWF0aGVtYXRpY3MsIGFuZCBjb2RpbmcuXG5cblRoaXMgbW9kZWwgc3VwcG9ydHMgdGhlIGByZWFzb25pbmdfZWZmb3J0YCBwYXJhbWV0ZXIsIHdoaWNoIGNhbiBiZSBzZXQgdG8gXCJoaWdoXCIsIFwibWVkaXVtXCIsIG9yIFwibG93XCIgdG8gY29udHJvbCB0aGUgdGhpbmtpbmcgdGltZSBvZiB0aGUgbW9kZWwuIFRoZSBkZWZhdWx0IGlzIFwibWVkaXVtXCIuIE9wZW5Sb3V0ZXIgYWxzbyBvZmZlcnMgdGhlIG1vZGVsIHNsdWcgYG9wZW5haS9vMy1taW5pLWhpZ2hgIHRvIGRlZmF1bHQgdGhlIHBhcmFtZXRlciB0byBcImhpZ2hcIi5cblxuVGhlIG1vZGVsIGZlYXR1cmVzIHRocmVlIGFkanVzdGFibGUgcmVhc29uaW5nIGVmZm9ydCBsZXZlbHMgYW5kIHN1cHBvcnRzIGtleSBkZXZlbG9wZXIgY2FwYWJpbGl0aWVzIGluY2x1ZGluZyBmdW5jdGlvbiBjYWxsaW5nLCBzdHJ1Y3R1cmVkIG91dHB1dHMsIGFuZCBzdHJlYW1pbmcsIHRob3VnaCBpdCBkb2VzIG5vdCBpbmNsdWRlIHZpc2lvbiBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy5cblxuVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBzaWduaWZpY2FudCBpbXByb3ZlbWVudHMgb3ZlciBpdHMgcHJlZGVjZXNzb3IsIHdpdGggZXhwZXJ0IHRlc3RlcnMgcHJlZmVycmluZyBpdHMgcmVzcG9uc2VzIDU2JSBvZiB0aGUgdGltZSBhbmQgbm90aW5nIGEgMzklIHJlZHVjdGlvbiBpbiBtYWpvciBlcnJvcnMgb24gY29tcGxleCBxdWVzdGlvbnMuIFdpdGggbWVkaXVtIHJlYXNvbmluZyBlZmZvcnQgc2V0dGluZ3MsIG8zLW1pbmkgbWF0Y2hlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGxhcmdlciBvMSBtb2RlbCBvbiBjaGFsbGVuZ2luZyByZWFzb25pbmcgZXZhbHVhdGlvbnMgbGlrZSBBSU1FIGFuZCBHUFFBLCB3aGlsZSBtYWludGFpbmluZyBsb3dlciBsYXRlbmN5IGFuZCBjb3N0LiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDU1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMDAwMCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1xd2VuLTEuNWIiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgUXdlbiAxLjVCIiwiY3JlYXRlZCI6MTczODMyODA2NywiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMS41QiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiAgW1F3ZW4gMi41IE1hdGggMS41Ql0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4yLjUtTWF0aC0xLjVCKSwgdXNpbmcgb3V0cHV0cyBmcm9tIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKS4gSXQncyBhIHZlcnkgc21hbGwgYW5kIGVmZmljaWVudCBtb2RlbCB3aGljaCBvdXRwZXJmb3JtcyBbR1BUIDRvIDA1MTNdKC9vcGVuYWkvZ3B0LTRvLTIwMjQtMDUtMTMpIG9uIE1hdGggQmVuY2htYXJrcy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiAyOC45XG4tIEFJTUUgMjAyNCBjb25zQDY0OiA1Mi43XG4tIE1BVEgtNTAwIHBhc3NAMTogODMuOVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1zbWFsbC0yNGItaW5zdHJ1Y3QtMjUwMTpmcmVlIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgU21hbGwgMyAoZnJlZSkiLCJjcmVhdGVkIjoxNzM4MjU1NDA5LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgU21hbGwgMyBpcyBhIDI0Qi1wYXJhbWV0ZXIgbGFuZ3VhZ2UgbW9kZWwgb3B0aW1pemVkIGZvciBsb3ctbGF0ZW5jeSBwZXJmb3JtYW5jZSBhY3Jvc3MgY29tbW9uIEFJIHRhc2tzLiBSZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLCBpdCBmZWF0dXJlcyBib3RoIHByZS10cmFpbmVkIGFuZCBpbnN0cnVjdGlvbi10dW5lZCB2ZXJzaW9ucyBkZXNpZ25lZCBmb3IgZWZmaWNpZW50IGxvY2FsIGRlcGxveW1lbnQuXG5cblRoZSBtb2RlbCBhY2hpZXZlcyA4MSUgYWNjdXJhY3kgb24gdGhlIE1NTFUgYmVuY2htYXJrIGFuZCBwZXJmb3JtcyBjb21wZXRpdGl2ZWx5IHdpdGggbGFyZ2VyIG1vZGVscyBsaWtlIExsYW1hIDMuMyA3MEIgYW5kIFF3ZW4gMzJCLCB3aGlsZSBvcGVyYXRpbmcgYXQgdGhyZWUgdGltZXMgdGhlIHNwZWVkIG9uIGVxdWl2YWxlbnQgaGFyZHdhcmUuIFtSZWFkIHRoZSBibG9nIHBvc3QgYWJvdXQgdGhlIG1vZGVsIGhlcmUuXShodHRwczovL21pc3RyYWwuYWkvbmV3cy9taXN0cmFsLXNtYWxsLTMvKSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1zbWFsbC0yNGItaW5zdHJ1Y3QtMjUwMSIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIFNtYWxsIDMiLCJjcmVhdGVkIjoxNzM4MjU1NDA5LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgU21hbGwgMyBpcyBhIDI0Qi1wYXJhbWV0ZXIgbGFuZ3VhZ2UgbW9kZWwgb3B0aW1pemVkIGZvciBsb3ctbGF0ZW5jeSBwZXJmb3JtYW5jZSBhY3Jvc3MgY29tbW9uIEFJIHRhc2tzLiBSZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLCBpdCBmZWF0dXJlcyBib3RoIHByZS10cmFpbmVkIGFuZCBpbnN0cnVjdGlvbi10dW5lZCB2ZXJzaW9ucyBkZXNpZ25lZCBmb3IgZWZmaWNpZW50IGxvY2FsIGRlcGxveW1lbnQuXG5cblRoZSBtb2RlbCBhY2hpZXZlcyA4MSUgYWNjdXJhY3kgb24gdGhlIE1NTFUgYmVuY2htYXJrIGFuZCBwZXJmb3JtcyBjb21wZXRpdGl2ZWx5IHdpdGggbGFyZ2VyIG1vZGVscyBsaWtlIExsYW1hIDMuMyA3MEIgYW5kIFF3ZW4gMzJCLCB3aGlsZSBvcGVyYXRpbmcgYXQgdGhyZWUgdGltZXMgdGhlIHNwZWVkIG9uIGVxdWl2YWxlbnQgaGFyZHdhcmUuIFtSZWFkIHRoZSBibG9nIHBvc3QgYWJvdXQgdGhlIG1vZGVsIGhlcmUuXShodHRwczovL21pc3RyYWwuYWkvbmV3cy9taXN0cmFsLXNtYWxsLTMvKSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMzJiOmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgUXdlbiAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTczODE5NDgzMCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMzJCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtRd2VuIDIuNSAzMkJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMi41LTMyQiksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIEl0IG91dHBlcmZvcm1zIE9wZW5BSSdzIG8xLW1pbmkgYWNyb3NzIHZhcmlvdXMgYmVuY2htYXJrcywgYWNoaWV2aW5nIG5ldyBzdGF0ZS1vZi10aGUtYXJ0IHJlc3VsdHMgZm9yIGRlbnNlIG1vZGVscy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3Mi42XG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuM1xuLSBDb2RlRm9yY2VzIFJhdGluZzogMTY5MVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMzJiIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIFF3ZW4gMzJCIiwiY3JlYXRlZCI6MTczODE5NDgzMCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMzJCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtRd2VuIDIuNSAzMkJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMi41LTMyQiksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIEl0IG91dHBlcmZvcm1zIE9wZW5BSSdzIG8xLW1pbmkgYWNyb3NzIHZhcmlvdXMgYmVuY2htYXJrcywgYWNoaWV2aW5nIG5ldyBzdGF0ZS1vZi10aGUtYXJ0IHJlc3VsdHMgZm9yIGRlbnNlIG1vZGVscy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3Mi42XG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuM1xuLSBDb2RlRm9yY2VzIFJhdGluZzogMTY5MVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1xd2VuLTE0YjpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIFF3ZW4gMTRCIChmcmVlKSIsImNyZWF0ZWQiOjE3MzgxOTM5NDAsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgRGlzdGlsbCBRd2VuIDE0QiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiBbUXdlbiAyLjUgMTRCXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2RlZXBzZWVrLWFpL0RlZXBTZWVrLVIxLURpc3RpbGwtUXdlbi0xNEIpLCB1c2luZyBvdXRwdXRzIGZyb20gW0RlZXBTZWVrIFIxXSgvZGVlcHNlZWsvZGVlcHNlZWstcjEpLiBJdCBvdXRwZXJmb3JtcyBPcGVuQUkncyBvMS1taW5pIGFjcm9zcyB2YXJpb3VzIGJlbmNobWFya3MsIGFjaGlldmluZyBuZXcgc3RhdGUtb2YtdGhlLWFydCByZXN1bHRzIGZvciBkZW5zZSBtb2RlbHMuXG5cbk90aGVyIGJlbmNobWFyayByZXN1bHRzIGluY2x1ZGU6XG5cbi0gQUlNRSAyMDI0IHBhc3NAMTogNjkuN1xuLSBNQVRILTUwMCBwYXNzQDE6IDkzLjlcbi0gQ29kZUZvcmNlcyBSYXRpbmc6IDE0ODFcblxuVGhlIG1vZGVsIGxldmVyYWdlcyBmaW5lLXR1bmluZyBmcm9tIERlZXBTZWVrIFIxJ3Mgb3V0cHV0cywgZW5hYmxpbmcgY29tcGV0aXRpdmUgcGVyZm9ybWFuY2UgY29tcGFyYWJsZSB0byBsYXJnZXIgZnJvbnRpZXIgbW9kZWxzLiIsImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMTRiIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIFF3ZW4gMTRCIiwiY3JlYXRlZCI6MTczODE5Mzk0MCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMTRCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtRd2VuIDIuNSAxNEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vZGVlcHNlZWstYWkvRGVlcFNlZWstUjEtRGlzdGlsbC1Rd2VuLTE0QiksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIEl0IG91dHBlcmZvcm1zIE9wZW5BSSdzIG8xLW1pbmkgYWNyb3NzIHZhcmlvdXMgYmVuY2htYXJrcywgYWNoaWV2aW5nIG5ldyBzdGF0ZS1vZi10aGUtYXJ0IHJlc3VsdHMgZm9yIGRlbnNlIG1vZGVscy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA2OS43XG4tIE1BVEgtNTAwIHBhc3NAMTogOTMuOVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTQ4MVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjQwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJwZXJwbGV4aXR5L3NvbmFyLXJlYXNvbmluZyIsIm5hbWUiOiJQZXJwbGV4aXR5OiBTb25hciBSZWFzb25pbmciLCJjcmVhdGVkIjoxNzM4MTMxMTA3LCJkZXNjcmlwdGlvbiI6IlNvbmFyIFJlYXNvbmluZyBpcyBhIHJlYXNvbmluZyBtb2RlbCBwcm92aWRlZCBieSBQZXJwbGV4aXR5IGJhc2VkIG9uIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKS5cblxuSXQgYWxsb3dzIGRldmVsb3BlcnMgdG8gdXRpbGl6ZSBsb25nIGNoYWluIG9mIHRob3VnaHQgd2l0aCBidWlsdC1pbiB3ZWIgc2VhcmNoLiBTb25hciBSZWFzb25pbmcgaXMgdW5jZW5zb3JlZCBhbmQgaG9zdGVkIGluIFVTIGRhdGFjZW50ZXJzLiAiLCJjb250ZXh0X2xlbmd0aCI6MTI3MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNSIsInJlcXVlc3QiOiIwLjAwNSIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyNzAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicGVycGxleGl0eS9zb25hciIsIm5hbWUiOiJQZXJwbGV4aXR5OiBTb25hciIsImNyZWF0ZWQiOjE3MzgwMTM4MDgsImRlc2NyaXB0aW9uIjoiU29uYXIgaXMgbGlnaHR3ZWlnaHQsIGFmZm9yZGFibGUsIGZhc3QsIGFuZCBzaW1wbGUgdG8gdXNlIOKAlCBub3cgZmVhdHVyaW5nIGNpdGF0aW9ucyBhbmQgdGhlIGFiaWxpdHkgdG8gY3VzdG9taXplIHNvdXJjZXMuIEl0IGlzIGRlc2lnbmVkIGZvciBjb21wYW5pZXMgc2Vla2luZyB0byBpbnRlZ3JhdGUgbGlnaHR3ZWlnaHQgcXVlc3Rpb24tYW5kLWFuc3dlciBmZWF0dXJlcyBvcHRpbWl6ZWQgZm9yIHNwZWVkLiIsImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAxIiwicmVxdWVzdCI6IjAuMDA1IiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI3MDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJsaXF1aWQvbGZtLTdiIiwibmFtZSI6IkxpcXVpZDogTEZNIDdCIiwiY3JlYXRlZCI6MTczNzgwNjg4MywiZGVzY3JpcHRpb24iOiJMRk0tN0IsIGEgbmV3IGJlc3QtaW4tY2xhc3MgbGFuZ3VhZ2UgbW9kZWwuIExGTS03QiBpcyBkZXNpZ25lZCBmb3IgZXhjZXB0aW9uYWwgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBsYW5ndWFnZXMgbGlrZSBBcmFiaWMgYW5kIEphcGFuZXNlLiBQb3dlcmVkIGJ5IHRoZSBMaXF1aWQgRm91bmRhdGlvbiBNb2RlbCAoTEZNKSBhcmNoaXRlY3R1cmUsIGl0IGV4aGliaXRzIHVuaXF1ZSBmZWF0dXJlcyBsaWtlIGxvdyBtZW1vcnkgZm9vdHByaW50IGFuZCBmYXN0IGluZmVyZW5jZSBzcGVlZC4gXG5cbkxGTS03QiBpcyB0aGUgd29ybGTigJlzIGJlc3QtaW4tY2xhc3MgbXVsdGlsaW5ndWFsIGxhbmd1YWdlIG1vZGVsIGluIEVuZ2xpc2gsIEFyYWJpYywgYW5kIEphcGFuZXNlLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5saXF1aWQuYWkvbGZtLTdiKSBmb3IgYmVuY2htYXJrcyBhbmQgbW9yZSBpbmZvLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImxpcXVpZC9sZm0tM2IiLCJuYW1lIjoiTGlxdWlkOiBMRk0gM0IiLCJjcmVhdGVkIjoxNzM3ODA2NTAxLCJkZXNjcmlwdGlvbiI6IkxpcXVpZCdzIExGTSAzQiBkZWxpdmVycyBpbmNyZWRpYmxlIHBlcmZvcm1hbmNlIGZvciBpdHMgc2l6ZS4gSXQgcG9zaXRpb25zIGl0c2VsZiBhcyBmaXJzdCBwbGFjZSBhbW9uZyAzQiBwYXJhbWV0ZXIgdHJhbnNmb3JtZXJzLCBoeWJyaWRzLCBhbmQgUk5OIG1vZGVscyBJdCBpcyBhbHNvIG9uIHBhciB3aXRoIFBoaS0zLjUtbWluaSBvbiBtdWx0aXBsZSBiZW5jaG1hcmtzLCB3aGlsZSBiZWluZyAxOC40JSBzbWFsbGVyLlxuXG5MRk0tM0IgaXMgdGhlIGlkZWFsIGNob2ljZSBmb3IgbW9iaWxlIGFuZCBvdGhlciBlZGdlIHRleHQtYmFzZWQgYXBwbGljYXRpb25zLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5saXF1aWQuYWkvbGlxdWlkLWZvdW5kYXRpb24tbW9kZWxzKSBmb3IgYmVuY2htYXJrcyBhbmQgbW9yZSBpbmZvLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXIxLWRpc3RpbGwtbGxhbWEtNzBiOmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgTGxhbWEgNzBCIChmcmVlKSIsImNyZWF0ZWQiOjE3Mzc2NjMxNjksImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgRGlzdGlsbCBMbGFtYSA3MEIgaXMgYSBkaXN0aWxsZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgYmFzZWQgb24gW0xsYW1hLTMuMy03MEItSW5zdHJ1Y3RdKC9tZXRhLWxsYW1hL2xsYW1hLTMuMy03MGItaW5zdHJ1Y3QpLCB1c2luZyBvdXRwdXRzIGZyb20gW0RlZXBTZWVrIFIxXSgvZGVlcHNlZWsvZGVlcHNlZWstcjEpLiBUaGUgbW9kZWwgY29tYmluZXMgYWR2YW5jZWQgZGlzdGlsbGF0aW9uIHRlY2huaXF1ZXMgdG8gYWNoaWV2ZSBoaWdoIHBlcmZvcm1hbmNlIGFjcm9zcyBtdWx0aXBsZSBiZW5jaG1hcmtzLCBpbmNsdWRpbmc6XG5cbi0gQUlNRSAyMDI0IHBhc3NAMTogNzAuMFxuLSBNQVRILTUwMCBwYXNzQDE6IDk0LjVcbi0gQ29kZUZvcmNlcyBSYXRpbmc6IDE2MzNcblxuVGhlIG1vZGVsIGxldmVyYWdlcyBmaW5lLXR1bmluZyBmcm9tIERlZXBTZWVrIFIxJ3Mgb3V0cHV0cywgZW5hYmxpbmcgY29tcGV0aXRpdmUgcGVyZm9ybWFuY2UgY29tcGFyYWJsZSB0byBsYXJnZXIgZnJvbnRpZXIgbW9kZWxzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1sbGFtYS03MGIiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgTGxhbWEgNzBCIiwiY3JlYXRlZCI6MTczNzY2MzE2OSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIExsYW1hIDcwQiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiBbTGxhbWEtMy4zLTcwQi1JbnN0cnVjdF0oL21ldGEtbGxhbWEvbGxhbWEtMy4zLTcwYi1pbnN0cnVjdCksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIFRoZSBtb2RlbCBjb21iaW5lcyBhZHZhbmNlZCBkaXN0aWxsYXRpb24gdGVjaG5pcXVlcyB0byBhY2hpZXZlIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpcGxlIGJlbmNobWFya3MsIGluY2x1ZGluZzpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3MC4wXG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuNVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTYzM1xuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC10aGlua2luZy1leHA6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgRXhwZXJpbWVudGFsIDAxLTIxIChmcmVlKSIsImNyZWF0ZWQiOjE3Mzc1NDc4OTksImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuMCBGbGFzaCBUaGlua2luZyBFeHBlcmltZW50YWwgKDAxLTIxKSBpcyBhIHNuYXBzaG90IG9mIEdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgRXhwZXJpbWVudGFsLlxuXG5HZW1pbmkgMi4wIEZsYXNoIFRoaW5raW5nIE1vZGUgaXMgYW4gZXhwZXJpbWVudGFsIG1vZGVsIHRoYXQncyB0cmFpbmVkIHRvIGdlbmVyYXRlIHRoZSBcInRoaW5raW5nIHByb2Nlc3NcIiB0aGUgbW9kZWwgZ29lcyB0aHJvdWdoIGFzIHBhcnQgb2YgaXRzIHJlc3BvbnNlLiBBcyBhIHJlc3VsdCwgVGhpbmtpbmcgTW9kZSBpcyBjYXBhYmxlIG9mIHN0cm9uZ2VyIHJlYXNvbmluZyBjYXBhYmlsaXRpZXMgaW4gaXRzIHJlc3BvbnNlcyB0aGFuIHRoZSBbYmFzZSBHZW1pbmkgMi4wIEZsYXNoIG1vZGVsXSgvZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtZXhwKS4iLCJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjY1NTM2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjE6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogUjEgKGZyZWUpIiwiY3JlYXRlZCI6MTczNzM4MTA5NSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBpcyBoZXJlOiBQZXJmb3JtYW5jZSBvbiBwYXIgd2l0aCBbT3BlbkFJIG8xXSgvb3BlbmFpL28xKSwgYnV0IG9wZW4tc291cmNlZCBhbmQgd2l0aCBmdWxseSBvcGVuIHJlYXNvbmluZyB0b2tlbnMuIEl0J3MgNjcxQiBwYXJhbWV0ZXJzIGluIHNpemUsIHdpdGggMzdCIGFjdGl2ZSBpbiBhbiBpbmZlcmVuY2UgcGFzcy5cblxuRnVsbHkgb3Blbi1zb3VyY2UgbW9kZWwgJiBbdGVjaG5pY2FsIHJlcG9ydF0oaHR0cHM6Ly9hcGktZG9jcy5kZWVwc2Vlay5jb20vbmV3cy9uZXdzMjUwMTIwKS5cblxuTUlUIGxpY2Vuc2VkOiBEaXN0aWxsICYgY29tbWVyY2lhbGl6ZSBmcmVlbHkhIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXIxIiwibmFtZSI6IkRlZXBTZWVrOiBSMSIsImNyZWF0ZWQiOjE3MzczODEwOTUsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgaXMgaGVyZTogUGVyZm9ybWFuY2Ugb24gcGFyIHdpdGggW09wZW5BSSBvMV0oL29wZW5haS9vMSksIGJ1dCBvcGVuLXNvdXJjZWQgYW5kIHdpdGggZnVsbHkgb3BlbiByZWFzb25pbmcgdG9rZW5zLiBJdCdzIDY3MUIgcGFyYW1ldGVycyBpbiBzaXplLCB3aXRoIDM3QiBhY3RpdmUgaW4gYW4gaW5mZXJlbmNlIHBhc3MuXG5cbkZ1bGx5IG9wZW4tc291cmNlIG1vZGVsICYgW3RlY2huaWNhbCByZXBvcnRdKGh0dHBzOi8vYXBpLWRvY3MuZGVlcHNlZWsuY29tL25ld3MvbmV3czI1MDEyMCkuXG5cbk1JVCBsaWNlbnNlZDogRGlzdGlsbCAmIGNvbW1lcmNpYWxpemUgZnJlZWx5ISIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNTQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0MCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNvcGhvc3ltcGF0aGVpYS9yb2d1ZS1yb3NlLTEwM2ItdjAuMjpmcmVlIiwibmFtZSI6IlJvZ3VlIFJvc2UgMTAzQiB2MC4yIChmcmVlKSIsImNyZWF0ZWQiOjE3MzcxOTUxODksImRlc2NyaXB0aW9uIjoiUm9ndWUgUm9zZSBkZW1vbnN0cmF0ZXMgc3Ryb25nIGNhcGFiaWxpdGllcyBpbiByb2xlcGxheWluZyBhbmQgc3Rvcnl0ZWxsaW5nIGFwcGxpY2F0aW9ucywgcG90ZW50aWFsbHkgc3VycGFzc2luZyBvdGhlciBtb2RlbHMgaW4gdGhlIDEwMy0xMjBCIHBhcmFtZXRlciByYW5nZS4gV2hpbGUgaXQgb2NjYXNpb25hbGx5IGV4aGliaXRzIGluY29uc2lzdGVuY2llcyB3aXRoIHNjZW5lIGxvZ2ljLCB0aGUgb3ZlcmFsbCBpbnRlcmFjdGlvbiBxdWFsaXR5IHJlcHJlc2VudHMgYW4gYWR2YW5jZW1lbnQgaW4gbmF0dXJhbCBsYW5ndWFnZSBwcm9jZXNzaW5nIGZvciBjcmVhdGl2ZSBhcHBsaWNhdGlvbnMuXG5cbkl0IGlzIGEgMTIwLWxheWVyIGZyYW5rZW5tZXJnZSBtb2RlbCBjb21iaW5pbmcgdHdvIGN1c3RvbSA3MEIgYXJjaGl0ZWN0dXJlcyBmcm9tIE5vdmVtYmVyIDIwMjMsIGRlcml2ZWQgZnJvbSB0aGUgW3h3aW4tc3RlbGxhcmJyaWdodC1lcnAtNzBiLXYyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL3NvcGhvc3ltcGF0aGVpYS94d2luLXN0ZWxsYXJicmlnaHQtZXJwLTcwYi12MikgYmFzZS5cbiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWluaW1heC9taW5pbWF4LTAxIiwibmFtZSI6Ik1pbmlNYXg6IE1pbmlNYXgtMDEiLCJjcmVhdGVkIjoxNzM2OTE1NDYyLCJkZXNjcmlwdGlvbiI6Ik1pbmlNYXgtMDEgaXMgYSBjb21iaW5lcyBNaW5pTWF4LVRleHQtMDEgZm9yIHRleHQgZ2VuZXJhdGlvbiBhbmQgTWluaU1heC1WTC0wMSBmb3IgaW1hZ2UgdW5kZXJzdGFuZGluZy4gSXQgaGFzIDQ1NiBiaWxsaW9uIHBhcmFtZXRlcnMsIHdpdGggNDUuOSBiaWxsaW9uIHBhcmFtZXRlcnMgYWN0aXZhdGVkIHBlciBpbmZlcmVuY2UsIGFuZCBjYW4gaGFuZGxlIGEgY29udGV4dCBvZiB1cCB0byA0IG1pbGxpb24gdG9rZW5zLlxuXG5UaGUgdGV4dCBtb2RlbCBhZG9wdHMgYSBoeWJyaWQgYXJjaGl0ZWN0dXJlIHRoYXQgY29tYmluZXMgTGlnaHRuaW5nIEF0dGVudGlvbiwgU29mdG1heCBBdHRlbnRpb24sIGFuZCBNaXh0dXJlLW9mLUV4cGVydHMgKE1vRSkuIFRoZSBpbWFnZSBtb2RlbCBhZG9wdHMgdGhlIOKAnFZpVC1NTFAtTExN4oCdIGZyYW1ld29yayBhbmQgaXMgdHJhaW5lZCBvbiB0b3Agb2YgdGhlIHRleHQgbW9kZWwuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgcmVsZWFzZSwgc2VlOiBodHRwczovL3d3dy5taW5pbWF4aS5jb20vZW4vbmV3cy9taW5pbWF4LTAxLXNlcmllcy0yIiwiY29udGV4dF9sZW5ndGgiOjEwMDAxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDAwMTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL2NvZGVzdHJhbC0yNTAxIiwibmFtZSI6Ik1pc3RyYWw6IENvZGVzdHJhbCAyNTAxIiwiY3JlYXRlZCI6MTczNjg5NTUyMiwiZGVzY3JpcHRpb24iOiJbTWlzdHJhbF0oL21pc3RyYWxhaSkncyBjdXR0aW5nLWVkZ2UgbGFuZ3VhZ2UgbW9kZWwgZm9yIGNvZGluZy4gQ29kZXN0cmFsIHNwZWNpYWxpemVzIGluIGxvdy1sYXRlbmN5LCBoaWdoLWZyZXF1ZW5jeSB0YXNrcyBzdWNoIGFzIGZpbGwtaW4tdGhlLW1pZGRsZSAoRklNKSwgY29kZSBjb3JyZWN0aW9uIGFuZCB0ZXN0IGdlbmVyYXRpb24uIFxuXG5MZWFybiBtb3JlIG9uIHRoZWlyIGJsb2cgcG9zdDogaHR0cHM6Ly9taXN0cmFsLmFpL25ld3MvY29kZXN0cmFsLTI1MDEvIiwiY29udGV4dF9sZW5ndGgiOjI2MjE0NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktNCIsIm5hbWUiOiJNaWNyb3NvZnQ6IFBoaSA0IiwiY3JlYXRlZCI6MTczNjQ4OTg3MiwiZGVzY3JpcHRpb24iOiJbTWljcm9zb2Z0IFJlc2VhcmNoXSgvbWljcm9zb2Z0KSBQaGktNCBpcyBkZXNpZ25lZCB0byBwZXJmb3JtIHdlbGwgaW4gY29tcGxleCByZWFzb25pbmcgdGFza3MgYW5kIGNhbiBvcGVyYXRlIGVmZmljaWVudGx5IGluIHNpdHVhdGlvbnMgd2l0aCBsaW1pdGVkIG1lbW9yeSBvciB3aGVyZSBxdWljayByZXNwb25zZXMgYXJlIG5lZWRlZC4gXG5cbkF0IDE0IGJpbGxpb24gcGFyYW1ldGVycywgaXQgd2FzIHRyYWluZWQgb24gYSBtaXggb2YgaGlnaC1xdWFsaXR5IHN5bnRoZXRpYyBkYXRhc2V0cywgZGF0YSBmcm9tIGN1cmF0ZWQgd2Vic2l0ZXMsIGFuZCBhY2FkZW1pYyBtYXRlcmlhbHMuIEl0IGhhcyB1bmRlcmdvbmUgY2FyZWZ1bCBpbXByb3ZlbWVudCB0byBmb2xsb3cgaW5zdHJ1Y3Rpb25zIGFjY3VyYXRlbHkgYW5kIG1haW50YWluIHN0cm9uZyBzYWZldHkgc3RhbmRhcmRzLiBJdCB3b3JrcyBiZXN0IHdpdGggRW5nbGlzaCBsYW5ndWFnZSBpbnB1dHMuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIFtQaGktNCBUZWNobmljYWwgUmVwb3J0XShodHRwczovL2FyeGl2Lm9yZy9wZGYvMjQxMi4wODkwNSlcbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2FvMTBrL2wzLjEtNzBiLWhhbmFtaS14MSIsIm5hbWUiOiJTYW8xMEs6IExsYW1hIDMuMSA3MEIgSGFuYW1pIHgxIiwiY3JlYXRlZCI6MTczNjMwMjg1NCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIFtTYW8xMEtdKC9zYW8xMGspJ3MgZXhwZXJpbWVudCBvdmVyIFtFdXJ5YWxlIHYyLjJdKC9zYW8xMGsvbDMuMS1ldXJ5YWxlLTcwYikuIiwiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1jaGF0OmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IERlZXBTZWVrIFYzIChmcmVlKSIsImNyZWF0ZWQiOjE3MzUyNDEzMjAsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWstVjMgaXMgdGhlIGxhdGVzdCBtb2RlbCBmcm9tIHRoZSBEZWVwU2VlayB0ZWFtLCBidWlsZGluZyB1cG9uIHRoZSBpbnN0cnVjdGlvbiBmb2xsb3dpbmcgYW5kIGNvZGluZyBhYmlsaXRpZXMgb2YgdGhlIHByZXZpb3VzIHZlcnNpb25zLiBQcmUtdHJhaW5lZCBvbiBuZWFybHkgMTUgdHJpbGxpb24gdG9rZW5zLCB0aGUgcmVwb3J0ZWQgZXZhbHVhdGlvbnMgcmV2ZWFsIHRoYXQgdGhlIG1vZGVsIG91dHBlcmZvcm1zIG90aGVyIG9wZW4tc291cmNlIG1vZGVscyBhbmQgcml2YWxzIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMuXG5cbkZvciBtb2RlbCBkZXRhaWxzLCBwbGVhc2UgdmlzaXQgW3RoZSBEZWVwU2Vlay1WMyByZXBvXShodHRwczovL2dpdGh1Yi5jb20vZGVlcHNlZWstYWkvRGVlcFNlZWstVjMpIGZvciBtb3JlIGluZm9ybWF0aW9uLCBvciBzZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL2FwaS1kb2NzLmRlZXBzZWVrLmNvbS9uZXdzL25ld3MxMjI2KS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiRGVlcFNlZWsiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstY2hhdCIsIm5hbWUiOiJEZWVwU2VlazogRGVlcFNlZWsgVjMiLCJjcmVhdGVkIjoxNzM1MjQxMzIwLCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrLVYzIGlzIHRoZSBsYXRlc3QgbW9kZWwgZnJvbSB0aGUgRGVlcFNlZWsgdGVhbSwgYnVpbGRpbmcgdXBvbiB0aGUgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nIGFuZCBjb2RpbmcgYWJpbGl0aWVzIG9mIHRoZSBwcmV2aW91cyB2ZXJzaW9ucy4gUHJlLXRyYWluZWQgb24gbmVhcmx5IDE1IHRyaWxsaW9uIHRva2VucywgdGhlIHJlcG9ydGVkIGV2YWx1YXRpb25zIHJldmVhbCB0aGF0IHRoZSBtb2RlbCBvdXRwZXJmb3JtcyBvdGhlciBvcGVuLXNvdXJjZSBtb2RlbHMgYW5kIHJpdmFscyBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzLlxuXG5Gb3IgbW9kZWwgZGV0YWlscywgcGxlYXNlIHZpc2l0IFt0aGUgRGVlcFNlZWstVjMgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL2RlZXBzZWVrLWFpL0RlZXBTZWVrLVYzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiwgb3Igc2VlIHRoZSBbbGF1bmNoIGFubm91bmNlbWVudF0oaHR0cHM6Ly9hcGktZG9jcy5kZWVwc2Vlay5jb20vbmV3cy9uZXdzMTIyNikuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAzOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtdGhpbmtpbmctZXhwLTEyMTk6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3MzQ2NTAwMjYsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuMCBGbGFzaCBUaGlua2luZyBNb2RlIGlzIGFuIGV4cGVyaW1lbnRhbCBtb2RlbCB0aGF0J3MgdHJhaW5lZCB0byBnZW5lcmF0ZSB0aGUgXCJ0aGlua2luZyBwcm9jZXNzXCIgdGhlIG1vZGVsIGdvZXMgdGhyb3VnaCBhcyBwYXJ0IG9mIGl0cyByZXNwb25zZS4gQXMgYSByZXN1bHQsIFRoaW5raW5nIE1vZGUgaXMgY2FwYWJsZSBvZiBzdHJvbmdlciByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGluIGl0cyByZXNwb25zZXMgdGhhbiB0aGUgW2Jhc2UgR2VtaW5pIDIuMCBGbGFzaCBtb2RlbF0oL2dvb2dsZS9nZW1pbmktMi4wLWZsYXNoLWV4cCkuIiwiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMuMy1ldXJ5YWxlLTcwYiIsIm5hbWUiOiJTYW8xMEs6IExsYW1hIDMuMyBFdXJ5YWxlIDcwQiIsImNyZWF0ZWQiOjE3MzQ1MzU5MjgsImRlc2NyaXB0aW9uIjoiRXVyeWFsZSBMMy4zIDcwQiBpcyBhIG1vZGVsIGZvY3VzZWQgb24gY3JlYXRpdmUgcm9sZXBsYXkgZnJvbSBbU2FvMTBrXShodHRwczovL2tvLWZpLmNvbS9zYW8xMGspLiBJdCBpcyB0aGUgc3VjY2Vzc29yIG9mIFtFdXJ5YWxlIEwzIDcwQiB2Mi4yXSgvbW9kZWxzL3NhbzEway9sMy1ldXJ5YWxlLTcwYikuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMSIsIm5hbWUiOiJPcGVuQUk6IG8xIiwiY3JlYXRlZCI6MTczNDQ1OTk5OSwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuIFRoZSBvMSBtb2RlbCBzZXJpZXMgaXMgdHJhaW5lZCB3aXRoIGxhcmdlLXNjYWxlIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgdG8gcmVhc29uIHVzaW5nIGNoYWluIG9mIHRob3VnaHQuIFxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyMTY3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJldmEtdW5pdC0wMS9ldmEtbGxhbWEtMy4zMy03MGIiLCJuYW1lIjoiRVZBIExsYW1hIDMuMzMgNzBCIiwiY3JlYXRlZCI6MTczNDM3NzMwMywiZGVzY3JpcHRpb24iOiJFVkEgTGxhbWEgMy4zMyA3MGIgaXMgYSByb2xlcGxheSBhbmQgc3Rvcnl3cml0aW5nIHNwZWNpYWxpc3QgbW9kZWwuIEl0IGlzIGEgZnVsbC1wYXJhbWV0ZXIgZmluZXR1bmUgb2YgW0xsYW1hLTMuMy03MEItSW5zdHJ1Y3RdKGh0dHBzOi8vb3BlbnJvdXRlci5haS9tZXRhLWxsYW1hL2xsYW1hLTMuMy03MGItaW5zdHJ1Y3QpIG9uIG1peHR1cmUgb2Ygc3ludGhldGljIGFuZCBuYXR1cmFsIGRhdGEuXG5cbkl0IHVzZXMgQ2VsZXN0ZSA3MEIgMC4xIGRhdGEgbWl4dHVyZSwgZ3JlYXRseSBleHBhbmRpbmcgaXQgdG8gaW1wcm92ZSB2ZXJzYXRpbGl0eSwgY3JlYXRpdml0eSBhbmQgXCJmbGF2b3JcIiBvZiB0aGUgcmVzdWx0aW5nIG1vZGVsXG5cblRoaXMgbW9kZWwgd2FzIGJ1aWx0IHdpdGggTGxhbWEgYnkgTWV0YS5cbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6IngtYWkvZ3Jvay0yLXZpc2lvbi0xMjEyIiwibmFtZSI6InhBSTogR3JvayAyIFZpc2lvbiAxMjEyIiwiY3JlYXRlZCI6MTczNDIzNzMzOCwiZGVzY3JpcHRpb24iOiJHcm9rIDIgVmlzaW9uIDEyMTIgYWR2YW5jZXMgaW1hZ2UtYmFzZWQgQUkgd2l0aCBzdHJvbmdlciB2aXN1YWwgY29tcHJlaGVuc2lvbiwgcmVmaW5lZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGFuZCBtdWx0aWxpbmd1YWwgc3VwcG9ydC4gRnJvbSBvYmplY3QgcmVjb2duaXRpb24gdG8gc3R5bGUgYW5hbHlzaXMsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgdG8gYnVpbGQgbW9yZSBpbnR1aXRpdmUsIHZpc3VhbGx5IGF3YXJlIGFwcGxpY2F0aW9ucy4gSXRzIGVuaGFuY2VkIHN0ZWVyYWJpbGl0eSBhbmQgcmVhc29uaW5nIGVzdGFibGlzaCBhIHJvYnVzdCBmb3VuZGF0aW9uIGZvciBuZXh0LWdlbmVyYXRpb24gaW1hZ2Ugc29sdXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhpcyBtb2RlbCwgY2hlY2sgb3V0IFt4QUkncyBhbm5vdW5jZW1lbnRdKGh0dHBzOi8veC5haS9ibG9nL2dyb2stMTIxMikuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoieC1haS9ncm9rLTItMTIxMiIsIm5hbWUiOiJ4QUk6IEdyb2sgMiAxMjEyIiwiY3JlYXRlZCI6MTczNDIzMjgxNCwiZGVzY3JpcHRpb24iOiJHcm9rIDIgMTIxMiBpbnRyb2R1Y2VzIHNpZ25pZmljYW50IGVuaGFuY2VtZW50cyB0byBhY2N1cmFjeSwgaW5zdHJ1Y3Rpb24gYWRoZXJlbmNlLCBhbmQgbXVsdGlsaW5ndWFsIHN1cHBvcnQsIG1ha2luZyBpdCBhIHBvd2VyZnVsIGFuZCBmbGV4aWJsZSBjaG9pY2UgZm9yIGRldmVsb3BlcnMgc2Vla2luZyBhIGhpZ2hseSBzdGVlcmFibGUsIGludGVsbGlnZW50IG1vZGVsLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yN2ItMTItMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUjdCICgxMi0yMDI0KSIsImNyZWF0ZWQiOjE3MzQxNTgxNTIsImRlc2NyaXB0aW9uIjoiQ29tbWFuZCBSN0IgKDEyLTIwMjQpIGlzIGEgc21hbGwsIGZhc3QgdXBkYXRlIG9mIHRoZSBDb21tYW5kIFIrIG1vZGVsLCBkZWxpdmVyZWQgaW4gRGVjZW1iZXIgMjAyNC4gSXQgZXhjZWxzIGF0IFJBRywgdG9vbCB1c2UsIGFnZW50cywgYW5kIHNpbWlsYXIgdGFza3MgcmVxdWlyaW5nIGNvbXBsZXggcmVhc29uaW5nIGFuZCBtdWx0aXBsZSBzdGVwcy5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMzc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtZXhwOmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIEV4cGVyaW1lbnRhbCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMzOTM3NTIzLCJkZXNjcmlwdGlvbiI6IkdlbWluaSBGbGFzaCAyLjAgb2ZmZXJzIGEgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGltZSB0byBmaXJzdCB0b2tlbiAoVFRGVCkgY29tcGFyZWQgdG8gW0dlbWluaSBGbGFzaCAxLjVdKC9nb29nbGUvZ2VtaW5pLWZsYXNoLTEuNSksIHdoaWxlIG1haW50YWluaW5nIHF1YWxpdHkgb24gcGFyIHdpdGggbGFyZ2VyIG1vZGVscyBsaWtlIFtHZW1pbmkgUHJvIDEuNV0oL2dvb2dsZS9nZW1pbmktcHJvLTEuNSkuIEl0IGludHJvZHVjZXMgbm90YWJsZSBlbmhhbmNlbWVudHMgaW4gbXVsdGltb2RhbCB1bmRlcnN0YW5kaW5nLCBjb2RpbmcgY2FwYWJpbGl0aWVzLCBjb21wbGV4IGluc3RydWN0aW9uIGZvbGxvd2luZywgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIFRoZXNlIGFkdmFuY2VtZW50cyBjb21lIHRvZ2V0aGVyIHRvIGRlbGl2ZXIgbW9yZSBzZWFtbGVzcyBhbmQgcm9idXN0IGFnZW50aWMgZXhwZXJpZW5jZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjMtNzBiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4zIDcwQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMzNTA2MTM3LCJkZXNjcmlwdGlvbiI6IlRoZSBNZXRhIExsYW1hIDMuMyBtdWx0aWxpbmd1YWwgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgKExMTSkgaXMgYSBwcmV0cmFpbmVkIGFuZCBpbnN0cnVjdGlvbiB0dW5lZCBnZW5lcmF0aXZlIG1vZGVsIGluIDcwQiAodGV4dCBpbi90ZXh0IG91dCkuIFRoZSBMbGFtYSAzLjMgaW5zdHJ1Y3Rpb24gdHVuZWQgdGV4dCBvbmx5IG1vZGVsIGlzIG9wdGltaXplZCBmb3IgbXVsdGlsaW5ndWFsIGRpYWxvZ3VlIHVzZSBjYXNlcyBhbmQgb3V0cGVyZm9ybXMgbWFueSBvZiB0aGUgYXZhaWxhYmxlIG9wZW4gc291cmNlIGFuZCBjbG9zZWQgY2hhdCBtb2RlbHMgb24gY29tbW9uIGluZHVzdHJ5IGJlbmNobWFya3MuXG5cblN1cHBvcnRlZCBsYW5ndWFnZXM6IEVuZ2xpc2gsIEdlcm1hbiwgRnJlbmNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBIaW5kaSwgU3BhbmlzaCwgYW5kIFRoYWkuXG5cbltNb2RlbCBDYXJkXShodHRwczovL2dpdGh1Yi5jb20vbWV0YS1sbGFtYS9sbGFtYS1tb2RlbHMvYmxvYi9tYWluL21vZGVscy9sbGFtYTNfMy9NT0RFTF9DQVJELm1kKSIsImNvbnRleHRfbGVuZ3RoIjo4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjMtNzBiLWluc3RydWN0IiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMyA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzMzNTA2MTM3LCJkZXNjcmlwdGlvbiI6IlRoZSBNZXRhIExsYW1hIDMuMyBtdWx0aWxpbmd1YWwgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgKExMTSkgaXMgYSBwcmV0cmFpbmVkIGFuZCBpbnN0cnVjdGlvbiB0dW5lZCBnZW5lcmF0aXZlIG1vZGVsIGluIDcwQiAodGV4dCBpbi90ZXh0IG91dCkuIFRoZSBMbGFtYSAzLjMgaW5zdHJ1Y3Rpb24gdHVuZWQgdGV4dCBvbmx5IG1vZGVsIGlzIG9wdGltaXplZCBmb3IgbXVsdGlsaW5ndWFsIGRpYWxvZ3VlIHVzZSBjYXNlcyBhbmQgb3V0cGVyZm9ybXMgbWFueSBvZiB0aGUgYXZhaWxhYmxlIG9wZW4gc291cmNlIGFuZCBjbG9zZWQgY2hhdCBtb2RlbHMgb24gY29tbW9uIGluZHVzdHJ5IGJlbmNobWFya3MuXG5cblN1cHBvcnRlZCBsYW5ndWFnZXM6IEVuZ2xpc2gsIEdlcm1hbiwgRnJlbmNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBIaW5kaSwgU3BhbmlzaCwgYW5kIFRoYWkuXG5cbltNb2RlbCBDYXJkXShodHRwczovL2dpdGh1Yi5jb20vbWV0YS1sbGFtYS9sbGFtYS1tb2RlbHMvYmxvYi9tYWluL21vZGVscy9sbGFtYTNfMy9NT0RFTF9DQVJELm1kKSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbGl0ZS12MSIsIm5hbWUiOiJBbWF6b246IE5vdmEgTGl0ZSAxLjAiLCJjcmVhdGVkIjoxNzMzNDM3MzYzLCJkZXNjcmlwdGlvbiI6IkFtYXpvbiBOb3ZhIExpdGUgMS4wIGlzIGEgdmVyeSBsb3ctY29zdCBtdWx0aW1vZGFsIG1vZGVsIGZyb20gQW1hem9uIHRoYXQgZm9jdXNlZCBvbiBmYXN0IHByb2Nlc3Npbmcgb2YgaW1hZ2UsIHZpZGVvLCBhbmQgdGV4dCBpbnB1dHMgdG8gZ2VuZXJhdGUgdGV4dCBvdXRwdXQuIEFtYXpvbiBOb3ZhIExpdGUgY2FuIGhhbmRsZSByZWFsLXRpbWUgY3VzdG9tZXIgaW50ZXJhY3Rpb25zLCBkb2N1bWVudCBhbmFseXNpcywgYW5kIHZpc3VhbCBxdWVzdGlvbi1hbnN3ZXJpbmcgdGFza3Mgd2l0aCBoaWdoIGFjY3VyYWN5LlxuXG5XaXRoIGFuIGlucHV0IGNvbnRleHQgb2YgMzAwSyB0b2tlbnMsIGl0IGNhbiBhbmFseXplIG11bHRpcGxlIGltYWdlcyBvciB1cCB0byAzMCBtaW51dGVzIG9mIHZpZGVvIGluIGEgc2luZ2xlIGlucHV0LiIsImNvbnRleHRfbGVuZ3RoIjozMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwOSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo1MTIwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbWljcm8tdjEiLCJuYW1lIjoiQW1hem9uOiBOb3ZhIE1pY3JvIDEuMCIsImNyZWF0ZWQiOjE3MzM0MzcyMzcsImRlc2NyaXB0aW9uIjoiQW1hem9uIE5vdmEgTWljcm8gMS4wIGlzIGEgdGV4dC1vbmx5IG1vZGVsIHRoYXQgZGVsaXZlcnMgdGhlIGxvd2VzdCBsYXRlbmN5IHJlc3BvbnNlcyBpbiB0aGUgQW1hem9uIE5vdmEgZmFtaWx5IG9mIG1vZGVscyBhdCBhIHZlcnkgbG93IGNvc3QuIFdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiAxMjhLIHRva2VucyBhbmQgb3B0aW1pemVkIGZvciBzcGVlZCBhbmQgY29zdCwgQW1hem9uIE5vdmEgTWljcm8gZXhjZWxzIGF0IHRhc2tzIHN1Y2ggYXMgdGV4dCBzdW1tYXJpemF0aW9uLCB0cmFuc2xhdGlvbiwgY29udGVudCBjbGFzc2lmaWNhdGlvbiwgaW50ZXJhY3RpdmUgY2hhdCwgYW5kIGJyYWluc3Rvcm1pbmcuIEl0IGhhcyAgc2ltcGxlIG1hdGhlbWF0aWNhbCByZWFzb25pbmcgYW5kIGNvZGluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NTEyMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFtYXpvbi9ub3ZhLXByby12MSIsIm5hbWUiOiJBbWF6b246IE5vdmEgUHJvIDEuMCIsImNyZWF0ZWQiOjE3MzM0MzYzMDMsImRlc2NyaXB0aW9uIjoiQW1hem9uIE5vdmEgUHJvIDEuMCBpcyBhIGNhcGFibGUgbXVsdGltb2RhbCBtb2RlbCBmcm9tIEFtYXpvbiBmb2N1c2VkIG9uIHByb3ZpZGluZyBhIGNvbWJpbmF0aW9uIG9mIGFjY3VyYWN5LCBzcGVlZCwgYW5kIGNvc3QgZm9yIGEgd2lkZSByYW5nZSBvZiB0YXNrcy4gQXMgb2YgRGVjZW1iZXIgMjAyNCwgaXQgYWNoaWV2ZXMgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBvbiBrZXkgYmVuY2htYXJrcyBpbmNsdWRpbmcgdmlzdWFsIHF1ZXN0aW9uIGFuc3dlcmluZyAoVGV4dFZRQSkgYW5kIHZpZGVvIHVuZGVyc3RhbmRpbmcgKFZBVEVYKS5cblxuQW1hem9uIE5vdmEgUHJvIGRlbW9uc3RyYXRlcyBzdHJvbmcgY2FwYWJpbGl0aWVzIGluIHByb2Nlc3NpbmcgYm90aCB2aXN1YWwgYW5kIHRleHR1YWwgaW5mb3JtYXRpb24gYW5kIGF0IGFuYWx5emluZyBmaW5hbmNpYWwgZG9jdW1lbnRzLlxuXG4qKk5PVEUqKjogVmlkZW8gaW5wdXQgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuIiwiY29udGV4dF9sZW5ndGgiOjMwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTm92YSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDEyIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjUxMjAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3cS0zMmItcHJldmlldzpmcmVlIiwibmFtZSI6IlF3ZW46IFF3USAzMkIgUHJldmlldyAoZnJlZSkiLCJjcmVhdGVkIjoxNzMyNzU0NTQxLCJkZXNjcmlwdGlvbiI6IlF3US0zMkItUHJldmlldyBpcyBhbiBleHBlcmltZW50YWwgcmVzZWFyY2ggbW9kZWwgZm9jdXNlZCBvbiBBSSByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGRldmVsb3BlZCBieSB0aGUgUXdlbiBUZWFtLiBBcyBhIHByZXZpZXcgcmVsZWFzZSwgaXQgZGVtb25zdHJhdGVzIHByb21pc2luZyBhbmFseXRpY2FsIGFiaWxpdGllcyB3aGlsZSBoYXZpbmcgc2V2ZXJhbCBpbXBvcnRhbnQgbGltaXRhdGlvbnM6XG5cbjEuICoqTGFuZ3VhZ2UgTWl4aW5nIGFuZCBDb2RlLVN3aXRjaGluZyoqOiBUaGUgbW9kZWwgbWF5IG1peCBsYW5ndWFnZXMgb3Igc3dpdGNoIGJldHdlZW4gdGhlbSB1bmV4cGVjdGVkbHksIGFmZmVjdGluZyByZXNwb25zZSBjbGFyaXR5LlxuMi4gKipSZWN1cnNpdmUgUmVhc29uaW5nIExvb3BzKio6IFRoZSBtb2RlbCBtYXkgZW50ZXIgY2lyY3VsYXIgcmVhc29uaW5nIHBhdHRlcm5zLCBsZWFkaW5nIHRvIGxlbmd0aHkgcmVzcG9uc2VzIHdpdGhvdXQgYSBjb25jbHVzaXZlIGFuc3dlci5cbjMuICoqU2FmZXR5IGFuZCBFdGhpY2FsIENvbnNpZGVyYXRpb25zKio6IFRoZSBtb2RlbCByZXF1aXJlcyBlbmhhbmNlZCBzYWZldHkgbWVhc3VyZXMgdG8gZW5zdXJlIHJlbGlhYmxlIGFuZCBzZWN1cmUgcGVyZm9ybWFuY2UsIGFuZCB1c2VycyBzaG91bGQgZXhlcmNpc2UgY2F1dGlvbiB3aGVuIGRlcGxveWluZyBpdC5cbjQuICoqUGVyZm9ybWFuY2UgYW5kIEJlbmNobWFyayBMaW1pdGF0aW9ucyoqOiBUaGUgbW9kZWwgZXhjZWxzIGluIG1hdGggYW5kIGNvZGluZyBidXQgaGFzIHJvb20gZm9yIGltcHJvdmVtZW50IGluIG90aGVyIGFyZWFzLCBzdWNoIGFzIGNvbW1vbiBzZW5zZSByZWFzb25pbmcgYW5kIG51YW5jZWQgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZy5cblxuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdxLTMyYi1wcmV2aWV3IiwibmFtZSI6IlF3ZW46IFF3USAzMkIgUHJldmlldyIsImNyZWF0ZWQiOjE3MzI3NTQ1NDEsImRlc2NyaXB0aW9uIjoiUXdRLTMyQi1QcmV2aWV3IGlzIGFuIGV4cGVyaW1lbnRhbCByZXNlYXJjaCBtb2RlbCBmb2N1c2VkIG9uIEFJIHJlYXNvbmluZyBjYXBhYmlsaXRpZXMgZGV2ZWxvcGVkIGJ5IHRoZSBRd2VuIFRlYW0uIEFzIGEgcHJldmlldyByZWxlYXNlLCBpdCBkZW1vbnN0cmF0ZXMgcHJvbWlzaW5nIGFuYWx5dGljYWwgYWJpbGl0aWVzIHdoaWxlIGhhdmluZyBzZXZlcmFsIGltcG9ydGFudCBsaW1pdGF0aW9uczpcblxuMS4gKipMYW5ndWFnZSBNaXhpbmcgYW5kIENvZGUtU3dpdGNoaW5nKio6IFRoZSBtb2RlbCBtYXkgbWl4IGxhbmd1YWdlcyBvciBzd2l0Y2ggYmV0d2VlbiB0aGVtIHVuZXhwZWN0ZWRseSwgYWZmZWN0aW5nIHJlc3BvbnNlIGNsYXJpdHkuXG4yLiAqKlJlY3Vyc2l2ZSBSZWFzb25pbmcgTG9vcHMqKjogVGhlIG1vZGVsIG1heSBlbnRlciBjaXJjdWxhciByZWFzb25pbmcgcGF0dGVybnMsIGxlYWRpbmcgdG8gbGVuZ3RoeSByZXNwb25zZXMgd2l0aG91dCBhIGNvbmNsdXNpdmUgYW5zd2VyLlxuMy4gKipTYWZldHkgYW5kIEV0aGljYWwgQ29uc2lkZXJhdGlvbnMqKjogVGhlIG1vZGVsIHJlcXVpcmVzIGVuaGFuY2VkIHNhZmV0eSBtZWFzdXJlcyB0byBlbnN1cmUgcmVsaWFibGUgYW5kIHNlY3VyZSBwZXJmb3JtYW5jZSwgYW5kIHVzZXJzIHNob3VsZCBleGVyY2lzZSBjYXV0aW9uIHdoZW4gZGVwbG95aW5nIGl0LlxuNC4gKipQZXJmb3JtYW5jZSBhbmQgQmVuY2htYXJrIExpbWl0YXRpb25zKio6IFRoZSBtb2RlbCBleGNlbHMgaW4gbWF0aCBhbmQgY29kaW5nIGJ1dCBoYXMgcm9vbSBmb3IgaW1wcm92ZW1lbnQgaW4gb3RoZXIgYXJlYXMsIHN1Y2ggYXMgY29tbW9uIHNlbnNlIHJlYXNvbmluZyBhbmQgbnVhbmNlZCBsYW5ndWFnZSB1bmRlcnN0YW5kaW5nLlxuXG4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9sZWFybmxtLTEuNS1wcm8tZXhwZXJpbWVudGFsOmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBMZWFybkxNIDEuNSBQcm8gRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3MzIyMTY1NTEsImRlc2NyaXB0aW9uIjoiQW4gZXhwZXJpbWVudGFsIHZlcnNpb24gb2YgW0dlbWluaSAxLjUgUHJvXSgvZ29vZ2xlL2dlbWluaS1wcm8tMS41KSBmcm9tIEdvb2dsZS4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NjAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NjAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImV2YS11bml0LTAxL2V2YS1xd2VuLTIuNS03MmIiLCJuYW1lIjoiRVZBIFF3ZW4yLjUgNzJCIiwiY3JlYXRlZCI6MTczMjIxMDYwNiwiZGVzY3JpcHRpb24iOiJFVkEgUXdlbjIuNSA3MkIgaXMgYSByb2xlcGxheSBhbmQgc3Rvcnl3cml0aW5nIHNwZWNpYWxpc3QgbW9kZWwuIEl0J3MgYSBmdWxsLXBhcmFtZXRlciBmaW5ldHVuZSBvZiBRd2VuMi41LTcyQiBvbiBtaXh0dXJlIG9mIHN5bnRoZXRpYyBhbmQgbmF0dXJhbCBkYXRhLlxuXG5JdCB1c2VzIENlbGVzdGUgNzBCIDAuMSBkYXRhIG1peHR1cmUsIGdyZWF0bHkgZXhwYW5kaW5nIGl0IHRvIGltcHJvdmUgdmVyc2F0aWxpdHksIGNyZWF0aXZpdHkgYW5kIFwiZmxhdm9yXCIgb2YgdGhlIHJlc3VsdGluZyBtb2RlbC4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by0yMDI0LTExLTIwIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvICgyMDI0LTExLTIwKSIsImNyZWF0ZWQiOjE3MzIxMjc1OTQsImRlc2NyaXB0aW9uIjoiVGhlIDIwMjQtMTEtMjAgdmVyc2lvbiBvZiBHUFQtNG8gb2ZmZXJzIGEgbGV2ZWxlZC11cCBjcmVhdGl2ZSB3cml0aW5nIGFiaWxpdHkgd2l0aCBtb3JlIG5hdHVyYWwsIGVuZ2FnaW5nLCBhbmQgdGFpbG9yZWQgd3JpdGluZyB0byBpbXByb3ZlIHJlbGV2YW5jZSAmIHJlYWRhYmlsaXR5LiBJdOKAmXMgYWxzbyBiZXR0ZXIgYXQgd29ya2luZyB3aXRoIHVwbG9hZGVkIGZpbGVzLCBwcm92aWRpbmcgZGVlcGVyIGluc2lnaHRzICYgbW9yZSB0aG9yb3VnaCByZXNwb25zZXMuXG5cbkdQVC00byAoXCJvXCIgZm9yIFwib21uaVwiKSBpcyBPcGVuQUkncyBsYXRlc3QgQUkgbW9kZWwsIHN1cHBvcnRpbmcgYm90aCB0ZXh0IGFuZCBpbWFnZSBpbnB1dHMgd2l0aCB0ZXh0IG91dHB1dHMuIEl0IG1haW50YWlucyB0aGUgaW50ZWxsaWdlbmNlIGxldmVsIG9mIFtHUFQtNCBUdXJib10oL21vZGVscy9vcGVuYWkvZ3B0LTQtdHVyYm8pIHdoaWxlIGJlaW5nIHR3aWNlIGFzIGZhc3QgYW5kIDUwJSBtb3JlIGNvc3QtZWZmZWN0aXZlLiBHUFQtNG8gYWxzbyBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gcHJvY2Vzc2luZyBub24tRW5nbGlzaCBsYW5ndWFnZXMgYW5kIGVuaGFuY2VkIHZpc3VhbCBjYXBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDM2MTMiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDEyNSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UtMjQxMSIsIm5hbWUiOiJNaXN0cmFsIExhcmdlIDI0MTEiLCJjcmVhdGVkIjoxNzMxOTc4Njg1LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgTGFyZ2UgMiAyNDExIGlzIGFuIHVwZGF0ZSBvZiBbTWlzdHJhbCBMYXJnZSAyXSgvbWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UpIHJlbGVhc2VkIHRvZ2V0aGVyIHdpdGggW1BpeHRyYWwgTGFyZ2UgMjQxMV0oL21pc3RyYWxhaS9waXh0cmFsLWxhcmdlLTI0MTEpXG5cbkl0IHByb3ZpZGVzIGEgc2lnbmlmaWNhbnQgdXBncmFkZSBvbiB0aGUgcHJldmlvdXMgW01pc3RyYWwgTGFyZ2UgMjQuMDddKC9taXN0cmFsYWkvbWlzdHJhbC1sYXJnZS0yNDA3KSwgd2l0aCBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBsb25nIGNvbnRleHQgdW5kZXJzdGFuZGluZywgYSBuZXcgc3lzdGVtIHByb21wdCwgYW5kIG1vcmUgYWNjdXJhdGUgZnVuY3Rpb24gY2FsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLWxhcmdlLTI0MDciLCJuYW1lIjoiTWlzdHJhbCBMYXJnZSAyNDA3IiwiY3JlYXRlZCI6MTczMTk3ODQxNSwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBmbGFnc2hpcCBtb2RlbCwgTWlzdHJhbCBMYXJnZSAyICh2ZXJzaW9uIG1pc3RyYWwtbGFyZ2UtMjQwNykuIEl0J3MgYSBwcm9wcmlldGFyeSB3ZWlnaHRzLWF2YWlsYWJsZSBtb2RlbCBhbmQgZXhjZWxzIGF0IHJlYXNvbmluZywgY29kZSwgSlNPTiwgY2hhdCwgYW5kIG1vcmUuIFJlYWQgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgW2hlcmVdKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21pc3RyYWwtbGFyZ2UtMjQwNy8pLlxuXG5JdCBzdXBwb3J0cyBkb3plbnMgb2YgbGFuZ3VhZ2VzIGluY2x1ZGluZyBGcmVuY2gsIEdlcm1hbiwgU3BhbmlzaCwgSXRhbGlhbiwgUG9ydHVndWVzZSwgQXJhYmljLCBIaW5kaSwgUnVzc2lhbiwgQ2hpbmVzZSwgSmFwYW5lc2UsIGFuZCBLb3JlYW4sIGFsb25nIHdpdGggODArIGNvZGluZyBsYW5ndWFnZXMgaW5jbHVkaW5nIFB5dGhvbiwgSmF2YSwgQywgQysrLCBKYXZhU2NyaXB0LCBhbmQgQmFzaC4gSXRzIGxvbmcgY29udGV4dCB3aW5kb3cgYWxsb3dzIHByZWNpc2UgaW5mb3JtYXRpb24gcmVjYWxsIGZyb20gbGFyZ2UgZG9jdW1lbnRzLlxuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvcGl4dHJhbC1sYXJnZS0yNDExIiwibmFtZSI6Ik1pc3RyYWw6IFBpeHRyYWwgTGFyZ2UgMjQxMSIsImNyZWF0ZWQiOjE3MzE5NzczODgsImRlc2NyaXB0aW9uIjoiUGl4dHJhbCBMYXJnZSBpcyBhIDEyNEIgcGFyYW1ldGVyLCBvcGVuLXdlaWdodCwgbXVsdGltb2RhbCBtb2RlbCBidWlsdCBvbiB0b3Agb2YgW01pc3RyYWwgTGFyZ2UgMl0oL21pc3RyYWxhaS9taXN0cmFsLWxhcmdlLTI0MTEpLiBUaGUgbW9kZWwgaXMgYWJsZSB0byB1bmRlcnN0YW5kIGRvY3VtZW50cywgY2hhcnRzIGFuZCBuYXR1cmFsIGltYWdlcy5cblxuVGhlIG1vZGVsIGlzIGF2YWlsYWJsZSB1bmRlciB0aGUgTWlzdHJhbCBSZXNlYXJjaCBMaWNlbnNlIChNUkwpIGZvciByZXNlYXJjaCBhbmQgZWR1Y2F0aW9uYWwgdXNlLCBhbmQgdGhlIE1pc3RyYWwgQ29tbWVyY2lhbCBMaWNlbnNlIGZvciBleHBlcmltZW50YXRpb24sIHRlc3RpbmcsIGFuZCBwcm9kdWN0aW9uIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzLlxuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDI4ODgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6IngtYWkvZ3Jvay12aXNpb24tYmV0YSIsIm5hbWUiOiJ4QUk6IEdyb2sgVmlzaW9uIEJldGEiLCJjcmVhdGVkIjoxNzMxOTc2NjI0LCJkZXNjcmlwdGlvbiI6Ikdyb2sgVmlzaW9uIEJldGEgaXMgeEFJJ3MgZXhwZXJpbWVudGFsIGxhbmd1YWdlIG1vZGVsIHdpdGggdmlzaW9uIGNhcGFiaWxpdHkuXG5cbiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDkiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJpbmZlcm1hdGljL21uLWluZmVyb3ItMTJiIiwibmFtZSI6IkluZmVybWF0aWM6IE1pc3RyYWwgTmVtbyBJbmZlcm9yIDEyQiIsImNyZWF0ZWQiOjE3MzE0NjQ0MjgsImRlc2NyaXB0aW9uIjoiSW5mZXJvciAxMkIgaXMgYSBtZXJnZSBvZiB0b3Agcm9sZXBsYXkgbW9kZWxzLCBleHBlcnQgb24gaW1tZXJzaXZlIG5hcnJhdGl2ZXMgYW5kIHN0b3J5dGVsbGluZy5cblxuVGhpcyBtb2RlbCB3YXMgbWVyZ2VkIHVzaW5nIHRoZSBbTW9kZWwgU3RvY2tdKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yNDAzLjE5NTIyKSBtZXJnZSBtZXRob2QgdXNpbmcgW2FudGhyYWNpdGUtb3JnL21hZ251bS12NC0xMmJdKGh0dHBzOi8vb3BlbnJvdXRlci5haS9hbnRocmFjaXRlLW9yZy9tYWdudW0tdjQtNzJiKSBhcyBhIGJhc2UuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS1jb2Rlci0zMmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IENvZGVyIDMyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMxMzY4NDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtQ29kZXIgaXMgdGhlIGxhdGVzdCBzZXJpZXMgb2YgQ29kZS1TcGVjaWZpYyBRd2VuIGxhcmdlIGxhbmd1YWdlIG1vZGVscyAoZm9ybWVybHkga25vd24gYXMgQ29kZVF3ZW4pLiBRd2VuMi41LUNvZGVyIGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIENvZGVRd2VuMS41OlxuXG4tIFNpZ25pZmljYW50bHkgaW1wcm92ZW1lbnRzIGluICoqY29kZSBnZW5lcmF0aW9uKiosICoqY29kZSByZWFzb25pbmcqKiBhbmQgKipjb2RlIGZpeGluZyoqLiBcbi0gQSBtb3JlIGNvbXByZWhlbnNpdmUgZm91bmRhdGlvbiBmb3IgcmVhbC13b3JsZCBhcHBsaWNhdGlvbnMgc3VjaCBhcyAqKkNvZGUgQWdlbnRzKiouIE5vdCBvbmx5IGVuaGFuY2luZyBjb2RpbmcgY2FwYWJpbGl0aWVzIGJ1dCBhbHNvIG1haW50YWluaW5nIGl0cyBzdHJlbmd0aHMgaW4gbWF0aGVtYXRpY3MgYW5kIGdlbmVyYWwgY29tcGV0ZW5jaWVzLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgaXRzIGV2YWx1YXRpb24gcmVzdWx0cywgY2hlY2sgb3V0IFtRd2VuIDIuNSBDb2RlcidzIGJsb2ddKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLjUtY29kZXItZmFtaWx5LykuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tMi41LWNvZGVyLTMyYi1pbnN0cnVjdCIsIm5hbWUiOiJRd2VuMi41IENvZGVyIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MzEzNjg0MDAsImRlc2NyaXB0aW9uIjoiUXdlbjIuNS1Db2RlciBpcyB0aGUgbGF0ZXN0IHNlcmllcyBvZiBDb2RlLVNwZWNpZmljIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzIChmb3JtZXJseSBrbm93biBhcyBDb2RlUXdlbikuIFF3ZW4yLjUtQ29kZXIgYnJpbmdzIHRoZSBmb2xsb3dpbmcgaW1wcm92ZW1lbnRzIHVwb24gQ29kZVF3ZW4xLjU6XG5cbi0gU2lnbmlmaWNhbnRseSBpbXByb3ZlbWVudHMgaW4gKipjb2RlIGdlbmVyYXRpb24qKiwgKipjb2RlIHJlYXNvbmluZyoqIGFuZCAqKmNvZGUgZml4aW5nKiouIFxuLSBBIG1vcmUgY29tcHJlaGVuc2l2ZSBmb3VuZGF0aW9uIGZvciByZWFsLXdvcmxkIGFwcGxpY2F0aW9ucyBzdWNoIGFzICoqQ29kZSBBZ2VudHMqKi4gTm90IG9ubHkgZW5oYW5jaW5nIGNvZGluZyBjYXBhYmlsaXRpZXMgYnV0IGFsc28gbWFpbnRhaW5pbmcgaXRzIHN0cmVuZ3RocyBpbiBtYXRoZW1hdGljcyBhbmQgZ2VuZXJhbCBjb21wZXRlbmNpZXMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCBpdHMgZXZhbHVhdGlvbiByZXN1bHRzLCBjaGVjayBvdXQgW1F3ZW4gMi41IENvZGVyJ3MgYmxvZ10oaHR0cHM6Ly9xd2VubG0uZ2l0aHViLmlvL2Jsb2cvcXdlbjIuNS1jb2Rlci1mYW1pbHkvKS4iLCJjb250ZXh0X2xlbmd0aCI6MzMwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzMwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InJhaWZsZS9zb3JjZXJlcmxtLTh4MjJiIiwibmFtZSI6IlNvcmNlcmVyTE0gOHgyMkIiLCJjcmVhdGVkIjoxNzMxMTA1MDgzLCJkZXNjcmlwdGlvbiI6IlNvcmNlcmVyTE0gaXMgYW4gYWR2YW5jZWQgUlAgYW5kIHN0b3J5dGVsbGluZyBtb2RlbCwgYnVpbHQgYXMgYSBMb3ctcmFuayAxNi1iaXQgTG9SQSBmaW5lLXR1bmVkIG9uIFtXaXphcmRMTS0yIDh4MjJCXSgvbWljcm9zb2Z0L3dpemFyZGxtLTItOHgyMmIpLlxuXG4tIEFkdmFuY2VkIHJlYXNvbmluZyBhbmQgZW1vdGlvbmFsIGludGVsbGlnZW5jZSBmb3IgZW5nYWdpbmcgYW5kIGltbWVyc2l2ZSBpbnRlcmFjdGlvbnNcbi0gVml2aWQgd3JpdGluZyBjYXBhYmlsaXRpZXMgZW5yaWNoZWQgd2l0aCBzcGF0aWFsIGFuZCBjb250ZXh0dWFsIGF3YXJlbmVzc1xuLSBFbmhhbmNlZCBuYXJyYXRpdmUgZGVwdGgsIHByb21vdGluZyBjcmVhdGl2ZSBhbmQgZHluYW1pYyBzdG9yeXRlbGxpbmciLCJjb250ZXh0X2xlbmd0aCI6MTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA0NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJldmEtdW5pdC0wMS9ldmEtcXdlbi0yLjUtMzJiIiwibmFtZSI6IkVWQSBRd2VuMi41IDMyQiIsImNyZWF0ZWQiOjE3MzExMDQ4NDcsImRlc2NyaXB0aW9uIjoiRVZBIFF3ZW4yLjUgMzJCIGlzIGEgcm9sZXBsYXlpbmcvc3Rvcnl3cml0aW5nIHNwZWNpYWxpc3QgbW9kZWwuIEl0J3MgYSBmdWxsLXBhcmFtZXRlciBmaW5ldHVuZSBvZiBRd2VuMi41LTMyQiBvbiBtaXh0dXJlIG9mIHN5bnRoZXRpYyBhbmQgbmF0dXJhbCBkYXRhLlxuXG5JdCB1c2VzIENlbGVzdGUgNzBCIDAuMSBkYXRhIG1peHR1cmUsIGdyZWF0bHkgZXhwYW5kaW5nIGl0IHRvIGltcHJvdmUgdmVyc2F0aWxpdHksIGNyZWF0aXZpdHkgYW5kIFwiZmxhdm9yXCIgb2YgdGhlIHJlc3VsdGluZyBtb2RlbC4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0aGVkcnVtbWVyL3Vuc2xvcG5lbW8tMTJiIiwibmFtZSI6IlVuc2xvcG5lbW8gMTJCIiwiY3JlYXRlZCI6MTczMTEwMzQ0OCwiZGVzY3JpcHRpb24iOiJVbnNsb3BOZW1vIHY0LjEgaXMgdGhlIGxhdGVzdCBhZGRpdGlvbiBmcm9tIHRoZSBjcmVhdG9yIG9mIFJvY2luYW50ZSwgZGVzaWduZWQgZm9yIGFkdmVudHVyZSB3cml0aW5nIGFuZCByb2xlLXBsYXkgc2NlbmFyaW9zLiIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdTpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBIYWlrdSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIG9mZmVycyBlbmhhbmNlZCBjYXBhYmlsaXRpZXMgaW4gc3BlZWQsIGNvZGluZyBhY2N1cmFjeSwgYW5kIHRvb2wgdXNlLiBFbmdpbmVlcmVkIHRvIGV4Y2VsIGluIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMsIGl0IGRlbGl2ZXJzIHF1aWNrIHJlc3BvbnNlIHRpbWVzIHRoYXQgYXJlIGVzc2VudGlhbCBmb3IgZHluYW1pYyB0YXNrcyBzdWNoIGFzIGNoYXQgaW50ZXJhY3Rpb25zIGFuZCBpbW1lZGlhdGUgY29kaW5nIHN1Z2dlc3Rpb25zLlxuXG5UaGlzIG1ha2VzIGl0IGhpZ2hseSBzdWl0YWJsZSBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZGVtYW5kIGJvdGggc3BlZWQgYW5kIHByZWNpc2lvbiwgc3VjaCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCwgY3VzdG9tZXIgc2VydmljZSBib3RzLCBhbmQgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbXMuXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvaW50aW5nIHRvIFtDbGF1ZGUgMy41IEhhaWt1ICgyMDI0LTEwLTIyKV0oL2FudGhyb3BpYy9jbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyKS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA4IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy41IEhhaWt1IiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIG9mZmVycyBlbmhhbmNlZCBjYXBhYmlsaXRpZXMgaW4gc3BlZWQsIGNvZGluZyBhY2N1cmFjeSwgYW5kIHRvb2wgdXNlLiBFbmdpbmVlcmVkIHRvIGV4Y2VsIGluIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMsIGl0IGRlbGl2ZXJzIHF1aWNrIHJlc3BvbnNlIHRpbWVzIHRoYXQgYXJlIGVzc2VudGlhbCBmb3IgZHluYW1pYyB0YXNrcyBzdWNoIGFzIGNoYXQgaW50ZXJhY3Rpb25zIGFuZCBpbW1lZGlhdGUgY29kaW5nIHN1Z2dlc3Rpb25zLlxuXG5UaGlzIG1ha2VzIGl0IGhpZ2hseSBzdWl0YWJsZSBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZGVtYW5kIGJvdGggc3BlZWQgYW5kIHByZWNpc2lvbiwgc3VjaCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCwgY3VzdG9tZXIgc2VydmljZSBib3RzLCBhbmQgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbXMuXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvaW50aW5nIHRvIFtDbGF1ZGUgMy41IEhhaWt1ICgyMDI0LTEwLTIyKV0oL2FudGhyb3BpYy9jbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyKS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA4IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdS0yMDI0MTAyMjpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBIYWlrdSAoMjAyNC0xMC0yMikgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MzA2Nzg0MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNSBIYWlrdSBmZWF0dXJlcyBlbmhhbmNlbWVudHMgYWNyb3NzIGFsbCBza2lsbCBzZXRzIGluY2x1ZGluZyBjb2RpbmcsIHRvb2wgdXNlLCBhbmQgcmVhc29uaW5nLiBBcyB0aGUgZmFzdGVzdCBtb2RlbCBpbiB0aGUgQW50aHJvcGljIGxpbmV1cCwgaXQgb2ZmZXJzIHJhcGlkIHJlc3BvbnNlIHRpbWVzIHN1aXRhYmxlIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGhpZ2ggaW50ZXJhY3Rpdml0eSBhbmQgbG93IGxhdGVuY3ksIHN1Y2ggYXMgdXNlci1mYWNpbmcgY2hhdGJvdHMgYW5kIG9uLXRoZS1mbHkgY29kZSBjb21wbGV0aW9ucy4gSXQgYWxzbyBleGNlbHMgaW4gc3BlY2lhbGl6ZWQgdGFza3MgbGlrZSBkYXRhIGV4dHJhY3Rpb24gYW5kIHJlYWwtdGltZSBjb250ZW50IG1vZGVyYXRpb24sIG1ha2luZyBpdCBhIHZlcnNhdGlsZSB0b29sIGZvciBhIGJyb2FkIHJhbmdlIG9mIGluZHVzdHJpZXMuXG5cbkl0IGRvZXMgbm90IHN1cHBvcnQgaW1hZ2UgaW5wdXRzLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvMy01LW1vZGVscy1hbmQtY29tcHV0ZXItdXNlKSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDgiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAxIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdS0yMDI0MTAyMiIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgSGFpa3UgKDIwMjQtMTAtMjIpIiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIGVuaGFuY2VtZW50cyBhY3Jvc3MgYWxsIHNraWxsIHNldHMgaW5jbHVkaW5nIGNvZGluZywgdG9vbCB1c2UsIGFuZCByZWFzb25pbmcuIEFzIHRoZSBmYXN0ZXN0IG1vZGVsIGluIHRoZSBBbnRocm9waWMgbGluZXVwLCBpdCBvZmZlcnMgcmFwaWQgcmVzcG9uc2UgdGltZXMgc3VpdGFibGUgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IHJlcXVpcmUgaGlnaCBpbnRlcmFjdGl2aXR5IGFuZCBsb3cgbGF0ZW5jeSwgc3VjaCBhcyB1c2VyLWZhY2luZyBjaGF0Ym90cyBhbmQgb24tdGhlLWZseSBjb2RlIGNvbXBsZXRpb25zLiBJdCBhbHNvIGV4Y2VscyBpbiBzcGVjaWFsaXplZCB0YXNrcyBsaWtlIGRhdGEgZXh0cmFjdGlvbiBhbmQgcmVhbC10aW1lIGNvbnRlbnQgbW9kZXJhdGlvbiwgbWFraW5nIGl0IGEgdmVyc2F0aWxlIHRvb2wgZm9yIGEgYnJvYWQgcmFuZ2Ugb2YgaW5kdXN0cmllcy5cblxuSXQgZG9lcyBub3Qgc3VwcG9ydCBpbWFnZSBpbnB1dHMuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy8zLTUtbW9kZWxzLWFuZC1jb21wdXRlci11c2UpIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwOCIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDEifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLjEtbHVtaW1haWQtNzBiIiwibmFtZSI6Ik5ldmVyU2xlZXA6IEx1bWltYWlkIHYwLjIgNzBCIiwiY3JlYXRlZCI6MTcyOTU1NTIwMCwiZGVzY3JpcHRpb24iOiJMdW1pbWFpZCB2MC4yIDcwQiBpcyBhIGZpbmV0dW5lIG9mIFtMbGFtYSAzLjEgNzBCXSgvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSB3aXRoIGEgXCJIVUdFIHN0ZXAgdXAgZGF0YXNldCB3aXNlXCIgY29tcGFyZWQgdG8gTHVtaW1haWQgdjAuMS4gU2xvcHB5IGNoYXRzIG91dHB1dCB3ZXJlIHB1cmdlZC5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMjI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJhY2l0ZS1vcmcvbWFnbnVtLXY0LTcyYiIsIm5hbWUiOiJNYWdudW0gdjQgNzJCIiwiY3JlYXRlZCI6MTcyOTU1NTIwMCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIGEgc2VyaWVzIG9mIG1vZGVscyBkZXNpZ25lZCB0byByZXBsaWNhdGUgdGhlIHByb3NlIHF1YWxpdHkgb2YgdGhlIENsYXVkZSAzIG1vZGVscywgc3BlY2lmaWNhbGx5IFNvbm5ldChodHRwczovL29wZW5yb3V0ZXIuYWkvYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0KSBhbmQgT3B1cyhodHRwczovL29wZW5yb3V0ZXIuYWkvYW50aHJvcGljL2NsYXVkZS0zLW9wdXMpLlxuXG5UaGUgbW9kZWwgaXMgZmluZS10dW5lZCBvbiB0b3Agb2YgW1F3ZW4yLjUgNzJCXShodHRwczovL29wZW5yb3V0ZXIuYWkvcXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3QpLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAyMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMjQsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQ6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgU29ubmV0IChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzI5NTU1MjAwLCJkZXNjcmlwdGlvbiI6Ik5ldyBDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogU2NvcmVzIH40OSUgb24gU1dFLUJlbmNoIFZlcmlmaWVkLCBoaWdoZXIgdGhhbiB0aGUgbGFzdCBiZXN0IHNjb3JlLCBhbmQgd2l0aG91dCBhbnkgZmFuY3kgcHJvbXB0IHNjYWZmb2xkaW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQiLCJjcmVhdGVkIjoxNzI5NTU1MjAwLCJkZXNjcmlwdGlvbiI6Ik5ldyBDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogU2NvcmVzIH40OSUgb24gU1dFLUJlbmNoIFZlcmlmaWVkLCBoaWdoZXIgdGhhbiB0aGUgbGFzdCBiZXN0IHNjb3JlLCBhbmQgd2l0aG91dCBhbnkgZmFuY3kgcHJvbXB0IHNjYWZmb2xkaW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ4LWFpL2dyb2stYmV0YSIsIm5hbWUiOiJ4QUk6IEdyb2sgQmV0YSIsImNyZWF0ZWQiOjE3MjkzODI0MDAsImRlc2NyaXB0aW9uIjoiR3JvayBCZXRhIGlzIHhBSSdzIGV4cGVyaW1lbnRhbCBsYW5ndWFnZSBtb2RlbCB3aXRoIHN0YXRlLW9mLXRoZS1hcnQgcmVhc29uaW5nIGNhcGFiaWxpdGllcywgYmVzdCBmb3IgY29tcGxleCBhbmQgbXVsdGktc3RlcCB1c2UgY2FzZXMuXG5cbkl0IGlzIHRoZSBzdWNjZXNzb3Igb2YgW0dyb2sgMl0oaHR0cHM6Ly94LmFpL2Jsb2cvZ3Jvay0yKSB3aXRoIGVuaGFuY2VkIGNvbnRleHQgbGVuZ3RoLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pbmlzdHJhbC04YiIsIm5hbWUiOiJNaXN0cmFsOiBNaW5pc3RyYWwgOEIiLCJjcmVhdGVkIjoxNzI5MTIzMjAwLCJkZXNjcmlwdGlvbiI6Ik1pbmlzdHJhbCA4QiBpcyBhbiA4QiBwYXJhbWV0ZXIgbW9kZWwgZmVhdHVyaW5nIGEgdW5pcXVlIGludGVybGVhdmVkIHNsaWRpbmctd2luZG93IGF0dGVudGlvbiBwYXR0ZXJuIGZvciBmYXN0ZXIsIG1lbW9yeS1lZmZpY2llbnQgaW5mZXJlbmNlLiBEZXNpZ25lZCBmb3IgZWRnZSB1c2UgY2FzZXMsIGl0IHN1cHBvcnRzIHVwIHRvIDEyOGsgY29udGV4dCBsZW5ndGggYW5kIGV4Y2VscyBpbiBrbm93bGVkZ2UgYW5kIHJlYXNvbmluZyB0YXNrcy4gSXQgb3V0cGVyZm9ybXMgcGVlcnMgaW4gdGhlIHN1Yi0xMEIgY2F0ZWdvcnksIG1ha2luZyBpdCBwZXJmZWN0IGZvciBsb3ctbGF0ZW5jeSwgcHJpdmFjeS1maXJzdCBhcHBsaWNhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taW5pc3RyYWwtM2IiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDNCIiwiY3JlYXRlZCI6MTcyOTEyMzIwMCwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgM0IgaXMgYSAzQiBwYXJhbWV0ZXIgbW9kZWwgb3B0aW1pemVkIGZvciBvbi1kZXZpY2UgYW5kIGVkZ2UgY29tcHV0aW5nLiBJdCBleGNlbHMgaW4ga25vd2xlZGdlLCBjb21tb25zZW5zZSByZWFzb25pbmcsIGFuZCBmdW5jdGlvbi1jYWxsaW5nLCBvdXRwZXJmb3JtaW5nIGxhcmdlciBtb2RlbHMgbGlrZSBNaXN0cmFsIDdCIG9uIG1vc3QgYmVuY2htYXJrcy4gU3VwcG9ydGluZyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoLCBpdOKAmXMgaWRlYWwgZm9yIG9yY2hlc3RyYXRpbmcgYWdlbnRpYyB3b3JrZmxvd3MgYW5kIHNwZWNpYWxpc3QgdGFza3Mgd2l0aCBlZmZpY2llbnQgaW5mZXJlbmNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi0yLjUtN2ItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IDdCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3MjkwMzY4MDAsImRlc2NyaXB0aW9uIjoiUXdlbjIuNSA3QiBpcyB0aGUgbGF0ZXN0IHNlcmllcyBvZiBRd2VuIGxhcmdlIGxhbmd1YWdlIG1vZGVscy4gUXdlbjIuNSBicmluZ3MgdGhlIGZvbGxvd2luZyBpbXByb3ZlbWVudHMgdXBvbiBRd2VuMjpcblxuLSBTaWduaWZpY2FudGx5IG1vcmUga25vd2xlZGdlIGFuZCBoYXMgZ3JlYXRseSBpbXByb3ZlZCBjYXBhYmlsaXRpZXMgaW4gY29kaW5nIGFuZCBtYXRoZW1hdGljcywgdGhhbmtzIHRvIG91ciBzcGVjaWFsaXplZCBleHBlcnQgbW9kZWxzIGluIHRoZXNlIGRvbWFpbnMuXG5cbi0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIGluIGluc3RydWN0aW9uIGZvbGxvd2luZywgZ2VuZXJhdGluZyBsb25nIHRleHRzIChvdmVyIDhLIHRva2VucyksIHVuZGVyc3RhbmRpbmcgc3RydWN0dXJlZCBkYXRhIChlLmcsIHRhYmxlcyksIGFuZCBnZW5lcmF0aW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBlc3BlY2lhbGx5IEpTT04uIE1vcmUgcmVzaWxpZW50IHRvIHRoZSBkaXZlcnNpdHkgb2Ygc3lzdGVtIHByb21wdHMsIGVuaGFuY2luZyByb2xlLXBsYXkgaW1wbGVtZW50YXRpb24gYW5kIGNvbmRpdGlvbi1zZXR0aW5nIGZvciBjaGF0Ym90cy5cblxuLSBMb25nLWNvbnRleHQgU3VwcG9ydCB1cCB0byAxMjhLIHRva2VucyBhbmQgY2FuIGdlbmVyYXRlIHVwIHRvIDhLIHRva2Vucy5cblxuLSBNdWx0aWxpbmd1YWwgc3VwcG9ydCBmb3Igb3ZlciAyOSBsYW5ndWFnZXMsIGluY2x1ZGluZyBDaGluZXNlLCBFbmdsaXNoLCBGcmVuY2gsIFNwYW5pc2gsIFBvcnR1Z3Vlc2UsIEdlcm1hbiwgSXRhbGlhbiwgUnVzc2lhbiwgSmFwYW5lc2UsIEtvcmVhbiwgVmlldG5hbWVzZSwgVGhhaSwgQXJhYmljLCBhbmQgbW9yZS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtUb25neWkgUWlhbndlbiBMSUNFTlNFIEFHUkVFTUVOVF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4xLjUtMTEwQi1DaGF0L2Jsb2IvbWFpbi9MSUNFTlNFKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tMi41LTdiLWluc3RydWN0IiwibmFtZSI6IlF3ZW4yLjUgN0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI5MDM2ODAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgN0IgaXMgdGhlIGxhdGVzdCBzZXJpZXMgb2YgUXdlbiBsYXJnZSBsYW5ndWFnZSBtb2RlbHMuIFF3ZW4yLjUgYnJpbmdzIHRoZSBmb2xsb3dpbmcgaW1wcm92ZW1lbnRzIHVwb24gUXdlbjI6XG5cbi0gU2lnbmlmaWNhbnRseSBtb3JlIGtub3dsZWRnZSBhbmQgaGFzIGdyZWF0bHkgaW1wcm92ZWQgY2FwYWJpbGl0aWVzIGluIGNvZGluZyBhbmQgbWF0aGVtYXRpY3MsIHRoYW5rcyB0byBvdXIgc3BlY2lhbGl6ZWQgZXhwZXJ0IG1vZGVscyBpbiB0aGVzZSBkb21haW5zLlxuXG4tIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyBpbiBpbnN0cnVjdGlvbiBmb2xsb3dpbmcsIGdlbmVyYXRpbmcgbG9uZyB0ZXh0cyAob3ZlciA4SyB0b2tlbnMpLCB1bmRlcnN0YW5kaW5nIHN0cnVjdHVyZWQgZGF0YSAoZS5nLCB0YWJsZXMpLCBhbmQgZ2VuZXJhdGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgZXNwZWNpYWxseSBKU09OLiBNb3JlIHJlc2lsaWVudCB0byB0aGUgZGl2ZXJzaXR5IG9mIHN5c3RlbSBwcm9tcHRzLCBlbmhhbmNpbmcgcm9sZS1wbGF5IGltcGxlbWVudGF0aW9uIGFuZCBjb25kaXRpb24tc2V0dGluZyBmb3IgY2hhdGJvdHMuXG5cbi0gTG9uZy1jb250ZXh0IFN1cHBvcnQgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIGNhbiBnZW5lcmF0ZSB1cCB0byA4SyB0b2tlbnMuXG5cbi0gTXVsdGlsaW5ndWFsIHN1cHBvcnQgZm9yIG92ZXIgMjkgbGFuZ3VhZ2VzLCBpbmNsdWRpbmcgQ2hpbmVzZSwgRW5nbGlzaCwgRnJlbmNoLCBTcGFuaXNoLCBQb3J0dWd1ZXNlLCBHZXJtYW4sIEl0YWxpYW4sIFJ1c3NpYW4sIEphcGFuZXNlLCBLb3JlYW4sIFZpZXRuYW1lc2UsIFRoYWksIEFyYWJpYywgYW5kIG1vcmUuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tNzBiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTlZJRElBOiBMbGFtYSAzLjEgTmVtb3Ryb24gNzBCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3Mjg5NTA0MDAsImRlc2NyaXB0aW9uIjoiTlZJRElBJ3MgTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBpcyBhIGxhbmd1YWdlIG1vZGVsIGRlc2lnbmVkIGZvciBnZW5lcmF0aW5nIHByZWNpc2UgYW5kIHVzZWZ1bCByZXNwb25zZXMuIExldmVyYWdpbmcgW0xsYW1hIDMuMSA3MEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSBhcmNoaXRlY3R1cmUgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRiksIGl0IGV4Y2VscyBpbiBhdXRvbWF0aWMgYWxpZ25tZW50IGJlbmNobWFya3MuIFRoaXMgbW9kZWwgaXMgdGFpbG9yZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgaGlnaCBhY2N1cmFjeSBpbiBoZWxwZnVsbmVzcyBhbmQgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgc3VpdGFibGUgZm9yIGRpdmVyc2UgdXNlciBxdWVyaWVzIGFjcm9zcyBtdWx0aXBsZSBkb21haW5zLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tNzBiLWluc3RydWN0IiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3Mjg5NTA0MDAsImRlc2NyaXB0aW9uIjoiTlZJRElBJ3MgTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBpcyBhIGxhbmd1YWdlIG1vZGVsIGRlc2lnbmVkIGZvciBnZW5lcmF0aW5nIHByZWNpc2UgYW5kIHVzZWZ1bCByZXNwb25zZXMuIExldmVyYWdpbmcgW0xsYW1hIDMuMSA3MEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSBhcmNoaXRlY3R1cmUgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRiksIGl0IGV4Y2VscyBpbiBhdXRvbWF0aWMgYWxpZ25tZW50IGJlbmNobWFya3MuIFRoaXMgbW9kZWwgaXMgdGFpbG9yZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgaGlnaCBhY2N1cmFjeSBpbiBoZWxwZnVsbmVzcyBhbmQgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgc3VpdGFibGUgZm9yIGRpdmVyc2UgdXNlciBxdWVyaWVzIGFjcm9zcyBtdWx0aXBsZSBkb21haW5zLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJpbmZsZWN0aW9uL2luZmxlY3Rpb24tMy1wcm9kdWN0aXZpdHkiLCJuYW1lIjoiSW5mbGVjdGlvbjogSW5mbGVjdGlvbiAzIFByb2R1Y3Rpdml0eSIsImNyZWF0ZWQiOjE3Mjg2MDQ4MDAsImRlc2NyaXB0aW9uIjoiSW5mbGVjdGlvbiAzIFByb2R1Y3Rpdml0eSBpcyBvcHRpbWl6ZWQgZm9yIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMuIEl0IGlzIGJldHRlciBmb3IgdGFza3MgcmVxdWlyaW5nIEpTT04gb3V0cHV0IG9yIHByZWNpc2UgYWRoZXJlbmNlIHRvIHByb3ZpZGVkIGd1aWRlbGluZXMuIEl0IGhhcyBhY2Nlc3MgdG8gcmVjZW50IG5ld3MuXG5cbkZvciBlbW90aW9uYWwgaW50ZWxsaWdlbmNlIHNpbWlsYXIgdG8gUGksIHNlZSBbSW5mbGVjdCAzIFBpXSgvaW5mbGVjdGlvbi9pbmZsZWN0aW9uLTMtcGkpXG5cblNlZSBbSW5mbGVjdGlvbidzIGFubm91bmNlbWVudF0oaHR0cHM6Ly9pbmZsZWN0aW9uLmFpL2Jsb2cvZW50ZXJwcmlzZSkgZm9yIG1vcmUgZGV0YWlscy4iLCJjb250ZXh0X2xlbmd0aCI6ODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImluZmxlY3Rpb24vaW5mbGVjdGlvbi0zLXBpIiwibmFtZSI6IkluZmxlY3Rpb246IEluZmxlY3Rpb24gMyBQaSIsImNyZWF0ZWQiOjE3Mjg2MDQ4MDAsImRlc2NyaXB0aW9uIjoiSW5mbGVjdGlvbiAzIFBpIHBvd2VycyBJbmZsZWN0aW9uJ3MgW1BpXShodHRwczovL3BpLmFpKSBjaGF0Ym90LCBpbmNsdWRpbmcgYmFja3N0b3J5LCBlbW90aW9uYWwgaW50ZWxsaWdlbmNlLCBwcm9kdWN0aXZpdHksIGFuZCBzYWZldHkuIEl0IGhhcyBhY2Nlc3MgdG8gcmVjZW50IG5ld3MsIGFuZCBleGNlbHMgaW4gc2NlbmFyaW9zIGxpa2UgY3VzdG9tZXIgc3VwcG9ydCBhbmQgcm9sZXBsYXkuXG5cblBpIGhhcyBiZWVuIHRyYWluZWQgdG8gbWlycm9yIHlvdXIgdG9uZSBhbmQgc3R5bGUsIGlmIHlvdSB1c2UgbW9yZSBlbW9qaXMsIHNvIHdpbGwgUGkhIFRyeSBleHBlcmltZW50aW5nIHdpdGggdmFyaW91cyBwcm9tcHRzIGFuZCBjb252ZXJzYXRpb24gc3R5bGVzLiIsImNvbnRleHRfbGVuZ3RoIjo4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUtOGIiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMS41IEZsYXNoIDhCIiwiY3JlYXRlZCI6MTcyNzkxMzYwMCwiZGVzY3JpcHRpb24iOiJHZW1pbmkgRmxhc2ggMS41IDhCIGlzIG9wdGltaXplZCBmb3Igc3BlZWQgYW5kIGVmZmljaWVuY3ksIG9mZmVyaW5nIGVuaGFuY2VkIHBlcmZvcm1hbmNlIGluIHNtYWxsIHByb21wdCB0YXNrcyBsaWtlIGNoYXQsIHRyYW5zY3JpcHRpb24sIGFuZCB0cmFuc2xhdGlvbi4gV2l0aCByZWR1Y2VkIGxhdGVuY3ksIGl0IGlzIGhpZ2hseSBlZmZlY3RpdmUgZm9yIHJlYWwtdGltZSBhbmQgbGFyZ2Utc2NhbGUgb3BlcmF0aW9ucy4gVGhpcyBtb2RlbCBmb2N1c2VzIG9uIGNvc3QtZWZmZWN0aXZlIHNvbHV0aW9ucyB3aGlsZSBtYWludGFpbmluZyBoaWdoLXF1YWxpdHkgcmVzdWx0cy5cblxuW0NsaWNrIGhlcmUgdG8gbGVhcm4gbW9yZSBhYm91dCB0aGlzIG1vZGVsXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlYmxvZy5jb20vZW4vZ2VtaW5pLTE1LWZsYXNoLThiLWlzLW5vdy1nZW5lcmFsbHktYXZhaWxhYmxlLWZvci11c2UvKS5cblxuVXNhZ2Ugb2YgR2VtaW5pIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbWluaSBUZXJtcyBvZiBVc2VdKGh0dHBzOi8vYWkuZ29vZ2xlLmRldi90ZXJtcykuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwMSIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDAwNTgzIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidGhlZHJ1bW1lci9yb2NpbmFudGUtMTJiIiwibmFtZSI6IlJvY2luYW50ZSAxMkIiLCJjcmVhdGVkIjoxNzI3NjU0NDAwLCJkZXNjcmlwdGlvbiI6IlJvY2luYW50ZSAxMkIgaXMgZGVzaWduZWQgZm9yIGVuZ2FnaW5nIHN0b3J5dGVsbGluZyBhbmQgcmljaCBwcm9zZS5cblxuRWFybHkgdGVzdGVycyBoYXZlIHJlcG9ydGVkOlxuLSBFeHBhbmRlZCB2b2NhYnVsYXJ5IHdpdGggdW5pcXVlIGFuZCBleHByZXNzaXZlIHdvcmQgY2hvaWNlc1xuLSBFbmhhbmNlZCBjcmVhdGl2aXR5IGZvciB2aXZpZCBuYXJyYXRpdmVzXG4tIEFkdmVudHVyZS1maWxsZWQgYW5kIGNhcHRpdmF0aW5nIHN0b3JpZXMiLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJhY2l0ZS1vcmcvbWFnbnVtLXYyLTcyYiIsIm5hbWUiOiJNYWdudW0gdjIgNzJCIiwiY3JlYXRlZCI6MTcyNzY1NDQwMCwiZGVzY3JpcHRpb24iOiJGcm9tIHRoZSBtYWtlciBvZiBbR29saWF0aF0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL21vZGVscy9hbHBpbmRhbGUvZ29saWF0aC0xMjBiKSwgTWFnbnVtIDcyQiBpcyB0aGUgc2V2ZW50aCBpbiBhIGZhbWlseSBvZiBtb2RlbHMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgcHJvc2UgcXVhbGl0eSBvZiB0aGUgQ2xhdWRlIDMgbW9kZWxzLCBub3RhYmx5IE9wdXMgJiBTb25uZXQuXG5cblRoZSBtb2RlbCBpcyBiYXNlZCBvbiBbUXdlbjIgNzJCXShodHRwczovL29wZW5yb3V0ZXIuYWkvbW9kZWxzL3F3ZW4vcXdlbi0yLTcyYi1pbnN0cnVjdCkgYW5kIHRyYWluZWQgd2l0aCA1NSBtaWxsaW9uIHRva2VucyBvZiBoaWdobHkgY3VyYXRlZCByb2xlcGxheSAoUlApIGRhdGEuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImxpcXVpZC9sZm0tNDBiIiwibmFtZSI6IkxpcXVpZDogTEZNIDQwQiBNb0UiLCJjcmVhdGVkIjoxNzI3NjU0NDAwLCJkZXNjcmlwdGlvbiI6IkxpcXVpZCdzIDQwLjNCIE1peHR1cmUgb2YgRXhwZXJ0cyAoTW9FKSBtb2RlbC4gTGlxdWlkIEZvdW5kYXRpb24gTW9kZWxzIChMRk1zKSBhcmUgbGFyZ2UgbmV1cmFsIG5ldHdvcmtzIGJ1aWx0IHdpdGggY29tcHV0YXRpb25hbCB1bml0cyByb290ZWQgaW4gZHluYW1pYyBzeXN0ZW1zLlxuXG5MRk1zIGFyZSBnZW5lcmFsLXB1cnBvc2UgQUkgbW9kZWxzIHRoYXQgY2FuIGJlIHVzZWQgdG8gbW9kZWwgYW55IGtpbmQgb2Ygc2VxdWVudGlhbCBkYXRhLCBpbmNsdWRpbmcgdmlkZW8sIGF1ZGlvLCB0ZXh0LCB0aW1lIHNlcmllcywgYW5kIHNpZ25hbHMuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vd3d3LmxpcXVpZC5haS9saXF1aWQtZm91bmRhdGlvbi1tb2RlbHMpIGZvciBiZW5jaG1hcmtzIGFuZCBtb3JlIGluZm8uIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItM2ItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgM0IgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgM0IgaXMgYSAzLWJpbGxpb24tcGFyYW1ldGVyIG11bHRpbGluZ3VhbCBsYXJnZSBsYW5ndWFnZSBtb2RlbCwgb3B0aW1pemVkIGZvciBhZHZhbmNlZCBuYXR1cmFsIGxhbmd1YWdlIHByb2Nlc3NpbmcgdGFza3MgbGlrZSBkaWFsb2d1ZSBnZW5lcmF0aW9uLCByZWFzb25pbmcsIGFuZCBzdW1tYXJpemF0aW9uLiBEZXNpZ25lZCB3aXRoIHRoZSBsYXRlc3QgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLCBpdCBzdXBwb3J0cyBlaWdodCBsYW5ndWFnZXMsIGluY2x1ZGluZyBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgSGluZGksIGFuZCBpcyBhZGFwdGFibGUgZm9yIGFkZGl0aW9uYWwgbGFuZ3VhZ2VzLlxuXG5UcmFpbmVkIG9uIDkgdHJpbGxpb24gdG9rZW5zLCB0aGUgTGxhbWEgMy4yIDNCIG1vZGVsIGV4Y2VscyBpbiBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGNvbXBsZXggcmVhc29uaW5nLCBhbmQgdG9vbCB1c2UuIEl0cyBiYWxhbmNlZCBwZXJmb3JtYW5jZSBtYWtlcyBpdCBpZGVhbCBmb3IgYXBwbGljYXRpb25zIG5lZWRpbmcgYWNjdXJhY3kgYW5kIGVmZmljaWVuY3kgaW4gdGV4dCBnZW5lcmF0aW9uIGFjcm9zcyBtdWx0aWxpbmd1YWwgc2V0dGluZ3MuXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRC5tZCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly93d3cubGxhbWEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjAwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMi0zYi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgM0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI3MjIyNDAwLCJkZXNjcmlwdGlvbiI6IkxsYW1hIDMuMiAzQiBpcyBhIDMtYmlsbGlvbi1wYXJhbWV0ZXIgbXVsdGlsaW5ndWFsIGxhcmdlIGxhbmd1YWdlIG1vZGVsLCBvcHRpbWl6ZWQgZm9yIGFkdmFuY2VkIG5hdHVyYWwgbGFuZ3VhZ2UgcHJvY2Vzc2luZyB0YXNrcyBsaWtlIGRpYWxvZ3VlIGdlbmVyYXRpb24sIHJlYXNvbmluZywgYW5kIHN1bW1hcml6YXRpb24uIERlc2lnbmVkIHdpdGggdGhlIGxhdGVzdCB0cmFuc2Zvcm1lciBhcmNoaXRlY3R1cmUsIGl0IHN1cHBvcnRzIGVpZ2h0IGxhbmd1YWdlcywgaW5jbHVkaW5nIEVuZ2xpc2gsIFNwYW5pc2gsIGFuZCBIaW5kaSwgYW5kIGlzIGFkYXB0YWJsZSBmb3IgYWRkaXRpb25hbCBsYW5ndWFnZXMuXG5cblRyYWluZWQgb24gOSB0cmlsbGlvbiB0b2tlbnMsIHRoZSBMbGFtYSAzLjIgM0IgbW9kZWwgZXhjZWxzIGluIGluc3RydWN0aW9uLWZvbGxvd2luZywgY29tcGxleCByZWFzb25pbmcsIGFuZCB0b29sIHVzZS4gSXRzIGJhbGFuY2VkIHBlcmZvcm1hbmNlIG1ha2VzIGl0IGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgbmVlZGluZyBhY2N1cmFjeSBhbmQgZWZmaWNpZW5jeSBpbiB0ZXh0IGdlbmVyYXRpb24gYWNyb3NzIG11bHRpbGluZ3VhbCBzZXR0aW5ncy5cblxuQ2xpY2sgaGVyZSBmb3IgdGhlIFtvcmlnaW5hbCBtb2RlbCBjYXJkXShodHRwczovL2dpdGh1Yi5jb20vbWV0YS1sbGFtYS9sbGFtYS1tb2RlbHMvYmxvYi9tYWluL21vZGVscy9sbGFtYTNfMi9NT0RFTF9DQVJELm1kKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL3d3dy5sbGFtYS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMWItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgMUIgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMUIgaXMgYSAxLWJpbGxpb24tcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIGZvY3VzZWQgb24gZWZmaWNpZW50bHkgcGVyZm9ybWluZyBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBzdWNoIGFzIHN1bW1hcml6YXRpb24sIGRpYWxvZ3VlLCBhbmQgbXVsdGlsaW5ndWFsIHRleHQgYW5hbHlzaXMuIEl0cyBzbWFsbGVyIHNpemUgYWxsb3dzIGl0IHRvIG9wZXJhdGUgZWZmaWNpZW50bHkgaW4gbG93LXJlc291cmNlIGVudmlyb25tZW50cyB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgdGFzayBwZXJmb3JtYW5jZS5cblxuU3VwcG9ydGluZyBlaWdodCBjb3JlIGxhbmd1YWdlcyBhbmQgZmluZS10dW5hYmxlIGZvciBtb3JlLCBMbGFtYSAxLjNCIGlzIGlkZWFsIGZvciBidXNpbmVzc2VzIG9yIGRldmVsb3BlcnMgc2Vla2luZyBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgQUkgc29sdXRpb25zIHRoYXQgY2FuIG9wZXJhdGUgaW4gZGl2ZXJzZSBtdWx0aWxpbmd1YWwgc2V0dGluZ3Mgd2l0aG91dCB0aGUgaGlnaCBjb21wdXRhdGlvbmFsIGRlbWFuZCBvZiBsYXJnZXIgbW9kZWxzLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkQubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMWItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDFCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMUIgaXMgYSAxLWJpbGxpb24tcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIGZvY3VzZWQgb24gZWZmaWNpZW50bHkgcGVyZm9ybWluZyBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBzdWNoIGFzIHN1bW1hcml6YXRpb24sIGRpYWxvZ3VlLCBhbmQgbXVsdGlsaW5ndWFsIHRleHQgYW5hbHlzaXMuIEl0cyBzbWFsbGVyIHNpemUgYWxsb3dzIGl0IHRvIG9wZXJhdGUgZWZmaWNpZW50bHkgaW4gbG93LXJlc291cmNlIGVudmlyb25tZW50cyB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgdGFzayBwZXJmb3JtYW5jZS5cblxuU3VwcG9ydGluZyBlaWdodCBjb3JlIGxhbmd1YWdlcyBhbmQgZmluZS10dW5hYmxlIGZvciBtb3JlLCBMbGFtYSAxLjNCIGlzIGlkZWFsIGZvciBidXNpbmVzc2VzIG9yIGRldmVsb3BlcnMgc2Vla2luZyBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgQUkgc29sdXRpb25zIHRoYXQgY2FuIG9wZXJhdGUgaW4gZGl2ZXJzZSBtdWx0aWxpbmd1YWwgc2V0dGluZ3Mgd2l0aG91dCB0aGUgaGlnaCBjb21wdXRhdGlvbmFsIGRlbWFuZCBvZiBsYXJnZXIgbW9kZWxzLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkQubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4yLTkwYi12aXNpb24taW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDkwQiBWaXNpb24gSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI3MjIyNDAwLCJkZXNjcmlwdGlvbiI6IlRoZSBMbGFtYSA5MEIgVmlzaW9uIG1vZGVsIGlzIGEgdG9wLXRpZXIsIDkwLWJpbGxpb24tcGFyYW1ldGVyIG11bHRpbW9kYWwgbW9kZWwgZGVzaWduZWQgZm9yIHRoZSBtb3N0IGNoYWxsZW5naW5nIHZpc3VhbCByZWFzb25pbmcgYW5kIGxhbmd1YWdlIHRhc2tzLiBJdCBvZmZlcnMgdW5wYXJhbGxlbGVkIGFjY3VyYWN5IGluIGltYWdlIGNhcHRpb25pbmcsIHZpc3VhbCBxdWVzdGlvbiBhbnN3ZXJpbmcsIGFuZCBhZHZhbmNlZCBpbWFnZS10ZXh0IGNvbXByZWhlbnNpb24uIFByZS10cmFpbmVkIG9uIHZhc3QgbXVsdGltb2RhbCBkYXRhc2V0cyBhbmQgZmluZS10dW5lZCB3aXRoIGh1bWFuIGZlZWRiYWNrLCB0aGUgTGxhbWEgOTBCIFZpc2lvbiBpcyBlbmdpbmVlcmVkIHRvIGhhbmRsZSB0aGUgbW9zdCBkZW1hbmRpbmcgaW1hZ2UtYmFzZWQgQUkgdGFza3MuXG5cblRoaXMgbW9kZWwgaXMgcGVyZmVjdCBmb3IgaW5kdXN0cmllcyByZXF1aXJpbmcgY3V0dGluZy1lZGdlIG11bHRpbW9kYWwgQUkgY2FwYWJpbGl0aWVzLCBwYXJ0aWN1bGFybHkgdGhvc2UgZGVhbGluZyB3aXRoIGNvbXBsZXgsIHJlYWwtdGltZSB2aXN1YWwgYW5kIHRleHR1YWwgYW5hbHlzaXMuXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRF9WSVNJT04ubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNTE0NTYiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMi0xMWItdmlzaW9uLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDExQiBWaXNpb24gSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMTFCIFZpc2lvbiBpcyBhIG11bHRpbW9kYWwgbW9kZWwgd2l0aCAxMSBiaWxsaW9uIHBhcmFtZXRlcnMsIGRlc2lnbmVkIHRvIGhhbmRsZSB0YXNrcyBjb21iaW5pbmcgdmlzdWFsIGFuZCB0ZXh0dWFsIGRhdGEuIEl0IGV4Y2VscyBpbiB0YXNrcyBzdWNoIGFzIGltYWdlIGNhcHRpb25pbmcgYW5kIHZpc3VhbCBxdWVzdGlvbiBhbnN3ZXJpbmcsIGJyaWRnaW5nIHRoZSBnYXAgYmV0d2VlbiBsYW5ndWFnZSBnZW5lcmF0aW9uIGFuZCB2aXN1YWwgcmVhc29uaW5nLiBQcmUtdHJhaW5lZCBvbiBhIG1hc3NpdmUgZGF0YXNldCBvZiBpbWFnZS10ZXh0IHBhaXJzLCBpdCBwZXJmb3JtcyB3ZWxsIGluIGNvbXBsZXgsIGhpZ2gtYWNjdXJhY3kgaW1hZ2UgYW5hbHlzaXMuXG5cbkl0cyBhYmlsaXR5IHRvIGludGVncmF0ZSB2aXN1YWwgdW5kZXJzdGFuZGluZyB3aXRoIGxhbmd1YWdlIHByb2Nlc3NpbmcgbWFrZXMgaXQgYW4gaWRlYWwgc29sdXRpb24gZm9yIGluZHVzdHJpZXMgcmVxdWlyaW5nIGNvbXByZWhlbnNpdmUgdmlzdWFsLWxpbmd1aXN0aWMgQUkgYXBwbGljYXRpb25zLCBzdWNoIGFzIGNvbnRlbnQgY3JlYXRpb24sIEFJLWRyaXZlbiBjdXN0b21lciBzZXJ2aWNlLCBhbmQgcmVzZWFyY2guXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRF9WSVNJT04ubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMTFiLXZpc2lvbi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgMTFCIFZpc2lvbiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjcyMjI0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4yIDExQiBWaXNpb24gaXMgYSBtdWx0aW1vZGFsIG1vZGVsIHdpdGggMTEgYmlsbGlvbiBwYXJhbWV0ZXJzLCBkZXNpZ25lZCB0byBoYW5kbGUgdGFza3MgY29tYmluaW5nIHZpc3VhbCBhbmQgdGV4dHVhbCBkYXRhLiBJdCBleGNlbHMgaW4gdGFza3Mgc3VjaCBhcyBpbWFnZSBjYXB0aW9uaW5nIGFuZCB2aXN1YWwgcXVlc3Rpb24gYW5zd2VyaW5nLCBicmlkZ2luZyB0aGUgZ2FwIGJldHdlZW4gbGFuZ3VhZ2UgZ2VuZXJhdGlvbiBhbmQgdmlzdWFsIHJlYXNvbmluZy4gUHJlLXRyYWluZWQgb24gYSBtYXNzaXZlIGRhdGFzZXQgb2YgaW1hZ2UtdGV4dCBwYWlycywgaXQgcGVyZm9ybXMgd2VsbCBpbiBjb21wbGV4LCBoaWdoLWFjY3VyYWN5IGltYWdlIGFuYWx5c2lzLlxuXG5JdHMgYWJpbGl0eSB0byBpbnRlZ3JhdGUgdmlzdWFsIHVuZGVyc3RhbmRpbmcgd2l0aCBsYW5ndWFnZSBwcm9jZXNzaW5nIG1ha2VzIGl0IGFuIGlkZWFsIHNvbHV0aW9uIGZvciBpbmR1c3RyaWVzIHJlcXVpcmluZyBjb21wcmVoZW5zaXZlIHZpc3VhbC1saW5ndWlzdGljIEFJIGFwcGxpY2F0aW9ucywgc3VjaCBhcyBjb250ZW50IGNyZWF0aW9uLCBBSS1kcml2ZW4gY3VzdG9tZXIgc2VydmljZSwgYW5kIHJlc2VhcmNoLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkRfVklTSU9OLm1kKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL3d3dy5sbGFtYS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwNzk0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IDcyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzI2NzA0MDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgNzJCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjIuNSA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI2NzA0MDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgNzJCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi0yLjUtdmwtNzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUtVkwgNzJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNjYxNzYwMCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IFZMIDcyQiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBVbmRlcnN0YW5kaW5nIHZpZGVvcyBvZiAyMG1pbis6IFF3ZW4yLjUtVkwgY2FuIHVuZGVyc3RhbmQgdmlkZW9zIG92ZXIgMjAgbWludXRlcyBmb3IgaGlnaC1xdWFsaXR5IHZpZGVvLWJhc2VkIHF1ZXN0aW9uIGFuc3dlcmluZywgZGlhbG9nLCBjb250ZW50IGNyZWF0aW9uLCBldGMuXG5cbi0gQWdlbnQgdGhhdCBjYW4gb3BlcmF0ZSB5b3VyIG1vYmlsZXMsIHJvYm90cywgZXRjLjogd2l0aCB0aGUgYWJpbGl0aWVzIG9mIGNvbXBsZXggcmVhc29uaW5nIGFuZCBkZWNpc2lvbiBtYWtpbmcsIFF3ZW4yLjUtVkwgY2FuIGJlIGludGVncmF0ZWQgd2l0aCBkZXZpY2VzIGxpa2UgbW9iaWxlIHBob25lcywgcm9ib3RzLCBldGMuLCBmb3IgYXV0b21hdGljIG9wZXJhdGlvbiBiYXNlZCBvbiB2aXN1YWwgZW52aXJvbm1lbnQgYW5kIHRleHQgaW5zdHJ1Y3Rpb25zLlxuXG4tIE11bHRpbGluZ3VhbCBTdXBwb3J0OiB0byBzZXJ2ZSBnbG9iYWwgdXNlcnMsIGJlc2lkZXMgRW5nbGlzaCBhbmQgQ2hpbmVzZSwgUXdlbjIuNS1WTCBub3cgc3VwcG9ydHMgdGhlIHVuZGVyc3RhbmRpbmcgb2YgdGV4dHMgaW4gZGlmZmVyZW50IGxhbmd1YWdlcyBpbnNpZGUgaW1hZ2VzLCBpbmNsdWRpbmcgbW9zdCBFdXJvcGVhbiBsYW5ndWFnZXMsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgVmlldG5hbWVzZSwgZXRjLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBzZWUgdGhpcyBbYmxvZyBwb3N0XShodHRwczovL3F3ZW5sbS5naXRodWIuaW8vYmxvZy9xd2VuMi12bC8pIGFuZCBbR2l0SHViIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9Rd2VuTE0vUXdlbjItVkwpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA1NzgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLjEtbHVtaW1haWQtOGIiLCJuYW1lIjoiTmV2ZXJTbGVlcDogTHVtaW1haWQgdjAuMiA4QiIsImNyZWF0ZWQiOjE3MjYzNTg0MDAsImRlc2NyaXB0aW9uIjoiTHVtaW1haWQgdjAuMiA4QiBpcyBhIGZpbmV0dW5lIG9mIFtMbGFtYSAzLjEgOEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtOGItaW5zdHJ1Y3QpIHdpdGggYSBcIkhVR0Ugc3RlcCB1cCBkYXRhc2V0IHdpc2VcIiBjb21wYXJlZCB0byBMdW1pbWFpZCB2MC4xLiBTbG9wcHkgY2hhdHMgb3V0cHV0IHdlcmUgcHVyZ2VkLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwOTM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28xLXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBvMS1wcmV2aWV3IiwiY3JlYXRlZCI6MTcyNjA5OTIwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuXG5cblRoZSBvMSBtb2RlbHMgYXJlIG9wdGltaXplZCBmb3IgbWF0aCwgc2NpZW5jZSwgcHJvZ3JhbW1pbmcsIGFuZCBvdGhlciBTVEVNLXJlbGF0ZWQgdGFza3MuIFRoZXkgY29uc2lzdGVudGx5IGV4aGliaXQgUGhELWxldmVsIGFjY3VyYWN5IG9uIGJlbmNobWFya3MgaW4gcGh5c2ljcywgY2hlbWlzdHJ5LCBhbmQgYmlvbG9neS4gTGVhcm4gbW9yZSBpbiB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9vMSkuXG5cbk5vdGU6IFRoaXMgbW9kZWwgaXMgY3VycmVudGx5IGV4cGVyaW1lbnRhbCBhbmQgbm90IHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcywgYW5kIG1heSBiZSBoZWF2aWx5IHJhdGUtbGltaXRlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDA3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28xLXByZXZpZXctMjAyNC0wOS0xMiIsIm5hbWUiOiJPcGVuQUk6IG8xLXByZXZpZXcgKDIwMjQtMDktMTIpIiwiY3JlYXRlZCI6MTcyNjA5OTIwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuXG5cblRoZSBvMSBtb2RlbHMgYXJlIG9wdGltaXplZCBmb3IgbWF0aCwgc2NpZW5jZSwgcHJvZ3JhbW1pbmcsIGFuZCBvdGhlciBTVEVNLXJlbGF0ZWQgdGFza3MuIFRoZXkgY29uc2lzdGVudGx5IGV4aGliaXQgUGhELWxldmVsIGFjY3VyYWN5IG9uIGJlbmNobWFya3MgaW4gcGh5c2ljcywgY2hlbWlzdHJ5LCBhbmQgYmlvbG9neS4gTGVhcm4gbW9yZSBpbiB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9vMSkuXG5cbk5vdGU6IFRoaXMgbW9kZWwgaXMgY3VycmVudGx5IGV4cGVyaW1lbnRhbCBhbmQgbm90IHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcywgYW5kIG1heSBiZSBoZWF2aWx5IHJhdGUtbGltaXRlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDA3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28xLW1pbmkiLCJuYW1lIjoiT3BlbkFJOiBvMS1taW5pIiwiY3JlYXRlZCI6MTcyNjA5OTIwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuXG5cblRoZSBvMSBtb2RlbHMgYXJlIG9wdGltaXplZCBmb3IgbWF0aCwgc2NpZW5jZSwgcHJvZ3JhbW1pbmcsIGFuZCBvdGhlciBTVEVNLXJlbGF0ZWQgdGFza3MuIFRoZXkgY29uc2lzdGVudGx5IGV4aGliaXQgUGhELWxldmVsIGFjY3VyYWN5IG9uIGJlbmNobWFya3MgaW4gcGh5c2ljcywgY2hlbWlzdHJ5LCBhbmQgYmlvbG9neS4gTGVhcm4gbW9yZSBpbiB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9vMSkuXG5cbk5vdGU6IFRoaXMgbW9kZWwgaXMgY3VycmVudGx5IGV4cGVyaW1lbnRhbCBhbmQgbm90IHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcywgYW5kIG1heSBiZSBoZWF2aWx5IHJhdGUtbGltaXRlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0NCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwNTUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjU1MzYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMS1taW5pLTIwMjQtMDktMTIiLCJuYW1lIjoiT3BlbkFJOiBvMS1taW5pICgyMDI0LTA5LTEyKSIsImNyZWF0ZWQiOjE3MjYwOTkyMDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBhbmQgc3Ryb25nZXN0IG1vZGVsIGZhbWlseSBmcm9tIE9wZW5BSSwgbzEgaXMgZGVzaWduZWQgdG8gc3BlbmQgbW9yZSB0aW1lIHRoaW5raW5nIGJlZm9yZSByZXNwb25kaW5nLlxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuXG5Ob3RlOiBUaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgYW5kIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMsIGFuZCBtYXkgYmUgaGVhdmlseSByYXRlLWxpbWl0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDU1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjY1NTM2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvcGl4dHJhbC0xMmIiLCJuYW1lIjoiTWlzdHJhbDogUGl4dHJhbCAxMkIiLCJjcmVhdGVkIjoxNzI1OTI2NDAwLCJkZXNjcmlwdGlvbiI6IlRoZSBmaXJzdCBtdWx0aS1tb2RhbCwgdGV4dCtpbWFnZS10by10ZXh0IG1vZGVsIGZyb20gTWlzdHJhbCBBSS4gSXRzIHdlaWdodHMgd2VyZSBsYXVuY2hlZCB2aWEgdG9ycmVudDogaHR0cHM6Ly94LmNvbS9taXN0cmFsYWkvc3RhdHVzLzE4MzM3NTgyODUxNjc3MjI4MzYuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDE0NDUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiY29oZXJlL2NvbW1hbmQtci1wbHVzLTA4LTIwMjQiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIrICgwOC0yMDI0KSIsImNyZWF0ZWQiOjE3MjQ5NzYwMDAsImRlc2NyaXB0aW9uIjoiY29tbWFuZC1yLXBsdXMtMDgtMjAyNCBpcyBhbiB1cGRhdGUgb2YgdGhlIFtDb21tYW5kIFIrXSgvbW9kZWxzL2NvaGVyZS9jb21tYW5kLXItcGx1cykgd2l0aCByb3VnaGx5IDUwJSBoaWdoZXIgdGhyb3VnaHB1dCBhbmQgMjUlIGxvd2VyIGxhdGVuY2llcyBhcyBjb21wYXJlZCB0byB0aGUgcHJldmlvdXMgQ29tbWFuZCBSKyB2ZXJzaW9uLCB3aGlsZSBrZWVwaW5nIHRoZSBoYXJkd2FyZSBmb290cHJpbnQgdGhlIHNhbWUuXG5cblJlYWQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL2RvY3MuY29oZXJlLmNvbS9jaGFuZ2Vsb2cvY29tbWFuZC1nZXRzLXJlZnJlc2hlZCkuXG5cblVzZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gQ29oZXJlJ3MgW1VzYWdlIFBvbGljeV0oaHR0cHM6Ly9kb2NzLmNvaGVyZS5jb20vZG9jcy91c2FnZS1wb2xpY3kpIGFuZCBbU2FhUyBBZ3JlZW1lbnRdKGh0dHBzOi8vY29oZXJlLmNvbS9zYWFzLWFncmVlbWVudCkuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNvaGVyZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXItMDgtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUiAoMDgtMjAyNCkiLCJjcmVhdGVkIjoxNzI0OTc2MDAwLCJkZXNjcmlwdGlvbiI6ImNvbW1hbmQtci0wOC0yMDI0IGlzIGFuIHVwZGF0ZSBvZiB0aGUgW0NvbW1hbmQgUl0oL21vZGVscy9jb2hlcmUvY29tbWFuZC1yKSB3aXRoIGltcHJvdmVkIHBlcmZvcm1hbmNlIGZvciBtdWx0aWxpbmd1YWwgcmV0cmlldmFsLWF1Z21lbnRlZCBnZW5lcmF0aW9uIChSQUcpIGFuZCB0b29sIHVzZS4gTW9yZSBicm9hZGx5LCBpdCBpcyBiZXR0ZXIgYXQgbWF0aCwgY29kZSBhbmQgcmVhc29uaW5nIGFuZCBpcyBjb21wZXRpdGl2ZSB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBsYXJnZXIgQ29tbWFuZCBSKyBtb2RlbC5cblxuUmVhZCB0aGUgbGF1bmNoIHBvc3QgW2hlcmVdKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2NoYW5nZWxvZy9jb21tYW5kLWdldHMtcmVmcmVzaGVkKS5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS12bC03Yi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUtVkwgN0IgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNDgwMzIwMCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IFZMIDdCIGlzIGEgbXVsdGltb2RhbCBMTE0gZnJvbSB0aGUgUXdlbiBUZWFtIHdpdGggdGhlIGZvbGxvd2luZyBrZXkgZW5oYW5jZW1lbnRzOlxuXG4tIFNvVEEgdW5kZXJzdGFuZGluZyBvZiBpbWFnZXMgb2YgdmFyaW91cyByZXNvbHV0aW9uICYgcmF0aW86IFF3ZW4yLjUtVkwgYWNoaWV2ZXMgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBvbiB2aXN1YWwgdW5kZXJzdGFuZGluZyBiZW5jaG1hcmtzLCBpbmNsdWRpbmcgTWF0aFZpc3RhLCBEb2NWUUEsIFJlYWxXb3JsZFFBLCBNVFZRQSwgZXRjLlxuXG4tIFVuZGVyc3RhbmRpbmcgdmlkZW9zIG9mIDIwbWluKzogUXdlbjIuNS1WTCBjYW4gdW5kZXJzdGFuZCB2aWRlb3Mgb3ZlciAyMCBtaW51dGVzIGZvciBoaWdoLXF1YWxpdHkgdmlkZW8tYmFzZWQgcXVlc3Rpb24gYW5zd2VyaW5nLCBkaWFsb2csIGNvbnRlbnQgY3JlYXRpb24sIGV0Yy5cblxuLSBBZ2VudCB0aGF0IGNhbiBvcGVyYXRlIHlvdXIgbW9iaWxlcywgcm9ib3RzLCBldGMuOiB3aXRoIHRoZSBhYmlsaXRpZXMgb2YgY29tcGxleCByZWFzb25pbmcgYW5kIGRlY2lzaW9uIG1ha2luZywgUXdlbjIuNS1WTCBjYW4gYmUgaW50ZWdyYXRlZCB3aXRoIGRldmljZXMgbGlrZSBtb2JpbGUgcGhvbmVzLCByb2JvdHMsIGV0Yy4sIGZvciBhdXRvbWF0aWMgb3BlcmF0aW9uIGJhc2VkIG9uIHZpc3VhbCBlbnZpcm9ubWVudCBhbmQgdGV4dCBpbnN0cnVjdGlvbnMuXG5cbi0gTXVsdGlsaW5ndWFsIFN1cHBvcnQ6IHRvIHNlcnZlIGdsb2JhbCB1c2VycywgYmVzaWRlcyBFbmdsaXNoIGFuZCBDaGluZXNlLCBRd2VuMi41LVZMIG5vdyBzdXBwb3J0cyB0aGUgdW5kZXJzdGFuZGluZyBvZiB0ZXh0cyBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGluc2lkZSBpbWFnZXMsIGluY2x1ZGluZyBtb3N0IEV1cm9wZWFuIGxhbmd1YWdlcywgSmFwYW5lc2UsIEtvcmVhbiwgQXJhYmljLCBWaWV0bmFtZXNlLCBldGMuXG5cbkZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGlzIFtibG9nIHBvc3RdKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLXZsLykgYW5kIFtHaXRIdWIgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL1F3ZW5MTS9Rd2VuMi1WTCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi0yLjUtdmwtN2ItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjogUXdlbjIuNS1WTCA3QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjQ4MDMyMDAsImRlc2NyaXB0aW9uIjoiUXdlbjIuNSBWTCA3QiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBVbmRlcnN0YW5kaW5nIHZpZGVvcyBvZiAyMG1pbis6IFF3ZW4yLjUtVkwgY2FuIHVuZGVyc3RhbmQgdmlkZW9zIG92ZXIgMjAgbWludXRlcyBmb3IgaGlnaC1xdWFsaXR5IHZpZGVvLWJhc2VkIHF1ZXN0aW9uIGFuc3dlcmluZywgZGlhbG9nLCBjb250ZW50IGNyZWF0aW9uLCBldGMuXG5cbi0gQWdlbnQgdGhhdCBjYW4gb3BlcmF0ZSB5b3VyIG1vYmlsZXMsIHJvYm90cywgZXRjLjogd2l0aCB0aGUgYWJpbGl0aWVzIG9mIGNvbXBsZXggcmVhc29uaW5nIGFuZCBkZWNpc2lvbiBtYWtpbmcsIFF3ZW4yLjUtVkwgY2FuIGJlIGludGVncmF0ZWQgd2l0aCBkZXZpY2VzIGxpa2UgbW9iaWxlIHBob25lcywgcm9ib3RzLCBldGMuLCBmb3IgYXV0b21hdGljIG9wZXJhdGlvbiBiYXNlZCBvbiB2aXN1YWwgZW52aXJvbm1lbnQgYW5kIHRleHQgaW5zdHJ1Y3Rpb25zLlxuXG4tIE11bHRpbGluZ3VhbCBTdXBwb3J0OiB0byBzZXJ2ZSBnbG9iYWwgdXNlcnMsIGJlc2lkZXMgRW5nbGlzaCBhbmQgQ2hpbmVzZSwgUXdlbjIuNS1WTCBub3cgc3VwcG9ydHMgdGhlIHVuZGVyc3RhbmRpbmcgb2YgdGV4dHMgaW4gZGlmZmVyZW50IGxhbmd1YWdlcyBpbnNpZGUgaW1hZ2VzLCBpbmNsdWRpbmcgbW9zdCBFdXJvcGVhbiBsYW5ndWFnZXMsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgVmlldG5hbWVzZSwgZXRjLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBzZWUgdGhpcyBbYmxvZyBwb3N0XShodHRwczovL3F3ZW5sbS5naXRodWIuaW8vYmxvZy9xd2VuMi12bC8pIGFuZCBbR2l0SHViIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9Rd2VuTE0vUXdlbjItVkwpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAxNDQ1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNhbzEway9sMy4xLWV1cnlhbGUtNzBiIiwibmFtZSI6IlNhbzEwSzogTGxhbWEgMy4xIEV1cnlhbGUgNzBCIHYyLjIiLCJjcmVhdGVkIjoxNzI0ODAzMjAwLCJkZXNjcmlwdGlvbiI6IkV1cnlhbGUgTDMuMSA3MEIgdjIuMiBpcyBhIG1vZGVsIGZvY3VzZWQgb24gY3JlYXRpdmUgcm9sZXBsYXkgZnJvbSBbU2FvMTBrXShodHRwczovL2tvLWZpLmNvbS9zYW8xMGspLiBJdCBpcyB0aGUgc3VjY2Vzc29yIG9mIFtFdXJ5YWxlIEwzIDcwQiB2Mi4xXSgvbW9kZWxzL3NhbzEway9sMy1ldXJ5YWxlLTcwYikuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktZmxhc2gtMS41LThiLWV4cCIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAxLjUgRmxhc2ggOEIgRXhwZXJpbWVudGFsIiwiY3JlYXRlZCI6MTcyNDgwMzIwMCwiZGVzY3JpcHRpb24iOiJHZW1pbmkgRmxhc2ggMS41IDhCIEV4cGVyaW1lbnRhbCBpcyBhbiBleHBlcmltZW50YWwsIDhCIHBhcmFtZXRlciB2ZXJzaW9uIG9mIHRoZSBbR2VtaW5pIEZsYXNoIDEuNV0oL21vZGVscy9nb29nbGUvZ2VtaW5pLWZsYXNoLTEuNSkgbW9kZWwuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4jbXVsdGltb2RhbFxuXG5Ob3RlOiBUaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgYW5kIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMsIGFuZCBtYXkgYmUgaGVhdmlseSByYXRlLWxpbWl0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS0xLTUtbWluaSIsIm5hbWUiOiJBSTIxOiBKYW1iYSAxLjUgTWluaSIsImNyZWF0ZWQiOjE3MjQzNzEyMDAsImRlc2NyaXB0aW9uIjoiSmFtYmEgMS41IE1pbmkgaXMgdGhlIHdvcmxkJ3MgZmlyc3QgcHJvZHVjdGlvbi1ncmFkZSBNYW1iYS1iYXNlZCBtb2RlbCwgY29tYmluaW5nIFNTTSBhbmQgVHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlcyBmb3IgYSAyNTZLIGNvbnRleHQgd2luZG93IGFuZCBoaWdoIGVmZmljaWVuY3kuXG5cbkl0IHdvcmtzIHdpdGggOSBsYW5ndWFnZXMgYW5kIGNhbiBoYW5kbGUgdmFyaW91cyB3cml0aW5nIGFuZCBhbmFseXNpcyB0YXNrcyBhcyB3ZWxsIGFzIG9yIGJldHRlciB0aGFuIHNpbWlsYXIgc21hbGwgbW9kZWxzLlxuXG5UaGlzIG1vZGVsIHVzZXMgbGVzcyBjb21wdXRlciBtZW1vcnkgYW5kIHdvcmtzIGZhc3RlciB3aXRoIGxvbmdlciB0ZXh0cyB0aGFuIHByZXZpb3VzIGRlc2lnbnMuXG5cblJlYWQgdGhlaXIgW2Fubm91bmNlbWVudF0oaHR0cHM6Ly93d3cuYWkyMS5jb20vYmxvZy9hbm5vdW5jaW5nLWphbWJhLW1vZGVsLWZhbWlseSkgdG8gbGVhcm4gbW9yZS4iLCJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpMjEvamFtYmEtMS01LWxhcmdlIiwibmFtZSI6IkFJMjE6IEphbWJhIDEuNSBMYXJnZSIsImNyZWF0ZWQiOjE3MjQzNzEyMDAsImRlc2NyaXB0aW9uIjoiSmFtYmEgMS41IExhcmdlIGlzIHBhcnQgb2YgQUkyMSdzIG5ldyBmYW1pbHkgb2Ygb3BlbiBtb2RlbHMsIG9mZmVyaW5nIHN1cGVyaW9yIHNwZWVkLCBlZmZpY2llbmN5LCBhbmQgcXVhbGl0eS5cblxuSXQgZmVhdHVyZXMgYSAyNTZLIGVmZmVjdGl2ZSBjb250ZXh0IHdpbmRvdywgdGhlIGxvbmdlc3QgYW1vbmcgb3BlbiBtb2RlbHMsIGVuYWJsaW5nIGltcHJvdmVkIHBlcmZvcm1hbmNlIG9uIHRhc2tzIGxpa2UgZG9jdW1lbnQgc3VtbWFyaXphdGlvbiBhbmQgYW5hbHlzaXMuXG5cbkJ1aWx0IG9uIGEgbm92ZWwgU1NNLVRyYW5zZm9ybWVyIGFyY2hpdGVjdHVyZSwgaXQgb3V0cGVyZm9ybXMgbGFyZ2VyIG1vZGVscyBsaWtlIExsYW1hIDMuMSA3MEIgb24gYmVuY2htYXJrcyB3aGlsZSBtYWludGFpbmluZyByZXNvdXJjZSBlZmZpY2llbmN5LlxuXG5SZWFkIHRoZWlyIFthbm5vdW5jZW1lbnRdKGh0dHBzOi8vd3d3LmFpMjEuY29tL2Jsb2cvYW5ub3VuY2luZy1qYW1iYS1tb2RlbC1mYW1pbHkpIHRvIGxlYXJuIG1vcmUuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWljcm9zb2Z0L3BoaS0zLjUtbWluaS0xMjhrLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpLTMuNSBNaW5pIDEyOEsgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI0MTk4NDAwLCJkZXNjcmlwdGlvbiI6IlBoaS0zLjUgbW9kZWxzIGFyZSBsaWdodHdlaWdodCwgc3RhdGUtb2YtdGhlLWFydCBvcGVuIG1vZGVscy4gVGhlc2UgbW9kZWxzIHdlcmUgdHJhaW5lZCB3aXRoIFBoaS0zIGRhdGFzZXRzIHRoYXQgaW5jbHVkZSBib3RoIHN5bnRoZXRpYyBkYXRhIGFuZCB0aGUgZmlsdGVyZWQsIHB1YmxpY2x5IGF2YWlsYWJsZSB3ZWJzaXRlcyBkYXRhLCB3aXRoIGEgZm9jdXMgb24gaGlnaCBxdWFsaXR5IGFuZCByZWFzb25pbmctZGVuc2UgcHJvcGVydGllcy4gUGhpLTMuNSBNaW5pIHVzZXMgMy44QiBwYXJhbWV0ZXJzLCBhbmQgaXMgYSBkZW5zZSBkZWNvZGVyLW9ubHkgdHJhbnNmb3JtZXIgbW9kZWwgdXNpbmcgdGhlIHNhbWUgdG9rZW5pemVyIGFzIFtQaGktMyBNaW5pXSgvbW9kZWxzL21pY3Jvc29mdC9waGktMy1taW5pLTEyOGstaW5zdHJ1Y3QpLlxuXG5UaGUgbW9kZWxzIHVuZGVyd2VudCBhIHJpZ29yb3VzIGVuaGFuY2VtZW50IHByb2Nlc3MsIGluY29ycG9yYXRpbmcgYm90aCBzdXBlcnZpc2VkIGZpbmUtdHVuaW5nLCBwcm94aW1hbCBwb2xpY3kgb3B0aW1pemF0aW9uLCBhbmQgZGlyZWN0IHByZWZlcmVuY2Ugb3B0aW1pemF0aW9uIHRvIGVuc3VyZSBwcmVjaXNlIGluc3RydWN0aW9uIGFkaGVyZW5jZSBhbmQgcm9idXN0IHNhZmV0eSBtZWFzdXJlcy4gV2hlbiBhc3Nlc3NlZCBhZ2FpbnN0IGJlbmNobWFya3MgdGhhdCB0ZXN0IGNvbW1vbiBzZW5zZSwgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZywgbWF0aCwgY29kZSwgbG9uZyBjb250ZXh0IGFuZCBsb2dpY2FsIHJlYXNvbmluZywgUGhpLTMuNSBtb2RlbHMgc2hvd2Nhc2VkIHJvYnVzdCBhbmQgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBhbW9uZyBtb2RlbHMgd2l0aCBsZXNzIHRoYW4gMTMgYmlsbGlvbiBwYXJhbWV0ZXJzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJwaGkzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvaGVybWVzLTMtbGxhbWEtMy4xLTcwYiIsIm5hbWUiOiJOb3VzOiBIZXJtZXMgMyA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIzOTM5MjAwLCJkZXNjcmlwdGlvbiI6Ikhlcm1lcyAzIGlzIGEgZ2VuZXJhbGlzdCBsYW5ndWFnZSBtb2RlbCB3aXRoIG1hbnkgaW1wcm92ZW1lbnRzIG92ZXIgW0hlcm1lcyAyXSgvbW9kZWxzL25vdXNyZXNlYXJjaC9ub3VzLWhlcm1lcy0yLW1pc3RyYWwtN2ItZHBvKSwgaW5jbHVkaW5nIGFkdmFuY2VkIGFnZW50aWMgY2FwYWJpbGl0aWVzLCBtdWNoIGJldHRlciByb2xlcGxheWluZywgcmVhc29uaW5nLCBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbiwgbG9uZyBjb250ZXh0IGNvaGVyZW5jZSwgYW5kIGltcHJvdmVtZW50cyBhY3Jvc3MgdGhlIGJvYXJkLlxuXG5IZXJtZXMgMyA3MEIgaXMgYSBjb21wZXRpdGl2ZSwgaWYgbm90IHN1cGVyaW9yIGZpbmV0dW5lIG9mIHRoZSBbTGxhbWEtMy4xIDcwQiBmb3VuZGF0aW9uIG1vZGVsXSgvbW9kZWxzL21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdCksIGZvY3VzZWQgb24gYWxpZ25pbmcgTExNcyB0byB0aGUgdXNlciwgd2l0aCBwb3dlcmZ1bCBzdGVlcmluZyBjYXBhYmlsaXRpZXMgYW5kIGNvbnRyb2wgZ2l2ZW4gdG8gdGhlIGVuZCB1c2VyLlxuXG5UaGUgSGVybWVzIDMgc2VyaWVzIGJ1aWxkcyBhbmQgZXhwYW5kcyBvbiB0aGUgSGVybWVzIDIgc2V0IG9mIGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIG1vcmUgcG93ZXJmdWwgYW5kIHJlbGlhYmxlIGZ1bmN0aW9uIGNhbGxpbmcgYW5kIHN0cnVjdHVyZWQgb3V0cHV0IGNhcGFiaWxpdGllcywgZ2VuZXJhbGlzdCBhc3Npc3RhbnQgY2FwYWJpbGl0aWVzLCBhbmQgaW1wcm92ZWQgY29kZSBnZW5lcmF0aW9uIHNraWxscy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibm91c3Jlc2VhcmNoL2hlcm1lcy0zLWxsYW1hLTMuMS00MDViIiwibmFtZSI6Ik5vdXM6IEhlcm1lcyAzIDQwNUIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIzNzY2NDAwLCJkZXNjcmlwdGlvbiI6Ikhlcm1lcyAzIGlzIGEgZ2VuZXJhbGlzdCBsYW5ndWFnZSBtb2RlbCB3aXRoIG1hbnkgaW1wcm92ZW1lbnRzIG92ZXIgSGVybWVzIDIsIGluY2x1ZGluZyBhZHZhbmNlZCBhZ2VudGljIGNhcGFiaWxpdGllcywgbXVjaCBiZXR0ZXIgcm9sZXBsYXlpbmcsIHJlYXNvbmluZywgbXVsdGktdHVybiBjb252ZXJzYXRpb24sIGxvbmcgY29udGV4dCBjb2hlcmVuY2UsIGFuZCBpbXByb3ZlbWVudHMgYWNyb3NzIHRoZSBib2FyZC5cblxuSGVybWVzIDMgNDA1QiBpcyBhIGZyb250aWVyLWxldmVsLCBmdWxsLXBhcmFtZXRlciBmaW5ldHVuZSBvZiB0aGUgTGxhbWEtMy4xIDQwNUIgZm91bmRhdGlvbiBtb2RlbCwgZm9jdXNlZCBvbiBhbGlnbmluZyBMTE1zIHRvIHRoZSB1c2VyLCB3aXRoIHBvd2VyZnVsIHN0ZWVyaW5nIGNhcGFiaWxpdGllcyBhbmQgY29udHJvbCBnaXZlbiB0byB0aGUgZW5kIHVzZXIuXG5cblRoZSBIZXJtZXMgMyBzZXJpZXMgYnVpbGRzIGFuZCBleHBhbmRzIG9uIHRoZSBIZXJtZXMgMiBzZXQgb2YgY2FwYWJpbGl0aWVzLCBpbmNsdWRpbmcgbW9yZSBwb3dlcmZ1bCBhbmQgcmVsaWFibGUgZnVuY3Rpb24gY2FsbGluZyBhbmQgc3RydWN0dXJlZCBvdXRwdXQgY2FwYWJpbGl0aWVzLCBnZW5lcmFsaXN0IGFzc2lzdGFudCBjYXBhYmlsaXRpZXMsIGFuZCBpbXByb3ZlZCBjb2RlIGdlbmVyYXRpb24gc2tpbGxzLlxuXG5IZXJtZXMgMyBpcyBjb21wZXRpdGl2ZSwgaWYgbm90IHN1cGVyaW9yLCB0byBMbGFtYS0zLjEgSW5zdHJ1Y3QgbW9kZWxzIGF0IGdlbmVyYWwgY2FwYWJpbGl0aWVzLCB3aXRoIHZhcnlpbmcgc3RyZW5ndGhzIGFuZCB3ZWFrbmVzc2VzIGF0dHJpYnV0YWJsZSBiZXR3ZWVuIHRoZSB0d28uIiwiY29udGV4dF9sZW5ndGgiOjEzMTAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2NoYXRncHQtNG8tbGF0ZXN0IiwibmFtZSI6Ik9wZW5BSTogQ2hhdEdQVC00byIsImNyZWF0ZWQiOjE3MjM1OTM2MDAsImRlc2NyaXB0aW9uIjoiT3BlbkFJIENoYXRHUFQgNG8gaXMgY29udGludWFsbHkgdXBkYXRlZCBieSBPcGVuQUkgdG8gcG9pbnQgdG8gdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBHUFQtNG8gdXNlZCBieSBDaGF0R1BULiBJdCB0aGVyZWZvcmUgZGlmZmVycyBzbGlnaHRseSBmcm9tIHRoZSBBUEkgdmVyc2lvbiBvZiBbR1BULTRvXSgvbW9kZWxzL29wZW5haS9ncHQtNG8pIGluIHRoYXQgaXQgaGFzIGFkZGl0aW9uYWwgUkxIRi4gSXQgaXMgaW50ZW5kZWQgZm9yIHJlc2VhcmNoIGFuZCBldmFsdWF0aW9uLlxuXG5PcGVuQUkgbm90ZXMgdGhhdCB0aGlzIG1vZGVsIGlzIG5vdCBzdWl0ZWQgZm9yIHByb2R1Y3Rpb24gdXNlLWNhc2VzIGFzIGl0IG1heSBiZSByZW1vdmVkIG9yIHJlZGlyZWN0ZWQgdG8gYW5vdGhlciBtb2RlbCBpbiB0aGUgZnV0dXJlLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA3MjI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMtbHVuYXJpcy04YiIsIm5hbWUiOiJTYW8xMEs6IExsYW1hIDMgOEIgTHVuYXJpcyIsImNyZWF0ZWQiOjE3MjM1MDcyMDAsImRlc2NyaXB0aW9uIjoiTHVuYXJpcyA4QiBpcyBhIHZlcnNhdGlsZSBnZW5lcmFsaXN0IGFuZCByb2xlcGxheWluZyBtb2RlbCBiYXNlZCBvbiBMbGFtYSAzLiBJdCdzIGEgc3RyYXRlZ2ljIG1lcmdlIG9mIG11bHRpcGxlIG1vZGVscywgZGVzaWduZWQgdG8gYmFsYW5jZSBjcmVhdGl2aXR5IHdpdGggaW1wcm92ZWQgbG9naWMgYW5kIGdlbmVyYWwga25vd2xlZGdlLlxuXG5DcmVhdGVkIGJ5IFtTYW8xMGtdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vU2FvMTBrKSwgdGhpcyBtb2RlbCBhaW1zIHRvIG9mZmVyIGFuIGltcHJvdmVkIGV4cGVyaWVuY2Ugb3ZlciBTdGhlbm8gdjMuMiwgd2l0aCBlbmhhbmNlZCBjcmVhdGl2aXR5IGFuZCBsb2dpY2FsIHJlYXNvbmluZy5cblxuRm9yIGJlc3QgcmVzdWx0cywgdXNlIHdpdGggTGxhbWEgMyBJbnN0cnVjdCBjb250ZXh0IHRlbXBsYXRlLCB0ZW1wZXJhdHVyZSAxLjQsIGFuZCBtaW5fcCAwLjEuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhZXRoZXJ3aWluZy9tbi1zdGFyY2Fubm9uLTEyYiIsIm5hbWUiOiJBZXRoZXJ3aWluZzogU3RhcmNhbm5vbiAxMkIiLCJjcmVhdGVkIjoxNzIzNTA3MjAwLCJkZXNjcmlwdGlvbiI6IlN0YXJjYW5ub24gMTJCIHYyIGlzIGEgY3JlYXRpdmUgcm9sZXBsYXkgYW5kIHN0b3J5IHdyaXRpbmcgbW9kZWwsIGJhc2VkIG9uIE1pc3RyYWwgTmVtbywgdXNpbmcgW25vdGhpbmdpaXNyZWFsL21uLWNlbGVzdGUtMTJiXSgvbm90aGluZ2lpc3JlYWwvbW4tY2VsZXN0ZS0xMmIpIGFzIGEgYmFzZSwgd2l0aCBbaW50ZXJ2aXRlbnMvbWluaS1tYWdudW0tMTJiLXYxLjFdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vaW50ZXJ2aXRlbnMvbWluaS1tYWdudW0tMTJiLXYxLjEpIG1lcmdlZCBpbiB1c2luZyB0aGUgW1RJRVNdKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yMzA2LjAxNzA4KSBtZXRob2QuXG5cbkFsdGhvdWdoIG1vcmUgc2ltaWxhciB0byBNYWdudW0gb3ZlcmFsbCwgdGhlIG1vZGVsIHJlbWFpbnMgdmVyeSBjcmVhdGl2ZSwgd2l0aCBhIHBsZWFzYW50IHdyaXRpbmcgc3R5bGUuIEl0IGlzIHJlY29tbWVuZGVkIGZvciBwZW9wbGUgd2FudGluZyBtb3JlIHZhcmlldHkgdGhhbiBNYWdudW0sIGFuZCB5ZXQgbW9yZSB2ZXJib3NlIHByb3NlIHRoYW4gQ2VsZXN0ZS4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLTIwMjQtMDgtMDYiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8gKDIwMjQtMDgtMDYpIiwiY3JlYXRlZCI6MTcyMjkwMjQwMCwiZGVzY3JpcHRpb24iOiJUaGUgMjAyNC0wOC0wNiB2ZXJzaW9uIG9mIEdQVC00byBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gc3RydWN0dXJlZCBvdXRwdXRzLCB3aXRoIHRoZSBhYmlsaXR5IHRvIHN1cHBseSBhIEpTT04gc2NoZW1hIGluIHRoZSByZXNwb25lX2Zvcm1hdC4gUmVhZCBtb3JlIFtoZXJlXShodHRwczovL29wZW5haS5jb20vaW5kZXgvaW50cm9kdWNpbmctc3RydWN0dXJlZC1vdXRwdXRzLWluLXRoZS1hcGkvKS5cblxuR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSkiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYxMyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTI1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS00MDViIiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMSA0MDVCIChiYXNlKSIsImNyZWF0ZWQiOjE3MjI1NTY4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgaXMgdGhlIGJhc2UgNDA1QiBwcmUtdHJhaW5lZCB2ZXJzaW9uLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJub25lIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3RoaW5naWlzcmVhbC9tbi1jZWxlc3RlLTEyYiIsIm5hbWUiOiJNaXN0cmFsIE5lbW8gMTJCIENlbGVzdGUiLCJjcmVhdGVkIjoxNzIyNTU2ODAwLCJkZXNjcmlwdGlvbiI6IkEgc3BlY2lhbGl6ZWQgc3Rvcnkgd3JpdGluZyBhbmQgcm9sZXBsYXlpbmcgbW9kZWwgYmFzZWQgb24gTWlzdHJhbCdzIE5lTW8gMTJCIEluc3RydWN0LiBGaW5lLXR1bmVkIG9uIGN1cmF0ZWQgZGF0YXNldHMgaW5jbHVkaW5nIFJlZGRpdCBXcml0aW5nIFByb21wdHMgYW5kIE9wdXMgSW5zdHJ1Y3QgMjVLLlxuXG5UaGlzIG1vZGVsIGV4Y2VscyBhdCBjcmVhdGl2ZSB3cml0aW5nLCBvZmZlcmluZyBpbXByb3ZlZCBOU0ZXIGNhcGFiaWxpdGllcywgd2l0aCBzbWFydGVyIGFuZCBtb3JlIGFjdGl2ZSBuYXJyYXRpb24uIEl0IGRlbW9uc3RyYXRlcyByZW1hcmthYmxlIHZlcnNhdGlsaXR5IGluIGJvdGggU0ZXIGFuZCBOU0ZXIHNjZW5hcmlvcywgd2l0aCBzdHJvbmcgT3V0IG9mIENoYXJhY3RlciAoT09DKSBzdGVlcmluZyBjYXBhYmlsaXRpZXMsIGFsbG93aW5nIGZpbmUtdHVuZWQgY29udHJvbCBvdmVyIG5hcnJhdGl2ZSBkaXJlY3Rpb24gYW5kIGNoYXJhY3RlciBiZWhhdmlvci5cblxuQ2hlY2sgb3V0IHRoZSBtb2RlbCdzIFtIdWdnaW5nRmFjZSBwYWdlXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL25vdGhpbmdpaXNyZWFsL01OLTEyQi1DZWxlc3RlLVYxLjkpIGZvciBkZXRhaWxzIG9uIHdoYXQgcGFyYW1ldGVycyBhbmQgcHJvbXB0cyB3b3JrIGJlc3QhIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicGVycGxleGl0eS9sbGFtYS0zLjEtc29uYXItc21hbGwtMTI4ay1vbmxpbmUiLCJuYW1lIjoiUGVycGxleGl0eTogTGxhbWEgMy4xIFNvbmFyIDhCIE9ubGluZSIsImNyZWF0ZWQiOjE3MjI0NzA0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4xIFNvbmFyIGlzIFBlcnBsZXhpdHkncyBsYXRlc3QgbW9kZWwgZmFtaWx5LiBJdCBzdXJwYXNzZXMgdGhlaXIgZWFybGllciBTb25hciBtb2RlbHMgaW4gY29zdC1lZmZpY2llbmN5LCBzcGVlZCwgYW5kIHBlcmZvcm1hbmNlLlxuXG5UaGlzIGlzIHRoZSBvbmxpbmUgdmVyc2lvbiBvZiB0aGUgW29mZmxpbmUgY2hhdCBtb2RlbF0oL21vZGVscy9wZXJwbGV4aXR5L2xsYW1hLTMuMS1zb25hci1zbWFsbC0xMjhrLWNoYXQpLiBJdCBpcyBmb2N1c2VkIG9uIGRlbGl2ZXJpbmcgaGVscGZ1bCwgdXAtdG8tZGF0ZSwgYW5kIGZhY3R1YWwgcmVzcG9uc2VzLiAjb25saW5lIiwiY29udGV4dF9sZW5ndGgiOjEyNzA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMC4wMDUiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvbGxhbWEtMy4xLXNvbmFyLWxhcmdlLTEyOGstb25saW5lIiwibmFtZSI6IlBlcnBsZXhpdHk6IExsYW1hIDMuMSBTb25hciA3MEIgT25saW5lIiwiY3JlYXRlZCI6MTcyMjQ3MDQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjEgU29uYXIgaXMgUGVycGxleGl0eSdzIGxhdGVzdCBtb2RlbCBmYW1pbHkuIEl0IHN1cnBhc3NlcyB0aGVpciBlYXJsaWVyIFNvbmFyIG1vZGVscyBpbiBjb3N0LWVmZmljaWVuY3ksIHNwZWVkLCBhbmQgcGVyZm9ybWFuY2UuXG5cblRoaXMgaXMgdGhlIG9ubGluZSB2ZXJzaW9uIG9mIHRoZSBbb2ZmbGluZSBjaGF0IG1vZGVsXSgvbW9kZWxzL3BlcnBsZXhpdHkvbGxhbWEtMy4xLXNvbmFyLWxhcmdlLTEyOGstY2hhdCkuIEl0IGlzIGZvY3VzZWQgb24gZGVsaXZlcmluZyBoZWxwZnVsLCB1cC10by1kYXRlLCBhbmQgZmFjdHVhbCByZXNwb25zZXMuICNvbmxpbmUiLCJjb250ZXh0X2xlbmd0aCI6MTI3MDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEiLCJyZXF1ZXN0IjoiMC4wMDUiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4xLThiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4xIDhCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgOEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiBpcyBmYXN0IGFuZCBlZmZpY2llbnQuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS04Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgOEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIxNjkyODAwLCJkZXNjcmlwdGlvbiI6Ik1ldGEncyBsYXRlc3QgY2xhc3Mgb2YgbW9kZWwgKExsYW1hIDMuMSkgbGF1bmNoZWQgd2l0aCBhIHZhcmlldHkgb2Ygc2l6ZXMgJiBmbGF2b3JzLiBUaGlzIDhCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgZmFzdCBhbmQgZWZmaWNpZW50LlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLTEvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjEtNDA1Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgNDA1QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiVGhlIGhpZ2hseSBhbnRpY2lwYXRlZCA0MDBCIGNsYXNzIG9mIExsYW1hMyBpcyBoZXJlISBDbG9ja2luZyBpbiBhdCAxMjhrIGNvbnRleHQgd2l0aCBpbXByZXNzaXZlIGV2YWwgc2NvcmVzLCB0aGUgTWV0YSBBSSB0ZWFtIGNvbnRpbnVlcyB0byBwdXNoIHRoZSBmcm9udGllciBvZiBvcGVuLXNvdXJjZSBMTE1zLlxuXG5NZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzLjEpIGxhdW5jaGVkIHdpdGggYSB2YXJpZXR5IG9mIHNpemVzICYgZmxhdm9ycy4gVGhpcyA0MDVCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW5jbHVkaW5nIEdQVC00byBhbmQgQ2xhdWRlIDMuNSBTb25uZXQgaW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgNzBCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyMTY5MjgwMCwiZGVzY3JpcHRpb24iOiJNZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzLjEpIGxhdW5jaGVkIHdpdGggYSB2YXJpZXR5IG9mIHNpemVzICYgZmxhdm9ycy4gVGhpcyA3MEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiBpcyBvcHRpbWl6ZWQgZm9yIGhpZ2ggcXVhbGl0eSBkaWFsb2d1ZSB1c2VjYXNlcy5cblxuSXQgaGFzIGRlbW9uc3RyYXRlZCBzdHJvbmcgcGVyZm9ybWFuY2UgY29tcGFyZWQgdG8gbGVhZGluZyBjbG9zZWQtc291cmNlIG1vZGVscyBpbiBodW1hbiBldmFsdWF0aW9ucy5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly9haS5tZXRhLmNvbS9ibG9nL21ldGEtbGxhbWEtMy0xLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL2NvZGVzdHJhbC1tYW1iYSIsIm5hbWUiOiJNaXN0cmFsOiBDb2Rlc3RyYWwgTWFtYmEiLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgNy4zQiBwYXJhbWV0ZXIgTWFtYmEtYmFzZWQgbW9kZWwgZGVzaWduZWQgZm9yIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrcy5cblxuLSBMaW5lYXIgdGltZSBpbmZlcmVuY2UsIGFsbG93aW5nIGZvciB0aGVvcmV0aWNhbGx5IGluZmluaXRlIHNlcXVlbmNlIGxlbmd0aHNcbi0gMjU2ayB0b2tlbiBjb250ZXh0IHdpbmRvd1xuLSBPcHRpbWl6ZWQgZm9yIHF1aWNrIHJlc3BvbnNlcywgZXNwZWNpYWxseSBiZW5lZmljaWFsIGZvciBjb2RlIHByb2R1Y3Rpdml0eVxuLSBQZXJmb3JtcyBjb21wYXJhYmx5IHRvIHN0YXRlLW9mLXRoZS1hcnQgdHJhbnNmb3JtZXIgbW9kZWxzIGluIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrc1xuLSBBdmFpbGFibGUgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3IgZnJlZSB1c2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiIsImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLW5lbW86ZnJlZSIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIE5lbW8gKGZyZWUpIiwiY3JlYXRlZCI6MTcyMTM0NzIwMCwiZGVzY3JpcHRpb24iOiJBIDEyQiBwYXJhbWV0ZXIgbW9kZWwgd2l0aCBhIDEyOGsgdG9rZW4gY29udGV4dCBsZW5ndGggYnVpbHQgYnkgTWlzdHJhbCBpbiBjb2xsYWJvcmF0aW9uIHdpdGggTlZJRElBLlxuXG5UaGUgbW9kZWwgaXMgbXVsdGlsaW5ndWFsLCBzdXBwb3J0aW5nIEVuZ2xpc2gsIEZyZW5jaCwgR2VybWFuLCBTcGFuaXNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBDaGluZXNlLCBKYXBhbmVzZSwgS29yZWFuLCBBcmFiaWMsIGFuZCBIaW5kaS5cblxuSXQgc3VwcG9ydHMgZnVuY3Rpb24gY2FsbGluZyBhbmQgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJtaXN0cmFsIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbmVtbyIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIE5lbW8iLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgMTJCIHBhcmFtZXRlciBtb2RlbCB3aXRoIGEgMTI4ayB0b2tlbiBjb250ZXh0IGxlbmd0aCBidWlsdCBieSBNaXN0cmFsIGluIGNvbGxhYm9yYXRpb24gd2l0aCBOVklESUEuXG5cblRoZSBtb2RlbCBpcyBtdWx0aWxpbmd1YWwsIHN1cHBvcnRpbmcgRW5nbGlzaCwgRnJlbmNoLCBHZXJtYW4sIFNwYW5pc2gsIEl0YWxpYW4sIFBvcnR1Z3Vlc2UsIENoaW5lc2UsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgYW5kIEhpbmRpLlxuXG5JdCBzdXBwb3J0cyBmdW5jdGlvbiBjYWxsaW5nIGFuZCBpcyByZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG8tbWluaSIsIm5hbWUiOiJPcGVuQUk6IEdQVC00by1taW5pIiwiY3JlYXRlZCI6MTcyMTI2MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtNG8gbWluaSBpcyBPcGVuQUkncyBuZXdlc3QgbW9kZWwgYWZ0ZXIgW0dQVC00IE9tbmldKC9tb2RlbHMvb3BlbmFpL2dwdC00byksIHN1cHBvcnRpbmcgYm90aCB0ZXh0IGFuZCBpbWFnZSBpbnB1dHMgd2l0aCB0ZXh0IG91dHB1dHMuXG5cbkFzIHRoZWlyIG1vc3QgYWR2YW5jZWQgc21hbGwgbW9kZWwsIGl0IGlzIG1hbnkgbXVsdGlwbGVzIG1vcmUgYWZmb3JkYWJsZSB0aGFuIG90aGVyIHJlY2VudCBmcm9udGllciBtb2RlbHMsIGFuZCBtb3JlIHRoYW4gNjAlIGNoZWFwZXIgdGhhbiBbR1BULTMuNSBUdXJib10oL21vZGVscy9vcGVuYWkvZ3B0LTMuNS10dXJibykuIEl0IG1haW50YWlucyBTT1RBIGludGVsbGlnZW5jZSwgd2hpbGUgYmVpbmcgc2lnbmlmaWNhbnRseSBtb3JlIGNvc3QtZWZmZWN0aXZlLlxuXG5HUFQtNG8gbWluaSBhY2hpZXZlcyBhbiA4MiUgc2NvcmUgb24gTU1MVSBhbmQgcHJlc2VudGx5IHJhbmtzIGhpZ2hlciB0aGFuIEdQVC00IG9uIGNoYXQgcHJlZmVyZW5jZXMgW2NvbW1vbiBsZWFkZXJib2FyZHNdKGh0dHBzOi8vYXJlbmEubG1zeXMub3JnLykuXG5cbkNoZWNrIG91dCB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9pbmRleC9ncHQtNG8tbWluaS1hZHZhbmNpbmctY29zdC1lZmZpY2llbnQtaW50ZWxsaWdlbmNlLykgdG8gbGVhcm4gbW9yZS5cblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDIxNyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by1taW5pLTIwMjQtMDctMTgiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8tbWluaSAoMjAyNC0wNy0xOCkiLCJjcmVhdGVkIjoxNzIxMjYwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00byBtaW5pIGlzIE9wZW5BSSdzIG5ld2VzdCBtb2RlbCBhZnRlciBbR1BULTQgT21uaV0oL21vZGVscy9vcGVuYWkvZ3B0LTRvKSwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy5cblxuQXMgdGhlaXIgbW9zdCBhZHZhbmNlZCBzbWFsbCBtb2RlbCwgaXQgaXMgbWFueSBtdWx0aXBsZXMgbW9yZSBhZmZvcmRhYmxlIHRoYW4gb3RoZXIgcmVjZW50IGZyb250aWVyIG1vZGVscywgYW5kIG1vcmUgdGhhbiA2MCUgY2hlYXBlciB0aGFuIFtHUFQtMy41IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtMy41LXR1cmJvKS4gSXQgbWFpbnRhaW5zIFNPVEEgaW50ZWxsaWdlbmNlLCB3aGlsZSBiZWluZyBzaWduaWZpY2FudGx5IG1vcmUgY29zdC1lZmZlY3RpdmUuXG5cbkdQVC00byBtaW5pIGFjaGlldmVzIGFuIDgyJSBzY29yZSBvbiBNTUxVIGFuZCBwcmVzZW50bHkgcmFua3MgaGlnaGVyIHRoYW4gR1BULTQgb24gY2hhdCBwcmVmZXJlbmNlcyBbY29tbW9uIGxlYWRlcmJvYXJkc10oaHR0cHM6Ly9hcmVuYS5sbXN5cy5vcmcvKS5cblxuQ2hlY2sgb3V0IHRoZSBbbGF1bmNoIGFubm91bmNlbWVudF0oaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2dwdC00by1taW5pLWFkdmFuY2luZy1jb3N0LWVmZmljaWVudC1pbnRlbGxpZ2VuY2UvKSB0byBsZWFybiBtb3JlLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA3MjI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi0yN2ItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAyIDI3QiIsImNyZWF0ZWQiOjE3MjA4Mjg4MDAsImRlc2NyaXB0aW9uIjoiR2VtbWEgMiAyN0IgYnkgR29vZ2xlIGlzIGFuIG9wZW4gbW9kZWwgYnVpbHQgZnJvbSB0aGUgc2FtZSByZXNlYXJjaCBhbmQgdGVjaG5vbG9neSB1c2VkIHRvIGNyZWF0ZSB0aGUgW0dlbWluaSBtb2RlbHNdKC9tb2RlbHM/cT1nZW1pbmkpLlxuXG5HZW1tYSBtb2RlbHMgYXJlIHdlbGwtc3VpdGVkIGZvciBhIHZhcmlldHkgb2YgdGV4dCBnZW5lcmF0aW9uIHRhc2tzLCBpbmNsdWRpbmcgcXVlc3Rpb24gYW5zd2VyaW5nLCBzdW1tYXJpemF0aW9uLCBhbmQgcmVhc29uaW5nLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL2Jsb2cuZ29vZ2xlL3RlY2hub2xvZ3kvZGV2ZWxvcGVycy9nb29nbGUtZ2VtbWEtMi8pIGZvciBtb3JlIGRldGFpbHMuIFVzYWdlIG9mIEdlbW1hIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbW1hIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbW1hL3Rlcm1zKS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFscGluZGFsZS9tYWdudW0tNzJiIiwibmFtZSI6Ik1hZ251bSA3MkIiLCJjcmVhdGVkIjoxNzIwNjU2MDAwLCJkZXNjcmlwdGlvbiI6IkZyb20gdGhlIG1ha2VyIG9mIFtHb2xpYXRoXShodHRwczovL29wZW5yb3V0ZXIuYWkvbW9kZWxzL2FscGluZGFsZS9nb2xpYXRoLTEyMGIpLCBNYWdudW0gNzJCIGlzIHRoZSBmaXJzdCBpbiBhIG5ldyBmYW1pbHkgb2YgbW9kZWxzIGRlc2lnbmVkIHRvIGFjaGlldmUgdGhlIHByb3NlIHF1YWxpdHkgb2YgdGhlIENsYXVkZSAzIG1vZGVscywgbm90YWJseSBPcHVzICYgU29ubmV0LlxuXG5UaGUgbW9kZWwgaXMgYmFzZWQgb24gW1F3ZW4yIDcyQl0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL21vZGVscy9xd2VuL3F3ZW4tMi03MmItaW5zdHJ1Y3QpIGFuZCB0cmFpbmVkIHdpdGggNTUgbWlsbGlvbiB0b2tlbnMgb2YgaGlnaGx5IGN1cmF0ZWQgcm9sZXBsYXkgKFJQKSBkYXRhLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAyMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMjQsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi05Yi1pdDpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtbWEgMiA5QiAoZnJlZSkiLCJjcmVhdGVkIjoxNzE5NTMyODAwLCJkZXNjcmlwdGlvbiI6IkdlbW1hIDIgOUIgYnkgR29vZ2xlIGlzIGFuIGFkdmFuY2VkLCBvcGVuLXNvdXJjZSBsYW5ndWFnZSBtb2RlbCB0aGF0IHNldHMgYSBuZXcgc3RhbmRhcmQgZm9yIGVmZmljaWVuY3kgYW5kIHBlcmZvcm1hbmNlIGluIGl0cyBzaXplIGNsYXNzLlxuXG5EZXNpZ25lZCBmb3IgYSB3aWRlIHZhcmlldHkgb2YgdGFza3MsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgYW5kIHJlc2VhcmNoZXJzIHRvIGJ1aWxkIGlubm92YXRpdmUgYXBwbGljYXRpb25zLCB3aGlsZSBtYWludGFpbmluZyBhY2Nlc3NpYmlsaXR5LCBzYWZldHksIGFuZCBjb3N0LWVmZmVjdGl2ZW5lc3MuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vYmxvZy5nb29nbGUvdGVjaG5vbG9neS9kZXZlbG9wZXJzL2dvb2dsZS1nZW1tYS0yLykgZm9yIG1vcmUgZGV0YWlscy4gVXNhZ2Ugb2YgR2VtbWEgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtbWEgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvZ2VtbWEvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi05Yi1pdCIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDIgOUIiLCJjcmVhdGVkIjoxNzE5NTMyODAwLCJkZXNjcmlwdGlvbiI6IkdlbW1hIDIgOUIgYnkgR29vZ2xlIGlzIGFuIGFkdmFuY2VkLCBvcGVuLXNvdXJjZSBsYW5ndWFnZSBtb2RlbCB0aGF0IHNldHMgYSBuZXcgc3RhbmRhcmQgZm9yIGVmZmljaWVuY3kgYW5kIHBlcmZvcm1hbmNlIGluIGl0cyBzaXplIGNsYXNzLlxuXG5EZXNpZ25lZCBmb3IgYSB3aWRlIHZhcmlldHkgb2YgdGFza3MsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgYW5kIHJlc2VhcmNoZXJzIHRvIGJ1aWxkIGlubm92YXRpdmUgYXBwbGljYXRpb25zLCB3aGlsZSBtYWludGFpbmluZyBhY2Nlc3NpYmlsaXR5LCBzYWZldHksIGFuZCBjb3N0LWVmZmVjdGl2ZW5lc3MuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vYmxvZy5nb29nbGUvdGVjaG5vbG9neS9kZXZlbG9wZXJzL2dvb2dsZS1nZW1tYS0yLykgZm9yIG1vcmUgZGV0YWlscy4gVXNhZ2Ugb2YgR2VtbWEgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtbWEgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvZ2VtbWEvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiIwMS1haS95aS1sYXJnZSIsIm5hbWUiOiIwMS5BSTogWWkgTGFyZ2UiLCJjcmVhdGVkIjoxNzE5MjczNjAwLCJkZXNjcmlwdGlvbiI6IlRoZSBZaSBMYXJnZSBtb2RlbCB3YXMgZGVzaWduZWQgYnkgMDEuQUkgd2l0aCB0aGUgZm9sbG93aW5nIHVzZWNhc2VzIGluIG1pbmQ6IGtub3dsZWRnZSBzZWFyY2gsIGRhdGEgY2xhc3NpZmljYXRpb24sIGh1bWFuLWxpa2UgY2hhdCBib3RzLCBhbmQgY3VzdG9tZXIgc2VydmljZS5cblxuSXQgc3RhbmRzIG91dCBmb3IgaXRzIG11bHRpbGluZ3VhbCBwcm9maWNpZW5jeSwgcGFydGljdWxhcmx5IGluIFNwYW5pc2gsIENoaW5lc2UsIEphcGFuZXNlLCBHZXJtYW4sIGFuZCBGcmVuY2guXG5cbkNoZWNrIG91dCB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vMDEtYWkuZ2l0aHViLmlvL2Jsb2cvMDEuYWkteWktbGFyZ2UtbGxtLWxhdW5jaCkgdG8gbGVhcm4gbW9yZS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJZaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS1pbnN0cnVjdCIsIm5hbWUiOiJBSTIxOiBKYW1iYSBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTkyNzM2MDAsImRlc2NyaXB0aW9uIjoiVGhlIEphbWJhLUluc3RydWN0IG1vZGVsLCBpbnRyb2R1Y2VkIGJ5IEFJMjEgTGFicywgaXMgYW4gaW5zdHJ1Y3Rpb24tdHVuZWQgdmFyaWFudCBvZiB0aGVpciBoeWJyaWQgU1NNLVRyYW5zZm9ybWVyIEphbWJhIG1vZGVsLCBzcGVjaWZpY2FsbHkgb3B0aW1pemVkIGZvciBlbnRlcnByaXNlIGFwcGxpY2F0aW9ucy5cblxuLSAyNTZLIENvbnRleHQgV2luZG93OiBJdCBjYW4gcHJvY2VzcyBleHRlbnNpdmUgaW5mb3JtYXRpb24sIGVxdWl2YWxlbnQgdG8gYSA0MDAtcGFnZSBub3ZlbCwgd2hpY2ggaXMgYmVuZWZpY2lhbCBmb3IgdGFza3MgaW52b2x2aW5nIGxhcmdlIGRvY3VtZW50cyBzdWNoIGFzIGZpbmFuY2lhbCByZXBvcnRzIG9yIGxlZ2FsIGRvY3VtZW50c1xuLSBTYWZldHkgYW5kIEFjY3VyYWN5OiBKYW1iYS1JbnN0cnVjdCBpcyBkZXNpZ25lZCB3aXRoIGVuaGFuY2VkIHNhZmV0eSBmZWF0dXJlcyB0byBlbnN1cmUgc2VjdXJlIGRlcGxveW1lbnQgaW4gZW50ZXJwcmlzZSBlbnZpcm9ubWVudHMsIHJlZHVjaW5nIHRoZSByaXNrIGFuZCBjb3N0IG9mIGltcGxlbWVudGF0aW9uXG5cblJlYWQgdGhlaXIgW2Fubm91bmNlbWVudF0oaHR0cHM6Ly93d3cuYWkyMS5jb20vYmxvZy9hbm5vdW5jaW5nLWphbWJhKSB0byBsZWFybiBtb3JlLlxuXG5KYW1iYSBoYXMgYSBrbm93bGVkZ2UgY3V0b2ZmIG9mIEZlYnJ1YXJ5IDIwMjQuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQtMjAyNDA2MjA6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgU29ubmV0ICgyMDI0LTA2LTIwKSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcxODg0MTYwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogQXV0b25vbW91c2x5IHdyaXRlcywgZWRpdHMsIGFuZCBydW5zIGNvZGUgd2l0aCByZWFzb25pbmcgYW5kIHRyb3VibGVzaG9vdGluZ1xuLSBEYXRhIHNjaWVuY2U6IEF1Z21lbnRzIGh1bWFuIGRhdGEgc2NpZW5jZSBleHBlcnRpc2U7IG5hdmlnYXRlcyB1bnN0cnVjdHVyZWQgZGF0YSB3aGlsZSB1c2luZyBtdWx0aXBsZSB0b29scyBmb3IgaW5zaWdodHNcbi0gVmlzdWFsIHByb2Nlc3Npbmc6IGV4Y2VsbGluZyBhdCBpbnRlcnByZXRpbmcgY2hhcnRzLCBncmFwaHMsIGFuZCBpbWFnZXMsIGFjY3VyYXRlbHkgdHJhbnNjcmliaW5nIHRleHQgdG8gZGVyaXZlIGluc2lnaHRzIGJleW9uZCBqdXN0IHRoZSB0ZXh0IGFsb25lXG4tIEFnZW50aWMgdGFza3M6IGV4Y2VwdGlvbmFsIHRvb2wgdXNlLCBtYWtpbmcgaXQgZ3JlYXQgYXQgYWdlbnRpYyB0YXNrcyAoaS5lLiBjb21wbGV4LCBtdWx0aS1zdGVwIHByb2JsZW0gc29sdmluZyB0YXNrcyB0aGF0IHJlcXVpcmUgZW5nYWdpbmcgd2l0aCBvdGhlciBzeXN0ZW1zKVxuXG5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uICgyMDI0LTEwLTIzKSwgY2hlY2sgb3V0IFtDbGF1ZGUgMy41IFNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldCkuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0LTIwMjQwNjIwIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQgKDIwMjQtMDYtMjApIiwiY3JlYXRlZCI6MTcxODg0MTYwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogQXV0b25vbW91c2x5IHdyaXRlcywgZWRpdHMsIGFuZCBydW5zIGNvZGUgd2l0aCByZWFzb25pbmcgYW5kIHRyb3VibGVzaG9vdGluZ1xuLSBEYXRhIHNjaWVuY2U6IEF1Z21lbnRzIGh1bWFuIGRhdGEgc2NpZW5jZSBleHBlcnRpc2U7IG5hdmlnYXRlcyB1bnN0cnVjdHVyZWQgZGF0YSB3aGlsZSB1c2luZyBtdWx0aXBsZSB0b29scyBmb3IgaW5zaWdodHNcbi0gVmlzdWFsIHByb2Nlc3Npbmc6IGV4Y2VsbGluZyBhdCBpbnRlcnByZXRpbmcgY2hhcnRzLCBncmFwaHMsIGFuZCBpbWFnZXMsIGFjY3VyYXRlbHkgdHJhbnNjcmliaW5nIHRleHQgdG8gZGVyaXZlIGluc2lnaHRzIGJleW9uZCBqdXN0IHRoZSB0ZXh0IGFsb25lXG4tIEFnZW50aWMgdGFza3M6IGV4Y2VwdGlvbmFsIHRvb2wgdXNlLCBtYWtpbmcgaXQgZ3JlYXQgYXQgYWdlbnRpYyB0YXNrcyAoaS5lLiBjb21wbGV4LCBtdWx0aS1zdGVwIHByb2JsZW0gc29sdmluZyB0YXNrcyB0aGF0IHJlcXVpcmUgZW5nYWdpbmcgd2l0aCBvdGhlciBzeXN0ZW1zKVxuXG5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uICgyMDI0LTEwLTIzKSwgY2hlY2sgb3V0IFtDbGF1ZGUgMy41IFNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldCkuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMtZXVyeWFsZS03MGIiLCJuYW1lIjoiU2FvMTBrOiBMbGFtYSAzIEV1cnlhbGUgNzBCIHYyLjEiLCJjcmVhdGVkIjoxNzE4NjY4ODAwLCJkZXNjcmlwdGlvbiI6IkV1cnlhbGUgNzBCIHYyLjEgaXMgYSBtb2RlbCBmb2N1c2VkIG9uIGNyZWF0aXZlIHJvbGVwbGF5IGZyb20gW1NhbzEwa10oaHR0cHM6Ly9rby1maS5jb20vc2FvMTBrKS5cblxuLSBCZXR0ZXIgcHJvbXB0IGFkaGVyZW5jZS5cbi0gQmV0dGVyIGFuYXRvbXkgLyBzcGF0aWFsIGF3YXJlbmVzcy5cbi0gQWRhcHRzIG11Y2ggYmV0dGVyIHRvIHVuaXF1ZSBhbmQgY3VzdG9tIGZvcm1hdHRpbmcgLyByZXBseSBmb3JtYXRzLlxuLSBWZXJ5IGNyZWF0aXZlLCBsb3RzIG9mIHVuaXF1ZSBzd2lwZXMuXG4tIElzIG5vdCByZXN0cmljdGl2ZSBkdXJpbmcgcm9sZXBsYXlzLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE0OCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiY29nbml0aXZlY29tcHV0YXRpb25zL2RvbHBoaW4tbWl4dHJhbC04eDIyYiIsIm5hbWUiOiJEb2xwaGluIDIuOS4yIE1peHRyYWwgOHgyMkIg8J+QrCIsImNyZWF0ZWQiOjE3MTc4MDQ4MDAsImRlc2NyaXB0aW9uIjoiRG9scGhpbiAyLjkgaXMgZGVzaWduZWQgZm9yIGluc3RydWN0aW9uIGZvbGxvd2luZywgY29udmVyc2F0aW9uYWwsIGFuZCBjb2RpbmcuIFRoaXMgbW9kZWwgaXMgYSBmaW5ldHVuZSBvZiBbTWl4dHJhbCA4eDIyQiBJbnN0cnVjdF0oL21vZGVscy9taXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdCkuIEl0IGZlYXR1cmVzIGEgNjRrIGNvbnRleHQgbGVuZ3RoIGFuZCB3YXMgZmluZS10dW5lZCB3aXRoIGEgMTZrIHNlcXVlbmNlIGxlbmd0aCB1c2luZyBDaGF0TUwgdGVtcGxhdGVzLlxuXG5UaGlzIG1vZGVsIGlzIGEgc3VjY2Vzc29yIHRvIFtEb2xwaGluIE1peHRyYWwgOHg3Ql0oL21vZGVscy9jb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbi1taXh0cmFsLTh4N2IpLlxuXG5UaGUgbW9kZWwgaXMgdW5jZW5zb3JlZCBhbmQgaXMgc3RyaXBwZWQgb2YgYWxpZ25tZW50IGFuZCBiaWFzLiBJdCByZXF1aXJlcyBhbiBleHRlcm5hbCBhbGlnbm1lbnQgbGF5ZXIgZm9yIGV0aGljYWwgdXNlLiBVc2VycyBhcmUgY2F1dGlvbmVkIHRvIHVzZSB0aGlzIGhpZ2hseSBjb21wbGlhbnQgbW9kZWwgcmVzcG9uc2libHksIGFzIGRldGFpbGVkIGluIGEgYmxvZyBwb3N0IGFib3V0IHVuY2Vuc29yZWQgbW9kZWxzIGF0IFtlcmljaGFydGZvcmQuY29tL3VuY2Vuc29yZWQtbW9kZWxzXShodHRwczovL2VyaWNoYXJ0Zm9yZC5jb20vdW5jZW5zb3JlZC1tb2RlbHMpLlxuXG4jbW9lICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTItNzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW4gMiA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE3NzE4NDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yIDcyQiBpcyBhIHRyYW5zZm9ybWVyLWJhc2VkIG1vZGVsIHRoYXQgZXhjZWxzIGluIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIG11bHRpbGluZ3VhbCBjYXBhYmlsaXRpZXMsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCByZWFzb25pbmcuXG5cbkl0IGZlYXR1cmVzIFN3aUdMVSBhY3RpdmF0aW9uLCBhdHRlbnRpb24gUUtWIGJpYXMsIGFuZCBncm91cCBxdWVyeSBhdHRlbnRpb24uIEl0IGlzIHByZXRyYWluZWQgb24gZXh0ZW5zaXZlIGRhdGEgd2l0aCBzdXBlcnZpc2VkIGZpbmV0dW5pbmcgYW5kIGRpcmVjdCBwcmVmZXJlbmNlIG9wdGltaXphdGlvbi5cblxuRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoaXMgW2Jsb2cgcG9zdF0oaHR0cHM6Ly9xd2VubG0uZ2l0aHViLmlvL2Jsb2cvcXdlbjIvKSBhbmQgW0dpdEh1YiByZXBvXShodHRwczovL2dpdGh1Yi5jb20vUXdlbkxNL1F3ZW4yKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtUb25neWkgUWlhbndlbiBMSUNFTlNFIEFHUkVFTUVOVF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4xLjUtMTEwQi1DaGF0L2Jsb2IvbWFpbi9MSUNFTlNFKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgN0IgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcxNjc2ODAwMCwiZGVzY3JpcHRpb24iOiJBIGhpZ2gtcGVyZm9ybWluZywgaW5kdXN0cnktc3RhbmRhcmQgNy4zQiBwYXJhbWV0ZXIgbW9kZWwsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLlxuXG4qTWlzdHJhbCA3QiBJbnN0cnVjdCBoYXMgbXVsdGlwbGUgdmVyc2lvbiB2YXJpYW50cywgYW5kIHRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdGhlIGxhdGVzdCB2ZXJzaW9uLioiLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTY3NjgwMDAsImRlc2NyaXB0aW9uIjoiQSBoaWdoLXBlcmZvcm1pbmcsIGluZHVzdHJ5LXN0YW5kYXJkIDcuM0IgcGFyYW1ldGVyIG1vZGVsLCB3aXRoIG9wdGltaXphdGlvbnMgZm9yIHNwZWVkIGFuZCBjb250ZXh0IGxlbmd0aC5cblxuKk1pc3RyYWwgN0IgSW5zdHJ1Y3QgaGFzIG11bHRpcGxlIHZlcnNpb24gdmFyaWFudHMsIGFuZCB0aGlzIGlzIGludGVuZGVkIHRvIGJlIHRoZSBsYXRlc3QgdmVyc2lvbi4qIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJtaXN0cmFsIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA1NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjMiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCB2MC4zIiwiY3JlYXRlZCI6MTcxNjc2ODAwMCwiZGVzY3JpcHRpb24iOiJBIGhpZ2gtcGVyZm9ybWluZywgaW5kdXN0cnktc3RhbmRhcmQgNy4zQiBwYXJhbWV0ZXIgbW9kZWwsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLlxuXG5BbiBpbXByb3ZlZCB2ZXJzaW9uIG9mIFtNaXN0cmFsIDdCIEluc3RydWN0IHYwLjJdKC9tb2RlbHMvbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMiksIHdpdGggdGhlIGZvbGxvd2luZyBjaGFuZ2VzOlxuXG4tIEV4dGVuZGVkIHZvY2FidWxhcnkgdG8gMzI3Njhcbi0gU3VwcG9ydHMgdjMgVG9rZW5pemVyXG4tIFN1cHBvcnRzIGZ1bmN0aW9uIGNhbGxpbmdcblxuTk9URTogU3VwcG9ydCBmb3IgZnVuY3Rpb24gY2FsbGluZyBkZXBlbmRzIG9uIHRoZSBwcm92aWRlci4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDU1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibm91c3Jlc2VhcmNoL2hlcm1lcy0yLXByby1sbGFtYS0zLThiIiwibmFtZSI6Ik5vdXNSZXNlYXJjaDogSGVybWVzIDIgUHJvIC0gTGxhbWEtMyA4QiIsImNyZWF0ZWQiOjE3MTY3NjgwMDAsImRlc2NyaXB0aW9uIjoiSGVybWVzIDIgUHJvIGlzIGFuIHVwZ3JhZGVkLCByZXRyYWluZWQgdmVyc2lvbiBvZiBOb3VzIEhlcm1lcyAyLCBjb25zaXN0aW5nIG9mIGFuIHVwZGF0ZWQgYW5kIGNsZWFuZWQgdmVyc2lvbiBvZiB0aGUgT3Blbkhlcm1lcyAyLjUgRGF0YXNldCwgYXMgd2VsbCBhcyBhIG5ld2x5IGludHJvZHVjZWQgRnVuY3Rpb24gQ2FsbGluZyBhbmQgSlNPTiBNb2RlIGRhdGFzZXQgZGV2ZWxvcGVkIGluLWhvdXNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktMy1taW5pLTEyOGstaW5zdHJ1Y3QiLCJuYW1lIjoiTWljcm9zb2Z0OiBQaGktMyBNaW5pIDEyOEsgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE2NjgxNjAwLCJkZXNjcmlwdGlvbiI6IlBoaS0zIE1pbmkgaXMgYSBwb3dlcmZ1bCAzLjhCIHBhcmFtZXRlciBtb2RlbCBkZXNpZ25lZCBmb3IgYWR2YW5jZWQgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZywgcmVhc29uaW5nLCBhbmQgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLiBPcHRpbWl6ZWQgdGhyb3VnaCBzdXBlcnZpc2VkIGZpbmUtdHVuaW5nIGFuZCBwcmVmZXJlbmNlIGFkanVzdG1lbnRzLCBpdCBleGNlbHMgaW4gdGFza3MgaW52b2x2aW5nIGNvbW1vbiBzZW5zZSwgbWF0aGVtYXRpY3MsIGxvZ2ljYWwgcmVhc29uaW5nLCBhbmQgY29kZSBwcm9jZXNzaW5nLlxuXG5BdCB0aW1lIG9mIHJlbGVhc2UsIFBoaS0zIE1lZGl1bSBkZW1vbnN0cmF0ZWQgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBhbW9uZyBsaWdodHdlaWdodCBtb2RlbHMuIFRoaXMgbW9kZWwgaXMgc3RhdGljLCB0cmFpbmVkIG9uIGFuIG9mZmxpbmUgZGF0YXNldCB3aXRoIGFuIE9jdG9iZXIgMjAyMyBjdXRvZmYgZGF0ZS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoicGhpMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWljcm9zb2Z0L3BoaS0zLW1lZGl1bS0xMjhrLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpLTMgTWVkaXVtIDEyOEsgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE2NTA4ODAwLCJkZXNjcmlwdGlvbiI6IlBoaS0zIDEyOEsgTWVkaXVtIGlzIGEgcG93ZXJmdWwgMTQtYmlsbGlvbiBwYXJhbWV0ZXIgbW9kZWwgZGVzaWduZWQgZm9yIGFkdmFuY2VkIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIHJlYXNvbmluZywgYW5kIGluc3RydWN0aW9uIGZvbGxvd2luZy4gT3B0aW1pemVkIHRocm91Z2ggc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyBhbmQgcHJlZmVyZW5jZSBhZGp1c3RtZW50cywgaXQgZXhjZWxzIGluIHRhc2tzIGludm9sdmluZyBjb21tb24gc2Vuc2UsIG1hdGhlbWF0aWNzLCBsb2dpY2FsIHJlYXNvbmluZywgYW5kIGNvZGUgcHJvY2Vzc2luZy5cblxuQXQgdGltZSBvZiByZWxlYXNlLCBQaGktMyBNZWRpdW0gZGVtb25zdHJhdGVkIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbGlnaHR3ZWlnaHQgbW9kZWxzLiBJbiB0aGUgTU1MVS1Qcm8gZXZhbCwgdGhlIG1vZGVsIGV2ZW4gY29tZXMgY2xvc2UgdG8gYSBMbGFtYTMgNzBCIGxldmVsIG9mIHBlcmZvcm1hbmNlLlxuXG5Gb3IgNGsgY29udGV4dCBsZW5ndGgsIHRyeSBbUGhpLTMgTWVkaXVtIDRLXSgvbW9kZWxzL21pY3Jvc29mdC9waGktMy1tZWRpdW0tNGstaW5zdHJ1Y3QpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJwaGkzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLWx1bWltYWlkLTcwYiIsIm5hbWUiOiJOZXZlclNsZWVwOiBMbGFtYSAzIEx1bWltYWlkIDcwQiIsImNyZWF0ZWQiOjE3MTU4MTc2MDAsImRlc2NyaXB0aW9uIjoiVGhlIE5ldmVyU2xlZXAgdGVhbSBpcyBiYWNrLCB3aXRoIGEgTGxhbWEgMyA3MEIgZmluZXR1bmUgdHJhaW5lZCBvbiB0aGVpciBjdXJhdGVkIHJvbGVwbGF5IGRhdGEuIFN0cmlraW5nIGEgYmFsYW5jZSBiZXR3ZWVuIGVSUCBhbmQgUlAsIEx1bWltYWlkIHdhcyBkZXNpZ25lZCB0byBiZSBzZXJpb3VzLCB5ZXQgdW5jZW5zb3JlZCB3aGVuIG5lY2Vzc2FyeS5cblxuVG8gZW5oYW5jZSBpdCdzIG92ZXJhbGwgaW50ZWxsaWdlbmNlIGFuZCBjaGF0IGNhcGFiaWxpdHksIHJvdWdobHkgNDAlIG9mIHRoZSB0cmFpbmluZyBkYXRhIHdhcyBub3Qgcm9sZXBsYXkuIFRoaXMgcHJvdmlkZXMgYSBicmVhZHRoIG9mIGtub3dsZWRnZSB0byBhY2Nlc3MsIHdoaWxlIHN0aWxsIGtlZXBpbmcgcm9sZXBsYXkgYXMgdGhlIHByaW1hcnkgc3RyZW5ndGguXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzMzc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA0NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMS41IEZsYXNoICIsImNyZWF0ZWQiOjE3MTU2NDQ4MDAsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDEuNSBGbGFzaCBpcyBhIGZvdW5kYXRpb24gbW9kZWwgdGhhdCBwZXJmb3JtcyB3ZWxsIGF0IGEgdmFyaWV0eSBvZiBtdWx0aW1vZGFsIHRhc2tzIHN1Y2ggYXMgdmlzdWFsIHVuZGVyc3RhbmRpbmcsIGNsYXNzaWZpY2F0aW9uLCBzdW1tYXJpemF0aW9uLCBhbmQgY3JlYXRpbmcgY29udGVudCBmcm9tIGltYWdlLCBhdWRpbyBhbmQgdmlkZW8uIEl0J3MgYWRlcHQgYXQgcHJvY2Vzc2luZyB2aXN1YWwgYW5kIHRleHQgaW5wdXRzIHN1Y2ggYXMgcGhvdG9ncmFwaHMsIGRvY3VtZW50cywgaW5mb2dyYXBoaWNzLCBhbmQgc2NyZWVuc2hvdHMuXG5cbkdlbWluaSAxLjUgRmxhc2ggaXMgZGVzaWduZWQgZm9yIGhpZ2gtdm9sdW1lLCBoaWdoLWZyZXF1ZW5jeSB0YXNrcyB3aGVyZSBjb3N0IGFuZCBsYXRlbmN5IG1hdHRlci4gT24gbW9zdCBjb21tb24gdGFza3MsIEZsYXNoIGFjaGlldmVzIGNvbXBhcmFibGUgcXVhbGl0eSB0byBvdGhlciBHZW1pbmkgUHJvIG1vZGVscyBhdCBhIHNpZ25pZmljYW50bHkgcmVkdWNlZCBjb3N0LiBGbGFzaCBpcyB3ZWxsLXN1aXRlZCBmb3IgYXBwbGljYXRpb25zIGxpa2UgY2hhdCBhc3Npc3RhbnRzIGFuZCBvbi1kZW1hbmQgY29udGVudCBnZW5lcmF0aW9uIHdoZXJlIHNwZWVkIGFuZCBzY2FsZSBtYXR0ZXIuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAxODc1IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDE1ODMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvIiwiY3JlYXRlZCI6MTcxNTU1ODQwMCwiZGVzY3JpcHRpb24iOiJHUFQtNG8gKFwib1wiIGZvciBcIm9tbmlcIikgaXMgT3BlbkFJJ3MgbGF0ZXN0IEFJIG1vZGVsLCBzdXBwb3J0aW5nIGJvdGggdGV4dCBhbmQgaW1hZ2UgaW5wdXRzIHdpdGggdGV4dCBvdXRwdXRzLiBJdCBtYWludGFpbnMgdGhlIGludGVsbGlnZW5jZSBsZXZlbCBvZiBbR1BULTQgVHVyYm9dKC9tb2RlbHMvb3BlbmFpL2dwdC00LXR1cmJvKSB3aGlsZSBiZWluZyB0d2ljZSBhcyBmYXN0IGFuZCA1MCUgbW9yZSBjb3N0LWVmZmVjdGl2ZS4gR1BULTRvIGFsc28gb2ZmZXJzIGltcHJvdmVkIHBlcmZvcm1hbmNlIGluIHByb2Nlc3Npbmcgbm9uLUVuZ2xpc2ggbGFuZ3VhZ2VzIGFuZCBlbmhhbmNlZCB2aXN1YWwgY2FwYWJpbGl0aWVzLlxuXG5Gb3IgYmVuY2htYXJraW5nIGFnYWluc3Qgb3RoZXIgbW9kZWxzLCBpdCB3YXMgYnJpZWZseSBjYWxsZWQgW1wiaW0tYWxzby1hLWdvb2QtZ3B0Mi1jaGF0Ym90XCJdKGh0dHBzOi8vdHdpdHRlci5jb20vTGlhbUZlZHVzL3N0YXR1cy8xNzkwMDY0OTYzOTY2MzcwMjA5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAzNjEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxMjUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG86ZXh0ZW5kZWQiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8gKGV4dGVuZGVkKSIsImNyZWF0ZWQiOjE3MTU1NTg0MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNzIyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by0yMDI0LTA1LTEzIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvICgyMDI0LTA1LTEzKSIsImNyZWF0ZWQiOjE3MTU1NTg0MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNzIyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLWd1YXJkLTItOGIiLCJuYW1lIjoiTWV0YTogTGxhbWFHdWFyZCAyIDhCIiwiY3JlYXRlZCI6MTcxNTU1ODQwMCwiZGVzY3JpcHRpb24iOiJUaGlzIHNhZmVndWFyZCBtb2RlbCBoYXMgOEIgcGFyYW1ldGVycyBhbmQgaXMgYmFzZWQgb24gdGhlIExsYW1hIDMgZmFtaWx5LiBKdXN0IGxpa2UgaXMgcHJlZGVjZXNzb3IsIFtMbGFtYUd1YXJkIDFdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbWV0YS1sbGFtYS9MbGFtYUd1YXJkLTdiKSwgaXQgY2FuIGRvIGJvdGggcHJvbXB0IGFuZCByZXNwb25zZSBjbGFzc2lmaWNhdGlvbi5cblxuTGxhbWFHdWFyZCAyIGFjdHMgYXMgYSBub3JtYWwgTExNIHdvdWxkLCBnZW5lcmF0aW5nIHRleHQgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZ2l2ZW4gaW5wdXQvb3V0cHV0IGlzIHNhZmUvdW5zYWZlLiBJZiBkZWVtZWQgdW5zYWZlLCBpdCB3aWxsIGFsc28gc2hhcmUgdGhlIGNvbnRlbnQgY2F0ZWdvcmllcyB2aW9sYXRlZC5cblxuRm9yIGJlc3QgcmVzdWx0cywgcGxlYXNlIHVzZSByYXcgcHJvbXB0IGlucHV0IG9yIHRoZSBgL2NvbXBsZXRpb25zYCBlbmRwb2ludCwgaW5zdGVhZCBvZiB0aGUgY2hhdCBBUEkuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibm9uZSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im5ldmVyc2xlZXAvbGxhbWEtMy1sdW1pbWFpZC04YjpleHRlbmRlZCIsIm5hbWUiOiJOZXZlclNsZWVwOiBMbGFtYSAzIEx1bWltYWlkIDhCIChleHRlbmRlZCkiLCJjcmVhdGVkIjoxNzE0NzgwODAwLCJkZXNjcmlwdGlvbiI6IlRoZSBOZXZlclNsZWVwIHRlYW0gaXMgYmFjaywgd2l0aCBhIExsYW1hIDMgOEIgZmluZXR1bmUgdHJhaW5lZCBvbiB0aGVpciBjdXJhdGVkIHJvbGVwbGF5IGRhdGEuIFN0cmlraW5nIGEgYmFsYW5jZSBiZXR3ZWVuIGVSUCBhbmQgUlAsIEx1bWltYWlkIHdhcyBkZXNpZ25lZCB0byBiZSBzZXJpb3VzLCB5ZXQgdW5jZW5zb3JlZCB3aGVuIG5lY2Vzc2FyeS5cblxuVG8gZW5oYW5jZSBpdCdzIG92ZXJhbGwgaW50ZWxsaWdlbmNlIGFuZCBjaGF0IGNhcGFiaWxpdHksIHJvdWdobHkgNDAlIG9mIHRoZSB0cmFpbmluZyBkYXRhIHdhcyBub3Qgcm9sZXBsYXkuIFRoaXMgcHJvdmlkZXMgYSBicmVhZHRoIG9mIGtub3dsZWRnZSB0byBhY2Nlc3MsIHdoaWxlIHN0aWxsIGtlZXBpbmcgcm9sZXBsYXkgYXMgdGhlIHByaW1hcnkgc3RyZW5ndGguXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoyNDU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA5Mzc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNzUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI0NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJuZXZlcnNsZWVwL2xsYW1hLTMtbHVtaW1haWQtOGIiLCJuYW1lIjoiTmV2ZXJTbGVlcDogTGxhbWEgMyBMdW1pbWFpZCA4QiIsImNyZWF0ZWQiOjE3MTQ3ODA4MDAsImRlc2NyaXB0aW9uIjoiVGhlIE5ldmVyU2xlZXAgdGVhbSBpcyBiYWNrLCB3aXRoIGEgTGxhbWEgMyA4QiBmaW5ldHVuZSB0cmFpbmVkIG9uIHRoZWlyIGN1cmF0ZWQgcm9sZXBsYXkgZGF0YS4gU3RyaWtpbmcgYSBiYWxhbmNlIGJldHdlZW4gZVJQIGFuZCBSUCwgTHVtaW1haWQgd2FzIGRlc2lnbmVkIHRvIGJlIHNlcmlvdXMsIHlldCB1bmNlbnNvcmVkIHdoZW4gbmVjZXNzYXJ5LlxuXG5UbyBlbmhhbmNlIGl0J3Mgb3ZlcmFsbCBpbnRlbGxpZ2VuY2UgYW5kIGNoYXQgY2FwYWJpbGl0eSwgcm91Z2hseSA0MCUgb2YgdGhlIHRyYWluaW5nIGRhdGEgd2FzIG5vdCByb2xlcGxheS4gVGhpcyBwcm92aWRlcyBhIGJyZWFkdGggb2Yga25vd2xlZGdlIHRvIGFjY2Vzcywgd2hpbGUgc3RpbGwga2VlcGluZyByb2xlcGxheSBhcyB0aGUgcHJpbWFyeSBzdHJlbmd0aC5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjI0NTc2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDkzNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjQ1NzYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNhbzEway9maW1idWx2ZXRyLTExYi12MiIsIm5hbWUiOiJGaW1idWx2ZXRyIDExQiB2MiIsImNyZWF0ZWQiOjE3MTM2NTc2MDAsImRlc2NyaXB0aW9uIjoiQ3JlYXRpdmUgd3JpdGluZyBtb2RlbCwgcm91dGVkIHdpdGggcGVybWlzc2lvbi4gSXQncyBmYXN0LCBpdCBrZWVwcyB0aGUgY29udmVyc2F0aW9uIGdvaW5nLCBhbmQgaXQgc3RheXMgaW4gY2hhcmFjdGVyLlxuXG5JZiB5b3Ugc3VibWl0IGEgcmF3IHByb21wdCwgeW91IGNhbiB1c2UgQWxwYWNhIG9yIFZpY3VuYSBmb3JtYXRzLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy04Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzIDhCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzM5ODQwMCwiZGVzY3JpcHRpb24iOiJNZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgOEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiB3YXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMtNzBiLWluc3RydWN0IiwibmFtZSI6Ik1ldGE6IExsYW1hIDMgNzBCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzM5ODQwMCwiZGVzY3JpcHRpb24iOiJNZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgNzBCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gd2FzIG9wdGltaXplZCBmb3IgaGlnaCBxdWFsaXR5IGRpYWxvZ3VlIHVzZWNhc2VzLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdCIsIm5hbWUiOiJNaXN0cmFsOiBNaXh0cmFsIDh4MjJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzMxMjAwMCwiZGVzY3JpcHRpb24iOiJNaXN0cmFsJ3Mgb2ZmaWNpYWwgaW5zdHJ1Y3QgZmluZS10dW5lZCB2ZXJzaW9uIG9mIFtNaXh0cmFsIDh4MjJCXSgvbW9kZWxzL21pc3RyYWxhaS9taXh0cmFsLTh4MjJiKS4gSXQgdXNlcyAzOUIgYWN0aXZlIHBhcmFtZXRlcnMgb3V0IG9mIDE0MUIsIG9mZmVyaW5nIHVucGFyYWxsZWxlZCBjb3N0IGVmZmljaWVuY3kgZm9yIGl0cyBzaXplLiBJdHMgc3RyZW5ndGhzIGluY2x1ZGU6XG4tIHN0cm9uZyBtYXRoLCBjb2RpbmcsIGFuZCByZWFzb25pbmdcbi0gbGFyZ2UgY29udGV4dCBsZW5ndGggKDY0aylcbi0gZmx1ZW5jeSBpbiBFbmdsaXNoLCBGcmVuY2gsIEl0YWxpYW4sIEdlcm1hbiwgYW5kIFNwYW5pc2hcblxuU2VlIGJlbmNobWFya3Mgb24gdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgW2hlcmVdKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21peHRyYWwtOHgyMmIvKS5cbiNtb2UiLCJjb250ZXh0X2xlbmd0aCI6NjU1MzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NTUzNiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWljcm9zb2Z0L3dpemFyZGxtLTItOHgyMmIiLCJuYW1lIjoiV2l6YXJkTE0tMiA4eDIyQiIsImNyZWF0ZWQiOjE3MTMyMjU2MDAsImRlc2NyaXB0aW9uIjoiV2l6YXJkTE0tMiA4eDIyQiBpcyBNaWNyb3NvZnQgQUkncyBtb3N0IGFkdmFuY2VkIFdpemFyZCBtb2RlbC4gSXQgZGVtb25zdHJhdGVzIGhpZ2hseSBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIHByb3ByaWV0YXJ5IG1vZGVscywgYW5kIGl0IGNvbnNpc3RlbnRseSBvdXRwZXJmb3JtcyBhbGwgZXhpc3Rpbmcgc3RhdGUtb2YtdGhlLWFydCBvcGVuc291cmNlIG1vZGVscy5cblxuSXQgaXMgYW4gaW5zdHJ1Y3QgZmluZXR1bmUgb2YgW01peHRyYWwgOHgyMkJdKC9tb2RlbHMvbWlzdHJhbGFpL21peHRyYWwtOHgyMmIpLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL3dpemFyZGxtLmdpdGh1Yi5pby9XaXphcmRMTTIvKS5cblxuI21vZSIsImNvbnRleHRfbGVuZ3RoIjo2NTUzNiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoidmljdW5hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjU1MzYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC93aXphcmRsbS0yLTdiIiwibmFtZSI6IldpemFyZExNLTIgN0IiLCJjcmVhdGVkIjoxNzEzMjI1NjAwLCJkZXNjcmlwdGlvbiI6IldpemFyZExNLTIgN0IgaXMgdGhlIHNtYWxsZXIgdmFyaWFudCBvZiBNaWNyb3NvZnQgQUkncyBsYXRlc3QgV2l6YXJkIG1vZGVsLiBJdCBpcyB0aGUgZmFzdGVzdCBhbmQgYWNoaWV2ZXMgY29tcGFyYWJsZSBwZXJmb3JtYW5jZSB3aXRoIGV4aXN0aW5nIDEweCBsYXJnZXIgb3BlbnNvdXJjZSBsZWFkaW5nIG1vZGVsc1xuXG5JdCBpcyBhIGZpbmV0dW5lIG9mIFtNaXN0cmFsIDdCIEluc3RydWN0XSgvbW9kZWxzL21pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0KSwgdXNpbmcgdGhlIHNhbWUgdGVjaG5pcXVlIGFzIFtXaXphcmRMTS0yIDh4MjJCXSgvbW9kZWxzL21pY3Jvc29mdC93aXphcmRsbS0yLTh4MjJiKS5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly93aXphcmRsbS5naXRodWIuaW8vV2l6YXJkTE0yLykuXG5cbiNtb2UiLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzIwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktcHJvLTEuNSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAxLjUgUHJvIiwiY3JlYXRlZCI6MTcxMjYyMDgwMCwiZGVzY3JpcHRpb24iOiJHb29nbGUncyBsYXRlc3QgbXVsdGltb2RhbCBtb2RlbCwgc3VwcG9ydHMgaW1hZ2UgYW5kIHZpZGVvWzBdIGluIHRleHQgb3IgY2hhdCBwcm9tcHRzLlxuXG5PcHRpbWl6ZWQgZm9yIGxhbmd1YWdlIHRhc2tzIGluY2x1ZGluZzpcblxuLSBDb2RlIGdlbmVyYXRpb25cbi0gVGV4dCBnZW5lcmF0aW9uXG4tIFRleHQgZWRpdGluZ1xuLSBQcm9ibGVtIHNvbHZpbmdcbi0gUmVjb21tZW5kYXRpb25zXG4tIEluZm9ybWF0aW9uIGV4dHJhY3Rpb25cbi0gRGF0YSBleHRyYWN0aW9uIG9yIGdlbmVyYXRpb25cbi0gQUkgYWdlbnRzXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4qIFswXTogVmlkZW8gaW5wdXQgaXMgbm90IGF2YWlsYWJsZSB0aHJvdWdoIE9wZW5Sb3V0ZXIgYXQgdGhpcyB0aW1lLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNjU3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNC10dXJibyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IFR1cmJvIiwiY3JlYXRlZCI6MTcxMjYyMDgwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IEdQVC00IFR1cmJvIG1vZGVsIHdpdGggdmlzaW9uIGNhcGFiaWxpdGllcy4gVmlzaW9uIHJlcXVlc3RzIGNhbiBub3cgdXNlIEpTT04gbW9kZSBhbmQgZnVuY3Rpb24gY2FsbGluZy5cblxuVHJhaW5pbmcgZGF0YTogdXAgdG8gRGVjZW1iZXIgMjAyMy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMTQ0NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLXBsdXMiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIrIiwiY3JlYXRlZCI6MTcxMjE4ODgwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFIrIGlzIGEgbmV3LCAxMDRCLXBhcmFtZXRlciBMTE0gZnJvbSBDb2hlcmUuIEl0J3MgdXNlZnVsIGZvciByb2xlcGxheSwgZ2VuZXJhbCBjb25zdW1lciB1c2VjYXNlcywgYW5kIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKS5cblxuSXQgb2ZmZXJzIG11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciB0ZW4ga2V5IGxhbmd1YWdlcyB0byBmYWNpbGl0YXRlIGdsb2JhbCBidXNpbmVzcyBvcGVyYXRpb25zLiBTZWUgYmVuY2htYXJrcyBhbmQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci1wbHVzLW1pY3Jvc29mdC1henVyZS8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLXBsdXMtMDQtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUisgKDA0LTIwMjQpIiwiY3JlYXRlZCI6MTcxMjAxNjAwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFIrIGlzIGEgbmV3LCAxMDRCLXBhcmFtZXRlciBMTE0gZnJvbSBDb2hlcmUuIEl0J3MgdXNlZnVsIGZvciByb2xlcGxheSwgZ2VuZXJhbCBjb25zdW1lciB1c2VjYXNlcywgYW5kIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKS5cblxuSXQgb2ZmZXJzIG11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciB0ZW4ga2V5IGxhbmd1YWdlcyB0byBmYWNpbGl0YXRlIGdsb2JhbCBidXNpbmVzcyBvcGVyYXRpb25zLiBTZWUgYmVuY2htYXJrcyBhbmQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci1wbHVzLW1pY3Jvc29mdC1henVyZS8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzb3Bob3N5bXBhdGhlaWEvbWlkbmlnaHQtcm9zZS03MGIiLCJuYW1lIjoiTWlkbmlnaHQgUm9zZSA3MEIiLCJjcmVhdGVkIjoxNzExMDY1NjAwLCJkZXNjcmlwdGlvbiI6IkEgbWVyZ2Ugd2l0aCBhIGNvbXBsZXggZmFtaWx5IHRyZWUsIHRoaXMgbW9kZWwgd2FzIGNyYWZ0ZWQgZm9yIHJvbGVwbGF5aW5nIGFuZCBzdG9yeXRlbGxpbmcuIE1pZG5pZ2h0IFJvc2UgaXMgYSBzdWNjZXNzb3IgdG8gUm9ndWUgUm9zZSBhbmQgQXVyb3JhIE5pZ2h0cyBhbmQgaW1wcm92ZXMgdXBvbiB0aGVtIGJvdGguIEl0IHdhbnRzIHRvIHByb2R1Y2UgbGVuZ3RoeSBvdXRwdXQgYnkgZGVmYXVsdCBhbmQgaXMgdGhlIGJlc3QgY3JlYXRpdmUgd3JpdGluZyBtZXJnZSBwcm9kdWNlZCBzbyBmYXIgYnkgc29waG9zeW1wYXRoZWlhLlxuXG5EZXNjZW5kaW5nIGZyb20gZWFybGllciB2ZXJzaW9ucyBvZiBNaWRuaWdodCBSb3NlIGFuZCBbV2l6YXJkIFR1bHUgRG9scGhpbiA3MEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vc29waG9zeW1wYXRoZWlhL1dpemFyZC1UdWx1LURvbHBoaW4tNzBCLXYxLjApLCBpdCBpbmhlcml0cyB0aGUgYmVzdCBxdWFsaXRpZXMgb2YgZWFjaC4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhaXJvYm9yb3MifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQiLCJjcmVhdGVkIjoxNzEwMzc0NDAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQgaXMgYW4gaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIGNvbnZlcnNhdGlvbmFsIG1vZGVsIHRoYXQgcGVyZm9ybXMgbGFuZ3VhZ2UgdGFza3Mgd2l0aCBoaWdoIHF1YWxpdHksIG1vcmUgcmVsaWFibHkgYW5kIHdpdGggYSBsb25nZXIgY29udGV4dCB0aGFuIG91ciBiYXNlIGdlbmVyYXRpdmUgbW9kZWxzLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXIiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIiLCJjcmVhdGVkIjoxNzEwMzc0NDAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQtUiBpcyBhIDM1QiBwYXJhbWV0ZXIgbW9kZWwgdGhhdCBwZXJmb3JtcyBjb252ZXJzYXRpb25hbCBsYW5ndWFnZSB0YXNrcyBhdCBhIGhpZ2hlciBxdWFsaXR5LCBtb3JlIHJlbGlhYmx5LCBhbmQgd2l0aCBhIGxvbmdlciBjb250ZXh0IHRoYW4gcHJldmlvdXMgbW9kZWxzLiBJdCBjYW4gYmUgdXNlZCBmb3IgY29tcGxleCB3b3JrZmxvd3MgbGlrZSBjb2RlIGdlbmVyYXRpb24sIHJldHJpZXZhbCBhdWdtZW50ZWQgZ2VuZXJhdGlvbiAoUkFHKSwgdG9vbCB1c2UsIGFuZCBhZ2VudHMuXG5cblJlYWQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy1oYWlrdTpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MTAyODgwMDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgSGFpa3UgaXMgQW50aHJvcGljJ3MgZmFzdGVzdCBhbmQgbW9zdCBjb21wYWN0IG1vZGVsIGZvclxubmVhci1pbnN0YW50IHJlc3BvbnNpdmVuZXNzLiBRdWljayBhbmQgYWNjdXJhdGUgdGFyZ2V0ZWQgcGVyZm9ybWFuY2UuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy1oYWlrdSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAwMyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLWhhaWt1IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UiLCJjcmVhdGVkIjoxNzEwMjg4MDAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIEhhaWt1IGlzIEFudGhyb3BpYydzIGZhc3Rlc3QgYW5kIG1vc3QgY29tcGFjdCBtb2RlbCBmb3Jcbm5lYXItaW5zdGFudCByZXNwb25zaXZlbmVzcy4gUXVpY2sgYW5kIGFjY3VyYXRlIHRhcmdldGVkIHBlcmZvcm1hbmNlLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtaGFpa3UpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLW9wdXM6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzIE9wdXMgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MDk1OTY4MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgT3B1cyBpcyBBbnRocm9waWMncyBtb3N0IHBvd2VyZnVsIG1vZGVsIGZvciBoaWdobHkgY29tcGxleCB0YXNrcy4gSXQgYm9hc3RzIHRvcC1sZXZlbCBwZXJmb3JtYW5jZSwgaW50ZWxsaWdlbmNlLCBmbHVlbmN5LCBhbmQgdW5kZXJzdGFuZGluZy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTUiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDE4NzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy1vcHVzIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgT3B1cyIsImNyZWF0ZWQiOjE3MDk1OTY4MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgT3B1cyBpcyBBbnRocm9waWMncyBtb3N0IHBvd2VyZnVsIG1vZGVsIGZvciBoaWdobHkgY29tcGxleCB0YXNrcy4gSXQgYm9hc3RzIHRvcC1sZXZlbCBwZXJmb3JtYW5jZSwgaW50ZWxsaWdlbmNlLCBmbHVlbmN5LCBhbmQgdW5kZXJzdGFuZGluZy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTUiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDE4NzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLXNvbm5ldDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgU29ubmV0IChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzA5NTk2ODAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIFNvbm5ldCBpcyBhbiBpZGVhbCBiYWxhbmNlIG9mIGludGVsbGlnZW5jZSBhbmQgc3BlZWQgZm9yIGVudGVycHJpc2Ugd29ya2xvYWRzLiBNYXhpbXVtIHV0aWxpdHkgYXQgYSBsb3dlciBwcmljZSwgZGVwZW5kYWJsZSwgYmFsYW5jZWQgZm9yIHNjYWxlZCBkZXBsb3ltZW50cy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMtc29ubmV0IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgU29ubmV0IiwiY3JlYXRlZCI6MTcwOTU5NjgwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMyBTb25uZXQgaXMgYW4gaWRlYWwgYmFsYW5jZSBvZiBpbnRlbGxpZ2VuY2UgYW5kIHNwZWVkIGZvciBlbnRlcnByaXNlIHdvcmtsb2Fkcy4gTWF4aW11bSB1dGlsaXR5IGF0IGEgbG93ZXIgcHJpY2UsIGRlcGVuZGFibGUsIGJhbGFuY2VkIGZvciBzY2FsZWQgZGVwbG95bWVudHMuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy1mYW1pbHkpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLTAzLTIwMjQiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIgKDAzLTIwMjQpIiwiY3JlYXRlZCI6MTcwOTM0MTIwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kLVIgaXMgYSAzNUIgcGFyYW1ldGVyIG1vZGVsIHRoYXQgcGVyZm9ybXMgY29udmVyc2F0aW9uYWwgbGFuZ3VhZ2UgdGFza3MgYXQgYSBoaWdoZXIgcXVhbGl0eSwgbW9yZSByZWxpYWJseSwgYW5kIHdpdGggYSBsb25nZXIgY29udGV4dCB0aGFuIHByZXZpb3VzIG1vZGVscy4gSXQgY2FuIGJlIHVzZWQgZm9yIGNvbXBsZXggd29ya2Zsb3dzIGxpa2UgY29kZSBnZW5lcmF0aW9uLCByZXRyaWV2YWwgYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIHRvb2wgdXNlLCBhbmQgYWdlbnRzLlxuXG5SZWFkIHRoZSBsYXVuY2ggcG9zdCBbaGVyZV0oaHR0cHM6Ly90eHQuY29oZXJlLmNvbS9jb21tYW5kLXIvKS5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1sYXJnZSIsIm5hbWUiOiJNaXN0cmFsIExhcmdlIiwiY3JlYXRlZCI6MTcwODkwNTYwMCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBmbGFnc2hpcCBtb2RlbCwgTWlzdHJhbCBMYXJnZSAyICh2ZXJzaW9uIGBtaXN0cmFsLWxhcmdlLTI0MDdgKS4gSXQncyBhIHByb3ByaWV0YXJ5IHdlaWdodHMtYXZhaWxhYmxlIG1vZGVsIGFuZCBleGNlbHMgYXQgcmVhc29uaW5nLCBjb2RlLCBKU09OLCBjaGF0LCBhbmQgbW9yZS4gUmVhZCB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBbaGVyZV0oaHR0cHM6Ly9taXN0cmFsLmFpL25ld3MvbWlzdHJhbC1sYXJnZS0yNDA3LykuXG5cbkl0IHN1cHBvcnRzIGRvemVucyBvZiBsYW5ndWFnZXMgaW5jbHVkaW5nIEZyZW5jaCwgR2VybWFuLCBTcGFuaXNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBBcmFiaWMsIEhpbmRpLCBSdXNzaWFuLCBDaGluZXNlLCBKYXBhbmVzZSwgYW5kIEtvcmVhbiwgYWxvbmcgd2l0aCA4MCsgY29kaW5nIGxhbmd1YWdlcyBpbmNsdWRpbmcgUHl0aG9uLCBKYXZhLCBDLCBDKyssIEphdmFTY3JpcHQsIGFuZCBCYXNoLiBJdHMgbG9uZyBjb250ZXh0IHdpbmRvdyBhbGxvd3MgcHJlY2lzZSBpbmZvcm1hdGlvbiByZWNhbGwgZnJvbSBsYXJnZSBkb2N1bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0wNjEzIiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyAob2xkZXIgdjA2MTMpIiwiY3JlYXRlZCI6MTcwNjE0MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtMy41IFR1cmJvIGlzIE9wZW5BSSdzIGZhc3Rlc3QgbW9kZWwuIEl0IGNhbiB1bmRlcnN0YW5kIGFuZCBnZW5lcmF0ZSBuYXR1cmFsIGxhbmd1YWdlIG9yIGNvZGUsIGFuZCBpcyBvcHRpbWl6ZWQgZm9yIGNoYXQgYW5kIHRyYWRpdGlvbmFsIGNvbXBsZXRpb24gdGFza3MuXG5cblRyYWluaW5nIGRhdGEgdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjQwOTUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LXR1cmJvLXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBHUFQtNCBUdXJibyBQcmV2aWV3IiwiY3JlYXRlZCI6MTcwNjE0MDgwMCwiZGVzY3JpcHRpb24iOiJUaGUgcHJldmlldyBHUFQtNCBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIERlYyAyMDIzLlxuXG4qKk5vdGU6KiogaGVhdmlseSByYXRlIGxpbWl0ZWQgYnkgT3BlbkFJIHdoaWxlIGluIHByZXZpZXcuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im5vdXNyZXNlYXJjaC9ub3VzLWhlcm1lcy0yLW1peHRyYWwtOHg3Yi1kcG8iLCJuYW1lIjoiTm91czogSGVybWVzIDIgTWl4dHJhbCA4eDdCIERQTyIsImNyZWF0ZWQiOjE3MDUzNjMyMDAsImRlc2NyaXB0aW9uIjoiTm91cyBIZXJtZXMgMiBNaXh0cmFsIDh4N0IgRFBPIGlzIHRoZSBuZXcgZmxhZ3NoaXAgTm91cyBSZXNlYXJjaCBtb2RlbCB0cmFpbmVkIG92ZXIgdGhlIFtNaXh0cmFsIDh4N0IgTW9FIExMTV0oL21vZGVscy9taXN0cmFsYWkvbWl4dHJhbC04eDdiKS5cblxuVGhlIG1vZGVsIHdhcyB0cmFpbmVkIG9uIG92ZXIgMSwwMDAsMDAwIGVudHJpZXMgb2YgcHJpbWFyaWx5IFtHUFQtNF0oL21vZGVscy9vcGVuYWkvZ3B0LTQpIGdlbmVyYXRlZCBkYXRhLCBhcyB3ZWxsIGFzIG90aGVyIGhpZ2ggcXVhbGl0eSBkYXRhIGZyb20gb3BlbiBkYXRhc2V0cyBhY3Jvc3MgdGhlIEFJIGxhbmRzY2FwZSwgYWNoaWV2aW5nIHN0YXRlIG9mIHRoZSBhcnQgcGVyZm9ybWFuY2Ugb24gYSB2YXJpZXR5IG9mIHRhc2tzLlxuXG4jbW9lIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbWVkaXVtIiwibmFtZSI6Ik1pc3RyYWwgTWVkaXVtIiwiY3JlYXRlZCI6MTcwNDg0NDgwMCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBjbG9zZWQtc291cmNlLCBtZWRpdW0tc2lkZWQgbW9kZWwuIEl0J3MgcG93ZXJlZCBieSBhIGNsb3NlZC1zb3VyY2UgcHJvdG90eXBlIGFuZCBleGNlbHMgYXQgcmVhc29uaW5nLCBjb2RlLCBKU09OLCBjaGF0LCBhbmQgbW9yZS4gSW4gYmVuY2htYXJrcywgaXQgY29tcGFyZXMgd2l0aCBtYW55IG9mIHRoZSBmbGFnc2hpcCBtb2RlbHMgb2Ygb3RoZXIgY29tcGFuaWVzLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA4MSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsIiwibmFtZSI6Ik1pc3RyYWwgU21hbGwiLCJjcmVhdGVkIjoxNzA0ODQ0ODAwLCJkZXNjcmlwdGlvbiI6IldpdGggMjIgYmlsbGlvbiBwYXJhbWV0ZXJzLCBNaXN0cmFsIFNtYWxsIHYyNC4wOSBvZmZlcnMgYSBjb252ZW5pZW50IG1pZC1wb2ludCBiZXR3ZWVuIChNaXN0cmFsIE5lTW8gMTJCKVsvbWlzdHJhbGFpL21pc3RyYWwtbmVtb10gYW5kIChNaXN0cmFsIExhcmdlIDIpWy9taXN0cmFsYWkvbWlzdHJhbC1sYXJnZV0sIHByb3ZpZGluZyBhIGNvc3QtZWZmZWN0aXZlIHNvbHV0aW9uIHRoYXQgY2FuIGJlIGRlcGxveWVkIGFjcm9zcyB2YXJpb3VzIHBsYXRmb3JtcyBhbmQgZW52aXJvbm1lbnRzLiBJdCBoYXMgYmV0dGVyIHJlYXNvbmluZywgZXhoaWJpdHMgbW9yZSBjYXBhYmlsaXRpZXMsIGNhbiBwcm9kdWNlIGFuZCByZWFzb24gYWJvdXQgY29kZSwgYW5kIGlzIG11bHRpbGlndWFsLCBzdXBwb3J0aW5nIEVuZ2xpc2gsIEZyZW5jaCwgR2VybWFuLCBJdGFsaWFuLCBhbmQgU3BhbmlzaC4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXRpbnkiLCJuYW1lIjoiTWlzdHJhbCBUaW55IiwiY3JlYXRlZCI6MTcwNDg0NDgwMCwiZGVzY3JpcHRpb24iOiJOb3RlOiBUaGlzIG1vZGVsIGlzIGJlaW5nIGRlcHJlY2F0ZWQuIFJlY29tbWVuZGVkIHJlcGxhY2VtZW50IGlzIHRoZSBuZXdlciBbTWluaXN0cmFsIDhCXSgvbWlzdHJhbC9taW5pc3RyYWwtOGIpXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvd2VyZWQgYnkgTWlzdHJhbC03Qi12MC4yLCBhbmQgaW5jb3Jwb3JhdGVzIGEgXCJiZXR0ZXJcIiBmaW5lLXR1bmluZyB0aGFuIFtNaXN0cmFsIDdCXSgvbW9kZWxzL21pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjEpLCBpbnNwaXJlZCBieSBjb21tdW5pdHkgd29yay4gSXQncyBiZXN0IHVzZWQgZm9yIGxhcmdlIGJhdGNoIHByb2Nlc3NpbmcgdGFza3Mgd2hlcmUgY29zdCBpcyBhIHNpZ25pZmljYW50IGZhY3RvciBidXQgcmVhc29uaW5nIGNhcGFiaWxpdGllcyBhcmUgbm90IGNydWNpYWwuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjIiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCB2MC4yIiwiY3JlYXRlZCI6MTcwMzcyMTYwMCwiZGVzY3JpcHRpb24iOiJBIGhpZ2gtcGVyZm9ybWluZywgaW5kdXN0cnktc3RhbmRhcmQgNy4zQiBwYXJhbWV0ZXIgbW9kZWwsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLlxuXG5BbiBpbXByb3ZlZCB2ZXJzaW9uIG9mIFtNaXN0cmFsIDdCIEluc3RydWN0XSgvbW9kZWxzbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMSksIHdpdGggdGhlIGZvbGxvd2luZyBjaGFuZ2VzOlxuXG4tIDMyayBjb250ZXh0IHdpbmRvdyAodnMgOGsgY29udGV4dCBpbiB2MC4xKVxuLSBSb3BlLXRoZXRhID0gMWU2XG4tIE5vIFNsaWRpbmctV2luZG93IEF0dGVudGlvbiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbi1taXh0cmFsLTh4N2IiLCJuYW1lIjoiRG9scGhpbiAyLjYgTWl4dHJhbCA4eDdCIPCfkKwiLCJjcmVhdGVkIjoxNzAzMTE2ODAwLCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSAxNmsgY29udGV4dCBmaW5lLXR1bmUgb2YgW01peHRyYWwtOHg3Yl0oL21vZGVscy9taXN0cmFsYWkvbWl4dHJhbC04eDdiKS4gSXQgZXhjZWxzIGluIGNvZGluZyB0YXNrcyBkdWUgdG8gZXh0ZW5zaXZlIHRyYWluaW5nIHdpdGggY29kaW5nIGRhdGEgYW5kIGlzIGtub3duIGZvciBpdHMgb2JlZGllbmNlLCBhbHRob3VnaCBpdCBsYWNrcyBEUE8gdHVuaW5nLlxuXG5UaGUgbW9kZWwgaXMgdW5jZW5zb3JlZCBhbmQgaXMgc3RyaXBwZWQgb2YgYWxpZ25tZW50IGFuZCBiaWFzLiBJdCByZXF1aXJlcyBhbiBleHRlcm5hbCBhbGlnbm1lbnQgbGF5ZXIgZm9yIGV0aGljYWwgdXNlLiBVc2VycyBhcmUgY2F1dGlvbmVkIHRvIHVzZSB0aGlzIGhpZ2hseSBjb21wbGlhbnQgbW9kZWwgcmVzcG9uc2libHksIGFzIGRldGFpbGVkIGluIGEgYmxvZyBwb3N0IGFib3V0IHVuY2Vuc29yZWQgbW9kZWxzIGF0IFtlcmljaGFydGZvcmQuY29tL3VuY2Vuc29yZWQtbW9kZWxzXShodHRwczovL2VyaWNoYXJ0Zm9yZC5jb20vdW5jZW5zb3JlZC1tb2RlbHMpLlxuXG4jbW9lICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1wcm8tdmlzaW9uIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIFBybyBWaXNpb24gMS4wIiwiY3JlYXRlZCI6MTcwMjQyNTYwMCwiZGVzY3JpcHRpb24iOiJHb29nbGUncyBmbGFnc2hpcCBtdWx0aW1vZGFsIG1vZGVsLCBzdXBwb3J0aW5nIGltYWdlIGFuZCB2aWRlbyBpbiB0ZXh0IG9yIGNoYXQgcHJvbXB0cyBmb3IgYSB0ZXh0IG9yIGNvZGUgcmVzcG9uc2UuXG5cblNlZSB0aGUgYmVuY2htYXJrcyBhbmQgcHJvbXB0aW5nIGd1aWRlbGluZXMgZnJvbSBbRGVlcG1pbmRdKGh0dHBzOi8vZGVlcG1pbmQuZ29vZ2xlL3RlY2hub2xvZ2llcy9nZW1pbmkvKS5cblxuVXNhZ2Ugb2YgR2VtaW5pIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbWluaSBUZXJtcyBvZiBVc2VdKGh0dHBzOi8vYWkuZ29vZ2xlLmRldi90ZXJtcykuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLXBybyIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSBQcm8gMS4wIiwiY3JlYXRlZCI6MTcwMjQyNTYwMCwiZGVzY3JpcHRpb24iOiJHb29nbGUncyBmbGFnc2hpcCB0ZXh0IGdlbmVyYXRpb24gbW9kZWwuIERlc2lnbmVkIHRvIGhhbmRsZSBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBtdWx0aXR1cm4gdGV4dCBhbmQgY29kZSBjaGF0LCBhbmQgY29kZSBnZW5lcmF0aW9uLlxuXG5TZWUgdGhlIGJlbmNobWFya3MgYW5kIHByb21wdGluZyBndWlkZWxpbmVzIGZyb20gW0RlZXBtaW5kXShodHRwczovL2RlZXBtaW5kLmdvb2dsZS90ZWNobm9sb2dpZXMvZ2VtaW5pLykuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXh0cmFsLTh4N2IiLCJuYW1lIjoiTWlzdHJhbDogTWl4dHJhbCA4eDdCIChiYXNlKSIsImNyZWF0ZWQiOjE3MDIxNjY0MDAsImRlc2NyaXB0aW9uIjoiTWl4dHJhbCA4eDdCIGlzIGEgcHJldHJhaW5lZCBnZW5lcmF0aXZlIFNwYXJzZSBNaXh0dXJlIG9mIEV4cGVydHMsIGJ5IE1pc3RyYWwgQUkuIEluY29ycG9yYXRlcyA4IGV4cGVydHMgKGZlZWQtZm9yd2FyZCBuZXR3b3JrcykgZm9yIGEgdG90YWwgb2YgNDdCIHBhcmFtZXRlcnMuIEJhc2UgbW9kZWwgKG5vdCBmaW5lLXR1bmVkIGZvciBpbnN0cnVjdGlvbnMpIC0gc2VlIFtNaXh0cmFsIDh4N0IgSW5zdHJ1Y3RdKC9tb2RlbHMvbWlzdHJhbGFpL21peHRyYWwtOHg3Yi1pbnN0cnVjdCkgZm9yIGFuIGluc3RydWN0LXR1bmVkIG1vZGVsLlxuXG4jbW9lIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJub25lIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXh0cmFsLTh4N2ItaW5zdHJ1Y3QiLCJuYW1lIjoiTWlzdHJhbDogTWl4dHJhbCA4eDdCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcwMjE2NjQwMCwiZGVzY3JpcHRpb24iOiJNaXh0cmFsIDh4N0IgSW5zdHJ1Y3QgaXMgYSBwcmV0cmFpbmVkIGdlbmVyYXRpdmUgU3BhcnNlIE1peHR1cmUgb2YgRXhwZXJ0cywgYnkgTWlzdHJhbCBBSSwgZm9yIGNoYXQgYW5kIGluc3RydWN0aW9uIHVzZS4gSW5jb3Jwb3JhdGVzIDggZXhwZXJ0cyAoZmVlZC1mb3J3YXJkIG5ldHdvcmtzKSBmb3IgYSB0b3RhbCBvZiA0NyBiaWxsaW9uIHBhcmFtZXRlcnMuXG5cbkluc3RydWN0IG1vZGVsIGZpbmUtdHVuZWQgYnkgTWlzdHJhbC4gI21vZSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5jaGF0L29wZW5jaGF0LTdiIiwibmFtZSI6Ik9wZW5DaGF0IDMuNSA3QiIsImNyZWF0ZWQiOjE3MDExMjk2MDAsImRlc2NyaXB0aW9uIjoiT3BlbkNoYXQgN0IgaXMgYSBsaWJyYXJ5IG9mIG9wZW4tc291cmNlIGxhbmd1YWdlIG1vZGVscywgZmluZS10dW5lZCB3aXRoIFwiQy1STEZUIChDb25kaXRpb25lZCBSZWluZm9yY2VtZW50IExlYXJuaW5nIEZpbmUtVHVuaW5nKVwiIC0gYSBzdHJhdGVneSBpbnNwaXJlZCBieSBvZmZsaW5lIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcuIEl0IGhhcyBiZWVuIHRyYWluZWQgb24gbWl4ZWQtcXVhbGl0eSBkYXRhIHdpdGhvdXQgcHJlZmVyZW5jZSBsYWJlbHMuXG5cbi0gRm9yIE9wZW5DaGF0IGZpbmUtdHVuZWQgb24gTWlzdHJhbCA3QiwgY2hlY2sgb3V0IFtPcGVuQ2hhdCA3Ql0oL21vZGVscy9vcGVuY2hhdC9vcGVuY2hhdC03YikuXG4tIEZvciBPcGVuQ2hhdCBmaW5lLXR1bmVkIG9uIExsYW1hIDhCLCBjaGVjayBvdXQgW09wZW5DaGF0IDhCXSgvbW9kZWxzL29wZW5jaGF0L29wZW5jaGF0LThiKS5cblxuI29wZW4tc291cmNlIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im9wZW5jaGF0In0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJuZXZlcnNsZWVwL25vcm9tYWlkLTIwYiIsIm5hbWUiOiJOb3JvbWFpZCAyMEIiLCJjcmVhdGVkIjoxNzAwOTU2ODAwLCJkZXNjcmlwdGlvbiI6IkEgY29sbGFiIGJldHdlZW4gSWthcmlEZXYgYW5kIFVuZGkuIFRoaXMgbWVyZ2UgaXMgc3VpdGFibGUgZm9yIFJQLCBFUlAsIGFuZCBnZW5lcmFsIGtub3dsZWRnZS5cblxuI21lcmdlICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMi4xOmJldGEiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgdjIuMSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcwMDYxMTIwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMiBkZWxpdmVycyBhZHZhbmNlbWVudHMgaW4ga2V5IGNhcGFiaWxpdGllcyBmb3IgZW50ZXJwcmlzZXPigJRpbmNsdWRpbmcgYW4gaW5kdXN0cnktbGVhZGluZyAyMDBLIHRva2VuIGNvbnRleHQgd2luZG93LCBzaWduaWZpY2FudCByZWR1Y3Rpb25zIGluIHJhdGVzIG9mIG1vZGVsIGhhbGx1Y2luYXRpb24sIHN5c3RlbSBwcm9tcHRzIGFuZCBhIG5ldyBiZXRhIGZlYXR1cmU6IHRvb2wgdXNlLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAyNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTIuMSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2Mi4xIiwiY3JlYXRlZCI6MTcwMDYxMTIwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMiBkZWxpdmVycyBhZHZhbmNlbWVudHMgaW4ga2V5IGNhcGFiaWxpdGllcyBmb3IgZW50ZXJwcmlzZXPigJRpbmNsdWRpbmcgYW4gaW5kdXN0cnktbGVhZGluZyAyMDBLIHRva2VuIGNvbnRleHQgd2luZG93LCBzaWduaWZpY2FudCByZWR1Y3Rpb25zIGluIHJhdGVzIG9mIG1vZGVsIGhhbGx1Y2luYXRpb24sIHN5c3RlbSBwcm9tcHRzIGFuZCBhIG5ldyBiZXRhIGZlYXR1cmU6IHRvb2wgdXNlLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAyNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMjpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIHYyIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzAwNjExMjAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAyIGRlbGl2ZXJzIGFkdmFuY2VtZW50cyBpbiBrZXkgY2FwYWJpbGl0aWVzIGZvciBlbnRlcnByaXNlc+KAlGluY2x1ZGluZyBhbiBpbmR1c3RyeS1sZWFkaW5nIDIwMEsgdG9rZW4gY29udGV4dCB3aW5kb3csIHNpZ25pZmljYW50IHJlZHVjdGlvbnMgaW4gcmF0ZXMgb2YgbW9kZWwgaGFsbHVjaW5hdGlvbiwgc3lzdGVtIHByb21wdHMgYW5kIGEgbmV3IGJldGEgZmVhdHVyZTogdG9vbCB1c2UuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMiIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2MiIsImNyZWF0ZWQiOjE3MDA2MTEyMDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDIgZGVsaXZlcnMgYWR2YW5jZW1lbnRzIGluIGtleSBjYXBhYmlsaXRpZXMgZm9yIGVudGVycHJpc2Vz4oCUaW5jbHVkaW5nIGFuIGluZHVzdHJ5LWxlYWRpbmcgMjAwSyB0b2tlbiBjb250ZXh0IHdpbmRvdywgc2lnbmlmaWNhbnQgcmVkdWN0aW9ucyBpbiByYXRlcyBvZiBtb2RlbCBoYWxsdWNpbmF0aW9uLCBzeXN0ZW0gcHJvbXB0cyBhbmQgYSBuZXcgYmV0YSBmZWF0dXJlOiB0b29sIHVzZS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ1bmRpOTUvdG9wcHktbS03YiIsIm5hbWUiOiJUb3BweSBNIDdCIiwiY3JlYXRlZCI6MTY5OTU3NDQwMCwiZGVzY3JpcHRpb24iOiJBIHdpbGQgN0IgcGFyYW1ldGVyIG1vZGVsIHRoYXQgbWVyZ2VzIHNldmVyYWwgbW9kZWxzIHVzaW5nIHRoZSBuZXcgdGFza19hcml0aG1ldGljIG1lcmdlIG1ldGhvZCBmcm9tIG1lcmdla2l0LlxuTGlzdCBvZiBtZXJnZWQgbW9kZWxzOlxuLSBOb3VzUmVzZWFyY2gvTm91cy1DYXB5YmFyYS03Qi1WMS45XG4tIFtIdWdnaW5nRmFjZUg0L3plcGh5ci03Yi1iZXRhXSgvbW9kZWxzL2h1Z2dpbmdmYWNlaDQvemVwaHlyLTdiLWJldGEpXG4tIGxlbW9uaWxpYS9Bc2hoTGltYVJQLU1pc3RyYWwtN0Jcbi0gVnVsa2FuZS8xMjAtRGF5cy1vZi1Tb2RvbS1Mb1JBLU1pc3RyYWwtN2Jcbi0gVW5kaTk1L01pc3RyYWwtcGlwcGEtc2hhcmVncHQtN2ItcWxvcmFcblxuI21lcmdlICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxwaW5kYWxlL2dvbGlhdGgtMTIwYiIsIm5hbWUiOiJHb2xpYXRoIDEyMEIiLCJjcmVhdGVkIjoxNjk5NTc0NDAwLCJkZXNjcmlwdGlvbiI6IkEgbGFyZ2UgTExNIGNyZWF0ZWQgYnkgY29tYmluaW5nIHR3byBmaW5lLXR1bmVkIExsYW1hIDcwQiBtb2RlbHMgaW50byBvbmUgMTIwQiBtb2RlbC4gQ29tYmluZXMgWHdpbiBhbmQgRXVyeWFsZS5cblxuQ3JlZGl0cyB0b1xuLSBbQGNoYXJnb2RkYXJkXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NoYXJnb2RkYXJkKSBmb3IgZGV2ZWxvcGluZyB0aGUgZnJhbWV3b3JrIHVzZWQgdG8gbWVyZ2UgdGhlIG1vZGVsIC0gW21lcmdla2l0XShodHRwczovL2dpdGh1Yi5jb20vY2cxMjMvbWVyZ2VraXQpLlxuLSBbQFVuZGk5NV0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9VbmRpOTUpIGZvciBoZWxwaW5nIHdpdGggdGhlIG1lcmdlIHJhdGlvcy5cblxuI21lcmdlIiwiY29udGV4dF9sZW5ndGgiOjYxNDQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWlyb2Jvcm9zIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDY1NjI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA5Mzc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2MTQ0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjUxMiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5yb3V0ZXIvYXV0byIsIm5hbWUiOiJBdXRvIFJvdXRlciIsImNyZWF0ZWQiOjE2OTk0MDE2MDAsImRlc2NyaXB0aW9uIjoiWW91ciBwcm9tcHQgd2lsbCBiZSBwcm9jZXNzZWQgYnkgYSBtZXRhLW1vZGVsIGFuZCByb3V0ZWQgdG8gb25lIG9mIGRvemVucyBvZiBtb2RlbHMgKHNlZSBiZWxvdyksIG9wdGltaXppbmcgZm9yIHRoZSBiZXN0IHBvc3NpYmxlIG91dHB1dC5cblxuVG8gc2VlIHdoaWNoIG1vZGVsIHdhcyB1c2VkLCB2aXNpdCBbQWN0aXZpdHldKC9hY3Rpdml0eSksIG9yIHJlYWQgdGhlIGBtb2RlbGAgYXR0cmlidXRlIG9mIHRoZSByZXNwb25zZS4gWW91ciByZXNwb25zZSB3aWxsIGJlIHByaWNlZCBhdCB0aGUgc2FtZSByYXRlIGFzIHRoZSByb3V0ZWQgbW9kZWwuXG5cblRoZSBtZXRhLW1vZGVsIGlzIHBvd2VyZWQgYnkgW05vdCBEaWFtb25kXShodHRwczovL2RvY3Mubm90ZGlhbW9uZC5haS9kb2NzL2hvdy1ub3QtZGlhbW9uZC13b3JrcykuIExlYXJuIG1vcmUgaW4gb3VyIFtkb2NzXSgvZG9jcy9tb2RlbC1yb3V0aW5nKS5cblxuUmVxdWVzdHMgd2lsbCBiZSByb3V0ZWQgdG8gdGhlIGZvbGxvd2luZyBtb2RlbHM6XG4tIFtvcGVuYWkvZ3B0LTRvLTIwMjQtMDgtMDZdKC9vcGVuYWkvZ3B0LTRvLTIwMjQtMDgtMDYpXG4tIFtvcGVuYWkvZ3B0LTRvLTIwMjQtMDUtMTNdKC9vcGVuYWkvZ3B0LTRvLTIwMjQtMDUtMTMpXG4tIFtvcGVuYWkvZ3B0LTRvLW1pbmktMjAyNC0wNy0xOF0oL29wZW5haS9ncHQtNG8tbWluaS0yMDI0LTA3LTE4KVxuLSBbb3BlbmFpL2NoYXRncHQtNG8tbGF0ZXN0XSgvb3BlbmFpL2NoYXRncHQtNG8tbGF0ZXN0KVxuLSBbb3BlbmFpL28xLXByZXZpZXctMjAyNC0wOS0xMl0oL29wZW5haS9vMS1wcmV2aWV3LTIwMjQtMDktMTIpXG4tIFtvcGVuYWkvbzEtbWluaS0yMDI0LTA5LTEyXSgvb3BlbmFpL28xLW1pbmktMjAyNC0wOS0xMilcbi0gW2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldClcbi0gW2FudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1XSgvYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UpXG4tIFthbnRocm9waWMvY2xhdWRlLTMtb3B1c10oL2FudGhyb3BpYy9jbGF1ZGUtMy1vcHVzKVxuLSBbYW50aHJvcGljL2NsYXVkZS0yLjFdKC9hbnRocm9waWMvY2xhdWRlLTIuMSlcbi0gW2dvb2dsZS9nZW1pbmktcHJvLTEuNV0oL2dvb2dsZS9nZW1pbmktcHJvLTEuNSlcbi0gW2dvb2dsZS9nZW1pbmktZmxhc2gtMS41XSgvZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUpXG4tIFttaXN0cmFsYWkvbWlzdHJhbC1sYXJnZS0yNDA3XSgvbWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UtMjQwNylcbi0gW21pc3RyYWxhaS9taXN0cmFsLW5lbW9dKC9taXN0cmFsYWkvbWlzdHJhbC1uZW1vKVxuLSBbZGVlcHNlZWsvZGVlcHNlZWstcjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSlcbi0gW21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdF0oL21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdClcbi0gW21ldGEtbGxhbWEvbGxhbWEtMy4xLTQwNWItaW5zdHJ1Y3RdKC9tZXRhLWxsYW1hL2xsYW1hLTMuMS00MDViLWluc3RydWN0KVxuLSBbbWlzdHJhbGFpL21peHRyYWwtOHgyMmItaW5zdHJ1Y3RdKC9taXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdClcbi0gW2NvaGVyZS9jb21tYW5kLXItcGx1c10oL2NvaGVyZS9jb21tYW5kLXItcGx1cylcbi0gW2NvaGVyZS9jb21tYW5kLXJdKC9jb2hlcmUvY29tbWFuZC1yKSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUm91dGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiLTEiLCJjb21wbGV0aW9uIjoiLTEifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjpudWxsLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0xMTA2IiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyAxNmsgKG9sZGVyIHYxMTA2KSIsImNyZWF0ZWQiOjE2OTkyMjg4MDAsImRlc2NyaXB0aW9uIjoiQW4gb2xkZXIgR1BULTMuNSBUdXJibyBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMTEwNi1wcmV2aWV3IiwibmFtZSI6Ik9wZW5BSTogR1BULTQgVHVyYm8gKG9sZGVyIHYxMTA2KSIsImNyZWF0ZWQiOjE2OTkyMjg4MDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBHUFQtNCBUdXJibyBtb2RlbCB3aXRoIHZpc2lvbiBjYXBhYmlsaXRpZXMuIFZpc2lvbiByZXF1ZXN0cyBjYW4gbm93IHVzZSBKU09OIG1vZGUgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuXG5cblRyYWluaW5nIGRhdGE6IHVwIHRvIEFwcmlsIDIwMjMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9wYWxtLTItY2hhdC1iaXNvbi0zMmsiLCJuYW1lIjoiR29vZ2xlOiBQYUxNIDIgQ2hhdCAzMmsiLCJjcmVhdGVkIjoxNjk4OTY5NjAwLCJkZXNjcmlwdGlvbiI6IlBhTE0gMiBpcyBhIGxhbmd1YWdlIG1vZGVsIGJ5IEdvb2dsZSB3aXRoIGltcHJvdmVkIG11bHRpbGluZ3VhbCwgcmVhc29uaW5nIGFuZCBjb2RpbmcgY2FwYWJpbGl0aWVzLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlBhTE0iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9wYWxtLTItY29kZWNoYXQtYmlzb24tMzJrIiwibmFtZSI6Ikdvb2dsZTogUGFMTSAyIENvZGUgQ2hhdCAzMmsiLCJjcmVhdGVkIjoxNjk4OTY5NjAwLCJkZXNjcmlwdGlvbiI6IlBhTE0gMiBmaW5lLXR1bmVkIGZvciBjaGF0Ym90IGNvbnZlcnNhdGlvbnMgdGhhdCBoZWxwIHdpdGggY29kZS1yZWxhdGVkIHF1ZXN0aW9ucy4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJQYUxNIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJqb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYiIsIm5hbWUiOiJBaXJvYm9yb3MgNzBCIiwiY3JlYXRlZCI6MTY5ODUzNzYwMCwiZGVzY3JpcHRpb24iOiJBIExsYW1hIDIgNzBCIGZpbmUtdHVuZSB1c2luZyBzeW50aGV0aWMgZGF0YSAodGhlIEFpcm9ib3JvcyBkYXRhc2V0KS5cblxuQ3VycmVudGx5IGJhc2VkIG9uIFtqb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9qb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYi0yLjIuMSksIGJ1dCBtaWdodCBnZXQgdXBkYXRlZCBpbiB0aGUgZnV0dXJlLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFpcm9ib3JvcyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Inh3aW4tbG0veHdpbi1sbS03MGIiLCJuYW1lIjoiWHdpbiA3MEIiLCJjcmVhdGVkIjoxNjk3MzI4MDAwLCJkZXNjcmlwdGlvbiI6Ilh3aW4tTE0gYWltcyB0byBkZXZlbG9wIGFuZCBvcGVuLXNvdXJjZSBhbGlnbm1lbnQgdGVjaCBmb3IgTExNcy4gT3VyIGZpcnN0IHJlbGVhc2UsIGJ1aWx0LXVwb24gb24gdGhlIFtMbGFtYTJdKC9tb2RlbHMvJHtNb2RlbC5MbGFtYV8yXzEzQl9DaGF0fSkgYmFzZSBtb2RlbHMsIHJhbmtlZCBUT1AtMSBvbiBBbHBhY2FFdmFsLiBOb3RhYmx5LCBpdCdzIHRoZSBmaXJzdCB0byBzdXJwYXNzIFtHUFQtNF0oL21vZGVscy8ke01vZGVsLkdQVF80fSkgb24gdGhpcyBiZW5jaG1hcmsuIFRoZSBwcm9qZWN0IHdpbGwgYmUgY29udGludW91c2x5IHVwZGF0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWlyb2Jvcm9zIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjUxMiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLWluc3RydWN0IiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyBJbnN0cnVjdCIsImNyZWF0ZWQiOjE2OTU4NTkyMDAsImRlc2NyaXB0aW9uIjoiVGhpcyBtb2RlbCBpcyBhIHZhcmlhbnQgb2YgR1BULTMuNSBUdXJibyB0dW5lZCBmb3IgaW5zdHJ1Y3Rpb25hbCBwcm9tcHRzIGFuZCBvbWl0dGluZyBjaGF0LXJlbGF0ZWQgb3B0aW1pemF0aW9ucy4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjQwOTUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk1LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjEiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCB2MC4xIiwiY3JlYXRlZCI6MTY5NTg1OTIwMCwiZGVzY3JpcHRpb24iOiJBIDcuM0IgcGFyYW1ldGVyIG1vZGVsIHRoYXQgb3V0cGVyZm9ybXMgTGxhbWEgMiAxM0Igb24gYWxsIGJlbmNobWFya3MsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJweWdtYWxpb25haS9teXRoYWxpb24tMTNiIiwibmFtZSI6IlB5Z21hbGlvbjogTXl0aGFsaW9uIDEzQiIsImNyZWF0ZWQiOjE2OTM2MTI4MDAsImRlc2NyaXB0aW9uIjoiQSBibGVuZCBvZiB0aGUgbmV3IFB5Z21hbGlvbi0xM2IgYW5kIE15dGhvTWF4LiAjbWVyZ2UiLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhbHBhY2EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDU2MjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLTE2ayIsIm5hbWUiOiJPcGVuQUk6IEdQVC0zLjUgVHVyYm8gMTZrIiwiY3JlYXRlZCI6MTY5MzE4MDgwMCwiZGVzY3JpcHRpb24iOiJUaGlzIG1vZGVsIG9mZmVycyBmb3VyIHRpbWVzIHRoZSBjb250ZXh0IGxlbmd0aCBvZiBncHQtMy41LXR1cmJvLCBhbGxvd2luZyBpdCB0byBzdXBwb3J0IGFwcHJveGltYXRlbHkgMjAgcGFnZXMgb2YgdGV4dCBpbiBhIHNpbmdsZSByZXF1ZXN0IGF0IGEgaGlnaGVyIGNvc3QuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMzJrIiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIiwiY3JlYXRlZCI6MTY5MzE4MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtNC0zMmsgaXMgYW4gZXh0ZW5kZWQgdmVyc2lvbiBvZiBHUFQtNCwgd2l0aCB0aGUgc2FtZSBjYXBhYmlsaXRpZXMgYnV0IHF1YWRydXBsZWQgY29udGV4dCBsZW5ndGgsIGFsbG93aW5nIGZvciBwcm9jZXNzaW5nIHVwIHRvIDQwIHBhZ2VzIG9mIHRleHQgaW4gYSBzaW5nbGUgcGFzcy4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgYmVuZWZpY2lhbCBmb3IgaGFuZGxpbmcgbG9uZ2VyIGNvbnRlbnQgbGlrZSBpbnRlcmFjdGluZyB3aXRoIFBERnMgd2l0aG91dCBhbiBleHRlcm5hbCB2ZWN0b3IgZGF0YWJhc2UuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2NywiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDYiLCJjb21wbGV0aW9uIjoiMC4wMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjcsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LTMyay0wMzE0IiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjkzMTgwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTMyayBpcyBhbiBleHRlbmRlZCB2ZXJzaW9uIG9mIEdQVC00LCB3aXRoIHRoZSBzYW1lIGNhcGFiaWxpdGllcyBidXQgcXVhZHJ1cGxlZCBjb250ZXh0IGxlbmd0aCwgYWxsb3dpbmcgZm9yIHByb2Nlc3NpbmcgdXAgdG8gNDAgcGFnZXMgb2YgdGV4dCBpbiBhIHNpbmdsZSBwYXNzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBiZW5lZmljaWFsIGZvciBoYW5kbGluZyBsb25nZXIgY29udGVudCBsaWtlIGludGVyYWN0aW5nIHdpdGggUERGcyB3aXRob3V0IGFuIGV4dGVybmFsIHZlY3RvciBkYXRhYmFzZS4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY3LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2NywibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvbm91cy1oZXJtZXMtbGxhbWEyLTEzYiIsIm5hbWUiOiJOb3VzOiBIZXJtZXMgMTNCIiwiY3JlYXRlZCI6MTY5MjQ4OTYwMCwiZGVzY3JpcHRpb24iOiJBIHN0YXRlLW9mLXRoZS1hcnQgbGFuZ3VhZ2UgbW9kZWwgZmluZS10dW5lZCBvbiBvdmVyIDMwMGsgaW5zdHJ1Y3Rpb25zIGJ5IE5vdXMgUmVzZWFyY2gsIHdpdGggVGVrbml1bSBhbmQgRW1vemlsbGEgbGVhZGluZyB0aGUgZmluZSB0dW5pbmcgcHJvY2Vzcy4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhbHBhY2EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1hbmNlci93ZWF2ZXIiLCJuYW1lIjoiTWFuY2VyOiBXZWF2ZXIgKGFscGhhKSIsImNyZWF0ZWQiOjE2OTA5MzQ0MDAsImRlc2NyaXB0aW9uIjoiQW4gYXR0ZW1wdCB0byByZWNyZWF0ZSBDbGF1ZGUtc3R5bGUgdmVyYm9zaXR5LCBidXQgZG9uJ3QgZXhwZWN0IHRoZSBzYW1lIGxldmVsIG9mIGNvaGVyZW5jZSBvciBtZW1vcnkuIE1lYW50IGZvciB1c2UgaW4gcm9sZXBsYXkvbmFycmF0aXZlIHNpdHVhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imh1Z2dpbmdmYWNlaDQvemVwaHlyLTdiLWJldGE6ZnJlZSIsIm5hbWUiOiJIdWdnaW5nIEZhY2U6IFplcGh5ciA3QiAoZnJlZSkiLCJjcmVhdGVkIjoxNjkwOTM0NDAwLCJkZXNjcmlwdGlvbiI6IlplcGh5ciBpcyBhIHNlcmllcyBvZiBsYW5ndWFnZSBtb2RlbHMgdGhhdCBhcmUgdHJhaW5lZCB0byBhY3QgYXMgaGVscGZ1bCBhc3Npc3RhbnRzLiBaZXBoeXItN0ItzrIgaXMgdGhlIHNlY29uZCBtb2RlbCBpbiB0aGUgc2VyaWVzLCBhbmQgaXMgYSBmaW5lLXR1bmVkIHZlcnNpb24gb2YgW21pc3RyYWxhaS9NaXN0cmFsLTdCLXYwLjFdKC9tb2RlbHMvbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMSkgdGhhdCB3YXMgdHJhaW5lZCBvbiBhIG1peCBvZiBwdWJsaWNseSBhdmFpbGFibGUsIHN5bnRoZXRpYyBkYXRhc2V0cyB1c2luZyBEaXJlY3QgUHJlZmVyZW5jZSBPcHRpbWl6YXRpb24gKERQTykuIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InplcGh5ciJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0yLjA6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2Mi4wIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNjkwNTAyNDAwLCJkZXNjcmlwdGlvbiI6IkFudGhyb3BpYydzIGZsYWdzaGlwIG1vZGVsLiBTdXBlcmlvciBwZXJmb3JtYW5jZSBvbiB0YXNrcyB0aGF0IHJlcXVpcmUgY29tcGxleCByZWFzb25pbmcuIFN1cHBvcnRzIGh1bmRyZWRzIG9mIHBhZ2VzIG9mIHRleHQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMi4wIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIHYyLjAiLCJjcmVhdGVkIjoxNjkwNTAyNDAwLCJkZXNjcmlwdGlvbiI6IkFudGhyb3BpYydzIGZsYWdzaGlwIG1vZGVsLiBTdXBlcmlvciBwZXJmb3JtYW5jZSBvbiB0YXNrcyB0aGF0IHJlcXVpcmUgY29tcGxleCByZWFzb25pbmcuIFN1cHBvcnRzIGh1bmRyZWRzIG9mIHBhZ2VzIG9mIHRleHQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidW5kaTk1L3JlbW0tc2xlcnAtbDItMTNiIiwibmFtZSI6IlJlTU0gU0xFUlAgMTNCIiwiY3JlYXRlZCI6MTY4OTk4NDAwMCwiZGVzY3JpcHRpb24iOiJBIHJlY3JlYXRpb24gdHJpYWwgb2YgdGhlIG9yaWdpbmFsIE15dGhvTWF4LUwyLUIxMyBidXQgd2l0aCB1cGRhdGVkIG1vZGVscy4gI21lcmdlIiwiY29udGV4dF9sZW5ndGgiOjYxNDQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1NjI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMTI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2MTQ0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMjQsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvcGFsbS0yLWNoYXQtYmlzb24iLCJuYW1lIjoiR29vZ2xlOiBQYUxNIDIgQ2hhdCIsImNyZWF0ZWQiOjE2ODk4MTEyMDAsImRlc2NyaXB0aW9uIjoiUGFMTSAyIGlzIGEgbGFuZ3VhZ2UgbW9kZWwgYnkgR29vZ2xlIHdpdGggaW1wcm92ZWQgbXVsdGlsaW5ndWFsLCByZWFzb25pbmcgYW5kIGNvZGluZyBjYXBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjkyMTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJQYUxNIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjkyMTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9wYWxtLTItY29kZWNoYXQtYmlzb24iLCJuYW1lIjoiR29vZ2xlOiBQYUxNIDIgQ29kZSBDaGF0IiwiY3JlYXRlZCI6MTY4OTgxMTIwMCwiZGVzY3JpcHRpb24iOiJQYUxNIDIgZmluZS10dW5lZCBmb3IgY2hhdGJvdCBjb252ZXJzYXRpb25zIHRoYXQgaGVscCB3aXRoIGNvZGUtcmVsYXRlZCBxdWVzdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjcxNjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJQYUxNIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjcxNjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImdyeXBoZS9teXRob21heC1sMi0xM2IiLCJuYW1lIjoiTXl0aG9NYXggMTNCIiwiY3JlYXRlZCI6MTY4ODI1NjAwMCwiZGVzY3JpcHRpb24iOiJPbmUgb2YgdGhlIGhpZ2hlc3QgcGVyZm9ybWluZyBhbmQgbW9zdCBwb3B1bGFyIGZpbmUtdHVuZXMgb2YgTGxhbWEgMiAxM0IsIHdpdGggcmljaCBkZXNjcmlwdGlvbnMgYW5kIHJvbGVwbGF5LiAjbWVyZ2UiLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhbHBhY2EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA2NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA2NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0yLTEzYi1jaGF0IiwibmFtZSI6Ik1ldGE6IExsYW1hIDIgMTNCIENoYXQiLCJjcmVhdGVkIjoxNjg3MjE5MjAwLCJkZXNjcmlwdGlvbiI6IkEgMTMgYmlsbGlvbiBwYXJhbWV0ZXIgbGFuZ3VhZ2UgbW9kZWwgZnJvbSBNZXRhLCBmaW5lIHR1bmVkIGZvciBjaGF0IGNvbXBsZXRpb25zIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEyIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTItNzBiLWNoYXQiLCJuYW1lIjoiTWV0YTogTGxhbWEgMiA3MEIgQ2hhdCIsImNyZWF0ZWQiOjE2ODcyMTkyMDAsImRlc2NyaXB0aW9uIjoiVGhlIGZsYWdzaGlwLCA3MCBiaWxsaW9uIHBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBmcm9tIE1ldGEsIGZpbmUgdHVuZWQgZm9yIGNoYXQgY29tcGxldGlvbnMuIExsYW1hIDIgaXMgYW4gYXV0by1yZWdyZXNzaXZlIGxhbmd1YWdlIG1vZGVsIHRoYXQgdXNlcyBhbiBvcHRpbWl6ZWQgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLiBUaGUgdHVuZWQgdmVyc2lvbnMgdXNlIHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgYW5kIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgd2l0aCBodW1hbiBmZWVkYmFjayAoUkxIRikgdG8gYWxpZ24gdG8gaHVtYW4gcHJlZmVyZW5jZXMgZm9yIGhlbHBmdWxuZXNzIGFuZCBzYWZldHkuIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEyIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA5IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwOSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC0zLjUtdHVyYm8iLCJuYW1lIjoiT3BlbkFJOiBHUFQtMy41IFR1cmJvIiwiY3JlYXRlZCI6MTY4NTIzMjAwMCwiZGVzY3JpcHRpb24iOiJHUFQtMy41IFR1cmJvIGlzIE9wZW5BSSdzIGZhc3Rlc3QgbW9kZWwuIEl0IGNhbiB1bmRlcnN0YW5kIGFuZCBnZW5lcmF0ZSBuYXR1cmFsIGxhbmd1YWdlIG9yIGNvZGUsIGFuZCBpcyBvcHRpbWl6ZWQgZm9yIGNoYXQgYW5kIHRyYWRpdGlvbmFsIGNvbXBsZXRpb24gdGFza3MuXG5cblRyYWluaW5nIGRhdGEgdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODUsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC0zLjUtdHVyYm8tMDEyNSIsIm5hbWUiOiJPcGVuQUk6IEdQVC0zLjUgVHVyYm8gMTZrIiwiY3JlYXRlZCI6MTY4NTIzMjAwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IEdQVC0zLjUgVHVyYm8gbW9kZWwgd2l0aCBpbXByb3ZlZCBpbnN0cnVjdGlvbiBmb2xsb3dpbmcsIEpTT04gbW9kZSwgcmVwcm9kdWNpYmxlIG91dHB1dHMsIHBhcmFsbGVsIGZ1bmN0aW9uIGNhbGxpbmcsIGFuZCBtb3JlLiBUcmFpbmluZyBkYXRhOiB1cCB0byBTZXAgMjAyMS5cblxuVGhpcyB2ZXJzaW9uIGhhcyBhIGhpZ2hlciBhY2N1cmFjeSBhdCByZXNwb25kaW5nIGluIHJlcXVlc3RlZCBmb3JtYXRzIGFuZCBhIGZpeCBmb3IgYSBidWcgd2hpY2ggY2F1c2VkIGEgdGV4dCBlbmNvZGluZyBpc3N1ZSBmb3Igbm9uLUVuZ2xpc2ggbGFuZ3VhZ2UgZnVuY3Rpb24gY2FsbHMuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODUsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00IiwibmFtZSI6Ik9wZW5BSTogR1BULTQiLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6Ik9wZW5BSSdzIGZsYWdzaGlwIG1vZGVsLCBHUFQtNCBpcyBhIGxhcmdlLXNjYWxlIG11bHRpbW9kYWwgbGFuZ3VhZ2UgbW9kZWwgY2FwYWJsZSBvZiBzb2x2aW5nIGRpZmZpY3VsdCBwcm9ibGVtcyB3aXRoIGdyZWF0ZXIgYWNjdXJhY3kgdGhhbiBwcmV2aW91cyBtb2RlbHMgZHVlIHRvIGl0cyBicm9hZGVyIGdlbmVyYWwga25vd2xlZGdlIGFuZCBhZHZhbmNlZCByZWFzb25pbmcgY2FwYWJpbGl0aWVzLiBUcmFpbmluZyBkYXRhOiB1cCB0byBTZXAgMjAyMS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMDMxNCIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTAzMTQgaXMgdGhlIGZpcnN0IHZlcnNpb24gb2YgR1BULTQgcmVsZWFzZWQsIHdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiA4LDE5MiB0b2tlbnMsIGFuZCB3YXMgc3VwcG9ydGVkIHVudGlsIEp1bmUgMTQuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH1dfQ== + recorded_at: Wed, 09 Apr 2025 10:27:55 GMT +- request: + method: get + uri: https://openrouter.ai/api/v1/models?supported_parameters=tools + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v2.12.2 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:56 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cdn-Cache-Control: + - max-age=300 + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkYXRhIjpbeyJpZCI6Imdvb2dsZS9nZW1pbmktZmxhc2gtMS41LThiLWV4cCIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAxLjUgRmxhc2ggOEIgRXhwZXJpbWVudGFsIiwiY3JlYXRlZCI6MTcyNDgwMzIwMCwiZGVzY3JpcHRpb24iOiJHZW1pbmkgRmxhc2ggMS41IDhCIEV4cGVyaW1lbnRhbCBpcyBhbiBleHBlcmltZW50YWwsIDhCIHBhcmFtZXRlciB2ZXJzaW9uIG9mIHRoZSBbR2VtaW5pIEZsYXNoIDEuNV0oL21vZGVscy9nb29nbGUvZ2VtaW5pLWZsYXNoLTEuNSkgbW9kZWwuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4jbXVsdGltb2RhbFxuXG5Ob3RlOiBUaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgYW5kIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMsIGFuZCBtYXkgYmUgaGVhdmlseSByYXRlLWxpbWl0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjUtcHJvLWV4cC0wMy0yNTpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuNSBQcm8gRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3NDI5MjIwOTksImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuNSBQcm8gaXMgR29vZ2xl4oCZcyBzdGF0ZS1vZi10aGUtYXJ0IEFJIG1vZGVsIGRlc2lnbmVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbnRpZmljIHRhc2tzLiBJdCBlbXBsb3lzIOKAnHRoaW5raW5n4oCdIGNhcGFiaWxpdGllcywgZW5hYmxpbmcgaXQgdG8gcmVhc29uIHRocm91Z2ggcmVzcG9uc2VzIHdpdGggZW5oYW5jZWQgYWNjdXJhY3kgYW5kIG51YW5jZWQgY29udGV4dCBoYW5kbGluZy4gR2VtaW5pIDIuNSBQcm8gYWNoaWV2ZXMgdG9wLXRpZXIgcGVyZm9ybWFuY2Ugb24gbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nIGZpcnN0LXBsYWNlIHBvc2l0aW9uaW5nIG9uIHRoZSBMTUFyZW5hIGxlYWRlcmJvYXJkLCByZWZsZWN0aW5nIHN1cGVyaW9yIGh1bWFuLXByZWZlcmVuY2UgYWxpZ25tZW50IGFuZCBjb21wbGV4IHByb2JsZW0tc29sdmluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NTUzNSwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTMuMS0yNGItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIFNtYWxsIDMuMSAyNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjIzODkzNywiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNtYWxsIDMuMSAyNEIgSW5zdHJ1Y3QgaXMgYW4gdXBncmFkZWQgdmFyaWFudCBvZiBNaXN0cmFsIFNtYWxsIDMgKDI1MDEpLCBmZWF0dXJpbmcgMjQgYmlsbGlvbiBwYXJhbWV0ZXJzIHdpdGggYWR2YW5jZWQgbXVsdGltb2RhbCBjYXBhYmlsaXRpZXMuIEl0IHByb3ZpZGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgaW4gdGV4dC1iYXNlZCByZWFzb25pbmcgYW5kIHZpc2lvbiB0YXNrcywgaW5jbHVkaW5nIGltYWdlIGFuYWx5c2lzLCBwcm9ncmFtbWluZywgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgYW5kIG11bHRpbGluZ3VhbCBzdXBwb3J0IGFjcm9zcyBkb3plbnMgb2YgbGFuZ3VhZ2VzLiBFcXVpcHBlZCB3aXRoIGFuIGV4dGVuc2l2ZSAxMjhrIHRva2VuIGNvbnRleHQgd2luZG93IGFuZCBvcHRpbWl6ZWQgZm9yIGVmZmljaWVudCBsb2NhbCBpbmZlcmVuY2UsIGl0IHN1cHBvcnRzIHVzZSBjYXNlcyBzdWNoIGFzIGNvbnZlcnNhdGlvbmFsIGFnZW50cywgZnVuY3Rpb24gY2FsbGluZywgbG9uZy1kb2N1bWVudCBjb21wcmVoZW5zaW9uLCBhbmQgcHJpdmFjeS1zZW5zaXRpdmUgZGVwbG95bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6OTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6OTYwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC1leHA6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAyLjAgRmxhc2ggRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3MzM5Mzc1MjMsImRlc2NyaXB0aW9uIjoiR2VtaW5pIEZsYXNoIDIuMCBvZmZlcnMgYSBzaWduaWZpY2FudGx5IGZhc3RlciB0aW1lIHRvIGZpcnN0IHRva2VuIChUVEZUKSBjb21wYXJlZCB0byBbR2VtaW5pIEZsYXNoIDEuNV0oL2dvb2dsZS9nZW1pbmktZmxhc2gtMS41KSwgd2hpbGUgbWFpbnRhaW5pbmcgcXVhbGl0eSBvbiBwYXIgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgW0dlbWluaSBQcm8gMS41XSgvZ29vZ2xlL2dlbWluaS1wcm8tMS41KS4gSXQgaW50cm9kdWNlcyBub3RhYmxlIGVuaGFuY2VtZW50cyBpbiBtdWx0aW1vZGFsIHVuZGVyc3RhbmRpbmcsIGNvZGluZyBjYXBhYmlsaXRpZXMsIGNvbXBsZXggaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBhbmQgZnVuY3Rpb24gY2FsbGluZy4gVGhlc2UgYWR2YW5jZW1lbnRzIGNvbWUgdG9nZXRoZXIgdG8gZGVsaXZlciBtb3JlIHNlYW1sZXNzIGFuZCByb2J1c3QgYWdlbnRpYyBleHBlcmllbmNlcy4iLCJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVucm91dGVyL3F1YXNhci1hbHBoYSIsIm5hbWUiOiJRdWFzYXIgQWxwaGEiLCJjcmVhdGVkIjoxNzQzNjI2ODA5LCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSBjbG9ha2VkIG1vZGVsIHByb3ZpZGVkIHRvIHRoZSBjb21tdW5pdHkgdG8gZ2F0aGVyIGZlZWRiYWNrLiBJdOKAmXMgYSBwb3dlcmZ1bCwgYWxsLXB1cnBvc2UgbW9kZWwgc3VwcG9ydGluZyBsb25nLWNvbnRleHQgdGFza3MsIGluY2x1ZGluZyBjb2RlIGdlbmVyYXRpb24uIEFsbCBwcm9tcHRzIGFuZCBjb21wbGV0aW9ucyBmb3IgdGhpcyBtb2RlbCBhcmUgbG9nZ2VkIGJ5IHRoZSBwcm92aWRlciBhcyB3ZWxsIGFzIE9wZW5Sb3V0ZXIuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbImltYWdlIiwidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS04Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgOEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIxNjkyODAwLCJkZXNjcmlwdGlvbiI6Ik1ldGEncyBsYXRlc3QgY2xhc3Mgb2YgbW9kZWwgKExsYW1hIDMuMSkgbGF1bmNoZWQgd2l0aCBhIHZhcmlldHkgb2Ygc2l6ZXMgJiBmbGF2b3JzLiBUaGlzIDhCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgZmFzdCBhbmQgZWZmaWNpZW50LlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLTEvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItM2ItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDNCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgM0IgaXMgYSAzLWJpbGxpb24tcGFyYW1ldGVyIG11bHRpbGluZ3VhbCBsYXJnZSBsYW5ndWFnZSBtb2RlbCwgb3B0aW1pemVkIGZvciBhZHZhbmNlZCBuYXR1cmFsIGxhbmd1YWdlIHByb2Nlc3NpbmcgdGFza3MgbGlrZSBkaWFsb2d1ZSBnZW5lcmF0aW9uLCByZWFzb25pbmcsIGFuZCBzdW1tYXJpemF0aW9uLiBEZXNpZ25lZCB3aXRoIHRoZSBsYXRlc3QgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLCBpdCBzdXBwb3J0cyBlaWdodCBsYW5ndWFnZXMsIGluY2x1ZGluZyBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgSGluZGksIGFuZCBpcyBhZGFwdGFibGUgZm9yIGFkZGl0aW9uYWwgbGFuZ3VhZ2VzLlxuXG5UcmFpbmVkIG9uIDkgdHJpbGxpb24gdG9rZW5zLCB0aGUgTGxhbWEgMy4yIDNCIG1vZGVsIGV4Y2VscyBpbiBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGNvbXBsZXggcmVhc29uaW5nLCBhbmQgdG9vbCB1c2UuIEl0cyBiYWxhbmNlZCBwZXJmb3JtYW5jZSBtYWtlcyBpdCBpZGVhbCBmb3IgYXBwbGljYXRpb25zIG5lZWRpbmcgYWNjdXJhY3kgYW5kIGVmZmljaWVuY3kgaW4gdGV4dCBnZW5lcmF0aW9uIGFjcm9zcyBtdWx0aWxpbmd1YWwgc2V0dGluZ3MuXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRC5tZCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly93d3cubGxhbWEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdCIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIDdCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxNjc2ODAwMCwiZGVzY3JpcHRpb24iOiJBIGhpZ2gtcGVyZm9ybWluZywgaW5kdXN0cnktc3RhbmRhcmQgNy4zQiBwYXJhbWV0ZXIgbW9kZWwsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLlxuXG4qTWlzdHJhbCA3QiBJbnN0cnVjdCBoYXMgbXVsdGlwbGUgdmVyc2lvbiB2YXJpYW50cywgYW5kIHRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdGhlIGxhdGVzdCB2ZXJzaW9uLioiLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDU1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMyIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIDdCIEluc3RydWN0IHYwLjMiLCJjcmVhdGVkIjoxNzE2NzY4MDAwLCJkZXNjcmlwdGlvbiI6IkEgaGlnaC1wZXJmb3JtaW5nLCBpbmR1c3RyeS1zdGFuZGFyZCA3LjNCIHBhcmFtZXRlciBtb2RlbCwgd2l0aCBvcHRpbWl6YXRpb25zIGZvciBzcGVlZCBhbmQgY29udGV4dCBsZW5ndGguXG5cbkFuIGltcHJvdmVkIHZlcnNpb24gb2YgW01pc3RyYWwgN0IgSW5zdHJ1Y3QgdjAuMl0oL21vZGVscy9taXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdC12MC4yKSwgd2l0aCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6XG5cbi0gRXh0ZW5kZWQgdm9jYWJ1bGFyeSB0byAzMjc2OFxuLSBTdXBwb3J0cyB2MyBUb2tlbml6ZXJcbi0gU3VwcG9ydHMgZnVuY3Rpb24gY2FsbGluZ1xuXG5OT1RFOiBTdXBwb3J0IGZvciBmdW5jdGlvbiBjYWxsaW5nIGRlcGVuZHMgb24gdGhlIHByb3ZpZGVyLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMtOGItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMyA4QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTMzOTg0MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMykgbGF1bmNoZWQgd2l0aCBhIHZhcmlldHkgb2Ygc2l6ZXMgJiBmbGF2b3JzLiBUaGlzIDhCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gd2FzIG9wdGltaXplZCBmb3IgaGlnaCBxdWFsaXR5IGRpYWxvZ3VlIHVzZWNhc2VzLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbWljcm8tdjEiLCJuYW1lIjoiQW1hem9uOiBOb3ZhIE1pY3JvIDEuMCIsImNyZWF0ZWQiOjE3MzM0MzcyMzcsImRlc2NyaXB0aW9uIjoiQW1hem9uIE5vdmEgTWljcm8gMS4wIGlzIGEgdGV4dC1vbmx5IG1vZGVsIHRoYXQgZGVsaXZlcnMgdGhlIGxvd2VzdCBsYXRlbmN5IHJlc3BvbnNlcyBpbiB0aGUgQW1hem9uIE5vdmEgZmFtaWx5IG9mIG1vZGVscyBhdCBhIHZlcnkgbG93IGNvc3QuIFdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiAxMjhLIHRva2VucyBhbmQgb3B0aW1pemVkIGZvciBzcGVlZCBhbmQgY29zdCwgQW1hem9uIE5vdmEgTWljcm8gZXhjZWxzIGF0IHRhc2tzIHN1Y2ggYXMgdGV4dCBzdW1tYXJpemF0aW9uLCB0cmFuc2xhdGlvbiwgY29udGVudCBjbGFzc2lmaWNhdGlvbiwgaW50ZXJhY3RpdmUgY2hhdCwgYW5kIGJyYWluc3Rvcm1pbmcuIEl0IGhhcyAgc2ltcGxlIG1hdGhlbWF0aWNhbCByZWFzb25pbmcgYW5kIGNvZGluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NTEyMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktZmxhc2gtMS41LThiIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDEuNSBGbGFzaCA4QiIsImNyZWF0ZWQiOjE3Mjc5MTM2MDAsImRlc2NyaXB0aW9uIjoiR2VtaW5pIEZsYXNoIDEuNSA4QiBpcyBvcHRpbWl6ZWQgZm9yIHNwZWVkIGFuZCBlZmZpY2llbmN5LCBvZmZlcmluZyBlbmhhbmNlZCBwZXJmb3JtYW5jZSBpbiBzbWFsbCBwcm9tcHQgdGFza3MgbGlrZSBjaGF0LCB0cmFuc2NyaXB0aW9uLCBhbmQgdHJhbnNsYXRpb24uIFdpdGggcmVkdWNlZCBsYXRlbmN5LCBpdCBpcyBoaWdobHkgZWZmZWN0aXZlIGZvciByZWFsLXRpbWUgYW5kIGxhcmdlLXNjYWxlIG9wZXJhdGlvbnMuIFRoaXMgbW9kZWwgZm9jdXNlcyBvbiBjb3N0LWVmZmVjdGl2ZSBzb2x1dGlvbnMgd2hpbGUgbWFpbnRhaW5pbmcgaGlnaC1xdWFsaXR5IHJlc3VsdHMuXG5cbltDbGljayBoZXJlIHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhpcyBtb2RlbF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZWJsb2cuY29tL2VuL2dlbWluaS0xNS1mbGFzaC04Yi1pcy1ub3ctZ2VuZXJhbGx5LWF2YWlsYWJsZS1mb3ItdXNlLykuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDEiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAwMDU4MyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taW5pc3RyYWwtM2IiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDNCIiwiY3JlYXRlZCI6MTcyOTEyMzIwMCwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgM0IgaXMgYSAzQiBwYXJhbWV0ZXIgbW9kZWwgb3B0aW1pemVkIGZvciBvbi1kZXZpY2UgYW5kIGVkZ2UgY29tcHV0aW5nLiBJdCBleGNlbHMgaW4ga25vd2xlZGdlLCBjb21tb25zZW5zZSByZWFzb25pbmcsIGFuZCBmdW5jdGlvbi1jYWxsaW5nLCBvdXRwZXJmb3JtaW5nIGxhcmdlciBtb2RlbHMgbGlrZSBNaXN0cmFsIDdCIG9uIG1vc3QgYmVuY2htYXJrcy4gU3VwcG9ydGluZyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoLCBpdOKAmXMgaWRlYWwgZm9yIG9yY2hlc3RyYXRpbmcgYWdlbnRpYyB3b3JrZmxvd3MgYW5kIHNwZWNpYWxpc3QgdGFza3Mgd2l0aCBlZmZpY2llbnQgaW5mZXJlbmNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi10dXJibyIsIm5hbWUiOiJRd2VuOiBRd2VuLVR1cmJvIiwiY3JlYXRlZCI6MTczODQxMDk3NCwiZGVzY3JpcHRpb24iOiJRd2VuLVR1cmJvLCBiYXNlZCBvbiBRd2VuMi41LCBpcyBhIDFNIGNvbnRleHQgbW9kZWwgdGhhdCBwcm92aWRlcyBmYXN0IHNwZWVkIGFuZCBsb3cgY29zdCwgc3VpdGFibGUgZm9yIHNpbXBsZSB0YXNrcy4iLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbGl0ZS12MSIsIm5hbWUiOiJBbWF6b246IE5vdmEgTGl0ZSAxLjAiLCJjcmVhdGVkIjoxNzMzNDM3MzYzLCJkZXNjcmlwdGlvbiI6IkFtYXpvbiBOb3ZhIExpdGUgMS4wIGlzIGEgdmVyeSBsb3ctY29zdCBtdWx0aW1vZGFsIG1vZGVsIGZyb20gQW1hem9uIHRoYXQgZm9jdXNlZCBvbiBmYXN0IHByb2Nlc3Npbmcgb2YgaW1hZ2UsIHZpZGVvLCBhbmQgdGV4dCBpbnB1dHMgdG8gZ2VuZXJhdGUgdGV4dCBvdXRwdXQuIEFtYXpvbiBOb3ZhIExpdGUgY2FuIGhhbmRsZSByZWFsLXRpbWUgY3VzdG9tZXIgaW50ZXJhY3Rpb25zLCBkb2N1bWVudCBhbmFseXNpcywgYW5kIHZpc3VhbCBxdWVzdGlvbi1hbnN3ZXJpbmcgdGFza3Mgd2l0aCBoaWdoIGFjY3VyYWN5LlxuXG5XaXRoIGFuIGlucHV0IGNvbnRleHQgb2YgMzAwSyB0b2tlbnMsIGl0IGNhbiBhbmFseXplIG11bHRpcGxlIGltYWdlcyBvciB1cCB0byAzMCBtaW51dGVzIG9mIHZpZGVvIGluIGEgc2luZ2xlIGlucHV0LiIsImNvbnRleHRfbGVuZ3RoIjozMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwOSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo1MTIwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMS41IEZsYXNoICIsImNyZWF0ZWQiOjE3MTU2NDQ4MDAsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDEuNSBGbGFzaCBpcyBhIGZvdW5kYXRpb24gbW9kZWwgdGhhdCBwZXJmb3JtcyB3ZWxsIGF0IGEgdmFyaWV0eSBvZiBtdWx0aW1vZGFsIHRhc2tzIHN1Y2ggYXMgdmlzdWFsIHVuZGVyc3RhbmRpbmcsIGNsYXNzaWZpY2F0aW9uLCBzdW1tYXJpemF0aW9uLCBhbmQgY3JlYXRpbmcgY29udGVudCBmcm9tIGltYWdlLCBhdWRpbyBhbmQgdmlkZW8uIEl0J3MgYWRlcHQgYXQgcHJvY2Vzc2luZyB2aXN1YWwgYW5kIHRleHQgaW5wdXRzIHN1Y2ggYXMgcGhvdG9ncmFwaHMsIGRvY3VtZW50cywgaW5mb2dyYXBoaWNzLCBhbmQgc2NyZWVuc2hvdHMuXG5cbkdlbWluaSAxLjUgRmxhc2ggaXMgZGVzaWduZWQgZm9yIGhpZ2gtdm9sdW1lLCBoaWdoLWZyZXF1ZW5jeSB0YXNrcyB3aGVyZSBjb3N0IGFuZCBsYXRlbmN5IG1hdHRlci4gT24gbW9zdCBjb21tb24gdGFza3MsIEZsYXNoIGFjaGlldmVzIGNvbXBhcmFibGUgcXVhbGl0eSB0byBvdGhlciBHZW1pbmkgUHJvIG1vZGVscyBhdCBhIHNpZ25pZmljYW50bHkgcmVkdWNlZCBjb3N0LiBGbGFzaCBpcyB3ZWxsLXN1aXRlZCBmb3IgYXBwbGljYXRpb25zIGxpa2UgY2hhdCBhc3Npc3RhbnRzIGFuZCBvbi1kZW1hbmQgY29udGVudCBnZW5lcmF0aW9uIHdoZXJlIHNwZWVkIGFuZCBzY2FsZSBtYXR0ZXIuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAxODc1IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDE1ODMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC1saXRlLTAwMSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAyLjAgRmxhc2ggTGl0ZSIsImNyZWF0ZWQiOjE3NDA1MDYyMTIsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuMCBGbGFzaCBMaXRlIG9mZmVycyBhIHNpZ25pZmljYW50bHkgZmFzdGVyIHRpbWUgdG8gZmlyc3QgdG9rZW4gKFRURlQpIGNvbXBhcmVkIHRvIFtHZW1pbmkgRmxhc2ggMS41XSgvZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUpLCB3aGlsZSBtYWludGFpbmluZyBxdWFsaXR5IG9uIHBhciB3aXRoIGxhcmdlciBtb2RlbHMgbGlrZSBbR2VtaW5pIFBybyAxLjVdKC9nb29nbGUvZ2VtaW5pLXByby0xLjUpLCBhbGwgYXQgZXh0cmVtZWx5IGVjb25vbWljYWwgdG9rZW4gcHJpY2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taW5pc3RyYWwtOGIiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDhCIiwiY3JlYXRlZCI6MTcyOTEyMzIwMCwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgOEIgaXMgYW4gOEIgcGFyYW1ldGVyIG1vZGVsIGZlYXR1cmluZyBhIHVuaXF1ZSBpbnRlcmxlYXZlZCBzbGlkaW5nLXdpbmRvdyBhdHRlbnRpb24gcGF0dGVybiBmb3IgZmFzdGVyLCBtZW1vcnktZWZmaWNpZW50IGluZmVyZW5jZS4gRGVzaWduZWQgZm9yIGVkZ2UgdXNlIGNhc2VzLCBpdCBzdXBwb3J0cyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoIGFuZCBleGNlbHMgaW4ga25vd2xlZGdlIGFuZCByZWFzb25pbmcgdGFza3MuIEl0IG91dHBlcmZvcm1zIHBlZXJzIGluIHRoZSBzdWItMTBCIGNhdGVnb3J5LCBtYWtpbmcgaXQgcGVyZmVjdCBmb3IgbG93LWxhdGVuY3ksIHByaXZhY3ktZmlyc3QgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaWNyb3NvZnQvcGhpLTMtbWluaS0xMjhrLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpLTMgTWluaSAxMjhLIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxNjY4MTYwMCwiZGVzY3JpcHRpb24iOiJQaGktMyBNaW5pIGlzIGEgcG93ZXJmdWwgMy44QiBwYXJhbWV0ZXIgbW9kZWwgZGVzaWduZWQgZm9yIGFkdmFuY2VkIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIHJlYXNvbmluZywgYW5kIGluc3RydWN0aW9uIGZvbGxvd2luZy4gT3B0aW1pemVkIHRocm91Z2ggc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyBhbmQgcHJlZmVyZW5jZSBhZGp1c3RtZW50cywgaXQgZXhjZWxzIGluIHRhc2tzIGludm9sdmluZyBjb21tb24gc2Vuc2UsIG1hdGhlbWF0aWNzLCBsb2dpY2FsIHJlYXNvbmluZywgYW5kIGNvZGUgcHJvY2Vzc2luZy5cblxuQXQgdGltZSBvZiByZWxlYXNlLCBQaGktMyBNZWRpdW0gZGVtb25zdHJhdGVkIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbGlnaHR3ZWlnaHQgbW9kZWxzLiBUaGlzIG1vZGVsIGlzIHN0YXRpYywgdHJhaW5lZCBvbiBhbiBvZmZsaW5lIGRhdGFzZXQgd2l0aCBhbiBPY3RvYmVyIDIwMjMgY3V0b2ZmIGRhdGUuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6InBoaTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktMy41LW1pbmktMTI4ay1pbnN0cnVjdCIsIm5hbWUiOiJNaWNyb3NvZnQ6IFBoaS0zLjUgTWluaSAxMjhLIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNDE5ODQwMCwiZGVzY3JpcHRpb24iOiJQaGktMy41IG1vZGVscyBhcmUgbGlnaHR3ZWlnaHQsIHN0YXRlLW9mLXRoZS1hcnQgb3BlbiBtb2RlbHMuIFRoZXNlIG1vZGVscyB3ZXJlIHRyYWluZWQgd2l0aCBQaGktMyBkYXRhc2V0cyB0aGF0IGluY2x1ZGUgYm90aCBzeW50aGV0aWMgZGF0YSBhbmQgdGhlIGZpbHRlcmVkLCBwdWJsaWNseSBhdmFpbGFibGUgd2Vic2l0ZXMgZGF0YSwgd2l0aCBhIGZvY3VzIG9uIGhpZ2ggcXVhbGl0eSBhbmQgcmVhc29uaW5nLWRlbnNlIHByb3BlcnRpZXMuIFBoaS0zLjUgTWluaSB1c2VzIDMuOEIgcGFyYW1ldGVycywgYW5kIGlzIGEgZGVuc2UgZGVjb2Rlci1vbmx5IHRyYW5zZm9ybWVyIG1vZGVsIHVzaW5nIHRoZSBzYW1lIHRva2VuaXplciBhcyBbUGhpLTMgTWluaV0oL21vZGVscy9taWNyb3NvZnQvcGhpLTMtbWluaS0xMjhrLWluc3RydWN0KS5cblxuVGhlIG1vZGVscyB1bmRlcndlbnQgYSByaWdvcm91cyBlbmhhbmNlbWVudCBwcm9jZXNzLCBpbmNvcnBvcmF0aW5nIGJvdGggc3VwZXJ2aXNlZCBmaW5lLXR1bmluZywgcHJveGltYWwgcG9saWN5IG9wdGltaXphdGlvbiwgYW5kIGRpcmVjdCBwcmVmZXJlbmNlIG9wdGltaXphdGlvbiB0byBlbnN1cmUgcHJlY2lzZSBpbnN0cnVjdGlvbiBhZGhlcmVuY2UgYW5kIHJvYnVzdCBzYWZldHkgbWVhc3VyZXMuIFdoZW4gYXNzZXNzZWQgYWdhaW5zdCBiZW5jaG1hcmtzIHRoYXQgdGVzdCBjb21tb24gc2Vuc2UsIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIG1hdGgsIGNvZGUsIGxvbmcgY29udGV4dCBhbmQgbG9naWNhbCByZWFzb25pbmcsIFBoaS0zLjUgbW9kZWxzIHNob3djYXNlZCByb2J1c3QgYW5kIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbW9kZWxzIHdpdGggbGVzcyB0aGFuIDEzIGJpbGxpb24gcGFyYW1ldGVycy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoicGhpMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbC9taW5pc3RyYWwtOGIiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDhCIiwiY3JlYXRlZCI6MTc0MzQzMDAyMSwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgOEIgaXMgYSBzdGF0ZS1vZi10aGUtYXJ0IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3Igb24tZGV2aWNlIGFuZCBlZGdlIGNvbXB1dGluZy4gRGVzaWduZWQgZm9yIGVmZmljaWVuY3kgaW4ga25vd2xlZGdlLWludGVuc2l2ZSB0YXNrcywgY29tbW9uc2Vuc2UgcmVhc29uaW5nLCBhbmQgZnVuY3Rpb24tY2FsbGluZywgaXQgZmVhdHVyZXMgYSBzcGVjaWFsaXplZCBpbnRlcmxlYXZlZCBzbGlkaW5nLXdpbmRvdyBhdHRlbnRpb24gbWVjaGFuaXNtLCBlbmFibGluZyBmYXN0ZXIgYW5kIG1vcmUgbWVtb3J5LWVmZmljaWVudCBpbmZlcmVuY2UuIE1pbmlzdHJhbCA4QiBleGNlbHMgaW4gbG9jYWwsIGxvdy1sYXRlbmN5IGFwcGxpY2F0aW9ucyBzdWNoIGFzIG9mZmxpbmUgdHJhbnNsYXRpb24sIHNtYXJ0IGFzc2lzdGFudHMsIGF1dG9ub21vdXMgcm9ib3RpY3MsIGFuZCBsb2NhbCBhbmFseXRpY3MuXG5cblRoZSBtb2RlbCBzdXBwb3J0cyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoIGFuZCBjYW4gZnVuY3Rpb24gYXMgYSBwZXJmb3JtYW50IGludGVybWVkaWFyeSBpbiBtdWx0aS1zdGVwIGFnZW50aWMgd29ya2Zsb3dzLCBlZmZpY2llbnRseSBoYW5kbGluZyB0YXNrcyBsaWtlIGlucHV0IHBhcnNpbmcsIEFQSSBjYWxscywgYW5kIHRhc2sgcm91dGluZy4gSXQgY29uc2lzdGVudGx5IG91dHBlcmZvcm1zIGNvbXBhcmFibGUgbW9kZWxzIGxpa2UgTWlzdHJhbCA3QiBhY3Jvc3MgYmVuY2htYXJrcywgbWFraW5nIGl0IHBhcnRpY3VsYXJseSBzdWl0YWJsZSBmb3IgY29tcHV0ZS1lZmZpY2llbnQsIHByaXZhY3ktZm9jdXNlZCBzY2VuYXJpb3MuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTMuMS0yNGItaW5zdHJ1Y3QiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCBTbWFsbCAzLjEgMjRCIiwiY3JlYXRlZCI6MTc0MjIzODkzNywiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNtYWxsIDMuMSAyNEIgSW5zdHJ1Y3QgaXMgYW4gdXBncmFkZWQgdmFyaWFudCBvZiBNaXN0cmFsIFNtYWxsIDMgKDI1MDEpLCBmZWF0dXJpbmcgMjQgYmlsbGlvbiBwYXJhbWV0ZXJzIHdpdGggYWR2YW5jZWQgbXVsdGltb2RhbCBjYXBhYmlsaXRpZXMuIEl0IHByb3ZpZGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgaW4gdGV4dC1iYXNlZCByZWFzb25pbmcgYW5kIHZpc2lvbiB0YXNrcywgaW5jbHVkaW5nIGltYWdlIGFuYWx5c2lzLCBwcm9ncmFtbWluZywgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgYW5kIG11bHRpbGluZ3VhbCBzdXBwb3J0IGFjcm9zcyBkb3plbnMgb2YgbGFuZ3VhZ2VzLiBFcXVpcHBlZCB3aXRoIGFuIGV4dGVuc2l2ZSAxMjhrIHRva2VuIGNvbnRleHQgd2luZG93IGFuZCBvcHRpbWl6ZWQgZm9yIGVmZmljaWVudCBsb2NhbCBpbmZlcmVuY2UsIGl0IHN1cHBvcnRzIHVzZSBjYXNlcyBzdWNoIGFzIGNvbnZlcnNhdGlvbmFsIGFnZW50cywgZnVuY3Rpb24gY2FsbGluZywgbG9uZy1kb2N1bWVudCBjb21wcmVoZW5zaW9uLCBhbmQgcHJpdmFjeS1zZW5zaXRpdmUgZGVwbG95bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA5MjY0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTI0Yi1pbnN0cnVjdC0yNTAxIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgU21hbGwgMyIsImNyZWF0ZWQiOjE3MzgyNTU0MDksImRlc2NyaXB0aW9uIjoiTWlzdHJhbCBTbWFsbCAzIGlzIGEgMjRCLXBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBvcHRpbWl6ZWQgZm9yIGxvdy1sYXRlbmN5IHBlcmZvcm1hbmNlIGFjcm9zcyBjb21tb24gQUkgdGFza3MuIFJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UsIGl0IGZlYXR1cmVzIGJvdGggcHJlLXRyYWluZWQgYW5kIGluc3RydWN0aW9uLXR1bmVkIHZlcnNpb25zIGRlc2lnbmVkIGZvciBlZmZpY2llbnQgbG9jYWwgZGVwbG95bWVudC5cblxuVGhlIG1vZGVsIGFjaGlldmVzIDgxJSBhY2N1cmFjeSBvbiB0aGUgTU1MVSBiZW5jaG1hcmsgYW5kIHBlcmZvcm1zIGNvbXBldGl0aXZlbHkgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgTGxhbWEgMy4zIDcwQiBhbmQgUXdlbiAzMkIsIHdoaWxlIG9wZXJhdGluZyBhdCB0aHJlZSB0aW1lcyB0aGUgc3BlZWQgb24gZXF1aXZhbGVudCBoYXJkd2FyZS4gW1JlYWQgdGhlIGJsb2cgcG9zdCBhYm91dCB0aGUgbW9kZWwgaGVyZS5dKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21pc3RyYWwtc21hbGwtMy8pIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC0wMDEiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIiwiY3JlYXRlZCI6MTczODc2OTQxMywiZGVzY3JpcHRpb24iOiJHZW1pbmkgRmxhc2ggMi4wIG9mZmVycyBhIHNpZ25pZmljYW50bHkgZmFzdGVyIHRpbWUgdG8gZmlyc3QgdG9rZW4gKFRURlQpIGNvbXBhcmVkIHRvIFtHZW1pbmkgRmxhc2ggMS41XSgvZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUpLCB3aGlsZSBtYWludGFpbmluZyBxdWFsaXR5IG9uIHBhciB3aXRoIGxhcmdlciBtb2RlbHMgbGlrZSBbR2VtaW5pIFBybyAxLjVdKC9nb29nbGUvZ2VtaW5pLXByby0xLjUpLiBJdCBpbnRyb2R1Y2VzIG5vdGFibGUgZW5oYW5jZW1lbnRzIGluIG11bHRpbW9kYWwgdW5kZXJzdGFuZGluZywgY29kaW5nIGNhcGFiaWxpdGllcywgY29tcGxleCBpbnN0cnVjdGlvbiBmb2xsb3dpbmcsIGFuZCBmdW5jdGlvbiBjYWxsaW5nLiBUaGVzZSBhZHZhbmNlbWVudHMgY29tZSB0b2dldGhlciB0byBkZWxpdmVyIG1vcmUgc2VhbWxlc3MgYW5kIHJvYnVzdCBhZ2VudGljIGV4cGVyaWVuY2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMDI1OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtNC1zY291dCIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IFNjb3V0IiwiY3JlYXRlZCI6MTc0Mzg4MTUxOSwiZGVzY3JpcHRpb24iOiJMbGFtYSA0IFNjb3V0IDE3QiBJbnN0cnVjdCAoMTZFKSBpcyBhIG1peHR1cmUtb2YtZXhwZXJ0cyAoTW9FKSBsYW5ndWFnZSBtb2RlbCBkZXZlbG9wZWQgYnkgTWV0YSwgYWN0aXZhdGluZyAxNyBiaWxsaW9uIHBhcmFtZXRlcnMgb3V0IG9mIGEgdG90YWwgb2YgMTA5Qi4gSXQgc3VwcG9ydHMgbmF0aXZlIG11bHRpbW9kYWwgaW5wdXQgKHRleHQgYW5kIGltYWdlKSBhbmQgbXVsdGlsaW5ndWFsIG91dHB1dCAodGV4dCBhbmQgY29kZSkgYWNyb3NzIDEyIHN1cHBvcnRlZCBsYW5ndWFnZXMuIERlc2lnbmVkIGZvciBhc3Npc3RhbnQtc3R5bGUgaW50ZXJhY3Rpb24gYW5kIHZpc3VhbCByZWFzb25pbmcsIFNjb3V0IHVzZXMgMTYgZXhwZXJ0cyBwZXIgZm9yd2FyZCBwYXNzIGFuZCBmZWF0dXJlcyBhIGNvbnRleHQgbGVuZ3RoIG9mIDEwIG1pbGxpb24gdG9rZW5zLCB3aXRoIGEgdHJhaW5pbmcgY29ycHVzIG9mIH40MCB0cmlsbGlvbiB0b2tlbnMuXG5cbkJ1aWx0IGZvciBoaWdoIGVmZmljaWVuY3kgYW5kIGxvY2FsIG9yIGNvbW1lcmNpYWwgZGVwbG95bWVudCwgTGxhbWEgNCBTY291dCBpbmNvcnBvcmF0ZXMgZWFybHkgZnVzaW9uIGZvciBzZWFtbGVzcyBtb2RhbGl0eSBpbnRlZ3JhdGlvbi4gSXQgaXMgaW5zdHJ1Y3Rpb24tdHVuZWQgZm9yIHVzZSBpbiBtdWx0aWxpbmd1YWwgY2hhdCwgY2FwdGlvbmluZywgYW5kIGltYWdlIHVuZGVyc3RhbmRpbmcgdGFza3MuIFJlbGVhc2VkIHVuZGVyIHRoZSBMbGFtYSA0IENvbW11bml0eSBMaWNlbnNlLCBpdCB3YXMgbGFzdCB0cmFpbmVkIG9uIGRhdGEgdXAgdG8gQXVndXN0IDIwMjQgYW5kIGxhdW5jaGVkIHB1YmxpY2x5IG9uIEFwcmlsIDUsIDIwMjUuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDM2NzYyIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS03MGItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4xIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgNzBCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4zLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjMgNzBCIEluc3RydWN0IiwiY3JlYXRlZCI6MTczMzUwNjEzNywiZGVzY3JpcHRpb24iOiJUaGUgTWV0YSBMbGFtYSAzLjMgbXVsdGlsaW5ndWFsIGxhcmdlIGxhbmd1YWdlIG1vZGVsIChMTE0pIGlzIGEgcHJldHJhaW5lZCBhbmQgaW5zdHJ1Y3Rpb24gdHVuZWQgZ2VuZXJhdGl2ZSBtb2RlbCBpbiA3MEIgKHRleHQgaW4vdGV4dCBvdXQpLiBUaGUgTGxhbWEgMy4zIGluc3RydWN0aW9uIHR1bmVkIHRleHQgb25seSBtb2RlbCBpcyBvcHRpbWl6ZWQgZm9yIG11bHRpbGluZ3VhbCBkaWFsb2d1ZSB1c2UgY2FzZXMgYW5kIG91dHBlcmZvcm1zIG1hbnkgb2YgdGhlIGF2YWlsYWJsZSBvcGVuIHNvdXJjZSBhbmQgY2xvc2VkIGNoYXQgbW9kZWxzIG9uIGNvbW1vbiBpbmR1c3RyeSBiZW5jaG1hcmtzLlxuXG5TdXBwb3J0ZWQgbGFuZ3VhZ2VzOiBFbmdsaXNoLCBHZXJtYW4sIEZyZW5jaCwgSXRhbGlhbiwgUG9ydHVndWVzZSwgSGluZGksIFNwYW5pc2gsIGFuZCBUaGFpLlxuXG5bTW9kZWwgQ2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzMvTU9ERUxfQ0FSRC5tZCkiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tNzBiLWluc3RydWN0IiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3Mjg5NTA0MDAsImRlc2NyaXB0aW9uIjoiTlZJRElBJ3MgTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBpcyBhIGxhbmd1YWdlIG1vZGVsIGRlc2lnbmVkIGZvciBnZW5lcmF0aW5nIHByZWNpc2UgYW5kIHVzZWZ1bCByZXNwb25zZXMuIExldmVyYWdpbmcgW0xsYW1hIDMuMSA3MEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSBhcmNoaXRlY3R1cmUgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRiksIGl0IGV4Y2VscyBpbiBhdXRvbWF0aWMgYWxpZ25tZW50IGJlbmNobWFya3MuIFRoaXMgbW9kZWwgaXMgdGFpbG9yZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgaGlnaCBhY2N1cmFjeSBpbiBoZWxwZnVsbmVzcyBhbmQgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgc3VpdGFibGUgZm9yIGRpdmVyc2UgdXNlciBxdWVyaWVzIGFjcm9zcyBtdWx0aXBsZSBkb21haW5zLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjIuNSA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI2NzA0MDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgNzJCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbmVtbyIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIE5lbW8iLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgMTJCIHBhcmFtZXRlciBtb2RlbCB3aXRoIGEgMTI4ayB0b2tlbiBjb250ZXh0IGxlbmd0aCBidWlsdCBieSBNaXN0cmFsIGluIGNvbGxhYm9yYXRpb24gd2l0aCBOVklESUEuXG5cblRoZSBtb2RlbCBpcyBtdWx0aWxpbmd1YWwsIHN1cHBvcnRpbmcgRW5nbGlzaCwgRnJlbmNoLCBHZXJtYW4sIFNwYW5pc2gsIEl0YWxpYW4sIFBvcnR1Z3Vlc2UsIENoaW5lc2UsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgYW5kIEhpbmRpLlxuXG5JdCBzdXBwb3J0cyBmdW5jdGlvbiBjYWxsaW5nIGFuZCBpcyByZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL3BpeHRyYWwtMTJiIiwibmFtZSI6Ik1pc3RyYWw6IFBpeHRyYWwgMTJCIiwiY3JlYXRlZCI6MTcyNTkyNjQwMCwiZGVzY3JpcHRpb24iOiJUaGUgZmlyc3QgbXVsdGktbW9kYWwsIHRleHQraW1hZ2UtdG8tdGV4dCBtb2RlbCBmcm9tIE1pc3RyYWwgQUkuIEl0cyB3ZWlnaHRzIHdlcmUgbGF1bmNoZWQgdmlhIHRvcnJlbnQ6IGh0dHBzOi8veC5jb20vbWlzdHJhbGFpL3N0YXR1cy8xODMzNzU4Mjg1MTY3NzIyODM2LiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMjE2OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by1taW5pLTIwMjQtMDctMTgiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8tbWluaSAoMjAyNC0wNy0xOCkiLCJjcmVhdGVkIjoxNzIxMjYwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00byBtaW5pIGlzIE9wZW5BSSdzIG5ld2VzdCBtb2RlbCBhZnRlciBbR1BULTQgT21uaV0oL21vZGVscy9vcGVuYWkvZ3B0LTRvKSwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy5cblxuQXMgdGhlaXIgbW9zdCBhZHZhbmNlZCBzbWFsbCBtb2RlbCwgaXQgaXMgbWFueSBtdWx0aXBsZXMgbW9yZSBhZmZvcmRhYmxlIHRoYW4gb3RoZXIgcmVjZW50IGZyb250aWVyIG1vZGVscywgYW5kIG1vcmUgdGhhbiA2MCUgY2hlYXBlciB0aGFuIFtHUFQtMy41IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtMy41LXR1cmJvKS4gSXQgbWFpbnRhaW5zIFNPVEEgaW50ZWxsaWdlbmNlLCB3aGlsZSBiZWluZyBzaWduaWZpY2FudGx5IG1vcmUgY29zdC1lZmZlY3RpdmUuXG5cbkdQVC00byBtaW5pIGFjaGlldmVzIGFuIDgyJSBzY29yZSBvbiBNTUxVIGFuZCBwcmVzZW50bHkgcmFua3MgaGlnaGVyIHRoYW4gR1BULTQgb24gY2hhdCBwcmVmZXJlbmNlcyBbY29tbW9uIGxlYWRlcmJvYXJkc10oaHR0cHM6Ly9hcmVuYS5sbXN5cy5vcmcvKS5cblxuQ2hlY2sgb3V0IHRoZSBbbGF1bmNoIGFubm91bmNlbWVudF0oaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2dwdC00by1taW5pLWFkdmFuY2luZy1jb3N0LWVmZmljaWVudC1pbnRlbGxpZ2VuY2UvKSB0byBsZWFybiBtb3JlLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA3MjI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLW1pbmkiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8tbWluaSIsImNyZWF0ZWQiOjE3MjEyNjA4MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIG1pbmkgaXMgT3BlbkFJJ3MgbmV3ZXN0IG1vZGVsIGFmdGVyIFtHUFQtNCBPbW5pXSgvbW9kZWxzL29wZW5haS9ncHQtNG8pLCBzdXBwb3J0aW5nIGJvdGggdGV4dCBhbmQgaW1hZ2UgaW5wdXRzIHdpdGggdGV4dCBvdXRwdXRzLlxuXG5BcyB0aGVpciBtb3N0IGFkdmFuY2VkIHNtYWxsIG1vZGVsLCBpdCBpcyBtYW55IG11bHRpcGxlcyBtb3JlIGFmZm9yZGFibGUgdGhhbiBvdGhlciByZWNlbnQgZnJvbnRpZXIgbW9kZWxzLCBhbmQgbW9yZSB0aGFuIDYwJSBjaGVhcGVyIHRoYW4gW0dQVC0zLjUgVHVyYm9dKC9tb2RlbHMvb3BlbmFpL2dwdC0zLjUtdHVyYm8pLiBJdCBtYWludGFpbnMgU09UQSBpbnRlbGxpZ2VuY2UsIHdoaWxlIGJlaW5nIHNpZ25pZmljYW50bHkgbW9yZSBjb3N0LWVmZmVjdGl2ZS5cblxuR1BULTRvIG1pbmkgYWNoaWV2ZXMgYW4gODIlIHNjb3JlIG9uIE1NTFUgYW5kIHByZXNlbnRseSByYW5rcyBoaWdoZXIgdGhhbiBHUFQtNCBvbiBjaGF0IHByZWZlcmVuY2VzIFtjb21tb24gbGVhZGVyYm9hcmRzXShodHRwczovL2FyZW5hLmxtc3lzLm9yZy8pLlxuXG5DaGVjayBvdXQgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vaW5kZXgvZ3B0LTRvLW1pbmktYWR2YW5jaW5nLWNvc3QtZWZmaWNpZW50LWludGVsbGlnZW5jZS8pIHRvIGxlYXJuIG1vcmUuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAyMTciLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXItMDgtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUiAoMDgtMjAyNCkiLCJjcmVhdGVkIjoxNzI0OTc2MDAwLCJkZXNjcmlwdGlvbiI6ImNvbW1hbmQtci0wOC0yMDI0IGlzIGFuIHVwZGF0ZSBvZiB0aGUgW0NvbW1hbmQgUl0oL21vZGVscy9jb2hlcmUvY29tbWFuZC1yKSB3aXRoIGltcHJvdmVkIHBlcmZvcm1hbmNlIGZvciBtdWx0aWxpbmd1YWwgcmV0cmlldmFsLWF1Z21lbnRlZCBnZW5lcmF0aW9uIChSQUcpIGFuZCB0b29sIHVzZS4gTW9yZSBicm9hZGx5LCBpdCBpcyBiZXR0ZXIgYXQgbWF0aCwgY29kZSBhbmQgcmVhc29uaW5nIGFuZCBpcyBjb21wZXRpdGl2ZSB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBsYXJnZXIgQ29tbWFuZCBSKyBtb2RlbC5cblxuUmVhZCB0aGUgbGF1bmNoIHBvc3QgW2hlcmVdKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2NoYW5nZWxvZy9jb21tYW5kLWdldHMtcmVmcmVzaGVkKS5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd3EtMzJiIiwibmFtZSI6IlF3ZW46IFF3USAzMkIiLCJjcmVhdGVkIjoxNzQxMjA4ODE0LCJkZXNjcmlwdGlvbiI6IlF3USBpcyB0aGUgcmVhc29uaW5nIG1vZGVsIG9mIHRoZSBRd2VuIHNlcmllcy4gQ29tcGFyZWQgd2l0aCBjb252ZW50aW9uYWwgaW5zdHJ1Y3Rpb24tdHVuZWQgbW9kZWxzLCBRd1EsIHdoaWNoIGlzIGNhcGFibGUgb2YgdGhpbmtpbmcgYW5kIHJlYXNvbmluZywgY2FuIGFjaGlldmUgc2lnbmlmaWNhbnRseSBlbmhhbmNlZCBwZXJmb3JtYW5jZSBpbiBkb3duc3RyZWFtIHRhc2tzLCBlc3BlY2lhbGx5IGhhcmQgcHJvYmxlbXMuIFF3US0zMkIgaXMgdGhlIG1lZGl1bS1zaXplZCByZWFzb25pbmcgbW9kZWwsIHdoaWNoIGlzIGNhcGFibGUgb2YgYWNoaWV2aW5nIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGFnYWluc3Qgc3RhdGUtb2YtdGhlLWFydCByZWFzb25pbmcgbW9kZWxzLCBlLmcuLCBEZWVwU2Vlay1SMSwgbzEtbWluaS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJxd3EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdC12MC4xIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgN0IgSW5zdHJ1Y3QgdjAuMSIsImNyZWF0ZWQiOjE2OTU4NTkyMDAsImRlc2NyaXB0aW9uIjoiQSA3LjNCIHBhcmFtZXRlciBtb2RlbCB0aGF0IG91dHBlcmZvcm1zIExsYW1hIDIgMTNCIG9uIGFsbCBiZW5jaG1hcmtzLCB3aXRoIG9wdGltaXphdGlvbnMgZm9yIHNwZWVkIGFuZCBjb250ZXh0IGxlbmd0aC4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhaTIxL2phbWJhLTEtNS1taW5pIiwibmFtZSI6IkFJMjE6IEphbWJhIDEuNSBNaW5pIiwiY3JlYXRlZCI6MTcyNDM3MTIwMCwiZGVzY3JpcHRpb24iOiJKYW1iYSAxLjUgTWluaSBpcyB0aGUgd29ybGQncyBmaXJzdCBwcm9kdWN0aW9uLWdyYWRlIE1hbWJhLWJhc2VkIG1vZGVsLCBjb21iaW5pbmcgU1NNIGFuZCBUcmFuc2Zvcm1lciBhcmNoaXRlY3R1cmVzIGZvciBhIDI1NksgY29udGV4dCB3aW5kb3cgYW5kIGhpZ2ggZWZmaWNpZW5jeS5cblxuSXQgd29ya3Mgd2l0aCA5IGxhbmd1YWdlcyBhbmQgY2FuIGhhbmRsZSB2YXJpb3VzIHdyaXRpbmcgYW5kIGFuYWx5c2lzIHRhc2tzIGFzIHdlbGwgYXMgb3IgYmV0dGVyIHRoYW4gc2ltaWxhciBzbWFsbCBtb2RlbHMuXG5cblRoaXMgbW9kZWwgdXNlcyBsZXNzIGNvbXB1dGVyIG1lbW9yeSBhbmQgd29ya3MgZmFzdGVyIHdpdGggbG9uZ2VyIHRleHRzIHRoYW4gcHJldmlvdXMgZGVzaWducy5cblxuUmVhZCB0aGVpciBbYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5haTIxLmNvbS9ibG9nL2Fubm91bmNpbmctamFtYmEtbW9kZWwtZmFtaWx5KSB0byBsZWFybiBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS0xLjYtbWluaSIsIm5hbWUiOiJBSTIxOiBKYW1iYSBNaW5pIDEuNiIsImNyZWF0ZWQiOjE3NDE5MDUxNzEsImRlc2NyaXB0aW9uIjoiQUkyMSBKYW1iYSBNaW5pIDEuNiBpcyBhIGh5YnJpZCBmb3VuZGF0aW9uIG1vZGVsIGNvbWJpbmluZyBTdGF0ZSBTcGFjZSBNb2RlbHMgKE1hbWJhKSB3aXRoIFRyYW5zZm9ybWVyIGF0dGVudGlvbiBtZWNoYW5pc21zLiBXaXRoIDEyIGJpbGxpb24gYWN0aXZlIHBhcmFtZXRlcnMgKDUyIGJpbGxpb24gdG90YWwpLCB0aGlzIG1vZGVsIGV4Y2VscyBpbiBleHRyZW1lbHkgbG9uZy1jb250ZXh0IHRhc2tzICh1cCB0byAyNTZLIHRva2VucykgYW5kIGFjaGlldmVzIHN1cGVyaW9yIGluZmVyZW5jZSBlZmZpY2llbmN5LCBvdXRwZXJmb3JtaW5nIGNvbXBhcmFibGUgb3BlbiBtb2RlbHMgb24gdGFza3Mgc3VjaCBhcyByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRykgYW5kIGdyb3VuZGVkIHF1ZXN0aW9uIGFuc3dlcmluZy4gSmFtYmEgTWluaSAxLjYgc3VwcG9ydHMgbXVsdGlsaW5ndWFsIHRhc2tzIGFjcm9zcyBFbmdsaXNoLCBTcGFuaXNoLCBGcmVuY2gsIFBvcnR1Z3Vlc2UsIEl0YWxpYW4sIER1dGNoLCBHZXJtYW4sIEFyYWJpYywgYW5kIEhlYnJldywgYWxvbmcgd2l0aCBzdHJ1Y3R1cmVkIEpTT04gb3V0cHV0IGFuZCB0b29sLXVzZSBjYXBhYmlsaXRpZXMuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byB0aGUgW0phbWJhIE9wZW4gTW9kZWwgTGljZW5zZV0oaHR0cHM6Ly93d3cuYWkyMS5jb20vbGljZW5zZXMvamFtYmEtb3Blbi1tb2RlbC1saWNlbnNlKS4iLCJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNhYmEiLCJuYW1lIjoiTWlzdHJhbDogU2FiYSIsImNyZWF0ZWQiOjE3Mzk4MDMyMzksImRlc2NyaXB0aW9uIjoiTWlzdHJhbCBTYWJhIGlzIGEgMjRCLXBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBzcGVjaWZpY2FsbHkgZGVzaWduZWQgZm9yIHRoZSBNaWRkbGUgRWFzdCBhbmQgU291dGggQXNpYSwgZGVsaXZlcmluZyBhY2N1cmF0ZSBhbmQgY29udGV4dHVhbGx5IHJlbGV2YW50IHJlc3BvbnNlcyB3aGlsZSBtYWludGFpbmluZyBlZmZpY2llbnQgcGVyZm9ybWFuY2UuIFRyYWluZWQgb24gY3VyYXRlZCByZWdpb25hbCBkYXRhc2V0cywgaXQgc3VwcG9ydHMgbXVsdGlwbGUgSW5kaWFuLW9yaWdpbiBsYW5ndWFnZXPigJRpbmNsdWRpbmcgVGFtaWwgYW5kIE1hbGF5YWxhbeKAlGFsb25nc2lkZSBBcmFiaWMuIFRoaXMgbWFrZXMgaXQgYSB2ZXJzYXRpbGUgb3B0aW9uIGZvciBhIHJhbmdlIG9mIHJlZ2lvbmFsIGFuZCBtdWx0aWxpbmd1YWwgYXBwbGljYXRpb25zLiBSZWFkIG1vcmUgYXQgdGhlIGJsb2cgcG9zdCBbaGVyZV0oaHR0cHM6Ly9taXN0cmFsLmFpL2VuL25ld3MvbWlzdHJhbC1zYWJhKSIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtc21hbGwiLCJuYW1lIjoiTWlzdHJhbCBTbWFsbCIsImNyZWF0ZWQiOjE3MDQ4NDQ4MDAsImRlc2NyaXB0aW9uIjoiV2l0aCAyMiBiaWxsaW9uIHBhcmFtZXRlcnMsIE1pc3RyYWwgU21hbGwgdjI0LjA5IG9mZmVycyBhIGNvbnZlbmllbnQgbWlkLXBvaW50IGJldHdlZW4gKE1pc3RyYWwgTmVNbyAxMkIpWy9taXN0cmFsYWkvbWlzdHJhbC1uZW1vXSBhbmQgKE1pc3RyYWwgTGFyZ2UgMilbL21pc3RyYWxhaS9taXN0cmFsLWxhcmdlXSwgcHJvdmlkaW5nIGEgY29zdC1lZmZlY3RpdmUgc29sdXRpb24gdGhhdCBjYW4gYmUgZGVwbG95ZWQgYWNyb3NzIHZhcmlvdXMgcGxhdGZvcm1zIGFuZCBlbnZpcm9ubWVudHMuIEl0IGhhcyBiZXR0ZXIgcmVhc29uaW5nLCBleGhpYml0cyBtb3JlIGNhcGFiaWxpdGllcywgY2FuIHByb2R1Y2UgYW5kIHJlYXNvbiBhYm91dCBjb2RlLCBhbmQgaXMgbXVsdGlsaWd1YWwsIHN1cHBvcnRpbmcgRW5nbGlzaCwgRnJlbmNoLCBHZXJtYW4sIEl0YWxpYW4sIGFuZCBTcGFuaXNoLiIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTMzOTg0MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMykgbGF1bmNoZWQgd2l0aCBhIHZhcmlldHkgb2Ygc2l6ZXMgJiBmbGF2b3JzLiBUaGlzIDcwQiBpbnN0cnVjdC10dW5lZCB2ZXJzaW9uIHdhcyBvcHRpbWl6ZWQgZm9yIGhpZ2ggcXVhbGl0eSBkaWFsb2d1ZSB1c2VjYXNlcy5cblxuSXQgaGFzIGRlbW9uc3RyYXRlZCBzdHJvbmcgcGVyZm9ybWFuY2UgY29tcGFyZWQgdG8gbGVhZGluZyBjbG9zZWQtc291cmNlIG1vZGVscyBpbiBodW1hbiBldmFsdWF0aW9ucy5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly9haS5tZXRhLmNvbS9ibG9nL21ldGEtbGxhbWEtMy8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21peHRyYWwtOHg3Yi1pbnN0cnVjdCIsIm5hbWUiOiJNaXN0cmFsOiBNaXh0cmFsIDh4N0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzAyMTY2NDAwLCJkZXNjcmlwdGlvbiI6Ik1peHRyYWwgOHg3QiBJbnN0cnVjdCBpcyBhIHByZXRyYWluZWQgZ2VuZXJhdGl2ZSBTcGFyc2UgTWl4dHVyZSBvZiBFeHBlcnRzLCBieSBNaXN0cmFsIEFJLCBmb3IgY2hhdCBhbmQgaW5zdHJ1Y3Rpb24gdXNlLiBJbmNvcnBvcmF0ZXMgOCBleHBlcnRzIChmZWVkLWZvcndhcmQgbmV0d29ya3MpIGZvciBhIHRvdGFsIG9mIDQ3IGJpbGxpb24gcGFyYW1ldGVycy5cblxuSW5zdHJ1Y3QgbW9kZWwgZmluZS10dW5lZCBieSBNaXN0cmFsLiAjbW9lIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJtaXN0cmFsIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtdGlueSIsIm5hbWUiOiJNaXN0cmFsIFRpbnkiLCJjcmVhdGVkIjoxNzA0ODQ0ODAwLCJkZXNjcmlwdGlvbiI6Ik5vdGU6IFRoaXMgbW9kZWwgaXMgYmVpbmcgZGVwcmVjYXRlZC4gUmVjb21tZW5kZWQgcmVwbGFjZW1lbnQgaXMgdGhlIG5ld2VyIFtNaW5pc3RyYWwgOEJdKC9taXN0cmFsL21pbmlzdHJhbC04YilcblxuVGhpcyBtb2RlbCBpcyBjdXJyZW50bHkgcG93ZXJlZCBieSBNaXN0cmFsLTdCLXYwLjIsIGFuZCBpbmNvcnBvcmF0ZXMgYSBcImJldHRlclwiIGZpbmUtdHVuaW5nIHRoYW4gW01pc3RyYWwgN0JdKC9tb2RlbHMvbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMSksIGluc3BpcmVkIGJ5IGNvbW11bml0eSB3b3JrLiBJdCdzIGJlc3QgdXNlZCBmb3IgbGFyZ2UgYmF0Y2ggcHJvY2Vzc2luZyB0YXNrcyB3aGVyZSBjb3N0IGlzIGEgc2lnbmlmaWNhbnQgZmFjdG9yIGJ1dCByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGFyZSBub3QgY3J1Y2lhbC4iLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL2NvZGVzdHJhbC1tYW1iYSIsIm5hbWUiOiJNaXN0cmFsOiBDb2Rlc3RyYWwgTWFtYmEiLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgNy4zQiBwYXJhbWV0ZXIgTWFtYmEtYmFzZWQgbW9kZWwgZGVzaWduZWQgZm9yIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrcy5cblxuLSBMaW5lYXIgdGltZSBpbmZlcmVuY2UsIGFsbG93aW5nIGZvciB0aGVvcmV0aWNhbGx5IGluZmluaXRlIHNlcXVlbmNlIGxlbmd0aHNcbi0gMjU2ayB0b2tlbiBjb250ZXh0IHdpbmRvd1xuLSBPcHRpbWl6ZWQgZm9yIHF1aWNrIHJlc3BvbnNlcywgZXNwZWNpYWxseSBiZW5lZmljaWFsIGZvciBjb2RlIHByb2R1Y3Rpdml0eVxuLSBQZXJmb3JtcyBjb21wYXJhYmx5IHRvIHN0YXRlLW9mLXRoZS1hcnQgdHJhbnNmb3JtZXIgbW9kZWxzIGluIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrc1xuLSBBdmFpbGFibGUgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3IgZnJlZSB1c2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy1oYWlrdTpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MTAyODgwMDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgSGFpa3UgaXMgQW50aHJvcGljJ3MgZmFzdGVzdCBhbmQgbW9zdCBjb21wYWN0IG1vZGVsIGZvclxubmVhci1pbnN0YW50IHJlc3BvbnNpdmVuZXNzLiBRdWljayBhbmQgYWNjdXJhdGUgdGFyZ2V0ZWQgcGVyZm9ybWFuY2UuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy1oYWlrdSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAwMyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLWhhaWt1IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UiLCJjcmVhdGVkIjoxNzEwMjg4MDAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIEhhaWt1IGlzIEFudGhyb3BpYydzIGZhc3Rlc3QgYW5kIG1vc3QgY29tcGFjdCBtb2RlbCBmb3Jcbm5lYXItaW5zdGFudCByZXNwb25zaXZlbmVzcy4gUXVpY2sgYW5kIGFjY3VyYXRlIHRhcmdldGVkIHBlcmZvcm1hbmNlLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtaGFpa3UpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS00LW1hdmVyaWNrIiwibmFtZSI6Ik1ldGE6IExsYW1hIDQgTWF2ZXJpY2siLCJjcmVhdGVkIjoxNzQzODgxODIyLCJkZXNjcmlwdGlvbiI6IkxsYW1hIDQgTWF2ZXJpY2sgMTdCIEluc3RydWN0ICgxMjhFKSBpcyBhIGhpZ2gtY2FwYWNpdHkgbXVsdGltb2RhbCBsYW5ndWFnZSBtb2RlbCBmcm9tIE1ldGEsIGJ1aWx0IG9uIGEgbWl4dHVyZS1vZi1leHBlcnRzIChNb0UpIGFyY2hpdGVjdHVyZSB3aXRoIDEyOCBleHBlcnRzIGFuZCAxNyBiaWxsaW9uIGFjdGl2ZSBwYXJhbWV0ZXJzIHBlciBmb3J3YXJkIHBhc3MgKDQwMEIgdG90YWwpLiBJdCBzdXBwb3J0cyBtdWx0aWxpbmd1YWwgdGV4dCBhbmQgaW1hZ2UgaW5wdXQsIGFuZCBwcm9kdWNlcyBtdWx0aWxpbmd1YWwgdGV4dCBhbmQgY29kZSBvdXRwdXQgYWNyb3NzIDEyIHN1cHBvcnRlZCBsYW5ndWFnZXMuIE9wdGltaXplZCBmb3IgdmlzaW9uLWxhbmd1YWdlIHRhc2tzLCBNYXZlcmljayBpcyBpbnN0cnVjdGlvbi10dW5lZCBmb3IgYXNzaXN0YW50LWxpa2UgYmVoYXZpb3IsIGltYWdlIHJlYXNvbmluZywgYW5kIGdlbmVyYWwtcHVycG9zZSBtdWx0aW1vZGFsIGludGVyYWN0aW9uLlxuXG5NYXZlcmljayBmZWF0dXJlcyBlYXJseSBmdXNpb24gZm9yIG5hdGl2ZSBtdWx0aW1vZGFsaXR5IGFuZCBhIDEgbWlsbGlvbiB0b2tlbiBjb250ZXh0IHdpbmRvdy4gSXQgd2FzIHRyYWluZWQgb24gYSBjdXJhdGVkIG1peHR1cmUgb2YgcHVibGljLCBsaWNlbnNlZCwgYW5kIE1ldGEtcGxhdGZvcm0gZGF0YSwgY292ZXJpbmcgfjIyIHRyaWxsaW9uIHRva2Vucywgd2l0aCBhIGtub3dsZWRnZSBjdXRvZmYgaW4gQXVndXN0IDIwMjQuIFJlbGVhc2VkIG9uIEFwcmlsIDUsIDIwMjUgdW5kZXIgdGhlIExsYW1hIDQgQ29tbXVuaXR5IExpY2Vuc2UsIE1hdmVyaWNrIGlzIHN1aXRlZCBmb3IgcmVzZWFyY2ggYW5kIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zIHJlcXVpcmluZyBhZHZhbmNlZCBtdWx0aW1vZGFsIHVuZGVyc3RhbmRpbmcgYW5kIGhpZ2ggbW9kZWwgdGhyb3VnaHB1dC4iLCJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDI3IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwODUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA5MDIzNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjUyNDI4OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstY2hhdC12My0wMzI0IiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBWMyAwMzI0IiwiY3JlYXRlZCI6MTc0MjgyNDc1NSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBWMywgYSA2ODVCLXBhcmFtZXRlciwgbWl4dHVyZS1vZi1leHBlcnRzIG1vZGVsLCBpcyB0aGUgbGF0ZXN0IGl0ZXJhdGlvbiBvZiB0aGUgZmxhZ3NoaXAgY2hhdCBtb2RlbCBmYW1pbHkgZnJvbSB0aGUgRGVlcFNlZWsgdGVhbS5cblxuSXQgc3VjY2VlZHMgdGhlIFtEZWVwU2VlayBWM10oL2RlZXBzZWVrL2RlZXBzZWVrLWNoYXQtdjMpIG1vZGVsIGFuZCBwZXJmb3JtcyByZWFsbHkgd2VsbCBvbiBhIHZhcmlldHkgb2YgdGFza3MuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA3In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjQwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9jb2Rlc3RyYWwtMjUwMSIsIm5hbWUiOiJNaXN0cmFsOiBDb2Rlc3RyYWwgMjUwMSIsImNyZWF0ZWQiOjE3MzY4OTU1MjIsImRlc2NyaXB0aW9uIjoiW01pc3RyYWxdKC9taXN0cmFsYWkpJ3MgY3V0dGluZy1lZGdlIGxhbmd1YWdlIG1vZGVsIGZvciBjb2RpbmcuIENvZGVzdHJhbCBzcGVjaWFsaXplcyBpbiBsb3ctbGF0ZW5jeSwgaGlnaC1mcmVxdWVuY3kgdGFza3Mgc3VjaCBhcyBmaWxsLWluLXRoZS1taWRkbGUgKEZJTSksIGNvZGUgY29ycmVjdGlvbiBhbmQgdGVzdCBnZW5lcmF0aW9uLiBcblxuTGVhcm4gbW9yZSBvbiB0aGVpciBibG9nIHBvc3Q6IGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL2NvZGVzdHJhbC0yNTAxLyIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwOSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjYyMTQ0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvaGVybWVzLTMtbGxhbWEtMy4xLTcwYiIsIm5hbWUiOiJOb3VzOiBIZXJtZXMgMyA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIzOTM5MjAwLCJkZXNjcmlwdGlvbiI6Ikhlcm1lcyAzIGlzIGEgZ2VuZXJhbGlzdCBsYW5ndWFnZSBtb2RlbCB3aXRoIG1hbnkgaW1wcm92ZW1lbnRzIG92ZXIgW0hlcm1lcyAyXSgvbW9kZWxzL25vdXNyZXNlYXJjaC9ub3VzLWhlcm1lcy0yLW1pc3RyYWwtN2ItZHBvKSwgaW5jbHVkaW5nIGFkdmFuY2VkIGFnZW50aWMgY2FwYWJpbGl0aWVzLCBtdWNoIGJldHRlciByb2xlcGxheWluZywgcmVhc29uaW5nLCBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbiwgbG9uZyBjb250ZXh0IGNvaGVyZW5jZSwgYW5kIGltcHJvdmVtZW50cyBhY3Jvc3MgdGhlIGJvYXJkLlxuXG5IZXJtZXMgMyA3MEIgaXMgYSBjb21wZXRpdGl2ZSwgaWYgbm90IHN1cGVyaW9yIGZpbmV0dW5lIG9mIHRoZSBbTGxhbWEtMy4xIDcwQiBmb3VuZGF0aW9uIG1vZGVsXSgvbW9kZWxzL21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdCksIGZvY3VzZWQgb24gYWxpZ25pbmcgTExNcyB0byB0aGUgdXNlciwgd2l0aCBwb3dlcmZ1bCBzdGVlcmluZyBjYXBhYmlsaXRpZXMgYW5kIGNvbnRyb2wgZ2l2ZW4gdG8gdGhlIGVuZCB1c2VyLlxuXG5UaGUgSGVybWVzIDMgc2VyaWVzIGJ1aWxkcyBhbmQgZXhwYW5kcyBvbiB0aGUgSGVybWVzIDIgc2V0IG9mIGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIG1vcmUgcG93ZXJmdWwgYW5kIHJlbGlhYmxlIGZ1bmN0aW9uIGNhbGxpbmcgYW5kIHN0cnVjdHVyZWQgb3V0cHV0IGNhcGFiaWxpdGllcywgZ2VuZXJhbGlzdCBhc3Npc3RhbnQgY2FwYWJpbGl0aWVzLCBhbmQgaW1wcm92ZWQgY29kZSBnZW5lcmF0aW9uIHNraWxscy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyMjg4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tcGx1cyIsIm5hbWUiOiJRd2VuOiBRd2VuLVBsdXMiLCJjcmVhdGVkIjoxNzM4NDA5ODQwLCJkZXNjcmlwdGlvbiI6IlF3ZW4tUGx1cywgYmFzZWQgb24gdGhlIFF3ZW4yLjUgZm91bmRhdGlvbiBtb2RlbCwgaXMgYSAxMzFLIGNvbnRleHQgbW9kZWwgd2l0aCBhIGJhbGFuY2VkIHBlcmZvcm1hbmNlLCBzcGVlZCwgYW5kIGNvc3QgY29tYmluYXRpb24uIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLWNoYXQiLCJuYW1lIjoiRGVlcFNlZWs6IERlZXBTZWVrIFYzIiwiY3JlYXRlZCI6MTczNTI0MTMyMCwiZGVzY3JpcHRpb24iOiJEZWVwU2Vlay1WMyBpcyB0aGUgbGF0ZXN0IG1vZGVsIGZyb20gdGhlIERlZXBTZWVrIHRlYW0sIGJ1aWxkaW5nIHVwb24gdGhlIGluc3RydWN0aW9uIGZvbGxvd2luZyBhbmQgY29kaW5nIGFiaWxpdGllcyBvZiB0aGUgcHJldmlvdXMgdmVyc2lvbnMuIFByZS10cmFpbmVkIG9uIG5lYXJseSAxNSB0cmlsbGlvbiB0b2tlbnMsIHRoZSByZXBvcnRlZCBldmFsdWF0aW9ucyByZXZlYWwgdGhhdCB0aGUgbW9kZWwgb3V0cGVyZm9ybXMgb3RoZXIgb3Blbi1zb3VyY2UgbW9kZWxzIGFuZCByaXZhbHMgbGVhZGluZyBjbG9zZWQtc291cmNlIG1vZGVscy5cblxuRm9yIG1vZGVsIGRldGFpbHMsIHBsZWFzZSB2aXNpdCBbdGhlIERlZXBTZWVrLVYzIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwc2Vlay1haS9EZWVwU2Vlay1WMykgZm9yIG1vcmUgaW5mb3JtYXRpb24sIG9yIHNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vYXBpLWRvY3MuZGVlcHNlZWsuY29tL25ld3MvbmV3czEyMjYpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1wcm8iLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgUHJvIDEuMCIsImNyZWF0ZWQiOjE3MDI0MjU2MDAsImRlc2NyaXB0aW9uIjoiR29vZ2xlJ3MgZmxhZ3NoaXAgdGV4dCBnZW5lcmF0aW9uIG1vZGVsLiBEZXNpZ25lZCB0byBoYW5kbGUgbmF0dXJhbCBsYW5ndWFnZSB0YXNrcywgbXVsdGl0dXJuIHRleHQgYW5kIGNvZGUgY2hhdCwgYW5kIGNvZGUgZ2VuZXJhdGlvbi5cblxuU2VlIHRoZSBiZW5jaG1hcmtzIGFuZCBwcm9tcHRpbmcgZ3VpZGVsaW5lcyBmcm9tIFtEZWVwbWluZF0oaHR0cHM6Ly9kZWVwbWluZC5nb29nbGUvdGVjaG5vbG9naWVzL2dlbWluaS8pLlxuXG5Vc2FnZSBvZiBHZW1pbmkgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtaW5pIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L3Rlcm1zKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzYwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0wMTI1IiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyAxNmsiLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6IlRoZSBsYXRlc3QgR1BULTMuNSBUdXJibyBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLlxuXG5UaGlzIHZlcnNpb24gaGFzIGEgaGlnaGVyIGFjY3VyYWN5IGF0IHJlc3BvbmRpbmcgaW4gcmVxdWVzdGVkIGZvcm1hdHMgYW5kIGEgZml4IGZvciBhIGJ1ZyB3aGljaCBjYXVzZWQgYSB0ZXh0IGVuY29kaW5nIGlzc3VlIGZvciBub24tRW5nbGlzaCBsYW5ndWFnZSBmdW5jdGlvbiBjYWxscy4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLTAzLTIwMjQiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIgKDAzLTIwMjQpIiwiY3JlYXRlZCI6MTcwOTM0MTIwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kLVIgaXMgYSAzNUIgcGFyYW1ldGVyIG1vZGVsIHRoYXQgcGVyZm9ybXMgY29udmVyc2F0aW9uYWwgbGFuZ3VhZ2UgdGFza3MgYXQgYSBoaWdoZXIgcXVhbGl0eSwgbW9yZSByZWxpYWJseSwgYW5kIHdpdGggYSBsb25nZXIgY29udGV4dCB0aGFuIHByZXZpb3VzIG1vZGVscy4gSXQgY2FuIGJlIHVzZWQgZm9yIGNvbXBsZXggd29ya2Zsb3dzIGxpa2UgY29kZSBnZW5lcmF0aW9uLCByZXRyaWV2YWwgYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIHRvb2wgdXNlLCBhbmQgYWdlbnRzLlxuXG5SZWFkIHRoZSBsYXVuY2ggcG9zdCBbaGVyZV0oaHR0cHM6Ly90eHQuY29oZXJlLmNvbS9jb21tYW5kLXIvKS5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yIiwibmFtZSI6IkNvaGVyZTogQ29tbWFuZCBSIiwiY3JlYXRlZCI6MTcxMDM3NDQwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kLVIgaXMgYSAzNUIgcGFyYW1ldGVyIG1vZGVsIHRoYXQgcGVyZm9ybXMgY29udmVyc2F0aW9uYWwgbGFuZ3VhZ2UgdGFza3MgYXQgYSBoaWdoZXIgcXVhbGl0eSwgbW9yZSByZWxpYWJseSwgYW5kIHdpdGggYSBsb25nZXIgY29udGV4dCB0aGFuIHByZXZpb3VzIG1vZGVscy4gSXQgY2FuIGJlIHVzZWQgZm9yIGNvbXBsZXggd29ya2Zsb3dzIGxpa2UgY29kZSBnZW5lcmF0aW9uLCByZXRyaWV2YWwgYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIHRvb2wgdXNlLCBhbmQgYWdlbnRzLlxuXG5SZWFkIHRoZSBsYXVuY2ggcG9zdCBbaGVyZV0oaHR0cHM6Ly90eHQuY29oZXJlLmNvbS9jb21tYW5kLXIvKS5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJibyIsIm5hbWUiOiJPcGVuQUk6IEdQVC0zLjUgVHVyYm8iLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6IkdQVC0zLjUgVHVyYm8gaXMgT3BlbkFJJ3MgZmFzdGVzdCBtb2RlbC4gSXQgY2FuIHVuZGVyc3RhbmQgYW5kIGdlbmVyYXRlIG5hdHVyYWwgbGFuZ3VhZ2Ugb3IgY29kZSwgYW5kIGlzIG9wdGltaXplZCBmb3IgY2hhdCBhbmQgdHJhZGl0aW9uYWwgY29tcGxldGlvbiB0YXNrcy5cblxuVHJhaW5pbmcgZGF0YSB1cCB0byBTZXAgMjAyMS4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMSIsIm5hbWUiOiJEZWVwU2VlazogUjEiLCJjcmVhdGVkIjoxNzM3MzgxMDk1LCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFIxIGlzIGhlcmU6IFBlcmZvcm1hbmNlIG9uIHBhciB3aXRoIFtPcGVuQUkgbzFdKC9vcGVuYWkvbzEpLCBidXQgb3Blbi1zb3VyY2VkIGFuZCB3aXRoIGZ1bGx5IG9wZW4gcmVhc29uaW5nIHRva2Vucy4gSXQncyA2NzFCIHBhcmFtZXRlcnMgaW4gc2l6ZSwgd2l0aCAzN0IgYWN0aXZlIGluIGFuIGluZmVyZW5jZSBwYXNzLlxuXG5GdWxseSBvcGVuLXNvdXJjZSBtb2RlbCAmIFt0ZWNobmljYWwgcmVwb3J0XShodHRwczovL2FwaS1kb2NzLmRlZXBzZWVrLmNvbS9uZXdzL25ld3MyNTAxMjApLlxuXG5NSVQgbGljZW5zZWQ6IERpc3RpbGwgJiBjb21tZXJjaWFsaXplIGZyZWVseSEiLCJjb250ZXh0X2xlbmd0aCI6MTYzODQwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiRGVlcFNlZWsiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDU0IiwiY29tcGxldGlvbiI6IjAuMDAwMDAyMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLWxsYW1hLTcwYiIsIm5hbWUiOiJEZWVwU2VlazogUjEgRGlzdGlsbCBMbGFtYSA3MEIiLCJjcmVhdGVkIjoxNzM3NjYzMTY5LCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFIxIERpc3RpbGwgTGxhbWEgNzBCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtMbGFtYS0zLjMtNzBCLUluc3RydWN0XSgvbWV0YS1sbGFtYS9sbGFtYS0zLjMtNzBiLWluc3RydWN0KSwgdXNpbmcgb3V0cHV0cyBmcm9tIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKS4gVGhlIG1vZGVsIGNvbWJpbmVzIGFkdmFuY2VkIGRpc3RpbGxhdGlvbiB0ZWNobmlxdWVzIHRvIGFjaGlldmUgaGlnaCBwZXJmb3JtYW5jZSBhY3Jvc3MgbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nOlxuXG4tIEFJTUUgMjAyNCBwYXNzQDE6IDcwLjBcbi0gTUFUSC01MDAgcGFzc0AxOiA5NC41XG4tIENvZGVGb3JjZXMgUmF0aW5nOiAxNjMzXG5cblRoZSBtb2RlbCBsZXZlcmFnZXMgZmluZS10dW5pbmcgZnJvbSBEZWVwU2VlayBSMSdzIG91dHB1dHMsIGVuYWJsaW5nIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGNvbXBhcmFibGUgdG8gbGFyZ2VyIGZyb250aWVyIG1vZGVscy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDk5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjEtNDA1Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgNDA1QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiVGhlIGhpZ2hseSBhbnRpY2lwYXRlZCA0MDBCIGNsYXNzIG9mIExsYW1hMyBpcyBoZXJlISBDbG9ja2luZyBpbiBhdCAxMjhrIGNvbnRleHQgd2l0aCBpbXByZXNzaXZlIGV2YWwgc2NvcmVzLCB0aGUgTWV0YSBBSSB0ZWFtIGNvbnRpbnVlcyB0byBwdXNoIHRoZSBmcm9udGllciBvZiBvcGVuLXNvdXJjZSBMTE1zLlxuXG5NZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzLjEpIGxhdW5jaGVkIHdpdGggYSB2YXJpZXR5IG9mIHNpemVzICYgZmxhdm9ycy4gVGhpcyA0MDVCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW5jbHVkaW5nIEdQVC00byBhbmQgQ2xhdWRlIDMuNSBTb25uZXQgaW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbWF6b24vbm92YS1wcm8tdjEiLCJuYW1lIjoiQW1hem9uOiBOb3ZhIFBybyAxLjAiLCJjcmVhdGVkIjoxNzMzNDM2MzAzLCJkZXNjcmlwdGlvbiI6IkFtYXpvbiBOb3ZhIFBybyAxLjAgaXMgYSBjYXBhYmxlIG11bHRpbW9kYWwgbW9kZWwgZnJvbSBBbWF6b24gZm9jdXNlZCBvbiBwcm92aWRpbmcgYSBjb21iaW5hdGlvbiBvZiBhY2N1cmFjeSwgc3BlZWQsIGFuZCBjb3N0IGZvciBhIHdpZGUgcmFuZ2Ugb2YgdGFza3MuIEFzIG9mIERlY2VtYmVyIDIwMjQsIGl0IGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24ga2V5IGJlbmNobWFya3MgaW5jbHVkaW5nIHZpc3VhbCBxdWVzdGlvbiBhbnN3ZXJpbmcgKFRleHRWUUEpIGFuZCB2aWRlbyB1bmRlcnN0YW5kaW5nIChWQVRFWCkuXG5cbkFtYXpvbiBOb3ZhIFBybyBkZW1vbnN0cmF0ZXMgc3Ryb25nIGNhcGFiaWxpdGllcyBpbiBwcm9jZXNzaW5nIGJvdGggdmlzdWFsIGFuZCB0ZXh0dWFsIGluZm9ybWF0aW9uIGFuZCBhdCBhbmFseXppbmcgZmluYW5jaWFsIGRvY3VtZW50cy5cblxuKipOT1RFKio6IFZpZGVvIGlucHV0IGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLiIsImNvbnRleHRfbGVuZ3RoIjozMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDMyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAxMiIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo1MTIwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3U6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgSGFpa3UgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MzA2Nzg0MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNSBIYWlrdSBmZWF0dXJlcyBvZmZlcnMgZW5oYW5jZWQgY2FwYWJpbGl0aWVzIGluIHNwZWVkLCBjb2RpbmcgYWNjdXJhY3ksIGFuZCB0b29sIHVzZS4gRW5naW5lZXJlZCB0byBleGNlbCBpbiByZWFsLXRpbWUgYXBwbGljYXRpb25zLCBpdCBkZWxpdmVycyBxdWljayByZXNwb25zZSB0aW1lcyB0aGF0IGFyZSBlc3NlbnRpYWwgZm9yIGR5bmFtaWMgdGFza3Mgc3VjaCBhcyBjaGF0IGludGVyYWN0aW9ucyBhbmQgaW1tZWRpYXRlIGNvZGluZyBzdWdnZXN0aW9ucy5cblxuVGhpcyBtYWtlcyBpdCBoaWdobHkgc3VpdGFibGUgZm9yIGVudmlyb25tZW50cyB0aGF0IGRlbWFuZCBib3RoIHNwZWVkIGFuZCBwcmVjaXNpb24sIHN1Y2ggYXMgc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGN1c3RvbWVyIHNlcnZpY2UgYm90cywgYW5kIGRhdGEgbWFuYWdlbWVudCBzeXN0ZW1zLlxuXG5UaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBwb2ludGluZyB0byBbQ2xhdWRlIDMuNSBIYWlrdSAoMjAyNC0xMC0yMildKC9hbnRocm9waWMvY2xhdWRlLTMtNS1oYWlrdS0yMDI0MTAyMikuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwOCIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDEifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBIYWlrdSIsImNyZWF0ZWQiOjE3MzA2Nzg0MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNSBIYWlrdSBmZWF0dXJlcyBvZmZlcnMgZW5oYW5jZWQgY2FwYWJpbGl0aWVzIGluIHNwZWVkLCBjb2RpbmcgYWNjdXJhY3ksIGFuZCB0b29sIHVzZS4gRW5naW5lZXJlZCB0byBleGNlbCBpbiByZWFsLXRpbWUgYXBwbGljYXRpb25zLCBpdCBkZWxpdmVycyBxdWljayByZXNwb25zZSB0aW1lcyB0aGF0IGFyZSBlc3NlbnRpYWwgZm9yIGR5bmFtaWMgdGFza3Mgc3VjaCBhcyBjaGF0IGludGVyYWN0aW9ucyBhbmQgaW1tZWRpYXRlIGNvZGluZyBzdWdnZXN0aW9ucy5cblxuVGhpcyBtYWtlcyBpdCBoaWdobHkgc3VpdGFibGUgZm9yIGVudmlyb25tZW50cyB0aGF0IGRlbWFuZCBib3RoIHNwZWVkIGFuZCBwcmVjaXNpb24sIHN1Y2ggYXMgc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGN1c3RvbWVyIHNlcnZpY2UgYm90cywgYW5kIGRhdGEgbWFuYWdlbWVudCBzeXN0ZW1zLlxuXG5UaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBwb2ludGluZyB0byBbQ2xhdWRlIDMuNSBIYWlrdSAoMjAyNC0xMC0yMildKC9hbnRocm9waWMvY2xhdWRlLTMtNS1oYWlrdS0yMDI0MTAyMikuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwOCIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDEifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UtMjAyNDEwMjI6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgSGFpa3UgKDIwMjQtMTAtMjIpIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzMwNjc4NDAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzLjUgSGFpa3UgZmVhdHVyZXMgZW5oYW5jZW1lbnRzIGFjcm9zcyBhbGwgc2tpbGwgc2V0cyBpbmNsdWRpbmcgY29kaW5nLCB0b29sIHVzZSwgYW5kIHJlYXNvbmluZy4gQXMgdGhlIGZhc3Rlc3QgbW9kZWwgaW4gdGhlIEFudGhyb3BpYyBsaW5ldXAsIGl0IG9mZmVycyByYXBpZCByZXNwb25zZSB0aW1lcyBzdWl0YWJsZSBmb3IgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBoaWdoIGludGVyYWN0aXZpdHkgYW5kIGxvdyBsYXRlbmN5LCBzdWNoIGFzIHVzZXItZmFjaW5nIGNoYXRib3RzIGFuZCBvbi10aGUtZmx5IGNvZGUgY29tcGxldGlvbnMuIEl0IGFsc28gZXhjZWxzIGluIHNwZWNpYWxpemVkIHRhc2tzIGxpa2UgZGF0YSBleHRyYWN0aW9uIGFuZCByZWFsLXRpbWUgY29udGVudCBtb2RlcmF0aW9uLCBtYWtpbmcgaXQgYSB2ZXJzYXRpbGUgdG9vbCBmb3IgYSBicm9hZCByYW5nZSBvZiBpbmR1c3RyaWVzLlxuXG5JdCBkb2VzIG5vdCBzdXBwb3J0IGltYWdlIGlucHV0cy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzLzMtNS1tb2RlbHMtYW5kLWNvbXB1dGVyLXVzZSkiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA4IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UtMjAyNDEwMjIiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy41IEhhaWt1ICgyMDI0LTEwLTIyKSIsImNyZWF0ZWQiOjE3MzA2Nzg0MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNSBIYWlrdSBmZWF0dXJlcyBlbmhhbmNlbWVudHMgYWNyb3NzIGFsbCBza2lsbCBzZXRzIGluY2x1ZGluZyBjb2RpbmcsIHRvb2wgdXNlLCBhbmQgcmVhc29uaW5nLiBBcyB0aGUgZmFzdGVzdCBtb2RlbCBpbiB0aGUgQW50aHJvcGljIGxpbmV1cCwgaXQgb2ZmZXJzIHJhcGlkIHJlc3BvbnNlIHRpbWVzIHN1aXRhYmxlIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGhpZ2ggaW50ZXJhY3Rpdml0eSBhbmQgbG93IGxhdGVuY3ksIHN1Y2ggYXMgdXNlci1mYWNpbmcgY2hhdGJvdHMgYW5kIG9uLXRoZS1mbHkgY29kZSBjb21wbGV0aW9ucy4gSXQgYWxzbyBleGNlbHMgaW4gc3BlY2lhbGl6ZWQgdGFza3MgbGlrZSBkYXRhIGV4dHJhY3Rpb24gYW5kIHJlYWwtdGltZSBjb250ZW50IG1vZGVyYXRpb24sIG1ha2luZyBpdCBhIHZlcnNhdGlsZSB0b29sIGZvciBhIGJyb2FkIHJhbmdlIG9mIGluZHVzdHJpZXMuXG5cbkl0IGRvZXMgbm90IHN1cHBvcnQgaW1hZ2UgaW5wdXRzLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvMy01LW1vZGVscy1hbmQtY29tcHV0ZXItdXNlKSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDgiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAxIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXh0cmFsLTh4MjJiLWluc3RydWN0IiwibmFtZSI6Ik1pc3RyYWw6IE1peHRyYWwgOHgyMkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzEzMzEyMDAwLCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwncyBvZmZpY2lhbCBpbnN0cnVjdCBmaW5lLXR1bmVkIHZlcnNpb24gb2YgW01peHRyYWwgOHgyMkJdKC9tb2RlbHMvbWlzdHJhbGFpL21peHRyYWwtOHgyMmIpLiBJdCB1c2VzIDM5QiBhY3RpdmUgcGFyYW1ldGVycyBvdXQgb2YgMTQxQiwgb2ZmZXJpbmcgdW5wYXJhbGxlbGVkIGNvc3QgZWZmaWNpZW5jeSBmb3IgaXRzIHNpemUuIEl0cyBzdHJlbmd0aHMgaW5jbHVkZTpcbi0gc3Ryb25nIG1hdGgsIGNvZGluZywgYW5kIHJlYXNvbmluZ1xuLSBsYXJnZSBjb250ZXh0IGxlbmd0aCAoNjRrKVxuLSBmbHVlbmN5IGluIEVuZ2xpc2gsIEZyZW5jaCwgSXRhbGlhbiwgR2VybWFuLCBhbmQgU3BhbmlzaFxuXG5TZWUgYmVuY2htYXJrcyBvbiB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBbaGVyZV0oaHR0cHM6Ly9taXN0cmFsLmFpL25ld3MvbWl4dHJhbC04eDIyYi8pLlxuI21vZSIsImNvbnRleHRfbGVuZ3RoIjo2NTUzNiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY1NTM2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaWNyb3NvZnQvcGhpLTMtbWVkaXVtLTEyOGstaW5zdHJ1Y3QiLCJuYW1lIjoiTWljcm9zb2Z0OiBQaGktMyBNZWRpdW0gMTI4SyBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTY1MDg4MDAsImRlc2NyaXB0aW9uIjoiUGhpLTMgMTI4SyBNZWRpdW0gaXMgYSBwb3dlcmZ1bCAxNC1iaWxsaW9uIHBhcmFtZXRlciBtb2RlbCBkZXNpZ25lZCBmb3IgYWR2YW5jZWQgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZywgcmVhc29uaW5nLCBhbmQgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLiBPcHRpbWl6ZWQgdGhyb3VnaCBzdXBlcnZpc2VkIGZpbmUtdHVuaW5nIGFuZCBwcmVmZXJlbmNlIGFkanVzdG1lbnRzLCBpdCBleGNlbHMgaW4gdGFza3MgaW52b2x2aW5nIGNvbW1vbiBzZW5zZSwgbWF0aGVtYXRpY3MsIGxvZ2ljYWwgcmVhc29uaW5nLCBhbmQgY29kZSBwcm9jZXNzaW5nLlxuXG5BdCB0aW1lIG9mIHJlbGVhc2UsIFBoaS0zIE1lZGl1bSBkZW1vbnN0cmF0ZWQgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBhbW9uZyBsaWdodHdlaWdodCBtb2RlbHMuIEluIHRoZSBNTUxVLVBybyBldmFsLCB0aGUgbW9kZWwgZXZlbiBjb21lcyBjbG9zZSB0byBhIExsYW1hMyA3MEIgbGV2ZWwgb2YgcGVyZm9ybWFuY2UuXG5cbkZvciA0ayBjb250ZXh0IGxlbmd0aCwgdHJ5IFtQaGktMyBNZWRpdW0gNEtdKC9tb2RlbHMvbWljcm9zb2Z0L3BoaS0zLW1lZGl1bS00ay1pbnN0cnVjdCkuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6InBoaTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0xMTA2IiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyAxNmsgKG9sZGVyIHYxMTA2KSIsImNyZWF0ZWQiOjE2OTkyMjg4MDAsImRlc2NyaXB0aW9uIjoiQW4gb2xkZXIgR1BULTMuNSBUdXJibyBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0wNjEzIiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyAob2xkZXIgdjA2MTMpIiwiY3JlYXRlZCI6MTcwNjE0MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtMy41IFR1cmJvIGlzIE9wZW5BSSdzIGZhc3Rlc3QgbW9kZWwuIEl0IGNhbiB1bmRlcnN0YW5kIGFuZCBnZW5lcmF0ZSBuYXR1cmFsIGxhbmd1YWdlIG9yIGNvZGUsIGFuZCBpcyBvcHRpbWl6ZWQgZm9yIGNoYXQgYW5kIHRyYWRpdGlvbmFsIGNvbXBsZXRpb24gdGFza3MuXG5cblRyYWluaW5nIGRhdGEgdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjQwOTUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28zLW1pbmkiLCJuYW1lIjoiT3BlbkFJOiBvMyBNaW5pIiwiY3JlYXRlZCI6MTczODM1MTcyMSwiZGVzY3JpcHRpb24iOiJPcGVuQUkgbzMtbWluaSBpcyBhIGNvc3QtZWZmaWNpZW50IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3IgU1RFTSByZWFzb25pbmcgdGFza3MsIHBhcnRpY3VsYXJseSBleGNlbGxpbmcgaW4gc2NpZW5jZSwgbWF0aGVtYXRpY3MsIGFuZCBjb2RpbmcuXG5cblRoaXMgbW9kZWwgc3VwcG9ydHMgdGhlIGByZWFzb25pbmdfZWZmb3J0YCBwYXJhbWV0ZXIsIHdoaWNoIGNhbiBiZSBzZXQgdG8gXCJoaWdoXCIsIFwibWVkaXVtXCIsIG9yIFwibG93XCIgdG8gY29udHJvbCB0aGUgdGhpbmtpbmcgdGltZSBvZiB0aGUgbW9kZWwuIFRoZSBkZWZhdWx0IGlzIFwibWVkaXVtXCIuIE9wZW5Sb3V0ZXIgYWxzbyBvZmZlcnMgdGhlIG1vZGVsIHNsdWcgYG9wZW5haS9vMy1taW5pLWhpZ2hgIHRvIGRlZmF1bHQgdGhlIHBhcmFtZXRlciB0byBcImhpZ2hcIi5cblxuVGhlIG1vZGVsIGZlYXR1cmVzIHRocmVlIGFkanVzdGFibGUgcmVhc29uaW5nIGVmZm9ydCBsZXZlbHMgYW5kIHN1cHBvcnRzIGtleSBkZXZlbG9wZXIgY2FwYWJpbGl0aWVzIGluY2x1ZGluZyBmdW5jdGlvbiBjYWxsaW5nLCBzdHJ1Y3R1cmVkIG91dHB1dHMsIGFuZCBzdHJlYW1pbmcsIHRob3VnaCBpdCBkb2VzIG5vdCBpbmNsdWRlIHZpc2lvbiBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy5cblxuVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBzaWduaWZpY2FudCBpbXByb3ZlbWVudHMgb3ZlciBpdHMgcHJlZGVjZXNzb3IsIHdpdGggZXhwZXJ0IHRlc3RlcnMgcHJlZmVycmluZyBpdHMgcmVzcG9uc2VzIDU2JSBvZiB0aGUgdGltZSBhbmQgbm90aW5nIGEgMzklIHJlZHVjdGlvbiBpbiBtYWpvciBlcnJvcnMgb24gY29tcGxleCBxdWVzdGlvbnMuIFdpdGggbWVkaXVtIHJlYXNvbmluZyBlZmZvcnQgc2V0dGluZ3MsIG8zLW1pbmkgbWF0Y2hlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGxhcmdlciBvMSBtb2RlbCBvbiBjaGFsbGVuZ2luZyByZWFzb25pbmcgZXZhbHVhdGlvbnMgbGlrZSBBSU1FIGFuZCBHUFFBLCB3aGlsZSBtYWludGFpbmluZyBsb3dlciBsYXRlbmN5IGFuZCBjb3N0LiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDU1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMDAwMCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28zLW1pbmktaGlnaCIsIm5hbWUiOiJPcGVuQUk6IG8zIE1pbmkgSGlnaCIsImNyZWF0ZWQiOjE3MzkzNzI2MTEsImRlc2NyaXB0aW9uIjoiT3BlbkFJIG8zLW1pbmktaGlnaCBpcyB0aGUgc2FtZSBtb2RlbCBhcyBbbzMtbWluaV0oL29wZW5haS9vMy1taW5pKSB3aXRoIHJlYXNvbmluZ19lZmZvcnQgc2V0IHRvIGhpZ2guIFxuXG5vMy1taW5pIGlzIGEgY29zdC1lZmZpY2llbnQgbGFuZ3VhZ2UgbW9kZWwgb3B0aW1pemVkIGZvciBTVEVNIHJlYXNvbmluZyB0YXNrcywgcGFydGljdWxhcmx5IGV4Y2VsbGluZyBpbiBzY2llbmNlLCBtYXRoZW1hdGljcywgYW5kIGNvZGluZy4gVGhlIG1vZGVsIGZlYXR1cmVzIHRocmVlIGFkanVzdGFibGUgcmVhc29uaW5nIGVmZm9ydCBsZXZlbHMgYW5kIHN1cHBvcnRzIGtleSBkZXZlbG9wZXIgY2FwYWJpbGl0aWVzIGluY2x1ZGluZyBmdW5jdGlvbiBjYWxsaW5nLCBzdHJ1Y3R1cmVkIG91dHB1dHMsIGFuZCBzdHJlYW1pbmcsIHRob3VnaCBpdCBkb2VzIG5vdCBpbmNsdWRlIHZpc2lvbiBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy5cblxuVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBzaWduaWZpY2FudCBpbXByb3ZlbWVudHMgb3ZlciBpdHMgcHJlZGVjZXNzb3IsIHdpdGggZXhwZXJ0IHRlc3RlcnMgcHJlZmVycmluZyBpdHMgcmVzcG9uc2VzIDU2JSBvZiB0aGUgdGltZSBhbmQgbm90aW5nIGEgMzklIHJlZHVjdGlvbiBpbiBtYWpvciBlcnJvcnMgb24gY29tcGxleCBxdWVzdGlvbnMuIFdpdGggbWVkaXVtIHJlYXNvbmluZyBlZmZvcnQgc2V0dGluZ3MsIG8zLW1pbmkgbWF0Y2hlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGxhcmdlciBvMSBtb2RlbCBvbiBjaGFsbGVuZ2luZyByZWFzb25pbmcgZXZhbHVhdGlvbnMgbGlrZSBBSU1FIGFuZCBHUFFBLCB3aGlsZSBtYWludGFpbmluZyBsb3dlciBsYXRlbmN5IGFuZCBjb3N0LiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDU1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMDAwMCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1wcm8tMS41IiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDEuNSBQcm8iLCJjcmVhdGVkIjoxNzEyNjIwODAwLCJkZXNjcmlwdGlvbiI6Ikdvb2dsZSdzIGxhdGVzdCBtdWx0aW1vZGFsIG1vZGVsLCBzdXBwb3J0cyBpbWFnZSBhbmQgdmlkZW9bMF0gaW4gdGV4dCBvciBjaGF0IHByb21wdHMuXG5cbk9wdGltaXplZCBmb3IgbGFuZ3VhZ2UgdGFza3MgaW5jbHVkaW5nOlxuXG4tIENvZGUgZ2VuZXJhdGlvblxuLSBUZXh0IGdlbmVyYXRpb25cbi0gVGV4dCBlZGl0aW5nXG4tIFByb2JsZW0gc29sdmluZ1xuLSBSZWNvbW1lbmRhdGlvbnNcbi0gSW5mb3JtYXRpb24gZXh0cmFjdGlvblxuLSBEYXRhIGV4dHJhY3Rpb24gb3IgZ2VuZXJhdGlvblxuLSBBSSBhZ2VudHNcblxuVXNhZ2Ugb2YgR2VtaW5pIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbWluaSBUZXJtcyBvZiBVc2VdKGh0dHBzOi8vYWkuZ29vZ2xlLmRldi90ZXJtcykuXG5cbiogWzBdOiBWaWRlbyBpbnB1dCBpcyBub3QgYXZhaWxhYmxlIHRocm91Z2ggT3BlblJvdXRlciBhdCB0aGlzIHRpbWUuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA2NTc1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjUtcHJvLXByZXZpZXctMDMtMjUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi41IFBybyBQcmV2aWV3IiwiY3JlYXRlZCI6MTc0Mzc4MDQ5MywiZGVzY3JpcHRpb24iOiJHZW1pbmkgMi41IFBybyBpcyBHb29nbGXigJlzIHN0YXRlLW9mLXRoZS1hcnQgQUkgbW9kZWwgZGVzaWduZWQgZm9yIGFkdmFuY2VkIHJlYXNvbmluZywgY29kaW5nLCBtYXRoZW1hdGljcywgYW5kIHNjaWVudGlmaWMgdGFza3MuIEl0IGVtcGxveXMg4oCcdGhpbmtpbmfigJ0gY2FwYWJpbGl0aWVzLCBlbmFibGluZyBpdCB0byByZWFzb24gdGhyb3VnaCByZXNwb25zZXMgd2l0aCBlbmhhbmNlZCBhY2N1cmFjeSBhbmQgbnVhbmNlZCBjb250ZXh0IGhhbmRsaW5nLiBHZW1pbmkgMi41IFBybyBhY2hpZXZlcyB0b3AtdGllciBwZXJmb3JtYW5jZSBvbiBtdWx0aXBsZSBiZW5jaG1hcmtzLCBpbmNsdWRpbmcgZmlyc3QtcGxhY2UgcG9zaXRpb25pbmcgb24gdGhlIExNQXJlbmEgbGVhZGVyYm9hcmQsIHJlZmxlY3Rpbmcgc3VwZXJpb3IgaHVtYW4tcHJlZmVyZW5jZSBhbGlnbm1lbnQgYW5kIGNvbXBsZXggcHJvYmxlbS1zb2x2aW5nIGFiaWxpdGllcy4iLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NTUzNSwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi1tYXgiLCJuYW1lIjoiUXdlbjogUXdlbi1NYXggIiwiY3JlYXRlZCI6MTczODQwMjI4OSwiZGVzY3JpcHRpb24iOiJRd2VuLU1heCwgYmFzZWQgb24gUXdlbjIuNSwgcHJvdmlkZXMgdGhlIGJlc3QgaW5mZXJlbmNlIHBlcmZvcm1hbmNlIGFtb25nIFtRd2VuIG1vZGVsc10oL3F3ZW4pLCBlc3BlY2lhbGx5IGZvciBjb21wbGV4IG11bHRpLXN0ZXAgdGFza3MuIEl0J3MgYSBsYXJnZS1zY2FsZSBNb0UgbW9kZWwgdGhhdCBoYXMgYmVlbiBwcmV0cmFpbmVkIG9uIG92ZXIgMjAgdHJpbGxpb24gdG9rZW5zIGFuZCBmdXJ0aGVyIHBvc3QtdHJhaW5lZCB3aXRoIGN1cmF0ZWQgU3VwZXJ2aXNlZCBGaW5lLVR1bmluZyAoU0ZUKSBhbmQgUmVpbmZvcmNlbWVudCBMZWFybmluZyBmcm9tIEh1bWFuIEZlZWRiYWNrIChSTEhGKSBtZXRob2RvbG9naWVzLiBUaGUgcGFyYW1ldGVyIGNvdW50IGlzIHVua25vd24uIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1sYXJnZSIsIm5hbWUiOiJNaXN0cmFsIExhcmdlIiwiY3JlYXRlZCI6MTcwODkwNTYwMCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBmbGFnc2hpcCBtb2RlbCwgTWlzdHJhbCBMYXJnZSAyICh2ZXJzaW9uIGBtaXN0cmFsLWxhcmdlLTI0MDdgKS4gSXQncyBhIHByb3ByaWV0YXJ5IHdlaWdodHMtYXZhaWxhYmxlIG1vZGVsIGFuZCBleGNlbHMgYXQgcmVhc29uaW5nLCBjb2RlLCBKU09OLCBjaGF0LCBhbmQgbW9yZS4gUmVhZCB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBbaGVyZV0oaHR0cHM6Ly9taXN0cmFsLmFpL25ld3MvbWlzdHJhbC1sYXJnZS0yNDA3LykuXG5cbkl0IHN1cHBvcnRzIGRvemVucyBvZiBsYW5ndWFnZXMgaW5jbHVkaW5nIEZyZW5jaCwgR2VybWFuLCBTcGFuaXNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBBcmFiaWMsIEhpbmRpLCBSdXNzaWFuLCBDaGluZXNlLCBKYXBhbmVzZSwgYW5kIEtvcmVhbiwgYWxvbmcgd2l0aCA4MCsgY29kaW5nIGxhbmd1YWdlcyBpbmNsdWRpbmcgUHl0aG9uLCBKYXZhLCBDLCBDKyssIEphdmFTY3JpcHQsIGFuZCBCYXNoLiBJdHMgbG9uZyBjb250ZXh0IHdpbmRvdyBhbGxvd3MgcHJlY2lzZSBpbmZvcm1hdGlvbiByZWNhbGwgZnJvbSBsYXJnZSBkb2N1bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1sYXJnZS0yNDExIiwibmFtZSI6Ik1pc3RyYWwgTGFyZ2UgMjQxMSIsImNyZWF0ZWQiOjE3MzE5Nzg2ODUsImRlc2NyaXB0aW9uIjoiTWlzdHJhbCBMYXJnZSAyIDI0MTEgaXMgYW4gdXBkYXRlIG9mIFtNaXN0cmFsIExhcmdlIDJdKC9taXN0cmFsYWkvbWlzdHJhbC1sYXJnZSkgcmVsZWFzZWQgdG9nZXRoZXIgd2l0aCBbUGl4dHJhbCBMYXJnZSAyNDExXSgvbWlzdHJhbGFpL3BpeHRyYWwtbGFyZ2UtMjQxMSlcblxuSXQgcHJvdmlkZXMgYSBzaWduaWZpY2FudCB1cGdyYWRlIG9uIHRoZSBwcmV2aW91cyBbTWlzdHJhbCBMYXJnZSAyNC4wN10oL21pc3RyYWxhaS9taXN0cmFsLWxhcmdlLTI0MDcpLCB3aXRoIG5vdGFibGUgaW1wcm92ZW1lbnRzIGluIGxvbmcgY29udGV4dCB1bmRlcnN0YW5kaW5nLCBhIG5ldyBzeXN0ZW0gcHJvbXB0LCBhbmQgbW9yZSBhY2N1cmF0ZSBmdW5jdGlvbiBjYWxsaW5nLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UtMjQwNyIsIm5hbWUiOiJNaXN0cmFsIExhcmdlIDI0MDciLCJjcmVhdGVkIjoxNzMxOTc4NDE1LCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgTWlzdHJhbCBBSSdzIGZsYWdzaGlwIG1vZGVsLCBNaXN0cmFsIExhcmdlIDIgKHZlcnNpb24gbWlzdHJhbC1sYXJnZS0yNDA3KS4gSXQncyBhIHByb3ByaWV0YXJ5IHdlaWdodHMtYXZhaWxhYmxlIG1vZGVsIGFuZCBleGNlbHMgYXQgcmVhc29uaW5nLCBjb2RlLCBKU09OLCBjaGF0LCBhbmQgbW9yZS4gUmVhZCB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBbaGVyZV0oaHR0cHM6Ly9taXN0cmFsLmFpL25ld3MvbWlzdHJhbC1sYXJnZS0yNDA3LykuXG5cbkl0IHN1cHBvcnRzIGRvemVucyBvZiBsYW5ndWFnZXMgaW5jbHVkaW5nIEZyZW5jaCwgR2VybWFuLCBTcGFuaXNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBBcmFiaWMsIEhpbmRpLCBSdXNzaWFuLCBDaGluZXNlLCBKYXBhbmVzZSwgYW5kIEtvcmVhbiwgYWxvbmcgd2l0aCA4MCsgY29kaW5nIGxhbmd1YWdlcyBpbmNsdWRpbmcgUHl0aG9uLCBKYXZhLCBDLCBDKyssIEphdmFTY3JpcHQsIGFuZCBCYXNoLiBJdHMgbG9uZyBjb250ZXh0IHdpbmRvdyBhbGxvd3MgcHJlY2lzZSBpbmZvcm1hdGlvbiByZWNhbGwgZnJvbSBsYXJnZSBkb2N1bWVudHMuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9waXh0cmFsLWxhcmdlLTI0MTEiLCJuYW1lIjoiTWlzdHJhbDogUGl4dHJhbCBMYXJnZSAyNDExIiwiY3JlYXRlZCI6MTczMTk3NzM4OCwiZGVzY3JpcHRpb24iOiJQaXh0cmFsIExhcmdlIGlzIGEgMTI0QiBwYXJhbWV0ZXIsIG9wZW4td2VpZ2h0LCBtdWx0aW1vZGFsIG1vZGVsIGJ1aWx0IG9uIHRvcCBvZiBbTWlzdHJhbCBMYXJnZSAyXSgvbWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UtMjQxMSkuIFRoZSBtb2RlbCBpcyBhYmxlIHRvIHVuZGVyc3RhbmQgZG9jdW1lbnRzLCBjaGFydHMgYW5kIG5hdHVyYWwgaW1hZ2VzLlxuXG5UaGUgbW9kZWwgaXMgYXZhaWxhYmxlIHVuZGVyIHRoZSBNaXN0cmFsIFJlc2VhcmNoIExpY2Vuc2UgKE1STCkgZm9yIHJlc2VhcmNoIGFuZCBlZHVjYXRpb25hbCB1c2UsIGFuZCB0aGUgTWlzdHJhbCBDb21tZXJjaWFsIExpY2Vuc2UgZm9yIGV4cGVyaW1lbnRhdGlvbiwgdGVzdGluZywgYW5kIHByb2R1Y3Rpb24gZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMuXG5cbiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMjg4OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS0xLTUtbGFyZ2UiLCJuYW1lIjoiQUkyMTogSmFtYmEgMS41IExhcmdlIiwiY3JlYXRlZCI6MTcyNDM3MTIwMCwiZGVzY3JpcHRpb24iOiJKYW1iYSAxLjUgTGFyZ2UgaXMgcGFydCBvZiBBSTIxJ3MgbmV3IGZhbWlseSBvZiBvcGVuIG1vZGVscywgb2ZmZXJpbmcgc3VwZXJpb3Igc3BlZWQsIGVmZmljaWVuY3ksIGFuZCBxdWFsaXR5LlxuXG5JdCBmZWF0dXJlcyBhIDI1NksgZWZmZWN0aXZlIGNvbnRleHQgd2luZG93LCB0aGUgbG9uZ2VzdCBhbW9uZyBvcGVuIG1vZGVscywgZW5hYmxpbmcgaW1wcm92ZWQgcGVyZm9ybWFuY2Ugb24gdGFza3MgbGlrZSBkb2N1bWVudCBzdW1tYXJpemF0aW9uIGFuZCBhbmFseXNpcy5cblxuQnVpbHQgb24gYSBub3ZlbCBTU00tVHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLCBpdCBvdXRwZXJmb3JtcyBsYXJnZXIgbW9kZWxzIGxpa2UgTGxhbWEgMy4xIDcwQiBvbiBiZW5jaG1hcmtzIHdoaWxlIG1haW50YWluaW5nIHJlc291cmNlIGVmZmljaWVuY3kuXG5cblJlYWQgdGhlaXIgW2Fubm91bmNlbWVudF0oaHR0cHM6Ly93d3cuYWkyMS5jb20vYmxvZy9hbm5vdW5jaW5nLWphbWJhLW1vZGVsLWZhbWlseSkgdG8gbGVhcm4gbW9yZS4iLCJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhaTIxL2phbWJhLTEuNi1sYXJnZSIsIm5hbWUiOiJBSTIxOiBKYW1iYSAxLjYgTGFyZ2UiLCJjcmVhdGVkIjoxNzQxOTA1MTczLCJkZXNjcmlwdGlvbiI6IkFJMjEgSmFtYmEgTGFyZ2UgMS42IGlzIGEgaGlnaC1wZXJmb3JtYW5jZSBoeWJyaWQgZm91bmRhdGlvbiBtb2RlbCBjb21iaW5pbmcgU3RhdGUgU3BhY2UgTW9kZWxzIChNYW1iYSkgd2l0aCBUcmFuc2Zvcm1lciBhdHRlbnRpb24gbWVjaGFuaXNtcy4gRGV2ZWxvcGVkIGJ5IEFJMjEsIGl0IGV4Y2VscyBpbiBleHRyZW1lbHkgbG9uZy1jb250ZXh0IGhhbmRsaW5nICgyNTZLIHRva2VucyksIGRlbW9uc3RyYXRlcyBzdXBlcmlvciBpbmZlcmVuY2UgZWZmaWNpZW5jeSAodXAgdG8gMi41eCBmYXN0ZXIgdGhhbiBjb21wYXJhYmxlIG1vZGVscyksIGFuZCBzdXBwb3J0cyBzdHJ1Y3R1cmVkIEpTT04gb3V0cHV0IGFuZCB0b29sLXVzZSBjYXBhYmlsaXRpZXMuIEl0IGhhcyA5NCBiaWxsaW9uIGFjdGl2ZSBwYXJhbWV0ZXJzICgzOTggYmlsbGlvbiB0b3RhbCksIG9wdGltaXplZCBxdWFudGl6YXRpb24gc3VwcG9ydCAoRXhwZXJ0c0ludDgpLCBhbmQgbXVsdGlsaW5ndWFsIHByb2ZpY2llbmN5IGluIGxhbmd1YWdlcyBzdWNoIGFzIEVuZ2xpc2gsIFNwYW5pc2gsIEZyZW5jaCwgUG9ydHVndWVzZSwgSXRhbGlhbiwgRHV0Y2gsIEdlcm1hbiwgQXJhYmljLCBhbmQgSGVicmV3LlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gdGhlIFtKYW1iYSBPcGVuIE1vZGVsIExpY2Vuc2VdKGh0dHBzOi8vd3d3LmFpMjEuY29tL2xpY2Vuc2VzL2phbWJhLW9wZW4tbW9kZWwtbGljZW5zZSkuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoieC1haS9ncm9rLTItMTIxMiIsIm5hbWUiOiJ4QUk6IEdyb2sgMiAxMjEyIiwiY3JlYXRlZCI6MTczNDIzMjgxNCwiZGVzY3JpcHRpb24iOiJHcm9rIDIgMTIxMiBpbnRyb2R1Y2VzIHNpZ25pZmljYW50IGVuaGFuY2VtZW50cyB0byBhY2N1cmFjeSwgaW5zdHJ1Y3Rpb24gYWRoZXJlbmNlLCBhbmQgbXVsdGlsaW5ndWFsIHN1cHBvcnQsIG1ha2luZyBpdCBhIHBvd2VyZnVsIGFuZCBmbGV4aWJsZSBjaG9pY2UgZm9yIGRldmVsb3BlcnMgc2Vla2luZyBhIGhpZ2hseSBzdGVlcmFibGUsIGludGVsbGlnZW50IG1vZGVsLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvIiwiY3JlYXRlZCI6MTcxNTU1ODQwMCwiZGVzY3JpcHRpb24iOiJHUFQtNG8gKFwib1wiIGZvciBcIm9tbmlcIikgaXMgT3BlbkFJJ3MgbGF0ZXN0IEFJIG1vZGVsLCBzdXBwb3J0aW5nIGJvdGggdGV4dCBhbmQgaW1hZ2UgaW5wdXRzIHdpdGggdGV4dCBvdXRwdXRzLiBJdCBtYWludGFpbnMgdGhlIGludGVsbGlnZW5jZSBsZXZlbCBvZiBbR1BULTQgVHVyYm9dKC9tb2RlbHMvb3BlbmFpL2dwdC00LXR1cmJvKSB3aGlsZSBiZWluZyB0d2ljZSBhcyBmYXN0IGFuZCA1MCUgbW9yZSBjb3N0LWVmZmVjdGl2ZS4gR1BULTRvIGFsc28gb2ZmZXJzIGltcHJvdmVkIHBlcmZvcm1hbmNlIGluIHByb2Nlc3Npbmcgbm9uLUVuZ2xpc2ggbGFuZ3VhZ2VzIGFuZCBlbmhhbmNlZCB2aXN1YWwgY2FwYWJpbGl0aWVzLlxuXG5Gb3IgYmVuY2htYXJraW5nIGFnYWluc3Qgb3RoZXIgbW9kZWxzLCBpdCB3YXMgYnJpZWZseSBjYWxsZWQgW1wiaW0tYWxzby1hLWdvb2QtZ3B0Mi1jaGF0Ym90XCJdKGh0dHBzOi8vdHdpdHRlci5jb20vTGlhbUZlZHVzL3N0YXR1cy8xNzkwMDY0OTYzOTY2MzcwMjA5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAzNjEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxMjUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG8tMjAyNC0wOC0wNiIsIm5hbWUiOiJPcGVuQUk6IEdQVC00byAoMjAyNC0wOC0wNikiLCJjcmVhdGVkIjoxNzIyOTAyNDAwLCJkZXNjcmlwdGlvbiI6IlRoZSAyMDI0LTA4LTA2IHZlcnNpb24gb2YgR1BULTRvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBzdHJ1Y3R1cmVkIG91dHB1dHMsIHdpdGggdGhlIGFiaWxpdHkgdG8gc3VwcGx5IGEgSlNPTiBzY2hlbWEgaW4gdGhlIHJlc3BvbmVfZm9ybWF0LiBSZWFkIG1vcmUgW2hlcmVdKGh0dHBzOi8vb3BlbmFpLmNvbS9pbmRleC9pbnRyb2R1Y2luZy1zdHJ1Y3R1cmVkLW91dHB1dHMtaW4tdGhlLWFwaS8pLlxuXG5HUFQtNG8gKFwib1wiIGZvciBcIm9tbmlcIikgaXMgT3BlbkFJJ3MgbGF0ZXN0IEFJIG1vZGVsLCBzdXBwb3J0aW5nIGJvdGggdGV4dCBhbmQgaW1hZ2UgaW5wdXRzIHdpdGggdGV4dCBvdXRwdXRzLiBJdCBtYWludGFpbnMgdGhlIGludGVsbGlnZW5jZSBsZXZlbCBvZiBbR1BULTQgVHVyYm9dKC9tb2RlbHMvb3BlbmFpL2dwdC00LXR1cmJvKSB3aGlsZSBiZWluZyB0d2ljZSBhcyBmYXN0IGFuZCA1MCUgbW9yZSBjb3N0LWVmZmVjdGl2ZS4gR1BULTRvIGFsc28gb2ZmZXJzIGltcHJvdmVkIHBlcmZvcm1hbmNlIGluIHByb2Nlc3Npbmcgbm9uLUVuZ2xpc2ggbGFuZ3VhZ2VzIGFuZCBlbmhhbmNlZCB2aXN1YWwgY2FwYWJpbGl0aWVzLlxuXG5Gb3IgYmVuY2htYXJraW5nIGFnYWluc3Qgb3RoZXIgbW9kZWxzLCBpdCB3YXMgYnJpZWZseSBjYWxsZWQgW1wiaW0tYWxzby1hLWdvb2QtZ3B0Mi1jaGF0Ym90XCJdKGh0dHBzOi8vdHdpdHRlci5jb20vTGlhbUZlZHVzL3N0YXR1cy8xNzkwMDY0OTYzOTY2MzcwMjA5KSIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAzNjEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxMjUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXItcGx1cy0wOC0yMDI0IiwibmFtZSI6IkNvaGVyZTogQ29tbWFuZCBSKyAoMDgtMjAyNCkiLCJjcmVhdGVkIjoxNzI0OTc2MDAwLCJkZXNjcmlwdGlvbiI6ImNvbW1hbmQtci1wbHVzLTA4LTIwMjQgaXMgYW4gdXBkYXRlIG9mIHRoZSBbQ29tbWFuZCBSK10oL21vZGVscy9jb2hlcmUvY29tbWFuZC1yLXBsdXMpIHdpdGggcm91Z2hseSA1MCUgaGlnaGVyIHRocm91Z2hwdXQgYW5kIDI1JSBsb3dlciBsYXRlbmNpZXMgYXMgY29tcGFyZWQgdG8gdGhlIHByZXZpb3VzIENvbW1hbmQgUisgdmVyc2lvbiwgd2hpbGUga2VlcGluZyB0aGUgaGFyZHdhcmUgZm9vdHByaW50IHRoZSBzYW1lLlxuXG5SZWFkIHRoZSBsYXVuY2ggcG9zdCBbaGVyZV0oaHR0cHM6Ly9kb2NzLmNvaGVyZS5jb20vY2hhbmdlbG9nL2NvbW1hbmQtZ2V0cy1yZWZyZXNoZWQpLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLTIwMjQtMTEtMjAiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8gKDIwMjQtMTEtMjApIiwiY3JlYXRlZCI6MTczMjEyNzU5NCwiZGVzY3JpcHRpb24iOiJUaGUgMjAyNC0xMS0yMCB2ZXJzaW9uIG9mIEdQVC00byBvZmZlcnMgYSBsZXZlbGVkLXVwIGNyZWF0aXZlIHdyaXRpbmcgYWJpbGl0eSB3aXRoIG1vcmUgbmF0dXJhbCwgZW5nYWdpbmcsIGFuZCB0YWlsb3JlZCB3cml0aW5nIHRvIGltcHJvdmUgcmVsZXZhbmNlICYgcmVhZGFiaWxpdHkuIEl04oCZcyBhbHNvIGJldHRlciBhdCB3b3JraW5nIHdpdGggdXBsb2FkZWQgZmlsZXMsIHByb3ZpZGluZyBkZWVwZXIgaW5zaWdodHMgJiBtb3JlIHRob3JvdWdoIHJlc3BvbnNlcy5cblxuR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYxMyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTI1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbGwtaGFuZHMvb3BlbmhhbmRzLWxtLTMyYi12MC4xIiwibmFtZSI6Ik9wZW5IYW5kcyBMTSAzMkIgVjAuMSIsImNyZWF0ZWQiOjE3NDM2MTMwMTMsImRlc2NyaXB0aW9uIjoiT3BlbkhhbmRzIExNIHYwLjEgaXMgYSAzMkIgb3Blbi1zb3VyY2UgY29kaW5nIG1vZGVsIGZpbmUtdHVuZWQgZnJvbSBRd2VuMi41LUNvZGVyLTMyQi1JbnN0cnVjdCB1c2luZyByZWluZm9yY2VtZW50IGxlYXJuaW5nIHRlY2huaXF1ZXMgb3V0bGluZWQgaW4gU1dFLUd5bS4gSXQgaXMgb3B0aW1pemVkIGZvciBhdXRvbm9tb3VzIHNvZnR3YXJlIGRldmVsb3BtZW50IGFnZW50cyBhbmQgYWNoaWV2ZXMgc3Ryb25nIHBlcmZvcm1hbmNlIG9uIFNXRS1CZW5jaCBWZXJpZmllZCwgd2l0aCBhIDM3LjIlIHJlc29sdmUgcmF0ZS4gVGhlIG1vZGVsIHN1cHBvcnRzIGEgMTI4SyB0b2tlbiBjb250ZXh0IHdpbmRvdywgbWFraW5nIGl0IHdlbGwtc3VpdGVkIGZvciBsb25nLWhvcml6b24gY29kZSByZWFzb25pbmcgYW5kIGxhcmdlIGNvZGViYXNlIHRhc2tzLlxuXG5PcGVuSGFuZHMgTE0gaXMgZGVzaWduZWQgZm9yIGxvY2FsIGRlcGxveW1lbnQgYW5kIHJ1bnMgb24gY29uc3VtZXItZ3JhZGUgR1BVcyBzdWNoIGFzIGEgc2luZ2xlIDMwOTAuIEl0IGVuYWJsZXMgZnVsbHkgb2ZmbGluZSBhZ2VudCB3b3JrZmxvd3Mgd2l0aG91dCBkZXBlbmRlbmN5IG9uIHByb3ByaWV0YXJ5IEFQSXMuIFRoaXMgcmVsZWFzZSBpcyBpbnRlbmRlZCBhcyBhIHJlc2VhcmNoIHByZXZpZXcsIGFuZCBmdXR1cmUgdXBkYXRlcyBhaW0gdG8gaW1wcm92ZSBnZW5lcmFsaXphYmlsaXR5LCByZWR1Y2UgcmVwZXRpdGlvbiwgYW5kIG9mZmVyIHNtYWxsZXIgdmFyaWFudHMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAzNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLW1lZGl1bSIsIm5hbWUiOiJNaXN0cmFsIE1lZGl1bSIsImNyZWF0ZWQiOjE3MDQ4NDQ4MDAsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBNaXN0cmFsIEFJJ3MgY2xvc2VkLXNvdXJjZSwgbWVkaXVtLXNpZGVkIG1vZGVsLiBJdCdzIHBvd2VyZWQgYnkgYSBjbG9zZWQtc291cmNlIHByb3RvdHlwZSBhbmQgZXhjZWxzIGF0IHJlYXNvbmluZywgY29kZSwgSlNPTiwgY2hhdCwgYW5kIG1vcmUuIEluIGJlbmNobWFya3MsIGl0IGNvbXBhcmVzIHdpdGggbWFueSBvZiB0aGUgZmxhZ3NoaXAgbW9kZWxzIG9mIG90aGVyIGNvbXBhbmllcy4iLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwODEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0xNmsiLCJuYW1lIjoiT3BlbkFJOiBHUFQtMy41IFR1cmJvIDE2ayIsImNyZWF0ZWQiOjE2OTMxODA4MDAsImRlc2NyaXB0aW9uIjoiVGhpcyBtb2RlbCBvZmZlcnMgZm91ciB0aW1lcyB0aGUgY29udGV4dCBsZW5ndGggb2YgZ3B0LTMuNS10dXJibywgYWxsb3dpbmcgaXQgdG8gc3VwcG9ydCBhcHByb3hpbWF0ZWx5IDIwIHBhZ2VzIG9mIHRleHQgaW4gYSBzaW5nbGUgcmVxdWVzdCBhdCBhIGhpZ2hlciBjb3N0LiBUcmFpbmluZyBkYXRhOiB1cCB0byBTZXAgMjAyMS4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODUsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLXNvbm5ldDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgU29ubmV0IChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzA5NTk2ODAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIFNvbm5ldCBpcyBhbiBpZGVhbCBiYWxhbmNlIG9mIGludGVsbGlnZW5jZSBhbmQgc3BlZWQgZm9yIGVudGVycHJpc2Ugd29ya2xvYWRzLiBNYXhpbXVtIHV0aWxpdHkgYXQgYSBsb3dlciBwcmljZSwgZGVwZW5kYWJsZSwgYmFsYW5jZWQgZm9yIHNjYWxlZCBkZXBsb3ltZW50cy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMtc29ubmV0IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgU29ubmV0IiwiY3JlYXRlZCI6MTcwOTU5NjgwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMyBTb25uZXQgaXMgYW4gaWRlYWwgYmFsYW5jZSBvZiBpbnRlbGxpZ2VuY2UgYW5kIHNwZWVkIGZvciBlbnRlcnByaXNlIHdvcmtsb2Fkcy4gTWF4aW11bSB1dGlsaXR5IGF0IGEgbG93ZXIgcHJpY2UsIGRlcGVuZGFibGUsIGJhbGFuY2VkIGZvciBzY2FsZWQgZGVwbG95bWVudHMuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy1mYW1pbHkpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQ6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgU29ubmV0IChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzI5NTU1MjAwLCJkZXNjcmlwdGlvbiI6Ik5ldyBDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogU2NvcmVzIH40OSUgb24gU1dFLUJlbmNoIFZlcmlmaWVkLCBoaWdoZXIgdGhhbiB0aGUgbGFzdCBiZXN0IHNjb3JlLCBhbmQgd2l0aG91dCBhbnkgZmFuY3kgcHJvbXB0IHNjYWZmb2xkaW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQiLCJjcmVhdGVkIjoxNzI5NTU1MjAwLCJkZXNjcmlwdGlvbiI6Ik5ldyBDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogU2NvcmVzIH40OSUgb24gU1dFLUJlbmNoIFZlcmlmaWVkLCBoaWdoZXIgdGhhbiB0aGUgbGFzdCBiZXN0IHNjb3JlLCBhbmQgd2l0aG91dCBhbnkgZmFuY3kgcHJvbXB0IHNjYWZmb2xkaW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQtMjAyNDA2MjA6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgU29ubmV0ICgyMDI0LTA2LTIwKSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcxODg0MTYwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogQXV0b25vbW91c2x5IHdyaXRlcywgZWRpdHMsIGFuZCBydW5zIGNvZGUgd2l0aCByZWFzb25pbmcgYW5kIHRyb3VibGVzaG9vdGluZ1xuLSBEYXRhIHNjaWVuY2U6IEF1Z21lbnRzIGh1bWFuIGRhdGEgc2NpZW5jZSBleHBlcnRpc2U7IG5hdmlnYXRlcyB1bnN0cnVjdHVyZWQgZGF0YSB3aGlsZSB1c2luZyBtdWx0aXBsZSB0b29scyBmb3IgaW5zaWdodHNcbi0gVmlzdWFsIHByb2Nlc3Npbmc6IGV4Y2VsbGluZyBhdCBpbnRlcnByZXRpbmcgY2hhcnRzLCBncmFwaHMsIGFuZCBpbWFnZXMsIGFjY3VyYXRlbHkgdHJhbnNjcmliaW5nIHRleHQgdG8gZGVyaXZlIGluc2lnaHRzIGJleW9uZCBqdXN0IHRoZSB0ZXh0IGFsb25lXG4tIEFnZW50aWMgdGFza3M6IGV4Y2VwdGlvbmFsIHRvb2wgdXNlLCBtYWtpbmcgaXQgZ3JlYXQgYXQgYWdlbnRpYyB0YXNrcyAoaS5lLiBjb21wbGV4LCBtdWx0aS1zdGVwIHByb2JsZW0gc29sdmluZyB0YXNrcyB0aGF0IHJlcXVpcmUgZW5nYWdpbmcgd2l0aCBvdGhlciBzeXN0ZW1zKVxuXG5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uICgyMDI0LTEwLTIzKSwgY2hlY2sgb3V0IFtDbGF1ZGUgMy41IFNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldCkuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0LTIwMjQwNjIwIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQgKDIwMjQtMDYtMjApIiwiY3JlYXRlZCI6MTcxODg0MTYwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogQXV0b25vbW91c2x5IHdyaXRlcywgZWRpdHMsIGFuZCBydW5zIGNvZGUgd2l0aCByZWFzb25pbmcgYW5kIHRyb3VibGVzaG9vdGluZ1xuLSBEYXRhIHNjaWVuY2U6IEF1Z21lbnRzIGh1bWFuIGRhdGEgc2NpZW5jZSBleHBlcnRpc2U7IG5hdmlnYXRlcyB1bnN0cnVjdHVyZWQgZGF0YSB3aGlsZSB1c2luZyBtdWx0aXBsZSB0b29scyBmb3IgaW5zaWdodHNcbi0gVmlzdWFsIHByb2Nlc3Npbmc6IGV4Y2VsbGluZyBhdCBpbnRlcnByZXRpbmcgY2hhcnRzLCBncmFwaHMsIGFuZCBpbWFnZXMsIGFjY3VyYXRlbHkgdHJhbnNjcmliaW5nIHRleHQgdG8gZGVyaXZlIGluc2lnaHRzIGJleW9uZCBqdXN0IHRoZSB0ZXh0IGFsb25lXG4tIEFnZW50aWMgdGFza3M6IGV4Y2VwdGlvbmFsIHRvb2wgdXNlLCBtYWtpbmcgaXQgZ3JlYXQgYXQgYWdlbnRpYyB0YXNrcyAoaS5lLiBjb21wbGV4LCBtdWx0aS1zdGVwIHByb2JsZW0gc29sdmluZyB0YXNrcyB0aGF0IHJlcXVpcmUgZW5nYWdpbmcgd2l0aCBvdGhlciBzeXN0ZW1zKVxuXG5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uICgyMDI0LTEwLTIzKSwgY2hlY2sgb3V0IFtDbGF1ZGUgMy41IFNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldCkuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLXBsdXMiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIrIiwiY3JlYXRlZCI6MTcxMjE4ODgwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFIrIGlzIGEgbmV3LCAxMDRCLXBhcmFtZXRlciBMTE0gZnJvbSBDb2hlcmUuIEl0J3MgdXNlZnVsIGZvciByb2xlcGxheSwgZ2VuZXJhbCBjb25zdW1lciB1c2VjYXNlcywgYW5kIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKS5cblxuSXQgb2ZmZXJzIG11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciB0ZW4ga2V5IGxhbmd1YWdlcyB0byBmYWNpbGl0YXRlIGdsb2JhbCBidXNpbmVzcyBvcGVyYXRpb25zLiBTZWUgYmVuY2htYXJrcyBhbmQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci1wbHVzLW1pY3Jvc29mdC1henVyZS8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLXBsdXMtMDQtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUisgKDA0LTIwMjQpIiwiY3JlYXRlZCI6MTcxMjAxNjAwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFIrIGlzIGEgbmV3LCAxMDRCLXBhcmFtZXRlciBMTE0gZnJvbSBDb2hlcmUuIEl0J3MgdXNlZnVsIGZvciByb2xlcGxheSwgZ2VuZXJhbCBjb25zdW1lciB1c2VjYXNlcywgYW5kIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKS5cblxuSXQgb2ZmZXJzIG11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciB0ZW4ga2V5IGxhbmd1YWdlcyB0byBmYWNpbGl0YXRlIGdsb2JhbCBidXNpbmVzcyBvcGVyYXRpb25zLiBTZWUgYmVuY2htYXJrcyBhbmQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci1wbHVzLW1pY3Jvc29mdC1henVyZS8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCIsImNyZWF0ZWQiOjE3NDA0MjIxMTAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNyBTb25uZXQgaXMgYW4gYWR2YW5jZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBpbXByb3ZlZCByZWFzb25pbmcsIGNvZGluZywgYW5kIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGludHJvZHVjZXMgYSBoeWJyaWQgcmVhc29uaW5nIGFwcHJvYWNoLCBhbGxvd2luZyB1c2VycyB0byBjaG9vc2UgYmV0d2VlbiByYXBpZCByZXNwb25zZXMgYW5kIGV4dGVuZGVkLCBzdGVwLWJ5LXN0ZXAgcHJvY2Vzc2luZyBmb3IgY29tcGxleCB0YXNrcy4gVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBjb2RpbmcsIHBhcnRpY3VsYXJseSBpbiBmcm9udC1lbmQgZGV2ZWxvcG1lbnQgYW5kIGZ1bGwtc3RhY2sgdXBkYXRlcywgYW5kIGV4Y2VscyBpbiBhZ2VudGljIHdvcmtmbG93cywgd2hlcmUgaXQgY2FuIGF1dG9ub21vdXNseSBuYXZpZ2F0ZSBtdWx0aS1zdGVwIHByb2Nlc3Nlcy4gXG5cbkNsYXVkZSAzLjcgU29ubmV0IG1haW50YWlucyBwZXJmb3JtYW5jZSBwYXJpdHkgd2l0aCBpdHMgcHJlZGVjZXNzb3IgaW4gc3RhbmRhcmQgbW9kZSB3aGlsZSBvZmZlcmluZyBhbiBleHRlbmRlZCByZWFzb25pbmcgbW9kZSBmb3IgZW5oYW5jZWQgYWNjdXJhY3kgaW4gbWF0aCwgY29kaW5nLCBhbmQgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzLlxuXG5SZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLTctc29ubmV0KSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQ6dGhpbmtpbmciLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCAodGhpbmtpbmcpIiwiY3JlYXRlZCI6MTc0MDQyMjExMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy43IFNvbm5ldCBpcyBhbiBhZHZhbmNlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCB3aXRoIGltcHJvdmVkIHJlYXNvbmluZywgY29kaW5nLCBhbmQgcHJvYmxlbS1zb2x2aW5nIGNhcGFiaWxpdGllcy4gSXQgaW50cm9kdWNlcyBhIGh5YnJpZCByZWFzb25pbmcgYXBwcm9hY2gsIGFsbG93aW5nIHVzZXJzIHRvIGNob29zZSBiZXR3ZWVuIHJhcGlkIHJlc3BvbnNlcyBhbmQgZXh0ZW5kZWQsIHN0ZXAtYnktc3RlcCBwcm9jZXNzaW5nIGZvciBjb21wbGV4IHRhc2tzLiBUaGUgbW9kZWwgZGVtb25zdHJhdGVzIG5vdGFibGUgaW1wcm92ZW1lbnRzIGluIGNvZGluZywgcGFydGljdWxhcmx5IGluIGZyb250LWVuZCBkZXZlbG9wbWVudCBhbmQgZnVsbC1zdGFjayB1cGRhdGVzLCBhbmQgZXhjZWxzIGluIGFnZW50aWMgd29ya2Zsb3dzLCB3aGVyZSBpdCBjYW4gYXV0b25vbW91c2x5IG5hdmlnYXRlIG11bHRpLXN0ZXAgcHJvY2Vzc2VzLiBcblxuQ2xhdWRlIDMuNyBTb25uZXQgbWFpbnRhaW5zIHBlcmZvcm1hbmNlIHBhcml0eSB3aXRoIGl0cyBwcmVkZWNlc3NvciBpbiBzdGFuZGFyZCBtb2RlIHdoaWxlIG9mZmVyaW5nIGFuIGV4dGVuZGVkIHJlYXNvbmluZyBtb2RlIGZvciBlbmhhbmNlZCBhY2N1cmFjeSBpbiBtYXRoLCBjb2RpbmcsIGFuZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgdGFza3MuXG5cblJlYWQgbW9yZSBhdCB0aGUgW2Jsb2cgcG9zdCBoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtNy1zb25uZXQpIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG8tMjAyNC0wNS0xMyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00byAoMjAyNC0wNS0xMykiLCJjcmVhdGVkIjoxNzE1NTU4NDAwLCJkZXNjcmlwdGlvbiI6IkdQVC00byAoXCJvXCIgZm9yIFwib21uaVwiKSBpcyBPcGVuQUkncyBsYXRlc3QgQUkgbW9kZWwsIHN1cHBvcnRpbmcgYm90aCB0ZXh0IGFuZCBpbWFnZSBpbnB1dHMgd2l0aCB0ZXh0IG91dHB1dHMuIEl0IG1haW50YWlucyB0aGUgaW50ZWxsaWdlbmNlIGxldmVsIG9mIFtHUFQtNCBUdXJib10oL21vZGVscy9vcGVuYWkvZ3B0LTQtdHVyYm8pIHdoaWxlIGJlaW5nIHR3aWNlIGFzIGZhc3QgYW5kIDUwJSBtb3JlIGNvc3QtZWZmZWN0aXZlLiBHUFQtNG8gYWxzbyBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gcHJvY2Vzc2luZyBub24tRW5nbGlzaCBsYW5ndWFnZXMgYW5kIGVuaGFuY2VkIHZpc3VhbCBjYXBhYmlsaXRpZXMuXG5cbkZvciBiZW5jaG1hcmtpbmcgYWdhaW5zdCBvdGhlciBtb2RlbHMsIGl0IHdhcyBicmllZmx5IGNhbGxlZCBbXCJpbS1hbHNvLWEtZ29vZC1ncHQyLWNoYXRib3RcIl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9MaWFtRmVkdXMvc3RhdHVzLzE3OTAwNjQ5NjM5NjYzNzAyMDkpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDcyMjUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoieC1haS9ncm9rLWJldGEiLCJuYW1lIjoieEFJOiBHcm9rIEJldGEiLCJjcmVhdGVkIjoxNzI5MzgyNDAwLCJkZXNjcmlwdGlvbiI6Ikdyb2sgQmV0YSBpcyB4QUkncyBleHBlcmltZW50YWwgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBzdGF0ZS1vZi10aGUtYXJ0IHJlYXNvbmluZyBjYXBhYmlsaXRpZXMsIGJlc3QgZm9yIGNvbXBsZXggYW5kIG11bHRpLXN0ZXAgdXNlIGNhc2VzLlxuXG5JdCBpcyB0aGUgc3VjY2Vzc29yIG9mIFtHcm9rIDJdKGh0dHBzOi8veC5haS9ibG9nL2dyb2stMikgd2l0aCBlbmhhbmNlZCBjb250ZXh0IGxlbmd0aC4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR3JvayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG86ZXh0ZW5kZWQiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8gKGV4dGVuZGVkKSIsImNyZWF0ZWQiOjE3MTU1NTg0MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNzIyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LTExMDYtcHJldmlldyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IFR1cmJvIChvbGRlciB2MTEwNikiLCJjcmVhdGVkIjoxNjk5MjI4ODAwLCJkZXNjcmlwdGlvbiI6IlRoZSBsYXRlc3QgR1BULTQgVHVyYm8gbW9kZWwgd2l0aCB2aXNpb24gY2FwYWJpbGl0aWVzLiBWaXNpb24gcmVxdWVzdHMgY2FuIG5vdyB1c2UgSlNPTiBtb2RlIGFuZCBmdW5jdGlvbiBjYWxsaW5nLlxuXG5UcmFpbmluZyBkYXRhOiB1cCB0byBBcHJpbCAyMDIzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtdHVyYm8iLCJuYW1lIjoiT3BlbkFJOiBHUFQtNCBUdXJibyIsImNyZWF0ZWQiOjE3MTI2MjA4MDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBHUFQtNCBUdXJibyBtb2RlbCB3aXRoIHZpc2lvbiBjYXBhYmlsaXRpZXMuIFZpc2lvbiByZXF1ZXN0cyBjYW4gbm93IHVzZSBKU09OIG1vZGUgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuXG5cblRyYWluaW5nIGRhdGE6IHVwIHRvIERlY2VtYmVyIDIwMjMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDE0NDUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LXR1cmJvLXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBHUFQtNCBUdXJibyBQcmV2aWV3IiwiY3JlYXRlZCI6MTcwNjE0MDgwMCwiZGVzY3JpcHRpb24iOiJUaGUgcHJldmlldyBHUFQtNCBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIERlYyAyMDIzLlxuXG4qKk5vdGU6KiogaGVhdmlseSByYXRlIGxpbWl0ZWQgYnkgT3BlbkFJIHdoaWxlIGluIHByZXZpZXcuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMSIsIm5hbWUiOiJPcGVuQUk6IG8xIiwiY3JlYXRlZCI6MTczNDQ1OTk5OSwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuIFRoZSBvMSBtb2RlbCBzZXJpZXMgaXMgdHJhaW5lZCB3aXRoIGxhcmdlLXNjYWxlIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgdG8gcmVhc29uIHVzaW5nIGNoYWluIG9mIHRob3VnaHQuIFxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyMTY3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMtb3B1czpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgT3B1cyAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcwOTU5NjgwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMyBPcHVzIGlzIEFudGhyb3BpYydzIG1vc3QgcG93ZXJmdWwgbW9kZWwgZm9yIGhpZ2hseSBjb21wbGV4IHRhc2tzLiBJdCBib2FzdHMgdG9wLWxldmVsIHBlcmZvcm1hbmNlLCBpbnRlbGxpZ2VuY2UsIGZsdWVuY3ksIGFuZCB1bmRlcnN0YW5kaW5nLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtZmFtaWx5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDI0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxNSIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMTg3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLW9wdXMiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMyBPcHVzIiwiY3JlYXRlZCI6MTcwOTU5NjgwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMyBPcHVzIGlzIEFudGhyb3BpYydzIG1vc3QgcG93ZXJmdWwgbW9kZWwgZm9yIGhpZ2hseSBjb21wbGV4IHRhc2tzLiBJdCBib2FzdHMgdG9wLWxldmVsIHBlcmZvcm1hbmNlLCBpbnRlbGxpZ2VuY2UsIGZsdWVuY3ksIGFuZCB1bmRlcnN0YW5kaW5nLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtZmFtaWx5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDI0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxNSIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMTg3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMDMxNCIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTAzMTQgaXMgdGhlIGZpcnN0IHZlcnNpb24gb2YgR1BULTQgcmVsZWFzZWQsIHdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiA4LDE5MiB0b2tlbnMsIGFuZCB3YXMgc3VwcG9ydGVkIHVudGlsIEp1bmUgMTQuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNCIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IiwiY3JlYXRlZCI6MTY4NTIzMjAwMCwiZGVzY3JpcHRpb24iOiJPcGVuQUkncyBmbGFnc2hpcCBtb2RlbCwgR1BULTQgaXMgYSBsYXJnZS1zY2FsZSBtdWx0aW1vZGFsIGxhbmd1YWdlIG1vZGVsIGNhcGFibGUgb2Ygc29sdmluZyBkaWZmaWN1bHQgcHJvYmxlbXMgd2l0aCBncmVhdGVyIGFjY3VyYWN5IHRoYW4gcHJldmlvdXMgbW9kZWxzIGR1ZSB0byBpdHMgYnJvYWRlciBnZW5lcmFsIGtub3dsZWRnZSBhbmQgYWR2YW5jZWQgcmVhc29uaW5nIGNhcGFiaWxpdGllcy4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjgxOTEsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTEsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LTMyay0wMzE0IiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjkzMTgwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTMyayBpcyBhbiBleHRlbmRlZCB2ZXJzaW9uIG9mIEdQVC00LCB3aXRoIHRoZSBzYW1lIGNhcGFiaWxpdGllcyBidXQgcXVhZHJ1cGxlZCBjb250ZXh0IGxlbmd0aCwgYWxsb3dpbmcgZm9yIHByb2Nlc3NpbmcgdXAgdG8gNDAgcGFnZXMgb2YgdGV4dCBpbiBhIHNpbmdsZSBwYXNzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBiZW5lZmljaWFsIGZvciBoYW5kbGluZyBsb25nZXIgY29udGVudCBsaWtlIGludGVyYWN0aW5nIHdpdGggUERGcyB3aXRob3V0IGFuIGV4dGVybmFsIHZlY3RvciBkYXRhYmFzZS4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY3LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2NywibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMzJrIiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIiwiY3JlYXRlZCI6MTY5MzE4MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtNC0zMmsgaXMgYW4gZXh0ZW5kZWQgdmVyc2lvbiBvZiBHUFQtNCwgd2l0aCB0aGUgc2FtZSBjYXBhYmlsaXRpZXMgYnV0IHF1YWRydXBsZWQgY29udGV4dCBsZW5ndGgsIGFsbG93aW5nIGZvciBwcm9jZXNzaW5nIHVwIHRvIDQwIHBhZ2VzIG9mIHRleHQgaW4gYSBzaW5nbGUgcGFzcy4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgYmVuZWZpY2lhbCBmb3IgaGFuZGxpbmcgbG9uZ2VyIGNvbnRlbnQgbGlrZSBpbnRlcmFjdGluZyB3aXRoIFBERnMgd2l0aG91dCBhbiBleHRlcm5hbCB2ZWN0b3IgZGF0YWJhc2UuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2NywiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDYiLCJjb21wbGV0aW9uIjoiMC4wMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjcsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LjUtcHJldmlldyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00LjUgKFByZXZpZXcpIiwiY3JlYXRlZCI6MTc0MDY4NzgxMCwiZGVzY3JpcHRpb24iOiJHUFQtNC41IChQcmV2aWV3KSBpcyBhIHJlc2VhcmNoIHByZXZpZXcgb2YgT3BlbkFJ4oCZcyBsYXRlc3QgbGFuZ3VhZ2UgbW9kZWwsIGRlc2lnbmVkIHRvIGFkdmFuY2UgY2FwYWJpbGl0aWVzIGluIHJlYXNvbmluZywgY3JlYXRpdml0eSwgYW5kIG11bHRpLXR1cm4gY29udmVyc2F0aW9uLiBJdCBidWlsZHMgb24gcHJldmlvdXMgaXRlcmF0aW9ucyB3aXRoIGltcHJvdmVtZW50cyBpbiB3b3JsZCBrbm93bGVkZ2UsIGNvbnRleHR1YWwgY29oZXJlbmNlLCBhbmQgdGhlIGFiaWxpdHkgdG8gZm9sbG93IHVzZXIgaW50ZW50IG1vcmUgZWZmZWN0aXZlbHkuXG5cblRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgZW5oYW5jZWQgcGVyZm9ybWFuY2UgaW4gdGFza3MgdGhhdCByZXF1aXJlIG9wZW4tZW5kZWQgdGhpbmtpbmcsIHByb2JsZW0tc29sdmluZywgYW5kIGNvbW11bmljYXRpb24uIEVhcmx5IHRlc3Rpbmcgc3VnZ2VzdHMgaXQgaXMgYmV0dGVyIGF0IGdlbmVyYXRpbmcgbnVhbmNlZCByZXNwb25zZXMsIG1haW50YWluaW5nIGxvbmctY29udGV4dCBjb2hlcmVuY2UsIGFuZCByZWR1Y2luZyBoYWxsdWNpbmF0aW9ucyBjb21wYXJlZCB0byBlYXJsaWVyIHZlcnNpb25zLlxuXG5UaGlzIHJlc2VhcmNoIHByZXZpZXcgaXMgaW50ZW5kZWQgdG8gaGVscCBldmFsdWF0ZSBHUFQtNC414oCZcyBzdHJlbmd0aHMgYW5kIGxpbWl0YXRpb25zIGluIHJlYWwtd29ybGQgdXNlIGNhc2VzIGFzIE9wZW5BSSBjb250aW51ZXMgdG8gcmVmaW5lIGFuZCBkZXZlbG9wIGZ1dHVyZSBtb2RlbHMuIFJlYWQgbW9yZSBhdCB0aGUgW2Jsb2cgcG9zdCBoZXJlLl0oaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2ludHJvZHVjaW5nLWdwdC00LTUvKSIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDc1IiwiY29tcGxldGlvbiI6IjAuMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4xMDgzNzUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQ6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjcgU29ubmV0IChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzQwNDIyMTEwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzLjcgU29ubmV0IGlzIGFuIGFkdmFuY2VkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIHdpdGggaW1wcm92ZWQgcmVhc29uaW5nLCBjb2RpbmcsIGFuZCBwcm9ibGVtLXNvbHZpbmcgY2FwYWJpbGl0aWVzLiBJdCBpbnRyb2R1Y2VzIGEgaHlicmlkIHJlYXNvbmluZyBhcHByb2FjaCwgYWxsb3dpbmcgdXNlcnMgdG8gY2hvb3NlIGJldHdlZW4gcmFwaWQgcmVzcG9uc2VzIGFuZCBleHRlbmRlZCwgc3RlcC1ieS1zdGVwIHByb2Nlc3NpbmcgZm9yIGNvbXBsZXggdGFza3MuIFRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgbm90YWJsZSBpbXByb3ZlbWVudHMgaW4gY29kaW5nLCBwYXJ0aWN1bGFybHkgaW4gZnJvbnQtZW5kIGRldmVsb3BtZW50IGFuZCBmdWxsLXN0YWNrIHVwZGF0ZXMsIGFuZCBleGNlbHMgaW4gYWdlbnRpYyB3b3JrZmxvd3MsIHdoZXJlIGl0IGNhbiBhdXRvbm9tb3VzbHkgbmF2aWdhdGUgbXVsdGktc3RlcCBwcm9jZXNzZXMuIFxuXG5DbGF1ZGUgMy43IFNvbm5ldCBtYWludGFpbnMgcGVyZm9ybWFuY2UgcGFyaXR5IHdpdGggaXRzIHByZWRlY2Vzc29yIGluIHN0YW5kYXJkIG1vZGUgd2hpbGUgb2ZmZXJpbmcgYW4gZXh0ZW5kZWQgcmVhc29uaW5nIG1vZGUgZm9yIGVuaGFuY2VkIGFjY3VyYWN5IGluIG1hdGgsIGNvZGluZywgYW5kIGluc3RydWN0aW9uLWZvbGxvd2luZyB0YXNrcy5cblxuUmVhZCBtb3JlIGF0IHRoZSBbYmxvZyBwb3N0IGhlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy03LXNvbm5ldCkiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEyODAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH1dfQ== + recorded_at: Wed, 09 Apr 2025 10:27:56 GMT +- request: + method: get + uri: https://openrouter.ai/api/v1/models?supported_parameters=structured_output + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v2.12.2 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:56 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cdn-Cache-Control: + - max-age=300 + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkYXRhIjpbeyJpZCI6Im5vdXNyZXNlYXJjaC9kZWVwaGVybWVzLTMtbGxhbWEtMy04Yi1wcmV2aWV3OmZyZWUiLCJuYW1lIjoiTm91czogRGVlcEhlcm1lcyAzIExsYW1hIDMgOEIgUHJldmlldyAoZnJlZSkiLCJjcmVhdGVkIjoxNzQwNzE5MzcyLCJkZXNjcmlwdGlvbiI6IkRlZXBIZXJtZXMgMyBQcmV2aWV3IGlzIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBvdXIgZmxhZ3NoaXAgSGVybWVzIHNlcmllcyBvZiBMTE1zIGJ5IE5vdXMgUmVzZWFyY2gsIGFuZCBvbmUgb2YgdGhlIGZpcnN0IG1vZGVscyBpbiB0aGUgd29ybGQgdG8gdW5pZnkgUmVhc29uaW5nIChsb25nIGNoYWlucyBvZiB0aG91Z2h0IHRoYXQgaW1wcm92ZSBhbnN3ZXIgYWNjdXJhY3kpIGFuZCBub3JtYWwgTExNIHJlc3BvbnNlIG1vZGVzIGludG8gb25lIG1vZGVsLiBXZSBoYXZlIGFsc28gaW1wcm92ZWQgTExNIGFubm90YXRpb24sIGp1ZGdlbWVudCwgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuXG5cbkRlZXBIZXJtZXMgMyBQcmV2aWV3IGlzIG9uZSBvZiB0aGUgZmlyc3QgTExNIG1vZGVscyB0byB1bmlmeSBib3RoIFwiaW50dWl0aXZlXCIsIHRyYWRpdGlvbmFsIG1vZGUgcmVzcG9uc2VzIGFuZCBsb25nIGNoYWluIG9mIHRob3VnaHQgcmVhc29uaW5nIHJlc3BvbnNlcyBpbnRvIGEgc2luZ2xlIG1vZGVsLCB0b2dnbGVkIGJ5IGEgc3lzdGVtIHByb21wdC4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS1jb2Rlci0zMmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IENvZGVyIDMyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMxMzY4NDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtQ29kZXIgaXMgdGhlIGxhdGVzdCBzZXJpZXMgb2YgQ29kZS1TcGVjaWZpYyBRd2VuIGxhcmdlIGxhbmd1YWdlIG1vZGVscyAoZm9ybWVybHkga25vd24gYXMgQ29kZVF3ZW4pLiBRd2VuMi41LUNvZGVyIGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIENvZGVRd2VuMS41OlxuXG4tIFNpZ25pZmljYW50bHkgaW1wcm92ZW1lbnRzIGluICoqY29kZSBnZW5lcmF0aW9uKiosICoqY29kZSByZWFzb25pbmcqKiBhbmQgKipjb2RlIGZpeGluZyoqLiBcbi0gQSBtb3JlIGNvbXByZWhlbnNpdmUgZm91bmRhdGlvbiBmb3IgcmVhbC13b3JsZCBhcHBsaWNhdGlvbnMgc3VjaCBhcyAqKkNvZGUgQWdlbnRzKiouIE5vdCBvbmx5IGVuaGFuY2luZyBjb2RpbmcgY2FwYWJpbGl0aWVzIGJ1dCBhbHNvIG1haW50YWluaW5nIGl0cyBzdHJlbmd0aHMgaW4gbWF0aGVtYXRpY3MgYW5kIGdlbmVyYWwgY29tcGV0ZW5jaWVzLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgaXRzIGV2YWx1YXRpb24gcmVzdWx0cywgY2hlY2sgb3V0IFtRd2VuIDIuNSBDb2RlcidzIGJsb2ddKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLjUtY29kZXItZmFtaWx5LykuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd3EtMzJiLXByZXZpZXc6ZnJlZSIsIm5hbWUiOiJRd2VuOiBRd1EgMzJCIFByZXZpZXcgKGZyZWUpIiwiY3JlYXRlZCI6MTczMjc1NDU0MSwiZGVzY3JpcHRpb24iOiJRd1EtMzJCLVByZXZpZXcgaXMgYW4gZXhwZXJpbWVudGFsIHJlc2VhcmNoIG1vZGVsIGZvY3VzZWQgb24gQUkgcmVhc29uaW5nIGNhcGFiaWxpdGllcyBkZXZlbG9wZWQgYnkgdGhlIFF3ZW4gVGVhbS4gQXMgYSBwcmV2aWV3IHJlbGVhc2UsIGl0IGRlbW9uc3RyYXRlcyBwcm9taXNpbmcgYW5hbHl0aWNhbCBhYmlsaXRpZXMgd2hpbGUgaGF2aW5nIHNldmVyYWwgaW1wb3J0YW50IGxpbWl0YXRpb25zOlxuXG4xLiAqKkxhbmd1YWdlIE1peGluZyBhbmQgQ29kZS1Td2l0Y2hpbmcqKjogVGhlIG1vZGVsIG1heSBtaXggbGFuZ3VhZ2VzIG9yIHN3aXRjaCBiZXR3ZWVuIHRoZW0gdW5leHBlY3RlZGx5LCBhZmZlY3RpbmcgcmVzcG9uc2UgY2xhcml0eS5cbjIuICoqUmVjdXJzaXZlIFJlYXNvbmluZyBMb29wcyoqOiBUaGUgbW9kZWwgbWF5IGVudGVyIGNpcmN1bGFyIHJlYXNvbmluZyBwYXR0ZXJucywgbGVhZGluZyB0byBsZW5ndGh5IHJlc3BvbnNlcyB3aXRob3V0IGEgY29uY2x1c2l2ZSBhbnN3ZXIuXG4zLiAqKlNhZmV0eSBhbmQgRXRoaWNhbCBDb25zaWRlcmF0aW9ucyoqOiBUaGUgbW9kZWwgcmVxdWlyZXMgZW5oYW5jZWQgc2FmZXR5IG1lYXN1cmVzIHRvIGVuc3VyZSByZWxpYWJsZSBhbmQgc2VjdXJlIHBlcmZvcm1hbmNlLCBhbmQgdXNlcnMgc2hvdWxkIGV4ZXJjaXNlIGNhdXRpb24gd2hlbiBkZXBsb3lpbmcgaXQuXG40LiAqKlBlcmZvcm1hbmNlIGFuZCBCZW5jaG1hcmsgTGltaXRhdGlvbnMqKjogVGhlIG1vZGVsIGV4Y2VscyBpbiBtYXRoIGFuZCBjb2RpbmcgYnV0IGhhcyByb29tIGZvciBpbXByb3ZlbWVudCBpbiBvdGhlciBhcmVhcywgc3VjaCBhcyBjb21tb24gc2Vuc2UgcmVhc29uaW5nIGFuZCBudWFuY2VkIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcuXG5cbiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtdmwtM2ItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDNCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDMwMTQ1NzMsImRlc2NyaXB0aW9uIjoiUXdlbjIuNSBWTCAzQiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBBZ2VudCB0aGF0IGNhbiBvcGVyYXRlIHlvdXIgbW9iaWxlcywgcm9ib3RzLCBldGMuOiB3aXRoIHRoZSBhYmlsaXRpZXMgb2YgY29tcGxleCByZWFzb25pbmcgYW5kIGRlY2lzaW9uIG1ha2luZywgUXdlbjIuNS1WTCBjYW4gYmUgaW50ZWdyYXRlZCB3aXRoIGRldmljZXMgbGlrZSBtb2JpbGUgcGhvbmVzLCByb2JvdHMsIGV0Yy4sIGZvciBhdXRvbWF0aWMgb3BlcmF0aW9uIGJhc2VkIG9uIHZpc3VhbCBlbnZpcm9ubWVudCBhbmQgdGV4dCBpbnN0cnVjdGlvbnMuXG5cbi0gTXVsdGlsaW5ndWFsIFN1cHBvcnQ6IHRvIHNlcnZlIGdsb2JhbCB1c2VycywgYmVzaWRlcyBFbmdsaXNoIGFuZCBDaGluZXNlLCBRd2VuMi41LVZMIG5vdyBzdXBwb3J0cyB0aGUgdW5kZXJzdGFuZGluZyBvZiB0ZXh0cyBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGluc2lkZSBpbWFnZXMsIGluY2x1ZGluZyBtb3N0IEV1cm9wZWFuIGxhbmd1YWdlcywgSmFwYW5lc2UsIEtvcmVhbiwgQXJhYmljLCBWaWV0bmFtZXNlLCBldGMuXG5cbkZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGlzIFtibG9nIHBvc3RdKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLXZsLykgYW5kIFtHaXRIdWIgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL1F3ZW5MTS9Rd2VuMi1WTCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbW1hLTMtMTJiLWl0OmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDEyQiAoZnJlZSkiLCJjcmVhdGVkIjoxNzQxOTAyNjI1LCJkZXNjcmlwdGlvbiI6IkdlbW1hIDMgaW50cm9kdWNlcyBtdWx0aW1vZGFsaXR5LCBzdXBwb3J0aW5nIHZpc2lvbi1sYW5ndWFnZSBpbnB1dCBhbmQgdGV4dCBvdXRwdXRzLiBJdCBoYW5kbGVzIGNvbnRleHQgd2luZG93cyB1cCB0byAxMjhrIHRva2VucywgdW5kZXJzdGFuZHMgb3ZlciAxNDAgbGFuZ3VhZ2VzLCBhbmQgb2ZmZXJzIGltcHJvdmVkIG1hdGgsIHJlYXNvbmluZywgYW5kIGNoYXQgY2FwYWJpbGl0aWVzLCBpbmNsdWRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGFuZCBmdW5jdGlvbiBjYWxsaW5nLiBHZW1tYSAzIDEyQiBpcyB0aGUgc2Vjb25kIGxhcmdlc3QgaW4gdGhlIGZhbWlseSBvZiBHZW1tYSAzIG1vZGVscyBhZnRlciBbR2VtbWEgMyAyN0JdKGdvb2dsZS9nZW1tYS0zLTI3Yi1pdCkiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IDcyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzI2NzA0MDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgNzJCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXIxLWRpc3RpbGwtcXdlbi0xNGI6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogUjEgRGlzdGlsbCBRd2VuIDE0QiAoZnJlZSkiLCJjcmVhdGVkIjoxNzM4MTkzOTQwLCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFIxIERpc3RpbGwgUXdlbiAxNEIgaXMgYSBkaXN0aWxsZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgYmFzZWQgb24gW1F3ZW4gMi41IDE0Ql0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9kZWVwc2Vlay1haS9EZWVwU2Vlay1SMS1EaXN0aWxsLVF3ZW4tMTRCKSwgdXNpbmcgb3V0cHV0cyBmcm9tIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKS4gSXQgb3V0cGVyZm9ybXMgT3BlbkFJJ3MgbzEtbWluaSBhY3Jvc3MgdmFyaW91cyBiZW5jaG1hcmtzLCBhY2hpZXZpbmcgbmV3IHN0YXRlLW9mLXRoZS1hcnQgcmVzdWx0cyBmb3IgZGVuc2UgbW9kZWxzLlxuXG5PdGhlciBiZW5jaG1hcmsgcmVzdWx0cyBpbmNsdWRlOlxuXG4tIEFJTUUgMjAyNCBwYXNzQDE6IDY5Ljdcbi0gTUFUSC01MDAgcGFzc0AxOiA5My45XG4tIENvZGVGb3JjZXMgUmF0aW5nOiAxNDgxXG5cblRoZSBtb2RlbCBsZXZlcmFnZXMgZmluZS10dW5pbmcgZnJvbSBEZWVwU2VlayBSMSdzIG91dHB1dHMsIGVuYWJsaW5nIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGNvbXBhcmFibGUgdG8gbGFyZ2VyIGZyb250aWVyIG1vZGVscy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjQwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNvcGhvc3ltcGF0aGVpYS9yb2d1ZS1yb3NlLTEwM2ItdjAuMjpmcmVlIiwibmFtZSI6IlJvZ3VlIFJvc2UgMTAzQiB2MC4yIChmcmVlKSIsImNyZWF0ZWQiOjE3MzcxOTUxODksImRlc2NyaXB0aW9uIjoiUm9ndWUgUm9zZSBkZW1vbnN0cmF0ZXMgc3Ryb25nIGNhcGFiaWxpdGllcyBpbiByb2xlcGxheWluZyBhbmQgc3Rvcnl0ZWxsaW5nIGFwcGxpY2F0aW9ucywgcG90ZW50aWFsbHkgc3VycGFzc2luZyBvdGhlciBtb2RlbHMgaW4gdGhlIDEwMy0xMjBCIHBhcmFtZXRlciByYW5nZS4gV2hpbGUgaXQgb2NjYXNpb25hbGx5IGV4aGliaXRzIGluY29uc2lzdGVuY2llcyB3aXRoIHNjZW5lIGxvZ2ljLCB0aGUgb3ZlcmFsbCBpbnRlcmFjdGlvbiBxdWFsaXR5IHJlcHJlc2VudHMgYW4gYWR2YW5jZW1lbnQgaW4gbmF0dXJhbCBsYW5ndWFnZSBwcm9jZXNzaW5nIGZvciBjcmVhdGl2ZSBhcHBsaWNhdGlvbnMuXG5cbkl0IGlzIGEgMTIwLWxheWVyIGZyYW5rZW5tZXJnZSBtb2RlbCBjb21iaW5pbmcgdHdvIGN1c3RvbSA3MEIgYXJjaGl0ZWN0dXJlcyBmcm9tIE5vdmVtYmVyIDIwMjMsIGRlcml2ZWQgZnJvbSB0aGUgW3h3aW4tc3RlbGxhcmJyaWdodC1lcnAtNzBiLXYyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL3NvcGhvc3ltcGF0aGVpYS94d2luLXN0ZWxsYXJicmlnaHQtZXJwLTcwYi12MikgYmFzZS5cbiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMTFiLXZpc2lvbi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMiAxMUIgVmlzaW9uIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3MjcyMjI0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4yIDExQiBWaXNpb24gaXMgYSBtdWx0aW1vZGFsIG1vZGVsIHdpdGggMTEgYmlsbGlvbiBwYXJhbWV0ZXJzLCBkZXNpZ25lZCB0byBoYW5kbGUgdGFza3MgY29tYmluaW5nIHZpc3VhbCBhbmQgdGV4dHVhbCBkYXRhLiBJdCBleGNlbHMgaW4gdGFza3Mgc3VjaCBhcyBpbWFnZSBjYXB0aW9uaW5nIGFuZCB2aXN1YWwgcXVlc3Rpb24gYW5zd2VyaW5nLCBicmlkZ2luZyB0aGUgZ2FwIGJldHdlZW4gbGFuZ3VhZ2UgZ2VuZXJhdGlvbiBhbmQgdmlzdWFsIHJlYXNvbmluZy4gUHJlLXRyYWluZWQgb24gYSBtYXNzaXZlIGRhdGFzZXQgb2YgaW1hZ2UtdGV4dCBwYWlycywgaXQgcGVyZm9ybXMgd2VsbCBpbiBjb21wbGV4LCBoaWdoLWFjY3VyYWN5IGltYWdlIGFuYWx5c2lzLlxuXG5JdHMgYWJpbGl0eSB0byBpbnRlZ3JhdGUgdmlzdWFsIHVuZGVyc3RhbmRpbmcgd2l0aCBsYW5ndWFnZSBwcm9jZXNzaW5nIG1ha2VzIGl0IGFuIGlkZWFsIHNvbHV0aW9uIGZvciBpbmR1c3RyaWVzIHJlcXVpcmluZyBjb21wcmVoZW5zaXZlIHZpc3VhbC1saW5ndWlzdGljIEFJIGFwcGxpY2F0aW9ucywgc3VjaCBhcyBjb250ZW50IGNyZWF0aW9uLCBBSS1kcml2ZW4gY3VzdG9tZXIgc2VydmljZSwgYW5kIHJlc2VhcmNoLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkRfVklTSU9OLm1kKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL3d3dy5sbGFtYS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvZ25pdGl2ZWNvbXB1dGF0aW9ucy9kb2xwaGluMy4wLW1pc3RyYWwtMjRiOmZyZWUiLCJuYW1lIjoiRG9scGhpbjMuMCBNaXN0cmFsIDI0QiAoZnJlZSkiLCJjcmVhdGVkIjoxNzM5NDYyMDE5LCJkZXNjcmlwdGlvbiI6IkRvbHBoaW4gMy4wIGlzIHRoZSBuZXh0IGdlbmVyYXRpb24gb2YgdGhlIERvbHBoaW4gc2VyaWVzIG9mIGluc3RydWN0LXR1bmVkIG1vZGVscy4gIERlc2lnbmVkIHRvIGJlIHRoZSB1bHRpbWF0ZSBnZW5lcmFsIHB1cnBvc2UgbG9jYWwgbW9kZWwsIGVuYWJsaW5nIGNvZGluZywgbWF0aCwgYWdlbnRpYywgZnVuY3Rpb24gY2FsbGluZywgYW5kIGdlbmVyYWwgdXNlIGNhc2VzLlxuXG5Eb2xwaGluIGFpbXMgdG8gYmUgYSBnZW5lcmFsIHB1cnBvc2UgaW5zdHJ1Y3QgbW9kZWwsIHNpbWlsYXIgdG8gdGhlIG1vZGVscyBiZWhpbmQgQ2hhdEdQVCwgQ2xhdWRlLCBHZW1pbmkuIFxuXG5QYXJ0IG9mIHRoZSBbRG9scGhpbiAzLjAgQ29sbGVjdGlvbl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9jb2xsZWN0aW9ucy9jb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbi0zMC02NzdhYjQ3ZjczZDdmZjY2NzQzOTc5YTMpIEN1cmF0ZWQgYW5kIHRyYWluZWQgYnkgW0VyaWMgSGFydGZvcmRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vZWhhcnRmb3JkKSwgW0JlbiBHaXR0ZXJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vYmlnc3Rvcm0pLCBbQmxvdXNlSnVyeV0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9CbG91c2VKdXJ5KSBhbmQgW0NvZ25pdGl2ZSBDb21wdXRhdGlvbnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vY29nbml0aXZlY29tcHV0YXRpb25zKSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtdGhpbmtpbmctZXhwOmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIFRoaW5raW5nIEV4cGVyaW1lbnRhbCAwMS0yMSAoZnJlZSkiLCJjcmVhdGVkIjoxNzM3NTQ3ODk5LCJkZXNjcmlwdGlvbiI6IkdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgRXhwZXJpbWVudGFsICgwMS0yMSkgaXMgYSBzbmFwc2hvdCBvZiBHZW1pbmkgMi4wIEZsYXNoIFRoaW5raW5nIEV4cGVyaW1lbnRhbC5cblxuR2VtaW5pIDIuMCBGbGFzaCBUaGlua2luZyBNb2RlIGlzIGFuIGV4cGVyaW1lbnRhbCBtb2RlbCB0aGF0J3MgdHJhaW5lZCB0byBnZW5lcmF0ZSB0aGUgXCJ0aGlua2luZyBwcm9jZXNzXCIgdGhlIG1vZGVsIGdvZXMgdGhyb3VnaCBhcyBwYXJ0IG9mIGl0cyByZXNwb25zZS4gQXMgYSByZXN1bHQsIFRoaW5raW5nIE1vZGUgaXMgY2FwYWJsZSBvZiBzdHJvbmdlciByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGluIGl0cyByZXNwb25zZXMgdGhhbiB0aGUgW2Jhc2UgR2VtaW5pIDIuMCBGbGFzaCBtb2RlbF0oL2dvb2dsZS9nZW1pbmktMi4wLWZsYXNoLWV4cCkuIiwiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NTUzNiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4zLTcwYi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMyA3MEIgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTczMzUwNjEzNywiZGVzY3JpcHRpb24iOiJUaGUgTWV0YSBMbGFtYSAzLjMgbXVsdGlsaW5ndWFsIGxhcmdlIGxhbmd1YWdlIG1vZGVsIChMTE0pIGlzIGEgcHJldHJhaW5lZCBhbmQgaW5zdHJ1Y3Rpb24gdHVuZWQgZ2VuZXJhdGl2ZSBtb2RlbCBpbiA3MEIgKHRleHQgaW4vdGV4dCBvdXQpLiBUaGUgTGxhbWEgMy4zIGluc3RydWN0aW9uIHR1bmVkIHRleHQgb25seSBtb2RlbCBpcyBvcHRpbWl6ZWQgZm9yIG11bHRpbGluZ3VhbCBkaWFsb2d1ZSB1c2UgY2FzZXMgYW5kIG91dHBlcmZvcm1zIG1hbnkgb2YgdGhlIGF2YWlsYWJsZSBvcGVuIHNvdXJjZSBhbmQgY2xvc2VkIGNoYXQgbW9kZWxzIG9uIGNvbW1vbiBpbmR1c3RyeSBiZW5jaG1hcmtzLlxuXG5TdXBwb3J0ZWQgbGFuZ3VhZ2VzOiBFbmdsaXNoLCBHZXJtYW4sIEZyZW5jaCwgSXRhbGlhbiwgUG9ydHVndWVzZSwgSGluZGksIFNwYW5pc2gsIGFuZCBUaGFpLlxuXG5bTW9kZWwgQ2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzMvTU9ERUxfQ0FSRC5tZCkiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbW1hLTItOWItaXQ6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDIgOUIgKGZyZWUpIiwiY3JlYXRlZCI6MTcxOTUzMjgwMCwiZGVzY3JpcHRpb24iOiJHZW1tYSAyIDlCIGJ5IEdvb2dsZSBpcyBhbiBhZHZhbmNlZCwgb3Blbi1zb3VyY2UgbGFuZ3VhZ2UgbW9kZWwgdGhhdCBzZXRzIGEgbmV3IHN0YW5kYXJkIGZvciBlZmZpY2llbmN5IGFuZCBwZXJmb3JtYW5jZSBpbiBpdHMgc2l6ZSBjbGFzcy5cblxuRGVzaWduZWQgZm9yIGEgd2lkZSB2YXJpZXR5IG9mIHRhc2tzLCBpdCBlbXBvd2VycyBkZXZlbG9wZXJzIGFuZCByZXNlYXJjaGVycyB0byBidWlsZCBpbm5vdmF0aXZlIGFwcGxpY2F0aW9ucywgd2hpbGUgbWFpbnRhaW5pbmcgYWNjZXNzaWJpbGl0eSwgc2FmZXR5LCBhbmQgY29zdC1lZmZlY3RpdmVuZXNzLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL2Jsb2cuZ29vZ2xlL3RlY2hub2xvZ3kvZGV2ZWxvcGVycy9nb29nbGUtZ2VtbWEtMi8pIGZvciBtb3JlIGRldGFpbHMuIFVzYWdlIG9mIEdlbW1hIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbW1hIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbW1hL3Rlcm1zKS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibW9vbnNob3RhaS9tb29ubGlnaHQtMTZiLWEzYi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6Ik1vb25zaG90IEFJOiBNb29ubGlnaHQgMTZCIEEzQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzQwNzE5ODAxLCJkZXNjcmlwdGlvbiI6Ik1vb25saWdodC0xNkItQTNCLUluc3RydWN0IGlzIGEgMTZCLXBhcmFtZXRlciBNaXh0dXJlLW9mLUV4cGVydHMgKE1vRSkgbGFuZ3VhZ2UgbW9kZWwgZGV2ZWxvcGVkIGJ5IE1vb25zaG90IEFJLiBJdCBpcyBvcHRpbWl6ZWQgZm9yIGluc3RydWN0aW9uLWZvbGxvd2luZyB0YXNrcyB3aXRoIDNCIGFjdGl2YXRlZCBwYXJhbWV0ZXJzIHBlciBpbmZlcmVuY2UuIFRoZSBtb2RlbCBhZHZhbmNlcyB0aGUgUGFyZXRvIGZyb250aWVyIGluIHBlcmZvcm1hbmNlIHBlciBGTE9QIGFjcm9zcyBFbmdsaXNoLCBjb2RpbmcsIG1hdGgsIGFuZCBDaGluZXNlIGJlbmNobWFya3MuIEl0IG91dHBlcmZvcm1zIGNvbXBhcmFibGUgbW9kZWxzIGxpa2UgTGxhbWEzLTNCIGFuZCBEZWVwc2Vlay12Mi1MaXRlIHdoaWxlIG1haW50YWluaW5nIGVmZmljaWVudCBkZXBsb3ltZW50IGNhcGFiaWxpdGllcyB0aHJvdWdoIEh1Z2dpbmcgRmFjZSBpbnRlZ3JhdGlvbiBhbmQgY29tcGF0aWJpbGl0eSB3aXRoIHBvcHVsYXIgaW5mZXJlbmNlIGVuZ2luZXMgbGlrZSB2TExNMTIuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbmVtbzpmcmVlIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgTmVtbyAoZnJlZSkiLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgMTJCIHBhcmFtZXRlciBtb2RlbCB3aXRoIGEgMTI4ayB0b2tlbiBjb250ZXh0IGxlbmd0aCBidWlsdCBieSBNaXN0cmFsIGluIGNvbGxhYm9yYXRpb24gd2l0aCBOVklESUEuXG5cblRoZSBtb2RlbCBpcyBtdWx0aWxpbmd1YWwsIHN1cHBvcnRpbmcgRW5nbGlzaCwgRnJlbmNoLCBHZXJtYW4sIFNwYW5pc2gsIEl0YWxpYW4sIFBvcnR1Z3Vlc2UsIENoaW5lc2UsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgYW5kIEhpbmRpLlxuXG5JdCBzdXBwb3J0cyBmdW5jdGlvbiBjYWxsaW5nIGFuZCBpcyByZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMjgwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJyZWthYWkvcmVrYS1mbGFzaC0zOmZyZWUiLCJuYW1lIjoiUmVrYTogRmxhc2ggMyAoZnJlZSkiLCJjcmVhdGVkIjoxNzQxODEyODEzLCJkZXNjcmlwdGlvbiI6IlJla2EgRmxhc2ggMyBpcyBhIGdlbmVyYWwtcHVycG9zZSwgaW5zdHJ1Y3Rpb24tdHVuZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCAyMSBiaWxsaW9uIHBhcmFtZXRlcnMsIGRldmVsb3BlZCBieSBSZWthLiBJdCBleGNlbHMgYXQgZ2VuZXJhbCBjaGF0LCBjb2RpbmcgdGFza3MsIGluc3RydWN0aW9uLWZvbGxvd2luZywgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEZlYXR1cmluZyBhIDMySyBjb250ZXh0IGxlbmd0aCBhbmQgb3B0aW1pemVkIHRocm91Z2ggcmVpbmZvcmNlbWVudCBsZWFybmluZyAoUkxPTyksIGl0IHByb3ZpZGVzIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGNvbXBhcmFibGUgdG8gcHJvcHJpZXRhcnkgbW9kZWxzIHdpdGhpbiBhIHNtYWxsZXIgcGFyYW1ldGVyIGZvb3RwcmludC4gSWRlYWwgZm9yIGxvdy1sYXRlbmN5LCBsb2NhbCwgb3Igb24tZGV2aWNlIGRlcGxveW1lbnRzLCBSZWthIEZsYXNoIDMgaXMgY29tcGFjdCwgc3VwcG9ydHMgZWZmaWNpZW50IHF1YW50aXphdGlvbiAoZG93biB0byAxMUdCIGF0IDQtYml0IHByZWNpc2lvbiksIGFuZCBlbXBsb3lzIGV4cGxpY2l0IHJlYXNvbmluZyB0YWdzIChcIjxyZWFzb25pbmc+XCIpIHRvIGluZGljYXRlIGl0cyBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3MuXG5cblJla2EgRmxhc2ggMyBpcyBwcmltYXJpbHkgYW4gRW5nbGlzaCBtb2RlbCB3aXRoIGxpbWl0ZWQgbXVsdGlsaW5ndWFsIHVuZGVyc3RhbmRpbmcgY2FwYWJpbGl0aWVzLiBUaGUgbW9kZWwgd2VpZ2h0cyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZS4iLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvZ25pdGl2ZWNvbXB1dGF0aW9ucy9kb2xwaGluMy4wLXIxLW1pc3RyYWwtMjRiOmZyZWUiLCJuYW1lIjoiRG9scGhpbjMuMCBSMSBNaXN0cmFsIDI0QiAoZnJlZSkiLCJjcmVhdGVkIjoxNzM5NDYyNDk4LCJkZXNjcmlwdGlvbiI6IkRvbHBoaW4gMy4wIFIxIGlzIHRoZSBuZXh0IGdlbmVyYXRpb24gb2YgdGhlIERvbHBoaW4gc2VyaWVzIG9mIGluc3RydWN0LXR1bmVkIG1vZGVscy4gIERlc2lnbmVkIHRvIGJlIHRoZSB1bHRpbWF0ZSBnZW5lcmFsIHB1cnBvc2UgbG9jYWwgbW9kZWwsIGVuYWJsaW5nIGNvZGluZywgbWF0aCwgYWdlbnRpYywgZnVuY3Rpb24gY2FsbGluZywgYW5kIGdlbmVyYWwgdXNlIGNhc2VzLlxuXG5UaGUgUjEgdmVyc2lvbiBoYXMgYmVlbiB0cmFpbmVkIGZvciAzIGVwb2NocyB0byByZWFzb24gdXNpbmcgODAwayByZWFzb25pbmcgdHJhY2VzIGZyb20gdGhlIERvbHBoaW4tUjEgZGF0YXNldC5cblxuRG9scGhpbiBhaW1zIHRvIGJlIGEgZ2VuZXJhbCBwdXJwb3NlIHJlYXNvbmluZyBpbnN0cnVjdCBtb2RlbCwgc2ltaWxhciB0byB0aGUgbW9kZWxzIGJlaGluZCBDaGF0R1BULCBDbGF1ZGUsIEdlbWluaS5cblxuUGFydCBvZiB0aGUgW0RvbHBoaW4gMy4wIENvbGxlY3Rpb25dKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vY29sbGVjdGlvbnMvY29nbml0aXZlY29tcHV0YXRpb25zL2RvbHBoaW4tMzAtNjc3YWI0N2Y3M2Q3ZmY2Njc0Mzk3OWEzKSBDdXJhdGVkIGFuZCB0cmFpbmVkIGJ5IFtFcmljIEhhcnRmb3JkXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2VoYXJ0Zm9yZCksIFtCZW4gR2l0dGVyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2JpZ3N0b3JtKSwgW0Jsb3VzZUp1cnldKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQmxvdXNlSnVyeSkgYW5kIFtDb2duaXRpdmUgQ29tcHV0YXRpb25zXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NvZ25pdGl2ZWNvbXB1dGF0aW9ucykiLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTRiLWl0OmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDRCIChmcmVlKSIsImNyZWF0ZWQiOjE3NDE5MDU1MTAsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4xLThiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4xIDhCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgOEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiBpcyBmYXN0IGFuZCBlZmZpY2llbnQuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLWZsYXNoLTEuNS04Yi1leHAiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMS41IEZsYXNoIDhCIEV4cGVyaW1lbnRhbCIsImNyZWF0ZWQiOjE3MjQ4MDMyMDAsImRlc2NyaXB0aW9uIjoiR2VtaW5pIEZsYXNoIDEuNSA4QiBFeHBlcmltZW50YWwgaXMgYW4gZXhwZXJpbWVudGFsLCA4QiBwYXJhbWV0ZXIgdmVyc2lvbiBvZiB0aGUgW0dlbWluaSBGbGFzaCAxLjVdKC9tb2RlbHMvZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUpIG1vZGVsLlxuXG5Vc2FnZSBvZiBHZW1pbmkgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtaW5pIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L3Rlcm1zKS5cblxuI211bHRpbW9kYWxcblxuTm90ZTogVGhpcyBtb2RlbCBpcyBjdXJyZW50bHkgZXhwZXJpbWVudGFsIGFuZCBub3Qgc3VpdGFibGUgZm9yIHByb2R1Y3Rpb24gdXNlLWNhc2VzLCBhbmQgbWF5IGJlIGhlYXZpbHkgcmF0ZS1saW1pdGVkLiIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzE2NzY4MDAwLCJkZXNjcmlwdGlvbiI6IkEgaGlnaC1wZXJmb3JtaW5nLCBpbmR1c3RyeS1zdGFuZGFyZCA3LjNCIHBhcmFtZXRlciBtb2RlbCwgd2l0aCBvcHRpbWl6YXRpb25zIGZvciBzcGVlZCBhbmQgY29udGV4dCBsZW5ndGguXG5cbipNaXN0cmFsIDdCIEluc3RydWN0IGhhcyBtdWx0aXBsZSB2ZXJzaW9uIHZhcmlhbnRzLCBhbmQgdGhpcyBpcyBpbnRlbmRlZCB0byBiZSB0aGUgbGF0ZXN0IHZlcnNpb24uKiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjUtcHJvLWV4cC0wMy0yNTpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuNSBQcm8gRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3NDI5MjIwOTksImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuNSBQcm8gaXMgR29vZ2xl4oCZcyBzdGF0ZS1vZi10aGUtYXJ0IEFJIG1vZGVsIGRlc2lnbmVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbnRpZmljIHRhc2tzLiBJdCBlbXBsb3lzIOKAnHRoaW5raW5n4oCdIGNhcGFiaWxpdGllcywgZW5hYmxpbmcgaXQgdG8gcmVhc29uIHRocm91Z2ggcmVzcG9uc2VzIHdpdGggZW5oYW5jZWQgYWNjdXJhY3kgYW5kIG51YW5jZWQgY29udGV4dCBoYW5kbGluZy4gR2VtaW5pIDIuNSBQcm8gYWNoaWV2ZXMgdG9wLXRpZXIgcGVyZm9ybWFuY2Ugb24gbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nIGZpcnN0LXBsYWNlIHBvc2l0aW9uaW5nIG9uIHRoZSBMTUFyZW5hIGxlYWRlcmJvYXJkLCByZWZsZWN0aW5nIHN1cGVyaW9yIGh1bWFuLXByZWZlcmVuY2UgYWxpZ25tZW50IGFuZCBjb21wbGV4IHByb2JsZW0tc29sdmluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NTUzNSwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTI0Yi1pbnN0cnVjdC0yNTAxOmZyZWUiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCBTbWFsbCAzIChmcmVlKSIsImNyZWF0ZWQiOjE3MzgyNTU0MDksImRlc2NyaXB0aW9uIjoiTWlzdHJhbCBTbWFsbCAzIGlzIGEgMjRCLXBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBvcHRpbWl6ZWQgZm9yIGxvdy1sYXRlbmN5IHBlcmZvcm1hbmNlIGFjcm9zcyBjb21tb24gQUkgdGFza3MuIFJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UsIGl0IGZlYXR1cmVzIGJvdGggcHJlLXRyYWluZWQgYW5kIGluc3RydWN0aW9uLXR1bmVkIHZlcnNpb25zIGRlc2lnbmVkIGZvciBlZmZpY2llbnQgbG9jYWwgZGVwbG95bWVudC5cblxuVGhlIG1vZGVsIGFjaGlldmVzIDgxJSBhY2N1cmFjeSBvbiB0aGUgTU1MVSBiZW5jaG1hcmsgYW5kIHBlcmZvcm1zIGNvbXBldGl0aXZlbHkgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgTGxhbWEgMy4zIDcwQiBhbmQgUXdlbiAzMkIsIHdoaWxlIG9wZXJhdGluZyBhdCB0aHJlZSB0aW1lcyB0aGUgc3BlZWQgb24gZXF1aXZhbGVudCBoYXJkd2FyZS4gW1JlYWQgdGhlIGJsb2cgcG9zdCBhYm91dCB0aGUgbW9kZWwgaGVyZS5dKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21pc3RyYWwtc21hbGwtMy8pIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLWNoYXQ6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogRGVlcFNlZWsgVjMgKGZyZWUpIiwiY3JlYXRlZCI6MTczNTI0MTMyMCwiZGVzY3JpcHRpb24iOiJEZWVwU2Vlay1WMyBpcyB0aGUgbGF0ZXN0IG1vZGVsIGZyb20gdGhlIERlZXBTZWVrIHRlYW0sIGJ1aWxkaW5nIHVwb24gdGhlIGluc3RydWN0aW9uIGZvbGxvd2luZyBhbmQgY29kaW5nIGFiaWxpdGllcyBvZiB0aGUgcHJldmlvdXMgdmVyc2lvbnMuIFByZS10cmFpbmVkIG9uIG5lYXJseSAxNSB0cmlsbGlvbiB0b2tlbnMsIHRoZSByZXBvcnRlZCBldmFsdWF0aW9ucyByZXZlYWwgdGhhdCB0aGUgbW9kZWwgb3V0cGVyZm9ybXMgb3RoZXIgb3Blbi1zb3VyY2UgbW9kZWxzIGFuZCByaXZhbHMgbGVhZGluZyBjbG9zZWQtc291cmNlIG1vZGVscy5cblxuRm9yIG1vZGVsIGRldGFpbHMsIHBsZWFzZSB2aXNpdCBbdGhlIERlZXBTZWVrLVYzIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwc2Vlay1haS9EZWVwU2Vlay1WMykgZm9yIG1vcmUgaW5mb3JtYXRpb24sIG9yIHNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vYXBpLWRvY3MuZGVlcHNlZWsuY29tL25ld3MvbmV3czEyMjYpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMTpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBSMSAoZnJlZSkiLCJjcmVhdGVkIjoxNzM3MzgxMDk1LCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFIxIGlzIGhlcmU6IFBlcmZvcm1hbmNlIG9uIHBhciB3aXRoIFtPcGVuQUkgbzFdKC9vcGVuYWkvbzEpLCBidXQgb3Blbi1zb3VyY2VkIGFuZCB3aXRoIGZ1bGx5IG9wZW4gcmVhc29uaW5nIHRva2Vucy4gSXQncyA2NzFCIHBhcmFtZXRlcnMgaW4gc2l6ZSwgd2l0aCAzN0IgYWN0aXZlIGluIGFuIGluZmVyZW5jZSBwYXNzLlxuXG5GdWxseSBvcGVuLXNvdXJjZSBtb2RlbCAmIFt0ZWNobmljYWwgcmVwb3J0XShodHRwczovL2FwaS1kb2NzLmRlZXBzZWVrLmNvbS9uZXdzL25ld3MyNTAxMjApLlxuXG5NSVQgbGljZW5zZWQ6IERpc3RpbGwgJiBjb21tZXJjaWFsaXplIGZyZWVseSEiLCJjb250ZXh0X2xlbmd0aCI6MTYzODQwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiRGVlcFNlZWsiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxsZW5haS9tb2xtby03Yi1kOmZyZWUiLCJuYW1lIjoiQWxsZW5BSTogTW9sbW8gN0IgRCAoZnJlZSkiLCJjcmVhdGVkIjoxNzQzMDIzMjQ3LCJkZXNjcmlwdGlvbiI6Ik1vbG1vIGlzIGEgZmFtaWx5IG9mIG9wZW4gdmlzaW9uLWxhbmd1YWdlIG1vZGVscyBkZXZlbG9wZWQgYnkgdGhlIEFsbGVuIEluc3RpdHV0ZSBmb3IgQUkuIE1vbG1vIG1vZGVscyBhcmUgdHJhaW5lZCBvbiBQaXhNbywgYSBkYXRhc2V0IG9mIDEgbWlsbGlvbiwgaGlnaGx5LWN1cmF0ZWQgaW1hZ2UtdGV4dCBwYWlycy4gSXQgaGFzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbXVsdGltb2RhbCBtb2RlbHMgd2l0aCBhIHNpbWlsYXIgc2l6ZSB3aGlsZSBiZWluZyBmdWxseSBvcGVuLXNvdXJjZS4gWW91IGNhbiBmaW5kIGFsbCBtb2RlbHMgaW4gdGhlIE1vbG1vIGZhbWlseSBbaGVyZV0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9jb2xsZWN0aW9ucy9hbGxlbmFpL21vbG1vLTY2ZjM3OWU2ZmUzYjhlZjA5MGE4Y2ExOSkuIExlYXJuIG1vcmUgYWJvdXQgdGhlIE1vbG1vIGZhbWlseSBbaW4gdGhlIGFubm91bmNlbWVudCBibG9nIHBvc3RdKGh0dHBzOi8vbW9sbW8uYWxsZW5haS5vcmcvYmxvZykgb3IgdGhlIFtwYXBlcl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9wYXBlcnMvMjQwOS4xNzE0NikuXG5cbk1vbG1vIDdCLUQgaXMgYmFzZWQgb24gW1F3ZW4yLTdCXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjItN0IpIGFuZCB1c2VzIFtPcGVuQUkgQ0xJUF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9vcGVuYWkvY2xpcC12aXQtbGFyZ2UtcGF0Y2gxNC0zMzYpIGFzIHZpc2lvbiBiYWNrYm9uZS4gSXQgcGVyZm9ybXMgY29tZm9ydGFibHkgYmV0d2VlbiBHUFQtNFYgYW5kIEdQVC00byBvbiBib3RoIGFjYWRlbWljIGJlbmNobWFya3MgYW5kIGh1bWFuIGV2YWx1YXRpb24uXG5cblRoaXMgY2hlY2twb2ludCBpcyBhIHByZXZpZXcgb2YgdGhlIE1vbG1vIHJlbGVhc2UuIEFsbCBhcnRpZmFjdHMgdXNlZCBpbiBjcmVhdGluZyBNb2xtbyAoUGl4TW8gZGF0YXNldCwgdHJhaW5pbmcgY29kZSwgZXZhbHVhdGlvbnMsIGludGVybWVkaWF0ZSBjaGVja3BvaW50cykgd2lsbCBiZSBtYWRlIGF2YWlsYWJsZSBhdCBhIGxhdGVyIGRhdGUsIGZ1cnRoZXJpbmcgb3VyIGNvbW1pdG1lbnQgdG8gb3Blbi1zb3VyY2UgQUkgZGV2ZWxvcG1lbnQgYW5kIHJlcHJvZHVjaWJpbGl0eS4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTFiLWl0OmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDFCIChmcmVlKSIsImNyZWF0ZWQiOjE3NDE5NjM1NTYsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyAxQiBpcyB0aGUgc21hbGxlc3Qgb2YgdGhlIG5ldyBHZW1tYSAzIGZhbWlseS4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMzJrIHRva2VucywgdW5kZXJzdGFuZHMgb3ZlciAxNDAgbGFuZ3VhZ2VzLCBhbmQgb2ZmZXJzIGltcHJvdmVkIG1hdGgsIHJlYXNvbmluZywgYW5kIGNoYXQgY2FwYWJpbGl0aWVzLCBpbmNsdWRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGFuZCBmdW5jdGlvbiBjYWxsaW5nLiBOb3RlOiBHZW1tYSAzIDFCIGlzIG5vdCBtdWx0aW1vZGFsLiBGb3IgdGhlIHNtYWxsZXN0IG11bHRpbW9kYWwgR2VtbWEgMyBtb2RlbCwgcGxlYXNlIHNlZSBbR2VtbWEgMyA0Ql0oZ29vZ2xlL2dlbW1hLTMtNGItaXQpIiwiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0yN2ItaXQ6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgMjdCIChmcmVlKSIsImNyZWF0ZWQiOjE3NDE3NTYzNTksImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEdlbW1hIDMgMjdCIGlzIEdvb2dsZSdzIGxhdGVzdCBvcGVuIHNvdXJjZSBtb2RlbCwgc3VjY2Vzc29yIHRvIFtHZW1tYSAyXShnb29nbGUvZ2VtbWEtMi0yN2ItaXQpIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo5NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1sbGFtYS03MGI6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogUjEgRGlzdGlsbCBMbGFtYSA3MEIgKGZyZWUpIiwiY3JlYXRlZCI6MTczNzY2MzE2OSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIExsYW1hIDcwQiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiBbTGxhbWEtMy4zLTcwQi1JbnN0cnVjdF0oL21ldGEtbGxhbWEvbGxhbWEtMy4zLTcwYi1pbnN0cnVjdCksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIFRoZSBtb2RlbCBjb21iaW5lcyBhZHZhbmNlZCBkaXN0aWxsYXRpb24gdGVjaG5pcXVlcyB0byBhY2hpZXZlIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpcGxlIGJlbmNobWFya3MsIGluY2x1ZGluZzpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3MC4wXG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuNVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTYzM1xuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJieXRlZGFuY2UtcmVzZWFyY2gvdWktdGFycy03MmI6ZnJlZSIsIm5hbWUiOiJCeXRlZGFuY2U6IFVJLVRBUlMgNzJCICAoZnJlZSkiLCJjcmVhdGVkIjoxNzQzMDIwMDY1LCJkZXNjcmlwdGlvbiI6IlVJLVRBUlMgNzJCIGlzIGFuIG9wZW4tc291cmNlIG11bHRpbW9kYWwgQUkgbW9kZWwgZGVzaWduZWQgc3BlY2lmaWNhbGx5IGZvciBhdXRvbWF0aW5nIGJyb3dzZXIgYW5kIGRlc2t0b3AgdGFza3MgdGhyb3VnaCB2aXN1YWwgaW50ZXJhY3Rpb24gYW5kIGNvbnRyb2wuIFRoZSBtb2RlbCBpcyBidWlsdCB3aXRoIGEgc3BlY2lhbGl6ZWQgdmlzaW9uIGFyY2hpdGVjdHVyZSBlbmFibGluZyBhY2N1cmF0ZSBpbnRlcnByZXRhdGlvbiBhbmQgbWFuaXB1bGF0aW9uIG9mIG9uLXNjcmVlbiB2aXN1YWwgZGF0YS4gSXQgc3VwcG9ydHMgYXV0b21hdGlvbiB0YXNrcyB3aXRoaW4gd2ViIGJyb3dzZXJzIGFzIHdlbGwgYXMgZGVza3RvcCBhcHBsaWNhdGlvbnMsIGluY2x1ZGluZyBNaWNyb3NvZnQgT2ZmaWNlIGFuZCBWUyBDb2RlLlxuXG5Db3JlIGNhcGFiaWxpdGllcyBpbmNsdWRlIGludGVsbGlnZW50IHNjcmVlbiBkZXRlY3Rpb24sIHByZWRpY3RpdmUgYWN0aW9uIG1vZGVsaW5nLCBhbmQgZWZmaWNpZW50IGhhbmRsaW5nIG9mIHJlcGV0aXRpdmUgaW50ZXJhY3Rpb25zLiBVSS1UQVJTIGVtcGxveXMgc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyAoU0ZUKSB0YWlsb3JlZCBleHBsaWNpdGx5IGZvciBjb21wdXRlciBjb250cm9sIHNjZW5hcmlvcy4gSXQgY2FuIGJlIGRlcGxveWVkIGxvY2FsbHkgb3IgYWNjZXNzZWQgdmlhIEh1Z2dpbmcgRmFjZSBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3Nlcy4gSW50ZW5kZWQgdXNlIGNhc2VzIGVuY29tcGFzcyB3b3JrZmxvdyBhdXRvbWF0aW9uLCB0YXNrIHNjcmlwdGluZywgYW5kIGludGVyYWN0aXZlIGRlc2t0b3AgY29udHJvbCBhcHBsaWNhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tNzBiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTlZJRElBOiBMbGFtYSAzLjEgTmVtb3Ryb24gNzBCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3Mjg5NTA0MDAsImRlc2NyaXB0aW9uIjoiTlZJRElBJ3MgTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBpcyBhIGxhbmd1YWdlIG1vZGVsIGRlc2lnbmVkIGZvciBnZW5lcmF0aW5nIHByZWNpc2UgYW5kIHVzZWZ1bCByZXNwb25zZXMuIExldmVyYWdpbmcgW0xsYW1hIDMuMSA3MEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSBhcmNoaXRlY3R1cmUgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRiksIGl0IGV4Y2VscyBpbiBhdXRvbWF0aWMgYWxpZ25tZW50IGJlbmNobWFya3MuIFRoaXMgbW9kZWwgaXMgdGFpbG9yZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgaGlnaCBhY2N1cmFjeSBpbiBoZWxwZnVsbmVzcyBhbmQgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgc3VpdGFibGUgZm9yIGRpdmVyc2UgdXNlciBxdWVyaWVzIGFjcm9zcyBtdWx0aXBsZSBkb21haW5zLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktMi4wLWZsYXNoLXRoaW5raW5nLWV4cC0xMjE5OmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIFRoaW5raW5nIEV4cGVyaW1lbnRhbCAoZnJlZSkiLCJjcmVhdGVkIjoxNzM0NjUwMDI2LCJkZXNjcmlwdGlvbiI6IkdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgTW9kZSBpcyBhbiBleHBlcmltZW50YWwgbW9kZWwgdGhhdCdzIHRyYWluZWQgdG8gZ2VuZXJhdGUgdGhlIFwidGhpbmtpbmcgcHJvY2Vzc1wiIHRoZSBtb2RlbCBnb2VzIHRocm91Z2ggYXMgcGFydCBvZiBpdHMgcmVzcG9uc2UuIEFzIGEgcmVzdWx0LCBUaGlua2luZyBNb2RlIGlzIGNhcGFibGUgb2Ygc3Ryb25nZXIgcmVhc29uaW5nIGNhcGFiaWxpdGllcyBpbiBpdHMgcmVzcG9uc2VzIHRoYW4gdGhlIFtiYXNlIEdlbWluaSAyLjAgRmxhc2ggbW9kZWxdKC9nb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC1leHApLiIsImNvbnRleHRfbGVuZ3RoIjo0MDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuMi41LXZsLTcyYi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUgVkwgNzJCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3Mzg0MTAzMTEsImRlc2NyaXB0aW9uIjoiUXdlbjIuNS1WTCBpcyBwcm9maWNpZW50IGluIHJlY29nbml6aW5nIGNvbW1vbiBvYmplY3RzIHN1Y2ggYXMgZmxvd2VycywgYmlyZHMsIGZpc2gsIGFuZCBpbnNlY3RzLiBJdCBpcyBhbHNvIGhpZ2hseSBjYXBhYmxlIG9mIGFuYWx5emluZyB0ZXh0cywgY2hhcnRzLCBpY29ucywgZ3JhcGhpY3MsIGFuZCBsYXlvdXRzIHdpdGhpbiBpbWFnZXMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvbGVhcm5sbS0xLjUtcHJvLWV4cGVyaW1lbnRhbDpmcmVlIiwibmFtZSI6Ikdvb2dsZTogTGVhcm5MTSAxLjUgUHJvIEV4cGVyaW1lbnRhbCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMyMjE2NTUxLCJkZXNjcmlwdGlvbiI6IkFuIGV4cGVyaW1lbnRhbCB2ZXJzaW9uIG9mIFtHZW1pbmkgMS41IFByb10oL2dvb2dsZS9nZW1pbmktcHJvLTEuNSkgZnJvbSBHb29nbGUuIiwiY29udGV4dF9sZW5ndGgiOjQwOTYwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay12My1iYXNlOmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IERlZXBTZWVrIFYzIEJhc2UgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MzI3MjAyMywiZGVzY3JpcHRpb24iOiJOb3RlIHRoYXQgdGhpcyBpcyBhIGJhc2UgbW9kZWwgbW9zdGx5IG1lYW50IGZvciB0ZXN0aW5nLCB5b3UgbmVlZCB0byBwcm92aWRlIGRldGFpbGVkIHByb21wdHMgZm9yIHRoZSBtb2RlbCB0byByZXR1cm4gdXNlZnVsIHJlc3BvbnNlcy4gXG5cbkRlZXBTZWVrLVYzIEJhc2UgaXMgYSA2NzFCIHBhcmFtZXRlciBvcGVuIE1peHR1cmUtb2YtRXhwZXJ0cyAoTW9FKSBsYW5ndWFnZSBtb2RlbCB3aXRoIDM3QiBhY3RpdmUgcGFyYW1ldGVycyBwZXIgZm9yd2FyZCBwYXNzIGFuZCBhIGNvbnRleHQgbGVuZ3RoIG9mIDEyOEsgdG9rZW5zLiBUcmFpbmVkIG9uIDE0LjhUIHRva2VucyB1c2luZyBGUDggbWl4ZWQgcHJlY2lzaW9uLCBpdCBhY2hpZXZlcyBoaWdoIHRyYWluaW5nIGVmZmljaWVuY3kgYW5kIHN0YWJpbGl0eSwgd2l0aCBzdHJvbmcgcGVyZm9ybWFuY2UgYWNyb3NzIGxhbmd1YWdlLCByZWFzb25pbmcsIG1hdGgsIGFuZCBjb2RpbmcgdGFza3MuIFxuXG5EZWVwU2Vlay1WMyBCYXNlIGlzIHRoZSBwcmUtdHJhaW5lZCBtb2RlbCBiZWhpbmQgW0RlZXBTZWVrIFYzXSgvZGVlcHNlZWsvZGVlcHNlZWstY2hhdC12MykiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiRGVlcFNlZWsiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtc21hbGwtMy4xLTI0Yi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgU21hbGwgMy4xIDI0QiAoZnJlZSkiLCJjcmVhdGVkIjoxNzQyMjM4OTM3LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgU21hbGwgMy4xIDI0QiBJbnN0cnVjdCBpcyBhbiB1cGdyYWRlZCB2YXJpYW50IG9mIE1pc3RyYWwgU21hbGwgMyAoMjUwMSksIGZlYXR1cmluZyAyNCBiaWxsaW9uIHBhcmFtZXRlcnMgd2l0aCBhZHZhbmNlZCBtdWx0aW1vZGFsIGNhcGFiaWxpdGllcy4gSXQgcHJvdmlkZXMgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBpbiB0ZXh0LWJhc2VkIHJlYXNvbmluZyBhbmQgdmlzaW9uIHRhc2tzLCBpbmNsdWRpbmcgaW1hZ2UgYW5hbHlzaXMsIHByb2dyYW1taW5nLCBtYXRoZW1hdGljYWwgcmVhc29uaW5nLCBhbmQgbXVsdGlsaW5ndWFsIHN1cHBvcnQgYWNyb3NzIGRvemVucyBvZiBsYW5ndWFnZXMuIEVxdWlwcGVkIHdpdGggYW4gZXh0ZW5zaXZlIDEyOGsgdG9rZW4gY29udGV4dCB3aW5kb3cgYW5kIG9wdGltaXplZCBmb3IgZWZmaWNpZW50IGxvY2FsIGluZmVyZW5jZSwgaXQgc3VwcG9ydHMgdXNlIGNhc2VzIHN1Y2ggYXMgY29udmVyc2F0aW9uYWwgYWdlbnRzLCBmdW5jdGlvbiBjYWxsaW5nLCBsb25nLWRvY3VtZW50IGNvbXByZWhlbnNpb24sIGFuZCBwcml2YWN5LXNlbnNpdGl2ZSBkZXBsb3ltZW50cy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo5NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo5NjAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW4tcjEvb2x5bXBpY2NvZGVyLTMyYjpmcmVlIiwibmFtZSI6Ik9seW1waWNDb2RlciAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjA3NzIyOCwiZGVzY3JpcHRpb24iOiJPbHltcGljQ29kZXItMzJCIGlzIGEgaGlnaC1wZXJmb3JtaW5nIG9wZW4tc291cmNlIG1vZGVsIGZpbmUtdHVuZWQgdXNpbmcgdGhlIENvZGVGb3JjZXMtQ29UcyBkYXRhc2V0LCBjb250YWluaW5nIGFwcHJveGltYXRlbHkgMTAwLDAwMCBjaGFpbi1vZi10aG91Z2h0IHByb2dyYW1taW5nIHNhbXBsZXMuIEl0IGV4Y2VscyBhdCBjb21wbGV4IGNvbXBldGl0aXZlIHByb2dyYW1taW5nIGJlbmNobWFya3MsIHN1Y2ggYXMgSU9JIDIwMjQgYW5kIENvZGVmb3JjZXMtc3R5bGUgY2hhbGxlbmdlcywgZnJlcXVlbnRseSBzdXJwYXNzaW5nIHN0YXRlLW9mLXRoZS1hcnQgY2xvc2VkLXNvdXJjZSBtb2RlbHMuIE9seW1waWNDb2Rlci0zMkIgcHJvdmlkZXMgYWR2YW5jZWQgcmVhc29uaW5nLCBjb2hlcmVudCBtdWx0aS1zdGVwIHByb2JsZW0tc29sdmluZywgYW5kIHJvYnVzdCBjb2RlIGdlbmVyYXRpb24gY2FwYWJpbGl0aWVzLCBkZW1vbnN0cmF0aW5nIHNpZ25pZmljYW50IHBvdGVudGlhbCBmb3Igb2x5bXBpYWQtbGV2ZWwgY29tcGV0aXRpdmUgcHJvZ3JhbW1pbmcgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtZXhwOmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIEV4cGVyaW1lbnRhbCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMzOTM3NTIzLCJkZXNjcmlwdGlvbiI6IkdlbWluaSBGbGFzaCAyLjAgb2ZmZXJzIGEgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGltZSB0byBmaXJzdCB0b2tlbiAoVFRGVCkgY29tcGFyZWQgdG8gW0dlbWluaSBGbGFzaCAxLjVdKC9nb29nbGUvZ2VtaW5pLWZsYXNoLTEuNSksIHdoaWxlIG1haW50YWluaW5nIHF1YWxpdHkgb24gcGFyIHdpdGggbGFyZ2VyIG1vZGVscyBsaWtlIFtHZW1pbmkgUHJvIDEuNV0oL2dvb2dsZS9nZW1pbmktcHJvLTEuNSkuIEl0IGludHJvZHVjZXMgbm90YWJsZSBlbmhhbmNlbWVudHMgaW4gbXVsdGltb2RhbCB1bmRlcnN0YW5kaW5nLCBjb2RpbmcgY2FwYWJpbGl0aWVzLCBjb21wbGV4IGluc3RydWN0aW9uIGZvbGxvd2luZywgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIFRoZXNlIGFkdmFuY2VtZW50cyBjb21lIHRvZ2V0aGVyIHRvIGRlbGl2ZXIgbW9yZSBzZWFtbGVzcyBhbmQgcm9idXN0IGFnZW50aWMgZXhwZXJpZW5jZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtemVybzpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBSMSBaZXJvIChmcmVlKSIsImNyZWF0ZWQiOjE3NDEyOTc0MzQsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWstUjEtWmVybyBpcyBhIG1vZGVsIHRyYWluZWQgdmlhIGxhcmdlLXNjYWxlIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgKFJMKSB3aXRob3V0IHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgYXMgYSBwcmVsaW1pbmFyeSBzdGVwLiBJdCdzIDY3MUIgcGFyYW1ldGVycyBpbiBzaXplLCB3aXRoIDM3QiBhY3RpdmUgaW4gYW4gaW5mZXJlbmNlIHBhc3MuXG5cbkl0IGRlbW9uc3RyYXRlcyByZW1hcmthYmxlIHBlcmZvcm1hbmNlIG9uIHJlYXNvbmluZy4gV2l0aCBSTCwgRGVlcFNlZWstUjEtWmVybyBuYXR1cmFsbHkgZW1lcmdlZCB3aXRoIG51bWVyb3VzIHBvd2VyZnVsIGFuZCBpbnRlcmVzdGluZyByZWFzb25pbmcgYmVoYXZpb3JzLlxuXG5EZWVwU2Vlay1SMS1aZXJvIGVuY291bnRlcnMgY2hhbGxlbmdlcyBzdWNoIGFzIGVuZGxlc3MgcmVwZXRpdGlvbiwgcG9vciByZWFkYWJpbGl0eSwgYW5kIGxhbmd1YWdlIG1peGluZy4gU2VlIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKSBmb3IgdGhlIFNGVCBtb2RlbC5cblxuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdxLTMyYjpmcmVlIiwibmFtZSI6IlF3ZW46IFF3USAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MTIwODgxNCwiZGVzY3JpcHRpb24iOiJRd1EgaXMgdGhlIHJlYXNvbmluZyBtb2RlbCBvZiB0aGUgUXdlbiBzZXJpZXMuIENvbXBhcmVkIHdpdGggY29udmVudGlvbmFsIGluc3RydWN0aW9uLXR1bmVkIG1vZGVscywgUXdRLCB3aGljaCBpcyBjYXBhYmxlIG9mIHRoaW5raW5nIGFuZCByZWFzb25pbmcsIGNhbiBhY2hpZXZlIHNpZ25pZmljYW50bHkgZW5oYW5jZWQgcGVyZm9ybWFuY2UgaW4gZG93bnN0cmVhbSB0YXNrcywgZXNwZWNpYWxseSBoYXJkIHByb2JsZW1zLiBRd1EtMzJCIGlzIHRoZSBtZWRpdW0tc2l6ZWQgcmVhc29uaW5nIG1vZGVsLCB3aGljaCBpcyBjYXBhYmxlIG9mIGFjaGlldmluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBhZ2FpbnN0IHN0YXRlLW9mLXRoZS1hcnQgcmVhc29uaW5nIG1vZGVscywgZS5nLiwgRGVlcFNlZWstUjEsIG8xLW1pbmkuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoicXdxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4yLTNiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDNCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3MjcyMjI0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4yIDNCIGlzIGEgMy1iaWxsaW9uLXBhcmFtZXRlciBtdWx0aWxpbmd1YWwgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwsIG9wdGltaXplZCBmb3IgYWR2YW5jZWQgbmF0dXJhbCBsYW5ndWFnZSBwcm9jZXNzaW5nIHRhc2tzIGxpa2UgZGlhbG9ndWUgZ2VuZXJhdGlvbiwgcmVhc29uaW5nLCBhbmQgc3VtbWFyaXphdGlvbi4gRGVzaWduZWQgd2l0aCB0aGUgbGF0ZXN0IHRyYW5zZm9ybWVyIGFyY2hpdGVjdHVyZSwgaXQgc3VwcG9ydHMgZWlnaHQgbGFuZ3VhZ2VzLCBpbmNsdWRpbmcgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEhpbmRpLCBhbmQgaXMgYWRhcHRhYmxlIGZvciBhZGRpdGlvbmFsIGxhbmd1YWdlcy5cblxuVHJhaW5lZCBvbiA5IHRyaWxsaW9uIHRva2VucywgdGhlIExsYW1hIDMuMiAzQiBtb2RlbCBleGNlbHMgaW4gaW5zdHJ1Y3Rpb24tZm9sbG93aW5nLCBjb21wbGV4IHJlYXNvbmluZywgYW5kIHRvb2wgdXNlLiBJdHMgYmFsYW5jZWQgcGVyZm9ybWFuY2UgbWFrZXMgaXQgaWRlYWwgZm9yIGFwcGxpY2F0aW9ucyBuZWVkaW5nIGFjY3VyYWN5IGFuZCBlZmZpY2llbmN5IGluIHRleHQgZ2VuZXJhdGlvbiBhY3Jvc3MgbXVsdGlsaW5ndWFsIHNldHRpbmdzLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkQubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW4tcjEvb2x5bXBpY2NvZGVyLTdiOmZyZWUiLCJuYW1lIjoiT2x5bXBpY0NvZGVyIDdCIChmcmVlKSIsImNyZWF0ZWQiOjE3NDIwNzgyNjUsImRlc2NyaXB0aW9uIjoiT2x5bXBpY0NvZGVyLTdCIGlzIGFuIG9wZW4tc291cmNlIGxhbmd1YWdlIG1vZGVsIGZpbmUtdHVuZWQgb24gdGhlIENvZGVGb3JjZXMtQ29UcyBkYXRhc2V0LCBjb25zaXN0aW5nIG9mIG5lYXJseSAxMDAsMDAwIGhpZ2gtcXVhbGl0eSBjaGFpbi1vZi10aG91Z2h0IGV4YW1wbGVzIGZyb20gY29tcGV0aXRpdmUgcHJvZ3JhbW1pbmcgY29udGV4dHMuIE9wdGltaXplZCBzcGVjaWZpY2FsbHkgZm9yIG9seW1waWFkLWxldmVsIGNvZGluZyBwcm9ibGVtcywgdGhpcyBtb2RlbCBkZW1vbnN0cmF0ZXMgc3Ryb25nIGNoYWluLW9mLXRob3VnaHQgcmVhc29uaW5nIGFuZCBjb21wZXRpdGl2ZSBjb2RlIGdlbmVyYXRpb24gY2FwYWJpbGl0aWVzLCBhY2hpZXZpbmcgcGVyZm9ybWFuY2UgY29tcGV0aXRpdmUgd2l0aCBmcm9udGllciBjbG9zZWQtc291cmNlIG1vZGVscyBvbiB0YXNrcyBmcm9tIHRoZSBJT0kgMjAyNCBhbmQgc2ltaWxhciBjb2RpbmcgY29udGVzdHMuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1jaGF0LXYzLTAzMjQ6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogRGVlcFNlZWsgVjMgMDMyNCAoZnJlZSkiLCJjcmVhdGVkIjoxNzQyODI0NzU1LCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFYzLCBhIDY4NUItcGFyYW1ldGVyLCBtaXh0dXJlLW9mLWV4cGVydHMgbW9kZWwsIGlzIHRoZSBsYXRlc3QgaXRlcmF0aW9uIG9mIHRoZSBmbGFnc2hpcCBjaGF0IG1vZGVsIGZhbWlseSBmcm9tIHRoZSBEZWVwU2VlayB0ZWFtLlxuXG5JdCBzdWNjZWVkcyB0aGUgW0RlZXBTZWVrIFYzXSgvZGVlcHNlZWsvZGVlcHNlZWstY2hhdC12MykgbW9kZWwgYW5kIHBlcmZvcm1zIHJlYWxseSB3ZWxsIG9uIGEgdmFyaWV0eSBvZiB0YXNrcy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiRGVlcFNlZWsiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZmVhdGhlcmxlc3MvcXdlcmt5LTcyYjpmcmVlIiwibmFtZSI6IlF3ZXJreSA3MkIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjQ4MTU5NywiZGVzY3JpcHRpb24iOiJRd2Vya3ktNzJCIGlzIGEgbGluZWFyLWF0dGVudGlvbiBSV0tWIHZhcmlhbnQgb2YgdGhlIFF3ZW4gMi41IDcyQiBtb2RlbCwgb3B0aW1pemVkIHRvIHNpZ25pZmljYW50bHkgcmVkdWNlIGNvbXB1dGF0aW9uYWwgY29zdCBhdCBzY2FsZS4gTGV2ZXJhZ2luZyBsaW5lYXIgYXR0ZW50aW9uLCBpdCBhY2hpZXZlcyBzdWJzdGFudGlhbCBpbmZlcmVuY2Ugc3BlZWR1cHMgKD4xMDAweCkgd2hpbGUgcmV0YWluaW5nIGNvbXBldGl0aXZlIGFjY3VyYWN5IG9uIGNvbW1vbiBiZW5jaG1hcmtzIGxpa2UgQVJDLCBIZWxsYVN3YWcsIExhbWJhZGEsIGFuZCBNTUxVLiBJdCBpbmhlcml0cyBrbm93bGVkZ2UgYW5kIGxhbmd1YWdlIHN1cHBvcnQgZnJvbSBRd2VuIDIuNSwgc3VwcG9ydGluZyBhcHByb3hpbWF0ZWx5IDMwIGxhbmd1YWdlcywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBlZmZpY2llbnQgaW5mZXJlbmNlIGluIGxhcmdlLWNvbnRleHQgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuMi41LXZsLTMyYi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUgVkwgMzJCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDI4Mzk4MzgsImRlc2NyaXB0aW9uIjoiUXdlbjIuNS1WTC0zMkIgaXMgYSBtdWx0aW1vZGFsIHZpc2lvbi1sYW5ndWFnZSBtb2RlbCBmaW5lLXR1bmVkIHRocm91Z2ggcmVpbmZvcmNlbWVudCBsZWFybmluZyBmb3IgZW5oYW5jZWQgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgc3RydWN0dXJlZCBvdXRwdXRzLCBhbmQgdmlzdWFsIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGV4Y2VscyBhdCB2aXN1YWwgYW5hbHlzaXMgdGFza3MsIGluY2x1ZGluZyBvYmplY3QgcmVjb2duaXRpb24sIHRleHR1YWwgaW50ZXJwcmV0YXRpb24gd2l0aGluIGltYWdlcywgYW5kIHByZWNpc2UgZXZlbnQgbG9jYWxpemF0aW9uIGluIGV4dGVuZGVkIHZpZGVvcy4gUXdlbjIuNS1WTC0zMkIgZGVtb25zdHJhdGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpbW9kYWwgYmVuY2htYXJrcyBzdWNoIGFzIE1NTVUsIE1hdGhWaXN0YSwgYW5kIFZpZGVvTU1FLCB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgcmVhc29uaW5nIGFuZCBjbGFyaXR5IGluIHRleHQtYmFzZWQgdGFza3MgbGlrZSBNTUxVLCBtYXRoZW1hdGljYWwgcHJvYmxlbS1zb2x2aW5nLCBhbmQgY29kZSBnZW5lcmF0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMWItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgMUIgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMUIgaXMgYSAxLWJpbGxpb24tcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIGZvY3VzZWQgb24gZWZmaWNpZW50bHkgcGVyZm9ybWluZyBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBzdWNoIGFzIHN1bW1hcml6YXRpb24sIGRpYWxvZ3VlLCBhbmQgbXVsdGlsaW5ndWFsIHRleHQgYW5hbHlzaXMuIEl0cyBzbWFsbGVyIHNpemUgYWxsb3dzIGl0IHRvIG9wZXJhdGUgZWZmaWNpZW50bHkgaW4gbG93LXJlc291cmNlIGVudmlyb25tZW50cyB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgdGFzayBwZXJmb3JtYW5jZS5cblxuU3VwcG9ydGluZyBlaWdodCBjb3JlIGxhbmd1YWdlcyBhbmQgZmluZS10dW5hYmxlIGZvciBtb3JlLCBMbGFtYSAxLjNCIGlzIGlkZWFsIGZvciBidXNpbmVzc2VzIG9yIGRldmVsb3BlcnMgc2Vla2luZyBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgQUkgc29sdXRpb25zIHRoYXQgY2FuIG9wZXJhdGUgaW4gZGl2ZXJzZSBtdWx0aWxpbmd1YWwgc2V0dGluZ3Mgd2l0aG91dCB0aGUgaGlnaCBjb21wdXRhdGlvbmFsIGRlbWFuZCBvZiBsYXJnZXIgbW9kZWxzLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkQubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS00LW1hdmVyaWNrOmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgNCBNYXZlcmljayAoZnJlZSkiLCJjcmVhdGVkIjoxNzQzODgxODIyLCJkZXNjcmlwdGlvbiI6IkxsYW1hIDQgTWF2ZXJpY2sgMTdCIEluc3RydWN0ICgxMjhFKSBpcyBhIGhpZ2gtY2FwYWNpdHkgbXVsdGltb2RhbCBsYW5ndWFnZSBtb2RlbCBmcm9tIE1ldGEsIGJ1aWx0IG9uIGEgbWl4dHVyZS1vZi1leHBlcnRzIChNb0UpIGFyY2hpdGVjdHVyZSB3aXRoIDEyOCBleHBlcnRzIGFuZCAxNyBiaWxsaW9uIGFjdGl2ZSBwYXJhbWV0ZXJzIHBlciBmb3J3YXJkIHBhc3MgKDQwMEIgdG90YWwpLiBJdCBzdXBwb3J0cyBtdWx0aWxpbmd1YWwgdGV4dCBhbmQgaW1hZ2UgaW5wdXQsIGFuZCBwcm9kdWNlcyBtdWx0aWxpbmd1YWwgdGV4dCBhbmQgY29kZSBvdXRwdXQgYWNyb3NzIDEyIHN1cHBvcnRlZCBsYW5ndWFnZXMuIE9wdGltaXplZCBmb3IgdmlzaW9uLWxhbmd1YWdlIHRhc2tzLCBNYXZlcmljayBpcyBpbnN0cnVjdGlvbi10dW5lZCBmb3IgYXNzaXN0YW50LWxpa2UgYmVoYXZpb3IsIGltYWdlIHJlYXNvbmluZywgYW5kIGdlbmVyYWwtcHVycG9zZSBtdWx0aW1vZGFsIGludGVyYWN0aW9uLlxuXG5NYXZlcmljayBmZWF0dXJlcyBlYXJseSBmdXNpb24gZm9yIG5hdGl2ZSBtdWx0aW1vZGFsaXR5IGFuZCBhIDEgbWlsbGlvbiB0b2tlbiBjb250ZXh0IHdpbmRvdy4gSXQgd2FzIHRyYWluZWQgb24gYSBjdXJhdGVkIG1peHR1cmUgb2YgcHVibGljLCBsaWNlbnNlZCwgYW5kIE1ldGEtcGxhdGZvcm0gZGF0YSwgY292ZXJpbmcgfjIyIHRyaWxsaW9uIHRva2Vucywgd2l0aCBhIGtub3dsZWRnZSBjdXRvZmYgaW4gQXVndXN0IDIwMjQuIFJlbGVhc2VkIG9uIEFwcmlsIDUsIDIwMjUgdW5kZXIgdGhlIExsYW1hIDQgQ29tbXVuaXR5IExpY2Vuc2UsIE1hdmVyaWNrIGlzIHN1aXRlZCBmb3IgcmVzZWFyY2ggYW5kIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zIHJlcXVpcmluZyBhZHZhbmNlZCBtdWx0aW1vZGFsIHVuZGVyc3RhbmRpbmcgYW5kIGhpZ2ggbW9kZWwgdGhyb3VnaHB1dC4iLCJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiaHVnZ2luZ2ZhY2VoNC96ZXBoeXItN2ItYmV0YTpmcmVlIiwibmFtZSI6Ikh1Z2dpbmcgRmFjZTogWmVwaHlyIDdCIChmcmVlKSIsImNyZWF0ZWQiOjE2OTA5MzQ0MDAsImRlc2NyaXB0aW9uIjoiWmVwaHlyIGlzIGEgc2VyaWVzIG9mIGxhbmd1YWdlIG1vZGVscyB0aGF0IGFyZSB0cmFpbmVkIHRvIGFjdCBhcyBoZWxwZnVsIGFzc2lzdGFudHMuIFplcGh5ci03Qi3OsiBpcyB0aGUgc2Vjb25kIG1vZGVsIGluIHRoZSBzZXJpZXMsIGFuZCBpcyBhIGZpbmUtdHVuZWQgdmVyc2lvbiBvZiBbbWlzdHJhbGFpL01pc3RyYWwtN0ItdjAuMV0oL21vZGVscy9taXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdC12MC4xKSB0aGF0IHdhcyB0cmFpbmVkIG9uIGEgbWl4IG9mIHB1YmxpY2x5IGF2YWlsYWJsZSwgc3ludGhldGljIGRhdGFzZXRzIHVzaW5nIERpcmVjdCBQcmVmZXJlbmNlIE9wdGltaXphdGlvbiAoRFBPKS4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoiemVwaHlyIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVucm91dGVyL3F1YXNhci1hbHBoYSIsIm5hbWUiOiJRdWFzYXIgQWxwaGEiLCJjcmVhdGVkIjoxNzQzNjI2ODA5LCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSBjbG9ha2VkIG1vZGVsIHByb3ZpZGVkIHRvIHRoZSBjb21tdW5pdHkgdG8gZ2F0aGVyIGZlZWRiYWNrLiBJdOKAmXMgYSBwb3dlcmZ1bCwgYWxsLXB1cnBvc2UgbW9kZWwgc3VwcG9ydGluZyBsb25nLWNvbnRleHQgdGFza3MsIGluY2x1ZGluZyBjb2RlIGdlbmVyYXRpb24uIEFsbCBwcm9tcHRzIGFuZCBjb21wbGV0aW9ucyBmb3IgdGhpcyBtb2RlbCBhcmUgbG9nZ2VkIGJ5IHRoZSBwcm92aWRlciBhcyB3ZWxsIGFzIE9wZW5Sb3V0ZXIuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbImltYWdlIiwidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMzJiOmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgUXdlbiAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTczODE5NDgzMCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMzJCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtRd2VuIDIuNSAzMkJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMi41LTMyQiksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIEl0IG91dHBlcmZvcm1zIE9wZW5BSSdzIG8xLW1pbmkgYWNyb3NzIHZhcmlvdXMgYmVuY2htYXJrcywgYWNoaWV2aW5nIG5ldyBzdGF0ZS1vZi10aGUtYXJ0IHJlc3VsdHMgZm9yIGRlbnNlIG1vZGVscy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3Mi42XG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuM1xuLSBDb2RlRm9yY2VzIFJhdGluZzogMTY5MVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03Yi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6IlF3ZW4yLjUgN0IgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyOTAzNjgwMCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IDdCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tMi41LXZsLTdiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiUXdlbjogUXdlbjIuNS1WTCA3QiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzI0ODAzMjAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgVkwgN0IgaXMgYSBtdWx0aW1vZGFsIExMTSBmcm9tIHRoZSBRd2VuIFRlYW0gd2l0aCB0aGUgZm9sbG93aW5nIGtleSBlbmhhbmNlbWVudHM6XG5cbi0gU29UQSB1bmRlcnN0YW5kaW5nIG9mIGltYWdlcyBvZiB2YXJpb3VzIHJlc29sdXRpb24gJiByYXRpbzogUXdlbjIuNS1WTCBhY2hpZXZlcyBzdGF0ZS1vZi10aGUtYXJ0IHBlcmZvcm1hbmNlIG9uIHZpc3VhbCB1bmRlcnN0YW5kaW5nIGJlbmNobWFya3MsIGluY2x1ZGluZyBNYXRoVmlzdGEsIERvY1ZRQSwgUmVhbFdvcmxkUUEsIE1UVlFBLCBldGMuXG5cbi0gVW5kZXJzdGFuZGluZyB2aWRlb3Mgb2YgMjBtaW4rOiBRd2VuMi41LVZMIGNhbiB1bmRlcnN0YW5kIHZpZGVvcyBvdmVyIDIwIG1pbnV0ZXMgZm9yIGhpZ2gtcXVhbGl0eSB2aWRlby1iYXNlZCBxdWVzdGlvbiBhbnN3ZXJpbmcsIGRpYWxvZywgY29udGVudCBjcmVhdGlvbiwgZXRjLlxuXG4tIEFnZW50IHRoYXQgY2FuIG9wZXJhdGUgeW91ciBtb2JpbGVzLCByb2JvdHMsIGV0Yy46IHdpdGggdGhlIGFiaWxpdGllcyBvZiBjb21wbGV4IHJlYXNvbmluZyBhbmQgZGVjaXNpb24gbWFraW5nLCBRd2VuMi41LVZMIGNhbiBiZSBpbnRlZ3JhdGVkIHdpdGggZGV2aWNlcyBsaWtlIG1vYmlsZSBwaG9uZXMsIHJvYm90cywgZXRjLiwgZm9yIGF1dG9tYXRpYyBvcGVyYXRpb24gYmFzZWQgb24gdmlzdWFsIGVudmlyb25tZW50IGFuZCB0ZXh0IGluc3RydWN0aW9ucy5cblxuLSBNdWx0aWxpbmd1YWwgU3VwcG9ydDogdG8gc2VydmUgZ2xvYmFsIHVzZXJzLCBiZXNpZGVzIEVuZ2xpc2ggYW5kIENoaW5lc2UsIFF3ZW4yLjUtVkwgbm93IHN1cHBvcnRzIHRoZSB1bmRlcnN0YW5kaW5nIG9mIHRleHRzIGluIGRpZmZlcmVudCBsYW5ndWFnZXMgaW5zaWRlIGltYWdlcywgaW5jbHVkaW5nIG1vc3QgRXVyb3BlYW4gbGFuZ3VhZ2VzLCBKYXBhbmVzZSwgS29yZWFuLCBBcmFiaWMsIFZpZXRuYW1lc2UsIGV0Yy5cblxuRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoaXMgW2Jsb2cgcG9zdF0oaHR0cHM6Ly9xd2VubG0uZ2l0aHViLmlvL2Jsb2cvcXdlbjItdmwvKSBhbmQgW0dpdEh1YiByZXBvXShodHRwczovL2dpdGh1Yi5jb20vUXdlbkxNL1F3ZW4yLVZMKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtUb25neWkgUWlhbndlbiBMSUNFTlNFIEFHUkVFTUVOVF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4xLjUtMTEwQi1DaGF0L2Jsb2IvbWFpbi9MSUNFTlNFKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjY0MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS00LXNjb3V0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgNCBTY291dCAoZnJlZSkiLCJjcmVhdGVkIjoxNzQzODgxNTE5LCJkZXNjcmlwdGlvbiI6IkxsYW1hIDQgU2NvdXQgMTdCIEluc3RydWN0ICgxNkUpIGlzIGEgbWl4dHVyZS1vZi1leHBlcnRzIChNb0UpIGxhbmd1YWdlIG1vZGVsIGRldmVsb3BlZCBieSBNZXRhLCBhY3RpdmF0aW5nIDE3IGJpbGxpb24gcGFyYW1ldGVycyBvdXQgb2YgYSB0b3RhbCBvZiAxMDlCLiBJdCBzdXBwb3J0cyBuYXRpdmUgbXVsdGltb2RhbCBpbnB1dCAodGV4dCBhbmQgaW1hZ2UpIGFuZCBtdWx0aWxpbmd1YWwgb3V0cHV0ICh0ZXh0IGFuZCBjb2RlKSBhY3Jvc3MgMTIgc3VwcG9ydGVkIGxhbmd1YWdlcy4gRGVzaWduZWQgZm9yIGFzc2lzdGFudC1zdHlsZSBpbnRlcmFjdGlvbiBhbmQgdmlzdWFsIHJlYXNvbmluZywgU2NvdXQgdXNlcyAxNiBleHBlcnRzIHBlciBmb3J3YXJkIHBhc3MgYW5kIGZlYXR1cmVzIGEgY29udGV4dCBsZW5ndGggb2YgMTAgbWlsbGlvbiB0b2tlbnMsIHdpdGggYSB0cmFpbmluZyBjb3JwdXMgb2YgfjQwIHRyaWxsaW9uIHRva2Vucy5cblxuQnVpbHQgZm9yIGhpZ2ggZWZmaWNpZW5jeSBhbmQgbG9jYWwgb3IgY29tbWVyY2lhbCBkZXBsb3ltZW50LCBMbGFtYSA0IFNjb3V0IGluY29ycG9yYXRlcyBlYXJseSBmdXNpb24gZm9yIHNlYW1sZXNzIG1vZGFsaXR5IGludGVncmF0aW9uLiBJdCBpcyBpbnN0cnVjdGlvbi10dW5lZCBmb3IgdXNlIGluIG11bHRpbGluZ3VhbCBjaGF0LCBjYXB0aW9uaW5nLCBhbmQgaW1hZ2UgdW5kZXJzdGFuZGluZyB0YXNrcy4gUmVsZWFzZWQgdW5kZXIgdGhlIExsYW1hIDQgQ29tbXVuaXR5IExpY2Vuc2UsIGl0IHdhcyBsYXN0IHRyYWluZWQgb24gZGF0YSB1cCB0byBBdWd1c3QgMjAyNCBhbmQgbGF1bmNoZWQgcHVibGljbHkgb24gQXByaWwgNSwgMjAyNS4iLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo1MTIwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tdWx0cmEtMjUzYi12MTpmcmVlIiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIFVsdHJhIDI1M0IgdjEgKGZyZWUpIiwiY3JlYXRlZCI6MTc0NDExNTA1OSwiZGVzY3JpcHRpb24iOiJMbGFtYS0zLjEtTmVtb3Ryb24tVWx0cmEtMjUzQi12MSBpcyBhIGxhcmdlIGxhbmd1YWdlIG1vZGVsIChMTE0pIG9wdGltaXplZCBmb3IgYWR2YW5jZWQgcmVhc29uaW5nLCBodW1hbi1pbnRlcmFjdGl2ZSBjaGF0LCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIGFuZCB0b29sLWNhbGxpbmcgdGFza3MuIERlcml2ZWQgZnJvbSBNZXRh4oCZcyBMbGFtYS0zLjEtNDA1Qi1JbnN0cnVjdCwgaXQgaGFzIGJlZW4gc2lnbmlmaWNhbnRseSBjdXN0b21pemVkIHVzaW5nIE5ldXJhbCBBcmNoaXRlY3R1cmUgU2VhcmNoIChOQVMpLCByZXN1bHRpbmcgaW4gZW5oYW5jZWQgZWZmaWNpZW5jeSwgcmVkdWNlZCBtZW1vcnkgdXNhZ2UsIGFuZCBpbXByb3ZlZCBpbmZlcmVuY2UgbGF0ZW5jeS4gVGhlIG1vZGVsIHN1cHBvcnRzIGEgY29udGV4dCBsZW5ndGggb2YgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIGNhbiBvcGVyYXRlIGVmZmljaWVudGx5IG9uIGFuIDh4IE5WSURJQSBIMTAwIG5vZGUuXG5cbk5vdGU6IHlvdSBtdXN0IGluY2x1ZGUgYGRldGFpbGVkIHRoaW5raW5nIG9uYCBpbiB0aGUgc3lzdGVtIHByb21wdCB0byBlbmFibGUgcmVhc29uaW5nLiBQbGVhc2Ugc2VlIFtVc2FnZSBSZWNvbW1lbmRhdGlvbnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbnZpZGlhL0xsYW1hLTNfMS1OZW1vdHJvbi1VbHRyYS0yNTNCLXYxI3F1aWNrLXN0YXJ0LWFuZC11c2FnZS1yZWNvbW1lbmRhdGlvbnMpIGZvciBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibnZpZGlhL2xsYW1hLTMuMy1uZW1vdHJvbi1zdXBlci00OWItdjE6ZnJlZSIsIm5hbWUiOiJOVklESUE6IExsYW1hIDMuMyBOZW1vdHJvbiBTdXBlciA0OUIgdjEgKGZyZWUpIiwiY3JlYXRlZCI6MTc0NDExOTQ5NCwiZGVzY3JpcHRpb24iOiJMbGFtYS0zLjMtTmVtb3Ryb24tU3VwZXItNDlCLXYxIGlzIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgKExMTSkgb3B0aW1pemVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvbnZlcnNhdGlvbmFsIGludGVyYWN0aW9ucywgcmV0cmlldmFsLWF1Z21lbnRlZCBnZW5lcmF0aW9uIChSQUcpLCBhbmQgdG9vbC1jYWxsaW5nIHRhc2tzLiBEZXJpdmVkIGZyb20gTWV0YSdzIExsYW1hLTMuMy03MEItSW5zdHJ1Y3QsIGl0IGVtcGxveXMgYSBOZXVyYWwgQXJjaGl0ZWN0dXJlIFNlYXJjaCAoTkFTKSBhcHByb2FjaCwgc2lnbmlmaWNhbnRseSBlbmhhbmNpbmcgZWZmaWNpZW5jeSBhbmQgcmVkdWNpbmcgbWVtb3J5IHJlcXVpcmVtZW50cy4gVGhpcyBhbGxvd3MgdGhlIG1vZGVsIHRvIHN1cHBvcnQgYSBjb250ZXh0IGxlbmd0aCBvZiB1cCB0byAxMjhLIHRva2VucyBhbmQgZml0IGVmZmljaWVudGx5IG9uIHNpbmdsZSBoaWdoLXBlcmZvcm1hbmNlIEdQVXMsIHN1Y2ggYXMgTlZJRElBIEgyMDAuXG5cbk5vdGU6IHlvdSBtdXN0IGluY2x1ZGUgYGRldGFpbGVkIHRoaW5raW5nIG9uYCBpbiB0aGUgc3lzdGVtIHByb21wdCB0byBlbmFibGUgcmVhc29uaW5nLiBQbGVhc2Ugc2VlIFtVc2FnZSBSZWNvbW1lbmRhdGlvbnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbnZpZGlhL0xsYW1hLTNfMS1OZW1vdHJvbi1VbHRyYS0yNTNCLXYxI3F1aWNrLXN0YXJ0LWFuZC11c2FnZS1yZWNvbW1lbmRhdGlvbnMpIGZvciBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJudmlkaWEvbGxhbWEtMy4xLW5lbW90cm9uLW5hbm8tOGItdjE6ZnJlZSIsIm5hbWUiOiJOVklESUE6IExsYW1hIDMuMSBOZW1vdHJvbiBOYW5vIDhCIHYxIChmcmVlKSIsImNyZWF0ZWQiOjE3NDQxMjM4NzMsImRlc2NyaXB0aW9uIjoiTGxhbWEtMy4xLU5lbW90cm9uLU5hbm8tOEItdjEgaXMgYSBjb21wYWN0IGxhcmdlIGxhbmd1YWdlIG1vZGVsIChMTE0pIGRlcml2ZWQgZnJvbSBNZXRhJ3MgTGxhbWEtMy4xLThCLUluc3RydWN0LCBzcGVjaWZpY2FsbHkgb3B0aW1pemVkIGZvciByZWFzb25pbmcgdGFza3MsIGNvbnZlcnNhdGlvbmFsIGludGVyYWN0aW9ucywgcmV0cmlldmFsLWF1Z21lbnRlZCBnZW5lcmF0aW9uIChSQUcpLCBhbmQgdG9vbC1jYWxsaW5nIGFwcGxpY2F0aW9ucy4gSXQgYmFsYW5jZXMgYWNjdXJhY3kgYW5kIGVmZmljaWVuY3ksIGZpdHRpbmcgY29tZm9ydGFibHkgb250byBhIHNpbmdsZSBjb25zdW1lci1ncmFkZSBSVFggR1BVIGZvciBsb2NhbCBkZXBsb3ltZW50LiBUaGUgbW9kZWwgc3VwcG9ydHMgZXh0ZW5kZWQgY29udGV4dCBsZW5ndGhzIG9mIHVwIHRvIDEyOEsgdG9rZW5zLlxuXG5Ob3RlOiB5b3UgbXVzdCBpbmNsdWRlIGBkZXRhaWxlZCB0aGlua2luZyBvbmAgaW4gdGhlIHN5c3RlbSBwcm9tcHQgdG8gZW5hYmxlIHJlYXNvbmluZy4gUGxlYXNlIHNlZSBbVXNhZ2UgUmVjb21tZW5kYXRpb25zXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL252aWRpYS9MbGFtYS0zXzEtTmVtb3Ryb24tVWx0cmEtMjUzQi12MSNxdWljay1zdGFydC1hbmQtdXNhZ2UtcmVjb21tZW5kYXRpb25zKSBmb3IgbW9yZS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMWItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDFCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMUIgaXMgYSAxLWJpbGxpb24tcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIGZvY3VzZWQgb24gZWZmaWNpZW50bHkgcGVyZm9ybWluZyBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBzdWNoIGFzIHN1bW1hcml6YXRpb24sIGRpYWxvZ3VlLCBhbmQgbXVsdGlsaW5ndWFsIHRleHQgYW5hbHlzaXMuIEl0cyBzbWFsbGVyIHNpemUgYWxsb3dzIGl0IHRvIG9wZXJhdGUgZWZmaWNpZW50bHkgaW4gbG93LXJlc291cmNlIGVudmlyb25tZW50cyB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgdGFzayBwZXJmb3JtYW5jZS5cblxuU3VwcG9ydGluZyBlaWdodCBjb3JlIGxhbmd1YWdlcyBhbmQgZmluZS10dW5hYmxlIGZvciBtb3JlLCBMbGFtYSAxLjNCIGlzIGlkZWFsIGZvciBidXNpbmVzc2VzIG9yIGRldmVsb3BlcnMgc2Vla2luZyBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgQUkgc29sdXRpb25zIHRoYXQgY2FuIG9wZXJhdGUgaW4gZGl2ZXJzZSBtdWx0aWxpbmd1YWwgc2V0dGluZ3Mgd2l0aG91dCB0aGUgaGlnaCBjb21wdXRhdGlvbmFsIGRlbWFuZCBvZiBsYXJnZXIgbW9kZWxzLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkQubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImxpcXVpZC9sZm0tN2IiLCJuYW1lIjoiTGlxdWlkOiBMRk0gN0IiLCJjcmVhdGVkIjoxNzM3ODA2ODgzLCJkZXNjcmlwdGlvbiI6IkxGTS03QiwgYSBuZXcgYmVzdC1pbi1jbGFzcyBsYW5ndWFnZSBtb2RlbC4gTEZNLTdCIGlzIGRlc2lnbmVkIGZvciBleGNlcHRpb25hbCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIGxhbmd1YWdlcyBsaWtlIEFyYWJpYyBhbmQgSmFwYW5lc2UuIFBvd2VyZWQgYnkgdGhlIExpcXVpZCBGb3VuZGF0aW9uIE1vZGVsIChMRk0pIGFyY2hpdGVjdHVyZSwgaXQgZXhoaWJpdHMgdW5pcXVlIGZlYXR1cmVzIGxpa2UgbG93IG1lbW9yeSBmb290cHJpbnQgYW5kIGZhc3QgaW5mZXJlbmNlIHNwZWVkLiBcblxuTEZNLTdCIGlzIHRoZSB3b3JsZOKAmXMgYmVzdC1pbi1jbGFzcyBtdWx0aWxpbmd1YWwgbGFuZ3VhZ2UgbW9kZWwgaW4gRW5nbGlzaCwgQXJhYmljLCBhbmQgSmFwYW5lc2UuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vd3d3LmxpcXVpZC5haS9sZm0tN2IpIGZvciBiZW5jaG1hcmtzIGFuZCBtb3JlIGluZm8uIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItM2ItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDNCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgM0IgaXMgYSAzLWJpbGxpb24tcGFyYW1ldGVyIG11bHRpbGluZ3VhbCBsYXJnZSBsYW5ndWFnZSBtb2RlbCwgb3B0aW1pemVkIGZvciBhZHZhbmNlZCBuYXR1cmFsIGxhbmd1YWdlIHByb2Nlc3NpbmcgdGFza3MgbGlrZSBkaWFsb2d1ZSBnZW5lcmF0aW9uLCByZWFzb25pbmcsIGFuZCBzdW1tYXJpemF0aW9uLiBEZXNpZ25lZCB3aXRoIHRoZSBsYXRlc3QgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLCBpdCBzdXBwb3J0cyBlaWdodCBsYW5ndWFnZXMsIGluY2x1ZGluZyBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgSGluZGksIGFuZCBpcyBhZGFwdGFibGUgZm9yIGFkZGl0aW9uYWwgbGFuZ3VhZ2VzLlxuXG5UcmFpbmVkIG9uIDkgdHJpbGxpb24gdG9rZW5zLCB0aGUgTGxhbWEgMy4yIDNCIG1vZGVsIGV4Y2VscyBpbiBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGNvbXBsZXggcmVhc29uaW5nLCBhbmQgdG9vbCB1c2UuIEl0cyBiYWxhbmNlZCBwZXJmb3JtYW5jZSBtYWtlcyBpdCBpZGVhbCBmb3IgYXBwbGljYXRpb25zIG5lZWRpbmcgYWNjdXJhY3kgYW5kIGVmZmljaWVuY3kgaW4gdGV4dCBnZW5lcmF0aW9uIGFjcm9zcyBtdWx0aWxpbmd1YWwgc2V0dGluZ3MuXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRC5tZCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly93d3cubGxhbWEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDAyNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImxpcXVpZC9sZm0tM2IiLCJuYW1lIjoiTGlxdWlkOiBMRk0gM0IiLCJjcmVhdGVkIjoxNzM3ODA2NTAxLCJkZXNjcmlwdGlvbiI6IkxpcXVpZCdzIExGTSAzQiBkZWxpdmVycyBpbmNyZWRpYmxlIHBlcmZvcm1hbmNlIGZvciBpdHMgc2l6ZS4gSXQgcG9zaXRpb25zIGl0c2VsZiBhcyBmaXJzdCBwbGFjZSBhbW9uZyAzQiBwYXJhbWV0ZXIgdHJhbnNmb3JtZXJzLCBoeWJyaWRzLCBhbmQgUk5OIG1vZGVscyBJdCBpcyBhbHNvIG9uIHBhciB3aXRoIFBoaS0zLjUtbWluaSBvbiBtdWx0aXBsZSBiZW5jaG1hcmtzLCB3aGlsZSBiZWluZyAxOC40JSBzbWFsbGVyLlxuXG5MRk0tM0IgaXMgdGhlIGlkZWFsIGNob2ljZSBmb3IgbW9iaWxlIGFuZCBvdGhlciBlZGdlIHRleHQtYmFzZWQgYXBwbGljYXRpb25zLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5saXF1aWQuYWkvbGlxdWlkLWZvdW5kYXRpb24tbW9kZWxzKSBmb3IgYmVuY2htYXJrcyBhbmQgbW9yZSBpbmZvLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTRiLWl0IiwibmFtZSI6Ikdvb2dsZTogR2VtbWEgMyA0QiIsImNyZWF0ZWQiOjE3NDE5MDU1MTAsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4xLThiLWluc3RydWN0IiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMSA4QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgOEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiBpcyBmYXN0IGFuZCBlZmZpY2llbnQuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvaGVybWVzLTItcHJvLWxsYW1hLTMtOGIiLCJuYW1lIjoiTm91c1Jlc2VhcmNoOiBIZXJtZXMgMiBQcm8gLSBMbGFtYS0zIDhCIiwiY3JlYXRlZCI6MTcxNjc2ODAwMCwiZGVzY3JpcHRpb24iOiJIZXJtZXMgMiBQcm8gaXMgYW4gdXBncmFkZWQsIHJldHJhaW5lZCB2ZXJzaW9uIG9mIE5vdXMgSGVybWVzIDIsIGNvbnNpc3Rpbmcgb2YgYW4gdXBkYXRlZCBhbmQgY2xlYW5lZCB2ZXJzaW9uIG9mIHRoZSBPcGVuSGVybWVzIDIuNSBEYXRhc2V0LCBhcyB3ZWxsIGFzIGEgbmV3bHkgaW50cm9kdWNlZCBGdW5jdGlvbiBDYWxsaW5nIGFuZCBKU09OIE1vZGUgZGF0YXNldCBkZXZlbG9wZWQgaW4taG91c2UuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0IiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgN0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE2NzY4MDAwLCJkZXNjcmlwdGlvbiI6IkEgaGlnaC1wZXJmb3JtaW5nLCBpbmR1c3RyeS1zdGFuZGFyZCA3LjNCIHBhcmFtZXRlciBtb2RlbCwgd2l0aCBvcHRpbWl6YXRpb25zIGZvciBzcGVlZCBhbmQgY29udGV4dCBsZW5ndGguXG5cbipNaXN0cmFsIDdCIEluc3RydWN0IGhhcyBtdWx0aXBsZSB2ZXJzaW9uIHZhcmlhbnRzLCBhbmQgdGhpcyBpcyBpbnRlbmRlZCB0byBiZSB0aGUgbGF0ZXN0IHZlcnNpb24uKiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdC12MC4zIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgN0IgSW5zdHJ1Y3QgdjAuMyIsImNyZWF0ZWQiOjE3MTY3NjgwMDAsImRlc2NyaXB0aW9uIjoiQSBoaWdoLXBlcmZvcm1pbmcsIGluZHVzdHJ5LXN0YW5kYXJkIDcuM0IgcGFyYW1ldGVyIG1vZGVsLCB3aXRoIG9wdGltaXphdGlvbnMgZm9yIHNwZWVkIGFuZCBjb250ZXh0IGxlbmd0aC5cblxuQW4gaW1wcm92ZWQgdmVyc2lvbiBvZiBbTWlzdHJhbCA3QiBJbnN0cnVjdCB2MC4yXSgvbW9kZWxzL21pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjIpLCB3aXRoIHRoZSBmb2xsb3dpbmcgY2hhbmdlczpcblxuLSBFeHRlbmRlZCB2b2NhYnVsYXJ5IHRvIDMyNzY4XG4tIFN1cHBvcnRzIHYzIFRva2VuaXplclxuLSBTdXBwb3J0cyBmdW5jdGlvbiBjYWxsaW5nXG5cbk5PVEU6IFN1cHBvcnQgZm9yIGZ1bmN0aW9uIGNhbGxpbmcgZGVwZW5kcyBvbiB0aGUgcHJvdmlkZXIuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJtaXN0cmFsIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA1NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy04Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzIDhCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzM5ODQwMCwiZGVzY3JpcHRpb24iOiJNZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgOEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiB3YXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1uZW1vIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgTmVtbyIsImNyZWF0ZWQiOjE3MjEzNDcyMDAsImRlc2NyaXB0aW9uIjoiQSAxMkIgcGFyYW1ldGVyIG1vZGVsIHdpdGggYSAxMjhrIHRva2VuIGNvbnRleHQgbGVuZ3RoIGJ1aWx0IGJ5IE1pc3RyYWwgaW4gY29sbGFib3JhdGlvbiB3aXRoIE5WSURJQS5cblxuVGhlIG1vZGVsIGlzIG11bHRpbGluZ3VhbCwgc3VwcG9ydGluZyBFbmdsaXNoLCBGcmVuY2gsIEdlcm1hbiwgU3BhbmlzaCwgSXRhbGlhbiwgUG9ydHVndWVzZSwgQ2hpbmVzZSwgSmFwYW5lc2UsIEtvcmVhbiwgQXJhYmljLCBhbmQgSGluZGkuXG5cbkl0IHN1cHBvcnRzIGZ1bmN0aW9uIGNhbGxpbmcgYW5kIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDM1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbWljcm8tdjEiLCJuYW1lIjoiQW1hem9uOiBOb3ZhIE1pY3JvIDEuMCIsImNyZWF0ZWQiOjE3MzM0MzcyMzcsImRlc2NyaXB0aW9uIjoiQW1hem9uIE5vdmEgTWljcm8gMS4wIGlzIGEgdGV4dC1vbmx5IG1vZGVsIHRoYXQgZGVsaXZlcnMgdGhlIGxvd2VzdCBsYXRlbmN5IHJlc3BvbnNlcyBpbiB0aGUgQW1hem9uIE5vdmEgZmFtaWx5IG9mIG1vZGVscyBhdCBhIHZlcnkgbG93IGNvc3QuIFdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiAxMjhLIHRva2VucyBhbmQgb3B0aW1pemVkIGZvciBzcGVlZCBhbmQgY29zdCwgQW1hem9uIE5vdmEgTWljcm8gZXhjZWxzIGF0IHRhc2tzIHN1Y2ggYXMgdGV4dCBzdW1tYXJpemF0aW9uLCB0cmFuc2xhdGlvbiwgY29udGVudCBjbGFzc2lmaWNhdGlvbiwgaW50ZXJhY3RpdmUgY2hhdCwgYW5kIGJyYWluc3Rvcm1pbmcuIEl0IGhhcyAgc2ltcGxlIG1hdGhlbWF0aWNhbCByZWFzb25pbmcgYW5kIGNvZGluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NTEyMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXI3Yi0xMi0yMDI0IiwibmFtZSI6IkNvaGVyZTogQ29tbWFuZCBSN0IgKDEyLTIwMjQpIiwiY3JlYXRlZCI6MTczNDE1ODE1MiwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFI3QiAoMTItMjAyNCkgaXMgYSBzbWFsbCwgZmFzdCB1cGRhdGUgb2YgdGhlIENvbW1hbmQgUisgbW9kZWwsIGRlbGl2ZXJlZCBpbiBEZWNlbWJlciAyMDI0LiBJdCBleGNlbHMgYXQgUkFHLCB0b29sIHVzZSwgYWdlbnRzLCBhbmQgc2ltaWxhciB0YXNrcyByZXF1aXJpbmcgY29tcGxleCByZWFzb25pbmcgYW5kIG11bHRpcGxlIHN0ZXBzLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLWZsYXNoLTEuNS04YiIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAxLjUgRmxhc2ggOEIiLCJjcmVhdGVkIjoxNzI3OTEzNjAwLCJkZXNjcmlwdGlvbiI6IkdlbWluaSBGbGFzaCAxLjUgOEIgaXMgb3B0aW1pemVkIGZvciBzcGVlZCBhbmQgZWZmaWNpZW5jeSwgb2ZmZXJpbmcgZW5oYW5jZWQgcGVyZm9ybWFuY2UgaW4gc21hbGwgcHJvbXB0IHRhc2tzIGxpa2UgY2hhdCwgdHJhbnNjcmlwdGlvbiwgYW5kIHRyYW5zbGF0aW9uLiBXaXRoIHJlZHVjZWQgbGF0ZW5jeSwgaXQgaXMgaGlnaGx5IGVmZmVjdGl2ZSBmb3IgcmVhbC10aW1lIGFuZCBsYXJnZS1zY2FsZSBvcGVyYXRpb25zLiBUaGlzIG1vZGVsIGZvY3VzZXMgb24gY29zdC1lZmZlY3RpdmUgc29sdXRpb25zIHdoaWxlIG1haW50YWluaW5nIGhpZ2gtcXVhbGl0eSByZXN1bHRzLlxuXG5bQ2xpY2sgaGVyZSB0byBsZWFybiBtb3JlIGFib3V0IHRoaXMgbW9kZWxdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGVibG9nLmNvbS9lbi9nZW1pbmktMTUtZmxhc2gtOGItaXMtbm93LWdlbmVyYWxseS1hdmFpbGFibGUtZm9yLXVzZS8pLlxuXG5Vc2FnZSBvZiBHZW1pbmkgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtaW5pIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L3Rlcm1zKS4iLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMzc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAxIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDA1ODMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWluaXN0cmFsLTNiIiwibmFtZSI6Ik1pc3RyYWw6IE1pbmlzdHJhbCAzQiIsImNyZWF0ZWQiOjE3MjkxMjMyMDAsImRlc2NyaXB0aW9uIjoiTWluaXN0cmFsIDNCIGlzIGEgM0IgcGFyYW1ldGVyIG1vZGVsIG9wdGltaXplZCBmb3Igb24tZGV2aWNlIGFuZCBlZGdlIGNvbXB1dGluZy4gSXQgZXhjZWxzIGluIGtub3dsZWRnZSwgY29tbW9uc2Vuc2UgcmVhc29uaW5nLCBhbmQgZnVuY3Rpb24tY2FsbGluZywgb3V0cGVyZm9ybWluZyBsYXJnZXIgbW9kZWxzIGxpa2UgTWlzdHJhbCA3QiBvbiBtb3N0IGJlbmNobWFya3MuIFN1cHBvcnRpbmcgdXAgdG8gMTI4ayBjb250ZXh0IGxlbmd0aCwgaXTigJlzIGlkZWFsIGZvciBvcmNoZXN0cmF0aW5nIGFnZW50aWMgd29ya2Zsb3dzIGFuZCBzcGVjaWFsaXN0IHRhc2tzIHdpdGggZWZmaWNpZW50IGluZmVyZW5jZS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLWxsYW1hLThiIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIExsYW1hIDhCIiwiY3JlYXRlZCI6MTczODkzNzcxOCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIExsYW1hIDhCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtMbGFtYS0zLjEtOEItSW5zdHJ1Y3RdKC9tZXRhLWxsYW1hL2xsYW1hLTMuMS04Yi1pbnN0cnVjdCksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIFRoZSBtb2RlbCBjb21iaW5lcyBhZHZhbmNlZCBkaXN0aWxsYXRpb24gdGVjaG5pcXVlcyB0byBhY2hpZXZlIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpcGxlIGJlbmNobWFya3MsIGluY2x1ZGluZzpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA1MC40XG4tIE1BVEgtNTAwIHBhc3NAMTogODkuMVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTIwNVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuXG5cbkh1Z2dpbmcgRmFjZTogXG4tIFtMbGFtYS0zLjEtOEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbWV0YS1sbGFtYS9MbGFtYS0zLjEtOEIpIFxuLSBbRGVlcFNlZWstUjEtRGlzdGlsbC1MbGFtYS04Ql0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9kZWVwc2Vlay1haS9EZWVwU2Vlay1SMS1EaXN0aWxsLUxsYW1hLThCKSAgIHwiLCJjb250ZXh0X2xlbmd0aCI6MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzIwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzIwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMtbHVuYXJpcy04YiIsIm5hbWUiOiJTYW8xMEs6IExsYW1hIDMgOEIgTHVuYXJpcyIsImNyZWF0ZWQiOjE3MjM1MDcyMDAsImRlc2NyaXB0aW9uIjoiTHVuYXJpcyA4QiBpcyBhIHZlcnNhdGlsZSBnZW5lcmFsaXN0IGFuZCByb2xlcGxheWluZyBtb2RlbCBiYXNlZCBvbiBMbGFtYSAzLiBJdCdzIGEgc3RyYXRlZ2ljIG1lcmdlIG9mIG11bHRpcGxlIG1vZGVscywgZGVzaWduZWQgdG8gYmFsYW5jZSBjcmVhdGl2aXR5IHdpdGggaW1wcm92ZWQgbG9naWMgYW5kIGdlbmVyYWwga25vd2xlZGdlLlxuXG5DcmVhdGVkIGJ5IFtTYW8xMGtdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vU2FvMTBrKSwgdGhpcyBtb2RlbCBhaW1zIHRvIG9mZmVyIGFuIGltcHJvdmVkIGV4cGVyaWVuY2Ugb3ZlciBTdGhlbm8gdjMuMiwgd2l0aCBlbmhhbmNlZCBjcmVhdGl2aXR5IGFuZCBsb2dpY2FsIHJlYXNvbmluZy5cblxuRm9yIGJlc3QgcmVzdWx0cywgdXNlIHdpdGggTGxhbWEgMyBJbnN0cnVjdCBjb250ZXh0IHRlbXBsYXRlLCB0ZW1wZXJhdHVyZSAxLjQsIGFuZCBtaW5fcCAwLjEuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tMi41LTdiLWluc3RydWN0IiwibmFtZSI6IlF3ZW4yLjUgN0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI5MDM2ODAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgN0IgaXMgdGhlIGxhdGVzdCBzZXJpZXMgb2YgUXdlbiBsYXJnZSBsYW5ndWFnZSBtb2RlbHMuIFF3ZW4yLjUgYnJpbmdzIHRoZSBmb2xsb3dpbmcgaW1wcm92ZW1lbnRzIHVwb24gUXdlbjI6XG5cbi0gU2lnbmlmaWNhbnRseSBtb3JlIGtub3dsZWRnZSBhbmQgaGFzIGdyZWF0bHkgaW1wcm92ZWQgY2FwYWJpbGl0aWVzIGluIGNvZGluZyBhbmQgbWF0aGVtYXRpY3MsIHRoYW5rcyB0byBvdXIgc3BlY2lhbGl6ZWQgZXhwZXJ0IG1vZGVscyBpbiB0aGVzZSBkb21haW5zLlxuXG4tIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyBpbiBpbnN0cnVjdGlvbiBmb2xsb3dpbmcsIGdlbmVyYXRpbmcgbG9uZyB0ZXh0cyAob3ZlciA4SyB0b2tlbnMpLCB1bmRlcnN0YW5kaW5nIHN0cnVjdHVyZWQgZGF0YSAoZS5nLCB0YWJsZXMpLCBhbmQgZ2VuZXJhdGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgZXNwZWNpYWxseSBKU09OLiBNb3JlIHJlc2lsaWVudCB0byB0aGUgZGl2ZXJzaXR5IG9mIHN5c3RlbSBwcm9tcHRzLCBlbmhhbmNpbmcgcm9sZS1wbGF5IGltcGxlbWVudGF0aW9uIGFuZCBjb25kaXRpb24tc2V0dGluZyBmb3IgY2hhdGJvdHMuXG5cbi0gTG9uZy1jb250ZXh0IFN1cHBvcnQgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIGNhbiBnZW5lcmF0ZSB1cCB0byA4SyB0b2tlbnMuXG5cbi0gTXVsdGlsaW5ndWFsIHN1cHBvcnQgZm9yIG92ZXIgMjkgbGFuZ3VhZ2VzLCBpbmNsdWRpbmcgQ2hpbmVzZSwgRW5nbGlzaCwgRnJlbmNoLCBTcGFuaXNoLCBQb3J0dWd1ZXNlLCBHZXJtYW4sIEl0YWxpYW4sIFJ1c3NpYW4sIEphcGFuZXNlLCBLb3JlYW4sIFZpZXRuYW1lc2UsIFRoYWksIEFyYWJpYywgYW5kIG1vcmUuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0xMmItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDEyQiIsImNyZWF0ZWQiOjE3NDE5MDI2MjUsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEdlbW1hIDMgMTJCIGlzIHRoZSBzZWNvbmQgbGFyZ2VzdCBpbiB0aGUgZmFtaWx5IG9mIEdlbW1hIDMgbW9kZWxzIGFmdGVyIFtHZW1tYSAzIDI3Ql0oZ29vZ2xlL2dlbW1hLTMtMjdiLWl0KSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktNC1tdWx0aW1vZGFsLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpIDQgTXVsdGltb2RhbCBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDEzOTYyODQsImRlc2NyaXB0aW9uIjoiUGhpLTQgTXVsdGltb2RhbCBJbnN0cnVjdCBpcyBhIHZlcnNhdGlsZSA1LjZCIHBhcmFtZXRlciBmb3VuZGF0aW9uIG1vZGVsIHRoYXQgY29tYmluZXMgYWR2YW5jZWQgcmVhc29uaW5nIGFuZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgY2FwYWJpbGl0aWVzIGFjcm9zcyBib3RoIHRleHQgYW5kIHZpc3VhbCBpbnB1dHMsIHByb3ZpZGluZyBhY2N1cmF0ZSB0ZXh0IG91dHB1dHMuIFRoZSB1bmlmaWVkIGFyY2hpdGVjdHVyZSBlbmFibGVzIGVmZmljaWVudCwgbG93LWxhdGVuY3kgaW5mZXJlbmNlLCBzdWl0YWJsZSBmb3IgZWRnZSBhbmQgbW9iaWxlIGRlcGxveW1lbnRzLiBQaGktNCBNdWx0aW1vZGFsIEluc3RydWN0IHN1cHBvcnRzIHRleHQgaW5wdXRzIGluIG11bHRpcGxlIGxhbmd1YWdlcyBpbmNsdWRpbmcgQXJhYmljLCBDaGluZXNlLCBFbmdsaXNoLCBGcmVuY2gsIEdlcm1hbiwgSmFwYW5lc2UsIFNwYW5pc2gsIGFuZCBtb3JlLCB3aXRoIHZpc3VhbCBpbnB1dCBvcHRpbWl6ZWQgcHJpbWFyaWx5IGZvciBFbmdsaXNoLiBJdCBkZWxpdmVycyBpbXByZXNzaXZlIHBlcmZvcm1hbmNlIG9uIG11bHRpbW9kYWwgdGFza3MgaW52b2x2aW5nIG1hdGhlbWF0aWNhbCwgc2NpZW50aWZpYywgYW5kIGRvY3VtZW50IHJlYXNvbmluZywgcHJvdmlkaW5nIGRldmVsb3BlcnMgYW5kIGVudGVycHJpc2VzIGEgcG93ZXJmdWwgeWV0IGNvbXBhY3QgbW9kZWwgZm9yIHNvcGhpc3RpY2F0ZWQgaW50ZXJhY3RpdmUgYXBwbGljYXRpb25zLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBbUGhpLTQgTXVsdGltb2RhbCBibG9nIHBvc3RdKGh0dHBzOi8vYXp1cmUubWljcm9zb2Z0LmNvbS9lbi11cy9ibG9nL2VtcG93ZXJpbmctaW5ub3ZhdGlvbi10aGUtbmV4dC1nZW5lcmF0aW9uLW9mLXRoZS1waGktZmFtaWx5LykuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMTc2ODUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi10dXJibyIsIm5hbWUiOiJRd2VuOiBRd2VuLVR1cmJvIiwiY3JlYXRlZCI6MTczODQxMDk3NCwiZGVzY3JpcHRpb24iOiJRd2VuLVR1cmJvLCBiYXNlZCBvbiBRd2VuMi41LCBpcyBhIDFNIGNvbnRleHQgbW9kZWwgdGhhdCBwcm92aWRlcyBmYXN0IHNwZWVkIGFuZCBsb3cgY29zdCwgc3VpdGFibGUgZm9yIHNpbXBsZSB0YXNrcy4iLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMTFiLXZpc2lvbi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgMTFCIFZpc2lvbiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjcyMjI0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4yIDExQiBWaXNpb24gaXMgYSBtdWx0aW1vZGFsIG1vZGVsIHdpdGggMTEgYmlsbGlvbiBwYXJhbWV0ZXJzLCBkZXNpZ25lZCB0byBoYW5kbGUgdGFza3MgY29tYmluaW5nIHZpc3VhbCBhbmQgdGV4dHVhbCBkYXRhLiBJdCBleGNlbHMgaW4gdGFza3Mgc3VjaCBhcyBpbWFnZSBjYXB0aW9uaW5nIGFuZCB2aXN1YWwgcXVlc3Rpb24gYW5zd2VyaW5nLCBicmlkZ2luZyB0aGUgZ2FwIGJldHdlZW4gbGFuZ3VhZ2UgZ2VuZXJhdGlvbiBhbmQgdmlzdWFsIHJlYXNvbmluZy4gUHJlLXRyYWluZWQgb24gYSBtYXNzaXZlIGRhdGFzZXQgb2YgaW1hZ2UtdGV4dCBwYWlycywgaXQgcGVyZm9ybXMgd2VsbCBpbiBjb21wbGV4LCBoaWdoLWFjY3VyYWN5IGltYWdlIGFuYWx5c2lzLlxuXG5JdHMgYWJpbGl0eSB0byBpbnRlZ3JhdGUgdmlzdWFsIHVuZGVyc3RhbmRpbmcgd2l0aCBsYW5ndWFnZSBwcm9jZXNzaW5nIG1ha2VzIGl0IGFuIGlkZWFsIHNvbHV0aW9uIGZvciBpbmR1c3RyaWVzIHJlcXVpcmluZyBjb21wcmVoZW5zaXZlIHZpc3VhbC1saW5ndWlzdGljIEFJIGFwcGxpY2F0aW9ucywgc3VjaCBhcyBjb250ZW50IGNyZWF0aW9uLCBBSS1kcml2ZW4gY3VzdG9tZXIgc2VydmljZSwgYW5kIHJlc2VhcmNoLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkRfVklTSU9OLm1kKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL3d3dy5sbGFtYS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwNzk0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbGl0ZS12MSIsIm5hbWUiOiJBbWF6b246IE5vdmEgTGl0ZSAxLjAiLCJjcmVhdGVkIjoxNzMzNDM3MzYzLCJkZXNjcmlwdGlvbiI6IkFtYXpvbiBOb3ZhIExpdGUgMS4wIGlzIGEgdmVyeSBsb3ctY29zdCBtdWx0aW1vZGFsIG1vZGVsIGZyb20gQW1hem9uIHRoYXQgZm9jdXNlZCBvbiBmYXN0IHByb2Nlc3Npbmcgb2YgaW1hZ2UsIHZpZGVvLCBhbmQgdGV4dCBpbnB1dHMgdG8gZ2VuZXJhdGUgdGV4dCBvdXRwdXQuIEFtYXpvbiBOb3ZhIExpdGUgY2FuIGhhbmRsZSByZWFsLXRpbWUgY3VzdG9tZXIgaW50ZXJhY3Rpb25zLCBkb2N1bWVudCBhbmFseXNpcywgYW5kIHZpc3VhbCBxdWVzdGlvbi1hbnN3ZXJpbmcgdGFza3Mgd2l0aCBoaWdoIGFjY3VyYWN5LlxuXG5XaXRoIGFuIGlucHV0IGNvbnRleHQgb2YgMzAwSyB0b2tlbnMsIGl0IGNhbiBhbmFseXplIG11bHRpcGxlIGltYWdlcyBvciB1cCB0byAzMCBtaW51dGVzIG9mIHZpZGVvIGluIGEgc2luZ2xlIGlucHV0LiIsImNvbnRleHRfbGVuZ3RoIjozMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwOSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo1MTIwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ3J5cGhlL215dGhvbWF4LWwyLTEzYiIsIm5hbWUiOiJNeXRob01heCAxM0IiLCJjcmVhdGVkIjoxNjg4MjU2MDAwLCJkZXNjcmlwdGlvbiI6Ik9uZSBvZiB0aGUgaGlnaGVzdCBwZXJmb3JtaW5nIGFuZCBtb3N0IHBvcHVsYXIgZmluZS10dW5lcyBvZiBMbGFtYSAyIDEzQiwgd2l0aCByaWNoIGRlc2NyaXB0aW9ucyBhbmQgcm9sZXBsYXkuICNtZXJnZSIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDY1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDY1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi05Yi1pdCIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDIgOUIiLCJjcmVhdGVkIjoxNzE5NTMyODAwLCJkZXNjcmlwdGlvbiI6IkdlbW1hIDIgOUIgYnkgR29vZ2xlIGlzIGFuIGFkdmFuY2VkLCBvcGVuLXNvdXJjZSBsYW5ndWFnZSBtb2RlbCB0aGF0IHNldHMgYSBuZXcgc3RhbmRhcmQgZm9yIGVmZmljaWVuY3kgYW5kIHBlcmZvcm1hbmNlIGluIGl0cyBzaXplIGNsYXNzLlxuXG5EZXNpZ25lZCBmb3IgYSB3aWRlIHZhcmlldHkgb2YgdGFza3MsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgYW5kIHJlc2VhcmNoZXJzIHRvIGJ1aWxkIGlubm92YXRpdmUgYXBwbGljYXRpb25zLCB3aGlsZSBtYWludGFpbmluZyBhY2Nlc3NpYmlsaXR5LCBzYWZldHksIGFuZCBjb3N0LWVmZmVjdGl2ZW5lc3MuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vYmxvZy5nb29nbGUvdGVjaG5vbG9neS9kZXZlbG9wZXJzL2dvb2dsZS1nZW1tYS0yLykgZm9yIG1vcmUgZGV0YWlscy4gVXNhZ2Ugb2YgR2VtbWEgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtbWEgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvZ2VtbWEvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ1bmRpOTUvdG9wcHktbS03YiIsIm5hbWUiOiJUb3BweSBNIDdCIiwiY3JlYXRlZCI6MTY5OTU3NDQwMCwiZGVzY3JpcHRpb24iOiJBIHdpbGQgN0IgcGFyYW1ldGVyIG1vZGVsIHRoYXQgbWVyZ2VzIHNldmVyYWwgbW9kZWxzIHVzaW5nIHRoZSBuZXcgdGFza19hcml0aG1ldGljIG1lcmdlIG1ldGhvZCBmcm9tIG1lcmdla2l0LlxuTGlzdCBvZiBtZXJnZWQgbW9kZWxzOlxuLSBOb3VzUmVzZWFyY2gvTm91cy1DYXB5YmFyYS03Qi1WMS45XG4tIFtIdWdnaW5nRmFjZUg0L3plcGh5ci03Yi1iZXRhXSgvbW9kZWxzL2h1Z2dpbmdmYWNlaDQvemVwaHlyLTdiLWJldGEpXG4tIGxlbW9uaWxpYS9Bc2hoTGltYVJQLU1pc3RyYWwtN0Jcbi0gVnVsa2FuZS8xMjAtRGF5cy1vZi1Tb2RvbS1Mb1JBLU1pc3RyYWwtN2Jcbi0gVW5kaTk1L01pc3RyYWwtcGlwcGEtc2hhcmVncHQtN2ItcWxvcmFcblxuI21lcmdlICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmNoYXQvb3BlbmNoYXQtN2IiLCJuYW1lIjoiT3BlbkNoYXQgMy41IDdCIiwiY3JlYXRlZCI6MTcwMTEyOTYwMCwiZGVzY3JpcHRpb24iOiJPcGVuQ2hhdCA3QiBpcyBhIGxpYnJhcnkgb2Ygb3Blbi1zb3VyY2UgbGFuZ3VhZ2UgbW9kZWxzLCBmaW5lLXR1bmVkIHdpdGggXCJDLVJMRlQgKENvbmRpdGlvbmVkIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgRmluZS1UdW5pbmcpXCIgLSBhIHN0cmF0ZWd5IGluc3BpcmVkIGJ5IG9mZmxpbmUgcmVpbmZvcmNlbWVudCBsZWFybmluZy4gSXQgaGFzIGJlZW4gdHJhaW5lZCBvbiBtaXhlZC1xdWFsaXR5IGRhdGEgd2l0aG91dCBwcmVmZXJlbmNlIGxhYmVscy5cblxuLSBGb3IgT3BlbkNoYXQgZmluZS10dW5lZCBvbiBNaXN0cmFsIDdCLCBjaGVjayBvdXQgW09wZW5DaGF0IDdCXSgvbW9kZWxzL29wZW5jaGF0L29wZW5jaGF0LTdiKS5cbi0gRm9yIE9wZW5DaGF0IGZpbmUtdHVuZWQgb24gTGxhbWEgOEIsIGNoZWNrIG91dCBbT3BlbkNoYXQgOEJdKC9tb2RlbHMvb3BlbmNoYXQvb3BlbmNoYXQtOGIpLlxuXG4jb3Blbi1zb3VyY2UiLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoib3BlbmNoYXQifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDciLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC93aXphcmRsbS0yLTdiIiwibmFtZSI6IldpemFyZExNLTIgN0IiLCJjcmVhdGVkIjoxNzEzMjI1NjAwLCJkZXNjcmlwdGlvbiI6IldpemFyZExNLTIgN0IgaXMgdGhlIHNtYWxsZXIgdmFyaWFudCBvZiBNaWNyb3NvZnQgQUkncyBsYXRlc3QgV2l6YXJkIG1vZGVsLiBJdCBpcyB0aGUgZmFzdGVzdCBhbmQgYWNoaWV2ZXMgY29tcGFyYWJsZSBwZXJmb3JtYW5jZSB3aXRoIGV4aXN0aW5nIDEweCBsYXJnZXIgb3BlbnNvdXJjZSBsZWFkaW5nIG1vZGVsc1xuXG5JdCBpcyBhIGZpbmV0dW5lIG9mIFtNaXN0cmFsIDdCIEluc3RydWN0XSgvbW9kZWxzL21pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0KSwgdXNpbmcgdGhlIHNhbWUgdGVjaG5pcXVlIGFzIFtXaXphcmRMTS0yIDh4MjJCXSgvbW9kZWxzL21pY3Jvc29mdC93aXphcmRsbS0yLTh4MjJiKS5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly93aXphcmRsbS5naXRodWIuaW8vV2l6YXJkTE0yLykuXG5cbiNtb2UiLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzIwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTI0Yi1pbnN0cnVjdC0yNTAxIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgU21hbGwgMyIsImNyZWF0ZWQiOjE3MzgyNTU0MDksImRlc2NyaXB0aW9uIjoiTWlzdHJhbCBTbWFsbCAzIGlzIGEgMjRCLXBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBvcHRpbWl6ZWQgZm9yIGxvdy1sYXRlbmN5IHBlcmZvcm1hbmNlIGFjcm9zcyBjb21tb24gQUkgdGFza3MuIFJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UsIGl0IGZlYXR1cmVzIGJvdGggcHJlLXRyYWluZWQgYW5kIGluc3RydWN0aW9uLXR1bmVkIHZlcnNpb25zIGRlc2lnbmVkIGZvciBlZmZpY2llbnQgbG9jYWwgZGVwbG95bWVudC5cblxuVGhlIG1vZGVsIGFjaGlldmVzIDgxJSBhY2N1cmFjeSBvbiB0aGUgTU1MVSBiZW5jaG1hcmsgYW5kIHBlcmZvcm1zIGNvbXBldGl0aXZlbHkgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgTGxhbWEgMy4zIDcwQiBhbmQgUXdlbiAzMkIsIHdoaWxlIG9wZXJhdGluZyBhdCB0aHJlZSB0aW1lcyB0aGUgc3BlZWQgb24gZXF1aXZhbGVudCBoYXJkd2FyZS4gW1JlYWQgdGhlIGJsb2cgcG9zdCBhYm91dCB0aGUgbW9kZWwgaGVyZS5dKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21pc3RyYWwtc21hbGwtMy8pIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktNCIsIm5hbWUiOiJNaWNyb3NvZnQ6IFBoaSA0IiwiY3JlYXRlZCI6MTczNjQ4OTg3MiwiZGVzY3JpcHRpb24iOiJbTWljcm9zb2Z0IFJlc2VhcmNoXSgvbWljcm9zb2Z0KSBQaGktNCBpcyBkZXNpZ25lZCB0byBwZXJmb3JtIHdlbGwgaW4gY29tcGxleCByZWFzb25pbmcgdGFza3MgYW5kIGNhbiBvcGVyYXRlIGVmZmljaWVudGx5IGluIHNpdHVhdGlvbnMgd2l0aCBsaW1pdGVkIG1lbW9yeSBvciB3aGVyZSBxdWljayByZXNwb25zZXMgYXJlIG5lZWRlZC4gXG5cbkF0IDE0IGJpbGxpb24gcGFyYW1ldGVycywgaXQgd2FzIHRyYWluZWQgb24gYSBtaXggb2YgaGlnaC1xdWFsaXR5IHN5bnRoZXRpYyBkYXRhc2V0cywgZGF0YSBmcm9tIGN1cmF0ZWQgd2Vic2l0ZXMsIGFuZCBhY2FkZW1pYyBtYXRlcmlhbHMuIEl0IGhhcyB1bmRlcmdvbmUgY2FyZWZ1bCBpbXByb3ZlbWVudCB0byBmb2xsb3cgaW5zdHJ1Y3Rpb25zIGFjY3VyYXRlbHkgYW5kIG1haW50YWluIHN0cm9uZyBzYWZldHkgc3RhbmRhcmRzLiBJdCB3b3JrcyBiZXN0IHdpdGggRW5nbGlzaCBsYW5ndWFnZSBpbnB1dHMuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIFtQaGktNCBUZWNobmljYWwgUmVwb3J0XShodHRwczovL2FyeGl2Lm9yZy9wZGYvMjQxMi4wODkwNSlcbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS1jb2Rlci0zMmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjIuNSBDb2RlciAzMkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzMxMzY4NDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtQ29kZXIgaXMgdGhlIGxhdGVzdCBzZXJpZXMgb2YgQ29kZS1TcGVjaWZpYyBRd2VuIGxhcmdlIGxhbmd1YWdlIG1vZGVscyAoZm9ybWVybHkga25vd24gYXMgQ29kZVF3ZW4pLiBRd2VuMi41LUNvZGVyIGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIENvZGVRd2VuMS41OlxuXG4tIFNpZ25pZmljYW50bHkgaW1wcm92ZW1lbnRzIGluICoqY29kZSBnZW5lcmF0aW9uKiosICoqY29kZSByZWFzb25pbmcqKiBhbmQgKipjb2RlIGZpeGluZyoqLiBcbi0gQSBtb3JlIGNvbXByZWhlbnNpdmUgZm91bmRhdGlvbiBmb3IgcmVhbC13b3JsZCBhcHBsaWNhdGlvbnMgc3VjaCBhcyAqKkNvZGUgQWdlbnRzKiouIE5vdCBvbmx5IGVuaGFuY2luZyBjb2RpbmcgY2FwYWJpbGl0aWVzIGJ1dCBhbHNvIG1haW50YWluaW5nIGl0cyBzdHJlbmd0aHMgaW4gbWF0aGVtYXRpY3MgYW5kIGdlbmVyYWwgY29tcGV0ZW5jaWVzLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgaXRzIGV2YWx1YXRpb24gcmVzdWx0cywgY2hlY2sgb3V0IFtRd2VuIDIuNSBDb2RlcidzIGJsb2ddKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLjUtY29kZXItZmFtaWx5LykuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMzAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMS41IEZsYXNoICIsImNyZWF0ZWQiOjE3MTU2NDQ4MDAsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDEuNSBGbGFzaCBpcyBhIGZvdW5kYXRpb24gbW9kZWwgdGhhdCBwZXJmb3JtcyB3ZWxsIGF0IGEgdmFyaWV0eSBvZiBtdWx0aW1vZGFsIHRhc2tzIHN1Y2ggYXMgdmlzdWFsIHVuZGVyc3RhbmRpbmcsIGNsYXNzaWZpY2F0aW9uLCBzdW1tYXJpemF0aW9uLCBhbmQgY3JlYXRpbmcgY29udGVudCBmcm9tIGltYWdlLCBhdWRpbyBhbmQgdmlkZW8uIEl0J3MgYWRlcHQgYXQgcHJvY2Vzc2luZyB2aXN1YWwgYW5kIHRleHQgaW5wdXRzIHN1Y2ggYXMgcGhvdG9ncmFwaHMsIGRvY3VtZW50cywgaW5mb2dyYXBoaWNzLCBhbmQgc2NyZWVuc2hvdHMuXG5cbkdlbWluaSAxLjUgRmxhc2ggaXMgZGVzaWduZWQgZm9yIGhpZ2gtdm9sdW1lLCBoaWdoLWZyZXF1ZW5jeSB0YXNrcyB3aGVyZSBjb3N0IGFuZCBsYXRlbmN5IG1hdHRlci4gT24gbW9zdCBjb21tb24gdGFza3MsIEZsYXNoIGFjaGlldmVzIGNvbXBhcmFibGUgcXVhbGl0eSB0byBvdGhlciBHZW1pbmkgUHJvIG1vZGVscyBhdCBhIHNpZ25pZmljYW50bHkgcmVkdWNlZCBjb3N0LiBGbGFzaCBpcyB3ZWxsLXN1aXRlZCBmb3IgYXBwbGljYXRpb25zIGxpa2UgY2hhdCBhc3Npc3RhbnRzIGFuZCBvbi1kZW1hbmQgY29udGVudCBnZW5lcmF0aW9uIHdoZXJlIHNwZWVkIGFuZCBzY2FsZSBtYXR0ZXIuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAxODc1IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDE1ODMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC1saXRlLTAwMSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAyLjAgRmxhc2ggTGl0ZSIsImNyZWF0ZWQiOjE3NDA1MDYyMTIsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuMCBGbGFzaCBMaXRlIG9mZmVycyBhIHNpZ25pZmljYW50bHkgZmFzdGVyIHRpbWUgdG8gZmlyc3QgdG9rZW4gKFRURlQpIGNvbXBhcmVkIHRvIFtHZW1pbmkgRmxhc2ggMS41XSgvZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUpLCB3aGlsZSBtYWludGFpbmluZyBxdWFsaXR5IG9uIHBhciB3aXRoIGxhcmdlciBtb2RlbHMgbGlrZSBbR2VtaW5pIFBybyAxLjVdKC9nb29nbGUvZ2VtaW5pLXByby0xLjUpLCBhbGwgYXQgZXh0cmVtZWx5IGVjb25vbWljYWwgdG9rZW4gcHJpY2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtNC1zY291dCIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IFNjb3V0IiwiY3JlYXRlZCI6MTc0Mzg4MTUxOSwiZGVzY3JpcHRpb24iOiJMbGFtYSA0IFNjb3V0IDE3QiBJbnN0cnVjdCAoMTZFKSBpcyBhIG1peHR1cmUtb2YtZXhwZXJ0cyAoTW9FKSBsYW5ndWFnZSBtb2RlbCBkZXZlbG9wZWQgYnkgTWV0YSwgYWN0aXZhdGluZyAxNyBiaWxsaW9uIHBhcmFtZXRlcnMgb3V0IG9mIGEgdG90YWwgb2YgMTA5Qi4gSXQgc3VwcG9ydHMgbmF0aXZlIG11bHRpbW9kYWwgaW5wdXQgKHRleHQgYW5kIGltYWdlKSBhbmQgbXVsdGlsaW5ndWFsIG91dHB1dCAodGV4dCBhbmQgY29kZSkgYWNyb3NzIDEyIHN1cHBvcnRlZCBsYW5ndWFnZXMuIERlc2lnbmVkIGZvciBhc3Npc3RhbnQtc3R5bGUgaW50ZXJhY3Rpb24gYW5kIHZpc3VhbCByZWFzb25pbmcsIFNjb3V0IHVzZXMgMTYgZXhwZXJ0cyBwZXIgZm9yd2FyZCBwYXNzIGFuZCBmZWF0dXJlcyBhIGNvbnRleHQgbGVuZ3RoIG9mIDEwIG1pbGxpb24gdG9rZW5zLCB3aXRoIGEgdHJhaW5pbmcgY29ycHVzIG9mIH40MCB0cmlsbGlvbiB0b2tlbnMuXG5cbkJ1aWx0IGZvciBoaWdoIGVmZmljaWVuY3kgYW5kIGxvY2FsIG9yIGNvbW1lcmNpYWwgZGVwbG95bWVudCwgTGxhbWEgNCBTY291dCBpbmNvcnBvcmF0ZXMgZWFybHkgZnVzaW9uIGZvciBzZWFtbGVzcyBtb2RhbGl0eSBpbnRlZ3JhdGlvbi4gSXQgaXMgaW5zdHJ1Y3Rpb24tdHVuZWQgZm9yIHVzZSBpbiBtdWx0aWxpbmd1YWwgY2hhdCwgY2FwdGlvbmluZywgYW5kIGltYWdlIHVuZGVyc3RhbmRpbmcgdGFza3MuIFJlbGVhc2VkIHVuZGVyIHRoZSBMbGFtYSA0IENvbW11bml0eSBMaWNlbnNlLCBpdCB3YXMgbGFzdCB0cmFpbmVkIG9uIGRhdGEgdXAgdG8gQXVndXN0IDIwMjQgYW5kIGxhdW5jaGVkIHB1YmxpY2x5IG9uIEFwcmlsIDUsIDIwMjUuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDUwMTMiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLWx1bWltYWlkLThiOmV4dGVuZGVkIiwibmFtZSI6Ik5ldmVyU2xlZXA6IExsYW1hIDMgTHVtaW1haWQgOEIgKGV4dGVuZGVkKSIsImNyZWF0ZWQiOjE3MTQ3ODA4MDAsImRlc2NyaXB0aW9uIjoiVGhlIE5ldmVyU2xlZXAgdGVhbSBpcyBiYWNrLCB3aXRoIGEgTGxhbWEgMyA4QiBmaW5ldHVuZSB0cmFpbmVkIG9uIHRoZWlyIGN1cmF0ZWQgcm9sZXBsYXkgZGF0YS4gU3RyaWtpbmcgYSBiYWxhbmNlIGJldHdlZW4gZVJQIGFuZCBSUCwgTHVtaW1haWQgd2FzIGRlc2lnbmVkIHRvIGJlIHNlcmlvdXMsIHlldCB1bmNlbnNvcmVkIHdoZW4gbmVjZXNzYXJ5LlxuXG5UbyBlbmhhbmNlIGl0J3Mgb3ZlcmFsbCBpbnRlbGxpZ2VuY2UgYW5kIGNoYXQgY2FwYWJpbGl0eSwgcm91Z2hseSA0MCUgb2YgdGhlIHRyYWluaW5nIGRhdGEgd2FzIG5vdCByb2xlcGxheS4gVGhpcyBwcm92aWRlcyBhIGJyZWFkdGggb2Yga25vd2xlZGdlIHRvIGFjY2Vzcywgd2hpbGUgc3RpbGwga2VlcGluZyByb2xlcGxheSBhcyB0aGUgcHJpbWFyeSBzdHJlbmd0aC5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjI0NTc2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDkzNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjQ1NzYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im5ldmVyc2xlZXAvbGxhbWEtMy1sdW1pbWFpZC04YiIsIm5hbWUiOiJOZXZlclNsZWVwOiBMbGFtYSAzIEx1bWltYWlkIDhCIiwiY3JlYXRlZCI6MTcxNDc4MDgwMCwiZGVzY3JpcHRpb24iOiJUaGUgTmV2ZXJTbGVlcCB0ZWFtIGlzIGJhY2ssIHdpdGggYSBMbGFtYSAzIDhCIGZpbmV0dW5lIHRyYWluZWQgb24gdGhlaXIgY3VyYXRlZCByb2xlcGxheSBkYXRhLiBTdHJpa2luZyBhIGJhbGFuY2UgYmV0d2VlbiBlUlAgYW5kIFJQLCBMdW1pbWFpZCB3YXMgZGVzaWduZWQgdG8gYmUgc2VyaW91cywgeWV0IHVuY2Vuc29yZWQgd2hlbiBuZWNlc3NhcnkuXG5cblRvIGVuaGFuY2UgaXQncyBvdmVyYWxsIGludGVsbGlnZW5jZSBhbmQgY2hhdCBjYXBhYmlsaXR5LCByb3VnaGx5IDQwJSBvZiB0aGUgdHJhaW5pbmcgZGF0YSB3YXMgbm90IHJvbGVwbGF5LiBUaGlzIHByb3ZpZGVzIGEgYnJlYWR0aCBvZiBrbm93bGVkZ2UgdG8gYWNjZXNzLCB3aGlsZSBzdGlsbCBrZWVwaW5nIHJvbGVwbGF5IGFzIHRoZSBwcmltYXJ5IHN0cmVuZ3RoLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MjQ1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwOTM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNDU3NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLjEtbHVtaW1haWQtOGIiLCJuYW1lIjoiTmV2ZXJTbGVlcDogTHVtaW1haWQgdjAuMiA4QiIsImNyZWF0ZWQiOjE3MjYzNTg0MDAsImRlc2NyaXB0aW9uIjoiTHVtaW1haWQgdjAuMiA4QiBpcyBhIGZpbmV0dW5lIG9mIFtMbGFtYSAzLjEgOEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtOGItaW5zdHJ1Y3QpIHdpdGggYSBcIkhVR0Ugc3RlcCB1cCBkYXRhc2V0IHdpc2VcIiBjb21wYXJlZCB0byBMdW1pbWFpZCB2MC4xLiBTbG9wcHkgY2hhdHMgb3V0cHV0IHdlcmUgcHVyZ2VkLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDkzNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taW5pc3RyYWwtOGIiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDhCIiwiY3JlYXRlZCI6MTcyOTEyMzIwMCwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgOEIgaXMgYW4gOEIgcGFyYW1ldGVyIG1vZGVsIGZlYXR1cmluZyBhIHVuaXF1ZSBpbnRlcmxlYXZlZCBzbGlkaW5nLXdpbmRvdyBhdHRlbnRpb24gcGF0dGVybiBmb3IgZmFzdGVyLCBtZW1vcnktZWZmaWNpZW50IGluZmVyZW5jZS4gRGVzaWduZWQgZm9yIGVkZ2UgdXNlIGNhc2VzLCBpdCBzdXBwb3J0cyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoIGFuZCBleGNlbHMgaW4ga25vd2xlZGdlIGFuZCByZWFzb25pbmcgdGFza3MuIEl0IG91dHBlcmZvcm1zIHBlZXJzIGluIHRoZSBzdWItMTBCIGNhdGVnb3J5LCBtYWtpbmcgaXQgcGVyZmVjdCBmb3IgbG93LWxhdGVuY3ksIHByaXZhY3ktZmlyc3QgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvcGl4dHJhbC0xMmIiLCJuYW1lIjoiTWlzdHJhbDogUGl4dHJhbCAxMkIiLCJjcmVhdGVkIjoxNzI1OTI2NDAwLCJkZXNjcmlwdGlvbiI6IlRoZSBmaXJzdCBtdWx0aS1tb2RhbCwgdGV4dCtpbWFnZS10by10ZXh0IG1vZGVsIGZyb20gTWlzdHJhbCBBSS4gSXRzIHdlaWdodHMgd2VyZSBsYXVuY2hlZCB2aWEgdG9ycmVudDogaHR0cHM6Ly94LmNvbS9taXN0cmFsYWkvc3RhdHVzLzE4MzM3NTgyODUxNjc3MjI4MzYuIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMTQ0NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaWNyb3NvZnQvcGhpLTMtbWluaS0xMjhrLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpLTMgTWluaSAxMjhLIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxNjY4MTYwMCwiZGVzY3JpcHRpb24iOiJQaGktMyBNaW5pIGlzIGEgcG93ZXJmdWwgMy44QiBwYXJhbWV0ZXIgbW9kZWwgZGVzaWduZWQgZm9yIGFkdmFuY2VkIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIHJlYXNvbmluZywgYW5kIGluc3RydWN0aW9uIGZvbGxvd2luZy4gT3B0aW1pemVkIHRocm91Z2ggc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyBhbmQgcHJlZmVyZW5jZSBhZGp1c3RtZW50cywgaXQgZXhjZWxzIGluIHRhc2tzIGludm9sdmluZyBjb21tb24gc2Vuc2UsIG1hdGhlbWF0aWNzLCBsb2dpY2FsIHJlYXNvbmluZywgYW5kIGNvZGUgcHJvY2Vzc2luZy5cblxuQXQgdGltZSBvZiByZWxlYXNlLCBQaGktMyBNZWRpdW0gZGVtb25zdHJhdGVkIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbGlnaHR3ZWlnaHQgbW9kZWxzLiBUaGlzIG1vZGVsIGlzIHN0YXRpYywgdHJhaW5lZCBvbiBhbiBvZmZsaW5lIGRhdGFzZXQgd2l0aCBhbiBPY3RvYmVyIDIwMjMgY3V0b2ZmIGRhdGUuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6InBoaTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktMy41LW1pbmktMTI4ay1pbnN0cnVjdCIsIm5hbWUiOiJNaWNyb3NvZnQ6IFBoaS0zLjUgTWluaSAxMjhLIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNDE5ODQwMCwiZGVzY3JpcHRpb24iOiJQaGktMy41IG1vZGVscyBhcmUgbGlnaHR3ZWlnaHQsIHN0YXRlLW9mLXRoZS1hcnQgb3BlbiBtb2RlbHMuIFRoZXNlIG1vZGVscyB3ZXJlIHRyYWluZWQgd2l0aCBQaGktMyBkYXRhc2V0cyB0aGF0IGluY2x1ZGUgYm90aCBzeW50aGV0aWMgZGF0YSBhbmQgdGhlIGZpbHRlcmVkLCBwdWJsaWNseSBhdmFpbGFibGUgd2Vic2l0ZXMgZGF0YSwgd2l0aCBhIGZvY3VzIG9uIGhpZ2ggcXVhbGl0eSBhbmQgcmVhc29uaW5nLWRlbnNlIHByb3BlcnRpZXMuIFBoaS0zLjUgTWluaSB1c2VzIDMuOEIgcGFyYW1ldGVycywgYW5kIGlzIGEgZGVuc2UgZGVjb2Rlci1vbmx5IHRyYW5zZm9ybWVyIG1vZGVsIHVzaW5nIHRoZSBzYW1lIHRva2VuaXplciBhcyBbUGhpLTMgTWluaV0oL21vZGVscy9taWNyb3NvZnQvcGhpLTMtbWluaS0xMjhrLWluc3RydWN0KS5cblxuVGhlIG1vZGVscyB1bmRlcndlbnQgYSByaWdvcm91cyBlbmhhbmNlbWVudCBwcm9jZXNzLCBpbmNvcnBvcmF0aW5nIGJvdGggc3VwZXJ2aXNlZCBmaW5lLXR1bmluZywgcHJveGltYWwgcG9saWN5IG9wdGltaXphdGlvbiwgYW5kIGRpcmVjdCBwcmVmZXJlbmNlIG9wdGltaXphdGlvbiB0byBlbnN1cmUgcHJlY2lzZSBpbnN0cnVjdGlvbiBhZGhlcmVuY2UgYW5kIHJvYnVzdCBzYWZldHkgbWVhc3VyZXMuIFdoZW4gYXNzZXNzZWQgYWdhaW5zdCBiZW5jaG1hcmtzIHRoYXQgdGVzdCBjb21tb24gc2Vuc2UsIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIG1hdGgsIGNvZGUsIGxvbmcgY29udGV4dCBhbmQgbG9naWNhbCByZWFzb25pbmcsIFBoaS0zLjUgbW9kZWxzIHNob3djYXNlZCByb2J1c3QgYW5kIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbW9kZWxzIHdpdGggbGVzcyB0aGFuIDEzIGJpbGxpb24gcGFyYW1ldGVycy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoicGhpMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbC9taW5pc3RyYWwtOGIiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDhCIiwiY3JlYXRlZCI6MTc0MzQzMDAyMSwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgOEIgaXMgYSBzdGF0ZS1vZi10aGUtYXJ0IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3Igb24tZGV2aWNlIGFuZCBlZGdlIGNvbXB1dGluZy4gRGVzaWduZWQgZm9yIGVmZmljaWVuY3kgaW4ga25vd2xlZGdlLWludGVuc2l2ZSB0YXNrcywgY29tbW9uc2Vuc2UgcmVhc29uaW5nLCBhbmQgZnVuY3Rpb24tY2FsbGluZywgaXQgZmVhdHVyZXMgYSBzcGVjaWFsaXplZCBpbnRlcmxlYXZlZCBzbGlkaW5nLXdpbmRvdyBhdHRlbnRpb24gbWVjaGFuaXNtLCBlbmFibGluZyBmYXN0ZXIgYW5kIG1vcmUgbWVtb3J5LWVmZmljaWVudCBpbmZlcmVuY2UuIE1pbmlzdHJhbCA4QiBleGNlbHMgaW4gbG9jYWwsIGxvdy1sYXRlbmN5IGFwcGxpY2F0aW9ucyBzdWNoIGFzIG9mZmxpbmUgdHJhbnNsYXRpb24sIHNtYXJ0IGFzc2lzdGFudHMsIGF1dG9ub21vdXMgcm9ib3RpY3MsIGFuZCBsb2NhbCBhbmFseXRpY3MuXG5cblRoZSBtb2RlbCBzdXBwb3J0cyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoIGFuZCBjYW4gZnVuY3Rpb24gYXMgYSBwZXJmb3JtYW50IGludGVybWVkaWFyeSBpbiBtdWx0aS1zdGVwIGFnZW50aWMgd29ya2Zsb3dzLCBlZmZpY2llbnRseSBoYW5kbGluZyB0YXNrcyBsaWtlIGlucHV0IHBhcnNpbmcsIEFQSSBjYWxscywgYW5kIHRhc2sgcm91dGluZy4gSXQgY29uc2lzdGVudGx5IG91dHBlcmZvcm1zIGNvbXBhcmFibGUgbW9kZWxzIGxpa2UgTWlzdHJhbCA3QiBhY3Jvc3MgYmVuY2htYXJrcywgbWFraW5nIGl0IHBhcnRpY3VsYXJseSBzdWl0YWJsZSBmb3IgY29tcHV0ZS1lZmZpY2llbnQsIHByaXZhY3ktZm9jdXNlZCBzY2VuYXJpb3MuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTI3Yi1pdCIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgMjdCIiwiY3JlYXRlZCI6MTc0MTc1NjM1OSwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4gR2VtbWEgMyAyN0IgaXMgR29vZ2xlJ3MgbGF0ZXN0IG9wZW4gc291cmNlIG1vZGVsLCBzdWNjZXNzb3IgdG8gW0dlbW1hIDJdKGdvb2dsZS9nZW1tYS0yLTI3Yi1pdCkiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMDI1NiIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidG9reW90ZWNoLWxsbS9sbGFtYS0zLjEtc3dhbGxvdy04Yi1pbnN0cnVjdC12MC4zIiwibmFtZSI6IlN3YWxsb3c6IExsYW1hIDMuMSBTd2FsbG93IDhCIEluc3RydWN0IFYwLjMiLCJjcmVhdGVkIjoxNzQzOTg2NzQyLCJkZXNjcmlwdGlvbiI6IkxsYW1hIDMuMSBTd2FsbG93IDhCIGlzIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdGhhdCB3YXMgYnVpbHQgYnkgY29udGludWFsIHByZS10cmFpbmluZyBvbiB0aGUgTWV0YSBMbGFtYSAzLjEgOEIuIExsYW1hIDMuMSBTd2FsbG93IGVuaGFuY2VkIHRoZSBKYXBhbmVzZSBsYW5ndWFnZSBjYXBhYmlsaXRpZXMgb2YgdGhlIG9yaWdpbmFsIExsYW1hIDMuMSB3aGlsZSByZXRhaW5pbmcgdGhlIEVuZ2xpc2ggbGFuZ3VhZ2UgY2FwYWJpbGl0aWVzLiBcblN3YWxsb3cgdXNlZCBhcHByb3hpbWF0ZWx5IDIwMCBiaWxsaW9uIHRva2VucyB0aGF0IHdlcmUgc2FtcGxlZCBmcm9tIGEgbGFyZ2UgSmFwYW5lc2Ugd2ViIGNvcnB1cyAoU3dhbGxvdyBDb3JwdXMgVmVyc2lvbiAyKSwgSmFwYW5lc2UgYW5kIEVuZ2xpc2ggV2lraXBlZGlhIGFydGljbGVzLCBhbmQgbWF0aGVtYXRpY2FsIGFuZCBjb2RpbmcgY29udGVudHMsIGV0YyAoc2VlIHRoZSBUcmFpbmluZyBEYXRhc2V0cyBzZWN0aW9uIG9mIHRoZSBiYXNlIG1vZGVsKSBmb3IgY29udGludWFsIHByZS10cmFpbmluZy4gVGhlIGluc3RydWN0aW9uLXR1bmVkIG1vZGVscyAoSW5zdHJ1Y3QpIHdlcmUgYnVpbHQgYnkgc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyAoU0ZUKSBvbiB0aGUgc3ludGhldGljIGRhdGEgc3BlY2lhbGx5IGJ1aWx0IGZvciBKYXBhbmVzZS5cbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1zbWFsbC0zLjEtMjRiLWluc3RydWN0IiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgU21hbGwgMy4xIDI0QiIsImNyZWF0ZWQiOjE3NDIyMzg5MzcsImRlc2NyaXB0aW9uIjoiTWlzdHJhbCBTbWFsbCAzLjEgMjRCIEluc3RydWN0IGlzIGFuIHVwZ3JhZGVkIHZhcmlhbnQgb2YgTWlzdHJhbCBTbWFsbCAzICgyNTAxKSwgZmVhdHVyaW5nIDI0IGJpbGxpb24gcGFyYW1ldGVycyB3aXRoIGFkdmFuY2VkIG11bHRpbW9kYWwgY2FwYWJpbGl0aWVzLiBJdCBwcm92aWRlcyBzdGF0ZS1vZi10aGUtYXJ0IHBlcmZvcm1hbmNlIGluIHRleHQtYmFzZWQgcmVhc29uaW5nIGFuZCB2aXNpb24gdGFza3MsIGluY2x1ZGluZyBpbWFnZSBhbmFseXNpcywgcHJvZ3JhbW1pbmcsIG1hdGhlbWF0aWNhbCByZWFzb25pbmcsIGFuZCBtdWx0aWxpbmd1YWwgc3VwcG9ydCBhY3Jvc3MgZG96ZW5zIG9mIGxhbmd1YWdlcy4gRXF1aXBwZWQgd2l0aCBhbiBleHRlbnNpdmUgMTI4ayB0b2tlbiBjb250ZXh0IHdpbmRvdyBhbmQgb3B0aW1pemVkIGZvciBlZmZpY2llbnQgbG9jYWwgaW5mZXJlbmNlLCBpdCBzdXBwb3J0cyB1c2UgY2FzZXMgc3VjaCBhcyBjb252ZXJzYXRpb25hbCBhZ2VudHMsIGZ1bmN0aW9uIGNhbGxpbmcsIGxvbmctZG9jdW1lbnQgY29tcHJlaGVuc2lvbiwgYW5kIHByaXZhY3ktc2Vuc2l0aXZlIGRlcGxveW1lbnRzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwOTI2NCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC0wMDEiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIiwiY3JlYXRlZCI6MTczODc2OTQxMywiZGVzY3JpcHRpb24iOiJHZW1pbmkgRmxhc2ggMi4wIG9mZmVycyBhIHNpZ25pZmljYW50bHkgZmFzdGVyIHRpbWUgdG8gZmlyc3QgdG9rZW4gKFRURlQpIGNvbXBhcmVkIHRvIFtHZW1pbmkgRmxhc2ggMS41XSgvZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUpLCB3aGlsZSBtYWludGFpbmluZyBxdWFsaXR5IG9uIHBhciB3aXRoIGxhcmdlciBtb2RlbHMgbGlrZSBbR2VtaW5pIFBybyAxLjVdKC9nb29nbGUvZ2VtaW5pLXByby0xLjUpLiBJdCBpbnRyb2R1Y2VzIG5vdGFibGUgZW5oYW5jZW1lbnRzIGluIG11bHRpbW9kYWwgdW5kZXJzdGFuZGluZywgY29kaW5nIGNhcGFiaWxpdGllcywgY29tcGxleCBpbnN0cnVjdGlvbiBmb2xsb3dpbmcsIGFuZCBmdW5jdGlvbiBjYWxsaW5nLiBUaGVzZSBhZHZhbmNlbWVudHMgY29tZSB0b2dldGhlciB0byBkZWxpdmVyIG1vcmUgc2VhbWxlc3MgYW5kIHJvYnVzdCBhZ2VudGljIGV4cGVyaWVuY2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMDI1OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXIxLWRpc3RpbGwtcXdlbi0zMmIiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgUXdlbiAzMkIiLCJjcmVhdGVkIjoxNzM4MTk0ODMwLCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFIxIERpc3RpbGwgUXdlbiAzMkIgaXMgYSBkaXN0aWxsZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgYmFzZWQgb24gW1F3ZW4gMi41IDMyQl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4yLjUtMzJCKSwgdXNpbmcgb3V0cHV0cyBmcm9tIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKS4gSXQgb3V0cGVyZm9ybXMgT3BlbkFJJ3MgbzEtbWluaSBhY3Jvc3MgdmFyaW91cyBiZW5jaG1hcmtzLCBhY2hpZXZpbmcgbmV3IHN0YXRlLW9mLXRoZS1hcnQgcmVzdWx0cyBmb3IgZGVuc2UgbW9kZWxzLlxuXG5PdGhlciBiZW5jaG1hcmsgcmVzdWx0cyBpbmNsdWRlOlxuXG4tIEFJTUUgMjAyNCBwYXNzQDE6IDcyLjZcbi0gTUFUSC01MDAgcGFzc0AxOiA5NC4zXG4tIENvZGVGb3JjZXMgUmF0aW5nOiAxNjkxXG5cblRoZSBtb2RlbCBsZXZlcmFnZXMgZmluZS10dW5pbmcgZnJvbSBEZWVwU2VlayBSMSdzIG91dHB1dHMsIGVuYWJsaW5nIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGNvbXBhcmFibGUgdG8gbGFyZ2VyIGZyb250aWVyIG1vZGVscy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMy03MGItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4zIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MzM1MDYxMzcsImRlc2NyaXB0aW9uIjoiVGhlIE1ldGEgTGxhbWEgMy4zIG11bHRpbGluZ3VhbCBsYXJnZSBsYW5ndWFnZSBtb2RlbCAoTExNKSBpcyBhIHByZXRyYWluZWQgYW5kIGluc3RydWN0aW9uIHR1bmVkIGdlbmVyYXRpdmUgbW9kZWwgaW4gNzBCICh0ZXh0IGluL3RleHQgb3V0KS4gVGhlIExsYW1hIDMuMyBpbnN0cnVjdGlvbiB0dW5lZCB0ZXh0IG9ubHkgbW9kZWwgaXMgb3B0aW1pemVkIGZvciBtdWx0aWxpbmd1YWwgZGlhbG9ndWUgdXNlIGNhc2VzIGFuZCBvdXRwZXJmb3JtcyBtYW55IG9mIHRoZSBhdmFpbGFibGUgb3BlbiBzb3VyY2UgYW5kIGNsb3NlZCBjaGF0IG1vZGVscyBvbiBjb21tb24gaW5kdXN0cnkgYmVuY2htYXJrcy5cblxuU3VwcG9ydGVkIGxhbmd1YWdlczogRW5nbGlzaCwgR2VybWFuLCBGcmVuY2gsIEl0YWxpYW4sIFBvcnR1Z3Vlc2UsIEhpbmRpLCBTcGFuaXNoLCBhbmQgVGhhaS5cblxuW01vZGVsIENhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18zL01PREVMX0NBUkQubWQpIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS03MGItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4xIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgNzBCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tNzBiLWluc3RydWN0IiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3Mjg5NTA0MDAsImRlc2NyaXB0aW9uIjoiTlZJRElBJ3MgTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBpcyBhIGxhbmd1YWdlIG1vZGVsIGRlc2lnbmVkIGZvciBnZW5lcmF0aW5nIHByZWNpc2UgYW5kIHVzZWZ1bCByZXNwb25zZXMuIExldmVyYWdpbmcgW0xsYW1hIDMuMSA3MEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSBhcmNoaXRlY3R1cmUgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRiksIGl0IGV4Y2VscyBpbiBhdXRvbWF0aWMgYWxpZ25tZW50IGJlbmNobWFya3MuIFRoaXMgbW9kZWwgaXMgdGFpbG9yZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgaGlnaCBhY2N1cmFjeSBpbiBoZWxwZnVsbmVzcyBhbmQgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgc3VpdGFibGUgZm9yIGRpdmVyc2UgdXNlciBxdWVyaWVzIGFjcm9zcyBtdWx0aXBsZSBkb21haW5zLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvaGVybWVzLTMtbGxhbWEtMy4xLTcwYiIsIm5hbWUiOiJOb3VzOiBIZXJtZXMgMyA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIzOTM5MjAwLCJkZXNjcmlwdGlvbiI6Ikhlcm1lcyAzIGlzIGEgZ2VuZXJhbGlzdCBsYW5ndWFnZSBtb2RlbCB3aXRoIG1hbnkgaW1wcm92ZW1lbnRzIG92ZXIgW0hlcm1lcyAyXSgvbW9kZWxzL25vdXNyZXNlYXJjaC9ub3VzLWhlcm1lcy0yLW1pc3RyYWwtN2ItZHBvKSwgaW5jbHVkaW5nIGFkdmFuY2VkIGFnZW50aWMgY2FwYWJpbGl0aWVzLCBtdWNoIGJldHRlciByb2xlcGxheWluZywgcmVhc29uaW5nLCBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbiwgbG9uZyBjb250ZXh0IGNvaGVyZW5jZSwgYW5kIGltcHJvdmVtZW50cyBhY3Jvc3MgdGhlIGJvYXJkLlxuXG5IZXJtZXMgMyA3MEIgaXMgYSBjb21wZXRpdGl2ZSwgaWYgbm90IHN1cGVyaW9yIGZpbmV0dW5lIG9mIHRoZSBbTGxhbWEtMy4xIDcwQiBmb3VuZGF0aW9uIG1vZGVsXSgvbW9kZWxzL21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdCksIGZvY3VzZWQgb24gYWxpZ25pbmcgTExNcyB0byB0aGUgdXNlciwgd2l0aCBwb3dlcmZ1bCBzdGVlcmluZyBjYXBhYmlsaXRpZXMgYW5kIGNvbnRyb2wgZ2l2ZW4gdG8gdGhlIGVuZCB1c2VyLlxuXG5UaGUgSGVybWVzIDMgc2VyaWVzIGJ1aWxkcyBhbmQgZXhwYW5kcyBvbiB0aGUgSGVybWVzIDIgc2V0IG9mIGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIG1vcmUgcG93ZXJmdWwgYW5kIHJlbGlhYmxlIGZ1bmN0aW9uIGNhbGxpbmcgYW5kIHN0cnVjdHVyZWQgb3V0cHV0IGNhcGFiaWxpdGllcywgZ2VuZXJhbGlzdCBhc3Npc3RhbnQgY2FwYWJpbGl0aWVzLCBhbmQgaW1wcm92ZWQgY29kZSBnZW5lcmF0aW9uIHNraWxscy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjIuNSA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI2NzA0MDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgNzJCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImxpcXVpZC9sZm0tNDBiIiwibmFtZSI6IkxpcXVpZDogTEZNIDQwQiBNb0UiLCJjcmVhdGVkIjoxNzI3NjU0NDAwLCJkZXNjcmlwdGlvbiI6IkxpcXVpZCdzIDQwLjNCIE1peHR1cmUgb2YgRXhwZXJ0cyAoTW9FKSBtb2RlbC4gTGlxdWlkIEZvdW5kYXRpb24gTW9kZWxzIChMRk1zKSBhcmUgbGFyZ2UgbmV1cmFsIG5ldHdvcmtzIGJ1aWx0IHdpdGggY29tcHV0YXRpb25hbCB1bml0cyByb290ZWQgaW4gZHluYW1pYyBzeXN0ZW1zLlxuXG5MRk1zIGFyZSBnZW5lcmFsLXB1cnBvc2UgQUkgbW9kZWxzIHRoYXQgY2FuIGJlIHVzZWQgdG8gbW9kZWwgYW55IGtpbmQgb2Ygc2VxdWVudGlhbCBkYXRhLCBpbmNsdWRpbmcgdmlkZW8sIGF1ZGlvLCB0ZXh0LCB0aW1lIHNlcmllcywgYW5kIHNpZ25hbHMuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vd3d3LmxpcXVpZC5haS9saXF1aWQtZm91bmRhdGlvbi1tb2RlbHMpIGZvciBiZW5jaG1hcmtzIGFuZCBtb3JlIGluZm8uIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1xd2VuLTE0YiIsIm5hbWUiOiJEZWVwU2VlazogUjEgRGlzdGlsbCBRd2VuIDE0QiIsImNyZWF0ZWQiOjE3MzgxOTM5NDAsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgRGlzdGlsbCBRd2VuIDE0QiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiBbUXdlbiAyLjUgMTRCXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2RlZXBzZWVrLWFpL0RlZXBTZWVrLVIxLURpc3RpbGwtUXdlbi0xNEIpLCB1c2luZyBvdXRwdXRzIGZyb20gW0RlZXBTZWVrIFIxXSgvZGVlcHNlZWsvZGVlcHNlZWstcjEpLiBJdCBvdXRwZXJmb3JtcyBPcGVuQUkncyBvMS1taW5pIGFjcm9zcyB2YXJpb3VzIGJlbmNobWFya3MsIGFjaGlldmluZyBuZXcgc3RhdGUtb2YtdGhlLWFydCByZXN1bHRzIGZvciBkZW5zZSBtb2RlbHMuXG5cbk90aGVyIGJlbmNobWFyayByZXN1bHRzIGluY2x1ZGU6XG5cbi0gQUlNRSAyMDI0IHBhc3NAMTogNjkuN1xuLSBNQVRILTUwMCBwYXNzQDE6IDkzLjlcbi0gQ29kZUZvcmNlcyBSYXRpbmc6IDE0ODFcblxuVGhlIG1vZGVsIGxldmVyYWdlcyBmaW5lLXR1bmluZyBmcm9tIERlZXBTZWVrIFIxJ3Mgb3V0cHV0cywgZW5hYmxpbmcgY29tcGV0aXRpdmUgcGVyZm9ybWFuY2UgY29tcGFyYWJsZSB0byBsYXJnZXIgZnJvbnRpZXIgbW9kZWxzLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdxLTMyYiIsIm5hbWUiOiJRd2VuOiBRd1EgMzJCIiwiY3JlYXRlZCI6MTc0MTIwODgxNCwiZGVzY3JpcHRpb24iOiJRd1EgaXMgdGhlIHJlYXNvbmluZyBtb2RlbCBvZiB0aGUgUXdlbiBzZXJpZXMuIENvbXBhcmVkIHdpdGggY29udmVudGlvbmFsIGluc3RydWN0aW9uLXR1bmVkIG1vZGVscywgUXdRLCB3aGljaCBpcyBjYXBhYmxlIG9mIHRoaW5raW5nIGFuZCByZWFzb25pbmcsIGNhbiBhY2hpZXZlIHNpZ25pZmljYW50bHkgZW5oYW5jZWQgcGVyZm9ybWFuY2UgaW4gZG93bnN0cmVhbSB0YXNrcywgZXNwZWNpYWxseSBoYXJkIHByb2JsZW1zLiBRd1EtMzJCIGlzIHRoZSBtZWRpdW0tc2l6ZWQgcmVhc29uaW5nIG1vZGVsLCB3aGljaCBpcyBjYXBhYmxlIG9mIGFjaGlldmluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBhZ2FpbnN0IHN0YXRlLW9mLXRoZS1hcnQgcmVhc29uaW5nIG1vZGVscywgZS5nLiwgRGVlcFNlZWstUjEsIG8xLW1pbmkuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoicXdxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by1taW5pLTIwMjQtMDctMTgiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8tbWluaSAoMjAyNC0wNy0xOCkiLCJjcmVhdGVkIjoxNzIxMjYwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00byBtaW5pIGlzIE9wZW5BSSdzIG5ld2VzdCBtb2RlbCBhZnRlciBbR1BULTQgT21uaV0oL21vZGVscy9vcGVuYWkvZ3B0LTRvKSwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy5cblxuQXMgdGhlaXIgbW9zdCBhZHZhbmNlZCBzbWFsbCBtb2RlbCwgaXQgaXMgbWFueSBtdWx0aXBsZXMgbW9yZSBhZmZvcmRhYmxlIHRoYW4gb3RoZXIgcmVjZW50IGZyb250aWVyIG1vZGVscywgYW5kIG1vcmUgdGhhbiA2MCUgY2hlYXBlciB0aGFuIFtHUFQtMy41IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtMy41LXR1cmJvKS4gSXQgbWFpbnRhaW5zIFNPVEEgaW50ZWxsaWdlbmNlLCB3aGlsZSBiZWluZyBzaWduaWZpY2FudGx5IG1vcmUgY29zdC1lZmZlY3RpdmUuXG5cbkdQVC00byBtaW5pIGFjaGlldmVzIGFuIDgyJSBzY29yZSBvbiBNTUxVIGFuZCBwcmVzZW50bHkgcmFua3MgaGlnaGVyIHRoYW4gR1BULTQgb24gY2hhdCBwcmVmZXJlbmNlcyBbY29tbW9uIGxlYWRlcmJvYXJkc10oaHR0cHM6Ly9hcmVuYS5sbXN5cy5vcmcvKS5cblxuQ2hlY2sgb3V0IHRoZSBbbGF1bmNoIGFubm91bmNlbWVudF0oaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2dwdC00by1taW5pLWFkdmFuY2luZy1jb3N0LWVmZmljaWVudC1pbnRlbGxpZ2VuY2UvKSB0byBsZWFybiBtb3JlLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA3MjI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLW1pbmkiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8tbWluaSIsImNyZWF0ZWQiOjE3MjEyNjA4MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIG1pbmkgaXMgT3BlbkFJJ3MgbmV3ZXN0IG1vZGVsIGFmdGVyIFtHUFQtNCBPbW5pXSgvbW9kZWxzL29wZW5haS9ncHQtNG8pLCBzdXBwb3J0aW5nIGJvdGggdGV4dCBhbmQgaW1hZ2UgaW5wdXRzIHdpdGggdGV4dCBvdXRwdXRzLlxuXG5BcyB0aGVpciBtb3N0IGFkdmFuY2VkIHNtYWxsIG1vZGVsLCBpdCBpcyBtYW55IG11bHRpcGxlcyBtb3JlIGFmZm9yZGFibGUgdGhhbiBvdGhlciByZWNlbnQgZnJvbnRpZXIgbW9kZWxzLCBhbmQgbW9yZSB0aGFuIDYwJSBjaGVhcGVyIHRoYW4gW0dQVC0zLjUgVHVyYm9dKC9tb2RlbHMvb3BlbmFpL2dwdC0zLjUtdHVyYm8pLiBJdCBtYWludGFpbnMgU09UQSBpbnRlbGxpZ2VuY2UsIHdoaWxlIGJlaW5nIHNpZ25pZmljYW50bHkgbW9yZSBjb3N0LWVmZmVjdGl2ZS5cblxuR1BULTRvIG1pbmkgYWNoaWV2ZXMgYW4gODIlIHNjb3JlIG9uIE1NTFUgYW5kIHByZXNlbnRseSByYW5rcyBoaWdoZXIgdGhhbiBHUFQtNCBvbiBjaGF0IHByZWZlcmVuY2VzIFtjb21tb24gbGVhZGVyYm9hcmRzXShodHRwczovL2FyZW5hLmxtc3lzLm9yZy8pLlxuXG5DaGVjayBvdXQgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vaW5kZXgvZ3B0LTRvLW1pbmktYWR2YW5jaW5nLWNvc3QtZWZmaWNpZW50LWludGVsbGlnZW5jZS8pIHRvIGxlYXJuIG1vcmUuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAyMTciLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG8tbWluaS1zZWFyY2gtcHJldmlldyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00by1taW5pIFNlYXJjaCBQcmV2aWV3IiwiY3JlYXRlZCI6MTc0MTgxODEyMiwiZGVzY3JpcHRpb24iOiJHUFQtNG8gbWluaSBTZWFyY2ggUHJldmlldyBpcyBhIHNwZWNpYWxpemVkIG1vZGVsIGZvciB3ZWIgc2VhcmNoIGluIENoYXQgQ29tcGxldGlvbnMuIEl0IGlzIHRyYWluZWQgdG8gdW5kZXJzdGFuZCBhbmQgZXhlY3V0ZSB3ZWIgc2VhcmNoIHF1ZXJpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMC4wMjc1IiwiaW1hZ2UiOiIwLjAwMDIxNyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiY29oZXJlL2NvbW1hbmQtci0wOC0yMDI0IiwibmFtZSI6IkNvaGVyZTogQ29tbWFuZCBSICgwOC0yMDI0KSIsImNyZWF0ZWQiOjE3MjQ5NzYwMDAsImRlc2NyaXB0aW9uIjoiY29tbWFuZC1yLTA4LTIwMjQgaXMgYW4gdXBkYXRlIG9mIHRoZSBbQ29tbWFuZCBSXSgvbW9kZWxzL2NvaGVyZS9jb21tYW5kLXIpIHdpdGggaW1wcm92ZWQgcGVyZm9ybWFuY2UgZm9yIG11bHRpbGluZ3VhbCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRykgYW5kIHRvb2wgdXNlLiBNb3JlIGJyb2FkbHksIGl0IGlzIGJldHRlciBhdCBtYXRoLCBjb2RlIGFuZCByZWFzb25pbmcgYW5kIGlzIGNvbXBldGl0aXZlIHdpdGggdGhlIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIGxhcmdlciBDb21tYW5kIFIrIG1vZGVsLlxuXG5SZWFkIHRoZSBsYXVuY2ggcG9zdCBbaGVyZV0oaHR0cHM6Ly9kb2NzLmNvaGVyZS5jb20vY2hhbmdlbG9nL2NvbW1hbmQtZ2V0cy1yZWZyZXNoZWQpLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMS41YiIsIm5hbWUiOiJEZWVwU2VlazogUjEgRGlzdGlsbCBRd2VuIDEuNUIiLCJjcmVhdGVkIjoxNzM4MzI4MDY3LCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFIxIERpc3RpbGwgUXdlbiAxLjVCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uICBbUXdlbiAyLjUgTWF0aCAxLjVCXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjIuNS1NYXRoLTEuNUIpLCB1c2luZyBvdXRwdXRzIGZyb20gW0RlZXBTZWVrIFIxXSgvZGVlcHNlZWsvZGVlcHNlZWstcjEpLiBJdCdzIGEgdmVyeSBzbWFsbCBhbmQgZWZmaWNpZW50IG1vZGVsIHdoaWNoIG91dHBlcmZvcm1zIFtHUFQgNG8gMDUxM10oL29wZW5haS9ncHQtNG8tMjAyNC0wNS0xMykgb24gTWF0aCBCZW5jaG1hcmtzLlxuXG5PdGhlciBiZW5jaG1hcmsgcmVzdWx0cyBpbmNsdWRlOlxuXG4tIEFJTUUgMjAyNCBwYXNzQDE6IDI4Ljlcbi0gQUlNRSAyMDI0IGNvbnNANjQ6IDUyLjdcbi0gTUFUSC01MDAgcGFzc0AxOiA4My45XG5cblRoZSBtb2RlbCBsZXZlcmFnZXMgZmluZS10dW5pbmcgZnJvbSBEZWVwU2VlayBSMSdzIG91dHB1dHMsIGVuYWJsaW5nIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGNvbXBhcmFibGUgdG8gbGFyZ2VyIGZyb250aWVyIG1vZGVscy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im5vdXNyZXNlYXJjaC9ub3VzLWhlcm1lcy1sbGFtYTItMTNiIiwibmFtZSI6Ik5vdXM6IEhlcm1lcyAxM0IiLCJjcmVhdGVkIjoxNjkyNDg5NjAwLCJkZXNjcmlwdGlvbiI6IkEgc3RhdGUtb2YtdGhlLWFydCBsYW5ndWFnZSBtb2RlbCBmaW5lLXR1bmVkIG9uIG92ZXIgMzAwayBpbnN0cnVjdGlvbnMgYnkgTm91cyBSZXNlYXJjaCwgd2l0aCBUZWtuaXVtIGFuZCBFbW96aWxsYSBsZWFkaW5nIHRoZSBmaW5lIHR1bmluZyBwcm9jZXNzLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2NiMTB4L2xsYW1hMy4xLXR5cGhvb24yLThiLWluc3RydWN0IiwibmFtZSI6IlR5cGhvb24yIDhCIEluc3RydWN0IiwiY3JlYXRlZCI6MTc0MzE5NjUxMSwiZGVzY3JpcHRpb24iOiJMbGFtYTMuMS1UeXBob29uMi04Qi1JbnN0cnVjdCBpcyBhIFRoYWktRW5nbGlzaCBpbnN0cnVjdGlvbi10dW5lZCBtb2RlbCB3aXRoIDggYmlsbGlvbiBwYXJhbWV0ZXJzLCBidWlsdCBvbiBMbGFtYSAzLjEuIEl0IHNpZ25pZmljYW50bHkgaW1wcm92ZXMgb3ZlciBpdHMgYmFzZSBtb2RlbCBpbiBUaGFpIHJlYXNvbmluZywgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nLCBhbmQgZnVuY3Rpb24tY2FsbGluZyB0YXNrcywgd2hpbGUgbWFpbnRhaW5pbmcgY29tcGV0aXRpdmUgRW5nbGlzaCBwZXJmb3JtYW5jZS4gVGhlIG1vZGVsIGlzIG9wdGltaXplZCBmb3IgYmlsaW5ndWFsIGludGVyYWN0aW9uIGFuZCBwZXJmb3JtcyB3ZWxsIG9uIFRoYWktRW5nbGlzaCBjb2RlLXN3aXRjaGluZywgTVQtQmVuY2gsIElGRXZhbCwgYW5kIHRvb2wtdXNlIGJlbmNobWFya3MuXG5cbkRlc3BpdGUgaXRzIHNtYWxsZXIgc2l6ZSwgaXQgZGVtb25zdHJhdGVzIHN0cm9uZyBnZW5lcmFsaXphdGlvbiBhY3Jvc3MgbWF0aCwgY29kaW5nLCBhbmQgbXVsdGlsaW5ndWFsIGJlbmNobWFya3MsIG91dHBlcmZvcm1pbmcgY29tcGFyYWJsZSA4QiBtb2RlbHMgYWNyb3NzIG1vc3QgVGhhaS1zcGVjaWZpYyB0YXNrcy4gRnVsbCBiZW5jaG1hcmsgcmVzdWx0cyBhbmQgbWV0aG9kb2xvZ3kgYXJlIGF2YWlsYWJsZSBpbiB0aGUgW3RlY2huaWNhbCByZXBvcnQuXShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjQxMi4xMzcwMikiLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtNC1tYXZlcmljayIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IE1hdmVyaWNrIiwiY3JlYXRlZCI6MTc0Mzg4MTgyMiwiZGVzY3JpcHRpb24iOiJMbGFtYSA0IE1hdmVyaWNrIDE3QiBJbnN0cnVjdCAoMTI4RSkgaXMgYSBoaWdoLWNhcGFjaXR5IG11bHRpbW9kYWwgbGFuZ3VhZ2UgbW9kZWwgZnJvbSBNZXRhLCBidWlsdCBvbiBhIG1peHR1cmUtb2YtZXhwZXJ0cyAoTW9FKSBhcmNoaXRlY3R1cmUgd2l0aCAxMjggZXhwZXJ0cyBhbmQgMTcgYmlsbGlvbiBhY3RpdmUgcGFyYW1ldGVycyBwZXIgZm9yd2FyZCBwYXNzICg0MDBCIHRvdGFsKS4gSXQgc3VwcG9ydHMgbXVsdGlsaW5ndWFsIHRleHQgYW5kIGltYWdlIGlucHV0LCBhbmQgcHJvZHVjZXMgbXVsdGlsaW5ndWFsIHRleHQgYW5kIGNvZGUgb3V0cHV0IGFjcm9zcyAxMiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLiBPcHRpbWl6ZWQgZm9yIHZpc2lvbi1sYW5ndWFnZSB0YXNrcywgTWF2ZXJpY2sgaXMgaW5zdHJ1Y3Rpb24tdHVuZWQgZm9yIGFzc2lzdGFudC1saWtlIGJlaGF2aW9yLCBpbWFnZSByZWFzb25pbmcsIGFuZCBnZW5lcmFsLXB1cnBvc2UgbXVsdGltb2RhbCBpbnRlcmFjdGlvbi5cblxuTWF2ZXJpY2sgZmVhdHVyZXMgZWFybHkgZnVzaW9uIGZvciBuYXRpdmUgbXVsdGltb2RhbGl0eSBhbmQgYSAxIG1pbGxpb24gdG9rZW4gY29udGV4dCB3aW5kb3cuIEl0IHdhcyB0cmFpbmVkIG9uIGEgY3VyYXRlZCBtaXh0dXJlIG9mIHB1YmxpYywgbGljZW5zZWQsIGFuZCBNZXRhLXBsYXRmb3JtIGRhdGEsIGNvdmVyaW5nIH4yMiB0cmlsbGlvbiB0b2tlbnMsIHdpdGggYSBrbm93bGVkZ2UgY3V0b2ZmIGluIEF1Z3VzdCAyMDI0LiBSZWxlYXNlZCBvbiBBcHJpbCA1LCAyMDI1IHVuZGVyIHRoZSBMbGFtYSA0IENvbW11bml0eSBMaWNlbnNlLCBNYXZlcmljayBpcyBzdWl0ZWQgZm9yIHJlc2VhcmNoIGFuZCBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYWR2YW5jZWQgbXVsdGltb2RhbCB1bmRlcnN0YW5kaW5nIGFuZCBoaWdoIG1vZGVsIHRocm91Z2hwdXQuIiwiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNzAxODIiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwNDg1NzYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLWd1YXJkLTMtOGIiLCJuYW1lIjoiTGxhbWEgR3VhcmQgMyA4QiIsImNyZWF0ZWQiOjE3Mzk0MDEzMTgsImRlc2NyaXB0aW9uIjoiTGxhbWEgR3VhcmQgMyBpcyBhIExsYW1hLTMuMS04QiBwcmV0cmFpbmVkIG1vZGVsLCBmaW5lLXR1bmVkIGZvciBjb250ZW50IHNhZmV0eSBjbGFzc2lmaWNhdGlvbi4gU2ltaWxhciB0byBwcmV2aW91cyB2ZXJzaW9ucywgaXQgY2FuIGJlIHVzZWQgdG8gY2xhc3NpZnkgY29udGVudCBpbiBib3RoIExMTSBpbnB1dHMgKHByb21wdCBjbGFzc2lmaWNhdGlvbikgYW5kIGluIExMTSByZXNwb25zZXMgKHJlc3BvbnNlIGNsYXNzaWZpY2F0aW9uKS4gSXQgYWN0cyBhcyBhbiBMTE0g4oCTIGl0IGdlbmVyYXRlcyB0ZXh0IGluIGl0cyBvdXRwdXQgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciBhIGdpdmVuIHByb21wdCBvciByZXNwb25zZSBpcyBzYWZlIG9yIHVuc2FmZSwgYW5kIGlmIHVuc2FmZSwgaXQgYWxzbyBsaXN0cyB0aGUgY29udGVudCBjYXRlZ29yaWVzIHZpb2xhdGVkLlxuXG5MbGFtYSBHdWFyZCAzIHdhcyBhbGlnbmVkIHRvIHNhZmVndWFyZCBhZ2FpbnN0IHRoZSBNTENvbW1vbnMgc3RhbmRhcmRpemVkIGhhemFyZHMgdGF4b25vbXkgYW5kIGRlc2lnbmVkIHRvIHN1cHBvcnQgTGxhbWEgMy4xIGNhcGFiaWxpdGllcy4gU3BlY2lmaWNhbGx5LCBpdCBwcm92aWRlcyBjb250ZW50IG1vZGVyYXRpb24gaW4gOCBsYW5ndWFnZXMsIGFuZCB3YXMgb3B0aW1pemVkIHRvIHN1cHBvcnQgc2FmZXR5IGFuZCBzZWN1cml0eSBmb3Igc2VhcmNoIGFuZCBjb2RlIGludGVycHJldGVyIHRvb2wgY2FsbHMuXG4iLCJjb250ZXh0X2xlbmd0aCI6MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJub25lIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS1ndWFyZC0yLThiIiwibmFtZSI6Ik1ldGE6IExsYW1hR3VhcmQgMiA4QiIsImNyZWF0ZWQiOjE3MTU1NTg0MDAsImRlc2NyaXB0aW9uIjoiVGhpcyBzYWZlZ3VhcmQgbW9kZWwgaGFzIDhCIHBhcmFtZXRlcnMgYW5kIGlzIGJhc2VkIG9uIHRoZSBMbGFtYSAzIGZhbWlseS4gSnVzdCBsaWtlIGlzIHByZWRlY2Vzc29yLCBbTGxhbWFHdWFyZCAxXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL21ldGEtbGxhbWEvTGxhbWFHdWFyZC03YiksIGl0IGNhbiBkbyBib3RoIHByb21wdCBhbmQgcmVzcG9uc2UgY2xhc3NpZmljYXRpb24uXG5cbkxsYW1hR3VhcmQgMiBhY3RzIGFzIGEgbm9ybWFsIExMTSB3b3VsZCwgZ2VuZXJhdGluZyB0ZXh0IHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdpdmVuIGlucHV0L291dHB1dCBpcyBzYWZlL3Vuc2FmZS4gSWYgZGVlbWVkIHVuc2FmZSwgaXQgd2lsbCBhbHNvIHNoYXJlIHRoZSBjb250ZW50IGNhdGVnb3JpZXMgdmlvbGF0ZWQuXG5cbkZvciBiZXN0IHJlc3VsdHMsIHBsZWFzZSB1c2UgcmF3IHByb21wdCBpbnB1dCBvciB0aGUgYC9jb21wbGV0aW9uc2AgZW5kcG9pbnQsIGluc3RlYWQgb2YgdGhlIGNoYXQgQVBJLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6Im5vbmUifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdC12MC4yIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgN0IgSW5zdHJ1Y3QgdjAuMiIsImNyZWF0ZWQiOjE3MDM3MjE2MDAsImRlc2NyaXB0aW9uIjoiQSBoaWdoLXBlcmZvcm1pbmcsIGluZHVzdHJ5LXN0YW5kYXJkIDcuM0IgcGFyYW1ldGVyIG1vZGVsLCB3aXRoIG9wdGltaXphdGlvbnMgZm9yIHNwZWVkIGFuZCBjb250ZXh0IGxlbmd0aC5cblxuQW4gaW1wcm92ZWQgdmVyc2lvbiBvZiBbTWlzdHJhbCA3QiBJbnN0cnVjdF0oL21vZGVsc21pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjEpLCB3aXRoIHRoZSBmb2xsb3dpbmcgY2hhbmdlczpcblxuLSAzMmsgY29udGV4dCB3aW5kb3cgKHZzIDhrIGNvbnRleHQgaW4gdjAuMSlcbi0gUm9wZS10aGV0YSA9IDFlNlxuLSBObyBTbGlkaW5nLVdpbmRvdyBBdHRlbnRpb24iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicGVycGxleGl0eS9sbGFtYS0zLjEtc29uYXItc21hbGwtMTI4ay1vbmxpbmUiLCJuYW1lIjoiUGVycGxleGl0eTogTGxhbWEgMy4xIFNvbmFyIDhCIE9ubGluZSIsImNyZWF0ZWQiOjE3MjI0NzA0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4xIFNvbmFyIGlzIFBlcnBsZXhpdHkncyBsYXRlc3QgbW9kZWwgZmFtaWx5LiBJdCBzdXJwYXNzZXMgdGhlaXIgZWFybGllciBTb25hciBtb2RlbHMgaW4gY29zdC1lZmZpY2llbmN5LCBzcGVlZCwgYW5kIHBlcmZvcm1hbmNlLlxuXG5UaGlzIGlzIHRoZSBvbmxpbmUgdmVyc2lvbiBvZiB0aGUgW29mZmxpbmUgY2hhdCBtb2RlbF0oL21vZGVscy9wZXJwbGV4aXR5L2xsYW1hLTMuMS1zb25hci1zbWFsbC0xMjhrLWNoYXQpLiBJdCBpcyBmb2N1c2VkIG9uIGRlbGl2ZXJpbmcgaGVscGZ1bCwgdXAtdG8tZGF0ZSwgYW5kIGZhY3R1YWwgcmVzcG9uc2VzLiAjb25saW5lIiwiY29udGV4dF9sZW5ndGgiOjEyNzA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMC4wMDUiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpb24tbGFicy9haW9uLXJwLWxsYW1hLTMuMS04YiIsIm5hbWUiOiJBaW9uTGFiczogQWlvbi1SUCAxLjAgKDhCKSIsImNyZWF0ZWQiOjE3Mzg2OTY3MTgsImRlc2NyaXB0aW9uIjoiQWlvbi1SUC1MbGFtYS0zLjEtOEIgcmFua3MgdGhlIGhpZ2hlc3QgaW4gdGhlIGNoYXJhY3RlciBldmFsdWF0aW9uIHBvcnRpb24gb2YgdGhlIFJQQmVuY2gtQXV0byBiZW5jaG1hcmssIGEgcm9sZXBsYXlpbmctc3BlY2lmaWMgdmFyaWFudCBvZiBBcmVuYS1IYXJkLUF1dG8sIHdoZXJlIExMTXMgZXZhbHVhdGUgZWFjaCBvdGhlcuKAmXMgcmVzcG9uc2VzLiBJdCBpcyBhIGZpbmUtdHVuZWQgYmFzZSBtb2RlbCByYXRoZXIgdGhhbiBhbiBpbnN0cnVjdCBtb2RlbCwgZGVzaWduZWQgdG8gcHJvZHVjZSBtb3JlIG5hdHVyYWwgYW5kIHZhcmllZCB3cml0aW5nLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdC12MC4xIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgN0IgSW5zdHJ1Y3QgdjAuMSIsImNyZWF0ZWQiOjE2OTU4NTkyMDAsImRlc2NyaXB0aW9uIjoiQSA3LjNCIHBhcmFtZXRlciBtb2RlbCB0aGF0IG91dHBlcmZvcm1zIExsYW1hIDIgMTNCIG9uIGFsbCBiZW5jaG1hcmtzLCB3aXRoIG9wdGltaXphdGlvbnMgZm9yIHNwZWVkIGFuZCBjb250ZXh0IGxlbmd0aC4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tMi41LXZsLTdiLWluc3RydWN0IiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUtVkwgN0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI0ODAzMjAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgVkwgN0IgaXMgYSBtdWx0aW1vZGFsIExMTSBmcm9tIHRoZSBRd2VuIFRlYW0gd2l0aCB0aGUgZm9sbG93aW5nIGtleSBlbmhhbmNlbWVudHM6XG5cbi0gU29UQSB1bmRlcnN0YW5kaW5nIG9mIGltYWdlcyBvZiB2YXJpb3VzIHJlc29sdXRpb24gJiByYXRpbzogUXdlbjIuNS1WTCBhY2hpZXZlcyBzdGF0ZS1vZi10aGUtYXJ0IHBlcmZvcm1hbmNlIG9uIHZpc3VhbCB1bmRlcnN0YW5kaW5nIGJlbmNobWFya3MsIGluY2x1ZGluZyBNYXRoVmlzdGEsIERvY1ZRQSwgUmVhbFdvcmxkUUEsIE1UVlFBLCBldGMuXG5cbi0gVW5kZXJzdGFuZGluZyB2aWRlb3Mgb2YgMjBtaW4rOiBRd2VuMi41LVZMIGNhbiB1bmRlcnN0YW5kIHZpZGVvcyBvdmVyIDIwIG1pbnV0ZXMgZm9yIGhpZ2gtcXVhbGl0eSB2aWRlby1iYXNlZCBxdWVzdGlvbiBhbnN3ZXJpbmcsIGRpYWxvZywgY29udGVudCBjcmVhdGlvbiwgZXRjLlxuXG4tIEFnZW50IHRoYXQgY2FuIG9wZXJhdGUgeW91ciBtb2JpbGVzLCByb2JvdHMsIGV0Yy46IHdpdGggdGhlIGFiaWxpdGllcyBvZiBjb21wbGV4IHJlYXNvbmluZyBhbmQgZGVjaXNpb24gbWFraW5nLCBRd2VuMi41LVZMIGNhbiBiZSBpbnRlZ3JhdGVkIHdpdGggZGV2aWNlcyBsaWtlIG1vYmlsZSBwaG9uZXMsIHJvYm90cywgZXRjLiwgZm9yIGF1dG9tYXRpYyBvcGVyYXRpb24gYmFzZWQgb24gdmlzdWFsIGVudmlyb25tZW50IGFuZCB0ZXh0IGluc3RydWN0aW9ucy5cblxuLSBNdWx0aWxpbmd1YWwgU3VwcG9ydDogdG8gc2VydmUgZ2xvYmFsIHVzZXJzLCBiZXNpZGVzIEVuZ2xpc2ggYW5kIENoaW5lc2UsIFF3ZW4yLjUtVkwgbm93IHN1cHBvcnRzIHRoZSB1bmRlcnN0YW5kaW5nIG9mIHRleHRzIGluIGRpZmZlcmVudCBsYW5ndWFnZXMgaW5zaWRlIGltYWdlcywgaW5jbHVkaW5nIG1vc3QgRXVyb3BlYW4gbGFuZ3VhZ2VzLCBKYXBhbmVzZSwgS29yZWFuLCBBcmFiaWMsIFZpZXRuYW1lc2UsIGV0Yy5cblxuRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoaXMgW2Jsb2cgcG9zdF0oaHR0cHM6Ly9xd2VubG0uZ2l0aHViLmlvL2Jsb2cvcXdlbjItdmwvKSBhbmQgW0dpdEh1YiByZXBvXShodHRwczovL2dpdGh1Yi5jb20vUXdlbkxNL1F3ZW4yLVZMKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtUb25neWkgUWlhbndlbiBMSUNFTlNFIEFHUkVFTUVOVF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4xLjUtMTEwQi1DaGF0L2Jsb2IvbWFpbi9MSUNFTlNFKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMTQ0NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3cS0zMmItcHJldmlldyIsIm5hbWUiOiJRd2VuOiBRd1EgMzJCIFByZXZpZXciLCJjcmVhdGVkIjoxNzMyNzU0NTQxLCJkZXNjcmlwdGlvbiI6IlF3US0zMkItUHJldmlldyBpcyBhbiBleHBlcmltZW50YWwgcmVzZWFyY2ggbW9kZWwgZm9jdXNlZCBvbiBBSSByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGRldmVsb3BlZCBieSB0aGUgUXdlbiBUZWFtLiBBcyBhIHByZXZpZXcgcmVsZWFzZSwgaXQgZGVtb25zdHJhdGVzIHByb21pc2luZyBhbmFseXRpY2FsIGFiaWxpdGllcyB3aGlsZSBoYXZpbmcgc2V2ZXJhbCBpbXBvcnRhbnQgbGltaXRhdGlvbnM6XG5cbjEuICoqTGFuZ3VhZ2UgTWl4aW5nIGFuZCBDb2RlLVN3aXRjaGluZyoqOiBUaGUgbW9kZWwgbWF5IG1peCBsYW5ndWFnZXMgb3Igc3dpdGNoIGJldHdlZW4gdGhlbSB1bmV4cGVjdGVkbHksIGFmZmVjdGluZyByZXNwb25zZSBjbGFyaXR5LlxuMi4gKipSZWN1cnNpdmUgUmVhc29uaW5nIExvb3BzKio6IFRoZSBtb2RlbCBtYXkgZW50ZXIgY2lyY3VsYXIgcmVhc29uaW5nIHBhdHRlcm5zLCBsZWFkaW5nIHRvIGxlbmd0aHkgcmVzcG9uc2VzIHdpdGhvdXQgYSBjb25jbHVzaXZlIGFuc3dlci5cbjMuICoqU2FmZXR5IGFuZCBFdGhpY2FsIENvbnNpZGVyYXRpb25zKio6IFRoZSBtb2RlbCByZXF1aXJlcyBlbmhhbmNlZCBzYWZldHkgbWVhc3VyZXMgdG8gZW5zdXJlIHJlbGlhYmxlIGFuZCBzZWN1cmUgcGVyZm9ybWFuY2UsIGFuZCB1c2VycyBzaG91bGQgZXhlcmNpc2UgY2F1dGlvbiB3aGVuIGRlcGxveWluZyBpdC5cbjQuICoqUGVyZm9ybWFuY2UgYW5kIEJlbmNobWFyayBMaW1pdGF0aW9ucyoqOiBUaGUgbW9kZWwgZXhjZWxzIGluIG1hdGggYW5kIGNvZGluZyBidXQgaGFzIHJvb20gZm9yIGltcHJvdmVtZW50IGluIG90aGVyIGFyZWFzLCBzdWNoIGFzIGNvbW1vbiBzZW5zZSByZWFzb25pbmcgYW5kIG51YW5jZWQgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZy5cblxuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhaTIxL2phbWJhLTEtNS1taW5pIiwibmFtZSI6IkFJMjE6IEphbWJhIDEuNSBNaW5pIiwiY3JlYXRlZCI6MTcyNDM3MTIwMCwiZGVzY3JpcHRpb24iOiJKYW1iYSAxLjUgTWluaSBpcyB0aGUgd29ybGQncyBmaXJzdCBwcm9kdWN0aW9uLWdyYWRlIE1hbWJhLWJhc2VkIG1vZGVsLCBjb21iaW5pbmcgU1NNIGFuZCBUcmFuc2Zvcm1lciBhcmNoaXRlY3R1cmVzIGZvciBhIDI1NksgY29udGV4dCB3aW5kb3cgYW5kIGhpZ2ggZWZmaWNpZW5jeS5cblxuSXQgd29ya3Mgd2l0aCA5IGxhbmd1YWdlcyBhbmQgY2FuIGhhbmRsZSB2YXJpb3VzIHdyaXRpbmcgYW5kIGFuYWx5c2lzIHRhc2tzIGFzIHdlbGwgYXMgb3IgYmV0dGVyIHRoYW4gc2ltaWxhciBzbWFsbCBtb2RlbHMuXG5cblRoaXMgbW9kZWwgdXNlcyBsZXNzIGNvbXB1dGVyIG1lbW9yeSBhbmQgd29ya3MgZmFzdGVyIHdpdGggbG9uZ2VyIHRleHRzIHRoYW4gcHJldmlvdXMgZGVzaWducy5cblxuUmVhZCB0aGVpciBbYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5haTIxLmNvbS9ibG9nL2Fubm91bmNpbmctamFtYmEtbW9kZWwtZmFtaWx5KSB0byBsZWFybiBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS0xLjYtbWluaSIsIm5hbWUiOiJBSTIxOiBKYW1iYSBNaW5pIDEuNiIsImNyZWF0ZWQiOjE3NDE5MDUxNzEsImRlc2NyaXB0aW9uIjoiQUkyMSBKYW1iYSBNaW5pIDEuNiBpcyBhIGh5YnJpZCBmb3VuZGF0aW9uIG1vZGVsIGNvbWJpbmluZyBTdGF0ZSBTcGFjZSBNb2RlbHMgKE1hbWJhKSB3aXRoIFRyYW5zZm9ybWVyIGF0dGVudGlvbiBtZWNoYW5pc21zLiBXaXRoIDEyIGJpbGxpb24gYWN0aXZlIHBhcmFtZXRlcnMgKDUyIGJpbGxpb24gdG90YWwpLCB0aGlzIG1vZGVsIGV4Y2VscyBpbiBleHRyZW1lbHkgbG9uZy1jb250ZXh0IHRhc2tzICh1cCB0byAyNTZLIHRva2VucykgYW5kIGFjaGlldmVzIHN1cGVyaW9yIGluZmVyZW5jZSBlZmZpY2llbmN5LCBvdXRwZXJmb3JtaW5nIGNvbXBhcmFibGUgb3BlbiBtb2RlbHMgb24gdGFza3Mgc3VjaCBhcyByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRykgYW5kIGdyb3VuZGVkIHF1ZXN0aW9uIGFuc3dlcmluZy4gSmFtYmEgTWluaSAxLjYgc3VwcG9ydHMgbXVsdGlsaW5ndWFsIHRhc2tzIGFjcm9zcyBFbmdsaXNoLCBTcGFuaXNoLCBGcmVuY2gsIFBvcnR1Z3Vlc2UsIEl0YWxpYW4sIER1dGNoLCBHZXJtYW4sIEFyYWJpYywgYW5kIEhlYnJldywgYWxvbmcgd2l0aCBzdHJ1Y3R1cmVkIEpTT04gb3V0cHV0IGFuZCB0b29sLXVzZSBjYXBhYmlsaXRpZXMuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byB0aGUgW0phbWJhIE9wZW4gTW9kZWwgTGljZW5zZV0oaHR0cHM6Ly93d3cuYWkyMS5jb20vbGljZW5zZXMvamFtYmEtb3Blbi1tb2RlbC1saWNlbnNlKS4iLCJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNhYmEiLCJuYW1lIjoiTWlzdHJhbDogU2FiYSIsImNyZWF0ZWQiOjE3Mzk4MDMyMzksImRlc2NyaXB0aW9uIjoiTWlzdHJhbCBTYWJhIGlzIGEgMjRCLXBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBzcGVjaWZpY2FsbHkgZGVzaWduZWQgZm9yIHRoZSBNaWRkbGUgRWFzdCBhbmQgU291dGggQXNpYSwgZGVsaXZlcmluZyBhY2N1cmF0ZSBhbmQgY29udGV4dHVhbGx5IHJlbGV2YW50IHJlc3BvbnNlcyB3aGlsZSBtYWludGFpbmluZyBlZmZpY2llbnQgcGVyZm9ybWFuY2UuIFRyYWluZWQgb24gY3VyYXRlZCByZWdpb25hbCBkYXRhc2V0cywgaXQgc3VwcG9ydHMgbXVsdGlwbGUgSW5kaWFuLW9yaWdpbiBsYW5ndWFnZXPigJRpbmNsdWRpbmcgVGFtaWwgYW5kIE1hbGF5YWxhbeKAlGFsb25nc2lkZSBBcmFiaWMuIFRoaXMgbWFrZXMgaXQgYSB2ZXJzYXRpbGUgb3B0aW9uIGZvciBhIHJhbmdlIG9mIHJlZ2lvbmFsIGFuZCBtdWx0aWxpbmd1YWwgYXBwbGljYXRpb25zLiBSZWFkIG1vcmUgYXQgdGhlIGJsb2cgcG9zdCBbaGVyZV0oaHR0cHM6Ly9taXN0cmFsLmFpL2VuL25ld3MvbWlzdHJhbC1zYWJhKSIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtc21hbGwiLCJuYW1lIjoiTWlzdHJhbCBTbWFsbCIsImNyZWF0ZWQiOjE3MDQ4NDQ4MDAsImRlc2NyaXB0aW9uIjoiV2l0aCAyMiBiaWxsaW9uIHBhcmFtZXRlcnMsIE1pc3RyYWwgU21hbGwgdjI0LjA5IG9mZmVycyBhIGNvbnZlbmllbnQgbWlkLXBvaW50IGJldHdlZW4gKE1pc3RyYWwgTmVNbyAxMkIpWy9taXN0cmFsYWkvbWlzdHJhbC1uZW1vXSBhbmQgKE1pc3RyYWwgTGFyZ2UgMilbL21pc3RyYWxhaS9taXN0cmFsLWxhcmdlXSwgcHJvdmlkaW5nIGEgY29zdC1lZmZlY3RpdmUgc29sdXRpb24gdGhhdCBjYW4gYmUgZGVwbG95ZWQgYWNyb3NzIHZhcmlvdXMgcGxhdGZvcm1zIGFuZCBlbnZpcm9ubWVudHMuIEl0IGhhcyBiZXR0ZXIgcmVhc29uaW5nLCBleGhpYml0cyBtb3JlIGNhcGFiaWxpdGllcywgY2FuIHByb2R1Y2UgYW5kIHJlYXNvbiBhYm91dCBjb2RlLCBhbmQgaXMgbXVsdGlsaWd1YWwsIHN1cHBvcnRpbmcgRW5nbGlzaCwgRnJlbmNoLCBHZXJtYW4sIEl0YWxpYW4sIGFuZCBTcGFuaXNoLiIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1sbGFtYS03MGIiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgTGxhbWEgNzBCIiwiY3JlYXRlZCI6MTczNzY2MzE2OSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIExsYW1hIDcwQiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiBbTGxhbWEtMy4zLTcwQi1JbnN0cnVjdF0oL21ldGEtbGxhbWEvbGxhbWEtMy4zLTcwYi1pbnN0cnVjdCksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIFRoZSBtb2RlbCBjb21iaW5lcyBhZHZhbmNlZCBkaXN0aWxsYXRpb24gdGVjaG5pcXVlcyB0byBhY2hpZXZlIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpcGxlIGJlbmNobWFya3MsIGluY2x1ZGluZzpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3MC4wXG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuNVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTYzM1xuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaW5pbWF4L21pbmltYXgtMDEiLCJuYW1lIjoiTWluaU1heDogTWluaU1heC0wMSIsImNyZWF0ZWQiOjE3MzY5MTU0NjIsImRlc2NyaXB0aW9uIjoiTWluaU1heC0wMSBpcyBhIGNvbWJpbmVzIE1pbmlNYXgtVGV4dC0wMSBmb3IgdGV4dCBnZW5lcmF0aW9uIGFuZCBNaW5pTWF4LVZMLTAxIGZvciBpbWFnZSB1bmRlcnN0YW5kaW5nLiBJdCBoYXMgNDU2IGJpbGxpb24gcGFyYW1ldGVycywgd2l0aCA0NS45IGJpbGxpb24gcGFyYW1ldGVycyBhY3RpdmF0ZWQgcGVyIGluZmVyZW5jZSwgYW5kIGNhbiBoYW5kbGUgYSBjb250ZXh0IG9mIHVwIHRvIDQgbWlsbGlvbiB0b2tlbnMuXG5cblRoZSB0ZXh0IG1vZGVsIGFkb3B0cyBhIGh5YnJpZCBhcmNoaXRlY3R1cmUgdGhhdCBjb21iaW5lcyBMaWdodG5pbmcgQXR0ZW50aW9uLCBTb2Z0bWF4IEF0dGVudGlvbiwgYW5kIE1peHR1cmUtb2YtRXhwZXJ0cyAoTW9FKS4gVGhlIGltYWdlIG1vZGVsIGFkb3B0cyB0aGUg4oCcVmlULU1MUC1MTE3igJ0gZnJhbWV3b3JrIGFuZCBpcyB0cmFpbmVkIG9uIHRvcCBvZiB0aGUgdGV4dCBtb2RlbC5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSByZWxlYXNlLCBzZWU6IGh0dHBzOi8vd3d3Lm1pbmltYXhpLmNvbS9lbi9uZXdzL21pbmltYXgtMDEtc2VyaWVzLTIiLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMDAxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tdmwtcGx1cyIsIm5hbWUiOiJRd2VuOiBRd2VuIFZMIFBsdXMiLCJjcmVhdGVkIjoxNzM4NzMxMjU1LCJkZXNjcmlwdGlvbiI6IlF3ZW4ncyBFbmhhbmNlZCBMYXJnZSBWaXN1YWwgTGFuZ3VhZ2UgTW9kZWwuIFNpZ25pZmljYW50bHkgdXBncmFkZWQgZm9yIGRldGFpbGVkIHJlY29nbml0aW9uIGNhcGFiaWxpdGllcyBhbmQgdGV4dCByZWNvZ25pdGlvbiBhYmlsaXRpZXMsIHN1cHBvcnRpbmcgdWx0cmEtaGlnaCBwaXhlbCByZXNvbHV0aW9ucyB1cCB0byBtaWxsaW9ucyBvZiBwaXhlbHMgYW5kIGV4dHJlbWUgYXNwZWN0IHJhdGlvcyBmb3IgaW1hZ2UgaW5wdXQuIEl0IGRlbGl2ZXJzIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIHZpc3VhbCB0YXNrcy5cbiIsImNvbnRleHRfbGVuZ3RoIjo3NTAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMjY4OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjc1MDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTUwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMi0xM2ItY2hhdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAyIDEzQiBDaGF0IiwiY3JlYXRlZCI6MTY4NzIxOTIwMCwiZGVzY3JpcHRpb24iOiJBIDEzIGJpbGxpb24gcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIGZyb20gTWV0YSwgZmluZSB0dW5lZCBmb3IgY2hhdCBjb21wbGV0aW9ucyIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMiJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTMzOTg0MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMykgbGF1bmNoZWQgd2l0aCBhIHZhcmlldHkgb2Ygc2l6ZXMgJiBmbGF2b3JzLiBUaGlzIDcwQiBpbnN0cnVjdC10dW5lZCB2ZXJzaW9uIHdhcyBvcHRpbWl6ZWQgZm9yIGhpZ2ggcXVhbGl0eSBkaWFsb2d1ZSB1c2VjYXNlcy5cblxuSXQgaGFzIGRlbW9uc3RyYXRlZCBzdHJvbmcgcGVyZm9ybWFuY2UgY29tcGFyZWQgdG8gbGVhZGluZyBjbG9zZWQtc291cmNlIG1vZGVscyBpbiBodW1hbiBldmFsdWF0aW9ucy5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly9haS5tZXRhLmNvbS9ibG9nL21ldGEtbGxhbWEtMy8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21peHRyYWwtOHg3Yi1pbnN0cnVjdCIsIm5hbWUiOiJNaXN0cmFsOiBNaXh0cmFsIDh4N0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzAyMTY2NDAwLCJkZXNjcmlwdGlvbiI6Ik1peHRyYWwgOHg3QiBJbnN0cnVjdCBpcyBhIHByZXRyYWluZWQgZ2VuZXJhdGl2ZSBTcGFyc2UgTWl4dHVyZSBvZiBFeHBlcnRzLCBieSBNaXN0cmFsIEFJLCBmb3IgY2hhdCBhbmQgaW5zdHJ1Y3Rpb24gdXNlLiBJbmNvcnBvcmF0ZXMgOCBleHBlcnRzIChmZWVkLWZvcndhcmQgbmV0d29ya3MpIGZvciBhIHRvdGFsIG9mIDQ3IGJpbGxpb24gcGFyYW1ldGVycy5cblxuSW5zdHJ1Y3QgbW9kZWwgZmluZS10dW5lZCBieSBNaXN0cmFsLiAjbW9lIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJtaXN0cmFsIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtdGlueSIsIm5hbWUiOiJNaXN0cmFsIFRpbnkiLCJjcmVhdGVkIjoxNzA0ODQ0ODAwLCJkZXNjcmlwdGlvbiI6Ik5vdGU6IFRoaXMgbW9kZWwgaXMgYmVpbmcgZGVwcmVjYXRlZC4gUmVjb21tZW5kZWQgcmVwbGFjZW1lbnQgaXMgdGhlIG5ld2VyIFtNaW5pc3RyYWwgOEJdKC9taXN0cmFsL21pbmlzdHJhbC04YilcblxuVGhpcyBtb2RlbCBpcyBjdXJyZW50bHkgcG93ZXJlZCBieSBNaXN0cmFsLTdCLXYwLjIsIGFuZCBpbmNvcnBvcmF0ZXMgYSBcImJldHRlclwiIGZpbmUtdHVuaW5nIHRoYW4gW01pc3RyYWwgN0JdKC9tb2RlbHMvbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMSksIGluc3BpcmVkIGJ5IGNvbW11bml0eSB3b3JrLiBJdCdzIGJlc3QgdXNlZCBmb3IgbGFyZ2UgYmF0Y2ggcHJvY2Vzc2luZyB0YXNrcyB3aGVyZSBjb3N0IGlzIGEgc2lnbmlmaWNhbnQgZmFjdG9yIGJ1dCByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGFyZSBub3QgY3J1Y2lhbC4iLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL2NvZGVzdHJhbC1tYW1iYSIsIm5hbWUiOiJNaXN0cmFsOiBDb2Rlc3RyYWwgTWFtYmEiLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgNy4zQiBwYXJhbWV0ZXIgTWFtYmEtYmFzZWQgbW9kZWwgZGVzaWduZWQgZm9yIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrcy5cblxuLSBMaW5lYXIgdGltZSBpbmZlcmVuY2UsIGFsbG93aW5nIGZvciB0aGVvcmV0aWNhbGx5IGluZmluaXRlIHNlcXVlbmNlIGxlbmd0aHNcbi0gMjU2ayB0b2tlbiBjb250ZXh0IHdpbmRvd1xuLSBPcHRpbWl6ZWQgZm9yIHF1aWNrIHJlc3BvbnNlcywgZXNwZWNpYWxseSBiZW5lZmljaWFsIGZvciBjb2RlIHByb2R1Y3Rpdml0eVxuLSBQZXJmb3JtcyBjb21wYXJhYmx5IHRvIHN0YXRlLW9mLXRoZS1hcnQgdHJhbnNmb3JtZXIgbW9kZWxzIGluIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrc1xuLSBBdmFpbGFibGUgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3IgZnJlZSB1c2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InRoZWRydW1tZXIvcm9jaW5hbnRlLTEyYiIsIm5hbWUiOiJSb2NpbmFudGUgMTJCIiwiY3JlYXRlZCI6MTcyNzY1NDQwMCwiZGVzY3JpcHRpb24iOiJSb2NpbmFudGUgMTJCIGlzIGRlc2lnbmVkIGZvciBlbmdhZ2luZyBzdG9yeXRlbGxpbmcgYW5kIHJpY2ggcHJvc2UuXG5cbkVhcmx5IHRlc3RlcnMgaGF2ZSByZXBvcnRlZDpcbi0gRXhwYW5kZWQgdm9jYWJ1bGFyeSB3aXRoIHVuaXF1ZSBhbmQgZXhwcmVzc2l2ZSB3b3JkIGNob2ljZXNcbi0gRW5oYW5jZWQgY3JlYXRpdml0eSBmb3Igdml2aWQgbmFycmF0aXZlc1xuLSBBZHZlbnR1cmUtZmlsbGVkIGFuZCBjYXB0aXZhdGluZyBzdG9yaWVzIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy1oYWlrdTpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MTAyODgwMDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgSGFpa3UgaXMgQW50aHJvcGljJ3MgZmFzdGVzdCBhbmQgbW9zdCBjb21wYWN0IG1vZGVsIGZvclxubmVhci1pbnN0YW50IHJlc3BvbnNpdmVuZXNzLiBRdWljayBhbmQgYWNjdXJhdGUgdGFyZ2V0ZWQgcGVyZm9ybWFuY2UuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy1oYWlrdSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAwMyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLWhhaWt1IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UiLCJjcmVhdGVkIjoxNzEwMjg4MDAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIEhhaWt1IGlzIEFudGhyb3BpYydzIGZhc3Rlc3QgYW5kIG1vc3QgY29tcGFjdCBtb2RlbCBmb3Jcbm5lYXItaW5zdGFudCByZXNwb25zaXZlbmVzcy4gUXVpY2sgYW5kIGFjY3VyYXRlIHRhcmdldGVkIHBlcmZvcm1hbmNlLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtaGFpa3UpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstY2hhdC12My0wMzI0IiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBWMyAwMzI0IiwiY3JlYXRlZCI6MTc0MjgyNDc1NSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBWMywgYSA2ODVCLXBhcmFtZXRlciwgbWl4dHVyZS1vZi1leHBlcnRzIG1vZGVsLCBpcyB0aGUgbGF0ZXN0IGl0ZXJhdGlvbiBvZiB0aGUgZmxhZ3NoaXAgY2hhdCBtb2RlbCBmYW1pbHkgZnJvbSB0aGUgRGVlcFNlZWsgdGVhbS5cblxuSXQgc3VjY2VlZHMgdGhlIFtEZWVwU2VlayBWM10oL2RlZXBzZWVrL2RlZXBzZWVrLWNoYXQtdjMpIG1vZGVsIGFuZCBwZXJmb3JtcyByZWFsbHkgd2VsbCBvbiBhIHZhcmlldHkgb2YgdGFza3MuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA3In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjQwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9jb2Rlc3RyYWwtMjUwMSIsIm5hbWUiOiJNaXN0cmFsOiBDb2Rlc3RyYWwgMjUwMSIsImNyZWF0ZWQiOjE3MzY4OTU1MjIsImRlc2NyaXB0aW9uIjoiW01pc3RyYWxdKC9taXN0cmFsYWkpJ3MgY3V0dGluZy1lZGdlIGxhbmd1YWdlIG1vZGVsIGZvciBjb2RpbmcuIENvZGVzdHJhbCBzcGVjaWFsaXplcyBpbiBsb3ctbGF0ZW5jeSwgaGlnaC1mcmVxdWVuY3kgdGFza3Mgc3VjaCBhcyBmaWxsLWluLXRoZS1taWRkbGUgKEZJTSksIGNvZGUgY29ycmVjdGlvbiBhbmQgdGVzdCBnZW5lcmF0aW9uLiBcblxuTGVhcm4gbW9yZSBvbiB0aGVpciBibG9nIHBvc3Q6IGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL2NvZGVzdHJhbC0yNTAxLyIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwOSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjYyMTQ0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1jaGF0IiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBWMyIsImNyZWF0ZWQiOjE3MzUyNDEzMjAsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWstVjMgaXMgdGhlIGxhdGVzdCBtb2RlbCBmcm9tIHRoZSBEZWVwU2VlayB0ZWFtLCBidWlsZGluZyB1cG9uIHRoZSBpbnN0cnVjdGlvbiBmb2xsb3dpbmcgYW5kIGNvZGluZyBhYmlsaXRpZXMgb2YgdGhlIHByZXZpb3VzIHZlcnNpb25zLiBQcmUtdHJhaW5lZCBvbiBuZWFybHkgMTUgdHJpbGxpb24gdG9rZW5zLCB0aGUgcmVwb3J0ZWQgZXZhbHVhdGlvbnMgcmV2ZWFsIHRoYXQgdGhlIG1vZGVsIG91dHBlcmZvcm1zIG90aGVyIG9wZW4tc291cmNlIG1vZGVscyBhbmQgcml2YWxzIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMuXG5cbkZvciBtb2RlbCBkZXRhaWxzLCBwbGVhc2UgdmlzaXQgW3RoZSBEZWVwU2Vlay1WMyByZXBvXShodHRwczovL2dpdGh1Yi5jb20vZGVlcHNlZWstYWkvRGVlcFNlZWstVjMpIGZvciBtb3JlIGluZm9ybWF0aW9uLCBvciBzZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL2FwaS1kb2NzLmRlZXBzZWVrLmNvbS9uZXdzL25ld3MxMjI2KS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiRGVlcFNlZWsiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDM4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwODkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tcGx1cyIsIm5hbWUiOiJRd2VuOiBRd2VuLVBsdXMiLCJjcmVhdGVkIjoxNzM4NDA5ODQwLCJkZXNjcmlwdGlvbiI6IlF3ZW4tUGx1cywgYmFzZWQgb24gdGhlIFF3ZW4yLjUgZm91bmRhdGlvbiBtb2RlbCwgaXMgYSAxMzFLIGNvbnRleHQgbW9kZWwgd2l0aCBhIGJhbGFuY2VkIHBlcmZvcm1hbmNlLCBzcGVlZCwgYW5kIGNvc3QgY29tYmluYXRpb24uIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvZ25pdGl2ZWNvbXB1dGF0aW9ucy9kb2xwaGluLW1peHRyYWwtOHg3YiIsIm5hbWUiOiJEb2xwaGluIDIuNiBNaXh0cmFsIDh4N0Ig8J+QrCIsImNyZWF0ZWQiOjE3MDMxMTY4MDAsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBhIDE2ayBjb250ZXh0IGZpbmUtdHVuZSBvZiBbTWl4dHJhbC04eDdiXSgvbW9kZWxzL21pc3RyYWxhaS9taXh0cmFsLTh4N2IpLiBJdCBleGNlbHMgaW4gY29kaW5nIHRhc2tzIGR1ZSB0byBleHRlbnNpdmUgdHJhaW5pbmcgd2l0aCBjb2RpbmcgZGF0YSBhbmQgaXMga25vd24gZm9yIGl0cyBvYmVkaWVuY2UsIGFsdGhvdWdoIGl0IGxhY2tzIERQTyB0dW5pbmcuXG5cblRoZSBtb2RlbCBpcyB1bmNlbnNvcmVkIGFuZCBpcyBzdHJpcHBlZCBvZiBhbGlnbm1lbnQgYW5kIGJpYXMuIEl0IHJlcXVpcmVzIGFuIGV4dGVybmFsIGFsaWdubWVudCBsYXllciBmb3IgZXRoaWNhbCB1c2UuIFVzZXJzIGFyZSBjYXV0aW9uZWQgdG8gdXNlIHRoaXMgaGlnaGx5IGNvbXBsaWFudCBtb2RlbCByZXNwb25zaWJseSwgYXMgZGV0YWlsZWQgaW4gYSBibG9nIHBvc3QgYWJvdXQgdW5jZW5zb3JlZCBtb2RlbHMgYXQgW2VyaWNoYXJ0Zm9yZC5jb20vdW5jZW5zb3JlZC1tb2RlbHNdKGh0dHBzOi8vZXJpY2hhcnRmb3JkLmNvbS91bmNlbnNvcmVkLW1vZGVscykuXG5cbiNtb2UgI3VuY2Vuc29yZWQiLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJqb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYiIsIm5hbWUiOiJBaXJvYm9yb3MgNzBCIiwiY3JlYXRlZCI6MTY5ODUzNzYwMCwiZGVzY3JpcHRpb24iOiJBIExsYW1hIDIgNzBCIGZpbmUtdHVuZSB1c2luZyBzeW50aGV0aWMgZGF0YSAodGhlIEFpcm9ib3JvcyBkYXRhc2V0KS5cblxuQ3VycmVudGx5IGJhc2VkIG9uIFtqb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9qb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYi0yLjIuMSksIGJ1dCBtaWdodCBnZXQgdXBkYXRlZCBpbiB0aGUgZnV0dXJlLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFpcm9ib3JvcyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC93aXphcmRsbS0yLTh4MjJiIiwibmFtZSI6IldpemFyZExNLTIgOHgyMkIiLCJjcmVhdGVkIjoxNzEzMjI1NjAwLCJkZXNjcmlwdGlvbiI6IldpemFyZExNLTIgOHgyMkIgaXMgTWljcm9zb2Z0IEFJJ3MgbW9zdCBhZHZhbmNlZCBXaXphcmQgbW9kZWwuIEl0IGRlbW9uc3RyYXRlcyBoaWdobHkgY29tcGV0aXRpdmUgcGVyZm9ybWFuY2UgY29tcGFyZWQgdG8gbGVhZGluZyBwcm9wcmlldGFyeSBtb2RlbHMsIGFuZCBpdCBjb25zaXN0ZW50bHkgb3V0cGVyZm9ybXMgYWxsIGV4aXN0aW5nIHN0YXRlLW9mLXRoZS1hcnQgb3BlbnNvdXJjZSBtb2RlbHMuXG5cbkl0IGlzIGFuIGluc3RydWN0IGZpbmV0dW5lIG9mIFtNaXh0cmFsIDh4MjJCXSgvbW9kZWxzL21pc3RyYWxhaS9taXh0cmFsLTh4MjJiKS5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly93aXphcmRsbS5naXRodWIuaW8vV2l6YXJkTE0yLykuXG5cbiNtb2UiLCJjb250ZXh0X2xlbmd0aCI6NjU1MzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY1NTM2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0aGVkcnVtbWVyL3Vuc2xvcG5lbW8tMTJiIiwibmFtZSI6IlVuc2xvcG5lbW8gMTJCIiwiY3JlYXRlZCI6MTczMTEwMzQ0OCwiZGVzY3JpcHRpb24iOiJVbnNsb3BOZW1vIHY0LjEgaXMgdGhlIGxhdGVzdCBhZGRpdGlvbiBmcm9tIHRoZSBjcmVhdG9yIG9mIFJvY2luYW50ZSwgZGVzaWduZWQgZm9yIGFkdmVudHVyZSB3cml0aW5nIGFuZCByb2xlLXBsYXkgc2NlbmFyaW9zLiIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhaTIxL2phbWJhLWluc3RydWN0IiwibmFtZSI6IkFJMjE6IEphbWJhIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxOTI3MzYwMCwiZGVzY3JpcHRpb24iOiJUaGUgSmFtYmEtSW5zdHJ1Y3QgbW9kZWwsIGludHJvZHVjZWQgYnkgQUkyMSBMYWJzLCBpcyBhbiBpbnN0cnVjdGlvbi10dW5lZCB2YXJpYW50IG9mIHRoZWlyIGh5YnJpZCBTU00tVHJhbnNmb3JtZXIgSmFtYmEgbW9kZWwsIHNwZWNpZmljYWxseSBvcHRpbWl6ZWQgZm9yIGVudGVycHJpc2UgYXBwbGljYXRpb25zLlxuXG4tIDI1NksgQ29udGV4dCBXaW5kb3c6IEl0IGNhbiBwcm9jZXNzIGV4dGVuc2l2ZSBpbmZvcm1hdGlvbiwgZXF1aXZhbGVudCB0byBhIDQwMC1wYWdlIG5vdmVsLCB3aGljaCBpcyBiZW5lZmljaWFsIGZvciB0YXNrcyBpbnZvbHZpbmcgbGFyZ2UgZG9jdW1lbnRzIHN1Y2ggYXMgZmluYW5jaWFsIHJlcG9ydHMgb3IgbGVnYWwgZG9jdW1lbnRzXG4tIFNhZmV0eSBhbmQgQWNjdXJhY3k6IEphbWJhLUluc3RydWN0IGlzIGRlc2lnbmVkIHdpdGggZW5oYW5jZWQgc2FmZXR5IGZlYXR1cmVzIHRvIGVuc3VyZSBzZWN1cmUgZGVwbG95bWVudCBpbiBlbnRlcnByaXNlIGVudmlyb25tZW50cywgcmVkdWNpbmcgdGhlIHJpc2sgYW5kIGNvc3Qgb2YgaW1wbGVtZW50YXRpb25cblxuUmVhZCB0aGVpciBbYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5haTIxLmNvbS9ibG9nL2Fubm91bmNpbmctamFtYmEpIHRvIGxlYXJuIG1vcmUuXG5cbkphbWJhIGhhcyBhIGtub3dsZWRnZSBjdXRvZmYgb2YgRmVicnVhcnkgMjAyNC4iLCJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InRoZWRydW1tZXIvc2t5ZmFsbC0zNmItdjIiLCJuYW1lIjoiVGhlRHJ1bW1lcjogU2t5ZmFsbCAzNkIgVjIiLCJjcmVhdGVkIjoxNzQxNjM2NTY2LCJkZXNjcmlwdGlvbiI6IlNreWZhbGwgMzZCIHYyIGlzIGFuIGVuaGFuY2VkIGl0ZXJhdGlvbiBvZiBNaXN0cmFsIFNtYWxsIDI1MDEsIHNwZWNpZmljYWxseSBmaW5lLXR1bmVkIGZvciBpbXByb3ZlZCBjcmVhdGl2aXR5LCBudWFuY2VkIHdyaXRpbmcsIHJvbGUtcGxheWluZywgYW5kIGNvaGVyZW50IHN0b3J5dGVsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyNzY4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1wcm8iLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgUHJvIDEuMCIsImNyZWF0ZWQiOjE3MDI0MjU2MDAsImRlc2NyaXB0aW9uIjoiR29vZ2xlJ3MgZmxhZ3NoaXAgdGV4dCBnZW5lcmF0aW9uIG1vZGVsLiBEZXNpZ25lZCB0byBoYW5kbGUgbmF0dXJhbCBsYW5ndWFnZSB0YXNrcywgbXVsdGl0dXJuIHRleHQgYW5kIGNvZGUgY2hhdCwgYW5kIGNvZGUgZ2VuZXJhdGlvbi5cblxuU2VlIHRoZSBiZW5jaG1hcmtzIGFuZCBwcm9tcHRpbmcgZ3VpZGVsaW5lcyBmcm9tIFtEZWVwbWluZF0oaHR0cHM6Ly9kZWVwbWluZC5nb29nbGUvdGVjaG5vbG9naWVzL2dlbWluaS8pLlxuXG5Vc2FnZSBvZiBHZW1pbmkgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtaW5pIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L3Rlcm1zKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzYwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLXByby12aXNpb24iLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgUHJvIFZpc2lvbiAxLjAiLCJjcmVhdGVkIjoxNzAyNDI1NjAwLCJkZXNjcmlwdGlvbiI6Ikdvb2dsZSdzIGZsYWdzaGlwIG11bHRpbW9kYWwgbW9kZWwsIHN1cHBvcnRpbmcgaW1hZ2UgYW5kIHZpZGVvIGluIHRleHQgb3IgY2hhdCBwcm9tcHRzIGZvciBhIHRleHQgb3IgY29kZSByZXNwb25zZS5cblxuU2VlIHRoZSBiZW5jaG1hcmtzIGFuZCBwcm9tcHRpbmcgZ3VpZGVsaW5lcyBmcm9tIFtEZWVwbWluZF0oaHR0cHM6Ly9kZWVwbWluZC5nb29nbGUvdGVjaG5vbG9naWVzL2dlbWluaS8pLlxuXG5Vc2FnZSBvZiBHZW1pbmkgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtaW5pIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L3Rlcm1zKS5cblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTYzODQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLTAxMjUiLCJuYW1lIjoiT3BlbkFJOiBHUFQtMy41IFR1cmJvIDE2ayIsImNyZWF0ZWQiOjE2ODUyMzIwMDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBHUFQtMy41IFR1cmJvIG1vZGVsIHdpdGggaW1wcm92ZWQgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBKU09OIG1vZGUsIHJlcHJvZHVjaWJsZSBvdXRwdXRzLCBwYXJhbGxlbCBmdW5jdGlvbiBjYWxsaW5nLCBhbmQgbW9yZS4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuXG5cblRoaXMgdmVyc2lvbiBoYXMgYSBoaWdoZXIgYWNjdXJhY3kgYXQgcmVzcG9uZGluZyBpbiByZXF1ZXN0ZWQgZm9ybWF0cyBhbmQgYSBmaXggZm9yIGEgYnVnIHdoaWNoIGNhdXNlZCBhIHRleHQgZW5jb2RpbmcgaXNzdWUgZm9yIG5vbi1FbmdsaXNoIGxhbmd1YWdlIGZ1bmN0aW9uIGNhbGxzLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXItMDMtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUiAoMDMtMjAyNCkiLCJjcmVhdGVkIjoxNzA5MzQxMjAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQtUiBpcyBhIDM1QiBwYXJhbWV0ZXIgbW9kZWwgdGhhdCBwZXJmb3JtcyBjb252ZXJzYXRpb25hbCBsYW5ndWFnZSB0YXNrcyBhdCBhIGhpZ2hlciBxdWFsaXR5LCBtb3JlIHJlbGlhYmx5LCBhbmQgd2l0aCBhIGxvbmdlciBjb250ZXh0IHRoYW4gcHJldmlvdXMgbW9kZWxzLiBJdCBjYW4gYmUgdXNlZCBmb3IgY29tcGxleCB3b3JrZmxvd3MgbGlrZSBjb2RlIGdlbmVyYXRpb24sIHJldHJpZXZhbCBhdWdtZW50ZWQgZ2VuZXJhdGlvbiAoUkFHKSwgdG9vbCB1c2UsIGFuZCBhZ2VudHMuXG5cblJlYWQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXIiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIiLCJjcmVhdGVkIjoxNzEwMzc0NDAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQtUiBpcyBhIDM1QiBwYXJhbWV0ZXIgbW9kZWwgdGhhdCBwZXJmb3JtcyBjb252ZXJzYXRpb25hbCBsYW5ndWFnZSB0YXNrcyBhdCBhIGhpZ2hlciBxdWFsaXR5LCBtb3JlIHJlbGlhYmx5LCBhbmQgd2l0aCBhIGxvbmdlciBjb250ZXh0IHRoYW4gcHJldmlvdXMgbW9kZWxzLiBJdCBjYW4gYmUgdXNlZCBmb3IgY29tcGxleCB3b3JrZmxvd3MgbGlrZSBjb2RlIGdlbmVyYXRpb24sIHJldHJpZXZhbCBhdWdtZW50ZWQgZ2VuZXJhdGlvbiAoUkFHKSwgdG9vbCB1c2UsIGFuZCBhZ2VudHMuXG5cblJlYWQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvIiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyIsImNyZWF0ZWQiOjE2ODUyMzIwMDAsImRlc2NyaXB0aW9uIjoiR1BULTMuNSBUdXJibyBpcyBPcGVuQUkncyBmYXN0ZXN0IG1vZGVsLiBJdCBjYW4gdW5kZXJzdGFuZCBhbmQgZ2VuZXJhdGUgbmF0dXJhbCBsYW5ndWFnZSBvciBjb2RlLCBhbmQgaXMgb3B0aW1pemVkIGZvciBjaGF0IGFuZCB0cmFkaXRpb25hbCBjb21wbGV0aW9uIHRhc2tzLlxuXG5UcmFpbmluZyBkYXRhIHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXIxIiwibmFtZSI6IkRlZXBTZWVrOiBSMSIsImNyZWF0ZWQiOjE3MzczODEwOTUsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgaXMgaGVyZTogUGVyZm9ybWFuY2Ugb24gcGFyIHdpdGggW09wZW5BSSBvMV0oL29wZW5haS9vMSksIGJ1dCBvcGVuLXNvdXJjZWQgYW5kIHdpdGggZnVsbHkgb3BlbiByZWFzb25pbmcgdG9rZW5zLiBJdCdzIDY3MUIgcGFyYW1ldGVycyBpbiBzaXplLCB3aXRoIDM3QiBhY3RpdmUgaW4gYW4gaW5mZXJlbmNlIHBhc3MuXG5cbkZ1bGx5IG9wZW4tc291cmNlIG1vZGVsICYgW3RlY2huaWNhbCByZXBvcnRdKGh0dHBzOi8vYXBpLWRvY3MuZGVlcHNlZWsuY29tL25ld3MvbmV3czI1MDEyMCkuXG5cbk1JVCBsaWNlbnNlZDogRGlzdGlsbCAmIGNvbW1lcmNpYWxpemUgZnJlZWx5ISIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNTQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0MCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InVuZGk5NS9yZW1tLXNsZXJwLWwyLTEzYiIsIm5hbWUiOiJSZU1NIFNMRVJQIDEzQiIsImNyZWF0ZWQiOjE2ODk5ODQwMDAsImRlc2NyaXB0aW9uIjoiQSByZWNyZWF0aW9uIHRyaWFsIG9mIHRoZSBvcmlnaW5hbCBNeXRob01heC1MMi1CMTMgYnV0IHdpdGggdXBkYXRlZCBtb2RlbHMuICNtZXJnZSIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNTYyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTEyNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjE0NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicHlnbWFsaW9uYWkvbXl0aGFsaW9uLTEzYiIsIm5hbWUiOiJQeWdtYWxpb246IE15dGhhbGlvbiAxM0IiLCJjcmVhdGVkIjoxNjkzNjEyODAwLCJkZXNjcmlwdGlvbiI6IkEgYmxlbmQgb2YgdGhlIG5ldyBQeWdtYWxpb24tMTNiIGFuZCBNeXRob01heC4gI21lcmdlIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1NjI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMTI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMjQsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvbm91cy1oZXJtZXMtMi1taXh0cmFsLTh4N2ItZHBvIiwibmFtZSI6Ik5vdXM6IEhlcm1lcyAyIE1peHRyYWwgOHg3QiBEUE8iLCJjcmVhdGVkIjoxNzA1MzYzMjAwLCJkZXNjcmlwdGlvbiI6Ik5vdXMgSGVybWVzIDIgTWl4dHJhbCA4eDdCIERQTyBpcyB0aGUgbmV3IGZsYWdzaGlwIE5vdXMgUmVzZWFyY2ggbW9kZWwgdHJhaW5lZCBvdmVyIHRoZSBbTWl4dHJhbCA4eDdCIE1vRSBMTE1dKC9tb2RlbHMvbWlzdHJhbGFpL21peHRyYWwtOHg3YikuXG5cblRoZSBtb2RlbCB3YXMgdHJhaW5lZCBvbiBvdmVyIDEsMDAwLDAwMCBlbnRyaWVzIG9mIHByaW1hcmlseSBbR1BULTRdKC9tb2RlbHMvb3BlbmFpL2dwdC00KSBnZW5lcmF0ZWQgZGF0YSwgYXMgd2VsbCBhcyBvdGhlciBoaWdoIHF1YWxpdHkgZGF0YSBmcm9tIG9wZW4gZGF0YXNldHMgYWNyb3NzIHRoZSBBSSBsYW5kc2NhcGUsIGFjaGlldmluZyBzdGF0ZSBvZiB0aGUgYXJ0IHBlcmZvcm1hbmNlIG9uIGEgdmFyaWV0eSBvZiB0YXNrcy5cblxuI21vZSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXh0cmFsLTh4N2IiLCJuYW1lIjoiTWlzdHJhbDogTWl4dHJhbCA4eDdCIChiYXNlKSIsImNyZWF0ZWQiOjE3MDIxNjY0MDAsImRlc2NyaXB0aW9uIjoiTWl4dHJhbCA4eDdCIGlzIGEgcHJldHJhaW5lZCBnZW5lcmF0aXZlIFNwYXJzZSBNaXh0dXJlIG9mIEV4cGVydHMsIGJ5IE1pc3RyYWwgQUkuIEluY29ycG9yYXRlcyA4IGV4cGVydHMgKGZlZWQtZm9yd2FyZCBuZXR3b3JrcykgZm9yIGEgdG90YWwgb2YgNDdCIHBhcmFtZXRlcnMuIEJhc2UgbW9kZWwgKG5vdCBmaW5lLXR1bmVkIGZvciBpbnN0cnVjdGlvbnMpIC0gc2VlIFtNaXh0cmFsIDh4N0IgSW5zdHJ1Y3RdKC9tb2RlbHMvbWlzdHJhbGFpL21peHRyYWwtOHg3Yi1pbnN0cnVjdCkgZm9yIGFuIGluc3RydWN0LXR1bmVkIG1vZGVsLlxuXG4jbW9lIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJub25lIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi0yLjUtdmwtNzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUtVkwgNzJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNjYxNzYwMCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IFZMIDcyQiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBVbmRlcnN0YW5kaW5nIHZpZGVvcyBvZiAyMG1pbis6IFF3ZW4yLjUtVkwgY2FuIHVuZGVyc3RhbmQgdmlkZW9zIG92ZXIgMjAgbWludXRlcyBmb3IgaGlnaC1xdWFsaXR5IHZpZGVvLWJhc2VkIHF1ZXN0aW9uIGFuc3dlcmluZywgZGlhbG9nLCBjb250ZW50IGNyZWF0aW9uLCBldGMuXG5cbi0gQWdlbnQgdGhhdCBjYW4gb3BlcmF0ZSB5b3VyIG1vYmlsZXMsIHJvYm90cywgZXRjLjogd2l0aCB0aGUgYWJpbGl0aWVzIG9mIGNvbXBsZXggcmVhc29uaW5nIGFuZCBkZWNpc2lvbiBtYWtpbmcsIFF3ZW4yLjUtVkwgY2FuIGJlIGludGVncmF0ZWQgd2l0aCBkZXZpY2VzIGxpa2UgbW9iaWxlIHBob25lcywgcm9ib3RzLCBldGMuLCBmb3IgYXV0b21hdGljIG9wZXJhdGlvbiBiYXNlZCBvbiB2aXN1YWwgZW52aXJvbm1lbnQgYW5kIHRleHQgaW5zdHJ1Y3Rpb25zLlxuXG4tIE11bHRpbGluZ3VhbCBTdXBwb3J0OiB0byBzZXJ2ZSBnbG9iYWwgdXNlcnMsIGJlc2lkZXMgRW5nbGlzaCBhbmQgQ2hpbmVzZSwgUXdlbjIuNS1WTCBub3cgc3VwcG9ydHMgdGhlIHVuZGVyc3RhbmRpbmcgb2YgdGV4dHMgaW4gZGlmZmVyZW50IGxhbmd1YWdlcyBpbnNpZGUgaW1hZ2VzLCBpbmNsdWRpbmcgbW9zdCBFdXJvcGVhbiBsYW5ndWFnZXMsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgVmlldG5hbWVzZSwgZXRjLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBzZWUgdGhpcyBbYmxvZyBwb3N0XShodHRwczovL3F3ZW5sbS5naXRodWIuaW8vYmxvZy9xd2VuMi12bC8pIGFuZCBbR2l0SHViIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9Rd2VuTE0vUXdlbjItVkwpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA1NzgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidG9reW90ZWNoLWxsbS9sbGFtYS0zLjEtc3dhbGxvdy03MGItaW5zdHJ1Y3QtdjAuMyIsIm5hbWUiOiJTd2FsbG93OiBMbGFtYSAzLjEgU3dhbGxvdyA3MEIgSW5zdHJ1Y3QgVjAuMyIsImNyZWF0ZWQiOjE3NDE4MTM5MzYsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4xIFN3YWxsb3cgNzBCIGlzIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdGhhdCB3YXMgYnVpbHQgYnkgY29udGludWFsIHByZS10cmFpbmluZyBvbiB0aGUgTWV0YSBMbGFtYSAzLjEgNzBCLiBMbGFtYSAzLjEgU3dhbGxvdyBlbmhhbmNlZCB0aGUgSmFwYW5lc2UgbGFuZ3VhZ2UgY2FwYWJpbGl0aWVzIG9mIHRoZSBvcmlnaW5hbCBMbGFtYSAzLjEgd2hpbGUgcmV0YWluaW5nIHRoZSBFbmdsaXNoIGxhbmd1YWdlIGNhcGFiaWxpdGllcy4gU3dhbGxvdyB1c2VkIGFwcHJveGltYXRlbHkgMjAwIGJpbGxpb24gdG9rZW5zIHRoYXQgd2VyZSBzYW1wbGVkIGZyb20gYSBsYXJnZSBKYXBhbmVzZSB3ZWIgY29ycHVzIChTd2FsbG93IENvcnB1cyBWZXJzaW9uIDIpLCBKYXBhbmVzZSBhbmQgRW5nbGlzaCBXaWtpcGVkaWEgYXJ0aWNsZXMsIGFuZCBtYXRoZW1hdGljYWwgYW5kIGNvZGluZyBjb250ZW50cywgZXRjIChzZWUgdGhlIFRyYWluaW5nIERhdGFzZXRzIHNlY3Rpb24gb2YgdGhlIGJhc2UgbW9kZWwpIGZvciBjb250aW51YWwgcHJlLXRyYWluaW5nLiBUaGUgaW5zdHJ1Y3Rpb24tdHVuZWQgbW9kZWxzIChJbnN0cnVjdCkgd2VyZSBidWlsdCBieSBzdXBlcnZpc2VkIGZpbmUtdHVuaW5nIChTRlQpIG9uIHRoZSBzeW50aGV0aWMgZGF0YSBzcGVjaWFsbHkgYnVpbHQgZm9yIEphcGFuZXNlLiAiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbjIuNS12bC03MmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjogUXdlbjIuNSBWTCA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzM4NDEwMzExLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtVkwgaXMgcHJvZmljaWVudCBpbiByZWNvZ25pemluZyBjb21tb24gb2JqZWN0cyBzdWNoIGFzIGZsb3dlcnMsIGJpcmRzLCBmaXNoLCBhbmQgaW5zZWN0cy4gSXQgaXMgYWxzbyBoaWdobHkgY2FwYWJsZSBvZiBhbmFseXppbmcgdGV4dHMsIGNoYXJ0cywgaWNvbnMsIGdyYXBoaWNzLCBhbmQgbGF5b3V0cyB3aXRoaW4gaW1hZ2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2FvMTBrL2wzLjEtZXVyeWFsZS03MGIiLCJuYW1lIjoiU2FvMTBLOiBMbGFtYSAzLjEgRXVyeWFsZSA3MEIgdjIuMiIsImNyZWF0ZWQiOjE3MjQ4MDMyMDAsImRlc2NyaXB0aW9uIjoiRXVyeWFsZSBMMy4xIDcwQiB2Mi4yIGlzIGEgbW9kZWwgZm9jdXNlZCBvbiBjcmVhdGl2ZSByb2xlcGxheSBmcm9tIFtTYW8xMGtdKGh0dHBzOi8va28tZmkuY29tL3NhbzEwaykuIEl0IGlzIHRoZSBzdWNjZXNzb3Igb2YgW0V1cnlhbGUgTDMgNzBCIHYyLjFdKC9tb2RlbHMvc2FvMTBrL2wzLWV1cnlhbGUtNzBiKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2FvMTBrL2wzLjMtZXVyeWFsZS03MGIiLCJuYW1lIjoiU2FvMTBLOiBMbGFtYSAzLjMgRXVyeWFsZSA3MEIiLCJjcmVhdGVkIjoxNzM0NTM1OTI4LCJkZXNjcmlwdGlvbiI6IkV1cnlhbGUgTDMuMyA3MEIgaXMgYSBtb2RlbCBmb2N1c2VkIG9uIGNyZWF0aXZlIHJvbGVwbGF5IGZyb20gW1NhbzEwa10oaHR0cHM6Ly9rby1maS5jb20vc2FvMTBrKS4gSXQgaXMgdGhlIHN1Y2Nlc3NvciBvZiBbRXVyeWFsZSBMMyA3MEIgdjIuMl0oL21vZGVscy9zYW8xMGsvbDMtZXVyeWFsZS03MGIpLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic3RlZWxza3VsbC9sMy4zLWVsZWN0cmEtcjEtNzBiIiwibmFtZSI6IlN0ZWVsU2t1bGw6IEwzLjMgRWxlY3RyYSBSMSA3MEIiLCJjcmVhdGVkIjoxNzQyMDY3NjExLCJkZXNjcmlwdGlvbiI6IkwzLjMtRWxlY3RyYS1SMS03MCBpcyB0aGUgbmV3ZXN0IHJlbGVhc2Ugb2YgdGhlIFVubmFtZWQgc2VyaWVzLiBCdWlsdCBvbiBhIERlZXBTZWVrIFIxIERpc3RpbGwgYmFzZSwgRWxlY3RyYS1SMSBpbnRlZ3JhdGVzIHZhcmlvdXMgbW9kZWxzIHRvZ2V0aGVyIHRvIHByb3ZpZGUgYW4gaW50ZWxsaWdlbnQgYW5kIGNvaGVyZW50IG1vZGVsIGNhcGFibGUgb2YgcHJvdmlkaW5nIGRlZXAgY2hhcmFjdGVyIGluc2lnaHRzLiBUaHJvdWdoIHByb3BlciBwcm9tcHRpbmcsIHRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgYWR2YW5jZWQgcmVhc29uaW5nIGNhcGFiaWxpdGllcyBhbmQgdW5wcm9tcHRlZCBleHBsb3JhdGlvbiBvZiBjaGFyYWN0ZXIgaW5uZXIgdGhvdWdodHMgYW5kIG1vdGl2YXRpb25zLiBSZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIGFuZCBbcHJvbXB0aW5nIGhlcmVdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vU3RlZWxza3VsbC9MMy4zLUVsZWN0cmEtUjEtNzBiKSIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDk1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWlvbi1sYWJzL2Fpb24tMS4wLW1pbmkiLCJuYW1lIjoiQWlvbkxhYnM6IEFpb24tMS4wLU1pbmkiLCJjcmVhdGVkIjoxNzM4Njk3MTA3LCJkZXNjcmlwdGlvbiI6IkFpb24tMS4wLU1pbmkgMzJCIHBhcmFtZXRlciBtb2RlbCBpcyBhIGRpc3RpbGxlZCB2ZXJzaW9uIG9mIHRoZSBEZWVwU2Vlay1SMSBtb2RlbCwgZGVzaWduZWQgZm9yIHN0cm9uZyBwZXJmb3JtYW5jZSBpbiByZWFzb25pbmcgZG9tYWlucyBzdWNoIGFzIG1hdGhlbWF0aWNzLCBjb2RpbmcsIGFuZCBsb2dpYy4gSXQgaXMgYSBtb2RpZmllZCB2YXJpYW50IG9mIGEgRnVzZUFJIG1vZGVsIHRoYXQgb3V0cGVyZm9ybXMgUjEtRGlzdGlsbC1Rd2VuLTMyQiBhbmQgUjEtRGlzdGlsbC1MbGFtYS03MEIsIHdpdGggYmVuY2htYXJrIHJlc3VsdHMgYXZhaWxhYmxlIG9uIGl0cyBbSHVnZ2luZyBGYWNlIHBhZ2VdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vRnVzZUFJL0Z1c2VPMS1EZWVwU2Vla1IxLVF3US1Ta3lUMS0zMkItUHJldmlldyksIGluZGVwZW5kZW50bHkgcmVwbGljYXRlZCBmb3IgdmVyaWZpY2F0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA3IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyNzY4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9ub3JvbWFpZC0yMGIiLCJuYW1lIjoiTm9yb21haWQgMjBCIiwiY3JlYXRlZCI6MTcwMDk1NjgwMCwiZGVzY3JpcHRpb24iOiJBIGNvbGxhYiBiZXR3ZWVuIElrYXJpRGV2IGFuZCBVbmRpLiBUaGlzIG1lcmdlIGlzIHN1aXRhYmxlIGZvciBSUCwgRVJQLCBhbmQgZ2VuZXJhbCBrbm93bGVkZ2UuXG5cbiNtZXJnZSAjdW5jZW5zb3JlZCIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtMzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUgMzJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTc0MTA0Mjc0NCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IDMyQiBJbnN0cnVjdCBpcyB0aGUgaW5zdHJ1Y3Rpb24tdHVuZWQgdmFyaWFudCBvZiB0aGUgbGF0ZXN0IFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgc2VyaWVzLiBJdCBwcm92aWRlcyBlbmhhbmNlZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgY2FwYWJpbGl0aWVzLCBpbXByb3ZlZCBwcm9maWNpZW5jeSBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNhbCByZWFzb25pbmcsIGFuZCByb2J1c3QgaGFuZGxpbmcgb2Ygc3RydWN0dXJlZCBkYXRhIGFuZCBvdXRwdXRzIHN1Y2ggYXMgSlNPTi4gSXQgc3VwcG9ydHMgbG9uZy1jb250ZXh0IHByb2Nlc3NpbmcgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIG11bHRpbGluZ3VhbCB0YXNrcyBhY3Jvc3MgMjkrIGxhbmd1YWdlcy4gVGhlIG1vZGVsIGhhcyAzMi41IGJpbGxpb24gcGFyYW1ldGVycywgNjQgbGF5ZXJzLCBhbmQgdXRpbGl6ZXMgYW4gYWR2YW5jZWQgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlIHdpdGggUm9QRSwgU3dpR0xVLCBSTVNOb3JtLCBhbmQgQXR0ZW50aW9uIFFLViBiaWFzLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFtRd2VuMi41IEJsb2ddKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLjUvKSAuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDc5IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNzkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzb3Bob3N5bXBhdGhlaWEvbWlkbmlnaHQtcm9zZS03MGIiLCJuYW1lIjoiTWlkbmlnaHQgUm9zZSA3MEIiLCJjcmVhdGVkIjoxNzExMDY1NjAwLCJkZXNjcmlwdGlvbiI6IkEgbWVyZ2Ugd2l0aCBhIGNvbXBsZXggZmFtaWx5IHRyZWUsIHRoaXMgbW9kZWwgd2FzIGNyYWZ0ZWQgZm9yIHJvbGVwbGF5aW5nIGFuZCBzdG9yeXRlbGxpbmcuIE1pZG5pZ2h0IFJvc2UgaXMgYSBzdWNjZXNzb3IgdG8gUm9ndWUgUm9zZSBhbmQgQXVyb3JhIE5pZ2h0cyBhbmQgaW1wcm92ZXMgdXBvbiB0aGVtIGJvdGguIEl0IHdhbnRzIHRvIHByb2R1Y2UgbGVuZ3RoeSBvdXRwdXQgYnkgZGVmYXVsdCBhbmQgaXMgdGhlIGJlc3QgY3JlYXRpdmUgd3JpdGluZyBtZXJnZSBwcm9kdWNlZCBzbyBmYXIgYnkgc29waG9zeW1wYXRoZWlhLlxuXG5EZXNjZW5kaW5nIGZyb20gZWFybGllciB2ZXJzaW9ucyBvZiBNaWRuaWdodCBSb3NlIGFuZCBbV2l6YXJkIFR1bHUgRG9scGhpbiA3MEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vc29waG9zeW1wYXRoZWlhL1dpemFyZC1UdWx1LURvbHBoaW4tNzBCLXYxLjApLCBpdCBpbmhlcml0cyB0aGUgYmVzdCBxdWFsaXRpZXMgb2YgZWFjaC4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhaXJvYm9yb3MifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvaGVybWVzLTMtbGxhbWEtMy4xLTQwNWIiLCJuYW1lIjoiTm91czogSGVybWVzIDMgNDA1QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjM3NjY0MDAsImRlc2NyaXB0aW9uIjoiSGVybWVzIDMgaXMgYSBnZW5lcmFsaXN0IGxhbmd1YWdlIG1vZGVsIHdpdGggbWFueSBpbXByb3ZlbWVudHMgb3ZlciBIZXJtZXMgMiwgaW5jbHVkaW5nIGFkdmFuY2VkIGFnZW50aWMgY2FwYWJpbGl0aWVzLCBtdWNoIGJldHRlciByb2xlcGxheWluZywgcmVhc29uaW5nLCBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbiwgbG9uZyBjb250ZXh0IGNvaGVyZW5jZSwgYW5kIGltcHJvdmVtZW50cyBhY3Jvc3MgdGhlIGJvYXJkLlxuXG5IZXJtZXMgMyA0MDVCIGlzIGEgZnJvbnRpZXItbGV2ZWwsIGZ1bGwtcGFyYW1ldGVyIGZpbmV0dW5lIG9mIHRoZSBMbGFtYS0zLjEgNDA1QiBmb3VuZGF0aW9uIG1vZGVsLCBmb2N1c2VkIG9uIGFsaWduaW5nIExMTXMgdG8gdGhlIHVzZXIsIHdpdGggcG93ZXJmdWwgc3RlZXJpbmcgY2FwYWJpbGl0aWVzIGFuZCBjb250cm9sIGdpdmVuIHRvIHRoZSBlbmQgdXNlci5cblxuVGhlIEhlcm1lcyAzIHNlcmllcyBidWlsZHMgYW5kIGV4cGFuZHMgb24gdGhlIEhlcm1lcyAyIHNldCBvZiBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBtb3JlIHBvd2VyZnVsIGFuZCByZWxpYWJsZSBmdW5jdGlvbiBjYWxsaW5nIGFuZCBzdHJ1Y3R1cmVkIG91dHB1dCBjYXBhYmlsaXRpZXMsIGdlbmVyYWxpc3QgYXNzaXN0YW50IGNhcGFiaWxpdGllcywgYW5kIGltcHJvdmVkIGNvZGUgZ2VuZXJhdGlvbiBza2lsbHMuXG5cbkhlcm1lcyAzIGlzIGNvbXBldGl0aXZlLCBpZiBub3Qgc3VwZXJpb3IsIHRvIExsYW1hLTMuMSBJbnN0cnVjdCBtb2RlbHMgYXQgZ2VuZXJhbCBjYXBhYmlsaXRpZXMsIHdpdGggdmFyeWluZyBzdHJlbmd0aHMgYW5kIHdlYWtuZXNzZXMgYXR0cmlidXRhYmxlIGJldHdlZW4gdGhlIHR3by4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi0yN2ItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAyIDI3QiIsImNyZWF0ZWQiOjE3MjA4Mjg4MDAsImRlc2NyaXB0aW9uIjoiR2VtbWEgMiAyN0IgYnkgR29vZ2xlIGlzIGFuIG9wZW4gbW9kZWwgYnVpbHQgZnJvbSB0aGUgc2FtZSByZXNlYXJjaCBhbmQgdGVjaG5vbG9neSB1c2VkIHRvIGNyZWF0ZSB0aGUgW0dlbWluaSBtb2RlbHNdKC9tb2RlbHM/cT1nZW1pbmkpLlxuXG5HZW1tYSBtb2RlbHMgYXJlIHdlbGwtc3VpdGVkIGZvciBhIHZhcmlldHkgb2YgdGV4dCBnZW5lcmF0aW9uIHRhc2tzLCBpbmNsdWRpbmcgcXVlc3Rpb24gYW5zd2VyaW5nLCBzdW1tYXJpemF0aW9uLCBhbmQgcmVhc29uaW5nLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL2Jsb2cuZ29vZ2xlL3RlY2hub2xvZ3kvZGV2ZWxvcGVycy9nb29nbGUtZ2VtbWEtMi8pIGZvciBtb3JlIGRldGFpbHMuIFVzYWdlIG9mIEdlbW1hIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbW1hIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbW1hL3Rlcm1zKS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4xLTQwNWItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4xIDQwNUIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIxNjkyODAwLCJkZXNjcmlwdGlvbiI6IlRoZSBoaWdobHkgYW50aWNpcGF0ZWQgNDAwQiBjbGFzcyBvZiBMbGFtYTMgaXMgaGVyZSEgQ2xvY2tpbmcgaW4gYXQgMTI4ayBjb250ZXh0IHdpdGggaW1wcmVzc2l2ZSBldmFsIHNjb3JlcywgdGhlIE1ldGEgQUkgdGVhbSBjb250aW51ZXMgdG8gcHVzaCB0aGUgZnJvbnRpZXIgb2Ygb3Blbi1zb3VyY2UgTExNcy5cblxuTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgNDA1QiBpbnN0cnVjdC10dW5lZCB2ZXJzaW9uIGlzIG9wdGltaXplZCBmb3IgaGlnaCBxdWFsaXR5IGRpYWxvZ3VlIHVzZWNhc2VzLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluY2x1ZGluZyBHUFQtNG8gYW5kIENsYXVkZSAzLjUgU29ubmV0IGluIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLTEvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibGF0aXR1ZGVnYW1lcy93YXlmYXJlci1sYXJnZS03MGItbGxhbWEtMy4zIiwibmFtZSI6IkxhdGl0dWRlR2FtZXM6IFdheWZhcmVyIExhcmdlIDcwQiBMbGFtYSAzLjMiLCJjcmVhdGVkIjoxNzQxNjM2ODg1LCJkZXNjcmlwdGlvbiI6IldheWZhcmVyIExhcmdlIDcwQiBpcyBhIHJvbGVwbGF5IGFuZCB0ZXh0LWFkdmVudHVyZSBtb2RlbCBmaW5lLXR1bmVkIGZyb20gTWV0YeKAmXMgTGxhbWEtMy4zLTcwQi1JbnN0cnVjdC4gU3BlY2lmaWNhbGx5IG9wdGltaXplZCBmb3IgbmFycmF0aXZlLWRyaXZlbiwgY2hhbGxlbmdpbmcgc2NlbmFyaW9zLCBpdCBpbnRyb2R1Y2VzIHJlYWxpc3RpYyBzdGFrZXMsIGNvbmZsaWN0cywgYW5kIGNvbnNlcXVlbmNlcyBvZnRlbiBhdm9pZGVkIGJ5IHN0YW5kYXJkIFJMSEYtYWxpZ25lZCBtb2RlbHMuIFRyYWluZWQgdXNpbmcgYSBjdXJhdGVkIGJsZW5kIG9mIGFkdmVudHVyZSwgcm9sZXBsYXksIGFuZCBpbnN0cnVjdGl2ZSBmaWN0aW9uIGRhdGFzZXRzLCBXYXlmYXJlciBlbXBoYXNpemVzIHRlbnNlIHN0b3J5dGVsbGluZywgYXV0aGVudGljIHBsYXllciBmYWlsdXJlIHNjZW5hcmlvcywgYW5kIHJvYnVzdCBuYXJyYXRpdmUgaW1tZXJzaW9uLCBtYWtpbmcgaXQgdW5pcXVlbHkgc3VpdGVkIGZvciBpbnRlcmFjdGl2ZSBmaWN0aW9uIGFuZCBnYW1pbmcgZXhwZXJpZW5jZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0aGVkcnVtbWVyL2FudWJpcy1wcm8tMTA1Yi12MSIsIm5hbWUiOiJUaGVEcnVtbWVyOiBBbnViaXMgUHJvIDEwNUIgVjEiLCJjcmVhdGVkIjoxNzQxNjQyMjkwLCJkZXNjcmlwdGlvbiI6IkFudWJpcyBQcm8gMTA1QiB2MSBpcyBhbiBleHBhbmRlZCBhbmQgcmVmaW5lZCB2YXJpYW50IG9mIE1ldGHigJlzIExsYW1hIDMuMyA3MEIsIGZlYXR1cmluZyA1MCUgYWRkaXRpb25hbCBsYXllcnMgYW5kIGZ1cnRoZXIgZmluZS10dW5pbmcgdG8gbGV2ZXJhZ2UgaXRzIGluY3JlYXNlZCBjYXBhY2l0eS4gRGVzaWduZWQgZm9yIGFkdmFuY2VkIG5hcnJhdGl2ZSwgcm9sZXBsYXksIGFuZCBpbnN0cnVjdGlvbmFsIHRhc2tzLCBpdCBkZW1vbnN0cmF0ZXMgZW5oYW5jZWQgZW1vdGlvbmFsIGludGVsbGlnZW5jZSwgY3JlYXRpdml0eSwgbnVhbmNlZCBjaGFyYWN0ZXIgcG9ydHJheWFsLCBhbmQgc3VwZXJpb3IgcHJvbXB0IGFkaGVyZW5jZSBjb21wYXJlZCB0byBzbWFsbGVyIG1vZGVscy4gSXRzIGxhcmdlciBwYXJhbWV0ZXIgY291bnQgYWxsb3dzIGZvciBkZWVwZXIgY29udGV4dHVhbCB1bmRlcnN0YW5kaW5nIGFuZCBleHRlbmRlZCByZWFzb25pbmcgY2FwYWJpbGl0aWVzLCBvcHRpbWl6ZWQgZm9yIGVuZ2FnaW5nLCBpbnRlbGxpZ2VudCwgYW5kIGNvaGVyZW50IGludGVyYWN0aW9ucy4iLCJjb250ZXh0X2xlbmd0aCI6NjQwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTA3MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFldGhlcndpaW5nL21uLXN0YXJjYW5ub24tMTJiIiwibmFtZSI6IkFldGhlcndpaW5nOiBTdGFyY2Fubm9uIDEyQiIsImNyZWF0ZWQiOjE3MjM1MDcyMDAsImRlc2NyaXB0aW9uIjoiU3RhcmNhbm5vbiAxMkIgdjIgaXMgYSBjcmVhdGl2ZSByb2xlcGxheSBhbmQgc3Rvcnkgd3JpdGluZyBtb2RlbCwgYmFzZWQgb24gTWlzdHJhbCBOZW1vLCB1c2luZyBbbm90aGluZ2lpc3JlYWwvbW4tY2VsZXN0ZS0xMmJdKC9ub3RoaW5naWlzcmVhbC9tbi1jZWxlc3RlLTEyYikgYXMgYSBiYXNlLCB3aXRoIFtpbnRlcnZpdGVucy9taW5pLW1hZ251bS0xMmItdjEuMV0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9pbnRlcnZpdGVucy9taW5pLW1hZ251bS0xMmItdjEuMSkgbWVyZ2VkIGluIHVzaW5nIHRoZSBbVElFU10oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIzMDYuMDE3MDgpIG1ldGhvZC5cblxuQWx0aG91Z2ggbW9yZSBzaW1pbGFyIHRvIE1hZ251bSBvdmVyYWxsLCB0aGUgbW9kZWwgcmVtYWlucyB2ZXJ5IGNyZWF0aXZlLCB3aXRoIGEgcGxlYXNhbnQgd3JpdGluZyBzdHlsZS4gSXQgaXMgcmVjb21tZW5kZWQgZm9yIHBlb3BsZSB3YW50aW5nIG1vcmUgdmFyaWV0eSB0aGFuIE1hZ251bSwgYW5kIHlldCBtb3JlIHZlcmJvc2UgcHJvc2UgdGhhbiBDZWxlc3RlLiIsImNvbnRleHRfbGVuZ3RoIjoxMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImluZmVybWF0aWMvbW4taW5mZXJvci0xMmIiLCJuYW1lIjoiSW5mZXJtYXRpYzogTWlzdHJhbCBOZW1vIEluZmVyb3IgMTJCIiwiY3JlYXRlZCI6MTczMTQ2NDQyOCwiZGVzY3JpcHRpb24iOiJJbmZlcm9yIDEyQiBpcyBhIG1lcmdlIG9mIHRvcCByb2xlcGxheSBtb2RlbHMsIGV4cGVydCBvbiBpbW1lcnNpdmUgbmFycmF0aXZlcyBhbmQgc3Rvcnl0ZWxsaW5nLlxuXG5UaGlzIG1vZGVsIHdhcyBtZXJnZWQgdXNpbmcgdGhlIFtNb2RlbCBTdG9ja10oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzI0MDMuMTk1MjIpIG1lcmdlIG1ldGhvZCB1c2luZyBbYW50aHJhY2l0ZS1vcmcvbWFnbnVtLXY0LTEyYl0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL2FudGhyYWNpdGUtb3JnL21hZ251bS12NC03MmIpIGFzIGEgYmFzZS5cbiIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3RoaW5naWlzcmVhbC9tbi1jZWxlc3RlLTEyYiIsIm5hbWUiOiJNaXN0cmFsIE5lbW8gMTJCIENlbGVzdGUiLCJjcmVhdGVkIjoxNzIyNTU2ODAwLCJkZXNjcmlwdGlvbiI6IkEgc3BlY2lhbGl6ZWQgc3Rvcnkgd3JpdGluZyBhbmQgcm9sZXBsYXlpbmcgbW9kZWwgYmFzZWQgb24gTWlzdHJhbCdzIE5lTW8gMTJCIEluc3RydWN0LiBGaW5lLXR1bmVkIG9uIGN1cmF0ZWQgZGF0YXNldHMgaW5jbHVkaW5nIFJlZGRpdCBXcml0aW5nIFByb21wdHMgYW5kIE9wdXMgSW5zdHJ1Y3QgMjVLLlxuXG5UaGlzIG1vZGVsIGV4Y2VscyBhdCBjcmVhdGl2ZSB3cml0aW5nLCBvZmZlcmluZyBpbXByb3ZlZCBOU0ZXIGNhcGFiaWxpdGllcywgd2l0aCBzbWFydGVyIGFuZCBtb3JlIGFjdGl2ZSBuYXJyYXRpb24uIEl0IGRlbW9uc3RyYXRlcyByZW1hcmthYmxlIHZlcnNhdGlsaXR5IGluIGJvdGggU0ZXIGFuZCBOU0ZXIHNjZW5hcmlvcywgd2l0aCBzdHJvbmcgT3V0IG9mIENoYXJhY3RlciAoT09DKSBzdGVlcmluZyBjYXBhYmlsaXRpZXMsIGFsbG93aW5nIGZpbmUtdHVuZWQgY29udHJvbCBvdmVyIG5hcnJhdGl2ZSBkaXJlY3Rpb24gYW5kIGNoYXJhY3RlciBiZWhhdmlvci5cblxuQ2hlY2sgb3V0IHRoZSBtb2RlbCdzIFtIdWdnaW5nRmFjZSBwYWdlXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL25vdGhpbmdpaXNyZWFsL01OLTEyQi1DZWxlc3RlLVYxLjkpIGZvciBkZXRhaWxzIG9uIHdoYXQgcGFyYW1ldGVycyBhbmQgcHJvbXB0cyB3b3JrIGJlc3QhIiwiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2FvMTBrL2ZpbWJ1bHZldHItMTFiLXYyIiwibmFtZSI6IkZpbWJ1bHZldHIgMTFCIHYyIiwiY3JlYXRlZCI6MTcxMzY1NzYwMCwiZGVzY3JpcHRpb24iOiJDcmVhdGl2ZSB3cml0aW5nIG1vZGVsLCByb3V0ZWQgd2l0aCBwZXJtaXNzaW9uLiBJdCdzIGZhc3QsIGl0IGtlZXBzIHRoZSBjb252ZXJzYXRpb24gZ29pbmcsIGFuZCBpdCBzdGF5cyBpbiBjaGFyYWN0ZXIuXG5cbklmIHlvdSBzdWJtaXQgYSByYXcgcHJvbXB0LCB5b3UgY2FuIHVzZSBBbHBhY2Egb3IgVmljdW5hIGZvcm1hdHMuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItOTBiLXZpc2lvbi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgOTBCIFZpc2lvbiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjcyMjI0MDAsImRlc2NyaXB0aW9uIjoiVGhlIExsYW1hIDkwQiBWaXNpb24gbW9kZWwgaXMgYSB0b3AtdGllciwgOTAtYmlsbGlvbi1wYXJhbWV0ZXIgbXVsdGltb2RhbCBtb2RlbCBkZXNpZ25lZCBmb3IgdGhlIG1vc3QgY2hhbGxlbmdpbmcgdmlzdWFsIHJlYXNvbmluZyBhbmQgbGFuZ3VhZ2UgdGFza3MuIEl0IG9mZmVycyB1bnBhcmFsbGVsZWQgYWNjdXJhY3kgaW4gaW1hZ2UgY2FwdGlvbmluZywgdmlzdWFsIHF1ZXN0aW9uIGFuc3dlcmluZywgYW5kIGFkdmFuY2VkIGltYWdlLXRleHQgY29tcHJlaGVuc2lvbi4gUHJlLXRyYWluZWQgb24gdmFzdCBtdWx0aW1vZGFsIGRhdGFzZXRzIGFuZCBmaW5lLXR1bmVkIHdpdGggaHVtYW4gZmVlZGJhY2ssIHRoZSBMbGFtYSA5MEIgVmlzaW9uIGlzIGVuZ2luZWVyZWQgdG8gaGFuZGxlIHRoZSBtb3N0IGRlbWFuZGluZyBpbWFnZS1iYXNlZCBBSSB0YXNrcy5cblxuVGhpcyBtb2RlbCBpcyBwZXJmZWN0IGZvciBpbmR1c3RyaWVzIHJlcXVpcmluZyBjdXR0aW5nLWVkZ2UgbXVsdGltb2RhbCBBSSBjYXBhYmlsaXRpZXMsIHBhcnRpY3VsYXJseSB0aG9zZSBkZWFsaW5nIHdpdGggY29tcGxleCwgcmVhbC10aW1lIHZpc3VhbCBhbmQgdGV4dHVhbCBhbmFseXNpcy5cblxuQ2xpY2sgaGVyZSBmb3IgdGhlIFtvcmlnaW5hbCBtb2RlbCBjYXJkXShodHRwczovL2dpdGh1Yi5jb20vbWV0YS1sbGFtYS9sbGFtYS1tb2RlbHMvYmxvYi9tYWluL21vZGVscy9sbGFtYTNfMi9NT0RFTF9DQVJEX1ZJU0lPTi5tZCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly93d3cubGxhbWEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDUxNDU2Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtcHJvLXYxIiwibmFtZSI6IkFtYXpvbjogTm92YSBQcm8gMS4wIiwiY3JlYXRlZCI6MTczMzQzNjMwMywiZGVzY3JpcHRpb24iOiJBbWF6b24gTm92YSBQcm8gMS4wIGlzIGEgY2FwYWJsZSBtdWx0aW1vZGFsIG1vZGVsIGZyb20gQW1hem9uIGZvY3VzZWQgb24gcHJvdmlkaW5nIGEgY29tYmluYXRpb24gb2YgYWNjdXJhY3ksIHNwZWVkLCBhbmQgY29zdCBmb3IgYSB3aWRlIHJhbmdlIG9mIHRhc2tzLiBBcyBvZiBEZWNlbWJlciAyMDI0LCBpdCBhY2hpZXZlcyBzdGF0ZS1vZi10aGUtYXJ0IHBlcmZvcm1hbmNlIG9uIGtleSBiZW5jaG1hcmtzIGluY2x1ZGluZyB2aXN1YWwgcXVlc3Rpb24gYW5zd2VyaW5nIChUZXh0VlFBKSBhbmQgdmlkZW8gdW5kZXJzdGFuZGluZyAoVkFURVgpLlxuXG5BbWF6b24gTm92YSBQcm8gZGVtb25zdHJhdGVzIHN0cm9uZyBjYXBhYmlsaXRpZXMgaW4gcHJvY2Vzc2luZyBib3RoIHZpc3VhbCBhbmQgdGV4dHVhbCBpbmZvcm1hdGlvbiBhbmQgYXQgYW5hbHl6aW5nIGZpbmFuY2lhbCBkb2N1bWVudHMuXG5cbioqTk9URSoqOiBWaWRlbyBpbnB1dCBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4iLCJjb250ZXh0X2xlbmd0aCI6MzAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJOb3ZhIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAzMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMTIiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NTEyMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi12bC1tYXgiLCJuYW1lIjoiUXdlbjogUXdlbiBWTCBNYXgiLCJjcmVhdGVkIjoxNzM4NDM0MzA0LCJkZXNjcmlwdGlvbiI6IlF3ZW4gVkwgTWF4IGlzIGEgdmlzdWFsIHVuZGVyc3RhbmRpbmcgbW9kZWwgd2l0aCA3NTAwIHRva2VucyBjb250ZXh0IGxlbmd0aC4gSXQgZXhjZWxzIGluIGRlbGl2ZXJpbmcgb3B0aW1hbCBwZXJmb3JtYW5jZSBmb3IgYSBicm9hZGVyIHNwZWN0cnVtIG9mIGNvbXBsZXggdGFza3MuXG4iLCJjb250ZXh0X2xlbmd0aCI6NzUwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDEwMjQiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo3NTAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE1MDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdTpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBIYWlrdSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIG9mZmVycyBlbmhhbmNlZCBjYXBhYmlsaXRpZXMgaW4gc3BlZWQsIGNvZGluZyBhY2N1cmFjeSwgYW5kIHRvb2wgdXNlLiBFbmdpbmVlcmVkIHRvIGV4Y2VsIGluIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMsIGl0IGRlbGl2ZXJzIHF1aWNrIHJlc3BvbnNlIHRpbWVzIHRoYXQgYXJlIGVzc2VudGlhbCBmb3IgZHluYW1pYyB0YXNrcyBzdWNoIGFzIGNoYXQgaW50ZXJhY3Rpb25zIGFuZCBpbW1lZGlhdGUgY29kaW5nIHN1Z2dlc3Rpb25zLlxuXG5UaGlzIG1ha2VzIGl0IGhpZ2hseSBzdWl0YWJsZSBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZGVtYW5kIGJvdGggc3BlZWQgYW5kIHByZWNpc2lvbiwgc3VjaCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCwgY3VzdG9tZXIgc2VydmljZSBib3RzLCBhbmQgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbXMuXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvaW50aW5nIHRvIFtDbGF1ZGUgMy41IEhhaWt1ICgyMDI0LTEwLTIyKV0oL2FudGhyb3BpYy9jbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyKS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA4IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy41IEhhaWt1IiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIG9mZmVycyBlbmhhbmNlZCBjYXBhYmlsaXRpZXMgaW4gc3BlZWQsIGNvZGluZyBhY2N1cmFjeSwgYW5kIHRvb2wgdXNlLiBFbmdpbmVlcmVkIHRvIGV4Y2VsIGluIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMsIGl0IGRlbGl2ZXJzIHF1aWNrIHJlc3BvbnNlIHRpbWVzIHRoYXQgYXJlIGVzc2VudGlhbCBmb3IgZHluYW1pYyB0YXNrcyBzdWNoIGFzIGNoYXQgaW50ZXJhY3Rpb25zIGFuZCBpbW1lZGlhdGUgY29kaW5nIHN1Z2dlc3Rpb25zLlxuXG5UaGlzIG1ha2VzIGl0IGhpZ2hseSBzdWl0YWJsZSBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZGVtYW5kIGJvdGggc3BlZWQgYW5kIHByZWNpc2lvbiwgc3VjaCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCwgY3VzdG9tZXIgc2VydmljZSBib3RzLCBhbmQgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbXMuXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvaW50aW5nIHRvIFtDbGF1ZGUgMy41IEhhaWt1ICgyMDI0LTEwLTIyKV0oL2FudGhyb3BpYy9jbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyKS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA4IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdS0yMDI0MTAyMjpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBIYWlrdSAoMjAyNC0xMC0yMikgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MzA2Nzg0MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNSBIYWlrdSBmZWF0dXJlcyBlbmhhbmNlbWVudHMgYWNyb3NzIGFsbCBza2lsbCBzZXRzIGluY2x1ZGluZyBjb2RpbmcsIHRvb2wgdXNlLCBhbmQgcmVhc29uaW5nLiBBcyB0aGUgZmFzdGVzdCBtb2RlbCBpbiB0aGUgQW50aHJvcGljIGxpbmV1cCwgaXQgb2ZmZXJzIHJhcGlkIHJlc3BvbnNlIHRpbWVzIHN1aXRhYmxlIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGhpZ2ggaW50ZXJhY3Rpdml0eSBhbmQgbG93IGxhdGVuY3ksIHN1Y2ggYXMgdXNlci1mYWNpbmcgY2hhdGJvdHMgYW5kIG9uLXRoZS1mbHkgY29kZSBjb21wbGV0aW9ucy4gSXQgYWxzbyBleGNlbHMgaW4gc3BlY2lhbGl6ZWQgdGFza3MgbGlrZSBkYXRhIGV4dHJhY3Rpb24gYW5kIHJlYWwtdGltZSBjb250ZW50IG1vZGVyYXRpb24sIG1ha2luZyBpdCBhIHZlcnNhdGlsZSB0b29sIGZvciBhIGJyb2FkIHJhbmdlIG9mIGluZHVzdHJpZXMuXG5cbkl0IGRvZXMgbm90IHN1cHBvcnQgaW1hZ2UgaW5wdXRzLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvMy01LW1vZGVscy1hbmQtY29tcHV0ZXItdXNlKSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDgiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAxIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdS0yMDI0MTAyMiIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgSGFpa3UgKDIwMjQtMTAtMjIpIiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIGVuaGFuY2VtZW50cyBhY3Jvc3MgYWxsIHNraWxsIHNldHMgaW5jbHVkaW5nIGNvZGluZywgdG9vbCB1c2UsIGFuZCByZWFzb25pbmcuIEFzIHRoZSBmYXN0ZXN0IG1vZGVsIGluIHRoZSBBbnRocm9waWMgbGluZXVwLCBpdCBvZmZlcnMgcmFwaWQgcmVzcG9uc2UgdGltZXMgc3VpdGFibGUgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IHJlcXVpcmUgaGlnaCBpbnRlcmFjdGl2aXR5IGFuZCBsb3cgbGF0ZW5jeSwgc3VjaCBhcyB1c2VyLWZhY2luZyBjaGF0Ym90cyBhbmQgb24tdGhlLWZseSBjb2RlIGNvbXBsZXRpb25zLiBJdCBhbHNvIGV4Y2VscyBpbiBzcGVjaWFsaXplZCB0YXNrcyBsaWtlIGRhdGEgZXh0cmFjdGlvbiBhbmQgcmVhbC10aW1lIGNvbnRlbnQgbW9kZXJhdGlvbiwgbWFraW5nIGl0IGEgdmVyc2F0aWxlIHRvb2wgZm9yIGEgYnJvYWQgcmFuZ2Ugb2YgaW5kdXN0cmllcy5cblxuSXQgZG9lcyBub3Qgc3VwcG9ydCBpbWFnZSBpbnB1dHMuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy8zLTUtbW9kZWxzLWFuZC1jb21wdXRlci11c2UpIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwOCIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDEifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2NiMTB4L2xsYW1hMy4xLXR5cGhvb24yLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJUeXBob29uMiA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzQzMTk2MTcwLCJkZXNjcmlwdGlvbiI6IkxsYW1hMy4xLVR5cGhvb24yLTcwQi1JbnN0cnVjdCBpcyBhIFRoYWktRW5nbGlzaCBpbnN0cnVjdGlvbi10dW5lZCBsYW5ndWFnZSBtb2RlbCB3aXRoIDcwIGJpbGxpb24gcGFyYW1ldGVycywgYnVpbHQgb24gTGxhbWEgMy4xLiBJdCBkZW1vbnN0cmF0ZXMgc3Ryb25nIHBlcmZvcm1hbmNlIGFjcm9zcyBnZW5lcmFsIGluc3RydWN0aW9uLWZvbGxvd2luZywgbWF0aCwgY29kaW5nLCBhbmQgdG9vbC11c2UgdGFza3MsIHdpdGggc3RhdGUtb2YtdGhlLWFydCByZXN1bHRzIGluIFRoYWktc3BlY2lmaWMgYmVuY2htYXJrcyBzdWNoIGFzIElGRXZhbCwgTVQtQmVuY2gsIGFuZCBUaGFpLUVuZ2xpc2ggY29kZS1zd2l0Y2hpbmcuXG5cblRoZSBtb2RlbCBleGNlbHMgaW4gYmlsaW5ndWFsIHJlYXNvbmluZyBhbmQgZnVuY3Rpb24tY2FsbGluZyBzY2VuYXJpb3MsIG9mZmVyaW5nIGhpZ2ggYWNjdXJhY3kgYWNyb3NzIGRpdmVyc2UgZG9tYWlucy4gQ29tcGFyYXRpdmUgZXZhbHVhdGlvbnMgc2hvdyBjb25zaXN0ZW50IGltcHJvdmVtZW50cyBvdmVyIHByaW9yIFRoYWkgTExNcyBhbmQgb3RoZXIgTGxhbWEtYmFzZWQgYmFzZWxpbmVzLiBGdWxsIHJlc3VsdHMgYW5kIG1ldGhvZG9sb2d5IGFyZSBhdmFpbGFibGUgaW4gdGhlIFt0ZWNobmljYWwgcmVwb3J0Ll0oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzI0MTIuMTM3MDIpIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4OCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTItNzBiLWNoYXQiLCJuYW1lIjoiTWV0YTogTGxhbWEgMiA3MEIgQ2hhdCIsImNyZWF0ZWQiOjE2ODcyMTkyMDAsImRlc2NyaXB0aW9uIjoiVGhlIGZsYWdzaGlwLCA3MCBiaWxsaW9uIHBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBmcm9tIE1ldGEsIGZpbmUgdHVuZWQgZm9yIGNoYXQgY29tcGxldGlvbnMuIExsYW1hIDIgaXMgYW4gYXV0by1yZWdyZXNzaXZlIGxhbmd1YWdlIG1vZGVsIHRoYXQgdXNlcyBhbiBvcHRpbWl6ZWQgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLiBUaGUgdHVuZWQgdmVyc2lvbnMgdXNlIHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgYW5kIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgd2l0aCBodW1hbiBmZWVkYmFjayAoUkxIRikgdG8gYWxpZ24gdG8gaHVtYW4gcHJlZmVyZW5jZXMgZm9yIGhlbHBmdWxuZXNzIGFuZCBzYWZldHkuIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEyIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA5IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwOSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTItNzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW4gMiA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE3NzE4NDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yIDcyQiBpcyBhIHRyYW5zZm9ybWVyLWJhc2VkIG1vZGVsIHRoYXQgZXhjZWxzIGluIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIG11bHRpbGluZ3VhbCBjYXBhYmlsaXRpZXMsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCByZWFzb25pbmcuXG5cbkl0IGZlYXR1cmVzIFN3aUdMVSBhY3RpdmF0aW9uLCBhdHRlbnRpb24gUUtWIGJpYXMsIGFuZCBncm91cCBxdWVyeSBhdHRlbnRpb24uIEl0IGlzIHByZXRyYWluZWQgb24gZXh0ZW5zaXZlIGRhdGEgd2l0aCBzdXBlcnZpc2VkIGZpbmV0dW5pbmcgYW5kIGRpcmVjdCBwcmVmZXJlbmNlIG9wdGltaXphdGlvbi5cblxuRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoaXMgW2Jsb2cgcG9zdF0oaHR0cHM6Ly9xd2VubG0uZ2l0aHViLmlvL2Jsb2cvcXdlbjIvKSBhbmQgW0dpdEh1YiByZXBvXShodHRwczovL2dpdGh1Yi5jb20vUXdlbkxNL1F3ZW4yKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtUb25neWkgUWlhbndlbiBMSUNFTlNFIEFHUkVFTUVOVF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4xLjUtMTEwQi1DaGF0L2Jsb2IvbWFpbi9MSUNFTlNFKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdCIsIm5hbWUiOiJNaXN0cmFsOiBNaXh0cmFsIDh4MjJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzMxMjAwMCwiZGVzY3JpcHRpb24iOiJNaXN0cmFsJ3Mgb2ZmaWNpYWwgaW5zdHJ1Y3QgZmluZS10dW5lZCB2ZXJzaW9uIG9mIFtNaXh0cmFsIDh4MjJCXSgvbW9kZWxzL21pc3RyYWxhaS9taXh0cmFsLTh4MjJiKS4gSXQgdXNlcyAzOUIgYWN0aXZlIHBhcmFtZXRlcnMgb3V0IG9mIDE0MUIsIG9mZmVyaW5nIHVucGFyYWxsZWxlZCBjb3N0IGVmZmljaWVuY3kgZm9yIGl0cyBzaXplLiBJdHMgc3RyZW5ndGhzIGluY2x1ZGU6XG4tIHN0cm9uZyBtYXRoLCBjb2RpbmcsIGFuZCByZWFzb25pbmdcbi0gbGFyZ2UgY29udGV4dCBsZW5ndGggKDY0aylcbi0gZmx1ZW5jeSBpbiBFbmdsaXNoLCBGcmVuY2gsIEl0YWxpYW4sIEdlcm1hbiwgYW5kIFNwYW5pc2hcblxuU2VlIGJlbmNobWFya3Mgb24gdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgW2hlcmVdKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21peHRyYWwtOHgyMmIvKS5cbiNtb2UiLCJjb250ZXh0X2xlbmd0aCI6NjU1MzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NTUzNiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiY29nbml0aXZlY29tcHV0YXRpb25zL2RvbHBoaW4tbWl4dHJhbC04eDIyYiIsIm5hbWUiOiJEb2xwaGluIDIuOS4yIE1peHRyYWwgOHgyMkIg8J+QrCIsImNyZWF0ZWQiOjE3MTc4MDQ4MDAsImRlc2NyaXB0aW9uIjoiRG9scGhpbiAyLjkgaXMgZGVzaWduZWQgZm9yIGluc3RydWN0aW9uIGZvbGxvd2luZywgY29udmVyc2F0aW9uYWwsIGFuZCBjb2RpbmcuIFRoaXMgbW9kZWwgaXMgYSBmaW5ldHVuZSBvZiBbTWl4dHJhbCA4eDIyQiBJbnN0cnVjdF0oL21vZGVscy9taXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdCkuIEl0IGZlYXR1cmVzIGEgNjRrIGNvbnRleHQgbGVuZ3RoIGFuZCB3YXMgZmluZS10dW5lZCB3aXRoIGEgMTZrIHNlcXVlbmNlIGxlbmd0aCB1c2luZyBDaGF0TUwgdGVtcGxhdGVzLlxuXG5UaGlzIG1vZGVsIGlzIGEgc3VjY2Vzc29yIHRvIFtEb2xwaGluIE1peHRyYWwgOHg3Ql0oL21vZGVscy9jb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbi1taXh0cmFsLTh4N2IpLlxuXG5UaGUgbW9kZWwgaXMgdW5jZW5zb3JlZCBhbmQgaXMgc3RyaXBwZWQgb2YgYWxpZ25tZW50IGFuZCBiaWFzLiBJdCByZXF1aXJlcyBhbiBleHRlcm5hbCBhbGlnbm1lbnQgbGF5ZXIgZm9yIGV0aGljYWwgdXNlLiBVc2VycyBhcmUgY2F1dGlvbmVkIHRvIHVzZSB0aGlzIGhpZ2hseSBjb21wbGlhbnQgbW9kZWwgcmVzcG9uc2libHksIGFzIGRldGFpbGVkIGluIGEgYmxvZyBwb3N0IGFib3V0IHVuY2Vuc29yZWQgbW9kZWxzIGF0IFtlcmljaGFydGZvcmQuY29tL3VuY2Vuc29yZWQtbW9kZWxzXShodHRwczovL2VyaWNoYXJ0Zm9yZC5jb20vdW5jZW5zb3JlZC1tb2RlbHMpLlxuXG4jbW9lICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjY1NTM2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuMi41LXZsLTMyYi1pbnN0cnVjdCIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDI4Mzk4MzgsImRlc2NyaXB0aW9uIjoiUXdlbjIuNS1WTC0zMkIgaXMgYSBtdWx0aW1vZGFsIHZpc2lvbi1sYW5ndWFnZSBtb2RlbCBmaW5lLXR1bmVkIHRocm91Z2ggcmVpbmZvcmNlbWVudCBsZWFybmluZyBmb3IgZW5oYW5jZWQgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgc3RydWN0dXJlZCBvdXRwdXRzLCBhbmQgdmlzdWFsIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGV4Y2VscyBhdCB2aXN1YWwgYW5hbHlzaXMgdGFza3MsIGluY2x1ZGluZyBvYmplY3QgcmVjb2duaXRpb24sIHRleHR1YWwgaW50ZXJwcmV0YXRpb24gd2l0aGluIGltYWdlcywgYW5kIHByZWNpc2UgZXZlbnQgbG9jYWxpemF0aW9uIGluIGV4dGVuZGVkIHZpZGVvcy4gUXdlbjIuNS1WTC0zMkIgZGVtb25zdHJhdGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpbW9kYWwgYmVuY2htYXJrcyBzdWNoIGFzIE1NTVUsIE1hdGhWaXN0YSwgYW5kIFZpZGVvTU1FLCB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgcmVhc29uaW5nIGFuZCBjbGFyaXR5IGluIHRleHQtYmFzZWQgdGFza3MgbGlrZSBNTUxVLCBtYXRoZW1hdGljYWwgcHJvYmxlbS1zb2x2aW5nLCBhbmQgY29kZSBnZW5lcmF0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZXZhLXVuaXQtMDEvZXZhLXF3ZW4tMi41LTcyYiIsIm5hbWUiOiJFVkEgUXdlbjIuNSA3MkIiLCJjcmVhdGVkIjoxNzMyMjEwNjA2LCJkZXNjcmlwdGlvbiI6IkVWQSBRd2VuMi41IDcyQiBpcyBhIHJvbGVwbGF5IGFuZCBzdG9yeXdyaXRpbmcgc3BlY2lhbGlzdCBtb2RlbC4gSXQncyBhIGZ1bGwtcGFyYW1ldGVyIGZpbmV0dW5lIG9mIFF3ZW4yLjUtNzJCIG9uIG1peHR1cmUgb2Ygc3ludGhldGljIGFuZCBuYXR1cmFsIGRhdGEuXG5cbkl0IHVzZXMgQ2VsZXN0ZSA3MEIgMC4xIGRhdGEgbWl4dHVyZSwgZ3JlYXRseSBleHBhbmRpbmcgaXQgdG8gaW1wcm92ZSB2ZXJzYXRpbGl0eSwgY3JlYXRpdml0eSBhbmQgXCJmbGF2b3JcIiBvZiB0aGUgcmVzdWx0aW5nIG1vZGVsLiIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA5IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTA3MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvbGxhbWEtMy4xLXNvbmFyLWxhcmdlLTEyOGstb25saW5lIiwibmFtZSI6IlBlcnBsZXhpdHk6IExsYW1hIDMuMSBTb25hciA3MEIgT25saW5lIiwiY3JlYXRlZCI6MTcyMjQ3MDQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjEgU29uYXIgaXMgUGVycGxleGl0eSdzIGxhdGVzdCBtb2RlbCBmYW1pbHkuIEl0IHN1cnBhc3NlcyB0aGVpciBlYXJsaWVyIFNvbmFyIG1vZGVscyBpbiBjb3N0LWVmZmljaWVuY3ksIHNwZWVkLCBhbmQgcGVyZm9ybWFuY2UuXG5cblRoaXMgaXMgdGhlIG9ubGluZSB2ZXJzaW9uIG9mIHRoZSBbb2ZmbGluZSBjaGF0IG1vZGVsXSgvbW9kZWxzL3BlcnBsZXhpdHkvbGxhbWEtMy4xLXNvbmFyLWxhcmdlLTEyOGstY2hhdCkuIEl0IGlzIGZvY3VzZWQgb24gZGVsaXZlcmluZyBoZWxwZnVsLCB1cC10by1kYXRlLCBhbmQgZmFjdHVhbCByZXNwb25zZXMuICNvbmxpbmUiLCJjb250ZXh0X2xlbmd0aCI6MTI3MDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEiLCJyZXF1ZXN0IjoiMC4wMDUiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXIiLCJuYW1lIjoiUGVycGxleGl0eTogU29uYXIiLCJjcmVhdGVkIjoxNzM4MDEzODA4LCJkZXNjcmlwdGlvbiI6IlNvbmFyIGlzIGxpZ2h0d2VpZ2h0LCBhZmZvcmRhYmxlLCBmYXN0LCBhbmQgc2ltcGxlIHRvIHVzZSDigJQgbm93IGZlYXR1cmluZyBjaXRhdGlvbnMgYW5kIHRoZSBhYmlsaXR5IHRvIGN1c3RvbWl6ZSBzb3VyY2VzLiBJdCBpcyBkZXNpZ25lZCBmb3IgY29tcGFuaWVzIHNlZWtpbmcgdG8gaW50ZWdyYXRlIGxpZ2h0d2VpZ2h0IHF1ZXN0aW9uLWFuZC1hbnN3ZXIgZmVhdHVyZXMgb3B0aW1pemVkIGZvciBzcGVlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI3MDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMSIsInJlcXVlc3QiOiIwLjAwNSIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyNzA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWljcm9zb2Z0L3BoaS0zLW1lZGl1bS0xMjhrLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpLTMgTWVkaXVtIDEyOEsgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE2NTA4ODAwLCJkZXNjcmlwdGlvbiI6IlBoaS0zIDEyOEsgTWVkaXVtIGlzIGEgcG93ZXJmdWwgMTQtYmlsbGlvbiBwYXJhbWV0ZXIgbW9kZWwgZGVzaWduZWQgZm9yIGFkdmFuY2VkIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIHJlYXNvbmluZywgYW5kIGluc3RydWN0aW9uIGZvbGxvd2luZy4gT3B0aW1pemVkIHRocm91Z2ggc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyBhbmQgcHJlZmVyZW5jZSBhZGp1c3RtZW50cywgaXQgZXhjZWxzIGluIHRhc2tzIGludm9sdmluZyBjb21tb24gc2Vuc2UsIG1hdGhlbWF0aWNzLCBsb2dpY2FsIHJlYXNvbmluZywgYW5kIGNvZGUgcHJvY2Vzc2luZy5cblxuQXQgdGltZSBvZiByZWxlYXNlLCBQaGktMyBNZWRpdW0gZGVtb25zdHJhdGVkIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbGlnaHR3ZWlnaHQgbW9kZWxzLiBJbiB0aGUgTU1MVS1Qcm8gZXZhbCwgdGhlIG1vZGVsIGV2ZW4gY29tZXMgY2xvc2UgdG8gYSBMbGFtYTMgNzBCIGxldmVsIG9mIHBlcmZvcm1hbmNlLlxuXG5Gb3IgNGsgY29udGV4dCBsZW5ndGgsIHRyeSBbUGhpLTMgTWVkaXVtIDRLXSgvbW9kZWxzL21pY3Jvc29mdC9waGktMy1tZWRpdW0tNGstaW5zdHJ1Y3QpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJwaGkzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxsZW5haS9vbG1vLTItMDMyNS0zMmItaW5zdHJ1Y3QiLCJuYW1lIjoiQWxsZW5BSTogT2xtbyAyIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDE5ODg1NTYsImRlc2NyaXB0aW9uIjoiT0xNby0yIDMyQiBJbnN0cnVjdCBpcyBhIHN1cGVydmlzZWQgaW5zdHJ1Y3Rpb24tZmluZXR1bmVkIHZhcmlhbnQgb2YgdGhlIE9MTW8tMiAzMkIgTWFyY2ggMjAyNSBiYXNlIG1vZGVsLiBJdCBleGNlbHMgaW4gY29tcGxleCByZWFzb25pbmcgYW5kIGluc3RydWN0aW9uLWZvbGxvd2luZyB0YXNrcyBhY3Jvc3MgZGl2ZXJzZSBiZW5jaG1hcmtzIHN1Y2ggYXMgR1NNOEssIE1BVEgsIElGRXZhbCwgYW5kIGdlbmVyYWwgTkxQIGV2YWx1YXRpb24uIERldmVsb3BlZCBieSBBSTIsIE9MTW8tMiAzMkIgaXMgcGFydCBvZiBhbiBvcGVuLCByZXNlYXJjaC1vcmllbnRlZCBpbml0aWF0aXZlLCB0cmFpbmVkIHByaW1hcmlseSBvbiBFbmdsaXNoLWxhbmd1YWdlIGRhdGFzZXRzIHRvIGFkdmFuY2UgdGhlIHVuZGVyc3RhbmRpbmcgYW5kIGRldmVsb3BtZW50IG9mIG9wZW4tc291cmNlIGxhbmd1YWdlIG1vZGVscy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9wYWxtLTItY2hhdC1iaXNvbiIsIm5hbWUiOiJHb29nbGU6IFBhTE0gMiBDaGF0IiwiY3JlYXRlZCI6MTY4OTgxMTIwMCwiZGVzY3JpcHRpb24iOiJQYUxNIDIgaXMgYSBsYW5ndWFnZSBtb2RlbCBieSBHb29nbGUgd2l0aCBpbXByb3ZlZCBtdWx0aWxpbmd1YWwsIHJlYXNvbmluZyBhbmQgY29kaW5nIGNhcGFiaWxpdGllcy4iLCJjb250ZXh0X2xlbmd0aCI6OTIxNiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlBhTE0iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6OTIxNiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL3BhbG0tMi1jb2RlY2hhdC1iaXNvbiIsIm5hbWUiOiJHb29nbGU6IFBhTE0gMiBDb2RlIENoYXQiLCJjcmVhdGVkIjoxNjg5ODExMjAwLCJkZXNjcmlwdGlvbiI6IlBhTE0gMiBmaW5lLXR1bmVkIGZvciBjaGF0Ym90IGNvbnZlcnNhdGlvbnMgdGhhdCBoZWxwIHdpdGggY29kZS1yZWxhdGVkIHF1ZXN0aW9ucy4iLCJjb250ZXh0X2xlbmd0aCI6NzE2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlBhTE0iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NzE2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL3BhbG0tMi1jaGF0LWJpc29uLTMyayIsIm5hbWUiOiJHb29nbGU6IFBhTE0gMiBDaGF0IDMyayIsImNyZWF0ZWQiOjE2OTg5Njk2MDAsImRlc2NyaXB0aW9uIjoiUGFMTSAyIGlzIGEgbGFuZ3VhZ2UgbW9kZWwgYnkgR29vZ2xlIHdpdGggaW1wcm92ZWQgbXVsdGlsaW5ndWFsLCByZWFzb25pbmcgYW5kIGNvZGluZyBjYXBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjMyNzYwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUGFMTSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL3BhbG0tMi1jb2RlY2hhdC1iaXNvbi0zMmsiLCJuYW1lIjoiR29vZ2xlOiBQYUxNIDIgQ29kZSBDaGF0IDMyayIsImNyZWF0ZWQiOjE2OTg5Njk2MDAsImRlc2NyaXB0aW9uIjoiUGFMTSAyIGZpbmUtdHVuZWQgZm9yIGNoYXRib3QgY29udmVyc2F0aW9ucyB0aGF0IGhlbHAgd2l0aCBjb2RlLXJlbGF0ZWQgcXVlc3Rpb25zLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlBhTE0iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLTExMDYiLCJuYW1lIjoiT3BlbkFJOiBHUFQtMy41IFR1cmJvIDE2ayAob2xkZXIgdjExMDYpIiwiY3JlYXRlZCI6MTY5OTIyODgwMCwiZGVzY3JpcHRpb24iOiJBbiBvbGRlciBHUFQtMy41IFR1cmJvIG1vZGVsIHdpdGggaW1wcm92ZWQgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBKU09OIG1vZGUsIHJlcHJvZHVjaWJsZSBvdXRwdXRzLCBwYXJhbGxlbCBmdW5jdGlvbiBjYWxsaW5nLCBhbmQgbW9yZS4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLTA2MTMiLCJuYW1lIjoiT3BlbkFJOiBHUFQtMy41IFR1cmJvIChvbGRlciB2MDYxMykiLCJjcmVhdGVkIjoxNzA2MTQwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC0zLjUgVHVyYm8gaXMgT3BlbkFJJ3MgZmFzdGVzdCBtb2RlbC4gSXQgY2FuIHVuZGVyc3RhbmQgYW5kIGdlbmVyYXRlIG5hdHVyYWwgbGFuZ3VhZ2Ugb3IgY29kZSwgYW5kIGlzIG9wdGltaXplZCBmb3IgY2hhdCBhbmQgdHJhZGl0aW9uYWwgY29tcGxldGlvbiB0YXNrcy5cblxuVHJhaW5pbmcgZGF0YSB1cCB0byBTZXAgMjAyMS4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk1LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQiLCJjcmVhdGVkIjoxNzEwMzc0NDAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQgaXMgYW4gaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIGNvbnZlcnNhdGlvbmFsIG1vZGVsIHRoYXQgcGVyZm9ybXMgbGFuZ3VhZ2UgdGFza3Mgd2l0aCBoaWdoIHF1YWxpdHksIG1vcmUgcmVsaWFibHkgYW5kIHdpdGggYSBsb25nZXIgY29udGV4dCB0aGFuIG91ciBiYXNlIGdlbmVyYXRpdmUgbW9kZWxzLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXItcmVhc29uaW5nIiwibmFtZSI6IlBlcnBsZXhpdHk6IFNvbmFyIFJlYXNvbmluZyIsImNyZWF0ZWQiOjE3MzgxMzExMDcsImRlc2NyaXB0aW9uIjoiU29uYXIgUmVhc29uaW5nIGlzIGEgcmVhc29uaW5nIG1vZGVsIHByb3ZpZGVkIGJ5IFBlcnBsZXhpdHkgYmFzZWQgb24gW0RlZXBTZWVrIFIxXSgvZGVlcHNlZWsvZGVlcHNlZWstcjEpLlxuXG5JdCBhbGxvd3MgZGV2ZWxvcGVycyB0byB1dGlsaXplIGxvbmcgY2hhaW4gb2YgdGhvdWdodCB3aXRoIGJ1aWx0LWluIHdlYiBzZWFyY2guIFNvbmFyIFJlYXNvbmluZyBpcyB1bmNlbnNvcmVkIGFuZCBob3N0ZWQgaW4gVVMgZGF0YWNlbnRlcnMuICIsImNvbnRleHRfbGVuZ3RoIjoxMjcwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDA1IiwicmVxdWVzdCI6IjAuMDA1IiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI3MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvbzEtbWluaSIsIm5hbWUiOiJPcGVuQUk6IG8xLW1pbmkiLCJjcmVhdGVkIjoxNzI2MDk5MjAwLCJkZXNjcmlwdGlvbiI6IlRoZSBsYXRlc3QgYW5kIHN0cm9uZ2VzdCBtb2RlbCBmYW1pbHkgZnJvbSBPcGVuQUksIG8xIGlzIGRlc2lnbmVkIHRvIHNwZW5kIG1vcmUgdGltZSB0aGlua2luZyBiZWZvcmUgcmVzcG9uZGluZy5cblxuVGhlIG8xIG1vZGVscyBhcmUgb3B0aW1pemVkIGZvciBtYXRoLCBzY2llbmNlLCBwcm9ncmFtbWluZywgYW5kIG90aGVyIFNURU0tcmVsYXRlZCB0YXNrcy4gVGhleSBjb25zaXN0ZW50bHkgZXhoaWJpdCBQaEQtbGV2ZWwgYWNjdXJhY3kgb24gYmVuY2htYXJrcyBpbiBwaHlzaWNzLCBjaGVtaXN0cnksIGFuZCBiaW9sb2d5LiBMZWFybiBtb3JlIGluIHRoZSBbbGF1bmNoIGFubm91bmNlbWVudF0oaHR0cHM6Ly9vcGVuYWkuY29tL28xKS5cblxuTm90ZTogVGhpcyBtb2RlbCBpcyBjdXJyZW50bHkgZXhwZXJpbWVudGFsIGFuZCBub3Qgc3VpdGFibGUgZm9yIHByb2R1Y3Rpb24gdXNlLWNhc2VzLCBhbmQgbWF5IGJlIGhlYXZpbHkgcmF0ZS1saW1pdGVkLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQ0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDA1NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NTUzNiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28xLW1pbmktMjAyNC0wOS0xMiIsIm5hbWUiOiJPcGVuQUk6IG8xLW1pbmkgKDIwMjQtMDktMTIpIiwiY3JlYXRlZCI6MTcyNjA5OTIwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuXG5cblRoZSBvMSBtb2RlbHMgYXJlIG9wdGltaXplZCBmb3IgbWF0aCwgc2NpZW5jZSwgcHJvZ3JhbW1pbmcsIGFuZCBvdGhlciBTVEVNLXJlbGF0ZWQgdGFza3MuIFRoZXkgY29uc2lzdGVudGx5IGV4aGliaXQgUGhELWxldmVsIGFjY3VyYWN5IG9uIGJlbmNobWFya3MgaW4gcGh5c2ljcywgY2hlbWlzdHJ5LCBhbmQgYmlvbG9neS4gTGVhcm4gbW9yZSBpbiB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9vMSkuXG5cbk5vdGU6IFRoaXMgbW9kZWwgaXMgY3VycmVudGx5IGV4cGVyaW1lbnRhbCBhbmQgbm90IHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcywgYW5kIG1heSBiZSBoZWF2aWx5IHJhdGUtbGltaXRlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0NCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwNTUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjU1MzYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMy1taW5pIiwibmFtZSI6Ik9wZW5BSTogbzMgTWluaSIsImNyZWF0ZWQiOjE3MzgzNTE3MjEsImRlc2NyaXB0aW9uIjoiT3BlbkFJIG8zLW1pbmkgaXMgYSBjb3N0LWVmZmljaWVudCBsYW5ndWFnZSBtb2RlbCBvcHRpbWl6ZWQgZm9yIFNURU0gcmVhc29uaW5nIHRhc2tzLCBwYXJ0aWN1bGFybHkgZXhjZWxsaW5nIGluIHNjaWVuY2UsIG1hdGhlbWF0aWNzLCBhbmQgY29kaW5nLlxuXG5UaGlzIG1vZGVsIHN1cHBvcnRzIHRoZSBgcmVhc29uaW5nX2VmZm9ydGAgcGFyYW1ldGVyLCB3aGljaCBjYW4gYmUgc2V0IHRvIFwiaGlnaFwiLCBcIm1lZGl1bVwiLCBvciBcImxvd1wiIHRvIGNvbnRyb2wgdGhlIHRoaW5raW5nIHRpbWUgb2YgdGhlIG1vZGVsLiBUaGUgZGVmYXVsdCBpcyBcIm1lZGl1bVwiLiBPcGVuUm91dGVyIGFsc28gb2ZmZXJzIHRoZSBtb2RlbCBzbHVnIGBvcGVuYWkvbzMtbWluaS1oaWdoYCB0byBkZWZhdWx0IHRoZSBwYXJhbWV0ZXIgdG8gXCJoaWdoXCIuXG5cblRoZSBtb2RlbCBmZWF0dXJlcyB0aHJlZSBhZGp1c3RhYmxlIHJlYXNvbmluZyBlZmZvcnQgbGV2ZWxzIGFuZCBzdXBwb3J0cyBrZXkgZGV2ZWxvcGVyIGNhcGFiaWxpdGllcyBpbmNsdWRpbmcgZnVuY3Rpb24gY2FsbGluZywgc3RydWN0dXJlZCBvdXRwdXRzLCBhbmQgc3RyZWFtaW5nLCB0aG91Z2ggaXQgZG9lcyBub3QgaW5jbHVkZSB2aXNpb24gcHJvY2Vzc2luZyBjYXBhYmlsaXRpZXMuXG5cblRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgc2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIG92ZXIgaXRzIHByZWRlY2Vzc29yLCB3aXRoIGV4cGVydCB0ZXN0ZXJzIHByZWZlcnJpbmcgaXRzIHJlc3BvbnNlcyA1NiUgb2YgdGhlIHRpbWUgYW5kIG5vdGluZyBhIDM5JSByZWR1Y3Rpb24gaW4gbWFqb3IgZXJyb3JzIG9uIGNvbXBsZXggcXVlc3Rpb25zLiBXaXRoIG1lZGl1bSByZWFzb25pbmcgZWZmb3J0IHNldHRpbmdzLCBvMy1taW5pIG1hdGNoZXMgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBsYXJnZXIgbzEgbW9kZWwgb24gY2hhbGxlbmdpbmcgcmVhc29uaW5nIGV2YWx1YXRpb25zIGxpa2UgQUlNRSBhbmQgR1BRQSwgd2hpbGUgbWFpbnRhaW5pbmcgbG93ZXIgbGF0ZW5jeSBhbmQgY29zdC4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQ0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDA1NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDAwMDAsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMy1taW5pLWhpZ2giLCJuYW1lIjoiT3BlbkFJOiBvMyBNaW5pIEhpZ2giLCJjcmVhdGVkIjoxNzM5MzcyNjExLCJkZXNjcmlwdGlvbiI6Ik9wZW5BSSBvMy1taW5pLWhpZ2ggaXMgdGhlIHNhbWUgbW9kZWwgYXMgW28zLW1pbmldKC9vcGVuYWkvbzMtbWluaSkgd2l0aCByZWFzb25pbmdfZWZmb3J0IHNldCB0byBoaWdoLiBcblxubzMtbWluaSBpcyBhIGNvc3QtZWZmaWNpZW50IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3IgU1RFTSByZWFzb25pbmcgdGFza3MsIHBhcnRpY3VsYXJseSBleGNlbGxpbmcgaW4gc2NpZW5jZSwgbWF0aGVtYXRpY3MsIGFuZCBjb2RpbmcuIFRoZSBtb2RlbCBmZWF0dXJlcyB0aHJlZSBhZGp1c3RhYmxlIHJlYXNvbmluZyBlZmZvcnQgbGV2ZWxzIGFuZCBzdXBwb3J0cyBrZXkgZGV2ZWxvcGVyIGNhcGFiaWxpdGllcyBpbmNsdWRpbmcgZnVuY3Rpb24gY2FsbGluZywgc3RydWN0dXJlZCBvdXRwdXRzLCBhbmQgc3RyZWFtaW5nLCB0aG91Z2ggaXQgZG9lcyBub3QgaW5jbHVkZSB2aXNpb24gcHJvY2Vzc2luZyBjYXBhYmlsaXRpZXMuXG5cblRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgc2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIG92ZXIgaXRzIHByZWRlY2Vzc29yLCB3aXRoIGV4cGVydCB0ZXN0ZXJzIHByZWZlcnJpbmcgaXRzIHJlc3BvbnNlcyA1NiUgb2YgdGhlIHRpbWUgYW5kIG5vdGluZyBhIDM5JSByZWR1Y3Rpb24gaW4gbWFqb3IgZXJyb3JzIG9uIGNvbXBsZXggcXVlc3Rpb25zLiBXaXRoIG1lZGl1bSByZWFzb25pbmcgZWZmb3J0IHNldHRpbmdzLCBvMy1taW5pIG1hdGNoZXMgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBsYXJnZXIgbzEgbW9kZWwgb24gY2hhbGxlbmdpbmcgcmVhc29uaW5nIGV2YWx1YXRpb25zIGxpa2UgQUlNRSBhbmQgR1BRQSwgd2hpbGUgbWFpbnRhaW5pbmcgbG93ZXIgbGF0ZW5jeSBhbmQgY29zdC4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQ0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDA1NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDAwMDAsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1hbmNlci93ZWF2ZXIiLCJuYW1lIjoiTWFuY2VyOiBXZWF2ZXIgKGFscGhhKSIsImNyZWF0ZWQiOjE2OTA5MzQ0MDAsImRlc2NyaXB0aW9uIjoiQW4gYXR0ZW1wdCB0byByZWNyZWF0ZSBDbGF1ZGUtc3R5bGUgdmVyYm9zaXR5LCBidXQgZG9uJ3QgZXhwZWN0IHRoZSBzYW1lIGxldmVsIG9mIGNvaGVyZW5jZSBvciBtZW1vcnkuIE1lYW50IGZvciB1c2UgaW4gcm9sZXBsYXkvbmFycmF0aXZlIHNpdHVhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktcHJvLTEuNSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAxLjUgUHJvIiwiY3JlYXRlZCI6MTcxMjYyMDgwMCwiZGVzY3JpcHRpb24iOiJHb29nbGUncyBsYXRlc3QgbXVsdGltb2RhbCBtb2RlbCwgc3VwcG9ydHMgaW1hZ2UgYW5kIHZpZGVvWzBdIGluIHRleHQgb3IgY2hhdCBwcm9tcHRzLlxuXG5PcHRpbWl6ZWQgZm9yIGxhbmd1YWdlIHRhc2tzIGluY2x1ZGluZzpcblxuLSBDb2RlIGdlbmVyYXRpb25cbi0gVGV4dCBnZW5lcmF0aW9uXG4tIFRleHQgZWRpdGluZ1xuLSBQcm9ibGVtIHNvbHZpbmdcbi0gUmVjb21tZW5kYXRpb25zXG4tIEluZm9ybWF0aW9uIGV4dHJhY3Rpb25cbi0gRGF0YSBleHRyYWN0aW9uIG9yIGdlbmVyYXRpb25cbi0gQUkgYWdlbnRzXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4qIFswXTogVmlkZW8gaW5wdXQgaXMgbm90IGF2YWlsYWJsZSB0aHJvdWdoIE9wZW5Sb3V0ZXIgYXQgdGhpcyB0aW1lLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNjU3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktMi41LXByby1wcmV2aWV3LTAzLTI1IiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuNSBQcm8gUHJldmlldyIsImNyZWF0ZWQiOjE3NDM3ODA0OTMsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuNSBQcm8gaXMgR29vZ2xl4oCZcyBzdGF0ZS1vZi10aGUtYXJ0IEFJIG1vZGVsIGRlc2lnbmVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbnRpZmljIHRhc2tzLiBJdCBlbXBsb3lzIOKAnHRoaW5raW5n4oCdIGNhcGFiaWxpdGllcywgZW5hYmxpbmcgaXQgdG8gcmVhc29uIHRocm91Z2ggcmVzcG9uc2VzIHdpdGggZW5oYW5jZWQgYWNjdXJhY3kgYW5kIG51YW5jZWQgY29udGV4dCBoYW5kbGluZy4gR2VtaW5pIDIuNSBQcm8gYWNoaWV2ZXMgdG9wLXRpZXIgcGVyZm9ybWFuY2Ugb24gbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nIGZpcnN0LXBsYWNlIHBvc2l0aW9uaW5nIG9uIHRoZSBMTUFyZW5hIGxlYWRlcmJvYXJkLCByZWZsZWN0aW5nIHN1cGVyaW9yIGh1bWFuLXByZWZlcmVuY2UgYWxpZ25tZW50IGFuZCBjb21wbGV4IHByb2JsZW0tc29sdmluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjU1MzUsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMtZXVyeWFsZS03MGIiLCJuYW1lIjoiU2FvMTBrOiBMbGFtYSAzIEV1cnlhbGUgNzBCIHYyLjEiLCJjcmVhdGVkIjoxNzE4NjY4ODAwLCJkZXNjcmlwdGlvbiI6IkV1cnlhbGUgNzBCIHYyLjEgaXMgYSBtb2RlbCBmb2N1c2VkIG9uIGNyZWF0aXZlIHJvbGVwbGF5IGZyb20gW1NhbzEwa10oaHR0cHM6Ly9rby1maS5jb20vc2FvMTBrKS5cblxuLSBCZXR0ZXIgcHJvbXB0IGFkaGVyZW5jZS5cbi0gQmV0dGVyIGFuYXRvbXkgLyBzcGF0aWFsIGF3YXJlbmVzcy5cbi0gQWRhcHRzIG11Y2ggYmV0dGVyIHRvIHVuaXF1ZSBhbmQgY3VzdG9tIGZvcm1hdHRpbmcgLyByZXBseSBmb3JtYXRzLlxuLSBWZXJ5IGNyZWF0aXZlLCBsb3RzIG9mIHVuaXF1ZSBzd2lwZXMuXG4tIElzIG5vdCByZXN0cmljdGl2ZSBkdXJpbmcgcm9sZXBsYXlzLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE0OCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC0zLjUtdHVyYm8taW5zdHJ1Y3QiLCJuYW1lIjoiT3BlbkFJOiBHUFQtMy41IFR1cmJvIEluc3RydWN0IiwiY3JlYXRlZCI6MTY5NTg1OTIwMCwiZGVzY3JpcHRpb24iOiJUaGlzIG1vZGVsIGlzIGEgdmFyaWFudCBvZiBHUFQtMy41IFR1cmJvIHR1bmVkIGZvciBpbnN0cnVjdGlvbmFsIHByb21wdHMgYW5kIG9taXR0aW5nIGNoYXQtcmVsYXRlZCBvcHRpbWl6YXRpb25zLiBUcmFpbmluZyBkYXRhOiB1cCB0byBTZXAgMjAyMS4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTUsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxwaW5kYWxlL21hZ251bS03MmIiLCJuYW1lIjoiTWFnbnVtIDcyQiIsImNyZWF0ZWQiOjE3MjA2NTYwMDAsImRlc2NyaXB0aW9uIjoiRnJvbSB0aGUgbWFrZXIgb2YgW0dvbGlhdGhdKGh0dHBzOi8vb3BlbnJvdXRlci5haS9tb2RlbHMvYWxwaW5kYWxlL2dvbGlhdGgtMTIwYiksIE1hZ251bSA3MkIgaXMgdGhlIGZpcnN0IGluIGEgbmV3IGZhbWlseSBvZiBtb2RlbHMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgcHJvc2UgcXVhbGl0eSBvZiB0aGUgQ2xhdWRlIDMgbW9kZWxzLCBub3RhYmx5IE9wdXMgJiBTb25uZXQuXG5cblRoZSBtb2RlbCBpcyBiYXNlZCBvbiBbUXdlbjIgNzJCXShodHRwczovL29wZW5yb3V0ZXIuYWkvbW9kZWxzL3F3ZW4vcXdlbi0yLTcyYi1pbnN0cnVjdCkgYW5kIHRyYWluZWQgd2l0aCA1NSBtaWxsaW9uIHRva2VucyBvZiBoaWdobHkgY3VyYXRlZCByb2xlcGxheSAoUlApIGRhdGEuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIyNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyYWNpdGUtb3JnL21hZ251bS12NC03MmIiLCJuYW1lIjoiTWFnbnVtIHY0IDcyQiIsImNyZWF0ZWQiOjE3Mjk1NTUyMDAsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBhIHNlcmllcyBvZiBtb2RlbHMgZGVzaWduZWQgdG8gcmVwbGljYXRlIHRoZSBwcm9zZSBxdWFsaXR5IG9mIHRoZSBDbGF1ZGUgMyBtb2RlbHMsIHNwZWNpZmljYWxseSBTb25uZXQoaHR0cHM6Ly9vcGVucm91dGVyLmFpL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldCkgYW5kIE9wdXMoaHR0cHM6Ly9vcGVucm91dGVyLmFpL2FudGhyb3BpYy9jbGF1ZGUtMy1vcHVzKS5cblxuVGhlIG1vZGVsIGlzIGZpbmUtdHVuZWQgb24gdG9wIG9mIFtRd2VuMi41IDcyQl0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL3F3ZW4vcXdlbi0yLjUtNzJiLWluc3RydWN0KS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMjI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLjEtbHVtaW1haWQtNzBiIiwibmFtZSI6Ik5ldmVyU2xlZXA6IEx1bWltYWlkIHYwLjIgNzBCIiwiY3JlYXRlZCI6MTcyOTU1NTIwMCwiZGVzY3JpcHRpb24iOiJMdW1pbWFpZCB2MC4yIDcwQiBpcyBhIGZpbmV0dW5lIG9mIFtMbGFtYSAzLjEgNzBCXSgvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSB3aXRoIGEgXCJIVUdFIHN0ZXAgdXAgZGF0YXNldCB3aXNlXCIgY29tcGFyZWQgdG8gTHVtaW1haWQgdjAuMS4gU2xvcHB5IGNoYXRzIG91dHB1dCB3ZXJlIHB1cmdlZC5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIyNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi1tYXgiLCJuYW1lIjoiUXdlbjogUXdlbi1NYXggIiwiY3JlYXRlZCI6MTczODQwMjI4OSwiZGVzY3JpcHRpb24iOiJRd2VuLU1heCwgYmFzZWQgb24gUXdlbjIuNSwgcHJvdmlkZXMgdGhlIGJlc3QgaW5mZXJlbmNlIHBlcmZvcm1hbmNlIGFtb25nIFtRd2VuIG1vZGVsc10oL3F3ZW4pLCBlc3BlY2lhbGx5IGZvciBjb21wbGV4IG11bHRpLXN0ZXAgdGFza3MuIEl0J3MgYSBsYXJnZS1zY2FsZSBNb0UgbW9kZWwgdGhhdCBoYXMgYmVlbiBwcmV0cmFpbmVkIG9uIG92ZXIgMjAgdHJpbGxpb24gdG9rZW5zIGFuZCBmdXJ0aGVyIHBvc3QtdHJhaW5lZCB3aXRoIGN1cmF0ZWQgU3VwZXJ2aXNlZCBGaW5lLVR1bmluZyAoU0ZUKSBhbmQgUmVpbmZvcmNlbWVudCBMZWFybmluZyBmcm9tIEh1bWFuIEZlZWRiYWNrIChSTEhGKSBtZXRob2RvbG9naWVzLiBUaGUgcGFyYW1ldGVyIGNvdW50IGlzIHVua25vd24uIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS00MDViIiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMSA0MDVCIChiYXNlKSIsImNyZWF0ZWQiOjE3MjI1NTY4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgaXMgdGhlIGJhc2UgNDA1QiBwcmUtdHJhaW5lZCB2ZXJzaW9uLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibm9uZSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UiLCJuYW1lIjoiTWlzdHJhbCBMYXJnZSIsImNyZWF0ZWQiOjE3MDg5MDU2MDAsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBNaXN0cmFsIEFJJ3MgZmxhZ3NoaXAgbW9kZWwsIE1pc3RyYWwgTGFyZ2UgMiAodmVyc2lvbiBgbWlzdHJhbC1sYXJnZS0yNDA3YCkuIEl0J3MgYSBwcm9wcmlldGFyeSB3ZWlnaHRzLWF2YWlsYWJsZSBtb2RlbCBhbmQgZXhjZWxzIGF0IHJlYXNvbmluZywgY29kZSwgSlNPTiwgY2hhdCwgYW5kIG1vcmUuIFJlYWQgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgW2hlcmVdKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21pc3RyYWwtbGFyZ2UtMjQwNy8pLlxuXG5JdCBzdXBwb3J0cyBkb3plbnMgb2YgbGFuZ3VhZ2VzIGluY2x1ZGluZyBGcmVuY2gsIEdlcm1hbiwgU3BhbmlzaCwgSXRhbGlhbiwgUG9ydHVndWVzZSwgQXJhYmljLCBIaW5kaSwgUnVzc2lhbiwgQ2hpbmVzZSwgSmFwYW5lc2UsIGFuZCBLb3JlYW4sIGFsb25nIHdpdGggODArIGNvZGluZyBsYW5ndWFnZXMgaW5jbHVkaW5nIFB5dGhvbiwgSmF2YSwgQywgQysrLCBKYXZhU2NyaXB0LCBhbmQgQmFzaC4gSXRzIGxvbmcgY29udGV4dCB3aW5kb3cgYWxsb3dzIHByZWNpc2UgaW5mb3JtYXRpb24gcmVjYWxsIGZyb20gbGFyZ2UgZG9jdW1lbnRzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UtMjQxMSIsIm5hbWUiOiJNaXN0cmFsIExhcmdlIDI0MTEiLCJjcmVhdGVkIjoxNzMxOTc4Njg1LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgTGFyZ2UgMiAyNDExIGlzIGFuIHVwZGF0ZSBvZiBbTWlzdHJhbCBMYXJnZSAyXSgvbWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UpIHJlbGVhc2VkIHRvZ2V0aGVyIHdpdGggW1BpeHRyYWwgTGFyZ2UgMjQxMV0oL21pc3RyYWxhaS9waXh0cmFsLWxhcmdlLTI0MTEpXG5cbkl0IHByb3ZpZGVzIGEgc2lnbmlmaWNhbnQgdXBncmFkZSBvbiB0aGUgcHJldmlvdXMgW01pc3RyYWwgTGFyZ2UgMjQuMDddKC9taXN0cmFsYWkvbWlzdHJhbC1sYXJnZS0yNDA3KSwgd2l0aCBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBsb25nIGNvbnRleHQgdW5kZXJzdGFuZGluZywgYSBuZXcgc3lzdGVtIHByb21wdCwgYW5kIG1vcmUgYWNjdXJhdGUgZnVuY3Rpb24gY2FsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLWxhcmdlLTI0MDciLCJuYW1lIjoiTWlzdHJhbCBMYXJnZSAyNDA3IiwiY3JlYXRlZCI6MTczMTk3ODQxNSwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBmbGFnc2hpcCBtb2RlbCwgTWlzdHJhbCBMYXJnZSAyICh2ZXJzaW9uIG1pc3RyYWwtbGFyZ2UtMjQwNykuIEl0J3MgYSBwcm9wcmlldGFyeSB3ZWlnaHRzLWF2YWlsYWJsZSBtb2RlbCBhbmQgZXhjZWxzIGF0IHJlYXNvbmluZywgY29kZSwgSlNPTiwgY2hhdCwgYW5kIG1vcmUuIFJlYWQgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgW2hlcmVdKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21pc3RyYWwtbGFyZ2UtMjQwNy8pLlxuXG5JdCBzdXBwb3J0cyBkb3plbnMgb2YgbGFuZ3VhZ2VzIGluY2x1ZGluZyBGcmVuY2gsIEdlcm1hbiwgU3BhbmlzaCwgSXRhbGlhbiwgUG9ydHVndWVzZSwgQXJhYmljLCBIaW5kaSwgUnVzc2lhbiwgQ2hpbmVzZSwgSmFwYW5lc2UsIGFuZCBLb3JlYW4sIGFsb25nIHdpdGggODArIGNvZGluZyBsYW5ndWFnZXMgaW5jbHVkaW5nIFB5dGhvbiwgSmF2YSwgQywgQysrLCBKYXZhU2NyaXB0LCBhbmQgQmFzaC4gSXRzIGxvbmcgY29udGV4dCB3aW5kb3cgYWxsb3dzIHByZWNpc2UgaW5mb3JtYXRpb24gcmVjYWxsIGZyb20gbGFyZ2UgZG9jdW1lbnRzLlxuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvcGl4dHJhbC1sYXJnZS0yNDExIiwibmFtZSI6Ik1pc3RyYWw6IFBpeHRyYWwgTGFyZ2UgMjQxMSIsImNyZWF0ZWQiOjE3MzE5NzczODgsImRlc2NyaXB0aW9uIjoiUGl4dHJhbCBMYXJnZSBpcyBhIDEyNEIgcGFyYW1ldGVyLCBvcGVuLXdlaWdodCwgbXVsdGltb2RhbCBtb2RlbCBidWlsdCBvbiB0b3Agb2YgW01pc3RyYWwgTGFyZ2UgMl0oL21pc3RyYWxhaS9taXN0cmFsLWxhcmdlLTI0MTEpLiBUaGUgbW9kZWwgaXMgYWJsZSB0byB1bmRlcnN0YW5kIGRvY3VtZW50cywgY2hhcnRzIGFuZCBuYXR1cmFsIGltYWdlcy5cblxuVGhlIG1vZGVsIGlzIGF2YWlsYWJsZSB1bmRlciB0aGUgTWlzdHJhbCBSZXNlYXJjaCBMaWNlbnNlIChNUkwpIGZvciByZXNlYXJjaCBhbmQgZWR1Y2F0aW9uYWwgdXNlLCBhbmQgdGhlIE1pc3RyYWwgQ29tbWVyY2lhbCBMaWNlbnNlIGZvciBleHBlcmltZW50YXRpb24sIHRlc3RpbmcsIGFuZCBwcm9kdWN0aW9uIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzLlxuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDI4ODgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvcjEtMTc3NiIsIm5hbWUiOiJQZXJwbGV4aXR5OiBSMSAxNzc2IiwiY3JlYXRlZCI6MTc0MDAwNDkyOSwiZGVzY3JpcHRpb24iOiJSMSAxNzc2IGlzIGEgdmVyc2lvbiBvZiBEZWVwU2Vlay1SMSB0aGF0IGhhcyBiZWVuIHBvc3QtdHJhaW5lZCB0byByZW1vdmUgY2Vuc29yc2hpcCBjb25zdHJhaW50cyByZWxhdGVkIHRvIHRvcGljcyByZXN0cmljdGVkIGJ5IHRoZSBDaGluZXNlIGdvdmVybm1lbnQuIFRoZSBtb2RlbCByZXRhaW5zIGl0cyBvcmlnaW5hbCByZWFzb25pbmcgY2FwYWJpbGl0aWVzIHdoaWxlIHByb3ZpZGluZyBkaXJlY3QgcmVzcG9uc2VzIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgcXVlcmllcy4gUjEgMTc3NiBpcyBhbiBvZmZsaW5lIGNoYXQgbW9kZWwgdGhhdCBkb2VzIG5vdCB1c2UgdGhlIHBlcnBsZXhpdHkgc2VhcmNoIHN1YnN5c3RlbS5cblxuVGhlIG1vZGVsIHdhcyB0ZXN0ZWQgb24gYSBtdWx0aWxpbmd1YWwgZGF0YXNldCBvZiBvdmVyIDEsMDAwIGV4YW1wbGVzIGNvdmVyaW5nIHNlbnNpdGl2ZSB0b3BpY3MgdG8gbWVhc3VyZSBpdHMgbGlrZWxpaG9vZCBvZiByZWZ1c2FsIG9yIG92ZXJseSBmaWx0ZXJlZCByZXNwb25zZXMuIFtFdmFsdWF0aW9uIFJlc3VsdHNdKGh0dHBzOi8vY2RuLXVwbG9hZHMuaHVnZ2luZ2ZhY2UuY28vcHJvZHVjdGlvbi91cGxvYWRzLzY3NWM4MzMyZDAxZjU5M2RjOTA4MTdmNS9HaU4yVnFDNWhhd1VnQUdKNm9IbGEucG5nKSBJdHMgcGVyZm9ybWFuY2Ugb24gbWF0aCBhbmQgcmVhc29uaW5nIGJlbmNobWFya3MgcmVtYWlucyBzaW1pbGFyIHRvIHRoZSBiYXNlIFIxIG1vZGVsLiBbUmVhc29uaW5nIFBlcmZvcm1hbmNlXShodHRwczovL2Nkbi11cGxvYWRzLmh1Z2dpbmdmYWNlLmNvL3Byb2R1Y3Rpb24vdXBsb2Fkcy82NzVjODMzMmQwMWY1OTNkYzkwODE3ZjUvbjRaOUJ5cXAyUzdzS1V2Q3ZJNDBSLnBuZylcblxuUmVhZCBtb3JlIG9uIHRoZSBbQmxvZyBQb3N0XShodHRwczovL3BlcnBsZXhpdHkuYWkvaHViL2Jsb2cvb3Blbi1zb3VyY2luZy1yMS0xNzc2KSIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXItZGVlcC1yZXNlYXJjaCIsIm5hbWUiOiJQZXJwbGV4aXR5OiBTb25hciBEZWVwIFJlc2VhcmNoIiwiY3JlYXRlZCI6MTc0MTMxMTI0NiwiZGVzY3JpcHRpb24iOiJTb25hciBEZWVwIFJlc2VhcmNoIGlzIGEgcmVzZWFyY2gtZm9jdXNlZCBtb2RlbCBkZXNpZ25lZCBmb3IgbXVsdGktc3RlcCByZXRyaWV2YWwsIHN5bnRoZXNpcywgYW5kIHJlYXNvbmluZyBhY3Jvc3MgY29tcGxleCB0b3BpY3MuIEl0IGF1dG9ub21vdXNseSBzZWFyY2hlcywgcmVhZHMsIGFuZCBldmFsdWF0ZXMgc291cmNlcywgcmVmaW5pbmcgaXRzIGFwcHJvYWNoIGFzIGl0IGdhdGhlcnMgaW5mb3JtYXRpb24uIFRoaXMgZW5hYmxlcyBjb21wcmVoZW5zaXZlIHJlcG9ydCBnZW5lcmF0aW9uIGFjcm9zcyBkb21haW5zIGxpa2UgZmluYW5jZSwgdGVjaG5vbG9neSwgaGVhbHRoLCBhbmQgY3VycmVudCBldmVudHMuXG5cbk5vdGVzIG9uIFByaWNpbmcgKFtTb3VyY2VdKGh0dHBzOi8vZG9jcy5wZXJwbGV4aXR5LmFpL2d1aWRlcy9wcmljaW5nI2RldGFpbGVkLXByaWNpbmctYnJlYWtkb3duLWZvci1zb25hci1kZWVwLXJlc2VhcmNoKSkgXG4tIElucHV0IHRva2VucyBjb21wcmlzZSBvZiBQcm9tcHQgdG9rZW5zICh1c2VyIHByb21wdCkgKyBDaXRhdGlvbiB0b2tlbnMgKHRoZXNlIGFyZSBwcm9jZXNzZWQgdG9rZW5zIGZyb20gcnVubmluZyBzZWFyY2hlcylcbi0gRGVlcCBSZXNlYXJjaCBydW5zIG11bHRpcGxlIHNlYXJjaGVzIHRvIGNvbmR1Y3QgZXhoYXVzdGl2ZSByZXNlYXJjaC4gU2VhcmNoZXMgYXJlIHByaWNlZCBhdCAkNS8xMDAwIHNlYXJjaGVzLiBBIHJlcXVlc3QgdGhhdCBkb2VzIDMwIHNlYXJjaGVzIHdpbGwgY29zdCAkMC4xNSBpbiB0aGlzIHN0ZXAuXG4tIFJlYXNvbmluZyBpcyBhIGRpc3RpbmN0IHN0ZXAgaW4gRGVlcCBSZXNlYXJjaCBzaW5jZSBpdCBkb2VzIGV4dGVuc2l2ZSBhdXRvbWF0ZWQgcmVhc29uaW5nIHRocm91Z2ggYWxsIHRoZSBtYXRlcmlhbCBpdCBnYXRoZXJzIGR1cmluZyBpdHMgcmVzZWFyY2ggcGhhc2UuIFJlYXNvbmluZyB0b2tlbnMgaGVyZSBhcmUgYSBiaXQgZGlmZmVyZW50IHRoYW4gdGhlIENvVHMgaW4gdGhlIGFuc3dlciAtIHRoZXNlIGFyZSB0b2tlbnMgdGhhdCB3ZSB1c2UgdG8gcmVhc29uIHRocm91Z2ggdGhlIHJlc2VhcmNoIG1hdGVyaWFsIHByaW9yIHRvIGdlbmVyYXRpbmcgdGhlIG91dHB1dHMgdmlhIHRoZSBDb1RzLiBSZWFzb25pbmcgdG9rZW5zIGFyZSBwcmljZWQgYXQgJDMvMU0gdG9rZW5zIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwLjAwNSIsImludGVybmFsX3JlYXNvbmluZyI6IjAuMDAwMDAzIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJwZXJwbGV4aXR5L3NvbmFyLXJlYXNvbmluZy1wcm8iLCJuYW1lIjoiUGVycGxleGl0eTogU29uYXIgUmVhc29uaW5nIFBybyIsImNyZWF0ZWQiOjE3NDEzMTMzMDgsImRlc2NyaXB0aW9uIjoiTm90ZTogU29uYXIgUHJvIHByaWNpbmcgaW5jbHVkZXMgUGVycGxleGl0eSBzZWFyY2ggcHJpY2luZy4gU2VlIFtkZXRhaWxzIGhlcmVdKGh0dHBzOi8vZG9jcy5wZXJwbGV4aXR5LmFpL2d1aWRlcy9wcmljaW5nI2RldGFpbGVkLXByaWNpbmctYnJlYWtkb3duLWZvci1zb25hci1yZWFzb25pbmctcHJvLWFuZC1zb25hci1wcm8pXG5cblNvbmFyIFJlYXNvbmluZyBQcm8gaXMgYSBwcmVtaWVyIHJlYXNvbmluZyBtb2RlbCBwb3dlcmVkIGJ5IERlZXBTZWVrIFIxIHdpdGggQ2hhaW4gb2YgVGhvdWdodCAoQ29UKS4gRGVzaWduZWQgZm9yIGFkdmFuY2VkIHVzZSBjYXNlcywgaXQgc3VwcG9ydHMgaW4tZGVwdGgsIG11bHRpLXN0ZXAgcXVlcmllcyB3aXRoIGEgbGFyZ2VyIGNvbnRleHQgd2luZG93IGFuZCBjYW4gc3VyZmFjZSBtb3JlIGNpdGF0aW9ucyBwZXIgc2VhcmNoLCBlbmFibGluZyBtb3JlIGNvbXByZWhlbnNpdmUgYW5kIGV4dGVuc2libGUgcmVzcG9uc2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMC4wMDUiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhaTIxL2phbWJhLTEtNS1sYXJnZSIsIm5hbWUiOiJBSTIxOiBKYW1iYSAxLjUgTGFyZ2UiLCJjcmVhdGVkIjoxNzI0MzcxMjAwLCJkZXNjcmlwdGlvbiI6IkphbWJhIDEuNSBMYXJnZSBpcyBwYXJ0IG9mIEFJMjEncyBuZXcgZmFtaWx5IG9mIG9wZW4gbW9kZWxzLCBvZmZlcmluZyBzdXBlcmlvciBzcGVlZCwgZWZmaWNpZW5jeSwgYW5kIHF1YWxpdHkuXG5cbkl0IGZlYXR1cmVzIGEgMjU2SyBlZmZlY3RpdmUgY29udGV4dCB3aW5kb3csIHRoZSBsb25nZXN0IGFtb25nIG9wZW4gbW9kZWxzLCBlbmFibGluZyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBvbiB0YXNrcyBsaWtlIGRvY3VtZW50IHN1bW1hcml6YXRpb24gYW5kIGFuYWx5c2lzLlxuXG5CdWlsdCBvbiBhIG5vdmVsIFNTTS1UcmFuc2Zvcm1lciBhcmNoaXRlY3R1cmUsIGl0IG91dHBlcmZvcm1zIGxhcmdlciBtb2RlbHMgbGlrZSBMbGFtYSAzLjEgNzBCIG9uIGJlbmNobWFya3Mgd2hpbGUgbWFpbnRhaW5pbmcgcmVzb3VyY2UgZWZmaWNpZW5jeS5cblxuUmVhZCB0aGVpciBbYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5haTIxLmNvbS9ibG9nL2Fubm91bmNpbmctamFtYmEtbW9kZWwtZmFtaWx5KSB0byBsZWFybiBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpMjEvamFtYmEtMS42LWxhcmdlIiwibmFtZSI6IkFJMjE6IEphbWJhIDEuNiBMYXJnZSIsImNyZWF0ZWQiOjE3NDE5MDUxNzMsImRlc2NyaXB0aW9uIjoiQUkyMSBKYW1iYSBMYXJnZSAxLjYgaXMgYSBoaWdoLXBlcmZvcm1hbmNlIGh5YnJpZCBmb3VuZGF0aW9uIG1vZGVsIGNvbWJpbmluZyBTdGF0ZSBTcGFjZSBNb2RlbHMgKE1hbWJhKSB3aXRoIFRyYW5zZm9ybWVyIGF0dGVudGlvbiBtZWNoYW5pc21zLiBEZXZlbG9wZWQgYnkgQUkyMSwgaXQgZXhjZWxzIGluIGV4dHJlbWVseSBsb25nLWNvbnRleHQgaGFuZGxpbmcgKDI1NksgdG9rZW5zKSwgZGVtb25zdHJhdGVzIHN1cGVyaW9yIGluZmVyZW5jZSBlZmZpY2llbmN5ICh1cCB0byAyLjV4IGZhc3RlciB0aGFuIGNvbXBhcmFibGUgbW9kZWxzKSwgYW5kIHN1cHBvcnRzIHN0cnVjdHVyZWQgSlNPTiBvdXRwdXQgYW5kIHRvb2wtdXNlIGNhcGFiaWxpdGllcy4gSXQgaGFzIDk0IGJpbGxpb24gYWN0aXZlIHBhcmFtZXRlcnMgKDM5OCBiaWxsaW9uIHRvdGFsKSwgb3B0aW1pemVkIHF1YW50aXphdGlvbiBzdXBwb3J0IChFeHBlcnRzSW50OCksIGFuZCBtdWx0aWxpbmd1YWwgcHJvZmljaWVuY3kgaW4gbGFuZ3VhZ2VzIHN1Y2ggYXMgRW5nbGlzaCwgU3BhbmlzaCwgRnJlbmNoLCBQb3J0dWd1ZXNlLCBJdGFsaWFuLCBEdXRjaCwgR2VybWFuLCBBcmFiaWMsIGFuZCBIZWJyZXcuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byB0aGUgW0phbWJhIE9wZW4gTW9kZWwgTGljZW5zZV0oaHR0cHM6Ly93d3cuYWkyMS5jb20vbGljZW5zZXMvamFtYmEtb3Blbi1tb2RlbC1saWNlbnNlKS4iLCJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ4LWFpL2dyb2stMi0xMjEyIiwibmFtZSI6InhBSTogR3JvayAyIDEyMTIiLCJjcmVhdGVkIjoxNzM0MjMyODE0LCJkZXNjcmlwdGlvbiI6Ikdyb2sgMiAxMjEyIGludHJvZHVjZXMgc2lnbmlmaWNhbnQgZW5oYW5jZW1lbnRzIHRvIGFjY3VyYWN5LCBpbnN0cnVjdGlvbiBhZGhlcmVuY2UsIGFuZCBtdWx0aWxpbmd1YWwgc3VwcG9ydCwgbWFraW5nIGl0IGEgcG93ZXJmdWwgYW5kIGZsZXhpYmxlIGNob2ljZSBmb3IgZGV2ZWxvcGVycyBzZWVraW5nIGEgaGlnaGx5IHN0ZWVyYWJsZSwgaW50ZWxsaWdlbnQgbW9kZWwuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ikdyb2siLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6IngtYWkvZ3Jvay0yLXZpc2lvbi0xMjEyIiwibmFtZSI6InhBSTogR3JvayAyIFZpc2lvbiAxMjEyIiwiY3JlYXRlZCI6MTczNDIzNzMzOCwiZGVzY3JpcHRpb24iOiJHcm9rIDIgVmlzaW9uIDEyMTIgYWR2YW5jZXMgaW1hZ2UtYmFzZWQgQUkgd2l0aCBzdHJvbmdlciB2aXN1YWwgY29tcHJlaGVuc2lvbiwgcmVmaW5lZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGFuZCBtdWx0aWxpbmd1YWwgc3VwcG9ydC4gRnJvbSBvYmplY3QgcmVjb2duaXRpb24gdG8gc3R5bGUgYW5hbHlzaXMsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgdG8gYnVpbGQgbW9yZSBpbnR1aXRpdmUsIHZpc3VhbGx5IGF3YXJlIGFwcGxpY2F0aW9ucy4gSXRzIGVuaGFuY2VkIHN0ZWVyYWJpbGl0eSBhbmQgcmVhc29uaW5nIGVzdGFibGlzaCBhIHJvYnVzdCBmb3VuZGF0aW9uIGZvciBuZXh0LWdlbmVyYXRpb24gaW1hZ2Ugc29sdXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhpcyBtb2RlbCwgY2hlY2sgb3V0IFt4QUkncyBhbm5vdW5jZW1lbnRdKGh0dHBzOi8veC5haS9ibG9nL2dyb2stMTIxMikuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00byIsIm5hbWUiOiJPcGVuQUk6IEdQVC00byIsImNyZWF0ZWQiOjE3MTU1NTg0MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYxMyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTI1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLTIwMjQtMDgtMDYiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8gKDIwMjQtMDgtMDYpIiwiY3JlYXRlZCI6MTcyMjkwMjQwMCwiZGVzY3JpcHRpb24iOiJUaGUgMjAyNC0wOC0wNiB2ZXJzaW9uIG9mIEdQVC00byBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gc3RydWN0dXJlZCBvdXRwdXRzLCB3aXRoIHRoZSBhYmlsaXR5IHRvIHN1cHBseSBhIEpTT04gc2NoZW1hIGluIHRoZSByZXNwb25lX2Zvcm1hdC4gUmVhZCBtb3JlIFtoZXJlXShodHRwczovL29wZW5haS5jb20vaW5kZXgvaW50cm9kdWNpbmctc3RydWN0dXJlZC1vdXRwdXRzLWluLXRoZS1hcGkvKS5cblxuR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSkiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYxMyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTI1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1hIiwibmFtZSI6IkNvaGVyZTogQ29tbWFuZCBBIiwiY3JlYXRlZCI6MTc0MTg5NDM0MiwiZGVzY3JpcHRpb24iOiJDb21tYW5kIEEgaXMgYW4gb3Blbi13ZWlnaHRzIDExMUIgcGFyYW1ldGVyIG1vZGVsIHdpdGggYSAyNTZrIGNvbnRleHQgd2luZG93IGZvY3VzZWQgb24gZGVsaXZlcmluZyBncmVhdCBwZXJmb3JtYW5jZSBhY3Jvc3MgYWdlbnRpYywgbXVsdGlsaW5ndWFsLCBhbmQgY29kaW5nIHVzZSBjYXNlcy5cbkNvbXBhcmVkIHRvIG90aGVyIGxlYWRpbmcgcHJvcHJpZXRhcnkgYW5kIG9wZW4td2VpZ2h0cyBtb2RlbHMgQ29tbWFuZCBBIGRlbGl2ZXJzIG1heGltdW0gcGVyZm9ybWFuY2Ugd2l0aCBtaW5pbXVtIGhhcmR3YXJlIGNvc3RzLCBleGNlbGxpbmcgb24gYnVzaW5lc3MtY3JpdGljYWwgYWdlbnRpYyBhbmQgbXVsdGlsaW5ndWFsIHRhc2tzLiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImluZmxlY3Rpb24vaW5mbGVjdGlvbi0zLXBpIiwibmFtZSI6IkluZmxlY3Rpb246IEluZmxlY3Rpb24gMyBQaSIsImNyZWF0ZWQiOjE3Mjg2MDQ4MDAsImRlc2NyaXB0aW9uIjoiSW5mbGVjdGlvbiAzIFBpIHBvd2VycyBJbmZsZWN0aW9uJ3MgW1BpXShodHRwczovL3BpLmFpKSBjaGF0Ym90LCBpbmNsdWRpbmcgYmFja3N0b3J5LCBlbW90aW9uYWwgaW50ZWxsaWdlbmNlLCBwcm9kdWN0aXZpdHksIGFuZCBzYWZldHkuIEl0IGhhcyBhY2Nlc3MgdG8gcmVjZW50IG5ld3MsIGFuZCBleGNlbHMgaW4gc2NlbmFyaW9zIGxpa2UgY3VzdG9tZXIgc3VwcG9ydCBhbmQgcm9sZXBsYXkuXG5cblBpIGhhcyBiZWVuIHRyYWluZWQgdG8gbWlycm9yIHlvdXIgdG9uZSBhbmQgc3R5bGUsIGlmIHlvdSB1c2UgbW9yZSBlbW9qaXMsIHNvIHdpbGwgUGkhIFRyeSBleHBlcmltZW50aW5nIHdpdGggdmFyaW91cyBwcm9tcHRzIGFuZCBjb252ZXJzYXRpb24gc3R5bGVzLiIsImNvbnRleHRfbGVuZ3RoIjo4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by1zZWFyY2gtcHJldmlldyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00byBTZWFyY2ggUHJldmlldyIsImNyZWF0ZWQiOjE3NDE4MTc5NDksImRlc2NyaXB0aW9uIjoiR1BULTRvIFNlYXJjaCBQcmV2aWV3aXMgYSBzcGVjaWFsaXplZCBtb2RlbCBmb3Igd2ViIHNlYXJjaCBpbiBDaGF0IENvbXBsZXRpb25zLiBJdCBpcyB0cmFpbmVkIHRvIHVuZGVyc3RhbmQgYW5kIGV4ZWN1dGUgd2ViIHNlYXJjaCBxdWVyaWVzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAuMDM1IiwiaW1hZ2UiOiIwLjAwMzYxMyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiY29oZXJlL2NvbW1hbmQtci1wbHVzLTA4LTIwMjQiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIrICgwOC0yMDI0KSIsImNyZWF0ZWQiOjE3MjQ5NzYwMDAsImRlc2NyaXB0aW9uIjoiY29tbWFuZC1yLXBsdXMtMDgtMjAyNCBpcyBhbiB1cGRhdGUgb2YgdGhlIFtDb21tYW5kIFIrXSgvbW9kZWxzL2NvaGVyZS9jb21tYW5kLXItcGx1cykgd2l0aCByb3VnaGx5IDUwJSBoaWdoZXIgdGhyb3VnaHB1dCBhbmQgMjUlIGxvd2VyIGxhdGVuY2llcyBhcyBjb21wYXJlZCB0byB0aGUgcHJldmlvdXMgQ29tbWFuZCBSKyB2ZXJzaW9uLCB3aGlsZSBrZWVwaW5nIHRoZSBoYXJkd2FyZSBmb290cHJpbnQgdGhlIHNhbWUuXG5cblJlYWQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL2RvY3MuY29oZXJlLmNvbS9jaGFuZ2Vsb2cvY29tbWFuZC1nZXRzLXJlZnJlc2hlZCkuXG5cblVzZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gQ29oZXJlJ3MgW1VzYWdlIFBvbGljeV0oaHR0cHM6Ly9kb2NzLmNvaGVyZS5jb20vZG9jcy91c2FnZS1wb2xpY3kpIGFuZCBbU2FhUyBBZ3JlZW1lbnRdKGh0dHBzOi8vY29oZXJlLmNvbS9zYWFzLWFncmVlbWVudCkuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNvaGVyZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG8tMjAyNC0xMS0yMCIsIm5hbWUiOiJPcGVuQUk6IEdQVC00byAoMjAyNC0xMS0yMCkiLCJjcmVhdGVkIjoxNzMyMTI3NTk0LCJkZXNjcmlwdGlvbiI6IlRoZSAyMDI0LTExLTIwIHZlcnNpb24gb2YgR1BULTRvIG9mZmVycyBhIGxldmVsZWQtdXAgY3JlYXRpdmUgd3JpdGluZyBhYmlsaXR5IHdpdGggbW9yZSBuYXR1cmFsLCBlbmdhZ2luZywgYW5kIHRhaWxvcmVkIHdyaXRpbmcgdG8gaW1wcm92ZSByZWxldmFuY2UgJiByZWFkYWJpbGl0eS4gSXTigJlzIGFsc28gYmV0dGVyIGF0IHdvcmtpbmcgd2l0aCB1cGxvYWRlZCBmaWxlcywgcHJvdmlkaW5nIGRlZXBlciBpbnNpZ2h0cyAmIG1vcmUgdGhvcm91Z2ggcmVzcG9uc2VzLlxuXG5HUFQtNG8gKFwib1wiIGZvciBcIm9tbmlcIikgaXMgT3BlbkFJJ3MgbGF0ZXN0IEFJIG1vZGVsLCBzdXBwb3J0aW5nIGJvdGggdGV4dCBhbmQgaW1hZ2UgaW5wdXRzIHdpdGggdGV4dCBvdXRwdXRzLiBJdCBtYWludGFpbnMgdGhlIGludGVsbGlnZW5jZSBsZXZlbCBvZiBbR1BULTQgVHVyYm9dKC9tb2RlbHMvb3BlbmFpL2dwdC00LXR1cmJvKSB3aGlsZSBiZWluZyB0d2ljZSBhcyBmYXN0IGFuZCA1MCUgbW9yZSBjb3N0LWVmZmVjdGl2ZS4gR1BULTRvIGFsc28gb2ZmZXJzIGltcHJvdmVkIHBlcmZvcm1hbmNlIGluIHByb2Nlc3Npbmcgbm9uLUVuZ2xpc2ggbGFuZ3VhZ2VzIGFuZCBlbmhhbmNlZCB2aXN1YWwgY2FwYWJpbGl0aWVzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAzNjEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxMjUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImluZmxlY3Rpb24vaW5mbGVjdGlvbi0zLXByb2R1Y3Rpdml0eSIsIm5hbWUiOiJJbmZsZWN0aW9uOiBJbmZsZWN0aW9uIDMgUHJvZHVjdGl2aXR5IiwiY3JlYXRlZCI6MTcyODYwNDgwMCwiZGVzY3JpcHRpb24iOiJJbmZsZWN0aW9uIDMgUHJvZHVjdGl2aXR5IGlzIG9wdGltaXplZCBmb3IgZm9sbG93aW5nIGluc3RydWN0aW9ucy4gSXQgaXMgYmV0dGVyIGZvciB0YXNrcyByZXF1aXJpbmcgSlNPTiBvdXRwdXQgb3IgcHJlY2lzZSBhZGhlcmVuY2UgdG8gcHJvdmlkZWQgZ3VpZGVsaW5lcy4gSXQgaGFzIGFjY2VzcyB0byByZWNlbnQgbmV3cy5cblxuRm9yIGVtb3Rpb25hbCBpbnRlbGxpZ2VuY2Ugc2ltaWxhciB0byBQaSwgc2VlIFtJbmZsZWN0IDMgUGldKC9pbmZsZWN0aW9uL2luZmxlY3Rpb24tMy1waSlcblxuU2VlIFtJbmZsZWN0aW9uJ3MgYW5ub3VuY2VtZW50XShodHRwczovL2luZmxlY3Rpb24uYWkvYmxvZy9lbnRlcnByaXNlKSBmb3IgbW9yZSBkZXRhaWxzLiIsImNvbnRleHRfbGVuZ3RoIjo4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZXZhLXVuaXQtMDEvZXZhLXF3ZW4tMi41LTMyYiIsIm5hbWUiOiJFVkEgUXdlbjIuNSAzMkIiLCJjcmVhdGVkIjoxNzMxMTA0ODQ3LCJkZXNjcmlwdGlvbiI6IkVWQSBRd2VuMi41IDMyQiBpcyBhIHJvbGVwbGF5aW5nL3N0b3J5d3JpdGluZyBzcGVjaWFsaXN0IG1vZGVsLiBJdCdzIGEgZnVsbC1wYXJhbWV0ZXIgZmluZXR1bmUgb2YgUXdlbjIuNS0zMkIgb24gbWl4dHVyZSBvZiBzeW50aGV0aWMgYW5kIG5hdHVyYWwgZGF0YS5cblxuSXQgdXNlcyBDZWxlc3RlIDcwQiAwLjEgZGF0YSBtaXh0dXJlLCBncmVhdGx5IGV4cGFuZGluZyBpdCB0byBpbXByb3ZlIHZlcnNhdGlsaXR5LCBjcmVhdGl2aXR5IGFuZCBcImZsYXZvclwiIG9mIHRoZSByZXN1bHRpbmcgbW9kZWwuIiwiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDM0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxsLWhhbmRzL29wZW5oYW5kcy1sbS0zMmItdjAuMSIsIm5hbWUiOiJPcGVuSGFuZHMgTE0gMzJCIFYwLjEiLCJjcmVhdGVkIjoxNzQzNjEzMDEzLCJkZXNjcmlwdGlvbiI6Ik9wZW5IYW5kcyBMTSB2MC4xIGlzIGEgMzJCIG9wZW4tc291cmNlIGNvZGluZyBtb2RlbCBmaW5lLXR1bmVkIGZyb20gUXdlbjIuNS1Db2Rlci0zMkItSW5zdHJ1Y3QgdXNpbmcgcmVpbmZvcmNlbWVudCBsZWFybmluZyB0ZWNobmlxdWVzIG91dGxpbmVkIGluIFNXRS1HeW0uIEl0IGlzIG9wdGltaXplZCBmb3IgYXV0b25vbW91cyBzb2Z0d2FyZSBkZXZlbG9wbWVudCBhZ2VudHMgYW5kIGFjaGlldmVzIHN0cm9uZyBwZXJmb3JtYW5jZSBvbiBTV0UtQmVuY2ggVmVyaWZpZWQsIHdpdGggYSAzNy4yJSByZXNvbHZlIHJhdGUuIFRoZSBtb2RlbCBzdXBwb3J0cyBhIDEyOEsgdG9rZW4gY29udGV4dCB3aW5kb3csIG1ha2luZyBpdCB3ZWxsLXN1aXRlZCBmb3IgbG9uZy1ob3Jpem9uIGNvZGUgcmVhc29uaW5nIGFuZCBsYXJnZSBjb2RlYmFzZSB0YXNrcy5cblxuT3BlbkhhbmRzIExNIGlzIGRlc2lnbmVkIGZvciBsb2NhbCBkZXBsb3ltZW50IGFuZCBydW5zIG9uIGNvbnN1bWVyLWdyYWRlIEdQVXMgc3VjaCBhcyBhIHNpbmdsZSAzMDkwLiBJdCBlbmFibGVzIGZ1bGx5IG9mZmxpbmUgYWdlbnQgd29ya2Zsb3dzIHdpdGhvdXQgZGVwZW5kZW5jeSBvbiBwcm9wcmlldGFyeSBBUElzLiBUaGlzIHJlbGVhc2UgaXMgaW50ZW5kZWQgYXMgYSByZXNlYXJjaCBwcmV2aWV3LCBhbmQgZnV0dXJlIHVwZGF0ZXMgYWltIHRvIGltcHJvdmUgZ2VuZXJhbGl6YWJpbGl0eSwgcmVkdWNlIHJlcGV0aXRpb24sIGFuZCBvZmZlciBzbWFsbGVyIHZhcmlhbnRzLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1tZWRpdW0iLCJuYW1lIjoiTWlzdHJhbCBNZWRpdW0iLCJjcmVhdGVkIjoxNzA0ODQ0ODAwLCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgTWlzdHJhbCBBSSdzIGNsb3NlZC1zb3VyY2UsIG1lZGl1bS1zaWRlZCBtb2RlbC4gSXQncyBwb3dlcmVkIGJ5IGEgY2xvc2VkLXNvdXJjZSBwcm90b3R5cGUgYW5kIGV4Y2VscyBhdCByZWFzb25pbmcsIGNvZGUsIEpTT04sIGNoYXQsIGFuZCBtb3JlLiBJbiBiZW5jaG1hcmtzLCBpdCBjb21wYXJlcyB3aXRoIG1hbnkgb2YgdGhlIGZsYWdzaGlwIG1vZGVscyBvZiBvdGhlciBjb21wYW5pZXMuIiwiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJhY2l0ZS1vcmcvbWFnbnVtLXYyLTcyYiIsIm5hbWUiOiJNYWdudW0gdjIgNzJCIiwiY3JlYXRlZCI6MTcyNzY1NDQwMCwiZGVzY3JpcHRpb24iOiJGcm9tIHRoZSBtYWtlciBvZiBbR29saWF0aF0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL21vZGVscy9hbHBpbmRhbGUvZ29saWF0aC0xMjBiKSwgTWFnbnVtIDcyQiBpcyB0aGUgc2V2ZW50aCBpbiBhIGZhbWlseSBvZiBtb2RlbHMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgcHJvc2UgcXVhbGl0eSBvZiB0aGUgQ2xhdWRlIDMgbW9kZWxzLCBub3RhYmx5IE9wdXMgJiBTb25uZXQuXG5cblRoZSBtb2RlbCBpcyBiYXNlZCBvbiBbUXdlbjIgNzJCXShodHRwczovL29wZW5yb3V0ZXIuYWkvbW9kZWxzL3F3ZW4vcXdlbi0yLTcyYi1pbnN0cnVjdCkgYW5kIHRyYWluZWQgd2l0aCA1NSBtaWxsaW9uIHRva2VucyBvZiBoaWdobHkgY3VyYXRlZCByb2xlcGxheSAoUlApIGRhdGEuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNhbzEway9sMy4xLTcwYi1oYW5hbWkteDEiLCJuYW1lIjoiU2FvMTBLOiBMbGFtYSAzLjEgNzBCIEhhbmFtaSB4MSIsImNyZWF0ZWQiOjE3MzYzMDI4NTQsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBbU2FvMTBLXSgvc2FvMTBrKSdzIGV4cGVyaW1lbnQgb3ZlciBbRXVyeWFsZSB2Mi4yXSgvc2FvMTBrL2wzLjEtZXVyeWFsZS03MGIpLiIsImNvbnRleHRfbGVuZ3RoIjoxNjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiMDEtYWkveWktbGFyZ2UiLCJuYW1lIjoiMDEuQUk6IFlpIExhcmdlIiwiY3JlYXRlZCI6MTcxOTI3MzYwMCwiZGVzY3JpcHRpb24iOiJUaGUgWWkgTGFyZ2UgbW9kZWwgd2FzIGRlc2lnbmVkIGJ5IDAxLkFJIHdpdGggdGhlIGZvbGxvd2luZyB1c2VjYXNlcyBpbiBtaW5kOiBrbm93bGVkZ2Ugc2VhcmNoLCBkYXRhIGNsYXNzaWZpY2F0aW9uLCBodW1hbi1saWtlIGNoYXQgYm90cywgYW5kIGN1c3RvbWVyIHNlcnZpY2UuXG5cbkl0IHN0YW5kcyBvdXQgZm9yIGl0cyBtdWx0aWxpbmd1YWwgcHJvZmljaWVuY3ksIHBhcnRpY3VsYXJseSBpbiBTcGFuaXNoLCBDaGluZXNlLCBKYXBhbmVzZSwgR2VybWFuLCBhbmQgRnJlbmNoLlxuXG5DaGVjayBvdXQgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovLzAxLWFpLmdpdGh1Yi5pby9ibG9nLzAxLmFpLXlpLWxhcmdlLWxsbS1sYXVuY2gpIHRvIGxlYXJuIG1vcmUuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiWWkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLTE2ayIsIm5hbWUiOiJPcGVuQUk6IEdQVC0zLjUgVHVyYm8gMTZrIiwiY3JlYXRlZCI6MTY5MzE4MDgwMCwiZGVzY3JpcHRpb24iOiJUaGlzIG1vZGVsIG9mZmVycyBmb3VyIHRpbWVzIHRoZSBjb250ZXh0IGxlbmd0aCBvZiBncHQtMy41LXR1cmJvLCBhbGxvd2luZyBpdCB0byBzdXBwb3J0IGFwcHJveGltYXRlbHkgMjAgcGFnZXMgb2YgdGV4dCBpbiBhIHNpbmdsZSByZXF1ZXN0IGF0IGEgaGlnaGVyIGNvc3QuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMtc29ubmV0OmJldGEiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMyBTb25uZXQgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MDk1OTY4MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgU29ubmV0IGlzIGFuIGlkZWFsIGJhbGFuY2Ugb2YgaW50ZWxsaWdlbmNlIGFuZCBzcGVlZCBmb3IgZW50ZXJwcmlzZSB3b3JrbG9hZHMuIE1heGltdW0gdXRpbGl0eSBhdCBhIGxvd2VyIHByaWNlLCBkZXBlbmRhYmxlLCBiYWxhbmNlZCBmb3Igc2NhbGVkIGRlcGxveW1lbnRzLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtZmFtaWx5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy1zb25uZXQiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMyBTb25uZXQiLCJjcmVhdGVkIjoxNzA5NTk2ODAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIFNvbm5ldCBpcyBhbiBpZGVhbCBiYWxhbmNlIG9mIGludGVsbGlnZW5jZSBhbmQgc3BlZWQgZm9yIGVudGVycHJpc2Ugd29ya2xvYWRzLiBNYXhpbXVtIHV0aWxpdHkgYXQgYSBsb3dlciBwcmljZSwgZGVwZW5kYWJsZSwgYmFsYW5jZWQgZm9yIHNjYWxlZCBkZXBsb3ltZW50cy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3Mjk1NTUyMDAsImRlc2NyaXB0aW9uIjoiTmV3IENsYXVkZSAzLjUgU29ubmV0IGRlbGl2ZXJzIGJldHRlci10aGFuLU9wdXMgY2FwYWJpbGl0aWVzLCBmYXN0ZXItdGhhbi1Tb25uZXQgc3BlZWRzLCBhdCB0aGUgc2FtZSBTb25uZXQgcHJpY2VzLiBTb25uZXQgaXMgcGFydGljdWxhcmx5IGdvb2QgYXQ6XG5cbi0gQ29kaW5nOiBTY29yZXMgfjQ5JSBvbiBTV0UtQmVuY2ggVmVyaWZpZWQsIGhpZ2hlciB0aGFuIHRoZSBsYXN0IGJlc3Qgc2NvcmUsIGFuZCB3aXRob3V0IGFueSBmYW5jeSBwcm9tcHQgc2NhZmZvbGRpbmdcbi0gRGF0YSBzY2llbmNlOiBBdWdtZW50cyBodW1hbiBkYXRhIHNjaWVuY2UgZXhwZXJ0aXNlOyBuYXZpZ2F0ZXMgdW5zdHJ1Y3R1cmVkIGRhdGEgd2hpbGUgdXNpbmcgbXVsdGlwbGUgdG9vbHMgZm9yIGluc2lnaHRzXG4tIFZpc3VhbCBwcm9jZXNzaW5nOiBleGNlbGxpbmcgYXQgaW50ZXJwcmV0aW5nIGNoYXJ0cywgZ3JhcGhzLCBhbmQgaW1hZ2VzLCBhY2N1cmF0ZWx5IHRyYW5zY3JpYmluZyB0ZXh0IHRvIGRlcml2ZSBpbnNpZ2h0cyBiZXlvbmQganVzdCB0aGUgdGV4dCBhbG9uZVxuLSBBZ2VudGljIHRhc2tzOiBleGNlcHRpb25hbCB0b29sIHVzZSwgbWFraW5nIGl0IGdyZWF0IGF0IGFnZW50aWMgdGFza3MgKGkuZS4gY29tcGxleCwgbXVsdGktc3RlcCBwcm9ibGVtIHNvbHZpbmcgdGFza3MgdGhhdCByZXF1aXJlIGVuZ2FnaW5nIHdpdGggb3RoZXIgc3lzdGVtcylcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy41IFNvbm5ldCIsImNyZWF0ZWQiOjE3Mjk1NTUyMDAsImRlc2NyaXB0aW9uIjoiTmV3IENsYXVkZSAzLjUgU29ubmV0IGRlbGl2ZXJzIGJldHRlci10aGFuLU9wdXMgY2FwYWJpbGl0aWVzLCBmYXN0ZXItdGhhbi1Tb25uZXQgc3BlZWRzLCBhdCB0aGUgc2FtZSBTb25uZXQgcHJpY2VzLiBTb25uZXQgaXMgcGFydGljdWxhcmx5IGdvb2QgYXQ6XG5cbi0gQ29kaW5nOiBTY29yZXMgfjQ5JSBvbiBTV0UtQmVuY2ggVmVyaWZpZWQsIGhpZ2hlciB0aGFuIHRoZSBsYXN0IGJlc3Qgc2NvcmUsIGFuZCB3aXRob3V0IGFueSBmYW5jeSBwcm9tcHQgc2NhZmZvbGRpbmdcbi0gRGF0YSBzY2llbmNlOiBBdWdtZW50cyBodW1hbiBkYXRhIHNjaWVuY2UgZXhwZXJ0aXNlOyBuYXZpZ2F0ZXMgdW5zdHJ1Y3R1cmVkIGRhdGEgd2hpbGUgdXNpbmcgbXVsdGlwbGUgdG9vbHMgZm9yIGluc2lnaHRzXG4tIFZpc3VhbCBwcm9jZXNzaW5nOiBleGNlbGxpbmcgYXQgaW50ZXJwcmV0aW5nIGNoYXJ0cywgZ3JhcGhzLCBhbmQgaW1hZ2VzLCBhY2N1cmF0ZWx5IHRyYW5zY3JpYmluZyB0ZXh0IHRvIGRlcml2ZSBpbnNpZ2h0cyBiZXlvbmQganVzdCB0aGUgdGV4dCBhbG9uZVxuLSBBZ2VudGljIHRhc2tzOiBleGNlcHRpb25hbCB0b29sIHVzZSwgbWFraW5nIGl0IGdyZWF0IGF0IGFnZW50aWMgdGFza3MgKGkuZS4gY29tcGxleCwgbXVsdGktc3RlcCBwcm9ibGVtIHNvbHZpbmcgdGFza3MgdGhhdCByZXF1aXJlIGVuZ2FnaW5nIHdpdGggb3RoZXIgc3lzdGVtcylcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldC0yMDI0MDYyMDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQgKDIwMjQtMDYtMjApIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzE4ODQxNjAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzLjUgU29ubmV0IGRlbGl2ZXJzIGJldHRlci10aGFuLU9wdXMgY2FwYWJpbGl0aWVzLCBmYXN0ZXItdGhhbi1Tb25uZXQgc3BlZWRzLCBhdCB0aGUgc2FtZSBTb25uZXQgcHJpY2VzLiBTb25uZXQgaXMgcGFydGljdWxhcmx5IGdvb2QgYXQ6XG5cbi0gQ29kaW5nOiBBdXRvbm9tb3VzbHkgd3JpdGVzLCBlZGl0cywgYW5kIHJ1bnMgY29kZSB3aXRoIHJlYXNvbmluZyBhbmQgdHJvdWJsZXNob290aW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gKDIwMjQtMTAtMjMpLCBjaGVjayBvdXQgW0NsYXVkZSAzLjUgU29ubmV0XSgvYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0KS5cblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQtMjAyNDA2MjAiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy41IFNvbm5ldCAoMjAyNC0wNi0yMCkiLCJjcmVhdGVkIjoxNzE4ODQxNjAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzLjUgU29ubmV0IGRlbGl2ZXJzIGJldHRlci10aGFuLU9wdXMgY2FwYWJpbGl0aWVzLCBmYXN0ZXItdGhhbi1Tb25uZXQgc3BlZWRzLCBhdCB0aGUgc2FtZSBTb25uZXQgcHJpY2VzLiBTb25uZXQgaXMgcGFydGljdWxhcmx5IGdvb2QgYXQ6XG5cbi0gQ29kaW5nOiBBdXRvbm9tb3VzbHkgd3JpdGVzLCBlZGl0cywgYW5kIHJ1bnMgY29kZSB3aXRoIHJlYXNvbmluZyBhbmQgdHJvdWJsZXNob290aW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gKDIwMjQtMTAtMjMpLCBjaGVjayBvdXQgW0NsYXVkZSAzLjUgU29ubmV0XSgvYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0KS5cblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXItcGx1cyIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUisiLCJjcmVhdGVkIjoxNzEyMTg4ODAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQgUisgaXMgYSBuZXcsIDEwNEItcGFyYW1ldGVyIExMTSBmcm9tIENvaGVyZS4gSXQncyB1c2VmdWwgZm9yIHJvbGVwbGF5LCBnZW5lcmFsIGNvbnN1bWVyIHVzZWNhc2VzLCBhbmQgUmV0cmlldmFsIEF1Z21lbnRlZCBHZW5lcmF0aW9uIChSQUcpLlxuXG5JdCBvZmZlcnMgbXVsdGlsaW5ndWFsIHN1cHBvcnQgZm9yIHRlbiBrZXkgbGFuZ3VhZ2VzIHRvIGZhY2lsaXRhdGUgZ2xvYmFsIGJ1c2luZXNzIG9wZXJhdGlvbnMuIFNlZSBiZW5jaG1hcmtzIGFuZCB0aGUgbGF1bmNoIHBvc3QgW2hlcmVdKGh0dHBzOi8vdHh0LmNvaGVyZS5jb20vY29tbWFuZC1yLXBsdXMtbWljcm9zb2Z0LWF6dXJlLykuXG5cblVzZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gQ29oZXJlJ3MgW1VzYWdlIFBvbGljeV0oaHR0cHM6Ly9kb2NzLmNvaGVyZS5jb20vZG9jcy91c2FnZS1wb2xpY3kpIGFuZCBbU2FhUyBBZ3JlZW1lbnRdKGh0dHBzOi8vY29oZXJlLmNvbS9zYWFzLWFncmVlbWVudCkuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNvaGVyZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXItcHJvIiwibmFtZSI6IlBlcnBsZXhpdHk6IFNvbmFyIFBybyIsImNyZWF0ZWQiOjE3NDEzMTI0MjMsImRlc2NyaXB0aW9uIjoiTm90ZTogU29uYXIgUHJvIHByaWNpbmcgaW5jbHVkZXMgUGVycGxleGl0eSBzZWFyY2ggcHJpY2luZy4gU2VlIFtkZXRhaWxzIGhlcmVdKGh0dHBzOi8vZG9jcy5wZXJwbGV4aXR5LmFpL2d1aWRlcy9wcmljaW5nI2RldGFpbGVkLXByaWNpbmctYnJlYWtkb3duLWZvci1zb25hci1yZWFzb25pbmctcHJvLWFuZC1zb25hci1wcm8pXG5cbkZvciBlbnRlcnByaXNlcyBzZWVraW5nIG1vcmUgYWR2YW5jZWQgY2FwYWJpbGl0aWVzLCB0aGUgU29uYXIgUHJvIEFQSSBjYW4gaGFuZGxlIGluLWRlcHRoLCBtdWx0aS1zdGVwIHF1ZXJpZXMgd2l0aCBhZGRlZCBleHRlbnNpYmlsaXR5LCBsaWtlIGRvdWJsZSB0aGUgbnVtYmVyIG9mIGNpdGF0aW9ucyBwZXIgc2VhcmNoIGFzIFNvbmFyIG9uIGF2ZXJhZ2UuIFBsdXMsIHdpdGggYSBsYXJnZXIgY29udGV4dCB3aW5kb3csIGl0IGNhbiBoYW5kbGUgbG9uZ2VyIGFuZCBtb3JlIG51YW5jZWQgc2VhcmNoZXMgYW5kIGZvbGxvdy11cCBxdWVzdGlvbnMuICIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMC4wMDUiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLXBsdXMtMDQtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUisgKDA0LTIwMjQpIiwiY3JlYXRlZCI6MTcxMjAxNjAwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFIrIGlzIGEgbmV3LCAxMDRCLXBhcmFtZXRlciBMTE0gZnJvbSBDb2hlcmUuIEl0J3MgdXNlZnVsIGZvciByb2xlcGxheSwgZ2VuZXJhbCBjb25zdW1lciB1c2VjYXNlcywgYW5kIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKS5cblxuSXQgb2ZmZXJzIG11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciB0ZW4ga2V5IGxhbmd1YWdlcyB0byBmYWNpbGl0YXRlIGdsb2JhbCBidXNpbmVzcyBvcGVyYXRpb25zLiBTZWUgYmVuY2htYXJrcyBhbmQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci1wbHVzLW1pY3Jvc29mdC1henVyZS8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCIsImNyZWF0ZWQiOjE3NDA0MjIxMTAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNyBTb25uZXQgaXMgYW4gYWR2YW5jZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBpbXByb3ZlZCByZWFzb25pbmcsIGNvZGluZywgYW5kIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGludHJvZHVjZXMgYSBoeWJyaWQgcmVhc29uaW5nIGFwcHJvYWNoLCBhbGxvd2luZyB1c2VycyB0byBjaG9vc2UgYmV0d2VlbiByYXBpZCByZXNwb25zZXMgYW5kIGV4dGVuZGVkLCBzdGVwLWJ5LXN0ZXAgcHJvY2Vzc2luZyBmb3IgY29tcGxleCB0YXNrcy4gVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBjb2RpbmcsIHBhcnRpY3VsYXJseSBpbiBmcm9udC1lbmQgZGV2ZWxvcG1lbnQgYW5kIGZ1bGwtc3RhY2sgdXBkYXRlcywgYW5kIGV4Y2VscyBpbiBhZ2VudGljIHdvcmtmbG93cywgd2hlcmUgaXQgY2FuIGF1dG9ub21vdXNseSBuYXZpZ2F0ZSBtdWx0aS1zdGVwIHByb2Nlc3Nlcy4gXG5cbkNsYXVkZSAzLjcgU29ubmV0IG1haW50YWlucyBwZXJmb3JtYW5jZSBwYXJpdHkgd2l0aCBpdHMgcHJlZGVjZXNzb3IgaW4gc3RhbmRhcmQgbW9kZSB3aGlsZSBvZmZlcmluZyBhbiBleHRlbmRlZCByZWFzb25pbmcgbW9kZSBmb3IgZW5oYW5jZWQgYWNjdXJhY3kgaW4gbWF0aCwgY29kaW5nLCBhbmQgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzLlxuXG5SZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLTctc29ubmV0KSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQ6dGhpbmtpbmciLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCAodGhpbmtpbmcpIiwiY3JlYXRlZCI6MTc0MDQyMjExMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy43IFNvbm5ldCBpcyBhbiBhZHZhbmNlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCB3aXRoIGltcHJvdmVkIHJlYXNvbmluZywgY29kaW5nLCBhbmQgcHJvYmxlbS1zb2x2aW5nIGNhcGFiaWxpdGllcy4gSXQgaW50cm9kdWNlcyBhIGh5YnJpZCByZWFzb25pbmcgYXBwcm9hY2gsIGFsbG93aW5nIHVzZXJzIHRvIGNob29zZSBiZXR3ZWVuIHJhcGlkIHJlc3BvbnNlcyBhbmQgZXh0ZW5kZWQsIHN0ZXAtYnktc3RlcCBwcm9jZXNzaW5nIGZvciBjb21wbGV4IHRhc2tzLiBUaGUgbW9kZWwgZGVtb25zdHJhdGVzIG5vdGFibGUgaW1wcm92ZW1lbnRzIGluIGNvZGluZywgcGFydGljdWxhcmx5IGluIGZyb250LWVuZCBkZXZlbG9wbWVudCBhbmQgZnVsbC1zdGFjayB1cGRhdGVzLCBhbmQgZXhjZWxzIGluIGFnZW50aWMgd29ya2Zsb3dzLCB3aGVyZSBpdCBjYW4gYXV0b25vbW91c2x5IG5hdmlnYXRlIG11bHRpLXN0ZXAgcHJvY2Vzc2VzLiBcblxuQ2xhdWRlIDMuNyBTb25uZXQgbWFpbnRhaW5zIHBlcmZvcm1hbmNlIHBhcml0eSB3aXRoIGl0cyBwcmVkZWNlc3NvciBpbiBzdGFuZGFyZCBtb2RlIHdoaWxlIG9mZmVyaW5nIGFuIGV4dGVuZGVkIHJlYXNvbmluZyBtb2RlIGZvciBlbmhhbmNlZCBhY2N1cmFjeSBpbiBtYXRoLCBjb2RpbmcsIGFuZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgdGFza3MuXG5cblJlYWQgbW9yZSBhdCB0aGUgW2Jsb2cgcG9zdCBoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtNy1zb25uZXQpIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im5ldmVyc2xlZXAvbGxhbWEtMy1sdW1pbWFpZC03MGIiLCJuYW1lIjoiTmV2ZXJTbGVlcDogTGxhbWEgMyBMdW1pbWFpZCA3MEIiLCJjcmVhdGVkIjoxNzE1ODE3NjAwLCJkZXNjcmlwdGlvbiI6IlRoZSBOZXZlclNsZWVwIHRlYW0gaXMgYmFjaywgd2l0aCBhIExsYW1hIDMgNzBCIGZpbmV0dW5lIHRyYWluZWQgb24gdGhlaXIgY3VyYXRlZCByb2xlcGxheSBkYXRhLiBTdHJpa2luZyBhIGJhbGFuY2UgYmV0d2VlbiBlUlAgYW5kIFJQLCBMdW1pbWFpZCB3YXMgZGVzaWduZWQgdG8gYmUgc2VyaW91cywgeWV0IHVuY2Vuc29yZWQgd2hlbiBuZWNlc3NhcnkuXG5cblRvIGVuaGFuY2UgaXQncyBvdmVyYWxsIGludGVsbGlnZW5jZSBhbmQgY2hhdCBjYXBhYmlsaXR5LCByb3VnaGx5IDQwJSBvZiB0aGUgdHJhaW5pbmcgZGF0YSB3YXMgbm90IHJvbGVwbGF5LiBUaGlzIHByb3ZpZGVzIGEgYnJlYWR0aCBvZiBrbm93bGVkZ2UgdG8gYWNjZXNzLCB3aGlsZSBzdGlsbCBrZWVwaW5nIHJvbGVwbGF5IGFzIHRoZSBwcmltYXJ5IHN0cmVuZ3RoLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMzM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Inh3aW4tbG0veHdpbi1sbS03MGIiLCJuYW1lIjoiWHdpbiA3MEIiLCJjcmVhdGVkIjoxNjk3MzI4MDAwLCJkZXNjcmlwdGlvbiI6Ilh3aW4tTE0gYWltcyB0byBkZXZlbG9wIGFuZCBvcGVuLXNvdXJjZSBhbGlnbm1lbnQgdGVjaCBmb3IgTExNcy4gT3VyIGZpcnN0IHJlbGVhc2UsIGJ1aWx0LXVwb24gb24gdGhlIFtMbGFtYTJdKC9tb2RlbHMvJHtNb2RlbC5MbGFtYV8yXzEzQl9DaGF0fSkgYmFzZSBtb2RlbHMsIHJhbmtlZCBUT1AtMSBvbiBBbHBhY2FFdmFsLiBOb3RhYmx5LCBpdCdzIHRoZSBmaXJzdCB0byBzdXJwYXNzIFtHUFQtNF0oL21vZGVscy8ke01vZGVsLkdQVF80fSkgb24gdGhpcyBiZW5jaG1hcmsuIFRoZSBwcm9qZWN0IHdpbGwgYmUgY29udGludW91c2x5IHVwZGF0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWlyb2Jvcm9zIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjUxMiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImV2YS11bml0LTAxL2V2YS1sbGFtYS0zLjMzLTcwYiIsIm5hbWUiOiJFVkEgTGxhbWEgMy4zMyA3MEIiLCJjcmVhdGVkIjoxNzM0Mzc3MzAzLCJkZXNjcmlwdGlvbiI6IkVWQSBMbGFtYSAzLjMzIDcwYiBpcyBhIHJvbGVwbGF5IGFuZCBzdG9yeXdyaXRpbmcgc3BlY2lhbGlzdCBtb2RlbC4gSXQgaXMgYSBmdWxsLXBhcmFtZXRlciBmaW5ldHVuZSBvZiBbTGxhbWEtMy4zLTcwQi1JbnN0cnVjdF0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL21ldGEtbGxhbWEvbGxhbWEtMy4zLTcwYi1pbnN0cnVjdCkgb24gbWl4dHVyZSBvZiBzeW50aGV0aWMgYW5kIG5hdHVyYWwgZGF0YS5cblxuSXQgdXNlcyBDZWxlc3RlIDcwQiAwLjEgZGF0YSBtaXh0dXJlLCBncmVhdGx5IGV4cGFuZGluZyBpdCB0byBpbXByb3ZlIHZlcnNhdGlsaXR5LCBjcmVhdGl2aXR5IGFuZCBcImZsYXZvclwiIG9mIHRoZSByZXN1bHRpbmcgbW9kZWxcblxuVGhpcyBtb2RlbCB3YXMgYnVpbHQgd2l0aCBMbGFtYSBieSBNZXRhLlxuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA0IiwiY29tcGxldGlvbiI6IjAuMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWlvbi1sYWJzL2Fpb24tMS4wIiwibmFtZSI6IkFpb25MYWJzOiBBaW9uLTEuMCIsImNyZWF0ZWQiOjE3Mzg2OTc1NTcsImRlc2NyaXB0aW9uIjoiQWlvbi0xLjAgaXMgYSBtdWx0aS1tb2RlbCBzeXN0ZW0gZGVzaWduZWQgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIHZhcmlvdXMgdGFza3MsIGluY2x1ZGluZyByZWFzb25pbmcgYW5kIGNvZGluZy4gSXQgaXMgYnVpbHQgb24gRGVlcFNlZWstUjEsIGF1Z21lbnRlZCB3aXRoIGFkZGl0aW9uYWwgbW9kZWxzIGFuZCB0ZWNobmlxdWVzIHN1Y2ggYXMgVHJlZSBvZiBUaG91Z2h0cyAoVG9UKSBhbmQgTWl4dHVyZSBvZiBFeHBlcnRzIChNb0UpLiBJdCBpcyBBaW9uIExhYidzIG1vc3QgcG93ZXJmdWwgcmVhc29uaW5nIG1vZGVsLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InJhaWZsZS9zb3JjZXJlcmxtLTh4MjJiIiwibmFtZSI6IlNvcmNlcmVyTE0gOHgyMkIiLCJjcmVhdGVkIjoxNzMxMTA1MDgzLCJkZXNjcmlwdGlvbiI6IlNvcmNlcmVyTE0gaXMgYW4gYWR2YW5jZWQgUlAgYW5kIHN0b3J5dGVsbGluZyBtb2RlbCwgYnVpbHQgYXMgYSBMb3ctcmFuayAxNi1iaXQgTG9SQSBmaW5lLXR1bmVkIG9uIFtXaXphcmRMTS0yIDh4MjJCXSgvbWljcm9zb2Z0L3dpemFyZGxtLTItOHgyMmIpLlxuXG4tIEFkdmFuY2VkIHJlYXNvbmluZyBhbmQgZW1vdGlvbmFsIGludGVsbGlnZW5jZSBmb3IgZW5nYWdpbmcgYW5kIGltbWVyc2l2ZSBpbnRlcmFjdGlvbnNcbi0gVml2aWQgd3JpdGluZyBjYXBhYmlsaXRpZXMgZW5yaWNoZWQgd2l0aCBzcGF0aWFsIGFuZCBjb250ZXh0dWFsIGF3YXJlbmVzc1xuLSBFbmhhbmNlZCBuYXJyYXRpdmUgZGVwdGgsIHByb21vdGluZyBjcmVhdGl2ZSBhbmQgZHluYW1pYyBzdG9yeXRlbGxpbmciLCJjb250ZXh0X2xlbmd0aCI6MTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA0NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJwZXJwbGV4aXR5L2xsYW1hLTMuMS1zb25hci1odWdlLTEyOGstb25saW5lIiwibmFtZSI6IlBlcnBsZXhpdHk6IExsYW1hIDMuMSBTb25hciA0MDVCIE9ubGluZSIsImNyZWF0ZWQiOjE3MjM1OTM2MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4xIFNvbmFyIGlzIFBlcnBsZXhpdHkncyBsYXRlc3QgbW9kZWwgZmFtaWx5LiBJdCBzdXJwYXNzZXMgdGhlaXIgZWFybGllciBTb25hciBtb2RlbHMgaW4gY29zdC1lZmZpY2llbmN5LCBzcGVlZCwgYW5kIHBlcmZvcm1hbmNlLiBUaGUgbW9kZWwgaXMgYnVpbHQgdXBvbiB0aGUgTGxhbWEgMy4xIDQwNUIgYW5kIGhhcyBpbnRlcm5ldCBhY2Nlc3MuIiwiY29udGV4dF9sZW5ndGgiOjEyNzA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA1IiwicmVxdWVzdCI6IjAuMDA1IiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI3MDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvY2hhdGdwdC00by1sYXRlc3QiLCJuYW1lIjoiT3BlbkFJOiBDaGF0R1BULTRvIiwiY3JlYXRlZCI6MTcyMzU5MzYwMCwiZGVzY3JpcHRpb24iOiJPcGVuQUkgQ2hhdEdQVCA0byBpcyBjb250aW51YWxseSB1cGRhdGVkIGJ5IE9wZW5BSSB0byBwb2ludCB0byB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIEdQVC00byB1c2VkIGJ5IENoYXRHUFQuIEl0IHRoZXJlZm9yZSBkaWZmZXJzIHNsaWdodGx5IGZyb20gdGhlIEFQSSB2ZXJzaW9uIG9mIFtHUFQtNG9dKC9tb2RlbHMvb3BlbmFpL2dwdC00bykgaW4gdGhhdCBpdCBoYXMgYWRkaXRpb25hbCBSTEhGLiBJdCBpcyBpbnRlbmRlZCBmb3IgcmVzZWFyY2ggYW5kIGV2YWx1YXRpb24uXG5cbk9wZW5BSSBub3RlcyB0aGF0IHRoaXMgbW9kZWwgaXMgbm90IHN1aXRlZCBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMgYXMgaXQgbWF5IGJlIHJlbW92ZWQgb3IgcmVkaXJlY3RlZCB0byBhbm90aGVyIG1vZGVsIGluIHRoZSBmdXR1cmUuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDcyMjUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG8tMjAyNC0wNS0xMyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00byAoMjAyNC0wNS0xMykiLCJjcmVhdGVkIjoxNzE1NTU4NDAwLCJkZXNjcmlwdGlvbiI6IkdQVC00byAoXCJvXCIgZm9yIFwib21uaVwiKSBpcyBPcGVuQUkncyBsYXRlc3QgQUkgbW9kZWwsIHN1cHBvcnRpbmcgYm90aCB0ZXh0IGFuZCBpbWFnZSBpbnB1dHMgd2l0aCB0ZXh0IG91dHB1dHMuIEl0IG1haW50YWlucyB0aGUgaW50ZWxsaWdlbmNlIGxldmVsIG9mIFtHUFQtNCBUdXJib10oL21vZGVscy9vcGVuYWkvZ3B0LTQtdHVyYm8pIHdoaWxlIGJlaW5nIHR3aWNlIGFzIGZhc3QgYW5kIDUwJSBtb3JlIGNvc3QtZWZmZWN0aXZlLiBHUFQtNG8gYWxzbyBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gcHJvY2Vzc2luZyBub24tRW5nbGlzaCBsYW5ndWFnZXMgYW5kIGVuaGFuY2VkIHZpc3VhbCBjYXBhYmlsaXRpZXMuXG5cbkZvciBiZW5jaG1hcmtpbmcgYWdhaW5zdCBvdGhlciBtb2RlbHMsIGl0IHdhcyBicmllZmx5IGNhbGxlZCBbXCJpbS1hbHNvLWEtZ29vZC1ncHQyLWNoYXRib3RcIl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9MaWFtRmVkdXMvc3RhdHVzLzE3OTAwNjQ5NjM5NjYzNzAyMDkpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDcyMjUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoieC1haS9ncm9rLWJldGEiLCJuYW1lIjoieEFJOiBHcm9rIEJldGEiLCJjcmVhdGVkIjoxNzI5MzgyNDAwLCJkZXNjcmlwdGlvbiI6Ikdyb2sgQmV0YSBpcyB4QUkncyBleHBlcmltZW50YWwgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBzdGF0ZS1vZi10aGUtYXJ0IHJlYXNvbmluZyBjYXBhYmlsaXRpZXMsIGJlc3QgZm9yIGNvbXBsZXggYW5kIG11bHRpLXN0ZXAgdXNlIGNhc2VzLlxuXG5JdCBpcyB0aGUgc3VjY2Vzc29yIG9mIFtHcm9rIDJdKGh0dHBzOi8veC5haS9ibG9nL2dyb2stMikgd2l0aCBlbmhhbmNlZCBjb250ZXh0IGxlbmd0aC4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR3JvayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6IngtYWkvZ3Jvay12aXNpb24tYmV0YSIsIm5hbWUiOiJ4QUk6IEdyb2sgVmlzaW9uIEJldGEiLCJjcmVhdGVkIjoxNzMxOTc2NjI0LCJkZXNjcmlwdGlvbiI6Ikdyb2sgVmlzaW9uIEJldGEgaXMgeEFJJ3MgZXhwZXJpbWVudGFsIGxhbmd1YWdlIG1vZGVsIHdpdGggdmlzaW9uIGNhcGFiaWxpdHkuXG5cbiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDkiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvOmV4dGVuZGVkIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvIChleHRlbmRlZCkiLCJjcmVhdGVkIjoxNzE1NTU4NDAwLCJkZXNjcmlwdGlvbiI6IkdQVC00byAoXCJvXCIgZm9yIFwib21uaVwiKSBpcyBPcGVuQUkncyBsYXRlc3QgQUkgbW9kZWwsIHN1cHBvcnRpbmcgYm90aCB0ZXh0IGFuZCBpbWFnZSBpbnB1dHMgd2l0aCB0ZXh0IG91dHB1dHMuIEl0IG1haW50YWlucyB0aGUgaW50ZWxsaWdlbmNlIGxldmVsIG9mIFtHUFQtNCBUdXJib10oL21vZGVscy9vcGVuYWkvZ3B0LTQtdHVyYm8pIHdoaWxlIGJlaW5nIHR3aWNlIGFzIGZhc3QgYW5kIDUwJSBtb3JlIGNvc3QtZWZmZWN0aXZlLiBHUFQtNG8gYWxzbyBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gcHJvY2Vzc2luZyBub24tRW5nbGlzaCBsYW5ndWFnZXMgYW5kIGVuaGFuY2VkIHZpc3VhbCBjYXBhYmlsaXRpZXMuXG5cbkZvciBiZW5jaG1hcmtpbmcgYWdhaW5zdCBvdGhlciBtb2RlbHMsIGl0IHdhcyBicmllZmx5IGNhbGxlZCBbXCJpbS1hbHNvLWEtZ29vZC1ncHQyLWNoYXRib3RcIl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9MaWFtRmVkdXMvc3RhdHVzLzE3OTAwNjQ5NjM5NjYzNzAyMDkpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDcyMjUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjQwMDAsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFscGluZGFsZS9nb2xpYXRoLTEyMGIiLCJuYW1lIjoiR29saWF0aCAxMjBCIiwiY3JlYXRlZCI6MTY5OTU3NDQwMCwiZGVzY3JpcHRpb24iOiJBIGxhcmdlIExMTSBjcmVhdGVkIGJ5IGNvbWJpbmluZyB0d28gZmluZS10dW5lZCBMbGFtYSA3MEIgbW9kZWxzIGludG8gb25lIDEyMEIgbW9kZWwuIENvbWJpbmVzIFh3aW4gYW5kIEV1cnlhbGUuXG5cbkNyZWRpdHMgdG9cbi0gW0BjaGFyZ29kZGFyZF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9jaGFyZ29kZGFyZCkgZm9yIGRldmVsb3BpbmcgdGhlIGZyYW1ld29yayB1c2VkIHRvIG1lcmdlIHRoZSBtb2RlbCAtIFttZXJnZWtpdF0oaHR0cHM6Ly9naXRodWIuY29tL2NnMTIzL21lcmdla2l0KS5cbi0gW0BVbmRpOTVdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vVW5kaTk1KSBmb3IgaGVscGluZyB3aXRoIHRoZSBtZXJnZSByYXRpb3MuXG5cbiNtZXJnZSIsImNvbnRleHRfbGVuZ3RoIjo2MTQ0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFpcm9ib3JvcyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA2NTYyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwOTM3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjE0NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo1MTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTI6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2MiAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcwMDYxMTIwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMiBkZWxpdmVycyBhZHZhbmNlbWVudHMgaW4ga2V5IGNhcGFiaWxpdGllcyBmb3IgZW50ZXJwcmlzZXPigJRpbmNsdWRpbmcgYW4gaW5kdXN0cnktbGVhZGluZyAyMDBLIHRva2VuIGNvbnRleHQgd2luZG93LCBzaWduaWZpY2FudCByZWR1Y3Rpb25zIGluIHJhdGVzIG9mIG1vZGVsIGhhbGx1Y2luYXRpb24sIHN5c3RlbSBwcm9tcHRzIGFuZCBhIG5ldyBiZXRhIGZlYXR1cmU6IHRvb2wgdXNlLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAyNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTIiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgdjIiLCJjcmVhdGVkIjoxNzAwNjExMjAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAyIGRlbGl2ZXJzIGFkdmFuY2VtZW50cyBpbiBrZXkgY2FwYWJpbGl0aWVzIGZvciBlbnRlcnByaXNlc+KAlGluY2x1ZGluZyBhbiBpbmR1c3RyeS1sZWFkaW5nIDIwMEsgdG9rZW4gY29udGV4dCB3aW5kb3csIHNpZ25pZmljYW50IHJlZHVjdGlvbnMgaW4gcmF0ZXMgb2YgbW9kZWwgaGFsbHVjaW5hdGlvbiwgc3lzdGVtIHByb21wdHMgYW5kIGEgbmV3IGJldGEgZmVhdHVyZTogdG9vbCB1c2UuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0yLjA6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2Mi4wIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNjkwNTAyNDAwLCJkZXNjcmlwdGlvbiI6IkFudGhyb3BpYydzIGZsYWdzaGlwIG1vZGVsLiBTdXBlcmlvciBwZXJmb3JtYW5jZSBvbiB0YXNrcyB0aGF0IHJlcXVpcmUgY29tcGxleCByZWFzb25pbmcuIFN1cHBvcnRzIGh1bmRyZWRzIG9mIHBhZ2VzIG9mIHRleHQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMi4wIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIHYyLjAiLCJjcmVhdGVkIjoxNjkwNTAyNDAwLCJkZXNjcmlwdGlvbiI6IkFudGhyb3BpYydzIGZsYWdzaGlwIG1vZGVsLiBTdXBlcmlvciBwZXJmb3JtYW5jZSBvbiB0YXNrcyB0aGF0IHJlcXVpcmUgY29tcGxleCByZWFzb25pbmcuIFN1cHBvcnRzIGh1bmRyZWRzIG9mIHBhZ2VzIG9mIHRleHQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0yLjE6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2Mi4xIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzAwNjExMjAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAyIGRlbGl2ZXJzIGFkdmFuY2VtZW50cyBpbiBrZXkgY2FwYWJpbGl0aWVzIGZvciBlbnRlcnByaXNlc+KAlGluY2x1ZGluZyBhbiBpbmR1c3RyeS1sZWFkaW5nIDIwMEsgdG9rZW4gY29udGV4dCB3aW5kb3csIHNpZ25pZmljYW50IHJlZHVjdGlvbnMgaW4gcmF0ZXMgb2YgbW9kZWwgaGFsbHVjaW5hdGlvbiwgc3lzdGVtIHByb21wdHMgYW5kIGEgbmV3IGJldGEgZmVhdHVyZTogdG9vbCB1c2UuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMi4xIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIHYyLjEiLCJjcmVhdGVkIjoxNzAwNjExMjAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAyIGRlbGl2ZXJzIGFkdmFuY2VtZW50cyBpbiBrZXkgY2FwYWJpbGl0aWVzIGZvciBlbnRlcnByaXNlc+KAlGluY2x1ZGluZyBhbiBpbmR1c3RyeS1sZWFkaW5nIDIwMEsgdG9rZW4gY29udGV4dCB3aW5kb3csIHNpZ25pZmljYW50IHJlZHVjdGlvbnMgaW4gcmF0ZXMgb2YgbW9kZWwgaGFsbHVjaW5hdGlvbiwgc3lzdGVtIHByb21wdHMgYW5kIGEgbmV3IGJldGEgZmVhdHVyZTogdG9vbCB1c2UuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LTExMDYtcHJldmlldyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IFR1cmJvIChvbGRlciB2MTEwNikiLCJjcmVhdGVkIjoxNjk5MjI4ODAwLCJkZXNjcmlwdGlvbiI6IlRoZSBsYXRlc3QgR1BULTQgVHVyYm8gbW9kZWwgd2l0aCB2aXNpb24gY2FwYWJpbGl0aWVzLiBWaXNpb24gcmVxdWVzdHMgY2FuIG5vdyB1c2UgSlNPTiBtb2RlIGFuZCBmdW5jdGlvbiBjYWxsaW5nLlxuXG5UcmFpbmluZyBkYXRhOiB1cCB0byBBcHJpbCAyMDIzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtdHVyYm8iLCJuYW1lIjoiT3BlbkFJOiBHUFQtNCBUdXJibyIsImNyZWF0ZWQiOjE3MTI2MjA4MDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBHUFQtNCBUdXJibyBtb2RlbCB3aXRoIHZpc2lvbiBjYXBhYmlsaXRpZXMuIFZpc2lvbiByZXF1ZXN0cyBjYW4gbm93IHVzZSBKU09OIG1vZGUgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuXG5cblRyYWluaW5nIGRhdGE6IHVwIHRvIERlY2VtYmVyIDIwMjMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDE0NDUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LXR1cmJvLXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBHUFQtNCBUdXJibyBQcmV2aWV3IiwiY3JlYXRlZCI6MTcwNjE0MDgwMCwiZGVzY3JpcHRpb24iOiJUaGUgcHJldmlldyBHUFQtNCBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIERlYyAyMDIzLlxuXG4qKk5vdGU6KiogaGVhdmlseSByYXRlIGxpbWl0ZWQgYnkgT3BlbkFJIHdoaWxlIGluIHByZXZpZXcuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMS1wcmV2aWV3LTIwMjQtMDktMTIiLCJuYW1lIjoiT3BlbkFJOiBvMS1wcmV2aWV3ICgyMDI0LTA5LTEyKSIsImNyZWF0ZWQiOjE3MjYwOTkyMDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBhbmQgc3Ryb25nZXN0IG1vZGVsIGZhbWlseSBmcm9tIE9wZW5BSSwgbzEgaXMgZGVzaWduZWQgdG8gc3BlbmQgbW9yZSB0aW1lIHRoaW5raW5nIGJlZm9yZSByZXNwb25kaW5nLlxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuXG5Ob3RlOiBUaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgYW5kIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMsIGFuZCBtYXkgYmUgaGVhdmlseSByYXRlLWxpbWl0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMS1wcmV2aWV3IiwibmFtZSI6Ik9wZW5BSTogbzEtcHJldmlldyIsImNyZWF0ZWQiOjE3MjYwOTkyMDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBhbmQgc3Ryb25nZXN0IG1vZGVsIGZhbWlseSBmcm9tIE9wZW5BSSwgbzEgaXMgZGVzaWduZWQgdG8gc3BlbmQgbW9yZSB0aW1lIHRoaW5raW5nIGJlZm9yZSByZXNwb25kaW5nLlxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuXG5Ob3RlOiBUaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgYW5kIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMsIGFuZCBtYXkgYmUgaGVhdmlseSByYXRlLWxpbWl0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMSIsIm5hbWUiOiJPcGVuQUk6IG8xIiwiY3JlYXRlZCI6MTczNDQ1OTk5OSwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuIFRoZSBvMSBtb2RlbCBzZXJpZXMgaXMgdHJhaW5lZCB3aXRoIGxhcmdlLXNjYWxlIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgdG8gcmVhc29uIHVzaW5nIGNoYWluIG9mIHRob3VnaHQuIFxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyMTY3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMtb3B1czpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgT3B1cyAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcwOTU5NjgwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMyBPcHVzIGlzIEFudGhyb3BpYydzIG1vc3QgcG93ZXJmdWwgbW9kZWwgZm9yIGhpZ2hseSBjb21wbGV4IHRhc2tzLiBJdCBib2FzdHMgdG9wLWxldmVsIHBlcmZvcm1hbmNlLCBpbnRlbGxpZ2VuY2UsIGZsdWVuY3ksIGFuZCB1bmRlcnN0YW5kaW5nLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtZmFtaWx5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDI0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxNSIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMTg3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLW9wdXMiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMyBPcHVzIiwiY3JlYXRlZCI6MTcwOTU5NjgwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMyBPcHVzIGlzIEFudGhyb3BpYydzIG1vc3QgcG93ZXJmdWwgbW9kZWwgZm9yIGhpZ2hseSBjb21wbGV4IHRhc2tzLiBJdCBib2FzdHMgdG9wLWxldmVsIHBlcmZvcm1hbmNlLCBpbnRlbGxpZ2VuY2UsIGZsdWVuY3ksIGFuZCB1bmRlcnN0YW5kaW5nLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtZmFtaWx5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDI0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxNSIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMTg3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMDMxNCIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTAzMTQgaXMgdGhlIGZpcnN0IHZlcnNpb24gb2YgR1BULTQgcmVsZWFzZWQsIHdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiA4LDE5MiB0b2tlbnMsIGFuZCB3YXMgc3VwcG9ydGVkIHVudGlsIEp1bmUgMTQuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNCIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IiwiY3JlYXRlZCI6MTY4NTIzMjAwMCwiZGVzY3JpcHRpb24iOiJPcGVuQUkncyBmbGFnc2hpcCBtb2RlbCwgR1BULTQgaXMgYSBsYXJnZS1zY2FsZSBtdWx0aW1vZGFsIGxhbmd1YWdlIG1vZGVsIGNhcGFibGUgb2Ygc29sdmluZyBkaWZmaWN1bHQgcHJvYmxlbXMgd2l0aCBncmVhdGVyIGFjY3VyYWN5IHRoYW4gcHJldmlvdXMgbW9kZWxzIGR1ZSB0byBpdHMgYnJvYWRlciBnZW5lcmFsIGtub3dsZWRnZSBhbmQgYWR2YW5jZWQgcmVhc29uaW5nIGNhcGFiaWxpdGllcy4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjgxOTEsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTEsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LTMyay0wMzE0IiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjkzMTgwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTMyayBpcyBhbiBleHRlbmRlZCB2ZXJzaW9uIG9mIEdQVC00LCB3aXRoIHRoZSBzYW1lIGNhcGFiaWxpdGllcyBidXQgcXVhZHJ1cGxlZCBjb250ZXh0IGxlbmd0aCwgYWxsb3dpbmcgZm9yIHByb2Nlc3NpbmcgdXAgdG8gNDAgcGFnZXMgb2YgdGV4dCBpbiBhIHNpbmdsZSBwYXNzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBiZW5lZmljaWFsIGZvciBoYW5kbGluZyBsb25nZXIgY29udGVudCBsaWtlIGludGVyYWN0aW5nIHdpdGggUERGcyB3aXRob3V0IGFuIGV4dGVybmFsIHZlY3RvciBkYXRhYmFzZS4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY3LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2NywibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMzJrIiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIiwiY3JlYXRlZCI6MTY5MzE4MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtNC0zMmsgaXMgYW4gZXh0ZW5kZWQgdmVyc2lvbiBvZiBHUFQtNCwgd2l0aCB0aGUgc2FtZSBjYXBhYmlsaXRpZXMgYnV0IHF1YWRydXBsZWQgY29udGV4dCBsZW5ndGgsIGFsbG93aW5nIGZvciBwcm9jZXNzaW5nIHVwIHRvIDQwIHBhZ2VzIG9mIHRleHQgaW4gYSBzaW5nbGUgcGFzcy4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgYmVuZWZpY2lhbCBmb3IgaGFuZGxpbmcgbG9uZ2VyIGNvbnRlbnQgbGlrZSBpbnRlcmFjdGluZyB3aXRoIFBERnMgd2l0aG91dCBhbiBleHRlcm5hbCB2ZWN0b3IgZGF0YWJhc2UuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2NywiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDYiLCJjb21wbGV0aW9uIjoiMC4wMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjcsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LjUtcHJldmlldyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00LjUgKFByZXZpZXcpIiwiY3JlYXRlZCI6MTc0MDY4NzgxMCwiZGVzY3JpcHRpb24iOiJHUFQtNC41IChQcmV2aWV3KSBpcyBhIHJlc2VhcmNoIHByZXZpZXcgb2YgT3BlbkFJ4oCZcyBsYXRlc3QgbGFuZ3VhZ2UgbW9kZWwsIGRlc2lnbmVkIHRvIGFkdmFuY2UgY2FwYWJpbGl0aWVzIGluIHJlYXNvbmluZywgY3JlYXRpdml0eSwgYW5kIG11bHRpLXR1cm4gY29udmVyc2F0aW9uLiBJdCBidWlsZHMgb24gcHJldmlvdXMgaXRlcmF0aW9ucyB3aXRoIGltcHJvdmVtZW50cyBpbiB3b3JsZCBrbm93bGVkZ2UsIGNvbnRleHR1YWwgY29oZXJlbmNlLCBhbmQgdGhlIGFiaWxpdHkgdG8gZm9sbG93IHVzZXIgaW50ZW50IG1vcmUgZWZmZWN0aXZlbHkuXG5cblRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgZW5oYW5jZWQgcGVyZm9ybWFuY2UgaW4gdGFza3MgdGhhdCByZXF1aXJlIG9wZW4tZW5kZWQgdGhpbmtpbmcsIHByb2JsZW0tc29sdmluZywgYW5kIGNvbW11bmljYXRpb24uIEVhcmx5IHRlc3Rpbmcgc3VnZ2VzdHMgaXQgaXMgYmV0dGVyIGF0IGdlbmVyYXRpbmcgbnVhbmNlZCByZXNwb25zZXMsIG1haW50YWluaW5nIGxvbmctY29udGV4dCBjb2hlcmVuY2UsIGFuZCByZWR1Y2luZyBoYWxsdWNpbmF0aW9ucyBjb21wYXJlZCB0byBlYXJsaWVyIHZlcnNpb25zLlxuXG5UaGlzIHJlc2VhcmNoIHByZXZpZXcgaXMgaW50ZW5kZWQgdG8gaGVscCBldmFsdWF0ZSBHUFQtNC414oCZcyBzdHJlbmd0aHMgYW5kIGxpbWl0YXRpb25zIGluIHJlYWwtd29ybGQgdXNlIGNhc2VzIGFzIE9wZW5BSSBjb250aW51ZXMgdG8gcmVmaW5lIGFuZCBkZXZlbG9wIGZ1dHVyZSBtb2RlbHMuIFJlYWQgbW9yZSBhdCB0aGUgW2Jsb2cgcG9zdCBoZXJlLl0oaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2ludHJvZHVjaW5nLWdwdC00LTUvKSIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDc1IiwiY29tcGxldGlvbiI6IjAuMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4xMDgzNzUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvbzEtcHJvIiwibmFtZSI6Ik9wZW5BSTogbzEtcHJvIiwiY3JlYXRlZCI6MTc0MjQyMzIxMSwiZGVzY3JpcHRpb24iOiJUaGUgbzEgc2VyaWVzIG9mIG1vZGVscyBhcmUgdHJhaW5lZCB3aXRoIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgdG8gdGhpbmsgYmVmb3JlIHRoZXkgYW5zd2VyIGFuZCBwZXJmb3JtIGNvbXBsZXggcmVhc29uaW5nLiBUaGUgbzEtcHJvIG1vZGVsIHVzZXMgbW9yZSBjb21wdXRlIHRvIHRoaW5rIGhhcmRlciBhbmQgcHJvdmlkZSBjb25zaXN0ZW50bHkgYmV0dGVyIGFuc3dlcnMuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4yMTY3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDAwMDAsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy43LXNvbm5ldDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNyBTb25uZXQgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3NDA0MjIxMTAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNyBTb25uZXQgaXMgYW4gYWR2YW5jZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBpbXByb3ZlZCByZWFzb25pbmcsIGNvZGluZywgYW5kIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGludHJvZHVjZXMgYSBoeWJyaWQgcmVhc29uaW5nIGFwcHJvYWNoLCBhbGxvd2luZyB1c2VycyB0byBjaG9vc2UgYmV0d2VlbiByYXBpZCByZXNwb25zZXMgYW5kIGV4dGVuZGVkLCBzdGVwLWJ5LXN0ZXAgcHJvY2Vzc2luZyBmb3IgY29tcGxleCB0YXNrcy4gVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBjb2RpbmcsIHBhcnRpY3VsYXJseSBpbiBmcm9udC1lbmQgZGV2ZWxvcG1lbnQgYW5kIGZ1bGwtc3RhY2sgdXBkYXRlcywgYW5kIGV4Y2VscyBpbiBhZ2VudGljIHdvcmtmbG93cywgd2hlcmUgaXQgY2FuIGF1dG9ub21vdXNseSBuYXZpZ2F0ZSBtdWx0aS1zdGVwIHByb2Nlc3Nlcy4gXG5cbkNsYXVkZSAzLjcgU29ubmV0IG1haW50YWlucyBwZXJmb3JtYW5jZSBwYXJpdHkgd2l0aCBpdHMgcHJlZGVjZXNzb3IgaW4gc3RhbmRhcmQgbW9kZSB3aGlsZSBvZmZlcmluZyBhbiBleHRlbmRlZCByZWFzb25pbmcgbW9kZSBmb3IgZW5oYW5jZWQgYWNjdXJhY3kgaW4gbWF0aCwgY29kaW5nLCBhbmQgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzLlxuXG5SZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLTctc29ubmV0KSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfV19 + recorded_at: Wed, 09 Apr 2025 10:27:56 GMT recorded_with: VCR 6.3.1 diff --git a/spec/fixtures/vcr_cassettes/models_refresh_works_as_a_class_method_too.yml b/spec/fixtures/vcr_cassettes/models_refresh_works_as_a_class_method_too.yml index 812879d3c..8af1024b5 100644 --- a/spec/fixtures/vcr_cassettes/models_refresh_works_as_a_class_method_too.yml +++ b/spec/fixtures/vcr_cassettes/models_refresh_works_as_a_class_method_too.yml @@ -1387,4 +1387,47 @@ http_interactions: Large (24.07)","outputModalities":["TEXT"],"providerName":"Mistral AI","responseStreamingSupported":true},{"customizationsSupported":[],"explicitPromptCaching":{"isSupported":false},"guardrailsSupported":false,"inferenceTypesSupported":["ON_DEMAND"],"inputModalities":["TEXT"],"intelligentPromptRouting":{"isSupported":false},"modelArn":"arn:aws:bedrock:::foundation-model/luma.ray-v2:0","modelId":"luma.ray-v2:0","modelLifecycle":{"status":"ACTIVE"},"modelName":"Ray v2","outputModalities":["VIDEO"],"providerName":"Luma AI","responseStreamingSupported":false}]}' recorded_at: Wed, 02 Apr 2025 17:53:40 GMT +- request: + method: get + uri: https://openrouter.ai/api/v1/models + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v2.12.2 + Authorization: + - Bearer obviously-not-a-valid-key + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 09 Apr 2025 10:27:56 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Allow-Origin: + - "*" + Cdn-Cache-Control: + - max-age=300 + Vary: + - Accept-Encoding + Server: + - cloudflare + Cf-Ray: + - "" + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkYXRhIjpbeyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tbmFuby04Yi12MTpmcmVlIiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIE5hbm8gOEIgdjEgKGZyZWUpIiwiY3JlYXRlZCI6MTc0NDEyMzg3MywiZGVzY3JpcHRpb24iOiJMbGFtYS0zLjEtTmVtb3Ryb24tTmFuby04Qi12MSBpcyBhIGNvbXBhY3QgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgKExMTSkgZGVyaXZlZCBmcm9tIE1ldGEncyBMbGFtYS0zLjEtOEItSW5zdHJ1Y3QsIHNwZWNpZmljYWxseSBvcHRpbWl6ZWQgZm9yIHJlYXNvbmluZyB0YXNrcywgY29udmVyc2F0aW9uYWwgaW50ZXJhY3Rpb25zLCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIGFuZCB0b29sLWNhbGxpbmcgYXBwbGljYXRpb25zLiBJdCBiYWxhbmNlcyBhY2N1cmFjeSBhbmQgZWZmaWNpZW5jeSwgZml0dGluZyBjb21mb3J0YWJseSBvbnRvIGEgc2luZ2xlIGNvbnN1bWVyLWdyYWRlIFJUWCBHUFUgZm9yIGxvY2FsIGRlcGxveW1lbnQuIFRoZSBtb2RlbCBzdXBwb3J0cyBleHRlbmRlZCBjb250ZXh0IGxlbmd0aHMgb2YgdXAgdG8gMTI4SyB0b2tlbnMuXG5cbk5vdGU6IHlvdSBtdXN0IGluY2x1ZGUgYGRldGFpbGVkIHRoaW5raW5nIG9uYCBpbiB0aGUgc3lzdGVtIHByb21wdCB0byBlbmFibGUgcmVhc29uaW5nLiBQbGVhc2Ugc2VlIFtVc2FnZSBSZWNvbW1lbmRhdGlvbnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbnZpZGlhL0xsYW1hLTNfMS1OZW1vdHJvbi1VbHRyYS0yNTNCLXYxI3F1aWNrLXN0YXJ0LWFuZC11c2FnZS1yZWNvbW1lbmRhdGlvbnMpIGZvciBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJudmlkaWEvbGxhbWEtMy4zLW5lbW90cm9uLXN1cGVyLTQ5Yi12MTpmcmVlIiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4zIE5lbW90cm9uIFN1cGVyIDQ5QiB2MSAoZnJlZSkiLCJjcmVhdGVkIjoxNzQ0MTE5NDk0LCJkZXNjcmlwdGlvbiI6IkxsYW1hLTMuMy1OZW1vdHJvbi1TdXBlci00OUItdjEgaXMgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCAoTExNKSBvcHRpbWl6ZWQgZm9yIGFkdmFuY2VkIHJlYXNvbmluZywgY29udmVyc2F0aW9uYWwgaW50ZXJhY3Rpb25zLCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIGFuZCB0b29sLWNhbGxpbmcgdGFza3MuIERlcml2ZWQgZnJvbSBNZXRhJ3MgTGxhbWEtMy4zLTcwQi1JbnN0cnVjdCwgaXQgZW1wbG95cyBhIE5ldXJhbCBBcmNoaXRlY3R1cmUgU2VhcmNoIChOQVMpIGFwcHJvYWNoLCBzaWduaWZpY2FudGx5IGVuaGFuY2luZyBlZmZpY2llbmN5IGFuZCByZWR1Y2luZyBtZW1vcnkgcmVxdWlyZW1lbnRzLiBUaGlzIGFsbG93cyB0aGUgbW9kZWwgdG8gc3VwcG9ydCBhIGNvbnRleHQgbGVuZ3RoIG9mIHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBmaXQgZWZmaWNpZW50bHkgb24gc2luZ2xlIGhpZ2gtcGVyZm9ybWFuY2UgR1BVcywgc3VjaCBhcyBOVklESUEgSDIwMC5cblxuTm90ZTogeW91IG11c3QgaW5jbHVkZSBgZGV0YWlsZWQgdGhpbmtpbmcgb25gIGluIHRoZSBzeXN0ZW0gcHJvbXB0IHRvIGVuYWJsZSByZWFzb25pbmcuIFBsZWFzZSBzZWUgW1VzYWdlIFJlY29tbWVuZGF0aW9uc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9udmlkaWEvTGxhbWEtM18xLU5lbW90cm9uLVVsdHJhLTI1M0ItdjEjcXVpY2stc3RhcnQtYW5kLXVzYWdlLXJlY29tbWVuZGF0aW9ucykgZm9yIG1vcmUuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tdWx0cmEtMjUzYi12MTpmcmVlIiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIFVsdHJhIDI1M0IgdjEgKGZyZWUpIiwiY3JlYXRlZCI6MTc0NDExNTA1OSwiZGVzY3JpcHRpb24iOiJMbGFtYS0zLjEtTmVtb3Ryb24tVWx0cmEtMjUzQi12MSBpcyBhIGxhcmdlIGxhbmd1YWdlIG1vZGVsIChMTE0pIG9wdGltaXplZCBmb3IgYWR2YW5jZWQgcmVhc29uaW5nLCBodW1hbi1pbnRlcmFjdGl2ZSBjaGF0LCByZXRyaWV2YWwtYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIGFuZCB0b29sLWNhbGxpbmcgdGFza3MuIERlcml2ZWQgZnJvbSBNZXRh4oCZcyBMbGFtYS0zLjEtNDA1Qi1JbnN0cnVjdCwgaXQgaGFzIGJlZW4gc2lnbmlmaWNhbnRseSBjdXN0b21pemVkIHVzaW5nIE5ldXJhbCBBcmNoaXRlY3R1cmUgU2VhcmNoIChOQVMpLCByZXN1bHRpbmcgaW4gZW5oYW5jZWQgZWZmaWNpZW5jeSwgcmVkdWNlZCBtZW1vcnkgdXNhZ2UsIGFuZCBpbXByb3ZlZCBpbmZlcmVuY2UgbGF0ZW5jeS4gVGhlIG1vZGVsIHN1cHBvcnRzIGEgY29udGV4dCBsZW5ndGggb2YgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIGNhbiBvcGVyYXRlIGVmZmljaWVudGx5IG9uIGFuIDh4IE5WSURJQSBIMTAwIG5vZGUuXG5cbk5vdGU6IHlvdSBtdXN0IGluY2x1ZGUgYGRldGFpbGVkIHRoaW5raW5nIG9uYCBpbiB0aGUgc3lzdGVtIHByb21wdCB0byBlbmFibGUgcmVhc29uaW5nLiBQbGVhc2Ugc2VlIFtVc2FnZSBSZWNvbW1lbmRhdGlvbnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbnZpZGlhL0xsYW1hLTNfMS1OZW1vdHJvbi1VbHRyYS0yNTNCLXYxI3F1aWNrLXN0YXJ0LWFuZC11c2FnZS1yZWNvbW1lbmRhdGlvbnMpIGZvciBtb3JlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidG9reW90ZWNoLWxsbS9sbGFtYS0zLjEtc3dhbGxvdy04Yi1pbnN0cnVjdC12MC4zIiwibmFtZSI6IlN3YWxsb3c6IExsYW1hIDMuMSBTd2FsbG93IDhCIEluc3RydWN0IFYwLjMiLCJjcmVhdGVkIjoxNzQzOTg2NzQyLCJkZXNjcmlwdGlvbiI6IkxsYW1hIDMuMSBTd2FsbG93IDhCIGlzIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdGhhdCB3YXMgYnVpbHQgYnkgY29udGludWFsIHByZS10cmFpbmluZyBvbiB0aGUgTWV0YSBMbGFtYSAzLjEgOEIuIExsYW1hIDMuMSBTd2FsbG93IGVuaGFuY2VkIHRoZSBKYXBhbmVzZSBsYW5ndWFnZSBjYXBhYmlsaXRpZXMgb2YgdGhlIG9yaWdpbmFsIExsYW1hIDMuMSB3aGlsZSByZXRhaW5pbmcgdGhlIEVuZ2xpc2ggbGFuZ3VhZ2UgY2FwYWJpbGl0aWVzLiBcblN3YWxsb3cgdXNlZCBhcHByb3hpbWF0ZWx5IDIwMCBiaWxsaW9uIHRva2VucyB0aGF0IHdlcmUgc2FtcGxlZCBmcm9tIGEgbGFyZ2UgSmFwYW5lc2Ugd2ViIGNvcnB1cyAoU3dhbGxvdyBDb3JwdXMgVmVyc2lvbiAyKSwgSmFwYW5lc2UgYW5kIEVuZ2xpc2ggV2lraXBlZGlhIGFydGljbGVzLCBhbmQgbWF0aGVtYXRpY2FsIGFuZCBjb2RpbmcgY29udGVudHMsIGV0YyAoc2VlIHRoZSBUcmFpbmluZyBEYXRhc2V0cyBzZWN0aW9uIG9mIHRoZSBiYXNlIG1vZGVsKSBmb3IgY29udGludWFsIHByZS10cmFpbmluZy4gVGhlIGluc3RydWN0aW9uLXR1bmVkIG1vZGVscyAoSW5zdHJ1Y3QpIHdlcmUgYnVpbHQgYnkgc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyAoU0ZUKSBvbiB0aGUgc3ludGhldGljIGRhdGEgc3BlY2lhbGx5IGJ1aWx0IGZvciBKYXBhbmVzZS5cbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTQtbWF2ZXJpY2s6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IE1hdmVyaWNrIChmcmVlKSIsImNyZWF0ZWQiOjE3NDM4ODE4MjIsImRlc2NyaXB0aW9uIjoiTGxhbWEgNCBNYXZlcmljayAxN0IgSW5zdHJ1Y3QgKDEyOEUpIGlzIGEgaGlnaC1jYXBhY2l0eSBtdWx0aW1vZGFsIGxhbmd1YWdlIG1vZGVsIGZyb20gTWV0YSwgYnVpbHQgb24gYSBtaXh0dXJlLW9mLWV4cGVydHMgKE1vRSkgYXJjaGl0ZWN0dXJlIHdpdGggMTI4IGV4cGVydHMgYW5kIDE3IGJpbGxpb24gYWN0aXZlIHBhcmFtZXRlcnMgcGVyIGZvcndhcmQgcGFzcyAoNDAwQiB0b3RhbCkuIEl0IHN1cHBvcnRzIG11bHRpbGluZ3VhbCB0ZXh0IGFuZCBpbWFnZSBpbnB1dCwgYW5kIHByb2R1Y2VzIG11bHRpbGluZ3VhbCB0ZXh0IGFuZCBjb2RlIG91dHB1dCBhY3Jvc3MgMTIgc3VwcG9ydGVkIGxhbmd1YWdlcy4gT3B0aW1pemVkIGZvciB2aXNpb24tbGFuZ3VhZ2UgdGFza3MsIE1hdmVyaWNrIGlzIGluc3RydWN0aW9uLXR1bmVkIGZvciBhc3Npc3RhbnQtbGlrZSBiZWhhdmlvciwgaW1hZ2UgcmVhc29uaW5nLCBhbmQgZ2VuZXJhbC1wdXJwb3NlIG11bHRpbW9kYWwgaW50ZXJhY3Rpb24uXG5cbk1hdmVyaWNrIGZlYXR1cmVzIGVhcmx5IGZ1c2lvbiBmb3IgbmF0aXZlIG11bHRpbW9kYWxpdHkgYW5kIGEgMSBtaWxsaW9uIHRva2VuIGNvbnRleHQgd2luZG93LiBJdCB3YXMgdHJhaW5lZCBvbiBhIGN1cmF0ZWQgbWl4dHVyZSBvZiBwdWJsaWMsIGxpY2Vuc2VkLCBhbmQgTWV0YS1wbGF0Zm9ybSBkYXRhLCBjb3ZlcmluZyB+MjIgdHJpbGxpb24gdG9rZW5zLCB3aXRoIGEga25vd2xlZGdlIGN1dG9mZiBpbiBBdWd1c3QgMjAyNC4gUmVsZWFzZWQgb24gQXByaWwgNSwgMjAyNSB1bmRlciB0aGUgTGxhbWEgNCBDb21tdW5pdHkgTGljZW5zZSwgTWF2ZXJpY2sgaXMgc3VpdGVkIGZvciByZXNlYXJjaCBhbmQgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMgcmVxdWlyaW5nIGFkdmFuY2VkIG11bHRpbW9kYWwgdW5kZXJzdGFuZGluZyBhbmQgaGlnaCBtb2RlbCB0aHJvdWdocHV0LiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtNC1tYXZlcmljayIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IE1hdmVyaWNrIiwiY3JlYXRlZCI6MTc0Mzg4MTgyMiwiZGVzY3JpcHRpb24iOiJMbGFtYSA0IE1hdmVyaWNrIDE3QiBJbnN0cnVjdCAoMTI4RSkgaXMgYSBoaWdoLWNhcGFjaXR5IG11bHRpbW9kYWwgbGFuZ3VhZ2UgbW9kZWwgZnJvbSBNZXRhLCBidWlsdCBvbiBhIG1peHR1cmUtb2YtZXhwZXJ0cyAoTW9FKSBhcmNoaXRlY3R1cmUgd2l0aCAxMjggZXhwZXJ0cyBhbmQgMTcgYmlsbGlvbiBhY3RpdmUgcGFyYW1ldGVycyBwZXIgZm9yd2FyZCBwYXNzICg0MDBCIHRvdGFsKS4gSXQgc3VwcG9ydHMgbXVsdGlsaW5ndWFsIHRleHQgYW5kIGltYWdlIGlucHV0LCBhbmQgcHJvZHVjZXMgbXVsdGlsaW5ndWFsIHRleHQgYW5kIGNvZGUgb3V0cHV0IGFjcm9zcyAxMiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLiBPcHRpbWl6ZWQgZm9yIHZpc2lvbi1sYW5ndWFnZSB0YXNrcywgTWF2ZXJpY2sgaXMgaW5zdHJ1Y3Rpb24tdHVuZWQgZm9yIGFzc2lzdGFudC1saWtlIGJlaGF2aW9yLCBpbWFnZSByZWFzb25pbmcsIGFuZCBnZW5lcmFsLXB1cnBvc2UgbXVsdGltb2RhbCBpbnRlcmFjdGlvbi5cblxuTWF2ZXJpY2sgZmVhdHVyZXMgZWFybHkgZnVzaW9uIGZvciBuYXRpdmUgbXVsdGltb2RhbGl0eSBhbmQgYSAxIG1pbGxpb24gdG9rZW4gY29udGV4dCB3aW5kb3cuIEl0IHdhcyB0cmFpbmVkIG9uIGEgY3VyYXRlZCBtaXh0dXJlIG9mIHB1YmxpYywgbGljZW5zZWQsIGFuZCBNZXRhLXBsYXRmb3JtIGRhdGEsIGNvdmVyaW5nIH4yMiB0cmlsbGlvbiB0b2tlbnMsIHdpdGggYSBrbm93bGVkZ2UgY3V0b2ZmIGluIEF1Z3VzdCAyMDI0LiBSZWxlYXNlZCBvbiBBcHJpbCA1LCAyMDI1IHVuZGVyIHRoZSBMbGFtYSA0IENvbW11bml0eSBMaWNlbnNlLCBNYXZlcmljayBpcyBzdWl0ZWQgZm9yIHJlc2VhcmNoIGFuZCBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYWR2YW5jZWQgbXVsdGltb2RhbCB1bmRlcnN0YW5kaW5nIGFuZCBoaWdoIG1vZGVsIHRocm91Z2hwdXQuIiwiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNzAxODIiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwNDg1NzYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTQtc2NvdXQ6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IFNjb3V0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDM4ODE1MTksImRlc2NyaXB0aW9uIjoiTGxhbWEgNCBTY291dCAxN0IgSW5zdHJ1Y3QgKDE2RSkgaXMgYSBtaXh0dXJlLW9mLWV4cGVydHMgKE1vRSkgbGFuZ3VhZ2UgbW9kZWwgZGV2ZWxvcGVkIGJ5IE1ldGEsIGFjdGl2YXRpbmcgMTcgYmlsbGlvbiBwYXJhbWV0ZXJzIG91dCBvZiBhIHRvdGFsIG9mIDEwOUIuIEl0IHN1cHBvcnRzIG5hdGl2ZSBtdWx0aW1vZGFsIGlucHV0ICh0ZXh0IGFuZCBpbWFnZSkgYW5kIG11bHRpbGluZ3VhbCBvdXRwdXQgKHRleHQgYW5kIGNvZGUpIGFjcm9zcyAxMiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLiBEZXNpZ25lZCBmb3IgYXNzaXN0YW50LXN0eWxlIGludGVyYWN0aW9uIGFuZCB2aXN1YWwgcmVhc29uaW5nLCBTY291dCB1c2VzIDE2IGV4cGVydHMgcGVyIGZvcndhcmQgcGFzcyBhbmQgZmVhdHVyZXMgYSBjb250ZXh0IGxlbmd0aCBvZiAxMCBtaWxsaW9uIHRva2Vucywgd2l0aCBhIHRyYWluaW5nIGNvcnB1cyBvZiB+NDAgdHJpbGxpb24gdG9rZW5zLlxuXG5CdWlsdCBmb3IgaGlnaCBlZmZpY2llbmN5IGFuZCBsb2NhbCBvciBjb21tZXJjaWFsIGRlcGxveW1lbnQsIExsYW1hIDQgU2NvdXQgaW5jb3Jwb3JhdGVzIGVhcmx5IGZ1c2lvbiBmb3Igc2VhbWxlc3MgbW9kYWxpdHkgaW50ZWdyYXRpb24uIEl0IGlzIGluc3RydWN0aW9uLXR1bmVkIGZvciB1c2UgaW4gbXVsdGlsaW5ndWFsIGNoYXQsIGNhcHRpb25pbmcsIGFuZCBpbWFnZSB1bmRlcnN0YW5kaW5nIHRhc2tzLiBSZWxlYXNlZCB1bmRlciB0aGUgTGxhbWEgNCBDb21tdW5pdHkgTGljZW5zZSwgaXQgd2FzIGxhc3QgdHJhaW5lZCBvbiBkYXRhIHVwIHRvIEF1Z3VzdCAyMDI0IGFuZCBsYXVuY2hlZCBwdWJsaWNseSBvbiBBcHJpbCA1LCAyMDI1LiIsImNvbnRleHRfbGVuZ3RoIjo1MTIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo1MTIwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtNC1zY291dCIsIm5hbWUiOiJNZXRhOiBMbGFtYSA0IFNjb3V0IiwiY3JlYXRlZCI6MTc0Mzg4MTUxOSwiZGVzY3JpcHRpb24iOiJMbGFtYSA0IFNjb3V0IDE3QiBJbnN0cnVjdCAoMTZFKSBpcyBhIG1peHR1cmUtb2YtZXhwZXJ0cyAoTW9FKSBsYW5ndWFnZSBtb2RlbCBkZXZlbG9wZWQgYnkgTWV0YSwgYWN0aXZhdGluZyAxNyBiaWxsaW9uIHBhcmFtZXRlcnMgb3V0IG9mIGEgdG90YWwgb2YgMTA5Qi4gSXQgc3VwcG9ydHMgbmF0aXZlIG11bHRpbW9kYWwgaW5wdXQgKHRleHQgYW5kIGltYWdlKSBhbmQgbXVsdGlsaW5ndWFsIG91dHB1dCAodGV4dCBhbmQgY29kZSkgYWNyb3NzIDEyIHN1cHBvcnRlZCBsYW5ndWFnZXMuIERlc2lnbmVkIGZvciBhc3Npc3RhbnQtc3R5bGUgaW50ZXJhY3Rpb24gYW5kIHZpc3VhbCByZWFzb25pbmcsIFNjb3V0IHVzZXMgMTYgZXhwZXJ0cyBwZXIgZm9yd2FyZCBwYXNzIGFuZCBmZWF0dXJlcyBhIGNvbnRleHQgbGVuZ3RoIG9mIDEwIG1pbGxpb24gdG9rZW5zLCB3aXRoIGEgdHJhaW5pbmcgY29ycHVzIG9mIH40MCB0cmlsbGlvbiB0b2tlbnMuXG5cbkJ1aWx0IGZvciBoaWdoIGVmZmljaWVuY3kgYW5kIGxvY2FsIG9yIGNvbW1lcmNpYWwgZGVwbG95bWVudCwgTGxhbWEgNCBTY291dCBpbmNvcnBvcmF0ZXMgZWFybHkgZnVzaW9uIGZvciBzZWFtbGVzcyBtb2RhbGl0eSBpbnRlZ3JhdGlvbi4gSXQgaXMgaW5zdHJ1Y3Rpb24tdHVuZWQgZm9yIHVzZSBpbiBtdWx0aWxpbmd1YWwgY2hhdCwgY2FwdGlvbmluZywgYW5kIGltYWdlIHVuZGVyc3RhbmRpbmcgdGFza3MuIFJlbGVhc2VkIHVuZGVyIHRoZSBMbGFtYSA0IENvbW11bml0eSBMaWNlbnNlLCBpdCB3YXMgbGFzdCB0cmFpbmVkIG9uIGRhdGEgdXAgdG8gQXVndXN0IDIwMjQgYW5kIGxhdW5jaGVkIHB1YmxpY2x5IG9uIEFwcmlsIDUsIDIwMjUuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA1MDEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTA3MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktMi41LXByby1wcmV2aWV3LTAzLTI1IiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuNSBQcm8gUHJldmlldyIsImNyZWF0ZWQiOjE3NDM3ODA0OTMsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuNSBQcm8gaXMgR29vZ2xl4oCZcyBzdGF0ZS1vZi10aGUtYXJ0IEFJIG1vZGVsIGRlc2lnbmVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbnRpZmljIHRhc2tzLiBJdCBlbXBsb3lzIOKAnHRoaW5raW5n4oCdIGNhcGFiaWxpdGllcywgZW5hYmxpbmcgaXQgdG8gcmVhc29uIHRocm91Z2ggcmVzcG9uc2VzIHdpdGggZW5oYW5jZWQgYWNjdXJhY3kgYW5kIG51YW5jZWQgY29udGV4dCBoYW5kbGluZy4gR2VtaW5pIDIuNSBQcm8gYWNoaWV2ZXMgdG9wLXRpZXIgcGVyZm9ybWFuY2Ugb24gbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nIGZpcnN0LXBsYWNlIHBvc2l0aW9uaW5nIG9uIHRoZSBMTUFyZW5hIGxlYWRlcmJvYXJkLCByZWZsZWN0aW5nIHN1cGVyaW9yIGh1bWFuLXByZWZlcmVuY2UgYWxpZ25tZW50IGFuZCBjb21wbGV4IHByb2JsZW0tc29sdmluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjU1MzUsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVucm91dGVyL3F1YXNhci1hbHBoYSIsIm5hbWUiOiJRdWFzYXIgQWxwaGEiLCJjcmVhdGVkIjoxNzQzNjI2ODA5LCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSBjbG9ha2VkIG1vZGVsIHByb3ZpZGVkIHRvIHRoZSBjb21tdW5pdHkgdG8gZ2F0aGVyIGZlZWRiYWNrLiBJdOKAmXMgYSBwb3dlcmZ1bCwgYWxsLXB1cnBvc2UgbW9kZWwgc3VwcG9ydGluZyBsb25nLWNvbnRleHQgdGFza3MsIGluY2x1ZGluZyBjb2RlIGdlbmVyYXRpb24uIEFsbCBwcm9tcHRzIGFuZCBjb21wbGV0aW9ucyBmb3IgdGhpcyBtb2RlbCBhcmUgbG9nZ2VkIGJ5IHRoZSBwcm92aWRlciBhcyB3ZWxsIGFzIE9wZW5Sb3V0ZXIuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbImltYWdlIiwidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbGwtaGFuZHMvb3BlbmhhbmRzLWxtLTMyYi12MC4xIiwibmFtZSI6Ik9wZW5IYW5kcyBMTSAzMkIgVjAuMSIsImNyZWF0ZWQiOjE3NDM2MTMwMTMsImRlc2NyaXB0aW9uIjoiT3BlbkhhbmRzIExNIHYwLjEgaXMgYSAzMkIgb3Blbi1zb3VyY2UgY29kaW5nIG1vZGVsIGZpbmUtdHVuZWQgZnJvbSBRd2VuMi41LUNvZGVyLTMyQi1JbnN0cnVjdCB1c2luZyByZWluZm9yY2VtZW50IGxlYXJuaW5nIHRlY2huaXF1ZXMgb3V0bGluZWQgaW4gU1dFLUd5bS4gSXQgaXMgb3B0aW1pemVkIGZvciBhdXRvbm9tb3VzIHNvZnR3YXJlIGRldmVsb3BtZW50IGFnZW50cyBhbmQgYWNoaWV2ZXMgc3Ryb25nIHBlcmZvcm1hbmNlIG9uIFNXRS1CZW5jaCBWZXJpZmllZCwgd2l0aCBhIDM3LjIlIHJlc29sdmUgcmF0ZS4gVGhlIG1vZGVsIHN1cHBvcnRzIGEgMTI4SyB0b2tlbiBjb250ZXh0IHdpbmRvdywgbWFraW5nIGl0IHdlbGwtc3VpdGVkIGZvciBsb25nLWhvcml6b24gY29kZSByZWFzb25pbmcgYW5kIGxhcmdlIGNvZGViYXNlIHRhc2tzLlxuXG5PcGVuSGFuZHMgTE0gaXMgZGVzaWduZWQgZm9yIGxvY2FsIGRlcGxveW1lbnQgYW5kIHJ1bnMgb24gY29uc3VtZXItZ3JhZGUgR1BVcyBzdWNoIGFzIGEgc2luZ2xlIDMwOTAuIEl0IGVuYWJsZXMgZnVsbHkgb2ZmbGluZSBhZ2VudCB3b3JrZmxvd3Mgd2l0aG91dCBkZXBlbmRlbmN5IG9uIHByb3ByaWV0YXJ5IEFQSXMuIFRoaXMgcmVsZWFzZSBpcyBpbnRlbmRlZCBhcyBhIHJlc2VhcmNoIHByZXZpZXcsIGFuZCBmdXR1cmUgdXBkYXRlcyBhaW0gdG8gaW1wcm92ZSBnZW5lcmFsaXphYmlsaXR5LCByZWR1Y2UgcmVwZXRpdGlvbiwgYW5kIG9mZmVyIHNtYWxsZXIgdmFyaWFudHMuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDM0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbC9taW5pc3RyYWwtOGIiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDhCIiwiY3JlYXRlZCI6MTc0MzQzMDAyMSwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgOEIgaXMgYSBzdGF0ZS1vZi10aGUtYXJ0IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3Igb24tZGV2aWNlIGFuZCBlZGdlIGNvbXB1dGluZy4gRGVzaWduZWQgZm9yIGVmZmljaWVuY3kgaW4ga25vd2xlZGdlLWludGVuc2l2ZSB0YXNrcywgY29tbW9uc2Vuc2UgcmVhc29uaW5nLCBhbmQgZnVuY3Rpb24tY2FsbGluZywgaXQgZmVhdHVyZXMgYSBzcGVjaWFsaXplZCBpbnRlcmxlYXZlZCBzbGlkaW5nLXdpbmRvdyBhdHRlbnRpb24gbWVjaGFuaXNtLCBlbmFibGluZyBmYXN0ZXIgYW5kIG1vcmUgbWVtb3J5LWVmZmljaWVudCBpbmZlcmVuY2UuIE1pbmlzdHJhbCA4QiBleGNlbHMgaW4gbG9jYWwsIGxvdy1sYXRlbmN5IGFwcGxpY2F0aW9ucyBzdWNoIGFzIG9mZmxpbmUgdHJhbnNsYXRpb24sIHNtYXJ0IGFzc2lzdGFudHMsIGF1dG9ub21vdXMgcm9ib3RpY3MsIGFuZCBsb2NhbCBhbmFseXRpY3MuXG5cblRoZSBtb2RlbCBzdXBwb3J0cyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoIGFuZCBjYW4gZnVuY3Rpb24gYXMgYSBwZXJmb3JtYW50IGludGVybWVkaWFyeSBpbiBtdWx0aS1zdGVwIGFnZW50aWMgd29ya2Zsb3dzLCBlZmZpY2llbnRseSBoYW5kbGluZyB0YXNrcyBsaWtlIGlucHV0IHBhcnNpbmcsIEFQSSBjYWxscywgYW5kIHRhc2sgcm91dGluZy4gSXQgY29uc2lzdGVudGx5IG91dHBlcmZvcm1zIGNvbXBhcmFibGUgbW9kZWxzIGxpa2UgTWlzdHJhbCA3QiBhY3Jvc3MgYmVuY2htYXJrcywgbWFraW5nIGl0IHBhcnRpY3VsYXJseSBzdWl0YWJsZSBmb3IgY29tcHV0ZS1lZmZpY2llbnQsIHByaXZhY3ktZm9jdXNlZCBzY2VuYXJpb3MuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXYzLWJhc2U6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogRGVlcFNlZWsgVjMgQmFzZSAoZnJlZSkiLCJjcmVhdGVkIjoxNzQzMjcyMDIzLCJkZXNjcmlwdGlvbiI6Ik5vdGUgdGhhdCB0aGlzIGlzIGEgYmFzZSBtb2RlbCBtb3N0bHkgbWVhbnQgZm9yIHRlc3RpbmcsIHlvdSBuZWVkIHRvIHByb3ZpZGUgZGV0YWlsZWQgcHJvbXB0cyBmb3IgdGhlIG1vZGVsIHRvIHJldHVybiB1c2VmdWwgcmVzcG9uc2VzLiBcblxuRGVlcFNlZWstVjMgQmFzZSBpcyBhIDY3MUIgcGFyYW1ldGVyIG9wZW4gTWl4dHVyZS1vZi1FeHBlcnRzIChNb0UpIGxhbmd1YWdlIG1vZGVsIHdpdGggMzdCIGFjdGl2ZSBwYXJhbWV0ZXJzIHBlciBmb3J3YXJkIHBhc3MgYW5kIGEgY29udGV4dCBsZW5ndGggb2YgMTI4SyB0b2tlbnMuIFRyYWluZWQgb24gMTQuOFQgdG9rZW5zIHVzaW5nIEZQOCBtaXhlZCBwcmVjaXNpb24sIGl0IGFjaGlldmVzIGhpZ2ggdHJhaW5pbmcgZWZmaWNpZW5jeSBhbmQgc3RhYmlsaXR5LCB3aXRoIHN0cm9uZyBwZXJmb3JtYW5jZSBhY3Jvc3MgbGFuZ3VhZ2UsIHJlYXNvbmluZywgbWF0aCwgYW5kIGNvZGluZyB0YXNrcy4gXG5cbkRlZXBTZWVrLVYzIEJhc2UgaXMgdGhlIHByZS10cmFpbmVkIG1vZGVsIGJlaGluZCBbRGVlcFNlZWsgVjNdKC9kZWVwc2Vlay9kZWVwc2Vlay1jaGF0LXYzKSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzY2IxMHgvbGxhbWEzLjEtdHlwaG9vbjItOGItaW5zdHJ1Y3QiLCJuYW1lIjoiVHlwaG9vbjIgOEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzQzMTk2NTExLCJkZXNjcmlwdGlvbiI6IkxsYW1hMy4xLVR5cGhvb24yLThCLUluc3RydWN0IGlzIGEgVGhhaS1FbmdsaXNoIGluc3RydWN0aW9uLXR1bmVkIG1vZGVsIHdpdGggOCBiaWxsaW9uIHBhcmFtZXRlcnMsIGJ1aWx0IG9uIExsYW1hIDMuMS4gSXQgc2lnbmlmaWNhbnRseSBpbXByb3ZlcyBvdmVyIGl0cyBiYXNlIG1vZGVsIGluIFRoYWkgcmVhc29uaW5nLCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGFuZCBmdW5jdGlvbi1jYWxsaW5nIHRhc2tzLCB3aGlsZSBtYWludGFpbmluZyBjb21wZXRpdGl2ZSBFbmdsaXNoIHBlcmZvcm1hbmNlLiBUaGUgbW9kZWwgaXMgb3B0aW1pemVkIGZvciBiaWxpbmd1YWwgaW50ZXJhY3Rpb24gYW5kIHBlcmZvcm1zIHdlbGwgb24gVGhhaS1FbmdsaXNoIGNvZGUtc3dpdGNoaW5nLCBNVC1CZW5jaCwgSUZFdmFsLCBhbmQgdG9vbC11c2UgYmVuY2htYXJrcy5cblxuRGVzcGl0ZSBpdHMgc21hbGxlciBzaXplLCBpdCBkZW1vbnN0cmF0ZXMgc3Ryb25nIGdlbmVyYWxpemF0aW9uIGFjcm9zcyBtYXRoLCBjb2RpbmcsIGFuZCBtdWx0aWxpbmd1YWwgYmVuY2htYXJrcywgb3V0cGVyZm9ybWluZyBjb21wYXJhYmxlIDhCIG1vZGVscyBhY3Jvc3MgbW9zdCBUaGFpLXNwZWNpZmljIHRhc2tzLiBGdWxsIGJlbmNobWFyayByZXN1bHRzIGFuZCBtZXRob2RvbG9neSBhcmUgYXZhaWxhYmxlIGluIHRoZSBbdGVjaG5pY2FsIHJlcG9ydC5dKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yNDEyLjEzNzAyKSIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2NiMTB4L2xsYW1hMy4xLXR5cGhvb24yLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJUeXBob29uMiA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzQzMTk2MTcwLCJkZXNjcmlwdGlvbiI6IkxsYW1hMy4xLVR5cGhvb24yLTcwQi1JbnN0cnVjdCBpcyBhIFRoYWktRW5nbGlzaCBpbnN0cnVjdGlvbi10dW5lZCBsYW5ndWFnZSBtb2RlbCB3aXRoIDcwIGJpbGxpb24gcGFyYW1ldGVycywgYnVpbHQgb24gTGxhbWEgMy4xLiBJdCBkZW1vbnN0cmF0ZXMgc3Ryb25nIHBlcmZvcm1hbmNlIGFjcm9zcyBnZW5lcmFsIGluc3RydWN0aW9uLWZvbGxvd2luZywgbWF0aCwgY29kaW5nLCBhbmQgdG9vbC11c2UgdGFza3MsIHdpdGggc3RhdGUtb2YtdGhlLWFydCByZXN1bHRzIGluIFRoYWktc3BlY2lmaWMgYmVuY2htYXJrcyBzdWNoIGFzIElGRXZhbCwgTVQtQmVuY2gsIGFuZCBUaGFpLUVuZ2xpc2ggY29kZS1zd2l0Y2hpbmcuXG5cblRoZSBtb2RlbCBleGNlbHMgaW4gYmlsaW5ndWFsIHJlYXNvbmluZyBhbmQgZnVuY3Rpb24tY2FsbGluZyBzY2VuYXJpb3MsIG9mZmVyaW5nIGhpZ2ggYWNjdXJhY3kgYWNyb3NzIGRpdmVyc2UgZG9tYWlucy4gQ29tcGFyYXRpdmUgZXZhbHVhdGlvbnMgc2hvdyBjb25zaXN0ZW50IGltcHJvdmVtZW50cyBvdmVyIHByaW9yIFRoYWkgTExNcyBhbmQgb3RoZXIgTGxhbWEtYmFzZWQgYmFzZWxpbmVzLiBGdWxsIHJlc3VsdHMgYW5kIG1ldGhvZG9sb2d5IGFyZSBhdmFpbGFibGUgaW4gdGhlIFt0ZWNobmljYWwgcmVwb3J0Ll0oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzI0MTIuMTM3MDIpIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4OCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbGxlbmFpL21vbG1vLTdiLWQ6ZnJlZSIsIm5hbWUiOiJBbGxlbkFJOiBNb2xtbyA3QiBEIChmcmVlKSIsImNyZWF0ZWQiOjE3NDMwMjMyNDcsImRlc2NyaXB0aW9uIjoiTW9sbW8gaXMgYSBmYW1pbHkgb2Ygb3BlbiB2aXNpb24tbGFuZ3VhZ2UgbW9kZWxzIGRldmVsb3BlZCBieSB0aGUgQWxsZW4gSW5zdGl0dXRlIGZvciBBSS4gTW9sbW8gbW9kZWxzIGFyZSB0cmFpbmVkIG9uIFBpeE1vLCBhIGRhdGFzZXQgb2YgMSBtaWxsaW9uLCBoaWdobHktY3VyYXRlZCBpbWFnZS10ZXh0IHBhaXJzLiBJdCBoYXMgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBhbW9uZyBtdWx0aW1vZGFsIG1vZGVscyB3aXRoIGEgc2ltaWxhciBzaXplIHdoaWxlIGJlaW5nIGZ1bGx5IG9wZW4tc291cmNlLiBZb3UgY2FuIGZpbmQgYWxsIG1vZGVscyBpbiB0aGUgTW9sbW8gZmFtaWx5IFtoZXJlXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NvbGxlY3Rpb25zL2FsbGVuYWkvbW9sbW8tNjZmMzc5ZTZmZTNiOGVmMDkwYThjYTE5KS4gTGVhcm4gbW9yZSBhYm91dCB0aGUgTW9sbW8gZmFtaWx5IFtpbiB0aGUgYW5ub3VuY2VtZW50IGJsb2cgcG9zdF0oaHR0cHM6Ly9tb2xtby5hbGxlbmFpLm9yZy9ibG9nKSBvciB0aGUgW3BhcGVyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL3BhcGVycy8yNDA5LjE3MTQ2KS5cblxuTW9sbW8gN0ItRCBpcyBiYXNlZCBvbiBbUXdlbjItN0JdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMi03QikgYW5kIHVzZXMgW09wZW5BSSBDTElQXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL29wZW5haS9jbGlwLXZpdC1sYXJnZS1wYXRjaDE0LTMzNikgYXMgdmlzaW9uIGJhY2tib25lLiBJdCBwZXJmb3JtcyBjb21mb3J0YWJseSBiZXR3ZWVuIEdQVC00ViBhbmQgR1BULTRvIG9uIGJvdGggYWNhZGVtaWMgYmVuY2htYXJrcyBhbmQgaHVtYW4gZXZhbHVhdGlvbi5cblxuVGhpcyBjaGVja3BvaW50IGlzIGEgcHJldmlldyBvZiB0aGUgTW9sbW8gcmVsZWFzZS4gQWxsIGFydGlmYWN0cyB1c2VkIGluIGNyZWF0aW5nIE1vbG1vIChQaXhNbyBkYXRhc2V0LCB0cmFpbmluZyBjb2RlLCBldmFsdWF0aW9ucywgaW50ZXJtZWRpYXRlIGNoZWNrcG9pbnRzKSB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlIGF0IGEgbGF0ZXIgZGF0ZSwgZnVydGhlcmluZyBvdXIgY29tbWl0bWVudCB0byBvcGVuLXNvdXJjZSBBSSBkZXZlbG9wbWVudCBhbmQgcmVwcm9kdWNpYmlsaXR5LiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYnl0ZWRhbmNlLXJlc2VhcmNoL3VpLXRhcnMtNzJiOmZyZWUiLCJuYW1lIjoiQnl0ZWRhbmNlOiBVSS1UQVJTIDcyQiAgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MzAyMDA2NSwiZGVzY3JpcHRpb24iOiJVSS1UQVJTIDcyQiBpcyBhbiBvcGVuLXNvdXJjZSBtdWx0aW1vZGFsIEFJIG1vZGVsIGRlc2lnbmVkIHNwZWNpZmljYWxseSBmb3IgYXV0b21hdGluZyBicm93c2VyIGFuZCBkZXNrdG9wIHRhc2tzIHRocm91Z2ggdmlzdWFsIGludGVyYWN0aW9uIGFuZCBjb250cm9sLiBUaGUgbW9kZWwgaXMgYnVpbHQgd2l0aCBhIHNwZWNpYWxpemVkIHZpc2lvbiBhcmNoaXRlY3R1cmUgZW5hYmxpbmcgYWNjdXJhdGUgaW50ZXJwcmV0YXRpb24gYW5kIG1hbmlwdWxhdGlvbiBvZiBvbi1zY3JlZW4gdmlzdWFsIGRhdGEuIEl0IHN1cHBvcnRzIGF1dG9tYXRpb24gdGFza3Mgd2l0aGluIHdlYiBicm93c2VycyBhcyB3ZWxsIGFzIGRlc2t0b3AgYXBwbGljYXRpb25zLCBpbmNsdWRpbmcgTWljcm9zb2Z0IE9mZmljZSBhbmQgVlMgQ29kZS5cblxuQ29yZSBjYXBhYmlsaXRpZXMgaW5jbHVkZSBpbnRlbGxpZ2VudCBzY3JlZW4gZGV0ZWN0aW9uLCBwcmVkaWN0aXZlIGFjdGlvbiBtb2RlbGluZywgYW5kIGVmZmljaWVudCBoYW5kbGluZyBvZiByZXBldGl0aXZlIGludGVyYWN0aW9ucy4gVUktVEFSUyBlbXBsb3lzIHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgdGFpbG9yZWQgZXhwbGljaXRseSBmb3IgY29tcHV0ZXIgY29udHJvbCBzY2VuYXJpb3MuIEl0IGNhbiBiZSBkZXBsb3llZCBsb2NhbGx5IG9yIGFjY2Vzc2VkIHZpYSBIdWdnaW5nIEZhY2UgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMuIEludGVuZGVkIHVzZSBjYXNlcyBlbmNvbXBhc3Mgd29ya2Zsb3cgYXV0b21hdGlvbiwgdGFzayBzY3JpcHRpbmcsIGFuZCBpbnRlcmFjdGl2ZSBkZXNrdG9wIGNvbnRyb2wgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtdmwtM2ItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDNCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDMwMTQ1NzMsImRlc2NyaXB0aW9uIjoiUXdlbjIuNSBWTCAzQiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBBZ2VudCB0aGF0IGNhbiBvcGVyYXRlIHlvdXIgbW9iaWxlcywgcm9ib3RzLCBldGMuOiB3aXRoIHRoZSBhYmlsaXRpZXMgb2YgY29tcGxleCByZWFzb25pbmcgYW5kIGRlY2lzaW9uIG1ha2luZywgUXdlbjIuNS1WTCBjYW4gYmUgaW50ZWdyYXRlZCB3aXRoIGRldmljZXMgbGlrZSBtb2JpbGUgcGhvbmVzLCByb2JvdHMsIGV0Yy4sIGZvciBhdXRvbWF0aWMgb3BlcmF0aW9uIGJhc2VkIG9uIHZpc3VhbCBlbnZpcm9ubWVudCBhbmQgdGV4dCBpbnN0cnVjdGlvbnMuXG5cbi0gTXVsdGlsaW5ndWFsIFN1cHBvcnQ6IHRvIHNlcnZlIGdsb2JhbCB1c2VycywgYmVzaWRlcyBFbmdsaXNoIGFuZCBDaGluZXNlLCBRd2VuMi41LVZMIG5vdyBzdXBwb3J0cyB0aGUgdW5kZXJzdGFuZGluZyBvZiB0ZXh0cyBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGluc2lkZSBpbWFnZXMsIGluY2x1ZGluZyBtb3N0IEV1cm9wZWFuIGxhbmd1YWdlcywgSmFwYW5lc2UsIEtvcmVhbiwgQXJhYmljLCBWaWV0bmFtZXNlLCBldGMuXG5cbkZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGlzIFtibG9nIHBvc3RdKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLXZsLykgYW5kIFtHaXRIdWIgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL1F3ZW5MTS9Rd2VuMi1WTCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjUtcHJvLWV4cC0wMy0yNTpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuNSBQcm8gRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3NDI5MjIwOTksImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuNSBQcm8gaXMgR29vZ2xl4oCZcyBzdGF0ZS1vZi10aGUtYXJ0IEFJIG1vZGVsIGRlc2lnbmVkIGZvciBhZHZhbmNlZCByZWFzb25pbmcsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbnRpZmljIHRhc2tzLiBJdCBlbXBsb3lzIOKAnHRoaW5raW5n4oCdIGNhcGFiaWxpdGllcywgZW5hYmxpbmcgaXQgdG8gcmVhc29uIHRocm91Z2ggcmVzcG9uc2VzIHdpdGggZW5oYW5jZWQgYWNjdXJhY3kgYW5kIG51YW5jZWQgY29udGV4dCBoYW5kbGluZy4gR2VtaW5pIDIuNSBQcm8gYWNoaWV2ZXMgdG9wLXRpZXIgcGVyZm9ybWFuY2Ugb24gbXVsdGlwbGUgYmVuY2htYXJrcywgaW5jbHVkaW5nIGZpcnN0LXBsYWNlIHBvc2l0aW9uaW5nIG9uIHRoZSBMTUFyZW5hIGxlYWRlcmJvYXJkLCByZWZsZWN0aW5nIHN1cGVyaW9yIGh1bWFuLXByZWZlcmVuY2UgYWxpZ25tZW50IGFuZCBjb21wbGV4IHByb2JsZW0tc29sdmluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NTUzNSwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbjIuNS12bC0zMmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDMyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzQyODM5ODM4LCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtVkwtMzJCIGlzIGEgbXVsdGltb2RhbCB2aXNpb24tbGFuZ3VhZ2UgbW9kZWwgZmluZS10dW5lZCB0aHJvdWdoIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgZm9yIGVuaGFuY2VkIG1hdGhlbWF0aWNhbCByZWFzb25pbmcsIHN0cnVjdHVyZWQgb3V0cHV0cywgYW5kIHZpc3VhbCBwcm9ibGVtLXNvbHZpbmcgY2FwYWJpbGl0aWVzLiBJdCBleGNlbHMgYXQgdmlzdWFsIGFuYWx5c2lzIHRhc2tzLCBpbmNsdWRpbmcgb2JqZWN0IHJlY29nbml0aW9uLCB0ZXh0dWFsIGludGVycHJldGF0aW9uIHdpdGhpbiBpbWFnZXMsIGFuZCBwcmVjaXNlIGV2ZW50IGxvY2FsaXphdGlvbiBpbiBleHRlbmRlZCB2aWRlb3MuIFF3ZW4yLjUtVkwtMzJCIGRlbW9uc3RyYXRlcyBzdGF0ZS1vZi10aGUtYXJ0IHBlcmZvcm1hbmNlIGFjcm9zcyBtdWx0aW1vZGFsIGJlbmNobWFya3Mgc3VjaCBhcyBNTU1VLCBNYXRoVmlzdGEsIGFuZCBWaWRlb01NRSwgd2hpbGUgbWFpbnRhaW5pbmcgc3Ryb25nIHJlYXNvbmluZyBhbmQgY2xhcml0eSBpbiB0ZXh0LWJhc2VkIHRhc2tzIGxpa2UgTU1MVSwgbWF0aGVtYXRpY2FsIHByb2JsZW0tc29sdmluZywgYW5kIGNvZGUgZ2VuZXJhdGlvbi4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuMi41LXZsLTMyYi1pbnN0cnVjdCIsIm5hbWUiOiJRd2VuOiBRd2VuMi41IFZMIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDI4Mzk4MzgsImRlc2NyaXB0aW9uIjoiUXdlbjIuNS1WTC0zMkIgaXMgYSBtdWx0aW1vZGFsIHZpc2lvbi1sYW5ndWFnZSBtb2RlbCBmaW5lLXR1bmVkIHRocm91Z2ggcmVpbmZvcmNlbWVudCBsZWFybmluZyBmb3IgZW5oYW5jZWQgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgc3RydWN0dXJlZCBvdXRwdXRzLCBhbmQgdmlzdWFsIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGV4Y2VscyBhdCB2aXN1YWwgYW5hbHlzaXMgdGFza3MsIGluY2x1ZGluZyBvYmplY3QgcmVjb2duaXRpb24sIHRleHR1YWwgaW50ZXJwcmV0YXRpb24gd2l0aGluIGltYWdlcywgYW5kIHByZWNpc2UgZXZlbnQgbG9jYWxpemF0aW9uIGluIGV4dGVuZGVkIHZpZGVvcy4gUXdlbjIuNS1WTC0zMkIgZGVtb25zdHJhdGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpbW9kYWwgYmVuY2htYXJrcyBzdWNoIGFzIE1NTVUsIE1hdGhWaXN0YSwgYW5kIFZpZGVvTU1FLCB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgcmVhc29uaW5nIGFuZCBjbGFyaXR5IGluIHRleHQtYmFzZWQgdGFza3MgbGlrZSBNTUxVLCBtYXRoZW1hdGljYWwgcHJvYmxlbS1zb2x2aW5nLCBhbmQgY29kZSBnZW5lcmF0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLWNoYXQtdjMtMDMyNDpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBWMyAwMzI0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDI4MjQ3NTUsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgVjMsIGEgNjg1Qi1wYXJhbWV0ZXIsIG1peHR1cmUtb2YtZXhwZXJ0cyBtb2RlbCwgaXMgdGhlIGxhdGVzdCBpdGVyYXRpb24gb2YgdGhlIGZsYWdzaGlwIGNoYXQgbW9kZWwgZmFtaWx5IGZyb20gdGhlIERlZXBTZWVrIHRlYW0uXG5cbkl0IHN1Y2NlZWRzIHRoZSBbRGVlcFNlZWsgVjNdKC9kZWVwc2Vlay9kZWVwc2Vlay1jaGF0LXYzKSBtb2RlbCBhbmQgcGVyZm9ybXMgcmVhbGx5IHdlbGwgb24gYSB2YXJpZXR5IG9mIHRhc2tzLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1jaGF0LXYzLTAzMjQiLCJuYW1lIjoiRGVlcFNlZWs6IERlZXBTZWVrIFYzIDAzMjQiLCJjcmVhdGVkIjoxNzQyODI0NzU1LCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrIFYzLCBhIDY4NUItcGFyYW1ldGVyLCBtaXh0dXJlLW9mLWV4cGVydHMgbW9kZWwsIGlzIHRoZSBsYXRlc3QgaXRlcmF0aW9uIG9mIHRoZSBmbGFnc2hpcCBjaGF0IG1vZGVsIGZhbWlseSBmcm9tIHRoZSBEZWVwU2VlayB0ZWFtLlxuXG5JdCBzdWNjZWVkcyB0aGUgW0RlZXBTZWVrIFYzXSgvZGVlcHNlZWsvZGVlcHNlZWstY2hhdC12MykgbW9kZWwgYW5kIHBlcmZvcm1zIHJlYWxseSB3ZWxsIG9uIGEgdmFyaWV0eSBvZiB0YXNrcy4iLCJjb250ZXh0X2xlbmd0aCI6NjQwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwNyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJmZWF0aGVybGVzcy9xd2Vya3ktNzJiOmZyZWUiLCJuYW1lIjoiUXdlcmt5IDcyQiAoZnJlZSkiLCJjcmVhdGVkIjoxNzQyNDgxNTk3LCJkZXNjcmlwdGlvbiI6IlF3ZXJreS03MkIgaXMgYSBsaW5lYXItYXR0ZW50aW9uIFJXS1YgdmFyaWFudCBvZiB0aGUgUXdlbiAyLjUgNzJCIG1vZGVsLCBvcHRpbWl6ZWQgdG8gc2lnbmlmaWNhbnRseSByZWR1Y2UgY29tcHV0YXRpb25hbCBjb3N0IGF0IHNjYWxlLiBMZXZlcmFnaW5nIGxpbmVhciBhdHRlbnRpb24sIGl0IGFjaGlldmVzIHN1YnN0YW50aWFsIGluZmVyZW5jZSBzcGVlZHVwcyAoPjEwMDB4KSB3aGlsZSByZXRhaW5pbmcgY29tcGV0aXRpdmUgYWNjdXJhY3kgb24gY29tbW9uIGJlbmNobWFya3MgbGlrZSBBUkMsIEhlbGxhU3dhZywgTGFtYmFkYSwgYW5kIE1NTFUuIEl0IGluaGVyaXRzIGtub3dsZWRnZSBhbmQgbGFuZ3VhZ2Ugc3VwcG9ydCBmcm9tIFF3ZW4gMi41LCBzdXBwb3J0aW5nIGFwcHJveGltYXRlbHkgMzAgbGFuZ3VhZ2VzLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGVmZmljaWVudCBpbmZlcmVuY2UgaW4gbGFyZ2UtY29udGV4dCBhcHBsaWNhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvbzEtcHJvIiwibmFtZSI6Ik9wZW5BSTogbzEtcHJvIiwiY3JlYXRlZCI6MTc0MjQyMzIxMSwiZGVzY3JpcHRpb24iOiJUaGUgbzEgc2VyaWVzIG9mIG1vZGVscyBhcmUgdHJhaW5lZCB3aXRoIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgdG8gdGhpbmsgYmVmb3JlIHRoZXkgYW5zd2VyIGFuZCBwZXJmb3JtIGNvbXBsZXggcmVhc29uaW5nLiBUaGUgbzEtcHJvIG1vZGVsIHVzZXMgbW9yZSBjb21wdXRlIHRvIHRoaW5rIGhhcmRlciBhbmQgcHJvdmlkZSBjb25zaXN0ZW50bHkgYmV0dGVyIGFuc3dlcnMuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4yMTY3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDAwMDAsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTMuMS0yNGItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIFNtYWxsIDMuMSAyNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjIzODkzNywiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNtYWxsIDMuMSAyNEIgSW5zdHJ1Y3QgaXMgYW4gdXBncmFkZWQgdmFyaWFudCBvZiBNaXN0cmFsIFNtYWxsIDMgKDI1MDEpLCBmZWF0dXJpbmcgMjQgYmlsbGlvbiBwYXJhbWV0ZXJzIHdpdGggYWR2YW5jZWQgbXVsdGltb2RhbCBjYXBhYmlsaXRpZXMuIEl0IHByb3ZpZGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgaW4gdGV4dC1iYXNlZCByZWFzb25pbmcgYW5kIHZpc2lvbiB0YXNrcywgaW5jbHVkaW5nIGltYWdlIGFuYWx5c2lzLCBwcm9ncmFtbWluZywgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgYW5kIG11bHRpbGluZ3VhbCBzdXBwb3J0IGFjcm9zcyBkb3plbnMgb2YgbGFuZ3VhZ2VzLiBFcXVpcHBlZCB3aXRoIGFuIGV4dGVuc2l2ZSAxMjhrIHRva2VuIGNvbnRleHQgd2luZG93IGFuZCBvcHRpbWl6ZWQgZm9yIGVmZmljaWVudCBsb2NhbCBpbmZlcmVuY2UsIGl0IHN1cHBvcnRzIHVzZSBjYXNlcyBzdWNoIGFzIGNvbnZlcnNhdGlvbmFsIGFnZW50cywgZnVuY3Rpb24gY2FsbGluZywgbG9uZy1kb2N1bWVudCBjb21wcmVoZW5zaW9uLCBhbmQgcHJpdmFjeS1zZW5zaXRpdmUgZGVwbG95bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjk2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo5NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo5NjAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsLTMuMS0yNGItaW5zdHJ1Y3QiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCBTbWFsbCAzLjEgMjRCIiwiY3JlYXRlZCI6MTc0MjIzODkzNywiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNtYWxsIDMuMSAyNEIgSW5zdHJ1Y3QgaXMgYW4gdXBncmFkZWQgdmFyaWFudCBvZiBNaXN0cmFsIFNtYWxsIDMgKDI1MDEpLCBmZWF0dXJpbmcgMjQgYmlsbGlvbiBwYXJhbWV0ZXJzIHdpdGggYWR2YW5jZWQgbXVsdGltb2RhbCBjYXBhYmlsaXRpZXMuIEl0IHByb3ZpZGVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgaW4gdGV4dC1iYXNlZCByZWFzb25pbmcgYW5kIHZpc2lvbiB0YXNrcywgaW5jbHVkaW5nIGltYWdlIGFuYWx5c2lzLCBwcm9ncmFtbWluZywgbWF0aGVtYXRpY2FsIHJlYXNvbmluZywgYW5kIG11bHRpbGluZ3VhbCBzdXBwb3J0IGFjcm9zcyBkb3plbnMgb2YgbGFuZ3VhZ2VzLiBFcXVpcHBlZCB3aXRoIGFuIGV4dGVuc2l2ZSAxMjhrIHRva2VuIGNvbnRleHQgd2luZG93IGFuZCBvcHRpbWl6ZWQgZm9yIGVmZmljaWVudCBsb2NhbCBpbmZlcmVuY2UsIGl0IHN1cHBvcnRzIHVzZSBjYXNlcyBzdWNoIGFzIGNvbnZlcnNhdGlvbmFsIGFnZW50cywgZnVuY3Rpb24gY2FsbGluZywgbG9uZy1kb2N1bWVudCBjb21wcmVoZW5zaW9uLCBhbmQgcHJpdmFjeS1zZW5zaXRpdmUgZGVwbG95bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDkyNjQiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3Blbi1yMS9vbHltcGljY29kZXItN2I6ZnJlZSIsIm5hbWUiOiJPbHltcGljQ29kZXIgN0IgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjA3ODI2NSwiZGVzY3JpcHRpb24iOiJPbHltcGljQ29kZXItN0IgaXMgYW4gb3Blbi1zb3VyY2UgbGFuZ3VhZ2UgbW9kZWwgZmluZS10dW5lZCBvbiB0aGUgQ29kZUZvcmNlcy1Db1RzIGRhdGFzZXQsIGNvbnNpc3Rpbmcgb2YgbmVhcmx5IDEwMCwwMDAgaGlnaC1xdWFsaXR5IGNoYWluLW9mLXRob3VnaHQgZXhhbXBsZXMgZnJvbSBjb21wZXRpdGl2ZSBwcm9ncmFtbWluZyBjb250ZXh0cy4gT3B0aW1pemVkIHNwZWNpZmljYWxseSBmb3Igb2x5bXBpYWQtbGV2ZWwgY29kaW5nIHByb2JsZW1zLCB0aGlzIG1vZGVsIGRlbW9uc3RyYXRlcyBzdHJvbmcgY2hhaW4tb2YtdGhvdWdodCByZWFzb25pbmcgYW5kIGNvbXBldGl0aXZlIGNvZGUgZ2VuZXJhdGlvbiBjYXBhYmlsaXRpZXMsIGFjaGlldmluZyBwZXJmb3JtYW5jZSBjb21wZXRpdGl2ZSB3aXRoIGZyb250aWVyIGNsb3NlZC1zb3VyY2UgbW9kZWxzIG9uIHRhc2tzIGZyb20gdGhlIElPSSAyMDI0IGFuZCBzaW1pbGFyIGNvZGluZyBjb250ZXN0cy4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW4tcjEvb2x5bXBpY2NvZGVyLTMyYjpmcmVlIiwibmFtZSI6Ik9seW1waWNDb2RlciAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MjA3NzIyOCwiZGVzY3JpcHRpb24iOiJPbHltcGljQ29kZXItMzJCIGlzIGEgaGlnaC1wZXJmb3JtaW5nIG9wZW4tc291cmNlIG1vZGVsIGZpbmUtdHVuZWQgdXNpbmcgdGhlIENvZGVGb3JjZXMtQ29UcyBkYXRhc2V0LCBjb250YWluaW5nIGFwcHJveGltYXRlbHkgMTAwLDAwMCBjaGFpbi1vZi10aG91Z2h0IHByb2dyYW1taW5nIHNhbXBsZXMuIEl0IGV4Y2VscyBhdCBjb21wbGV4IGNvbXBldGl0aXZlIHByb2dyYW1taW5nIGJlbmNobWFya3MsIHN1Y2ggYXMgSU9JIDIwMjQgYW5kIENvZGVmb3JjZXMtc3R5bGUgY2hhbGxlbmdlcywgZnJlcXVlbnRseSBzdXJwYXNzaW5nIHN0YXRlLW9mLXRoZS1hcnQgY2xvc2VkLXNvdXJjZSBtb2RlbHMuIE9seW1waWNDb2Rlci0zMkIgcHJvdmlkZXMgYWR2YW5jZWQgcmVhc29uaW5nLCBjb2hlcmVudCBtdWx0aS1zdGVwIHByb2JsZW0tc29sdmluZywgYW5kIHJvYnVzdCBjb2RlIGdlbmVyYXRpb24gY2FwYWJpbGl0aWVzLCBkZW1vbnN0cmF0aW5nIHNpZ25pZmljYW50IHBvdGVudGlhbCBmb3Igb2x5bXBpYWQtbGV2ZWwgY29tcGV0aXRpdmUgcHJvZ3JhbW1pbmcgYXBwbGljYXRpb25zLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic3RlZWxza3VsbC9sMy4zLWVsZWN0cmEtcjEtNzBiIiwibmFtZSI6IlN0ZWVsU2t1bGw6IEwzLjMgRWxlY3RyYSBSMSA3MEIiLCJjcmVhdGVkIjoxNzQyMDY3NjExLCJkZXNjcmlwdGlvbiI6IkwzLjMtRWxlY3RyYS1SMS03MCBpcyB0aGUgbmV3ZXN0IHJlbGVhc2Ugb2YgdGhlIFVubmFtZWQgc2VyaWVzLiBCdWlsdCBvbiBhIERlZXBTZWVrIFIxIERpc3RpbGwgYmFzZSwgRWxlY3RyYS1SMSBpbnRlZ3JhdGVzIHZhcmlvdXMgbW9kZWxzIHRvZ2V0aGVyIHRvIHByb3ZpZGUgYW4gaW50ZWxsaWdlbnQgYW5kIGNvaGVyZW50IG1vZGVsIGNhcGFibGUgb2YgcHJvdmlkaW5nIGRlZXAgY2hhcmFjdGVyIGluc2lnaHRzLiBUaHJvdWdoIHByb3BlciBwcm9tcHRpbmcsIHRoZSBtb2RlbCBkZW1vbnN0cmF0ZXMgYWR2YW5jZWQgcmVhc29uaW5nIGNhcGFiaWxpdGllcyBhbmQgdW5wcm9tcHRlZCBleHBsb3JhdGlvbiBvZiBjaGFyYWN0ZXIgaW5uZXIgdGhvdWdodHMgYW5kIG1vdGl2YXRpb25zLiBSZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIGFuZCBbcHJvbXB0aW5nIGhlcmVdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vU3RlZWxza3VsbC9MMy4zLUVsZWN0cmEtUjEtNzBiKSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDk1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxsZW5haS9vbG1vLTItMDMyNS0zMmItaW5zdHJ1Y3QiLCJuYW1lIjoiQWxsZW5BSTogT2xtbyAyIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDE5ODg1NTYsImRlc2NyaXB0aW9uIjoiT0xNby0yIDMyQiBJbnN0cnVjdCBpcyBhIHN1cGVydmlzZWQgaW5zdHJ1Y3Rpb24tZmluZXR1bmVkIHZhcmlhbnQgb2YgdGhlIE9MTW8tMiAzMkIgTWFyY2ggMjAyNSBiYXNlIG1vZGVsLiBJdCBleGNlbHMgaW4gY29tcGxleCByZWFzb25pbmcgYW5kIGluc3RydWN0aW9uLWZvbGxvd2luZyB0YXNrcyBhY3Jvc3MgZGl2ZXJzZSBiZW5jaG1hcmtzIHN1Y2ggYXMgR1NNOEssIE1BVEgsIElGRXZhbCwgYW5kIGdlbmVyYWwgTkxQIGV2YWx1YXRpb24uIERldmVsb3BlZCBieSBBSTIsIE9MTW8tMiAzMkIgaXMgcGFydCBvZiBhbiBvcGVuLCByZXNlYXJjaC1vcmllbnRlZCBpbml0aWF0aXZlLCB0cmFpbmVkIHByaW1hcmlseSBvbiBFbmdsaXNoLWxhbmd1YWdlIGRhdGFzZXRzIHRvIGFkdmFuY2UgdGhlIHVuZGVyc3RhbmRpbmcgYW5kIGRldmVsb3BtZW50IG9mIG9wZW4tc291cmNlIGxhbmd1YWdlIG1vZGVscy4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0xYi1pdDpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtbWEgMyAxQiAoZnJlZSkiLCJjcmVhdGVkIjoxNzQxOTYzNTU2LCJkZXNjcmlwdGlvbiI6IkdlbW1hIDMgMUIgaXMgdGhlIHNtYWxsZXN0IG9mIHRoZSBuZXcgR2VtbWEgMyBmYW1pbHkuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDMyayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4gTm90ZTogR2VtbWEgMyAxQiBpcyBub3QgbXVsdGltb2RhbC4gRm9yIHRoZSBzbWFsbGVzdCBtdWx0aW1vZGFsIEdlbW1hIDMgbW9kZWwsIHBsZWFzZSBzZWUgW0dlbW1hIDMgNEJdKGdvb2dsZS9nZW1tYS0zLTRiLWl0KSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbW1hLTMtNGItaXQ6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MTkwNTUxMCwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbW1hLTMtNGItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDRCIiwiY3JlYXRlZCI6MTc0MTkwNTUxMCwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS0xLjYtbGFyZ2UiLCJuYW1lIjoiQUkyMTogSmFtYmEgMS42IExhcmdlIiwiY3JlYXRlZCI6MTc0MTkwNTE3MywiZGVzY3JpcHRpb24iOiJBSTIxIEphbWJhIExhcmdlIDEuNiBpcyBhIGhpZ2gtcGVyZm9ybWFuY2UgaHlicmlkIGZvdW5kYXRpb24gbW9kZWwgY29tYmluaW5nIFN0YXRlIFNwYWNlIE1vZGVscyAoTWFtYmEpIHdpdGggVHJhbnNmb3JtZXIgYXR0ZW50aW9uIG1lY2hhbmlzbXMuIERldmVsb3BlZCBieSBBSTIxLCBpdCBleGNlbHMgaW4gZXh0cmVtZWx5IGxvbmctY29udGV4dCBoYW5kbGluZyAoMjU2SyB0b2tlbnMpLCBkZW1vbnN0cmF0ZXMgc3VwZXJpb3IgaW5mZXJlbmNlIGVmZmljaWVuY3kgKHVwIHRvIDIuNXggZmFzdGVyIHRoYW4gY29tcGFyYWJsZSBtb2RlbHMpLCBhbmQgc3VwcG9ydHMgc3RydWN0dXJlZCBKU09OIG91dHB1dCBhbmQgdG9vbC11c2UgY2FwYWJpbGl0aWVzLiBJdCBoYXMgOTQgYmlsbGlvbiBhY3RpdmUgcGFyYW1ldGVycyAoMzk4IGJpbGxpb24gdG90YWwpLCBvcHRpbWl6ZWQgcXVhbnRpemF0aW9uIHN1cHBvcnQgKEV4cGVydHNJbnQ4KSwgYW5kIG11bHRpbGluZ3VhbCBwcm9maWNpZW5jeSBpbiBsYW5ndWFnZXMgc3VjaCBhcyBFbmdsaXNoLCBTcGFuaXNoLCBGcmVuY2gsIFBvcnR1Z3Vlc2UsIEl0YWxpYW4sIER1dGNoLCBHZXJtYW4sIEFyYWJpYywgYW5kIEhlYnJldy5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIHRoZSBbSmFtYmEgT3BlbiBNb2RlbCBMaWNlbnNlXShodHRwczovL3d3dy5haTIxLmNvbS9saWNlbnNlcy9qYW1iYS1vcGVuLW1vZGVsLWxpY2Vuc2UpLiIsImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpMjEvamFtYmEtMS42LW1pbmkiLCJuYW1lIjoiQUkyMTogSmFtYmEgTWluaSAxLjYiLCJjcmVhdGVkIjoxNzQxOTA1MTcxLCJkZXNjcmlwdGlvbiI6IkFJMjEgSmFtYmEgTWluaSAxLjYgaXMgYSBoeWJyaWQgZm91bmRhdGlvbiBtb2RlbCBjb21iaW5pbmcgU3RhdGUgU3BhY2UgTW9kZWxzIChNYW1iYSkgd2l0aCBUcmFuc2Zvcm1lciBhdHRlbnRpb24gbWVjaGFuaXNtcy4gV2l0aCAxMiBiaWxsaW9uIGFjdGl2ZSBwYXJhbWV0ZXJzICg1MiBiaWxsaW9uIHRvdGFsKSwgdGhpcyBtb2RlbCBleGNlbHMgaW4gZXh0cmVtZWx5IGxvbmctY29udGV4dCB0YXNrcyAodXAgdG8gMjU2SyB0b2tlbnMpIGFuZCBhY2hpZXZlcyBzdXBlcmlvciBpbmZlcmVuY2UgZWZmaWNpZW5jeSwgb3V0cGVyZm9ybWluZyBjb21wYXJhYmxlIG9wZW4gbW9kZWxzIG9uIHRhc2tzIHN1Y2ggYXMgcmV0cmlldmFsLWF1Z21lbnRlZCBnZW5lcmF0aW9uIChSQUcpIGFuZCBncm91bmRlZCBxdWVzdGlvbiBhbnN3ZXJpbmcuIEphbWJhIE1pbmkgMS42IHN1cHBvcnRzIG11bHRpbGluZ3VhbCB0YXNrcyBhY3Jvc3MgRW5nbGlzaCwgU3BhbmlzaCwgRnJlbmNoLCBQb3J0dWd1ZXNlLCBJdGFsaWFuLCBEdXRjaCwgR2VybWFuLCBBcmFiaWMsIGFuZCBIZWJyZXcsIGFsb25nIHdpdGggc3RydWN0dXJlZCBKU09OIG91dHB1dCBhbmQgdG9vbC11c2UgY2FwYWJpbGl0aWVzLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gdGhlIFtKYW1iYSBPcGVuIE1vZGVsIExpY2Vuc2VdKGh0dHBzOi8vd3d3LmFpMjEuY29tL2xpY2Vuc2VzL2phbWJhLW9wZW4tbW9kZWwtbGljZW5zZSkuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0xMmItaXQ6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgMTJCIChmcmVlKSIsImNyZWF0ZWQiOjE3NDE5MDI2MjUsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEdlbW1hIDMgMTJCIGlzIHRoZSBzZWNvbmQgbGFyZ2VzdCBpbiB0aGUgZmFtaWx5IG9mIEdlbW1hIDMgbW9kZWxzIGFmdGVyIFtHZW1tYSAzIDI3Ql0oZ29vZ2xlL2dlbW1hLTMtMjdiLWl0KSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMy0xMmItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAzIDEyQiIsImNyZWF0ZWQiOjE3NDE5MDI2MjUsImRlc2NyaXB0aW9uIjoiR2VtbWEgMyBpbnRyb2R1Y2VzIG11bHRpbW9kYWxpdHksIHN1cHBvcnRpbmcgdmlzaW9uLWxhbmd1YWdlIGlucHV0IGFuZCB0ZXh0IG91dHB1dHMuIEl0IGhhbmRsZXMgY29udGV4dCB3aW5kb3dzIHVwIHRvIDEyOGsgdG9rZW5zLCB1bmRlcnN0YW5kcyBvdmVyIDE0MCBsYW5ndWFnZXMsIGFuZCBvZmZlcnMgaW1wcm92ZWQgbWF0aCwgcmVhc29uaW5nLCBhbmQgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEdlbW1hIDMgMTJCIGlzIHRoZSBzZWNvbmQgbGFyZ2VzdCBpbiB0aGUgZmFtaWx5IG9mIEdlbW1hIDMgbW9kZWxzIGFmdGVyIFtHZW1tYSAzIDI3Ql0oZ29vZ2xlL2dlbW1hLTMtMjdiLWl0KSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLWEiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIEEiLCJjcmVhdGVkIjoxNzQxODk0MzQyLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQgQSBpcyBhbiBvcGVuLXdlaWdodHMgMTExQiBwYXJhbWV0ZXIgbW9kZWwgd2l0aCBhIDI1NmsgY29udGV4dCB3aW5kb3cgZm9jdXNlZCBvbiBkZWxpdmVyaW5nIGdyZWF0IHBlcmZvcm1hbmNlIGFjcm9zcyBhZ2VudGljLCBtdWx0aWxpbmd1YWwsIGFuZCBjb2RpbmcgdXNlIGNhc2VzLlxuQ29tcGFyZWQgdG8gb3RoZXIgbGVhZGluZyBwcm9wcmlldGFyeSBhbmQgb3Blbi13ZWlnaHRzIG1vZGVscyBDb21tYW5kIEEgZGVsaXZlcnMgbWF4aW11bSBwZXJmb3JtYW5jZSB3aXRoIG1pbmltdW0gaGFyZHdhcmUgY29zdHMsIGV4Y2VsbGluZyBvbiBidXNpbmVzcy1jcml0aWNhbCBhZ2VudGljIGFuZCBtdWx0aWxpbmd1YWwgdGFza3MuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by1taW5pLXNlYXJjaC1wcmV2aWV3IiwibmFtZSI6Ik9wZW5BSTogR1BULTRvLW1pbmkgU2VhcmNoIFByZXZpZXciLCJjcmVhdGVkIjoxNzQxODE4MTIyLCJkZXNjcmlwdGlvbiI6IkdQVC00byBtaW5pIFNlYXJjaCBQcmV2aWV3IGlzIGEgc3BlY2lhbGl6ZWQgbW9kZWwgZm9yIHdlYiBzZWFyY2ggaW4gQ2hhdCBDb21wbGV0aW9ucy4gSXQgaXMgdHJhaW5lZCB0byB1bmRlcnN0YW5kIGFuZCBleGVjdXRlIHdlYiBzZWFyY2ggcXVlcmllcy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwLjAyNzUiLCJpbWFnZSI6IjAuMDAwMjE3Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLXNlYXJjaC1wcmV2aWV3IiwibmFtZSI6Ik9wZW5BSTogR1BULTRvIFNlYXJjaCBQcmV2aWV3IiwiY3JlYXRlZCI6MTc0MTgxNzk0OSwiZGVzY3JpcHRpb24iOiJHUFQtNG8gU2VhcmNoIFByZXZpZXdpcyBhIHNwZWNpYWxpemVkIG1vZGVsIGZvciB3ZWIgc2VhcmNoIGluIENoYXQgQ29tcGxldGlvbnMuIEl0IGlzIHRyYWluZWQgdG8gdW5kZXJzdGFuZCBhbmQgZXhlY3V0ZSB3ZWIgc2VhcmNoIHF1ZXJpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMC4wMzUiLCJpbWFnZSI6IjAuMDAzNjEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0b2t5b3RlY2gtbGxtL2xsYW1hLTMuMS1zd2FsbG93LTcwYi1pbnN0cnVjdC12MC4zIiwibmFtZSI6IlN3YWxsb3c6IExsYW1hIDMuMSBTd2FsbG93IDcwQiBJbnN0cnVjdCBWMC4zIiwiY3JlYXRlZCI6MTc0MTgxMzkzNiwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjEgU3dhbGxvdyA3MEIgaXMgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0aGF0IHdhcyBidWlsdCBieSBjb250aW51YWwgcHJlLXRyYWluaW5nIG9uIHRoZSBNZXRhIExsYW1hIDMuMSA3MEIuIExsYW1hIDMuMSBTd2FsbG93IGVuaGFuY2VkIHRoZSBKYXBhbmVzZSBsYW5ndWFnZSBjYXBhYmlsaXRpZXMgb2YgdGhlIG9yaWdpbmFsIExsYW1hIDMuMSB3aGlsZSByZXRhaW5pbmcgdGhlIEVuZ2xpc2ggbGFuZ3VhZ2UgY2FwYWJpbGl0aWVzLiBTd2FsbG93IHVzZWQgYXBwcm94aW1hdGVseSAyMDAgYmlsbGlvbiB0b2tlbnMgdGhhdCB3ZXJlIHNhbXBsZWQgZnJvbSBhIGxhcmdlIEphcGFuZXNlIHdlYiBjb3JwdXMgKFN3YWxsb3cgQ29ycHVzIFZlcnNpb24gMiksIEphcGFuZXNlIGFuZCBFbmdsaXNoIFdpa2lwZWRpYSBhcnRpY2xlcywgYW5kIG1hdGhlbWF0aWNhbCBhbmQgY29kaW5nIGNvbnRlbnRzLCBldGMgKHNlZSB0aGUgVHJhaW5pbmcgRGF0YXNldHMgc2VjdGlvbiBvZiB0aGUgYmFzZSBtb2RlbCkgZm9yIGNvbnRpbnVhbCBwcmUtdHJhaW5pbmcuIFRoZSBpbnN0cnVjdGlvbi10dW5lZCBtb2RlbHMgKEluc3RydWN0KSB3ZXJlIGJ1aWx0IGJ5IHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgb24gdGhlIHN5bnRoZXRpYyBkYXRhIHNwZWNpYWxseSBidWlsdCBmb3IgSmFwYW5lc2UuICIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJyZWthYWkvcmVrYS1mbGFzaC0zOmZyZWUiLCJuYW1lIjoiUmVrYTogRmxhc2ggMyAoZnJlZSkiLCJjcmVhdGVkIjoxNzQxODEyODEzLCJkZXNjcmlwdGlvbiI6IlJla2EgRmxhc2ggMyBpcyBhIGdlbmVyYWwtcHVycG9zZSwgaW5zdHJ1Y3Rpb24tdHVuZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCAyMSBiaWxsaW9uIHBhcmFtZXRlcnMsIGRldmVsb3BlZCBieSBSZWthLiBJdCBleGNlbHMgYXQgZ2VuZXJhbCBjaGF0LCBjb2RpbmcgdGFza3MsIGluc3RydWN0aW9uLWZvbGxvd2luZywgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIEZlYXR1cmluZyBhIDMySyBjb250ZXh0IGxlbmd0aCBhbmQgb3B0aW1pemVkIHRocm91Z2ggcmVpbmZvcmNlbWVudCBsZWFybmluZyAoUkxPTyksIGl0IHByb3ZpZGVzIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGNvbXBhcmFibGUgdG8gcHJvcHJpZXRhcnkgbW9kZWxzIHdpdGhpbiBhIHNtYWxsZXIgcGFyYW1ldGVyIGZvb3RwcmludC4gSWRlYWwgZm9yIGxvdy1sYXRlbmN5LCBsb2NhbCwgb3Igb24tZGV2aWNlIGRlcGxveW1lbnRzLCBSZWthIEZsYXNoIDMgaXMgY29tcGFjdCwgc3VwcG9ydHMgZWZmaWNpZW50IHF1YW50aXphdGlvbiAoZG93biB0byAxMUdCIGF0IDQtYml0IHByZWNpc2lvbiksIGFuZCBlbXBsb3lzIGV4cGxpY2l0IHJlYXNvbmluZyB0YWdzIChcIjxyZWFzb25pbmc+XCIpIHRvIGluZGljYXRlIGl0cyBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3MuXG5cblJla2EgRmxhc2ggMyBpcyBwcmltYXJpbHkgYW4gRW5nbGlzaCBtb2RlbCB3aXRoIGxpbWl0ZWQgbXVsdGlsaW5ndWFsIHVuZGVyc3RhbmRpbmcgY2FwYWJpbGl0aWVzLiBUaGUgbW9kZWwgd2VpZ2h0cyBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTI3Yi1pdDpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtbWEgMyAyN0IgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MTc1NjM1OSwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4gR2VtbWEgMyAyN0IgaXMgR29vZ2xlJ3MgbGF0ZXN0IG9wZW4gc291cmNlIG1vZGVsLCBzdWNjZXNzb3IgdG8gW0dlbW1hIDJdKGdvb2dsZS9nZW1tYS0yLTI3Yi1pdCkiLCJjb250ZXh0X2xlbmd0aCI6OTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6OTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1tYS0zLTI3Yi1pdCIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDMgMjdCIiwiY3JlYXRlZCI6MTc0MTc1NjM1OSwiZGVzY3JpcHRpb24iOiJHZW1tYSAzIGludHJvZHVjZXMgbXVsdGltb2RhbGl0eSwgc3VwcG9ydGluZyB2aXNpb24tbGFuZ3VhZ2UgaW5wdXQgYW5kIHRleHQgb3V0cHV0cy4gSXQgaGFuZGxlcyBjb250ZXh0IHdpbmRvd3MgdXAgdG8gMTI4ayB0b2tlbnMsIHVuZGVyc3RhbmRzIG92ZXIgMTQwIGxhbmd1YWdlcywgYW5kIG9mZmVycyBpbXByb3ZlZCBtYXRoLCByZWFzb25pbmcsIGFuZCBjaGF0IGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBhbmQgZnVuY3Rpb24gY2FsbGluZy4gR2VtbWEgMyAyN0IgaXMgR29vZ2xlJ3MgbGF0ZXN0IG9wZW4gc291cmNlIG1vZGVsLCBzdWNjZXNzb3IgdG8gW0dlbW1hIDJdKGdvb2dsZS9nZW1tYS0yLTI3Yi1pdCkiLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjoiZ2VtbWEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMDI1NiIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidGhlZHJ1bW1lci9hbnViaXMtcHJvLTEwNWItdjEiLCJuYW1lIjoiVGhlRHJ1bW1lcjogQW51YmlzIFBybyAxMDVCIFYxIiwiY3JlYXRlZCI6MTc0MTY0MjI5MCwiZGVzY3JpcHRpb24iOiJBbnViaXMgUHJvIDEwNUIgdjEgaXMgYW4gZXhwYW5kZWQgYW5kIHJlZmluZWQgdmFyaWFudCBvZiBNZXRh4oCZcyBMbGFtYSAzLjMgNzBCLCBmZWF0dXJpbmcgNTAlIGFkZGl0aW9uYWwgbGF5ZXJzIGFuZCBmdXJ0aGVyIGZpbmUtdHVuaW5nIHRvIGxldmVyYWdlIGl0cyBpbmNyZWFzZWQgY2FwYWNpdHkuIERlc2lnbmVkIGZvciBhZHZhbmNlZCBuYXJyYXRpdmUsIHJvbGVwbGF5LCBhbmQgaW5zdHJ1Y3Rpb25hbCB0YXNrcywgaXQgZGVtb25zdHJhdGVzIGVuaGFuY2VkIGVtb3Rpb25hbCBpbnRlbGxpZ2VuY2UsIGNyZWF0aXZpdHksIG51YW5jZWQgY2hhcmFjdGVyIHBvcnRyYXlhbCwgYW5kIHN1cGVyaW9yIHByb21wdCBhZGhlcmVuY2UgY29tcGFyZWQgdG8gc21hbGxlciBtb2RlbHMuIEl0cyBsYXJnZXIgcGFyYW1ldGVyIGNvdW50IGFsbG93cyBmb3IgZGVlcGVyIGNvbnRleHR1YWwgdW5kZXJzdGFuZGluZyBhbmQgZXh0ZW5kZWQgcmVhc29uaW5nIGNhcGFiaWxpdGllcywgb3B0aW1pemVkIGZvciBlbmdhZ2luZywgaW50ZWxsaWdlbnQsIGFuZCBjb2hlcmVudCBpbnRlcmFjdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibGF0aXR1ZGVnYW1lcy93YXlmYXJlci1sYXJnZS03MGItbGxhbWEtMy4zIiwibmFtZSI6IkxhdGl0dWRlR2FtZXM6IFdheWZhcmVyIExhcmdlIDcwQiBMbGFtYSAzLjMiLCJjcmVhdGVkIjoxNzQxNjM2ODg1LCJkZXNjcmlwdGlvbiI6IldheWZhcmVyIExhcmdlIDcwQiBpcyBhIHJvbGVwbGF5IGFuZCB0ZXh0LWFkdmVudHVyZSBtb2RlbCBmaW5lLXR1bmVkIGZyb20gTWV0YeKAmXMgTGxhbWEtMy4zLTcwQi1JbnN0cnVjdC4gU3BlY2lmaWNhbGx5IG9wdGltaXplZCBmb3IgbmFycmF0aXZlLWRyaXZlbiwgY2hhbGxlbmdpbmcgc2NlbmFyaW9zLCBpdCBpbnRyb2R1Y2VzIHJlYWxpc3RpYyBzdGFrZXMsIGNvbmZsaWN0cywgYW5kIGNvbnNlcXVlbmNlcyBvZnRlbiBhdm9pZGVkIGJ5IHN0YW5kYXJkIFJMSEYtYWxpZ25lZCBtb2RlbHMuIFRyYWluZWQgdXNpbmcgYSBjdXJhdGVkIGJsZW5kIG9mIGFkdmVudHVyZSwgcm9sZXBsYXksIGFuZCBpbnN0cnVjdGl2ZSBmaWN0aW9uIGRhdGFzZXRzLCBXYXlmYXJlciBlbXBoYXNpemVzIHRlbnNlIHN0b3J5dGVsbGluZywgYXV0aGVudGljIHBsYXllciBmYWlsdXJlIHNjZW5hcmlvcywgYW5kIHJvYnVzdCBuYXJyYXRpdmUgaW1tZXJzaW9uLCBtYWtpbmcgaXQgdW5pcXVlbHkgc3VpdGVkIGZvciBpbnRlcmFjdGl2ZSBmaWN0aW9uIGFuZCBnYW1pbmcgZXhwZXJpZW5jZXMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0aGVkcnVtbWVyL3NreWZhbGwtMzZiLXYyIiwibmFtZSI6IlRoZURydW1tZXI6IFNreWZhbGwgMzZCIFYyIiwiY3JlYXRlZCI6MTc0MTYzNjU2NiwiZGVzY3JpcHRpb24iOiJTa3lmYWxsIDM2QiB2MiBpcyBhbiBlbmhhbmNlZCBpdGVyYXRpb24gb2YgTWlzdHJhbCBTbWFsbCAyNTAxLCBzcGVjaWZpY2FsbHkgZmluZS10dW5lZCBmb3IgaW1wcm92ZWQgY3JlYXRpdml0eSwgbnVhbmNlZCB3cml0aW5nLCByb2xlLXBsYXlpbmcsIGFuZCBjb2hlcmVudCBzdG9yeXRlbGxpbmcuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktNC1tdWx0aW1vZGFsLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpIDQgTXVsdGltb2RhbCBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3NDEzOTYyODQsImRlc2NyaXB0aW9uIjoiUGhpLTQgTXVsdGltb2RhbCBJbnN0cnVjdCBpcyBhIHZlcnNhdGlsZSA1LjZCIHBhcmFtZXRlciBmb3VuZGF0aW9uIG1vZGVsIHRoYXQgY29tYmluZXMgYWR2YW5jZWQgcmVhc29uaW5nIGFuZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgY2FwYWJpbGl0aWVzIGFjcm9zcyBib3RoIHRleHQgYW5kIHZpc3VhbCBpbnB1dHMsIHByb3ZpZGluZyBhY2N1cmF0ZSB0ZXh0IG91dHB1dHMuIFRoZSB1bmlmaWVkIGFyY2hpdGVjdHVyZSBlbmFibGVzIGVmZmljaWVudCwgbG93LWxhdGVuY3kgaW5mZXJlbmNlLCBzdWl0YWJsZSBmb3IgZWRnZSBhbmQgbW9iaWxlIGRlcGxveW1lbnRzLiBQaGktNCBNdWx0aW1vZGFsIEluc3RydWN0IHN1cHBvcnRzIHRleHQgaW5wdXRzIGluIG11bHRpcGxlIGxhbmd1YWdlcyBpbmNsdWRpbmcgQXJhYmljLCBDaGluZXNlLCBFbmdsaXNoLCBGcmVuY2gsIEdlcm1hbiwgSmFwYW5lc2UsIFNwYW5pc2gsIGFuZCBtb3JlLCB3aXRoIHZpc3VhbCBpbnB1dCBvcHRpbWl6ZWQgcHJpbWFyaWx5IGZvciBFbmdsaXNoLiBJdCBkZWxpdmVycyBpbXByZXNzaXZlIHBlcmZvcm1hbmNlIG9uIG11bHRpbW9kYWwgdGFza3MgaW52b2x2aW5nIG1hdGhlbWF0aWNhbCwgc2NpZW50aWZpYywgYW5kIGRvY3VtZW50IHJlYXNvbmluZywgcHJvdmlkaW5nIGRldmVsb3BlcnMgYW5kIGVudGVycHJpc2VzIGEgcG93ZXJmdWwgeWV0IGNvbXBhY3QgbW9kZWwgZm9yIHNvcGhpc3RpY2F0ZWQgaW50ZXJhY3RpdmUgYXBwbGljYXRpb25zLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBbUGhpLTQgTXVsdGltb2RhbCBibG9nIHBvc3RdKGh0dHBzOi8vYXp1cmUubWljcm9zb2Z0LmNvbS9lbi11cy9ibG9nL2VtcG93ZXJpbmctaW5ub3ZhdGlvbi10aGUtbmV4dC1nZW5lcmF0aW9uLW9mLXRoZS1waGktZmFtaWx5LykuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMTc2ODUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXItcmVhc29uaW5nLXBybyIsIm5hbWUiOiJQZXJwbGV4aXR5OiBTb25hciBSZWFzb25pbmcgUHJvIiwiY3JlYXRlZCI6MTc0MTMxMzMwOCwiZGVzY3JpcHRpb24iOiJOb3RlOiBTb25hciBQcm8gcHJpY2luZyBpbmNsdWRlcyBQZXJwbGV4aXR5IHNlYXJjaCBwcmljaW5nLiBTZWUgW2RldGFpbHMgaGVyZV0oaHR0cHM6Ly9kb2NzLnBlcnBsZXhpdHkuYWkvZ3VpZGVzL3ByaWNpbmcjZGV0YWlsZWQtcHJpY2luZy1icmVha2Rvd24tZm9yLXNvbmFyLXJlYXNvbmluZy1wcm8tYW5kLXNvbmFyLXBybylcblxuU29uYXIgUmVhc29uaW5nIFBybyBpcyBhIHByZW1pZXIgcmVhc29uaW5nIG1vZGVsIHBvd2VyZWQgYnkgRGVlcFNlZWsgUjEgd2l0aCBDaGFpbiBvZiBUaG91Z2h0IChDb1QpLiBEZXNpZ25lZCBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzLCBpdCBzdXBwb3J0cyBpbi1kZXB0aCwgbXVsdGktc3RlcCBxdWVyaWVzIHdpdGggYSBsYXJnZXIgY29udGV4dCB3aW5kb3cgYW5kIGNhbiBzdXJmYWNlIG1vcmUgY2l0YXRpb25zIHBlciBzZWFyY2gsIGVuYWJsaW5nIG1vcmUgY29tcHJlaGVuc2l2ZSBhbmQgZXh0ZW5zaWJsZSByZXNwb25zZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwLjAwNSIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvc29uYXItcHJvIiwibmFtZSI6IlBlcnBsZXhpdHk6IFNvbmFyIFBybyIsImNyZWF0ZWQiOjE3NDEzMTI0MjMsImRlc2NyaXB0aW9uIjoiTm90ZTogU29uYXIgUHJvIHByaWNpbmcgaW5jbHVkZXMgUGVycGxleGl0eSBzZWFyY2ggcHJpY2luZy4gU2VlIFtkZXRhaWxzIGhlcmVdKGh0dHBzOi8vZG9jcy5wZXJwbGV4aXR5LmFpL2d1aWRlcy9wcmljaW5nI2RldGFpbGVkLXByaWNpbmctYnJlYWtkb3duLWZvci1zb25hci1yZWFzb25pbmctcHJvLWFuZC1zb25hci1wcm8pXG5cbkZvciBlbnRlcnByaXNlcyBzZWVraW5nIG1vcmUgYWR2YW5jZWQgY2FwYWJpbGl0aWVzLCB0aGUgU29uYXIgUHJvIEFQSSBjYW4gaGFuZGxlIGluLWRlcHRoLCBtdWx0aS1zdGVwIHF1ZXJpZXMgd2l0aCBhZGRlZCBleHRlbnNpYmlsaXR5LCBsaWtlIGRvdWJsZSB0aGUgbnVtYmVyIG9mIGNpdGF0aW9ucyBwZXIgc2VhcmNoIGFzIFNvbmFyIG9uIGF2ZXJhZ2UuIFBsdXMsIHdpdGggYSBsYXJnZXIgY29udGV4dCB3aW5kb3csIGl0IGNhbiBoYW5kbGUgbG9uZ2VyIGFuZCBtb3JlIG51YW5jZWQgc2VhcmNoZXMgYW5kIGZvbGxvdy11cCBxdWVzdGlvbnMuICIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMC4wMDUiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJwZXJwbGV4aXR5L3NvbmFyLWRlZXAtcmVzZWFyY2giLCJuYW1lIjoiUGVycGxleGl0eTogU29uYXIgRGVlcCBSZXNlYXJjaCIsImNyZWF0ZWQiOjE3NDEzMTEyNDYsImRlc2NyaXB0aW9uIjoiU29uYXIgRGVlcCBSZXNlYXJjaCBpcyBhIHJlc2VhcmNoLWZvY3VzZWQgbW9kZWwgZGVzaWduZWQgZm9yIG11bHRpLXN0ZXAgcmV0cmlldmFsLCBzeW50aGVzaXMsIGFuZCByZWFzb25pbmcgYWNyb3NzIGNvbXBsZXggdG9waWNzLiBJdCBhdXRvbm9tb3VzbHkgc2VhcmNoZXMsIHJlYWRzLCBhbmQgZXZhbHVhdGVzIHNvdXJjZXMsIHJlZmluaW5nIGl0cyBhcHByb2FjaCBhcyBpdCBnYXRoZXJzIGluZm9ybWF0aW9uLiBUaGlzIGVuYWJsZXMgY29tcHJlaGVuc2l2ZSByZXBvcnQgZ2VuZXJhdGlvbiBhY3Jvc3MgZG9tYWlucyBsaWtlIGZpbmFuY2UsIHRlY2hub2xvZ3ksIGhlYWx0aCwgYW5kIGN1cnJlbnQgZXZlbnRzLlxuXG5Ob3RlcyBvbiBQcmljaW5nIChbU291cmNlXShodHRwczovL2RvY3MucGVycGxleGl0eS5haS9ndWlkZXMvcHJpY2luZyNkZXRhaWxlZC1wcmljaW5nLWJyZWFrZG93bi1mb3Itc29uYXItZGVlcC1yZXNlYXJjaCkpIFxuLSBJbnB1dCB0b2tlbnMgY29tcHJpc2Ugb2YgUHJvbXB0IHRva2VucyAodXNlciBwcm9tcHQpICsgQ2l0YXRpb24gdG9rZW5zICh0aGVzZSBhcmUgcHJvY2Vzc2VkIHRva2VucyBmcm9tIHJ1bm5pbmcgc2VhcmNoZXMpXG4tIERlZXAgUmVzZWFyY2ggcnVucyBtdWx0aXBsZSBzZWFyY2hlcyB0byBjb25kdWN0IGV4aGF1c3RpdmUgcmVzZWFyY2guIFNlYXJjaGVzIGFyZSBwcmljZWQgYXQgJDUvMTAwMCBzZWFyY2hlcy4gQSByZXF1ZXN0IHRoYXQgZG9lcyAzMCBzZWFyY2hlcyB3aWxsIGNvc3QgJDAuMTUgaW4gdGhpcyBzdGVwLlxuLSBSZWFzb25pbmcgaXMgYSBkaXN0aW5jdCBzdGVwIGluIERlZXAgUmVzZWFyY2ggc2luY2UgaXQgZG9lcyBleHRlbnNpdmUgYXV0b21hdGVkIHJlYXNvbmluZyB0aHJvdWdoIGFsbCB0aGUgbWF0ZXJpYWwgaXQgZ2F0aGVycyBkdXJpbmcgaXRzIHJlc2VhcmNoIHBoYXNlLiBSZWFzb25pbmcgdG9rZW5zIGhlcmUgYXJlIGEgYml0IGRpZmZlcmVudCB0aGFuIHRoZSBDb1RzIGluIHRoZSBhbnN3ZXIgLSB0aGVzZSBhcmUgdG9rZW5zIHRoYXQgd2UgdXNlIHRvIHJlYXNvbiB0aHJvdWdoIHRoZSByZXNlYXJjaCBtYXRlcmlhbCBwcmlvciB0byBnZW5lcmF0aW5nIHRoZSBvdXRwdXRzIHZpYSB0aGUgQ29Ucy4gUmVhc29uaW5nIHRva2VucyBhcmUgcHJpY2VkIGF0ICQzLzFNIHRva2VucyIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMC4wMDUiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwLjAwMDAwMyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtemVybzpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBEZWVwU2VlayBSMSBaZXJvIChmcmVlKSIsImNyZWF0ZWQiOjE3NDEyOTc0MzQsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWstUjEtWmVybyBpcyBhIG1vZGVsIHRyYWluZWQgdmlhIGxhcmdlLXNjYWxlIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgKFJMKSB3aXRob3V0IHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgYXMgYSBwcmVsaW1pbmFyeSBzdGVwLiBJdCdzIDY3MUIgcGFyYW1ldGVycyBpbiBzaXplLCB3aXRoIDM3QiBhY3RpdmUgaW4gYW4gaW5mZXJlbmNlIHBhc3MuXG5cbkl0IGRlbW9uc3RyYXRlcyByZW1hcmthYmxlIHBlcmZvcm1hbmNlIG9uIHJlYXNvbmluZy4gV2l0aCBSTCwgRGVlcFNlZWstUjEtWmVybyBuYXR1cmFsbHkgZW1lcmdlZCB3aXRoIG51bWVyb3VzIHBvd2VyZnVsIGFuZCBpbnRlcmVzdGluZyByZWFzb25pbmcgYmVoYXZpb3JzLlxuXG5EZWVwU2Vlay1SMS1aZXJvIGVuY291bnRlcnMgY2hhbGxlbmdlcyBzdWNoIGFzIGVuZGxlc3MgcmVwZXRpdGlvbiwgcG9vciByZWFkYWJpbGl0eSwgYW5kIGxhbmd1YWdlIG1peGluZy4gU2VlIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKSBmb3IgdGhlIFNGVCBtb2RlbC5cblxuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdxLTMyYjpmcmVlIiwibmFtZSI6IlF3ZW46IFF3USAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MTIwODgxNCwiZGVzY3JpcHRpb24iOiJRd1EgaXMgdGhlIHJlYXNvbmluZyBtb2RlbCBvZiB0aGUgUXdlbiBzZXJpZXMuIENvbXBhcmVkIHdpdGggY29udmVudGlvbmFsIGluc3RydWN0aW9uLXR1bmVkIG1vZGVscywgUXdRLCB3aGljaCBpcyBjYXBhYmxlIG9mIHRoaW5raW5nIGFuZCByZWFzb25pbmcsIGNhbiBhY2hpZXZlIHNpZ25pZmljYW50bHkgZW5oYW5jZWQgcGVyZm9ybWFuY2UgaW4gZG93bnN0cmVhbSB0YXNrcywgZXNwZWNpYWxseSBoYXJkIHByb2JsZW1zLiBRd1EtMzJCIGlzIHRoZSBtZWRpdW0tc2l6ZWQgcmVhc29uaW5nIG1vZGVsLCB3aGljaCBpcyBjYXBhYmxlIG9mIGFjaGlldmluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBhZ2FpbnN0IHN0YXRlLW9mLXRoZS1hcnQgcmVhc29uaW5nIG1vZGVscywgZS5nLiwgRGVlcFNlZWstUjEsIG8xLW1pbmkuIiwiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJxd3EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd3EtMzJiIiwibmFtZSI6IlF3ZW46IFF3USAzMkIiLCJjcmVhdGVkIjoxNzQxMjA4ODE0LCJkZXNjcmlwdGlvbiI6IlF3USBpcyB0aGUgcmVhc29uaW5nIG1vZGVsIG9mIHRoZSBRd2VuIHNlcmllcy4gQ29tcGFyZWQgd2l0aCBjb252ZW50aW9uYWwgaW5zdHJ1Y3Rpb24tdHVuZWQgbW9kZWxzLCBRd1EsIHdoaWNoIGlzIGNhcGFibGUgb2YgdGhpbmtpbmcgYW5kIHJlYXNvbmluZywgY2FuIGFjaGlldmUgc2lnbmlmaWNhbnRseSBlbmhhbmNlZCBwZXJmb3JtYW5jZSBpbiBkb3duc3RyZWFtIHRhc2tzLCBlc3BlY2lhbGx5IGhhcmQgcHJvYmxlbXMuIFF3US0zMkIgaXMgdGhlIG1lZGl1bS1zaXplZCByZWFzb25pbmcgbW9kZWwsIHdoaWNoIGlzIGNhcGFibGUgb2YgYWNoaWV2aW5nIGNvbXBldGl0aXZlIHBlcmZvcm1hbmNlIGFnYWluc3Qgc3RhdGUtb2YtdGhlLWFydCByZWFzb25pbmcgbW9kZWxzLCBlLmcuLCBEZWVwU2Vlay1SMSwgbzEtbWluaS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJxd3EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtMzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUgMzJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTc0MTA0Mjc0NCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IDMyQiBJbnN0cnVjdCBpcyB0aGUgaW5zdHJ1Y3Rpb24tdHVuZWQgdmFyaWFudCBvZiB0aGUgbGF0ZXN0IFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgc2VyaWVzLiBJdCBwcm92aWRlcyBlbmhhbmNlZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgY2FwYWJpbGl0aWVzLCBpbXByb3ZlZCBwcm9maWNpZW5jeSBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNhbCByZWFzb25pbmcsIGFuZCByb2J1c3QgaGFuZGxpbmcgb2Ygc3RydWN0dXJlZCBkYXRhIGFuZCBvdXRwdXRzIHN1Y2ggYXMgSlNPTi4gSXQgc3VwcG9ydHMgbG9uZy1jb250ZXh0IHByb2Nlc3NpbmcgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIG11bHRpbGluZ3VhbCB0YXNrcyBhY3Jvc3MgMjkrIGxhbmd1YWdlcy4gVGhlIG1vZGVsIGhhcyAzMi41IGJpbGxpb24gcGFyYW1ldGVycywgNjQgbGF5ZXJzLCBhbmQgdXRpbGl6ZXMgYW4gYWR2YW5jZWQgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlIHdpdGggUm9QRSwgU3dpR0xVLCBSTVNOb3JtLCBhbmQgQXR0ZW50aW9uIFFLViBiaWFzLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFtRd2VuMi41IEJsb2ddKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLjUvKSAuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDc5IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNzkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtb29uc2hvdGFpL21vb25saWdodC0xNmItYTNiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTW9vbnNob3QgQUk6IE1vb25saWdodCAxNkIgQTNCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3NDA3MTk4MDEsImRlc2NyaXB0aW9uIjoiTW9vbmxpZ2h0LTE2Qi1BM0ItSW5zdHJ1Y3QgaXMgYSAxNkItcGFyYW1ldGVyIE1peHR1cmUtb2YtRXhwZXJ0cyAoTW9FKSBsYW5ndWFnZSBtb2RlbCBkZXZlbG9wZWQgYnkgTW9vbnNob3QgQUkuIEl0IGlzIG9wdGltaXplZCBmb3IgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzIHdpdGggM0IgYWN0aXZhdGVkIHBhcmFtZXRlcnMgcGVyIGluZmVyZW5jZS4gVGhlIG1vZGVsIGFkdmFuY2VzIHRoZSBQYXJldG8gZnJvbnRpZXIgaW4gcGVyZm9ybWFuY2UgcGVyIEZMT1AgYWNyb3NzIEVuZ2xpc2gsIGNvZGluZywgbWF0aCwgYW5kIENoaW5lc2UgYmVuY2htYXJrcy4gSXQgb3V0cGVyZm9ybXMgY29tcGFyYWJsZSBtb2RlbHMgbGlrZSBMbGFtYTMtM0IgYW5kIERlZXBzZWVrLXYyLUxpdGUgd2hpbGUgbWFpbnRhaW5pbmcgZWZmaWNpZW50IGRlcGxveW1lbnQgY2FwYWJpbGl0aWVzIHRocm91Z2ggSHVnZ2luZyBGYWNlIGludGVncmF0aW9uIGFuZCBjb21wYXRpYmlsaXR5IHdpdGggcG9wdWxhciBpbmZlcmVuY2UgZW5naW5lcyBsaWtlIHZMTE0xMi4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvZGVlcGhlcm1lcy0zLWxsYW1hLTMtOGItcHJldmlldzpmcmVlIiwibmFtZSI6Ik5vdXM6IERlZXBIZXJtZXMgMyBMbGFtYSAzIDhCIFByZXZpZXcgKGZyZWUpIiwiY3JlYXRlZCI6MTc0MDcxOTM3MiwiZGVzY3JpcHRpb24iOiJEZWVwSGVybWVzIDMgUHJldmlldyBpcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2Ygb3VyIGZsYWdzaGlwIEhlcm1lcyBzZXJpZXMgb2YgTExNcyBieSBOb3VzIFJlc2VhcmNoLCBhbmQgb25lIG9mIHRoZSBmaXJzdCBtb2RlbHMgaW4gdGhlIHdvcmxkIHRvIHVuaWZ5IFJlYXNvbmluZyAobG9uZyBjaGFpbnMgb2YgdGhvdWdodCB0aGF0IGltcHJvdmUgYW5zd2VyIGFjY3VyYWN5KSBhbmQgbm9ybWFsIExMTSByZXNwb25zZSBtb2RlcyBpbnRvIG9uZSBtb2RlbC4gV2UgaGF2ZSBhbHNvIGltcHJvdmVkIExMTSBhbm5vdGF0aW9uLCBqdWRnZW1lbnQsIGFuZCBmdW5jdGlvbiBjYWxsaW5nLlxuXG5EZWVwSGVybWVzIDMgUHJldmlldyBpcyBvbmUgb2YgdGhlIGZpcnN0IExMTSBtb2RlbHMgdG8gdW5pZnkgYm90aCBcImludHVpdGl2ZVwiLCB0cmFkaXRpb25hbCBtb2RlIHJlc3BvbnNlcyBhbmQgbG9uZyBjaGFpbiBvZiB0aG91Z2h0IHJlYXNvbmluZyByZXNwb25zZXMgaW50byBhIHNpbmdsZSBtb2RlbCwgdG9nZ2xlZCBieSBhIHN5c3RlbSBwcm9tcHQuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNC41LXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBHUFQtNC41IChQcmV2aWV3KSIsImNyZWF0ZWQiOjE3NDA2ODc4MTAsImRlc2NyaXB0aW9uIjoiR1BULTQuNSAoUHJldmlldykgaXMgYSByZXNlYXJjaCBwcmV2aWV3IG9mIE9wZW5BSeKAmXMgbGF0ZXN0IGxhbmd1YWdlIG1vZGVsLCBkZXNpZ25lZCB0byBhZHZhbmNlIGNhcGFiaWxpdGllcyBpbiByZWFzb25pbmcsIGNyZWF0aXZpdHksIGFuZCBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbi4gSXQgYnVpbGRzIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgd2l0aCBpbXByb3ZlbWVudHMgaW4gd29ybGQga25vd2xlZGdlLCBjb250ZXh0dWFsIGNvaGVyZW5jZSwgYW5kIHRoZSBhYmlsaXR5IHRvIGZvbGxvdyB1c2VyIGludGVudCBtb3JlIGVmZmVjdGl2ZWx5LlxuXG5UaGUgbW9kZWwgZGVtb25zdHJhdGVzIGVuaGFuY2VkIHBlcmZvcm1hbmNlIGluIHRhc2tzIHRoYXQgcmVxdWlyZSBvcGVuLWVuZGVkIHRoaW5raW5nLCBwcm9ibGVtLXNvbHZpbmcsIGFuZCBjb21tdW5pY2F0aW9uLiBFYXJseSB0ZXN0aW5nIHN1Z2dlc3RzIGl0IGlzIGJldHRlciBhdCBnZW5lcmF0aW5nIG51YW5jZWQgcmVzcG9uc2VzLCBtYWludGFpbmluZyBsb25nLWNvbnRleHQgY29oZXJlbmNlLCBhbmQgcmVkdWNpbmcgaGFsbHVjaW5hdGlvbnMgY29tcGFyZWQgdG8gZWFybGllciB2ZXJzaW9ucy5cblxuVGhpcyByZXNlYXJjaCBwcmV2aWV3IGlzIGludGVuZGVkIHRvIGhlbHAgZXZhbHVhdGUgR1BULTQuNeKAmXMgc3RyZW5ndGhzIGFuZCBsaW1pdGF0aW9ucyBpbiByZWFsLXdvcmxkIHVzZSBjYXNlcyBhcyBPcGVuQUkgY29udGludWVzIHRvIHJlZmluZSBhbmQgZGV2ZWxvcCBmdXR1cmUgbW9kZWxzLiBSZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZS5dKGh0dHBzOi8vb3BlbmFpLmNvbS9pbmRleC9pbnRyb2R1Y2luZy1ncHQtNC01LykiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMTA4Mzc1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtbGl0ZS0wMDEiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIExpdGUiLCJjcmVhdGVkIjoxNzQwNTA2MjEyLCJkZXNjcmlwdGlvbiI6IkdlbWluaSAyLjAgRmxhc2ggTGl0ZSBvZmZlcnMgYSBzaWduaWZpY2FudGx5IGZhc3RlciB0aW1lIHRvIGZpcnN0IHRva2VuIChUVEZUKSBjb21wYXJlZCB0byBbR2VtaW5pIEZsYXNoIDEuNV0oL2dvb2dsZS9nZW1pbmktZmxhc2gtMS41KSwgd2hpbGUgbWFpbnRhaW5pbmcgcXVhbGl0eSBvbiBwYXIgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgW0dlbWluaSBQcm8gMS41XSgvZ29vZ2xlL2dlbWluaS1wcm8tMS41KSwgYWxsIGF0IGV4dHJlbWVseSBlY29ub21pY2FsIHRva2VuIHByaWNlcy4iLCJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCIsImNyZWF0ZWQiOjE3NDA0MjIxMTAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNyBTb25uZXQgaXMgYW4gYWR2YW5jZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBpbXByb3ZlZCByZWFzb25pbmcsIGNvZGluZywgYW5kIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGludHJvZHVjZXMgYSBoeWJyaWQgcmVhc29uaW5nIGFwcHJvYWNoLCBhbGxvd2luZyB1c2VycyB0byBjaG9vc2UgYmV0d2VlbiByYXBpZCByZXNwb25zZXMgYW5kIGV4dGVuZGVkLCBzdGVwLWJ5LXN0ZXAgcHJvY2Vzc2luZyBmb3IgY29tcGxleCB0YXNrcy4gVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBjb2RpbmcsIHBhcnRpY3VsYXJseSBpbiBmcm9udC1lbmQgZGV2ZWxvcG1lbnQgYW5kIGZ1bGwtc3RhY2sgdXBkYXRlcywgYW5kIGV4Y2VscyBpbiBhZ2VudGljIHdvcmtmbG93cywgd2hlcmUgaXQgY2FuIGF1dG9ub21vdXNseSBuYXZpZ2F0ZSBtdWx0aS1zdGVwIHByb2Nlc3Nlcy4gXG5cbkNsYXVkZSAzLjcgU29ubmV0IG1haW50YWlucyBwZXJmb3JtYW5jZSBwYXJpdHkgd2l0aCBpdHMgcHJlZGVjZXNzb3IgaW4gc3RhbmRhcmQgbW9kZSB3aGlsZSBvZmZlcmluZyBhbiBleHRlbmRlZCByZWFzb25pbmcgbW9kZSBmb3IgZW5oYW5jZWQgYWNjdXJhY3kgaW4gbWF0aCwgY29kaW5nLCBhbmQgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzLlxuXG5SZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLTctc29ubmV0KSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNy1zb25uZXQ6dGhpbmtpbmciLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy43IFNvbm5ldCAodGhpbmtpbmcpIiwiY3JlYXRlZCI6MTc0MDQyMjExMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy43IFNvbm5ldCBpcyBhbiBhZHZhbmNlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCB3aXRoIGltcHJvdmVkIHJlYXNvbmluZywgY29kaW5nLCBhbmQgcHJvYmxlbS1zb2x2aW5nIGNhcGFiaWxpdGllcy4gSXQgaW50cm9kdWNlcyBhIGh5YnJpZCByZWFzb25pbmcgYXBwcm9hY2gsIGFsbG93aW5nIHVzZXJzIHRvIGNob29zZSBiZXR3ZWVuIHJhcGlkIHJlc3BvbnNlcyBhbmQgZXh0ZW5kZWQsIHN0ZXAtYnktc3RlcCBwcm9jZXNzaW5nIGZvciBjb21wbGV4IHRhc2tzLiBUaGUgbW9kZWwgZGVtb25zdHJhdGVzIG5vdGFibGUgaW1wcm92ZW1lbnRzIGluIGNvZGluZywgcGFydGljdWxhcmx5IGluIGZyb250LWVuZCBkZXZlbG9wbWVudCBhbmQgZnVsbC1zdGFjayB1cGRhdGVzLCBhbmQgZXhjZWxzIGluIGFnZW50aWMgd29ya2Zsb3dzLCB3aGVyZSBpdCBjYW4gYXV0b25vbW91c2x5IG5hdmlnYXRlIG11bHRpLXN0ZXAgcHJvY2Vzc2VzLiBcblxuQ2xhdWRlIDMuNyBTb25uZXQgbWFpbnRhaW5zIHBlcmZvcm1hbmNlIHBhcml0eSB3aXRoIGl0cyBwcmVkZWNlc3NvciBpbiBzdGFuZGFyZCBtb2RlIHdoaWxlIG9mZmVyaW5nIGFuIGV4dGVuZGVkIHJlYXNvbmluZyBtb2RlIGZvciBlbmhhbmNlZCBhY2N1cmFjeSBpbiBtYXRoLCBjb2RpbmcsIGFuZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcgdGFza3MuXG5cblJlYWQgbW9yZSBhdCB0aGUgW2Jsb2cgcG9zdCBoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtNy1zb25uZXQpIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy43LXNvbm5ldDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNyBTb25uZXQgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3NDA0MjIxMTAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNyBTb25uZXQgaXMgYW4gYWR2YW5jZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgd2l0aCBpbXByb3ZlZCByZWFzb25pbmcsIGNvZGluZywgYW5kIHByb2JsZW0tc29sdmluZyBjYXBhYmlsaXRpZXMuIEl0IGludHJvZHVjZXMgYSBoeWJyaWQgcmVhc29uaW5nIGFwcHJvYWNoLCBhbGxvd2luZyB1c2VycyB0byBjaG9vc2UgYmV0d2VlbiByYXBpZCByZXNwb25zZXMgYW5kIGV4dGVuZGVkLCBzdGVwLWJ5LXN0ZXAgcHJvY2Vzc2luZyBmb3IgY29tcGxleCB0YXNrcy4gVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBjb2RpbmcsIHBhcnRpY3VsYXJseSBpbiBmcm9udC1lbmQgZGV2ZWxvcG1lbnQgYW5kIGZ1bGwtc3RhY2sgdXBkYXRlcywgYW5kIGV4Y2VscyBpbiBhZ2VudGljIHdvcmtmbG93cywgd2hlcmUgaXQgY2FuIGF1dG9ub21vdXNseSBuYXZpZ2F0ZSBtdWx0aS1zdGVwIHByb2Nlc3Nlcy4gXG5cbkNsYXVkZSAzLjcgU29ubmV0IG1haW50YWlucyBwZXJmb3JtYW5jZSBwYXJpdHkgd2l0aCBpdHMgcHJlZGVjZXNzb3IgaW4gc3RhbmRhcmQgbW9kZSB3aGlsZSBvZmZlcmluZyBhbiBleHRlbmRlZCByZWFzb25pbmcgbW9kZSBmb3IgZW5oYW5jZWQgYWNjdXJhY3kgaW4gbWF0aCwgY29kaW5nLCBhbmQgaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIHRhc2tzLlxuXG5SZWFkIG1vcmUgYXQgdGhlIFtibG9nIHBvc3QgaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLTctc29ubmV0KSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAzNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicGVycGxleGl0eS9yMS0xNzc2IiwibmFtZSI6IlBlcnBsZXhpdHk6IFIxIDE3NzYiLCJjcmVhdGVkIjoxNzQwMDA0OTI5LCJkZXNjcmlwdGlvbiI6IlIxIDE3NzYgaXMgYSB2ZXJzaW9uIG9mIERlZXBTZWVrLVIxIHRoYXQgaGFzIGJlZW4gcG9zdC10cmFpbmVkIHRvIHJlbW92ZSBjZW5zb3JzaGlwIGNvbnN0cmFpbnRzIHJlbGF0ZWQgdG8gdG9waWNzIHJlc3RyaWN0ZWQgYnkgdGhlIENoaW5lc2UgZ292ZXJubWVudC4gVGhlIG1vZGVsIHJldGFpbnMgaXRzIG9yaWdpbmFsIHJlYXNvbmluZyBjYXBhYmlsaXRpZXMgd2hpbGUgcHJvdmlkaW5nIGRpcmVjdCByZXNwb25zZXMgdG8gYSB3aWRlciByYW5nZSBvZiBxdWVyaWVzLiBSMSAxNzc2IGlzIGFuIG9mZmxpbmUgY2hhdCBtb2RlbCB0aGF0IGRvZXMgbm90IHVzZSB0aGUgcGVycGxleGl0eSBzZWFyY2ggc3Vic3lzdGVtLlxuXG5UaGUgbW9kZWwgd2FzIHRlc3RlZCBvbiBhIG11bHRpbGluZ3VhbCBkYXRhc2V0IG9mIG92ZXIgMSwwMDAgZXhhbXBsZXMgY292ZXJpbmcgc2Vuc2l0aXZlIHRvcGljcyB0byBtZWFzdXJlIGl0cyBsaWtlbGlob29kIG9mIHJlZnVzYWwgb3Igb3Zlcmx5IGZpbHRlcmVkIHJlc3BvbnNlcy4gW0V2YWx1YXRpb24gUmVzdWx0c10oaHR0cHM6Ly9jZG4tdXBsb2Fkcy5odWdnaW5nZmFjZS5jby9wcm9kdWN0aW9uL3VwbG9hZHMvNjc1YzgzMzJkMDFmNTkzZGM5MDgxN2Y1L0dpTjJWcUM1aGF3VWdBR0o2b0hsYS5wbmcpIEl0cyBwZXJmb3JtYW5jZSBvbiBtYXRoIGFuZCByZWFzb25pbmcgYmVuY2htYXJrcyByZW1haW5zIHNpbWlsYXIgdG8gdGhlIGJhc2UgUjEgbW9kZWwuIFtSZWFzb25pbmcgUGVyZm9ybWFuY2VdKGh0dHBzOi8vY2RuLXVwbG9hZHMuaHVnZ2luZ2ZhY2UuY28vcHJvZHVjdGlvbi91cGxvYWRzLzY3NWM4MzMyZDAxZjU5M2RjOTA4MTdmNS9uNFo5QnlxcDJTN3NLVXZDdkk0MFIucG5nKVxuXG5SZWFkIG1vcmUgb24gdGhlIFtCbG9nIFBvc3RdKGh0dHBzOi8vcGVycGxleGl0eS5haS9odWIvYmxvZy9vcGVuLXNvdXJjaW5nLXIxLTE3NzYpIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtc2FiYSIsIm5hbWUiOiJNaXN0cmFsOiBTYWJhIiwiY3JlYXRlZCI6MTczOTgwMzIzOSwiZGVzY3JpcHRpb24iOiJNaXN0cmFsIFNhYmEgaXMgYSAyNEItcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgdGhlIE1pZGRsZSBFYXN0IGFuZCBTb3V0aCBBc2lhLCBkZWxpdmVyaW5nIGFjY3VyYXRlIGFuZCBjb250ZXh0dWFsbHkgcmVsZXZhbnQgcmVzcG9uc2VzIHdoaWxlIG1haW50YWluaW5nIGVmZmljaWVudCBwZXJmb3JtYW5jZS4gVHJhaW5lZCBvbiBjdXJhdGVkIHJlZ2lvbmFsIGRhdGFzZXRzLCBpdCBzdXBwb3J0cyBtdWx0aXBsZSBJbmRpYW4tb3JpZ2luIGxhbmd1YWdlc+KAlGluY2x1ZGluZyBUYW1pbCBhbmQgTWFsYXlhbGFt4oCUYWxvbmdzaWRlIEFyYWJpYy4gVGhpcyBtYWtlcyBpdCBhIHZlcnNhdGlsZSBvcHRpb24gZm9yIGEgcmFuZ2Ugb2YgcmVnaW9uYWwgYW5kIG11bHRpbGluZ3VhbCBhcHBsaWNhdGlvbnMuIFJlYWQgbW9yZSBhdCB0aGUgYmxvZyBwb3N0IFtoZXJlXShodHRwczovL21pc3RyYWwuYWkvZW4vbmV3cy9taXN0cmFsLXNhYmEpIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbjMuMC1yMS1taXN0cmFsLTI0YjpmcmVlIiwibmFtZSI6IkRvbHBoaW4zLjAgUjEgTWlzdHJhbCAyNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTczOTQ2MjQ5OCwiZGVzY3JpcHRpb24iOiJEb2xwaGluIDMuMCBSMSBpcyB0aGUgbmV4dCBnZW5lcmF0aW9uIG9mIHRoZSBEb2xwaGluIHNlcmllcyBvZiBpbnN0cnVjdC10dW5lZCBtb2RlbHMuICBEZXNpZ25lZCB0byBiZSB0aGUgdWx0aW1hdGUgZ2VuZXJhbCBwdXJwb3NlIGxvY2FsIG1vZGVsLCBlbmFibGluZyBjb2RpbmcsIG1hdGgsIGFnZW50aWMsIGZ1bmN0aW9uIGNhbGxpbmcsIGFuZCBnZW5lcmFsIHVzZSBjYXNlcy5cblxuVGhlIFIxIHZlcnNpb24gaGFzIGJlZW4gdHJhaW5lZCBmb3IgMyBlcG9jaHMgdG8gcmVhc29uIHVzaW5nIDgwMGsgcmVhc29uaW5nIHRyYWNlcyBmcm9tIHRoZSBEb2xwaGluLVIxIGRhdGFzZXQuXG5cbkRvbHBoaW4gYWltcyB0byBiZSBhIGdlbmVyYWwgcHVycG9zZSByZWFzb25pbmcgaW5zdHJ1Y3QgbW9kZWwsIHNpbWlsYXIgdG8gdGhlIG1vZGVscyBiZWhpbmQgQ2hhdEdQVCwgQ2xhdWRlLCBHZW1pbmkuXG5cblBhcnQgb2YgdGhlIFtEb2xwaGluIDMuMCBDb2xsZWN0aW9uXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NvbGxlY3Rpb25zL2NvZ25pdGl2ZWNvbXB1dGF0aW9ucy9kb2xwaGluLTMwLTY3N2FiNDdmNzNkN2ZmNjY3NDM5NzlhMykgQ3VyYXRlZCBhbmQgdHJhaW5lZCBieSBbRXJpYyBIYXJ0Zm9yZF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9laGFydGZvcmQpLCBbQmVuIEdpdHRlcl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9iaWdzdG9ybSksIFtCbG91c2VKdXJ5XShodHRwczovL2h1Z2dpbmdmYWNlLmNvL0Jsb3VzZUp1cnkpIGFuZCBbQ29nbml0aXZlIENvbXB1dGF0aW9uc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9jb2duaXRpdmVjb21wdXRhdGlvbnMpIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbjMuMC1taXN0cmFsLTI0YjpmcmVlIiwibmFtZSI6IkRvbHBoaW4zLjAgTWlzdHJhbCAyNEIgKGZyZWUpIiwiY3JlYXRlZCI6MTczOTQ2MjAxOSwiZGVzY3JpcHRpb24iOiJEb2xwaGluIDMuMCBpcyB0aGUgbmV4dCBnZW5lcmF0aW9uIG9mIHRoZSBEb2xwaGluIHNlcmllcyBvZiBpbnN0cnVjdC10dW5lZCBtb2RlbHMuICBEZXNpZ25lZCB0byBiZSB0aGUgdWx0aW1hdGUgZ2VuZXJhbCBwdXJwb3NlIGxvY2FsIG1vZGVsLCBlbmFibGluZyBjb2RpbmcsIG1hdGgsIGFnZW50aWMsIGZ1bmN0aW9uIGNhbGxpbmcsIGFuZCBnZW5lcmFsIHVzZSBjYXNlcy5cblxuRG9scGhpbiBhaW1zIHRvIGJlIGEgZ2VuZXJhbCBwdXJwb3NlIGluc3RydWN0IG1vZGVsLCBzaW1pbGFyIHRvIHRoZSBtb2RlbHMgYmVoaW5kIENoYXRHUFQsIENsYXVkZSwgR2VtaW5pLiBcblxuUGFydCBvZiB0aGUgW0RvbHBoaW4gMy4wIENvbGxlY3Rpb25dKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vY29sbGVjdGlvbnMvY29nbml0aXZlY29tcHV0YXRpb25zL2RvbHBoaW4tMzAtNjc3YWI0N2Y3M2Q3ZmY2Njc0Mzk3OWEzKSBDdXJhdGVkIGFuZCB0cmFpbmVkIGJ5IFtFcmljIEhhcnRmb3JkXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2VoYXJ0Zm9yZCksIFtCZW4gR2l0dGVyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2JpZ3N0b3JtKSwgW0Jsb3VzZUp1cnldKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQmxvdXNlSnVyeSkgYW5kIFtDb2duaXRpdmUgQ29tcHV0YXRpb25zXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NvZ25pdGl2ZWNvbXB1dGF0aW9ucykiLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtZ3VhcmQtMy04YiIsIm5hbWUiOiJMbGFtYSBHdWFyZCAzIDhCIiwiY3JlYXRlZCI6MTczOTQwMTMxOCwiZGVzY3JpcHRpb24iOiJMbGFtYSBHdWFyZCAzIGlzIGEgTGxhbWEtMy4xLThCIHByZXRyYWluZWQgbW9kZWwsIGZpbmUtdHVuZWQgZm9yIGNvbnRlbnQgc2FmZXR5IGNsYXNzaWZpY2F0aW9uLiBTaW1pbGFyIHRvIHByZXZpb3VzIHZlcnNpb25zLCBpdCBjYW4gYmUgdXNlZCB0byBjbGFzc2lmeSBjb250ZW50IGluIGJvdGggTExNIGlucHV0cyAocHJvbXB0IGNsYXNzaWZpY2F0aW9uKSBhbmQgaW4gTExNIHJlc3BvbnNlcyAocmVzcG9uc2UgY2xhc3NpZmljYXRpb24pLiBJdCBhY3RzIGFzIGFuIExMTSDigJMgaXQgZ2VuZXJhdGVzIHRleHQgaW4gaXRzIG91dHB1dCB0aGF0IGluZGljYXRlcyB3aGV0aGVyIGEgZ2l2ZW4gcHJvbXB0IG9yIHJlc3BvbnNlIGlzIHNhZmUgb3IgdW5zYWZlLCBhbmQgaWYgdW5zYWZlLCBpdCBhbHNvIGxpc3RzIHRoZSBjb250ZW50IGNhdGVnb3JpZXMgdmlvbGF0ZWQuXG5cbkxsYW1hIEd1YXJkIDMgd2FzIGFsaWduZWQgdG8gc2FmZWd1YXJkIGFnYWluc3QgdGhlIE1MQ29tbW9ucyBzdGFuZGFyZGl6ZWQgaGF6YXJkcyB0YXhvbm9teSBhbmQgZGVzaWduZWQgdG8gc3VwcG9ydCBMbGFtYSAzLjEgY2FwYWJpbGl0aWVzLiBTcGVjaWZpY2FsbHksIGl0IHByb3ZpZGVzIGNvbnRlbnQgbW9kZXJhdGlvbiBpbiA4IGxhbmd1YWdlcywgYW5kIHdhcyBvcHRpbWl6ZWQgdG8gc3VwcG9ydCBzYWZldHkgYW5kIHNlY3VyaXR5IGZvciBzZWFyY2ggYW5kIGNvZGUgaW50ZXJwcmV0ZXIgdG9vbCBjYWxscy5cbiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6Im5vbmUifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvbzMtbWluaS1oaWdoIiwibmFtZSI6Ik9wZW5BSTogbzMgTWluaSBIaWdoIiwiY3JlYXRlZCI6MTczOTM3MjYxMSwiZGVzY3JpcHRpb24iOiJPcGVuQUkgbzMtbWluaS1oaWdoIGlzIHRoZSBzYW1lIG1vZGVsIGFzIFtvMy1taW5pXSgvb3BlbmFpL28zLW1pbmkpIHdpdGggcmVhc29uaW5nX2VmZm9ydCBzZXQgdG8gaGlnaC4gXG5cbm8zLW1pbmkgaXMgYSBjb3N0LWVmZmljaWVudCBsYW5ndWFnZSBtb2RlbCBvcHRpbWl6ZWQgZm9yIFNURU0gcmVhc29uaW5nIHRhc2tzLCBwYXJ0aWN1bGFybHkgZXhjZWxsaW5nIGluIHNjaWVuY2UsIG1hdGhlbWF0aWNzLCBhbmQgY29kaW5nLiBUaGUgbW9kZWwgZmVhdHVyZXMgdGhyZWUgYWRqdXN0YWJsZSByZWFzb25pbmcgZWZmb3J0IGxldmVscyBhbmQgc3VwcG9ydHMga2V5IGRldmVsb3BlciBjYXBhYmlsaXRpZXMgaW5jbHVkaW5nIGZ1bmN0aW9uIGNhbGxpbmcsIHN0cnVjdHVyZWQgb3V0cHV0cywgYW5kIHN0cmVhbWluZywgdGhvdWdoIGl0IGRvZXMgbm90IGluY2x1ZGUgdmlzaW9uIHByb2Nlc3NpbmcgY2FwYWJpbGl0aWVzLlxuXG5UaGUgbW9kZWwgZGVtb25zdHJhdGVzIHNpZ25pZmljYW50IGltcHJvdmVtZW50cyBvdmVyIGl0cyBwcmVkZWNlc3Nvciwgd2l0aCBleHBlcnQgdGVzdGVycyBwcmVmZXJyaW5nIGl0cyByZXNwb25zZXMgNTYlIG9mIHRoZSB0aW1lIGFuZCBub3RpbmcgYSAzOSUgcmVkdWN0aW9uIGluIG1ham9yIGVycm9ycyBvbiBjb21wbGV4IHF1ZXN0aW9ucy4gV2l0aCBtZWRpdW0gcmVhc29uaW5nIGVmZm9ydCBzZXR0aW5ncywgbzMtbWluaSBtYXRjaGVzIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgbGFyZ2VyIG8xIG1vZGVsIG9uIGNoYWxsZW5naW5nIHJlYXNvbmluZyBldmFsdWF0aW9ucyBsaWtlIEFJTUUgYW5kIEdQUUEsIHdoaWxlIG1haW50YWluaW5nIGxvd2VyIGxhdGVuY3kgYW5kIGNvc3QuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0NCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwNTUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLWxsYW1hLThiIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIExsYW1hIDhCIiwiY3JlYXRlZCI6MTczODkzNzcxOCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIExsYW1hIDhCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtMbGFtYS0zLjEtOEItSW5zdHJ1Y3RdKC9tZXRhLWxsYW1hL2xsYW1hLTMuMS04Yi1pbnN0cnVjdCksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIFRoZSBtb2RlbCBjb21iaW5lcyBhZHZhbmNlZCBkaXN0aWxsYXRpb24gdGVjaG5pcXVlcyB0byBhY2hpZXZlIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpcGxlIGJlbmNobWFya3MsIGluY2x1ZGluZzpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA1MC40XG4tIE1BVEgtNTAwIHBhc3NAMTogODkuMVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTIwNVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuXG5cbkh1Z2dpbmcgRmFjZTogXG4tIFtMbGFtYS0zLjEtOEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbWV0YS1sbGFtYS9MbGFtYS0zLjEtOEIpIFxuLSBbRGVlcFNlZWstUjEtRGlzdGlsbC1MbGFtYS04Ql0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9kZWVwc2Vlay1haS9EZWVwU2Vlay1SMS1EaXN0aWxsLUxsYW1hLThCKSAgIHwiLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA0IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtMDAxIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIDIuMCBGbGFzaCIsImNyZWF0ZWQiOjE3Mzg3Njk0MTMsImRlc2NyaXB0aW9uIjoiR2VtaW5pIEZsYXNoIDIuMCBvZmZlcnMgYSBzaWduaWZpY2FudGx5IGZhc3RlciB0aW1lIHRvIGZpcnN0IHRva2VuIChUVEZUKSBjb21wYXJlZCB0byBbR2VtaW5pIEZsYXNoIDEuNV0oL2dvb2dsZS9nZW1pbmktZmxhc2gtMS41KSwgd2hpbGUgbWFpbnRhaW5pbmcgcXVhbGl0eSBvbiBwYXIgd2l0aCBsYXJnZXIgbW9kZWxzIGxpa2UgW0dlbWluaSBQcm8gMS41XSgvZ29vZ2xlL2dlbWluaS1wcm8tMS41KS4gSXQgaW50cm9kdWNlcyBub3RhYmxlIGVuaGFuY2VtZW50cyBpbiBtdWx0aW1vZGFsIHVuZGVyc3RhbmRpbmcsIGNvZGluZyBjYXBhYmlsaXRpZXMsIGNvbXBsZXggaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBhbmQgZnVuY3Rpb24gY2FsbGluZy4gVGhlc2UgYWR2YW5jZW1lbnRzIGNvbWUgdG9nZXRoZXIgdG8gZGVsaXZlciBtb3JlIHNlYW1sZXNzIGFuZCByb2J1c3QgYWdlbnRpYyBleHBlcmllbmNlcy4iLCJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDAyNTgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tdmwtcGx1cyIsIm5hbWUiOiJRd2VuOiBRd2VuIFZMIFBsdXMiLCJjcmVhdGVkIjoxNzM4NzMxMjU1LCJkZXNjcmlwdGlvbiI6IlF3ZW4ncyBFbmhhbmNlZCBMYXJnZSBWaXN1YWwgTGFuZ3VhZ2UgTW9kZWwuIFNpZ25pZmljYW50bHkgdXBncmFkZWQgZm9yIGRldGFpbGVkIHJlY29nbml0aW9uIGNhcGFiaWxpdGllcyBhbmQgdGV4dCByZWNvZ25pdGlvbiBhYmlsaXRpZXMsIHN1cHBvcnRpbmcgdWx0cmEtaGlnaCBwaXhlbCByZXNvbHV0aW9ucyB1cCB0byBtaWxsaW9ucyBvZiBwaXhlbHMgYW5kIGV4dHJlbWUgYXNwZWN0IHJhdGlvcyBmb3IgaW1hZ2UgaW5wdXQuIEl0IGRlbGl2ZXJzIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGFjcm9zcyBhIGJyb2FkIHJhbmdlIG9mIHZpc3VhbCB0YXNrcy5cbiIsImNvbnRleHRfbGVuZ3RoIjo3NTAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwMjY4OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjc1MDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTUwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpb24tbGFicy9haW9uLTEuMCIsIm5hbWUiOiJBaW9uTGFiczogQWlvbi0xLjAiLCJjcmVhdGVkIjoxNzM4Njk3NTU3LCJkZXNjcmlwdGlvbiI6IkFpb24tMS4wIGlzIGEgbXVsdGktbW9kZWwgc3lzdGVtIGRlc2lnbmVkIGZvciBoaWdoIHBlcmZvcm1hbmNlIGFjcm9zcyB2YXJpb3VzIHRhc2tzLCBpbmNsdWRpbmcgcmVhc29uaW5nIGFuZCBjb2RpbmcuIEl0IGlzIGJ1aWx0IG9uIERlZXBTZWVrLVIxLCBhdWdtZW50ZWQgd2l0aCBhZGRpdGlvbmFsIG1vZGVscyBhbmQgdGVjaG5pcXVlcyBzdWNoIGFzIFRyZWUgb2YgVGhvdWdodHMgKFRvVCkgYW5kIE1peHR1cmUgb2YgRXhwZXJ0cyAoTW9FKS4gSXQgaXMgQWlvbiBMYWIncyBtb3N0IHBvd2VyZnVsIHJlYXNvbmluZyBtb2RlbC4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjMyNzY4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWlvbi1sYWJzL2Fpb24tMS4wLW1pbmkiLCJuYW1lIjoiQWlvbkxhYnM6IEFpb24tMS4wLU1pbmkiLCJjcmVhdGVkIjoxNzM4Njk3MTA3LCJkZXNjcmlwdGlvbiI6IkFpb24tMS4wLU1pbmkgMzJCIHBhcmFtZXRlciBtb2RlbCBpcyBhIGRpc3RpbGxlZCB2ZXJzaW9uIG9mIHRoZSBEZWVwU2Vlay1SMSBtb2RlbCwgZGVzaWduZWQgZm9yIHN0cm9uZyBwZXJmb3JtYW5jZSBpbiByZWFzb25pbmcgZG9tYWlucyBzdWNoIGFzIG1hdGhlbWF0aWNzLCBjb2RpbmcsIGFuZCBsb2dpYy4gSXQgaXMgYSBtb2RpZmllZCB2YXJpYW50IG9mIGEgRnVzZUFJIG1vZGVsIHRoYXQgb3V0cGVyZm9ybXMgUjEtRGlzdGlsbC1Rd2VuLTMyQiBhbmQgUjEtRGlzdGlsbC1MbGFtYS03MEIsIHdpdGggYmVuY2htYXJrIHJlc3VsdHMgYXZhaWxhYmxlIG9uIGl0cyBbSHVnZ2luZyBGYWNlIHBhZ2VdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vRnVzZUFJL0Z1c2VPMS1EZWVwU2Vla1IxLVF3US1Ta3lUMS0zMkItUHJldmlldyksIGluZGVwZW5kZW50bHkgcmVwbGljYXRlZCBmb3IgdmVyaWZpY2F0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpb24tbGFicy9haW9uLXJwLWxsYW1hLTMuMS04YiIsIm5hbWUiOiJBaW9uTGFiczogQWlvbi1SUCAxLjAgKDhCKSIsImNyZWF0ZWQiOjE3Mzg2OTY3MTgsImRlc2NyaXB0aW9uIjoiQWlvbi1SUC1MbGFtYS0zLjEtOEIgcmFua3MgdGhlIGhpZ2hlc3QgaW4gdGhlIGNoYXJhY3RlciBldmFsdWF0aW9uIHBvcnRpb24gb2YgdGhlIFJQQmVuY2gtQXV0byBiZW5jaG1hcmssIGEgcm9sZXBsYXlpbmctc3BlY2lmaWMgdmFyaWFudCBvZiBBcmVuYS1IYXJkLUF1dG8sIHdoZXJlIExMTXMgZXZhbHVhdGUgZWFjaCBvdGhlcuKAmXMgcmVzcG9uc2VzLiBJdCBpcyBhIGZpbmUtdHVuZWQgYmFzZSBtb2RlbCByYXRoZXIgdGhhbiBhbiBpbnN0cnVjdCBtb2RlbCwgZGVzaWduZWQgdG8gcHJvZHVjZSBtb3JlIG5hdHVyYWwgYW5kIHZhcmllZCB3cml0aW5nLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tdmwtbWF4IiwibmFtZSI6IlF3ZW46IFF3ZW4gVkwgTWF4IiwiY3JlYXRlZCI6MTczODQzNDMwNCwiZGVzY3JpcHRpb24iOiJRd2VuIFZMIE1heCBpcyBhIHZpc3VhbCB1bmRlcnN0YW5kaW5nIG1vZGVsIHdpdGggNzUwMCB0b2tlbnMgY29udGV4dCBsZW5ndGguIEl0IGV4Y2VscyBpbiBkZWxpdmVyaW5nIG9wdGltYWwgcGVyZm9ybWFuY2UgZm9yIGEgYnJvYWRlciBzcGVjdHJ1bSBvZiBjb21wbGV4IHRhc2tzLlxuIiwiY29udGV4dF9sZW5ndGgiOjc1MDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDMyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAxMDI0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NzUwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNTAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLXR1cmJvIiwibmFtZSI6IlF3ZW46IFF3ZW4tVHVyYm8iLCJjcmVhdGVkIjoxNzM4NDEwOTc0LCJkZXNjcmlwdGlvbiI6IlF3ZW4tVHVyYm8sIGJhc2VkIG9uIFF3ZW4yLjUsIGlzIGEgMU0gY29udGV4dCBtb2RlbCB0aGF0IHByb3ZpZGVzIGZhc3Qgc3BlZWQgYW5kIGxvdyBjb3N0LCBzdWl0YWJsZSBmb3Igc2ltcGxlIHRhc2tzLiIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4yLjUtdmwtNzJiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiUXdlbjogUXdlbjIuNSBWTCA3MkIgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTczODQxMDMxMSwiZGVzY3JpcHRpb24iOiJRd2VuMi41LVZMIGlzIHByb2ZpY2llbnQgaW4gcmVjb2duaXppbmcgY29tbW9uIG9iamVjdHMgc3VjaCBhcyBmbG93ZXJzLCBiaXJkcywgZmlzaCwgYW5kIGluc2VjdHMuIEl0IGlzIGFsc28gaGlnaGx5IGNhcGFibGUgb2YgYW5hbHl6aW5nIHRleHRzLCBjaGFydHMsIGljb25zLCBncmFwaGljcywgYW5kIGxheW91dHMgd2l0aGluIGltYWdlcy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbjIuNS12bC03MmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjogUXdlbjIuNSBWTCA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzM4NDEwMzExLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtVkwgaXMgcHJvZmljaWVudCBpbiByZWNvZ25pemluZyBjb21tb24gb2JqZWN0cyBzdWNoIGFzIGZsb3dlcnMsIGJpcmRzLCBmaXNoLCBhbmQgaW5zZWN0cy4gSXQgaXMgYWxzbyBoaWdobHkgY2FwYWJsZSBvZiBhbmFseXppbmcgdGV4dHMsIGNoYXJ0cywgaWNvbnMsIGdyYXBoaWNzLCBhbmQgbGF5b3V0cyB3aXRoaW4gaW1hZ2VzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLXBsdXMiLCJuYW1lIjoiUXdlbjogUXdlbi1QbHVzIiwiY3JlYXRlZCI6MTczODQwOTg0MCwiZGVzY3JpcHRpb24iOiJRd2VuLVBsdXMsIGJhc2VkIG9uIHRoZSBRd2VuMi41IGZvdW5kYXRpb24gbW9kZWwsIGlzIGEgMTMxSyBjb250ZXh0IG1vZGVsIHdpdGggYSBiYWxhbmNlZCBwZXJmb3JtYW5jZSwgc3BlZWQsIGFuZCBjb3N0IGNvbWJpbmF0aW9uLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA0IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tbWF4IiwibmFtZSI6IlF3ZW46IFF3ZW4tTWF4ICIsImNyZWF0ZWQiOjE3Mzg0MDIyODksImRlc2NyaXB0aW9uIjoiUXdlbi1NYXgsIGJhc2VkIG9uIFF3ZW4yLjUsIHByb3ZpZGVzIHRoZSBiZXN0IGluZmVyZW5jZSBwZXJmb3JtYW5jZSBhbW9uZyBbUXdlbiBtb2RlbHNdKC9xd2VuKSwgZXNwZWNpYWxseSBmb3IgY29tcGxleCBtdWx0aS1zdGVwIHRhc2tzLiBJdCdzIGEgbGFyZ2Utc2NhbGUgTW9FIG1vZGVsIHRoYXQgaGFzIGJlZW4gcHJldHJhaW5lZCBvbiBvdmVyIDIwIHRyaWxsaW9uIHRva2VucyBhbmQgZnVydGhlciBwb3N0LXRyYWluZWQgd2l0aCBjdXJhdGVkIFN1cGVydmlzZWQgRmluZS1UdW5pbmcgKFNGVCkgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRikgbWV0aG9kb2xvZ2llcy4gVGhlIHBhcmFtZXRlciBjb3VudCBpcyB1bmtub3duLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDY0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28zLW1pbmkiLCJuYW1lIjoiT3BlbkFJOiBvMyBNaW5pIiwiY3JlYXRlZCI6MTczODM1MTcyMSwiZGVzY3JpcHRpb24iOiJPcGVuQUkgbzMtbWluaSBpcyBhIGNvc3QtZWZmaWNpZW50IGxhbmd1YWdlIG1vZGVsIG9wdGltaXplZCBmb3IgU1RFTSByZWFzb25pbmcgdGFza3MsIHBhcnRpY3VsYXJseSBleGNlbGxpbmcgaW4gc2NpZW5jZSwgbWF0aGVtYXRpY3MsIGFuZCBjb2RpbmcuXG5cblRoaXMgbW9kZWwgc3VwcG9ydHMgdGhlIGByZWFzb25pbmdfZWZmb3J0YCBwYXJhbWV0ZXIsIHdoaWNoIGNhbiBiZSBzZXQgdG8gXCJoaWdoXCIsIFwibWVkaXVtXCIsIG9yIFwibG93XCIgdG8gY29udHJvbCB0aGUgdGhpbmtpbmcgdGltZSBvZiB0aGUgbW9kZWwuIFRoZSBkZWZhdWx0IGlzIFwibWVkaXVtXCIuIE9wZW5Sb3V0ZXIgYWxzbyBvZmZlcnMgdGhlIG1vZGVsIHNsdWcgYG9wZW5haS9vMy1taW5pLWhpZ2hgIHRvIGRlZmF1bHQgdGhlIHBhcmFtZXRlciB0byBcImhpZ2hcIi5cblxuVGhlIG1vZGVsIGZlYXR1cmVzIHRocmVlIGFkanVzdGFibGUgcmVhc29uaW5nIGVmZm9ydCBsZXZlbHMgYW5kIHN1cHBvcnRzIGtleSBkZXZlbG9wZXIgY2FwYWJpbGl0aWVzIGluY2x1ZGluZyBmdW5jdGlvbiBjYWxsaW5nLCBzdHJ1Y3R1cmVkIG91dHB1dHMsIGFuZCBzdHJlYW1pbmcsIHRob3VnaCBpdCBkb2VzIG5vdCBpbmNsdWRlIHZpc2lvbiBwcm9jZXNzaW5nIGNhcGFiaWxpdGllcy5cblxuVGhlIG1vZGVsIGRlbW9uc3RyYXRlcyBzaWduaWZpY2FudCBpbXByb3ZlbWVudHMgb3ZlciBpdHMgcHJlZGVjZXNzb3IsIHdpdGggZXhwZXJ0IHRlc3RlcnMgcHJlZmVycmluZyBpdHMgcmVzcG9uc2VzIDU2JSBvZiB0aGUgdGltZSBhbmQgbm90aW5nIGEgMzklIHJlZHVjdGlvbiBpbiBtYWpvciBlcnJvcnMgb24gY29tcGxleCBxdWVzdGlvbnMuIFdpdGggbWVkaXVtIHJlYXNvbmluZyBlZmZvcnQgc2V0dGluZ3MsIG8zLW1pbmkgbWF0Y2hlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGxhcmdlciBvMSBtb2RlbCBvbiBjaGFsbGVuZ2luZyByZWFzb25pbmcgZXZhbHVhdGlvbnMgbGlrZSBBSU1FIGFuZCBHUFFBLCB3aGlsZSBtYWludGFpbmluZyBsb3dlciBsYXRlbmN5IGFuZCBjb3N0LiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDU1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMDAwMCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1xd2VuLTEuNWIiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgUXdlbiAxLjVCIiwiY3JlYXRlZCI6MTczODMyODA2NywiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMS41QiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiAgW1F3ZW4gMi41IE1hdGggMS41Ql0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4yLjUtTWF0aC0xLjVCKSwgdXNpbmcgb3V0cHV0cyBmcm9tIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKS4gSXQncyBhIHZlcnkgc21hbGwgYW5kIGVmZmljaWVudCBtb2RlbCB3aGljaCBvdXRwZXJmb3JtcyBbR1BUIDRvIDA1MTNdKC9vcGVuYWkvZ3B0LTRvLTIwMjQtMDUtMTMpIG9uIE1hdGggQmVuY2htYXJrcy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiAyOC45XG4tIEFJTUUgMjAyNCBjb25zQDY0OiA1Mi43XG4tIE1BVEgtNTAwIHBhc3NAMTogODMuOVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1zbWFsbC0yNGItaW5zdHJ1Y3QtMjUwMTpmcmVlIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgU21hbGwgMyAoZnJlZSkiLCJjcmVhdGVkIjoxNzM4MjU1NDA5LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgU21hbGwgMyBpcyBhIDI0Qi1wYXJhbWV0ZXIgbGFuZ3VhZ2UgbW9kZWwgb3B0aW1pemVkIGZvciBsb3ctbGF0ZW5jeSBwZXJmb3JtYW5jZSBhY3Jvc3MgY29tbW9uIEFJIHRhc2tzLiBSZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLCBpdCBmZWF0dXJlcyBib3RoIHByZS10cmFpbmVkIGFuZCBpbnN0cnVjdGlvbi10dW5lZCB2ZXJzaW9ucyBkZXNpZ25lZCBmb3IgZWZmaWNpZW50IGxvY2FsIGRlcGxveW1lbnQuXG5cblRoZSBtb2RlbCBhY2hpZXZlcyA4MSUgYWNjdXJhY3kgb24gdGhlIE1NTFUgYmVuY2htYXJrIGFuZCBwZXJmb3JtcyBjb21wZXRpdGl2ZWx5IHdpdGggbGFyZ2VyIG1vZGVscyBsaWtlIExsYW1hIDMuMyA3MEIgYW5kIFF3ZW4gMzJCLCB3aGlsZSBvcGVyYXRpbmcgYXQgdGhyZWUgdGltZXMgdGhlIHNwZWVkIG9uIGVxdWl2YWxlbnQgaGFyZHdhcmUuIFtSZWFkIHRoZSBibG9nIHBvc3QgYWJvdXQgdGhlIG1vZGVsIGhlcmUuXShodHRwczovL21pc3RyYWwuYWkvbmV3cy9taXN0cmFsLXNtYWxsLTMvKSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1zbWFsbC0yNGItaW5zdHJ1Y3QtMjUwMSIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIFNtYWxsIDMiLCJjcmVhdGVkIjoxNzM4MjU1NDA5LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgU21hbGwgMyBpcyBhIDI0Qi1wYXJhbWV0ZXIgbGFuZ3VhZ2UgbW9kZWwgb3B0aW1pemVkIGZvciBsb3ctbGF0ZW5jeSBwZXJmb3JtYW5jZSBhY3Jvc3MgY29tbW9uIEFJIHRhc2tzLiBSZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLCBpdCBmZWF0dXJlcyBib3RoIHByZS10cmFpbmVkIGFuZCBpbnN0cnVjdGlvbi10dW5lZCB2ZXJzaW9ucyBkZXNpZ25lZCBmb3IgZWZmaWNpZW50IGxvY2FsIGRlcGxveW1lbnQuXG5cblRoZSBtb2RlbCBhY2hpZXZlcyA4MSUgYWNjdXJhY3kgb24gdGhlIE1NTFUgYmVuY2htYXJrIGFuZCBwZXJmb3JtcyBjb21wZXRpdGl2ZWx5IHdpdGggbGFyZ2VyIG1vZGVscyBsaWtlIExsYW1hIDMuMyA3MEIgYW5kIFF3ZW4gMzJCLCB3aGlsZSBvcGVyYXRpbmcgYXQgdGhyZWUgdGltZXMgdGhlIHNwZWVkIG9uIGVxdWl2YWxlbnQgaGFyZHdhcmUuIFtSZWFkIHRoZSBibG9nIHBvc3QgYWJvdXQgdGhlIG1vZGVsIGhlcmUuXShodHRwczovL21pc3RyYWwuYWkvbmV3cy9taXN0cmFsLXNtYWxsLTMvKSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMzJiOmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgUXdlbiAzMkIgKGZyZWUpIiwiY3JlYXRlZCI6MTczODE5NDgzMCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMzJCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtRd2VuIDIuNSAzMkJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMi41LTMyQiksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIEl0IG91dHBlcmZvcm1zIE9wZW5BSSdzIG8xLW1pbmkgYWNyb3NzIHZhcmlvdXMgYmVuY2htYXJrcywgYWNoaWV2aW5nIG5ldyBzdGF0ZS1vZi10aGUtYXJ0IHJlc3VsdHMgZm9yIGRlbnNlIG1vZGVscy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3Mi42XG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuM1xuLSBDb2RlRm9yY2VzIFJhdGluZzogMTY5MVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMzJiIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIFF3ZW4gMzJCIiwiY3JlYXRlZCI6MTczODE5NDgzMCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMzJCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtRd2VuIDIuNSAzMkJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMi41LTMyQiksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIEl0IG91dHBlcmZvcm1zIE9wZW5BSSdzIG8xLW1pbmkgYWNyb3NzIHZhcmlvdXMgYmVuY2htYXJrcywgYWNoaWV2aW5nIG5ldyBzdGF0ZS1vZi10aGUtYXJ0IHJlc3VsdHMgZm9yIGRlbnNlIG1vZGVscy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3Mi42XG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuM1xuLSBDb2RlRm9yY2VzIFJhdGluZzogMTY5MVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1xd2VuLTE0YjpmcmVlIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIFF3ZW4gMTRCIChmcmVlKSIsImNyZWF0ZWQiOjE3MzgxOTM5NDAsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgRGlzdGlsbCBRd2VuIDE0QiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiBbUXdlbiAyLjUgMTRCXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2RlZXBzZWVrLWFpL0RlZXBTZWVrLVIxLURpc3RpbGwtUXdlbi0xNEIpLCB1c2luZyBvdXRwdXRzIGZyb20gW0RlZXBTZWVrIFIxXSgvZGVlcHNlZWsvZGVlcHNlZWstcjEpLiBJdCBvdXRwZXJmb3JtcyBPcGVuQUkncyBvMS1taW5pIGFjcm9zcyB2YXJpb3VzIGJlbmNobWFya3MsIGFjaGlldmluZyBuZXcgc3RhdGUtb2YtdGhlLWFydCByZXN1bHRzIGZvciBkZW5zZSBtb2RlbHMuXG5cbk90aGVyIGJlbmNobWFyayByZXN1bHRzIGluY2x1ZGU6XG5cbi0gQUlNRSAyMDI0IHBhc3NAMTogNjkuN1xuLSBNQVRILTUwMCBwYXNzQDE6IDkzLjlcbi0gQ29kZUZvcmNlcyBSYXRpbmc6IDE0ODFcblxuVGhlIG1vZGVsIGxldmVyYWdlcyBmaW5lLXR1bmluZyBmcm9tIERlZXBTZWVrIFIxJ3Mgb3V0cHV0cywgZW5hYmxpbmcgY29tcGV0aXRpdmUgcGVyZm9ybWFuY2UgY29tcGFyYWJsZSB0byBsYXJnZXIgZnJvbnRpZXIgbW9kZWxzLiIsImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1yMS1kaXN0aWxsLXF3ZW4tMTRiIiwibmFtZSI6IkRlZXBTZWVrOiBSMSBEaXN0aWxsIFF3ZW4gMTRCIiwiY3JlYXRlZCI6MTczODE5Mzk0MCwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIFF3ZW4gMTRCIGlzIGEgZGlzdGlsbGVkIGxhcmdlIGxhbmd1YWdlIG1vZGVsIGJhc2VkIG9uIFtRd2VuIDIuNSAxNEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vZGVlcHNlZWstYWkvRGVlcFNlZWstUjEtRGlzdGlsbC1Rd2VuLTE0QiksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIEl0IG91dHBlcmZvcm1zIE9wZW5BSSdzIG8xLW1pbmkgYWNyb3NzIHZhcmlvdXMgYmVuY2htYXJrcywgYWNoaWV2aW5nIG5ldyBzdGF0ZS1vZi10aGUtYXJ0IHJlc3VsdHMgZm9yIGRlbnNlIG1vZGVscy5cblxuT3RoZXIgYmVuY2htYXJrIHJlc3VsdHMgaW5jbHVkZTpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA2OS43XG4tIE1BVEgtNTAwIHBhc3NAMTogOTMuOVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTQ4MVxuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjQwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJwZXJwbGV4aXR5L3NvbmFyLXJlYXNvbmluZyIsIm5hbWUiOiJQZXJwbGV4aXR5OiBTb25hciBSZWFzb25pbmciLCJjcmVhdGVkIjoxNzM4MTMxMTA3LCJkZXNjcmlwdGlvbiI6IlNvbmFyIFJlYXNvbmluZyBpcyBhIHJlYXNvbmluZyBtb2RlbCBwcm92aWRlZCBieSBQZXJwbGV4aXR5IGJhc2VkIG9uIFtEZWVwU2VlayBSMV0oL2RlZXBzZWVrL2RlZXBzZWVrLXIxKS5cblxuSXQgYWxsb3dzIGRldmVsb3BlcnMgdG8gdXRpbGl6ZSBsb25nIGNoYWluIG9mIHRob3VnaHQgd2l0aCBidWlsdC1pbiB3ZWIgc2VhcmNoLiBTb25hciBSZWFzb25pbmcgaXMgdW5jZW5zb3JlZCBhbmQgaG9zdGVkIGluIFVTIGRhdGFjZW50ZXJzLiAiLCJjb250ZXh0X2xlbmd0aCI6MTI3MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNSIsInJlcXVlc3QiOiIwLjAwNSIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyNzAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicGVycGxleGl0eS9zb25hciIsIm5hbWUiOiJQZXJwbGV4aXR5OiBTb25hciIsImNyZWF0ZWQiOjE3MzgwMTM4MDgsImRlc2NyaXB0aW9uIjoiU29uYXIgaXMgbGlnaHR3ZWlnaHQsIGFmZm9yZGFibGUsIGZhc3QsIGFuZCBzaW1wbGUgdG8gdXNlIOKAlCBub3cgZmVhdHVyaW5nIGNpdGF0aW9ucyBhbmQgdGhlIGFiaWxpdHkgdG8gY3VzdG9taXplIHNvdXJjZXMuIEl0IGlzIGRlc2lnbmVkIGZvciBjb21wYW5pZXMgc2Vla2luZyB0byBpbnRlZ3JhdGUgbGlnaHR3ZWlnaHQgcXVlc3Rpb24tYW5kLWFuc3dlciBmZWF0dXJlcyBvcHRpbWl6ZWQgZm9yIHNwZWVkLiIsImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAxIiwicmVxdWVzdCI6IjAuMDA1IiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI3MDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJsaXF1aWQvbGZtLTdiIiwibmFtZSI6IkxpcXVpZDogTEZNIDdCIiwiY3JlYXRlZCI6MTczNzgwNjg4MywiZGVzY3JpcHRpb24iOiJMRk0tN0IsIGEgbmV3IGJlc3QtaW4tY2xhc3MgbGFuZ3VhZ2UgbW9kZWwuIExGTS03QiBpcyBkZXNpZ25lZCBmb3IgZXhjZXB0aW9uYWwgY2hhdCBjYXBhYmlsaXRpZXMsIGluY2x1ZGluZyBsYW5ndWFnZXMgbGlrZSBBcmFiaWMgYW5kIEphcGFuZXNlLiBQb3dlcmVkIGJ5IHRoZSBMaXF1aWQgRm91bmRhdGlvbiBNb2RlbCAoTEZNKSBhcmNoaXRlY3R1cmUsIGl0IGV4aGliaXRzIHVuaXF1ZSBmZWF0dXJlcyBsaWtlIGxvdyBtZW1vcnkgZm9vdHByaW50IGFuZCBmYXN0IGluZmVyZW5jZSBzcGVlZC4gXG5cbkxGTS03QiBpcyB0aGUgd29ybGTigJlzIGJlc3QtaW4tY2xhc3MgbXVsdGlsaW5ndWFsIGxhbmd1YWdlIG1vZGVsIGluIEVuZ2xpc2gsIEFyYWJpYywgYW5kIEphcGFuZXNlLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5saXF1aWQuYWkvbGZtLTdiKSBmb3IgYmVuY2htYXJrcyBhbmQgbW9yZSBpbmZvLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImxpcXVpZC9sZm0tM2IiLCJuYW1lIjoiTGlxdWlkOiBMRk0gM0IiLCJjcmVhdGVkIjoxNzM3ODA2NTAxLCJkZXNjcmlwdGlvbiI6IkxpcXVpZCdzIExGTSAzQiBkZWxpdmVycyBpbmNyZWRpYmxlIHBlcmZvcm1hbmNlIGZvciBpdHMgc2l6ZS4gSXQgcG9zaXRpb25zIGl0c2VsZiBhcyBmaXJzdCBwbGFjZSBhbW9uZyAzQiBwYXJhbWV0ZXIgdHJhbnNmb3JtZXJzLCBoeWJyaWRzLCBhbmQgUk5OIG1vZGVscyBJdCBpcyBhbHNvIG9uIHBhciB3aXRoIFBoaS0zLjUtbWluaSBvbiBtdWx0aXBsZSBiZW5jaG1hcmtzLCB3aGlsZSBiZWluZyAxOC40JSBzbWFsbGVyLlxuXG5MRk0tM0IgaXMgdGhlIGlkZWFsIGNob2ljZSBmb3IgbW9iaWxlIGFuZCBvdGhlciBlZGdlIHRleHQtYmFzZWQgYXBwbGljYXRpb25zLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL3d3dy5saXF1aWQuYWkvbGlxdWlkLWZvdW5kYXRpb24tbW9kZWxzKSBmb3IgYmVuY2htYXJrcyBhbmQgbW9yZSBpbmZvLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXIxLWRpc3RpbGwtbGxhbWEtNzBiOmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgTGxhbWEgNzBCIChmcmVlKSIsImNyZWF0ZWQiOjE3Mzc2NjMxNjksImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgRGlzdGlsbCBMbGFtYSA3MEIgaXMgYSBkaXN0aWxsZWQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgYmFzZWQgb24gW0xsYW1hLTMuMy03MEItSW5zdHJ1Y3RdKC9tZXRhLWxsYW1hL2xsYW1hLTMuMy03MGItaW5zdHJ1Y3QpLCB1c2luZyBvdXRwdXRzIGZyb20gW0RlZXBTZWVrIFIxXSgvZGVlcHNlZWsvZGVlcHNlZWstcjEpLiBUaGUgbW9kZWwgY29tYmluZXMgYWR2YW5jZWQgZGlzdGlsbGF0aW9uIHRlY2huaXF1ZXMgdG8gYWNoaWV2ZSBoaWdoIHBlcmZvcm1hbmNlIGFjcm9zcyBtdWx0aXBsZSBiZW5jaG1hcmtzLCBpbmNsdWRpbmc6XG5cbi0gQUlNRSAyMDI0IHBhc3NAMTogNzAuMFxuLSBNQVRILTUwMCBwYXNzQDE6IDk0LjVcbi0gQ29kZUZvcmNlcyBSYXRpbmc6IDE2MzNcblxuVGhlIG1vZGVsIGxldmVyYWdlcyBmaW5lLXR1bmluZyBmcm9tIERlZXBTZWVrIFIxJ3Mgb3V0cHV0cywgZW5hYmxpbmcgY29tcGV0aXRpdmUgcGVyZm9ybWFuY2UgY29tcGFyYWJsZSB0byBsYXJnZXIgZnJvbnRpZXIgbW9kZWxzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoiZGVlcHNlZWstcjEifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjEtZGlzdGlsbC1sbGFtYS03MGIiLCJuYW1lIjoiRGVlcFNlZWs6IFIxIERpc3RpbGwgTGxhbWEgNzBCIiwiY3JlYXRlZCI6MTczNzY2MzE2OSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBEaXN0aWxsIExsYW1hIDcwQiBpcyBhIGRpc3RpbGxlZCBsYXJnZSBsYW5ndWFnZSBtb2RlbCBiYXNlZCBvbiBbTGxhbWEtMy4zLTcwQi1JbnN0cnVjdF0oL21ldGEtbGxhbWEvbGxhbWEtMy4zLTcwYi1pbnN0cnVjdCksIHVzaW5nIG91dHB1dHMgZnJvbSBbRGVlcFNlZWsgUjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSkuIFRoZSBtb2RlbCBjb21iaW5lcyBhZHZhbmNlZCBkaXN0aWxsYXRpb24gdGVjaG5pcXVlcyB0byBhY2hpZXZlIGhpZ2ggcGVyZm9ybWFuY2UgYWNyb3NzIG11bHRpcGxlIGJlbmNobWFya3MsIGluY2x1ZGluZzpcblxuLSBBSU1FIDIwMjQgcGFzc0AxOiA3MC4wXG4tIE1BVEgtNTAwIHBhc3NAMTogOTQuNVxuLSBDb2RlRm9yY2VzIFJhdGluZzogMTYzM1xuXG5UaGUgbW9kZWwgbGV2ZXJhZ2VzIGZpbmUtdHVuaW5nIGZyb20gRGVlcFNlZWsgUjEncyBvdXRwdXRzLCBlbmFibGluZyBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJhYmxlIHRvIGxhcmdlciBmcm9udGllciBtb2RlbHMuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwNzIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLTIuMC1mbGFzaC10aGlua2luZy1leHA6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgRXhwZXJpbWVudGFsIDAxLTIxIChmcmVlKSIsImNyZWF0ZWQiOjE3Mzc1NDc4OTksImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuMCBGbGFzaCBUaGlua2luZyBFeHBlcmltZW50YWwgKDAxLTIxKSBpcyBhIHNuYXBzaG90IG9mIEdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgRXhwZXJpbWVudGFsLlxuXG5HZW1pbmkgMi4wIEZsYXNoIFRoaW5raW5nIE1vZGUgaXMgYW4gZXhwZXJpbWVudGFsIG1vZGVsIHRoYXQncyB0cmFpbmVkIHRvIGdlbmVyYXRlIHRoZSBcInRoaW5raW5nIHByb2Nlc3NcIiB0aGUgbW9kZWwgZ29lcyB0aHJvdWdoIGFzIHBhcnQgb2YgaXRzIHJlc3BvbnNlLiBBcyBhIHJlc3VsdCwgVGhpbmtpbmcgTW9kZSBpcyBjYXBhYmxlIG9mIHN0cm9uZ2VyIHJlYXNvbmluZyBjYXBhYmlsaXRpZXMgaW4gaXRzIHJlc3BvbnNlcyB0aGFuIHRoZSBbYmFzZSBHZW1pbmkgMi4wIEZsYXNoIG1vZGVsXSgvZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtZXhwKS4iLCJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDQ4NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjY1NTM2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstcjE6ZnJlZSIsIm5hbWUiOiJEZWVwU2VlazogUjEgKGZyZWUpIiwiY3JlYXRlZCI6MTczNzM4MTA5NSwiZGVzY3JpcHRpb24iOiJEZWVwU2VlayBSMSBpcyBoZXJlOiBQZXJmb3JtYW5jZSBvbiBwYXIgd2l0aCBbT3BlbkFJIG8xXSgvb3BlbmFpL28xKSwgYnV0IG9wZW4tc291cmNlZCBhbmQgd2l0aCBmdWxseSBvcGVuIHJlYXNvbmluZyB0b2tlbnMuIEl0J3MgNjcxQiBwYXJhbWV0ZXJzIGluIHNpemUsIHdpdGggMzdCIGFjdGl2ZSBpbiBhbiBpbmZlcmVuY2UgcGFzcy5cblxuRnVsbHkgb3Blbi1zb3VyY2UgbW9kZWwgJiBbdGVjaG5pY2FsIHJlcG9ydF0oaHR0cHM6Ly9hcGktZG9jcy5kZWVwc2Vlay5jb20vbmV3cy9uZXdzMjUwMTIwKS5cblxuTUlUIGxpY2Vuc2VkOiBEaXN0aWxsICYgY29tbWVyY2lhbGl6ZSBmcmVlbHkhIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImRlZXBzZWVrL2RlZXBzZWVrLXIxIiwibmFtZSI6IkRlZXBTZWVrOiBSMSIsImNyZWF0ZWQiOjE3MzczODEwOTUsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWsgUjEgaXMgaGVyZTogUGVyZm9ybWFuY2Ugb24gcGFyIHdpdGggW09wZW5BSSBvMV0oL29wZW5haS9vMSksIGJ1dCBvcGVuLXNvdXJjZWQgYW5kIHdpdGggZnVsbHkgb3BlbiByZWFzb25pbmcgdG9rZW5zLiBJdCdzIDY3MUIgcGFyYW1ldGVycyBpbiBzaXplLCB3aXRoIDM3QiBhY3RpdmUgaW4gYW4gaW5mZXJlbmNlIHBhc3MuXG5cbkZ1bGx5IG9wZW4tc291cmNlIG1vZGVsICYgW3RlY2huaWNhbCByZXBvcnRdKGh0dHBzOi8vYXBpLWRvY3MuZGVlcHNlZWsuY29tL25ld3MvbmV3czI1MDEyMCkuXG5cbk1JVCBsaWNlbnNlZDogRGlzdGlsbCAmIGNvbW1lcmNpYWxpemUgZnJlZWx5ISIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJEZWVwU2VlayIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNTQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0MCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNvcGhvc3ltcGF0aGVpYS9yb2d1ZS1yb3NlLTEwM2ItdjAuMjpmcmVlIiwibmFtZSI6IlJvZ3VlIFJvc2UgMTAzQiB2MC4yIChmcmVlKSIsImNyZWF0ZWQiOjE3MzcxOTUxODksImRlc2NyaXB0aW9uIjoiUm9ndWUgUm9zZSBkZW1vbnN0cmF0ZXMgc3Ryb25nIGNhcGFiaWxpdGllcyBpbiByb2xlcGxheWluZyBhbmQgc3Rvcnl0ZWxsaW5nIGFwcGxpY2F0aW9ucywgcG90ZW50aWFsbHkgc3VycGFzc2luZyBvdGhlciBtb2RlbHMgaW4gdGhlIDEwMy0xMjBCIHBhcmFtZXRlciByYW5nZS4gV2hpbGUgaXQgb2NjYXNpb25hbGx5IGV4aGliaXRzIGluY29uc2lzdGVuY2llcyB3aXRoIHNjZW5lIGxvZ2ljLCB0aGUgb3ZlcmFsbCBpbnRlcmFjdGlvbiBxdWFsaXR5IHJlcHJlc2VudHMgYW4gYWR2YW5jZW1lbnQgaW4gbmF0dXJhbCBsYW5ndWFnZSBwcm9jZXNzaW5nIGZvciBjcmVhdGl2ZSBhcHBsaWNhdGlvbnMuXG5cbkl0IGlzIGEgMTIwLWxheWVyIGZyYW5rZW5tZXJnZSBtb2RlbCBjb21iaW5pbmcgdHdvIGN1c3RvbSA3MEIgYXJjaGl0ZWN0dXJlcyBmcm9tIE5vdmVtYmVyIDIwMjMsIGRlcml2ZWQgZnJvbSB0aGUgW3h3aW4tc3RlbGxhcmJyaWdodC1lcnAtNzBiLXYyXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL3NvcGhvc3ltcGF0aGVpYS94d2luLXN0ZWxsYXJicmlnaHQtZXJwLTcwYi12MikgYmFzZS5cbiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWluaW1heC9taW5pbWF4LTAxIiwibmFtZSI6Ik1pbmlNYXg6IE1pbmlNYXgtMDEiLCJjcmVhdGVkIjoxNzM2OTE1NDYyLCJkZXNjcmlwdGlvbiI6Ik1pbmlNYXgtMDEgaXMgYSBjb21iaW5lcyBNaW5pTWF4LVRleHQtMDEgZm9yIHRleHQgZ2VuZXJhdGlvbiBhbmQgTWluaU1heC1WTC0wMSBmb3IgaW1hZ2UgdW5kZXJzdGFuZGluZy4gSXQgaGFzIDQ1NiBiaWxsaW9uIHBhcmFtZXRlcnMsIHdpdGggNDUuOSBiaWxsaW9uIHBhcmFtZXRlcnMgYWN0aXZhdGVkIHBlciBpbmZlcmVuY2UsIGFuZCBjYW4gaGFuZGxlIGEgY29udGV4dCBvZiB1cCB0byA0IG1pbGxpb24gdG9rZW5zLlxuXG5UaGUgdGV4dCBtb2RlbCBhZG9wdHMgYSBoeWJyaWQgYXJjaGl0ZWN0dXJlIHRoYXQgY29tYmluZXMgTGlnaHRuaW5nIEF0dGVudGlvbiwgU29mdG1heCBBdHRlbnRpb24sIGFuZCBNaXh0dXJlLW9mLUV4cGVydHMgKE1vRSkuIFRoZSBpbWFnZSBtb2RlbCBhZG9wdHMgdGhlIOKAnFZpVC1NTFAtTExN4oCdIGZyYW1ld29yayBhbmQgaXMgdHJhaW5lZCBvbiB0b3Agb2YgdGhlIHRleHQgbW9kZWwuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgcmVsZWFzZSwgc2VlOiBodHRwczovL3d3dy5taW5pbWF4aS5jb20vZW4vbmV3cy9taW5pbWF4LTAxLXNlcmllcy0yIiwiY29udGV4dF9sZW5ndGgiOjEwMDAxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDAwMTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL2NvZGVzdHJhbC0yNTAxIiwibmFtZSI6Ik1pc3RyYWw6IENvZGVzdHJhbCAyNTAxIiwiY3JlYXRlZCI6MTczNjg5NTUyMiwiZGVzY3JpcHRpb24iOiJbTWlzdHJhbF0oL21pc3RyYWxhaSkncyBjdXR0aW5nLWVkZ2UgbGFuZ3VhZ2UgbW9kZWwgZm9yIGNvZGluZy4gQ29kZXN0cmFsIHNwZWNpYWxpemVzIGluIGxvdy1sYXRlbmN5LCBoaWdoLWZyZXF1ZW5jeSB0YXNrcyBzdWNoIGFzIGZpbGwtaW4tdGhlLW1pZGRsZSAoRklNKSwgY29kZSBjb3JyZWN0aW9uIGFuZCB0ZXN0IGdlbmVyYXRpb24uIFxuXG5MZWFybiBtb3JlIG9uIHRoZWlyIGJsb2cgcG9zdDogaHR0cHM6Ly9taXN0cmFsLmFpL25ld3MvY29kZXN0cmFsLTI1MDEvIiwiY29udGV4dF9sZW5ndGgiOjI2MjE0NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktNCIsIm5hbWUiOiJNaWNyb3NvZnQ6IFBoaSA0IiwiY3JlYXRlZCI6MTczNjQ4OTg3MiwiZGVzY3JpcHRpb24iOiJbTWljcm9zb2Z0IFJlc2VhcmNoXSgvbWljcm9zb2Z0KSBQaGktNCBpcyBkZXNpZ25lZCB0byBwZXJmb3JtIHdlbGwgaW4gY29tcGxleCByZWFzb25pbmcgdGFza3MgYW5kIGNhbiBvcGVyYXRlIGVmZmljaWVudGx5IGluIHNpdHVhdGlvbnMgd2l0aCBsaW1pdGVkIG1lbW9yeSBvciB3aGVyZSBxdWljayByZXNwb25zZXMgYXJlIG5lZWRlZC4gXG5cbkF0IDE0IGJpbGxpb24gcGFyYW1ldGVycywgaXQgd2FzIHRyYWluZWQgb24gYSBtaXggb2YgaGlnaC1xdWFsaXR5IHN5bnRoZXRpYyBkYXRhc2V0cywgZGF0YSBmcm9tIGN1cmF0ZWQgd2Vic2l0ZXMsIGFuZCBhY2FkZW1pYyBtYXRlcmlhbHMuIEl0IGhhcyB1bmRlcmdvbmUgY2FyZWZ1bCBpbXByb3ZlbWVudCB0byBmb2xsb3cgaW5zdHJ1Y3Rpb25zIGFjY3VyYXRlbHkgYW5kIG1haW50YWluIHN0cm9uZyBzYWZldHkgc3RhbmRhcmRzLiBJdCB3b3JrcyBiZXN0IHdpdGggRW5nbGlzaCBsYW5ndWFnZSBpbnB1dHMuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIFtQaGktNCBUZWNobmljYWwgUmVwb3J0XShodHRwczovL2FyeGl2Lm9yZy9wZGYvMjQxMi4wODkwNSlcbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoic2FvMTBrL2wzLjEtNzBiLWhhbmFtaS14MSIsIm5hbWUiOiJTYW8xMEs6IExsYW1hIDMuMSA3MEIgSGFuYW1pIHgxIiwiY3JlYXRlZCI6MTczNjMwMjg1NCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIFtTYW8xMEtdKC9zYW8xMGspJ3MgZXhwZXJpbWVudCBvdmVyIFtFdXJ5YWxlIHYyLjJdKC9zYW8xMGsvbDMuMS1ldXJ5YWxlLTcwYikuIiwiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJkZWVwc2Vlay9kZWVwc2Vlay1jaGF0OmZyZWUiLCJuYW1lIjoiRGVlcFNlZWs6IERlZXBTZWVrIFYzIChmcmVlKSIsImNyZWF0ZWQiOjE3MzUyNDEzMjAsImRlc2NyaXB0aW9uIjoiRGVlcFNlZWstVjMgaXMgdGhlIGxhdGVzdCBtb2RlbCBmcm9tIHRoZSBEZWVwU2VlayB0ZWFtLCBidWlsZGluZyB1cG9uIHRoZSBpbnN0cnVjdGlvbiBmb2xsb3dpbmcgYW5kIGNvZGluZyBhYmlsaXRpZXMgb2YgdGhlIHByZXZpb3VzIHZlcnNpb25zLiBQcmUtdHJhaW5lZCBvbiBuZWFybHkgMTUgdHJpbGxpb24gdG9rZW5zLCB0aGUgcmVwb3J0ZWQgZXZhbHVhdGlvbnMgcmV2ZWFsIHRoYXQgdGhlIG1vZGVsIG91dHBlcmZvcm1zIG90aGVyIG9wZW4tc291cmNlIG1vZGVscyBhbmQgcml2YWxzIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMuXG5cbkZvciBtb2RlbCBkZXRhaWxzLCBwbGVhc2UgdmlzaXQgW3RoZSBEZWVwU2Vlay1WMyByZXBvXShodHRwczovL2dpdGh1Yi5jb20vZGVlcHNlZWstYWkvRGVlcFNlZWstVjMpIGZvciBtb3JlIGluZm9ybWF0aW9uLCBvciBzZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL2FwaS1kb2NzLmRlZXBzZWVrLmNvbS9uZXdzL25ld3MxMjI2KS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiRGVlcFNlZWsiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZGVlcHNlZWsvZGVlcHNlZWstY2hhdCIsIm5hbWUiOiJEZWVwU2VlazogRGVlcFNlZWsgVjMiLCJjcmVhdGVkIjoxNzM1MjQxMzIwLCJkZXNjcmlwdGlvbiI6IkRlZXBTZWVrLVYzIGlzIHRoZSBsYXRlc3QgbW9kZWwgZnJvbSB0aGUgRGVlcFNlZWsgdGVhbSwgYnVpbGRpbmcgdXBvbiB0aGUgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nIGFuZCBjb2RpbmcgYWJpbGl0aWVzIG9mIHRoZSBwcmV2aW91cyB2ZXJzaW9ucy4gUHJlLXRyYWluZWQgb24gbmVhcmx5IDE1IHRyaWxsaW9uIHRva2VucywgdGhlIHJlcG9ydGVkIGV2YWx1YXRpb25zIHJldmVhbCB0aGF0IHRoZSBtb2RlbCBvdXRwZXJmb3JtcyBvdGhlciBvcGVuLXNvdXJjZSBtb2RlbHMgYW5kIHJpdmFscyBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzLlxuXG5Gb3IgbW9kZWwgZGV0YWlscywgcGxlYXNlIHZpc2l0IFt0aGUgRGVlcFNlZWstVjMgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL2RlZXBzZWVrLWFpL0RlZXBTZWVrLVYzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiwgb3Igc2VlIHRoZSBbbGF1bmNoIGFubm91bmNlbWVudF0oaHR0cHM6Ly9hcGktZG9jcy5kZWVwc2Vlay5jb20vbmV3cy9uZXdzMTIyNikuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkRlZXBTZWVrIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAzOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDg5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtdGhpbmtpbmctZXhwLTEyMTk6ZnJlZSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAyLjAgRmxhc2ggVGhpbmtpbmcgRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3MzQ2NTAwMjYsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDIuMCBGbGFzaCBUaGlua2luZyBNb2RlIGlzIGFuIGV4cGVyaW1lbnRhbCBtb2RlbCB0aGF0J3MgdHJhaW5lZCB0byBnZW5lcmF0ZSB0aGUgXCJ0aGlua2luZyBwcm9jZXNzXCIgdGhlIG1vZGVsIGdvZXMgdGhyb3VnaCBhcyBwYXJ0IG9mIGl0cyByZXNwb25zZS4gQXMgYSByZXN1bHQsIFRoaW5raW5nIE1vZGUgaXMgY2FwYWJsZSBvZiBzdHJvbmdlciByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGluIGl0cyByZXNwb25zZXMgdGhhbiB0aGUgW2Jhc2UgR2VtaW5pIDIuMCBGbGFzaCBtb2RlbF0oL2dvb2dsZS9nZW1pbmktMi4wLWZsYXNoLWV4cCkuIiwiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMuMy1ldXJ5YWxlLTcwYiIsIm5hbWUiOiJTYW8xMEs6IExsYW1hIDMuMyBFdXJ5YWxlIDcwQiIsImNyZWF0ZWQiOjE3MzQ1MzU5MjgsImRlc2NyaXB0aW9uIjoiRXVyeWFsZSBMMy4zIDcwQiBpcyBhIG1vZGVsIGZvY3VzZWQgb24gY3JlYXRpdmUgcm9sZXBsYXkgZnJvbSBbU2FvMTBrXShodHRwczovL2tvLWZpLmNvbS9zYW8xMGspLiBJdCBpcyB0aGUgc3VjY2Vzc29yIG9mIFtFdXJ5YWxlIEwzIDcwQiB2Mi4yXSgvbW9kZWxzL3NhbzEway9sMy1ldXJ5YWxlLTcwYikuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMSIsIm5hbWUiOiJPcGVuQUk6IG8xIiwiY3JlYXRlZCI6MTczNDQ1OTk5OSwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuIFRoZSBvMSBtb2RlbCBzZXJpZXMgaXMgdHJhaW5lZCB3aXRoIGxhcmdlLXNjYWxlIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgdG8gcmVhc29uIHVzaW5nIGNoYWluIG9mIHRob3VnaHQuIFxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyMTY3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwNzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMDAwLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJldmEtdW5pdC0wMS9ldmEtbGxhbWEtMy4zMy03MGIiLCJuYW1lIjoiRVZBIExsYW1hIDMuMzMgNzBCIiwiY3JlYXRlZCI6MTczNDM3NzMwMywiZGVzY3JpcHRpb24iOiJFVkEgTGxhbWEgMy4zMyA3MGIgaXMgYSByb2xlcGxheSBhbmQgc3Rvcnl3cml0aW5nIHNwZWNpYWxpc3QgbW9kZWwuIEl0IGlzIGEgZnVsbC1wYXJhbWV0ZXIgZmluZXR1bmUgb2YgW0xsYW1hLTMuMy03MEItSW5zdHJ1Y3RdKGh0dHBzOi8vb3BlbnJvdXRlci5haS9tZXRhLWxsYW1hL2xsYW1hLTMuMy03MGItaW5zdHJ1Y3QpIG9uIG1peHR1cmUgb2Ygc3ludGhldGljIGFuZCBuYXR1cmFsIGRhdGEuXG5cbkl0IHVzZXMgQ2VsZXN0ZSA3MEIgMC4xIGRhdGEgbWl4dHVyZSwgZ3JlYXRseSBleHBhbmRpbmcgaXQgdG8gaW1wcm92ZSB2ZXJzYXRpbGl0eSwgY3JlYXRpdml0eSBhbmQgXCJmbGF2b3JcIiBvZiB0aGUgcmVzdWx0aW5nIG1vZGVsXG5cblRoaXMgbW9kZWwgd2FzIGJ1aWx0IHdpdGggTGxhbWEgYnkgTWV0YS5cbiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6IngtYWkvZ3Jvay0yLXZpc2lvbi0xMjEyIiwibmFtZSI6InhBSTogR3JvayAyIFZpc2lvbiAxMjEyIiwiY3JlYXRlZCI6MTczNDIzNzMzOCwiZGVzY3JpcHRpb24iOiJHcm9rIDIgVmlzaW9uIDEyMTIgYWR2YW5jZXMgaW1hZ2UtYmFzZWQgQUkgd2l0aCBzdHJvbmdlciB2aXN1YWwgY29tcHJlaGVuc2lvbiwgcmVmaW5lZCBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGFuZCBtdWx0aWxpbmd1YWwgc3VwcG9ydC4gRnJvbSBvYmplY3QgcmVjb2duaXRpb24gdG8gc3R5bGUgYW5hbHlzaXMsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgdG8gYnVpbGQgbW9yZSBpbnR1aXRpdmUsIHZpc3VhbGx5IGF3YXJlIGFwcGxpY2F0aW9ucy4gSXRzIGVuaGFuY2VkIHN0ZWVyYWJpbGl0eSBhbmQgcmVhc29uaW5nIGVzdGFibGlzaCBhIHJvYnVzdCBmb3VuZGF0aW9uIGZvciBuZXh0LWdlbmVyYXRpb24gaW1hZ2Ugc29sdXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhpcyBtb2RlbCwgY2hlY2sgb3V0IFt4QUkncyBhbm5vdW5jZW1lbnRdKGh0dHBzOi8veC5haS9ibG9nL2dyb2stMTIxMikuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoieC1haS9ncm9rLTItMTIxMiIsIm5hbWUiOiJ4QUk6IEdyb2sgMiAxMjEyIiwiY3JlYXRlZCI6MTczNDIzMjgxNCwiZGVzY3JpcHRpb24iOiJHcm9rIDIgMTIxMiBpbnRyb2R1Y2VzIHNpZ25pZmljYW50IGVuaGFuY2VtZW50cyB0byBhY2N1cmFjeSwgaW5zdHJ1Y3Rpb24gYWRoZXJlbmNlLCBhbmQgbXVsdGlsaW5ndWFsIHN1cHBvcnQsIG1ha2luZyBpdCBhIHBvd2VyZnVsIGFuZCBmbGV4aWJsZSBjaG9pY2UgZm9yIGRldmVsb3BlcnMgc2Vla2luZyBhIGhpZ2hseSBzdGVlcmFibGUsIGludGVsbGlnZW50IG1vZGVsLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yN2ItMTItMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUjdCICgxMi0yMDI0KSIsImNyZWF0ZWQiOjE3MzQxNTgxNTIsImRlc2NyaXB0aW9uIjoiQ29tbWFuZCBSN0IgKDEyLTIwMjQpIGlzIGEgc21hbGwsIGZhc3QgdXBkYXRlIG9mIHRoZSBDb21tYW5kIFIrIG1vZGVsLCBkZWxpdmVyZWQgaW4gRGVjZW1iZXIgMjAyNC4gSXQgZXhjZWxzIGF0IFJBRywgdG9vbCB1c2UsIGFnZW50cywgYW5kIHNpbWlsYXIgdGFza3MgcmVxdWlyaW5nIGNvbXBsZXggcmVhc29uaW5nIGFuZCBtdWx0aXBsZSBzdGVwcy5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMzc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS0yLjAtZmxhc2gtZXhwOmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMi4wIEZsYXNoIEV4cGVyaW1lbnRhbCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMzOTM3NTIzLCJkZXNjcmlwdGlvbiI6IkdlbWluaSBGbGFzaCAyLjAgb2ZmZXJzIGEgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGltZSB0byBmaXJzdCB0b2tlbiAoVFRGVCkgY29tcGFyZWQgdG8gW0dlbWluaSBGbGFzaCAxLjVdKC9nb29nbGUvZ2VtaW5pLWZsYXNoLTEuNSksIHdoaWxlIG1haW50YWluaW5nIHF1YWxpdHkgb24gcGFyIHdpdGggbGFyZ2VyIG1vZGVscyBsaWtlIFtHZW1pbmkgUHJvIDEuNV0oL2dvb2dsZS9nZW1pbmktcHJvLTEuNSkuIEl0IGludHJvZHVjZXMgbm90YWJsZSBlbmhhbmNlbWVudHMgaW4gbXVsdGltb2RhbCB1bmRlcnN0YW5kaW5nLCBjb2RpbmcgY2FwYWJpbGl0aWVzLCBjb21wbGV4IGluc3RydWN0aW9uIGZvbGxvd2luZywgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuIFRoZXNlIGFkdmFuY2VtZW50cyBjb21lIHRvZ2V0aGVyIHRvIGRlbGl2ZXIgbW9yZSBzZWFtbGVzcyBhbmQgcm9idXN0IGFnZW50aWMgZXhwZXJpZW5jZXMuIiwiY29udGV4dF9sZW5ndGgiOjEwNDg1NzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTA0ODU3NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjMtNzBiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4zIDcwQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMzNTA2MTM3LCJkZXNjcmlwdGlvbiI6IlRoZSBNZXRhIExsYW1hIDMuMyBtdWx0aWxpbmd1YWwgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgKExMTSkgaXMgYSBwcmV0cmFpbmVkIGFuZCBpbnN0cnVjdGlvbiB0dW5lZCBnZW5lcmF0aXZlIG1vZGVsIGluIDcwQiAodGV4dCBpbi90ZXh0IG91dCkuIFRoZSBMbGFtYSAzLjMgaW5zdHJ1Y3Rpb24gdHVuZWQgdGV4dCBvbmx5IG1vZGVsIGlzIG9wdGltaXplZCBmb3IgbXVsdGlsaW5ndWFsIGRpYWxvZ3VlIHVzZSBjYXNlcyBhbmQgb3V0cGVyZm9ybXMgbWFueSBvZiB0aGUgYXZhaWxhYmxlIG9wZW4gc291cmNlIGFuZCBjbG9zZWQgY2hhdCBtb2RlbHMgb24gY29tbW9uIGluZHVzdHJ5IGJlbmNobWFya3MuXG5cblN1cHBvcnRlZCBsYW5ndWFnZXM6IEVuZ2xpc2gsIEdlcm1hbiwgRnJlbmNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBIaW5kaSwgU3BhbmlzaCwgYW5kIFRoYWkuXG5cbltNb2RlbCBDYXJkXShodHRwczovL2dpdGh1Yi5jb20vbWV0YS1sbGFtYS9sbGFtYS1tb2RlbHMvYmxvYi9tYWluL21vZGVscy9sbGFtYTNfMy9NT0RFTF9DQVJELm1kKSIsImNvbnRleHRfbGVuZ3RoIjo4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjMtNzBiLWluc3RydWN0IiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMyA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzMzNTA2MTM3LCJkZXNjcmlwdGlvbiI6IlRoZSBNZXRhIExsYW1hIDMuMyBtdWx0aWxpbmd1YWwgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgKExMTSkgaXMgYSBwcmV0cmFpbmVkIGFuZCBpbnN0cnVjdGlvbiB0dW5lZCBnZW5lcmF0aXZlIG1vZGVsIGluIDcwQiAodGV4dCBpbi90ZXh0IG91dCkuIFRoZSBMbGFtYSAzLjMgaW5zdHJ1Y3Rpb24gdHVuZWQgdGV4dCBvbmx5IG1vZGVsIGlzIG9wdGltaXplZCBmb3IgbXVsdGlsaW5ndWFsIGRpYWxvZ3VlIHVzZSBjYXNlcyBhbmQgb3V0cGVyZm9ybXMgbWFueSBvZiB0aGUgYXZhaWxhYmxlIG9wZW4gc291cmNlIGFuZCBjbG9zZWQgY2hhdCBtb2RlbHMgb24gY29tbW9uIGluZHVzdHJ5IGJlbmNobWFya3MuXG5cblN1cHBvcnRlZCBsYW5ndWFnZXM6IEVuZ2xpc2gsIEdlcm1hbiwgRnJlbmNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBIaW5kaSwgU3BhbmlzaCwgYW5kIFRoYWkuXG5cbltNb2RlbCBDYXJkXShodHRwczovL2dpdGh1Yi5jb20vbWV0YS1sbGFtYS9sbGFtYS1tb2RlbHMvYmxvYi9tYWluL21vZGVscy9sbGFtYTNfMy9NT0RFTF9DQVJELm1kKSIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbGl0ZS12MSIsIm5hbWUiOiJBbWF6b246IE5vdmEgTGl0ZSAxLjAiLCJjcmVhdGVkIjoxNzMzNDM3MzYzLCJkZXNjcmlwdGlvbiI6IkFtYXpvbiBOb3ZhIExpdGUgMS4wIGlzIGEgdmVyeSBsb3ctY29zdCBtdWx0aW1vZGFsIG1vZGVsIGZyb20gQW1hem9uIHRoYXQgZm9jdXNlZCBvbiBmYXN0IHByb2Nlc3Npbmcgb2YgaW1hZ2UsIHZpZGVvLCBhbmQgdGV4dCBpbnB1dHMgdG8gZ2VuZXJhdGUgdGV4dCBvdXRwdXQuIEFtYXpvbiBOb3ZhIExpdGUgY2FuIGhhbmRsZSByZWFsLXRpbWUgY3VzdG9tZXIgaW50ZXJhY3Rpb25zLCBkb2N1bWVudCBhbmFseXNpcywgYW5kIHZpc3VhbCBxdWVzdGlvbi1hbnN3ZXJpbmcgdGFza3Mgd2l0aCBoaWdoIGFjY3VyYWN5LlxuXG5XaXRoIGFuIGlucHV0IGNvbnRleHQgb2YgMzAwSyB0b2tlbnMsIGl0IGNhbiBhbmFseXplIG11bHRpcGxlIGltYWdlcyBvciB1cCB0byAzMCBtaW51dGVzIG9mIHZpZGVvIGluIGEgc2luZ2xlIGlucHV0LiIsImNvbnRleHRfbGVuZ3RoIjozMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwOSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo1MTIwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW1hem9uL25vdmEtbWljcm8tdjEiLCJuYW1lIjoiQW1hem9uOiBOb3ZhIE1pY3JvIDEuMCIsImNyZWF0ZWQiOjE3MzM0MzcyMzcsImRlc2NyaXB0aW9uIjoiQW1hem9uIE5vdmEgTWljcm8gMS4wIGlzIGEgdGV4dC1vbmx5IG1vZGVsIHRoYXQgZGVsaXZlcnMgdGhlIGxvd2VzdCBsYXRlbmN5IHJlc3BvbnNlcyBpbiB0aGUgQW1hem9uIE5vdmEgZmFtaWx5IG9mIG1vZGVscyBhdCBhIHZlcnkgbG93IGNvc3QuIFdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiAxMjhLIHRva2VucyBhbmQgb3B0aW1pemVkIGZvciBzcGVlZCBhbmQgY29zdCwgQW1hem9uIE5vdmEgTWljcm8gZXhjZWxzIGF0IHRhc2tzIHN1Y2ggYXMgdGV4dCBzdW1tYXJpemF0aW9uLCB0cmFuc2xhdGlvbiwgY29udGVudCBjbGFzc2lmaWNhdGlvbiwgaW50ZXJhY3RpdmUgY2hhdCwgYW5kIGJyYWluc3Rvcm1pbmcuIEl0IGhhcyAgc2ltcGxlIG1hdGhlbWF0aWNhbCByZWFzb25pbmcgYW5kIGNvZGluZyBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik5vdmEiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NTEyMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFtYXpvbi9ub3ZhLXByby12MSIsIm5hbWUiOiJBbWF6b246IE5vdmEgUHJvIDEuMCIsImNyZWF0ZWQiOjE3MzM0MzYzMDMsImRlc2NyaXB0aW9uIjoiQW1hem9uIE5vdmEgUHJvIDEuMCBpcyBhIGNhcGFibGUgbXVsdGltb2RhbCBtb2RlbCBmcm9tIEFtYXpvbiBmb2N1c2VkIG9uIHByb3ZpZGluZyBhIGNvbWJpbmF0aW9uIG9mIGFjY3VyYWN5LCBzcGVlZCwgYW5kIGNvc3QgZm9yIGEgd2lkZSByYW5nZSBvZiB0YXNrcy4gQXMgb2YgRGVjZW1iZXIgMjAyNCwgaXQgYWNoaWV2ZXMgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBvbiBrZXkgYmVuY2htYXJrcyBpbmNsdWRpbmcgdmlzdWFsIHF1ZXN0aW9uIGFuc3dlcmluZyAoVGV4dFZRQSkgYW5kIHZpZGVvIHVuZGVyc3RhbmRpbmcgKFZBVEVYKS5cblxuQW1hem9uIE5vdmEgUHJvIGRlbW9uc3RyYXRlcyBzdHJvbmcgY2FwYWJpbGl0aWVzIGluIHByb2Nlc3NpbmcgYm90aCB2aXN1YWwgYW5kIHRleHR1YWwgaW5mb3JtYXRpb24gYW5kIGF0IGFuYWx5emluZyBmaW5hbmNpYWwgZG9jdW1lbnRzLlxuXG4qKk5PVEUqKjogVmlkZW8gaW5wdXQgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuIiwiY29udGV4dF9sZW5ndGgiOjMwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTm92YSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDEyIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjUxMjAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3cS0zMmItcHJldmlldzpmcmVlIiwibmFtZSI6IlF3ZW46IFF3USAzMkIgUHJldmlldyAoZnJlZSkiLCJjcmVhdGVkIjoxNzMyNzU0NTQxLCJkZXNjcmlwdGlvbiI6IlF3US0zMkItUHJldmlldyBpcyBhbiBleHBlcmltZW50YWwgcmVzZWFyY2ggbW9kZWwgZm9jdXNlZCBvbiBBSSByZWFzb25pbmcgY2FwYWJpbGl0aWVzIGRldmVsb3BlZCBieSB0aGUgUXdlbiBUZWFtLiBBcyBhIHByZXZpZXcgcmVsZWFzZSwgaXQgZGVtb25zdHJhdGVzIHByb21pc2luZyBhbmFseXRpY2FsIGFiaWxpdGllcyB3aGlsZSBoYXZpbmcgc2V2ZXJhbCBpbXBvcnRhbnQgbGltaXRhdGlvbnM6XG5cbjEuICoqTGFuZ3VhZ2UgTWl4aW5nIGFuZCBDb2RlLVN3aXRjaGluZyoqOiBUaGUgbW9kZWwgbWF5IG1peCBsYW5ndWFnZXMgb3Igc3dpdGNoIGJldHdlZW4gdGhlbSB1bmV4cGVjdGVkbHksIGFmZmVjdGluZyByZXNwb25zZSBjbGFyaXR5LlxuMi4gKipSZWN1cnNpdmUgUmVhc29uaW5nIExvb3BzKio6IFRoZSBtb2RlbCBtYXkgZW50ZXIgY2lyY3VsYXIgcmVhc29uaW5nIHBhdHRlcm5zLCBsZWFkaW5nIHRvIGxlbmd0aHkgcmVzcG9uc2VzIHdpdGhvdXQgYSBjb25jbHVzaXZlIGFuc3dlci5cbjMuICoqU2FmZXR5IGFuZCBFdGhpY2FsIENvbnNpZGVyYXRpb25zKio6IFRoZSBtb2RlbCByZXF1aXJlcyBlbmhhbmNlZCBzYWZldHkgbWVhc3VyZXMgdG8gZW5zdXJlIHJlbGlhYmxlIGFuZCBzZWN1cmUgcGVyZm9ybWFuY2UsIGFuZCB1c2VycyBzaG91bGQgZXhlcmNpc2UgY2F1dGlvbiB3aGVuIGRlcGxveWluZyBpdC5cbjQuICoqUGVyZm9ybWFuY2UgYW5kIEJlbmNobWFyayBMaW1pdGF0aW9ucyoqOiBUaGUgbW9kZWwgZXhjZWxzIGluIG1hdGggYW5kIGNvZGluZyBidXQgaGFzIHJvb20gZm9yIGltcHJvdmVtZW50IGluIG90aGVyIGFyZWFzLCBzdWNoIGFzIGNvbW1vbiBzZW5zZSByZWFzb25pbmcgYW5kIG51YW5jZWQgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZy5cblxuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJkZWVwc2Vlay1yMSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdxLTMyYi1wcmV2aWV3IiwibmFtZSI6IlF3ZW46IFF3USAzMkIgUHJldmlldyIsImNyZWF0ZWQiOjE3MzI3NTQ1NDEsImRlc2NyaXB0aW9uIjoiUXdRLTMyQi1QcmV2aWV3IGlzIGFuIGV4cGVyaW1lbnRhbCByZXNlYXJjaCBtb2RlbCBmb2N1c2VkIG9uIEFJIHJlYXNvbmluZyBjYXBhYmlsaXRpZXMgZGV2ZWxvcGVkIGJ5IHRoZSBRd2VuIFRlYW0uIEFzIGEgcHJldmlldyByZWxlYXNlLCBpdCBkZW1vbnN0cmF0ZXMgcHJvbWlzaW5nIGFuYWx5dGljYWwgYWJpbGl0aWVzIHdoaWxlIGhhdmluZyBzZXZlcmFsIGltcG9ydGFudCBsaW1pdGF0aW9uczpcblxuMS4gKipMYW5ndWFnZSBNaXhpbmcgYW5kIENvZGUtU3dpdGNoaW5nKio6IFRoZSBtb2RlbCBtYXkgbWl4IGxhbmd1YWdlcyBvciBzd2l0Y2ggYmV0d2VlbiB0aGVtIHVuZXhwZWN0ZWRseSwgYWZmZWN0aW5nIHJlc3BvbnNlIGNsYXJpdHkuXG4yLiAqKlJlY3Vyc2l2ZSBSZWFzb25pbmcgTG9vcHMqKjogVGhlIG1vZGVsIG1heSBlbnRlciBjaXJjdWxhciByZWFzb25pbmcgcGF0dGVybnMsIGxlYWRpbmcgdG8gbGVuZ3RoeSByZXNwb25zZXMgd2l0aG91dCBhIGNvbmNsdXNpdmUgYW5zd2VyLlxuMy4gKipTYWZldHkgYW5kIEV0aGljYWwgQ29uc2lkZXJhdGlvbnMqKjogVGhlIG1vZGVsIHJlcXVpcmVzIGVuaGFuY2VkIHNhZmV0eSBtZWFzdXJlcyB0byBlbnN1cmUgcmVsaWFibGUgYW5kIHNlY3VyZSBwZXJmb3JtYW5jZSwgYW5kIHVzZXJzIHNob3VsZCBleGVyY2lzZSBjYXV0aW9uIHdoZW4gZGVwbG95aW5nIGl0LlxuNC4gKipQZXJmb3JtYW5jZSBhbmQgQmVuY2htYXJrIExpbWl0YXRpb25zKio6IFRoZSBtb2RlbCBleGNlbHMgaW4gbWF0aCBhbmQgY29kaW5nIGJ1dCBoYXMgcm9vbSBmb3IgaW1wcm92ZW1lbnQgaW4gb3RoZXIgYXJlYXMsIHN1Y2ggYXMgY29tbW9uIHNlbnNlIHJlYXNvbmluZyBhbmQgbnVhbmNlZCBsYW5ndWFnZSB1bmRlcnN0YW5kaW5nLlxuXG4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImRlZXBzZWVrLXIxIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9sZWFybmxtLTEuNS1wcm8tZXhwZXJpbWVudGFsOmZyZWUiLCJuYW1lIjoiR29vZ2xlOiBMZWFybkxNIDEuNSBQcm8gRXhwZXJpbWVudGFsIChmcmVlKSIsImNyZWF0ZWQiOjE3MzIyMTY1NTEsImRlc2NyaXB0aW9uIjoiQW4gZXhwZXJpbWVudGFsIHZlcnNpb24gb2YgW0dlbWluaSAxLjUgUHJvXSgvZ29vZ2xlL2dlbWluaS1wcm8tMS41KSBmcm9tIEdvb2dsZS4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NjAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NjAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImV2YS11bml0LTAxL2V2YS1xd2VuLTIuNS03MmIiLCJuYW1lIjoiRVZBIFF3ZW4yLjUgNzJCIiwiY3JlYXRlZCI6MTczMjIxMDYwNiwiZGVzY3JpcHRpb24iOiJFVkEgUXdlbjIuNSA3MkIgaXMgYSByb2xlcGxheSBhbmQgc3Rvcnl3cml0aW5nIHNwZWNpYWxpc3QgbW9kZWwuIEl0J3MgYSBmdWxsLXBhcmFtZXRlciBmaW5ldHVuZSBvZiBRd2VuMi41LTcyQiBvbiBtaXh0dXJlIG9mIHN5bnRoZXRpYyBhbmQgbmF0dXJhbCBkYXRhLlxuXG5JdCB1c2VzIENlbGVzdGUgNzBCIDAuMSBkYXRhIG1peHR1cmUsIGdyZWF0bHkgZXhwYW5kaW5nIGl0IHRvIGltcHJvdmUgdmVyc2F0aWxpdHksIGNyZWF0aXZpdHkgYW5kIFwiZmxhdm9yXCIgb2YgdGhlIHJlc3VsdGluZyBtb2RlbC4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by0yMDI0LTExLTIwIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvICgyMDI0LTExLTIwKSIsImNyZWF0ZWQiOjE3MzIxMjc1OTQsImRlc2NyaXB0aW9uIjoiVGhlIDIwMjQtMTEtMjAgdmVyc2lvbiBvZiBHUFQtNG8gb2ZmZXJzIGEgbGV2ZWxlZC11cCBjcmVhdGl2ZSB3cml0aW5nIGFiaWxpdHkgd2l0aCBtb3JlIG5hdHVyYWwsIGVuZ2FnaW5nLCBhbmQgdGFpbG9yZWQgd3JpdGluZyB0byBpbXByb3ZlIHJlbGV2YW5jZSAmIHJlYWRhYmlsaXR5LiBJdOKAmXMgYWxzbyBiZXR0ZXIgYXQgd29ya2luZyB3aXRoIHVwbG9hZGVkIGZpbGVzLCBwcm92aWRpbmcgZGVlcGVyIGluc2lnaHRzICYgbW9yZSB0aG9yb3VnaCByZXNwb25zZXMuXG5cbkdQVC00byAoXCJvXCIgZm9yIFwib21uaVwiKSBpcyBPcGVuQUkncyBsYXRlc3QgQUkgbW9kZWwsIHN1cHBvcnRpbmcgYm90aCB0ZXh0IGFuZCBpbWFnZSBpbnB1dHMgd2l0aCB0ZXh0IG91dHB1dHMuIEl0IG1haW50YWlucyB0aGUgaW50ZWxsaWdlbmNlIGxldmVsIG9mIFtHUFQtNCBUdXJib10oL21vZGVscy9vcGVuYWkvZ3B0LTQtdHVyYm8pIHdoaWxlIGJlaW5nIHR3aWNlIGFzIGZhc3QgYW5kIDUwJSBtb3JlIGNvc3QtZWZmZWN0aXZlLiBHUFQtNG8gYWxzbyBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gcHJvY2Vzc2luZyBub24tRW5nbGlzaCBsYW5ndWFnZXMgYW5kIGVuaGFuY2VkIHZpc3VhbCBjYXBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDM2MTMiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDEyNSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UtMjQxMSIsIm5hbWUiOiJNaXN0cmFsIExhcmdlIDI0MTEiLCJjcmVhdGVkIjoxNzMxOTc4Njg1LCJkZXNjcmlwdGlvbiI6Ik1pc3RyYWwgTGFyZ2UgMiAyNDExIGlzIGFuIHVwZGF0ZSBvZiBbTWlzdHJhbCBMYXJnZSAyXSgvbWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UpIHJlbGVhc2VkIHRvZ2V0aGVyIHdpdGggW1BpeHRyYWwgTGFyZ2UgMjQxMV0oL21pc3RyYWxhaS9waXh0cmFsLWxhcmdlLTI0MTEpXG5cbkl0IHByb3ZpZGVzIGEgc2lnbmlmaWNhbnQgdXBncmFkZSBvbiB0aGUgcHJldmlvdXMgW01pc3RyYWwgTGFyZ2UgMjQuMDddKC9taXN0cmFsYWkvbWlzdHJhbC1sYXJnZS0yNDA3KSwgd2l0aCBub3RhYmxlIGltcHJvdmVtZW50cyBpbiBsb25nIGNvbnRleHQgdW5kZXJzdGFuZGluZywgYSBuZXcgc3lzdGVtIHByb21wdCwgYW5kIG1vcmUgYWNjdXJhdGUgZnVuY3Rpb24gY2FsbGluZy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLWxhcmdlLTI0MDciLCJuYW1lIjoiTWlzdHJhbCBMYXJnZSAyNDA3IiwiY3JlYXRlZCI6MTczMTk3ODQxNSwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBmbGFnc2hpcCBtb2RlbCwgTWlzdHJhbCBMYXJnZSAyICh2ZXJzaW9uIG1pc3RyYWwtbGFyZ2UtMjQwNykuIEl0J3MgYSBwcm9wcmlldGFyeSB3ZWlnaHRzLWF2YWlsYWJsZSBtb2RlbCBhbmQgZXhjZWxzIGF0IHJlYXNvbmluZywgY29kZSwgSlNPTiwgY2hhdCwgYW5kIG1vcmUuIFJlYWQgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgW2hlcmVdKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21pc3RyYWwtbGFyZ2UtMjQwNy8pLlxuXG5JdCBzdXBwb3J0cyBkb3plbnMgb2YgbGFuZ3VhZ2VzIGluY2x1ZGluZyBGcmVuY2gsIEdlcm1hbiwgU3BhbmlzaCwgSXRhbGlhbiwgUG9ydHVndWVzZSwgQXJhYmljLCBIaW5kaSwgUnVzc2lhbiwgQ2hpbmVzZSwgSmFwYW5lc2UsIGFuZCBLb3JlYW4sIGFsb25nIHdpdGggODArIGNvZGluZyBsYW5ndWFnZXMgaW5jbHVkaW5nIFB5dGhvbiwgSmF2YSwgQywgQysrLCBKYXZhU2NyaXB0LCBhbmQgQmFzaC4gSXRzIGxvbmcgY29udGV4dCB3aW5kb3cgYWxsb3dzIHByZWNpc2UgaW5mb3JtYXRpb24gcmVjYWxsIGZyb20gbGFyZ2UgZG9jdW1lbnRzLlxuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvcGl4dHJhbC1sYXJnZS0yNDExIiwibmFtZSI6Ik1pc3RyYWw6IFBpeHRyYWwgTGFyZ2UgMjQxMSIsImNyZWF0ZWQiOjE3MzE5NzczODgsImRlc2NyaXB0aW9uIjoiUGl4dHJhbCBMYXJnZSBpcyBhIDEyNEIgcGFyYW1ldGVyLCBvcGVuLXdlaWdodCwgbXVsdGltb2RhbCBtb2RlbCBidWlsdCBvbiB0b3Agb2YgW01pc3RyYWwgTGFyZ2UgMl0oL21pc3RyYWxhaS9taXN0cmFsLWxhcmdlLTI0MTEpLiBUaGUgbW9kZWwgaXMgYWJsZSB0byB1bmRlcnN0YW5kIGRvY3VtZW50cywgY2hhcnRzIGFuZCBuYXR1cmFsIGltYWdlcy5cblxuVGhlIG1vZGVsIGlzIGF2YWlsYWJsZSB1bmRlciB0aGUgTWlzdHJhbCBSZXNlYXJjaCBMaWNlbnNlIChNUkwpIGZvciByZXNlYXJjaCBhbmQgZWR1Y2F0aW9uYWwgdXNlLCBhbmQgdGhlIE1pc3RyYWwgQ29tbWVyY2lhbCBMaWNlbnNlIGZvciBleHBlcmltZW50YXRpb24sIHRlc3RpbmcsIGFuZCBwcm9kdWN0aW9uIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzLlxuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDI4ODgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6IngtYWkvZ3Jvay12aXNpb24tYmV0YSIsIm5hbWUiOiJ4QUk6IEdyb2sgVmlzaW9uIEJldGEiLCJjcmVhdGVkIjoxNzMxOTc2NjI0LCJkZXNjcmlwdGlvbiI6Ikdyb2sgVmlzaW9uIEJldGEgaXMgeEFJJ3MgZXhwZXJpbWVudGFsIGxhbmd1YWdlIG1vZGVsIHdpdGggdmlzaW9uIGNhcGFiaWxpdHkuXG5cbiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDkiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJpbmZlcm1hdGljL21uLWluZmVyb3ItMTJiIiwibmFtZSI6IkluZmVybWF0aWM6IE1pc3RyYWwgTmVtbyBJbmZlcm9yIDEyQiIsImNyZWF0ZWQiOjE3MzE0NjQ0MjgsImRlc2NyaXB0aW9uIjoiSW5mZXJvciAxMkIgaXMgYSBtZXJnZSBvZiB0b3Agcm9sZXBsYXkgbW9kZWxzLCBleHBlcnQgb24gaW1tZXJzaXZlIG5hcnJhdGl2ZXMgYW5kIHN0b3J5dGVsbGluZy5cblxuVGhpcyBtb2RlbCB3YXMgbWVyZ2VkIHVzaW5nIHRoZSBbTW9kZWwgU3RvY2tdKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yNDAzLjE5NTIyKSBtZXJnZSBtZXRob2QgdXNpbmcgW2FudGhyYWNpdGUtb3JnL21hZ251bS12NC0xMmJdKGh0dHBzOi8vb3BlbnJvdXRlci5haS9hbnRocmFjaXRlLW9yZy9tYWdudW0tdjQtNzJiKSBhcyBhIGJhc2UuXG4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS1jb2Rlci0zMmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IENvZGVyIDMyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzMxMzY4NDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUtQ29kZXIgaXMgdGhlIGxhdGVzdCBzZXJpZXMgb2YgQ29kZS1TcGVjaWZpYyBRd2VuIGxhcmdlIGxhbmd1YWdlIG1vZGVscyAoZm9ybWVybHkga25vd24gYXMgQ29kZVF3ZW4pLiBRd2VuMi41LUNvZGVyIGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIENvZGVRd2VuMS41OlxuXG4tIFNpZ25pZmljYW50bHkgaW1wcm92ZW1lbnRzIGluICoqY29kZSBnZW5lcmF0aW9uKiosICoqY29kZSByZWFzb25pbmcqKiBhbmQgKipjb2RlIGZpeGluZyoqLiBcbi0gQSBtb3JlIGNvbXByZWhlbnNpdmUgZm91bmRhdGlvbiBmb3IgcmVhbC13b3JsZCBhcHBsaWNhdGlvbnMgc3VjaCBhcyAqKkNvZGUgQWdlbnRzKiouIE5vdCBvbmx5IGVuaGFuY2luZyBjb2RpbmcgY2FwYWJpbGl0aWVzIGJ1dCBhbHNvIG1haW50YWluaW5nIGl0cyBzdHJlbmd0aHMgaW4gbWF0aGVtYXRpY3MgYW5kIGdlbmVyYWwgY29tcGV0ZW5jaWVzLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgaXRzIGV2YWx1YXRpb24gcmVzdWx0cywgY2hlY2sgb3V0IFtRd2VuIDIuNSBDb2RlcidzIGJsb2ddKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLjUtY29kZXItZmFtaWx5LykuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tMi41LWNvZGVyLTMyYi1pbnN0cnVjdCIsIm5hbWUiOiJRd2VuMi41IENvZGVyIDMyQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MzEzNjg0MDAsImRlc2NyaXB0aW9uIjoiUXdlbjIuNS1Db2RlciBpcyB0aGUgbGF0ZXN0IHNlcmllcyBvZiBDb2RlLVNwZWNpZmljIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzIChmb3JtZXJseSBrbm93biBhcyBDb2RlUXdlbikuIFF3ZW4yLjUtQ29kZXIgYnJpbmdzIHRoZSBmb2xsb3dpbmcgaW1wcm92ZW1lbnRzIHVwb24gQ29kZVF3ZW4xLjU6XG5cbi0gU2lnbmlmaWNhbnRseSBpbXByb3ZlbWVudHMgaW4gKipjb2RlIGdlbmVyYXRpb24qKiwgKipjb2RlIHJlYXNvbmluZyoqIGFuZCAqKmNvZGUgZml4aW5nKiouIFxuLSBBIG1vcmUgY29tcHJlaGVuc2l2ZSBmb3VuZGF0aW9uIGZvciByZWFsLXdvcmxkIGFwcGxpY2F0aW9ucyBzdWNoIGFzICoqQ29kZSBBZ2VudHMqKi4gTm90IG9ubHkgZW5oYW5jaW5nIGNvZGluZyBjYXBhYmlsaXRpZXMgYnV0IGFsc28gbWFpbnRhaW5pbmcgaXRzIHN0cmVuZ3RocyBpbiBtYXRoZW1hdGljcyBhbmQgZ2VuZXJhbCBjb21wZXRlbmNpZXMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCBpdHMgZXZhbHVhdGlvbiByZXN1bHRzLCBjaGVjayBvdXQgW1F3ZW4gMi41IENvZGVyJ3MgYmxvZ10oaHR0cHM6Ly9xd2VubG0uZ2l0aHViLmlvL2Jsb2cvcXdlbjIuNS1jb2Rlci1mYW1pbHkvKS4iLCJjb250ZXh0X2xlbmd0aCI6MzMwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzMwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InJhaWZsZS9zb3JjZXJlcmxtLTh4MjJiIiwibmFtZSI6IlNvcmNlcmVyTE0gOHgyMkIiLCJjcmVhdGVkIjoxNzMxMTA1MDgzLCJkZXNjcmlwdGlvbiI6IlNvcmNlcmVyTE0gaXMgYW4gYWR2YW5jZWQgUlAgYW5kIHN0b3J5dGVsbGluZyBtb2RlbCwgYnVpbHQgYXMgYSBMb3ctcmFuayAxNi1iaXQgTG9SQSBmaW5lLXR1bmVkIG9uIFtXaXphcmRMTS0yIDh4MjJCXSgvbWljcm9zb2Z0L3dpemFyZGxtLTItOHgyMmIpLlxuXG4tIEFkdmFuY2VkIHJlYXNvbmluZyBhbmQgZW1vdGlvbmFsIGludGVsbGlnZW5jZSBmb3IgZW5nYWdpbmcgYW5kIGltbWVyc2l2ZSBpbnRlcmFjdGlvbnNcbi0gVml2aWQgd3JpdGluZyBjYXBhYmlsaXRpZXMgZW5yaWNoZWQgd2l0aCBzcGF0aWFsIGFuZCBjb250ZXh0dWFsIGF3YXJlbmVzc1xuLSBFbmhhbmNlZCBuYXJyYXRpdmUgZGVwdGgsIHByb21vdGluZyBjcmVhdGl2ZSBhbmQgZHluYW1pYyBzdG9yeXRlbGxpbmciLCJjb250ZXh0X2xlbmd0aCI6MTYwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA0NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJldmEtdW5pdC0wMS9ldmEtcXdlbi0yLjUtMzJiIiwibmFtZSI6IkVWQSBRd2VuMi41IDMyQiIsImNyZWF0ZWQiOjE3MzExMDQ4NDcsImRlc2NyaXB0aW9uIjoiRVZBIFF3ZW4yLjUgMzJCIGlzIGEgcm9sZXBsYXlpbmcvc3Rvcnl3cml0aW5nIHNwZWNpYWxpc3QgbW9kZWwuIEl0J3MgYSBmdWxsLXBhcmFtZXRlciBmaW5ldHVuZSBvZiBRd2VuMi41LTMyQiBvbiBtaXh0dXJlIG9mIHN5bnRoZXRpYyBhbmQgbmF0dXJhbCBkYXRhLlxuXG5JdCB1c2VzIENlbGVzdGUgNzBCIDAuMSBkYXRhIG1peHR1cmUsIGdyZWF0bHkgZXhwYW5kaW5nIGl0IHRvIGltcHJvdmUgdmVyc2F0aWxpdHksIGNyZWF0aXZpdHkgYW5kIFwiZmxhdm9yXCIgb2YgdGhlIHJlc3VsdGluZyBtb2RlbC4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ0aGVkcnVtbWVyL3Vuc2xvcG5lbW8tMTJiIiwibmFtZSI6IlVuc2xvcG5lbW8gMTJCIiwiY3JlYXRlZCI6MTczMTEwMzQ0OCwiZGVzY3JpcHRpb24iOiJVbnNsb3BOZW1vIHY0LjEgaXMgdGhlIGxhdGVzdCBhZGRpdGlvbiBmcm9tIHRoZSBjcmVhdG9yIG9mIFJvY2luYW50ZSwgZGVzaWduZWQgZm9yIGFkdmVudHVyZSB3cml0aW5nIGFuZCByb2xlLXBsYXkgc2NlbmFyaW9zLiIsImNvbnRleHRfbGVuZ3RoIjozMjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdTpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBIYWlrdSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIG9mZmVycyBlbmhhbmNlZCBjYXBhYmlsaXRpZXMgaW4gc3BlZWQsIGNvZGluZyBhY2N1cmFjeSwgYW5kIHRvb2wgdXNlLiBFbmdpbmVlcmVkIHRvIGV4Y2VsIGluIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMsIGl0IGRlbGl2ZXJzIHF1aWNrIHJlc3BvbnNlIHRpbWVzIHRoYXQgYXJlIGVzc2VudGlhbCBmb3IgZHluYW1pYyB0YXNrcyBzdWNoIGFzIGNoYXQgaW50ZXJhY3Rpb25zIGFuZCBpbW1lZGlhdGUgY29kaW5nIHN1Z2dlc3Rpb25zLlxuXG5UaGlzIG1ha2VzIGl0IGhpZ2hseSBzdWl0YWJsZSBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZGVtYW5kIGJvdGggc3BlZWQgYW5kIHByZWNpc2lvbiwgc3VjaCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCwgY3VzdG9tZXIgc2VydmljZSBib3RzLCBhbmQgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbXMuXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvaW50aW5nIHRvIFtDbGF1ZGUgMy41IEhhaWt1ICgyMDI0LTEwLTIyKV0oL2FudGhyb3BpYy9jbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyKS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA4IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgMy41IEhhaWt1IiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIG9mZmVycyBlbmhhbmNlZCBjYXBhYmlsaXRpZXMgaW4gc3BlZWQsIGNvZGluZyBhY2N1cmFjeSwgYW5kIHRvb2wgdXNlLiBFbmdpbmVlcmVkIHRvIGV4Y2VsIGluIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMsIGl0IGRlbGl2ZXJzIHF1aWNrIHJlc3BvbnNlIHRpbWVzIHRoYXQgYXJlIGVzc2VudGlhbCBmb3IgZHluYW1pYyB0YXNrcyBzdWNoIGFzIGNoYXQgaW50ZXJhY3Rpb25zIGFuZCBpbW1lZGlhdGUgY29kaW5nIHN1Z2dlc3Rpb25zLlxuXG5UaGlzIG1ha2VzIGl0IGhpZ2hseSBzdWl0YWJsZSBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZGVtYW5kIGJvdGggc3BlZWQgYW5kIHByZWNpc2lvbiwgc3VjaCBhcyBzb2Z0d2FyZSBkZXZlbG9wbWVudCwgY3VzdG9tZXIgc2VydmljZSBib3RzLCBhbmQgZGF0YSBtYW5hZ2VtZW50IHN5c3RlbXMuXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvaW50aW5nIHRvIFtDbGF1ZGUgMy41IEhhaWt1ICgyMDI0LTEwLTIyKV0oL2FudGhyb3BpYy9jbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyKS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA4IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdS0yMDI0MTAyMjpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBIYWlrdSAoMjAyNC0xMC0yMikgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MzA2Nzg0MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMuNSBIYWlrdSBmZWF0dXJlcyBlbmhhbmNlbWVudHMgYWNyb3NzIGFsbCBza2lsbCBzZXRzIGluY2x1ZGluZyBjb2RpbmcsIHRvb2wgdXNlLCBhbmQgcmVhc29uaW5nLiBBcyB0aGUgZmFzdGVzdCBtb2RlbCBpbiB0aGUgQW50aHJvcGljIGxpbmV1cCwgaXQgb2ZmZXJzIHJhcGlkIHJlc3BvbnNlIHRpbWVzIHN1aXRhYmxlIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGhpZ2ggaW50ZXJhY3Rpdml0eSBhbmQgbG93IGxhdGVuY3ksIHN1Y2ggYXMgdXNlci1mYWNpbmcgY2hhdGJvdHMgYW5kIG9uLXRoZS1mbHkgY29kZSBjb21wbGV0aW9ucy4gSXQgYWxzbyBleGNlbHMgaW4gc3BlY2lhbGl6ZWQgdGFza3MgbGlrZSBkYXRhIGV4dHJhY3Rpb24gYW5kIHJlYWwtdGltZSBjb250ZW50IG1vZGVyYXRpb24sIG1ha2luZyBpdCBhIHZlcnNhdGlsZSB0b29sIGZvciBhIGJyb2FkIHJhbmdlIG9mIGluZHVzdHJpZXMuXG5cbkl0IGRvZXMgbm90IHN1cHBvcnQgaW1hZ2UgaW5wdXRzLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvMy01LW1vZGVscy1hbmQtY29tcHV0ZXItdXNlKSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDgiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAxIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1oYWlrdS0yMDI0MTAyMiIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgSGFpa3UgKDIwMjQtMTAtMjIpIiwiY3JlYXRlZCI6MTczMDY3ODQwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IEhhaWt1IGZlYXR1cmVzIGVuaGFuY2VtZW50cyBhY3Jvc3MgYWxsIHNraWxsIHNldHMgaW5jbHVkaW5nIGNvZGluZywgdG9vbCB1c2UsIGFuZCByZWFzb25pbmcuIEFzIHRoZSBmYXN0ZXN0IG1vZGVsIGluIHRoZSBBbnRocm9waWMgbGluZXVwLCBpdCBvZmZlcnMgcmFwaWQgcmVzcG9uc2UgdGltZXMgc3VpdGFibGUgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IHJlcXVpcmUgaGlnaCBpbnRlcmFjdGl2aXR5IGFuZCBsb3cgbGF0ZW5jeSwgc3VjaCBhcyB1c2VyLWZhY2luZyBjaGF0Ym90cyBhbmQgb24tdGhlLWZseSBjb2RlIGNvbXBsZXRpb25zLiBJdCBhbHNvIGV4Y2VscyBpbiBzcGVjaWFsaXplZCB0YXNrcyBsaWtlIGRhdGEgZXh0cmFjdGlvbiBhbmQgcmVhbC10aW1lIGNvbnRlbnQgbW9kZXJhdGlvbiwgbWFraW5nIGl0IGEgdmVyc2F0aWxlIHRvb2wgZm9yIGEgYnJvYWQgcmFuZ2Ugb2YgaW5kdXN0cmllcy5cblxuSXQgZG9lcyBub3Qgc3VwcG9ydCBpbWFnZSBpbnB1dHMuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy8zLTUtbW9kZWxzLWFuZC1jb21wdXRlci11c2UpIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwOCIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDEifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLjEtbHVtaW1haWQtNzBiIiwibmFtZSI6Ik5ldmVyU2xlZXA6IEx1bWltYWlkIHYwLjIgNzBCIiwiY3JlYXRlZCI6MTcyOTU1NTIwMCwiZGVzY3JpcHRpb24iOiJMdW1pbWFpZCB2MC4yIDcwQiBpcyBhIGZpbmV0dW5lIG9mIFtMbGFtYSAzLjEgNzBCXSgvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSB3aXRoIGEgXCJIVUdFIHN0ZXAgdXAgZGF0YXNldCB3aXNlXCIgY29tcGFyZWQgdG8gTHVtaW1haWQgdjAuMS4gU2xvcHB5IGNoYXRzIG91dHB1dCB3ZXJlIHB1cmdlZC5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMjI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJhY2l0ZS1vcmcvbWFnbnVtLXY0LTcyYiIsIm5hbWUiOiJNYWdudW0gdjQgNzJCIiwiY3JlYXRlZCI6MTcyOTU1NTIwMCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIGEgc2VyaWVzIG9mIG1vZGVscyBkZXNpZ25lZCB0byByZXBsaWNhdGUgdGhlIHByb3NlIHF1YWxpdHkgb2YgdGhlIENsYXVkZSAzIG1vZGVscywgc3BlY2lmaWNhbGx5IFNvbm5ldChodHRwczovL29wZW5yb3V0ZXIuYWkvYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0KSBhbmQgT3B1cyhodHRwczovL29wZW5yb3V0ZXIuYWkvYW50aHJvcGljL2NsYXVkZS0zLW9wdXMpLlxuXG5UaGUgbW9kZWwgaXMgZmluZS10dW5lZCBvbiB0b3Agb2YgW1F3ZW4yLjUgNzJCXShodHRwczovL29wZW5yb3V0ZXIuYWkvcXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3QpLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAyMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMjQsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQ6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgU29ubmV0IChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzI5NTU1MjAwLCJkZXNjcmlwdGlvbiI6Ik5ldyBDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogU2NvcmVzIH40OSUgb24gU1dFLUJlbmNoIFZlcmlmaWVkLCBoaWdoZXIgdGhhbiB0aGUgbGFzdCBiZXN0IHNjb3JlLCBhbmQgd2l0aG91dCBhbnkgZmFuY3kgcHJvbXB0IHNjYWZmb2xkaW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQiLCJjcmVhdGVkIjoxNzI5NTU1MjAwLCJkZXNjcmlwdGlvbiI6Ik5ldyBDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogU2NvcmVzIH40OSUgb24gU1dFLUJlbmNoIFZlcmlmaWVkLCBoaWdoZXIgdGhhbiB0aGUgbGFzdCBiZXN0IHNjb3JlLCBhbmQgd2l0aG91dCBhbnkgZmFuY3kgcHJvbXB0IHNjYWZmb2xkaW5nXG4tIERhdGEgc2NpZW5jZTogQXVnbWVudHMgaHVtYW4gZGF0YSBzY2llbmNlIGV4cGVydGlzZTsgbmF2aWdhdGVzIHVuc3RydWN0dXJlZCBkYXRhIHdoaWxlIHVzaW5nIG11bHRpcGxlIHRvb2xzIGZvciBpbnNpZ2h0c1xuLSBWaXN1YWwgcHJvY2Vzc2luZzogZXhjZWxsaW5nIGF0IGludGVycHJldGluZyBjaGFydHMsIGdyYXBocywgYW5kIGltYWdlcywgYWNjdXJhdGVseSB0cmFuc2NyaWJpbmcgdGV4dCB0byBkZXJpdmUgaW5zaWdodHMgYmV5b25kIGp1c3QgdGhlIHRleHQgYWxvbmVcbi0gQWdlbnRpYyB0YXNrczogZXhjZXB0aW9uYWwgdG9vbCB1c2UsIG1ha2luZyBpdCBncmVhdCBhdCBhZ2VudGljIHRhc2tzIChpLmUuIGNvbXBsZXgsIG11bHRpLXN0ZXAgcHJvYmxlbSBzb2x2aW5nIHRhc2tzIHRoYXQgcmVxdWlyZSBlbmdhZ2luZyB3aXRoIG90aGVyIHN5c3RlbXMpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ4LWFpL2dyb2stYmV0YSIsIm5hbWUiOiJ4QUk6IEdyb2sgQmV0YSIsImNyZWF0ZWQiOjE3MjkzODI0MDAsImRlc2NyaXB0aW9uIjoiR3JvayBCZXRhIGlzIHhBSSdzIGV4cGVyaW1lbnRhbCBsYW5ndWFnZSBtb2RlbCB3aXRoIHN0YXRlLW9mLXRoZS1hcnQgcmVhc29uaW5nIGNhcGFiaWxpdGllcywgYmVzdCBmb3IgY29tcGxleCBhbmQgbXVsdGktc3RlcCB1c2UgY2FzZXMuXG5cbkl0IGlzIHRoZSBzdWNjZXNzb3Igb2YgW0dyb2sgMl0oaHR0cHM6Ly94LmFpL2Jsb2cvZ3Jvay0yKSB3aXRoIGVuaGFuY2VkIGNvbnRleHQgbGVuZ3RoLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHcm9rIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pbmlzdHJhbC04YiIsIm5hbWUiOiJNaXN0cmFsOiBNaW5pc3RyYWwgOEIiLCJjcmVhdGVkIjoxNzI5MTIzMjAwLCJkZXNjcmlwdGlvbiI6Ik1pbmlzdHJhbCA4QiBpcyBhbiA4QiBwYXJhbWV0ZXIgbW9kZWwgZmVhdHVyaW5nIGEgdW5pcXVlIGludGVybGVhdmVkIHNsaWRpbmctd2luZG93IGF0dGVudGlvbiBwYXR0ZXJuIGZvciBmYXN0ZXIsIG1lbW9yeS1lZmZpY2llbnQgaW5mZXJlbmNlLiBEZXNpZ25lZCBmb3IgZWRnZSB1c2UgY2FzZXMsIGl0IHN1cHBvcnRzIHVwIHRvIDEyOGsgY29udGV4dCBsZW5ndGggYW5kIGV4Y2VscyBpbiBrbm93bGVkZ2UgYW5kIHJlYXNvbmluZyB0YXNrcy4gSXQgb3V0cGVyZm9ybXMgcGVlcnMgaW4gdGhlIHN1Yi0xMEIgY2F0ZWdvcnksIG1ha2luZyBpdCBwZXJmZWN0IGZvciBsb3ctbGF0ZW5jeSwgcHJpdmFjeS1maXJzdCBhcHBsaWNhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taW5pc3RyYWwtM2IiLCJuYW1lIjoiTWlzdHJhbDogTWluaXN0cmFsIDNCIiwiY3JlYXRlZCI6MTcyOTEyMzIwMCwiZGVzY3JpcHRpb24iOiJNaW5pc3RyYWwgM0IgaXMgYSAzQiBwYXJhbWV0ZXIgbW9kZWwgb3B0aW1pemVkIGZvciBvbi1kZXZpY2UgYW5kIGVkZ2UgY29tcHV0aW5nLiBJdCBleGNlbHMgaW4ga25vd2xlZGdlLCBjb21tb25zZW5zZSByZWFzb25pbmcsIGFuZCBmdW5jdGlvbi1jYWxsaW5nLCBvdXRwZXJmb3JtaW5nIGxhcmdlciBtb2RlbHMgbGlrZSBNaXN0cmFsIDdCIG9uIG1vc3QgYmVuY2htYXJrcy4gU3VwcG9ydGluZyB1cCB0byAxMjhrIGNvbnRleHQgbGVuZ3RoLCBpdOKAmXMgaWRlYWwgZm9yIG9yY2hlc3RyYXRpbmcgYWdlbnRpYyB3b3JrZmxvd3MgYW5kIHNwZWNpYWxpc3QgdGFza3Mgd2l0aCBlZmZpY2llbnQgaW5mZXJlbmNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi0yLjUtN2ItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IDdCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3MjkwMzY4MDAsImRlc2NyaXB0aW9uIjoiUXdlbjIuNSA3QiBpcyB0aGUgbGF0ZXN0IHNlcmllcyBvZiBRd2VuIGxhcmdlIGxhbmd1YWdlIG1vZGVscy4gUXdlbjIuNSBicmluZ3MgdGhlIGZvbGxvd2luZyBpbXByb3ZlbWVudHMgdXBvbiBRd2VuMjpcblxuLSBTaWduaWZpY2FudGx5IG1vcmUga25vd2xlZGdlIGFuZCBoYXMgZ3JlYXRseSBpbXByb3ZlZCBjYXBhYmlsaXRpZXMgaW4gY29kaW5nIGFuZCBtYXRoZW1hdGljcywgdGhhbmtzIHRvIG91ciBzcGVjaWFsaXplZCBleHBlcnQgbW9kZWxzIGluIHRoZXNlIGRvbWFpbnMuXG5cbi0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIGluIGluc3RydWN0aW9uIGZvbGxvd2luZywgZ2VuZXJhdGluZyBsb25nIHRleHRzIChvdmVyIDhLIHRva2VucyksIHVuZGVyc3RhbmRpbmcgc3RydWN0dXJlZCBkYXRhIChlLmcsIHRhYmxlcyksIGFuZCBnZW5lcmF0aW5nIHN0cnVjdHVyZWQgb3V0cHV0cyBlc3BlY2lhbGx5IEpTT04uIE1vcmUgcmVzaWxpZW50IHRvIHRoZSBkaXZlcnNpdHkgb2Ygc3lzdGVtIHByb21wdHMsIGVuaGFuY2luZyByb2xlLXBsYXkgaW1wbGVtZW50YXRpb24gYW5kIGNvbmRpdGlvbi1zZXR0aW5nIGZvciBjaGF0Ym90cy5cblxuLSBMb25nLWNvbnRleHQgU3VwcG9ydCB1cCB0byAxMjhLIHRva2VucyBhbmQgY2FuIGdlbmVyYXRlIHVwIHRvIDhLIHRva2Vucy5cblxuLSBNdWx0aWxpbmd1YWwgc3VwcG9ydCBmb3Igb3ZlciAyOSBsYW5ndWFnZXMsIGluY2x1ZGluZyBDaGluZXNlLCBFbmdsaXNoLCBGcmVuY2gsIFNwYW5pc2gsIFBvcnR1Z3Vlc2UsIEdlcm1hbiwgSXRhbGlhbiwgUnVzc2lhbiwgSmFwYW5lc2UsIEtvcmVhbiwgVmlldG5hbWVzZSwgVGhhaSwgQXJhYmljLCBhbmQgbW9yZS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtUb25neWkgUWlhbndlbiBMSUNFTlNFIEFHUkVFTUVOVF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4xLjUtMTEwQi1DaGF0L2Jsb2IvbWFpbi9MSUNFTlNFKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MzI3NjgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJxd2VuL3F3ZW4tMi41LTdiLWluc3RydWN0IiwibmFtZSI6IlF3ZW4yLjUgN0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI5MDM2ODAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgN0IgaXMgdGhlIGxhdGVzdCBzZXJpZXMgb2YgUXdlbiBsYXJnZSBsYW5ndWFnZSBtb2RlbHMuIFF3ZW4yLjUgYnJpbmdzIHRoZSBmb2xsb3dpbmcgaW1wcm92ZW1lbnRzIHVwb24gUXdlbjI6XG5cbi0gU2lnbmlmaWNhbnRseSBtb3JlIGtub3dsZWRnZSBhbmQgaGFzIGdyZWF0bHkgaW1wcm92ZWQgY2FwYWJpbGl0aWVzIGluIGNvZGluZyBhbmQgbWF0aGVtYXRpY3MsIHRoYW5rcyB0byBvdXIgc3BlY2lhbGl6ZWQgZXhwZXJ0IG1vZGVscyBpbiB0aGVzZSBkb21haW5zLlxuXG4tIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyBpbiBpbnN0cnVjdGlvbiBmb2xsb3dpbmcsIGdlbmVyYXRpbmcgbG9uZyB0ZXh0cyAob3ZlciA4SyB0b2tlbnMpLCB1bmRlcnN0YW5kaW5nIHN0cnVjdHVyZWQgZGF0YSAoZS5nLCB0YWJsZXMpLCBhbmQgZ2VuZXJhdGluZyBzdHJ1Y3R1cmVkIG91dHB1dHMgZXNwZWNpYWxseSBKU09OLiBNb3JlIHJlc2lsaWVudCB0byB0aGUgZGl2ZXJzaXR5IG9mIHN5c3RlbSBwcm9tcHRzLCBlbmhhbmNpbmcgcm9sZS1wbGF5IGltcGxlbWVudGF0aW9uIGFuZCBjb25kaXRpb24tc2V0dGluZyBmb3IgY2hhdGJvdHMuXG5cbi0gTG9uZy1jb250ZXh0IFN1cHBvcnQgdXAgdG8gMTI4SyB0b2tlbnMgYW5kIGNhbiBnZW5lcmF0ZSB1cCB0byA4SyB0b2tlbnMuXG5cbi0gTXVsdGlsaW5ndWFsIHN1cHBvcnQgZm9yIG92ZXIgMjkgbGFuZ3VhZ2VzLCBpbmNsdWRpbmcgQ2hpbmVzZSwgRW5nbGlzaCwgRnJlbmNoLCBTcGFuaXNoLCBQb3J0dWd1ZXNlLCBHZXJtYW4sIEl0YWxpYW4sIFJ1c3NpYW4sIEphcGFuZXNlLCBLb3JlYW4sIFZpZXRuYW1lc2UsIFRoYWksIEFyYWJpYywgYW5kIG1vcmUuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tNzBiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTlZJRElBOiBMbGFtYSAzLjEgTmVtb3Ryb24gNzBCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3Mjg5NTA0MDAsImRlc2NyaXB0aW9uIjoiTlZJRElBJ3MgTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBpcyBhIGxhbmd1YWdlIG1vZGVsIGRlc2lnbmVkIGZvciBnZW5lcmF0aW5nIHByZWNpc2UgYW5kIHVzZWZ1bCByZXNwb25zZXMuIExldmVyYWdpbmcgW0xsYW1hIDMuMSA3MEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSBhcmNoaXRlY3R1cmUgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRiksIGl0IGV4Y2VscyBpbiBhdXRvbWF0aWMgYWxpZ25tZW50IGJlbmNobWFya3MuIFRoaXMgbW9kZWwgaXMgdGFpbG9yZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgaGlnaCBhY2N1cmFjeSBpbiBoZWxwZnVsbmVzcyBhbmQgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgc3VpdGFibGUgZm9yIGRpdmVyc2UgdXNlciBxdWVyaWVzIGFjcm9zcyBtdWx0aXBsZSBkb21haW5zLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im52aWRpYS9sbGFtYS0zLjEtbmVtb3Ryb24tNzBiLWluc3RydWN0IiwibmFtZSI6Ik5WSURJQTogTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3Mjg5NTA0MDAsImRlc2NyaXB0aW9uIjoiTlZJRElBJ3MgTGxhbWEgMy4xIE5lbW90cm9uIDcwQiBpcyBhIGxhbmd1YWdlIG1vZGVsIGRlc2lnbmVkIGZvciBnZW5lcmF0aW5nIHByZWNpc2UgYW5kIHVzZWZ1bCByZXNwb25zZXMuIExldmVyYWdpbmcgW0xsYW1hIDMuMSA3MEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtNzBiLWluc3RydWN0KSBhcmNoaXRlY3R1cmUgYW5kIFJlaW5mb3JjZW1lbnQgTGVhcm5pbmcgZnJvbSBIdW1hbiBGZWVkYmFjayAoUkxIRiksIGl0IGV4Y2VscyBpbiBhdXRvbWF0aWMgYWxpZ25tZW50IGJlbmNobWFya3MuIFRoaXMgbW9kZWwgaXMgdGFpbG9yZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgaGlnaCBhY2N1cmFjeSBpbiBoZWxwZnVsbmVzcyBhbmQgcmVzcG9uc2UgZ2VuZXJhdGlvbiwgc3VpdGFibGUgZm9yIGRpdmVyc2UgdXNlciBxdWVyaWVzIGFjcm9zcyBtdWx0aXBsZSBkb21haW5zLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMzEwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJpbmZsZWN0aW9uL2luZmxlY3Rpb24tMy1wcm9kdWN0aXZpdHkiLCJuYW1lIjoiSW5mbGVjdGlvbjogSW5mbGVjdGlvbiAzIFByb2R1Y3Rpdml0eSIsImNyZWF0ZWQiOjE3Mjg2MDQ4MDAsImRlc2NyaXB0aW9uIjoiSW5mbGVjdGlvbiAzIFByb2R1Y3Rpdml0eSBpcyBvcHRpbWl6ZWQgZm9yIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMuIEl0IGlzIGJldHRlciBmb3IgdGFza3MgcmVxdWlyaW5nIEpTT04gb3V0cHV0IG9yIHByZWNpc2UgYWRoZXJlbmNlIHRvIHByb3ZpZGVkIGd1aWRlbGluZXMuIEl0IGhhcyBhY2Nlc3MgdG8gcmVjZW50IG5ld3MuXG5cbkZvciBlbW90aW9uYWwgaW50ZWxsaWdlbmNlIHNpbWlsYXIgdG8gUGksIHNlZSBbSW5mbGVjdCAzIFBpXSgvaW5mbGVjdGlvbi9pbmZsZWN0aW9uLTMtcGkpXG5cblNlZSBbSW5mbGVjdGlvbidzIGFubm91bmNlbWVudF0oaHR0cHM6Ly9pbmZsZWN0aW9uLmFpL2Jsb2cvZW50ZXJwcmlzZSkgZm9yIG1vcmUgZGV0YWlscy4iLCJjb250ZXh0X2xlbmd0aCI6ODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImluZmxlY3Rpb24vaW5mbGVjdGlvbi0zLXBpIiwibmFtZSI6IkluZmxlY3Rpb246IEluZmxlY3Rpb24gMyBQaSIsImNyZWF0ZWQiOjE3Mjg2MDQ4MDAsImRlc2NyaXB0aW9uIjoiSW5mbGVjdGlvbiAzIFBpIHBvd2VycyBJbmZsZWN0aW9uJ3MgW1BpXShodHRwczovL3BpLmFpKSBjaGF0Ym90LCBpbmNsdWRpbmcgYmFja3N0b3J5LCBlbW90aW9uYWwgaW50ZWxsaWdlbmNlLCBwcm9kdWN0aXZpdHksIGFuZCBzYWZldHkuIEl0IGhhcyBhY2Nlc3MgdG8gcmVjZW50IG5ld3MsIGFuZCBleGNlbHMgaW4gc2NlbmFyaW9zIGxpa2UgY3VzdG9tZXIgc3VwcG9ydCBhbmQgcm9sZXBsYXkuXG5cblBpIGhhcyBiZWVuIHRyYWluZWQgdG8gbWlycm9yIHlvdXIgdG9uZSBhbmQgc3R5bGUsIGlmIHlvdSB1c2UgbW9yZSBlbW9qaXMsIHNvIHdpbGwgUGkhIFRyeSBleHBlcmltZW50aW5nIHdpdGggdmFyaW91cyBwcm9tcHRzIGFuZCBjb252ZXJzYXRpb24gc3R5bGVzLiIsImNvbnRleHRfbGVuZ3RoIjo4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxMDI0LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUtOGIiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMS41IEZsYXNoIDhCIiwiY3JlYXRlZCI6MTcyNzkxMzYwMCwiZGVzY3JpcHRpb24iOiJHZW1pbmkgRmxhc2ggMS41IDhCIGlzIG9wdGltaXplZCBmb3Igc3BlZWQgYW5kIGVmZmljaWVuY3ksIG9mZmVyaW5nIGVuaGFuY2VkIHBlcmZvcm1hbmNlIGluIHNtYWxsIHByb21wdCB0YXNrcyBsaWtlIGNoYXQsIHRyYW5zY3JpcHRpb24sIGFuZCB0cmFuc2xhdGlvbi4gV2l0aCByZWR1Y2VkIGxhdGVuY3ksIGl0IGlzIGhpZ2hseSBlZmZlY3RpdmUgZm9yIHJlYWwtdGltZSBhbmQgbGFyZ2Utc2NhbGUgb3BlcmF0aW9ucy4gVGhpcyBtb2RlbCBmb2N1c2VzIG9uIGNvc3QtZWZmZWN0aXZlIHNvbHV0aW9ucyB3aGlsZSBtYWludGFpbmluZyBoaWdoLXF1YWxpdHkgcmVzdWx0cy5cblxuW0NsaWNrIGhlcmUgdG8gbGVhcm4gbW9yZSBhYm91dCB0aGlzIG1vZGVsXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlYmxvZy5jb20vZW4vZ2VtaW5pLTE1LWZsYXNoLThiLWlzLW5vdy1nZW5lcmFsbHktYXZhaWxhYmxlLWZvci11c2UvKS5cblxuVXNhZ2Ugb2YgR2VtaW5pIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbWluaSBUZXJtcyBvZiBVc2VdKGh0dHBzOi8vYWkuZ29vZ2xlLmRldi90ZXJtcykuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAwMSIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDAwNTgzIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidGhlZHJ1bW1lci9yb2NpbmFudGUtMTJiIiwibmFtZSI6IlJvY2luYW50ZSAxMkIiLCJjcmVhdGVkIjoxNzI3NjU0NDAwLCJkZXNjcmlwdGlvbiI6IlJvY2luYW50ZSAxMkIgaXMgZGVzaWduZWQgZm9yIGVuZ2FnaW5nIHN0b3J5dGVsbGluZyBhbmQgcmljaCBwcm9zZS5cblxuRWFybHkgdGVzdGVycyBoYXZlIHJlcG9ydGVkOlxuLSBFeHBhbmRlZCB2b2NhYnVsYXJ5IHdpdGggdW5pcXVlIGFuZCBleHByZXNzaXZlIHdvcmQgY2hvaWNlc1xuLSBFbmhhbmNlZCBjcmVhdGl2aXR5IGZvciB2aXZpZCBuYXJyYXRpdmVzXG4tIEFkdmVudHVyZS1maWxsZWQgYW5kIGNhcHRpdmF0aW5nIHN0b3JpZXMiLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJhY2l0ZS1vcmcvbWFnbnVtLXYyLTcyYiIsIm5hbWUiOiJNYWdudW0gdjIgNzJCIiwiY3JlYXRlZCI6MTcyNzY1NDQwMCwiZGVzY3JpcHRpb24iOiJGcm9tIHRoZSBtYWtlciBvZiBbR29saWF0aF0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL21vZGVscy9hbHBpbmRhbGUvZ29saWF0aC0xMjBiKSwgTWFnbnVtIDcyQiBpcyB0aGUgc2V2ZW50aCBpbiBhIGZhbWlseSBvZiBtb2RlbHMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgcHJvc2UgcXVhbGl0eSBvZiB0aGUgQ2xhdWRlIDMgbW9kZWxzLCBub3RhYmx5IE9wdXMgJiBTb25uZXQuXG5cblRoZSBtb2RlbCBpcyBiYXNlZCBvbiBbUXdlbjIgNzJCXShodHRwczovL29wZW5yb3V0ZXIuYWkvbW9kZWxzL3F3ZW4vcXdlbi0yLTcyYi1pbnN0cnVjdCkgYW5kIHRyYWluZWQgd2l0aCA1NSBtaWxsaW9uIHRva2VucyBvZiBoaWdobHkgY3VyYXRlZCByb2xlcGxheSAoUlApIGRhdGEuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImxpcXVpZC9sZm0tNDBiIiwibmFtZSI6IkxpcXVpZDogTEZNIDQwQiBNb0UiLCJjcmVhdGVkIjoxNzI3NjU0NDAwLCJkZXNjcmlwdGlvbiI6IkxpcXVpZCdzIDQwLjNCIE1peHR1cmUgb2YgRXhwZXJ0cyAoTW9FKSBtb2RlbC4gTGlxdWlkIEZvdW5kYXRpb24gTW9kZWxzIChMRk1zKSBhcmUgbGFyZ2UgbmV1cmFsIG5ldHdvcmtzIGJ1aWx0IHdpdGggY29tcHV0YXRpb25hbCB1bml0cyByb290ZWQgaW4gZHluYW1pYyBzeXN0ZW1zLlxuXG5MRk1zIGFyZSBnZW5lcmFsLXB1cnBvc2UgQUkgbW9kZWxzIHRoYXQgY2FuIGJlIHVzZWQgdG8gbW9kZWwgYW55IGtpbmQgb2Ygc2VxdWVudGlhbCBkYXRhLCBpbmNsdWRpbmcgdmlkZW8sIGF1ZGlvLCB0ZXh0LCB0aW1lIHNlcmllcywgYW5kIHNpZ25hbHMuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vd3d3LmxpcXVpZC5haS9saXF1aWQtZm91bmRhdGlvbi1tb2RlbHMpIGZvciBiZW5jaG1hcmtzIGFuZCBtb3JlIGluZm8uIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItM2ItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgM0IgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgM0IgaXMgYSAzLWJpbGxpb24tcGFyYW1ldGVyIG11bHRpbGluZ3VhbCBsYXJnZSBsYW5ndWFnZSBtb2RlbCwgb3B0aW1pemVkIGZvciBhZHZhbmNlZCBuYXR1cmFsIGxhbmd1YWdlIHByb2Nlc3NpbmcgdGFza3MgbGlrZSBkaWFsb2d1ZSBnZW5lcmF0aW9uLCByZWFzb25pbmcsIGFuZCBzdW1tYXJpemF0aW9uLiBEZXNpZ25lZCB3aXRoIHRoZSBsYXRlc3QgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLCBpdCBzdXBwb3J0cyBlaWdodCBsYW5ndWFnZXMsIGluY2x1ZGluZyBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgSGluZGksIGFuZCBpcyBhZGFwdGFibGUgZm9yIGFkZGl0aW9uYWwgbGFuZ3VhZ2VzLlxuXG5UcmFpbmVkIG9uIDkgdHJpbGxpb24gdG9rZW5zLCB0aGUgTGxhbWEgMy4yIDNCIG1vZGVsIGV4Y2VscyBpbiBpbnN0cnVjdGlvbi1mb2xsb3dpbmcsIGNvbXBsZXggcmVhc29uaW5nLCBhbmQgdG9vbCB1c2UuIEl0cyBiYWxhbmNlZCBwZXJmb3JtYW5jZSBtYWtlcyBpdCBpZGVhbCBmb3IgYXBwbGljYXRpb25zIG5lZWRpbmcgYWNjdXJhY3kgYW5kIGVmZmljaWVuY3kgaW4gdGV4dCBnZW5lcmF0aW9uIGFjcm9zcyBtdWx0aWxpbmd1YWwgc2V0dGluZ3MuXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRC5tZCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly93d3cubGxhbWEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjAwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMi0zYi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgM0IgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI3MjIyNDAwLCJkZXNjcmlwdGlvbiI6IkxsYW1hIDMuMiAzQiBpcyBhIDMtYmlsbGlvbi1wYXJhbWV0ZXIgbXVsdGlsaW5ndWFsIGxhcmdlIGxhbmd1YWdlIG1vZGVsLCBvcHRpbWl6ZWQgZm9yIGFkdmFuY2VkIG5hdHVyYWwgbGFuZ3VhZ2UgcHJvY2Vzc2luZyB0YXNrcyBsaWtlIGRpYWxvZ3VlIGdlbmVyYXRpb24sIHJlYXNvbmluZywgYW5kIHN1bW1hcml6YXRpb24uIERlc2lnbmVkIHdpdGggdGhlIGxhdGVzdCB0cmFuc2Zvcm1lciBhcmNoaXRlY3R1cmUsIGl0IHN1cHBvcnRzIGVpZ2h0IGxhbmd1YWdlcywgaW5jbHVkaW5nIEVuZ2xpc2gsIFNwYW5pc2gsIGFuZCBIaW5kaSwgYW5kIGlzIGFkYXB0YWJsZSBmb3IgYWRkaXRpb25hbCBsYW5ndWFnZXMuXG5cblRyYWluZWQgb24gOSB0cmlsbGlvbiB0b2tlbnMsIHRoZSBMbGFtYSAzLjIgM0IgbW9kZWwgZXhjZWxzIGluIGluc3RydWN0aW9uLWZvbGxvd2luZywgY29tcGxleCByZWFzb25pbmcsIGFuZCB0b29sIHVzZS4gSXRzIGJhbGFuY2VkIHBlcmZvcm1hbmNlIG1ha2VzIGl0IGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgbmVlZGluZyBhY2N1cmFjeSBhbmQgZWZmaWNpZW5jeSBpbiB0ZXh0IGdlbmVyYXRpb24gYWNyb3NzIG11bHRpbGluZ3VhbCBzZXR0aW5ncy5cblxuQ2xpY2sgaGVyZSBmb3IgdGhlIFtvcmlnaW5hbCBtb2RlbCBjYXJkXShodHRwczovL2dpdGh1Yi5jb20vbWV0YS1sbGFtYS9sbGFtYS1tb2RlbHMvYmxvYi9tYWluL21vZGVscy9sbGFtYTNfMi9NT0RFTF9DQVJELm1kKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL3d3dy5sbGFtYS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMWItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgMUIgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMUIgaXMgYSAxLWJpbGxpb24tcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIGZvY3VzZWQgb24gZWZmaWNpZW50bHkgcGVyZm9ybWluZyBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBzdWNoIGFzIHN1bW1hcml6YXRpb24sIGRpYWxvZ3VlLCBhbmQgbXVsdGlsaW5ndWFsIHRleHQgYW5hbHlzaXMuIEl0cyBzbWFsbGVyIHNpemUgYWxsb3dzIGl0IHRvIG9wZXJhdGUgZWZmaWNpZW50bHkgaW4gbG93LXJlc291cmNlIGVudmlyb25tZW50cyB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgdGFzayBwZXJmb3JtYW5jZS5cblxuU3VwcG9ydGluZyBlaWdodCBjb3JlIGxhbmd1YWdlcyBhbmQgZmluZS10dW5hYmxlIGZvciBtb3JlLCBMbGFtYSAxLjNCIGlzIGlkZWFsIGZvciBidXNpbmVzc2VzIG9yIGRldmVsb3BlcnMgc2Vla2luZyBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgQUkgc29sdXRpb25zIHRoYXQgY2FuIG9wZXJhdGUgaW4gZGl2ZXJzZSBtdWx0aWxpbmd1YWwgc2V0dGluZ3Mgd2l0aG91dCB0aGUgaGlnaCBjb21wdXRhdGlvbmFsIGRlbWFuZCBvZiBsYXJnZXIgbW9kZWxzLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkQubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDcyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMWItaW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDFCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMUIgaXMgYSAxLWJpbGxpb24tcGFyYW1ldGVyIGxhbmd1YWdlIG1vZGVsIGZvY3VzZWQgb24gZWZmaWNpZW50bHkgcGVyZm9ybWluZyBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBzdWNoIGFzIHN1bW1hcml6YXRpb24sIGRpYWxvZ3VlLCBhbmQgbXVsdGlsaW5ndWFsIHRleHQgYW5hbHlzaXMuIEl0cyBzbWFsbGVyIHNpemUgYWxsb3dzIGl0IHRvIG9wZXJhdGUgZWZmaWNpZW50bHkgaW4gbG93LXJlc291cmNlIGVudmlyb25tZW50cyB3aGlsZSBtYWludGFpbmluZyBzdHJvbmcgdGFzayBwZXJmb3JtYW5jZS5cblxuU3VwcG9ydGluZyBlaWdodCBjb3JlIGxhbmd1YWdlcyBhbmQgZmluZS10dW5hYmxlIGZvciBtb3JlLCBMbGFtYSAxLjNCIGlzIGlkZWFsIGZvciBidXNpbmVzc2VzIG9yIGRldmVsb3BlcnMgc2Vla2luZyBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgQUkgc29sdXRpb25zIHRoYXQgY2FuIG9wZXJhdGUgaW4gZGl2ZXJzZSBtdWx0aWxpbmd1YWwgc2V0dGluZ3Mgd2l0aG91dCB0aGUgaGlnaCBjb21wdXRhdGlvbmFsIGRlbWFuZCBvZiBsYXJnZXIgbW9kZWxzLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkQubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4yLTkwYi12aXNpb24taW5zdHJ1Y3QiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDkwQiBWaXNpb24gSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI3MjIyNDAwLCJkZXNjcmlwdGlvbiI6IlRoZSBMbGFtYSA5MEIgVmlzaW9uIG1vZGVsIGlzIGEgdG9wLXRpZXIsIDkwLWJpbGxpb24tcGFyYW1ldGVyIG11bHRpbW9kYWwgbW9kZWwgZGVzaWduZWQgZm9yIHRoZSBtb3N0IGNoYWxsZW5naW5nIHZpc3VhbCByZWFzb25pbmcgYW5kIGxhbmd1YWdlIHRhc2tzLiBJdCBvZmZlcnMgdW5wYXJhbGxlbGVkIGFjY3VyYWN5IGluIGltYWdlIGNhcHRpb25pbmcsIHZpc3VhbCBxdWVzdGlvbiBhbnN3ZXJpbmcsIGFuZCBhZHZhbmNlZCBpbWFnZS10ZXh0IGNvbXByZWhlbnNpb24uIFByZS10cmFpbmVkIG9uIHZhc3QgbXVsdGltb2RhbCBkYXRhc2V0cyBhbmQgZmluZS10dW5lZCB3aXRoIGh1bWFuIGZlZWRiYWNrLCB0aGUgTGxhbWEgOTBCIFZpc2lvbiBpcyBlbmdpbmVlcmVkIHRvIGhhbmRsZSB0aGUgbW9zdCBkZW1hbmRpbmcgaW1hZ2UtYmFzZWQgQUkgdGFza3MuXG5cblRoaXMgbW9kZWwgaXMgcGVyZmVjdCBmb3IgaW5kdXN0cmllcyByZXF1aXJpbmcgY3V0dGluZy1lZGdlIG11bHRpbW9kYWwgQUkgY2FwYWJpbGl0aWVzLCBwYXJ0aWN1bGFybHkgdGhvc2UgZGVhbGluZyB3aXRoIGNvbXBsZXgsIHJlYWwtdGltZSB2aXN1YWwgYW5kIHRleHR1YWwgYW5hbHlzaXMuXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRF9WSVNJT04ubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNTE0NTYiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMi0xMWItdmlzaW9uLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4yIDExQiBWaXNpb24gSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNzIyMjQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjIgMTFCIFZpc2lvbiBpcyBhIG11bHRpbW9kYWwgbW9kZWwgd2l0aCAxMSBiaWxsaW9uIHBhcmFtZXRlcnMsIGRlc2lnbmVkIHRvIGhhbmRsZSB0YXNrcyBjb21iaW5pbmcgdmlzdWFsIGFuZCB0ZXh0dWFsIGRhdGEuIEl0IGV4Y2VscyBpbiB0YXNrcyBzdWNoIGFzIGltYWdlIGNhcHRpb25pbmcgYW5kIHZpc3VhbCBxdWVzdGlvbiBhbnN3ZXJpbmcsIGJyaWRnaW5nIHRoZSBnYXAgYmV0d2VlbiBsYW5ndWFnZSBnZW5lcmF0aW9uIGFuZCB2aXN1YWwgcmVhc29uaW5nLiBQcmUtdHJhaW5lZCBvbiBhIG1hc3NpdmUgZGF0YXNldCBvZiBpbWFnZS10ZXh0IHBhaXJzLCBpdCBwZXJmb3JtcyB3ZWxsIGluIGNvbXBsZXgsIGhpZ2gtYWNjdXJhY3kgaW1hZ2UgYW5hbHlzaXMuXG5cbkl0cyBhYmlsaXR5IHRvIGludGVncmF0ZSB2aXN1YWwgdW5kZXJzdGFuZGluZyB3aXRoIGxhbmd1YWdlIHByb2Nlc3NpbmcgbWFrZXMgaXQgYW4gaWRlYWwgc29sdXRpb24gZm9yIGluZHVzdHJpZXMgcmVxdWlyaW5nIGNvbXByZWhlbnNpdmUgdmlzdWFsLWxpbmd1aXN0aWMgQUkgYXBwbGljYXRpb25zLCBzdWNoIGFzIGNvbnRlbnQgY3JlYXRpb24sIEFJLWRyaXZlbiBjdXN0b21lciBzZXJ2aWNlLCBhbmQgcmVzZWFyY2guXG5cbkNsaWNrIGhlcmUgZm9yIHRoZSBbb3JpZ2luYWwgbW9kZWwgY2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL21ldGEtbGxhbWEvbGxhbWEtbW9kZWxzL2Jsb2IvbWFpbi9tb2RlbHMvbGxhbWEzXzIvTU9ERUxfQ0FSRF9WSVNJT04ubWQpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwIiwiY29tcGxldGlvbiI6IjAiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjItMTFiLXZpc2lvbi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjIgMTFCIFZpc2lvbiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjcyMjI0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4yIDExQiBWaXNpb24gaXMgYSBtdWx0aW1vZGFsIG1vZGVsIHdpdGggMTEgYmlsbGlvbiBwYXJhbWV0ZXJzLCBkZXNpZ25lZCB0byBoYW5kbGUgdGFza3MgY29tYmluaW5nIHZpc3VhbCBhbmQgdGV4dHVhbCBkYXRhLiBJdCBleGNlbHMgaW4gdGFza3Mgc3VjaCBhcyBpbWFnZSBjYXB0aW9uaW5nIGFuZCB2aXN1YWwgcXVlc3Rpb24gYW5zd2VyaW5nLCBicmlkZ2luZyB0aGUgZ2FwIGJldHdlZW4gbGFuZ3VhZ2UgZ2VuZXJhdGlvbiBhbmQgdmlzdWFsIHJlYXNvbmluZy4gUHJlLXRyYWluZWQgb24gYSBtYXNzaXZlIGRhdGFzZXQgb2YgaW1hZ2UtdGV4dCBwYWlycywgaXQgcGVyZm9ybXMgd2VsbCBpbiBjb21wbGV4LCBoaWdoLWFjY3VyYWN5IGltYWdlIGFuYWx5c2lzLlxuXG5JdHMgYWJpbGl0eSB0byBpbnRlZ3JhdGUgdmlzdWFsIHVuZGVyc3RhbmRpbmcgd2l0aCBsYW5ndWFnZSBwcm9jZXNzaW5nIG1ha2VzIGl0IGFuIGlkZWFsIHNvbHV0aW9uIGZvciBpbmR1c3RyaWVzIHJlcXVpcmluZyBjb21wcmVoZW5zaXZlIHZpc3VhbC1saW5ndWlzdGljIEFJIGFwcGxpY2F0aW9ucywgc3VjaCBhcyBjb250ZW50IGNyZWF0aW9uLCBBSS1kcml2ZW4gY3VzdG9tZXIgc2VydmljZSwgYW5kIHJlc2VhcmNoLlxuXG5DbGljayBoZXJlIGZvciB0aGUgW29yaWdpbmFsIG1vZGVsIGNhcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhLWxsYW1hL2xsYW1hLW1vZGVscy9ibG9iL21haW4vbW9kZWxzL2xsYW1hM18yL01PREVMX0NBUkRfVklTSU9OLm1kKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL3d3dy5sbGFtYS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwNzk0OCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3Q6ZnJlZSIsIm5hbWUiOiJRd2VuMi41IDcyQiBJbnN0cnVjdCAoZnJlZSkiLCJjcmVhdGVkIjoxNzI2NzA0MDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgNzJCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS03MmItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjIuNSA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI2NzA0MDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yLjUgNzJCIGlzIHRoZSBsYXRlc3Qgc2VyaWVzIG9mIFF3ZW4gbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzLiBRd2VuMi41IGJyaW5ncyB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50cyB1cG9uIFF3ZW4yOlxuXG4tIFNpZ25pZmljYW50bHkgbW9yZSBrbm93bGVkZ2UgYW5kIGhhcyBncmVhdGx5IGltcHJvdmVkIGNhcGFiaWxpdGllcyBpbiBjb2RpbmcgYW5kIG1hdGhlbWF0aWNzLCB0aGFua3MgdG8gb3VyIHNwZWNpYWxpemVkIGV4cGVydCBtb2RlbHMgaW4gdGhlc2UgZG9tYWlucy5cblxuLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgaW4gaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLCBnZW5lcmF0aW5nIGxvbmcgdGV4dHMgKG92ZXIgOEsgdG9rZW5zKSwgdW5kZXJzdGFuZGluZyBzdHJ1Y3R1cmVkIGRhdGEgKGUuZywgdGFibGVzKSwgYW5kIGdlbmVyYXRpbmcgc3RydWN0dXJlZCBvdXRwdXRzIGVzcGVjaWFsbHkgSlNPTi4gTW9yZSByZXNpbGllbnQgdG8gdGhlIGRpdmVyc2l0eSBvZiBzeXN0ZW0gcHJvbXB0cywgZW5oYW5jaW5nIHJvbGUtcGxheSBpbXBsZW1lbnRhdGlvbiBhbmQgY29uZGl0aW9uLXNldHRpbmcgZm9yIGNoYXRib3RzLlxuXG4tIExvbmctY29udGV4dCBTdXBwb3J0IHVwIHRvIDEyOEsgdG9rZW5zIGFuZCBjYW4gZ2VuZXJhdGUgdXAgdG8gOEsgdG9rZW5zLlxuXG4tIE11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciBvdmVyIDI5IGxhbmd1YWdlcywgaW5jbHVkaW5nIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgU3BhbmlzaCwgUG9ydHVndWVzZSwgR2VybWFuLCBJdGFsaWFuLCBSdXNzaWFuLCBKYXBhbmVzZSwgS29yZWFuLCBWaWV0bmFtZXNlLCBUaGFpLCBBcmFiaWMsIGFuZCBtb3JlLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi0yLjUtdmwtNzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUtVkwgNzJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyNjYxNzYwMCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IFZMIDcyQiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBVbmRlcnN0YW5kaW5nIHZpZGVvcyBvZiAyMG1pbis6IFF3ZW4yLjUtVkwgY2FuIHVuZGVyc3RhbmQgdmlkZW9zIG92ZXIgMjAgbWludXRlcyBmb3IgaGlnaC1xdWFsaXR5IHZpZGVvLWJhc2VkIHF1ZXN0aW9uIGFuc3dlcmluZywgZGlhbG9nLCBjb250ZW50IGNyZWF0aW9uLCBldGMuXG5cbi0gQWdlbnQgdGhhdCBjYW4gb3BlcmF0ZSB5b3VyIG1vYmlsZXMsIHJvYm90cywgZXRjLjogd2l0aCB0aGUgYWJpbGl0aWVzIG9mIGNvbXBsZXggcmVhc29uaW5nIGFuZCBkZWNpc2lvbiBtYWtpbmcsIFF3ZW4yLjUtVkwgY2FuIGJlIGludGVncmF0ZWQgd2l0aCBkZXZpY2VzIGxpa2UgbW9iaWxlIHBob25lcywgcm9ib3RzLCBldGMuLCBmb3IgYXV0b21hdGljIG9wZXJhdGlvbiBiYXNlZCBvbiB2aXN1YWwgZW52aXJvbm1lbnQgYW5kIHRleHQgaW5zdHJ1Y3Rpb25zLlxuXG4tIE11bHRpbGluZ3VhbCBTdXBwb3J0OiB0byBzZXJ2ZSBnbG9iYWwgdXNlcnMsIGJlc2lkZXMgRW5nbGlzaCBhbmQgQ2hpbmVzZSwgUXdlbjIuNS1WTCBub3cgc3VwcG9ydHMgdGhlIHVuZGVyc3RhbmRpbmcgb2YgdGV4dHMgaW4gZGlmZmVyZW50IGxhbmd1YWdlcyBpbnNpZGUgaW1hZ2VzLCBpbmNsdWRpbmcgbW9zdCBFdXJvcGVhbiBsYW5ndWFnZXMsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgVmlldG5hbWVzZSwgZXRjLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBzZWUgdGhpcyBbYmxvZyBwb3N0XShodHRwczovL3F3ZW5sbS5naXRodWIuaW8vYmxvZy9xd2VuMi12bC8pIGFuZCBbR2l0SHViIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9Rd2VuTE0vUXdlbjItVkwpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA1NzgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLjEtbHVtaW1haWQtOGIiLCJuYW1lIjoiTmV2ZXJTbGVlcDogTHVtaW1haWQgdjAuMiA4QiIsImNyZWF0ZWQiOjE3MjYzNTg0MDAsImRlc2NyaXB0aW9uIjoiTHVtaW1haWQgdjAuMiA4QiBpcyBhIGZpbmV0dW5lIG9mIFtMbGFtYSAzLjEgOEJdKC9tb2RlbHMvbWV0YS1sbGFtYS9sbGFtYS0zLjEtOGItaW5zdHJ1Y3QpIHdpdGggYSBcIkhVR0Ugc3RlcCB1cCBkYXRhc2V0IHdpc2VcIiBjb21wYXJlZCB0byBMdW1pbWFpZCB2MC4xLiBTbG9wcHkgY2hhdHMgb3V0cHV0IHdlcmUgcHVyZ2VkLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwOTM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28xLXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBvMS1wcmV2aWV3IiwiY3JlYXRlZCI6MTcyNjA5OTIwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuXG5cblRoZSBvMSBtb2RlbHMgYXJlIG9wdGltaXplZCBmb3IgbWF0aCwgc2NpZW5jZSwgcHJvZ3JhbW1pbmcsIGFuZCBvdGhlciBTVEVNLXJlbGF0ZWQgdGFza3MuIFRoZXkgY29uc2lzdGVudGx5IGV4aGliaXQgUGhELWxldmVsIGFjY3VyYWN5IG9uIGJlbmNobWFya3MgaW4gcGh5c2ljcywgY2hlbWlzdHJ5LCBhbmQgYmlvbG9neS4gTGVhcm4gbW9yZSBpbiB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9vMSkuXG5cbk5vdGU6IFRoaXMgbW9kZWwgaXMgY3VycmVudGx5IGV4cGVyaW1lbnRhbCBhbmQgbm90IHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcywgYW5kIG1heSBiZSBoZWF2aWx5IHJhdGUtbGltaXRlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDA3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28xLXByZXZpZXctMjAyNC0wOS0xMiIsIm5hbWUiOiJPcGVuQUk6IG8xLXByZXZpZXcgKDIwMjQtMDktMTIpIiwiY3JlYXRlZCI6MTcyNjA5OTIwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuXG5cblRoZSBvMSBtb2RlbHMgYXJlIG9wdGltaXplZCBmb3IgbWF0aCwgc2NpZW5jZSwgcHJvZ3JhbW1pbmcsIGFuZCBvdGhlciBTVEVNLXJlbGF0ZWQgdGFza3MuIFRoZXkgY29uc2lzdGVudGx5IGV4aGliaXQgUGhELWxldmVsIGFjY3VyYWN5IG9uIGJlbmNobWFya3MgaW4gcGh5c2ljcywgY2hlbWlzdHJ5LCBhbmQgYmlvbG9neS4gTGVhcm4gbW9yZSBpbiB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9vMSkuXG5cbk5vdGU6IFRoaXMgbW9kZWwgaXMgY3VycmVudGx5IGV4cGVyaW1lbnRhbCBhbmQgbm90IHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcywgYW5kIG1heSBiZSBoZWF2aWx5IHJhdGUtbGltaXRlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDA3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjozMjc2OCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL28xLW1pbmkiLCJuYW1lIjoiT3BlbkFJOiBvMS1taW5pIiwiY3JlYXRlZCI6MTcyNjA5OTIwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGFuZCBzdHJvbmdlc3QgbW9kZWwgZmFtaWx5IGZyb20gT3BlbkFJLCBvMSBpcyBkZXNpZ25lZCB0byBzcGVuZCBtb3JlIHRpbWUgdGhpbmtpbmcgYmVmb3JlIHJlc3BvbmRpbmcuXG5cblRoZSBvMSBtb2RlbHMgYXJlIG9wdGltaXplZCBmb3IgbWF0aCwgc2NpZW5jZSwgcHJvZ3JhbW1pbmcsIGFuZCBvdGhlciBTVEVNLXJlbGF0ZWQgdGFza3MuIFRoZXkgY29uc2lzdGVudGx5IGV4aGliaXQgUGhELWxldmVsIGFjY3VyYWN5IG9uIGJlbmNobWFya3MgaW4gcGh5c2ljcywgY2hlbWlzdHJ5LCBhbmQgYmlvbG9neS4gTGVhcm4gbW9yZSBpbiB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9vMSkuXG5cbk5vdGU6IFRoaXMgbW9kZWwgaXMgY3VycmVudGx5IGV4cGVyaW1lbnRhbCBhbmQgbm90IHN1aXRhYmxlIGZvciBwcm9kdWN0aW9uIHVzZS1jYXNlcywgYW5kIG1heSBiZSBoZWF2aWx5IHJhdGUtbGltaXRlZC4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0NCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwNTUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NjU1MzYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9vMS1taW5pLTIwMjQtMDktMTIiLCJuYW1lIjoiT3BlbkFJOiBvMS1taW5pICgyMDI0LTA5LTEyKSIsImNyZWF0ZWQiOjE3MjYwOTkyMDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBhbmQgc3Ryb25nZXN0IG1vZGVsIGZhbWlseSBmcm9tIE9wZW5BSSwgbzEgaXMgZGVzaWduZWQgdG8gc3BlbmQgbW9yZSB0aW1lIHRoaW5raW5nIGJlZm9yZSByZXNwb25kaW5nLlxuXG5UaGUgbzEgbW9kZWxzIGFyZSBvcHRpbWl6ZWQgZm9yIG1hdGgsIHNjaWVuY2UsIHByb2dyYW1taW5nLCBhbmQgb3RoZXIgU1RFTS1yZWxhdGVkIHRhc2tzLiBUaGV5IGNvbnNpc3RlbnRseSBleGhpYml0IFBoRC1sZXZlbCBhY2N1cmFjeSBvbiBiZW5jaG1hcmtzIGluIHBoeXNpY3MsIGNoZW1pc3RyeSwgYW5kIGJpb2xvZ3kuIExlYXJuIG1vcmUgaW4gdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL29wZW5haS5jb20vbzEpLlxuXG5Ob3RlOiBUaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgYW5kIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMsIGFuZCBtYXkgYmUgaGVhdmlseSByYXRlLWxpbWl0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwNDQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDU1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjY1NTM2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvcGl4dHJhbC0xMmIiLCJuYW1lIjoiTWlzdHJhbDogUGl4dHJhbCAxMkIiLCJjcmVhdGVkIjoxNzI1OTI2NDAwLCJkZXNjcmlwdGlvbiI6IlRoZSBmaXJzdCBtdWx0aS1tb2RhbCwgdGV4dCtpbWFnZS10by10ZXh0IG1vZGVsIGZyb20gTWlzdHJhbCBBSS4gSXRzIHdlaWdodHMgd2VyZSBsYXVuY2hlZCB2aWEgdG9ycmVudDogaHR0cHM6Ly94LmNvbS9taXN0cmFsYWkvc3RhdHVzLzE4MzM3NTgyODUxNjc3MjI4MzYuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDE0NDUiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiY29oZXJlL2NvbW1hbmQtci1wbHVzLTA4LTIwMjQiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIrICgwOC0yMDI0KSIsImNyZWF0ZWQiOjE3MjQ5NzYwMDAsImRlc2NyaXB0aW9uIjoiY29tbWFuZC1yLXBsdXMtMDgtMjAyNCBpcyBhbiB1cGRhdGUgb2YgdGhlIFtDb21tYW5kIFIrXSgvbW9kZWxzL2NvaGVyZS9jb21tYW5kLXItcGx1cykgd2l0aCByb3VnaGx5IDUwJSBoaWdoZXIgdGhyb3VnaHB1dCBhbmQgMjUlIGxvd2VyIGxhdGVuY2llcyBhcyBjb21wYXJlZCB0byB0aGUgcHJldmlvdXMgQ29tbWFuZCBSKyB2ZXJzaW9uLCB3aGlsZSBrZWVwaW5nIHRoZSBoYXJkd2FyZSBmb290cHJpbnQgdGhlIHNhbWUuXG5cblJlYWQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL2RvY3MuY29oZXJlLmNvbS9jaGFuZ2Vsb2cvY29tbWFuZC1nZXRzLXJlZnJlc2hlZCkuXG5cblVzZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gQ29oZXJlJ3MgW1VzYWdlIFBvbGljeV0oaHR0cHM6Ly9kb2NzLmNvaGVyZS5jb20vZG9jcy91c2FnZS1wb2xpY3kpIGFuZCBbU2FhUyBBZ3JlZW1lbnRdKGh0dHBzOi8vY29oZXJlLmNvbS9zYWFzLWFncmVlbWVudCkuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNvaGVyZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXItMDgtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUiAoMDgtMjAyNCkiLCJjcmVhdGVkIjoxNzI0OTc2MDAwLCJkZXNjcmlwdGlvbiI6ImNvbW1hbmQtci0wOC0yMDI0IGlzIGFuIHVwZGF0ZSBvZiB0aGUgW0NvbW1hbmQgUl0oL21vZGVscy9jb2hlcmUvY29tbWFuZC1yKSB3aXRoIGltcHJvdmVkIHBlcmZvcm1hbmNlIGZvciBtdWx0aWxpbmd1YWwgcmV0cmlldmFsLWF1Z21lbnRlZCBnZW5lcmF0aW9uIChSQUcpIGFuZCB0b29sIHVzZS4gTW9yZSBicm9hZGx5LCBpdCBpcyBiZXR0ZXIgYXQgbWF0aCwgY29kZSBhbmQgcmVhc29uaW5nIGFuZCBpcyBjb21wZXRpdGl2ZSB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBsYXJnZXIgQ29tbWFuZCBSKyBtb2RlbC5cblxuUmVhZCB0aGUgbGF1bmNoIHBvc3QgW2hlcmVdKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2NoYW5nZWxvZy9jb21tYW5kLWdldHMtcmVmcmVzaGVkKS5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDYiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTIuNS12bC03Yi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6IlF3ZW46IFF3ZW4yLjUtVkwgN0IgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcyNDgwMzIwMCwiZGVzY3JpcHRpb24iOiJRd2VuMi41IFZMIDdCIGlzIGEgbXVsdGltb2RhbCBMTE0gZnJvbSB0aGUgUXdlbiBUZWFtIHdpdGggdGhlIGZvbGxvd2luZyBrZXkgZW5oYW5jZW1lbnRzOlxuXG4tIFNvVEEgdW5kZXJzdGFuZGluZyBvZiBpbWFnZXMgb2YgdmFyaW91cyByZXNvbHV0aW9uICYgcmF0aW86IFF3ZW4yLjUtVkwgYWNoaWV2ZXMgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBvbiB2aXN1YWwgdW5kZXJzdGFuZGluZyBiZW5jaG1hcmtzLCBpbmNsdWRpbmcgTWF0aFZpc3RhLCBEb2NWUUEsIFJlYWxXb3JsZFFBLCBNVFZRQSwgZXRjLlxuXG4tIFVuZGVyc3RhbmRpbmcgdmlkZW9zIG9mIDIwbWluKzogUXdlbjIuNS1WTCBjYW4gdW5kZXJzdGFuZCB2aWRlb3Mgb3ZlciAyMCBtaW51dGVzIGZvciBoaWdoLXF1YWxpdHkgdmlkZW8tYmFzZWQgcXVlc3Rpb24gYW5zd2VyaW5nLCBkaWFsb2csIGNvbnRlbnQgY3JlYXRpb24sIGV0Yy5cblxuLSBBZ2VudCB0aGF0IGNhbiBvcGVyYXRlIHlvdXIgbW9iaWxlcywgcm9ib3RzLCBldGMuOiB3aXRoIHRoZSBhYmlsaXRpZXMgb2YgY29tcGxleCByZWFzb25pbmcgYW5kIGRlY2lzaW9uIG1ha2luZywgUXdlbjIuNS1WTCBjYW4gYmUgaW50ZWdyYXRlZCB3aXRoIGRldmljZXMgbGlrZSBtb2JpbGUgcGhvbmVzLCByb2JvdHMsIGV0Yy4sIGZvciBhdXRvbWF0aWMgb3BlcmF0aW9uIGJhc2VkIG9uIHZpc3VhbCBlbnZpcm9ubWVudCBhbmQgdGV4dCBpbnN0cnVjdGlvbnMuXG5cbi0gTXVsdGlsaW5ndWFsIFN1cHBvcnQ6IHRvIHNlcnZlIGdsb2JhbCB1c2VycywgYmVzaWRlcyBFbmdsaXNoIGFuZCBDaGluZXNlLCBRd2VuMi41LVZMIG5vdyBzdXBwb3J0cyB0aGUgdW5kZXJzdGFuZGluZyBvZiB0ZXh0cyBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGluc2lkZSBpbWFnZXMsIGluY2x1ZGluZyBtb3N0IEV1cm9wZWFuIGxhbmd1YWdlcywgSmFwYW5lc2UsIEtvcmVhbiwgQXJhYmljLCBWaWV0bmFtZXNlLCBldGMuXG5cbkZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGlzIFtibG9nIHBvc3RdKGh0dHBzOi8vcXdlbmxtLmdpdGh1Yi5pby9ibG9nL3F3ZW4yLXZsLykgYW5kIFtHaXRIdWIgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL1F3ZW5MTS9Rd2VuMi1WTCkuXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbVG9uZ3lpIFFpYW53ZW4gTElDRU5TRSBBR1JFRU1FTlRdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vUXdlbi9Rd2VuMS41LTExMEItQ2hhdC9ibG9iL21haW4vTElDRU5TRSkuIiwiY29udGV4dF9sZW5ndGgiOjY0MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InF3ZW4vcXdlbi0yLjUtdmwtN2ItaW5zdHJ1Y3QiLCJuYW1lIjoiUXdlbjogUXdlbjIuNS1WTCA3QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjQ4MDMyMDAsImRlc2NyaXB0aW9uIjoiUXdlbjIuNSBWTCA3QiBpcyBhIG11bHRpbW9kYWwgTExNIGZyb20gdGhlIFF3ZW4gVGVhbSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5IGVuaGFuY2VtZW50czpcblxuLSBTb1RBIHVuZGVyc3RhbmRpbmcgb2YgaW1hZ2VzIG9mIHZhcmlvdXMgcmVzb2x1dGlvbiAmIHJhdGlvOiBRd2VuMi41LVZMIGFjaGlldmVzIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2Ugb24gdmlzdWFsIHVuZGVyc3RhbmRpbmcgYmVuY2htYXJrcywgaW5jbHVkaW5nIE1hdGhWaXN0YSwgRG9jVlFBLCBSZWFsV29ybGRRQSwgTVRWUUEsIGV0Yy5cblxuLSBVbmRlcnN0YW5kaW5nIHZpZGVvcyBvZiAyMG1pbis6IFF3ZW4yLjUtVkwgY2FuIHVuZGVyc3RhbmQgdmlkZW9zIG92ZXIgMjAgbWludXRlcyBmb3IgaGlnaC1xdWFsaXR5IHZpZGVvLWJhc2VkIHF1ZXN0aW9uIGFuc3dlcmluZywgZGlhbG9nLCBjb250ZW50IGNyZWF0aW9uLCBldGMuXG5cbi0gQWdlbnQgdGhhdCBjYW4gb3BlcmF0ZSB5b3VyIG1vYmlsZXMsIHJvYm90cywgZXRjLjogd2l0aCB0aGUgYWJpbGl0aWVzIG9mIGNvbXBsZXggcmVhc29uaW5nIGFuZCBkZWNpc2lvbiBtYWtpbmcsIFF3ZW4yLjUtVkwgY2FuIGJlIGludGVncmF0ZWQgd2l0aCBkZXZpY2VzIGxpa2UgbW9iaWxlIHBob25lcywgcm9ib3RzLCBldGMuLCBmb3IgYXV0b21hdGljIG9wZXJhdGlvbiBiYXNlZCBvbiB2aXN1YWwgZW52aXJvbm1lbnQgYW5kIHRleHQgaW5zdHJ1Y3Rpb25zLlxuXG4tIE11bHRpbGluZ3VhbCBTdXBwb3J0OiB0byBzZXJ2ZSBnbG9iYWwgdXNlcnMsIGJlc2lkZXMgRW5nbGlzaCBhbmQgQ2hpbmVzZSwgUXdlbjIuNS1WTCBub3cgc3VwcG9ydHMgdGhlIHVuZGVyc3RhbmRpbmcgb2YgdGV4dHMgaW4gZGlmZmVyZW50IGxhbmd1YWdlcyBpbnNpZGUgaW1hZ2VzLCBpbmNsdWRpbmcgbW9zdCBFdXJvcGVhbiBsYW5ndWFnZXMsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgVmlldG5hbWVzZSwgZXRjLlxuXG5Gb3IgbW9yZSBkZXRhaWxzLCBzZWUgdGhpcyBbYmxvZyBwb3N0XShodHRwczovL3F3ZW5sbS5naXRodWIuaW8vYmxvZy9xd2VuMi12bC8pIGFuZCBbR2l0SHViIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9Rd2VuTE0vUXdlbjItVkwpLlxuXG5Vc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW1Rvbmd5aSBRaWFud2VuIExJQ0VOU0UgQUdSRUVNRU5UXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL1F3ZW4vUXdlbjEuNS0xMTBCLUNoYXQvYmxvYi9tYWluL0xJQ0VOU0UpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUXdlbiIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAxNDQ1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNhbzEway9sMy4xLWV1cnlhbGUtNzBiIiwibmFtZSI6IlNhbzEwSzogTGxhbWEgMy4xIEV1cnlhbGUgNzBCIHYyLjIiLCJjcmVhdGVkIjoxNzI0ODAzMjAwLCJkZXNjcmlwdGlvbiI6IkV1cnlhbGUgTDMuMSA3MEIgdjIuMiBpcyBhIG1vZGVsIGZvY3VzZWQgb24gY3JlYXRpdmUgcm9sZXBsYXkgZnJvbSBbU2FvMTBrXShodHRwczovL2tvLWZpLmNvbS9zYW8xMGspLiBJdCBpcyB0aGUgc3VjY2Vzc29yIG9mIFtFdXJ5YWxlIEwzIDcwQiB2Mi4xXSgvbW9kZWxzL3NhbzEway9sMy1ldXJ5YWxlLTcwYikuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktZmxhc2gtMS41LThiLWV4cCIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAxLjUgRmxhc2ggOEIgRXhwZXJpbWVudGFsIiwiY3JlYXRlZCI6MTcyNDgwMzIwMCwiZGVzY3JpcHRpb24iOiJHZW1pbmkgRmxhc2ggMS41IDhCIEV4cGVyaW1lbnRhbCBpcyBhbiBleHBlcmltZW50YWwsIDhCIHBhcmFtZXRlciB2ZXJzaW9uIG9mIHRoZSBbR2VtaW5pIEZsYXNoIDEuNV0oL21vZGVscy9nb29nbGUvZ2VtaW5pLWZsYXNoLTEuNSkgbW9kZWwuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4jbXVsdGltb2RhbFxuXG5Ob3RlOiBUaGlzIG1vZGVsIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgYW5kIG5vdCBzdWl0YWJsZSBmb3IgcHJvZHVjdGlvbiB1c2UtY2FzZXMsIGFuZCBtYXkgYmUgaGVhdmlseSByYXRlLWxpbWl0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTAwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS0xLTUtbWluaSIsIm5hbWUiOiJBSTIxOiBKYW1iYSAxLjUgTWluaSIsImNyZWF0ZWQiOjE3MjQzNzEyMDAsImRlc2NyaXB0aW9uIjoiSmFtYmEgMS41IE1pbmkgaXMgdGhlIHdvcmxkJ3MgZmlyc3QgcHJvZHVjdGlvbi1ncmFkZSBNYW1iYS1iYXNlZCBtb2RlbCwgY29tYmluaW5nIFNTTSBhbmQgVHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlcyBmb3IgYSAyNTZLIGNvbnRleHQgd2luZG93IGFuZCBoaWdoIGVmZmljaWVuY3kuXG5cbkl0IHdvcmtzIHdpdGggOSBsYW5ndWFnZXMgYW5kIGNhbiBoYW5kbGUgdmFyaW91cyB3cml0aW5nIGFuZCBhbmFseXNpcyB0YXNrcyBhcyB3ZWxsIGFzIG9yIGJldHRlciB0aGFuIHNpbWlsYXIgc21hbGwgbW9kZWxzLlxuXG5UaGlzIG1vZGVsIHVzZXMgbGVzcyBjb21wdXRlciBtZW1vcnkgYW5kIHdvcmtzIGZhc3RlciB3aXRoIGxvbmdlciB0ZXh0cyB0aGFuIHByZXZpb3VzIGRlc2lnbnMuXG5cblJlYWQgdGhlaXIgW2Fubm91bmNlbWVudF0oaHR0cHM6Ly93d3cuYWkyMS5jb20vYmxvZy9hbm5vdW5jaW5nLWphbWJhLW1vZGVsLWZhbWlseSkgdG8gbGVhcm4gbW9yZS4iLCJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNTYwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFpMjEvamFtYmEtMS01LWxhcmdlIiwibmFtZSI6IkFJMjE6IEphbWJhIDEuNSBMYXJnZSIsImNyZWF0ZWQiOjE3MjQzNzEyMDAsImRlc2NyaXB0aW9uIjoiSmFtYmEgMS41IExhcmdlIGlzIHBhcnQgb2YgQUkyMSdzIG5ldyBmYW1pbHkgb2Ygb3BlbiBtb2RlbHMsIG9mZmVyaW5nIHN1cGVyaW9yIHNwZWVkLCBlZmZpY2llbmN5LCBhbmQgcXVhbGl0eS5cblxuSXQgZmVhdHVyZXMgYSAyNTZLIGVmZmVjdGl2ZSBjb250ZXh0IHdpbmRvdywgdGhlIGxvbmdlc3QgYW1vbmcgb3BlbiBtb2RlbHMsIGVuYWJsaW5nIGltcHJvdmVkIHBlcmZvcm1hbmNlIG9uIHRhc2tzIGxpa2UgZG9jdW1lbnQgc3VtbWFyaXphdGlvbiBhbmQgYW5hbHlzaXMuXG5cbkJ1aWx0IG9uIGEgbm92ZWwgU1NNLVRyYW5zZm9ybWVyIGFyY2hpdGVjdHVyZSwgaXQgb3V0cGVyZm9ybXMgbGFyZ2VyIG1vZGVscyBsaWtlIExsYW1hIDMuMSA3MEIgb24gYmVuY2htYXJrcyB3aGlsZSBtYWludGFpbmluZyByZXNvdXJjZSBlZmZpY2llbmN5LlxuXG5SZWFkIHRoZWlyIFthbm5vdW5jZW1lbnRdKGh0dHBzOi8vd3d3LmFpMjEuY29tL2Jsb2cvYW5ub3VuY2luZy1qYW1iYS1tb2RlbC1mYW1pbHkpIHRvIGxlYXJuIG1vcmUuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWljcm9zb2Z0L3BoaS0zLjUtbWluaS0xMjhrLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpLTMuNSBNaW5pIDEyOEsgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzI0MTk4NDAwLCJkZXNjcmlwdGlvbiI6IlBoaS0zLjUgbW9kZWxzIGFyZSBsaWdodHdlaWdodCwgc3RhdGUtb2YtdGhlLWFydCBvcGVuIG1vZGVscy4gVGhlc2UgbW9kZWxzIHdlcmUgdHJhaW5lZCB3aXRoIFBoaS0zIGRhdGFzZXRzIHRoYXQgaW5jbHVkZSBib3RoIHN5bnRoZXRpYyBkYXRhIGFuZCB0aGUgZmlsdGVyZWQsIHB1YmxpY2x5IGF2YWlsYWJsZSB3ZWJzaXRlcyBkYXRhLCB3aXRoIGEgZm9jdXMgb24gaGlnaCBxdWFsaXR5IGFuZCByZWFzb25pbmctZGVuc2UgcHJvcGVydGllcy4gUGhpLTMuNSBNaW5pIHVzZXMgMy44QiBwYXJhbWV0ZXJzLCBhbmQgaXMgYSBkZW5zZSBkZWNvZGVyLW9ubHkgdHJhbnNmb3JtZXIgbW9kZWwgdXNpbmcgdGhlIHNhbWUgdG9rZW5pemVyIGFzIFtQaGktMyBNaW5pXSgvbW9kZWxzL21pY3Jvc29mdC9waGktMy1taW5pLTEyOGstaW5zdHJ1Y3QpLlxuXG5UaGUgbW9kZWxzIHVuZGVyd2VudCBhIHJpZ29yb3VzIGVuaGFuY2VtZW50IHByb2Nlc3MsIGluY29ycG9yYXRpbmcgYm90aCBzdXBlcnZpc2VkIGZpbmUtdHVuaW5nLCBwcm94aW1hbCBwb2xpY3kgb3B0aW1pemF0aW9uLCBhbmQgZGlyZWN0IHByZWZlcmVuY2Ugb3B0aW1pemF0aW9uIHRvIGVuc3VyZSBwcmVjaXNlIGluc3RydWN0aW9uIGFkaGVyZW5jZSBhbmQgcm9idXN0IHNhZmV0eSBtZWFzdXJlcy4gV2hlbiBhc3Nlc3NlZCBhZ2FpbnN0IGJlbmNobWFya3MgdGhhdCB0ZXN0IGNvbW1vbiBzZW5zZSwgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZywgbWF0aCwgY29kZSwgbG9uZyBjb250ZXh0IGFuZCBsb2dpY2FsIHJlYXNvbmluZywgUGhpLTMuNSBtb2RlbHMgc2hvd2Nhc2VkIHJvYnVzdCBhbmQgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBhbW9uZyBtb2RlbHMgd2l0aCBsZXNzIHRoYW4gMTMgYmlsbGlvbiBwYXJhbWV0ZXJzLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJwaGkzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvaGVybWVzLTMtbGxhbWEtMy4xLTcwYiIsIm5hbWUiOiJOb3VzOiBIZXJtZXMgMyA3MEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIzOTM5MjAwLCJkZXNjcmlwdGlvbiI6Ikhlcm1lcyAzIGlzIGEgZ2VuZXJhbGlzdCBsYW5ndWFnZSBtb2RlbCB3aXRoIG1hbnkgaW1wcm92ZW1lbnRzIG92ZXIgW0hlcm1lcyAyXSgvbW9kZWxzL25vdXNyZXNlYXJjaC9ub3VzLWhlcm1lcy0yLW1pc3RyYWwtN2ItZHBvKSwgaW5jbHVkaW5nIGFkdmFuY2VkIGFnZW50aWMgY2FwYWJpbGl0aWVzLCBtdWNoIGJldHRlciByb2xlcGxheWluZywgcmVhc29uaW5nLCBtdWx0aS10dXJuIGNvbnZlcnNhdGlvbiwgbG9uZyBjb250ZXh0IGNvaGVyZW5jZSwgYW5kIGltcHJvdmVtZW50cyBhY3Jvc3MgdGhlIGJvYXJkLlxuXG5IZXJtZXMgMyA3MEIgaXMgYSBjb21wZXRpdGl2ZSwgaWYgbm90IHN1cGVyaW9yIGZpbmV0dW5lIG9mIHRoZSBbTGxhbWEtMy4xIDcwQiBmb3VuZGF0aW9uIG1vZGVsXSgvbW9kZWxzL21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdCksIGZvY3VzZWQgb24gYWxpZ25pbmcgTExNcyB0byB0aGUgdXNlciwgd2l0aCBwb3dlcmZ1bCBzdGVlcmluZyBjYXBhYmlsaXRpZXMgYW5kIGNvbnRyb2wgZ2l2ZW4gdG8gdGhlIGVuZCB1c2VyLlxuXG5UaGUgSGVybWVzIDMgc2VyaWVzIGJ1aWxkcyBhbmQgZXhwYW5kcyBvbiB0aGUgSGVybWVzIDIgc2V0IG9mIGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIG1vcmUgcG93ZXJmdWwgYW5kIHJlbGlhYmxlIGZ1bmN0aW9uIGNhbGxpbmcgYW5kIHN0cnVjdHVyZWQgb3V0cHV0IGNhcGFiaWxpdGllcywgZ2VuZXJhbGlzdCBhc3Npc3RhbnQgY2FwYWJpbGl0aWVzLCBhbmQgaW1wcm92ZWQgY29kZSBnZW5lcmF0aW9uIHNraWxscy4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibm91c3Jlc2VhcmNoL2hlcm1lcy0zLWxsYW1hLTMuMS00MDViIiwibmFtZSI6Ik5vdXM6IEhlcm1lcyAzIDQwNUIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIzNzY2NDAwLCJkZXNjcmlwdGlvbiI6Ikhlcm1lcyAzIGlzIGEgZ2VuZXJhbGlzdCBsYW5ndWFnZSBtb2RlbCB3aXRoIG1hbnkgaW1wcm92ZW1lbnRzIG92ZXIgSGVybWVzIDIsIGluY2x1ZGluZyBhZHZhbmNlZCBhZ2VudGljIGNhcGFiaWxpdGllcywgbXVjaCBiZXR0ZXIgcm9sZXBsYXlpbmcsIHJlYXNvbmluZywgbXVsdGktdHVybiBjb252ZXJzYXRpb24sIGxvbmcgY29udGV4dCBjb2hlcmVuY2UsIGFuZCBpbXByb3ZlbWVudHMgYWNyb3NzIHRoZSBib2FyZC5cblxuSGVybWVzIDMgNDA1QiBpcyBhIGZyb250aWVyLWxldmVsLCBmdWxsLXBhcmFtZXRlciBmaW5ldHVuZSBvZiB0aGUgTGxhbWEtMy4xIDQwNUIgZm91bmRhdGlvbiBtb2RlbCwgZm9jdXNlZCBvbiBhbGlnbmluZyBMTE1zIHRvIHRoZSB1c2VyLCB3aXRoIHBvd2VyZnVsIHN0ZWVyaW5nIGNhcGFiaWxpdGllcyBhbmQgY29udHJvbCBnaXZlbiB0byB0aGUgZW5kIHVzZXIuXG5cblRoZSBIZXJtZXMgMyBzZXJpZXMgYnVpbGRzIGFuZCBleHBhbmRzIG9uIHRoZSBIZXJtZXMgMiBzZXQgb2YgY2FwYWJpbGl0aWVzLCBpbmNsdWRpbmcgbW9yZSBwb3dlcmZ1bCBhbmQgcmVsaWFibGUgZnVuY3Rpb24gY2FsbGluZyBhbmQgc3RydWN0dXJlZCBvdXRwdXQgY2FwYWJpbGl0aWVzLCBnZW5lcmFsaXN0IGFzc2lzdGFudCBjYXBhYmlsaXRpZXMsIGFuZCBpbXByb3ZlZCBjb2RlIGdlbmVyYXRpb24gc2tpbGxzLlxuXG5IZXJtZXMgMyBpcyBjb21wZXRpdGl2ZSwgaWYgbm90IHN1cGVyaW9yLCB0byBMbGFtYS0zLjEgSW5zdHJ1Y3QgbW9kZWxzIGF0IGdlbmVyYWwgY2FwYWJpbGl0aWVzLCB3aXRoIHZhcnlpbmcgc3RyZW5ndGhzIGFuZCB3ZWFrbmVzc2VzIGF0dHJpYnV0YWJsZSBiZXR3ZWVuIHRoZSB0d28uIiwiY29udGV4dF9sZW5ndGgiOjEzMTAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTMxMDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2NoYXRncHQtNG8tbGF0ZXN0IiwibmFtZSI6Ik9wZW5BSTogQ2hhdEdQVC00byIsImNyZWF0ZWQiOjE3MjM1OTM2MDAsImRlc2NyaXB0aW9uIjoiT3BlbkFJIENoYXRHUFQgNG8gaXMgY29udGludWFsbHkgdXBkYXRlZCBieSBPcGVuQUkgdG8gcG9pbnQgdG8gdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBHUFQtNG8gdXNlZCBieSBDaGF0R1BULiBJdCB0aGVyZWZvcmUgZGlmZmVycyBzbGlnaHRseSBmcm9tIHRoZSBBUEkgdmVyc2lvbiBvZiBbR1BULTRvXSgvbW9kZWxzL29wZW5haS9ncHQtNG8pIGluIHRoYXQgaXQgaGFzIGFkZGl0aW9uYWwgUkxIRi4gSXQgaXMgaW50ZW5kZWQgZm9yIHJlc2VhcmNoIGFuZCBldmFsdWF0aW9uLlxuXG5PcGVuQUkgbm90ZXMgdGhhdCB0aGlzIG1vZGVsIGlzIG5vdCBzdWl0ZWQgZm9yIHByb2R1Y3Rpb24gdXNlLWNhc2VzIGFzIGl0IG1heSBiZSByZW1vdmVkIG9yIHJlZGlyZWN0ZWQgdG8gYW5vdGhlciBtb2RlbCBpbiB0aGUgZnV0dXJlLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA3MjI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMtbHVuYXJpcy04YiIsIm5hbWUiOiJTYW8xMEs6IExsYW1hIDMgOEIgTHVuYXJpcyIsImNyZWF0ZWQiOjE3MjM1MDcyMDAsImRlc2NyaXB0aW9uIjoiTHVuYXJpcyA4QiBpcyBhIHZlcnNhdGlsZSBnZW5lcmFsaXN0IGFuZCByb2xlcGxheWluZyBtb2RlbCBiYXNlZCBvbiBMbGFtYSAzLiBJdCdzIGEgc3RyYXRlZ2ljIG1lcmdlIG9mIG11bHRpcGxlIG1vZGVscywgZGVzaWduZWQgdG8gYmFsYW5jZSBjcmVhdGl2aXR5IHdpdGggaW1wcm92ZWQgbG9naWMgYW5kIGdlbmVyYWwga25vd2xlZGdlLlxuXG5DcmVhdGVkIGJ5IFtTYW8xMGtdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vU2FvMTBrKSwgdGhpcyBtb2RlbCBhaW1zIHRvIG9mZmVyIGFuIGltcHJvdmVkIGV4cGVyaWVuY2Ugb3ZlciBTdGhlbm8gdjMuMiwgd2l0aCBlbmhhbmNlZCBjcmVhdGl2aXR5IGFuZCBsb2dpY2FsIHJlYXNvbmluZy5cblxuRm9yIGJlc3QgcmVzdWx0cywgdXNlIHdpdGggTGxhbWEgMyBJbnN0cnVjdCBjb250ZXh0IHRlbXBsYXRlLCB0ZW1wZXJhdHVyZSAxLjQsIGFuZCBtaW5fcCAwLjEuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhZXRoZXJ3aWluZy9tbi1zdGFyY2Fubm9uLTEyYiIsIm5hbWUiOiJBZXRoZXJ3aWluZzogU3RhcmNhbm5vbiAxMkIiLCJjcmVhdGVkIjoxNzIzNTA3MjAwLCJkZXNjcmlwdGlvbiI6IlN0YXJjYW5ub24gMTJCIHYyIGlzIGEgY3JlYXRpdmUgcm9sZXBsYXkgYW5kIHN0b3J5IHdyaXRpbmcgbW9kZWwsIGJhc2VkIG9uIE1pc3RyYWwgTmVtbywgdXNpbmcgW25vdGhpbmdpaXNyZWFsL21uLWNlbGVzdGUtMTJiXSgvbm90aGluZ2lpc3JlYWwvbW4tY2VsZXN0ZS0xMmIpIGFzIGEgYmFzZSwgd2l0aCBbaW50ZXJ2aXRlbnMvbWluaS1tYWdudW0tMTJiLXYxLjFdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vaW50ZXJ2aXRlbnMvbWluaS1tYWdudW0tMTJiLXYxLjEpIG1lcmdlZCBpbiB1c2luZyB0aGUgW1RJRVNdKGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8yMzA2LjAxNzA4KSBtZXRob2QuXG5cbkFsdGhvdWdoIG1vcmUgc2ltaWxhciB0byBNYWdudW0gb3ZlcmFsbCwgdGhlIG1vZGVsIHJlbWFpbnMgdmVyeSBjcmVhdGl2ZSwgd2l0aCBhIHBsZWFzYW50IHdyaXRpbmcgc3R5bGUuIEl0IGlzIHJlY29tbWVuZGVkIGZvciBwZW9wbGUgd2FudGluZyBtb3JlIHZhcmlldHkgdGhhbiBNYWdudW0sIGFuZCB5ZXQgbW9yZSB2ZXJib3NlIHByb3NlIHRoYW4gQ2VsZXN0ZS4iLCJjb250ZXh0X2xlbmd0aCI6MTYzODQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvLTIwMjQtMDgtMDYiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8gKDIwMjQtMDgtMDYpIiwiY3JlYXRlZCI6MTcyMjkwMjQwMCwiZGVzY3JpcHRpb24iOiJUaGUgMjAyNC0wOC0wNiB2ZXJzaW9uIG9mIEdQVC00byBvZmZlcnMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgaW4gc3RydWN0dXJlZCBvdXRwdXRzLCB3aXRoIHRoZSBhYmlsaXR5IHRvIHN1cHBseSBhIEpTT04gc2NoZW1hIGluIHRoZSByZXNwb25lX2Zvcm1hdC4gUmVhZCBtb3JlIFtoZXJlXShodHRwczovL29wZW5haS5jb20vaW5kZXgvaW50cm9kdWNpbmctc3RydWN0dXJlZC1vdXRwdXRzLWluLXRoZS1hcGkvKS5cblxuR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSkiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMzYxMyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTI1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS00MDViIiwibmFtZSI6Ik1ldGE6IExsYW1hIDMuMSA0MDVCIChiYXNlKSIsImNyZWF0ZWQiOjE3MjI1NTY4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgaXMgdGhlIGJhc2UgNDA1QiBwcmUtdHJhaW5lZCB2ZXJzaW9uLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJub25lIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDIiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3RoaW5naWlzcmVhbC9tbi1jZWxlc3RlLTEyYiIsIm5hbWUiOiJNaXN0cmFsIE5lbW8gMTJCIENlbGVzdGUiLCJjcmVhdGVkIjoxNzIyNTU2ODAwLCJkZXNjcmlwdGlvbiI6IkEgc3BlY2lhbGl6ZWQgc3Rvcnkgd3JpdGluZyBhbmQgcm9sZXBsYXlpbmcgbW9kZWwgYmFzZWQgb24gTWlzdHJhbCdzIE5lTW8gMTJCIEluc3RydWN0LiBGaW5lLXR1bmVkIG9uIGN1cmF0ZWQgZGF0YXNldHMgaW5jbHVkaW5nIFJlZGRpdCBXcml0aW5nIFByb21wdHMgYW5kIE9wdXMgSW5zdHJ1Y3QgMjVLLlxuXG5UaGlzIG1vZGVsIGV4Y2VscyBhdCBjcmVhdGl2ZSB3cml0aW5nLCBvZmZlcmluZyBpbXByb3ZlZCBOU0ZXIGNhcGFiaWxpdGllcywgd2l0aCBzbWFydGVyIGFuZCBtb3JlIGFjdGl2ZSBuYXJyYXRpb24uIEl0IGRlbW9uc3RyYXRlcyByZW1hcmthYmxlIHZlcnNhdGlsaXR5IGluIGJvdGggU0ZXIGFuZCBOU0ZXIHNjZW5hcmlvcywgd2l0aCBzdHJvbmcgT3V0IG9mIENoYXJhY3RlciAoT09DKSBzdGVlcmluZyBjYXBhYmlsaXRpZXMsIGFsbG93aW5nIGZpbmUtdHVuZWQgY29udHJvbCBvdmVyIG5hcnJhdGl2ZSBkaXJlY3Rpb24gYW5kIGNoYXJhY3RlciBiZWhhdmlvci5cblxuQ2hlY2sgb3V0IHRoZSBtb2RlbCdzIFtIdWdnaW5nRmFjZSBwYWdlXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL25vdGhpbmdpaXNyZWFsL01OLTEyQi1DZWxlc3RlLVYxLjkpIGZvciBkZXRhaWxzIG9uIHdoYXQgcGFyYW1ldGVycyBhbmQgcHJvbXB0cyB3b3JrIGJlc3QhIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicGVycGxleGl0eS9sbGFtYS0zLjEtc29uYXItc21hbGwtMTI4ay1vbmxpbmUiLCJuYW1lIjoiUGVycGxleGl0eTogTGxhbWEgMy4xIFNvbmFyIDhCIE9ubGluZSIsImNyZWF0ZWQiOjE3MjI0NzA0MDAsImRlc2NyaXB0aW9uIjoiTGxhbWEgMy4xIFNvbmFyIGlzIFBlcnBsZXhpdHkncyBsYXRlc3QgbW9kZWwgZmFtaWx5LiBJdCBzdXJwYXNzZXMgdGhlaXIgZWFybGllciBTb25hciBtb2RlbHMgaW4gY29zdC1lZmZpY2llbmN5LCBzcGVlZCwgYW5kIHBlcmZvcm1hbmNlLlxuXG5UaGlzIGlzIHRoZSBvbmxpbmUgdmVyc2lvbiBvZiB0aGUgW29mZmxpbmUgY2hhdCBtb2RlbF0oL21vZGVscy9wZXJwbGV4aXR5L2xsYW1hLTMuMS1zb25hci1zbWFsbC0xMjhrLWNoYXQpLiBJdCBpcyBmb2N1c2VkIG9uIGRlbGl2ZXJpbmcgaGVscGZ1bCwgdXAtdG8tZGF0ZSwgYW5kIGZhY3R1YWwgcmVzcG9uc2VzLiAjb25saW5lIiwiY29udGV4dF9sZW5ndGgiOjEyNzA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMC4wMDUiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InBlcnBsZXhpdHkvbGxhbWEtMy4xLXNvbmFyLWxhcmdlLTEyOGstb25saW5lIiwibmFtZSI6IlBlcnBsZXhpdHk6IExsYW1hIDMuMSBTb25hciA3MEIgT25saW5lIiwiY3JlYXRlZCI6MTcyMjQ3MDQwMCwiZGVzY3JpcHRpb24iOiJMbGFtYSAzLjEgU29uYXIgaXMgUGVycGxleGl0eSdzIGxhdGVzdCBtb2RlbCBmYW1pbHkuIEl0IHN1cnBhc3NlcyB0aGVpciBlYXJsaWVyIFNvbmFyIG1vZGVscyBpbiBjb3N0LWVmZmljaWVuY3ksIHNwZWVkLCBhbmQgcGVyZm9ybWFuY2UuXG5cblRoaXMgaXMgdGhlIG9ubGluZSB2ZXJzaW9uIG9mIHRoZSBbb2ZmbGluZSBjaGF0IG1vZGVsXSgvbW9kZWxzL3BlcnBsZXhpdHkvbGxhbWEtMy4xLXNvbmFyLWxhcmdlLTEyOGstY2hhdCkuIEl0IGlzIGZvY3VzZWQgb24gZGVsaXZlcmluZyBoZWxwZnVsLCB1cC10by1kYXRlLCBhbmQgZmFjdHVhbCByZXNwb25zZXMuICNvbmxpbmUiLCJjb250ZXh0X2xlbmd0aCI6MTI3MDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEiLCJyZXF1ZXN0IjoiMC4wMDUiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjcwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4xLThiLWluc3RydWN0OmZyZWUiLCJuYW1lIjoiTWV0YTogTGxhbWEgMy4xIDhCIEluc3RydWN0IChmcmVlKSIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiTWV0YSdzIGxhdGVzdCBjbGFzcyBvZiBtb2RlbCAoTGxhbWEgMy4xKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgOEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiBpcyBmYXN0IGFuZCBlZmZpY2llbnQuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDcyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMuMS04Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgOEIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzIxNjkyODAwLCJkZXNjcmlwdGlvbiI6Ik1ldGEncyBsYXRlc3QgY2xhc3Mgb2YgbW9kZWwgKExsYW1hIDMuMSkgbGF1bmNoZWQgd2l0aCBhIHZhcmlldHkgb2Ygc2l6ZXMgJiBmbGF2b3JzLiBUaGlzIDhCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgZmFzdCBhbmQgZWZmaWNpZW50LlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLTEvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0zLjEtNDA1Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgNDA1QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MjE2OTI4MDAsImRlc2NyaXB0aW9uIjoiVGhlIGhpZ2hseSBhbnRpY2lwYXRlZCA0MDBCIGNsYXNzIG9mIExsYW1hMyBpcyBoZXJlISBDbG9ja2luZyBpbiBhdCAxMjhrIGNvbnRleHQgd2l0aCBpbXByZXNzaXZlIGV2YWwgc2NvcmVzLCB0aGUgTWV0YSBBSSB0ZWFtIGNvbnRpbnVlcyB0byBwdXNoIHRoZSBmcm9udGllciBvZiBvcGVuLXNvdXJjZSBMTE1zLlxuXG5NZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzLjEpIGxhdW5jaGVkIHdpdGggYSB2YXJpZXR5IG9mIHNpemVzICYgZmxhdm9ycy4gVGhpcyA0MDVCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gaXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW5jbHVkaW5nIEdQVC00byBhbmQgQ2xhdWRlIDMuNSBTb25uZXQgaW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMtMS8pLiBVc2FnZSBvZiB0aGlzIG1vZGVsIGlzIHN1YmplY3QgdG8gW01ldGEncyBBY2NlcHRhYmxlIFVzZSBQb2xpY3ldKGh0dHBzOi8vbGxhbWEubWV0YS5jb20vbGxhbWEzL3VzZS1wb2xpY3kvKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzLjEgNzBCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcyMTY5MjgwMCwiZGVzY3JpcHRpb24iOiJNZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzLjEpIGxhdW5jaGVkIHdpdGggYSB2YXJpZXR5IG9mIHNpemVzICYgZmxhdm9ycy4gVGhpcyA3MEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiBpcyBvcHRpbWl6ZWQgZm9yIGhpZ2ggcXVhbGl0eSBkaWFsb2d1ZSB1c2VjYXNlcy5cblxuSXQgaGFzIGRlbW9uc3RyYXRlZCBzdHJvbmcgcGVyZm9ybWFuY2UgY29tcGFyZWQgdG8gbGVhZGluZyBjbG9zZWQtc291cmNlIG1vZGVscyBpbiBodW1hbiBldmFsdWF0aW9ucy5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly9haS5tZXRhLmNvbS9ibG9nL21ldGEtbGxhbWEtMy0xLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAxMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEzMTA3MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL2NvZGVzdHJhbC1tYW1iYSIsIm5hbWUiOiJNaXN0cmFsOiBDb2Rlc3RyYWwgTWFtYmEiLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgNy4zQiBwYXJhbWV0ZXIgTWFtYmEtYmFzZWQgbW9kZWwgZGVzaWduZWQgZm9yIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrcy5cblxuLSBMaW5lYXIgdGltZSBpbmZlcmVuY2UsIGFsbG93aW5nIGZvciB0aGVvcmV0aWNhbGx5IGluZmluaXRlIHNlcXVlbmNlIGxlbmd0aHNcbi0gMjU2ayB0b2tlbiBjb250ZXh0IHdpbmRvd1xuLSBPcHRpbWl6ZWQgZm9yIHF1aWNrIHJlc3BvbnNlcywgZXNwZWNpYWxseSBiZW5lZmljaWFsIGZvciBjb2RlIHByb2R1Y3Rpdml0eVxuLSBQZXJmb3JtcyBjb21wYXJhYmx5IHRvIHN0YXRlLW9mLXRoZS1hcnQgdHJhbnNmb3JtZXIgbW9kZWxzIGluIGNvZGUgYW5kIHJlYXNvbmluZyB0YXNrc1xuLSBBdmFpbGFibGUgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZSBmb3IgZnJlZSB1c2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiIsImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyNjIxNDQsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLW5lbW86ZnJlZSIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIE5lbW8gKGZyZWUpIiwiY3JlYXRlZCI6MTcyMTM0NzIwMCwiZGVzY3JpcHRpb24iOiJBIDEyQiBwYXJhbWV0ZXIgbW9kZWwgd2l0aCBhIDEyOGsgdG9rZW4gY29udGV4dCBsZW5ndGggYnVpbHQgYnkgTWlzdHJhbCBpbiBjb2xsYWJvcmF0aW9uIHdpdGggTlZJRElBLlxuXG5UaGUgbW9kZWwgaXMgbXVsdGlsaW5ndWFsLCBzdXBwb3J0aW5nIEVuZ2xpc2gsIEZyZW5jaCwgR2VybWFuLCBTcGFuaXNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBDaGluZXNlLCBKYXBhbmVzZSwgS29yZWFuLCBBcmFiaWMsIGFuZCBIaW5kaS5cblxuSXQgc3VwcG9ydHMgZnVuY3Rpb24gY2FsbGluZyBhbmQgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIEFwYWNoZSAyLjAgbGljZW5zZS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJtaXN0cmFsIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTI4MDAwLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbmVtbyIsIm5hbWUiOiJNaXN0cmFsOiBNaXN0cmFsIE5lbW8iLCJjcmVhdGVkIjoxNzIxMzQ3MjAwLCJkZXNjcmlwdGlvbiI6IkEgMTJCIHBhcmFtZXRlciBtb2RlbCB3aXRoIGEgMTI4ayB0b2tlbiBjb250ZXh0IGxlbmd0aCBidWlsdCBieSBNaXN0cmFsIGluIGNvbGxhYm9yYXRpb24gd2l0aCBOVklESUEuXG5cblRoZSBtb2RlbCBpcyBtdWx0aWxpbmd1YWwsIHN1cHBvcnRpbmcgRW5nbGlzaCwgRnJlbmNoLCBHZXJtYW4sIFNwYW5pc2gsIEl0YWxpYW4sIFBvcnR1Z3Vlc2UsIENoaW5lc2UsIEphcGFuZXNlLCBLb3JlYW4sIEFyYWJpYywgYW5kIEhpbmRpLlxuXG5JdCBzdXBwb3J0cyBmdW5jdGlvbiBjYWxsaW5nIGFuZCBpcyByZWxlYXNlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMzEwNzIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG8tbWluaSIsIm5hbWUiOiJPcGVuQUk6IEdQVC00by1taW5pIiwiY3JlYXRlZCI6MTcyMTI2MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtNG8gbWluaSBpcyBPcGVuQUkncyBuZXdlc3QgbW9kZWwgYWZ0ZXIgW0dQVC00IE9tbmldKC9tb2RlbHMvb3BlbmFpL2dwdC00byksIHN1cHBvcnRpbmcgYm90aCB0ZXh0IGFuZCBpbWFnZSBpbnB1dHMgd2l0aCB0ZXh0IG91dHB1dHMuXG5cbkFzIHRoZWlyIG1vc3QgYWR2YW5jZWQgc21hbGwgbW9kZWwsIGl0IGlzIG1hbnkgbXVsdGlwbGVzIG1vcmUgYWZmb3JkYWJsZSB0aGFuIG90aGVyIHJlY2VudCBmcm9udGllciBtb2RlbHMsIGFuZCBtb3JlIHRoYW4gNjAlIGNoZWFwZXIgdGhhbiBbR1BULTMuNSBUdXJib10oL21vZGVscy9vcGVuYWkvZ3B0LTMuNS10dXJibykuIEl0IG1haW50YWlucyBTT1RBIGludGVsbGlnZW5jZSwgd2hpbGUgYmVpbmcgc2lnbmlmaWNhbnRseSBtb3JlIGNvc3QtZWZmZWN0aXZlLlxuXG5HUFQtNG8gbWluaSBhY2hpZXZlcyBhbiA4MiUgc2NvcmUgb24gTU1MVSBhbmQgcHJlc2VudGx5IHJhbmtzIGhpZ2hlciB0aGFuIEdQVC00IG9uIGNoYXQgcHJlZmVyZW5jZXMgW2NvbW1vbiBsZWFkZXJib2FyZHNdKGh0dHBzOi8vYXJlbmEubG1zeXMub3JnLykuXG5cbkNoZWNrIG91dCB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vb3BlbmFpLmNvbS9pbmRleC9ncHQtNG8tbWluaS1hZHZhbmNpbmctY29zdC1lZmZpY2llbnQtaW50ZWxsaWdlbmNlLykgdG8gbGVhcm4gbW9yZS5cblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwMDIxNyIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDA3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoxNjM4NCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by1taW5pLTIwMjQtMDctMTgiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8tbWluaSAoMjAyNC0wNy0xOCkiLCJjcmVhdGVkIjoxNzIxMjYwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00byBtaW5pIGlzIE9wZW5BSSdzIG5ld2VzdCBtb2RlbCBhZnRlciBbR1BULTQgT21uaV0oL21vZGVscy9vcGVuYWkvZ3B0LTRvKSwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy5cblxuQXMgdGhlaXIgbW9zdCBhZHZhbmNlZCBzbWFsbCBtb2RlbCwgaXQgaXMgbWFueSBtdWx0aXBsZXMgbW9yZSBhZmZvcmRhYmxlIHRoYW4gb3RoZXIgcmVjZW50IGZyb250aWVyIG1vZGVscywgYW5kIG1vcmUgdGhhbiA2MCUgY2hlYXBlciB0aGFuIFtHUFQtMy41IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtMy41LXR1cmJvKS4gSXQgbWFpbnRhaW5zIFNPVEEgaW50ZWxsaWdlbmNlLCB3aGlsZSBiZWluZyBzaWduaWZpY2FudGx5IG1vcmUgY29zdC1lZmZlY3RpdmUuXG5cbkdQVC00byBtaW5pIGFjaGlldmVzIGFuIDgyJSBzY29yZSBvbiBNTUxVIGFuZCBwcmVzZW50bHkgcmFua3MgaGlnaGVyIHRoYW4gR1BULTQgb24gY2hhdCBwcmVmZXJlbmNlcyBbY29tbW9uIGxlYWRlcmJvYXJkc10oaHR0cHM6Ly9hcmVuYS5sbXN5cy5vcmcvKS5cblxuQ2hlY2sgb3V0IHRoZSBbbGF1bmNoIGFubm91bmNlbWVudF0oaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2dwdC00by1taW5pLWFkdmFuY2luZy1jb3N0LWVmZmljaWVudC1pbnRlbGxpZ2VuY2UvKSB0byBsZWFybiBtb3JlLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMTUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDA3MjI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjE2Mzg0LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi0yN2ItaXQiLCJuYW1lIjoiR29vZ2xlOiBHZW1tYSAyIDI3QiIsImNyZWF0ZWQiOjE3MjA4Mjg4MDAsImRlc2NyaXB0aW9uIjoiR2VtbWEgMiAyN0IgYnkgR29vZ2xlIGlzIGFuIG9wZW4gbW9kZWwgYnVpbHQgZnJvbSB0aGUgc2FtZSByZXNlYXJjaCBhbmQgdGVjaG5vbG9neSB1c2VkIHRvIGNyZWF0ZSB0aGUgW0dlbWluaSBtb2RlbHNdKC9tb2RlbHM/cT1nZW1pbmkpLlxuXG5HZW1tYSBtb2RlbHMgYXJlIHdlbGwtc3VpdGVkIGZvciBhIHZhcmlldHkgb2YgdGV4dCBnZW5lcmF0aW9uIHRhc2tzLCBpbmNsdWRpbmcgcXVlc3Rpb24gYW5zd2VyaW5nLCBzdW1tYXJpemF0aW9uLCBhbmQgcmVhc29uaW5nLlxuXG5TZWUgdGhlIFtsYXVuY2ggYW5ub3VuY2VtZW50XShodHRwczovL2Jsb2cuZ29vZ2xlL3RlY2hub2xvZ3kvZGV2ZWxvcGVycy9nb29nbGUtZ2VtbWEtMi8pIGZvciBtb3JlIGRldGFpbHMuIFVzYWdlIG9mIEdlbW1hIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbW1hIFRlcm1zIG9mIFVzZV0oaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbW1hL3Rlcm1zKS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOiJnZW1tYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFscGluZGFsZS9tYWdudW0tNzJiIiwibmFtZSI6Ik1hZ251bSA3MkIiLCJjcmVhdGVkIjoxNzIwNjU2MDAwLCJkZXNjcmlwdGlvbiI6IkZyb20gdGhlIG1ha2VyIG9mIFtHb2xpYXRoXShodHRwczovL29wZW5yb3V0ZXIuYWkvbW9kZWxzL2FscGluZGFsZS9nb2xpYXRoLTEyMGIpLCBNYWdudW0gNzJCIGlzIHRoZSBmaXJzdCBpbiBhIG5ldyBmYW1pbHkgb2YgbW9kZWxzIGRlc2lnbmVkIHRvIGFjaGlldmUgdGhlIHByb3NlIHF1YWxpdHkgb2YgdGhlIENsYXVkZSAzIG1vZGVscywgbm90YWJseSBPcHVzICYgU29ubmV0LlxuXG5UaGUgbW9kZWwgaXMgYmFzZWQgb24gW1F3ZW4yIDcyQl0oaHR0cHM6Ly9vcGVucm91dGVyLmFpL21vZGVscy9xd2VuL3F3ZW4tMi03MmItaW5zdHJ1Y3QpIGFuZCB0cmFpbmVkIHdpdGggNTUgbWlsbGlvbiB0b2tlbnMgb2YgaGlnaGx5IGN1cmF0ZWQgcm9sZXBsYXkgKFJQKSBkYXRhLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlF3ZW4iLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAyMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMjQsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi05Yi1pdDpmcmVlIiwibmFtZSI6Ikdvb2dsZTogR2VtbWEgMiA5QiAoZnJlZSkiLCJjcmVhdGVkIjoxNzE5NTMyODAwLCJkZXNjcmlwdGlvbiI6IkdlbW1hIDIgOUIgYnkgR29vZ2xlIGlzIGFuIGFkdmFuY2VkLCBvcGVuLXNvdXJjZSBsYW5ndWFnZSBtb2RlbCB0aGF0IHNldHMgYSBuZXcgc3RhbmRhcmQgZm9yIGVmZmljaWVuY3kgYW5kIHBlcmZvcm1hbmNlIGluIGl0cyBzaXplIGNsYXNzLlxuXG5EZXNpZ25lZCBmb3IgYSB3aWRlIHZhcmlldHkgb2YgdGFza3MsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgYW5kIHJlc2VhcmNoZXJzIHRvIGJ1aWxkIGlubm92YXRpdmUgYXBwbGljYXRpb25zLCB3aGlsZSBtYWludGFpbmluZyBhY2Nlc3NpYmlsaXR5LCBzYWZldHksIGFuZCBjb3N0LWVmZmVjdGl2ZW5lc3MuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vYmxvZy5nb29nbGUvdGVjaG5vbG9neS9kZXZlbG9wZXJzL2dvb2dsZS1nZW1tYS0yLykgZm9yIG1vcmUgZGV0YWlscy4gVXNhZ2Ugb2YgR2VtbWEgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtbWEgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvZ2VtbWEvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMCIsImNvbXBsZXRpb24iOiIwIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtbWEtMi05Yi1pdCIsIm5hbWUiOiJHb29nbGU6IEdlbW1hIDIgOUIiLCJjcmVhdGVkIjoxNzE5NTMyODAwLCJkZXNjcmlwdGlvbiI6IkdlbW1hIDIgOUIgYnkgR29vZ2xlIGlzIGFuIGFkdmFuY2VkLCBvcGVuLXNvdXJjZSBsYW5ndWFnZSBtb2RlbCB0aGF0IHNldHMgYSBuZXcgc3RhbmRhcmQgZm9yIGVmZmljaWVuY3kgYW5kIHBlcmZvcm1hbmNlIGluIGl0cyBzaXplIGNsYXNzLlxuXG5EZXNpZ25lZCBmb3IgYSB3aWRlIHZhcmlldHkgb2YgdGFza3MsIGl0IGVtcG93ZXJzIGRldmVsb3BlcnMgYW5kIHJlc2VhcmNoZXJzIHRvIGJ1aWxkIGlubm92YXRpdmUgYXBwbGljYXRpb25zLCB3aGlsZSBtYWludGFpbmluZyBhY2Nlc3NpYmlsaXR5LCBzYWZldHksIGFuZCBjb3N0LWVmZmVjdGl2ZW5lc3MuXG5cblNlZSB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vYmxvZy5nb29nbGUvdGVjaG5vbG9neS9kZXZlbG9wZXJzL2dvb2dsZS1nZW1tYS0yLykgZm9yIG1vcmUgZGV0YWlscy4gVXNhZ2Ugb2YgR2VtbWEgaXMgc3ViamVjdCB0byBHb29nbGUncyBbR2VtbWEgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvZ2VtbWEvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR2VtaW5pIiwiaW5zdHJ1Y3RfdHlwZSI6ImdlbW1hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiIwMS1haS95aS1sYXJnZSIsIm5hbWUiOiIwMS5BSTogWWkgTGFyZ2UiLCJjcmVhdGVkIjoxNzE5MjczNjAwLCJkZXNjcmlwdGlvbiI6IlRoZSBZaSBMYXJnZSBtb2RlbCB3YXMgZGVzaWduZWQgYnkgMDEuQUkgd2l0aCB0aGUgZm9sbG93aW5nIHVzZWNhc2VzIGluIG1pbmQ6IGtub3dsZWRnZSBzZWFyY2gsIGRhdGEgY2xhc3NpZmljYXRpb24sIGh1bWFuLWxpa2UgY2hhdCBib3RzLCBhbmQgY3VzdG9tZXIgc2VydmljZS5cblxuSXQgc3RhbmRzIG91dCBmb3IgaXRzIG11bHRpbGluZ3VhbCBwcm9maWNpZW5jeSwgcGFydGljdWxhcmx5IGluIFNwYW5pc2gsIENoaW5lc2UsIEphcGFuZXNlLCBHZXJtYW4sIGFuZCBGcmVuY2guXG5cbkNoZWNrIG91dCB0aGUgW2xhdW5jaCBhbm5vdW5jZW1lbnRdKGh0dHBzOi8vMDEtYWkuZ2l0aHViLmlvL2Jsb2cvMDEuYWkteWktbGFyZ2UtbGxtLWxhdW5jaCkgdG8gbGVhcm4gbW9yZS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJZaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAzIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWkyMS9qYW1iYS1pbnN0cnVjdCIsIm5hbWUiOiJBSTIxOiBKYW1iYSBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTkyNzM2MDAsImRlc2NyaXB0aW9uIjoiVGhlIEphbWJhLUluc3RydWN0IG1vZGVsLCBpbnRyb2R1Y2VkIGJ5IEFJMjEgTGFicywgaXMgYW4gaW5zdHJ1Y3Rpb24tdHVuZWQgdmFyaWFudCBvZiB0aGVpciBoeWJyaWQgU1NNLVRyYW5zZm9ybWVyIEphbWJhIG1vZGVsLCBzcGVjaWZpY2FsbHkgb3B0aW1pemVkIGZvciBlbnRlcnByaXNlIGFwcGxpY2F0aW9ucy5cblxuLSAyNTZLIENvbnRleHQgV2luZG93OiBJdCBjYW4gcHJvY2VzcyBleHRlbnNpdmUgaW5mb3JtYXRpb24sIGVxdWl2YWxlbnQgdG8gYSA0MDAtcGFnZSBub3ZlbCwgd2hpY2ggaXMgYmVuZWZpY2lhbCBmb3IgdGFza3MgaW52b2x2aW5nIGxhcmdlIGRvY3VtZW50cyBzdWNoIGFzIGZpbmFuY2lhbCByZXBvcnRzIG9yIGxlZ2FsIGRvY3VtZW50c1xuLSBTYWZldHkgYW5kIEFjY3VyYWN5OiBKYW1iYS1JbnN0cnVjdCBpcyBkZXNpZ25lZCB3aXRoIGVuaGFuY2VkIHNhZmV0eSBmZWF0dXJlcyB0byBlbnN1cmUgc2VjdXJlIGRlcGxveW1lbnQgaW4gZW50ZXJwcmlzZSBlbnZpcm9ubWVudHMsIHJlZHVjaW5nIHRoZSByaXNrIGFuZCBjb3N0IG9mIGltcGxlbWVudGF0aW9uXG5cblJlYWQgdGhlaXIgW2Fubm91bmNlbWVudF0oaHR0cHM6Ly93d3cuYWkyMS5jb20vYmxvZy9hbm5vdW5jaW5nLWphbWJhKSB0byBsZWFybiBtb3JlLlxuXG5KYW1iYSBoYXMgYSBrbm93bGVkZ2UgY3V0b2ZmIG9mIEZlYnJ1YXJ5IDIwMjQuIiwiY29udGV4dF9sZW5ndGgiOjI1NjAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik90aGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjU2MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMuNS1zb25uZXQtMjAyNDA2MjA6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzLjUgU29ubmV0ICgyMDI0LTA2LTIwKSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcxODg0MTYwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogQXV0b25vbW91c2x5IHdyaXRlcywgZWRpdHMsIGFuZCBydW5zIGNvZGUgd2l0aCByZWFzb25pbmcgYW5kIHRyb3VibGVzaG9vdGluZ1xuLSBEYXRhIHNjaWVuY2U6IEF1Z21lbnRzIGh1bWFuIGRhdGEgc2NpZW5jZSBleHBlcnRpc2U7IG5hdmlnYXRlcyB1bnN0cnVjdHVyZWQgZGF0YSB3aGlsZSB1c2luZyBtdWx0aXBsZSB0b29scyBmb3IgaW5zaWdodHNcbi0gVmlzdWFsIHByb2Nlc3Npbmc6IGV4Y2VsbGluZyBhdCBpbnRlcnByZXRpbmcgY2hhcnRzLCBncmFwaHMsIGFuZCBpbWFnZXMsIGFjY3VyYXRlbHkgdHJhbnNjcmliaW5nIHRleHQgdG8gZGVyaXZlIGluc2lnaHRzIGJleW9uZCBqdXN0IHRoZSB0ZXh0IGFsb25lXG4tIEFnZW50aWMgdGFza3M6IGV4Y2VwdGlvbmFsIHRvb2wgdXNlLCBtYWtpbmcgaXQgZ3JlYXQgYXQgYWdlbnRpYyB0YXNrcyAoaS5lLiBjb21wbGV4LCBtdWx0aS1zdGVwIHByb2JsZW0gc29sdmluZyB0YXNrcyB0aGF0IHJlcXVpcmUgZW5nYWdpbmcgd2l0aCBvdGhlciBzeXN0ZW1zKVxuXG5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uICgyMDI0LTEwLTIzKSwgY2hlY2sgb3V0IFtDbGF1ZGUgMy41IFNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldCkuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLjUtc29ubmV0LTIwMjQwNjIwIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMuNSBTb25uZXQgKDIwMjQtMDYtMjApIiwiY3JlYXRlZCI6MTcxODg0MTYwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMy41IFNvbm5ldCBkZWxpdmVycyBiZXR0ZXItdGhhbi1PcHVzIGNhcGFiaWxpdGllcywgZmFzdGVyLXRoYW4tU29ubmV0IHNwZWVkcywgYXQgdGhlIHNhbWUgU29ubmV0IHByaWNlcy4gU29ubmV0IGlzIHBhcnRpY3VsYXJseSBnb29kIGF0OlxuXG4tIENvZGluZzogQXV0b25vbW91c2x5IHdyaXRlcywgZWRpdHMsIGFuZCBydW5zIGNvZGUgd2l0aCByZWFzb25pbmcgYW5kIHRyb3VibGVzaG9vdGluZ1xuLSBEYXRhIHNjaWVuY2U6IEF1Z21lbnRzIGh1bWFuIGRhdGEgc2NpZW5jZSBleHBlcnRpc2U7IG5hdmlnYXRlcyB1bnN0cnVjdHVyZWQgZGF0YSB3aGlsZSB1c2luZyBtdWx0aXBsZSB0b29scyBmb3IgaW5zaWdodHNcbi0gVmlzdWFsIHByb2Nlc3Npbmc6IGV4Y2VsbGluZyBhdCBpbnRlcnByZXRpbmcgY2hhcnRzLCBncmFwaHMsIGFuZCBpbWFnZXMsIGFjY3VyYXRlbHkgdHJhbnNjcmliaW5nIHRleHQgdG8gZGVyaXZlIGluc2lnaHRzIGJleW9uZCBqdXN0IHRoZSB0ZXh0IGFsb25lXG4tIEFnZW50aWMgdGFza3M6IGV4Y2VwdGlvbmFsIHRvb2wgdXNlLCBtYWtpbmcgaXQgZ3JlYXQgYXQgYWdlbnRpYyB0YXNrcyAoaS5lLiBjb21wbGV4LCBtdWx0aS1zdGVwIHByb2JsZW0gc29sdmluZyB0YXNrcyB0aGF0IHJlcXVpcmUgZW5nYWdpbmcgd2l0aCBvdGhlciBzeXN0ZW1zKVxuXG5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uICgyMDI0LTEwLTIzKSwgY2hlY2sgb3V0IFtDbGF1ZGUgMy41IFNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldCkuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzYW8xMGsvbDMtZXVyeWFsZS03MGIiLCJuYW1lIjoiU2FvMTBrOiBMbGFtYSAzIEV1cnlhbGUgNzBCIHYyLjEiLCJjcmVhdGVkIjoxNzE4NjY4ODAwLCJkZXNjcmlwdGlvbiI6IkV1cnlhbGUgNzBCIHYyLjEgaXMgYSBtb2RlbCBmb2N1c2VkIG9uIGNyZWF0aXZlIHJvbGVwbGF5IGZyb20gW1NhbzEwa10oaHR0cHM6Ly9rby1maS5jb20vc2FvMTBrKS5cblxuLSBCZXR0ZXIgcHJvbXB0IGFkaGVyZW5jZS5cbi0gQmV0dGVyIGFuYXRvbXkgLyBzcGF0aWFsIGF3YXJlbmVzcy5cbi0gQWRhcHRzIG11Y2ggYmV0dGVyIHRvIHVuaXF1ZSBhbmQgY3VzdG9tIGZvcm1hdHRpbmcgLyByZXBseSBmb3JtYXRzLlxuLSBWZXJ5IGNyZWF0aXZlLCBsb3RzIG9mIHVuaXF1ZSBzd2lwZXMuXG4tIElzIG5vdCByZXN0cmljdGl2ZSBkdXJpbmcgcm9sZXBsYXlzLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxNDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE0OCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiY29nbml0aXZlY29tcHV0YXRpb25zL2RvbHBoaW4tbWl4dHJhbC04eDIyYiIsIm5hbWUiOiJEb2xwaGluIDIuOS4yIE1peHRyYWwgOHgyMkIg8J+QrCIsImNyZWF0ZWQiOjE3MTc4MDQ4MDAsImRlc2NyaXB0aW9uIjoiRG9scGhpbiAyLjkgaXMgZGVzaWduZWQgZm9yIGluc3RydWN0aW9uIGZvbGxvd2luZywgY29udmVyc2F0aW9uYWwsIGFuZCBjb2RpbmcuIFRoaXMgbW9kZWwgaXMgYSBmaW5ldHVuZSBvZiBbTWl4dHJhbCA4eDIyQiBJbnN0cnVjdF0oL21vZGVscy9taXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdCkuIEl0IGZlYXR1cmVzIGEgNjRrIGNvbnRleHQgbGVuZ3RoIGFuZCB3YXMgZmluZS10dW5lZCB3aXRoIGEgMTZrIHNlcXVlbmNlIGxlbmd0aCB1c2luZyBDaGF0TUwgdGVtcGxhdGVzLlxuXG5UaGlzIG1vZGVsIGlzIGEgc3VjY2Vzc29yIHRvIFtEb2xwaGluIE1peHRyYWwgOHg3Ql0oL21vZGVscy9jb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbi1taXh0cmFsLTh4N2IpLlxuXG5UaGUgbW9kZWwgaXMgdW5jZW5zb3JlZCBhbmQgaXMgc3RyaXBwZWQgb2YgYWxpZ25tZW50IGFuZCBiaWFzLiBJdCByZXF1aXJlcyBhbiBleHRlcm5hbCBhbGlnbm1lbnQgbGF5ZXIgZm9yIGV0aGljYWwgdXNlLiBVc2VycyBhcmUgY2F1dGlvbmVkIHRvIHVzZSB0aGlzIGhpZ2hseSBjb21wbGlhbnQgbW9kZWwgcmVzcG9uc2libHksIGFzIGRldGFpbGVkIGluIGEgYmxvZyBwb3N0IGFib3V0IHVuY2Vuc29yZWQgbW9kZWxzIGF0IFtlcmljaGFydGZvcmQuY29tL3VuY2Vuc29yZWQtbW9kZWxzXShodHRwczovL2VyaWNoYXJ0Zm9yZC5jb20vdW5jZW5zb3JlZC1tb2RlbHMpLlxuXG4jbW9lICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjE2MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoicXdlbi9xd2VuLTItNzJiLWluc3RydWN0IiwibmFtZSI6IlF3ZW4gMiA3MkIgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE3NzE4NDAwLCJkZXNjcmlwdGlvbiI6IlF3ZW4yIDcyQiBpcyBhIHRyYW5zZm9ybWVyLWJhc2VkIG1vZGVsIHRoYXQgZXhjZWxzIGluIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIG11bHRpbGluZ3VhbCBjYXBhYmlsaXRpZXMsIGNvZGluZywgbWF0aGVtYXRpY3MsIGFuZCByZWFzb25pbmcuXG5cbkl0IGZlYXR1cmVzIFN3aUdMVSBhY3RpdmF0aW9uLCBhdHRlbnRpb24gUUtWIGJpYXMsIGFuZCBncm91cCBxdWVyeSBhdHRlbnRpb24uIEl0IGlzIHByZXRyYWluZWQgb24gZXh0ZW5zaXZlIGRhdGEgd2l0aCBzdXBlcnZpc2VkIGZpbmV0dW5pbmcgYW5kIGRpcmVjdCBwcmVmZXJlbmNlIG9wdGltaXphdGlvbi5cblxuRm9yIG1vcmUgZGV0YWlscywgc2VlIHRoaXMgW2Jsb2cgcG9zdF0oaHR0cHM6Ly9xd2VubG0uZ2l0aHViLmlvL2Jsb2cvcXdlbjIvKSBhbmQgW0dpdEh1YiByZXBvXShodHRwczovL2dpdGh1Yi5jb20vUXdlbkxNL1F3ZW4yKS5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtUb25neWkgUWlhbndlbiBMSUNFTlNFIEFHUkVFTUVOVF0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Rd2VuL1F3ZW4xLjUtMTEwQi1DaGF0L2Jsb2IvbWFpbi9MSUNFTlNFKS4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJRd2VuIiwiaW5zdHJ1Y3RfdHlwZSI6ImNoYXRtbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDkiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC03Yi1pbnN0cnVjdDpmcmVlIiwibmFtZSI6Ik1pc3RyYWw6IE1pc3RyYWwgN0IgSW5zdHJ1Y3QgKGZyZWUpIiwiY3JlYXRlZCI6MTcxNjc2ODAwMCwiZGVzY3JpcHRpb24iOiJBIGhpZ2gtcGVyZm9ybWluZywgaW5kdXN0cnktc3RhbmRhcmQgNy4zQiBwYXJhbWV0ZXIgbW9kZWwsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLlxuXG4qTWlzdHJhbCA3QiBJbnN0cnVjdCBoYXMgbXVsdGlwbGUgdmVyc2lvbiB2YXJpYW50cywgYW5kIHRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdGhlIGxhdGVzdCB2ZXJzaW9uLioiLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCIsImNyZWF0ZWQiOjE3MTY3NjgwMDAsImRlc2NyaXB0aW9uIjoiQSBoaWdoLXBlcmZvcm1pbmcsIGluZHVzdHJ5LXN0YW5kYXJkIDcuM0IgcGFyYW1ldGVyIG1vZGVsLCB3aXRoIG9wdGltaXphdGlvbnMgZm9yIHNwZWVkIGFuZCBjb250ZXh0IGxlbmd0aC5cblxuKk1pc3RyYWwgN0IgSW5zdHJ1Y3QgaGFzIG11bHRpcGxlIHZlcnNpb24gdmFyaWFudHMsIGFuZCB0aGlzIGlzIGludGVuZGVkIHRvIGJlIHRoZSBsYXRlc3QgdmVyc2lvbi4qIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJtaXN0cmFsIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA1NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjMiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCB2MC4zIiwiY3JlYXRlZCI6MTcxNjc2ODAwMCwiZGVzY3JpcHRpb24iOiJBIGhpZ2gtcGVyZm9ybWluZywgaW5kdXN0cnktc3RhbmRhcmQgNy4zQiBwYXJhbWV0ZXIgbW9kZWwsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLlxuXG5BbiBpbXByb3ZlZCB2ZXJzaW9uIG9mIFtNaXN0cmFsIDdCIEluc3RydWN0IHYwLjJdKC9tb2RlbHMvbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMiksIHdpdGggdGhlIGZvbGxvd2luZyBjaGFuZ2VzOlxuXG4tIEV4dGVuZGVkIHZvY2FidWxhcnkgdG8gMzI3Njhcbi0gU3VwcG9ydHMgdjMgVG9rZW5pemVyXG4tIFN1cHBvcnRzIGZ1bmN0aW9uIGNhbGxpbmdcblxuTk9URTogU3VwcG9ydCBmb3IgZnVuY3Rpb24gY2FsbGluZyBkZXBlbmRzIG9uIHRoZSBwcm92aWRlci4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMDU1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo4MTkyLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibm91c3Jlc2VhcmNoL2hlcm1lcy0yLXByby1sbGFtYS0zLThiIiwibmFtZSI6Ik5vdXNSZXNlYXJjaDogSGVybWVzIDIgUHJvIC0gTGxhbWEtMyA4QiIsImNyZWF0ZWQiOjE3MTY3NjgwMDAsImRlc2NyaXB0aW9uIjoiSGVybWVzIDIgUHJvIGlzIGFuIHVwZ3JhZGVkLCByZXRyYWluZWQgdmVyc2lvbiBvZiBOb3VzIEhlcm1lcyAyLCBjb25zaXN0aW5nIG9mIGFuIHVwZGF0ZWQgYW5kIGNsZWFuZWQgdmVyc2lvbiBvZiB0aGUgT3Blbkhlcm1lcyAyLjUgRGF0YXNldCwgYXMgd2VsbCBhcyBhIG5ld2x5IGludHJvZHVjZWQgRnVuY3Rpb24gQ2FsbGluZyBhbmQgSlNPTiBNb2RlIGRhdGFzZXQgZGV2ZWxvcGVkIGluLWhvdXNlLiIsImNvbnRleHRfbGVuZ3RoIjoxMzEwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTMxMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEzMTAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC9waGktMy1taW5pLTEyOGstaW5zdHJ1Y3QiLCJuYW1lIjoiTWljcm9zb2Z0OiBQaGktMyBNaW5pIDEyOEsgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE2NjgxNjAwLCJkZXNjcmlwdGlvbiI6IlBoaS0zIE1pbmkgaXMgYSBwb3dlcmZ1bCAzLjhCIHBhcmFtZXRlciBtb2RlbCBkZXNpZ25lZCBmb3IgYWR2YW5jZWQgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZywgcmVhc29uaW5nLCBhbmQgaW5zdHJ1Y3Rpb24gZm9sbG93aW5nLiBPcHRpbWl6ZWQgdGhyb3VnaCBzdXBlcnZpc2VkIGZpbmUtdHVuaW5nIGFuZCBwcmVmZXJlbmNlIGFkanVzdG1lbnRzLCBpdCBleGNlbHMgaW4gdGFza3MgaW52b2x2aW5nIGNvbW1vbiBzZW5zZSwgbWF0aGVtYXRpY3MsIGxvZ2ljYWwgcmVhc29uaW5nLCBhbmQgY29kZSBwcm9jZXNzaW5nLlxuXG5BdCB0aW1lIG9mIHJlbGVhc2UsIFBoaS0zIE1lZGl1bSBkZW1vbnN0cmF0ZWQgc3RhdGUtb2YtdGhlLWFydCBwZXJmb3JtYW5jZSBhbW9uZyBsaWdodHdlaWdodCBtb2RlbHMuIFRoaXMgbW9kZWwgaXMgc3RhdGljLCB0cmFpbmVkIG9uIGFuIG9mZmxpbmUgZGF0YXNldCB3aXRoIGFuIE9jdG9iZXIgMjAyMyBjdXRvZmYgZGF0ZS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiT3RoZXIiLCJpbnN0cnVjdF90eXBlIjoicGhpMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWljcm9zb2Z0L3BoaS0zLW1lZGl1bS0xMjhrLWluc3RydWN0IiwibmFtZSI6Ik1pY3Jvc29mdDogUGhpLTMgTWVkaXVtIDEyOEsgSW5zdHJ1Y3QiLCJjcmVhdGVkIjoxNzE2NTA4ODAwLCJkZXNjcmlwdGlvbiI6IlBoaS0zIDEyOEsgTWVkaXVtIGlzIGEgcG93ZXJmdWwgMTQtYmlsbGlvbiBwYXJhbWV0ZXIgbW9kZWwgZGVzaWduZWQgZm9yIGFkdmFuY2VkIGxhbmd1YWdlIHVuZGVyc3RhbmRpbmcsIHJlYXNvbmluZywgYW5kIGluc3RydWN0aW9uIGZvbGxvd2luZy4gT3B0aW1pemVkIHRocm91Z2ggc3VwZXJ2aXNlZCBmaW5lLXR1bmluZyBhbmQgcHJlZmVyZW5jZSBhZGp1c3RtZW50cywgaXQgZXhjZWxzIGluIHRhc2tzIGludm9sdmluZyBjb21tb24gc2Vuc2UsIG1hdGhlbWF0aWNzLCBsb2dpY2FsIHJlYXNvbmluZywgYW5kIGNvZGUgcHJvY2Vzc2luZy5cblxuQXQgdGltZSBvZiByZWxlYXNlLCBQaGktMyBNZWRpdW0gZGVtb25zdHJhdGVkIHN0YXRlLW9mLXRoZS1hcnQgcGVyZm9ybWFuY2UgYW1vbmcgbGlnaHR3ZWlnaHQgbW9kZWxzLiBJbiB0aGUgTU1MVS1Qcm8gZXZhbCwgdGhlIG1vZGVsIGV2ZW4gY29tZXMgY2xvc2UgdG8gYSBMbGFtYTMgNzBCIGxldmVsIG9mIHBlcmZvcm1hbmNlLlxuXG5Gb3IgNGsgY29udGV4dCBsZW5ndGgsIHRyeSBbUGhpLTMgTWVkaXVtIDRLXSgvbW9kZWxzL21pY3Jvc29mdC9waGktMy1tZWRpdW0tNGstaW5zdHJ1Y3QpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJPdGhlciIsImluc3RydWN0X3R5cGUiOiJwaGkzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDEiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibmV2ZXJzbGVlcC9sbGFtYS0zLWx1bWltYWlkLTcwYiIsIm5hbWUiOiJOZXZlclNsZWVwOiBMbGFtYSAzIEx1bWltYWlkIDcwQiIsImNyZWF0ZWQiOjE3MTU4MTc2MDAsImRlc2NyaXB0aW9uIjoiVGhlIE5ldmVyU2xlZXAgdGVhbSBpcyBiYWNrLCB3aXRoIGEgTGxhbWEgMyA3MEIgZmluZXR1bmUgdHJhaW5lZCBvbiB0aGVpciBjdXJhdGVkIHJvbGVwbGF5IGRhdGEuIFN0cmlraW5nIGEgYmFsYW5jZSBiZXR3ZWVuIGVSUCBhbmQgUlAsIEx1bWltYWlkIHdhcyBkZXNpZ25lZCB0byBiZSBzZXJpb3VzLCB5ZXQgdW5jZW5zb3JlZCB3aGVuIG5lY2Vzc2FyeS5cblxuVG8gZW5oYW5jZSBpdCdzIG92ZXJhbGwgaW50ZWxsaWdlbmNlIGFuZCBjaGF0IGNhcGFiaWxpdHksIHJvdWdobHkgNDAlIG9mIHRoZSB0cmFpbmluZyBkYXRhIHdhcyBub3Qgcm9sZXBsYXkuIFRoaXMgcHJvdmlkZXMgYSBicmVhZHRoIG9mIGtub3dsZWRnZSB0byBhY2Nlc3MsIHdoaWxlIHN0aWxsIGtlZXBpbmcgcm9sZXBsYXkgYXMgdGhlIHByaW1hcnkgc3RyZW5ndGguXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzMzc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA0NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUiLCJuYW1lIjoiR29vZ2xlOiBHZW1pbmkgMS41IEZsYXNoICIsImNyZWF0ZWQiOjE3MTU2NDQ4MDAsImRlc2NyaXB0aW9uIjoiR2VtaW5pIDEuNSBGbGFzaCBpcyBhIGZvdW5kYXRpb24gbW9kZWwgdGhhdCBwZXJmb3JtcyB3ZWxsIGF0IGEgdmFyaWV0eSBvZiBtdWx0aW1vZGFsIHRhc2tzIHN1Y2ggYXMgdmlzdWFsIHVuZGVyc3RhbmRpbmcsIGNsYXNzaWZpY2F0aW9uLCBzdW1tYXJpemF0aW9uLCBhbmQgY3JlYXRpbmcgY29udGVudCBmcm9tIGltYWdlLCBhdWRpbyBhbmQgdmlkZW8uIEl0J3MgYWRlcHQgYXQgcHJvY2Vzc2luZyB2aXN1YWwgYW5kIHRleHQgaW5wdXRzIHN1Y2ggYXMgcGhvdG9ncmFwaHMsIGRvY3VtZW50cywgaW5mb2dyYXBoaWNzLCBhbmQgc2NyZWVuc2hvdHMuXG5cbkdlbWluaSAxLjUgRmxhc2ggaXMgZGVzaWduZWQgZm9yIGhpZ2gtdm9sdW1lLCBoaWdoLWZyZXF1ZW5jeSB0YXNrcyB3aGVyZSBjb3N0IGFuZCBsYXRlbmN5IG1hdHRlci4gT24gbW9zdCBjb21tb24gdGFza3MsIEZsYXNoIGFjaGlldmVzIGNvbXBhcmFibGUgcXVhbGl0eSB0byBvdGhlciBHZW1pbmkgUHJvIG1vZGVscyBhdCBhIHNpZ25pZmljYW50bHkgcmVkdWNlZCBjb3N0LiBGbGFzaCBpcyB3ZWxsLXN1aXRlZCBmb3IgYXBwbGljYXRpb25zIGxpa2UgY2hhdCBhc3Npc3RhbnRzIGFuZCBvbi1kZW1hbmQgY29udGVudCBnZW5lcmF0aW9uIHdoZXJlIHNwZWVkIGFuZCBzY2FsZSBtYXR0ZXIuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAxODc1IiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDE1ODMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTRvIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvIiwiY3JlYXRlZCI6MTcxNTU1ODQwMCwiZGVzY3JpcHRpb24iOiJHUFQtNG8gKFwib1wiIGZvciBcIm9tbmlcIikgaXMgT3BlbkFJJ3MgbGF0ZXN0IEFJIG1vZGVsLCBzdXBwb3J0aW5nIGJvdGggdGV4dCBhbmQgaW1hZ2UgaW5wdXRzIHdpdGggdGV4dCBvdXRwdXRzLiBJdCBtYWludGFpbnMgdGhlIGludGVsbGlnZW5jZSBsZXZlbCBvZiBbR1BULTQgVHVyYm9dKC9tb2RlbHMvb3BlbmFpL2dwdC00LXR1cmJvKSB3aGlsZSBiZWluZyB0d2ljZSBhcyBmYXN0IGFuZCA1MCUgbW9yZSBjb3N0LWVmZmVjdGl2ZS4gR1BULTRvIGFsc28gb2ZmZXJzIGltcHJvdmVkIHBlcmZvcm1hbmNlIGluIHByb2Nlc3Npbmcgbm9uLUVuZ2xpc2ggbGFuZ3VhZ2VzIGFuZCBlbmhhbmNlZCB2aXN1YWwgY2FwYWJpbGl0aWVzLlxuXG5Gb3IgYmVuY2htYXJraW5nIGFnYWluc3Qgb3RoZXIgbW9kZWxzLCBpdCB3YXMgYnJpZWZseSBjYWxsZWQgW1wiaW0tYWxzby1hLWdvb2QtZ3B0Mi1jaGF0Ym90XCJdKGh0dHBzOi8vdHdpdHRlci5jb20vTGlhbUZlZHVzL3N0YXR1cy8xNzkwMDY0OTYzOTY2MzcwMjA5KVxuXG4jbXVsdGltb2RhbCIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQraW1hZ2UtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiLCJpbWFnZSJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAzNjEzIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAxMjUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTYzODQsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNG86ZXh0ZW5kZWQiLCJuYW1lIjoiT3BlbkFJOiBHUFQtNG8gKGV4dGVuZGVkKSIsImNyZWF0ZWQiOjE3MTU1NTg0MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDAxOCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNzIyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo2NDAwMCwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00by0yMDI0LTA1LTEzIiwibmFtZSI6Ik9wZW5BSTogR1BULTRvICgyMDI0LTA1LTEzKSIsImNyZWF0ZWQiOjE3MTU1NTg0MDAsImRlc2NyaXB0aW9uIjoiR1BULTRvIChcIm9cIiBmb3IgXCJvbW5pXCIpIGlzIE9wZW5BSSdzIGxhdGVzdCBBSSBtb2RlbCwgc3VwcG9ydGluZyBib3RoIHRleHQgYW5kIGltYWdlIGlucHV0cyB3aXRoIHRleHQgb3V0cHV0cy4gSXQgbWFpbnRhaW5zIHRoZSBpbnRlbGxpZ2VuY2UgbGV2ZWwgb2YgW0dQVC00IFR1cmJvXSgvbW9kZWxzL29wZW5haS9ncHQtNC10dXJibykgd2hpbGUgYmVpbmcgdHdpY2UgYXMgZmFzdCBhbmQgNTAlIG1vcmUgY29zdC1lZmZlY3RpdmUuIEdQVC00byBhbHNvIG9mZmVycyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBwcm9jZXNzaW5nIG5vbi1FbmdsaXNoIGxhbmd1YWdlcyBhbmQgZW5oYW5jZWQgdmlzdWFsIGNhcGFiaWxpdGllcy5cblxuRm9yIGJlbmNobWFya2luZyBhZ2FpbnN0IG90aGVyIG1vZGVscywgaXQgd2FzIGJyaWVmbHkgY2FsbGVkIFtcImltLWFsc28tYS1nb29kLWdwdDItY2hhdGJvdFwiXShodHRwczovL3R3aXR0ZXIuY29tL0xpYW1GZWR1cy9zdGF0dXMvMTc5MDA2NDk2Mzk2NjM3MDIwOSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNzIyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLWd1YXJkLTItOGIiLCJuYW1lIjoiTWV0YTogTGxhbWFHdWFyZCAyIDhCIiwiY3JlYXRlZCI6MTcxNTU1ODQwMCwiZGVzY3JpcHRpb24iOiJUaGlzIHNhZmVndWFyZCBtb2RlbCBoYXMgOEIgcGFyYW1ldGVycyBhbmQgaXMgYmFzZWQgb24gdGhlIExsYW1hIDMgZmFtaWx5LiBKdXN0IGxpa2UgaXMgcHJlZGVjZXNzb3IsIFtMbGFtYUd1YXJkIDFdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vbWV0YS1sbGFtYS9MbGFtYUd1YXJkLTdiKSwgaXQgY2FuIGRvIGJvdGggcHJvbXB0IGFuZCByZXNwb25zZSBjbGFzc2lmaWNhdGlvbi5cblxuTGxhbWFHdWFyZCAyIGFjdHMgYXMgYSBub3JtYWwgTExNIHdvdWxkLCBnZW5lcmF0aW5nIHRleHQgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZ2l2ZW4gaW5wdXQvb3V0cHV0IGlzIHNhZmUvdW5zYWZlLiBJZiBkZWVtZWQgdW5zYWZlLCBpdCB3aWxsIGFsc28gc2hhcmUgdGhlIGNvbnRlbnQgY2F0ZWdvcmllcyB2aW9sYXRlZC5cblxuRm9yIGJlc3QgcmVzdWx0cywgcGxlYXNlIHVzZSByYXcgcHJvbXB0IGlucHV0IG9yIHRoZSBgL2NvbXBsZXRpb25zYCBlbmRwb2ludCwgaW5zdGVhZCBvZiB0aGUgY2hhdCBBUEkuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibm9uZSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im5ldmVyc2xlZXAvbGxhbWEtMy1sdW1pbWFpZC04YjpleHRlbmRlZCIsIm5hbWUiOiJOZXZlclNsZWVwOiBMbGFtYSAzIEx1bWltYWlkIDhCIChleHRlbmRlZCkiLCJjcmVhdGVkIjoxNzE0NzgwODAwLCJkZXNjcmlwdGlvbiI6IlRoZSBOZXZlclNsZWVwIHRlYW0gaXMgYmFjaywgd2l0aCBhIExsYW1hIDMgOEIgZmluZXR1bmUgdHJhaW5lZCBvbiB0aGVpciBjdXJhdGVkIHJvbGVwbGF5IGRhdGEuIFN0cmlraW5nIGEgYmFsYW5jZSBiZXR3ZWVuIGVSUCBhbmQgUlAsIEx1bWltYWlkIHdhcyBkZXNpZ25lZCB0byBiZSBzZXJpb3VzLCB5ZXQgdW5jZW5zb3JlZCB3aGVuIG5lY2Vzc2FyeS5cblxuVG8gZW5oYW5jZSBpdCdzIG92ZXJhbGwgaW50ZWxsaWdlbmNlIGFuZCBjaGF0IGNhcGFiaWxpdHksIHJvdWdobHkgNDAlIG9mIHRoZSB0cmFpbmluZyBkYXRhIHdhcyBub3Qgcm9sZXBsYXkuIFRoaXMgcHJvdmlkZXMgYSBicmVhZHRoIG9mIGtub3dsZWRnZSB0byBhY2Nlc3MsIHdoaWxlIHN0aWxsIGtlZXBpbmcgcm9sZXBsYXkgYXMgdGhlIHByaW1hcnkgc3RyZW5ndGguXG5cblVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjoyNDU3NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMyIsImluc3RydWN0X3R5cGUiOiJsbGFtYTMifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA5Mzc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNzUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjI0NTc2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJuZXZlcnNsZWVwL2xsYW1hLTMtbHVtaW1haWQtOGIiLCJuYW1lIjoiTmV2ZXJTbGVlcDogTGxhbWEgMyBMdW1pbWFpZCA4QiIsImNyZWF0ZWQiOjE3MTQ3ODA4MDAsImRlc2NyaXB0aW9uIjoiVGhlIE5ldmVyU2xlZXAgdGVhbSBpcyBiYWNrLCB3aXRoIGEgTGxhbWEgMyA4QiBmaW5ldHVuZSB0cmFpbmVkIG9uIHRoZWlyIGN1cmF0ZWQgcm9sZXBsYXkgZGF0YS4gU3RyaWtpbmcgYSBiYWxhbmNlIGJldHdlZW4gZVJQIGFuZCBSUCwgTHVtaW1haWQgd2FzIGRlc2lnbmVkIHRvIGJlIHNlcmlvdXMsIHlldCB1bmNlbnNvcmVkIHdoZW4gbmVjZXNzYXJ5LlxuXG5UbyBlbmhhbmNlIGl0J3Mgb3ZlcmFsbCBpbnRlbGxpZ2VuY2UgYW5kIGNoYXQgY2FwYWJpbGl0eSwgcm91Z2hseSA0MCUgb2YgdGhlIHRyYWluaW5nIGRhdGEgd2FzIG5vdCByb2xlcGxheS4gVGhpcyBwcm92aWRlcyBhIGJyZWFkdGggb2Yga25vd2xlZGdlIHRvIGFjY2Vzcywgd2hpbGUgc3RpbGwga2VlcGluZyByb2xlcGxheSBhcyB0aGUgcHJpbWFyeSBzdHJlbmd0aC5cblxuVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjI0NTc2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDkzNzUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjQ1NzYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6InNhbzEway9maW1idWx2ZXRyLTExYi12MiIsIm5hbWUiOiJGaW1idWx2ZXRyIDExQiB2MiIsImNyZWF0ZWQiOjE3MTM2NTc2MDAsImRlc2NyaXB0aW9uIjoiQ3JlYXRpdmUgd3JpdGluZyBtb2RlbCwgcm91dGVkIHdpdGggcGVybWlzc2lvbi4gSXQncyBmYXN0LCBpdCBrZWVwcyB0aGUgY29udmVyc2F0aW9uIGdvaW5nLCBhbmQgaXQgc3RheXMgaW4gY2hhcmFjdGVyLlxuXG5JZiB5b3Ugc3VibWl0IGEgcmF3IHByb21wdCwgeW91IGNhbiB1c2UgQWxwYWNhIG9yIFZpY3VuYSBmb3JtYXRzLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1ldGEtbGxhbWEvbGxhbWEtMy04Yi1pbnN0cnVjdCIsIm5hbWUiOiJNZXRhOiBMbGFtYSAzIDhCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzM5ODQwMCwiZGVzY3JpcHRpb24iOiJNZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgOEIgaW5zdHJ1Y3QtdHVuZWQgdmVyc2lvbiB3YXMgb3B0aW1pemVkIGZvciBoaWdoIHF1YWxpdHkgZGlhbG9ndWUgdXNlY2FzZXMuXG5cbkl0IGhhcyBkZW1vbnN0cmF0ZWQgc3Ryb25nIHBlcmZvcm1hbmNlIGNvbXBhcmVkIHRvIGxlYWRpbmcgY2xvc2VkLXNvdXJjZSBtb2RlbHMgaW4gaHVtYW4gZXZhbHVhdGlvbnMuXG5cblRvIHJlYWQgbW9yZSBhYm91dCB0aGUgbW9kZWwgcmVsZWFzZSwgW2NsaWNrIGhlcmVdKGh0dHBzOi8vYWkubWV0YS5jb20vYmxvZy9tZXRhLWxsYW1hLTMvKS4gVXNhZ2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIFtNZXRhJ3MgQWNjZXB0YWJsZSBVc2UgUG9saWN5XShodHRwczovL2xsYW1hLm1ldGEuY29tL2xsYW1hMy91c2UtcG9saWN5LykuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTMiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEzIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTMtNzBiLWluc3RydWN0IiwibmFtZSI6Ik1ldGE6IExsYW1hIDMgNzBCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzM5ODQwMCwiZGVzY3JpcHRpb24iOiJNZXRhJ3MgbGF0ZXN0IGNsYXNzIG9mIG1vZGVsIChMbGFtYSAzKSBsYXVuY2hlZCB3aXRoIGEgdmFyaWV0eSBvZiBzaXplcyAmIGZsYXZvcnMuIFRoaXMgNzBCIGluc3RydWN0LXR1bmVkIHZlcnNpb24gd2FzIG9wdGltaXplZCBmb3IgaGlnaCBxdWFsaXR5IGRpYWxvZ3VlIHVzZWNhc2VzLlxuXG5JdCBoYXMgZGVtb25zdHJhdGVkIHN0cm9uZyBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIGNsb3NlZC1zb3VyY2UgbW9kZWxzIGluIGh1bWFuIGV2YWx1YXRpb25zLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL2FpLm1ldGEuY29tL2Jsb2cvbWV0YS1sbGFtYS0zLykuIFVzYWdlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBbTWV0YSdzIEFjY2VwdGFibGUgVXNlIFBvbGljeV0oaHR0cHM6Ly9sbGFtYS5tZXRhLmNvbS9sbGFtYTMvdXNlLXBvbGljeS8pLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEzIiwiaW5zdHJ1Y3RfdHlwZSI6ImxsYW1hMyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdCIsIm5hbWUiOiJNaXN0cmFsOiBNaXh0cmFsIDh4MjJCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcxMzMxMjAwMCwiZGVzY3JpcHRpb24iOiJNaXN0cmFsJ3Mgb2ZmaWNpYWwgaW5zdHJ1Y3QgZmluZS10dW5lZCB2ZXJzaW9uIG9mIFtNaXh0cmFsIDh4MjJCXSgvbW9kZWxzL21pc3RyYWxhaS9taXh0cmFsLTh4MjJiKS4gSXQgdXNlcyAzOUIgYWN0aXZlIHBhcmFtZXRlcnMgb3V0IG9mIDE0MUIsIG9mZmVyaW5nIHVucGFyYWxsZWxlZCBjb3N0IGVmZmljaWVuY3kgZm9yIGl0cyBzaXplLiBJdHMgc3RyZW5ndGhzIGluY2x1ZGU6XG4tIHN0cm9uZyBtYXRoLCBjb2RpbmcsIGFuZCByZWFzb25pbmdcbi0gbGFyZ2UgY29udGV4dCBsZW5ndGggKDY0aylcbi0gZmx1ZW5jeSBpbiBFbmdsaXNoLCBGcmVuY2gsIEl0YWxpYW4sIEdlcm1hbiwgYW5kIFNwYW5pc2hcblxuU2VlIGJlbmNobWFya3Mgb24gdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgW2hlcmVdKGh0dHBzOi8vbWlzdHJhbC5haS9uZXdzL21peHRyYWwtOHgyMmIvKS5cbiNtb2UiLCJjb250ZXh0X2xlbmd0aCI6NjU1MzYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im1pc3RyYWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDkiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA5IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2NTUzNiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWljcm9zb2Z0L3dpemFyZGxtLTItOHgyMmIiLCJuYW1lIjoiV2l6YXJkTE0tMiA4eDIyQiIsImNyZWF0ZWQiOjE3MTMyMjU2MDAsImRlc2NyaXB0aW9uIjoiV2l6YXJkTE0tMiA4eDIyQiBpcyBNaWNyb3NvZnQgQUkncyBtb3N0IGFkdmFuY2VkIFdpemFyZCBtb2RlbC4gSXQgZGVtb25zdHJhdGVzIGhpZ2hseSBjb21wZXRpdGl2ZSBwZXJmb3JtYW5jZSBjb21wYXJlZCB0byBsZWFkaW5nIHByb3ByaWV0YXJ5IG1vZGVscywgYW5kIGl0IGNvbnNpc3RlbnRseSBvdXRwZXJmb3JtcyBhbGwgZXhpc3Rpbmcgc3RhdGUtb2YtdGhlLWFydCBvcGVuc291cmNlIG1vZGVscy5cblxuSXQgaXMgYW4gaW5zdHJ1Y3QgZmluZXR1bmUgb2YgW01peHRyYWwgOHgyMkJdKC9tb2RlbHMvbWlzdHJhbGFpL21peHRyYWwtOHgyMmIpLlxuXG5UbyByZWFkIG1vcmUgYWJvdXQgdGhlIG1vZGVsIHJlbGVhc2UsIFtjbGljayBoZXJlXShodHRwczovL3dpemFyZGxtLmdpdGh1Yi5pby9XaXphcmRMTTIvKS5cblxuI21vZSIsImNvbnRleHRfbGVuZ3RoIjo2NTUzNiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoidmljdW5hIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NjU1MzYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pY3Jvc29mdC93aXphcmRsbS0yLTdiIiwibmFtZSI6IldpemFyZExNLTIgN0IiLCJjcmVhdGVkIjoxNzEzMjI1NjAwLCJkZXNjcmlwdGlvbiI6IldpemFyZExNLTIgN0IgaXMgdGhlIHNtYWxsZXIgdmFyaWFudCBvZiBNaWNyb3NvZnQgQUkncyBsYXRlc3QgV2l6YXJkIG1vZGVsLiBJdCBpcyB0aGUgZmFzdGVzdCBhbmQgYWNoaWV2ZXMgY29tcGFyYWJsZSBwZXJmb3JtYW5jZSB3aXRoIGV4aXN0aW5nIDEweCBsYXJnZXIgb3BlbnNvdXJjZSBsZWFkaW5nIG1vZGVsc1xuXG5JdCBpcyBhIGZpbmV0dW5lIG9mIFtNaXN0cmFsIDdCIEluc3RydWN0XSgvbW9kZWxzL21pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0KSwgdXNpbmcgdGhlIHNhbWUgdGVjaG5pcXVlIGFzIFtXaXphcmRMTS0yIDh4MjJCXSgvbW9kZWxzL21pY3Jvc29mdC93aXphcmRsbS0yLTh4MjJiKS5cblxuVG8gcmVhZCBtb3JlIGFib3V0IHRoZSBtb2RlbCByZWxlYXNlLCBbY2xpY2sgaGVyZV0oaHR0cHM6Ly93aXphcmRsbS5naXRodWIuaW8vV2l6YXJkTE0yLykuXG5cbiNtb2UiLCJjb250ZXh0X2xlbmd0aCI6MzIwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InZpY3VuYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzIwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9nZW1pbmktcHJvLTEuNSIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSAxLjUgUHJvIiwiY3JlYXRlZCI6MTcxMjYyMDgwMCwiZGVzY3JpcHRpb24iOiJHb29nbGUncyBsYXRlc3QgbXVsdGltb2RhbCBtb2RlbCwgc3VwcG9ydHMgaW1hZ2UgYW5kIHZpZGVvWzBdIGluIHRleHQgb3IgY2hhdCBwcm9tcHRzLlxuXG5PcHRpbWl6ZWQgZm9yIGxhbmd1YWdlIHRhc2tzIGluY2x1ZGluZzpcblxuLSBDb2RlIGdlbmVyYXRpb25cbi0gVGV4dCBnZW5lcmF0aW9uXG4tIFRleHQgZWRpdGluZ1xuLSBQcm9ibGVtIHNvbHZpbmdcbi0gUmVjb21tZW5kYXRpb25zXG4tIEluZm9ybWF0aW9uIGV4dHJhY3Rpb25cbi0gRGF0YSBleHRyYWN0aW9uIG9yIGdlbmVyYXRpb25cbi0gQUkgYWdlbnRzXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLlxuXG4qIFswXTogVmlkZW8gaW5wdXQgaXMgbm90IGF2YWlsYWJsZSB0aHJvdWdoIE9wZW5Sb3V0ZXIgYXQgdGhpcyB0aW1lLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMTI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNjU3NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtNC10dXJibyIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IFR1cmJvIiwiY3JlYXRlZCI6MTcxMjYyMDgwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IEdQVC00IFR1cmJvIG1vZGVsIHdpdGggdmlzaW9uIGNhcGFiaWxpdGllcy4gVmlzaW9uIHJlcXVlc3RzIGNhbiBub3cgdXNlIEpTT04gbW9kZSBhbmQgZnVuY3Rpb24gY2FsbGluZy5cblxuVHJhaW5pbmcgZGF0YTogdXAgdG8gRGVjZW1iZXIgMjAyMy4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDMiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMTQ0NSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjEyODAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLXBsdXMiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIrIiwiY3JlYXRlZCI6MTcxMjE4ODgwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFIrIGlzIGEgbmV3LCAxMDRCLXBhcmFtZXRlciBMTE0gZnJvbSBDb2hlcmUuIEl0J3MgdXNlZnVsIGZvciByb2xlcGxheSwgZ2VuZXJhbCBjb25zdW1lciB1c2VjYXNlcywgYW5kIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKS5cblxuSXQgb2ZmZXJzIG11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciB0ZW4ga2V5IGxhbmd1YWdlcyB0byBmYWNpbGl0YXRlIGdsb2JhbCBidXNpbmVzcyBvcGVyYXRpb25zLiBTZWUgYmVuY2htYXJrcyBhbmQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci1wbHVzLW1pY3Jvc29mdC1henVyZS8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLXBsdXMtMDQtMjAyNCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQgUisgKDA0LTIwMjQpIiwiY3JlYXRlZCI6MTcxMjAxNjAwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kIFIrIGlzIGEgbmV3LCAxMDRCLXBhcmFtZXRlciBMTE0gZnJvbSBDb2hlcmUuIEl0J3MgdXNlZnVsIGZvciByb2xlcGxheSwgZ2VuZXJhbCBjb25zdW1lciB1c2VjYXNlcywgYW5kIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKS5cblxuSXQgb2ZmZXJzIG11bHRpbGluZ3VhbCBzdXBwb3J0IGZvciB0ZW4ga2V5IGxhbmd1YWdlcyB0byBmYWNpbGl0YXRlIGdsb2JhbCBidXNpbmVzcyBvcGVyYXRpb25zLiBTZWUgYmVuY2htYXJrcyBhbmQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci1wbHVzLW1pY3Jvc29mdC1henVyZS8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJzb3Bob3N5bXBhdGhlaWEvbWlkbmlnaHQtcm9zZS03MGIiLCJuYW1lIjoiTWlkbmlnaHQgUm9zZSA3MEIiLCJjcmVhdGVkIjoxNzExMDY1NjAwLCJkZXNjcmlwdGlvbiI6IkEgbWVyZ2Ugd2l0aCBhIGNvbXBsZXggZmFtaWx5IHRyZWUsIHRoaXMgbW9kZWwgd2FzIGNyYWZ0ZWQgZm9yIHJvbGVwbGF5aW5nIGFuZCBzdG9yeXRlbGxpbmcuIE1pZG5pZ2h0IFJvc2UgaXMgYSBzdWNjZXNzb3IgdG8gUm9ndWUgUm9zZSBhbmQgQXVyb3JhIE5pZ2h0cyBhbmQgaW1wcm92ZXMgdXBvbiB0aGVtIGJvdGguIEl0IHdhbnRzIHRvIHByb2R1Y2UgbGVuZ3RoeSBvdXRwdXQgYnkgZGVmYXVsdCBhbmQgaXMgdGhlIGJlc3QgY3JlYXRpdmUgd3JpdGluZyBtZXJnZSBwcm9kdWNlZCBzbyBmYXIgYnkgc29waG9zeW1wYXRoZWlhLlxuXG5EZXNjZW5kaW5nIGZyb20gZWFybGllciB2ZXJzaW9ucyBvZiBNaWRuaWdodCBSb3NlIGFuZCBbV2l6YXJkIFR1bHUgRG9scGhpbiA3MEJdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vc29waG9zeW1wYXRoZWlhL1dpemFyZC1UdWx1LURvbHBoaW4tNzBCLXYxLjApLCBpdCBpbmhlcml0cyB0aGUgYmVzdCBxdWFsaXRpZXMgb2YgZWFjaC4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhaXJvYm9yb3MifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA4IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZCIsIm5hbWUiOiJDb2hlcmU6IENvbW1hbmQiLCJjcmVhdGVkIjoxNzEwMzc0NDAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQgaXMgYW4gaW5zdHJ1Y3Rpb24tZm9sbG93aW5nIGNvbnZlcnNhdGlvbmFsIG1vZGVsIHRoYXQgcGVyZm9ybXMgbGFuZ3VhZ2UgdGFza3Mgd2l0aCBoaWdoIHF1YWxpdHksIG1vcmUgcmVsaWFibHkgYW5kIHdpdGggYSBsb25nZXIgY29udGV4dCB0aGFuIG91ciBiYXNlIGdlbmVyYXRpdmUgbW9kZWxzLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImNvaGVyZS9jb21tYW5kLXIiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIiLCJjcmVhdGVkIjoxNzEwMzc0NDAwLCJkZXNjcmlwdGlvbiI6IkNvbW1hbmQtUiBpcyBhIDM1QiBwYXJhbWV0ZXIgbW9kZWwgdGhhdCBwZXJmb3JtcyBjb252ZXJzYXRpb25hbCBsYW5ndWFnZSB0YXNrcyBhdCBhIGhpZ2hlciBxdWFsaXR5LCBtb3JlIHJlbGlhYmx5LCBhbmQgd2l0aCBhIGxvbmdlciBjb250ZXh0IHRoYW4gcHJldmlvdXMgbW9kZWxzLiBJdCBjYW4gYmUgdXNlZCBmb3IgY29tcGxleCB3b3JrZmxvd3MgbGlrZSBjb2RlIGdlbmVyYXRpb24sIHJldHJpZXZhbCBhdWdtZW50ZWQgZ2VuZXJhdGlvbiAoUkFHKSwgdG9vbCB1c2UsIGFuZCBhZ2VudHMuXG5cblJlYWQgdGhlIGxhdW5jaCBwb3N0IFtoZXJlXShodHRwczovL3R4dC5jb2hlcmUuY29tL2NvbW1hbmQtci8pLlxuXG5Vc2Ugb2YgdGhpcyBtb2RlbCBpcyBzdWJqZWN0IHRvIENvaGVyZSdzIFtVc2FnZSBQb2xpY3ldKGh0dHBzOi8vZG9jcy5jb2hlcmUuY29tL2RvY3MvdXNhZ2UtcG9saWN5KSBhbmQgW1NhYVMgQWdyZWVtZW50XShodHRwczovL2NvaGVyZS5jb20vc2Fhcy1hZ3JlZW1lbnQpLiIsImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDb2hlcmUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy1oYWlrdTpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MTAyODgwMDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgSGFpa3UgaXMgQW50aHJvcGljJ3MgZmFzdGVzdCBhbmQgbW9zdCBjb21wYWN0IG1vZGVsIGZvclxubmVhci1pbnN0YW50IHJlc3BvbnNpdmVuZXNzLiBRdWljayBhbmQgYWNjdXJhdGUgdGFyZ2V0ZWQgcGVyZm9ybWFuY2UuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy1oYWlrdSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDA0Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMDMiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDAwMyJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLWhhaWt1IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgSGFpa3UiLCJjcmVhdGVkIjoxNzEwMjg4MDAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIEhhaWt1IGlzIEFudGhyb3BpYydzIGZhc3Rlc3QgYW5kIG1vc3QgY29tcGFjdCBtb2RlbCBmb3Jcbm5lYXItaW5zdGFudCByZXNwb25zaXZlbmVzcy4gUXVpY2sgYW5kIGFjY3VyYXRlIHRhcmdldGVkIHBlcmZvcm1hbmNlLlxuXG5TZWUgdGhlIGxhdW5jaCBhbm5vdW5jZW1lbnQgYW5kIGJlbmNobWFyayByZXN1bHRzIFtoZXJlXShodHRwczovL3d3dy5hbnRocm9waWMuY29tL25ld3MvY2xhdWRlLTMtaGFpa3UpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAwNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMDMifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLW9wdXM6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSAzIE9wdXMgKHNlbGYtbW9kZXJhdGVkKSIsImNyZWF0ZWQiOjE3MDk1OTY4MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgT3B1cyBpcyBBbnRocm9waWMncyBtb3N0IHBvd2VyZnVsIG1vZGVsIGZvciBoaWdobHkgY29tcGxleCB0YXNrcy4gSXQgYm9hc3RzIHRvcC1sZXZlbCBwZXJmb3JtYW5jZSwgaW50ZWxsaWdlbmNlLCBmbHVlbmN5LCBhbmQgdW5kZXJzdGFuZGluZy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTUiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDE4NzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMy1vcHVzIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgT3B1cyIsImNyZWF0ZWQiOjE3MDk1OTY4MDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDMgT3B1cyBpcyBBbnRocm9waWMncyBtb3N0IHBvd2VyZnVsIG1vZGVsIGZvciBoaWdobHkgY29tcGxleCB0YXNrcy4gSXQgYm9hc3RzIHRvcC1sZXZlbCBwZXJmb3JtYW5jZSwgaW50ZWxsaWdlbmNlLCBmbHVlbmN5LCBhbmQgdW5kZXJzdGFuZGluZy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAxNSIsImNvbXBsZXRpb24iOiIwLjAwMDA3NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAyNCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCIsImlucHV0X2NhY2hlX3JlYWQiOiIwLjAwMDAwMTUiLCJpbnB1dF9jYWNoZV93cml0ZSI6IjAuMDAwMDE4NzUifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0zLXNvbm5ldDpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgU29ubmV0IChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzA5NTk2ODAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAzIFNvbm5ldCBpcyBhbiBpZGVhbCBiYWxhbmNlIG9mIGludGVsbGlnZW5jZSBhbmQgc3BlZWQgZm9yIGVudGVycHJpc2Ugd29ya2xvYWRzLiBNYXhpbXVtIHV0aWxpdHkgYXQgYSBsb3dlciBwcmljZSwgZGVwZW5kYWJsZSwgYmFsYW5jZWQgZm9yIHNjYWxlZCBkZXBsb3ltZW50cy5cblxuU2VlIHRoZSBsYXVuY2ggYW5ub3VuY2VtZW50IGFuZCBiZW5jaG1hcmsgcmVzdWx0cyBbaGVyZV0oaHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS0zLWZhbWlseSlcblxuI211bHRpbW9kYWwiLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwLjAwNDgiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAiLCJpbnB1dF9jYWNoZV9yZWFkIjoiMC4wMDAwMDAzIiwiaW5wdXRfY2FjaGVfd3JpdGUiOiIwLjAwMDAwMzc1In0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTMtc29ubmV0IiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIDMgU29ubmV0IiwiY3JlYXRlZCI6MTcwOTU5NjgwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMyBTb25uZXQgaXMgYW4gaWRlYWwgYmFsYW5jZSBvZiBpbnRlbGxpZ2VuY2UgYW5kIHNwZWVkIGZvciBlbnRlcnByaXNlIHdvcmtsb2Fkcy4gTWF4aW11bSB1dGlsaXR5IGF0IGEgbG93ZXIgcHJpY2UsIGRlcGVuZGFibGUsIGJhbGFuY2VkIGZvciBzY2FsZWQgZGVwbG95bWVudHMuXG5cblNlZSB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBhbmQgYmVuY2htYXJrIHJlc3VsdHMgW2hlcmVdKGh0dHBzOi8vd3d3LmFudGhyb3BpYy5jb20vbmV3cy9jbGF1ZGUtMy1mYW1pbHkpXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dCtpbWFnZS0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCIsImltYWdlIl0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDQ4Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIiwiaW5wdXRfY2FjaGVfcmVhZCI6IjAuMDAwMDAwMyIsImlucHV0X2NhY2hlX3dyaXRlIjoiMC4wMDAwMDM3NSJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2hlcmUvY29tbWFuZC1yLTAzLTIwMjQiLCJuYW1lIjoiQ29oZXJlOiBDb21tYW5kIFIgKDAzLTIwMjQpIiwiY3JlYXRlZCI6MTcwOTM0MTIwMCwiZGVzY3JpcHRpb24iOiJDb21tYW5kLVIgaXMgYSAzNUIgcGFyYW1ldGVyIG1vZGVsIHRoYXQgcGVyZm9ybXMgY29udmVyc2F0aW9uYWwgbGFuZ3VhZ2UgdGFza3MgYXQgYSBoaWdoZXIgcXVhbGl0eSwgbW9yZSByZWxpYWJseSwgYW5kIHdpdGggYSBsb25nZXIgY29udGV4dCB0aGFuIHByZXZpb3VzIG1vZGVscy4gSXQgY2FuIGJlIHVzZWQgZm9yIGNvbXBsZXggd29ya2Zsb3dzIGxpa2UgY29kZSBnZW5lcmF0aW9uLCByZXRyaWV2YWwgYXVnbWVudGVkIGdlbmVyYXRpb24gKFJBRyksIHRvb2wgdXNlLCBhbmQgYWdlbnRzLlxuXG5SZWFkIHRoZSBsYXVuY2ggcG9zdCBbaGVyZV0oaHR0cHM6Ly90eHQuY29oZXJlLmNvbS9jb21tYW5kLXIvKS5cblxuVXNlIG9mIHRoaXMgbW9kZWwgaXMgc3ViamVjdCB0byBDb2hlcmUncyBbVXNhZ2UgUG9saWN5XShodHRwczovL2RvY3MuY29oZXJlLmNvbS9kb2NzL3VzYWdlLXBvbGljeSkgYW5kIFtTYWFTIEFncmVlbWVudF0oaHR0cHM6Ly9jb2hlcmUuY29tL3NhYXMtYWdyZWVtZW50KS4iLCJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ29oZXJlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwMDAsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtaXN0cmFsYWkvbWlzdHJhbC1sYXJnZSIsIm5hbWUiOiJNaXN0cmFsIExhcmdlIiwiY3JlYXRlZCI6MTcwODkwNTYwMCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBmbGFnc2hpcCBtb2RlbCwgTWlzdHJhbCBMYXJnZSAyICh2ZXJzaW9uIGBtaXN0cmFsLWxhcmdlLTI0MDdgKS4gSXQncyBhIHByb3ByaWV0YXJ5IHdlaWdodHMtYXZhaWxhYmxlIG1vZGVsIGFuZCBleGNlbHMgYXQgcmVhc29uaW5nLCBjb2RlLCBKU09OLCBjaGF0LCBhbmQgbW9yZS4gUmVhZCB0aGUgbGF1bmNoIGFubm91bmNlbWVudCBbaGVyZV0oaHR0cHM6Ly9taXN0cmFsLmFpL25ld3MvbWlzdHJhbC1sYXJnZS0yNDA3LykuXG5cbkl0IHN1cHBvcnRzIGRvemVucyBvZiBsYW5ndWFnZXMgaW5jbHVkaW5nIEZyZW5jaCwgR2VybWFuLCBTcGFuaXNoLCBJdGFsaWFuLCBQb3J0dWd1ZXNlLCBBcmFiaWMsIEhpbmRpLCBSdXNzaWFuLCBDaGluZXNlLCBKYXBhbmVzZSwgYW5kIEtvcmVhbiwgYWxvbmcgd2l0aCA4MCsgY29kaW5nIGxhbmd1YWdlcyBpbmNsdWRpbmcgUHl0aG9uLCBKYXZhLCBDLCBDKyssIEphdmFTY3JpcHQsIGFuZCBCYXNoLiBJdHMgbG9uZyBjb250ZXh0IHdpbmRvdyBhbGxvd3MgcHJlY2lzZSBpbmZvcm1hdGlvbiByZWNhbGwgZnJvbSBsYXJnZSBkb2N1bWVudHMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0wNjEzIiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyAob2xkZXIgdjA2MTMpIiwiY3JlYXRlZCI6MTcwNjE0MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtMy41IFR1cmJvIGlzIE9wZW5BSSdzIGZhc3Rlc3QgbW9kZWwuIEl0IGNhbiB1bmRlcnN0YW5kIGFuZCBnZW5lcmF0ZSBuYXR1cmFsIGxhbmd1YWdlIG9yIGNvZGUsIGFuZCBpcyBvcHRpbWl6ZWQgZm9yIGNoYXQgYW5kIHRyYWRpdGlvbmFsIGNvbXBsZXRpb24gdGFza3MuXG5cblRyYWluaW5nIGRhdGEgdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjQwOTUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LXR1cmJvLXByZXZpZXciLCJuYW1lIjoiT3BlbkFJOiBHUFQtNCBUdXJibyBQcmV2aWV3IiwiY3JlYXRlZCI6MTcwNjE0MDgwMCwiZGVzY3JpcHRpb24iOiJUaGUgcHJldmlldyBHUFQtNCBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIERlYyAyMDIzLlxuXG4qKk5vdGU6KiogaGVhdmlseSByYXRlIGxpbWl0ZWQgYnkgT3BlbkFJIHdoaWxlIGluIHByZXZpZXcuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im5vdXNyZXNlYXJjaC9ub3VzLWhlcm1lcy0yLW1peHRyYWwtOHg3Yi1kcG8iLCJuYW1lIjoiTm91czogSGVybWVzIDIgTWl4dHJhbCA4eDdCIERQTyIsImNyZWF0ZWQiOjE3MDUzNjMyMDAsImRlc2NyaXB0aW9uIjoiTm91cyBIZXJtZXMgMiBNaXh0cmFsIDh4N0IgRFBPIGlzIHRoZSBuZXcgZmxhZ3NoaXAgTm91cyBSZXNlYXJjaCBtb2RlbCB0cmFpbmVkIG92ZXIgdGhlIFtNaXh0cmFsIDh4N0IgTW9FIExMTV0oL21vZGVscy9taXN0cmFsYWkvbWl4dHJhbC04eDdiKS5cblxuVGhlIG1vZGVsIHdhcyB0cmFpbmVkIG9uIG92ZXIgMSwwMDAsMDAwIGVudHJpZXMgb2YgcHJpbWFyaWx5IFtHUFQtNF0oL21vZGVscy9vcGVuYWkvZ3B0LTQpIGdlbmVyYXRlZCBkYXRhLCBhcyB3ZWxsIGFzIG90aGVyIGhpZ2ggcXVhbGl0eSBkYXRhIGZyb20gb3BlbiBkYXRhc2V0cyBhY3Jvc3MgdGhlIEFJIGxhbmRzY2FwZSwgYWNoaWV2aW5nIHN0YXRlIG9mIHRoZSBhcnQgcGVyZm9ybWFuY2Ugb24gYSB2YXJpZXR5IG9mIHRhc2tzLlxuXG4jbW9lIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDYiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWlzdHJhbGFpL21pc3RyYWwtbWVkaXVtIiwibmFtZSI6Ik1pc3RyYWwgTWVkaXVtIiwiY3JlYXRlZCI6MTcwNDg0NDgwMCwiZGVzY3JpcHRpb24iOiJUaGlzIGlzIE1pc3RyYWwgQUkncyBjbG9zZWQtc291cmNlLCBtZWRpdW0tc2lkZWQgbW9kZWwuIEl0J3MgcG93ZXJlZCBieSBhIGNsb3NlZC1zb3VyY2UgcHJvdG90eXBlIGFuZCBleGNlbHMgYXQgcmVhc29uaW5nLCBjb2RlLCBKU09OLCBjaGF0LCBhbmQgbW9yZS4gSW4gYmVuY2htYXJrcywgaXQgY29tcGFyZXMgd2l0aCBtYW55IG9mIHRoZSBmbGFnc2hpcCBtb2RlbHMgb2Ygb3RoZXIgY29tcGFuaWVzLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMjc1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA4MSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXNtYWxsIiwibmFtZSI6Ik1pc3RyYWwgU21hbGwiLCJjcmVhdGVkIjoxNzA0ODQ0ODAwLCJkZXNjcmlwdGlvbiI6IldpdGggMjIgYmlsbGlvbiBwYXJhbWV0ZXJzLCBNaXN0cmFsIFNtYWxsIHYyNC4wOSBvZmZlcnMgYSBjb252ZW5pZW50IG1pZC1wb2ludCBiZXR3ZWVuIChNaXN0cmFsIE5lTW8gMTJCKVsvbWlzdHJhbGFpL21pc3RyYWwtbmVtb10gYW5kIChNaXN0cmFsIExhcmdlIDIpWy9taXN0cmFsYWkvbWlzdHJhbC1sYXJnZV0sIHByb3ZpZGluZyBhIGNvc3QtZWZmZWN0aXZlIHNvbHV0aW9uIHRoYXQgY2FuIGJlIGRlcGxveWVkIGFjcm9zcyB2YXJpb3VzIHBsYXRmb3JtcyBhbmQgZW52aXJvbm1lbnRzLiBJdCBoYXMgYmV0dGVyIHJlYXNvbmluZywgZXhoaWJpdHMgbW9yZSBjYXBhYmlsaXRpZXMsIGNhbiBwcm9kdWNlIGFuZCByZWFzb24gYWJvdXQgY29kZSwgYW5kIGlzIG11bHRpbGlndWFsLCBzdXBwb3J0aW5nIEVuZ2xpc2gsIEZyZW5jaCwgR2VybWFuLCBJdGFsaWFuLCBhbmQgU3BhbmlzaC4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyIiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLXRpbnkiLCJuYW1lIjoiTWlzdHJhbCBUaW55IiwiY3JlYXRlZCI6MTcwNDg0NDgwMCwiZGVzY3JpcHRpb24iOiJOb3RlOiBUaGlzIG1vZGVsIGlzIGJlaW5nIGRlcHJlY2F0ZWQuIFJlY29tbWVuZGVkIHJlcGxhY2VtZW50IGlzIHRoZSBuZXdlciBbTWluaXN0cmFsIDhCXSgvbWlzdHJhbC9taW5pc3RyYWwtOGIpXG5cblRoaXMgbW9kZWwgaXMgY3VycmVudGx5IHBvd2VyZWQgYnkgTWlzdHJhbC03Qi12MC4yLCBhbmQgaW5jb3Jwb3JhdGVzIGEgXCJiZXR0ZXJcIiBmaW5lLXR1bmluZyB0aGFuIFtNaXN0cmFsIDdCXSgvbW9kZWxzL21pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjEpLCBpbnNwaXJlZCBieSBjb21tdW5pdHkgd29yay4gSXQncyBiZXN0IHVzZWQgZm9yIGxhcmdlIGJhdGNoIHByb2Nlc3NpbmcgdGFza3Mgd2hlcmUgY29zdCBpcyBhIHNpZ25pZmljYW50IGZhY3RvciBidXQgcmVhc29uaW5nIGNhcGFiaWxpdGllcyBhcmUgbm90IGNydWNpYWwuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjIiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCB2MC4yIiwiY3JlYXRlZCI6MTcwMzcyMTYwMCwiZGVzY3JpcHRpb24iOiJBIGhpZ2gtcGVyZm9ybWluZywgaW5kdXN0cnktc3RhbmRhcmQgNy4zQiBwYXJhbWV0ZXIgbW9kZWwsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLlxuXG5BbiBpbXByb3ZlZCB2ZXJzaW9uIG9mIFtNaXN0cmFsIDdCIEluc3RydWN0XSgvbW9kZWxzbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMSksIHdpdGggdGhlIGZvbGxvd2luZyBjaGFuZ2VzOlxuXG4tIDMyayBjb250ZXh0IHdpbmRvdyAodnMgOGsgY29udGV4dCBpbiB2MC4xKVxuLSBSb3BlLXRoZXRhID0gMWU2XG4tIE5vIFNsaWRpbmctV2luZG93IEF0dGVudGlvbiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJjb2duaXRpdmVjb21wdXRhdGlvbnMvZG9scGhpbi1taXh0cmFsLTh4N2IiLCJuYW1lIjoiRG9scGhpbiAyLjYgTWl4dHJhbCA4eDdCIPCfkKwiLCJjcmVhdGVkIjoxNzAzMTE2ODAwLCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgYSAxNmsgY29udGV4dCBmaW5lLXR1bmUgb2YgW01peHRyYWwtOHg3Yl0oL21vZGVscy9taXN0cmFsYWkvbWl4dHJhbC04eDdiKS4gSXQgZXhjZWxzIGluIGNvZGluZyB0YXNrcyBkdWUgdG8gZXh0ZW5zaXZlIHRyYWluaW5nIHdpdGggY29kaW5nIGRhdGEgYW5kIGlzIGtub3duIGZvciBpdHMgb2JlZGllbmNlLCBhbHRob3VnaCBpdCBsYWNrcyBEUE8gdHVuaW5nLlxuXG5UaGUgbW9kZWwgaXMgdW5jZW5zb3JlZCBhbmQgaXMgc3RyaXBwZWQgb2YgYWxpZ25tZW50IGFuZCBiaWFzLiBJdCByZXF1aXJlcyBhbiBleHRlcm5hbCBhbGlnbm1lbnQgbGF5ZXIgZm9yIGV0aGljYWwgdXNlLiBVc2VycyBhcmUgY2F1dGlvbmVkIHRvIHVzZSB0aGlzIGhpZ2hseSBjb21wbGlhbnQgbW9kZWwgcmVzcG9uc2libHksIGFzIGRldGFpbGVkIGluIGEgYmxvZyBwb3N0IGFib3V0IHVuY2Vuc29yZWQgbW9kZWxzIGF0IFtlcmljaGFydGZvcmQuY29tL3VuY2Vuc29yZWQtbW9kZWxzXShodHRwczovL2VyaWNoYXJ0Zm9yZC5jb20vdW5jZW5zb3JlZC1tb2RlbHMpLlxuXG4jbW9lICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJjaGF0bWwifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDA1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2OCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiZ29vZ2xlL2dlbWluaS1wcm8tdmlzaW9uIiwibmFtZSI6Ikdvb2dsZTogR2VtaW5pIFBybyBWaXNpb24gMS4wIiwiY3JlYXRlZCI6MTcwMjQyNTYwMCwiZGVzY3JpcHRpb24iOiJHb29nbGUncyBmbGFnc2hpcCBtdWx0aW1vZGFsIG1vZGVsLCBzdXBwb3J0aW5nIGltYWdlIGFuZCB2aWRlbyBpbiB0ZXh0IG9yIGNoYXQgcHJvbXB0cyBmb3IgYSB0ZXh0IG9yIGNvZGUgcmVzcG9uc2UuXG5cblNlZSB0aGUgYmVuY2htYXJrcyBhbmQgcHJvbXB0aW5nIGd1aWRlbGluZXMgZnJvbSBbRGVlcG1pbmRdKGh0dHBzOi8vZGVlcG1pbmQuZ29vZ2xlL3RlY2hub2xvZ2llcy9nZW1pbmkvKS5cblxuVXNhZ2Ugb2YgR2VtaW5pIGlzIHN1YmplY3QgdG8gR29vZ2xlJ3MgW0dlbWluaSBUZXJtcyBvZiBVc2VdKGh0dHBzOi8vYWkuZ29vZ2xlLmRldi90ZXJtcykuXG5cbiNtdWx0aW1vZGFsIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0K2ltYWdlLT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0IiwiaW1hZ2UiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHZW1pbmkiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDE1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAuMDAyNSIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjE2Mzg0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvZ2VtaW5pLXBybyIsIm5hbWUiOiJHb29nbGU6IEdlbWluaSBQcm8gMS4wIiwiY3JlYXRlZCI6MTcwMjQyNTYwMCwiZGVzY3JpcHRpb24iOiJHb29nbGUncyBmbGFnc2hpcCB0ZXh0IGdlbmVyYXRpb24gbW9kZWwuIERlc2lnbmVkIHRvIGhhbmRsZSBuYXR1cmFsIGxhbmd1YWdlIHRhc2tzLCBtdWx0aXR1cm4gdGV4dCBhbmQgY29kZSBjaGF0LCBhbmQgY29kZSBnZW5lcmF0aW9uLlxuXG5TZWUgdGhlIGJlbmNobWFya3MgYW5kIHByb21wdGluZyBndWlkZWxpbmVzIGZyb20gW0RlZXBtaW5kXShodHRwczovL2RlZXBtaW5kLmdvb2dsZS90ZWNobm9sb2dpZXMvZ2VtaW5pLykuXG5cblVzYWdlIG9mIEdlbWluaSBpcyBzdWJqZWN0IHRvIEdvb2dsZSdzIFtHZW1pbmkgVGVybXMgb2YgVXNlXShodHRwczovL2FpLmdvb2dsZS5kZXYvdGVybXMpLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2MCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdlbWluaSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMC4wMDI1Iiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXh0cmFsLTh4N2IiLCJuYW1lIjoiTWlzdHJhbDogTWl4dHJhbCA4eDdCIChiYXNlKSIsImNyZWF0ZWQiOjE3MDIxNjY0MDAsImRlc2NyaXB0aW9uIjoiTWl4dHJhbCA4eDdCIGlzIGEgcHJldHJhaW5lZCBnZW5lcmF0aXZlIFNwYXJzZSBNaXh0dXJlIG9mIEV4cGVydHMsIGJ5IE1pc3RyYWwgQUkuIEluY29ycG9yYXRlcyA4IGV4cGVydHMgKGZlZWQtZm9yd2FyZCBuZXR3b3JrcykgZm9yIGEgdG90YWwgb2YgNDdCIHBhcmFtZXRlcnMuIEJhc2UgbW9kZWwgKG5vdCBmaW5lLXR1bmVkIGZvciBpbnN0cnVjdGlvbnMpIC0gc2VlIFtNaXh0cmFsIDh4N0IgSW5zdHJ1Y3RdKC9tb2RlbHMvbWlzdHJhbGFpL21peHRyYWwtOHg3Yi1pbnN0cnVjdCkgZm9yIGFuIGluc3RydWN0LXR1bmVkIG1vZGVsLlxuXG4jbW9lIiwiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTWlzdHJhbCIsImluc3RydWN0X3R5cGUiOiJub25lIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA2IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXh0cmFsLTh4N2ItaW5zdHJ1Y3QiLCJuYW1lIjoiTWlzdHJhbDogTWl4dHJhbCA4eDdCIEluc3RydWN0IiwiY3JlYXRlZCI6MTcwMjE2NjQwMCwiZGVzY3JpcHRpb24iOiJNaXh0cmFsIDh4N0IgSW5zdHJ1Y3QgaXMgYSBwcmV0cmFpbmVkIGdlbmVyYXRpdmUgU3BhcnNlIE1peHR1cmUgb2YgRXhwZXJ0cywgYnkgTWlzdHJhbCBBSSwgZm9yIGNoYXQgYW5kIGluc3RydWN0aW9uIHVzZS4gSW5jb3Jwb3JhdGVzIDggZXhwZXJ0cyAoZmVlZC1mb3J3YXJkIG5ldHdvcmtzKSBmb3IgYSB0b3RhbCBvZiA0NyBiaWxsaW9uIHBhcmFtZXRlcnMuXG5cbkluc3RydWN0IG1vZGVsIGZpbmUtdHVuZWQgYnkgTWlzdHJhbC4gI21vZSIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMjQiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAyNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5jaGF0L29wZW5jaGF0LTdiIiwibmFtZSI6Ik9wZW5DaGF0IDMuNSA3QiIsImNyZWF0ZWQiOjE3MDExMjk2MDAsImRlc2NyaXB0aW9uIjoiT3BlbkNoYXQgN0IgaXMgYSBsaWJyYXJ5IG9mIG9wZW4tc291cmNlIGxhbmd1YWdlIG1vZGVscywgZmluZS10dW5lZCB3aXRoIFwiQy1STEZUIChDb25kaXRpb25lZCBSZWluZm9yY2VtZW50IExlYXJuaW5nIEZpbmUtVHVuaW5nKVwiIC0gYSBzdHJhdGVneSBpbnNwaXJlZCBieSBvZmZsaW5lIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcuIEl0IGhhcyBiZWVuIHRyYWluZWQgb24gbWl4ZWQtcXVhbGl0eSBkYXRhIHdpdGhvdXQgcHJlZmVyZW5jZSBsYWJlbHMuXG5cbi0gRm9yIE9wZW5DaGF0IGZpbmUtdHVuZWQgb24gTWlzdHJhbCA3QiwgY2hlY2sgb3V0IFtPcGVuQ2hhdCA3Ql0oL21vZGVscy9vcGVuY2hhdC9vcGVuY2hhdC03YikuXG4tIEZvciBPcGVuQ2hhdCBmaW5lLXR1bmVkIG9uIExsYW1hIDhCLCBjaGVjayBvdXQgW09wZW5DaGF0IDhCXSgvbW9kZWxzL29wZW5jaGF0L29wZW5jaGF0LThiKS5cblxuI29wZW4tc291cmNlIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6Im9wZW5jaGF0In0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAwNyIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA3IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJuZXZlcnNsZWVwL25vcm9tYWlkLTIwYiIsIm5hbWUiOiJOb3JvbWFpZCAyMEIiLCJjcmVhdGVkIjoxNzAwOTU2ODAwLCJkZXNjcmlwdGlvbiI6IkEgY29sbGFiIGJldHdlZW4gSWthcmlEZXYgYW5kIFVuZGkuIFRoaXMgbWVyZ2UgaXMgc3VpdGFibGUgZm9yIFJQLCBFUlAsIGFuZCBnZW5lcmFsIGtub3dsZWRnZS5cblxuI21lcmdlICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMTUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MjA0OCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMi4xOmJldGEiLCJuYW1lIjoiQW50aHJvcGljOiBDbGF1ZGUgdjIuMSAoc2VsZi1tb2RlcmF0ZWQpIiwiY3JlYXRlZCI6MTcwMDYxMTIwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMiBkZWxpdmVycyBhZHZhbmNlbWVudHMgaW4ga2V5IGNhcGFiaWxpdGllcyBmb3IgZW50ZXJwcmlzZXPigJRpbmNsdWRpbmcgYW4gaW5kdXN0cnktbGVhZGluZyAyMDBLIHRva2VuIGNvbnRleHQgd2luZG93LCBzaWduaWZpY2FudCByZWR1Y3Rpb25zIGluIHJhdGVzIG9mIG1vZGVsIGhhbGx1Y2luYXRpb24sIHN5c3RlbSBwcm9tcHRzIGFuZCBhIG5ldyBiZXRhIGZlYXR1cmU6IHRvb2wgdXNlLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAyNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJhbnRocm9waWMvY2xhdWRlLTIuMSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2Mi4xIiwiY3JlYXRlZCI6MTcwMDYxMTIwMCwiZGVzY3JpcHRpb24iOiJDbGF1ZGUgMiBkZWxpdmVycyBhZHZhbmNlbWVudHMgaW4ga2V5IGNhcGFiaWxpdGllcyBmb3IgZW50ZXJwcmlzZXPigJRpbmNsdWRpbmcgYW4gaW5kdXN0cnktbGVhZGluZyAyMDBLIHRva2VuIGNvbnRleHQgd2luZG93LCBzaWduaWZpY2FudCByZWR1Y3Rpb25zIGluIHJhdGVzIG9mIG1vZGVsIGhhbGx1Y2luYXRpb24sIHN5c3RlbSBwcm9tcHRzIGFuZCBhIG5ldyBiZXRhIGZlYXR1cmU6IHRvb2wgdXNlLiIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJDbGF1ZGUiLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwOCIsImNvbXBsZXRpb24iOiIwLjAwMDAyNCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMjpiZXRhIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIHYyIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNzAwNjExMjAwLCJkZXNjcmlwdGlvbiI6IkNsYXVkZSAyIGRlbGl2ZXJzIGFkdmFuY2VtZW50cyBpbiBrZXkgY2FwYWJpbGl0aWVzIGZvciBlbnRlcnByaXNlc+KAlGluY2x1ZGluZyBhbiBpbmR1c3RyeS1sZWFkaW5nIDIwMEsgdG9rZW4gY29udGV4dCB3aW5kb3csIHNpZ25pZmljYW50IHJlZHVjdGlvbnMgaW4gcmF0ZXMgb2YgbW9kZWwgaGFsbHVjaW5hdGlvbiwgc3lzdGVtIHByb21wdHMgYW5kIGEgbmV3IGJldGEgZmVhdHVyZTogdG9vbCB1c2UuIiwiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMiIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2MiIsImNyZWF0ZWQiOjE3MDA2MTEyMDAsImRlc2NyaXB0aW9uIjoiQ2xhdWRlIDIgZGVsaXZlcnMgYWR2YW5jZW1lbnRzIGluIGtleSBjYXBhYmlsaXRpZXMgZm9yIGVudGVycHJpc2Vz4oCUaW5jbHVkaW5nIGFuIGluZHVzdHJ5LWxlYWRpbmcgMjAwSyB0b2tlbiBjb250ZXh0IHdpbmRvdywgc2lnbmlmaWNhbnQgcmVkdWN0aW9ucyBpbiByYXRlcyBvZiBtb2RlbCBoYWxsdWNpbmF0aW9uLCBzeXN0ZW0gcHJvbXB0cyBhbmQgYSBuZXcgYmV0YSBmZWF0dXJlOiB0b29sIHVzZS4iLCJjb250ZXh0X2xlbmd0aCI6MjAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiQ2xhdWRlIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDgiLCJjb21wbGV0aW9uIjoiMC4wMDAwMjQiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjIwMDAwMCwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJ1bmRpOTUvdG9wcHktbS03YiIsIm5hbWUiOiJUb3BweSBNIDdCIiwiY3JlYXRlZCI6MTY5OTU3NDQwMCwiZGVzY3JpcHRpb24iOiJBIHdpbGQgN0IgcGFyYW1ldGVyIG1vZGVsIHRoYXQgbWVyZ2VzIHNldmVyYWwgbW9kZWxzIHVzaW5nIHRoZSBuZXcgdGFza19hcml0aG1ldGljIG1lcmdlIG1ldGhvZCBmcm9tIG1lcmdla2l0LlxuTGlzdCBvZiBtZXJnZWQgbW9kZWxzOlxuLSBOb3VzUmVzZWFyY2gvTm91cy1DYXB5YmFyYS03Qi1WMS45XG4tIFtIdWdnaW5nRmFjZUg0L3plcGh5ci03Yi1iZXRhXSgvbW9kZWxzL2h1Z2dpbmdmYWNlaDQvemVwaHlyLTdiLWJldGEpXG4tIGxlbW9uaWxpYS9Bc2hoTGltYVJQLU1pc3RyYWwtN0Jcbi0gVnVsa2FuZS8xMjAtRGF5cy1vZi1Tb2RvbS1Mb1JBLU1pc3RyYWwtN2Jcbi0gVW5kaTk1L01pc3RyYWwtcGlwcGEtc2hhcmVncHQtN2ItcWxvcmFcblxuI21lcmdlICN1bmNlbnNvcmVkIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6ImFscGFjYSJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMDciLCJjb21wbGV0aW9uIjoiMC4wMDAwMDAwNyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYWxwaW5kYWxlL2dvbGlhdGgtMTIwYiIsIm5hbWUiOiJHb2xpYXRoIDEyMEIiLCJjcmVhdGVkIjoxNjk5NTc0NDAwLCJkZXNjcmlwdGlvbiI6IkEgbGFyZ2UgTExNIGNyZWF0ZWQgYnkgY29tYmluaW5nIHR3byBmaW5lLXR1bmVkIExsYW1hIDcwQiBtb2RlbHMgaW50byBvbmUgMTIwQiBtb2RlbC4gQ29tYmluZXMgWHdpbiBhbmQgRXVyeWFsZS5cblxuQ3JlZGl0cyB0b1xuLSBbQGNoYXJnb2RkYXJkXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2NoYXJnb2RkYXJkKSBmb3IgZGV2ZWxvcGluZyB0aGUgZnJhbWV3b3JrIHVzZWQgdG8gbWVyZ2UgdGhlIG1vZGVsIC0gW21lcmdla2l0XShodHRwczovL2dpdGh1Yi5jb20vY2cxMjMvbWVyZ2VraXQpLlxuLSBbQFVuZGk5NV0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9VbmRpOTUpIGZvciBoZWxwaW5nIHdpdGggdGhlIG1lcmdlIHJhdGlvcy5cblxuI21lcmdlIiwiY29udGV4dF9sZW5ndGgiOjYxNDQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWlyb2Jvcm9zIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDY1NjI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDA5Mzc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2MTQ0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjUxMiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5yb3V0ZXIvYXV0byIsIm5hbWUiOiJBdXRvIFJvdXRlciIsImNyZWF0ZWQiOjE2OTk0MDE2MDAsImRlc2NyaXB0aW9uIjoiWW91ciBwcm9tcHQgd2lsbCBiZSBwcm9jZXNzZWQgYnkgYSBtZXRhLW1vZGVsIGFuZCByb3V0ZWQgdG8gb25lIG9mIGRvemVucyBvZiBtb2RlbHMgKHNlZSBiZWxvdyksIG9wdGltaXppbmcgZm9yIHRoZSBiZXN0IHBvc3NpYmxlIG91dHB1dC5cblxuVG8gc2VlIHdoaWNoIG1vZGVsIHdhcyB1c2VkLCB2aXNpdCBbQWN0aXZpdHldKC9hY3Rpdml0eSksIG9yIHJlYWQgdGhlIGBtb2RlbGAgYXR0cmlidXRlIG9mIHRoZSByZXNwb25zZS4gWW91ciByZXNwb25zZSB3aWxsIGJlIHByaWNlZCBhdCB0aGUgc2FtZSByYXRlIGFzIHRoZSByb3V0ZWQgbW9kZWwuXG5cblRoZSBtZXRhLW1vZGVsIGlzIHBvd2VyZWQgYnkgW05vdCBEaWFtb25kXShodHRwczovL2RvY3Mubm90ZGlhbW9uZC5haS9kb2NzL2hvdy1ub3QtZGlhbW9uZC13b3JrcykuIExlYXJuIG1vcmUgaW4gb3VyIFtkb2NzXSgvZG9jcy9tb2RlbC1yb3V0aW5nKS5cblxuUmVxdWVzdHMgd2lsbCBiZSByb3V0ZWQgdG8gdGhlIGZvbGxvd2luZyBtb2RlbHM6XG4tIFtvcGVuYWkvZ3B0LTRvLTIwMjQtMDgtMDZdKC9vcGVuYWkvZ3B0LTRvLTIwMjQtMDgtMDYpXG4tIFtvcGVuYWkvZ3B0LTRvLTIwMjQtMDUtMTNdKC9vcGVuYWkvZ3B0LTRvLTIwMjQtMDUtMTMpXG4tIFtvcGVuYWkvZ3B0LTRvLW1pbmktMjAyNC0wNy0xOF0oL29wZW5haS9ncHQtNG8tbWluaS0yMDI0LTA3LTE4KVxuLSBbb3BlbmFpL2NoYXRncHQtNG8tbGF0ZXN0XSgvb3BlbmFpL2NoYXRncHQtNG8tbGF0ZXN0KVxuLSBbb3BlbmFpL28xLXByZXZpZXctMjAyNC0wOS0xMl0oL29wZW5haS9vMS1wcmV2aWV3LTIwMjQtMDktMTIpXG4tIFtvcGVuYWkvbzEtbWluaS0yMDI0LTA5LTEyXSgvb3BlbmFpL28xLW1pbmktMjAyNC0wOS0xMilcbi0gW2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldF0oL2FudGhyb3BpYy9jbGF1ZGUtMy41LXNvbm5ldClcbi0gW2FudGhyb3BpYy9jbGF1ZGUtMy41LWhhaWt1XSgvYW50aHJvcGljL2NsYXVkZS0zLjUtaGFpa3UpXG4tIFthbnRocm9waWMvY2xhdWRlLTMtb3B1c10oL2FudGhyb3BpYy9jbGF1ZGUtMy1vcHVzKVxuLSBbYW50aHJvcGljL2NsYXVkZS0yLjFdKC9hbnRocm9waWMvY2xhdWRlLTIuMSlcbi0gW2dvb2dsZS9nZW1pbmktcHJvLTEuNV0oL2dvb2dsZS9nZW1pbmktcHJvLTEuNSlcbi0gW2dvb2dsZS9nZW1pbmktZmxhc2gtMS41XSgvZ29vZ2xlL2dlbWluaS1mbGFzaC0xLjUpXG4tIFttaXN0cmFsYWkvbWlzdHJhbC1sYXJnZS0yNDA3XSgvbWlzdHJhbGFpL21pc3RyYWwtbGFyZ2UtMjQwNylcbi0gW21pc3RyYWxhaS9taXN0cmFsLW5lbW9dKC9taXN0cmFsYWkvbWlzdHJhbC1uZW1vKVxuLSBbZGVlcHNlZWsvZGVlcHNlZWstcjFdKC9kZWVwc2Vlay9kZWVwc2Vlay1yMSlcbi0gW21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdF0oL21ldGEtbGxhbWEvbGxhbWEtMy4xLTcwYi1pbnN0cnVjdClcbi0gW21ldGEtbGxhbWEvbGxhbWEtMy4xLTQwNWItaW5zdHJ1Y3RdKC9tZXRhLWxsYW1hL2xsYW1hLTMuMS00MDViLWluc3RydWN0KVxuLSBbbWlzdHJhbGFpL21peHRyYWwtOHgyMmItaW5zdHJ1Y3RdKC9taXN0cmFsYWkvbWl4dHJhbC04eDIyYi1pbnN0cnVjdClcbi0gW2NvaGVyZS9jb21tYW5kLXItcGx1c10oL2NvaGVyZS9jb21tYW5kLXItcGx1cylcbi0gW2NvaGVyZS9jb21tYW5kLXJdKC9jb2hlcmUvY29tbWFuZC1yKSIsImNvbnRleHRfbGVuZ3RoIjoyMDAwMDAwLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiUm91dGVyIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiLTEiLCJjb21wbGV0aW9uIjoiLTEifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjpudWxsLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOm51bGwsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTMuNS10dXJiby0xMTA2IiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyAxNmsgKG9sZGVyIHYxMTA2KSIsImNyZWF0ZWQiOjE2OTkyMjg4MDAsImRlc2NyaXB0aW9uIjoiQW4gb2xkZXIgR1BULTMuNSBUdXJibyBtb2RlbCB3aXRoIGltcHJvdmVkIGluc3RydWN0aW9uIGZvbGxvd2luZywgSlNPTiBtb2RlLCByZXByb2R1Y2libGUgb3V0cHV0cywgcGFyYWxsZWwgZnVuY3Rpb24gY2FsbGluZywgYW5kIG1vcmUuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAxIiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMTEwNi1wcmV2aWV3IiwibmFtZSI6Ik9wZW5BSTogR1BULTQgVHVyYm8gKG9sZGVyIHYxMTA2KSIsImNyZWF0ZWQiOjE2OTkyMjg4MDAsImRlc2NyaXB0aW9uIjoiVGhlIGxhdGVzdCBHUFQtNCBUdXJibyBtb2RlbCB3aXRoIHZpc2lvbiBjYXBhYmlsaXRpZXMuIFZpc2lvbiByZXF1ZXN0cyBjYW4gbm93IHVzZSBKU09OIG1vZGUgYW5kIGZ1bmN0aW9uIGNhbGxpbmcuXG5cblRyYWluaW5nIGRhdGE6IHVwIHRvIEFwcmlsIDIwMjMuIiwiY29udGV4dF9sZW5ndGgiOjEyODAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMyIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTI4MDAwLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9wYWxtLTItY2hhdC1iaXNvbi0zMmsiLCJuYW1lIjoiR29vZ2xlOiBQYUxNIDIgQ2hhdCAzMmsiLCJjcmVhdGVkIjoxNjk4OTY5NjAwLCJkZXNjcmlwdGlvbiI6IlBhTE0gMiBpcyBhIGxhbmd1YWdlIG1vZGVsIGJ5IEdvb2dsZSB3aXRoIGltcHJvdmVkIG11bHRpbGluZ3VhbCwgcmVhc29uaW5nIGFuZCBjb2RpbmcgY2FwYWJpbGl0aWVzLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IlBhTE0iLCJpbnN0cnVjdF90eXBlIjpudWxsfSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6ODE5MiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9wYWxtLTItY29kZWNoYXQtYmlzb24tMzJrIiwibmFtZSI6Ikdvb2dsZTogUGFMTSAyIENvZGUgQ2hhdCAzMmsiLCJjcmVhdGVkIjoxNjk4OTY5NjAwLCJkZXNjcmlwdGlvbiI6IlBhTE0gMiBmaW5lLXR1bmVkIGZvciBjaGF0Ym90IGNvbnZlcnNhdGlvbnMgdGhhdCBoZWxwIHdpdGggY29kZS1yZWxhdGVkIHF1ZXN0aW9ucy4iLCJjb250ZXh0X2xlbmd0aCI6MzI3NjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJQYUxNIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjgxOTIsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJqb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYiIsIm5hbWUiOiJBaXJvYm9yb3MgNzBCIiwiY3JlYXRlZCI6MTY5ODUzNzYwMCwiZGVzY3JpcHRpb24iOiJBIExsYW1hIDIgNzBCIGZpbmUtdHVuZSB1c2luZyBzeW50aGV0aWMgZGF0YSAodGhlIEFpcm9ib3JvcyBkYXRhc2V0KS5cblxuQ3VycmVudGx5IGJhc2VkIG9uIFtqb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYl0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9qb25kdXJiaW4vYWlyb2Jvcm9zLWwyLTcwYi0yLjIuMSksIGJ1dCBtaWdodCBnZXQgdXBkYXRlZCBpbiB0aGUgZnV0dXJlLiIsImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiTGxhbWEyIiwiaW5zdHJ1Y3RfdHlwZSI6ImFpcm9ib3JvcyJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwNSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Inh3aW4tbG0veHdpbi1sbS03MGIiLCJuYW1lIjoiWHdpbiA3MEIiLCJjcmVhdGVkIjoxNjk3MzI4MDAwLCJkZXNjcmlwdGlvbiI6Ilh3aW4tTE0gYWltcyB0byBkZXZlbG9wIGFuZCBvcGVuLXNvdXJjZSBhbGlnbm1lbnQgdGVjaCBmb3IgTExNcy4gT3VyIGZpcnN0IHJlbGVhc2UsIGJ1aWx0LXVwb24gb24gdGhlIFtMbGFtYTJdKC9tb2RlbHMvJHtNb2RlbC5MbGFtYV8yXzEzQl9DaGF0fSkgYmFzZSBtb2RlbHMsIHJhbmtlZCBUT1AtMSBvbiBBbHBhY2FFdmFsLiBOb3RhYmx5LCBpdCdzIHRoZSBmaXJzdCB0byBzdXJwYXNzIFtHUFQtNF0oL21vZGVscy8ke01vZGVsLkdQVF80fSkgb24gdGhpcyBiZW5jaG1hcmsuIFRoZSBwcm9qZWN0IHdpbGwgYmUgY29udGludW91c2x5IHVwZGF0ZWQuIiwiY29udGV4dF9sZW5ndGgiOjgxOTIsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWlyb2Jvcm9zIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDM3NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMzc1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkyLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjUxMiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLWluc3RydWN0IiwibmFtZSI6Ik9wZW5BSTogR1BULTMuNSBUdXJibyBJbnN0cnVjdCIsImNyZWF0ZWQiOjE2OTU4NTkyMDAsImRlc2NyaXB0aW9uIjoiVGhpcyBtb2RlbCBpcyBhIHZhcmlhbnQgb2YgR1BULTMuNSBUdXJibyB0dW5lZCBmb3IgaW5zdHJ1Y3Rpb25hbCBwcm9tcHRzIGFuZCBvbWl0dGluZyBjaGF0LXJlbGF0ZWQgb3B0aW1pemF0aW9ucy4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjQwOTUsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJHUFQiLCJpbnN0cnVjdF90eXBlIjoiY2hhdG1sIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDE1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk1LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1pc3RyYWxhaS9taXN0cmFsLTdiLWluc3RydWN0LXYwLjEiLCJuYW1lIjoiTWlzdHJhbDogTWlzdHJhbCA3QiBJbnN0cnVjdCB2MC4xIiwiY3JlYXRlZCI6MTY5NTg1OTIwMCwiZGVzY3JpcHRpb24iOiJBIDcuM0IgcGFyYW1ldGVyIG1vZGVsIHRoYXQgb3V0cGVyZm9ybXMgTGxhbWEgMiAxM0Igb24gYWxsIGJlbmNobWFya3MsIHdpdGggb3B0aW1pemF0aW9ucyBmb3Igc3BlZWQgYW5kIGNvbnRleHQgbGVuZ3RoLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2OCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6Ik1pc3RyYWwiLCJpbnN0cnVjdF90eXBlIjoibWlzdHJhbCJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAwMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjMyNzY4LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJweWdtYWxpb25haS9teXRoYWxpb24tMTNiIiwibmFtZSI6IlB5Z21hbGlvbjogTXl0aGFsaW9uIDEzQiIsImNyZWF0ZWQiOjE2OTM2MTI4MDAsImRlc2NyaXB0aW9uIjoiQSBibGVuZCBvZiB0aGUgbmV3IFB5Z21hbGlvbi0xM2IgYW5kIE15dGhvTWF4LiAjbWVyZ2UiLCJjb250ZXh0X2xlbmd0aCI6ODE5MiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhbHBhY2EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDU2MjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgxOTIsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im9wZW5haS9ncHQtMy41LXR1cmJvLTE2ayIsIm5hbWUiOiJPcGVuQUk6IEdQVC0zLjUgVHVyYm8gMTZrIiwiY3JlYXRlZCI6MTY5MzE4MDgwMCwiZGVzY3JpcHRpb24iOiJUaGlzIG1vZGVsIG9mZmVycyBmb3VyIHRpbWVzIHRoZSBjb250ZXh0IGxlbmd0aCBvZiBncHQtMy41LXR1cmJvLCBhbGxvd2luZyBpdCB0byBzdXBwb3J0IGFwcHJveGltYXRlbHkgMjAgcGFnZXMgb2YgdGV4dCBpbiBhIHNpbmdsZSByZXF1ZXN0IGF0IGEgaGlnaGVyIGNvc3QuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDAzIiwiY29tcGxldGlvbiI6IjAuMDAwMDA0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxNjM4NSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMzJrIiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIiwiY3JlYXRlZCI6MTY5MzE4MDgwMCwiZGVzY3JpcHRpb24iOiJHUFQtNC0zMmsgaXMgYW4gZXh0ZW5kZWQgdmVyc2lvbiBvZiBHUFQtNCwgd2l0aCB0aGUgc2FtZSBjYXBhYmlsaXRpZXMgYnV0IHF1YWRydXBsZWQgY29udGV4dCBsZW5ndGgsIGFsbG93aW5nIGZvciBwcm9jZXNzaW5nIHVwIHRvIDQwIHBhZ2VzIG9mIHRleHQgaW4gYSBzaW5nbGUgcGFzcy4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgYmVuZWZpY2lhbCBmb3IgaGFuZGxpbmcgbG9uZ2VyIGNvbnRlbnQgbGlrZSBpbnRlcmFjdGluZyB3aXRoIFBERnMgd2l0aG91dCBhbiBleHRlcm5hbCB2ZWN0b3IgZGF0YWJhc2UuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjozMjc2NywiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDYiLCJjb21wbGV0aW9uIjoiMC4wMDAxMiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MzI3NjcsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00LTMyay0wMzE0IiwibmFtZSI6Ik9wZW5BSTogR1BULTQgMzJrIChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjkzMTgwODAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTMyayBpcyBhbiBleHRlbmRlZCB2ZXJzaW9uIG9mIEdQVC00LCB3aXRoIHRoZSBzYW1lIGNhcGFiaWxpdGllcyBidXQgcXVhZHJ1cGxlZCBjb250ZXh0IGxlbmd0aCwgYWxsb3dpbmcgZm9yIHByb2Nlc3NpbmcgdXAgdG8gNDAgcGFnZXMgb2YgdGV4dCBpbiBhIHNpbmdsZSBwYXNzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBiZW5lZmljaWFsIGZvciBoYW5kbGluZyBsb25nZXIgY29udGVudCBsaWtlIGludGVyYWN0aW5nIHdpdGggUERGcyB3aXRob3V0IGFuIGV4dGVybmFsIHZlY3RvciBkYXRhYmFzZS4gVHJhaW5pbmcgZGF0YTogdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjMyNzY3LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwNiIsImNvbXBsZXRpb24iOiIwLjAwMDEyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjozMjc2NywibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJub3VzcmVzZWFyY2gvbm91cy1oZXJtZXMtbGxhbWEyLTEzYiIsIm5hbWUiOiJOb3VzOiBIZXJtZXMgMTNCIiwiY3JlYXRlZCI6MTY5MjQ4OTYwMCwiZGVzY3JpcHRpb24iOiJBIHN0YXRlLW9mLXRoZS1hcnQgbGFuZ3VhZ2UgbW9kZWwgZmluZS10dW5lZCBvbiBvdmVyIDMwMGsgaW5zdHJ1Y3Rpb25zIGJ5IE5vdXMgUmVzZWFyY2gsIHdpdGggVGVrbml1bSBhbmQgRW1vemlsbGEgbGVhZGluZyB0aGUgZmluZSB0dW5pbmcgcHJvY2Vzcy4iLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhbHBhY2EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDE4IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwMTgiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjQwOTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6bnVsbCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Im1hbmNlci93ZWF2ZXIiLCJuYW1lIjoiTWFuY2VyOiBXZWF2ZXIgKGFscGhhKSIsImNyZWF0ZWQiOjE2OTA5MzQ0MDAsImRlc2NyaXB0aW9uIjoiQW4gYXR0ZW1wdCB0byByZWNyZWF0ZSBDbGF1ZGUtc3R5bGUgdmVyYm9zaXR5LCBidXQgZG9uJ3QgZXhwZWN0IHRoZSBzYW1lIGxldmVsIG9mIGNvaGVyZW5jZSBvciBtZW1vcnkuIE1lYW50IGZvciB1c2UgaW4gcm9sZXBsYXkvbmFycmF0aXZlIHNpdHVhdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjgwMDAsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDExMjUiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDExMjUiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjgwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAwMCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imh1Z2dpbmdmYWNlaDQvemVwaHlyLTdiLWJldGE6ZnJlZSIsIm5hbWUiOiJIdWdnaW5nIEZhY2U6IFplcGh5ciA3QiAoZnJlZSkiLCJjcmVhdGVkIjoxNjkwOTM0NDAwLCJkZXNjcmlwdGlvbiI6IlplcGh5ciBpcyBhIHNlcmllcyBvZiBsYW5ndWFnZSBtb2RlbHMgdGhhdCBhcmUgdHJhaW5lZCB0byBhY3QgYXMgaGVscGZ1bCBhc3Npc3RhbnRzLiBaZXBoeXItN0ItzrIgaXMgdGhlIHNlY29uZCBtb2RlbCBpbiB0aGUgc2VyaWVzLCBhbmQgaXMgYSBmaW5lLXR1bmVkIHZlcnNpb24gb2YgW21pc3RyYWxhaS9NaXN0cmFsLTdCLXYwLjFdKC9tb2RlbHMvbWlzdHJhbGFpL21pc3RyYWwtN2ItaW5zdHJ1Y3QtdjAuMSkgdGhhdCB3YXMgdHJhaW5lZCBvbiBhIG1peCBvZiBwdWJsaWNseSBhdmFpbGFibGUsIHN5bnRoZXRpYyBkYXRhc2V0cyB1c2luZyBEaXJlY3QgUHJlZmVyZW5jZSBPcHRpbWl6YXRpb24gKERQTykuIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJNaXN0cmFsIiwiaW5zdHJ1Y3RfdHlwZSI6InplcGh5ciJ9LCJwcmljaW5nIjp7InByb21wdCI6IjAiLCJjb21wbGV0aW9uIjoiMCIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjoyMDQ4LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoiYW50aHJvcGljL2NsYXVkZS0yLjA6YmV0YSIsIm5hbWUiOiJBbnRocm9waWM6IENsYXVkZSB2Mi4wIChzZWxmLW1vZGVyYXRlZCkiLCJjcmVhdGVkIjoxNjkwNTAyNDAwLCJkZXNjcmlwdGlvbiI6IkFudGhyb3BpYydzIGZsYWdzaGlwIG1vZGVsLiBTdXBlcmlvciBwZXJmb3JtYW5jZSBvbiB0YXNrcyB0aGF0IHJlcXVpcmUgY29tcGxleCByZWFzb25pbmcuIFN1cHBvcnRzIGh1bmRyZWRzIG9mIHBhZ2VzIG9mIHRleHQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImFudGhyb3BpYy9jbGF1ZGUtMi4wIiwibmFtZSI6IkFudGhyb3BpYzogQ2xhdWRlIHYyLjAiLCJjcmVhdGVkIjoxNjkwNTAyNDAwLCJkZXNjcmlwdGlvbiI6IkFudGhyb3BpYydzIGZsYWdzaGlwIG1vZGVsLiBTdXBlcmlvciBwZXJmb3JtYW5jZSBvbiB0YXNrcyB0aGF0IHJlcXVpcmUgY29tcGxleCByZWFzb25pbmcuIFN1cHBvcnRzIGh1bmRyZWRzIG9mIHBhZ2VzIG9mIHRleHQuIiwiY29udGV4dF9sZW5ndGgiOjEwMDAwMCwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkNsYXVkZSIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDA4IiwiY29tcGxldGlvbiI6IjAuMDAwMDI0IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjoxMDAwMDAsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoidW5kaTk1L3JlbW0tc2xlcnAtbDItMTNiIiwibmFtZSI6IlJlTU0gU0xFUlAgMTNCIiwiY3JlYXRlZCI6MTY4OTk4NDAwMCwiZGVzY3JpcHRpb24iOiJBIHJlY3JlYXRpb24gdHJpYWwgb2YgdGhlIG9yaWdpbmFsIE15dGhvTWF4LUwyLUIxMyBidXQgd2l0aCB1cGRhdGVkIG1vZGVscy4gI21lcmdlIiwiY29udGV4dF9sZW5ndGgiOjYxNDQsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoiYWxwYWNhIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1NjI1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxMTI1IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo2MTQ0LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjEwMjQsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJnb29nbGUvcGFsbS0yLWNoYXQtYmlzb24iLCJuYW1lIjoiR29vZ2xlOiBQYUxNIDIgQ2hhdCIsImNyZWF0ZWQiOjE2ODk4MTEyMDAsImRlc2NyaXB0aW9uIjoiUGFMTSAyIGlzIGEgbGFuZ3VhZ2UgbW9kZWwgYnkgR29vZ2xlIHdpdGggaW1wcm92ZWQgbXVsdGlsaW5ndWFsLCByZWFzb25pbmcgYW5kIGNvZGluZyBjYXBhYmlsaXRpZXMuIiwiY29udGV4dF9sZW5ndGgiOjkyMTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJQYUxNIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjkyMTYsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6Imdvb2dsZS9wYWxtLTItY29kZWNoYXQtYmlzb24iLCJuYW1lIjoiR29vZ2xlOiBQYUxNIDIgQ29kZSBDaGF0IiwiY3JlYXRlZCI6MTY4OTgxMTIwMCwiZGVzY3JpcHRpb24iOiJQYUxNIDIgZmluZS10dW5lZCBmb3IgY2hhdGJvdCBjb252ZXJzYXRpb25zIHRoYXQgaGVscCB3aXRoIGNvZGUtcmVsYXRlZCBxdWVzdGlvbnMuIiwiY29udGV4dF9sZW5ndGgiOjcxNjgsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJQYUxNIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDEiLCJjb21wbGV0aW9uIjoiMC4wMDAwMDIiLCJyZXF1ZXN0IjoiMCIsImltYWdlIjoiMCIsIndlYl9zZWFyY2giOiIwIiwiaW50ZXJuYWxfcmVhc29uaW5nIjoiMCJ9LCJ0b3BfcHJvdmlkZXIiOnsiY29udGV4dF9sZW5ndGgiOjcxNjgsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6MTAyNCwiaXNfbW9kZXJhdGVkIjpmYWxzZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH0seyJpZCI6ImdyeXBoZS9teXRob21heC1sMi0xM2IiLCJuYW1lIjoiTXl0aG9NYXggMTNCIiwiY3JlYXRlZCI6MTY4ODI1NjAwMCwiZGVzY3JpcHRpb24iOiJPbmUgb2YgdGhlIGhpZ2hlc3QgcGVyZm9ybWluZyBhbmQgbW9zdCBwb3B1bGFyIGZpbmUtdHVuZXMgb2YgTGxhbWEgMiAxM0IsIHdpdGggcmljaCBkZXNjcmlwdGlvbnMgYW5kIHJvbGVwbGF5LiAjbWVyZ2UiLCJjb250ZXh0X2xlbmd0aCI6NDA5NiwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkxsYW1hMiIsImluc3RydWN0X3R5cGUiOiJhbHBhY2EifSwicHJpY2luZyI6eyJwcm9tcHQiOiIwLjAwMDAwMDA2NSIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDA2NSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoibWV0YS1sbGFtYS9sbGFtYS0yLTEzYi1jaGF0IiwibmFtZSI6Ik1ldGE6IExsYW1hIDIgMTNCIENoYXQiLCJjcmVhdGVkIjoxNjg3MjE5MjAwLCJkZXNjcmlwdGlvbiI6IkEgMTMgYmlsbGlvbiBwYXJhbWV0ZXIgbGFuZ3VhZ2UgbW9kZWwgZnJvbSBNZXRhLCBmaW5lIHR1bmVkIGZvciBjaGF0IGNvbXBsZXRpb25zIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEyIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDAyMiIsImNvbXBsZXRpb24iOiIwLjAwMDAwMDIyIiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo0MDk2LCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjIwNDgsImlzX21vZGVyYXRlZCI6ZmFsc2V9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJtZXRhLWxsYW1hL2xsYW1hLTItNzBiLWNoYXQiLCJuYW1lIjoiTWV0YTogTGxhbWEgMiA3MEIgQ2hhdCIsImNyZWF0ZWQiOjE2ODcyMTkyMDAsImRlc2NyaXB0aW9uIjoiVGhlIGZsYWdzaGlwLCA3MCBiaWxsaW9uIHBhcmFtZXRlciBsYW5ndWFnZSBtb2RlbCBmcm9tIE1ldGEsIGZpbmUgdHVuZWQgZm9yIGNoYXQgY29tcGxldGlvbnMuIExsYW1hIDIgaXMgYW4gYXV0by1yZWdyZXNzaXZlIGxhbmd1YWdlIG1vZGVsIHRoYXQgdXNlcyBhbiBvcHRpbWl6ZWQgdHJhbnNmb3JtZXIgYXJjaGl0ZWN0dXJlLiBUaGUgdHVuZWQgdmVyc2lvbnMgdXNlIHN1cGVydmlzZWQgZmluZS10dW5pbmcgKFNGVCkgYW5kIHJlaW5mb3JjZW1lbnQgbGVhcm5pbmcgd2l0aCBodW1hbiBmZWVkYmFjayAoUkxIRikgdG8gYWxpZ24gdG8gaHVtYW4gcHJlZmVyZW5jZXMgZm9yIGhlbHBmdWxuZXNzIGFuZCBzYWZldHkuIiwiY29udGV4dF9sZW5ndGgiOjQwOTYsImFyY2hpdGVjdHVyZSI6eyJtb2RhbGl0eSI6InRleHQtPnRleHQiLCJpbnB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwib3V0cHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJ0b2tlbml6ZXIiOiJMbGFtYTIiLCJpbnN0cnVjdF90eXBlIjoibGxhbWEyIn0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA5IiwiY29tcGxldGlvbiI6IjAuMDAwMDAwOSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6NDA5NiwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjpudWxsLCJpc19tb2RlcmF0ZWQiOmZhbHNlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC0zLjUtdHVyYm8iLCJuYW1lIjoiT3BlbkFJOiBHUFQtMy41IFR1cmJvIiwiY3JlYXRlZCI6MTY4NTIzMjAwMCwiZGVzY3JpcHRpb24iOiJHUFQtMy41IFR1cmJvIGlzIE9wZW5BSSdzIGZhc3Rlc3QgbW9kZWwuIEl0IGNhbiB1bmRlcnN0YW5kIGFuZCBnZW5lcmF0ZSBuYXR1cmFsIGxhbmd1YWdlIG9yIGNvZGUsIGFuZCBpcyBvcHRpbWl6ZWQgZm9yIGNoYXQgYW5kIHRyYWRpdGlvbmFsIGNvbXBsZXRpb24gdGFza3MuXG5cblRyYWluaW5nIGRhdGEgdXAgdG8gU2VwIDIwMjEuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODUsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC0zLjUtdHVyYm8tMDEyNSIsIm5hbWUiOiJPcGVuQUk6IEdQVC0zLjUgVHVyYm8gMTZrIiwiY3JlYXRlZCI6MTY4NTIzMjAwMCwiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IEdQVC0zLjUgVHVyYm8gbW9kZWwgd2l0aCBpbXByb3ZlZCBpbnN0cnVjdGlvbiBmb2xsb3dpbmcsIEpTT04gbW9kZSwgcmVwcm9kdWNpYmxlIG91dHB1dHMsIHBhcmFsbGVsIGZ1bmN0aW9uIGNhbGxpbmcsIGFuZCBtb3JlLiBUcmFpbmluZyBkYXRhOiB1cCB0byBTZXAgMjAyMS5cblxuVGhpcyB2ZXJzaW9uIGhhcyBhIGhpZ2hlciBhY2N1cmFjeSBhdCByZXNwb25kaW5nIGluIHJlcXVlc3RlZCBmb3JtYXRzIGFuZCBhIGZpeCBmb3IgYSBidWcgd2hpY2ggY2F1c2VkIGEgdGV4dCBlbmNvZGluZyBpc3N1ZSBmb3Igbm9uLUVuZ2xpc2ggbGFuZ3VhZ2UgZnVuY3Rpb24gY2FsbHMuIiwiY29udGV4dF9sZW5ndGgiOjE2Mzg1LCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMDA1IiwiY29tcGxldGlvbiI6IjAuMDAwMDAxNSIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6MTYzODUsIm1heF9jb21wbGV0aW9uX3Rva2VucyI6NDA5NiwiaXNfbW9kZXJhdGVkIjp0cnVlfSwicGVyX3JlcXVlc3RfbGltaXRzIjpudWxsfSx7ImlkIjoib3BlbmFpL2dwdC00IiwibmFtZSI6Ik9wZW5BSTogR1BULTQiLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6Ik9wZW5BSSdzIGZsYWdzaGlwIG1vZGVsLCBHUFQtNCBpcyBhIGxhcmdlLXNjYWxlIG11bHRpbW9kYWwgbGFuZ3VhZ2UgbW9kZWwgY2FwYWJsZSBvZiBzb2x2aW5nIGRpZmZpY3VsdCBwcm9ibGVtcyB3aXRoIGdyZWF0ZXIgYWNjdXJhY3kgdGhhbiBwcmV2aW91cyBtb2RlbHMgZHVlIHRvIGl0cyBicm9hZGVyIGdlbmVyYWwga25vd2xlZGdlIGFuZCBhZHZhbmNlZCByZWFzb25pbmcgY2FwYWJpbGl0aWVzLiBUcmFpbmluZyBkYXRhOiB1cCB0byBTZXAgMjAyMS4iLCJjb250ZXh0X2xlbmd0aCI6ODE5MSwiYXJjaGl0ZWN0dXJlIjp7Im1vZGFsaXR5IjoidGV4dC0+dGV4dCIsImlucHV0X21vZGFsaXRpZXMiOlsidGV4dCJdLCJvdXRwdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sInRva2VuaXplciI6IkdQVCIsImluc3RydWN0X3R5cGUiOm51bGx9LCJwcmljaW5nIjp7InByb21wdCI6IjAuMDAwMDMiLCJjb21wbGV0aW9uIjoiMC4wMDAwNiIsInJlcXVlc3QiOiIwIiwiaW1hZ2UiOiIwIiwid2ViX3NlYXJjaCI6IjAiLCJpbnRlcm5hbF9yZWFzb25pbmciOiIwIn0sInRvcF9wcm92aWRlciI6eyJjb250ZXh0X2xlbmd0aCI6ODE5MSwibWF4X2NvbXBsZXRpb25fdG9rZW5zIjo0MDk2LCJpc19tb2RlcmF0ZWQiOnRydWV9LCJwZXJfcmVxdWVzdF9saW1pdHMiOm51bGx9LHsiaWQiOiJvcGVuYWkvZ3B0LTQtMDMxNCIsIm5hbWUiOiJPcGVuQUk6IEdQVC00IChvbGRlciB2MDMxNCkiLCJjcmVhdGVkIjoxNjg1MjMyMDAwLCJkZXNjcmlwdGlvbiI6IkdQVC00LTAzMTQgaXMgdGhlIGZpcnN0IHZlcnNpb24gb2YgR1BULTQgcmVsZWFzZWQsIHdpdGggYSBjb250ZXh0IGxlbmd0aCBvZiA4LDE5MiB0b2tlbnMsIGFuZCB3YXMgc3VwcG9ydGVkIHVudGlsIEp1bmUgMTQuIFRyYWluaW5nIGRhdGE6IHVwIHRvIFNlcCAyMDIxLiIsImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJhcmNoaXRlY3R1cmUiOnsibW9kYWxpdHkiOiJ0ZXh0LT50ZXh0IiwiaW5wdXRfbW9kYWxpdGllcyI6WyJ0ZXh0Il0sIm91dHB1dF9tb2RhbGl0aWVzIjpbInRleHQiXSwidG9rZW5pemVyIjoiR1BUIiwiaW5zdHJ1Y3RfdHlwZSI6bnVsbH0sInByaWNpbmciOnsicHJvbXB0IjoiMC4wMDAwMyIsImNvbXBsZXRpb24iOiIwLjAwMDA2IiwicmVxdWVzdCI6IjAiLCJpbWFnZSI6IjAiLCJ3ZWJfc2VhcmNoIjoiMCIsImludGVybmFsX3JlYXNvbmluZyI6IjAifSwidG9wX3Byb3ZpZGVyIjp7ImNvbnRleHRfbGVuZ3RoIjo4MTkxLCJtYXhfY29tcGxldGlvbl90b2tlbnMiOjQwOTYsImlzX21vZGVyYXRlZCI6dHJ1ZX0sInBlcl9yZXF1ZXN0X2xpbWl0cyI6bnVsbH1dfQ== + recorded_at: Wed, 09 Apr 2025 10:27:56 GMT recorded_with: VCR 6.3.1 diff --git a/spec/ruby_llm/chat_spec.rb b/spec/ruby_llm/chat_spec.rb index 3a0608ea5..08f9c4853 100644 --- a/spec/ruby_llm/chat_spec.rb +++ b/spec/ruby_llm/chat_spec.rb @@ -9,6 +9,7 @@ anthropic.claude-3-5-haiku-20241022-v1:0 gemini-2.0-flash deepseek-chat + anthropic/claude-3.5-haiku gpt-4.1-nano].freeze describe 'basic chat functionality' do diff --git a/spec/ruby_llm/chat_streaming_spec.rb b/spec/ruby_llm/chat_streaming_spec.rb index 1a3fd9b7d..d0a318388 100644 --- a/spec/ruby_llm/chat_streaming_spec.rb +++ b/spec/ruby_llm/chat_streaming_spec.rb @@ -9,6 +9,7 @@ anthropic.claude-3-5-haiku-20241022-v1:0 gemini-2.0-flash deepseek-chat + anthropic/claude-3.5-haiku gpt-4.1-nano].freeze describe 'streaming responses' do diff --git a/spec/ruby_llm/chat_tools_spec.rb b/spec/ruby_llm/chat_tools_spec.rb index 2193369c4..9a547b647 100644 --- a/spec/ruby_llm/chat_tools_spec.rb +++ b/spec/ruby_llm/chat_tools_spec.rb @@ -9,6 +9,7 @@ anthropic.claude-3-5-haiku-20241022-v1:0 gemini-2.0-flash deepseek-chat + anthropic/claude-3.5-haiku gpt-4.1-nano].freeze class Weather < RubyLLM::Tool # rubocop:disable Lint/ConstantDefinitionInBlock,RSpec/LeakyConstantDeclaration diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 847f031ff..89ed1a67a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -93,6 +93,7 @@ config.anthropic_api_key = ENV.fetch('ANTHROPIC_API_KEY', 'test') config.gemini_api_key = ENV.fetch('GEMINI_API_KEY', 'test') config.deepseek_api_key = ENV.fetch('DEEPSEEK_API_KEY', 'test') + config.openrouter_api_key = ENV.fetch('OPENROUTER_API_KEY', 'test') config.bedrock_api_key = ENV.fetch('AWS_ACCESS_KEY_ID', 'test') config.bedrock_secret_key = ENV.fetch('AWS_SECRET_ACCESS_KEY', 'test') From b19b3e186aa389d620c811911915976b14405a66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Hasi=C5=84ski?= Date: Fri, 18 Apr 2025 09:19:02 +0900 Subject: [PATCH 7/7] Address PR feedback --- README.md | 4 +--- lib/ruby_llm/aliases.json | 3 --- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index 7c514fd59..e39a82e07 100644 --- a/README.md +++ b/README.md @@ -106,15 +106,13 @@ RubyLLM.configure do |config| config.anthropic_api_key = ENV.fetch('ANTHROPIC_API_KEY', nil) config.gemini_api_key = ENV.fetch('GEMINI_API_KEY', nil) config.deepseek_api_key = ENV.fetch('DEEPSEEK_API_KEY', nil) + config.openrouter_api_key = ENV.fetch('OPENROUTER_API_KEY', nil) # Bedrock config.bedrock_api_key = ENV.fetch('AWS_ACCESS_KEY_ID', nil) config.bedrock_secret_key = ENV.fetch('AWS_SECRET_ACCESS_KEY', nil) config.bedrock_region = ENV.fetch('AWS_REGION', nil) config.bedrock_session_token = ENV.fetch('AWS_SESSION_TOKEN', nil) - - # OpenRouter - config.openrouter_api_key = ENV['OPENROUTER_API_KEY'] end ``` diff --git a/lib/ruby_llm/aliases.json b/lib/ruby_llm/aliases.json index 90f41f957..ce1988706 100644 --- a/lib/ruby_llm/aliases.json +++ b/lib/ruby_llm/aliases.json @@ -17,17 +17,14 @@ "claude-3-opus": { "anthropic": "claude-3-opus-20240229", "bedrock": "anthropic.claude-3-opus-20240229-v1:0", - "openrouter": "" }, "claude-3-sonnet": { "anthropic": "claude-3-sonnet-20240229", "bedrock": "anthropic.claude-3-sonnet-20240229-v1:0", - "openrouter": "" }, "claude-3-haiku": { "anthropic": "claude-3-haiku-20240307", "bedrock": "anthropic.claude-3-haiku-20240307-v1:0", - "openrouter": "" }, "claude-3": { "anthropic": "claude-3-sonnet-20240229",