diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 000000000..4b806ed91
Binary files /dev/null and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..f8457251c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+# See https://help.github.com/articles/ignoring-files for more about ignoring files.
+#
+# If you find yourself ignoring temporary files generated by your text editor
+# or operating system, you probably want to add a global ignore instead:
+# git config --global core.excludesfile '~/.gitignore_global'
+
+# Ignore bundler config.
+/.bundle
+
+# Ignore all logfiles and tempfiles.
+/log/*
+/tmp/*
+!/log/.keep
+!/tmp/.keep
+
+/node_modules
+/yarn-error.log
+
+.byebug_history
+
+.env
+
+.DS_Store
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 000000000..8d41a95aa
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,74 @@
+source 'https://rubygems.org'
+
+git_source(:github) do |repo_name|
+ repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
+ "https://github.com/#{repo_name}.git"
+end
+
+
+# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
+gem 'rails', '~> 5.1.4'
+# Use postgresql as the database for Active Record
+gem 'pg', '~> 0.18'
+# Use Puma as the app server
+gem 'puma', '~> 3.7'
+# Use SCSS for stylesheets
+gem 'sass-rails', '~> 5.0'
+# Use Uglifier as compressor for JavaScript assets
+gem 'uglifier', '>= 1.3.0'
+# See https://github.com/rails/execjs#readme for more supported runtimes
+# gem 'therubyracer', platforms: :ruby
+
+# Use CoffeeScript for .coffee assets and views
+# gem 'coffee-rails', '~> 4.2'
+# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
+gem 'turbolinks', '~> 5'
+# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
+gem 'jbuilder', '~> 2.5'
+# Use Redis adapter to run Action Cable in production
+# gem 'redis', '~> 3.0'
+# Use ActiveModel has_secure_password
+# gem 'bcrypt', '~> 3.1.7'
+gem 'httparty'
+# Use Capistrano for deployment
+# gem 'capistrano-rails', group: :development
+gem 'foundation-rails', '6.4.1.2'
+
+group :development, :test do
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
+ gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
+ # Adds support for Capybara system testing and selenium driver
+ gem 'capybara', '~> 2.13'
+ gem 'selenium-webdriver'
+
+ gem 'dotenv-rails'
+
+ gem 'minitest-vcr'
+ gem 'webmock'
+end
+
+group :development do
+ # Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
+ gem 'web-console', '>= 3.3.0'
+ gem 'listen', '>= 3.0.5', '< 3.2'
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
+ gem 'spring'
+ gem 'spring-watcher-listen', '~> 2.0.0'
+
+
+end
+
+# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
+gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
+
+gem 'jquery-turbolinks'
+group :development do
+ gem 'better_errors'
+ gem 'pry-rails'
+ gem 'binding_of_caller'
+end
+
+group :test do
+ gem 'minitest-rails'
+ gem 'minitest-reporters'
+end
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 000000000..c7a1ff73c
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,255 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ actioncable (5.1.4)
+ actionpack (= 5.1.4)
+ nio4r (~> 2.0)
+ websocket-driver (~> 0.6.1)
+ actionmailer (5.1.4)
+ actionpack (= 5.1.4)
+ actionview (= 5.1.4)
+ activejob (= 5.1.4)
+ mail (~> 2.5, >= 2.5.4)
+ rails-dom-testing (~> 2.0)
+ actionpack (5.1.4)
+ actionview (= 5.1.4)
+ activesupport (= 5.1.4)
+ rack (~> 2.0)
+ rack-test (>= 0.6.3)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
+ actionview (5.1.4)
+ activesupport (= 5.1.4)
+ builder (~> 3.1)
+ erubi (~> 1.4)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
+ activejob (5.1.4)
+ activesupport (= 5.1.4)
+ globalid (>= 0.3.6)
+ activemodel (5.1.4)
+ activesupport (= 5.1.4)
+ activerecord (5.1.4)
+ activemodel (= 5.1.4)
+ activesupport (= 5.1.4)
+ arel (~> 8.0)
+ activesupport (5.1.4)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (~> 0.7)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ addressable (2.5.2)
+ public_suffix (>= 2.0.2, < 4.0)
+ ansi (1.5.0)
+ arel (8.0.0)
+ babel-source (5.8.35)
+ babel-transpiler (0.7.0)
+ babel-source (>= 4.0, < 6)
+ execjs (~> 2.0)
+ better_errors (2.4.0)
+ coderay (>= 1.0.0)
+ erubi (>= 1.0.0)
+ rack (>= 0.9.0)
+ bindex (0.5.0)
+ binding_of_caller (0.7.3)
+ debug_inspector (>= 0.0.1)
+ builder (3.2.3)
+ byebug (9.1.0)
+ capybara (2.15.4)
+ addressable
+ mini_mime (>= 0.1.3)
+ nokogiri (>= 1.3.3)
+ rack (>= 1.0.0)
+ rack-test (>= 0.5.4)
+ xpath (~> 2.0)
+ childprocess (0.8.0)
+ ffi (~> 1.0, >= 1.0.11)
+ coderay (1.1.2)
+ concurrent-ruby (1.0.5)
+ crack (0.4.3)
+ safe_yaml (~> 1.0.0)
+ crass (1.0.2)
+ debug_inspector (0.0.3)
+ dotenv (2.2.1)
+ dotenv-rails (2.2.1)
+ dotenv (= 2.2.1)
+ railties (>= 3.2, < 5.2)
+ erubi (1.7.0)
+ execjs (2.7.0)
+ ffi (1.9.18)
+ foundation-rails (6.4.1.2)
+ railties (>= 3.1.0)
+ sass (>= 3.3.0, < 3.5)
+ sprockets-es6 (>= 0.9.0)
+ globalid (0.4.1)
+ activesupport (>= 4.2.0)
+ hashdiff (0.3.7)
+ httparty (0.15.6)
+ multi_xml (>= 0.5.2)
+ i18n (0.9.1)
+ concurrent-ruby (~> 1.0)
+ jbuilder (2.7.0)
+ activesupport (>= 4.2.0)
+ multi_json (>= 1.2)
+ jquery-turbolinks (2.1.0)
+ railties (>= 3.1.0)
+ turbolinks
+ listen (3.1.5)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ ruby_dep (~> 1.2)
+ loofah (2.1.1)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.5.9)
+ mail (2.7.0)
+ mini_mime (>= 0.1.1)
+ method_source (0.9.0)
+ mini_mime (0.1.4)
+ mini_portile2 (2.3.0)
+ minispec-metadata (2.0.0)
+ minitest
+ minitest (5.10.3)
+ minitest-rails (3.0.0)
+ minitest (~> 5.8)
+ railties (~> 5.0)
+ minitest-reporters (1.1.18)
+ ansi
+ builder
+ minitest (>= 5.0)
+ ruby-progressbar
+ minitest-vcr (1.4.0)
+ minispec-metadata (~> 2.0)
+ minitest (>= 4.7.5)
+ vcr (>= 2.9)
+ multi_json (1.12.2)
+ multi_xml (0.6.0)
+ nio4r (2.1.0)
+ nokogiri (1.8.1)
+ mini_portile2 (~> 2.3.0)
+ pg (0.21.0)
+ pry (0.11.2)
+ coderay (~> 1.1.0)
+ method_source (~> 0.9.0)
+ pry-rails (0.3.6)
+ pry (>= 0.10.4)
+ public_suffix (3.0.0)
+ puma (3.10.0)
+ rack (2.0.3)
+ rack-test (0.7.0)
+ rack (>= 1.0, < 3)
+ rails (5.1.4)
+ actioncable (= 5.1.4)
+ actionmailer (= 5.1.4)
+ actionpack (= 5.1.4)
+ actionview (= 5.1.4)
+ activejob (= 5.1.4)
+ activemodel (= 5.1.4)
+ activerecord (= 5.1.4)
+ activesupport (= 5.1.4)
+ bundler (>= 1.3.0)
+ railties (= 5.1.4)
+ sprockets-rails (>= 2.0.0)
+ rails-dom-testing (2.0.3)
+ activesupport (>= 4.2.0)
+ nokogiri (>= 1.6)
+ rails-html-sanitizer (1.0.3)
+ loofah (~> 2.0)
+ railties (5.1.4)
+ actionpack (= 5.1.4)
+ activesupport (= 5.1.4)
+ method_source
+ rake (>= 0.8.7)
+ thor (>= 0.18.1, < 2.0)
+ rake (12.2.1)
+ rb-fsevent (0.10.2)
+ rb-inotify (0.9.10)
+ ffi (>= 0.5.0, < 2)
+ ruby-progressbar (1.9.0)
+ ruby_dep (1.5.0)
+ rubyzip (1.2.1)
+ safe_yaml (1.0.4)
+ sass (3.4.25)
+ sass-rails (5.0.6)
+ railties (>= 4.0.0, < 6)
+ sass (~> 3.1)
+ sprockets (>= 2.8, < 4.0)
+ sprockets-rails (>= 2.0, < 4.0)
+ tilt (>= 1.1, < 3)
+ selenium-webdriver (3.7.0)
+ childprocess (~> 0.5)
+ rubyzip (~> 1.0)
+ spring (2.0.2)
+ activesupport (>= 4.2)
+ spring-watcher-listen (2.0.1)
+ listen (>= 2.7, < 4.0)
+ spring (>= 1.2, < 3.0)
+ sprockets (3.7.1)
+ concurrent-ruby (~> 1.0)
+ rack (> 1, < 3)
+ sprockets-es6 (0.9.2)
+ babel-source (>= 5.8.11)
+ babel-transpiler
+ sprockets (>= 3.0.0)
+ sprockets-rails (3.2.1)
+ actionpack (>= 4.0)
+ activesupport (>= 4.0)
+ sprockets (>= 3.0.0)
+ thor (0.20.0)
+ thread_safe (0.3.6)
+ tilt (2.0.8)
+ turbolinks (5.0.1)
+ turbolinks-source (~> 5)
+ turbolinks-source (5.0.3)
+ tzinfo (1.2.4)
+ thread_safe (~> 0.1)
+ uglifier (3.2.0)
+ execjs (>= 0.3.0, < 3)
+ vcr (3.0.3)
+ web-console (3.5.1)
+ actionview (>= 5.0)
+ activemodel (>= 5.0)
+ bindex (>= 0.4.0)
+ railties (>= 5.0)
+ webmock (3.1.0)
+ addressable (>= 2.3.6)
+ crack (>= 0.3.2)
+ hashdiff
+ websocket-driver (0.6.5)
+ websocket-extensions (>= 0.1.0)
+ websocket-extensions (0.1.2)
+ xpath (2.1.0)
+ nokogiri (~> 1.3)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ better_errors
+ binding_of_caller
+ byebug
+ capybara (~> 2.13)
+ dotenv-rails
+ foundation-rails (= 6.4.1.2)
+ httparty
+ jbuilder (~> 2.5)
+ jquery-turbolinks
+ listen (>= 3.0.5, < 3.2)
+ minitest-rails
+ minitest-reporters
+ minitest-vcr
+ pg (~> 0.18)
+ pry-rails
+ puma (~> 3.7)
+ rails (~> 5.1.4)
+ sass-rails (~> 5.0)
+ selenium-webdriver
+ spring
+ spring-watcher-listen (~> 2.0.0)
+ turbolinks (~> 5)
+ tzinfo-data
+ uglifier (>= 1.3.0)
+ web-console (>= 3.3.0)
+ webmock
+
+BUNDLED WITH
+ 1.16.0.pre.3
diff --git a/README.md b/README.md
index 72e4dc963..7db80e4ca 100644
--- a/README.md
+++ b/README.md
@@ -1,88 +1,24 @@
-# Recipe API Consumer
+# README
-## Purpose
-Create a web application that will display recipes based on a search term. We will utilize an API from Edamam called the [Recipe Search API](https://developer.edamam.com/edamam-recipe-api).
+This README would normally document whatever steps are necessary to get the
+application up and running.
-This is an individual, [stage 2](https://github.com/Ada-Developers-Academy/pedagogy/blob/master/rule-of-three.md) project.
+Things you may want to cover:
-## Learning Goals:
-- Configure an API for consumption
-- Create authenticated API requests using HTTParty
-- Consume JSON responses from an API
-- Map response to application-specific data
-- Separate API logic from application logic
+* Ruby version
+* System dependencies
-### Baseline
-Before you start writing _any_ code:
+* Configuration
-- Explore the API documentation to become familiar with the request(s) you can make
-- Create a Trello Board listing the features you will need to add and use it to track the progress of your app.
+* Database creation
-Once you've explored the API docs, this project:
+* Database initialization
-- requires you to create a Rails application
- - conform to Rails conventions on naming and inflection
- - by using `rails new .` you will create a new rails app _inside_ of the fork folder instead of creating a _new_ folder for your rails app
-- Use better_errors for debugging purposes
-- Deploy your completed app to Heroku
+* How to run the test suite
+* Services (job queues, cache servers, search engines, etc.)
-### Detailed Requirements
-**Search**:
-- The user shall type in a search term that will:
- - Make a request to the API using the search term
- - Display the results in a list to the user
+* Deployment instructions
-**List View**:
-- This shall show a **paged** list of recipes for a given search term, _ten at a time_
-- This view shall show the name of the recipe and the corresponding photo
-- The view shall have a link from the recipe to a recipe show view
-
-**Show View**:
-- This shall show the details about a given recipe. These details include:
- - Name
- - Link to the original recipe (opens in a new tab)
- - Ingredients
- - Dietary information
-
-**Additional Requirements**:
-- One of the things that permits us to use this API, it providing attribution to the API's created. We must provide this somewhere on our site. Example locations include the footer or an about page.
- - [Examples from the API site](https://www.dropbox.com/sh/ss34tnh4kyfxkxu/AADNJ_pB7Ou8_MVrYxgM4aQYa?dl=0&preview=Attribution+examples.pdf)
-- You must also create tests for your API Wrapper & any classes as well as controller tests using VCR
-- Your site must have a **responsive** look and feel, use semantic HTML as well as any grid formatting using Zurb Foundation
-
-### Important Notes:
-- Using this API as a developer limits the number of API calls in a month to 5000. This means that we must try to minimize API calls for testing purposes as much as possible, to ensure you do not exceed this number of API calls in the one week of development we have.
-
-
-### Optionals:
-- Keep track of most recent search terms and allow user's to return to those searches
-- Implement an OAuth strategy using Google
- - Allow users to save recipes to a "favorites" section that they can return to
-- Provide checkboxes or other controls to limit the search to options such as:
- - Peanut Free
- - Soy Free
- - High Protien
- - Etc
-
-
-### Wireframes:
-You have creative control over the design and layout of this project. Below are optional wireframes you may use. It is not a requirement that you do.
-
-**Homepage:**
-
- 
-
- **Results Page:**
-
- 
-
- **Recipe Show Page:**
-
- 
-
-
-Reminder: Make sure all content is still easy to read when the width of a screen is shrunk. Use flexible measurements like width and REM.
-
-These should be responsive. When the screen width shrinks to a medium screen, have a row with only two recipes. On a small screen width, have only a single recipe per line.
+* ...
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 000000000..e85f91391
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,6 @@
+# Add your own tasks in files placed in lib/tasks ending in .rake,
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
+
+require_relative 'config/application'
+
+Rails.application.load_tasks
diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js
new file mode 100644
index 000000000..b16e53d6d
--- /dev/null
+++ b/app/assets/config/manifest.js
@@ -0,0 +1,3 @@
+//= link_tree ../images
+//= link_directory ../javascripts .js
+//= link_directory ../stylesheets .css
diff --git a/app/assets/images/.keep b/app/assets/images/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/assets/images/blu_stripes.png b/app/assets/images/blu_stripes.png
new file mode 100644
index 000000000..72d2e5c78
Binary files /dev/null and b/app/assets/images/blu_stripes.png differ
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
new file mode 100644
index 000000000..4f2cc0f55
--- /dev/null
+++ b/app/assets/javascripts/application.js
@@ -0,0 +1,18 @@
+// This is a manifest file that'll be compiled into application.js, which will include all the files
+// listed below.
+//
+// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
+// vendor/assets/javascripts directory can be referenced here using a relative path.
+//
+// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
+// compiled file. JavaScript code in this file should be added after the last require_* statement.
+//
+// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
+// about supported directives.
+//
+//= require rails-ujs
+//= require foundation
+//= require turbolinks
+//= require_tree .
+
+$(function(){ $(document).foundation(); });
diff --git a/app/assets/javascripts/cable.js b/app/assets/javascripts/cable.js
new file mode 100644
index 000000000..739aa5f02
--- /dev/null
+++ b/app/assets/javascripts/cable.js
@@ -0,0 +1,13 @@
+// Action Cable provides the framework to deal with WebSockets in Rails.
+// You can generate new channels where WebSocket features live using the `rails generate channel` command.
+//
+//= require action_cable
+//= require_self
+//= require_tree ./channels
+
+(function() {
+ this.App || (this.App = {});
+
+ App.cable = ActionCable.createConsumer();
+
+}).call(this);
diff --git a/app/assets/javascripts/channels/.keep b/app/assets/javascripts/channels/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/assets/stylesheets/_settings.scss b/app/assets/stylesheets/_settings.scss
new file mode 100644
index 000000000..b67ff00cd
--- /dev/null
+++ b/app/assets/stylesheets/_settings.scss
@@ -0,0 +1,863 @@
+// Foundation for Sites Settings
+// -----------------------------
+//
+// Table of Contents:
+//
+// 1. Global
+// 2. Breakpoints
+// 3. The Grid
+// 4. Base Typography
+// 5. Typography Helpers
+// 6. Abide
+// 7. Accordion
+// 8. Accordion Menu
+// 9. Badge
+// 10. Breadcrumbs
+// 11. Button
+// 12. Button Group
+// 13. Callout
+// 14. Card
+// 15. Close Button
+// 16. Drilldown
+// 17. Dropdown
+// 18. Dropdown Menu
+// 19. Flexbox Utilities
+// 20. Forms
+// 21. Label
+// 22. Media Object
+// 23. Menu
+// 24. Meter
+// 25. Off-canvas
+// 26. Orbit
+// 27. Pagination
+// 28. Progress Bar
+// 29. Prototype Arrow
+// 30. Prototype Border-Box
+// 31. Prototype Border-None
+// 32. Prototype Bordered
+// 33. Prototype Display
+// 34. Prototype Font-Styling
+// 35. Prototype List-Style-Type
+// 36. Prototype Overflow
+// 37. Prototype Position
+// 38. Prototype Rounded
+// 39. Prototype Separator
+// 40. Prototype Shadow
+// 41. Prototype Sizing
+// 42. Prototype Spacing
+// 43. Prototype Text-Decoration
+// 44. Prototype Text-Transformation
+// 45. Prototype Text-Utilities
+// 46. Responsive Embed
+// 47. Reveal
+// 48. Slider
+// 49. Switch
+// 50. Table
+// 51. Tabs
+// 52. Thumbnail
+// 53. Title Bar
+// 54. Tooltip
+// 55. Top Bar
+// 56. Xy Grid
+
+@import 'util/util';
+
+// 1. Global
+// ---------
+
+$global-font-size: 100%;
+$global-width: rem-calc(1200);
+$global-lineheight: 1.5;
+$foundation-palette: (
+ primary: #1779ba,
+ secondary: #767676,
+ success: #3adb76,
+ warning: #ffae00,
+ alert: #cc4b37,
+);
+$light-gray: #e6e6e6;
+$medium-gray: #cacaca;
+$dark-gray: #8a8a8a;
+$black: #0a0a0a;
+$white: #fefefe;
+$body-background: $white;
+$body-font-color: $black;
+$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;
+$body-antialiased: true;
+$global-margin: 1rem;
+$global-padding: 1rem;
+$global-position: 1rem;
+$global-weight-normal: normal;
+$global-weight-bold: bold;
+$global-radius: 0;
+$global-menu-padding: 0.7rem 1rem;
+$global-menu-nested-margin: 1rem;
+$global-text-direction: ltr;
+$global-flexbox: true;
+$global-prototype-breakpoints: false;
+$global-color-pick-contrast-tolerance: 0;
+$print-transparent-backgrounds: true;
+
+@include add-foundation-colors;
+
+// 2. Breakpoints
+// --------------
+
+$breakpoints: (
+ small: 0,
+ medium: 640px,
+ large: 1024px,
+ xlarge: 1200px,
+ xxlarge: 1440px,
+);
+$print-breakpoint: large;
+$breakpoint-classes: (small medium large);
+
+// 3. The Grid
+// -----------
+
+$grid-row-width: $global-width;
+$grid-column-count: 12;
+$grid-column-gutter: (
+ small: 20px,
+ medium: 30px,
+);
+$grid-column-align-edge: true;
+$grid-column-alias: 'columns';
+$block-grid-max: 8;
+
+// 4. Base Typography
+// ------------------
+
+$header-font-family: $body-font-family;
+$header-font-weight: $global-weight-normal;
+$header-font-style: normal;
+$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace;
+$header-color: inherit;
+$header-lineheight: 1.4;
+$header-margin-bottom: 0.5rem;
+$header-styles: (
+ small: (
+ 'h1': ('font-size': 24),
+ 'h2': ('font-size': 20),
+ 'h3': ('font-size': 19),
+ 'h4': ('font-size': 18),
+ 'h5': ('font-size': 17),
+ 'h6': ('font-size': 16),
+ ),
+ medium: (
+ 'h1': ('font-size': 48),
+ 'h2': ('font-size': 40),
+ 'h3': ('font-size': 31),
+ 'h4': ('font-size': 25),
+ 'h5': ('font-size': 20),
+ 'h6': ('font-size': 16),
+ ),
+);
+$header-text-rendering: optimizeLegibility;
+$small-font-size: 80%;
+$header-small-font-color: $medium-gray;
+$paragraph-lineheight: 1.6;
+$paragraph-margin-bottom: 1rem;
+$paragraph-text-rendering: optimizeLegibility;
+$code-color: $black;
+$code-font-family: $font-family-monospace;
+$code-font-weight: $global-weight-normal;
+$code-background: $light-gray;
+$code-border: 1px solid $medium-gray;
+$code-padding: rem-calc(2 5 1);
+$anchor-color: $primary-color;
+$anchor-color-hover: scale-color($anchor-color, $lightness: -14%);
+$anchor-text-decoration: none;
+$anchor-text-decoration-hover: none;
+$hr-width: $global-width;
+$hr-border: 1px solid $medium-gray;
+$hr-margin: rem-calc(20) auto;
+$list-lineheight: $paragraph-lineheight;
+$list-margin-bottom: $paragraph-margin-bottom;
+$list-style-type: disc;
+$list-style-position: outside;
+$list-side-margin: 1.25rem;
+$list-nested-side-margin: 1.25rem;
+$defnlist-margin-bottom: 1rem;
+$defnlist-term-weight: $global-weight-bold;
+$defnlist-term-margin-bottom: 0.3rem;
+$blockquote-color: $dark-gray;
+$blockquote-padding: rem-calc(9 20 0 19);
+$blockquote-border: 1px solid $medium-gray;
+$cite-font-size: rem-calc(13);
+$cite-color: $dark-gray;
+$cite-pseudo-content: '\2014 \0020';
+$keystroke-font: $font-family-monospace;
+$keystroke-color: $black;
+$keystroke-background: $light-gray;
+$keystroke-padding: rem-calc(2 4 0);
+$keystroke-radius: $global-radius;
+$abbr-underline: 1px dotted $black;
+
+// 5. Typography Helpers
+// ---------------------
+
+$lead-font-size: $global-font-size * 1.25;
+$lead-lineheight: 1.6;
+$subheader-lineheight: 1.4;
+$subheader-color: $dark-gray;
+$subheader-font-weight: $global-weight-normal;
+$subheader-margin-top: 0.2rem;
+$subheader-margin-bottom: 0.5rem;
+$stat-font-size: 2.5rem;
+
+// 6. Abide
+// --------
+
+$abide-inputs: true;
+$abide-labels: true;
+$input-background-invalid: get-color(alert);
+$form-label-color-invalid: get-color(alert);
+$input-error-color: get-color(alert);
+$input-error-font-size: rem-calc(12);
+$input-error-font-weight: $global-weight-bold;
+
+// 7. Accordion
+// ------------
+
+$accordion-background: $white;
+$accordion-plusminus: true;
+$accordion-title-font-size: rem-calc(12);
+$accordion-item-color: $primary-color;
+$accordion-item-background-hover: $light-gray;
+$accordion-item-padding: 1.25rem 1rem;
+$accordion-content-background: $white;
+$accordion-content-border: 1px solid $light-gray;
+$accordion-content-color: $body-font-color;
+$accordion-content-padding: 1rem;
+
+// 8. Accordion Menu
+// -----------------
+
+$accordionmenu-padding: $global-menu-padding;
+$accordionmenu-nested-margin: $global-menu-nested-margin;
+$accordionmenu-submenu-padding: $accordionmenu-padding;
+$accordionmenu-arrows: true;
+$accordionmenu-arrow-color: $primary-color;
+$accordionmenu-item-background: null;
+$accordionmenu-border: null;
+$accordionmenu-submenu-toggle-background: null;
+$accordion-submenu-toggle-border: $accordionmenu-border;
+$accordionmenu-submenu-toggle-width: 40px;
+$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width;
+$accordionmenu-arrow-size: 6px;
+
+// 9. Badge
+// --------
+
+$badge-background: $primary-color;
+$badge-color: $white;
+$badge-color-alt: $black;
+$badge-palette: $foundation-palette;
+$badge-padding: 0.3em;
+$badge-minwidth: 2.1em;
+$badge-font-size: 0.6rem;
+
+// 10. Breadcrumbs
+// ---------------
+
+$breadcrumbs-margin: 0 0 $global-margin 0;
+$breadcrumbs-item-font-size: rem-calc(11);
+$breadcrumbs-item-color: $primary-color;
+$breadcrumbs-item-color-current: $black;
+$breadcrumbs-item-color-disabled: $medium-gray;
+$breadcrumbs-item-margin: 0.75rem;
+$breadcrumbs-item-uppercase: true;
+$breadcrumbs-item-separator: true;
+$breadcrumbs-item-separator-item: '/';
+$breadcrumbs-item-separator-item-rtl: '\\';
+$breadcrumbs-item-separator-color: $medium-gray;
+
+// 11. Button
+// ----------
+
+$button-font-family: inherit;
+$button-padding: 0.85em 1em;
+$button-margin: 0 0 $global-margin 0;
+$button-fill: solid;
+$button-background: $primary-color;
+$button-background-hover: scale-color($button-background, $lightness: -15%);
+$button-color: $white;
+$button-color-alt: $black;
+$button-radius: $global-radius;
+$button-hollow-border-width: 1px;
+$button-sizes: (
+ tiny: 0.6rem,
+ small: 0.75rem,
+ default: 0.9rem,
+ large: 1.25rem,
+);
+$button-palette: $foundation-palette;
+$button-opacity-disabled: 0.25;
+$button-background-hover-lightness: -20%;
+$button-hollow-hover-lightness: -50%;
+$button-transition: background-color 0.25s ease-out, color 0.25s ease-out;
+
+// 12. Button Group
+// ----------------
+
+$buttongroup-margin: 1rem;
+$buttongroup-spacing: 1px;
+$buttongroup-child-selector: '.button';
+$buttongroup-expand-max: 6;
+$buttongroup-radius-on-each: true;
+
+// 13. Callout
+// -----------
+
+$callout-background: $white;
+$callout-background-fade: 85%;
+$callout-border: 1px solid rgba($black, 0.25);
+$callout-margin: 0 0 1rem 0;
+$callout-padding: 1rem;
+$callout-font-color: $body-font-color;
+$callout-font-color-alt: $body-background;
+$callout-radius: $global-radius;
+$callout-link-tint: 30%;
+
+// 14. Card
+// --------
+
+$card-background: $white;
+$card-font-color: $body-font-color;
+$card-divider-background: $light-gray;
+$card-border: 1px solid $light-gray;
+$card-shadow: none;
+$card-border-radius: $global-radius;
+$card-padding: $global-padding;
+$card-margin-bottom: $global-margin;
+
+// 15. Close Button
+// ----------------
+
+$closebutton-position: right top;
+$closebutton-offset-horizontal: (
+ small: 0.66rem,
+ medium: 1rem,
+);
+$closebutton-offset-vertical: (
+ small: 0.33em,
+ medium: 0.5rem,
+);
+$closebutton-size: (
+ small: 1.5em,
+ medium: 2em,
+);
+$closebutton-lineheight: 1;
+$closebutton-color: $dark-gray;
+$closebutton-color-hover: $black;
+
+// 16. Drilldown
+// -------------
+
+$drilldown-transition: transform 0.15s linear;
+$drilldown-arrows: true;
+$drilldown-padding: $global-menu-padding;
+$drilldown-nested-margin: 0;
+$drilldown-background: $white;
+$drilldown-submenu-padding: $drilldown-padding;
+$drilldown-submenu-background: $white;
+$drilldown-arrow-color: $primary-color;
+$drilldown-arrow-size: 6px;
+
+// 17. Dropdown
+// ------------
+
+$dropdown-padding: 1rem;
+$dropdown-background: $body-background;
+$dropdown-border: 1px solid $medium-gray;
+$dropdown-font-size: 1rem;
+$dropdown-width: 300px;
+$dropdown-radius: $global-radius;
+$dropdown-sizes: (
+ tiny: 100px,
+ small: 200px,
+ large: 400px,
+);
+
+// 18. Dropdown Menu
+// -----------------
+
+$dropdownmenu-arrows: true;
+$dropdownmenu-arrow-color: $anchor-color;
+$dropdownmenu-arrow-size: 6px;
+$dropdownmenu-arrow-padding: 1.5rem;
+$dropdownmenu-min-width: 200px;
+$dropdownmenu-background: $white;
+$dropdownmenu-submenu-background: $dropdownmenu-background;
+$dropdownmenu-padding: $global-menu-padding;
+$dropdownmenu-nested-margin: 0;
+$dropdownmenu-submenu-padding: $dropdownmenu-padding;
+$dropdownmenu-border: 1px solid $medium-gray;
+$dropdown-menu-item-color-active: get-color(primary);
+$dropdown-menu-item-background-active: transparent;
+
+// 19. Flexbox Utilities
+// ---------------------
+
+$flex-source-ordering-count: 6;
+$flexbox-responsive-breakpoints: true;
+
+// 20. Forms
+// ---------
+
+$fieldset-border: 1px solid $medium-gray;
+$fieldset-padding: rem-calc(20);
+$fieldset-margin: rem-calc(18 0);
+$legend-padding: rem-calc(0 3);
+$form-spacing: rem-calc(16);
+$helptext-color: $black;
+$helptext-font-size: rem-calc(13);
+$helptext-font-style: italic;
+$input-prefix-color: $black;
+$input-prefix-background: $light-gray;
+$input-prefix-border: 1px solid $medium-gray;
+$input-prefix-padding: 1rem;
+$form-label-color: $black;
+$form-label-font-size: rem-calc(14);
+$form-label-font-weight: $global-weight-normal;
+$form-label-line-height: 1.8;
+$select-background: $white;
+$select-triangle-color: $dark-gray;
+$select-radius: $global-radius;
+$input-color: $black;
+$input-placeholder-color: $medium-gray;
+$input-font-family: inherit;
+$input-font-size: rem-calc(16);
+$input-font-weight: $global-weight-normal;
+$input-line-height: $global-lineheight;
+$input-background: $white;
+$input-background-focus: $white;
+$input-background-disabled: $light-gray;
+$input-border: 1px solid $medium-gray;
+$input-border-focus: 1px solid $dark-gray;
+$input-padding: $form-spacing / 2;
+$input-shadow: inset 0 1px 2px rgba($black, 0.1);
+$input-shadow-focus: 0 0 5px $medium-gray;
+$input-cursor-disabled: not-allowed;
+$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
+$input-number-spinners: true;
+$input-radius: $global-radius;
+$form-button-radius: $global-radius;
+
+// 21. Label
+// ---------
+
+$label-background: $primary-color;
+$label-color: $white;
+$label-color-alt: $black;
+$label-palette: $foundation-palette;
+$label-font-size: 0.8rem;
+$label-padding: 0.33333rem 0.5rem;
+$label-radius: $global-radius;
+
+// 22. Media Object
+// ----------------
+
+$mediaobject-margin-bottom: $global-margin;
+$mediaobject-section-padding: $global-padding;
+$mediaobject-image-width-stacked: 100%;
+
+// 23. Menu
+// --------
+
+$menu-margin: 0;
+$menu-nested-margin: $global-menu-nested-margin;
+$menu-items-padding: $global-menu-padding;
+$menu-simple-margin: 1rem;
+$menu-item-color-active: $white;
+$menu-item-background-active: get-color(primary);
+$menu-icon-spacing: 0.25rem;
+$menu-item-background-hover: $light-gray;
+$menu-state-back-compat: true;
+$menu-centered-back-compat: true;
+
+// 24. Meter
+// ---------
+
+$meter-height: 1rem;
+$meter-radius: $global-radius;
+$meter-background: $medium-gray;
+$meter-fill-good: $success-color;
+$meter-fill-medium: $warning-color;
+$meter-fill-bad: $alert-color;
+
+// 25. Off-canvas
+// --------------
+
+$offcanvas-size: 250px;
+$offcanvas-vertical-size: 250px;
+$offcanvas-background: $light-gray;
+$offcanvas-shadow: 0 0 10px rgba($black, 0.7);
+$offcanvas-inner-shadow-size: 20px;
+$offcanvas-inner-shadow-color: rgba($black, 0.25);
+$offcanvas-overlay-zindex: 11;
+$offcanvas-push-zindex: 12;
+$offcanvas-overlap-zindex: 13;
+$offcanvas-reveal-zindex: 12;
+$offcanvas-transition-length: 0.5s;
+$offcanvas-transition-timing: ease;
+$offcanvas-fixed-reveal: true;
+$offcanvas-exit-background: rgba($white, 0.25);
+$maincontent-class: 'off-canvas-content';
+
+// 26. Orbit
+// ---------
+
+$orbit-bullet-background: $medium-gray;
+$orbit-bullet-background-active: $dark-gray;
+$orbit-bullet-diameter: 1.2rem;
+$orbit-bullet-margin: 0.1rem;
+$orbit-bullet-margin-top: 0.8rem;
+$orbit-bullet-margin-bottom: 0.8rem;
+$orbit-caption-background: rgba($black, 0.5);
+$orbit-caption-padding: 1rem;
+$orbit-control-background-hover: rgba($black, 0.5);
+$orbit-control-padding: 1rem;
+$orbit-control-zindex: 10;
+
+// 27. Pagination
+// --------------
+
+$pagination-font-size: rem-calc(14);
+$pagination-margin-bottom: $global-margin;
+$pagination-item-color: $black;
+$pagination-item-padding: rem-calc(3 10);
+$pagination-item-spacing: rem-calc(1);
+$pagination-radius: $global-radius;
+$pagination-item-background-hover: $light-gray;
+$pagination-item-background-current: $primary-color;
+$pagination-item-color-current: $white;
+$pagination-item-color-disabled: $medium-gray;
+$pagination-ellipsis-color: $black;
+$pagination-mobile-items: false;
+$pagination-mobile-current-item: false;
+$pagination-arrows: true;
+
+// 28. Progress Bar
+// ----------------
+
+$progress-height: 1rem;
+$progress-background: $medium-gray;
+$progress-margin-bottom: $global-margin;
+$progress-meter-background: $primary-color;
+$progress-radius: $global-radius;
+
+// 29. Prototype Arrow
+// -------------------
+
+$prototype-arrow-directions: (
+ down,
+ up,
+ right,
+ left
+);
+$prototype-arrow-size: 0.4375rem;
+$prototype-arrow-color: $black;
+
+// 30. Prototype Border-Box
+// ------------------------
+
+$prototype-border-box-breakpoints: $global-prototype-breakpoints;
+
+// 31. Prototype Border-None
+// -------------------------
+
+$prototype-border-none-breakpoints: $global-prototype-breakpoints;
+
+// 32. Prototype Bordered
+// ----------------------
+
+$prototype-bordered-breakpoints: $global-prototype-breakpoints;
+$prototype-border-width: rem-calc(1);
+$prototype-border-type: solid;
+$prototype-border-color: $medium-gray;
+
+// 33. Prototype Display
+// ---------------------
+
+$prototype-display-breakpoints: $global-prototype-breakpoints;
+$prototype-display: (
+ inline,
+ inline-block,
+ block,
+ table,
+ table-cell
+);
+
+// 34. Prototype Font-Styling
+// --------------------------
+
+$prototype-font-breakpoints: $global-prototype-breakpoints;
+$prototype-wide-letter-spacing: rem-calc(4);
+$prototype-font-normal: $global-weight-normal;
+$prototype-font-bold: $global-weight-bold;
+
+// 35. Prototype List-Style-Type
+// -----------------------------
+
+$prototype-list-breakpoints: $global-prototype-breakpoints;
+$prototype-style-type-unordered: (
+ disc,
+ circle,
+ square
+);
+$prototype-style-type-ordered: (
+ decimal,
+ lower-alpha,
+ lower-latin,
+ lower-roman,
+ upper-alpha,
+ upper-latin,
+ upper-roman
+);
+
+// 36. Prototype Overflow
+// ----------------------
+
+$prototype-overflow-breakpoints: $global-prototype-breakpoints;
+$prototype-overflow: (
+ visible,
+ hidden,
+ scroll
+);
+
+// 37. Prototype Position
+// ----------------------
+
+$prototype-position-breakpoints: $global-prototype-breakpoints;
+$prototype-position: (
+ static,
+ relative,
+ absolute,
+ fixed
+);
+$prototype-position-z-index: 975;
+
+// 38. Prototype Rounded
+// ---------------------
+
+$prototype-rounded-breakpoints: $global-prototype-breakpoints;
+$prototype-border-radius: rem-calc(3);
+
+// 39. Prototype Separator
+// -----------------------
+
+$prototype-separator-breakpoints: $global-prototype-breakpoints;
+$prototype-separator-align: center;
+$prototype-separator-height: rem-calc(2);
+$prototype-separator-width: 3rem;
+$prototype-separator-background: $primary-color;
+$prototype-separator-margin-top: $global-margin;
+
+// 40. Prototype Shadow
+// --------------------
+
+$prototype-shadow-breakpoints: $global-prototype-breakpoints;
+$prototype-box-shadow: 0 2px 5px 0 rgba(0,0,0,.16),
+ 0 2px 10px 0 rgba(0,0,0,.12);
+
+// 41. Prototype Sizing
+// --------------------
+
+$prototype-sizing-breakpoints: $global-prototype-breakpoints;
+$prototype-sizing: (
+ width,
+ height
+);
+$prototype-sizes: (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%
+);
+
+// 42. Prototype Spacing
+// ---------------------
+
+$prototype-spacing-breakpoints: $global-prototype-breakpoints;
+$prototype-spacers-count: 3;
+
+// 43. Prototype Text-Decoration
+// -----------------------------
+
+$prototype-decoration-breakpoints: $global-prototype-breakpoints;
+$prototype-text-decoration: (
+ overline,
+ underline,
+ line-through,
+);
+
+// 44. Prototype Text-Transformation
+// ---------------------------------
+
+$prototype-transformation-breakpoints: $global-prototype-breakpoints;
+$prototype-text-transformation: (
+ lowercase,
+ uppercase,
+ capitalize
+);
+
+// 45. Prototype Text-Utilities
+// ----------------------------
+
+$prototype-utilities-breakpoints: $global-prototype-breakpoints;
+$prototype-text-overflow: ellipsis;
+
+// 46. Responsive Embed
+// --------------------
+
+$responsive-embed-margin-bottom: rem-calc(16);
+$responsive-embed-ratios: (
+ default: 4 by 3,
+ widescreen: 16 by 9,
+);
+
+// 47. Reveal
+// ----------
+
+$reveal-background: $white;
+$reveal-width: 600px;
+$reveal-max-width: $global-width;
+$reveal-padding: $global-padding;
+$reveal-border: 1px solid $medium-gray;
+$reveal-radius: $global-radius;
+$reveal-zindex: 1005;
+$reveal-overlay-background: rgba($black, 0.45);
+
+// 48. Slider
+// ----------
+
+$slider-width-vertical: 0.5rem;
+$slider-transition: all 0.2s ease-in-out;
+$slider-height: 0.5rem;
+$slider-background: $light-gray;
+$slider-fill-background: $medium-gray;
+$slider-handle-height: 1.4rem;
+$slider-handle-width: 1.4rem;
+$slider-handle-background: $primary-color;
+$slider-opacity-disabled: 0.25;
+$slider-radius: $global-radius;
+
+// 49. Switch
+// ----------
+
+$switch-background: $medium-gray;
+$switch-background-active: $primary-color;
+$switch-height: 2rem;
+$switch-height-tiny: 1.5rem;
+$switch-height-small: 1.75rem;
+$switch-height-large: 2.5rem;
+$switch-radius: $global-radius;
+$switch-margin: $global-margin;
+$switch-paddle-background: $white;
+$switch-paddle-offset: 0.25rem;
+$switch-paddle-radius: $global-radius;
+$switch-paddle-transition: all 0.25s ease-out;
+
+// 50. Table
+// ---------
+
+$table-background: $white;
+$table-color-scale: 5%;
+$table-border: 1px solid smart-scale($table-background, $table-color-scale);
+$table-padding: rem-calc(8 10 10);
+$table-hover-scale: 2%;
+$table-row-hover: darken($table-background, $table-hover-scale);
+$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale);
+$table-is-striped: true;
+$table-striped-background: smart-scale($table-background, $table-color-scale);
+$table-stripe: even;
+$table-head-background: smart-scale($table-background, $table-color-scale / 2);
+$table-head-row-hover: darken($table-head-background, $table-hover-scale);
+$table-foot-background: smart-scale($table-background, $table-color-scale);
+$table-foot-row-hover: darken($table-foot-background, $table-hover-scale);
+$table-head-font-color: $body-font-color;
+$table-foot-font-color: $body-font-color;
+$show-header-for-stacked: false;
+$table-stack-breakpoint: medium;
+
+// 51. Tabs
+// --------
+
+$tab-margin: 0;
+$tab-background: $white;
+$tab-color: $primary-color;
+$tab-background-active: $light-gray;
+$tab-active-color: $primary-color;
+$tab-item-font-size: rem-calc(12);
+$tab-item-background-hover: $white;
+$tab-item-padding: 1.25rem 1.5rem;
+$tab-expand-max: 6;
+$tab-content-background: $white;
+$tab-content-border: $light-gray;
+$tab-content-color: $body-font-color;
+$tab-content-padding: 1rem;
+
+// 52. Thumbnail
+// -------------
+
+$thumbnail-border: solid 4px $white;
+$thumbnail-margin-bottom: $global-margin;
+$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2);
+$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
+$thumbnail-transition: box-shadow 200ms ease-out;
+$thumbnail-radius: $global-radius;
+
+// 53. Title Bar
+// -------------
+
+$titlebar-background: $black;
+$titlebar-color: $white;
+$titlebar-padding: 0.5rem;
+$titlebar-text-font-weight: bold;
+$titlebar-icon-color: $white;
+$titlebar-icon-color-hover: $medium-gray;
+$titlebar-icon-spacing: 0.25rem;
+
+// 54. Tooltip
+// -----------
+
+$has-tip-cursor: help;
+$has-tip-font-weight: $global-weight-bold;
+$has-tip-border-bottom: dotted 1px $dark-gray;
+$tooltip-background-color: $black;
+$tooltip-color: $white;
+$tooltip-padding: 0.75rem;
+$tooltip-max-width: 10rem;
+$tooltip-font-size: $small-font-size;
+$tooltip-pip-width: 0.75rem;
+$tooltip-pip-height: $tooltip-pip-width * 0.866;
+$tooltip-radius: $global-radius;
+
+// 55. Top Bar
+// -----------
+
+$topbar-padding: 0.5rem;
+$topbar-background: $light-gray;
+$topbar-submenu-background: $topbar-background;
+$topbar-title-spacing: 0.5rem 1rem 0.5rem 0;
+$topbar-input-width: 200px;
+$topbar-unstack-breakpoint: medium;
+
+// 56. Xy Grid
+// -----------
+
+$xy-grid: true;
+$grid-container: $global-width;
+$grid-columns: 12;
+$grid-margin-gutters: (
+ small: 20px,
+ medium: 30px
+);
+$grid-padding-gutters: $grid-margin-gutters;
+$grid-container-padding: $grid-padding-gutters;
+$grid-container-max: $global-width;
+$block-grid-max: 8;
+
diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
new file mode 100644
index 000000000..248b9a681
--- /dev/null
+++ b/app/assets/stylesheets/application.css
@@ -0,0 +1,91 @@
+/*
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
+ * listed below.
+ *
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
+ * vendor/assets/stylesheets directory can be referenced here using a relative path.
+ *
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
+ * files in this directory. Styles in this file should be added after the last require_* statement.
+ * It is generally better to create a new file per style scope.
+ *
+ *= require_tree .
+ *= require_self
+ *= require foundation_and_overrides
+
+
+ */
+
+body {
+ /*background-image: url("https://images.unsplash.com/photo-1454944338482-a69bb95894af?auto=format&fit=crop&w=1504&q=60&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D");
+ background-repeat: no-repeat;*/
+ /*background-size: cover;*/
+ background-color: #FFFFFF;
+ height: 100vh;
+ width: 100vw;
+ background-attachment: fixed;
+ font-size: 1.5em;
+ text-align: center;
+ font-family: 'Sumana', serif;
+ }
+
+ /*.button {
+ text-align: center;
+ border-radius: 10px;
+ padding: 20px;
+ background-color: orange;
+ }*/
+
+ h1{
+ font-family: 'Pacifico', cursive;
+ color: #36558F;
+ }
+
+h2, h3 {
+ font-family: 'Sumana', serif;
+
+ color: #564256;
+}
+
+h3 {
+ color: #3891A6;
+}
+
+p a {
+ color: #564256;
+ }
+
+ h3 a {
+ color: #A40E4C;
+ }
+
+p a:hover {
+ color: #E76D83;
+}
+
+ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+#attribution {
+ background-color: #23375c;
+ width: 80%;
+ margin-left: 10%;
+}
+
+.search-text {
+ text-align: center;
+}
+
+input#item {
+ border-radius: 15px;
+}
+
+.button {
+ border-radius: 10px;
+ padding: 10px;
+ background-color: #7FDBFF;
+}
diff --git a/app/assets/stylesheets/foundation_and_overrides.scss b/app/assets/stylesheets/foundation_and_overrides.scss
new file mode 100644
index 000000000..206615508
--- /dev/null
+++ b/app/assets/stylesheets/foundation_and_overrides.scss
@@ -0,0 +1,53 @@
+@charset 'utf-8';
+
+@import 'settings';
+@import 'foundation';
+
+// If you'd like to include motion-ui the foundation-rails gem comes prepackaged with it, uncomment the 3 @imports, if you are not using the gem you need to install the motion-ui sass package.
+//
+// @import 'motion-ui/motion-ui';
+
+// We include everything by default. To slim your CSS, remove components you don't use.
+
+@include foundation-global-styles;
+@include foundation-grid;
+@include foundation-typography;
+@include foundation-button;
+@include foundation-forms;
+@include foundation-visibility-classes;
+@include foundation-float-classes;
+@include foundation-accordion;
+@include foundation-accordion-menu;
+@include foundation-badge;
+@include foundation-breadcrumbs;
+@include foundation-button-group;
+@include foundation-callout;
+@include foundation-card;
+@include foundation-close-button;
+@include foundation-drilldown-menu;
+@include foundation-dropdown;
+@include foundation-dropdown-menu;
+@include foundation-responsive-embed;
+@include foundation-label;
+@include foundation-media-object;
+@include foundation-menu;
+@include foundation-menu-icon;
+@include foundation-off-canvas;
+@include foundation-orbit;
+@include foundation-pagination;
+@include foundation-progress-bar;
+@include foundation-slider;
+@include foundation-sticky;
+@include foundation-reveal;
+@include foundation-switch;
+@include foundation-table;
+@include foundation-tabs;
+@include foundation-thumbnail;
+@include foundation-title-bar;
+@include foundation-tooltip;
+@include foundation-top-bar;
+
+// If you'd like to include motion-ui the foundation-rails gem comes prepackaged with it, uncomment the 3 @imports, if you are not using the gem you need to install the motion-ui sass package.
+//
+// @include motion-ui-transitions;
+// @include motion-ui-animations;
diff --git a/app/channels/application_cable/channel.rb b/app/channels/application_cable/channel.rb
new file mode 100644
index 000000000..d67269728
--- /dev/null
+++ b/app/channels/application_cable/channel.rb
@@ -0,0 +1,4 @@
+module ApplicationCable
+ class Channel < ActionCable::Channel::Base
+ end
+end
diff --git a/app/channels/application_cable/connection.rb b/app/channels/application_cable/connection.rb
new file mode 100644
index 000000000..0ff5442f4
--- /dev/null
+++ b/app/channels/application_cable/connection.rb
@@ -0,0 +1,4 @@
+module ApplicationCable
+ class Connection < ActionCable::Connection::Base
+ end
+end
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
new file mode 100644
index 000000000..1c07694e9
--- /dev/null
+++ b/app/controllers/application_controller.rb
@@ -0,0 +1,3 @@
+class ApplicationController < ActionController::Base
+ protect_from_forgery with: :exception
+end
diff --git a/app/controllers/concerns/.keep b/app/controllers/concerns/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb
new file mode 100644
index 000000000..0199c6af2
--- /dev/null
+++ b/app/controllers/home_controller.rb
@@ -0,0 +1,9 @@
+# require "EdamamWrapper"
+# require "recipe"
+
+class HomeController < ApplicationController
+ def index
+
+ end
+
+end
diff --git a/app/controllers/recipes_controller.rb b/app/controllers/recipes_controller.rb
new file mode 100644
index 000000000..9b230b5d3
--- /dev/null
+++ b/app/controllers/recipes_controller.rb
@@ -0,0 +1,21 @@
+class RecipesController < ApplicationController
+ def index
+ @item = params[:item]
+ @from = (params[:from]) ? params[:from].to_i : 0
+ @previous_from = @from - 10
+ @from += 10
+
+ if params[:item]
+ @recipes = EdamamWrapper.list_recipes(params[:item], @from)
+ else
+ @recipes = nil
+ end
+ # binding.pry
+ # @recipes = EdamamWrapper.list_recipes(params[:item])
+ # @recipes = EdamamWrapper.order(:item).page params[:page]
+ end
+
+ def show
+ @recipe = EdamamWrapper.find_recipe(params[:id])
+ end
+end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
new file mode 100644
index 000000000..de6be7945
--- /dev/null
+++ b/app/helpers/application_helper.rb
@@ -0,0 +1,2 @@
+module ApplicationHelper
+end
diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb
new file mode 100644
index 000000000..a009ace51
--- /dev/null
+++ b/app/jobs/application_job.rb
@@ -0,0 +1,2 @@
+class ApplicationJob < ActiveJob::Base
+end
diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb
new file mode 100644
index 000000000..286b2239d
--- /dev/null
+++ b/app/mailers/application_mailer.rb
@@ -0,0 +1,4 @@
+class ApplicationMailer < ActionMailer::Base
+ default from: 'from@example.com'
+ layout 'mailer'
+end
diff --git a/app/models/application_record.rb b/app/models/application_record.rb
new file mode 100644
index 000000000..10a4cba84
--- /dev/null
+++ b/app/models/application_record.rb
@@ -0,0 +1,3 @@
+class ApplicationRecord < ActiveRecord::Base
+ self.abstract_class = true
+end
diff --git a/app/models/concerns/.keep b/app/models/concerns/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb
new file mode 100644
index 000000000..347ea475c
--- /dev/null
+++ b/app/views/home/index.html.erb
@@ -0,0 +1,16 @@
+
+
+
+
+ GRUB
+
+ <%= form_tag(recipes_path, :method => "get", id: "search-form") do %>
+
+ <%= label_tag :item, "Find the Flavor ....", class: "search-heading", class: "search-heading" %>
+ <%= text_field_tag :item, params[:item], placeholder: "Search Recipes", class: "search-text"%>
+
+
+ <%= submit_tag "Get Recipe", class: "button" %>
+
+ <% end %>
+
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
new file mode 100644
index 000000000..1da3e0cb3
--- /dev/null
+++ b/app/views/layouts/application.html.erb
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+ <%= content_for?(:title) ? yield(:title) : "Untitled" %>
+
+ <%= stylesheet_link_tag "application" %>
+ <%= javascript_include_tag "application", 'data-turbolinks-track' => true %>
+ <%= csrf_meta_tags %>
+
+
+
+
+
+ <%= yield %>
+
+
+
+
+
diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb
new file mode 100644
index 000000000..cbd34d2e9
--- /dev/null
+++ b/app/views/layouts/mailer.html.erb
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+ <%= yield %>
+
+
diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb
new file mode 100644
index 000000000..37f0bddbd
--- /dev/null
+++ b/app/views/layouts/mailer.text.erb
@@ -0,0 +1 @@
+<%= yield %>
diff --git a/app/views/recipes/index.html.erb b/app/views/recipes/index.html.erb
new file mode 100644
index 000000000..ad742b48f
--- /dev/null
+++ b/app/views/recipes/index.html.erb
@@ -0,0 +1,24 @@
+
+
+
Results for <%= params[:item] %>
+<% if !@recipes.nil? %>
+
+ <% @recipes.each do |recipe| %>
+
+
+ <%= link_to image_tag(recipe.image), recipe_path(id: recipe.uri) %>
+ <%= recipe.label %>
+
+
+ <%end %>
+
+
+
+<% end %>
+
diff --git a/app/views/recipes/show.html.erb b/app/views/recipes/show.html.erb
new file mode 100644
index 000000000..8937073a2
--- /dev/null
+++ b/app/views/recipes/show.html.erb
@@ -0,0 +1,12 @@
+<%= @recipe.label %>
+
+
+<%= link_to( "Original Recipe", @recipe.url ) %>
+Ingredients
+ <% @recipe.ingredients.each do |ingredient| %>
+ <%= ingredient %>
+ <% end %>
+Dietary Labels
+ <% @recipe.diet_labels.each do |diet| %>
+ <%= diet %>
+ <% end %>
diff --git a/assets/.DS_Store b/assets/.DS_Store
new file mode 100644
index 000000000..a3130e038
Binary files /dev/null and b/assets/.DS_Store differ
diff --git a/assets/waffle.jpg b/assets/waffle.jpg
new file mode 100644
index 000000000..3ca931b4b
Binary files /dev/null and b/assets/waffle.jpg differ
diff --git a/bin/bundle b/bin/bundle
new file mode 100755
index 000000000..66e9889e8
--- /dev/null
+++ b/bin/bundle
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
+load Gem.bin_path('bundler', 'bundle')
diff --git a/bin/rails b/bin/rails
new file mode 100755
index 000000000..5badb2fde
--- /dev/null
+++ b/bin/rails
@@ -0,0 +1,9 @@
+#!/usr/bin/env ruby
+begin
+ load File.expand_path('../spring', __FILE__)
+rescue LoadError => e
+ raise unless e.message.include?('spring')
+end
+APP_PATH = File.expand_path('../config/application', __dir__)
+require_relative '../config/boot'
+require 'rails/commands'
diff --git a/bin/rake b/bin/rake
new file mode 100755
index 000000000..d87d5f578
--- /dev/null
+++ b/bin/rake
@@ -0,0 +1,9 @@
+#!/usr/bin/env ruby
+begin
+ load File.expand_path('../spring', __FILE__)
+rescue LoadError => e
+ raise unless e.message.include?('spring')
+end
+require_relative '../config/boot'
+require 'rake'
+Rake.application.run
diff --git a/bin/setup b/bin/setup
new file mode 100755
index 000000000..78c4e861d
--- /dev/null
+++ b/bin/setup
@@ -0,0 +1,38 @@
+#!/usr/bin/env ruby
+require 'pathname'
+require 'fileutils'
+include FileUtils
+
+# path to your application root.
+APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
+
+def system!(*args)
+ system(*args) || abort("\n== Command #{args} failed ==")
+end
+
+chdir APP_ROOT do
+ # This script is a starting point to setup your application.
+ # Add necessary setup steps to this file.
+
+ puts '== Installing dependencies =='
+ system! 'gem install bundler --conservative'
+ system('bundle check') || system!('bundle install')
+
+ # Install JavaScript dependencies if using Yarn
+ # system('bin/yarn')
+
+
+ # puts "\n== Copying sample files =="
+ # unless File.exist?('config/database.yml')
+ # cp 'config/database.yml.sample', 'config/database.yml'
+ # end
+
+ puts "\n== Preparing database =="
+ system! 'bin/rails db:setup'
+
+ puts "\n== Removing old logs and tempfiles =="
+ system! 'bin/rails log:clear tmp:clear'
+
+ puts "\n== Restarting application server =="
+ system! 'bin/rails restart'
+end
diff --git a/bin/spring b/bin/spring
new file mode 100755
index 000000000..fb2ec2ebb
--- /dev/null
+++ b/bin/spring
@@ -0,0 +1,17 @@
+#!/usr/bin/env ruby
+
+# This file loads spring without using Bundler, in order to be fast.
+# It gets overwritten when you run the `spring binstub` command.
+
+unless defined?(Spring)
+ require 'rubygems'
+ require 'bundler'
+
+ lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read)
+ spring = lockfile.specs.detect { |spec| spec.name == "spring" }
+ if spring
+ Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path
+ gem 'spring', spring.version
+ require 'spring/binstub'
+ end
+end
diff --git a/bin/update b/bin/update
new file mode 100755
index 000000000..a8e4462f2
--- /dev/null
+++ b/bin/update
@@ -0,0 +1,29 @@
+#!/usr/bin/env ruby
+require 'pathname'
+require 'fileutils'
+include FileUtils
+
+# path to your application root.
+APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
+
+def system!(*args)
+ system(*args) || abort("\n== Command #{args} failed ==")
+end
+
+chdir APP_ROOT do
+ # This script is a way to update your development environment automatically.
+ # Add necessary update steps to this file.
+
+ puts '== Installing dependencies =='
+ system! 'gem install bundler --conservative'
+ system('bundle check') || system!('bundle install')
+
+ puts "\n== Updating database =="
+ system! 'bin/rails db:migrate'
+
+ puts "\n== Removing old logs and tempfiles =="
+ system! 'bin/rails log:clear tmp:clear'
+
+ puts "\n== Restarting application server =="
+ system! 'bin/rails restart'
+end
diff --git a/bin/yarn b/bin/yarn
new file mode 100755
index 000000000..c2bacef83
--- /dev/null
+++ b/bin/yarn
@@ -0,0 +1,11 @@
+#!/usr/bin/env ruby
+VENDOR_PATH = File.expand_path('..', __dir__)
+Dir.chdir(VENDOR_PATH) do
+ begin
+ exec "yarnpkg #{ARGV.join(" ")}"
+ rescue Errno::ENOENT
+ $stderr.puts "Yarn executable was not detected in the system."
+ $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
+ exit 1
+ end
+end
diff --git a/config.ru b/config.ru
new file mode 100644
index 000000000..f7ba0b527
--- /dev/null
+++ b/config.ru
@@ -0,0 +1,5 @@
+# This file is used by Rack-based servers to start the application.
+
+require_relative 'config/environment'
+
+run Rails.application
diff --git a/config/application.rb b/config/application.rb
new file mode 100644
index 000000000..2c218d3c8
--- /dev/null
+++ b/config/application.rb
@@ -0,0 +1,28 @@
+require_relative 'boot'
+
+require 'rails/all'
+
+# Require the gems listed in Gemfile, including any gems
+# you've limited to :test, :development, or :production.
+Bundler.require(*Rails.groups)
+
+module ApiMuncher
+ class Application < Rails::Application
+ config.generators do |g|
+ # Force new test files to be generated in the minitest-spec style
+ g.test_framework :minitest, spec: true
+
+ # Always use .js files, never .coffee
+ g.javascript_engine :js
+ end
+ # Initialize configuration defaults for originally generated Rails version.
+ config.load_defaults 5.1
+
+ # Settings in config/environments/* take precedence over those specified here.
+ # Application configuration should go into files in config/initializers
+ # -- all .rb files in that directory are automatically loaded.
+
+ # Automatically load all code from /lib
+ config.autoload_paths << Rails.root.join('lib')
+ end
+end
diff --git a/config/boot.rb b/config/boot.rb
new file mode 100644
index 000000000..30f5120df
--- /dev/null
+++ b/config/boot.rb
@@ -0,0 +1,3 @@
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
+
+require 'bundler/setup' # Set up gems listed in the Gemfile.
diff --git a/config/cable.yml b/config/cable.yml
new file mode 100644
index 000000000..ab338d3d1
--- /dev/null
+++ b/config/cable.yml
@@ -0,0 +1,10 @@
+development:
+ adapter: async
+
+test:
+ adapter: async
+
+production:
+ adapter: redis
+ url: redis://localhost:6379/1
+ channel_prefix: api-muncher_production
diff --git a/config/database.yml b/config/database.yml
new file mode 100644
index 000000000..4cb63a555
--- /dev/null
+++ b/config/database.yml
@@ -0,0 +1,85 @@
+# PostgreSQL. Versions 9.1 and up are supported.
+#
+# Install the pg driver:
+# gem install pg
+# On OS X with Homebrew:
+# gem install pg -- --with-pg-config=/usr/local/bin/pg_config
+# On OS X with MacPorts:
+# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
+# On Windows:
+# gem install pg
+# Choose the win32 build.
+# Install PostgreSQL and put its /bin directory on your path.
+#
+# Configure Using Gemfile
+# gem 'pg'
+#
+default: &default
+ adapter: postgresql
+ encoding: unicode
+ # For details on connection pooling, see Rails configuration guide
+ # http://guides.rubyonrails.org/configuring.html#database-pooling
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
+
+development:
+ <<: *default
+ database: api-muncher_development
+
+ # The specified database role being used to connect to postgres.
+ # To create additional roles in postgres see `$ createuser --help`.
+ # When left blank, postgres will use the default role. This is
+ # the same name as the operating system user that initialized the database.
+ #username: api-muncher
+
+ # The password associated with the postgres role (username).
+ #password:
+
+ # Connect on a TCP socket. Omitted by default since the client uses a
+ # domain socket that doesn't need configuration. Windows does not have
+ # domain sockets, so uncomment these lines.
+ #host: localhost
+
+ # The TCP port the server listens on. Defaults to 5432.
+ # If your server runs on a different port number, change accordingly.
+ #port: 5432
+
+ # Schema search path. The server defaults to $user,public
+ #schema_search_path: myapp,sharedapp,public
+
+ # Minimum log levels, in increasing order:
+ # debug5, debug4, debug3, debug2, debug1,
+ # log, notice, warning, error, fatal, and panic
+ # Defaults to warning.
+ #min_messages: notice
+
+# Warning: The database defined as "test" will be erased and
+# re-generated from your development database when you run "rake".
+# Do not set this db to the same as development or production.
+test:
+ <<: *default
+ database: api-muncher_test
+
+# As with config/secrets.yml, you never want to store sensitive information,
+# like your database password, in your source code. If your source code is
+# ever seen by anyone, they now have access to your database.
+#
+# Instead, provide the password as a unix environment variable when you boot
+# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
+# for a full rundown on how to provide these environment variables in a
+# production deployment.
+#
+# On Heroku and other platform providers, you may have a full connection URL
+# available as an environment variable. For example:
+#
+# DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
+#
+# You can use this database configuration with:
+#
+# production:
+# url: <%= ENV['DATABASE_URL'] %>
+#
+production:
+ <<: *default
+ database: api-muncher_production
+ username: api-muncher
+ password: <%= ENV['API-MUNCHER_DATABASE_PASSWORD'] %>
diff --git a/config/environment.rb b/config/environment.rb
new file mode 100644
index 000000000..426333bb4
--- /dev/null
+++ b/config/environment.rb
@@ -0,0 +1,5 @@
+# Load the Rails application.
+require_relative 'application'
+
+# Initialize the Rails application.
+Rails.application.initialize!
diff --git a/config/environments/development.rb b/config/environments/development.rb
new file mode 100644
index 000000000..5187e2218
--- /dev/null
+++ b/config/environments/development.rb
@@ -0,0 +1,54 @@
+Rails.application.configure do
+ # Settings specified here will take precedence over those in config/application.rb.
+
+ # In the development environment your application's code is reloaded on
+ # every request. This slows down response time but is perfect for development
+ # since you don't have to restart the web server when you make code changes.
+ config.cache_classes = false
+
+ # Do not eager load code on boot.
+ config.eager_load = false
+
+ # Show full error reports.
+ config.consider_all_requests_local = true
+
+ # Enable/disable caching. By default caching is disabled.
+ if Rails.root.join('tmp/caching-dev.txt').exist?
+ config.action_controller.perform_caching = true
+
+ config.cache_store = :memory_store
+ config.public_file_server.headers = {
+ 'Cache-Control' => "public, max-age=#{2.days.seconds.to_i}"
+ }
+ else
+ config.action_controller.perform_caching = false
+
+ config.cache_store = :null_store
+ end
+
+ # Don't care if the mailer can't send.
+ config.action_mailer.raise_delivery_errors = false
+
+ config.action_mailer.perform_caching = false
+
+ # Print deprecation notices to the Rails logger.
+ config.active_support.deprecation = :log
+
+ # Raise an error on page load if there are pending migrations.
+ config.active_record.migration_error = :page_load
+
+ # Debug mode disables concatenation and preprocessing of assets.
+ # This option may cause significant delays in view rendering with a large
+ # number of complex assets.
+ config.assets.debug = true
+
+ # Suppress logger output for asset requests.
+ config.assets.quiet = true
+
+ # Raises error for missing translations
+ # config.action_view.raise_on_missing_translations = true
+
+ # Use an evented file watcher to asynchronously detect changes in source code,
+ # routes, locales, etc. This feature depends on the listen gem.
+ config.file_watcher = ActiveSupport::EventedFileUpdateChecker
+end
diff --git a/config/environments/production.rb b/config/environments/production.rb
new file mode 100644
index 000000000..611bf345f
--- /dev/null
+++ b/config/environments/production.rb
@@ -0,0 +1,91 @@
+Rails.application.configure do
+ # Settings specified here will take precedence over those in config/application.rb.
+
+ # Code is not reloaded between requests.
+ config.cache_classes = true
+
+ # Eager load code on boot. This eager loads most of Rails and
+ # your application in memory, allowing both threaded web servers
+ # and those relying on copy on write to perform better.
+ # Rake tasks automatically ignore this option for performance.
+ config.eager_load = true
+
+ # Full error reports are disabled and caching is turned on.
+ config.consider_all_requests_local = false
+ config.action_controller.perform_caching = true
+
+ # Attempt to read encrypted secrets from `config/secrets.yml.enc`.
+ # Requires an encryption key in `ENV["RAILS_MASTER_KEY"]` or
+ # `config/secrets.yml.key`.
+ config.read_encrypted_secrets = true
+
+ # Disable serving static files from the `/public` folder by default since
+ # Apache or NGINX already handles this.
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
+
+ # Compress JavaScripts and CSS.
+ config.assets.js_compressor = :uglifier
+ # config.assets.css_compressor = :sass
+
+ # Do not fallback to assets pipeline if a precompiled asset is missed.
+ config.assets.compile = false
+
+ # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
+
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
+ # config.action_controller.asset_host = 'http://assets.example.com'
+
+ # Specifies the header that your server uses for sending files.
+ # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
+
+ # Mount Action Cable outside main process or domain
+ # config.action_cable.mount_path = nil
+ # config.action_cable.url = 'wss://example.com/cable'
+ # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
+
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
+ # config.force_ssl = true
+
+ # Use the lowest log level to ensure availability of diagnostic information
+ # when problems arise.
+ config.log_level = :debug
+
+ # Prepend all log lines with the following tags.
+ config.log_tags = [ :request_id ]
+
+ # Use a different cache store in production.
+ # config.cache_store = :mem_cache_store
+
+ # Use a real queuing backend for Active Job (and separate queues per environment)
+ # config.active_job.queue_adapter = :resque
+ # config.active_job.queue_name_prefix = "api-muncher_#{Rails.env}"
+ config.action_mailer.perform_caching = false
+
+ # Ignore bad email addresses and do not raise email delivery errors.
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
+ # config.action_mailer.raise_delivery_errors = false
+
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
+ # the I18n.default_locale when a translation cannot be found).
+ config.i18n.fallbacks = true
+
+ # Send deprecation notices to registered listeners.
+ config.active_support.deprecation = :notify
+
+ # Use default logging formatter so that PID and timestamp are not suppressed.
+ config.log_formatter = ::Logger::Formatter.new
+
+ # Use a different logger for distributed setups.
+ # require 'syslog/logger'
+ # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
+
+ if ENV["RAILS_LOG_TO_STDOUT"].present?
+ logger = ActiveSupport::Logger.new(STDOUT)
+ logger.formatter = config.log_formatter
+ config.logger = ActiveSupport::TaggedLogging.new(logger)
+ end
+
+ # Do not dump schema after migrations.
+ config.active_record.dump_schema_after_migration = false
+end
diff --git a/config/environments/test.rb b/config/environments/test.rb
new file mode 100644
index 000000000..8e5cbde53
--- /dev/null
+++ b/config/environments/test.rb
@@ -0,0 +1,42 @@
+Rails.application.configure do
+ # Settings specified here will take precedence over those in config/application.rb.
+
+ # The test environment is used exclusively to run your application's
+ # test suite. You never need to work with it otherwise. Remember that
+ # your test database is "scratch space" for the test suite and is wiped
+ # and recreated between test runs. Don't rely on the data there!
+ config.cache_classes = true
+
+ # Do not eager load code on boot. This avoids loading your whole application
+ # just for the purpose of running a single test. If you are using a tool that
+ # preloads Rails for running tests, you may have to set it to true.
+ config.eager_load = false
+
+ # Configure public file server for tests with Cache-Control for performance.
+ config.public_file_server.enabled = true
+ config.public_file_server.headers = {
+ 'Cache-Control' => "public, max-age=#{1.hour.seconds.to_i}"
+ }
+
+ # Show full error reports and disable caching.
+ config.consider_all_requests_local = true
+ config.action_controller.perform_caching = false
+
+ # Raise exceptions instead of rendering exception templates.
+ config.action_dispatch.show_exceptions = false
+
+ # Disable request forgery protection in test environment.
+ config.action_controller.allow_forgery_protection = false
+ config.action_mailer.perform_caching = false
+
+ # Tell Action Mailer not to deliver emails to the real world.
+ # The :test delivery method accumulates sent emails in the
+ # ActionMailer::Base.deliveries array.
+ config.action_mailer.delivery_method = :test
+
+ # Print deprecation notices to the stderr.
+ config.active_support.deprecation = :stderr
+
+ # Raises error for missing translations
+ # config.action_view.raise_on_missing_translations = true
+end
diff --git a/config/initializers/application_controller_renderer.rb b/config/initializers/application_controller_renderer.rb
new file mode 100644
index 000000000..89d2efab2
--- /dev/null
+++ b/config/initializers/application_controller_renderer.rb
@@ -0,0 +1,8 @@
+# Be sure to restart your server when you modify this file.
+
+# ActiveSupport::Reloader.to_prepare do
+# ApplicationController.renderer.defaults.merge!(
+# http_host: 'example.org',
+# https: false
+# )
+# end
diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb
new file mode 100644
index 000000000..4b828e80c
--- /dev/null
+++ b/config/initializers/assets.rb
@@ -0,0 +1,14 @@
+# Be sure to restart your server when you modify this file.
+
+# Version of your assets, change this if you want to expire all your assets.
+Rails.application.config.assets.version = '1.0'
+
+# Add additional assets to the asset load path.
+# Rails.application.config.assets.paths << Emoji.images_path
+# Add Yarn node_modules folder to the asset load path.
+Rails.application.config.assets.paths << Rails.root.join('node_modules')
+
+# Precompile additional assets.
+# application.js, application.css, and all non-JS/CSS in the app/assets
+# folder are already added.
+# Rails.application.config.assets.precompile += %w( admin.js admin.css )
diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb
new file mode 100644
index 000000000..59385cdf3
--- /dev/null
+++ b/config/initializers/backtrace_silencers.rb
@@ -0,0 +1,7 @@
+# Be sure to restart your server when you modify this file.
+
+# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
+# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
+
+# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
+# Rails.backtrace_cleaner.remove_silencers!
diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb
new file mode 100644
index 000000000..5a6a32d37
--- /dev/null
+++ b/config/initializers/cookies_serializer.rb
@@ -0,0 +1,5 @@
+# Be sure to restart your server when you modify this file.
+
+# Specify a serializer for the signed and encrypted cookie jars.
+# Valid options are :json, :marshal, and :hybrid.
+Rails.application.config.action_dispatch.cookies_serializer = :json
diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb
new file mode 100644
index 000000000..4a994e1e7
--- /dev/null
+++ b/config/initializers/filter_parameter_logging.rb
@@ -0,0 +1,4 @@
+# Be sure to restart your server when you modify this file.
+
+# Configure sensitive parameters which will be filtered from the log file.
+Rails.application.config.filter_parameters += [:password]
diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb
new file mode 100644
index 000000000..ac033bf9d
--- /dev/null
+++ b/config/initializers/inflections.rb
@@ -0,0 +1,16 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new inflection rules using the following format. Inflections
+# are locale specific, and you may define rules for as many different
+# locales as you wish. All of these examples are active by default:
+# ActiveSupport::Inflector.inflections(:en) do |inflect|
+# inflect.plural /^(ox)$/i, '\1en'
+# inflect.singular /^(ox)en/i, '\1'
+# inflect.irregular 'person', 'people'
+# inflect.uncountable %w( fish sheep )
+# end
+
+# These inflection rules are supported but not enabled by default:
+# ActiveSupport::Inflector.inflections(:en) do |inflect|
+# inflect.acronym 'RESTful'
+# end
diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb
new file mode 100644
index 000000000..dc1899682
--- /dev/null
+++ b/config/initializers/mime_types.rb
@@ -0,0 +1,4 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new mime types for use in respond_to blocks:
+# Mime::Type.register "text/richtext", :rtf
diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb
new file mode 100644
index 000000000..bbfc3961b
--- /dev/null
+++ b/config/initializers/wrap_parameters.rb
@@ -0,0 +1,14 @@
+# Be sure to restart your server when you modify this file.
+
+# This file contains settings for ActionController::ParamsWrapper which
+# is enabled by default.
+
+# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
+ActiveSupport.on_load(:action_controller) do
+ wrap_parameters format: [:json]
+end
+
+# To enable root element in JSON for ActiveRecord objects.
+# ActiveSupport.on_load(:active_record) do
+# self.include_root_in_json = true
+# end
diff --git a/config/locales/en.yml b/config/locales/en.yml
new file mode 100644
index 000000000..decc5a857
--- /dev/null
+++ b/config/locales/en.yml
@@ -0,0 +1,33 @@
+# Files in the config/locales directory are used for internationalization
+# and are automatically loaded by Rails. If you want to use locales other
+# than English, add the necessary files in this directory.
+#
+# To use the locales, use `I18n.t`:
+#
+# I18n.t 'hello'
+#
+# In views, this is aliased to just `t`:
+#
+# <%= t('hello') %>
+#
+# To use a different locale, set it with `I18n.locale`:
+#
+# I18n.locale = :es
+#
+# This would use the information in config/locales/es.yml.
+#
+# The following keys must be escaped otherwise they will not be retrieved by
+# the default I18n backend:
+#
+# true, false, on, off, yes, no
+#
+# Instead, surround them with single quotes.
+#
+# en:
+# 'true': 'foo'
+#
+# To learn more, please read the Rails Internationalization guide
+# available at http://guides.rubyonrails.org/i18n.html.
+
+en:
+ hello: "Hello world"
diff --git a/config/puma.rb b/config/puma.rb
new file mode 100644
index 000000000..1e19380dc
--- /dev/null
+++ b/config/puma.rb
@@ -0,0 +1,56 @@
+# Puma can serve each request in a thread from an internal thread pool.
+# The `threads` method setting takes two numbers: a minimum and maximum.
+# Any libraries that use thread pools should be configured to match
+# the maximum value specified for Puma. Default is set to 5 threads for minimum
+# and maximum; this matches the default thread size of Active Record.
+#
+threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
+threads threads_count, threads_count
+
+# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
+#
+port ENV.fetch("PORT") { 3000 }
+
+# Specifies the `environment` that Puma will run in.
+#
+environment ENV.fetch("RAILS_ENV") { "development" }
+
+# Specifies the number of `workers` to boot in clustered mode.
+# Workers are forked webserver processes. If using threads and workers together
+# the concurrency of the application would be max `threads` * `workers`.
+# Workers do not work on JRuby or Windows (both of which do not support
+# processes).
+#
+# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
+
+# Use the `preload_app!` method when specifying a `workers` number.
+# This directive tells Puma to first boot the application and load code
+# before forking the application. This takes advantage of Copy On Write
+# process behavior so workers use less memory. If you use this option
+# you need to make sure to reconnect any threads in the `on_worker_boot`
+# block.
+#
+# preload_app!
+
+# If you are preloading your application and using Active Record, it's
+# recommended that you close any connections to the database before workers
+# are forked to prevent connection leakage.
+#
+# before_fork do
+# ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
+# end
+
+# The code in the `on_worker_boot` will be called if you are using
+# clustered mode by specifying a number of `workers`. After each worker
+# process is booted, this block will be run. If you are using the `preload_app!`
+# option, you will want to use this block to reconnect to any threads
+# or connections that may have been created at application boot, as Ruby
+# cannot share connections between processes.
+#
+# on_worker_boot do
+# ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
+# end
+#
+
+# Allow puma to be restarted by `rails restart` command.
+plugin :tmp_restart
diff --git a/config/routes.rb b/config/routes.rb
new file mode 100644
index 000000000..c7dd5f3ac
--- /dev/null
+++ b/config/routes.rb
@@ -0,0 +1,17 @@
+Rails.application.routes.draw do
+ # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
+ # root 'recipe#index'
+ # get 'recipes', to: 'home#'
+
+ root "home#index"
+
+ # get "/recipes/", to: "recipes#index", as: "recipes"
+ # resources :home
+
+ resources :recipes, only: [:index]
+
+ get "/recipe", to: "recipes#show", as: "recipe"
+ # get '/recipes/:uri', to: "recipes#show", as: 'recipe'
+
+ # resources :recipes
+end
diff --git a/config/secrets.yml b/config/secrets.yml
new file mode 100644
index 000000000..aa77c9b5b
--- /dev/null
+++ b/config/secrets.yml
@@ -0,0 +1,32 @@
+# Be sure to restart your server when you modify this file.
+
+# Your secret key is used for verifying the integrity of signed cookies.
+# If you change this key, all old signed cookies will become invalid!
+
+# Make sure the secret is at least 30 characters and all random,
+# no regular words or you'll be exposed to dictionary attacks.
+# You can use `rails secret` to generate a secure secret key.
+
+# Make sure the secrets in this file are kept private
+# if you're sharing your code publicly.
+
+# Shared secrets are available across all environments.
+
+# shared:
+# api_key: a1B2c3D4e5F6
+
+# Environmental secrets are only available for that specific environment.
+
+development:
+ secret_key_base: 0ba495dee7b9b35974d0e51a47111df4097b27b052a0f36c80da5b1ee3745e57e854b95602b75841d947ab33f5ebafc3a7c275e2bcafe7f51b987da42263568b
+
+test:
+ secret_key_base: 0b5807503269d872249dfd6c87a9012b251e9b224efd5e429170e2ab16b1cf7d5b7242155b706759466a9ec1ce522bdfb3fd5f48c407a83fd19a527d4daa4185
+
+# Do not keep production secrets in the unencrypted secrets file.
+# Instead, either read values from the environment.
+# Or, use `bin/rails secrets:setup` to configure encrypted secrets
+# and move the `production:` environment over there.
+
+production:
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
diff --git a/config/spring.rb b/config/spring.rb
new file mode 100644
index 000000000..c9119b40c
--- /dev/null
+++ b/config/spring.rb
@@ -0,0 +1,6 @@
+%w(
+ .ruby-version
+ .rbenv-vars
+ tmp/restart.txt
+ tmp/caching-dev.txt
+).each { |path| Spring.watch(path) }
diff --git a/db/schema.rb b/db/schema.rb
new file mode 100644
index 000000000..2611543b3
--- /dev/null
+++ b/db/schema.rb
@@ -0,0 +1,18 @@
+# This file is auto-generated from the current state of the database. Instead
+# of editing this file, please use the migrations feature of Active Record to
+# incrementally modify your database, and then regenerate this schema definition.
+#
+# Note that this schema.rb definition is the authoritative source for your
+# database schema. If you need to create the application database on another
+# system, you should be using db:schema:load, not running all the migrations
+# from scratch. The latter is a flawed and unsustainable approach (the more migrations
+# you'll amass, the slower it'll run and the greater likelihood for issues).
+#
+# It's strongly recommended that you check this file into your version control system.
+
+ActiveRecord::Schema.define(version: 0) do
+
+ # These are extensions that must be enabled in order to support this database
+ enable_extension "plpgsql"
+
+end
diff --git a/db/seeds.rb b/db/seeds.rb
new file mode 100644
index 000000000..1beea2acc
--- /dev/null
+++ b/db/seeds.rb
@@ -0,0 +1,7 @@
+# This file should contain all the record creation needed to seed the database with its default values.
+# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
+#
+# Examples:
+#
+# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
+# Character.create(name: 'Luke', movie: movies.first)
diff --git a/lib/assets/.keep b/lib/assets/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/lib/edamam_wrapper.rb b/lib/edamam_wrapper.rb
new file mode 100644
index 000000000..4b1f0b621
--- /dev/null
+++ b/lib/edamam_wrapper.rb
@@ -0,0 +1,60 @@
+require "uri"
+
+class EdamamWrapper
+ BASE_URL = "https://api.edamam.com/search?"
+ ID = ENV["API_ID"]
+ KEY = ENV["API_KEY"]
+
+ class ApiError < StandardError
+ end
+
+ def self.list_recipes(item, from, id=ID, key=KEY)
+ url = BASE_URL + "q=#{item}" + "&from=#{from}" + "&app_id=#{ID}" + "&app_key=#{KEY}"
+ data = HTTParty.get(url)
+ # binding.pry
+
+ unless data.ok?
+ raise ApiError.new("Call to list recipes failed")
+ end
+
+ recipe_list = []
+ if data["hits"]
+ data["hits"].each do |hit|
+ # hit.each do |recipe|
+ recipe_list << self.create_recipe(hit["recipe"])
+ end
+ return recipe_list
+ end
+ end
+
+ def self.find_recipe(uri)
+ url = BASE_URL + "r=#{URI.encode(uri)}" + "&app_id=#{ID}" + "&app_key=#{KEY}"
+ data = HTTParty.get(url)
+
+ recipe = nil
+ if data
+ params = data[0]
+ recipe = self.create_recipe(params)
+ end
+ end
+
+ private
+
+ def self.create_recipe(api_params) #modifications made.
+ return Recipe.new(
+ api_params["uri"],
+ api_params["label"],
+ api_params["image"],
+ api_params["url"],
+ api_params["ingredientLines"],
+ api_params["dietLabels"]
+ )
+ end
+
+ # def get_id(params)
+ # uri = params["recipe"]["uri"]
+ # arr_uri = uri.split(/recipe_/)
+ # id = arr_uri[1]
+ # return id
+ # end
+end
diff --git a/lib/recipe.rb b/lib/recipe.rb
new file mode 100644
index 000000000..83abcce3d
--- /dev/null
+++ b/lib/recipe.rb
@@ -0,0 +1,14 @@
+class Recipe
+ attr_reader :uri, :label, :image, :url, :ingredients, :diet_labels
+
+ def initialize(uri, label, image, url,ingredients, diet_labels)
+ raise ArgumentError if uri == nil || uri == "" || label == nil || label == ""
+
+ @uri = uri
+ @label = label
+ @image = image
+ @url = url
+ @ingredients = ingredients
+ @diet_labels = diet_labels
+ end
+end
diff --git a/lib/tasks/.keep b/lib/tasks/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/log/.keep b/log/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/package.json b/package.json
new file mode 100644
index 000000000..5da55eadc
--- /dev/null
+++ b/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "api-muncher",
+ "private": true,
+ "dependencies": {}
+}
diff --git a/public/404.html b/public/404.html
new file mode 100644
index 000000000..2be3af26f
--- /dev/null
+++ b/public/404.html
@@ -0,0 +1,67 @@
+
+
+
+ The page you were looking for doesn't exist (404)
+
+
+
+
+
+
+
+
+
The page you were looking for doesn't exist.
+
You may have mistyped the address or the page may have moved.
+
+
If you are the application owner check the logs for more information.
+
+
+
diff --git a/public/422.html b/public/422.html
new file mode 100644
index 000000000..c08eac0d1
--- /dev/null
+++ b/public/422.html
@@ -0,0 +1,67 @@
+
+
+
+ The change you wanted was rejected (422)
+
+
+
+
+
+
+
+
+
The change you wanted was rejected.
+
Maybe you tried to change something you didn't have access to.
+
+
If you are the application owner check the logs for more information.
+
+
+
diff --git a/public/500.html b/public/500.html
new file mode 100644
index 000000000..78a030af2
--- /dev/null
+++ b/public/500.html
@@ -0,0 +1,66 @@
+
+
+
+ We're sorry, but something went wrong (500)
+
+
+
+
+
+
+
+
+
We're sorry, but something went wrong.
+
+
If you are the application owner check the logs for more information.
+
+
+
diff --git a/public/apple-touch-icon-precomposed.png b/public/apple-touch-icon-precomposed.png
new file mode 100644
index 000000000..e69de29bb
diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
new file mode 100644
index 000000000..e69de29bb
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 000000000..e69de29bb
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 000000000..37b576a4a
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1 @@
+# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb
new file mode 100644
index 000000000..d19212abd
--- /dev/null
+++ b/test/application_system_test_case.rb
@@ -0,0 +1,5 @@
+require "test_helper"
+
+class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
+ driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
+end
diff --git a/test/cassettes/recipes.yml b/test/cassettes/recipes.yml
new file mode 100644
index 000000000..93fb35ae8
--- /dev/null
+++ b/test/cassettes/recipes.yml
@@ -0,0 +1,227 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://api.edamam.com/search?app_id=&app_key=&from=10&q=egg
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - ngx_openresty
+ Date:
+ - Sat, 04 Nov 2017 17:33:21 GMT
+ Content-Type:
+ - application/json;charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ Cache-Control:
+ - private
+ Expires:
+ - Thu, 01 Jan 1970 00:00:00 UTC
+ X-Served-By:
+ - ip-10-143-141-59/10.143.141.59
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ ewogICJxIiA6ICJlZ2ciLAogICJmcm9tIiA6IDEwLAogICJ0byIgOiAyMCwKICAicGFyYW1zIiA6IHsKICAgICJzYW5lIiA6IFsgXSwKICAgICJxIiA6IFsgImVnZyIgXSwKICAgICJmcm9tIiA6IFsgIjEwIiBdLAogICAgImFwcF9rZXkiIDogWyAiPEFQSV9LRVk+IiBdLAogICAgImFwcF9pZCIgOiBbICI8QVBJX0lEPiIgXQogIH0sCiAgIm1vcmUiIDogdHJ1ZSwKICAiY291bnQiIDogMTY0NTcxLAogICJoaXRzIiA6IFsgewogICAgInJlY2lwZSIgOiB7CiAgICAgICJ1cmkiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9vbnRvbG9naWVzL2VkYW1hbS5vd2wjcmVjaXBlXzM1NTkwZGFiNWI4ZjU5NmUwYjhlNWZjZWRmMDI5OTc5IiwKICAgICAgImxhYmVsIiA6ICJQb2FjaGVkIEVnZyBXaXRoIFNwaWN5IFJpY2UiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy8yZTUvMmU1NDA0Nzg0MWI1NDRmNDhjOGQyZGRhMjk2NTMxODUuanBnIiwKICAgICAgInNvdXJjZSIgOiAiQkJDIEdvb2QgRm9vZCIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuYmJjZ29vZGZvb2QuY29tL3JlY2lwZXMvMzYwOC8iLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9wb2FjaGVkLWVnZy13aXRoLXNwaWN5LXJpY2UtMzU1OTBkYWI1YjhmNTk2ZTBiOGU1ZmNlZGYwMjk5NzkvZWdnIiwKICAgICAgInlpZWxkIiA6IDEuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUZhdCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxLjAgdHNwIG9pbCIsICIx4oGEMiBncmVlbiBwZXBwZXIgLCBkZXNlZWRlZCBhbmQgc2xpY2VkIiwgIjEgeCAyNTBnIHBvdWNoIG1pY3Jvd2F2ZSBwaWxhdSBiYXNtYXRpIHJpY2UgKHdlIHVzZWQgVGlsZGEgUml6YXp6KSIsICI1MC4wZyBmcm96ZW4gcGVhcyIsICIx4oGEMiBvbmlvbiAsIGNob3BwZWQiLCAiMS4wIHRzcCBtZWRpdW0gY3VycnkgcG93ZGVyIiwgIjEgZWdnIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjEuMCB0c3Agb2lsIiwKICAgICAgICAid2VpZ2h0IiA6IDQuNQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjHigYQyIGdyZWVuIHBlcHBlciAsIGRlc2VlZGVkIGFuZCBzbGljZWQiLAogICAgICAgICJ3ZWlnaHQiIDogNTguMTQ0NDQzNTExOTYyODkKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHggMjUwZyBwb3VjaCBtaWNyb3dhdmUgcGlsYXUgYmFzbWF0aSByaWNlICh3ZSB1c2VkIFRpbGRhIFJpemF6eikiLAogICAgICAgICJ3ZWlnaHQiIDogMjUwLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI1MC4wZyBmcm96ZW4gcGVhcyIsCiAgICAgICAgIndlaWdodCIgOiA1MC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMeKBhDIgb25pb24gLCBjaG9wcGVkIiwKICAgICAgICAid2VpZ2h0IiA6IDYyLjUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxLjAgdHNwIG1lZGl1bSBjdXJyeSBwb3dkZXIiLAogICAgICAgICJ3ZWlnaHQiIDogMi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBlZ2ciLAogICAgICAgICJ3ZWlnaHQiIDogNDMuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiAxMDk1LjM5ODg4ODcwMjM5MjcsCiAgICAgICJ0b3RhbFdlaWdodCIgOiA0NzAuMTQ0NDQzNTExOTYyOSwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA5NS4zOTg4ODg3MDIzOTI3LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC44ODA4NDU1NTM5NzAzMzcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4yNTE1Mzg3NzcyMzY5Mzg0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wMzQxMTUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjE0MDI3NjU1NTQ4MDk1NywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBUFUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuNzI1OTE0NTU0OTc3NDE3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxNi42NDY2MDIxNzg5NTUwOCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDguNjE0OTU1NTM5NzAzMzcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNy4wNTk3NjY2NDQyODcxMSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI3LjMwOTE0MjIxNDIwMjg4LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTU5Ljk2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzIuODQ0MzMzMzA1MzU4ODcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzUuNzY5NDQ0MzUxMTk2MjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDk3LjgyNDQ0NDM1MTE5NjI4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDYzOS43NDI3NzYxNDU5MzUxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTMuMDAzNDQxMTA3OTQwNjcyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMy45NjU1Mzc3NzY1NjU1NTIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ1MC43MzM4ODg3MDIzOTI1NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTMwLjc4NTk5OTgzMjE1MzMyLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MC4zODcxMzI1ODM2MTgxNzUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS42NTIxMTIzMzI4MDE4MTg4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDA2MTY1NDQ0MTgzMzQ5NjYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjc5MDU0MzMyODg1NzQyMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjczMTk0MzU1MzQ2Njc5NjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAzMy4wMTk0NDQzNTExOTYyLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg1LjUxOTQ0NDM1MTE5NjI4LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xBQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU1Ny41LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zODI3LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNS4yNiwKICAgICAgICAgICJ1bml0IiA6ICJJVSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMjU0NjM0NDQwOTk0MjYyNywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQuMDg2MTg4ODE5ODg1MjU1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTQuNzY5OTQ0NDM1MTE5NjMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjczOTc2MjM5MDcyMzU5NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS4yNTc2OTM4ODYxODQ2OTMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzIuMjE1NTM0MDU5NjUxNjksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNC40NTk4MjIxNTg4MTM0OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDU0LjYxODI4NDQyODQwNTc2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTMuMzIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS41MzUxODA1NTQzODk5NTMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzLjU3Njk0NDQzNTExOTYyOCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNC40NTYxMTEwODc3OTkwNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4LjI3ODM2NTAzMjc0MSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzIuMjQxMzM5NDg4NTU5MjgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjQzNjkxODUxMDQzNzAxNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NC4zOTA1NTU1Mjg5MTMyMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNC41MzE3Nzc3NTkxMjgxNDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDAuNjQ1MjIwOTcyNjk2OTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMTAuMTQwODIyMTg2Nzg3OTMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMy44OTIwODQ5NTE5NjE3NDYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTguOTUyNzE2NjQ0Mjg3MTE1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzYuNTk3MTc3NjczMzM5ODQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNTguMjU0ODYxMDg3Nzk5MDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi4zNzgzMzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4LjgxNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTEuMjczMTcyMjA0OTcxMzEzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMwLjEwNzczNjAyNDg1NjU3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMC44ODA4NDU1NTM5NzAzMzcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNi43Mzk3NjIzOTA3MjM1OTUsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAyLjI1MTUzODc3NzIzNjkzODQsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMTEuMjU3NjkzODg2MTg0NjkzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMDM0MTE1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA1LjE0MDI3NjU1NTQ4MDk1NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMi43MjU5MTQ1NTQ5Nzc0MTcsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMjE2LjY0NjYwMjE3ODk1NTA4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNzIuMjE1NTM0MDU5NjUxNjksCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDIwOC4wMzE2NDY2MzkyNTE3LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogOC42MTQ5NTU1Mzk3MDMzNywKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAzNC40NTk4MjIxNTg4MTM0OCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInN1Z2FyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNy4wNTk3NjY2NDQyODcxMSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjcuMzA5MTQyMjE0MjAyODgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1NC42MTgyODQ0Mjg0MDU3NiwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxNTkuOTYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1My4zMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMzIuODQ0MzMzMzA1MzU4ODcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjUzNTE4MDU1NDM4OTk1MywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEzNS43Njk0NDQzNTExOTYyOCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzLjU3Njk0NDQzNTExOTYyOCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogOTcuODI0NDQ0MzUxMTk2MjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNC40NTYxMTEwODc3OTkwNywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA2MzkuNzQyNzc2MTQ1OTM1MSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE4LjI3ODM2NTAzMjc0MSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEzLjAwMzQ0MTEwNzk0MDY3MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcyLjI0MTMzOTQ4ODU1OTI4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMy45NjU1Mzc3NzY1NjU1NTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNi40MzY5MTg1MTA0MzcwMTQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQ1MC43MzM4ODg3MDIzOTI1NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDY0LjM5MDU1NTUyODkxMzIzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMzAuNzg1OTk5ODMyMTUzMzIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNC41MzE3Nzc3NTkxMjgxNDcsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDYwLjM4NzEzMjU4MzYxODE3NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEwMC42NDUyMjA5NzI2OTY5NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjY1MjExMjMzMjgwMTgxODgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMTAuMTQwODIyMTg2Nzg3OTMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC40MDYxNjU0NDQxODMzNDk2NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIzLjg5MjA4NDk1MTk2MTc0NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTEuNzkwNTQzMzI4ODU3NDIzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTguOTUyNzE2NjQ0Mjg3MTE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNzMxOTQzNTUzNDY2Nzk2OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM2LjU5NzE3NzY3MzMzOTg0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEwMzMuMDE5NDQ0MzUxMTk2MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDI1OC4yNTQ4NjEwODc3OTkwNCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4NS41MTk0NDQzNTExOTYyOCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNTU3LjUsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4zODI3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNi4zNzgzMzMzMzMzMzMzMzMsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDM1LjI2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC44MTUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4yNTQ2MzQ0NDA5OTQyNjI3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTEuMjczMTcyMjA0OTcxMzEzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyNC4wODYxODg4MTk4ODUyNTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzMC4xMDc3MzYwMjQ4NTY1NywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfMWJmMjdjZTQwMWI0MTQ1YWQ2Njk5MzAzMDA5NzlmNzEiLAogICAgICAibGFiZWwiIDogIkZyaWVkIEVnZyBTYW5kd2ljaCIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzI1NS8yNTUzMjJiNTk1NTAzMjcxYjg0MzNkNjJjODBhMTE4Ny5qcGciLAogICAgICAic291cmNlIiA6ICJCaWcgR2lybHMgU21hbGwgS2l0Y2hlbiIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuYmlnZ2lybHNzbWFsbGtpdGNoZW4uY29tLzIwMDkvMTEvYmlnLWdpcmxzLXRlc3Qta2l0Y2hlbi1vbi1lZ2cuaHRtbCIsCiAgICAgICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL2ZyaWVkLWVnZy1zYW5kd2ljaC0xYmYyN2NlNDAxYjQxNDVhZDY2OTkzMDMwMDk3OWY3MS9lZ2ciLAogICAgICAieWllbGQiIDogNC4wLAogICAgICAiZGlldExhYmVscyIgOiBbIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlZlZ2V0YXJpYW4iLCAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIsICJBbGNvaG9sLUZyZWUiIF0sCiAgICAgICJjYXV0aW9ucyIgOiBbIF0sCiAgICAgICJpbmdyZWRpZW50TGluZXMiIDogWyAiMSBlZ2ciLCAiMSB0ZWFzcG9vbiBvbGl2ZSBvaWwiLCAic2FsdCBhbmQgcGVwcGVyIiwgIjIgc2xpY2VzIGJyZWFkIiwgIjEgdGVhc3Bvb24gYnV0dGVyIiwgIjEgc2xpY2UgY2hlZGRhciBjaGVlc2UiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMSBlZ2ciLAogICAgICAgICJ3ZWlnaHQiIDogNDMuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEgdGVhc3Bvb24gb2xpdmUgb2lsIiwKICAgICAgICAid2VpZ2h0IiA6IDQuNQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogInNhbHQgYW5kIHBlcHBlciIsCiAgICAgICAgIndlaWdodCIgOiAwLjgyOTc4NDE4NTQwOTU0NTkKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICJzYWx0IGFuZCBwZXBwZXIiLAogICAgICAgICJ3ZWlnaHQiIDogMC40MTQ4OTIwOTI3MDQ3NzI5NQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjIgc2xpY2VzIGJyZWFkIiwKICAgICAgICAid2VpZ2h0IiA6IDU4LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHRlYXNwb29uIGJ1dHRlciIsCiAgICAgICAgIndlaWdodCIgOiA0Ljc5NzM2NDIzNDkyNDMxNgogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEgc2xpY2UgY2hlZGRhciBjaGVlc2UiLAogICAgICAgICJ3ZWlnaHQiIDogMjguMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiA0MDUuMjQ4NDgwNzE3MDk2MzYsCiAgICAgICJ0b3RhbFdlaWdodCIgOiAxMzguNzEyMjU2MzI3NjI5MSwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDA1LjI0ODQ4MDcxNzA5NjM2LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMy44NDI3Njc2MTMxNjkyOTMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuMzA5MzI1MzU4MTI2Mzc0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC41MTg3OTc1OTk2MjA4MTkyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC41Nzk2MDQ5ODgzODg1MjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjcxNjA0OTQxNjc1Mzk0MDYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjkuMTg0NjAxOTExODI1NjU2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi40MjQ5Njc2OTk0NTQzMDc1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuNjcwODMzNzI3OTM0MjY1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTguNDMzNDg0ODg0NDI4ODg2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTk4LjgzNDMzMzEwNTA4NzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDg1OC4zMjg0NDMwNjU0MTQ1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjkzLjQ1MzQ4NzU5MTU2MjMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDM5LjYzMzcxMDYwNTA3Nzc0NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOTAuMDU2NjY2MDYzMjYxMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjg5MDY4Mzc4Mjg2MDQ3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4yMTUzODQ2Mjc5MDAwMjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMwNS44MDY4OTY5MjI4NTU0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNzUuMzY1OTkyMjMxOTEyNjMsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTE1OTk5OTk5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4yNjYxNDc5NTE2NzE4NjczMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjQ2NzE0NzkwOTYwNjc0Mjg1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjMwOTUyNzEwOTU5ODI4NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE1MjU1MTI1NjkxNjgxODY0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg1LjEyNDQ1MjU4MjgwNzU0LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDY1LjQwNDQ1MjU4MjgwNzU0LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xBQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjYsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjYzNzI1NTUxOTE5OTM3MTQsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ0Ljg1ODQxODU0MDk1NDU5LAogICAgICAgICAgInVuaXQiIDogIklVIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS41NDE0NjM3MjgwMTQzNzM1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjUwNjk5Mzg1MjIwMjQxNiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwLjI2MjQyNDAzNTg1NDgyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNi42ODExODA5NDMzMzczNzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTEuNTQ2NjI2NzkwNjMxODc2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuNzI4MjAwNjM3Mjc1MjE5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS42OTk4NzA3OTc4MTcyMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDM2Ljg2Njk2OTc2ODg1Nzc3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjYuMjc4MTExMDM1MDI5MSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNS43NjM2ODUxMjc3MjU2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyOS4zNDUzNDg3NTkxNTYyMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5LjkwODQyNzY1MTI2OTQzNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuNDMwMTkwNDU4OTUwMzE2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi4wNTkzNTQzNDkyMjQ4MzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0Ljc2OTIzMDg1MjY2Njg1NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0My42ODY2OTk1NjA0MDc5MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS40ODUxMTAyNDc5OTAyOTIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE5MzMzMzMzMzMzMzMzMzMzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcuNzQzMTk2Nzc4MTI0NDksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNy40NzkyODg4MDAzOTY2NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi41NDc2MzU1NDc5OTE0MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNjI3NTYyODQ1ODQwOTMzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuMjgxMTEzMTQ1NzAxODg0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwLjYyMDkyNTMxOTk4OTUyMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjIxNDYwNDYzNTIzODY0NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNy43MDczMTg2NDAwNzE4NjY1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuMzgzNzQyMzE1MjUzMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDIzLjg0Mjc2NzYxMzE2OTI5MywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM2LjY4MTE4MDk0MzMzNzM3NCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDEwLjMwOTMyNTM1ODEyNjM3NCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiA1MS41NDY2MjY3OTA2MzE4NzYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC41MTg3OTc1OTk2MjA4MTkyLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA4LjU3OTYwNDk4ODM4ODUyOCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMi43MTYwNDk0MTY3NTM5NDA2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICJ0YWciIDogIkNIT0NERiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDI5LjE4NDYwMTkxMTgyNTY1NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkuNzI4MjAwNjM3Mjc1MjE5LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAyNi43NTk2MzQyMTIzNzEzNSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDIuNDI0OTY3Njk5NDU0MzA3NSwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiA5LjY5OTg3MDc5NzgxNzIzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAzLjY3MDgzMzcyNzkzNDI2NSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMTguNDMzNDg0ODg0NDI4ODg2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzYuODY2OTY5NzY4ODU3NzcsCiAgICAgICAgInVuaXQiIDogImciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAidGFnIiA6ICJDSE9MRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMTk4LjgzNDMzMzEwNTA4NzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2Ni4yNzgxMTEwMzUwMjkxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDg1OC4zMjg0NDMwNjU0MTQ1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzUuNzYzNjg1MTI3NzI1NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDI5My40NTM0ODc1OTE1NjIzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjkuMzQ1MzQ4NzU5MTU2MjMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDM5LjYzMzcxMDYwNTA3Nzc0NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkuOTA4NDI3NjUxMjY5NDM2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE5MC4wNTY2NjYwNjMyNjEwMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDUuNDMwMTkwNDU4OTUwMzE2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgInRhZyIgOiAiRkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi44OTA2ODM3ODI4NjA0NywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE2LjA1OTM1NDM0OTIyNDgzMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuMjE1Mzg0NjI3OTAwMDI4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTQuNzY5MjMwODUyNjY2ODU1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzMDUuODA2ODk2OTIyODU1NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQzLjY4NjY5OTU2MDQwNzkyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNzUuMzY1OTkyMjMxOTEyNjMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOS40ODUxMTAyNDc5OTAyOTIsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMTE1OTk5OTk5OTk5OTk5OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjE5MzMzMzMzMzMzMzMzMzMzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMjY2MTQ3OTUxNjcxODY3MzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNy43NDMxOTY3NzgxMjQ0OSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjQ2NzE0NzkwOTYwNjc0Mjg1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjcuNDc5Mjg4ODAwMzk2NjQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMuMzA5NTI3MTA5NTk4Mjg0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTYuNTQ3NjM1NTQ3OTkxNDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4xNTI1NTEyNTY5MTY4MTg2NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcuNjI3NTYyODQ1ODQwOTMzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDg1LjEyNDQ1MjU4MjgwNzU0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjEuMjgxMTEzMTQ1NzAxODg0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDY1LjQwNDQ1MjU4MjgwNzU0LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAidGFnIiA6ICJGT0xBQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMS42LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNjM3MjU1NTE5MTk5MzcxNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEwLjYyMDkyNTMxOTk4OTUyMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDQuODU4NDE4NTQwOTU0NTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMS4yMTQ2MDQ2MzUyMzg2NDcsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS41NDE0NjM3MjgwMTQzNzM1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy43MDczMTg2NDAwNzE4NjY1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3LjUwNjk5Mzg1MjIwMjQxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkuMzgzNzQyMzE1MjUzMDIsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSwgewogICAgInJlY2lwZSIgOiB7CiAgICAgICJ1cmkiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9vbnRvbG9naWVzL2VkYW1hbS5vd2wjcmVjaXBlX2NkYzVmYWI1MWFkNWM3ZGI2YzIwMjYxNzdhYTI4MmEzIiwKICAgICAgImxhYmVsIiA6ICJFZ2cgTm9nIE1pbGtzaGFrZSIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzBmYy8wZmMyYzc5MTEyMWZlZDNhZmJkMGE1Y2NkZTRiYTMwZC5qcGciLAogICAgICAic291cmNlIiA6ICJDb29raW5nIENoYW5uZWwiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LmNvb2tpbmdjaGFubmVsdHYuY29tL3JlY2lwZXMva2Vsc2V5LW5peG9uL2VnZy1ub2ctbWlsa3NoYWtlLmh0bWwiLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9lZ2ctbm9nLW1pbGtzaGFrZS1jZGM1ZmFiNTFhZDVjN2RiNmMyMDI2MTc3YWEyODJhMy9lZ2ciLAogICAgICAieWllbGQiIDogMi4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJCYWxhbmNlZCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjEgY3VwIHZhbmlsbGEgaWNlIGNyZWFtIiwgIjEgY3VwIGVnZyBub2ciLCAiNiBnaW5nZXJzbmFwIGNvb2tpZXMsIGNydW1ibGVkIiwgIkZyZXNoIHdoaXBwZWQgY3JlYW0sIGZvciBnYXJuaXNoIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjEgY3VwIHZhbmlsbGEgaWNlIGNyZWFtIiwKICAgICAgICAid2VpZ2h0IiA6IDEzMi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAgZWdnIG5vZyIsCiAgICAgICAgIndlaWdodCIgOiAyNTQuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjYgZ2luZ2Vyc25hcCBjb29raWVzLCBjcnVtYmxlZCIsCiAgICAgICAgIndlaWdodCIgOiA0Mi4wCiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDY3MS40OCwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDQyOC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NzEuNDgsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI5LjI3ODYwMDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi41NzMzNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuNDc5NDYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjY3NTgwMDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODMuODk3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS44NDc5OTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU2LjgyMzgwMDAwMDAwMDAwNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4LjUyOSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwNy45NDAwMDAwMDAwMDAwMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDUzLjE3OTk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTMxLjUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDg3LjMyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDgyNy4wOTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMy4zMTQ4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4zMTAyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NTAuMzIwMDAwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMwNS42MiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC42MDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4yMjQ0OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjkyMjQ2MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNzc4NTE5OTk5OTk5OTk5OSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjIzMTUyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcwLjAzOTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjY2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xBQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM0LjQ0LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS42NTc4LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzUuMDIsCiAgICAgICAgICAidW5pdCIgOiAiSVUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjMzNjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMjA4LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzMuNTc0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NS4wNDQwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Mi44NjY4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI3Ljk2NTY2NjY2NjY2NjY2NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuMzkxOTk5OTk5OTk5OTk5NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjA1OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDY5LjMxMzMzMzMzMzMzMzM1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4Ljg4MjQ5OTk5OTk5OTk5NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTMuMTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuODMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMy42MzE0Mjg1NzE0Mjg1NjgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4LjQxNTU1NTU1NTU1NTU1NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuNDAxMzMzMzMzMzMzMzM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDY0LjMzMTQyODU3MTQyODU5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMzLjk1Nzc3Nzc3Nzc3Nzc4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNy42NzAwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNC45NjUzMzMzMzMzMzMzMzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NC4yNjIzNTI5NDExNzY0OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Ljg5MjU5OTk5OTk5OTk5OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjU3NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3LjUwOTk5OTk5OTk5OTk5OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNy42MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMzLjc1NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi42ODQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi43NjAwMDAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyOS4yNzg2MDAwMDAwMDAwMDQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0NS4wNDQwMDAwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDE2LjU3MzM2LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDgyLjg2NjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA5LjQ3OTQ2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAxLjY3NTgwMDAwMDAwMDAwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogODMuODk3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjcuOTY1NjY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA4Mi4wNDksCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjg0Nzk5OTk5OTk5OTk5OTksCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNy4zOTE5OTk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA1Ni44MjM4MDAwMDAwMDAwMDYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUi5hZGRlZCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgInRhZyIgOiAiUFJPQ05UIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDE4LjUyOSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM3LjA1OCwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyMDcuOTQwMDAwMDAwMDAwMDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2OS4zMTMzMzMzMzMzMzMzNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA0NTMuMTc5OTk5OTk5OTk5OTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOC44ODI0OTk5OTk5OTk5OTcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAidGFnIiA6ICJDQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1MzEuNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDUzLjE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4Ny4zMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIxLjgzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDgyNy4wOTk5OTk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjMuNjMxNDI4NTcxNDI4NTY4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgInRhZyIgOiAiRkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMy4zMTQ4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTguNDE1NTU1NTU1NTU1NTU3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4zMTAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTUuNDAxMzMzMzMzMzMzMzM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0NTAuMzIwMDAwMDAwMDAwMDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2NC4zMzE0Mjg1NzE0Mjg1OSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzA1LjYyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzMuOTU3Nzc3Nzc3Nzc3NzgsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuNjAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy42NzAwMDAwMDAwMDAwMDEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4yMjQ0OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE0Ljk2NTMzMzMzMzMzMzMzNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjkyMjQ2MDAwMDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1NC4yNjIzNTI5NDExNzY0OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS43Nzg1MTk5OTk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC44OTI1OTk5OTk5OTk5OTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4yMzE1MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDExLjU3NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3MC4wMzk5OTk5OTk5OTk5OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE3LjUwOTk5OTk5OTk5OTk5OCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMS42NiwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzQuNDQsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS42NTc4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjcuNjMsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEzNS4wMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMzLjc1NSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjMzNjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2LjY4NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgInRhZyIgOiAiVklUSzEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4yMDgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyLjc2MDAwMDAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSwgewogICAgInJlY2lwZSIgOiB7CiAgICAgICJ1cmkiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9vbnRvbG9naWVzL2VkYW1hbS5vd2wjcmVjaXBlXzBlZmUzYmNmNTQxMGQyOTg0ZDYyYWI4MjE0YWM0MmEzIiwKICAgICAgImxhYmVsIiA6ICJHb29zZSBFZ2cgT21lbGV0dGUiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy8yZWMvMmVjNjc4NGE4ZWM4MGFlNjNhYzRhNGJlMWIwNjI2MmMuanBnIiwKICAgICAgInNvdXJjZSIgOiAiQ29vayBBbG1vc3QgQW55dGhpbmciLAogICAgICAidXJsIiA6ICJodHRwOi8vY29va2FsbW9zdGFueXRoaW5nLmJsb2dzcG90LmNvbS8yMDA2LzEyL2VnZ3N0cmEtZWdnc3RyYS5odG1sIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvZ29vc2UtZWdnLW9tZWxldHRlLTBlZmUzYmNmNTQxMGQyOTg0ZDYyYWI4MjE0YWM0MmEzL2VnZyIsCiAgICAgICJ5aWVsZCIgOiA4LjAsCiAgICAgICJkaWV0TGFiZWxzIiA6IFsgIkxvdy1DYXJiIiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlN1Z2FyLUNvbnNjaW91cyIsICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjEgeCBnb29zZSBlZ2ciLCAiNTAgZ3JhbXMgcmljb3R0YSIsICI1MCBncmFtcyBzYWx0IGFuZCBmcmVzaGx5IGdyb3VuZCB3aGl0ZSBwZXBwZXIiLCAiNTAgZ3JhbXMgYnV0dGVyLCBmb3IgY29va2luZyIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxIHggZ29vc2UgZWdnIiwKICAgICAgICAid2VpZ2h0IiA6IDE0NC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNTAgZ3JhbXMgcmljb3R0YSIsCiAgICAgICAgIndlaWdodCIgOiA1MC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNTAgZ3JhbXMgc2FsdCBhbmQgZnJlc2hseSBncm91bmQgd2hpdGUgcGVwcGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDUwLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI1MCBncmFtcyBzYWx0IGFuZCBmcmVzaGx5IGdyb3VuZCB3aGl0ZSBwZXBwZXIiLAogICAgICAgICJ3ZWlnaHQiIDogNTAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjUwIGdyYW1zIGJ1dHRlciwgZm9yIGNvb2tpbmciLAogICAgICAgICJ3ZWlnaHQiIDogNTAuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiA4NTkuOSwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDI5NS4xMjIyNzQ0MjA3NjQ3LAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4NTkuOSwKICAgICAgICAgICJ1bml0IiA6ICJrY2FsIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjcuMjEzNzk5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzUuMzIxMywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBVFJOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNjM5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuOTk0MTgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0LjQyOTY3OTk5OTk5OTk5OSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNy43OTksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy4xLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNTE4NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxLjIyNzgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzU5Ljg3OTk5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5NjI3LjcyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzQ2LjQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDc1LjAzOTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQwNy40LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIuNzYxNiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuMTU1MiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDc4LjUyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NzEuMjgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwLjUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4yMzE2OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjcyNzU4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjQ1MTE2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDEyODQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIxLjk0LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyMS45NCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNTk4OTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzAuMDQsCiAgICAgICAgICAidW5pdCIgOiAiSVUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjA3MjU5OTk5OTk5OTk5OTYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuNjI1OTk5OTk5OTk5OTk5NCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQyLjk5NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAzLjQwNTg0NjE1Mzg0NjE0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3Ni42MDY1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjU5OTY2NjY2NjY2NjY2OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUyLjQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2Mi40NTU2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDUzLjI5MzMzMzMzMzMzMzM1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDgxNy44MjE2NjY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNC42NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOC43NTk5OTk5OTk5OTk5OTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS42NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzAuODk3Nzc3Nzc3Nzc3NzgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxLjAzNDY2NjY2NjY2NjY2NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2OC4zNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3NC41ODY2NjY2NjY2NjY2NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3LjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNS40NDUzMzMzMzMzMzMzMzIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Mi43OTg4MjM1Mjk0MTE3NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjI1NTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMC42NDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMC40ODUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI2LjY0OTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzIuNTEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1LjM2Mjk5OTk5OTk5OTk5NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ljc4MjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDY3LjIxMzc5OTk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAzLjQwNTg0NjE1Mzg0NjE0LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMzUuMzIxMywKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAxNzYuNjA2NSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjYzOSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMjAuOTk0MTgsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBUFUiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDQuNDI5Njc5OTk5OTk5OTk5LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICJ0YWciIDogIkNIT0NERiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDM3Ljc5OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjU5OTY2NjY2NjY2NjY2OCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMjQuNjk4OTk5OTk5OTk5OTk4LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMTMuMSwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiA1Mi40LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjUxODYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUi5hZGRlZCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgInRhZyIgOiAiUFJPQ05UIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDMxLjIyNzgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2Mi40NTU2LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEzNTkuODc5OTk5OTk5OTk5OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQ1My4yOTMzMzMzMzMzMzMzNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxOTYyNy43MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDgxNy44MjE2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzQ2LjQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzNC42NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNzUuMDM5OTk5OTk5OTk5OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOC43NTk5OTk5OTk5OTk5OTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDA3LjQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMS42NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEyLjc2MTYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3MC44OTc3Nzc3Nzc3Nzc3OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMuMTU1MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIxLjAzNDY2NjY2NjY2NjY2NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICJ0YWciIDogIlAiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDc4LjUyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjguMzYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICJ0YWciIDogIlZJVEFfUkFFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDY3MS4yOCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDc0LjU4NjY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMC41LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTcuNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjIzMTY4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTUuNDQ1MzMzMzMzMzMzMzMyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAidGFnIiA6ICJSSUJGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNzI3NTgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0Mi43OTg4MjM1Mjk0MTE3NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC40NTExNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIuMjU1OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjQxMjg0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjAuNjQyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEyMS45NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMwLjQ4NSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjEuOTQsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3LjU5ODk5OTk5OTk5OTk5OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyNi42NDk5OTk5OTk5OTk5OSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTMwLjA0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzIuNTEsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMy4wNzI1OTk5OTk5OTk5OTk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTUuMzYyOTk5OTk5OTk5OTk2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0LjYyNTk5OTk5OTk5OTk5OTQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1Ljc4MjUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSwgewogICAgInJlY2lwZSIgOiB7CiAgICAgICJ1cmkiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9vbnRvbG9naWVzL2VkYW1hbS5vd2wjcmVjaXBlX2JlMzVhNmU5YzE2MTdhMWQ3ZjVjOThlNTdiMWFlYzhiIiwKICAgICAgImxhYmVsIiA6ICJFZ2cgRHVtcGxpbmdzIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvNzQ1Lzc0NWRlYjNmZjMzOTEwMmY1ZmM0ZjBkMGIxMzcxMTQwLmpwZyIsCiAgICAgICJzb3VyY2UiIDogIlJlZCBDb29rIiwKICAgICAgInVybCIgOiAiaHR0cDovL3JlZGNvb2submV0LzIwMDkvMDIvMDgvZWdnLWR1bXBsaW5ncy8iLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9lZ2ctZHVtcGxpbmdzLWJlMzVhNmU5YzE2MTdhMWQ3ZjVjOThlNTdiMWFlYzhiL2VnZyIsCiAgICAgICJ5aWVsZCIgOiA2LjAsCiAgICAgICJkaWV0TGFiZWxzIiA6IFsgIkxvdy1DYXJiIiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlN1Z2FyLUNvbnNjaW91cyIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxLzIgbGIuIGdyb3VuZCBwb3JrIiwgIjEgdGFibGVzcG9vbiBtaW5jZWQgc2NhbGxpb24iLCAiMS8yIHRlYXNwb29uIHNhbHQiLCAiMS80IHRlYXNwb29uIGdyb3VuZCB3aGl0ZSBwZXBwZXIiLCAiMS8yIHRlYXNwb29uIHNlc2FtZSBvaWwiLCAiNiBlZ2dzIiwgIjIgdGFibGVzcG9vbnMgdGFwaW9jYSBzdGFyY2giLCAiMyB0YWJsZXNwb29ucyB3YXRlciIsICIxLzQgdGVhc3Bvb24gc2FsdCIsICJWZWdldGFibGUgb2lsIGZvciBjb2F0aW5nIHRoZSBza2lsbGV0IiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjEvMiBsYi4gZ3JvdW5kIHBvcmsiLAogICAgICAgICJ3ZWlnaHQiIDogMjI2Ljc5NjE4ODM1NDQ5MjIKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHRhYmxlc3Bvb24gbWluY2VkIHNjYWxsaW9uIiwKICAgICAgICAid2VpZ2h0IiA6IDYuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEvMiB0ZWFzcG9vbiBzYWx0IiwKICAgICAgICAid2VpZ2h0IiA6IDMuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEvNCB0ZWFzcG9vbiBncm91bmQgd2hpdGUgcGVwcGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDAuNjAwMDAwMDIzODQxODU3OQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEvMiB0ZWFzcG9vbiBzZXNhbWUgb2lsIiwKICAgICAgICAid2VpZ2h0IiA6IDIuMjUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI2IGVnZ3MiLAogICAgICAgICJ3ZWlnaHQiIDogMjU4LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyIHRhYmxlc3Bvb25zIHRhcGlvY2Egc3RhcmNoIiwKICAgICAgICAid2VpZ2h0IiA6IDE1LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzIHRhYmxlc3Bvb25zIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDQ1LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxLzQgdGVhc3Bvb24gc2FsdCIsCiAgICAgICAgIndlaWdodCIgOiAxLjUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICJWZWdldGFibGUgb2lsIGZvciBjb2F0aW5nIHRoZSBza2lsbGV0IiwKICAgICAgICAid2VpZ2h0IiA6IDcuNTkwNzg4MTYxOTQ1MzQyCiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDExMDQuMTAyNTQyNzk0NDgzLAogICAgICAidG90YWxXZWlnaHQiIDogNTYzLjMyNDI2MDQ1MjU2OSwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTEwNC4xMDI1NDI3OTQ0ODMsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDgyLjQ1ODgyMDQ3NDc2NzY5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjczMzM1MjI0MDg3MjA0NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBVFJOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTU2MjYxMzQ1MjAyMTIwOCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjIxMTQ4ODQ4NjUxODI1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFQVSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTEuNTA2NDQ2MTU3NjQ3MDgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuMTg5NjYwMDE2MzU3ODk4LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zMTMyMDAwMDYyNDY1NjY3NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjA5NDQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MC44NjAxOTY1OTY3MTc4MywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMjMuMDUzMjU1NjE1MjM0MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjI0MC4yNjU4NjU0Nzk3MDgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxODQuNTcxNDY2NDMyODA5ODQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDc2LjI4NjI3NTgwODgxMTIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAyNC4zMDMwNjA1OTQ3OTcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2Ljg2NTMxNjQ2MDkzMTMwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDguMzU2ODk2MTQ0MDY4MjQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkxMS4wMDkzMjk2NjIzMjMxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MjAuMzM1OTIzNzY3MDg5ODcsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuODQxNTczMzIzNDg4MjM0OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjc2Njc4MDA5ODc2MDEyNzksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS43MTc1ODcwNDI2NjMwOTc1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC4wNjQ2OTA2NTA4Njg0MTYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4zMTE0ODk0MDE0MjE1NDcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTM2LjQ5OTgwOTQyMDEwODgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIkZPTEZEIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTM2LjQ5OTgwOTQyMDEwODgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjg4Mzc3MzMxODQ4MTQ0NTQsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxMS41NiwKICAgICAgICAgICJ1bml0IiA6ICJJVSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuNDI4MjkxODE5MzA0MDg2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy41LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTUuMjA1MTI3MTM5NzI0MTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyNi44NTk3MjM4MDczMzQ5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzMy42NjY3NjEyMDQzNjAyMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjA2MzIyMDAwNTQ1MjYzMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMjUyODAwMDI0OTg2MjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQxLjcyMDM5MzE5MzQzNTY1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzc0LjM1MTA4NTIwNTA3ODEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTMuMzQ0NDExMDYxNjU0NDgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4LjQ1NzE0NjY0MzI4MDk4MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS4wNzE1Njg5NTIyMDI4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjkuMjY1ODAxNzMxMjc5OTE1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzOC4xNDA2NDcwMDUxNzM5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NS43MTI2NDA5NjA0NTQ5MzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTMwLjE0NDE4OTk1MTc2MDQ0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ2LjcwMzk5MTUyOTY3NjY1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC43MzU5NTU1MzkxNDcwNTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMTcuNzg1MzM5OTE3MzQxODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDEuMDM0NTMxOTIxMzU4NjYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTAuMzIzNDUzMjU0MzQyMDg0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjUuNTc0NDcwMDcxMDc3MzYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNC4xMjQ5NTIzNTUwMjcyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDY0LjcyOTU1NTMwODAyNDA5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTIuODksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIyLjE0MTQ1OTA5NjUyMDQzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2Ljg3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogODIuNDU4ODIwNDc0NzY3NjksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMjYuODU5NzIzODA3MzM0OSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDI2LjczMzM1MjI0MDg3MjA0NCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAxMzMuNjY2NzYxMjA0MzYwMjMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4xNTYyNjEzNDUyMDIxMjA4LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAzNy4yMTE0ODg0ODY1MTgyNSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTEuNTA2NDQ2MTU3NjQ3MDgsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMTUuMTg5NjYwMDE2MzU3ODk4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNS4wNjMyMjAwMDU0NTI2MzIsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDE0Ljg3NjQ2MDAxMDExMTMzMiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMzEzMjAwMDA2MjQ2NTY2NzQsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMS4yNTI4MDAwMjQ5ODYyNjcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDEuMDk0NCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNzAuODYwMTk2NTk2NzE3ODMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNDEuNzIwMzkzMTkzNDM1NjUsCiAgICAgICAgInVuaXQiIDogImciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAidGFnIiA6ICJDSE9MRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMTEyMy4wNTMyNTU2MTUyMzQzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzc0LjM1MTA4NTIwNTA3ODEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjI0MC4yNjU4NjU0Nzk3MDgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5My4zNDQ0MTEwNjE2NTQ0OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE4NC41NzE0NjY0MzI4MDk4NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE4LjQ1NzE0NjY0MzI4MDk4MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNzYuMjg2Mjc1ODA4ODExMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE5LjA3MTU2ODk1MjIwMjgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTAyNC4zMDMwNjA1OTQ3OTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyOS4yNjU4MDE3MzEyNzk5MTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA2Ljg2NTMxNjQ2MDkzMTMwMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM4LjE0MDY0NzAwNTE3MzksCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4LjM1Njg5NjE0NDA2ODI0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTUuNzEyNjQwOTYwNDU0OTM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA5MTEuMDA5MzI5NjYyMzIzMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzMC4xNDQxODk5NTE3NjA0NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDIwLjMzNTkyMzc2NzA4OTg3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDYuNzAzOTkxNTI5Njc2NjUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuODQxNTczMzIzNDg4MjM0OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuNzM1OTU1NTM5MTQ3MDU4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuNzY2NzgwMDk4NzYwMTI3OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDExNy43ODUzMzk5MTczNDE4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjcxNzU4NzA0MjY2MzA5NzUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMDEuMDM0NTMxOTIxMzU4NjYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEwLjA2NDY5MDY1MDg2ODQxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDUwLjMyMzQ1MzI1NDM0MjA4NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjMxMTQ4OTQwMTQyMTU0NywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDY1LjU3NDQ3MDA3MTA3NzM2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEzNi40OTk4MDk0MjAxMDg4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzQuMTI0OTUyMzU1MDI3MiwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMzYuNDk5ODA5NDIwMTA4OCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMuODgzNzczMzE4NDgxNDQ1NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDY0LjcyOTU1NTMwODAyNDA5LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyMTEuNTYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1Mi44OSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0LjQyODI5MTgxOTMwNDA4NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIyLjE0MTQ1OTA5NjUyMDQzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMy41LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTYuODc1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV9iYjAyNDFiMWMzZGE3MzA3N2U4YTE1YTExMWRmZTU2YSIsCiAgICAgICJsYWJlbCIgOiAiRWdnIGFuZCBiYWNvbiBwaWUiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy85Y2IvOWNiYTc4ZTY3ZDkzM2Q2ODY5NTZhNTU2ZWEzNmM4OGYuanBnIiwKICAgICAgInNvdXJjZSIgOiAiQkJDIiwKICAgICAgInVybCIgOiAiaHR0cDovL3d3dy5iYmMuY28udWsvZm9vZC9yZWNpcGVzL2VnZ19hbmRfYmFjb25fcGllXzA5Njc3IiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvZWdnLWFuZC1iYWNvbi1waWUtYmIwMjQxYjFjM2RhNzMwNzdlOGExNWExMTFkZmU1NmEvZWdnIiwKICAgICAgInlpZWxkIiA6IDQuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlN1Z2FyLUNvbnNjaW91cyIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxIHRic3Agc3VuZmxvd2VyIG9pbCIsICI44oCTMTAgcmFzaGVycyBzbW9rZWQgc3RyZWFreSBiYWNvbiIsICI5IGZyZWUtcmFuZ2UgZWdncyIsICI0IHRic3Agd2hvbGUgbWlsayIsICJTYWx0IGFuZCBmcmVzaGx5IGdyb3VuZCBibGFjayBwZXBwZXIiLCAiMzAwZy8xMMK9b3ogcGxhaW4gZmxvdXIsIHBsdXMgZXh0cmEgZm9yIGR1c3RpbmciLCAiR29vZCBwaW5jaCBvZiBzZWEgc2FsdCIsICIxNzVnLzZveiBjaGlsbGVkIGJ1dHRlciwgZGljZWQiLCAiMSBmcmVlLXJhbmdlIGVnZyIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxIHRic3Agc3VuZmxvd2VyIG9pbCIsCiAgICAgICAgIndlaWdodCIgOiAxMy42MDAwMDAzODE0Njk3MjcKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI44oCTMTAgcmFzaGVycyBzbW9rZWQgc3RyZWFreSBiYWNvbiIsCiAgICAgICAgIndlaWdodCIgOiAyNjEuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjkgZnJlZS1yYW5nZSBlZ2dzIiwKICAgICAgICAid2VpZ2h0IiA6IDM4Ny4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNCB0YnNwIHdob2xlIG1pbGsiLAogICAgICAgICJ3ZWlnaHQiIDogNjAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIlNhbHQgYW5kIGZyZXNobHkgZ3JvdW5kIGJsYWNrIHBlcHBlciIsCiAgICAgICAgIndlaWdodCIgOiA3LjQzOTQ0NjU2NDk3MjQwMQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIlNhbHQgYW5kIGZyZXNobHkgZ3JvdW5kIGJsYWNrIHBlcHBlciIsCiAgICAgICAgIndlaWdodCIgOiAzLjcxOTcyMzI4MjQ4NjIwMDMKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzMDBnLzEwwr1veiBwbGFpbiBmbG91ciwgcGx1cyBleHRyYSBmb3IgZHVzdGluZyIsCiAgICAgICAgIndlaWdodCIgOiAzMDAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIkdvb2QgcGluY2ggb2Ygc2VhIHNhbHQiLAogICAgICAgICJ3ZWlnaHQiIDogMC4zMDc3NjA0NDcyNjM3MTc2NQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjE3NWcvNm96IGNoaWxsZWQgYnV0dGVyLCBkaWNlZCIsCiAgICAgICAgIndlaWdodCIgOiAxNzUuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEgZnJlZS1yYW5nZSBlZ2ciLAogICAgICAgICJ3ZWlnaHQiIDogNDMuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiA0MjE2LjE4MDUwODgxMTIzMiwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDEyNDQuNjEyNjIxMTQ2NjE2NCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDIxNi4xODA1MDg4MTEyMzIsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMwNS4wMzc2NjMzNjA0Nzg3NSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDEuNDQyMTM4NTk3NjgzMjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVRSTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2LjI0NzAzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA1LjA5MDgyODkzMTI5NjU4LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFQVSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzYuNzMxMDEyOTc3MjE0MTksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQwLjczMDU2MzAzOTE0OTksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5LjA0MTA4OTk5MDQ2OTAxLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDguMTY5ODA2MjI5MDA3OTEzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIxLjcwMDE3OTI0OTA1MDMyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjE1NC4xMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTM5Mi44NzY0Mzg0NTg5NzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MjYuOTg3NzAzODI0MzUwNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTY0Ljg1ODE5ODg4MzE3Mzc0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2MDIuNDM0ODk4OTg1MjIwOCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjU0NDg1MDkxMzg2OTc4OSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjE1ODMxMTkxNDA3MzgyMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTY0OS41MTcxNjI3ODYzMjgzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOTQyLjMxNDMyNTI4NjI3MTIsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMjkyNzI3MzAxMTQ1MDg1MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjQ2NDEwNTUwMTkwODQ3NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQuNzM5MzM2NDM3MTE4ODE2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNTk0OTM0Mzk0NzUyMDM1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI4OC45ODIzNTI5NTgwMjI2NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyODguOTgyMzUyOTU4MDIyNjYsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjY5OTUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUyOS45NiwKICAgICAgICAgICJ1bml0IiA6ICJJVSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1LjU0NDg2NTI3ODg0NTYyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS40NDM1ODcwMzQwMjkyNzQsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMTAuODA5MDI1NDQwNTYxNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDY5LjI4ODcxMjg2MjI3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MDcuMjEwNjkyOTg4NDE2NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4MC4yNDM1MjEwMTMwNDk5NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM2LjE2NDM1OTk2MTg3NjA0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQzLjQwMDM1ODQ5ODEwMDY0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzE4LjAzNjY2NjY2NjY2NjYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjI0LjcwMzE4NDkzNTc5MDU1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Mi42OTg3NzAzODI0MzUwNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MS4yMTQ1NDk3MjA3OTM0MzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NS43ODM4NTQyNTY3MjA1OTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDY5LjY5MzYxNjE4ODE2NTQ5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3NC4zODg3NDYwOTM4MjU0NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMzUuNjQ1MzA4OTY5NDc1NDgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjE1LjgxMjcwMjgwOTU4NTcyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODYuMTgxODIwMDc2MzM5MDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDQuOTQ3MzgyNDY1MjA0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3My42OTY2ODIxODU1OTQwOSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDc5Ljc0NjcxOTczNzYwMTc1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzIuMjQ1NTg4MjM5NTA1NjYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTQuOTkxNjY2NjY2NjY2NjYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzIuNDksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDc3LjcyNDMyNjM5NDIyODEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjYuODA0NDgzNzkyNTM2NTk0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAzMDUuMDM3NjYzMzYwNDc4NzUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0NjkuMjg4NzEyODYyMjc1LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMTQxLjQ0MjEzODU5NzY4MzI4LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDcwNy4yMTA2OTI5ODg0MTY0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDYuMjQ3MDMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBTVMiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDEwNS4wOTA4Mjg5MzEyOTY1OCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMzYuNzMxMDEyOTc3MjE0MTksCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMjQwLjczMDU2MzAzOTE0OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4MC4yNDM1MjEwMTMwNDk5NywKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMjMxLjY4OTQ3MzA0ODY4MDksCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA5LjA0MTA4OTk5MDQ2OTAxLAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDM2LjE2NDM1OTk2MTg3NjA0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA4LjE2OTgwNjIyOTAwNzkxMywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMTIxLjcwMDE3OTI0OTA1MDMyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjQzLjQwMDM1ODQ5ODEwMDY0LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDIxNTQuMTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3MTguMDM2NjY2NjY2NjY2NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA1MzkyLjg3NjQzODQ1ODk3MywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIyNC43MDMxODQ5MzU3OTA1NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQyNi45ODc3MDM4MjQzNTA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDIuNjk4NzcwMzgyNDM1MDQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE2NC44NTgxOTg4ODMxNzM3NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQxLjIxNDU0OTcyMDc5MzQzNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNjAyLjQzNDg5ODk4NTIyMDgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0NS43ODM4NTQyNTY3MjA1OTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMi41NDQ4NTA5MTM4Njk3ODksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2OS42OTM2MTYxODgxNjU0OSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDExLjE1ODMxMTkxNDA3MzgyMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDc0LjM4ODc0NjA5MzgyNTQ3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNjQ5LjUxNzE2Mjc4NjMyODMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMzUuNjQ1MzA4OTY5NDc1NDgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICJ0YWciIDogIlZJVEFfUkFFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE5NDIuMzE0MzI1Mjg2MjcxMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIxNS44MTI3MDI4MDk1ODU3MiwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICJ0YWciIDogIlZJVEMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjI5MjcyNzMwMTE0NTA4NTMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4Ni4xODE4MjAwNzYzMzkwMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjQ2NDEwNTUwMTkwODQ3NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE0NC45NDczODI0NjUyMDQ0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNC43MzkzMzY0MzcxMTg4MTYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3My42OTY2ODIxODU1OTQwOSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjU5NDkzNDM5NDc1MjAzNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDc5Ljc0NjcxOTczNzYwMTc1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDI4OC45ODIzNTI5NTgwMjI2NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcyLjI0NTU4ODIzOTUwNTY2LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDI4OC45ODIzNTI5NTgwMjI2NiwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDUuNjk5NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDk0Ljk5MTY2NjY2NjY2NjY2LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1MjkuOTYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMzIuNDksCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTUuNTQ0ODY1Mjc4ODQ1NjIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3Ny43MjQzMjYzOTQyMjgxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyMS40NDM1ODcwMzQwMjkyNzQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNi44MDQ0ODM3OTI1MzY1OTQsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSwgewogICAgInJlY2lwZSIgOiB7CiAgICAgICJ1cmkiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9vbnRvbG9naWVzL2VkYW1hbS5vd2wjcmVjaXBlXzA3ZDc3ZjY3YmI4Y2EwNTYxYzVkMmJkOWY5YjQ2ZjhhIiwKICAgICAgImxhYmVsIiA6ICJNaXNvIGFuZCBFZ2cgU2F1Y2UiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy80YzMvNGMzNGZiNWMwNDkwYzE5OTJmZmYxZDk3N2FiNWIwMzEuanBnIiwKICAgICAgInNvdXJjZSIgOiAiQ29va3N0ciIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuY29va3N0ci5jb20vcmVjaXBlcy9taXNvLWFuZC1lZ2ctc2F1Y2UiLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9taXNvLWFuZC1lZ2ctc2F1Y2UtMDdkNzdmNjdiYjhjYTA1NjFjNWQyYmQ5ZjliNDZmOGEvZWdnIiwKICAgICAgInlpZWxkIiA6IDEuMzMzOTk5OTkxNDE2OTMxMiwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiQmFsYW5jZWQiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiVmVnZXRhcmlhbiIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgIkdsdXRlbiIsICJXaGVhdCIgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIyIHRhYmxlc3Bvb25zIHNha2UgKHJpY2Ugd2luZSkiLCAiM8K9IG91bmNlcyAoYWJvdXQgNSB0YWJsZXNwb29ucykgc2Fpa3lvIG1pc28gKHN3ZWV0IHdoaXRlIG1pc28pIiwgIjEgdGFibGVzcG9vbiBzdWdhciIsICIxIGxhcmdlIGVnZyB5b2xrIiwgIkFib3V0IDEvMyB0ZWFzcG9vbiB1c3VrdWNoaSBzaG95dSAobGlnaHQtY29sb3JlZCBzb3kgc2F1Y2UpLCBwcmVmZXJhYmxlLCBvciByZWd1bGFyIHNob3l1IiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjIgdGFibGVzcG9vbnMgc2FrZSAocmljZSB3aW5lKSIsCiAgICAgICAgIndlaWdodCIgOiAyOS41MTk2NDE4NzYyMjA3MDMKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzwr0gb3VuY2VzIChhYm91dCA1IHRhYmxlc3Bvb25zKSBzYWlreW8gbWlzbyAoc3dlZXQgd2hpdGUgbWlzbykiLAogICAgICAgICJ3ZWlnaHQiIDogOTkuMjIzMzI3NjM2NzE4NzUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHRhYmxlc3Bvb24gc3VnYXIiLAogICAgICAgICJ3ZWlnaHQiIDogMTIuNjAwMDAwMzgxNDY5NzI3CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBsYXJnZSBlZ2cgeW9sayIsCiAgICAgICAgIndlaWdodCIgOiAxNy4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiQWJvdXQgMS8zIHRlYXNwb29uIHVzdWt1Y2hpIHNob3l1IChsaWdodC1jb2xvcmVkIHNveSBzYXVjZSksIHByZWZlcmFibGUsIG9yIHJlZ3VsYXIgc2hveXUiLAogICAgICAgICJ3ZWlnaHQiIDogMS43NjY2NjY2NTA3NzIwOTQ3CiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDM0MS40NDkwNzY5MTI0MDMxLAogICAgICAidG90YWxXZWlnaHQiIDogMTYwLjEwOTYzNjU0NTE4MTI3LAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNDEuNDQ5MDc2OTEyNDAzMSwKICAgICAgICAgICJ1bml0IiA6ICJrY2FsIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuNDg1MTkxOTkwODc2MTk3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuNzU1MTEzMzY4NDM3MjksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjIyOTM2ODM5NTkwMDcyNjQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjg5ODQ0MTc1MDc3MTk5OTMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDEuMDM1MjczOTY2NTI2OTksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjM3MjE5MzAyNTU4ODk5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4LjgyODkxMzM2MDc4NjQzNCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0LjU4NjgxMTg3NTQ4NjM3NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4NC40NTAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzgwNC45NjUwNDYyNjUxMjUyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODAuNjcyMjc4ODQ1MzEwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTEuNTU1NzA5MDk5NzY5NTk0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI0Mi4yMTU4OTg0NDQ2NTI1NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuOTk2MTk3MTY2NjU3NDQ4MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuOTUzNjUxMTE1Nzc1MTA4NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjI4Ljc2ODkzNjA5NTIzNzczLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2OC43Mzg5MzMxMDU0Njg3NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xMjc3NDE4NjEwNzg3MzkxNywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjMyNjI1OTM1MzQzOTgwNzk0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjk0MTgzOTM0ODAzOTYyNywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjI1OTU2OTA4ODY0MDIxMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0My45MTk3NjU1ODIwODQ2NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0My45MTk3NjU1ODIwODQ2NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDEwODc4NjYyMTA5Mzc1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNy4wNiwKICAgICAgICAgICJ1bml0IiA6ICJJVSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDQ4NTIyMzMyNzYzNjcxOSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjkuMTkxNDM0OTk3NTU4NTk1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcuMDcyNDUzODQ1NjIwMTU2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi4xMzEwNjQ2MDEzNDc5OTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTMuNzc1NTY2ODQyMTg2NDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTMuNjc4NDI0NjU1NTA4OTk0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuNDg4NzcyMTAyMzU1OTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyOS4xNzM2MjM3NTA5NzI3NDgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MS40ODMzMzMzMzMzMzMzMzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTU4LjU0MDIxMDI2MTA0NjksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDguMDY3MjI3ODg0NTMxMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIuODg4OTI3Mjc0OTQyMzk4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi45MjA0NTQyNDEyNzU3ODcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjY0NTUzOTgxNDc2MzYwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTkuNjkxMDA3NDM4NTAwNzIzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMyLjY4MTI3NjU4NTAzMzk2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNjM3NjU5MjMzOTQwOTczNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDguNTE2MTI0MDcxOTE1OTQ1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTkuMTkxNzI2NjcyOTI5ODc4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuNzA5MTk2NzQwMTk4MTM1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIuOTc4NDU0NDMyMDEwNjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC45Nzk5NDEzOTU1MjExNjQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi44NDc5Nzc3MDE4MjI5MTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5LjI2NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4yNDI2MTE2NjM4MTgzNTk1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM2LjQ4OTI5Mzc0Njk0ODI0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMC40ODUxOTE5OTA4NzYxOTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNi4xMzEwNjQ2MDEzNDc5OTQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAyLjc1NTExMzM2ODQzNzI5LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDEzLjc3NTU2Njg0MjE4NjQ1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMy4yMjkzNjgzOTU5MDA3MjY0LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAzLjg5ODQ0MTc1MDc3MTk5OTMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNDEuMDM1MjczOTY2NTI2OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMy42Nzg0MjQ2NTU1MDg5OTQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDM1LjY2MzA4MDk0MDkzNzk5NSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDUuMzcyMTkzMDI1NTg4OTksCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMjEuNDg4NzcyMTAyMzU1OTYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDE4LjgyODkxMzM2MDc4NjQzNCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMTQuNTg2ODExODc1NDg2Mzc0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjkuMTczNjIzNzUwOTcyNzQ4LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDE4NC40NTAwMDAwMDAwMDAwMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDYxLjQ4MzMzMzMzMzMzMzMzNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAzODA0Ljk2NTA0NjI2NTEyNTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNTguNTQwMjEwMjYxMDQ2OSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDgwLjY3MjI3ODg0NTMxMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4LjA2NzIyNzg4NDUzMTAyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1MS41NTU3MDkwOTk3Njk1OTQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMi44ODg5MjcyNzQ5NDIzOTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjQyLjIxNTg5ODQ0NDY1MjU3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNi45MjA0NTQyNDEyNzU3ODcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjk5NjE5NzE2NjY1NzQ0ODMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNi42NDU1Mzk4MTQ3NjM2MDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjk1MzY1MTExNTc3NTEwODQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOS42OTEwMDc0Mzg1MDA3MjMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIyOC43Njg5MzYwOTUyMzc3MywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMyLjY4MTI3NjU4NTAzMzk2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA2OC43Mzg5MzMxMDU0Njg3NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcuNjM3NjU5MjMzOTQwOTczNSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICJ0YWciIDogIlZJVEMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjEyNzc0MTg2MTA3ODczOTE3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC41MTYxMjQwNzE5MTU5NDUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4zMjYyNTkzNTM0Mzk4MDc5NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE5LjE5MTcyNjY3MjkyOTg3OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC45NDE4MzkzNDgwMzk2MjcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjcwOTE5Njc0MDE5ODEzNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjI1OTU2OTA4ODY0MDIxMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjk3ODQ1NDQzMjAxMDY1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQzLjkxOTc2NTU4MjA4NDY2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAuOTc5OTQxMzk1NTIxMTY0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQzLjkxOTc2NTU4MjA4NDY2LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAidGFnIiA6ICJGT0xBQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC40MTA4Nzg2NjIxMDkzNzUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2Ljg0Nzk3NzcwMTgyMjkxNiwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzcuMDYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5LjI2NSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjQ0ODUyMjMzMjc2MzY3MTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyLjI0MjYxMTY2MzgxODM1OTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDI5LjE5MTQzNDk5NzU1ODU5NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM2LjQ4OTI5Mzc0Njk0ODI0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV82N2EyY2UxM2I2OTU4YTJmYzdlNzI3MjU4MjlhNGViYiIsCiAgICAgICJsYWJlbCIgOiAiRWdnIEZyaXRhdHRhIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvMzA4LzMwODU3ZDZiMzQzMjI1NjQ3NGQxMTNhZmE1Zjk5M2MyLmpwZyIsCiAgICAgICJzb3VyY2UiIDogIkZvb2Rpc3RhIiwKICAgICAgInVybCIgOiAiaHR0cDovL3d3dy5mb29kaXN0YS5jb20vcmVjaXBlL1ZSQjdOQzRCL2VnZy1mcml0YXR0YSIsCiAgICAgICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL2VnZy1mcml0YXR0YS02N2EyY2UxM2I2OTU4YTJmYzdlNzI3MjU4MjlhNGViYi9lZ2ciLAogICAgICAieWllbGQiIDogMS4wLAogICAgICAiZGlldExhYmVscyIgOiBbIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlZlZ2V0YXJpYW4iLCAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIsICJBbGNvaG9sLUZyZWUiIF0sCiAgICAgICJjYXV0aW9ucyIgOiBbICJHbHV0ZW4iLCAiV2hlYXQiIF0sCiAgICAgICJ0YWdzIiA6IFsgInZlZ2V0YWJsZSIgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIyIGJveHMgZWdnIHN1YnN0aXR1dGUgKEVnZyBCZWF0ZXJzIGV0LiBhbC4pIiwgImN1cCBNZWF0bGVzcyBjcnVtYmxlcyAoR2ltbWUgTGVhbiBldC4gYWwuKSIsICIyIHNsY3MgRmF0IGZyZWUgY2hlZXNlIHNsaWNlcyIsICIxIGN1cCBDb29rZWQgYnJvY2NvbGkiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMiBib3hzIGVnZyBzdWJzdGl0dXRlIChFZ2cgQmVhdGVycyBldC4gYWwuKSIsCiAgICAgICAgIndlaWdodCIgOiA4LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICJjdXAgTWVhdGxlc3MgY3J1bWJsZXMgKEdpbW1lIExlYW4gZXQuIGFsLikiLAogICAgICAgICJ3ZWlnaHQiIDogMTIyLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyIHNsY3MgRmF0IGZyZWUgY2hlZXNlIHNsaWNlcyIsCiAgICAgICAgIndlaWdodCIgOiA1Ni4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAgQ29va2VkIGJyb2Njb2xpIiwKICAgICAgICAid2VpZ2h0IiA6IDkxLjAKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogMzgyLjI0LAogICAgICAidG90YWxXZWlnaHQiIDogMjc3LjAsCiAgICAgICJ0b3RhbE51dHJpZW50cyIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM4Mi4yNCwKICAgICAgICAgICJ1bml0IiA6ICJrY2FsIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuMzg2NTAwMDAwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjExNzAzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42NjAyNCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuMDg5NTkwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFQVSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS43NTgxNjAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMwLjA4NjAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMzY2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNzAzOCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5Ljk1NywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU3LjEyMDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDExLjY1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MTguMzcwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjUuOTUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTg5Ljk4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4zMzk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi45NzcxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzOTguMTQwMDAwMDAwMDAwMDQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3NS40OSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODEuMTcyMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xMDQxMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjM3MzkxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjcyNTMzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMzI2OTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAzLjYxMDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwMy42MTAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDkyODAwMDAwMDAwMDAwMDcsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzLjQ0MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJJVSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMTQ2NjAwMDAwMDAwMDAwMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTQuMDgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS4xMTIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMyLjkwMjMwNzY5MjMwNzcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTUuNTg1MTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuMDI4NjY2NjY2NjY2NjY4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS40NjQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzOS45MTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS4wNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNy4xNTIwODMzMzMzMzMzMzcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDcxLjgzNzAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjQ4NzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi44NTY1NzE0Mjg1NzE0MjgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjk5OTQ0NDQ0NDQ0NDQ0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTkuODQ3MzMzMzMzMzMzMzM1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU2Ljg3NzE0Mjg1NzE0Mjg2NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS40OTg4ODg4ODg4ODg4OSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzNS4yODY2NjY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi45NDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS45OTQ3MDU4ODIzNTI5NDYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMy42MjY2NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjM0OTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNS45MDI1MDAwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC4yMTMzMzMzMzMzMzMzMzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjM2MDAwMDAwMDAwMDAwMDgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuNzMzMDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExNy42LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyMS4zODY1MDAwMDAwMDAwMDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzMi45MDIzMDc2OTIzMDc3LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMTEuMTE3MDMsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNTUuNTg1MTUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC42NjAyNCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogNS4wODk1OTAwMDAwMDAwMDEsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBUFUiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDEuNzU4MTYwMDAwMDAwMDAwMiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAzMC4wODYwMDAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMC4wMjg2NjY2NjY2NjY2NjgsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDI3LjcyMDAwMDAwMDAwMDAwMiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDIuMzY2LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDkuNDY0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjcwMzgsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUi5hZGRlZCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgInRhZyIgOiAiUFJPQ05UIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDE5Ljk1NywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM5LjkxNCwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA1Ny4xMjAwMDAwMDAwMDAwMDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOS4wNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA0MTEuNjUwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE3LjE1MjA4MzMzMzMzMzMzNywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcxOC4zNzAwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNzEuODM3MDAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDY1Ljk1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTYuNDg3NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1ODkuOTgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNi44NTY1NzE0Mjg1NzE0MjgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjMzOTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMi45OTk0NDQ0NDQ0NDQ0NDQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjk3NzEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOS44NDczMzMzMzMzMzMzMzUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDM5OC4xNDAwMDAwMDAwMDAwNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDU2Ljg3NzE0Mjg1NzE0Mjg2NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTc1LjQ5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTkuNDk4ODg4ODg4ODg4ODksCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDgxLjE3MjAwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTM1LjI4NjY2NjY2NjY2NjcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4xMDQxMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDYuOTQyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAidGFnIiA6ICJSSUJGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzczOTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMS45OTQ3MDU4ODIzNTI5NDYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNzI1MzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzLjYyNjY1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzI2OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNi4zNDk1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEwMy42MTAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDI1LjkwMjUwMDAwMDAwMDAwMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMDMuNjEwMDAwMDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjQ5MjgwMDAwMDAwMDAwMDA3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC4yMTMzMzMzMzMzMzMzMzUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEzLjQ0MDAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMuMzYwMDAwMDAwMDAwMDAwOCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjE0NjYwMDAwMDAwMDAwMDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjczMzAwMDAwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgInRhZyIgOiAiVklUSzEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogOTQuMDgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMTcuNiwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfMDU1MjMxNTExYzAyMjFiYzFkYzQ2NGUxNDFjZDcxMjciLAogICAgICAibGFiZWwiIDogIkNhdmlhci1FZ2cgR2VtIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvMzFmLzMxZjEwNGFmMjgzYTZkYzBhNzE4YTNjZjhlNjIxNWU3LmpwZyIsCiAgICAgICJzb3VyY2UiIDogIkVhdGluZ1dlbGwiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LmVhdGluZ3dlbGwuY29tL3JlY2lwZS8yNTAzNjEvY2F2aWFyLWVnZy1nZW0iLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9jYXZpYXItZWdnLWdlbS0wNTUyMzE1MTFjMDIyMWJjMWRjNDY0ZTE0MWNkNzEyNy9lZ2ciLAogICAgICAieWllbGQiIDogMjQuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUNhcmIiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjI0IHNsaWNlcyBoYXJkLWJvaWxlZCBlZ2cgKGFib3V0IDQgbGFyZ2UgZWdnczsgc2VlIHRpcCkiLCAiMjQgc21hbGwsIHJvdW5kIHdob2xlLWdyYWluIGNyYWNrZXJzIiwgIjEvNCBjdXAgcmVkdWNlZC1mYXQgc291ciBjcmVhbSIsICIxIHRhYmxlc3Bvb24gc2FsbW9uIHJvZSBjYXZpYXIiLCAiMjQgc21hbGwgc3ByaWdzIGZyZXNoIGRpbGwiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMjQgc2xpY2VzIGhhcmQtYm9pbGVkIGVnZyAoYWJvdXQgNCBsYXJnZSBlZ2dzOyBzZWUgdGlwKSIsCiAgICAgICAgIndlaWdodCIgOiA5NjAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjI0IHNtYWxsLCByb3VuZCB3aG9sZS1ncmFpbiBjcmFja2VycyIsCiAgICAgICAgIndlaWdodCIgOiA3Ni44MDAwMDMwNTE3NTc4MQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEvNCBjdXAgcmVkdWNlZC1mYXQgc291ciBjcmVhbSIsCiAgICAgICAgIndlaWdodCIgOiA1Ny41CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSB0YWJsZXNwb29uIHNhbG1vbiByb2UgY2F2aWFyIiwKICAgICAgICAid2VpZ2h0IiA6IDE2LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyNCBzbWFsbCBzcHJpZ3MgZnJlc2ggZGlsbCIsCiAgICAgICAgIndlaWdodCIgOiAzLjU5OTk5OTkwNDYzMjU2ODQKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogMjAyNy41NDMwMTU1MjI5NTcsCiAgICAgICJ0b3RhbFdlaWdodCIgOiAxMTEzLjkwMDAwMjk1NjM5MDQsCiAgICAgICJ0b3RhbE51dHJpZW50cyIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwMjcuNTQzMDE1NTIyOTU3LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzMuMTY2MDYwODA1NTExNDgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDEuMjg5MDc2MTY5NjgxNTQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVRSTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjgyNjM2ODAzMjgzNjkxNDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Ny4yOTkyMzYxOTkyMTY4MzYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNS4xMzkzMzY0MDA4MTg4MjcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjIuNzQ4MTIxODY0MDMyNzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjg0MjAwMDA2ODE4NzcxMzYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcuMjA2NzQwMjQ5NjMzNzksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzMuOTUzMDgwMTk5MzM3MDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNjk1LjAwNDk5OTk5OTk5OTcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwMzAuNDE0MDIyMDk3NTg3MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDcwNC43MjMwMDM0NjM3NDUyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjYuMTI5MDAwNDk2ODY0MzQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQ3Ny4wNzcwMDI4OTcyNjI3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTYuNjkxNTgwMTE2NzAxMTI1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuNzk2MzMwMDE0MDg1NzcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5NDkuODc1MDA3NTA1NDE3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNTU2LjA4MDk5OTYzMTg4MTUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuNTc3NDk5OTE4OTM3NjgzMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjAwODU3NjAxMjYzOTk5OTQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS41MjI4NjQwMTM2MzM3MjcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMDcyNzA2MTMxMzE1MjMxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMjc5MzQ0MDAxNzQ2MTc3NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NTcuMzI1MDA0NDM0NTg1NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NDguMjY5MDAwMTAxMDg5NDMsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIkZPTEFDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjQuNTEyMDAyNTYzNDc2NTcsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNC4wMjg1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg1OS42NywKICAgICAgICAgICJ1bml0IiA6ICJJVSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjc0NzQ0MDA5MjQ2ODI2MiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTYuNjAwOTAyMTE0ODY4MTYsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDEuMzc3MTUwNzc2MTQ3ODQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwNC44NzA4NjI3Nzc3MDk5NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMDYuNDQ1MzgwODQ4NDA3NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMC45MTYwNDA2MjEzNDQyNDgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjM2ODAwMDI3Mjc1MDg1NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2Ny45MDYxNjAzOTg2NzQwNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyMzEuNjY4MzMzMzMzMzMzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDg0LjYwMDU4NDI1NDA2NjEzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MC40NzIzMDAzNDYzNzQ1MSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MS41MzIyNTAxMjQyMTYwOCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQyLjIwMjIwMDA4Mjc3ODkzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5Mi43MzEwMDA2NDgzMzk1OSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzEuOTc1NTMzNDI3MjM4NDYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjc4LjU1MzU3MjUwMDc3Mzg0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3Mi44OTc4ODg4NDc5ODY4MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuOTYyNDk5ODY0ODk2MTM5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjcuMjM4NDAwODQyNjY2NjIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMjQuODc0MzUzNzQzMTYwNDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuMzYzNTMwNjU2NTc2MTUyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjMuOTY3MjAwMDg3MzA4ODgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzkuMzMxMjUxMTA4NjQ2NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMzMuODA4MzMzMzMzMzMzMzcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMTQuOTE3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjMuNzM3MjAwNDYyMzQxMzA2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcwLjc1MTEyNzY0MzU4NTE5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMzMuMTY2MDYwODA1NTExNDgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMDQuODcwODYyNzc3NzA5OTYsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA0MS4yODkwNzYxNjk2ODE1NCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAyMDYuNDQ1MzgwODQ4NDA3NywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjgyNjM2ODAzMjgzNjkxNDIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBTVMiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDQ3LjI5OTIzNjE5OTIxNjgzNiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMjUuMTM5MzM2NDAwODE4ODI3LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICJ0YWciIDogIkNIT0NERiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDYyLjc0ODEyMTg2NDAzMjc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjAuOTE2MDQwNjIxMzQ0MjQ4LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA2MC45MDYxMjE3OTU4NDUwMywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDEuODQyMDAwMDY4MTg3NzEzNiwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiA3LjM2ODAwMDI3Mjc1MDg1NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInN1Z2FyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMTcuMjA2NzQwMjQ5NjMzNzksCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUi5hZGRlZCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgInRhZyIgOiAiUFJPQ05UIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEzMy45NTMwODAxOTkzMzcwMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDI2Ny45MDYxNjAzOTg2NzQwNSwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAzNjk1LjAwNDk5OTk5OTk5OTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMjMxLjY2ODMzMzMzMzMzMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyMDMwLjQxNDAyMjA5NzU4NzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4NC42MDA1ODQyNTQwNjYxMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcwNC43MjMwMDM0NjM3NDUyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNzAuNDcyMzAwMzQ2Mzc0NTEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE2Ni4xMjkwMDA0OTY4NjQzNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQxLjUzMjI1MDEyNDIxNjA4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE0NzcuMDc3MDAyODk3MjYyNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQyLjIwMjIwMDA4Mjc3ODkzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgInRhZyIgOiAiRkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTYuNjkxNTgwMTE2NzAxMTI1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOTIuNzMxMDAwNjQ4MzM5NTksCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMC43OTYzMzAwMTQwODU3NywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcxLjk3NTUzMzQyNzIzODQ2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxOTQ5Ljg3NTAwNzUwNTQxNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDI3OC41NTM1NzI1MDA3NzM4NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTU1Ni4wODA5OTk2MzE4ODE1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTcyLjg5Nzg4ODg0Nzk4NjgyLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzLjU3NzQ5OTkxODkzNzY4MzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1Ljk2MjQ5OTg2NDg5NjEzOSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjAwODU3NjAxMjYzOTk5OTQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2Ny4yMzg0MDA4NDI2NjY2MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1LjUyMjg2NDAxMzYzMzcyNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMyNC44NzQzNTM3NDMxNjA0NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNC4wNzI3MDYxMzEzMTUyMzEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMC4zNjM1MzA2NTY1NzYxNTIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS4yNzkzNDQwMDE3NDYxNzc3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjMuOTY3MjAwMDg3MzA4ODgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNTU3LjMyNTAwNDQzNDU4NTYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMzkuMzMxMjUxMTA4NjQ2NCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0NDguMjY5MDAwMTAxMDg5NDMsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDY0LjUxMjAwMjU2MzQ3NjU3LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE0LjAyODUwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIzMy44MDgzMzMzMzMzMzMzNywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogODU5LjY3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjE0LjkxNzUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTIuNzQ3NDQwMDkyNDY4MjYyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjMuNzM3MjAwNDYyMzQxMzA2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1Ni42MDA5MDIxMTQ4NjgxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcwLjc1MTEyNzY0MzU4NTE5LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV82YmJjMmQwYzQ0ZjcyOTg1ZjY1ZTUyZGM0N2E5YmRlNiIsCiAgICAgICJsYWJlbCIgOiAiRWdnIE5vZyIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzUzNC81MzRiMDUxMzExY2I1NmE4MzgyZGM0OWZmNDg1MzY2Mi5qcGciLAogICAgICAic291cmNlIiA6ICJKZWZmcmV5IE1vcmdlbnRoYWxlciIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuamVmZnJleW1vcmdlbnRoYWxlci5jb20vMjAwOS9lZ2ctbm9nLyIsCiAgICAgICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL2VnZy1ub2ctNmJiYzJkMGM0NGY3Mjk4NWY2NWU1MmRjNDdhOWJkZTYvZWdnIiwKICAgICAgInlpZWxkIiA6IDYuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlZlZ2V0YXJpYW4iLCAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgIldoZWF0IiBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjIgbGFyZ2UgZWdncyIsICIzIG96IChieSB2b2x1bWUpIGdyYW51bGF0ZWQgc3VnYXIiLCAiwr0gdHNwIGZyZXNobHktZ3JhdGVkIG51dG1lZyIsICIyIG96IGJyYW5keSIsICIyIG96IHNwaWNlZCBydW0gKEkgdXNlIFNhaWxvciBKZXJyeeKAmXMpIiwgIjYgb3ogd2hvbGUgbWlsayIsICI0IG96IGhlYXZ5IGNyZWFtIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjIgbGFyZ2UgZWdncyIsCiAgICAgICAgIndlaWdodCIgOiAxMDAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjMgb3ogKGJ5IHZvbHVtZSkgZ3JhbnVsYXRlZCBzdWdhciIsCiAgICAgICAgIndlaWdodCIgOiA4NS4wNDg1Njg3MjU1ODU5NAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIsK9IHRzcCBmcmVzaGx5LWdyYXRlZCBudXRtZWciLAogICAgICAgICJ3ZWlnaHQiIDogMS4xMDAwMDAwMjM4NDE4NTgKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyIG96IGJyYW5keSIsCiAgICAgICAgIndlaWdodCIgOiA1Ni42OTkwNDcwODg2MjMwNQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjIgb3ogc3BpY2VkIHJ1bSAoSSB1c2UgU2FpbG9yIEplcnJ54oCZcykiLAogICAgICAgICJ3ZWlnaHQiIDogNTYuNjk5MDQ3MDg4NjIzMDUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI2IG96IHdob2xlIG1pbGsiLAogICAgICAgICJ3ZWlnaHQiIDogMTcwLjA5NzEzNzQ1MTE3MTg4CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNCBveiBoZWF2eSBjcmVhbSIsCiAgICAgICAgIndlaWdodCIgOiAxMTMuMzk4MDk0MTc3MjQ2MQogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiAxMjM0Ljg0NTIzNzM5OTMzOTYsCiAgICAgICJ0b3RhbFdlaWdodCIgOiA1ODMuMDQxODk0NTU1MDkxOSwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIzNC44NDUyMzczOTkzMzk2LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ny4zOTQ4NjE4MjE0MDExMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi43MDE1MDA2NzA1NTIyNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBVFJOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMDM4LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcuMTkyMzI5MTAwNjUxNzQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjgwNDYyOTIzMjEwODU5MywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5Ny42MjIyMTg0NDg3OTM4OSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMjI4ODAwMDA0OTU5MTA2NDYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTcuMDM1MDczODU3Njc2OTYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMC4zMDY5NjA3NjE3Mzc4MjMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NDQuMzY1MTAyNzY3OTQ0MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjYwLjM5MzUxMTUyNDIwMDQ1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzI0Ljc5MzAxMjI2NjE1OTA1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzOC45NjA1ODAzODExNTUwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NTUuMzk1NzI1NDA5OTg0NTUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjAwMTczMTMyOTkxNzkwNzYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjI3NDY5ODgzNDM1OTY0NTcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQxOC42MzQzMjgxMzc2MzYyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MDQuMzY1ODUwMjk3MjEyNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC43MTMzODg1NjU3Nzg3MzIzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTU0OTM2MTMwNjIxNDMzMjcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC44ODgyNTYyNTU4NDI0NDc0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjI5MjI3MTU4NTQ5MTg5NTcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4yNjMwNDU0NjQ0Nzc1MzkwNywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MC44NzY3ODA2NTc3NjgyNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MC44NzY3ODA2NTc3NjgyNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuODU5NTUzNjg4MDQ5MzE2NCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTk5LjM2NzAyNTUyNzk1NDEsCiAgICAgICAgICAidW5pdCIgOiAiSVUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjM3MTA4Nzc5NDQ5NDYyOSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC40MzkwMzA0MjYwMjUzOTEsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MS43NDIyNjE4Njk5NjY5NzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg4LjI5OTc4NzQxNzU0MDE5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2My41MDc1MDMzNTI3NjEyNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi41NDA3Mzk0ODI5MzEyOSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuOTE1MjAwMDE5ODM2NDI1OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQwLjYxMzkyMTUyMzQ3NTY0NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4MS40NTUwMzQyNTU5ODE0NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC44NDk3Mjk2NDY4NDE2ODQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMyLjQ3OTMwMTIyNjYxNTksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS43NDAxNDUwOTUyODg3NTMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy4wMTEzMDY0NDAyODUyNzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjEyMDcyOTYxMDY1NTA0MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuMTY0NjU4ODk1NzMwOTcxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU5LjgwNDkwNDAxOTY2MjMxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDc4LjI2Mjg3MjI1NTI0NTg0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4xODg5ODA5NDI5NjQ1NTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC4zMjkwNzUzNzQ3NjIyMTcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Mi4yNTAzNjc5OTA3MzIxOTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS40NjEzNTc5Mjc0NTk0NzgzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTMuMTUyMjczMjIzODc2OTU0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuMjE5MTk1MTY0NDQyMDYzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMwLjk5MjU2MTQ2NzQ4ODYxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDkuODQxNzU2MzgxOTg4NTI1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS44NTU0Mzg5NzI0NzMxNDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS41NDg3ODgwMzI1MzE3MzgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDU3LjM5NDg2MTgyMTQwMTEyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogODguMjk5Nzg3NDE3NTQwMTksCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAzMi43MDE1MDA2NzA1NTIyNSwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAxNjMuNTA3NTAzMzUyNzYxMjYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4wMzgsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBTVMiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDE3LjE5MjMyOTEwMDY1MTc0LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAzLjgwNDYyOTIzMjEwODU5MywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA5Ny42MjIyMTg0NDg3OTM4OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMyLjU0MDczOTQ4MjkzMTI5LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA5Ny4zOTM0MTg0NDM4MzQ3OCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMjI4ODAwMDA0OTU5MTA2NDYsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMC45MTUyMDAwMTk4MzY0MjU4LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA5Ny4wMzUwNzM4NTc2NzY5NiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjAuMzA2OTYwNzYxNzM3ODIzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDAuNjEzOTIxNTIzNDc1NjQ2LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDU0NC4zNjUxMDI3Njc5NDQzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTgxLjQ1NTAzNDI1NTk4MTQ1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDI2MC4zOTM1MTE1MjQyMDA0NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEwLjg0OTcyOTY0Njg0MTY4NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMyNC43OTMwMTIyNjYxNTkwNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMyLjQ3OTMwMTIyNjYxNTksCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDM4Ljk2MDU4MDM4MTE1NTAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOS43NDAxNDUwOTUyODg3NTMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDU1LjM5NTcyNTQwOTk4NDU1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTMuMDExMzA2NDQwMjg1MjczLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgInRhZyIgOiAiRkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4wMDE3MzEzMjk5MTc5MDc2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTEuMTIwNzI5NjEwNjU1MDQyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4yNzQ2OTg4MzQzNTk2NDU3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTUuMTY0NjU4ODk1NzMwOTcxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0MTguNjM0MzI4MTM3NjM2MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDU5LjgwNDkwNDAxOTY2MjMxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3MDQuMzY1ODUwMjk3MjEyNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDc4LjI2Mjg3MjI1NTI0NTg0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjcxMzM4ODU2NTc3ODczMjMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxLjE4ODk4MDk0Mjk2NDU1NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjE1NDkzNjEzMDYyMTQzMzI3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAuMzI5MDc1Mzc0NzYyMjE3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAidGFnIiA6ICJSSUJGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuODg4MjU2MjU1ODQyNDQ3NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDUyLjI1MDM2Nzk5MDczMjE5NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4yOTIyNzE1ODU0OTE4OTU3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS40NjEzNTc5Mjc0NTk0NzgzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMjYzMDQ1NDY0NDc3NTM5MDcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMy4xNTIyNzMyMjM4NzY5NTQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNjAuODc2NzgwNjU3NzY4MjUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNS4yMTkxOTUxNjQ0NDIwNjMsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNjAuODc2NzgwNjU3NzY4MjUsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjg1OTU1MzY4ODA0OTMxNjQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzMC45OTI1NjE0Njc0ODg2MSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTk5LjM2NzAyNTUyNzk1NDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0OS44NDE3NTYzODE5ODg1MjUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4zNzEwODc3OTQ0OTQ2MjksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMS44NTU0Mzg5NzI0NzMxNDUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuNDM5MDMwNDI2MDI1MzkxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNS41NDg3ODgwMzI1MzE3MzgsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSBdCn0=
+ http_version:
+ recorded_at: Sat, 04 Nov 2017 17:31:56 GMT
+- request:
+ method: get
+ uri: https://api.edamam.com/search?app_id=&app_key=bogus_data&from=0&q=egg
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 401
+ message: Unauthorized
+ headers:
+ Server:
+ - ngx_openresty
+ Date:
+ - Sat, 04 Nov 2017 23:19:22 GMT
+ Content-Type:
+ - text/html
+ Content-Length:
+ - '2996'
+ Connection:
+ - keep-alive
+ Vary:
+ - Accept-Encoding
+ Etag:
+ - '"511d94d0-bb4"'
+ body:
+ encoding: ASCII-8BIT
+ string: "\n\n\n\n Error 401 - Edamam \n\n\t \n\t \n\t \n\t\n\t \n\n\t \n\n\t \n\t \n\n\t \n\t \n\t \n\t\n\t \n\t \n\t \n\t\n\t \n\n\t \n\t \n\t\n\t \n\n\t\n\t\n\t\n\t\n\t\n\n\n\n\t\n\t\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
Edamam \n\t\t\t\t\t
Eat better! \n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
Oh, no! You seem to have wandered into
+ a food desert! You must be hungry...
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t
\n\t\t \n\t\t\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t \n\t
\n\n\n"
+ http_version:
+ recorded_at: Sat, 04 Nov 2017 23:17:57 GMT
+recorded_with: VCR 3.0.3
diff --git a/test/cassettes/show_recipe.yml b/test/cassettes/show_recipe.yml
new file mode 100644
index 000000000..9383aeaf1
--- /dev/null
+++ b/test/cassettes/show_recipe.yml
@@ -0,0 +1,45 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://api.edamam.com/search?app_id=&app_key=&r=http://www.edamam.com/ontologies/edamam.owl%23recipe_7bf4a371c6884d809682a72808da7dc2
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - ngx_openresty
+ Date:
+ - Sun, 05 Nov 2017 20:33:02 GMT
+ Content-Type:
+ - application/json;charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ Cache-Control:
+ - private
+ Expires:
+ - Thu, 01 Jan 1970 00:00:00 UTC
+ X-Served-By:
+ - ip-10-143-141-59/10.143.141.59
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ W3sKICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV83YmY0YTM3MWM2ODg0ZDgwOTY4MmE3MjgwOGRhN2RjMiIsCiAgImxhYmVsIiA6ICJUZXJpeWFraSBDaGlja2VuIiwKICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy8yNjIvMjYyYjQzNTNjYTI1MDc0MTc4ZWFkMmEwN2NkZjdkYzEuanBnIiwKICAic291cmNlIiA6ICJEYXZpZCBMZWJvdml0eiIsCiAgInVybCIgOiAiaHR0cDovL3d3dy5kYXZpZGxlYm92aXR6LmNvbS8yMDEyLzEyL2NoaWNrZW4tdGVyaXlha2ktcmVjaXBlLWphcGFuZXNlLWZhcm0tZm9vZC8iLAogICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL3Rlcml5YWtpLWNoaWNrZW4tN2JmNGEzNzFjNjg4NGQ4MDk2ODJhNzI4MDhkYTdkYzIvLSIsCiAgInlpZWxkIiA6IDYuMCwKICAiZGlldExhYmVscyIgOiBbICJMb3ctQ2FyYiIgXSwKICAiaGVhbHRoTGFiZWxzIiA6IFsgIlN1Z2FyLUNvbnNjaW91cyIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAiY2F1dGlvbnMiIDogWyBdLAogICJpbmdyZWRpZW50TGluZXMiIDogWyAiMS8yIGN1cCAoMTI1bWwpIG1pcmluIiwgIjEvMiBjdXAgKDEyNW1sKSBzb3kgc2F1Y2UiLCAiT25lIDItaW5jaCAoNWNtKSBwaWVjZSBvZiBmcmVzaCBnaW5nZXIsIHBlZWxlZCBhbmQgZ3JhdGVkIiwgIjItcG91bmRzICg5MDBnKSBib25lbGVzcyBjaGlja2VuIHRoaWdocyAoNC04IHRoaWdocywgZGVwZW5kaW5nIG9uIHNpemUpIiBdLAogICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICJ0ZXh0IiA6ICIxLzIgY3VwICgxMjVtbCkgbWlyaW4iLAogICAgIndlaWdodCIgOiAxMjIuOTk4NTA0NjM4NjcxODgKICB9LCB7CiAgICAidGV4dCIgOiAiMS8yIGN1cCAoMTI1bWwpIHNveSBzYXVjZSIsCiAgICAid2VpZ2h0IiA6IDEzNC43Mjc3NTI2ODU1NDY4OAogIH0sIHsKICAgICJ0ZXh0IiA6ICJPbmUgMi1pbmNoICg1Y20pIHBpZWNlIG9mIGZyZXNoIGdpbmdlciwgcGVlbGVkIGFuZCBncmF0ZWQiLAogICAgIndlaWdodCIgOiAxNS4wCiAgfSwgewogICAgInRleHQiIDogIjItcG91bmRzICg5MDBnKSBib25lbGVzcyBjaGlja2VuIHRoaWdocyAoNC04IHRoaWdocywgZGVwZW5kaW5nIG9uIHNpemUpIiwKICAgICJ3ZWlnaHQiIDogOTA3LjE4NDc1MzQxNzk2ODgKICB9IF0sCiAgImNhbG9yaWVzIiA6IDIyNTMuMTAyMDEwMTkyODcxLAogICJ0b3RhbFdlaWdodCIgOiAxMTc5LjkxMTAxMDc0MjE4NzUsCiAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAicXVhbnRpdHkiIDogMjI1My4xMDIwMTAxOTI4NzEsCiAgICAgICJ1bml0IiA6ICJrY2FsIgogICAgfSwKICAgICJGQVQiIDogewogICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICJxdWFudGl0eSIgOiAxNTEuNTYzODM1NzMzMDMyMjIsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwKICAgICJGQVNBVCIgOiB7CiAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgInF1YW50aXR5IiA6IDQxLjE2OTgzOTUwNDA4OTM2LAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiRkFUUk4iIDogewogICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgInF1YW50aXR5IiA6IDAuNzcxMTA3MDQwNDA1MjczNCwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZBTVMiIDogewogICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICJxdWFudGl0eSIgOiA2My4xMDAyODIzMDk1NzAzMSwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZBUFUiIDogewogICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICJxdWFudGl0eSIgOiAzMS44Mjk1MjkzOTA1NjM5NjIsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwKICAgICJDSE9DREYiIDogewogICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgInF1YW50aXR5IiA6IDE3LjcyNTQ2NTMyMjg3NTk3NiwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZJQlRHIiA6IHsKICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICJxdWFudGl0eSIgOiAxLjM3NzgyMjAyMTQ4NDM3NSwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIlNVR0FSIiA6IHsKICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAicXVhbnRpdHkiIDogMC43OTM5MTEwMTA3NDIxODc1LAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiUFJPQ05UIiA6IHsKICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgInF1YW50aXR5IiA6IDE2MS43MjE3NTI4NTY0NDUzLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiQ0hPTEUiIDogewogICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgInF1YW50aXR5IiA6IDg4OS4wNDEwNTgzNDk2MDkzLAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIk5BIiA6IHsKICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAicXVhbnRpdHkiIDogODEzOS44MjUwNzUzNzg0MTgsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiQ0EiIDogewogICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAicXVhbnRpdHkiIDogMTE2LjUxMzAxNjM1NzQyMTg2LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIk1HIiA6IHsKICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAicXVhbnRpdHkiIDogMjc2LjgyMTcwMjg4MDg1OTMzLAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIksiIDogewogICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiAyNTI5LjcyMjI0NzMxNDQ1MywKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJGRSIgOiB7CiAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICJxdWFudGl0eSIgOiA4LjMzNTQwNzI0MTgyMTI4OCwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJaTiIgOiB7CiAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICJxdWFudGl0eSIgOiAxMi45NTA0MTQ0NjgzODM3ODksCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiUCIgOiB7CiAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICJxdWFudGl0eSIgOiAxNjYwLjQwODA0MjYwMjUzOTEsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiVklUQV9SQUUiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICJxdWFudGl0eSIgOiAyMDguNjUyNDkzMjg2MTMyOCwKICAgICAgInVuaXQiIDogIsK1ZyIKICAgIH0sCiAgICAiVklUQyIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgInF1YW50aXR5IiA6IDAuNzUsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiVEhJQSIgOiB7CiAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgInF1YW50aXR5IiA6IDAuNzEwNDU1MDI4MzgxMzQ3NiwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJSSUJGIiA6IHsKICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAicXVhbnRpdHkiIDogMS41NDI4MTg2ODQzODcyMDY3LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIk5JQSIgOiB7CiAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAicXVhbnRpdHkiIDogNDUuMDI4NDE2Mjk0NTU1NjYsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiVklUQjZBIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgInF1YW50aXR5IiA6IDMuMzcxMzI4MTY4MzM0OTYwNywKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJGT0xERkUiIDogewogICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAicXVhbnRpdHkiIDogNDcuNzI3NDI3OTc4NTE1NjIsCiAgICAgICJ1bml0IiA6ICLCtWciCiAgICB9LAogICAgIkZPTEZEIiA6IHsKICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgInF1YW50aXR5IiA6IDQ3LjcyNzQyNzk3ODUxNTYyLAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfSwKICAgICJWSVRCMTIiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgInF1YW50aXR5IiA6IDUuNjI0NTQ1NDcxMTkxNDA2LAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfSwKICAgICJWSVREIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAicXVhbnRpdHkiIDogMjcuMjE1NTQyNjAyNTM5MDYsCiAgICAgICJ1bml0IiA6ICJJVSIKICAgIH0sCiAgICAiVE9DUEhBIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAicXVhbnRpdHkiIDogMS45NDQwODc5ODIxNzc3MzQyLAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIlZJVEsxIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAicXVhbnRpdHkiIDogMTkuMDY1ODc5ODIxNzc3MzQ0LAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfQogIH0sCiAgInRvdGFsRGFpbHkiIDogewogICAgIkVORVJDX0tDQUwiIDogewogICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICJxdWFudGl0eSIgOiAxMTIuNjU1MTAwNTA5NjQzNTYsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJGQVQiIDogewogICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICJxdWFudGl0eSIgOiAyMzMuMTc1MTMxODk2OTcyNjYsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJGQVNBVCIgOiB7CiAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgInF1YW50aXR5IiA6IDIwNS44NDkxOTc1MjA0NDY4LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiQ0hPQ0RGIiA6IHsKICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICJxdWFudGl0eSIgOiA1LjkwODQ4ODQ0MDk1ODY1OCwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIkZJQlRHIiA6IHsKICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICJxdWFudGl0eSIgOiA1LjUxMTI4ODA4NTkzNzUsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJQUk9DTlQiIDogewogICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAicXVhbnRpdHkiIDogMzIzLjQ0MzUwNTcxMjg5MDYsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJDSE9MRSIgOiB7CiAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAicXVhbnRpdHkiIDogMjk2LjM0NzAxOTQ0OTg2OTgsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJOQSIgOiB7CiAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgInF1YW50aXR5IiA6IDMzOS4xNTkzNzgxNDA3Njc0LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiQ0EiIDogewogICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAicXVhbnRpdHkiIDogMTEuNjUxMzAxNjM1NzQyMTg2LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiTUciIDogewogICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiA2OS4yMDU0MjU3MjAyMTQ4MywKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIksiIDogewogICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiA3Mi4yNzc3Nzg0OTQ2OTg2NSwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIkZFIiA6IHsKICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgInF1YW50aXR5IiA6IDQ2LjMwNzgxODAxMDExODI3LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiWk4iIDogewogICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAicXVhbnRpdHkiIDogODYuMzM2MDk2NDU1ODkxOTMsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJQIiA6IHsKICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgInF1YW50aXR5IiA6IDIzNy4yMDExNDg5NDMyMTk4NiwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlZJVEFfUkFFIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAicXVhbnRpdHkiIDogMjMuMTgzNjEwMzY1MTI1ODcsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVRDIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAicXVhbnRpdHkiIDogMS4yNSwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlRISUEiIDogewogICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICJxdWFudGl0eSIgOiA0Ny4zNjM2Njg1NTg3NTY1LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiUklCRiIgOiB7CiAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgInF1YW50aXR5IiA6IDkwLjc1NDA0MDI1ODA3MDk5LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiTklBIiA6IHsKICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICJxdWFudGl0eSIgOiAyMjUuMTQyMDgxNDcyNzc4MzMsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVRCNkEiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAicXVhbnRpdHkiIDogMTY4LjU2NjQwODQxNjc0ODAzLAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiRk9MREZFIiA6IHsKICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgInF1YW50aXR5IiA6IDExLjkzMTg1Njk5NDYyODkwNywKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlZJVEIxMiIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAicXVhbnRpdHkiIDogOTMuNzQyNDI0NTE5ODU2NzgsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVREIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAicXVhbnRpdHkiIDogNi44MDM4ODU2NTA2MzQ3NjUsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJUT0NQSEEiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICJxdWFudGl0eSIgOiA5LjcyMDQzOTkxMDg4ODY3LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiVklUSzEiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICJxdWFudGl0eSIgOiAyMy44MzIzNDk3NzcyMjE2OCwKICAgICAgInVuaXQiIDogIiUiCiAgICB9CiAgfSwKICAiZGlnZXN0IiA6IFsgewogICAgImxhYmVsIiA6ICJGYXQiLAogICAgInRhZyIgOiAiRkFUIiwKICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgInRvdGFsIiA6IDE1MS41NjM4MzU3MzMwMzIyMiwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiAyMzMuMTc1MTMxODk2OTcyNjYsCiAgICAidW5pdCIgOiAiZyIsCiAgICAic3ViIiA6IFsgewogICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICJ0b3RhbCIgOiA0MS4xNjk4Mzk1MDQwODkzNiwKICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAiZGFpbHkiIDogMjA1Ljg0OTE5NzUyMDQ0NjgsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAidG90YWwiIDogMC43NzExMDcwNDA0MDUyNzM0LAogICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAiZGFpbHkiIDogMC4wLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sIHsKICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAidG90YWwiIDogNjMuMTAwMjgyMzA5NTcwMzEsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICJ0YWciIDogIkZBUFUiLAogICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICJ0b3RhbCIgOiAzMS44Mjk1MjkzOTA1NjM5NjIsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSBdCiAgfSwgewogICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAidGFnIiA6ICJDSE9DREYiLAogICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAidG90YWwiIDogMTcuNzI1NDY1MzIyODc1OTc2LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDUuOTA4NDg4NDQwOTU4NjU4LAogICAgInVuaXQiIDogImciLAogICAgInN1YiIgOiBbIHsKICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICJ0b3RhbCIgOiAxNi4zNDc2NDMzMDEzOTE2MDMsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAidG90YWwiIDogMS4zNzc4MjIwMjE0ODQzNzUsCiAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgImRhaWx5IiA6IDUuNTExMjg4MDg1OTM3NSwKICAgICAgInVuaXQiIDogImciCiAgICB9LCB7CiAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAidG90YWwiIDogMC43OTM5MTEwMTA3NDIxODc1LAogICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAiZGFpbHkiIDogMC4wLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sIHsKICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSBdCiAgfSwgewogICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAidG90YWwiIDogMTYxLjcyMTc1Mjg1NjQ0NTMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMzIzLjQ0MzUwNTcxMjg5MDYsCiAgICAidW5pdCIgOiAiZyIKICB9LCB7CiAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICJ0YWciIDogIkNIT0xFIiwKICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAidG90YWwiIDogODg5LjA0MTA1ODM0OTYwOTMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMjk2LjM0NzAxOTQ0OTg2OTgsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgInRhZyIgOiAiTkEiLAogICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAidG90YWwiIDogODEzOS44MjUwNzUzNzg0MTgsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMzM5LjE1OTM3ODE0MDc2NzQsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICJ0YWciIDogIkNBIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxMTYuNTEzMDE2MzU3NDIxODYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTEuNjUxMzAxNjM1NzQyMTg2LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICJ0YWciIDogIk1HIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAyNzYuODIxNzAyODgwODU5MzMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNjkuMjA1NDI1NzIwMjE0ODMsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgInRhZyIgOiAiSyIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMjUyOS43MjIyNDczMTQ0NTMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNzIuMjc3Nzc4NDk0Njk4NjUsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICJ0YWciIDogIkZFIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiA4LjMzNTQwNzI0MTgyMTI4OCwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiA0Ni4zMDc4MTgwMTAxMTgyNywKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlppbmMiLAogICAgInRhZyIgOiAiWk4iLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDEyLjk1MDQxNDQ2ODM4Mzc4OSwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiA4Ni4zMzYwOTY0NTU4OTE5MywKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgInRhZyIgOiAiUCIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMTY2MC40MDgwNDI2MDI1MzkxLAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDIzNy4yMDExNDg5NDMyMTk4NiwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMjA4LjY1MjQ5MzI4NjEzMjgsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMjMuMTgzNjEwMzY1MTI1ODcsCiAgICAidW5pdCIgOiAiwrVnIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICJ0YWciIDogIlZJVEMiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDAuNzUsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMS4yNSwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAidGFnIiA6ICJUSElBIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAwLjcxMDQ1NTAyODM4MTM0NzYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNDcuMzYzNjY4NTU4NzU2NSwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAidGFnIiA6ICJSSUJGIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxLjU0MjgxODY4NDM4NzIwNjcsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogOTAuNzU0MDQwMjU4MDcwOTksCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAidGFnIiA6ICJOSUEiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDQ1LjAyODQxNjI5NDU1NTY2LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDIyNS4xNDIwODE0NzI3NzgzMywKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgInRhZyIgOiAiVklUQjZBIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAzLjM3MTMyODE2ODMzNDk2MDcsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTY4LjU2NjQwODQxNjc0ODAzLAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAidGFnIiA6ICJGT0xERkUiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDQ3LjcyNzQyNzk3ODUxNTYyLAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDExLjkzMTg1Njk5NDYyODkwNywKICAgICJ1bml0IiA6ICLCtWciCiAgfSwgewogICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICJ0YWciIDogIkZPTEZEIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiA0Ny43Mjc0Mjc5Nzg1MTU2MiwKICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAiZGFpbHkiIDogMC4wLAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgInRhZyIgOiAiRk9MQUMiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDAuMCwKICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAiZGFpbHkiIDogMC4wLAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogNS42MjQ1NDU0NzExOTE0MDYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogOTMuNzQyNDI0NTE5ODU2NzgsCiAgICAidW5pdCIgOiAiwrVnIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICJ0YWciIDogIlZJVEQiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDI3LjIxNTU0MjYwMjUzOTA2LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDYuODAzODg1NjUwNjM0NzY1LAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDEuOTQ0MDg3OTgyMTc3NzM0MiwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiA5LjcyMDQzOTkxMDg4ODY3LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICJ0YWciIDogIlZJVEsxIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxOS4wNjU4Nzk4MjE3NzczNDQsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMjMuODMyMzQ5Nzc3MjIxNjgsCiAgICAidW5pdCIgOiAiwrVnIgogIH0gXQp9XQ==
+ http_version:
+ recorded_at: Sun, 05 Nov 2017 20:31:36 GMT
+recorded_with: VCR 3.0.3
diff --git a/test/cassettes/wrapper_test.yml b/test/cassettes/wrapper_test.yml
new file mode 100644
index 000000000..259cf3dd9
--- /dev/null
+++ b/test/cassettes/wrapper_test.yml
@@ -0,0 +1,84 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://api.edamam.com/search?app_id=&app_key=&r=http://www.edamam.com/ontologies/edamam.owl%23recipe_7bf4a371c6884d809682a72808da7dc2
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - ngx_openresty
+ Date:
+ - Sun, 05 Nov 2017 18:35:17 GMT
+ Content-Type:
+ - application/json;charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ Cache-Control:
+ - private
+ Expires:
+ - Thu, 01 Jan 1970 00:00:00 UTC
+ X-Served-By:
+ - ip-10-143-141-59/10.143.141.59
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ W3sKICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV83YmY0YTM3MWM2ODg0ZDgwOTY4MmE3MjgwOGRhN2RjMiIsCiAgImxhYmVsIiA6ICJUZXJpeWFraSBDaGlja2VuIiwKICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy8yNjIvMjYyYjQzNTNjYTI1MDc0MTc4ZWFkMmEwN2NkZjdkYzEuanBnIiwKICAic291cmNlIiA6ICJEYXZpZCBMZWJvdml0eiIsCiAgInVybCIgOiAiaHR0cDovL3d3dy5kYXZpZGxlYm92aXR6LmNvbS8yMDEyLzEyL2NoaWNrZW4tdGVyaXlha2ktcmVjaXBlLWphcGFuZXNlLWZhcm0tZm9vZC8iLAogICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL3Rlcml5YWtpLWNoaWNrZW4tN2JmNGEzNzFjNjg4NGQ4MDk2ODJhNzI4MDhkYTdkYzIvLSIsCiAgInlpZWxkIiA6IDYuMCwKICAiZGlldExhYmVscyIgOiBbICJMb3ctQ2FyYiIgXSwKICAiaGVhbHRoTGFiZWxzIiA6IFsgIlN1Z2FyLUNvbnNjaW91cyIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAiY2F1dGlvbnMiIDogWyBdLAogICJpbmdyZWRpZW50TGluZXMiIDogWyAiMS8yIGN1cCAoMTI1bWwpIG1pcmluIiwgIjEvMiBjdXAgKDEyNW1sKSBzb3kgc2F1Y2UiLCAiT25lIDItaW5jaCAoNWNtKSBwaWVjZSBvZiBmcmVzaCBnaW5nZXIsIHBlZWxlZCBhbmQgZ3JhdGVkIiwgIjItcG91bmRzICg5MDBnKSBib25lbGVzcyBjaGlja2VuIHRoaWdocyAoNC04IHRoaWdocywgZGVwZW5kaW5nIG9uIHNpemUpIiBdLAogICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICJ0ZXh0IiA6ICIxLzIgY3VwICgxMjVtbCkgbWlyaW4iLAogICAgIndlaWdodCIgOiAxMjIuOTk4NTA0NjM4NjcxODgKICB9LCB7CiAgICAidGV4dCIgOiAiMS8yIGN1cCAoMTI1bWwpIHNveSBzYXVjZSIsCiAgICAid2VpZ2h0IiA6IDEzNC43Mjc3NTI2ODU1NDY4OAogIH0sIHsKICAgICJ0ZXh0IiA6ICJPbmUgMi1pbmNoICg1Y20pIHBpZWNlIG9mIGZyZXNoIGdpbmdlciwgcGVlbGVkIGFuZCBncmF0ZWQiLAogICAgIndlaWdodCIgOiAxNS4wCiAgfSwgewogICAgInRleHQiIDogIjItcG91bmRzICg5MDBnKSBib25lbGVzcyBjaGlja2VuIHRoaWdocyAoNC04IHRoaWdocywgZGVwZW5kaW5nIG9uIHNpemUpIiwKICAgICJ3ZWlnaHQiIDogOTA3LjE4NDc1MzQxNzk2ODgKICB9IF0sCiAgImNhbG9yaWVzIiA6IDIyNTMuMTAyMDEwMTkyODcxLAogICJ0b3RhbFdlaWdodCIgOiAxMTc5LjkxMTAxMDc0MjE4NzUsCiAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAicXVhbnRpdHkiIDogMjI1My4xMDIwMTAxOTI4NzEsCiAgICAgICJ1bml0IiA6ICJrY2FsIgogICAgfSwKICAgICJGQVQiIDogewogICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICJxdWFudGl0eSIgOiAxNTEuNTYzODM1NzMzMDMyMjIsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwKICAgICJGQVNBVCIgOiB7CiAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgInF1YW50aXR5IiA6IDQxLjE2OTgzOTUwNDA4OTM2LAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiRkFUUk4iIDogewogICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgInF1YW50aXR5IiA6IDAuNzcxMTA3MDQwNDA1MjczNCwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZBTVMiIDogewogICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICJxdWFudGl0eSIgOiA2My4xMDAyODIzMDk1NzAzMSwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZBUFUiIDogewogICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICJxdWFudGl0eSIgOiAzMS44Mjk1MjkzOTA1NjM5NjIsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwKICAgICJDSE9DREYiIDogewogICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgInF1YW50aXR5IiA6IDE3LjcyNTQ2NTMyMjg3NTk3NiwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZJQlRHIiA6IHsKICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICJxdWFudGl0eSIgOiAxLjM3NzgyMjAyMTQ4NDM3NSwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIlNVR0FSIiA6IHsKICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAicXVhbnRpdHkiIDogMC43OTM5MTEwMTA3NDIxODc1LAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiUFJPQ05UIiA6IHsKICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgInF1YW50aXR5IiA6IDE2MS43MjE3NTI4NTY0NDUzLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiQ0hPTEUiIDogewogICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgInF1YW50aXR5IiA6IDg4OS4wNDEwNTgzNDk2MDkzLAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIk5BIiA6IHsKICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAicXVhbnRpdHkiIDogODEzOS44MjUwNzUzNzg0MTgsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiQ0EiIDogewogICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAicXVhbnRpdHkiIDogMTE2LjUxMzAxNjM1NzQyMTg2LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIk1HIiA6IHsKICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAicXVhbnRpdHkiIDogMjc2LjgyMTcwMjg4MDg1OTMzLAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIksiIDogewogICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiAyNTI5LjcyMjI0NzMxNDQ1MywKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJGRSIgOiB7CiAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICJxdWFudGl0eSIgOiA4LjMzNTQwNzI0MTgyMTI4OCwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJaTiIgOiB7CiAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICJxdWFudGl0eSIgOiAxMi45NTA0MTQ0NjgzODM3ODksCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiUCIgOiB7CiAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICJxdWFudGl0eSIgOiAxNjYwLjQwODA0MjYwMjUzOTEsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiVklUQV9SQUUiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICJxdWFudGl0eSIgOiAyMDguNjUyNDkzMjg2MTMyOCwKICAgICAgInVuaXQiIDogIsK1ZyIKICAgIH0sCiAgICAiVklUQyIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgInF1YW50aXR5IiA6IDAuNzUsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiVEhJQSIgOiB7CiAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgInF1YW50aXR5IiA6IDAuNzEwNDU1MDI4MzgxMzQ3NiwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJSSUJGIiA6IHsKICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAicXVhbnRpdHkiIDogMS41NDI4MTg2ODQzODcyMDY3LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIk5JQSIgOiB7CiAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAicXVhbnRpdHkiIDogNDUuMDI4NDE2Mjk0NTU1NjYsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiVklUQjZBIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgInF1YW50aXR5IiA6IDMuMzcxMzI4MTY4MzM0OTYwNywKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJGT0xERkUiIDogewogICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAicXVhbnRpdHkiIDogNDcuNzI3NDI3OTc4NTE1NjIsCiAgICAgICJ1bml0IiA6ICLCtWciCiAgICB9LAogICAgIkZPTEZEIiA6IHsKICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgInF1YW50aXR5IiA6IDQ3LjcyNzQyNzk3ODUxNTYyLAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfSwKICAgICJWSVRCMTIiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgInF1YW50aXR5IiA6IDUuNjI0NTQ1NDcxMTkxNDA2LAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfSwKICAgICJWSVREIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAicXVhbnRpdHkiIDogMjcuMjE1NTQyNjAyNTM5MDYsCiAgICAgICJ1bml0IiA6ICJJVSIKICAgIH0sCiAgICAiVE9DUEhBIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAicXVhbnRpdHkiIDogMS45NDQwODc5ODIxNzc3MzQyLAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIlZJVEsxIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAicXVhbnRpdHkiIDogMTkuMDY1ODc5ODIxNzc3MzQ0LAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfQogIH0sCiAgInRvdGFsRGFpbHkiIDogewogICAgIkVORVJDX0tDQUwiIDogewogICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICJxdWFudGl0eSIgOiAxMTIuNjU1MTAwNTA5NjQzNTYsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJGQVQiIDogewogICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICJxdWFudGl0eSIgOiAyMzMuMTc1MTMxODk2OTcyNjYsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJGQVNBVCIgOiB7CiAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgInF1YW50aXR5IiA6IDIwNS44NDkxOTc1MjA0NDY4LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiQ0hPQ0RGIiA6IHsKICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICJxdWFudGl0eSIgOiA1LjkwODQ4ODQ0MDk1ODY1OCwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIkZJQlRHIiA6IHsKICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICJxdWFudGl0eSIgOiA1LjUxMTI4ODA4NTkzNzUsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJQUk9DTlQiIDogewogICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAicXVhbnRpdHkiIDogMzIzLjQ0MzUwNTcxMjg5MDYsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJDSE9MRSIgOiB7CiAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAicXVhbnRpdHkiIDogMjk2LjM0NzAxOTQ0OTg2OTgsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJOQSIgOiB7CiAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgInF1YW50aXR5IiA6IDMzOS4xNTkzNzgxNDA3Njc0LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiQ0EiIDogewogICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAicXVhbnRpdHkiIDogMTEuNjUxMzAxNjM1NzQyMTg2LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiTUciIDogewogICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiA2OS4yMDU0MjU3MjAyMTQ4MywKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIksiIDogewogICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiA3Mi4yNzc3Nzg0OTQ2OTg2NSwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIkZFIiA6IHsKICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgInF1YW50aXR5IiA6IDQ2LjMwNzgxODAxMDExODI3LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiWk4iIDogewogICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAicXVhbnRpdHkiIDogODYuMzM2MDk2NDU1ODkxOTMsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJQIiA6IHsKICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgInF1YW50aXR5IiA6IDIzNy4yMDExNDg5NDMyMTk4NiwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlZJVEFfUkFFIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAicXVhbnRpdHkiIDogMjMuMTgzNjEwMzY1MTI1ODcsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVRDIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAicXVhbnRpdHkiIDogMS4yNSwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlRISUEiIDogewogICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICJxdWFudGl0eSIgOiA0Ny4zNjM2Njg1NTg3NTY1LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiUklCRiIgOiB7CiAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgInF1YW50aXR5IiA6IDkwLjc1NDA0MDI1ODA3MDk5LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiTklBIiA6IHsKICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICJxdWFudGl0eSIgOiAyMjUuMTQyMDgxNDcyNzc4MzMsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVRCNkEiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAicXVhbnRpdHkiIDogMTY4LjU2NjQwODQxNjc0ODAzLAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiRk9MREZFIiA6IHsKICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgInF1YW50aXR5IiA6IDExLjkzMTg1Njk5NDYyODkwNywKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlZJVEIxMiIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAicXVhbnRpdHkiIDogOTMuNzQyNDI0NTE5ODU2NzgsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVREIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAicXVhbnRpdHkiIDogNi44MDM4ODU2NTA2MzQ3NjUsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJUT0NQSEEiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICJxdWFudGl0eSIgOiA5LjcyMDQzOTkxMDg4ODY3LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiVklUSzEiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICJxdWFudGl0eSIgOiAyMy44MzIzNDk3NzcyMjE2OCwKICAgICAgInVuaXQiIDogIiUiCiAgICB9CiAgfSwKICAiZGlnZXN0IiA6IFsgewogICAgImxhYmVsIiA6ICJGYXQiLAogICAgInRhZyIgOiAiRkFUIiwKICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgInRvdGFsIiA6IDE1MS41NjM4MzU3MzMwMzIyMiwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiAyMzMuMTc1MTMxODk2OTcyNjYsCiAgICAidW5pdCIgOiAiZyIsCiAgICAic3ViIiA6IFsgewogICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICJ0b3RhbCIgOiA0MS4xNjk4Mzk1MDQwODkzNiwKICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAiZGFpbHkiIDogMjA1Ljg0OTE5NzUyMDQ0NjgsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAidG90YWwiIDogMC43NzExMDcwNDA0MDUyNzM0LAogICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAiZGFpbHkiIDogMC4wLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sIHsKICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAidG90YWwiIDogNjMuMTAwMjgyMzA5NTcwMzEsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICJ0YWciIDogIkZBUFUiLAogICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICJ0b3RhbCIgOiAzMS44Mjk1MjkzOTA1NjM5NjIsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSBdCiAgfSwgewogICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAidGFnIiA6ICJDSE9DREYiLAogICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAidG90YWwiIDogMTcuNzI1NDY1MzIyODc1OTc2LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDUuOTA4NDg4NDQwOTU4NjU4LAogICAgInVuaXQiIDogImciLAogICAgInN1YiIgOiBbIHsKICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICJ0b3RhbCIgOiAxNi4zNDc2NDMzMDEzOTE2MDMsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAidG90YWwiIDogMS4zNzc4MjIwMjE0ODQzNzUsCiAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgImRhaWx5IiA6IDUuNTExMjg4MDg1OTM3NSwKICAgICAgInVuaXQiIDogImciCiAgICB9LCB7CiAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAidG90YWwiIDogMC43OTM5MTEwMTA3NDIxODc1LAogICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAiZGFpbHkiIDogMC4wLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sIHsKICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSBdCiAgfSwgewogICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAidG90YWwiIDogMTYxLjcyMTc1Mjg1NjQ0NTMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMzIzLjQ0MzUwNTcxMjg5MDYsCiAgICAidW5pdCIgOiAiZyIKICB9LCB7CiAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICJ0YWciIDogIkNIT0xFIiwKICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAidG90YWwiIDogODg5LjA0MTA1ODM0OTYwOTMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMjk2LjM0NzAxOTQ0OTg2OTgsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgInRhZyIgOiAiTkEiLAogICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAidG90YWwiIDogODEzOS44MjUwNzUzNzg0MTgsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMzM5LjE1OTM3ODE0MDc2NzQsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICJ0YWciIDogIkNBIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxMTYuNTEzMDE2MzU3NDIxODYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTEuNjUxMzAxNjM1NzQyMTg2LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICJ0YWciIDogIk1HIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAyNzYuODIxNzAyODgwODU5MzMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNjkuMjA1NDI1NzIwMjE0ODMsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgInRhZyIgOiAiSyIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMjUyOS43MjIyNDczMTQ0NTMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNzIuMjc3Nzc4NDk0Njk4NjUsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICJ0YWciIDogIkZFIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiA4LjMzNTQwNzI0MTgyMTI4OCwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiA0Ni4zMDc4MTgwMTAxMTgyNywKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlppbmMiLAogICAgInRhZyIgOiAiWk4iLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDEyLjk1MDQxNDQ2ODM4Mzc4OSwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiA4Ni4zMzYwOTY0NTU4OTE5MywKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgInRhZyIgOiAiUCIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMTY2MC40MDgwNDI2MDI1MzkxLAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDIzNy4yMDExNDg5NDMyMTk4NiwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMjA4LjY1MjQ5MzI4NjEzMjgsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMjMuMTgzNjEwMzY1MTI1ODcsCiAgICAidW5pdCIgOiAiwrVnIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICJ0YWciIDogIlZJVEMiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDAuNzUsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMS4yNSwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAidGFnIiA6ICJUSElBIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAwLjcxMDQ1NTAyODM4MTM0NzYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNDcuMzYzNjY4NTU4NzU2NSwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAidGFnIiA6ICJSSUJGIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxLjU0MjgxODY4NDM4NzIwNjcsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogOTAuNzU0MDQwMjU4MDcwOTksCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAidGFnIiA6ICJOSUEiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDQ1LjAyODQxNjI5NDU1NTY2LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDIyNS4xNDIwODE0NzI3NzgzMywKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgInRhZyIgOiAiVklUQjZBIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAzLjM3MTMyODE2ODMzNDk2MDcsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTY4LjU2NjQwODQxNjc0ODAzLAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAidGFnIiA6ICJGT0xERkUiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDQ3LjcyNzQyNzk3ODUxNTYyLAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDExLjkzMTg1Njk5NDYyODkwNywKICAgICJ1bml0IiA6ICLCtWciCiAgfSwgewogICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICJ0YWciIDogIkZPTEZEIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiA0Ny43Mjc0Mjc5Nzg1MTU2MiwKICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAiZGFpbHkiIDogMC4wLAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgInRhZyIgOiAiRk9MQUMiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDAuMCwKICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAiZGFpbHkiIDogMC4wLAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogNS42MjQ1NDU0NzExOTE0MDYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogOTMuNzQyNDI0NTE5ODU2NzgsCiAgICAidW5pdCIgOiAiwrVnIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICJ0YWciIDogIlZJVEQiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDI3LjIxNTU0MjYwMjUzOTA2LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDYuODAzODg1NjUwNjM0NzY1LAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDEuOTQ0MDg3OTgyMTc3NzM0MiwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiA5LjcyMDQzOTkxMDg4ODY3LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICJ0YWciIDogIlZJVEsxIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxOS4wNjU4Nzk4MjE3NzczNDQsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMjMuODMyMzQ5Nzc3MjIxNjgsCiAgICAidW5pdCIgOiAiwrVnIgogIH0gXQp9XQ==
+ http_version:
+ recorded_at: Sun, 05 Nov 2017 18:33:51 GMT
+- request:
+ method: get
+ uri: https://api.edamam.com/search?app_id=&app_key=&r=bogus_data
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - ngx_openresty
+ Date:
+ - Sun, 05 Nov 2017 18:38:12 GMT
+ Content-Type:
+ - application/json;charset=UTF-8
+ Content-Length:
+ - '1'
+ Connection:
+ - keep-alive
+ Cache-Control:
+ - private
+ Expires:
+ - Thu, 01 Jan 1970 00:00:00 UTC
+ X-Served-By:
+ - ip-10-143-141-59/10.143.141.59
+ body:
+ encoding: UTF-8
+ string: ""
+ http_version:
+ recorded_at: Sun, 05 Nov 2017 18:36:46 GMT
+recorded_with: VCR 3.0.3
diff --git a/test/controllers/.keep b/test/controllers/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/controllers/recipes_controller_test.rb b/test/controllers/recipes_controller_test.rb
new file mode 100644
index 000000000..208cceb3c
--- /dev/null
+++ b/test/controllers/recipes_controller_test.rb
@@ -0,0 +1,23 @@
+require 'test_helper'
+
+describe RecipesController do
+ describe "index" do
+ it "must respond with success" do
+ get root_path
+ must_respond_with :success
+ end
+ end
+
+ # describe "show" do
+ # it "returns a success status when passed a valid uri" do
+ # VCR.use_cassette("show_recipe") do
+ # label = "test_label"
+ # uri = "http://www.edamam.com/ontologies/edamam.owl#recipe_7bf4a371c6884d809682a72808da7dc2"
+ # recipe = EdamamWrapper.find_recipe(uri)
+ # recipe.must_be_kind_of Recipe
+ # get recipe_path(label: label, uri: uri)
+ # must_respond_with :success
+ # end
+ # # end
+ # end
+end
diff --git a/test/fixtures/.keep b/test/fixtures/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/fixtures/files/.keep b/test/fixtures/files/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/helpers/.keep b/test/helpers/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/integration/.keep b/test/integration/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/lib/edamam_wrapper_test.rb b/test/lib/edamam_wrapper_test.rb
new file mode 100644
index 000000000..faf809d0c
--- /dev/null
+++ b/test/lib/edamam_wrapper_test.rb
@@ -0,0 +1,57 @@
+require 'test_helper'
+
+describe EdamamWrapper do
+ describe 'list_recipes' do
+ it 'can get a list of recipes' do
+ VCR.use_cassette("recipes") do
+ item = "egg"
+ from = "10"
+ result = EdamamWrapper.list_recipes(item, from)
+ result.must_be_kind_of Array
+ result.length.must_be :>, 0
+ result.each do |r|
+ r.must_be_kind_of Recipe
+ end
+ end
+ end
+
+ it "Does something when the api is bad" do
+ begin # something which might raise an exception
+ origin_api = EdamamWrapper::KEY
+ EdamamWrapper::KEY = "bogus_data"
+
+ VCR.use_cassette("recipes") do
+ item = "egg"
+ from = "0"
+ proc {
+ EdamamWrapper.list_recipes(item, from)
+ }.must_raise EdamamWrapper::ApiError
+ end
+ ensure # ensure this code always runs; does not change final value of block
+ EdamamWrapper::KEY = origin_api
+ end
+ end
+ end
+
+
+ describe "find_recipe" do
+ it "returns a recipe when given a valid uri" do
+ VCR.use_cassette("wrapper_test") do
+ uri = "http://www.edamam.com/ontologies/edamam.owl#recipe_7bf4a371c6884d809682a72808da7dc2"
+
+ recipe = EdamamWrapper.find_recipe(uri)
+
+ recipe.must_be_kind_of Recipe
+ end
+ end
+
+ # it "does not return a recipe with a bogus uri" do
+ # VCR.use_cassette("wrapper_test") do
+ # uri = "bogus_data"
+ # proc {
+ # EdamamWrapper.find_recipe(uri)
+ # }.must_raise EdamamWrapper::ApiError
+ # end
+ # end
+ end
+end
diff --git a/test/lib/recipe_test.rb b/test/lib/recipe_test.rb
new file mode 100644
index 000000000..2db17b728
--- /dev/null
+++ b/test/lib/recipe_test.rb
@@ -0,0 +1,33 @@
+require 'test_helper'
+
+describe "Recipe" do
+
+ it "can be instantiated" do
+ Recipe.new("uri", "label", "image", "url")
+ end
+
+ it "requires a uri, label, image and url" do
+ proc {
+ Recipe.new()
+ }.must_raise ArgumentError
+
+ proc {
+ Recipe.new("uri")
+ }.must_raise ArgumentError
+
+ proc {
+ Recipe.new("", "", "", "")
+ }.must_raise ArgumentError
+ end
+
+ it "tracks params" do
+ uri = "test_uri"
+ label = "test_label"
+ image = "test_image"
+ url = "test_url"
+ my_recipe = Recipe.new(uri, label, image, url)
+ my_recipe.uri.must_equal uri
+ my_recipe.label.must_equal label
+
+ end
+end
diff --git a/test/mailers/.keep b/test/mailers/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/models/.keep b/test/models/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/system/.keep b/test/system/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/test/test_helper.rb b/test/test_helper.rb
new file mode 100644
index 000000000..dd0e6d55b
--- /dev/null
+++ b/test/test_helper.rb
@@ -0,0 +1,46 @@
+ENV["RAILS_ENV"] = "test"
+require File.expand_path("../../config/environment", __FILE__)
+require "rails/test_help"
+require "minitest/rails"
+require "minitest/reporters" # for Colorized output
+require 'vcr'
+require 'webmock/minitest'
+
+# For colorful output!
+Minitest::Reporters.use!(
+ Minitest::Reporters::SpecReporter.new,
+ ENV,
+ Minitest.backtrace_filter
+)
+
+
+VCR.configure do |config|
+ config.cassette_library_dir = 'test/cassettes' # folder where casettes will be located
+ config.hook_into :webmock # tie into this other tool called webmock
+ config.default_cassette_options = {
+ :record => :new_episodes, # record new data when we don't have it yet
+ :match_requests_on => [:method, :uri, :body] # The http method, URI and body of a request all need to match
+ }
+
+ # Separate call for every piece of data to be omitted from casette.
+ config.filter_sensitive_data("") do
+ ENV['API_ID']
+ end
+
+ config.filter_sensitive_data("") do
+ ENV['API_KEY']
+ end
+
+end
+# To add Capybara feature tests add `gem "minitest-rails-capybara"`
+# to the test group in the Gemfile and uncomment the following:
+# require "minitest/rails/capybara"
+
+# Uncomment for awesome colorful output
+# require "minitest/pride"
+
+class ActiveSupport::TestCase
+ # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
+ fixtures :all
+ # Add more helper methods to be used by all tests here...
+end
diff --git a/tmp/.keep b/tmp/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/vendor/.keep b/vendor/.keep
new file mode 100644
index 000000000..e69de29bb