From aebeebaf819e9c5d105f5af73fc820ce76a7eeee Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Wed, 2 May 2018 13:57:19 -0700 Subject: [PATCH 01/18] added rails app to folder --- .gitignore | 26 + .ruby-version | 1 + Gemfile | 80 ++ Gemfile.lock | 258 ++++++ Rakefile | 6 + app/assets/config/manifest.js | 3 + app/assets/images/.keep | 0 app/assets/javascripts/application.js | 21 + app/assets/javascripts/cable.js | 13 + app/assets/javascripts/channels/.keep | 0 app/assets/stylesheets/_settings.scss | 869 ++++++++++++++++++ app/assets/stylesheets/application.css | 19 + app/assets/stylesheets/browserslist | 4 + .../stylesheets/foundation_and_overrides.scss | 61 ++ app/channels/application_cable/channel.rb | 4 + app/channels/application_cable/connection.rb | 4 + app/controllers/application_controller.rb | 2 + app/controllers/concerns/.keep | 0 app/helpers/application_helper.rb | 2 + app/jobs/application_job.rb | 2 + app/mailers/application_mailer.rb | 4 + app/models/application_record.rb | 3 + app/models/concerns/.keep | 0 app/views/layouts/application.html.erb | 19 + app/views/layouts/mailer.html.erb | 13 + app/views/layouts/mailer.text.erb | 1 + bin/bundle | 3 + bin/rails | 9 + bin/rake | 9 + bin/setup | 36 + bin/spring | 17 + bin/update | 31 + bin/yarn | 11 + config.ru | 5 + config/application.rb | 26 + config/boot.rb | 4 + config/cable.yml | 10 + config/credentials.yml.enc | 1 + config/database.yml | 85 ++ config/environment.rb | 5 + config/environments/development.rb | 61 ++ config/environments/production.rb | 94 ++ config/environments/test.rb | 46 + .../application_controller_renderer.rb | 8 + config/initializers/assets.rb | 14 + config/initializers/backtrace_silencers.rb | 7 + .../initializers/content_security_policy.rb | 25 + config/initializers/cookies_serializer.rb | 5 + .../initializers/filter_parameter_logging.rb | 4 + config/initializers/inflections.rb | 16 + config/initializers/mime_types.rb | 4 + config/initializers/wrap_parameters.rb | 14 + config/locales/en.yml | 33 + config/puma.rb | 34 + config/routes.rb | 3 + config/spring.rb | 6 + config/storage.yml | 34 + db/seeds.rb | 7 + lib/assets/.keep | 0 lib/tasks/.keep | 0 log/.keep | 0 package.json | 5 + public/404.html | 67 ++ public/422.html | 67 ++ public/500.html | 66 ++ public/apple-touch-icon-precomposed.png | 0 public/apple-touch-icon.png | 0 public/favicon.ico | 0 public/robots.txt | 1 + test/application_system_test_case.rb | 5 + test/controllers/.keep | 0 test/fixtures/.keep | 0 test/fixtures/files/.keep | 0 test/helpers/.keep | 0 test/integration/.keep | 0 test/mailers/.keep | 0 test/models/.keep | 0 test/system/.keep | 0 test/test_helper.rb | 26 + tmp/.keep | 0 vendor/.keep | 0 81 files changed, 2319 insertions(+) create mode 100644 .gitignore create mode 100644 .ruby-version create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 Rakefile create mode 100644 app/assets/config/manifest.js create mode 100644 app/assets/images/.keep create mode 100644 app/assets/javascripts/application.js create mode 100644 app/assets/javascripts/cable.js create mode 100644 app/assets/javascripts/channels/.keep create mode 100644 app/assets/stylesheets/_settings.scss create mode 100644 app/assets/stylesheets/application.css create mode 100644 app/assets/stylesheets/browserslist create mode 100644 app/assets/stylesheets/foundation_and_overrides.scss create mode 100644 app/channels/application_cable/channel.rb create mode 100644 app/channels/application_cable/connection.rb create mode 100644 app/controllers/application_controller.rb create mode 100644 app/controllers/concerns/.keep create mode 100644 app/helpers/application_helper.rb create mode 100644 app/jobs/application_job.rb create mode 100644 app/mailers/application_mailer.rb create mode 100644 app/models/application_record.rb create mode 100644 app/models/concerns/.keep create mode 100644 app/views/layouts/application.html.erb create mode 100644 app/views/layouts/mailer.html.erb create mode 100644 app/views/layouts/mailer.text.erb create mode 100755 bin/bundle create mode 100755 bin/rails create mode 100755 bin/rake create mode 100755 bin/setup create mode 100755 bin/spring create mode 100755 bin/update create mode 100755 bin/yarn create mode 100644 config.ru create mode 100644 config/application.rb create mode 100644 config/boot.rb create mode 100644 config/cable.yml create mode 100644 config/credentials.yml.enc create mode 100644 config/database.yml create mode 100644 config/environment.rb create mode 100644 config/environments/development.rb create mode 100644 config/environments/production.rb create mode 100644 config/environments/test.rb create mode 100644 config/initializers/application_controller_renderer.rb create mode 100644 config/initializers/assets.rb create mode 100644 config/initializers/backtrace_silencers.rb create mode 100644 config/initializers/content_security_policy.rb create mode 100644 config/initializers/cookies_serializer.rb create mode 100644 config/initializers/filter_parameter_logging.rb create mode 100644 config/initializers/inflections.rb create mode 100644 config/initializers/mime_types.rb create mode 100644 config/initializers/wrap_parameters.rb create mode 100644 config/locales/en.yml create mode 100644 config/puma.rb create mode 100644 config/routes.rb create mode 100644 config/spring.rb create mode 100644 config/storage.yml create mode 100644 db/seeds.rb create mode 100644 lib/assets/.keep create mode 100644 lib/tasks/.keep create mode 100644 log/.keep create mode 100644 package.json create mode 100644 public/404.html create mode 100644 public/422.html create mode 100644 public/500.html create mode 100644 public/apple-touch-icon-precomposed.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon.ico create mode 100644 public/robots.txt create mode 100644 test/application_system_test_case.rb create mode 100644 test/controllers/.keep create mode 100644 test/fixtures/.keep create mode 100644 test/fixtures/files/.keep create mode 100644 test/helpers/.keep create mode 100644 test/integration/.keep create mode 100644 test/mailers/.keep create mode 100644 test/models/.keep create mode 100644 test/system/.keep create mode 100644 test/test_helper.rb create mode 100644 tmp/.keep create mode 100644 vendor/.keep diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..211a27abb --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# 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 + +# Ignore uploaded files in development +/storage/* + +/node_modules +/yarn-error.log + +/public/assets +.byebug_history + +# Ignore master key for decrypting credentials and more. +/config/master.key diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 000000000..fad066f80 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.5.0 \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..0a0953805 --- /dev/null +++ b/Gemfile @@ -0,0 +1,80 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +ruby '2.5.0' + +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'rails', '~> 5.2.0' +# Use postgresql as the database for Active Record +gem 'pg', '>= 0.18', '< 2.0' +# Use Puma as the app server +gem 'puma', '~> 3.11' +# 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 'mini_racer', 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', '~> 4.0' +# Use ActiveModel has_secure_password +# gem 'bcrypt', '~> 3.1.7' + +# Use ActiveStorage variant +# gem 'mini_magick', '~> 4.8' + +# Use Capistrano for deployment +# gem 'capistrano-rails', group: :development + +# Reduces boot times through caching; required in config/boot.rb +gem 'bootsnap', '>= 1.1.0', require: false + +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] +end + +group :development do + # Access an interactive console on exception pages or by calling '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 + +group :test do + # Adds support for Capybara system testing and selenium driver + gem 'capybara', '>= 2.15', '< 4.0' + gem 'selenium-webdriver' + # Easy installation and use of chromedriver to run system tests with Chrome + gem 'chromedriver-helper' +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' +gem 'jquery-rails' +gem 'foundation-rails' +gem 'normalize-rails' +group :development, :test do + gem 'pry-rails' +end + +group :development do + gem 'better_errors' + 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..40c55bc95 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,258 @@ +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.0) + actionpack (= 5.2.0) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.0) + actionpack (= 5.2.0) + actionview (= 5.2.0) + activejob (= 5.2.0) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.0) + actionview (= 5.2.0) + activesupport (= 5.2.0) + rack (~> 2.0) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.0) + activesupport (= 5.2.0) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.0) + activesupport (= 5.2.0) + globalid (>= 0.3.6) + activemodel (5.2.0) + activesupport (= 5.2.0) + activerecord (5.2.0) + activemodel (= 5.2.0) + activesupport (= 5.2.0) + arel (>= 9.0) + activestorage (5.2.0) + actionpack (= 5.2.0) + activerecord (= 5.2.0) + marcel (~> 0.3.1) + activesupport (5.2.0) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + ansi (1.5.0) + archive-zip (0.11.0) + io-like (~> 0.3.0) + arel (9.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.8.0) + debug_inspector (>= 0.0.1) + bootsnap (1.3.0) + msgpack (~> 1.0) + builder (3.2.3) + byebug (10.0.2) + capybara (3.0.3) + addressable + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + xpath (~> 3.0) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) + chromedriver-helper (1.2.0) + archive-zip (~> 0.10) + nokogiri (~> 1.8) + coderay (1.1.2) + concurrent-ruby (1.0.5) + crass (1.0.4) + debug_inspector (0.0.3) + erubi (1.7.1) + execjs (2.7.0) + ffi (1.9.23) + foundation-rails (6.4.3.0) + railties (>= 3.1.0) + sass (>= 3.3.0, < 3.5) + sprockets-es6 (>= 0.9.0) + globalid (0.4.1) + activesupport (>= 4.2.0) + i18n (1.0.1) + concurrent-ruby (~> 1.0) + io-like (0.3.0) + jbuilder (2.7.0) + activesupport (>= 4.2.0) + multi_json (>= 1.2) + jquery-rails (4.3.3) + rails-dom-testing (>= 1, < 3) + railties (>= 4.2.0) + thor (>= 0.14, < 2.0) + 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.2.2) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.0) + mini_mime (>= 0.1.1) + marcel (0.3.2) + mimemagic (~> 0.3.2) + method_source (0.9.0) + mimemagic (0.3.2) + mini_mime (1.0.0) + mini_portile2 (2.3.0) + minitest (5.11.3) + minitest-rails (3.0.0) + minitest (~> 5.8) + railties (~> 5.0) + minitest-reporters (1.2.0) + ansi + builder + minitest (>= 5.0) + ruby-progressbar + msgpack (1.2.4) + multi_json (1.13.1) + nio4r (2.3.0) + nokogiri (1.8.2) + mini_portile2 (~> 2.3.0) + normalize-rails (4.1.1) + pg (1.0.0) + pry (0.11.3) + coderay (~> 1.1.0) + method_source (~> 0.9.0) + pry-rails (0.3.6) + pry (>= 0.10.4) + public_suffix (3.0.2) + puma (3.11.4) + rack (2.0.5) + rack-test (1.0.0) + rack (>= 1.0, < 3) + rails (5.2.0) + actioncable (= 5.2.0) + actionmailer (= 5.2.0) + actionpack (= 5.2.0) + actionview (= 5.2.0) + activejob (= 5.2.0) + activemodel (= 5.2.0) + activerecord (= 5.2.0) + activestorage (= 5.2.0) + activesupport (= 5.2.0) + bundler (>= 1.3.0) + railties (= 5.2.0) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) + railties (5.2.0) + actionpack (= 5.2.0) + activesupport (= 5.2.0) + method_source + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rake (12.3.1) + rb-fsevent (0.10.3) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + ruby-progressbar (1.9.0) + ruby_dep (1.5.0) + rubyzip (1.2.1) + sass (3.4.25) + sass-rails (5.0.7) + 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.11.0) + childprocess (~> 0.5) + rubyzip (~> 1.2) + 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.1.1) + turbolinks-source (~> 5.1) + turbolinks-source (5.1.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + uglifier (4.1.10) + execjs (>= 0.3.0, < 3) + web-console (3.6.2) + actionview (>= 5.0) + activemodel (>= 5.0) + bindex (>= 0.4.0) + railties (>= 5.0) + websocket-driver (0.7.0) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.3) + xpath (3.0.0) + nokogiri (~> 1.8) + +PLATFORMS + ruby + +DEPENDENCIES + better_errors + binding_of_caller + bootsnap (>= 1.1.0) + byebug + capybara (>= 2.15, < 4.0) + chromedriver-helper + foundation-rails + jbuilder (~> 2.5) + jquery-rails + jquery-turbolinks + listen (>= 3.0.5, < 3.2) + minitest-rails + minitest-reporters + normalize-rails + pg (>= 0.18, < 2.0) + pry-rails + puma (~> 3.11) + rails (~> 5.2.0) + 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) + +RUBY VERSION + ruby 2.5.0p0 + +BUNDLED WITH + 1.16.1 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/javascripts/application.js b/app/assets/javascripts/application.js new file mode 100644 index 000000000..183604ee9 --- /dev/null +++ b/app/assets/javascripts/application.js @@ -0,0 +1,21 @@ +// 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 jquery + +// +//= require rails-ujs +//= require foundation +//= require activestorage +//= 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..26f74f949 --- /dev/null +++ b/app/assets/stylesheets/_settings.scss @@ -0,0 +1,869 @@ +// 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-button-cursor: auto; +$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; +$menu-icons-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-sizes: ( + small: 250px, +); +$offcanvas-vertical-sizes: ( + small: 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; +$xy-block-grid-max: 8; + diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css new file mode 100644 index 000000000..3a3841832 --- /dev/null +++ b/app/assets/stylesheets/application.css @@ -0,0 +1,19 @@ +/* + * 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 normalize-rails + + * + *= require_tree . + *= require_self + *= require foundation_and_overrides + + */ diff --git a/app/assets/stylesheets/browserslist b/app/assets/stylesheets/browserslist new file mode 100644 index 000000000..6019618a9 --- /dev/null +++ b/app/assets/stylesheets/browserslist @@ -0,0 +1,4 @@ +last 2 versions +ie >= 9 +Android >= 2.3 +ios >= 7 diff --git a/app/assets/stylesheets/foundation_and_overrides.scss b/app/assets/stylesheets/foundation_and_overrides.scss new file mode 100644 index 000000000..ed4c5a0ec --- /dev/null +++ b/app/assets/stylesheets/foundation_and_overrides.scss @@ -0,0 +1,61 @@ +@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-xy-grid-classes; +//@include foundation-grid; +//@include foundation-flex-grid; +@include foundation-flex-classes; +@include foundation-typography; +@include foundation-forms; +@include foundation-button; +@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-menu; +@include foundation-menu-icon; +@include foundation-drilldown-menu; +@include foundation-dropdown; +@include foundation-dropdown-menu; +@include foundation-responsive-embed; +@include foundation-label; +@include foundation-media-object; +@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; +@include foundation-visibility-classes; +@include foundation-float-classes; + +// 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; +@import 'motion-ui/motion-ui'; +@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..09705d12a --- /dev/null +++ b/app/controllers/application_controller.rb @@ -0,0 +1,2 @@ +class ApplicationController < ActionController::Base +end diff --git a/app/controllers/concerns/.keep b/app/controllers/concerns/.keep new file mode 100644 index 000000000..e69de29bb 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/layouts/application.html.erb b/app/views/layouts/application.html.erb new file mode 100644 index 000000000..cd6000489 --- /dev/null +++ b/app/views/layouts/application.html.erb @@ -0,0 +1,19 @@ + + + + + + + <%= 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/bin/bundle b/bin/bundle new file mode 100755 index 000000000..f19acf5b5 --- /dev/null +++ b/bin/bundle @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +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..94fd4d797 --- /dev/null +++ b/bin/setup @@ -0,0 +1,36 @@ +#!/usr/bin/env ruby +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +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..58bfaed51 --- /dev/null +++ b/bin/update @@ -0,0 +1,31 @@ +#!/usr/bin/env ruby +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +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') + + # Install JavaScript dependencies if using Yarn + # system('bin/yarn') + + 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..460dd565b --- /dev/null +++ b/bin/yarn @@ -0,0 +1,11 @@ +#!/usr/bin/env ruby +APP_ROOT = File.expand_path('..', __dir__) +Dir.chdir(APP_ROOT) do + begin + exec "yarnpkg", *ARGV + 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..b64f3b3da --- /dev/null +++ b/config/application.rb @@ -0,0 +1,26 @@ +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.2 + + # Settings in config/environments/* take precedence over those specified here. + # Application configuration can go into files in config/initializers + # -- all .rb files in that directory are automatically loaded after loading + # the framework and any gems in your application. + end +end diff --git a/config/boot.rb b/config/boot.rb new file mode 100644 index 000000000..b9e460cef --- /dev/null +++ b/config/boot.rb @@ -0,0 +1,4 @@ +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) + +require 'bundler/setup' # Set up gems listed in the Gemfile. +require 'bootsnap/setup' # Speed up boot time by caching expensive operations. diff --git a/config/cable.yml b/config/cable.yml new file mode 100644 index 000000000..cf3ce7efa --- /dev/null +++ b/config/cable.yml @@ -0,0 +1,10 @@ +development: + adapter: async + +test: + adapter: async + +production: + adapter: redis + url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> + channel_prefix: api-muncher_production diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc new file mode 100644 index 000000000..2db2af9f6 --- /dev/null +++ b/config/credentials.yml.enc @@ -0,0 +1 @@ +G+I/KKs8EcmpSFAcgWP3bMTgE3irM+Jk/7R2Di7lDmgi8hnFavBGT9/0j/xJwWMXkNHXFX+3albXMJl7A3POPKG3I90RI+vJsjTuIBD84ycHMnDJUUVjaAErCXJVSRRZLfm3/oPSI9Aduy2DsuePDH3n9X15F6DotISxZ3jiZat3Xg5g52FqHUA0UvQTefSAVocp1O+UCYIel8wJNP0Ql/Hm5PrVz5RBnnJb0HLr64297FBY9IkFG9DbE0gX/aj3tyZVnQ7ISWsKdboLQZvhgh/Y3LrQ2+30v5V2bwwVzqzNR9UYnqGOvUSACKc/4pcAIDNcdYQWSTL8HkSHyW4PJ0H9X4f0+9JciFKI1P6CqOQujcAY/ocwlLkZYdaM0ydngJJYJhOzQm1wRz26Sl/VlqB02KWkULiZF9fn--OpWVuP7TYs6PqKxy--mLNbkiTMDS1HEQZ3GFlxuA== \ No newline at end of file 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..1311e3e4e --- /dev/null +++ b/config/environments/development.rb @@ -0,0 +1,61 @@ +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. + # Run rails dev:cache to toggle caching. + 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.to_i}" + } + else + config.action_controller.perform_caching = false + + config.cache_store = :null_store + end + + # Store uploaded files on the local file system (see config/storage.yml for options) + config.active_storage.service = :local + + # 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 + + # Highlight code that triggered database queries in logs. + config.active_record.verbose_query_logs = true + + # 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..1d8a23cbf --- /dev/null +++ b/config/environments/production.rb @@ -0,0 +1,94 @@ +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 + + # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] + # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). + # config.require_master_key = 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 + + # Store uploaded files on the local file system (see config/storage.yml for options) + config.active_storage.service = :local + + # 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..0a38fd3ce --- /dev/null +++ b/config/environments/test.rb @@ -0,0 +1,46 @@ +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.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 + + # Store uploaded files on the local file system in a temporary directory + config.active_storage.service = :test + + 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/content_security_policy.rb b/config/initializers/content_security_policy.rb new file mode 100644 index 000000000..d3bcaa5ec --- /dev/null +++ b/config/initializers/content_security_policy.rb @@ -0,0 +1,25 @@ +# Be sure to restart your server when you modify this file. + +# Define an application-wide content security policy +# For further information see the following documentation +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy + +# Rails.application.config.content_security_policy do |policy| +# policy.default_src :self, :https +# policy.font_src :self, :https, :data +# policy.img_src :self, :https, :data +# policy.object_src :none +# policy.script_src :self, :https +# policy.style_src :self, :https + +# # Specify URI for violation reports +# # policy.report_uri "/csp-violation-report-endpoint" +# end + +# If you are using UJS then enable automatic nonce generation +# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } + +# Report CSP violations to a specified URI +# For further information see the following documentation: +# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only +# Rails.application.config.content_security_policy_report_only = true 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..a5eccf816 --- /dev/null +++ b/config/puma.rb @@ -0,0 +1,34 @@ +# 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. +# +# preload_app! + +# 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..787824f88 --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,3 @@ +Rails.application.routes.draw do + # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html +end diff --git a/config/spring.rb b/config/spring.rb new file mode 100644 index 000000000..9fa7863f9 --- /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/config/storage.yml b/config/storage.yml new file mode 100644 index 000000000..d32f76e8f --- /dev/null +++ b/config/storage.yml @@ -0,0 +1,34 @@ +test: + service: Disk + root: <%= Rails.root.join("tmp/storage") %> + +local: + service: Disk + root: <%= Rails.root.join("storage") %> + +# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) +# amazon: +# service: S3 +# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> +# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> +# region: us-east-1 +# bucket: your_own_bucket + +# Remember not to checkin your GCS keyfile to a repository +# google: +# service: GCS +# project: your_project +# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> +# bucket: your_own_bucket + +# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) +# microsoft: +# service: AzureStorage +# storage_account_name: your_account_name +# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> +# container: your_container_name + +# mirror: +# service: Mirror +# primary: local +# mirrors: [ amazon, google, microsoft ] 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/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/controllers/.keep b/test/controllers/.keep new file mode 100644 index 000000000..e69de29bb 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/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..10594a324 --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,26 @@ +ENV["RAILS_ENV"] = "test" +require File.expand_path("../../config/environment", __FILE__) +require "rails/test_help" +require "minitest/rails" +require "minitest/reporters" # for Colorized output + +# For colorful output! +Minitest::Reporters.use!( + Minitest::Reporters::SpecReporter.new, + ENV, + Minitest.backtrace_filter +) + + +# 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 From 950ccc0ce0bd8359e8378d20ef68ff3bf7d9c661 Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Fri, 4 May 2018 13:02:50 -0700 Subject: [PATCH 02/18] updated views to reflect pagination, updated .env file for app protection, and added test file for recipe_api_wrapper class. --- .env | 2 ++ Gemfile | 6 ++++ Gemfile.lock | 28 +++++++++++++++ app/assets/javascripts/recipe.js | 2 ++ app/assets/stylesheets/recipe.scss | 3 ++ app/controllers/recipe_controller.rb | 34 ++++++++++++++++++ app/helpers/recipe_helper.rb | 2 ++ app/views/layouts/application.html.erb | 13 +++++-- app/views/recipe/index.html.erb | 12 +++++++ app/views/recipe/search.html.erb | 0 app/views/recipe/show.html.erb | 32 +++++++++++++++++ config/application.rb | 3 ++ config/environments/development.rb | 2 +- config/routes.rb | 11 ++++++ lib/Recipe.rb | 15 ++++++++ lib/recipe_api_wrapper.rb | 41 ++++++++++++++++++++++ test/controllers/recipe_controller_test.rb | 7 ++++ test/lib/recipe_api_wrapper_test.rb | 13 +++++++ test/test_helper.rb | 15 +++++++- 19 files changed, 237 insertions(+), 4 deletions(-) create mode 100644 .env create mode 100644 app/assets/javascripts/recipe.js create mode 100644 app/assets/stylesheets/recipe.scss create mode 100644 app/controllers/recipe_controller.rb create mode 100644 app/helpers/recipe_helper.rb create mode 100644 app/views/recipe/index.html.erb create mode 100644 app/views/recipe/search.html.erb create mode 100644 app/views/recipe/show.html.erb create mode 100644 lib/Recipe.rb create mode 100644 lib/recipe_api_wrapper.rb create mode 100644 test/controllers/recipe_controller_test.rb create mode 100644 test/lib/recipe_api_wrapper_test.rb diff --git a/.env b/.env new file mode 100644 index 000000000..0c683e14a --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +APPID = 379dc117 +APPKEY = 9fcb79f83581cc266057d2b408a6b9cb diff --git a/Gemfile b/Gemfile index 0a0953805..b08b952c3 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.5.0' +gem 'httparty' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.2.0' # Use postgresql as the database for Active Record @@ -39,6 +40,9 @@ gem 'bootsnap', '>= 1.1.0', require: false 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] + gem 'dotenv-rails' + gem 'minitest-vcr' + gem 'webmock' end group :development do @@ -78,3 +82,5 @@ group :test do gem 'minitest-rails' gem 'minitest-reporters' end + +gem 'uri-handler' diff --git a/Gemfile.lock b/Gemfile.lock index 40c55bc95..0917cb784 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -77,8 +77,14 @@ GEM nokogiri (~> 1.8) coderay (1.1.2) concurrent-ruby (1.0.5) + crack (0.4.3) + safe_yaml (~> 1.0.0) crass (1.0.4) debug_inspector (0.0.3) + dotenv (2.4.0) + dotenv-rails (2.4.0) + dotenv (= 2.4.0) + railties (>= 3.2, < 6.0) erubi (1.7.1) execjs (2.7.0) ffi (1.9.23) @@ -88,6 +94,9 @@ GEM sprockets-es6 (>= 0.9.0) globalid (0.4.1) activesupport (>= 4.2.0) + hashdiff (0.3.7) + httparty (0.16.2) + multi_xml (>= 0.5.2) i18n (1.0.1) concurrent-ruby (~> 1.0) io-like (0.3.0) @@ -116,6 +125,8 @@ GEM mimemagic (0.3.2) mini_mime (1.0.0) mini_portile2 (2.3.0) + minispec-metadata (2.0.0) + minitest minitest (5.11.3) minitest-rails (3.0.0) minitest (~> 5.8) @@ -125,8 +136,13 @@ GEM builder minitest (>= 5.0) ruby-progressbar + minitest-vcr (1.4.0) + minispec-metadata (~> 2.0) + minitest (>= 4.7.5) + vcr (>= 2.9) msgpack (1.2.4) multi_json (1.13.1) + multi_xml (0.6.0) nio4r (2.3.0) nokogiri (1.8.2) mini_portile2 (~> 2.3.0) @@ -173,6 +189,7 @@ GEM 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.7) railties (>= 4.0.0, < 6) @@ -209,11 +226,17 @@ GEM thread_safe (~> 0.1) uglifier (4.1.10) execjs (>= 0.3.0, < 3) + uri-handler (1.0.2) + vcr (4.0.0) web-console (3.6.2) actionview (>= 5.0) activemodel (>= 5.0) bindex (>= 0.4.0) railties (>= 5.0) + webmock (3.4.1) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff websocket-driver (0.7.0) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.3) @@ -230,13 +253,16 @@ DEPENDENCIES byebug capybara (>= 2.15, < 4.0) chromedriver-helper + dotenv-rails foundation-rails + httparty jbuilder (~> 2.5) jquery-rails jquery-turbolinks listen (>= 3.0.5, < 3.2) minitest-rails minitest-reporters + minitest-vcr normalize-rails pg (>= 0.18, < 2.0) pry-rails @@ -249,7 +275,9 @@ DEPENDENCIES turbolinks (~> 5) tzinfo-data uglifier (>= 1.3.0) + uri-handler web-console (>= 3.3.0) + webmock RUBY VERSION ruby 2.5.0p0 diff --git a/app/assets/javascripts/recipe.js b/app/assets/javascripts/recipe.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/recipe.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/stylesheets/recipe.scss b/app/assets/stylesheets/recipe.scss new file mode 100644 index 000000000..e7c0bf6d0 --- /dev/null +++ b/app/assets/stylesheets/recipe.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Recipe controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/recipe_controller.rb b/app/controllers/recipe_controller.rb new file mode 100644 index 000000000..da0724c5a --- /dev/null +++ b/app/controllers/recipe_controller.rb @@ -0,0 +1,34 @@ +class RecipeController < ApplicationController + # def new + # @query = "user_input" + # #can i update this in the form? Or do i need a seperate method? + # # raise + # end + + # def search + # #should be post because we are modifiying content - despite not having a server....'' + # # raise + # @query = params["user_input"] + # redirect_to query_results_path(@query) + # end + + def index + @query = params[:query] + if params[:from] && params[:to] + @recipes = RecipeApiWrapper.limited_query(@query,params[:from],params[:to]) + else + @recipes = RecipeApiWrapper.list_of_queried_recipes(@query) + end + end + + def show + @recipe = RecipeApiWrapper.a_recipe(params[:uri]) + end + +end + + +#Questions +#10 unsure of how restful my set up is, especially routes +#2) attempted to build w/o new/create set up but couldn't figure out how to update new method with params info..is there a way? +#3) how weird does this solution look? diff --git a/app/helpers/recipe_helper.rb b/app/helpers/recipe_helper.rb new file mode 100644 index 000000000..57b4c1e99 --- /dev/null +++ b/app/helpers/recipe_helper.rb @@ -0,0 +1,2 @@ +module RecipeHelper +end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index cd6000489..467812e24 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -12,8 +12,17 @@ - <%= yield %> - +
+ +
+ + diff --git a/app/views/recipe/index.html.erb b/app/views/recipe/index.html.erb new file mode 100644 index 000000000..d6f370bde --- /dev/null +++ b/app/views/recipe/index.html.erb @@ -0,0 +1,12 @@ + +<%= form_tag query_results_path, method: :get do %> + <%=text_field_tag :query%> + <%= submit_tag "Search", class:"button"%> +<%end%> + + diff --git a/app/views/recipe/search.html.erb b/app/views/recipe/search.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/recipe/show.html.erb b/app/views/recipe/show.html.erb new file mode 100644 index 000000000..d9a884c31 --- /dev/null +++ b/app/views/recipe/show.html.erb @@ -0,0 +1,32 @@ + +

<%=@recipe.label%>

+

By <%=@recipe.source%>

+ +<%=image_tag("#{@recipe.image}",alt: "image of #{@recipe.label}")%> +
Ingredients
+ + +

Try it yourself <%=link_to "here", @recipe.url, target: :_blank%>

+
Total Calories: <%=@recipe.totalNutrients["ENERC_KCAL"]["quantity"].round(2)%>
+ +
Nutritional Information
+ + + + + + + <%@recipe.totalNutrients.each do |nutrient|%> + <%next if nutrient[0] == "ENERC_KCAL"%> + <%nutrient[1]["quantity"] = nutrient[1]["quantity"].round(3)%> + + <%nutrient[1].values.each do |item|%> + + <%end%> + + <%end%> +
Nutritional InformationQuantityUnit
<%=item%>
diff --git a/config/application.rb b/config/application.rb index b64f3b3da..af143658a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -22,5 +22,8 @@ class Application < Rails::Application # Application configuration can go into files in config/initializers # -- all .rb files in that directory are automatically loaded after loading # the framework and any gems in your application. + + # Automatically load all code from /lib + config.autoload_paths << Rails.root.join('lib') end end diff --git a/config/environments/development.rb b/config/environments/development.rb index 1311e3e4e..3eaf231f9 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -47,7 +47,7 @@ # 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 + config.assets.debug = false # Suppress logger output for asset requests. config.assets.quiet = true diff --git a/config/routes.rb b/config/routes.rb index 787824f88..e360b3b8d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,3 +1,14 @@ Rails.application.routes.draw do # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html + + # get 'homepage', to: 'homepage#index', as: 'homepage_path' + # + # get '/search', to: 'recipe#new', as: 'search_recipe' + + + # post '/search-confirmed', to: 'recipe#search', as:'confirmed_search' + + get '/search',to: 'recipe#index', as: 'query_results' + + get '/:item', to: 'recipe#show', as: 'recipe_show' end diff --git a/lib/Recipe.rb b/lib/Recipe.rb new file mode 100644 index 000000000..a33e0e1f1 --- /dev/null +++ b/lib/Recipe.rb @@ -0,0 +1,15 @@ +class Recipe + attr_reader :uri, :label, :image, :url, :ingredientLines, :calories, :totalNutrients, :source, :count + def initialize(recipe) + @uri = recipe["uri"] + @label = recipe["label"] + @image = recipe["image"] + @url = recipe["url"] + @source = recipe["source"] + @ingredientLines = recipe["ingredientLines"] + @calories = recipe["calories"] + @totalNutrients = recipe["totalNutrients"] + @count = recipe["count"] + end + +end diff --git a/lib/recipe_api_wrapper.rb b/lib/recipe_api_wrapper.rb new file mode 100644 index 000000000..c85031de5 --- /dev/null +++ b/lib/recipe_api_wrapper.rb @@ -0,0 +1,41 @@ +require 'httparty' +require 'uri-handler' + +class RecipeApiWrapper + APP_ID = ENV["APPID"] + APP_KEY = ENV["APPKEY"] + + + def self.list_of_queried_recipes(query) + response = HTTParty.get("https://api.edamam.com/search?q=#{query}&app_id=#{APP_ID}&app_key=#{APP_KEY}") + + list_of_recipes = [] + response["hits"].each do |recipe_hash| + list_of_recipes << Recipe.new(recipe_hash["recipe"]) + end + + return list_of_recipes + end + + def self.a_recipe(recipe) + a_recipe = recipe.uri_encode + response = HTTParty.get("https://api.edamam.com/search?app_id=#{APP_ID}&app_key=#{APP_KEY}&r=#{a_recipe}") + recipe = Recipe.new(response[0]) + return recipe + end + + def self.limited_query(query,from,to) + response = HTTParty.get("https://api.edamam.com/search?q=#{query}&app_id=#{APP_ID}&app_key=#{APP_KEY}&from=#{from}&to=#{to}") + + list_of_recipes = [] + response["hits"].each do |recipe_hash| + list_of_recipes << Recipe.new(recipe_hash["recipe"]) + end + + return list_of_recipes + end + + # return recipe + + +end diff --git a/test/controllers/recipe_controller_test.rb b/test/controllers/recipe_controller_test.rb new file mode 100644 index 000000000..0bc42ff3e --- /dev/null +++ b/test/controllers/recipe_controller_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +describe RecipeController do + # it "must be a real test" do + # flunk "Need real tests" + # end +end diff --git a/test/lib/recipe_api_wrapper_test.rb b/test/lib/recipe_api_wrapper_test.rb new file mode 100644 index 000000000..96cf52cd9 --- /dev/null +++ b/test/lib/recipe_api_wrapper_test.rb @@ -0,0 +1,13 @@ +require 'test_helper' +require 'pry' + +describe 'RecipeApiWrapper' do + it 'can query a valid recipe' do + end + + it 'can query for a valid recipe item' do + end + + it 'can query a valid recipe within a specific range' do + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 10594a324..2be595b50 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -3,6 +3,8 @@ require "rails/test_help" require "minitest/rails" require "minitest/reporters" # for Colorized output +require 'vcr' +require 'webmock/minitest' # For colorful output! Minitest::Reporters.use!( @@ -11,7 +13,18 @@ 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 + } + # Don't leave our Slack token lying around in a cassette file. + config.filter_sensitive_data("") do + ENV['SLACK_TOKEN'] + 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" From 8a2e0edf3dccb71bc2d6f34d1fa93bf7dfcba657 Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Fri, 4 May 2018 14:15:20 -0700 Subject: [PATCH 03/18] added some nominal testing for recipe api wrapper class --- db/schema.rb | 18 +++ test/cassettes/empty-array-check.yml | 138 ++++++++++++++++++ .../cassettes/recipe-query-specific-range.yml | 47 ++++++ test/cassettes/recipe-query.yml | 91 ++++++++++++ test/cassettes/single-recipe-query.yml | 47 ++++++ test/lib/recipe_api_wrapper_test.rb | 47 +++++- test/test_helper.rb | 5 + 7 files changed, 392 insertions(+), 1 deletion(-) create mode 100644 db/schema.rb create mode 100644 test/cassettes/empty-array-check.yml create mode 100644 test/cassettes/recipe-query-specific-range.yml create mode 100644 test/cassettes/recipe-query.yml create mode 100644 test/cassettes/single-recipe-query.yml 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/test/cassettes/empty-array-check.yml b/test/cassettes/empty-array-check.yml new file mode 100644 index 000000000..fc875a2d3 --- /dev/null +++ b/test/cassettes/empty-array-check.yml @@ -0,0 +1,138 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.edamam.com/search?app_id=379dc117&app_key=9fcb79f83581cc266057d2b408a6b9cb&q=dflakdfalkjdf%25$321..1.2j + 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: + - Fri, 04 May 2018 21:11:04 GMT + Content-Length: + - '0' + Connection: + - keep-alive + Set-Cookie: + - route=ee37ea0cbec446fe0dc609c7b4a6323b; Path=/ + Cache-Control: + - private + Expires: + - Thu, 01 Jan 1970 00:00:00 UTC + X-Served-By: + - ip-10-149-22-246/10.149.22.246 + body: + encoding: UTF-8 + string: '' + http_version: + recorded_at: Fri, 04 May 2018 21:11:04 GMT +- request: + method: get + uri: https://api.edamam.com/search?app_id=379dc117&app_key=9fcb79f83581cc266057d2b408a6b9cb&q=dflakdfalkjdf%25$32 + 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: + - Fri, 04 May 2018 21:11:50 GMT + Content-Length: + - '0' + Connection: + - keep-alive + Set-Cookie: + - route=272f54237f8ce06ebc267f46f9de4658; Path=/ + Cache-Control: + - private + Expires: + - Thu, 01 Jan 1970 00:00:00 UTC + X-Served-By: + - ip-10-150-7-77/10.150.7.77 + body: + encoding: UTF-8 + string: '' + http_version: + recorded_at: Fri, 04 May 2018 21:11:50 GMT +- request: + method: get + uri: https://api.edamam.com/search?app_id=379dc117&app_key=9fcb79f83581cc266057d2b408a6b9cb&q=alfkjalkdfjalsdkjfalkdjf + 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: + - Fri, 04 May 2018 21:13:52 GMT + Content-Type: + - application/json;charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - route=ee37ea0cbec446fe0dc609c7b4a6323b; Path=/ + Cache-Control: + - private + Expires: + - Thu, 01 Jan 1970 00:00:00 UTC + X-Served-By: + - ip-10-149-22-246/10.149.22.246 + Vary: + - Accept-Encoding + body: + encoding: ASCII-8BIT + string: |- + { + "q" : "alfkjalkdfjalsdkjfalkdjf", + "from" : 0, + "to" : 10, + "params" : { + "sane" : [ ], + "q" : [ "alfkjalkdfjalsdkjfalkdjf" ], + "app_key" : [ "9fcb79f83581cc266057d2b408a6b9cb" ], + "app_id" : [ "379dc117" ] + }, + "more" : false, + "count" : 0, + "hits" : [ ] + } + http_version: + recorded_at: Fri, 04 May 2018 21:13:52 GMT +recorded_with: VCR 4.0.0 diff --git a/test/cassettes/recipe-query-specific-range.yml b/test/cassettes/recipe-query-specific-range.yml new file mode 100644 index 000000000..9706a0ad7 --- /dev/null +++ b/test/cassettes/recipe-query-specific-range.yml @@ -0,0 +1,47 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.edamam.com/search?app_id=379dc117&app_key=9fcb79f83581cc266057d2b408a6b9cb&from=4&q=lime&to=10 + 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: + - Fri, 04 May 2018 21:11:03 GMT + Content-Type: + - application/json;charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - route=ee37ea0cbec446fe0dc609c7b4a6323b; Path=/ + Cache-Control: + - private + Expires: + - Thu, 01 Jan 1970 00:00:00 UTC + X-Served-By: + - ip-10-149-22-246/10.149.22.246 + Vary: + - Accept-Encoding + body: + encoding: ASCII-8BIT + string: !binary |- + ewogICJxIiA6ICJsaW1lIiwKICAiZnJvbSIgOiA0LAogICJ0byIgOiAxMCwKICAicGFyYW1zIiA6IHsKICAgICJzYW5lIiA6IFsgXSwKICAgICJxIiA6IFsgImxpbWUiIF0sCiAgICAiZnJvbSIgOiBbICI0IiBdLAogICAgImFwcF9rZXkiIDogWyAiOWZjYjc5ZjgzNTgxY2MyNjYwNTdkMmI0MDhhNmI5Y2IiIF0sCiAgICAidG8iIDogWyAiMTAiIF0sCiAgICAiYXBwX2lkIiA6IFsgIjM3OWRjMTE3IiBdCiAgfSwKICAibW9yZSIgOiB0cnVlLAogICJjb3VudCIgOiA3MzczOSwKICAiaGl0cyIgOiBbIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV82NDJlZmE3MjJiNGNhNWU0M2M4NGIzMWYyNGNjN2Y1YiIsCiAgICAgICJsYWJlbCIgOiAiTGltZSBHaW5nZXIgSWNlZCBUZWEiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy9lZjEvZWYxM2EwZjAwYTUyMDJkNDhjMTAwY2RmNDkyMzdiZDguanBnIiwKICAgICAgInNvdXJjZSIgOiAiU2V2ZW4gU3Bvb25zIiwKICAgICAgInVybCIgOiAiaHR0cDovL3d3dy5zZXZlbnNwb29ucy5uZXQvYmxvZy8yMDA1LzUvMjQvc3VtbWVyLXNjaG9vbC5odG1sIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvbGltZS1naW5nZXItaWNlZC10ZWEtNjQyZWZhNzIyYjRjYTVlNDNjODRiMzFmMjRjYzdmNWIvbGltZSIsCiAgICAgICJ5aWVsZCIgOiA0LjAsCiAgICAgICJkaWV0TGFiZWxzIiA6IFsgIkxvdy1GYXQiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiVmVnYW4iLCAiVmVnZXRhcmlhbiIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxIGN1cCB3YXRlciIsICIxIGN1cCBzdWdhciIsICIzIGluY2ggcGllY2Ugb2YgZ2luZ2VyLCBzbGljZWQiLCAiWmVzdCBvZiBhIGxpbWUsIGluIGxhcmdlIHBpZWNlcyIsICI4IGN1cCB3YXRlciIsICI4IHggYmxhY2sgdGVhIGJhZ3MiLCAiWmVzdCBvZiBhIGxpbWUsIGluIHN0cmlwcyIsICJKdWljZSBmcm9tIG9uZSBsaW1lIiwgIjEvMiBjdXAgY3JhbmJlcnJ5IGp1aWNlIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjEgY3VwIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDIzNy4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAgc3VnYXIiLAogICAgICAgICJ3ZWlnaHQiIDogMjAwLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzIGluY2ggcGllY2Ugb2YgZ2luZ2VyLCBzbGljZWQiLAogICAgICAgICJ3ZWlnaHQiIDogNDUuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIlplc3Qgb2YgYSBsaW1lLCBpbiBsYXJnZSBwaWVjZXMiLAogICAgICAgICJ3ZWlnaHQiIDogNjcuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjggY3VwIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDE4OTYuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjggeCBibGFjayB0ZWEgYmFncyIsCiAgICAgICAgIndlaWdodCIgOiAyNC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiWmVzdCBvZiBhIGxpbWUsIGluIHN0cmlwcyIsCiAgICAgICAgIndlaWdodCIgOiA2Ny4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiSnVpY2UgZnJvbSBvbmUgbGltZSIsCiAgICAgICAgIndlaWdodCIgOiA2Ny4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMS8yIGN1cCBjcmFuYmVycnkganVpY2UiLAogICAgICAgICJ3ZWlnaHQiIDogMTI2LjUKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogOTM4Ljg1LAogICAgICAidG90YWxXZWlnaHQiIDogMjcyOS41LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTM4Ljg1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuODY2MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE0NzQzNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTMxNzY1MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjI1NTQ0NTAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI0Ni4zMTY3MDAwMDAwMDAwMywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYuNTI3OTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxOC43Nzc0NDk5OTk5OTk5MywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSLmFkZGVkIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTk5LjYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjIyNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDAuNDQwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDMuMzE1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NC43MjUwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MjIuMzYwMDAwMDAwMDAwMDcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjcwNzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjY1MDE1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUyLjk4NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4wMjAwMDAwMDAwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMTQuMjUwNTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wNzE1NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA5Njg1OTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjc5MTM2NTAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xNTg0MzAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMi4yMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMi4yMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjgzNzUwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuNTE2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDYuOTQyNTAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMzMyMzA3NjkyMzA3NjkyNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjczNzE3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Mi4xMDU1NjY2NjY2NjY2OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjExMTk5OTk5OTk5OTk5NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuNDUyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMTg1MDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQuMzMxNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy42ODEyNTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi4wNjc0Mjg1NzE0Mjg1NzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuNDg1MDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0LjMzNDMzMzMzMzMzMzMzNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjU2OTI4NTcxNDI4NTcxNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjQ0NjY2NjY2NjY2NjY2NjcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOTAuNDE3NTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Ljc3MDAwMDAwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjY5NzY0NzA1ODgyMzUyOCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjk1NjgyNTAwMDAwMDAwMDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjkyMTUwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuNTU3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4xODc1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMy4xNDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuODY2MDAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEuMzMyMzA3NjkyMzA3NjkyNCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMTQ3NDM1LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDAuNzM3MTc1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4xMzE3NjUwMDAwMDAwMDAwMiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4yNTU0NDUwMDAwMDAwMDAwMywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyNDYuMzE2NzAwMDAwMDAwMDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4Mi4xMDU1NjY2NjY2NjY2OCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMjM5Ljc4ODcwMDAwMDAwMDAzLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNi41Mjc5OTk5OTk5OTk5OTksCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMjYuMTExOTk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAyMTguNzc3NDQ5OTk5OTk5OTMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUi5hZGRlZCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTk5LjYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMi4yMjYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjQ1MiwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEwMC40NDAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMTg1MDAwMDAwMDAwMDAwNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE0My4zMTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNC4zMzE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1NC43MjUwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzLjY4MTI1MDAwMDAwMDAwMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0MjIuMzYwMDAwMDAwMDAwMDcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMi4wNjc0Mjg1NzE0Mjg1NzMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjcwNzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5LjQ4NTAwMDAwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNjUwMTUwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMzM0MzMzMzMzMzMzMzM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1Mi45ODUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3LjU2OTI4NTcxNDI4NTcxNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNC4wMjAwMDAwMDAwMDAwMDA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC40NDY2NjY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMTQuMjUwNTAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOTAuNDE3NTAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wNzE1NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuNzcwMDAwMDAwMDAwMDAwNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjA5Njg1OTk5OTk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNS42OTc2NDcwNTg4MjM1MjgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNzkxMzY1MDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMuOTU2ODI1MDAwMDAwMDAwNywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjE1ODQzMDAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy45MjE1MDAwMDAwMDAwMDEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjIuMjMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjU1NzUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjIuMjMsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuODM3NTAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMTg3NTAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjUxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMuMTQ1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV81MzFhZjk5YWQxZjdhMmRmNGZiZGI2NjI4NTQ2YmIyYyIsCiAgICAgICJsYWJlbCIgOiAiQmFzaWwgTGltZSBTb3JiZXQiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy9lMmMvZTJjMDM5N2JiNjEwOWNlZWNjMWYxNDVlMzYyODI3YWIuanBnIiwKICAgICAgInNvdXJjZSIgOiAiRGVsaWNpb3VzIERheXMiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LmRlbGljaW91c2RheXMuY29tL2FyY2hpdmVzLzIwMDUvMDcvMDMvZ3JlZW4tZGF5LW9yLXdoZW4tcG9vci1saXR0bGUtYmFzaWwtaGFkLXRvLWRpZS8iLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9iYXNpbC1saW1lLXNvcmJldC01MzFhZjk5YWQxZjdhMmRmNGZiZGI2NjI4NTQ2YmIyYy9saW1lIiwKICAgICAgInlpZWxkIiA6IDIuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUZhdCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJWZWdhbiIsICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjE1MCBtbCBXYXRlciIsICIxNDAgZyBTdWdhciIsICI2IHggemVzdCBvZiBsaW1lIiwgIjQgbGltZSBMaW1lIEp1aWNlIiwgIjEgYnVuY2ggYmFzaWwgbGVhdmVzIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjE1MCBtbCBXYXRlciIsCiAgICAgICAgIndlaWdodCIgOiAxNTAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjE0MCBnIFN1Z2FyIiwKICAgICAgICAid2VpZ2h0IiA6IDE0MC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNiB4IHplc3Qgb2YgbGltZSIsCiAgICAgICAgIndlaWdodCIgOiA0MDIuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjQgbGltZSBMaW1lIEp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDE3Ni4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBidW5jaCBiYXNpbCBsZWF2ZXMiLAogICAgICAgICJ3ZWlnaHQiIDogNTAuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiA3MTcuOSwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDkxOC4wLAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzE3LjkwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMjQ3MiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjEyMzAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xMzQ0NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBUFUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDU2MDgwMDAwMDAwMDAwMDQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTk4LjQ4NywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjc2MDAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDkuNjM4MiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSLmFkZGVkIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTM5LjcyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS4xMjgyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwLjk2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjUxLjcwMDAwMDAwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MS43LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDc2Ni4yNiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMjI1NDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMDE3MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI1LjAwMDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDMuNTYsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3OC43ODIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xODE2MDAwMDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE3MTQwMDAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjUwNDkyMDAwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zMTcyNCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4My43NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4My43NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjY3MTYwMDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxMC44NjgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNS44OTUwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS45MTg3NjkyMzA3NjkyMzEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42MTUxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDY2LjE2MjMzMzMzMzMzMzM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTEuMDQwMDAwMDAwMDAwMDA2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuMjU2NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjg3MzMzMzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI1LjE3MDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNy45MjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS44OTMxNDI4NTcxNDI4NTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIzLjQ3NDQ0NDQ0NDQ0NDQ0OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi43ODAwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcuODU3MTQyODU3MTQyODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuOTUxMTExMTExMTExMTEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyOTcuOTcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi4xMDY2NjY2NjY2NjY2NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwLjA4MjM1Mjk0MTE3NjQ3NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjUyNDYwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1Ljg2MjAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwLjk0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4LjM1OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNjMuNTg1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxLjI0NzIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxLjkxODc2OTIzMDc2OTIzMSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMTIzMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMC42MTUxLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4xMzQ0NiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC40NTYwODAwMDAwMDAwMDAwNCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxOTguNDg3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjYuMTYyMzMzMzMzMzMzMzQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDE4NS43MjcsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxMi43NjAwMDAwMDAwMDAwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNTEuMDQwMDAwMDAwMDAwMDA2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxNDkuNjM4MiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAxMzkuNzIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNS4xMjgyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAuMjU2NCwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDIwLjk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC44NzMzMzMzMzMzMzMzMzMzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjUxLjcwMDAwMDAwMDAwMDA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjUuMTcwMDAwMDAwMDAwMDA1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3MS43LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTcuOTI1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDc2Ni4yNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIxLjg5MzE0Mjg1NzE0Mjg1NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuMjI1NDAwMDAwMDAwMDAwNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIzLjQ3NDQ0NDQ0NDQ0NDQ0OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuMDE3MDAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDYuNzgwMDAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjUuMDAwMDAwMDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNy44NTcxNDI4NTcxNDI4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTQzLjU2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTUuOTUxMTExMTExMTExMTEsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE3OC43ODIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyOTcuOTcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4xODE2MDAwMDAwMDAwMDAwNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjEwNjY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAidGFnIiA6ICJSSUJGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMTcxNDAwMDAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMC4wODIzNTI5NDExNzY0NzQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuNTA0OTIwMDAwMDAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcuNTI0NjAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzE3MjQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNS44NjIwMDAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogODMuNzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMC45NCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4My43NiwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS42NzE2MDAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC4zNTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIxMC44NjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNjMuNTg1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV80MjQxMjNmNzIzMDZlNWFhOTllYTIyMjAxNzMwMDViYiIsCiAgICAgICJsYWJlbCIgOiAiTGltZSwgUmFzcGJlcnJ5ICYgVm9ka2EgQ29ja3RhaWxzIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvODYxLzg2MTBmNmI3OGQ1Mzk5ODE2ZjBiNmI4NTYwZmUwNjEwLmpwZyIsCiAgICAgICJzb3VyY2UiIDogIkJCQyBHb29kIEZvb2QiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LmJiY2dvb2Rmb29kLmNvbS9yZWNpcGVzLzQ1MjMvIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvbGltZS1yYXNwYmVycnktdm9ka2EtY29ja3RhaWxzLTQyNDEyM2Y3MjMwNmU1YWE5OWVhMjIyMDE3MzAwNWJiL2xpbWUiLAogICAgICAieWllbGQiIDogNi4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJMb3ctRmF0IiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiIF0sCiAgICAgICJjYXV0aW9ucyIgOiBbICJXaGVhdCIgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxNTAuMG1sIHZvZGthIiwgIjYwLjBtbCBsaW1lIGp1aWNlIiwgIjEyIGxpbWUgc2xpY2VzIiwgIjEyIHJhc3BiZXJyaWVzIiwgIjEuMGwgbGVtb25hZGUiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMTUwLjBtbCB2b2RrYSIsCiAgICAgICAgIndlaWdodCIgOiAxNDEuMDA0NDc0NjY2Njg1MwogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjYwLjBtbCBsaW1lIGp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDYyLjQ4ODMxMzk1MzAwNTg2NAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEyIGxpbWUgc2xpY2VzIiwKICAgICAgICAid2VpZ2h0IiA6IDg0LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxMiByYXNwYmVycmllcyIsCiAgICAgICAgIndlaWdodCIgOiAyMi43OTk5OTk5OTk5OTk5OTcKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxLjBsIGxlbW9uYWRlIiwKICAgICAgICAid2VpZ2h0IiA6IDExMTUuODYyNzQ5MTYwODE5CiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDUzNC42MTkxOTk4NTA4MDkxLAogICAgICAidG90YWxXZWlnaHQiIDogMTQyNi4xNTU1Mzc3ODA1MTAzLAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTM0LjYxOTE5OTg1MDgwOTIsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuODA2Mjg2OTE5NDMxNDMxNywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjAyNzgxMTA2NTExNjI0MDQ2OCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMDM1NTUxMDY1MTE2MjQwNDcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE0NjA3MjMxMjIwOTE5MTM0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU2Ljg5NjkwODcyOTcxNjQ5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4wODM5NTMyNTU4MTIwMjMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDIuNTM4NjA4NzI2NDM0NDcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjEyNDA1MDkxODYwMjYyNDYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzEuNTE5NTc1OTc1Mzc2MTEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Ni44MDI4NzM5MTk4NTM1OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI2LjY0MTM0MDAzMjMyMjM2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2MS41ODExMzcwMjEzMzI5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC44NDMyNDYyMDQ5NDA0NTU3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zNDk3MzY5MjYwNzg0ODY1NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzcuNTMwNTg3Njg2NzU1MDg0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjM4NTc2NjI3OTA2MDExNywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjUuOTAyMDM1NDIzMzE0MDMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wNjYzMjY5Mjk3MTMxOTM5MSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA0NDcwNzU2MDMxOTYxODg0NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC40NDg4NzA1NDMyNzEzMDkyNiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA4MzU2NDE4Njc5Mzc1MDQxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3Ljc1NjgzMTM5NTMwMDU4NywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNy43NTY4MzEzOTUzMDA1ODcsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42MzIyMjA1NjU2MTI2OTQ3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjY1NzMyOTg4MzcxODAzNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjczMDk1OTk5MjU0MDQ2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjI0MDQ0MTQxNDUwOTg5NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjEzOTA1NTMyNTU4MTIwMjM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4Ljk2NTYzNjI0MzIzODgzMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjMzNTgxMzAyMzI0ODA5MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMjQ4MTAxODM3MjA1MjQ5MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjk3OTk4MjMzMjMwNzMzNzgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDguNjgwMjg3MzkxOTg1MzU4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxLjY2MDMzNTAwODA4MDU5NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNDczNzQ2NzcyMDM4MDgzNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC42ODQ3MDExMzg1NTgwODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMzMxNTc5NTA3MTg5OTEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS4zNjE1MTI1MjY2NzkyOTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zNzYxOTYyNTMyMjg5MDE5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA5LjgzNjcyNTcwNTUyMzM4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC40MjE3OTUzMTQyMTI5MjgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjYyOTg1NjQ4OTM4OTM0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjI0NDM1MjcxNjM1NjU0NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMTc4MjA5MzM5Njg3NTIxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC40MzkyMDc4NDg4MjUxNDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuMTYxMTAyODI4MDYzNDczNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjMyMTY2MjM1NDY0NzU0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMC44MDYyODY5MTk0MzE0MzE3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4yNDA0NDE0MTQ1MDk4OTUsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAyNzgxMTA2NTExNjI0MDQ2OCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAwLjEzOTA1NTMyNTU4MTIwMjM0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4wMzU1NTEwNjUxMTYyNDA0NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4xNDYwNzIzMTIyMDkxOTEzNCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA1Ni44OTY5MDg3Mjk3MTY0OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE4Ljk2NTYzNjI0MzIzODgzMywKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogNTIuODEyOTU1NDczOTA0NDY2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNC4wODM5NTMyNTU4MTIwMjMsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMTYuMzM1ODEzMDIzMjQ4MDkzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA0Mi41Mzg2MDg3MjY0MzQ0NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMS4xMjQwNTA5MTg2MDI2MjQ2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMi4yNDgxMDE4MzcyMDUyNDkzLAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNzEuNTE5NTc1OTc1Mzc2MTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyLjk3OTk4MjMzMjMwNzMzNzgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAidGFnIiA6ICJDQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4Ni44MDI4NzM5MTk4NTM1OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDguNjgwMjg3MzkxOTg1MzU4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjYuNjQxMzQwMDMyMzIyMzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzMS42NjAzMzUwMDgwODA1OTQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjYxLjU4MTEzNzAyMTMzMjksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3LjQ3Mzc0Njc3MjAzODA4MzUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjg0MzI0NjIwNDk0MDQ1NTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjY4NDcwMTEzODU1ODA4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzQ5NzM2OTI2MDc4NDg2NTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyLjMzMTU3OTUwNzE4OTkxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzNy41MzA1ODc2ODY3NTUwODQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjM2MTUxMjUyNjY3OTI5OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMy4zODU3NjYyNzkwNjAxMTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjM3NjE5NjI1MzIyODkwMTksCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDY1LjkwMjAzNTQyMzMxNDAzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTA5LjgzNjcyNTcwNTUyMzM4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMDY2MzI2OTI5NzEzMTkzOTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjQyMTc5NTMxNDIxMjkyOCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjA0NDcwNzU2MDMxOTYxODg0NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIuNjI5ODU2NDg5Mzg5MzQ0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjQ0ODg3MDU0MzI3MTMwOTI2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMi4yNDQzNTI3MTYzNTY1NDYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wODM1NjQxODY3OTM3NTA0MSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMTc4MjA5MzM5Njg3NTIxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE3Ljc1NjgzMTM5NTMwMDU4NywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuNDM5MjA3ODQ4ODI1MTQ3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE3Ljc1NjgzMTM5NTMwMDU4NywKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC42MzIyMjA1NjU2MTI2OTQ3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMy4xNjExMDI4MjgwNjM0NzM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjY1NzMyOTg4MzcxODAzNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMuMzIxNjYyMzU0NjQ3NTQ0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV8xYWE4N2MwOTZhOGIzN2ZlODdkYjI3ODcwZTY0NTUzYiIsCiAgICAgICJsYWJlbCIgOiAiTGltZSwgR3JhcGVmcnVpdCBhbmQgR2luZ2VyIEp1aWNlIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvYTExL2ExMWY5YWNlZmExNWZmNjA0Njk1MzcyNTFhMzI3ZDRmLmpwZyIsCiAgICAgICJzb3VyY2UiIDogIjEwMSBDb29rYm9va3MiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LjEwMWNvb2tib29rcy5jb20vYXJjaGl2ZXMvbGltZS1ncmFwZWZydWl0LWFuZC1naW5nZXItanVpY2UtcmVjaXBlLmh0bWwiLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9saW1lLWdyYXBlZnJ1aXQtYW5kLWdpbmdlci1qdWljZS0xYWE4N2MwOTZhOGIzN2ZlODdkYjI3ODcwZTY0NTUzYi9saW1lIiwKICAgICAgInlpZWxkIiA6IDIuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUZhdCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJWZWdhbiIsICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjMgdGFibGVzcG9vbnMgbmF0dXJhbCBjYW5lIHN1Z2FyIiwgIjIgdGFibGVzcG9vbnMgZ2luZ2VyLCBwZWVsZWQgdGhlbiBncmF0ZWQiLCAiMSBjdXAvMjQwIG1sIHdhdGVyIiwgInZlcnkgc2NhbnQgMS8yIGN1cC85NSBtbCBmcmVzaCBsaW1lIGp1aWNlIC0gMiBqdWljeSBsaW1lcyIsICIxIDEvMyBjdXBzLzMxMCBtbCBmcmVzaCBncmFwZWZydWl0IGp1aWNlIC0gMiBqdWljeSBncmFwZWZydWl0cyIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIzIHRhYmxlc3Bvb25zIG5hdHVyYWwgY2FuZSBzdWdhciIsCiAgICAgICAgIndlaWdodCIgOiAzNy44CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBnaW5nZXIsIHBlZWxlZCB0aGVuIGdyYXRlZCIsCiAgICAgICAgIndlaWdodCIgOiAxMi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAvMjQwIG1sIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDI0MC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAidmVyeSBzY2FudCAxLzIgY3VwLzk1IG1sIGZyZXNoIGxpbWUganVpY2UgLSAyIGp1aWN5IGxpbWVzIiwKICAgICAgICAid2VpZ2h0IiA6IDkwLjAwOTU0NzAzMDAzNTg4CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSAxLzMgY3Vwcy8zMTAgbWwgZnJlc2ggZ3JhcGVmcnVpdCBqdWljZSAtIDIganVpY3kgZ3JhcGVmcnVpdHMiLAogICAgICAgICJ3ZWlnaHQiIDogMzAxLjM2NzQ3NzMzMDE3NTc1CiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDI4Mi4zNDAxMzE2Mjc5Njg3MywKICAgICAgInRvdGFsV2VpZ2h0IiA6IDY4MS4xNzcwMjQzNjAyMTE2LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjgyLjM0MDEzMTYyNzk2ODgsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNTcxMzg2NTcxMzkwMjQ3NSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA4NjM1MzU0NzE3MjgzMjUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA3NDc1OTU4NTk4ODYyOTY3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFQVSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xNDAzMTM0NDU0MjU3NjE5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDc0Ljc1Njg1MTEwMDQzMzU1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi4wNzUzMDk1Njc0NzI5MzgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjEuNDc5NTIzOTM3NjQzNDUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUi5hZGRlZCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjcyNDM5OTk5OTk5OTk5NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuOTI3OTAyNDIyNzg4NDYzNCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy4zMzgxOTA5NDA2MDA3MTgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3NS4zNjUyNDc3OTk1MzI5MiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDAuMDgzNjQ1NzgxNTE3OTcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTg4LjM4OTYwNDQxOTI5NjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjgxMTc3Nzc2ODU3ODMyMDYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjM3ODU0NzczNTg2NDE2MjUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ0LjM5MTExNjY1MTgyMDUyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjgyNzU0MDQ4NzIwNDIzMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI3LjE0ODE0ODEzNjY4ODk3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTQxNTA4ODMwNzIxMTc1OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA4OTUzNzQwNDg3MjA0MjM0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjA4MDY5NzYwODA3ODI0NDcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xODc0OTIxMjA0NzQ4OTEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzguNjU3NTExNDk1NDIwNDUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIkZPTEZEIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzguNjU3NTExNDk1NDIwNDUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42MjA5OTg3MjM5OTUzMDc0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU1MjA1NzI4MjE4MDIxNTIsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNC4xMTcwMDY1ODEzOTg0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC44NzkwNTYyNjM2NzczMDM4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDMxNzY3NzM1ODY0MTYyNDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQuOTE4OTUwMzY2ODExMTg1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQuMzAxMjM4MjY5ODkxNzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ljg1NTgwNDg0NTU3NjkyNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU1NTc1Nzk1NTg1ODM2MzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNTM2NTI0Nzc5OTUzMjkzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwLjAyMDkxMTQ0NTM3OTQ5MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjgxMTEzMTU1NDgzNzA1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0LjUwOTg3NjQ5MjEwMTc4MSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi41MjM2NTE1NzI0Mjc3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2LjM0MTU4ODA5MzExNzIxOCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjg2OTcyNjcyMDgwMDQ3MDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMTEuOTEzNTgwMjI3ODE0OTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5LjQzMzkyMjA0ODA3ODM4NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuMjY2OTA2MTY4OTQzNjY4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuNDAzNDg4MDQwMzkxMjIzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS4zNzQ2MDYwMjM3NDQ1NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuNjY0Mzc3ODczODU1MTEzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjEwNDk5MzYxOTk3NjUzNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjY5MDA3MTYwMjcyNTI2OSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMC41NzEzODY1NzEzOTAyNDc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC44NzkwNTYyNjM2NzczMDM4LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4wODYzNTM1NDcxNzI4MzI1LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDAuNDMxNzY3NzM1ODY0MTYyNDUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjA3NDc1OTU4NTk4ODYyOTY3LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjE0MDMxMzQ0NTQyNTc2MTksCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNzQuNzU2ODUxMTAwNDMzNTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNC45MTg5NTAzNjY4MTExODUsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDY4LjY4MTU0MTUzMjk2MDYxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNi4wNzUzMDk1Njc0NzI5MzgsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMjQuMzAxMjM4MjY5ODkxNzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDYxLjQ3OTUyMzkzNzY0MzQ1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDM3LjcyNDM5OTk5OTk5OTk5NiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyLjkyNzkwMjQyMjc4ODQ2MzQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1Ljg1NTgwNDg0NTU3NjkyNywKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEzLjMzODE5MDk0MDYwMDcxOCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDAuNTU1NzU3OTU1ODU4MzYzMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDc1LjM2NTI0Nzc5OTUzMjkyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy41MzY1MjQ3Nzk5NTMyOTMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQwLjA4MzY0NTc4MTUxNzk3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAuMDIwOTExNDQ1Mzc5NDkzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDU4OC4zODk2MDQ0MTkyOTY4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTYuODExMTMxNTU0ODM3MDUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjgxMTc3Nzc2ODU3ODMyMDYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjUwOTg3NjQ5MjEwMTc4MSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzc4NTQ3NzM1ODY0MTYyNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIuNTIzNjUxNTcyNDI3NzUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQ0LjM5MTExNjY1MTgyMDUyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNi4zNDE1ODgwOTMxMTcyMTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICJ0YWciIDogIlZJVEFfUkFFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcuODI3NTQwNDg3MjA0MjMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC44Njk3MjY3MjA4MDA0NzA0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjcuMTQ4MTQ4MTM2Njg4OTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMTEuOTEzNTgwMjI3ODE0OTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4xNDE1MDg4MzA3MjExNzU4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOS40MzM5MjIwNDgwNzgzODUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wODk1Mzc0MDQ4NzIwNDIzNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDUuMjY2OTA2MTY4OTQzNjY4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjA4MDY5NzYwODA3ODI0NDcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjQwMzQ4ODA0MDM5MTIyMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjE4NzQ5MjEyMDQ3NDg5MSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkuMzc0NjA2MDIzNzQ0NTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzguNjU3NTExNDk1NDIwNDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5LjY2NDM3Nzg3Mzg1NTExMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzOC42NTc1MTE0OTU0MjA0NSwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC42MjA5OTg3MjM5OTUzMDc0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMy4xMDQ5OTM2MTk5NzY1MzcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNTUyMDU3MjgyMTgwMjE1MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDAuNjkwMDcxNjAyNzI1MjY5LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV81ZmZkY2E0ZTE4ZjQ5NjAxMDc2MDA4ZDA0ODNkODE1OCIsCiAgICAgICJsYWJlbCIgOiAiTWFuZ28gV2l0aCBMaW1lIEFuZCBWYW5pbGxhIFN5cnVwIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvYTVhL2E1YWEzNjM3OTQ4YWNjNDliOWQzZmM4MmFjNjA3YmM4LmpwZyIsCiAgICAgICJzb3VyY2UiIDogIkxlaXRlJ3MgQ3VsaW5hcmlhIiwKICAgICAgInVybCIgOiAiaHR0cDovL2xlaXRlc2N1bGluYXJpYS5jb20vNDQ5OS9yZWNpcGVzLW1hbmdvLXdpdGgtbGltZS1hbmQtdmFuaWxsYS1zeXJ1cC5odG1sIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvbWFuZ28td2l0aC1saW1lLWFuZC12YW5pbGxhLXN5cnVwLTVmZmRjYTRlMThmNDk2MDEwNzYwMDhkMDQ4M2Q4MTU4L2xpbWUiLAogICAgICAieWllbGQiIDogNi4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJMb3ctRmF0IiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlZlZ2FuIiwgIlZlZ2V0YXJpYW4iLCAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIsICJBbGNvaG9sLUZyZWUiIF0sCiAgICAgICJjYXV0aW9ucyIgOiBbIF0sCiAgICAgICJpbmdyZWRpZW50TGluZXMiIDogWyAiMSBjdXAgd2F0ZXIiLCAiMi8zIGN1cCBzdWdhciIsICIyIHRhYmxlc3Bvb25zIGxpbWUganVpY2UiLCAiMSB2YW5pbGxhIGJlYW4sIHNwbGl0IiwgIjQgbWFuZ29lcywgY2hlZWtzIHJlbW92ZWQgYW5kIHBlZWxlZCIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxIGN1cCB3YXRlciIsCiAgICAgICAgIndlaWdodCIgOiAyMzcuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjIvMyBjdXAgc3VnYXIiLAogICAgICAgICJ3ZWlnaHQiIDogMTMzLjMzMzMzMzMzMzMzMzMxCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBsaW1lIGp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDMwLjgKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHZhbmlsbGEgYmVhbiwgc3BsaXQiLAogICAgICAgICJ3ZWlnaHQiIDogNS4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNCBtYW5nb2VzLCBjaGVla3MgcmVtb3ZlZCBhbmQgcGVlbGVkIiwKICAgICAgICAid2VpZ2h0IiA6IDEzNDQuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiAxMzQ0LjUsCiAgICAgICJ0b3RhbFdlaWdodCIgOiAxNzUwLjEzMzMzMzMzMzMzMzIsCiAgICAgICJ0b3RhbFRpbWUiIDogMC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzQ0LjUsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuMTMxNzYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4yMzk0NDQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjg4NDU2NDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjk2MTUyMzk5OTk5OTk5OTgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzM3Ljg2MzcyNjY2NjY2NjY1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuNjI3MjAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxNy44MTAwODY2NjY2NjY2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIuYWRkZWQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzMuMDY2NjY2NjY2NjY2NjYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS4xNTMxNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNS4zMTkzMzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjEuMTQ1MzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzOS44MzQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjMwNC4wMjI2NjY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4yNTA3ODY2NjY2NjY2NjY1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4yNzY3NzMzMzMzMzMzMzMzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOTIuNzcyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MjYuMzc2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0OTguNDU1OTk5OTk5OTk5OTYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zODQ1Njk5OTk5OTk5OTk5NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU0NTQyMzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuMDU2MzQ2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNjEyMzY0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU4MS4wLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU4MS4wLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjE2Mzc2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ni42MzI4LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjcuMjI1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3Ljg5NTAxNTM4NDYxNTM4NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2LjE5NzIyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMi42MjEyNDIyMjIyMjIyMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg2LjUwODgwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuMzA2MzIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4wNTQ5NzIyMjIyMjIyMjIyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi4xMTQ1MzMzMzMzMzMzMzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzQuOTU4NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDY1LjgyOTIxOTA0NzYxOTA1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi41MDQzNzAzNzAzNzAzNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC41MTE4MjIyMjIyMjIyMjMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjcuNTM4ODU3MTQyODU3MTQzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDgwLjcwODQ0NDQ0NDQ0NDQ0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODMwLjc2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjUuNjM3OTk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzIuMDgzNzI1NDkwMTk2MDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDUuMjgxNzI5OTk5OTk5OTk2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODAuNjE4MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0NS4yNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjAuODE4Nzk5OTk5OTk5OTk2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcwLjc5MTAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA1LjEzMTc2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy44OTUwMTUzODQ2MTUzODQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjIzOTQ0NCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiA2LjE5NzIyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMS44ODQ1NjQwMDAwMDAwMDAxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjk2MTUyMzk5OTk5OTk5OTgsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMzM3Ljg2MzcyNjY2NjY2NjY1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTEyLjYyMTI0MjIyMjIyMjIxLAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAzMTYuMjM2NTI2NjY2NjY2NjMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAyMS42MjcyMDAwMDAwMDAwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogODYuNTA4ODAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDMxNy44MTAwODY2NjY2NjY2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDEzMy4wNjY2NjY2NjY2NjY2NiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMS4xNTMxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIyLjMwNjMyLAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjUuMzE5MzMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4wNTQ5NzIyMjIyMjIyMjIyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTYxLjE0NTMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTYuMTE0NTMzMzMzMzMzMzM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMzkuODM0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzQuOTU4NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyMzA0LjAyMjY2NjY2NjY2NjcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2NS44MjkyMTkwNDc2MTkwNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuMjUwNzg2NjY2NjY2NjY2NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjUwNDM3MDM3MDM3MDM3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS4yNzY3NzMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC41MTE4MjIyMjIyMjIyMjMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE5Mi43NzIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNy41Mzg4NTcxNDI4NTcxNDMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICJ0YWciIDogIlZJVEFfUkFFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcyNi4zNzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4MC43MDg0NDQ0NDQ0NDQ0NCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICJ0YWciIDogIlZJVEMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDk4LjQ1NTk5OTk5OTk5OTk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogODMwLjc2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzg0NTY5OTk5OTk5OTk5OTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNS42Mzc5OTk5OTk5OTk5OTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC41NDU0MjMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzIuMDgzNzI1NDkwMTk2MDcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDkuMDU2MzQ2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDUuMjgxNzI5OTk5OTk5OTk2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuNjEyMzY0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogODAuNjE4MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1ODEuMCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE0NS4yNSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1ODEuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTIuMTYzNzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2MC44MTg3OTk5OTk5OTk5OTYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDU2LjYzMjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3MC43OTEwMDAwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfNWRhYzI2OTVhMjU4YzEzNzM2YmU4NjBjYzhlNTU5ZGYiLAogICAgICAibGFiZWwiIDogIlJhc3BiZXJyeSBMaW1lIFBvcHNpY2xlcyIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzJlMC8yZTA3MDY5MDg1MTUwMzQxNTQ3NmM4MjQ3MTNkZGY3NC5qcGciLAogICAgICAic291cmNlIiA6ICJGb29kNTIiLAogICAgICAidXJsIiA6ICJodHRwczovL2Zvb2Q1Mi5jb20vcmVjaXBlcy8xMzE0NC1yYXNwYmVycnktbGltZS1pY2UtcG9wcyIsCiAgICAgICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL3Jhc3BiZXJyeS1saW1lLXBvcHNpY2xlcy01ZGFjMjY5NWEyNThjMTM3MzZiZTg2MGNjOGU1NTlkZi9saW1lIiwKICAgICAgInlpZWxkIiA6IDguMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUZhdCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJWZWdhbiIsICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjQgY3VwcyByYXNwYmVycmllcyIsICI3IHRhYmxlc3Bvb25zIHN1Z2FyIiwgIjEvMyBjdXAgd2F0ZXIiLCAiMSB0ZWFzcG9vbiBmaW5lbHkgbWluY2VkIGxpbWUgemVzdCIsICIxIHRhYmxlc3Bvb24gbGltZSBqdWljZSIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICI0IGN1cHMgcmFzcGJlcnJpZXMiLAogICAgICAgICJ3ZWlnaHQiIDogNDkyLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI3IHRhYmxlc3Bvb25zIHN1Z2FyIiwKICAgICAgICAid2VpZ2h0IiA6IDg4LjIKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxLzMgY3VwIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDc5LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHRlYXNwb29uIGZpbmVseSBtaW5jZWQgbGltZSB6ZXN0IiwKICAgICAgICAid2VpZ2h0IiA6IDIuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEgdGFibGVzcG9vbiBsaW1lIGp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDE1LjQKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogNjAxLjk2NCwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDY3Ni42LAogICAgICAidG90YWxUaW1lIiA6IDE5MC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MDEuOTY0LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjIxNDc3OTk5OTk5OTk5OTcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wOTU0OTIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjMxNjMzMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBUFUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuODUwMzIxOTk5OTk5OTk5OCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDguNTQzODQwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi4yNTM2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMC4xMTM2NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSLmFkZGVkIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODguMDIzNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuOTk4NjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS4zODk5OTk5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzEuMDg4MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMC41NjIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzY1LjkwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuNDY4NzU5OTk5OTk5OTk5NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMTAwNDM5OTk5OTk5OTk5NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQ1LjA3NjAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC4yMDgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzNi4xMDQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xNjI0OSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjIwNzYyNzk5OTk5OTk5OTk4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjk3MjAyOCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjI3OTg5MjAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwNS4xMiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDUuMTIsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4zMTkyOCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzguNDY4Mzk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzAuMDk4MjAwMDAwMDAwMDA2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Ljk0NTgxNTM4NDYxNTM4NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjQ3NzQ1OTk5OTk5OTk5OTk0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ5LjUxNDYxMzMzMzMzMzM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI5LjAxNDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS45OTczNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjM5MTI0OTk5OTk5OTk5OTkzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy4xMDg4MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjcuNjQwNDk5OTk5OTk5OTk2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuODgyOTE0Mjg1NzE0MjksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5LjI3MDg4ODg4ODg4ODg4NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQuMDAyOTMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuNzI1MTQyODU3MTQyODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4xMzQyMjIyMjIyMjIyMjIyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjI2Ljg0MDAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuODMyNjY2NjY2NjY2NjY2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIuMjEzNDExNzY0NzA1ODgyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0Ljg2MDEzOTk5OTk5OTk5OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzLjk5NDYwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjI4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS41OTY0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ4LjA4NTQ5OTk5OTk5OTk5NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMy4yMTQ3Nzk5OTk5OTk5OTk3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNC45NDU4MTUzODQ2MTUzODQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjA5NTQ5MiwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAwLjQ3NzQ1OTk5OTk5OTk5OTk0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4zMTYzMzIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBUFUiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDEuODUwMzIxOTk5OTk5OTk5OCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxNDguNTQzODQwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0OS41MTQ2MTMzMzMzMzMzNCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTE2LjI5MDI0MDAwMDAwMDAxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMzIuMjUzNiwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAxMjkuMDE0NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInN1Z2FyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMTEwLjExMzY2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDg4LjAyMzYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNS45OTg2OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDExLjk5NzM2LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogOS4zODk5OTk5OTk5OTk5OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjM5MTI0OTk5OTk5OTk5OTkzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTMxLjA4ODAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTMuMTA4ODAwMDAwMDAwMDAyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMTAuNTYyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjcuNjQwNDk5OTk5OTk5OTk2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDc2NS45MDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMS44ODI5MTQyODU3MTQyOSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMuNDY4NzU5OTk5OTk5OTk5NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE5LjI3MDg4ODg4ODg4ODg4NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuMTAwNDM5OTk5OTk5OTk5NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE0LjAwMjkzMzMzMzMzMzMzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNDUuMDc2MDAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMC43MjUxNDI4NTcxNDI4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTAuMjA4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4xMzQyMjIyMjIyMjIyMjIyLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMzYuMTA0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjI2Ljg0MDAwMDAwMDAwMDAzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMTYyNDksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMC44MzI2NjY2NjY2NjY2NjYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4yMDc2Mjc5OTk5OTk5OTk5OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjIxMzQxMTc2NDcwNTg4MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi45NzIwMjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNC44NjAxMzk5OTk5OTk5OTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4yNzk4OTIwMDAwMDAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzLjk5NDYwMDAwMDAwMDAwMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMDUuMTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNi4yOCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMDUuMTIsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuMzE5MjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMS41OTY0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzOC40NjgzOTk5OTk5OTk5OTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0OC4wODU0OTk5OTk5OTk5OTYsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSBdCn0= + http_version: + recorded_at: Fri, 04 May 2018 21:11:03 GMT +recorded_with: VCR 4.0.0 diff --git a/test/cassettes/recipe-query.yml b/test/cassettes/recipe-query.yml new file mode 100644 index 000000000..beba7c3cc --- /dev/null +++ b/test/cassettes/recipe-query.yml @@ -0,0 +1,91 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.edamam.com/search?app_id=379dc117&app_key=9fcb79f83581cc266057d2b408a6b9cb&q=chicken + 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: + - Fri, 04 May 2018 20:17:13 GMT + Content-Type: + - application/json;charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - route=272f54237f8ce06ebc267f46f9de4658; Path=/ + Cache-Control: + - private + Expires: + - Thu, 01 Jan 1970 00:00:00 UTC + X-Served-By: + - ip-10-150-7-77/10.150.7.77 + Vary: + - Accept-Encoding + body: + encoding: ASCII-8BIT + string: !binary |- + ewogICJxIiA6ICJjaGlja2VuIiwKICAiZnJvbSIgOiAwLAogICJ0byIgOiAxMCwKICAicGFyYW1zIiA6IHsKICAgICJzYW5lIiA6IFsgXSwKICAgICJxIiA6IFsgImNoaWNrZW4iIF0sCiAgICAiYXBwX2tleSIgOiBbICI5ZmNiNzlmODM1ODFjYzI2NjA1N2QyYjQwOGE2YjljYiIgXSwKICAgICJhcHBfaWQiIDogWyAiMzc5ZGMxMTciIF0KICB9LAogICJtb3JlIiA6IHRydWUsCiAgImNvdW50IiA6IDE5MTA1OCwKICAiaGl0cyIgOiBbIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV83YmY0YTM3MWM2ODg0ZDgwOTY4MmE3MjgwOGRhN2RjMiIsCiAgICAgICJsYWJlbCIgOiAiVGVyaXlha2kgQ2hpY2tlbiIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzI2Mi8yNjJiNDM1M2NhMjUwNzQxNzhlYWQyYTA3Y2RmN2RjMS5qcGciLAogICAgICAic291cmNlIiA6ICJEYXZpZCBMZWJvdml0eiIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuZGF2aWRsZWJvdml0ei5jb20vMjAxMi8xMi9jaGlja2VuLXRlcml5YWtpLXJlY2lwZS1qYXBhbmVzZS1mYXJtLWZvb2QvIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvdGVyaXlha2ktY2hpY2tlbi03YmY0YTM3MWM2ODg0ZDgwOTY4MmE3MjgwOGRhN2RjMi9jaGlja2VuIiwKICAgICAgInlpZWxkIiA6IDYuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUNhcmIiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjEvMiBjdXAgKDEyNW1sKSBtaXJpbiIsICIxLzIgY3VwICgxMjVtbCkgc295IHNhdWNlIiwgIk9uZSAyLWluY2ggKDVjbSkgcGllY2Ugb2YgZnJlc2ggZ2luZ2VyLCBwZWVsZWQgYW5kIGdyYXRlZCIsICIyLXBvdW5kcyAoOTAwZykgYm9uZWxlc3MgY2hpY2tlbiB0aGlnaHMgKDQtOCB0aGlnaHMsIGRlcGVuZGluZyBvbiBzaXplKSIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxLzIgY3VwICgxMjVtbCkgbWlyaW4iLAogICAgICAgICJ3ZWlnaHQiIDogMTIyLjk5ODUwNzU3Nzk1MzkyCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMS8yIGN1cCAoMTI1bWwpIHNveSBzYXVjZSIsCiAgICAgICAgIndlaWdodCIgOiAxMzQuNzI3NzQ2NzAyNjU1NjgKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICJPbmUgMi1pbmNoICg1Y20pIHBpZWNlIG9mIGZyZXNoIGdpbmdlciwgcGVlbGVkIGFuZCBncmF0ZWQiLAogICAgICAgICJ3ZWlnaHQiIDogMTUuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjItcG91bmRzICg5MDBnKSBib25lbGVzcyBjaGlja2VuIHRoaWdocyAoNC04IHRoaWdocywgZGVwZW5kaW5nIG9uIHNpemUpIiwKICAgICAgICAid2VpZ2h0IiA6IDkwNy4xODQ3NAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiAyMjUzLjEwMTk4MTMwNjg2NiwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDExNzkuOTEwOTk0MjgwNjA5NywKICAgICAgInRvdGFsVGltZSIgOiAwLjAsCiAgICAgICJ0b3RhbE51dHJpZW50cyIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIyNTMuMTAxOTgxMzA2ODY2LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNTEuNTYzODMzNDcwMjA1MTcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDEuMTY5ODM4ODkyNjkyOTQ0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC43NzExMDcwMjkwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjMuMTAwMjgxMzczMDk4MzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMS44Mjk1Mjg5MDk2Mjc5OSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNy43MjU0NjUxNDEzMzg2MiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMzc3ODIxOTczNjIxMjQ1NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjc5MzkxMDk4NjgxMDYyMjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjEuNzIxNzUwMTY3NDg1OTYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4ODkuMDQxMDQ1MjAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODEzOS44MjQ3MzU5Mjg0MzYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMTYuNTEzMDEzNTkwNzc0MDgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI3Ni44MjE2OTYyMTQ2NDI0MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNTI5LjcyMjE5NDY1MTA0MSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDguMzM1NDA3MDY2NzY2NDYzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIuOTUwNDE0MjQzODI4Njk2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjYwLjQwODAxMTc4MTA4NTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwOC42NTI0OTAyMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC43NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjcxMDQ1NTAxNjYxMTg3NjQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS41NDI4MTg2NTUwNTkzODIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ1LjAyODQxNTU0MjU5MDMyNCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjM3MTMyODExMjkxOTkzMDQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDcuNzI3NDI2NzM4MzcxOCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Ny43Mjc0MjY3MzgzNzE4LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS42MjQ1NDUzODgwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjkwNzE4NDc0MDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS45NDQwODc5NTQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5LjA2NTg3OTU0MDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMi42NTUwOTkwNjUzNDMzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMzMuMTc1MTI4NDE1NzAwMjcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjA1Ljg0OTE5NDQ2MzQ2NDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS45MDg0ODgzODA0NDYyMDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjUxMTI4Nzg5NDQ4NDk4MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMyMy40NDM1MDAzMzQ5NzE5MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI5Ni4zNDcwMTUwNjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMzOS4xNTkzNjM5OTcwMTgyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS42NTEzMDEzNTkwNzc0MDgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjkuMjA1NDI0MDUzNjYwNjEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3Mi4yNzc3NzY5OTAwMjk3NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDYuMzA3ODE3MDM3NTkxNDU1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Ni4zMzYwOTQ5NTg4NTc5NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMzcuMjAxMTQ0NTQwMTU1MTMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjMuMTgzNjEwMDIyMjIyMjI2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4yNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ3LjM2MzY2Nzc3NDEyNTEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5MC43NTQwMzg1MzI5MDQ4MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMjUuMTQyMDc3NzEyOTUxNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2OC41NjY0MDU2NDU5OTY1MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjkzMTg1NjY4NDU5Mjk1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkzLjc0MjQyMzEzMzMzMzMzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4yMjY3OTYxODUwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS43MjA0Mzk3NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMy44MzIzNDk0MjUwMDAwMDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDE1MS41NjM4MzM0NzAyMDUxNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIzMy4xNzUxMjg0MTU3MDAyNywKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDQxLjE2OTgzODg5MjY5Mjk0NCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAyMDUuODQ5MTk0NDYzNDY0NywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjc3MTEwNzAyOTAwMDAwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBTVMiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDYzLjEwMDI4MTM3MzA5ODM1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAzMS44Mjk1Mjg5MDk2Mjc5OSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxNy43MjU0NjUxNDEzMzg2MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDUuOTA4NDg4MzgwNDQ2MjA3LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAxNi4zNDc2NDMxNjc3MTczNzYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjM3NzgyMTk3MzYyMTI0NTYsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNS41MTEyODc4OTQ0ODQ5ODIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuNzkzOTEwOTg2ODEwNjIyOCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMTYxLjcyMTc1MDE2NzQ4NTk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzIzLjQ0MzUwMDMzNDk3MTkzLAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDg4OS4wNDEwNDUyMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjk2LjM0NzAxNTA2NjY2NjcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogODEzOS44MjQ3MzU5Mjg0MzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzMzkuMTU5MzYzOTk3MDE4MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDExNi41MTMwMTM1OTA3NzQwOCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDExLjY1MTMwMTM1OTA3NzQwOCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjc2LjgyMTY5NjIxNDY0MjQzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjkuMjA1NDI0MDUzNjYwNjEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjUyOS43MjIxOTQ2NTEwNDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3Mi4yNzc3NzY5OTAwMjk3NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDguMzM1NDA3MDY2NzY2NDYzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDYuMzA3ODE3MDM3NTkxNDU1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTIuOTUwNDE0MjQzODI4Njk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogODYuMzM2MDk0OTU4ODU3OTcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE2NjAuNDA4MDExNzgxMDg1OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIzNy4yMDExNDQ1NDAxNTUxMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjA4LjY1MjQ5MDIwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjMuMTgzNjEwMDIyMjIyMjI2LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4yNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjcxMDQ1NTAxNjYxMTg3NjQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0Ny4zNjM2Njc3NzQxMjUxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAidGFnIiA6ICJSSUJGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuNTQyODE4NjU1MDU5MzgyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOTAuNzU0MDM4NTMyOTA0ODMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQ1LjAyODQxNTU0MjU5MDMyNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIyNS4xNDIwNzc3MTI5NTE2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMuMzcxMzI4MTEyOTE5OTMwNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE2OC41NjY0MDU2NDU5OTY1MywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0Ny43Mjc0MjY3MzgzNzE4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTEuOTMxODU2Njg0NTkyOTUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDcuNzI3NDI2NzM4MzcxOCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDUuNjI0NTQ1Mzg4MDAwMDAwNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkzLjc0MjQyMzEzMzMzMzMzLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjkwNzE4NDc0MDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjIyNjc5NjE4NTAwMDAwMDA0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuOTQ0MDg3OTU0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOS43MjA0Mzk3NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgInRhZyIgOiAiVklUSzEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTkuMDY1ODc5NTQwMDAwMDA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjMuODMyMzQ5NDI1MDAwMDA3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV9iNzkzMjdkMDViOGU1YjgzOGFkNmNmZDk1NzZiMzBiNiIsCiAgICAgICJsYWJlbCIgOiAiQ2hpY2tlbiBWZXN1dmlvIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvZTQyL2U0MmY5MTE5ODEzZTg5MGFmMzRjMjU5Nzg1YWUxY2ZiLmpwZyIsCiAgICAgICJzb3VyY2UiIDogIlNlcmlvdXMgRWF0cyIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuc2VyaW91c2VhdHMuY29tL3JlY2lwZXMvMjAxMS8xMi9jaGlja2VuLXZlc3V2aW8tcmVjaXBlLmh0bWwiLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9jaGlja2VuLXZlc3V2aW8tYjc5MzI3ZDA1YjhlNWI4MzhhZDZjZmQ5NTc2YjMwYjYvY2hpY2tlbiIsCiAgICAgICJ5aWVsZCIgOiA0LjAsCiAgICAgICJkaWV0TGFiZWxzIiA6IFsgIkxvdy1DYXJiIiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlN1Z2FyLUNvbnNjaW91cyIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjEvMiBjdXAgb2xpdmUgb2lsIiwgIjUgY2xvdmVzIGdhcmxpYywgcGVlbGVkIiwgIjIgbGFyZ2UgcnVzc2V0IHBvdGF0b2VzLCBwZWVsZWQgYW5kIGN1dCBpbnRvIGNodW5rcyIsICIxIDMtNCBwb3VuZCBjaGlja2VuLCBjdXQgaW50byA4IHBpZWNlcyAob3IgMyBwb3VuZCBjaGlja2VuIGxlZ3MpIiwgIjMvNCBjdXAgd2hpdGUgd2luZSIsICIzLzQgY3VwIGNoaWNrZW4gc3RvY2siLCAiMyB0YWJsZXNwb29ucyBjaG9wcGVkIHBhcnNsZXkiLCAiMSB0YWJsZXNwb29uIGRyaWVkIG9yZWdhbm8iLCAiU2FsdCBhbmQgcGVwcGVyIiwgIjEgY3VwIGZyb3plbiBwZWFzLCB0aGF3ZWQiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMS8yIGN1cCBvbGl2ZSBvaWwiLAogICAgICAgICJ3ZWlnaHQiIDogMTA4LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI1IGNsb3ZlcyBnYXJsaWMsIHBlZWxlZCIsCiAgICAgICAgIndlaWdodCIgOiAxNS4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiBsYXJnZSBydXNzZXQgcG90YXRvZXMsIHBlZWxlZCBhbmQgY3V0IGludG8gY2h1bmtzIiwKICAgICAgICAid2VpZ2h0IiA6IDczOC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSAzLTQgcG91bmQgY2hpY2tlbiwgY3V0IGludG8gOCBwaWVjZXMgKG9yIDMgcG91bmQgY2hpY2tlbiBsZWdzKSIsCiAgICAgICAgIndlaWdodCIgOiAxNTg3LjU3MzI5NTAwMDAwMDEKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzLzQgY3VwIHdoaXRlIHdpbmUiLAogICAgICAgICJ3ZWlnaHQiIDogMTEwLjI1CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMy80IGN1cCBjaGlja2VuIHN0b2NrIiwKICAgICAgICAid2VpZ2h0IiA6IDE4MC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMyB0YWJsZXNwb29ucyBjaG9wcGVkIHBhcnNsZXkiLAogICAgICAgICJ3ZWlnaHQiIDogMTEuMzk5OTk5OTk5OTk5OTk5CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSB0YWJsZXNwb29uIGRyaWVkIG9yZWdhbm8iLAogICAgICAgICJ3ZWlnaHQiIDogNi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiU2FsdCBhbmQgcGVwcGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDE3LjM0MTMzOTc3CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiU2FsdCBhbmQgcGVwcGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDguNjcwNjY5ODg1CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAgZnJvemVuIHBlYXMsIHRoYXdlZCIsCiAgICAgICAgIndlaWdodCIgOiAxMzQuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiA0MTgxLjI3NDUzODcwMTM1MSwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDI5MTMuMTUzNjY0NTk4NzcyLAogICAgICAidG90YWxUaW1lIiA6IDYwLjAsCiAgICAgICJ0b3RhbE51dHJpZW50cyIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQxODEuMjc0NTM4NzAxMzUxLAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNzQuNTcxMTI5ODMyNjExLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYyLjU0MTUxMTg1NDY1OTIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVRSTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjA0NzE2MzM0NTM4MiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0Ny40MTA2ODYzMDM4OTAxMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBUFUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ3LjM4OTY5OTEzNjgzMjMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTc2LjE4ODYxMzM5MTQ1NzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS4wNTg4Nzk0ODA5MDUwMDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuNzI1NzkyMjg3MjY0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjMwLjkzMDkwNzk1MjY1MTUyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODE1LjA2MjM4MDQ1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NzQxLjMxOTkzNzQ2MDc2OSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ0MS4xMDgzNzc5ODc4NTUyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NzkuMzM0NDEwNjIwNDg3NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1OTA2LjQ2NjY3NzQ4Mjc1MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIzLjQ1MjIwMjYyMDI4ODk0NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4LjM0MDIyMzU4MzIwNTI3MiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIyMy4zMDQ5MjQxMDAzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MzcuODcwNTE1NTE0OTUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwMy43OTg3OTc0NDk2MDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjcyODI1MDcyNzgzNTgwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS45MTc0OTY1MTQ1MTMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg2Ljk2OTc2MjQxNTk5MTU1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYuODg0MDUxMDkxNDY1MzQ5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI4Mi42ODc1MDQzMTY0NTAwMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyODIuNjg3NTA0MzE2NDUwMDMsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjM0NjYwNDUwNTg2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjE1OTA5OTY4MTIwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuMTc0NTI0NDg4NjA0MDAzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNzEuMzkxMTM0MjEwNzQ1MDcsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMDkuMDYzNzI2OTM1MDY3NTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQyMi40MTcxMjI4MTk0MDE1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxMi43MDc1NTkyNzMyOTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTguNzI5NTM3Nzk3MTUyNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg0LjIzNTUxNzkyMzYyMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDYxLjg2MTgxNTkwNTMwMzEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNzEuNjg3NDYwMTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjgwLjg4ODMzMDcyNzUzMjA0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NC4xMTA4Mzc3OTg3ODU1MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMTkuODMzNjAyNjU1MTIxOTIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjguNzU2MTkwNzg1MjIxNTIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzMC4yOTAwMTQ1NTcxNjA4MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIyLjI2ODE1NzIyMTM2ODQ4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxNy42MTQ5ODkxNTcxODU3MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MC44NzQ1MDE3MjM4ODMzMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3Mi45OTc5OTU3NDkzMzMzNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExNS4yMTY3MTUxODkwNTMzNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMi43OTM5MTI2MTg0MTE3NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MzQuODQ4ODEyMDc5OTU3OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM0NC4yMDI1NTQ1NzMyNjc1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzAuNjcxODc2MDc5MTEyNTEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTUuNzc2NzQxNzY0MzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjUzOTc3NDkyMDMwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwMC44NzI2MjI0NDMwMjAwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NjQuMjM4OTE3NzYzNDMxMzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDI3NC41NzExMjk4MzI2MTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0MjIuNDE3MTIyODE5NDAxNSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDYyLjU0MTUxMTg1NDY1OTIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMzEyLjcwNzU1OTI3MzI5NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjA0NzE2MzM0NTM4MiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTQ3LjQxMDY4NjMwMzg5MDEyLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA0Ny4zODk2OTkxMzY4MzIzLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICJ0YWciIDogIkNIT0NERiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDE3Ni4xODg2MTMzOTE0NTc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTguNzI5NTM3Nzk3MTUyNSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTU1LjEyOTczMzkxMDU1MjUsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAyMS4wNTg4Nzk0ODA5MDUwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogODQuMjM1NTE3OTIzNjIwMDEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDE1LjcyNTc5MjI4NzI2NCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjMwLjkzMDkwNzk1MjY1MTUyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDYxLjg2MTgxNTkwNTMwMzEsCiAgICAgICAgInVuaXQiIDogImciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAidGFnIiA6ICJDSE9MRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICAgICAidG90YWwiIDogODE1LjA2MjM4MDQ1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjcxLjY4NzQ2MDE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDY3NDEuMzE5OTM3NDYwNzY5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjgwLjg4ODMzMDcyNzUzMjA0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDQxLjEwODM3Nzk4Nzg1NTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0NC4xMTA4Mzc3OTg3ODU1MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDc5LjMzNDQxMDYyMDQ4NzcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMTkuODMzNjAyNjU1MTIxOTIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNTkwNi40NjY2Nzc0ODI3NTMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNjguNzU2MTkwNzg1MjIxNTIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyMy40NTIyMDI2MjAyODg5NDcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMzAuMjkwMDE0NTU3MTYwODIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxOC4zNDAyMjM1ODMyMDUyNzIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMjIuMjY4MTU3MjIxMzY4NDgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIyMjMuMzA0OTI0MTAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMxNy42MTQ5ODkxNTcxODU3MywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNjM3Ljg3MDUxNTUxNDk1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNzAuODc0NTAxNzIzODgzMzMsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEwMy43OTg3OTc0NDk2MDAwMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE3Mi45OTc5OTU3NDkzMzMzNywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjcyODI1MDcyNzgzNTgwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMTUuMjE2NzE1MTg5MDUzMzUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS45MTc0OTY1MTQ1MTMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMTIuNzkzOTEyNjE4NDExNzcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDg2Ljk2OTc2MjQxNTk5MTU1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDM0Ljg0ODgxMjA3OTk1NzgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNi44ODQwNTEwOTE0NjUzNDksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzNDQuMjAyNTU0NTczMjY3NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyODIuNjg3NTA0MzE2NDUwMDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3MC42NzE4NzYwNzkxMTI1MSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyODIuNjg3NTA0MzE2NDUwMDMsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzLjM0NjYwNDUwNTg2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTUuNzc2NzQxNzY0MzMzMzMsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuMTU5MDk5NjgxMjAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDAuNTM5Nzc0OTIwMzAwMDAwMSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyMC4xNzQ1MjQ0ODg2MDQwMDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMDAuODcyNjIyNDQzMDIwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDM3MS4zOTExMzQyMTA3NDUwNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQ2NC4yMzg5MTc3NjM0MzEzNSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfMGEzZjQ5YTNkYTA3Y2Q4Mzc5ZDRlMzVmN2ExYTcyZmMiLAogICAgICAibGFiZWwiIDogIkNoaWNrZW4gVGVyaXlha2kiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy84MjcvODI3NWNjMzNlOWYwZjQzMTQ2MTdkNWEzNTY5MDBhYTcuanBnIiwKICAgICAgInNvdXJjZSIgOiAiTm8gUmVjaXBlcyIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly9ub3JlY2lwZXMuY29tL2Jsb2cvMjAwOS8wNy8xNi9jaGlja2VuLXRlcml5YWtpLXJlY2lwZS8iLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9jaGlja2VuLXRlcml5YWtpLTBhM2Y0OWEzZGEwN2NkODM3OWQ0ZTM1ZjdhMWE3MmZjL2NoaWNrZW4iLAogICAgICAieWllbGQiIDogOC4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJMb3ctQ2FyYiIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxLzIgY3VwIHdhdGVyIiwgIjIgdGFibGVzcG9vbnMgSmFwYW5lc2Ugc295IHNhdWNlIiwgIjIgdGFibGVzcG9vbnMgZGFyayBicm93biBzdWdhciIsICIyIHRhYmxlc3Bvb25zIG1pcmluIiwgIjQtNiBza2luLW9uIGZpbGxldGVkIChib25lbGVzcykgY2hpY2tlbiB0aGlnaHMiLCAiMiB0YWJsZXNwb29ucyBtaWxkIGZsYXZvcmVkIGhvbmV5IChvciBtYWx0b3NlKSIsICIyIHRhYmxlc3Bvb25zIGRhcmsgc295IHNhdWNlIiwgIjIgdGFibGVzcG9vbnMgc2FrZSIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxLzIgY3VwIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDExOC41CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBKYXBhbmVzZSBzb3kgc2F1Y2UiLAogICAgICAgICJ3ZWlnaHQiIDogMzIuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjIgdGFibGVzcG9vbnMgZGFyayBicm93biBzdWdhciIsCiAgICAgICAgIndlaWdodCIgOiAxOC4xMjUwMDAwMDAwMDAwMDQKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyIHRhYmxlc3Bvb25zIG1pcmluIiwKICAgICAgICAid2VpZ2h0IiA6IDI5LjgKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI0LTYgc2tpbi1vbiBmaWxsZXRlZCAoYm9uZWxlc3MpIGNoaWNrZW4gdGhpZ2hzIiwKICAgICAgICAid2VpZ2h0IiA6IDc0NS4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBtaWxkIGZsYXZvcmVkIGhvbmV5IChvciBtYWx0b3NlKSIsCiAgICAgICAgIndlaWdodCIgOiA0Mi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBkYXJrIHNveSBzYXVjZSIsCiAgICAgICAgIndlaWdodCIgOiAzMi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBzYWtlIiwKICAgICAgICAid2VpZ2h0IiA6IDI5LjEKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogMTk1NS44NTEsCiAgICAgICJ0b3RhbFdlaWdodCIgOiAxMDQ2LjUyNDk5OTk5OTk5OTksCiAgICAgICJ0b3RhbFRpbWUiIDogMC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOTU1Ljg1MSwKICAgICAgICAgICJ1bml0IiA6ICJrY2FsIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI0LjEwOTMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzMuNzUwNTE5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42MzMyNTAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTEuNzU5MzIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNS45OTc0NzAwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjAuMzQ5NTEyNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNTk2MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Mi4zMzEyNzUwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUi5hZGRlZCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUyLjA3NTI3NTAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyOC43MjU4NSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDczMC4xLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MTMxLjY0MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDk3LjMzMzc1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxODguNjUwMjUwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTg1OC44NzEyNTAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi4zNTc5ODc1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuMjg4NzY3NDk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjgxLjgyOTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3MS4zNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4yMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU2NDk3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMjAxODA5OTk5OTk5OTk5OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzUuOTMyNDQ3NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjY5NzM4MTI1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMyLjMzMTI1MDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi4zMzEyNTAwMDAwMDAwMDQsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0LjYxOSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC43NDUwMDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNTY0NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuNjQ1MDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTcuNzkyNTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5MC45MzczODQ2MTUzODQ2MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjguNzUyNTk5OTk5OTk5OTcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuMTE2NTA0MTY2NjY2NjY1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4zODQwMDAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjU3LjQ1MTcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNDMuMzY2NjY2NjY2NjY2NjcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcyLjE1MTc5MTY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5LjczMzM3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Ny4xNjI1NjI1MDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUzLjExMDYwNzE0Mjg1NzE0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNS4zMjIxNTI3Nzc3Nzc3OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjguNTkxNzgzMzMzMzMzMzIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTgzLjExODQyODU3MTQyODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTkuMDM4ODg4ODg4ODg4ODg4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjY2NDY2NjY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzAuNjk0NzA1ODgyMzUyOTMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTc5LjY2MjIzNzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzQuODY5MDYyNDk5OTk5OTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4LjA4MjgxMjUwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3Ni45ODMzMzMzMzMzMzMzMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTg2MjUwMDAwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuODIyNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS41NTYyNTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEyNC4xMDkzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTkwLjkzNzM4NDYxNTM4NDYyLAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMzMuNzUwNTE5OTk5OTk5OTk1LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDE2OC43NTI1OTk5OTk5OTk5NywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjYzMzI1MDAwMDAwMDAwMDEsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBTVMiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDUxLjc1OTMyLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAyNS45OTc0NzAwMDAwMDAwMDMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNjAuMzQ5NTEyNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIwLjExNjUwNDE2NjY2NjY2NSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogNTkuNzUzNTEyNSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuNTk2MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAyLjM4NDAwMDAwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDUyLjMzMTI3NTAwMDAwMDAwNSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA1Mi4wNzUyNzUwMDAwMDAwMDUsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMTI4LjcyNTg1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjU3LjQ1MTcsCiAgICAgICAgInVuaXQiIDogImciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAidGFnIiA6ICJDSE9MRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNzMwLjEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNDMuMzY2NjY2NjY2NjY2NjcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNDEzMS42NDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNzIuMTUxNzkxNjY2NjY2NjcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAidGFnIiA6ICJDQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA5Ny4zMzM3NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkuNzMzMzc1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxODguNjUwMjUwMDAwMDAwMDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0Ny4xNjI1NjI1MDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxODU4Ljg3MTI1MDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1My4xMTA2MDcxNDI4NTcxNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDYuMzU3OTg3NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM1LjMyMjE1Mjc3Nzc3Nzc4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTAuMjg4NzY3NDk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjguNTkxNzgzMzMzMzMzMzIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEyODEuODI5MDAwMDAwMDAwMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE4My4xMTg0Mjg1NzE0Mjg2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNzEuMzUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOS4wMzg4ODg4ODg4ODg4ODgsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMjEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjM1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNTY0OTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzNy42NjQ2NjY2NjY2NjY2NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjIwMTgwOTk5OTk5OTk5OTgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3MC42OTQ3MDU4ODIzNTI5MywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzUuOTMyNDQ3NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE3OS42NjIyMzc1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuNjk3MzgxMjUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMzQuODY5MDYyNDk5OTk5OTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzIuMzMxMjUwMDAwMDAwMDA0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC4wODI4MTI1MDAwMDAwMDEsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzIuMzMxMjUwMDAwMDAwMDA0LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAidGFnIiA6ICJGT0xBQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNC42MTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3Ni45ODMzMzMzMzMzMzMzMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC43NDUwMDAwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC4xODYyNTAwMDAwMDAwMDAwMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjU2NDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3LjgyMjUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE1LjY0NTAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE5LjU1NjI1MDAwMDAwMDAwMiwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfODg4ZTlmYzRhODA4ZTllNGNjZGIyYWMyNGE2YTJmNDYiLAogICAgICAibGFiZWwiIDogIkNoaWNrZW4gVGVyaXlha2kiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy81NTEvNTUxYjkwNmJhZmQ0YzQ1ZDUwMDMzNzQyZWFmMDBjMDIuanBnIiwKICAgICAgInNvdXJjZSIgOiAiU2F2ZXVyIiwKICAgICAgInVybCIgOiAiaHR0cDovL3d3dy5zYXZldXIuY29tL2FydGljbGUvUmVjaXBlcy9DaGlja2VuLVRlcml5YWtpIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvY2hpY2tlbi10ZXJpeWFraS04ODhlOWZjNGE4MDhlOWU0Y2NkYjJhYzI0YTZhMmY0Ni9jaGlja2VuIiwKICAgICAgInlpZWxkIiA6IDIuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUNhcmIiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIsICJBbGNvaG9sLUZyZWUiIF0sCiAgICAgICJjYXV0aW9ucyIgOiBbIF0sCiAgICAgICJpbmdyZWRpZW50TGluZXMiIDogWyAiMSB0YnNwLiB2ZWdldGFibGUgb2lsIiwgIjQgcGllY2VzIGNoaWNrZW4sIHRyaW1tZWQsIHNraW4gcGllcmNlZCB3aXRoIGEgZm9yayIsICLCvSBjdXAgVGVyaXlha2kgU2F1Y2UiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMSB0YnNwLiB2ZWdldGFibGUgb2lsIiwKICAgICAgICAid2VpZ2h0IiA6IDE0LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI0IHBpZWNlcyBjaGlja2VuLCB0cmltbWVkLCBza2luIHBpZXJjZWQgd2l0aCBhIGZvcmsiLAogICAgICAgICJ3ZWlnaHQiIDogMzU3LjYKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICLCvSBjdXAgVGVyaXlha2kgU2F1Y2UiLAogICAgICAgICJ3ZWlnaHQiIDogMTQ0LjAKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogMTAyMC43NiwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDUxNS42LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAyMC43NjAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2Ny44ODMzNjAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi4zMjQxLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC40NTQyNTIwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzIuMzkyOTgwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy45NDQyMDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuNDA2NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTQ0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwLjMwNCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDc1LjA1MjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNjguMjAwMDAwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDU3NjkuODM5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzUuMzM2MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1OS4zNiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5OTkuODY0MDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuNjY2NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuODI4NTYwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3NDcuNDMyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDYuNjE2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjcyMTYwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjI1Nzc2MDAwMDAwMDAwMDA0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNTI5OTIwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjYuMTQ5MTc2MDAwMDAwMDA0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMzk1NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi45NzYsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIkZPTEZEIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzIuOTc2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4xMDg1NjAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjcxNTIwMDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4xMjQ4MDAwMDAwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjM2NDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUxLjAzODAwMDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA0LjQzNTkzODQ2MTUzODQ4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDgxLjYyMDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNy40Njg4MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU3NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1MC4xMDU2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODkuNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNDAuNDA5OTk5OTk5OTk5OTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNTMzNjAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDM5Ljg0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjguNTY3NTQyODU3MTQyODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxLjQ4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi4xOTA0MDAwMDAwMDAwMDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA2Ljc3NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi4yOTA2NjY2NjY2NjY2NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuNTM2MDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcuMTg0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzEuMTcxNzY0NzA1ODgyMzU3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzMC43NDU4OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDY5Ljc4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC4yNDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTguNDc2MDAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xNzg4MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuNjI0MDAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYuNzA1MDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA2Ny44ODMzNjAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEwNC40MzU5Mzg0NjE1Mzg0OCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDE2LjMyNDEsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogODEuNjIwNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjQ1NDI1MjAwMDAwMDAwMDEsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBTVMiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDMyLjM5Mjk4MDAwMDAwMDAxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAxMy45NDQyMDAwMDAwMDAwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMjIuNDA2NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcuNDY4ODAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAyMi4yNjI0MDAwMDAwMDAwMDMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjE0NCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAwLjU3NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInN1Z2FyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMjAuMzA0LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA3NS4wNTI4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTUwLjEwNTYsCiAgICAgICAgInVuaXQiIDogImciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAidGFnIiA6ICJDSE9MRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMjY4LjIwMDAwMDAwMDAwMDA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogODkuNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA1NzY5LjgzOTk5OTk5OTk5OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDI0MC40MDk5OTk5OTk5OTk5NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDc1LjMzNjAwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy41MzM2MDAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE1OS4zNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM5Ljg0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDk5OS44NjQwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjguNTY3NTQyODU3MTQyODYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1LjY2NjQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzMS40OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuODI4NTYwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzIuMTkwNDAwMDAwMDAwMDA0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3NDcuNDMyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTA2Ljc3NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTQ2LjYxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE2LjI5MDY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1LjcyMTYwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkuNTM2MDAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMjU3NzYwMDAwMDAwMDAwMDQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNy4xODQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC41Mjk5MjAwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzEuMTcxNzY0NzA1ODgyMzU3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyNi4xNDkxNzYwMDAwMDAwMDQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMzAuNzQ1ODgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS4zOTU2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjkuNzgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzIuOTc2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC4yNDQsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzIuOTc2LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAidGFnIiA6ICJGT0xBQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS4xMDg1NjAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTguNDc2MDAwMDAwMDAwMDAzLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjcxNTIwMDAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjE3ODgwMDAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuMTI0ODAwMDAwMDAwMDAwNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIwLjYyNDAwMDAwMDAwMDAwMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgInRhZyIgOiAiVklUSzEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNS4zNjQwMDAwMDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2LjcwNTAwMDAwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfMTRlYmQ3ZDZkNjVmNzYxODQzZGJhMzUyMDJkZTRiMzciLAogICAgICAibGFiZWwiIDogIkNoaWNrZW4gU2F0YXkiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy9iYTYvYmE2ZjY2ZDg4NWU0ZDYyYTk4MDU1YjA4OGE1YTg1YTMuanBnIiwKICAgICAgInNvdXJjZSIgOiAiQkJDIEdvb2QgRm9vZCIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuYmJjZ29vZGZvb2QuY29tL3JlY2lwZXMvMzY0NS8iLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9jaGlja2VuLXNhdGF5LTE0ZWJkN2Q2ZDY1Zjc2MTg0M2RiYTM1MjAyZGU0YjM3L2NoaWNrZW4iLAogICAgICAieWllbGQiIDogNC4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJIaWdoLVByb3RlaW4iLCAiTG93LUNhcmIiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjEwMC4wbWwgc295IHNhdWNlIChLaWtrb21hbiBpcyBnb29kKSIsICI0LjAgdGJzcCBzbW9vdGggcGVhbnV0IGJ1dHRlciIsICI0IHNraW5sZXNzIGNoaWNrZW4gYnJlYXN0cyBmaWxsZXRzIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjEwMC4wbWwgc295IHNhdWNlIChLaWtrb21hbiBpcyBnb29kKSIsCiAgICAgICAgIndlaWdodCIgOiAxMDcuNzgyMTk3MzYyMTI0NTUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI0LjAgdGJzcCBzbW9vdGggcGVhbnV0IGJ1dHRlciIsCiAgICAgICAgIndlaWdodCIgOiA2NC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNCBza2lubGVzcyBjaGlja2VuIGJyZWFzdHMgZmlsbGV0cyIsCiAgICAgICAgIndlaWdodCIgOiAxMDg4LjAKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogMTc0NS40NDQ1NjQ2MDE5MjYyLAogICAgICAidG90YWxXZWlnaHQiIDogMTI1OS43ODIxOTczNjIxMjQ2LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTc0NS40NDQ1NjQ2MDE5MjYyLAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MS45OTAzNTg1MjQ5NjQxMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi44MTIxMjEwMDQwNzQzNTEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVRSTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjEyNDE2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQuMTkzNDA4MzMzNjc4NjcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi45MTg5ODcxNzkwNjIzOSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS41OTIwNjIzMjk5NTI3NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMDYyMjU3NTc4ODk2OTk3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuMTQ0NzI4Nzg5NDQ4NDk4LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjY3Ljc4Nzg3MDg2NTI3Njk0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzk0LjI0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NDIwLjk1NjEwMTEwMTUwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyMS4zMjgxMjUxMjk1MDExLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0OTEuOTE4ODI2MDQ3OTcyMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NDU5Ljg5MjU1ODUyNTI0MiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDYuNzAyMDQxODYxNzUwODA1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS45NDI1MDUxMTcwNTA0ODUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI3MTAuNzU4NDQ3NjIxMTI3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3Ni4xNjAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4xNTQyODgxMjUxMjk1MDEyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMjI2NDgwNjI1NjQ3NTA2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMTUuMjA2NTc3MDU0MDcyMjcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS4yNjU0Mzc2NTIwOTU5NDYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTY4LjY4OTUwNzYzMDY5NzQ1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2OC42ODk1MDc2MzA2OTc0NSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMjg0OCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuODgsCiAgICAgICAgICAidW5pdCIgOiAiSVUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS45MTY4MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMzY4MDAwMDAwMDAwMDAwMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg3LjI3MjIyODIzMDA5NjMyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5NS4zNjk3ODIzNDYwOTg2NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NC4wNjA2MDUwMjAzNzE3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2LjUzMDY4NzQ0MzMxNzU3OSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjI0OTAzMDMxNTU4Nzk4NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUzNS41NzU3NDE3MzA1NTM5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjY0Ljc0NjY2NjY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2Ny41Mzk4Mzc1NDU4OTU5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi4xMzI4MTI1MTI5NTAxMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjIuOTc5NzA2NTExOTkzMDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjcuNDI1NTAxNjcyMTQ5NzYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjIzMzU2NTg5ODYxNTU4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2Ni4yODMzNjc0NDcwMDMyNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzODcuMjUxMjA2ODAzMDE4MTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC40NjIyMjIyMjIyMjIyMjMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3Ni45NTI1NDE2NzUzMDAwOCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzMC45Njk0NDg1Njc1MDAzNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NzYuMDMyODg1MjcwMzYxNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ2My4yNzE4ODI2MDQ3OTcyNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQyLjE3MjM3NjkwNzY3NDM2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM4LjA4MDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuNzIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU5LjU4NDAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuOTYwMDAwMDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNjEuOTkwMzU4NTI0OTY0MTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5NS4zNjk3ODIzNDYwOTg2NSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDEyLjgxMjEyMTAwNDA3NDM1MSwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiA2NC4wNjA2MDUwMjAzNzE3NSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjEyNDE2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAyNC4xOTM0MDgzMzM2Nzg2NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTIuOTE4OTg3MTc5MDYyMzksCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMTkuNTkyMDYyMzI5OTUyNzQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2LjUzMDY4NzQ0MzMxNzU3OSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTUuNTI5ODA0NzUxMDU1NzQyLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNC4wNjIyNTc1Nzg4OTY5OTcsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMTYuMjQ5MDMwMzE1NTg3OTg3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA3LjE0NDcyODc4OTQ0ODQ5OCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjY3Ljc4Nzg3MDg2NTI3Njk0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTM1LjU3NTc0MTczMDU1MzksCiAgICAgICAgInVuaXQiIDogImciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAidGFnIiA6ICJDSE9MRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNzk0LjI0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjY0Ljc0NjY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDY0MjAuOTU2MTAxMTAxNTAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjY3LjUzOTgzNzU0NTg5NTksCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAidGFnIiA6ICJDQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjEuMzI4MTI1MTI5NTAxMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjEzMjgxMjUxMjk1MDExLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0OTEuOTE4ODI2MDQ3OTcyMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyMi45Nzk3MDY1MTE5OTMwNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0NDU5Ljg5MjU1ODUyNTI0MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyNy40MjU1MDE2NzIxNDk3NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDYuNzAyMDQxODYxNzUwODA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzcuMjMzNTY1ODk4NjE1NTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA5Ljk0MjUwNTExNzA1MDQ4NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDY2LjI4MzM2NzQ0NzAwMzI0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyNzEwLjc1ODQ0NzYyMTEyNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM4Ny4yNTEyMDY4MDMwMTgxNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNzYuMTYwMDAwMDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4LjQ2MjIyMjIyMjIyMjIyMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICJ0YWciIDogIlZJVEMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgInRhZyIgOiAiVEhJQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjE1NDI4ODEyNTEyOTUwMTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3Ni45NTI1NDE2NzUzMDAwOCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjIyNjQ4MDYyNTY0NzUwNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzMC45Njk0NDg1Njc1MDAzNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTE1LjIwNjU3NzA1NDA3MjI3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTc2LjAzMjg4NTI3MDM2MTQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogOS4yNjU0Mzc2NTIwOTU5NDYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0NjMuMjcxODgyNjA0Nzk3MjcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTY4LjY4OTUwNzYzMDY5NzQ1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDIuMTcyMzc2OTA3Njc0MzYsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTY4LjY4OTUwNzYzMDY5NzQ1LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAidGFnIiA6ICJGT0xBQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4yODQ4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzguMDgwMDAwMDAwMDAwMDA1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMC44OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIuNzIsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTEuOTE2ODAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTkuNTg0MDAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuMzY4MDAwMDAwMDAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIuOTYwMDAwMDAwMDAwMDAwNCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfZTI5ZmVlYjI1MGMzY2MwZjZlYjQ4N2I3Y2FlNWQ4YjEiLAogICAgICAibGFiZWwiIDogIkNoaWNrZW4gUGljY2F0YSIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzkzZS85M2U1ZTIyYzg3OTJiZmJjOWZhMzY1NDIwNzM0N2M5Yy5qcGciLAogICAgICAic291cmNlIiA6ICJMZWl0ZSdzIEN1bGluYXJpYSIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly9sZWl0ZXNjdWxpbmFyaWEuY29tLzUzNTQvcmVjaXBlcy1jaGlja2VuLXBpY2NhdGEuaHRtbCIsCiAgICAgICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL2NoaWNrZW4tcGljY2F0YS1lMjlmZWViMjUwYzNjYzBmNmViNDg3YjdjYWU1ZDhiMS9jaGlja2VuIiwKICAgICAgInlpZWxkIiA6IDQuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUNhcmIiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjQgYm9uZWxlc3MsIHNraW5sZXNzIGNoaWNrZW4gYnJlYXN0IGhhbHZlcywgcGF0dGVkIGRyeSAoMiAxLzIgdG8gMyBwb3VuZHMgdG90YWwpIiwgIktvc2hlciBzYWx0IGFuZCBmcmVzaGx5IGdyb3VuZCBibGFjayBwZXBwZXIiLCAiMS8yIGN1cCBhbGwtcHVycG9zZSBmbG91ciIsICIyIHRhYmxlc3Bvb25zIG9saXZlIG9pbCIsICI0IHRhYmxlc3Bvb25zIHVuc2FsdGVkIGJ1dHRlciIsICIyIHRhYmxlc3Bvb25zIGZyZXNoIGxlbW9uIGp1aWNlIiwgIjEgdGFibGVzcG9vbiBjYXBlcnMsIGRyYWluZWQiLCAiMiB0YWJsZXNwb29ucyBjaG9wcGVkIGZyZXNoIGZsYXQtbGVhZiBwYXJzbGV5IiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjQgYm9uZWxlc3MsIHNraW5sZXNzIGNoaWNrZW4gYnJlYXN0IGhhbHZlcywgcGF0dGVkIGRyeSAoMiAxLzIgdG8gMyBwb3VuZHMgdG90YWwpIiwKICAgICAgICAid2VpZ2h0IiA6IDM0OC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiS29zaGVyIHNhbHQgYW5kIGZyZXNobHkgZ3JvdW5kIGJsYWNrIHBlcHBlciIsCiAgICAgICAgIndlaWdodCIgOiAzLjIzMQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIktvc2hlciBzYWx0IGFuZCBmcmVzaGx5IGdyb3VuZCBibGFjayBwZXBwZXIiLAogICAgICAgICJ3ZWlnaHQiIDogMS42MTU1CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMS8yIGN1cCBhbGwtcHVycG9zZSBmbG91ciIsCiAgICAgICAgIndlaWdodCIgOiA2Mi41CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBvbGl2ZSBvaWwiLAogICAgICAgICJ3ZWlnaHQiIDogMjcuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjQgdGFibGVzcG9vbnMgdW5zYWx0ZWQgYnV0dGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDU2LjgKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyIHRhYmxlc3Bvb25zIGZyZXNoIGxlbW9uIGp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDI4LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHRhYmxlc3Bvb24gY2FwZXJzLCBkcmFpbmVkIiwKICAgICAgICAid2VpZ2h0IiA6IDguNgogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjIgdGFibGVzcG9vbnMgY2hvcHBlZCBmcmVzaCBmbGF0LWxlYWYgcGFyc2xleSIsCiAgICAgICAgIndlaWdodCIgOiA3LjYKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogMTMwNS45NjQ5MDUwMDAwMDAzLAogICAgICAidG90YWxXZWlnaHQiIDogNTQyLjM5Nzg3NDQ1OTMxMTcsCiAgICAgICJ0b3RhbFRpbWUiIDogMC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzA1Ljk2NDkwNTAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDgzLjA1NDQ0NTMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzUuMDI1MDU2NzYwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS44ODYyNjM5OTk5OTk5OTk3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzQuMTMyOTQ5NTQ0OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFQVSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi4zNjA4NDk2OSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1MS41OTQ1NjIyNTAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuNzA2MjIxNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjAxODYyOTIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4NS45MzM1ODA0NSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3Ni4xNTk5OTk5OTk5OTk5NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI1Ni4wMjc3OTI5NDAwMDA2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjMuOTg5NDM0ODcwMjM0NzksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyMy40MjkzMjg3NDQ1OTMxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzMzkuMTMzNTg0OTU2NzQ1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS4xNTE3NzY4ODU3MTU3MjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjk5OTM2NjgyNDQ1OTMxMTIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDgzMi40MzI0OSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDQ1LjkwNjE4NDk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxLjMxMzgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC44MzcxMzM3NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjk3MDUzMTg5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjMyMTY2MTE2NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjg3Nzg4MzEwNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMzQuMzAzNjM1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcwLjU1MzYzNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MQUMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5Ni4yNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuODI3MzYsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuODUxOTk5OTk5OTk5OTk5OSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjQ3NjI5MTIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1MC41MTM2NzM1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjUuMjk4MjQ1MjUwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyNy43NzYwNjk2OTIzMDc3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3NS4xMjUyODM4MDAwMDAwMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNy4xOTgxODc0MTY2NjY2NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwLjgyNDg4NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3MS44NjcxNjA5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI1LjM4NjY2NjY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUyLjMzNDQ5MTM3MjUwMDAyNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi4zOTg5NDM0ODcwMjM0NzksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzAuODU3MzMyMTg2MTQ4Mjc3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzguMjYwOTU5NTcwMTkyNzIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI4LjYyMDk4MjY5ODQyMDcxNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTkuOTk1Nzc4ODI5NzI4NzQyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExOC45MTg5MjcxNDI4NTcxNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0OS41NDUxMzE2NjY2NjY2NTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNS41MjMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NS44MDg5MTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ny4wOTAxMTE3NjQ3MDU4NzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTg2LjYwODMwNTgyNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0My44OTQxNTUyNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU4LjU3NTkwODc1MDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzLjc4OTMzMzMzMzMzMzMzMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMjEyOTk5OTk5OTk5OTk5OTcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjM4MTQ1NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxODguMTQyMDkxODc1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA4My4wNTQ0NDUzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTI3Ljc3NjA2OTY5MjMwNzcsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAzNS4wMjUwNTY3NjAwMDAwMDUsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMTc1LjEyNTI4MzgwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDEuODg2MjYzOTk5OTk5OTk5NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMzQuMTMyOTQ5NTQ0OTk5OTk1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA2LjM2MDg0OTY5LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICJ0YWciIDogIkNIT0NERiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDUxLjU5NDU2MjI1MDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTcuMTk4MTg3NDE2NjY2NjcsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDQ4Ljg4ODM0MDc1MDAwMDAxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMi43MDYyMjE1LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDEwLjgyNDg4NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInN1Z2FyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMS4wMTg2MjkyLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA4NS45MzM1ODA0NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE3MS44NjcxNjA5LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDM3Ni4xNTk5OTk5OTk5OTk5NywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyNS4zODY2NjY2NjY2NjY2NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMjU2LjAyNzc5Mjk0MDAwMDYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1Mi4zMzQ0OTEzNzI1MDAwMjUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAidGFnIiA6ICJDQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA2My45ODk0MzQ4NzAyMzQ3OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDYuMzk4OTQzNDg3MDIzNDc5LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjMuNDI5MzI4NzQ0NTkzMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMwLjg1NzMzMjE4NjE0ODI3NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMzM5LjEzMzU4NDk1Njc0NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM4LjI2MDk1OTU3MDE5MjcyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgInRhZyIgOiAiRkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNS4xNTE3NzY4ODU3MTU3MjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyOC42MjA5ODI2OTg0MjA3MTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjk5OTM2NjgyNDQ1OTMxMTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOS45OTU3Nzg4Mjk3Mjg3NDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDgzMi40MzI0OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDExOC45MTg5MjcxNDI4NTcxNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDQ1LjkwNjE4NDk5OTk5OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0OS41NDUxMzE2NjY2NjY2NTYsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIxLjMxMzgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzNS41MjMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC44MzcxMzM3NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDU1LjgwODkxNiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjk3MDUzMTg5OTk5OTk5OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1Ny4wOTAxMTE3NjQ3MDU4NzQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDM3LjMyMTY2MTE2NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE4Ni42MDgzMDU4MjUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi44Nzc4ODMxMDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNDMuODk0MTU1MjUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjM0LjMwMzYzNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDU4LjU3NTkwODc1MDAwMDAxLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcwLjU1MzYzNSwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogOTYuMjUsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC44MjczNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzLjc4OTMzMzMzMzMzMzMzMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC44NTE5OTk5OTk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC4yMTI5OTk5OTk5OTk5OTk5NywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3LjQ3NjI5MTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzNy4zODE0NTYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE1MC41MTM2NzM1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTg4LjE0MjA5MTg3NSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfYmUzYmEwODdlMjEyZjEzNjcyYjU1M2VjZmE4NzYzMzMiLAogICAgICAibGFiZWwiIDogIkJha2VkIENoaWNrZW4iLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy8wMWMvMDFjYWNiNzA4OTAyNzRmYjdiN2NlYmI5NzVhOTMyMzEuanBnIiwKICAgICAgInNvdXJjZSIgOiAiTWFydGhhIFN0ZXdhcnQiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3Lm1hcnRoYXN0ZXdhcnQuY29tLzMxODk4MS9iYWtlZC1jaGlja2VuIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvYmFrZWQtY2hpY2tlbi1iZTNiYTA4N2UyMTJmMTM2NzJiNTUzZWNmYTg3NjMzMy9jaGlja2VuIiwKICAgICAgInlpZWxkIiA6IDQuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUNhcmIiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjYgYm9uZS1pbiBjaGlja2VuIGJyZWFzdCBoYWx2ZXMsIG9yIDYgY2hpY2tlbiB0aGlnaHMgYW5kIHdpbmdzLCBza2luLW9uIiwgIjEvMiB0ZWFzcG9vbiBjb2Fyc2Ugc2FsdCIsICIxLzIgdGVhc3Bvb24gTXJzLiBEYXNoIHNlYXNvbmluZyIsICIxLzQgdGVhc3Bvb24gZnJlc2hseSBncm91bmQgYmxhY2sgcGVwcGVyIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjYgYm9uZS1pbiBjaGlja2VuIGJyZWFzdCBoYWx2ZXMsIG9yIDYgY2hpY2tlbiB0aGlnaHMgYW5kIHdpbmdzLCBza2luLW9uIiwKICAgICAgICAid2VpZ2h0IiA6IDUyMi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMS8yIHRlYXNwb29uIGNvYXJzZSBzYWx0IiwKICAgICAgICAid2VpZ2h0IiA6IDIuNDI3MDgzMzMzMzMzMzMzNQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEvMiB0ZWFzcG9vbiBNcnMuIERhc2ggc2Vhc29uaW5nIiwKICAgICAgICAid2VpZ2h0IiA6IDAuNzUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxLzQgdGVhc3Bvb24gZnJlc2hseSBncm91bmQgYmxhY2sgcGVwcGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDAuNTc1CiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDkwMS41ODU3NSwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDUyNS42MTU2MzUwMTk4NjY5LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTAxLjU4NTc1LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0OC4zNjAyMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy45MTc4NzksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVRSTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU0ODA5OTk5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOS45NTM2OTQyNDk5OTk5OTgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC4yNTE0NTg0OTk5OTk5OTgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC44NTk2Mzc1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4yMzAyMjUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wMTcxOCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwOC45Njg2Njc1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzM0LjA4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjE2Ljk4MTgyMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDY3Ljk4NzAwMjQwNDc2ODA1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzMuMTg2MTU2MzUwMTk4NjcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTE2MS4zNTUwMDA4MDE1ODkzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4xOTA5NDE1OTU1NjU1NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMjA4NjgzMTM1MDE5ODY4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5MTAuNDcxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjYuNDI1MjQ5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMDksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zMzE0NjA5OTk5OTk5OTk5NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjQ0NjE2NzUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUxLjc0ODYwNzI0OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuNzc4MTczMjUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuMDEyNzUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIkZPTEZEIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuMDEyNzUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEIxMiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjc3NDgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMDg4LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNDI1MjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYuOTgxNzc1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDUuMDc5Mjg3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzQuNDAwMzM4NDYxNTM4NDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjkuNTg5Mzk1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMjg2NTQ1ODMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjkyMDksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMTcuOTM3MzM1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTExLjM2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUwLjcwNzU3NTg3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi43OTg3MDAyNDA0NzY4MDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzMuMjk2NTM5MDg3NTQ5NjcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMy4xODE1NzE0NTE0NzM5OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjMuMjgzMDA4ODY0MjUzMTEyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyOC4wNTc4ODc1NjY3OTkxMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzAuMDY3Mjg1NzE0Mjg1NzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQuMDQ3MjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuMDk3Mzk5OTk5OTk5OTk3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjYuMjQ1MTQ3MDU4ODIzNTI3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI1OC43NDMwMzYyNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzOC45MDg2NjI1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS41MDMxODc1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI5LjU4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC41MjIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuMTI2NDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDguNzI3MjE4NzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDQ4LjM2MDIyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNzQuNDAwMzM4NDYxNTM4NDcsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxMy45MTc4NzksCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNjkuNTg5Mzk1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuNTQ4MDk5OTk5OTk5OTk5OSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTkuOTUzNjk0MjQ5OTk5OTk4LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAxMC4yNTE0NTg0OTk5OTk5OTgsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMC44NTk2Mzc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC4yODY1NDU4MzMzMzMzMzMzMywKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC42Mjk0MTI1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4yMzAyMjUsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMC45MjA5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAxNzE4LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMDguOTY4NjY3NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIxNy45MzczMzUsCiAgICAgICAgInVuaXQiIDogImciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAidGFnIiA6ICJDSE9MRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMzM0LjA4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTExLjM2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEyMTYuOTgxODIxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTAuNzA3NTc1ODc1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNjcuOTg3MDAyNDA0NzY4MDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2Ljc5ODcwMDI0MDQ3NjgwNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTMzLjE4NjE1NjM1MDE5ODY3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzMuMjk2NTM5MDg3NTQ5NjcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTE2MS4zNTUwMDA4MDE1ODkzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzMuMTgxNTcxNDUxNDczOTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0LjE5MDk0MTU5NTU2NTU2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjMuMjgzMDA4ODY0MjUzMTEyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNC4yMDg2ODMxMzUwMTk4NjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyOC4wNTc4ODc1NjY3OTkxMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICJ0YWciIDogIlAiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogOTEwLjQ3MSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzMC4wNjcyODU3MTQyODU3MywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTI2LjQyNTI0OTk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTQuMDQ3MjUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMDksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzMxNDYwOTk5OTk5OTk5OTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMi4wOTczOTk5OTk5OTk5OTcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC40NDYxNjc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjYuMjQ1MTQ3MDU4ODIzNTI3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1MS43NDg2MDcyNDk5OTk5OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDI1OC43NDMwMzYyNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjc3ODE3MzI1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTM4LjkwODY2MjUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjIuMDEyNzUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjUwMzE4NzUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjIuMDEyNzUsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjc3NDgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyOS41OCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi4wODgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjUyMiwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjQyNTI4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy4xMjY0MDAwMDAwMDAwMDEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDYuOTgxNzc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC43MjcyMTg3NSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfMjQ2M2YyNDgyNjA5ZDdhNDcxZGJiZjNiMjY4YmQ5NTYiLAogICAgICAibGFiZWwiIDogIkNhdGFsYW4gQ2hpY2tlbiIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzRkOS80ZDkwODRjYmMxNzA3ODljYWE5ZTk5NzEwOGI1OTVkZS5qcGciLAogICAgICAic291cmNlIiA6ICJCb24gQXBwZXRpdCIsCiAgICAgICJ1cmwiIDogImh0dHA6Ly93d3cuYm9uYXBwZXRpdC5jb20vY29sdW1ucy9icmVhZHdpbm5lci9hcnRpY2xlL2hvdy10by1nZXQteW91ci1raWRzLXRvLWVhdC1zYXVjZS1sZXQtdGhlbS1jb29rLWl0LXRoZW1zZWx2ZXMiLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9jYXRhbGFuLWNoaWNrZW4tMjQ2M2YyNDgyNjA5ZDdhNDcxZGJiZjNiMjY4YmQ5NTYvY2hpY2tlbiIsCiAgICAgICJ5aWVsZCIgOiAxMi4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJMb3ctQ2FyYiIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJTdWdhci1Db25zY2lvdXMiLCAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxIHdob2xlIDQtcG91bmQgY2hpY2tlbiwgcXVhcnRlcmVkIiwgIjggc2xpY2VzIGJhY29uIiwgIjMwIGNsb3ZlcyBnYXJsaWMiLCAiMyBsZW1vbnMsIHBlZWxlZCwgcmluZHMgdGhpbmx5IHNsaWNlZCBhbmQgcmVzZXJ2ZWQiLCAiwr0gY3VwIEJhbnl1bHMgb3IgYW5vdGhlciBmb3J0aWZpZWQgZGVzc2VydCB3aW5lIiwgIjEgY3VwIHZlYWwgb3IgY2hpY2tlbiBzdG9jayIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxIHdob2xlIDQtcG91bmQgY2hpY2tlbiwgcXVhcnRlcmVkIiwKICAgICAgICAid2VpZ2h0IiA6IDkyMC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiOCBzbGljZXMgYmFjb24iLAogICAgICAgICJ3ZWlnaHQiIDogMjI0LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzMCBjbG92ZXMgZ2FybGljIiwKICAgICAgICAid2VpZ2h0IiA6IDkwLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzIGxlbW9ucywgcGVlbGVkLCByaW5kcyB0aGlubHkgc2xpY2VkIGFuZCByZXNlcnZlZCIsCiAgICAgICAgIndlaWdodCIgOiAxNzQuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIsK9IGN1cCBCYW55dWxzIG9yIGFub3RoZXIgZm9ydGlmaWVkIGRlc3NlcnQgd2luZSIsCiAgICAgICAgIndlaWdodCIgOiA1MS41CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAgdmVhbCBvciBjaGlja2VuIHN0b2NrIiwKICAgICAgICAid2VpZ2h0IiA6IDI0MC4wCiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDMyNjUuNDQsCiAgICAgICJ0b3RhbFdlaWdodCIgOiAxNjk5LjUsCiAgICAgICJ0b3RhbFRpbWUiIDogMC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMjY1LjQ0MDAwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIzMS4zMDk2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcwLjM1MzQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVRSTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjE5MDMyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTcuODk3MiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBUFUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ1LjA2MzEyMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NC4zNjAzNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYuNzYyMDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNS4yODg3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEzLjE3NzgwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODQ1LjA0MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI0OTMuNDk1MDAwMDAwMDAwMywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMzMS44NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjYxLjUzNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMDgyLjcyMDAwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi40LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTYuMjE1NjUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5MDkuOTM1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MDUuOTgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzNS40OTk5OTk5OTk5OTk5NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjUxMzExMDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS42MzI1MSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzYuMjkzNzc1MDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS4yMTI5NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4OS4wNCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4OS4wNCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuOTcyMDAwMDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi43MzYwMDAwMDAwMDAwMDA3LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMTI4MjAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuODEsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjMuMjcyMDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM1NS44NjA5MjMwNzY5MjMxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM1MS43NjY5OTk5OTk5OTk5NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS40NTM0NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI3LjA0ODAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQyNi4zNTU2MDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0xFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI4MS42ODAwMDAwMDAwMDAwNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDMuODk1NjI1MDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMzLjE4NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2NS4zODM3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDg4LjA3NzcxNDI4NTcxNDI4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2OC44ODg4ODg4ODg4ODg4OSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA4LjEwNDMzMzMzMzMzMzM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI3Mi44NDc4NTcxNDI4NTcxNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NS4xMDg4ODg4ODg4ODg4OSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIyNS44MzMzMzMzMzMzMzMzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAwLjg3NDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTYuMDI5OTk5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzgxLjQ2ODg3NTAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNjAuNjQ3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuMjYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjYuMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNjg0MDAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuNjQxMDAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5Ljc2MjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDIzMS4zMDk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzU1Ljg2MDkyMzA3NjkyMzEsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA3MC4zNTM0LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDM1MS43NjY5OTk5OTk5OTk5NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAidHJhbnNGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjE5MDMyLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA5Ny44OTcyLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA0NS4wNjMxMjAwMDAwMDAwMDUsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNjQuMzYwMzUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMS40NTM0NSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogNTcuNTk4MzQ5OTk5OTk5OTk2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNi43NjIwMDAwMDAwMDAwMDA1LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDI3LjA0ODAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInN1Z2FyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMTUuMjg4NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjEzLjE3NzgwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDI2LjM1NTYwMDAwMDAwMDA0LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDg0NS4wNDAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjgxLjY4MDAwMDAwMDAwMDA2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDI0OTMuNDk1MDAwMDAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEwMy44OTU2MjUwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMzMS44NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMzLjE4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjYxLjUzNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDY1LjM4Mzc1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMwODIuNzIwMDAwMDAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDg4LjA3NzcxNDI4NTcxNDI4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgInRhZyIgOiAiRkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTIuNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDY4Ljg4ODg4ODg4ODg4ODg5LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTYuMjE1NjUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMDguMTA0MzMzMzMzMzMzMzQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE5MDkuOTM1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjcyLjg0Nzg1NzE0Mjg1NzE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0MDUuOTgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0NS4xMDg4ODg4ODg4ODg4OSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICJ0YWciIDogIlZJVEMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTM1LjQ5OTk5OTk5OTk5OTk3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjI1LjgzMzMzMzMzMzMzMzMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS41MTMxMTAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAwLjg3NDAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAidGFnIiA6ICJSSUJGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuNjMyNTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5Ni4wMjk5OTk5OTk5OTk5OSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNzYuMjkzNzc1MDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzODEuNDY4ODc1MDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1LjIxMjk0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjYwLjY0NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4OS4wNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIyLjI2LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDg5LjA0LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAidGFnIiA6ICJGT0xBQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMy45NzIwMDAwMDAwMDAwMDA0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjYuMiwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICJ0YWciIDogIlZJVEQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi43MzYwMDAwMDAwMDAwMDA3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC42ODQwMDAwMDAwMDAwMDAyLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuMTI4MjAwMDAwMDAwMDAwNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIwLjY0MTAwMDAwMDAwMDAwMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgInRhZyIgOiAiVklUSzEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTUuODEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOS43NjI1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV82YjcxNTA2ZWFlZDQxMDJjMGI5N2RjZTFlYWRkZDlhNiIsCiAgICAgICJsYWJlbCIgOiAiUm9hc3QgQ2hpY2tlbiIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzUyYy81MmNkZDg3YjY3YjE2MWNjZThlOGEzZjE1MjM3MzY4Zi5qcGciLAogICAgICAic291cmNlIiA6ICJQaW9uZWVyIFdvbWFuIiwKICAgICAgInVybCIgOiAiaHR0cDovL3RoZXBpb25lZXJ3b21hbi5jb20vY29va2luZy8yMDEyLzA4L3JvYXN0LWNoaWNrZW4vIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvcm9hc3QtY2hpY2tlbi02YjcxNTA2ZWFlZDQxMDJjMGI5N2RjZTFlYWRkZDlhNi9jaGlja2VuIiwKICAgICAgInlpZWxkIiA6IDQuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUNhcmIiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiU3VnYXItQ29uc2Npb3VzIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjEgd2hvbGUgQ2hpY2tlbiwgUmluc2VkIEFuZCBQYXR0ZWQgRHJ5IiwgIjMvNCBjdXBzIEJ1dHRlciwgU29mdGVuZWQiLCAiMyB3aG9sZSBMZW1vbnMiLCAiNCBzcHJpZ3MgUm9zZW1hcnkiLCAiU2FsdCBBbmQgUGVwcGVyLCB0byB0YXN0ZSIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxIHdob2xlIENoaWNrZW4sIFJpbnNlZCBBbmQgUGF0dGVkIERyeSIsCiAgICAgICAgIndlaWdodCIgOiA5MjAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjMvNCBjdXBzIEJ1dHRlciwgU29mdGVuZWQiLAogICAgICAgICJ3ZWlnaHQiIDogMTcwLjI1CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMyB3aG9sZSBMZW1vbnMiLAogICAgICAgICJ3ZWlnaHQiIDogMTc0LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI0IHNwcmlncyBSb3NlbWFyeSIsCiAgICAgICAgIndlaWdodCIgOiAyMC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiU2FsdCBBbmQgUGVwcGVyLCB0byB0YXN0ZSIsCiAgICAgICAgIndlaWdodCIgOiA3LjcwNTUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICJTYWx0IEFuZCBQZXBwZXIsIHRvIHRhc3RlIiwKICAgICAgICAid2VpZ2h0IiA6IDMuODUyNzUKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogMzI4NS4wMjI5MDI0OTk5OTk0LAogICAgICAidG90YWxXZWlnaHQiIDogMTI5NC4wOTcwNzE1MTU3Mzg3LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzI4NS4wMjI5MDI1LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNzguNDYxMzc0NjUwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjcuNzk1MTEwMjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVRSTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2LjQ3MzE5NTAwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5My40NzU4NjQzMjI1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFQVSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzUuMjcwMjE3OTQ1MDAwMDA2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIyLjkyMjc4MzYyNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDguNjY2NzQ1NzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC40NzY4MDc2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTc1LjU0MzQyNTcyNTAwMDAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA1Ni4wMzc1MDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyOTk1LjQ1NzE4MzA3MDAwMDYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNjkuMjA2MzE5NjYzNzc3MywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjI2LjE3MzE0NTcxNTE1NzM3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIyMDUuMDYyNTkzMjIxMjU5MiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDExLjA4MTkzMzI4NjAwMTk0MSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjU0NzQ2NzA0NjUxNTc0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDQwLjM4NzM0NDk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1NzMuNjkwMjQyNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTExLjMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42NDE0NzM0NzAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMjM0MDE5OTUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYzLjA0MTE0MTkzMjUwMDAxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuNDQyNzE5MDAyNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDEuOTAyNDY3NSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDEuOTAyNDY3NSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjEyIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuMTQxNDI1MDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklURCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4zOTM3NTAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNy4wMTA4Njg2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi4wMjQ0NTE3NSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2NC4yNTExNDUxMjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQyOC40MDIxMTQ4NDYxNTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjM4Ljk3NTU1MTQwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNy42NDA5Mjc4NzUwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNC42NjY5ODMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNTEuMDg2ODUxNDUwMDAwMDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNTIuMDEyNTAwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI0LjgxMDcxNTk2MTI1MDAzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNi45MjA2MzE5NjYzNzc3MzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTYuNTQzMjg2NDI4Nzg5MzQ0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjMuMDAxNzg4Mzc3NzUwMjY2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MS41NjYyOTYwMzMzNDQxMTYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDgzLjY0OTc4MDMxMDEwNDkzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwNS43Njk2MjA3MTQyODU3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3NC44NTQ0NzEzODg4ODg5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTg1LjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Mi43NjQ4OTgwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcyLjU4OTQwODgyMzUyOTQxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxNS4yMDU3MDk2NjI1MDAwNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3Mi4xMzU5NTAxMjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNS40NzU2MTY4NzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTIuMzU3MDgzMzMzMzMzMzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjA5ODQzNzUwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM1LjA1NDM0MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MC4wMzA1NjQ2ODc1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyNzguNDYxMzc0NjUwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQyOC40MDIxMTQ4NDYxNTQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxMjcuNzk1MTEwMjgsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNjM4Ljk3NTU1MTQwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNi40NzMxOTUwMDAwMDAwMDA1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiA5My40NzU4NjQzMjI1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAzNS4yNzAyMTc5NDUwMDAwMDYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMjIuOTIyNzgzNjI1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy42NDA5Mjc4NzUwMDAwMDEsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDE0LjI1NjAzNzg3NSwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAidGFnIiA6ICJGSUJURyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDguNjY2NzQ1NzUsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMzQuNjY2OTgzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA0LjQ3NjgwNzYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUi5hZGRlZCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgInRhZyIgOiAiUFJPQ05UIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDE3NS41NDM0MjU3MjUwMDAwMiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM1MS4wODY4NTE0NTAwMDAwNCwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMDU2LjAzNzUwMDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzNTIuMDEyNTAwMDAwMDAwMDUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjk5NS40NTcxODMwNzAwMDA2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTI0LjgxMDcxNTk2MTI1MDAzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjY5LjIwNjMxOTY2Mzc3NzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNi45MjA2MzE5NjYzNzc3MzQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIyNi4xNzMxNDU3MTUxNTczNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDU2LjU0MzI4NjQyODc4OTM0NCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyMjA1LjA2MjU5MzIyMTI1OTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2My4wMDE3ODgzNzc3NTAyNjYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMS4wODE5MzMyODYwMDE5NDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2MS41NjYyOTYwMzMzNDQxMTYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAidGFnIiA6ICJaTiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMi41NDc0NjcwNDY1MTU3NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDgzLjY0OTc4MDMxMDEwNDkzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNDQwLjM4NzM0NDk5OTk5OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMDUuNzY5NjIwNzE0Mjg1NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTU3My42OTAyNDI1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTc0Ljg1NDQ3MTM4ODg4ODksCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDExMS4zLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTg1LjUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC42NDE0NzM0NzAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDIuNzY0ODk4MDAwMDAwMDEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS4yMzQwMTk5NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcyLjU4OTQwODgyMzUyOTQxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA2My4wNDExNDE5MzI1MDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMxNS4yMDU3MDk2NjI1MDAwNiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzLjQ0MjcxOTAwMjUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNzIuMTM1OTUwMTI1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEwMS45MDI0Njc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjUuNDc1NjE2ODc1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEwMS45MDI0Njc1LAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xpYyBhY2lkIiwKICAgICAgICAidGFnIiA6ICJGT0xBQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgICAidGFnIiA6ICJWSVRCMTIiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMy4xNDE0MjUwMDAwMDAwMDA0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTIuMzU3MDgzMzMzMzMzMzQsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuMzkzNzUwMDAwMDAwMDAxLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4wOTg0Mzc1MDAwMDAwMDAyLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcuMDEwODY4NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDM1LjA1NDM0MywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgInRhZyIgOiAiVklUSzEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzIuMDI0NDUxNzUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0MC4wMzA1NjQ2ODc1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV80NGQ1NmNlMTViZjU3ZjgyZTg4NmE1NGM0NTUzOTAzMyIsCiAgICAgICJsYWJlbCIgOiAiUm9hc3QgQ2hpY2tlbiIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzBmMS8wZjFjYjgzNWUxOTY3ZjJkOTgxNjY1N2E1YmIzODhhOC5qcGciLAogICAgICAic291cmNlIiA6ICJGaW5lIENvb2tpbmciLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LmZpbmVjb29raW5nLmNvbS9yZWNpcGVzL3JvYXN0LWNoaWNrZW4uYXNweCIsCiAgICAgICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL3JvYXN0LWNoaWNrZW4tNDRkNTZjZTE1YmY1N2Y4MmU4ODZhNTRjNDU1MzkwMzMvY2hpY2tlbiIsCiAgICAgICJ5aWVsZCIgOiA0LjAsCiAgICAgICJkaWV0TGFiZWxzIiA6IFsgIkxvdy1DYXJiIiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlN1Z2FyLUNvbnNjaW91cyIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxLTEvMiBUYnMuIG9saXZlIG9pbCIsICIyIHRzcC4gZ3JhbnVsYXRlZCBzdWdhciIsICIzLTEvMiB0byA0LWxiLiB3aG9sZSBjaGlja2VuIiwgIkZyZXNobHkgZ3JvdW5kIGJsYWNrIHBlcHBlciIsICIyIFRicy4ga29zaGVyIHNhbHQiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMS0xLzIgVGJzLiBvbGl2ZSBvaWwiLAogICAgICAgICJ3ZWlnaHQiIDogMjAuMjUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyIHRzcC4gZ3JhbnVsYXRlZCBzdWdhciIsCiAgICAgICAgIndlaWdodCIgOiA4LjQKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzLTEvMiB0byA0LWxiLiB3aG9sZSBjaGlja2VuIiwKICAgICAgICAid2VpZ2h0IiA6IDE3MDAuOTcxMzg3NQogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIkZyZXNobHkgZ3JvdW5kIGJsYWNrIHBlcHBlciIsCiAgICAgICAgIndlaWdodCIgOiA1LjI3NjIzOTE2MjUwMDAwMDUKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIyIFRicy4ga29zaGVyIHNhbHQiLAogICAgICAgICJ3ZWlnaHQiIDogMjkuMTI1CiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDM4ODEuODQ5ODQzNDIyODc1LAogICAgICAidG90YWxXZWlnaHQiIDogMTc0Mi4yMzA5Mzk4MjA0NzY4LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzg4MS44NDk4NDM0MjI4NzUsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI3Ni41ODgyOTYzNTQxOTc1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDc2LjE4MTQzMjA1MDM5MTk5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFUUk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS42NDk5NDIyNDU4NzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjAuOTU0MjA4NDg3NDEwODgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ny4xMjQ5NDAxODMwOTE3NDUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTEuNzcyNDc0OTQ0NDE4NzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjMzNDg4ODUwODExMjUwMDQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC40MTY5Njc5MzA2NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSLmFkZGVkIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC4zODMyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzE2LjkyODg3OTMyMzk4MzcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9MRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMjc1LjcyODU0MDYyNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDAzNC40Njk3MzI4NTExMTEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMTIuNTI3MDg3MjcyNzg5MzcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDM0OS4yODk5Nzk1OTk0NTQ4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMyODUuOTE0MzA1ODk3MjYzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuOTYyODY1MjQzNjAwMDcyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuMzUzNjg1NzM1NDQxNzI2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNTA4Ljc2NDM5NzUwMTc1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2OTguODIyODUzNDQ4ODc1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNy4yMTU1NDIyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMDI2MjgxMTcwNzk1NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjA1MjI1ODg5NTQ5MjUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExNS43NDMzNzE0Nzc1MDIzNiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ljk2ODc1MzcxMjIxMjg3NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDIuOTU1MjQzOTA3NjI0OTksCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIkZPTEZEIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAyLjk1NTI0MzkwNzYyNDk5LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS4yNzMwMTEzMDEyNDk5OTk1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVREIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjQwMTk0Mjc3NSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4LjA2MzY2MjA0OTc4OTk5OSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDYuMzQyMjc0MzIxNTEyNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5NC4wOTI0OTIxNzExNDM3NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDI1LjUyMDQ1NTkyOTUzNDYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzgwLjkwNzE2MDI1MTk1OTksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMy45MjQxNTgzMTQ4MDYyNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuMzM5NTU0MDMyNDUwMDAxNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDYzMy44NTc3NTg2NDc5Njc0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPTEUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDI1LjI0Mjg0Njg3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjguMTAyOTA1NTM1NDYyOTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxLjI1MjcwODcyNzI3ODkzNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Ny4zMjI0OTQ4OTk4NjM3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTMuODgzMjY1ODgyNzc4OTQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDg4LjY4MjU4NDY4NjY2NzA3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDkuMDI0NTcxNTY5NjExNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNTguMzk0OTEzOTI4ODIxNDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzcuNjQ2OTgzNzE2NTQxNjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0NS4zNTkyMzcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2OC40MTg3NDQ3MTk3LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIwLjcyMTExMTQ5OTU1ODgyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU3OC43MTY4NTczODc1MTE4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjk4LjQzNzY4NTYxMDY0MzcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNS43Mzg4MTA5NzY5MDYyNDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCMTIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODcuODgzNTIxNjg3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuODUwNDg1NjkzNzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQwLjMxODMxMDI0ODk1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU3LjkyNzg0MjkwMTg5MDYyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyNzYuNTg4Mjk2MzU0MTk3NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQyNS41MjA0NTU5Mjk1MzQ2LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNzYuMTgxNDMyMDUwMzkxOTksCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMzgwLjkwNzE2MDI1MTk1OTksCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMS42NDk5NDIyNDU4NzUsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBTVMiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDEyMC45NTQyMDg0ODc0MTA4OCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogNTcuMTI0OTQwMTgzMDkxNzQ1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9IF0KICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICJ0YWciIDogIkNIT0NERiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiY2FyYm9oeWRyYXRlQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDExLjc3MjQ3NDk0NDQxODc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMy45MjQxNTgzMTQ4MDYyNSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTAuNDM3NTg2NDM2MzA2MjUsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjMzNDg4ODUwODExMjUwMDQsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNS4zMzk1NTQwMzI0NTAwMDE1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA4LjQxNjk2NzkzMDY0LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDguMzgzMiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAzMTYuOTI4ODc5MzIzOTgzNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDYzMy44NTc3NTg2NDc5Njc0LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEyNzUuNzI4NTQwNjI1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDI1LjI0Mjg0Njg3NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgInRhZyIgOiAiTkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA0MDM0LjQ2OTczMjg1MTExMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE2OC4xMDI5MDU1MzU0NjI5OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIxMi41MjcwODcyNzI3ODkzNywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIxLjI1MjcwODcyNzI3ODkzNiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgInRhZyIgOiAiTUciLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzQ5LjI4OTk3OTU5OTQ1NDgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4Ny4zMjI0OTQ4OTk4NjM3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMyODUuOTE0MzA1ODk3MjYzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOTMuODgzMjY1ODgyNzc4OTQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNS45NjI4NjUyNDM2MDAwNzIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4OC42ODI1ODQ2ODY2NjcwNywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIyLjM1MzY4NTczNTQ0MTcyNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE0OS4wMjQ1NzE1Njk2MTE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyNTA4Ljc2NDM5NzUwMTc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzU4LjM5NDkxMzkyODgyMTQ0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAidGFnIiA6ICJWSVRBX1JBRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA2OTguODIyODUzNDQ4ODc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNzcuNjQ2OTgzNzE2NTQxNjUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDI3LjIxNTU0MjIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0NS4zNTkyMzcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS4wMjYyODExNzA3OTU1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjguNDE4NzQ0NzE5NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjA1MjI1ODg5NTQ5MjUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMjAuNzIxMTExNDk5NTU4ODIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDExNS43NDMzNzE0Nzc1MDIzNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDU3OC43MTY4NTczODc1MTE4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDUuOTY4NzUzNzEyMjEyODc0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjk4LjQzNzY4NTYxMDY0MzcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTAyLjk1NTI0MzkwNzYyNDk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjUuNzM4ODEwOTc2OTA2MjQ3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEwMi45NTUyNDM5MDc2MjQ5OSwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDUuMjczMDExMzAxMjQ5OTk5NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDg3Ljg4MzUyMTY4NzUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMuNDAxOTQyNzc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC44NTA0ODU2OTM3NSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICJ0YWciIDogIlRPQ1BIQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4LjA2MzY2MjA0OTc4OTk5OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQwLjMxODMxMDI0ODk1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0Ni4zNDIyNzQzMjE1MTI1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNTcuOTI3ODQyOTAxODkwNjIsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSBdCn0= + http_version: + recorded_at: Fri, 04 May 2018 20:17:14 GMT +- request: + method: get + uri: https://api.edamam.com/search?app_id=379dc117&app_key=9fcb79f83581cc266057d2b408a6b9cb&from=4&q=lime&to=10 + 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: + - Fri, 04 May 2018 20:58:57 GMT + Content-Type: + - application/json;charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - route=ee37ea0cbec446fe0dc609c7b4a6323b; Path=/ + Cache-Control: + - private + Expires: + - Thu, 01 Jan 1970 00:00:00 UTC + X-Served-By: + - ip-10-149-22-246/10.149.22.246 + Vary: + - Accept-Encoding + body: + encoding: ASCII-8BIT + string: !binary |- + ewogICJxIiA6ICJsaW1lIiwKICAiZnJvbSIgOiA0LAogICJ0byIgOiAxMCwKICAicGFyYW1zIiA6IHsKICAgICJzYW5lIiA6IFsgXSwKICAgICJxIiA6IFsgImxpbWUiIF0sCiAgICAiZnJvbSIgOiBbICI0IiBdLAogICAgImFwcF9rZXkiIDogWyAiOWZjYjc5ZjgzNTgxY2MyNjYwNTdkMmI0MDhhNmI5Y2IiIF0sCiAgICAidG8iIDogWyAiMTAiIF0sCiAgICAiYXBwX2lkIiA6IFsgIjM3OWRjMTE3IiBdCiAgfSwKICAibW9yZSIgOiB0cnVlLAogICJjb3VudCIgOiA3MzczOSwKICAiaGl0cyIgOiBbIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV82NDJlZmE3MjJiNGNhNWU0M2M4NGIzMWYyNGNjN2Y1YiIsCiAgICAgICJsYWJlbCIgOiAiTGltZSBHaW5nZXIgSWNlZCBUZWEiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy9lZjEvZWYxM2EwZjAwYTUyMDJkNDhjMTAwY2RmNDkyMzdiZDguanBnIiwKICAgICAgInNvdXJjZSIgOiAiU2V2ZW4gU3Bvb25zIiwKICAgICAgInVybCIgOiAiaHR0cDovL3d3dy5zZXZlbnNwb29ucy5uZXQvYmxvZy8yMDA1LzUvMjQvc3VtbWVyLXNjaG9vbC5odG1sIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvbGltZS1naW5nZXItaWNlZC10ZWEtNjQyZWZhNzIyYjRjYTVlNDNjODRiMzFmMjRjYzdmNWIvbGltZSIsCiAgICAgICJ5aWVsZCIgOiA0LjAsCiAgICAgICJkaWV0TGFiZWxzIiA6IFsgIkxvdy1GYXQiIF0sCiAgICAgICJoZWFsdGhMYWJlbHMiIDogWyAiVmVnYW4iLCAiVmVnZXRhcmlhbiIsICJQZWFudXQtRnJlZSIsICJUcmVlLU51dC1GcmVlIiwgIkFsY29ob2wtRnJlZSIgXSwKICAgICAgImNhdXRpb25zIiA6IFsgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxIGN1cCB3YXRlciIsICIxIGN1cCBzdWdhciIsICIzIGluY2ggcGllY2Ugb2YgZ2luZ2VyLCBzbGljZWQiLCAiWmVzdCBvZiBhIGxpbWUsIGluIGxhcmdlIHBpZWNlcyIsICI4IGN1cCB3YXRlciIsICI4IHggYmxhY2sgdGVhIGJhZ3MiLCAiWmVzdCBvZiBhIGxpbWUsIGluIHN0cmlwcyIsICJKdWljZSBmcm9tIG9uZSBsaW1lIiwgIjEvMiBjdXAgY3JhbmJlcnJ5IGp1aWNlIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjEgY3VwIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDIzNy4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAgc3VnYXIiLAogICAgICAgICJ3ZWlnaHQiIDogMjAwLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIzIGluY2ggcGllY2Ugb2YgZ2luZ2VyLCBzbGljZWQiLAogICAgICAgICJ3ZWlnaHQiIDogNDUuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIlplc3Qgb2YgYSBsaW1lLCBpbiBsYXJnZSBwaWVjZXMiLAogICAgICAgICJ3ZWlnaHQiIDogNjcuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjggY3VwIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDE4OTYuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjggeCBibGFjayB0ZWEgYmFncyIsCiAgICAgICAgIndlaWdodCIgOiAyNC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiWmVzdCBvZiBhIGxpbWUsIGluIHN0cmlwcyIsCiAgICAgICAgIndlaWdodCIgOiA2Ny4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiSnVpY2UgZnJvbSBvbmUgbGltZSIsCiAgICAgICAgIndlaWdodCIgOiA2Ny4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMS8yIGN1cCBjcmFuYmVycnkganVpY2UiLAogICAgICAgICJ3ZWlnaHQiIDogMTI2LjUKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogOTM4Ljg1LAogICAgICAidG90YWxXZWlnaHQiIDogMjcyOS41LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOTM4Ljg1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuODY2MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE0NzQzNSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTMxNzY1MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjI1NTQ0NTAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI0Ni4zMTY3MDAwMDAwMDAwMywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDYuNTI3OTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxOC43Nzc0NDk5OTk5OTk5MywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSLmFkZGVkIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTk5LjYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjIyNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDAuNDQwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDMuMzE1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1NC43MjUwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0MjIuMzYwMDAwMDAwMDAwMDcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjcwNzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjY1MDE1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUyLjk4NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4wMjAwMDAwMDAwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMTQuMjUwNTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wNzE1NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA5Njg1OTk5OTk5OTk5OTk5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjc5MTM2NTAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xNTg0MzAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMi4yMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMi4yMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjgzNzUwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuNTE2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDYuOTQyNTAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMzMyMzA3NjkyMzA3NjkyNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjczNzE3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Mi4xMDU1NjY2NjY2NjY2OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjExMTk5OTk5OTk5OTk5NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuNDUyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMTg1MDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQuMzMxNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy42ODEyNTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi4wNjc0Mjg1NzE0Mjg1NzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuNDg1MDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0LjMzNDMzMzMzMzMzMzMzNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjU2OTI4NTcxNDI4NTcxNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjQ0NjY2NjY2NjY2NjY2NjcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOTAuNDE3NTAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Ljc3MDAwMDAwMDAwMDAwMDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1LjY5NzY0NzA1ODgyMzUyOCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjk1NjgyNTAwMDAwMDAwMDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjkyMTUwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuNTU3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4xODc1MDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMy4xNDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJkaWdlc3QiIDogWyB7CiAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICJ0YWciIDogIkZBVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmF0Q29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuODY2MDAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEuMzMyMzA3NjkyMzA3NjkyNCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMTQ3NDM1LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDAuNzM3MTc1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4xMzE3NjUwMDAwMDAwMDAwMiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4yNTU0NDUwMDAwMDAwMDAwMywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyNDYuMzE2NzAwMDAwMDAwMDMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4Mi4xMDU1NjY2NjY2NjY2OCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMjM5Ljc4ODcwMDAwMDAwMDAzLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNi41Mjc5OTk5OTk5OTk5OTksCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMjYuMTExOTk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAyMTguNzc3NDQ5OTk5OTk5OTMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUi5hZGRlZCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTk5LjYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMi4yMjYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjQ1MiwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEwMC40NDAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMTg1MDAwMDAwMDAwMDAwNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE0My4zMTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNC4zMzE1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1NC43MjUwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzLjY4MTI1MDAwMDAwMDAwMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA0MjIuMzYwMDAwMDAwMDAwMDcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMi4wNjc0Mjg1NzE0Mjg1NzMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjcwNzMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5LjQ4NTAwMDAwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNjUwMTUwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMzM0MzMzMzMzMzMzMzM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1Mi45ODUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3LjU2OTI4NTcxNDI4NTcxNCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNC4wMjAwMDAwMDAwMDAwMDA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC40NDY2NjY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMTQuMjUwNTAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxOTAuNDE3NTAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wNzE1NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuNzcwMDAwMDAwMDAwMDAwNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjA5Njg1OTk5OTk5OTk5OTk5LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNS42OTc2NDcwNTg4MjM1MjgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNzkxMzY1MDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMuOTU2ODI1MDAwMDAwMDAwNywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjE1ODQzMDAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy45MjE1MDAwMDAwMDAwMDEsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjIuMjMsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjU1NzUsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgInRhZyIgOiAiRk9MRkQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjIuMjMsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuODM3NTAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMTg3NTAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjUxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMuMTQ1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV81MzFhZjk5YWQxZjdhMmRmNGZiZGI2NjI4NTQ2YmIyYyIsCiAgICAgICJsYWJlbCIgOiAiQmFzaWwgTGltZSBTb3JiZXQiLAogICAgICAiaW1hZ2UiIDogImh0dHBzOi8vd3d3LmVkYW1hbS5jb20vd2ViLWltZy9lMmMvZTJjMDM5N2JiNjEwOWNlZWNjMWYxNDVlMzYyODI3YWIuanBnIiwKICAgICAgInNvdXJjZSIgOiAiRGVsaWNpb3VzIERheXMiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LmRlbGljaW91c2RheXMuY29tL2FyY2hpdmVzLzIwMDUvMDcvMDMvZ3JlZW4tZGF5LW9yLXdoZW4tcG9vci1saXR0bGUtYmFzaWwtaGFkLXRvLWRpZS8iLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9iYXNpbC1saW1lLXNvcmJldC01MzFhZjk5YWQxZjdhMmRmNGZiZGI2NjI4NTQ2YmIyYy9saW1lIiwKICAgICAgInlpZWxkIiA6IDIuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUZhdCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJWZWdhbiIsICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjE1MCBtbCBXYXRlciIsICIxNDAgZyBTdWdhciIsICI2IHggemVzdCBvZiBsaW1lIiwgIjQgbGltZSBMaW1lIEp1aWNlIiwgIjEgYnVuY2ggYmFzaWwgbGVhdmVzIiBdLAogICAgICAiaW5ncmVkaWVudHMiIDogWyB7CiAgICAgICAgInRleHQiIDogIjE1MCBtbCBXYXRlciIsCiAgICAgICAgIndlaWdodCIgOiAxNTAuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjE0MCBnIFN1Z2FyIiwKICAgICAgICAid2VpZ2h0IiA6IDE0MC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNiB4IHplc3Qgb2YgbGltZSIsCiAgICAgICAgIndlaWdodCIgOiA0MDIuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjQgbGltZSBMaW1lIEp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDE3Ni4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBidW5jaCBiYXNpbCBsZWF2ZXMiLAogICAgICAgICJ3ZWlnaHQiIDogNTAuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiA3MTcuOSwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDkxOC4wLAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzE3LjkwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMjQ3MiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjEyMzAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFNUyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xMzQ0NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBUFUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDU2MDgwMDAwMDAwMDAwMDQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTk4LjQ4NywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjc2MDAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDkuNjM4MiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSLmFkZGVkIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTM5LjcyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS4xMjgyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiTkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwLjk2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkNBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjUxLjcwMDAwMDAwMDAwMDA1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MS43LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDc2Ni4yNiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMjI1NDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuMDE3MDAwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI1LjAwMDAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDMuNTYsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3OC43ODIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xODE2MDAwMDAwMDAwMDAwNCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE3MTQwMDAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjUwNDkyMDAwMDAwMDAwMDMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zMTcyNCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGT0xERkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4My43NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4My43NiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjY3MTYwMDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIxMC44NjgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzNS44OTUwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS45MTg3NjkyMzA3NjkyMzEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42MTUxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDY2LjE2MjMzMzMzMzMzMzM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTEuMDQwMDAwMDAwMDAwMDA2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuMjU2NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjg3MzMzMzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI1LjE3MDAwMDAwMDAwMDAwNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk1HIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNy45MjUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJLIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS44OTMxNDI4NTcxNDI4NTUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIzLjQ3NDQ0NDQ0NDQ0NDQ0OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi43ODAwMDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTcuODU3MTQyODU3MTQyODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTUuOTUxMTExMTExMTExMTEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyOTcuOTcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi4xMDY2NjY2NjY2NjY2NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwLjA4MjM1Mjk0MTE3NjQ3NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjUyNDYwMDAwMDAwMDAwMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE1Ljg2MjAwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIwLjk0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4LjM1OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNjMuNTg1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxLjI0NzIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxLjkxODc2OTIzMDc2OTIzMSwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBU0FUIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInNhdHVyYXRlZEZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMTIzMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMC42MTUxLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4xMzQ0NiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC40NTYwODAwMDAwMDAwMDAwNCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxOTguNDg3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNjYuMTYyMzMzMzMzMzMzMzQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDE4NS43MjcsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxMi43NjAwMDAwMDAwMDAwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogNTEuMDQwMDAwMDAwMDAwMDA2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxNDkuNjM4MiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAxMzkuNzIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNS4xMjgyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAuMjU2NCwKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDIwLjk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC44NzMzMzMzMzMzMzMzMzMzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjUxLjcwMDAwMDAwMDAwMDA1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjUuMTcwMDAwMDAwMDAwMDA1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA3MS43LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTcuOTI1LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDc2Ni4yNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIxLjg5MzE0Mjg1NzE0Mjg1NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuMjI1NDAwMDAwMDAwMDAwNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIzLjQ3NDQ0NDQ0NDQ0NDQ0OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuMDE3MDAwMDAwMDAwMDAwMSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDYuNzgwMDAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjUuMDAwMDAwMDAwMDAwMDEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNy44NTcxNDI4NTcxNDI4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTQzLjU2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTUuOTUxMTExMTExMTExMTEsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE3OC43ODIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyOTcuOTcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4xODE2MDAwMDAwMDAwMDAwNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjEwNjY2NjY2NjY2NjY3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAidGFnIiA6ICJSSUJGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMTcxNDAwMDAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMC4wODIzNTI5NDExNzY0NzQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuNTA0OTIwMDAwMDAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDcuNTI0NjAwMDAwMDAwMDAxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzE3MjQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNS44NjIwMDAwMDAwMDAwMDIsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogODMuNzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMC45NCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4My43NiwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS42NzE2MDAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC4zNTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIxMC44NjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNjMuNTg1LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV80MjQxMjNmNzIzMDZlNWFhOTllYTIyMjAxNzMwMDViYiIsCiAgICAgICJsYWJlbCIgOiAiTGltZSwgUmFzcGJlcnJ5ICYgVm9ka2EgQ29ja3RhaWxzIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvODYxLzg2MTBmNmI3OGQ1Mzk5ODE2ZjBiNmI4NTYwZmUwNjEwLmpwZyIsCiAgICAgICJzb3VyY2UiIDogIkJCQyBHb29kIEZvb2QiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LmJiY2dvb2Rmb29kLmNvbS9yZWNpcGVzLzQ1MjMvIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvbGltZS1yYXNwYmVycnktdm9ka2EtY29ja3RhaWxzLTQyNDEyM2Y3MjMwNmU1YWE5OWVhMjIyMDE3MzAwNWJiL2xpbWUiLAogICAgICAieWllbGQiIDogNi4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJMb3ctRmF0IiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiIF0sCiAgICAgICJjYXV0aW9ucyIgOiBbICJXaGVhdCIgXSwKICAgICAgImluZ3JlZGllbnRMaW5lcyIgOiBbICIxNTAuMG1sIHZvZGthIiwgIjYwLjBtbCBsaW1lIGp1aWNlIiwgIjEyIGxpbWUgc2xpY2VzIiwgIjEyIHJhc3BiZXJyaWVzIiwgIjEuMGwgbGVtb25hZGUiIF0sCiAgICAgICJpbmdyZWRpZW50cyIgOiBbIHsKICAgICAgICAidGV4dCIgOiAiMTUwLjBtbCB2b2RrYSIsCiAgICAgICAgIndlaWdodCIgOiAxNDEuMDA0NDc0NjY2Njg1MwogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjYwLjBtbCBsaW1lIGp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDYyLjQ4ODMxMzk1MzAwNTg2NAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEyIGxpbWUgc2xpY2VzIiwKICAgICAgICAid2VpZ2h0IiA6IDg0LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxMiByYXNwYmVycmllcyIsCiAgICAgICAgIndlaWdodCIgOiAyMi43OTk5OTk5OTk5OTk5OTcKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxLjBsIGxlbW9uYWRlIiwKICAgICAgICAid2VpZ2h0IiA6IDExMTUuODYyNzQ5MTYwODE5CiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDUzNC42MTkxOTk4NTA4MDkxLAogICAgICAidG90YWxXZWlnaHQiIDogMTQyNi4xNTU1Mzc3ODA1MTAzLAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTM0LjYxOTE5OTg1MDgwOTIsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuODA2Mjg2OTE5NDMxNDMxNywKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjAyNzgxMTA2NTExNjI0MDQ2OCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBTVMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMDM1NTUxMDY1MTE2MjQwNDcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjE0NjA3MjMxMjIwOTE5MTM0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU2Ljg5NjkwODcyOTcxNjQ5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4wODM5NTMyNTU4MTIwMjMsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDIuNTM4NjA4NzI2NDM0NDcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjEyNDA1MDkxODYwMjYyNDYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzEuNTE5NTc1OTc1Mzc2MTEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA4Ni44MDI4NzM5MTk4NTM1OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI2LjY0MTM0MDAzMjMyMjM2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2MS41ODExMzcwMjEzMzI5LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC44NDMyNDYyMDQ5NDA0NTU3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zNDk3MzY5MjYwNzg0ODY1NSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzcuNTMwNTg3Njg2NzU1MDg0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjM4NTc2NjI3OTA2MDExNywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjUuOTAyMDM1NDIzMzE0MDMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wNjYzMjY5Mjk3MTMxOTM5MSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA0NDcwNzU2MDMxOTYxODg0NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC40NDg4NzA1NDMyNzEzMDkyNiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA4MzU2NDE4Njc5Mzc1MDQxLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE3Ljc1NjgzMTM5NTMwMDU4NywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNy43NTY4MzEzOTUzMDA1ODcsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42MzIyMjA1NjU2MTI2OTQ3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjY1NzMyOTg4MzcxODAzNSwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfQogICAgICB9LAogICAgICAidG90YWxEYWlseSIgOiB7CiAgICAgICAgIkVORVJDX0tDQUwiIDogewogICAgICAgICAgImxhYmVsIiA6ICJFbmVyZ3kiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjczMDk1OTk5MjU0MDQ2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjI0MDQ0MTQxNDUwOTg5NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjEzOTA1NTMyNTU4MTIwMjM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE4Ljk2NTYzNjI0MzIzODgzMywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjMzNTgxMzAyMzI0ODA5MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMjQ4MTAxODM3MjA1MjQ5MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjk3OTk4MjMzMjMwNzMzNzgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDguNjgwMjg3MzkxOTg1MzU4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxLjY2MDMzNTAwODA4MDU5NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNDczNzQ2NzcyMDM4MDgzNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC42ODQ3MDExMzg1NTgwODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMzMxNTc5NTA3MTg5OTEsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNS4zNjE1MTI1MjY2NzkyOTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zNzYxOTYyNTMyMjg5MDE5LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTA5LjgzNjcyNTcwNTUyMzM4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC40MjE3OTUzMTQyMTI5MjgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjYyOTg1NjQ4OTM4OTM0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjI0NDM1MjcxNjM1NjU0NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQuMTc4MjA5MzM5Njg3NTIxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC40MzkyMDc4NDg4MjUxNDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuMTYxMTAyODI4MDYzNDczNCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjMyMTY2MjM1NDY0NzU0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMC44MDYyODY5MTk0MzE0MzE3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4yNDA0NDE0MTQ1MDk4OTUsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAyNzgxMTA2NTExNjI0MDQ2OCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAwLjEzOTA1NTMyNTU4MTIwMjM0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4wMzU1NTEwNjUxMTYyNDA0NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFQVSIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4xNDYwNzIzMTIyMDkxOTEzNCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA1Ni44OTY5MDg3Mjk3MTY0OSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE4Ljk2NTYzNjI0MzIzODgzMywKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogNTIuODEyOTU1NDczOTA0NDY2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNC4wODM5NTMyNTU4MTIwMjMsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMTYuMzM1ODEzMDIzMjQ4MDkzLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiA0Mi41Mzg2MDg3MjY0MzQ0NywKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSLmFkZGVkIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMS4xMjQwNTA5MTg2MDI2MjQ2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMi4yNDgxMDE4MzcyMDUyNDkzLAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNzEuNTE5NTc1OTc1Mzc2MTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyLjk3OTk4MjMzMjMwNzMzNzgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAidGFnIiA6ICJDQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA4Ni44MDI4NzM5MTk4NTM1OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDguNjgwMjg3MzkxOTg1MzU4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjYuNjQxMzQwMDMyMzIyMzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAzMS42NjAzMzUwMDgwODA1OTQsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICJ0YWciIDogIksiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMjYxLjU4MTEzNzAyMTMzMjksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3LjQ3Mzc0Njc3MjAzODA4MzUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjg0MzI0NjIwNDk0MDQ1NTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjY4NDcwMTEzODU1ODA4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzQ5NzM2OTI2MDc4NDg2NTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyLjMzMTU3OTUwNzE4OTkxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzNy41MzA1ODc2ODY3NTUwODQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjM2MTUxMjUyNjY3OTI5OCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMy4zODU3NjYyNzkwNjAxMTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjM3NjE5NjI1MzIyODkwMTksCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAidGFnIiA6ICJWSVRDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDY1LjkwMjAzNTQyMzMxNDAzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTA5LjgzNjcyNTcwNTUyMzM4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMDY2MzI2OTI5NzEzMTkzOTEsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjQyMTc5NTMxNDIxMjkyOCwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgInRhZyIgOiAiUklCRiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjA0NDcwNzU2MDMxOTYxODg0NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIuNjI5ODU2NDg5Mzg5MzQ0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjQ0ODg3MDU0MzI3MTMwOTI2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMi4yNDQzNTI3MTYzNTY1NDYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wODM1NjQxODY3OTM3NTA0MSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuMTc4MjA5MzM5Njg3NTIxLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgInRhZyIgOiAiRk9MREZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE3Ljc1NjgzMTM5NTMwMDU4NywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDQuNDM5MjA3ODQ4ODI1MTQ3LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICJ0YWciIDogIkZPTEZEIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE3Ljc1NjgzMTM5NTMwMDU4NywKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC42MzIyMjA1NjU2MTI2OTQ3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMy4xNjExMDI4MjgwNjM0NzM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyLjY1NzMyOTg4MzcxODAzNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDMuMzIxNjYyMzU0NjQ3NTQ0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV8xYWE4N2MwOTZhOGIzN2ZlODdkYjI3ODcwZTY0NTUzYiIsCiAgICAgICJsYWJlbCIgOiAiTGltZSwgR3JhcGVmcnVpdCBhbmQgR2luZ2VyIEp1aWNlIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvYTExL2ExMWY5YWNlZmExNWZmNjA0Njk1MzcyNTFhMzI3ZDRmLmpwZyIsCiAgICAgICJzb3VyY2UiIDogIjEwMSBDb29rYm9va3MiLAogICAgICAidXJsIiA6ICJodHRwOi8vd3d3LjEwMWNvb2tib29rcy5jb20vYXJjaGl2ZXMvbGltZS1ncmFwZWZydWl0LWFuZC1naW5nZXItanVpY2UtcmVjaXBlLmh0bWwiLAogICAgICAic2hhcmVBcyIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL3JlY2lwZS9saW1lLWdyYXBlZnJ1aXQtYW5kLWdpbmdlci1qdWljZS0xYWE4N2MwOTZhOGIzN2ZlODdkYjI3ODcwZTY0NTUzYi9saW1lIiwKICAgICAgInlpZWxkIiA6IDIuMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUZhdCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJWZWdhbiIsICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjMgdGFibGVzcG9vbnMgbmF0dXJhbCBjYW5lIHN1Z2FyIiwgIjIgdGFibGVzcG9vbnMgZ2luZ2VyLCBwZWVsZWQgdGhlbiBncmF0ZWQiLCAiMSBjdXAvMjQwIG1sIHdhdGVyIiwgInZlcnkgc2NhbnQgMS8yIGN1cC85NSBtbCBmcmVzaCBsaW1lIGp1aWNlIC0gMiBqdWljeSBsaW1lcyIsICIxIDEvMyBjdXBzLzMxMCBtbCBmcmVzaCBncmFwZWZydWl0IGp1aWNlIC0gMiBqdWljeSBncmFwZWZydWl0cyIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIzIHRhYmxlc3Bvb25zIG5hdHVyYWwgY2FuZSBzdWdhciIsCiAgICAgICAgIndlaWdodCIgOiAzNy44CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBnaW5nZXIsIHBlZWxlZCB0aGVuIGdyYXRlZCIsCiAgICAgICAgIndlaWdodCIgOiAxMi4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSBjdXAvMjQwIG1sIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDI0MC4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAidmVyeSBzY2FudCAxLzIgY3VwLzk1IG1sIGZyZXNoIGxpbWUganVpY2UgLSAyIGp1aWN5IGxpbWVzIiwKICAgICAgICAid2VpZ2h0IiA6IDkwLjAwOTU0NzAzMDAzNTg4CiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMSAxLzMgY3Vwcy8zMTAgbWwgZnJlc2ggZ3JhcGVmcnVpdCBqdWljZSAtIDIganVpY3kgZ3JhcGVmcnVpdHMiLAogICAgICAgICJ3ZWlnaHQiIDogMzAxLjM2NzQ3NzMzMDE3NTc1CiAgICAgIH0gXSwKICAgICAgImNhbG9yaWVzIiA6IDI4Mi4zNDAxMzE2Mjc5Njg3MywKICAgICAgInRvdGFsV2VpZ2h0IiA6IDY4MS4xNzcwMjQzNjAyMTE2LAogICAgICAidG90YWxUaW1lIiA6IDAuMCwKICAgICAgInRvdGFsTnV0cmllbnRzIiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjgyLjM0MDEzMTYyNzk2ODgsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNTcxMzg2NTcxMzkwMjQ3NSwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA4NjM1MzU0NzE3MjgzMjUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA3NDc1OTU4NTk4ODYyOTY3LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRkFQVSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xNDAzMTM0NDU0MjU3NjE5LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDc0Ljc1Njg1MTEwMDQzMzU1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNi4wNzUzMDk1Njc0NzI5MzgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjEuNDc5NTIzOTM3NjQzNDUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJTVUdBUi5hZGRlZCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDM3LjcyNDM5OTk5OTk5OTk5NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuOTI3OTAyNDIyNzg4NDYzNCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy4zMzgxOTA5NDA2MDA3MTgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3NS4zNjUyNDc3OTk1MzI5MiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDAuMDgzNjQ1NzgxNTE3OTcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNTg4LjM4OTYwNDQxOTI5NjgsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjgxMTc3Nzc2ODU3ODMyMDYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiWk4iIDogewogICAgICAgICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjM3ODU0NzczNTg2NDE2MjUsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiUCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ0LjM5MTExNjY1MTgyMDUyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3LjgyNzU0MDQ4NzIwNDIzMywKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI3LjE0ODE0ODEzNjY4ODk3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlRISUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuMTQxNTA4ODMwNzIxMTc1OCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjA4OTUzNzQwNDg3MjA0MjM0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjA4MDY5NzYwODA3ODI0NDcsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xODc0OTIxMjA0NzQ4OTEsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiRk9MREZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzguNjU3NTExNDk1NDIwNDUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIkZPTEZEIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzguNjU3NTExNDk1NDIwNDUsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC42MjA5OTg3MjM5OTUzMDc0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU1MjA1NzI4MjE4MDIxNTIsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInRvdGFsRGFpbHkiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNC4xMTcwMDY1ODEzOTg0NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC44NzkwNTYyNjM2NzczMDM4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFTQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDAuNDMxNzY3NzM1ODY0MTYyNDUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQuOTE4OTUwMzY2ODExMTg1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjQuMzAxMjM4MjY5ODkxNzUsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ljg1NTgwNDg0NTU3NjkyNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU1NTc1Nzk1NTg1ODM2MzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJDQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDcuNTM2NTI0Nzc5OTUzMjkzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwLjAyMDkxMTQ0NTM3OTQ5MywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE2LjgxMTEzMTU1NDgzNzA1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0LjUwOTg3NjQ5MjEwMTc4MSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi41MjM2NTE1NzI0Mjc3NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2LjM0MTU4ODA5MzExNzIxOCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjg2OTcyNjcyMDgwMDQ3MDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMTEuOTEzNTgwMjI3ODE0OTgsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJUSElBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA5LjQzMzkyMjA0ODA3ODM4NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlJJQkYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuMjY2OTA2MTY4OTQzNjY4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuNDAzNDg4MDQwMzkxMjIzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS4zNzQ2MDYwMjM3NDQ1NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuNjY0Mzc3ODczODU1MTEzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjEwNDk5MzYxOTk3NjUzNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjY5MDA3MTYwMjcyNTI2OSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMC41NzEzODY1NzEzOTAyNDc1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC44NzkwNTYyNjM2NzczMDM4LAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic2F0dXJhdGVkRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4wODYzNTM1NDcxNzI4MzI1LAogICAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICAgImRhaWx5IiA6IDAuNDMxNzY3NzM1ODY0MTYyNDUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgICAgICJ0YWciIDogIkZBVFJOIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInRyYW5zRmF0Q29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQU1TIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjA3NDc1OTU4NTk4ODYyOTY3LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjE0MDMxMzQ0NTQyNTc2MTksCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogNzQuNzU2ODUxMTAwNDMzNTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNC45MTg5NTAzNjY4MTExODUsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIChuZXQpIiwKICAgICAgICAgICJ0YWciIDogIkNIT0NERi5uZXQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDY4LjY4MTU0MTUzMjk2MDYxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogNi4wNzUzMDk1Njc0NzI5MzgsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogMjQuMzAxMjM4MjY5ODkxNzUsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDYxLjQ3OTUyMzkzNzY0MzQ1LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDM3LjcyNDM5OTk5OTk5OTk5NiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAyLjkyNzkwMjQyMjc4ODQ2MzQsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1Ljg1NTgwNDg0NTU3NjkyNywKICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgICAgICJ0YWciIDogIkNIT0xFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjaG9sZXN0ZXJvbENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAidGFnIiA6ICJOQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic29kaXVtQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDEzLjMzODE5MDk0MDYwMDcxOCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDAuNTU1NzU3OTU1ODU4MzYzMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAgICJ0YWciIDogIkNBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDc1LjM2NTI0Nzc5OTUzMjkyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy41MzY1MjQ3Nzk5NTMyOTMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICJ0YWciIDogIk1HIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQwLjA4MzY0NTc4MTUxNzk3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTAuMDIwOTExNDQ1Mzc5NDkzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDU4OC4zODk2MDQ0MTkyOTY4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTYuODExMTMxNTU0ODM3MDUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAidGFnIiA6ICJGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjgxMTc3Nzc2ODU3ODMyMDYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0LjUwOTg3NjQ5MjEwMTc4MSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzc4NTQ3NzM1ODY0MTYyNSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIuNTIzNjUxNTcyNDI3NzUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQ0LjM5MTExNjY1MTgyMDUyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNi4zNDE1ODgwOTMxMTcyMTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICJ0YWciIDogIlZJVEFfUkFFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcuODI3NTQwNDg3MjA0MjMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMC44Njk3MjY3MjA4MDA0NzA0LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMjcuMTQ4MTQ4MTM2Njg4OTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMTEuOTEzNTgwMjI3ODE0OTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAgICJ0YWciIDogIlRISUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4xNDE1MDg4MzA3MjExNzU4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOS40MzM5MjIwNDgwNzgzODUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wODk1Mzc0MDQ4NzIwNDIzNCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDUuMjY2OTA2MTY4OTQzNjY4LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICJ0YWciIDogIk5JQSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxLjA4MDY5NzYwODA3ODI0NDcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA1LjQwMzQ4ODA0MDM5MTIyMywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjE4NzQ5MjEyMDQ3NDg5MSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDkuMzc0NjA2MDIzNzQ0NTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgZXF1aXZhbGVudCAodG90YWwpIiwKICAgICAgICAidGFnIiA6ICJGT0xERkUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMzguNjU3NTExNDk1NDIwNDUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA5LjY2NDM3Nzg3Mzg1NTExMywKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzOC42NTc1MTE0OTU0MjA0NSwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC42MjA5OTg3MjM5OTUzMDc0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMy4xMDQ5OTM2MTk5NzY1MzcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuNTUyMDU3MjgyMTgwMjE1MiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDAuNjkwMDcxNjAyNzI1MjY5LAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0gXQogICAgfSwKICAgICJib29rbWFya2VkIiA6IGZhbHNlLAogICAgImJvdWdodCIgOiBmYWxzZQogIH0sIHsKICAgICJyZWNpcGUiIDogewogICAgICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV81ZmZkY2E0ZTE4ZjQ5NjAxMDc2MDA4ZDA0ODNkODE1OCIsCiAgICAgICJsYWJlbCIgOiAiTWFuZ28gV2l0aCBMaW1lIEFuZCBWYW5pbGxhIFN5cnVwIiwKICAgICAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvYTVhL2E1YWEzNjM3OTQ4YWNjNDliOWQzZmM4MmFjNjA3YmM4LmpwZyIsCiAgICAgICJzb3VyY2UiIDogIkxlaXRlJ3MgQ3VsaW5hcmlhIiwKICAgICAgInVybCIgOiAiaHR0cDovL2xlaXRlc2N1bGluYXJpYS5jb20vNDQ5OS9yZWNpcGVzLW1hbmdvLXdpdGgtbGltZS1hbmQtdmFuaWxsYS1zeXJ1cC5odG1sIiwKICAgICAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvbWFuZ28td2l0aC1saW1lLWFuZC12YW5pbGxhLXN5cnVwLTVmZmRjYTRlMThmNDk2MDEwNzYwMDhkMDQ4M2Q4MTU4L2xpbWUiLAogICAgICAieWllbGQiIDogNi4wLAogICAgICAiZGlldExhYmVscyIgOiBbICJMb3ctRmF0IiBdLAogICAgICAiaGVhbHRoTGFiZWxzIiA6IFsgIlZlZ2FuIiwgIlZlZ2V0YXJpYW4iLCAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIsICJBbGNvaG9sLUZyZWUiIF0sCiAgICAgICJjYXV0aW9ucyIgOiBbIF0sCiAgICAgICJpbmdyZWRpZW50TGluZXMiIDogWyAiMSBjdXAgd2F0ZXIiLCAiMi8zIGN1cCBzdWdhciIsICIyIHRhYmxlc3Bvb25zIGxpbWUganVpY2UiLCAiMSB2YW5pbGxhIGJlYW4sIHNwbGl0IiwgIjQgbWFuZ29lcywgY2hlZWtzIHJlbW92ZWQgYW5kIHBlZWxlZCIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICIxIGN1cCB3YXRlciIsCiAgICAgICAgIndlaWdodCIgOiAyMzcuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjIvMyBjdXAgc3VnYXIiLAogICAgICAgICJ3ZWlnaHQiIDogMTMzLjMzMzMzMzMzMzMzMzMxCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiMiB0YWJsZXNwb29ucyBsaW1lIGp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDMwLjgKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHZhbmlsbGEgYmVhbiwgc3BsaXQiLAogICAgICAgICJ3ZWlnaHQiIDogNS4wCiAgICAgIH0sIHsKICAgICAgICAidGV4dCIgOiAiNCBtYW5nb2VzLCBjaGVla3MgcmVtb3ZlZCBhbmQgcGVlbGVkIiwKICAgICAgICAid2VpZ2h0IiA6IDEzNDQuMAogICAgICB9IF0sCiAgICAgICJjYWxvcmllcyIgOiAxMzQ0LjUsCiAgICAgICJ0b3RhbFdlaWdodCIgOiAxNzUwLjEzMzMzMzMzMzMzMzIsCiAgICAgICJ0b3RhbFRpbWUiIDogMC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzQ0LjUsCiAgICAgICAgICAidW5pdCIgOiAia2NhbCIKICAgICAgICB9LAogICAgICAgICJGQVQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGYXQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuMTMxNzYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4yMzk0NDQsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxLjg4NDU2NDAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVBVIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjk2MTUyMzk5OTk5OTk5OTgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJDSE9DREYiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzM3Ljg2MzcyNjY2NjY2NjY1LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuNjI3MjAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDMxNy44MTAwODY2NjY2NjY2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIuYWRkZWQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzMuMDY2NjY2NjY2NjY2NjYsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS4xNTMxNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyNS4zMTkzMzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNjEuMTQ1MzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzOS44MzQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjMwNC4wMjI2NjY2NjY2NjY3LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMi4yNTA3ODY2NjY2NjY2NjY1LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4yNzY3NzMzMzMzMzMzMzMzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlAiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxOTIuNzcyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3MjYuMzc2LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJWSVRDIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0OTguNDU1OTk5OTk5OTk5OTYsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4zODQ1Njk5OTk5OTk5OTk5NywKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjU0NTQyMzMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDkuMDU2MzQ2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuNjEyMzY0LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU4MS4wLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJGT0xGRCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSAoZm9vZCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDU4MS4wLAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9LAogICAgICAgICJUT0NQSEEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEyLjE2Mzc2LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEsxIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA1Ni42MzI4LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjcuMjI1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA3Ljg5NTAxNTM4NDYxNTM4NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2LjE5NzIyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMi42MjEyNDIyMjIyMjIyMSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZJQlRHIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInF1YW50aXR5IiA6IDg2LjUwODgwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUFJPQ05UIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUHJvdGVpbiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjIuMzA2MzIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4wNTQ5NzIyMjIyMjIyMjIyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNi4xMTQ1MzMzMzMzMzMzMzQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzQuOTU4NSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIksiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDY1LjgyOTIxOTA0NzYxOTA1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMi41MDQzNzAzNzAzNzAzNywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOC41MTE4MjIyMjIyMjIyMjMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjcuNTM4ODU3MTQyODU3MTQzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQV9SQUUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICAgInF1YW50aXR5IiA6IDgwLjcwODQ0NDQ0NDQ0NDQ0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODMwLjc2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjUuNjM3OTk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzIuMDgzNzI1NDkwMTk2MDcsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJOSUEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNDUuMjgxNzI5OTk5OTk5OTk2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQjZBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODAuNjE4MiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0NS4yNSwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNjAuODE4Nzk5OTk5OTk5OTk2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDcwLjc5MTAwMDAwMDAwMDAxLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfQogICAgICB9LAogICAgICAiZGlnZXN0IiA6IFsgewogICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAidGFnIiA6ICJGQVQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiA1LjEzMTc2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNy44OTUwMTUzODQ2MTUzODQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAxLjIzOTQ0NCwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiA2LjE5NzIyLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMS44ODQ1NjQwMDAwMDAwMDAxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAwLjk2MTUyMzk5OTk5OTk5OTgsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDYXJicyIsCiAgICAgICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJjYXJib2h5ZHJhdGVDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMzM3Ljg2MzcyNjY2NjY2NjY1LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTEyLjYyMTI0MjIyMjIyMjIxLAogICAgICAgICJ1bml0IiA6ICJnIiwKICAgICAgICAic3ViIiA6IFsgewogICAgICAgICAgImxhYmVsIiA6ICJDYXJicyAobmV0KSIsCiAgICAgICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAgICJ0b3RhbCIgOiAzMTYuMjM2NTI2NjY2NjY2NjMsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiRmliZXIiLAogICAgICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAiZmliZXJDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAyMS42MjcyMDAwMDAwMDAwMDIsCiAgICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgICAiZGFpbHkiIDogODYuNTA4ODAwMDAwMDAwMDEsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICAgICAidGFnIiA6ICJTVUdBUiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzdWdhckNvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDMxNy44MTAwODY2NjY2NjY2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDEzMy4wNjY2NjY2NjY2NjY2NiwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiAicHJvdGVpbkNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxMS4xNTMxNiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDIyLjMwNjMyLAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogMjUuMzE5MzMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4wNTQ5NzIyMjIyMjIyMjIyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTYxLjE0NTMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTYuMTE0NTMzMzMzMzMzMzM0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMzkuODM0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzQuOTU4NSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgInRhZyIgOiAiSyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAyMzA0LjAyMjY2NjY2NjY2NjcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2NS44MjkyMTkwNDc2MTkwNSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuMjUwNzg2NjY2NjY2NjY2NSwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjUwNDM3MDM3MDM3MDM3LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgInRhZyIgOiAiWk4iLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMS4yNzY3NzMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogOC41MTE4MjIyMjIyMjIyMjMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgICAidGFnIiA6ICJQIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDE5Mi43NzIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNy41Mzg4NTcxNDI4NTcxNDMsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAgICJ0YWciIDogIlZJVEFfUkFFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDcyNi4zNzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA4MC43MDg0NDQ0NDQ0NDQ0NCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICJ0YWciIDogIlZJVEMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogNDk4LjQ1NTk5OTk5OTk5OTk2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogODMwLjc2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMzg0NTY5OTk5OTk5OTk5OTcsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNS42Mzc5OTk5OTk5OTk5OTUsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC41NDU0MjMzMzMzMzMzMzMzLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMzIuMDgzNzI1NDkwMTk2MDcsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICAgInRhZyIgOiAiTklBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDkuMDU2MzQ2LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNDUuMjgxNzI5OTk5OTk5OTk2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICAgInRhZyIgOiAiVklUQjZBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDEuNjEyMzY0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogODAuNjE4MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1ODEuMCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE0NS4yNSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiA1ODEuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiRm9saWMgYWNpZCIsCiAgICAgICAgInRhZyIgOiAiRk9MQUMiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4wLAogICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEIxMiIsCiAgICAgICAgInRhZyIgOiAiVklUQjEyIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgICAidGFnIiA6ICJWSVREIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAidGFnIiA6ICJUT0NQSEEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTIuMTYzNzYsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA2MC44MTg3OTk5OTk5OTk5OTYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICJ0YWciIDogIlZJVEsxIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDU2LjYzMjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA3MC43OTEwMDAwMDAwMDAwMSwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9IF0KICAgIH0sCiAgICAiYm9va21hcmtlZCIgOiBmYWxzZSwKICAgICJib3VnaHQiIDogZmFsc2UKICB9LCB7CiAgICAicmVjaXBlIiA6IHsKICAgICAgInVyaSIgOiAiaHR0cDovL3d3dy5lZGFtYW0uY29tL29udG9sb2dpZXMvZWRhbWFtLm93bCNyZWNpcGVfNWRhYzI2OTVhMjU4YzEzNzM2YmU4NjBjYzhlNTU5ZGYiLAogICAgICAibGFiZWwiIDogIlJhc3BiZXJyeSBMaW1lIFBvcHNpY2xlcyIsCiAgICAgICJpbWFnZSIgOiAiaHR0cHM6Ly93d3cuZWRhbWFtLmNvbS93ZWItaW1nLzJlMC8yZTA3MDY5MDg1MTUwMzQxNTQ3NmM4MjQ3MTNkZGY3NC5qcGciLAogICAgICAic291cmNlIiA6ICJGb29kNTIiLAogICAgICAidXJsIiA6ICJodHRwczovL2Zvb2Q1Mi5jb20vcmVjaXBlcy8xMzE0NC1yYXNwYmVycnktbGltZS1pY2UtcG9wcyIsCiAgICAgICJzaGFyZUFzIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vcmVjaXBlL3Jhc3BiZXJyeS1saW1lLXBvcHNpY2xlcy01ZGFjMjY5NWEyNThjMTM3MzZiZTg2MGNjOGU1NTlkZi9saW1lIiwKICAgICAgInlpZWxkIiA6IDguMCwKICAgICAgImRpZXRMYWJlbHMiIDogWyAiTG93LUZhdCIgXSwKICAgICAgImhlYWx0aExhYmVscyIgOiBbICJWZWdhbiIsICJWZWdldGFyaWFuIiwgIlBlYW51dC1GcmVlIiwgIlRyZWUtTnV0LUZyZWUiLCAiQWxjb2hvbC1GcmVlIiBdLAogICAgICAiY2F1dGlvbnMiIDogWyBdLAogICAgICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjQgY3VwcyByYXNwYmVycmllcyIsICI3IHRhYmxlc3Bvb25zIHN1Z2FyIiwgIjEvMyBjdXAgd2F0ZXIiLCAiMSB0ZWFzcG9vbiBmaW5lbHkgbWluY2VkIGxpbWUgemVzdCIsICIxIHRhYmxlc3Bvb24gbGltZSBqdWljZSIgXSwKICAgICAgImluZ3JlZGllbnRzIiA6IFsgewogICAgICAgICJ0ZXh0IiA6ICI0IGN1cHMgcmFzcGJlcnJpZXMiLAogICAgICAgICJ3ZWlnaHQiIDogNDkyLjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICI3IHRhYmxlc3Bvb25zIHN1Z2FyIiwKICAgICAgICAid2VpZ2h0IiA6IDg4LjIKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxLzMgY3VwIHdhdGVyIiwKICAgICAgICAid2VpZ2h0IiA6IDc5LjAKICAgICAgfSwgewogICAgICAgICJ0ZXh0IiA6ICIxIHRlYXNwb29uIGZpbmVseSBtaW5jZWQgbGltZSB6ZXN0IiwKICAgICAgICAid2VpZ2h0IiA6IDIuMAogICAgICB9LCB7CiAgICAgICAgInRleHQiIDogIjEgdGFibGVzcG9vbiBsaW1lIGp1aWNlIiwKICAgICAgICAid2VpZ2h0IiA6IDE1LjQKICAgICAgfSBdLAogICAgICAiY2Fsb3JpZXMiIDogNjAxLjk2NCwKICAgICAgInRvdGFsV2VpZ2h0IiA6IDY3Ni42LAogICAgICAidG90YWxUaW1lIiA6IDE5MC4wLAogICAgICAidG90YWxOdXRyaWVudHMiIDogewogICAgICAgICJFTkVSQ19LQ0FMIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA2MDEuOTY0LAogICAgICAgICAgInVuaXQiIDogImtjYWwiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzLjIxNDc3OTk5OTk5OTk5OTcsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQVNBVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4wOTU0OTIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGQU1TIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjMxNjMzMiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkZBUFUiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEuODUwMzIxOTk5OTk5OTk5OCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIkNIT0NERiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxNDguNTQzODQwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJGSUJURyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAzMi4yNTM2LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwKICAgICAgICAiU1VHQVIiIDogewogICAgICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMC4xMTM2NiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlNVR0FSLmFkZGVkIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzLCBhZGRlZCIsCiAgICAgICAgICAicXVhbnRpdHkiIDogODguMDIzNiwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sCiAgICAgICAgIlBST0NOVCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAgICAgInF1YW50aXR5IiA6IDUuOTk4NjgsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LAogICAgICAgICJOQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlNvZGl1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogOS4zODk5OTk5OTk5OTk5OTksCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMzEuMDg4MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiTUciIDogewogICAgICAgICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgICAgICAgInF1YW50aXR5IiA6IDExMC41NjIsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNzY1LjkwMiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDMuNDY4NzU5OTk5OTk5OTk5NiwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJaTiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDIuMTAwNDM5OTk5OTk5OTk5NCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQ1LjA3NjAwMDAwMDAwMDAyLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIlZJVEFfUkFFIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMC4yMDgsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlZJVEMiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzNi4xMDQsCiAgICAgICAgICAidW5pdCIgOiAibWciCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMC4xNjI0OSwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJSSUJGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjIwNzYyNzk5OTk5OTk5OTk4LAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIk5JQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyLjk3MjAyOCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRCNkEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjI3OTg5MjAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogIm1nIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEwNS4xMiwKICAgICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgICAgfSwKICAgICAgICAiRk9MRkQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMDUuMTIsCiAgICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICAgIH0sCiAgICAgICAgIlRPQ1BIQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogNC4zMTkyOCwKICAgICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgICB9LAogICAgICAgICJWSVRLMSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gSyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzguNDY4Mzk5OTk5OTk5OTk1LAogICAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJ0b3RhbERhaWx5IiA6IHsKICAgICAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMzAuMDk4MjAwMDAwMDAwMDA2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRkFUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgICAgICJxdWFudGl0eSIgOiA0Ljk0NTgxNTM4NDYxNTM4NCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZBU0FUIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjQ3NzQ1OTk5OTk5OTk5OTk0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0hPQ0RGIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ5LjUxNDYxMzMzMzMzMzM0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiRklCVEciIDogewogICAgICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTI5LjAxNDQsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQUk9DTlQiIDogewogICAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMS45OTczNiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIk5BIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAwLjM5MTI0OTk5OTk5OTk5OTkzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiQ0EiIDogewogICAgICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAxMy4xMDg4MDAwMDAwMDAwMDIsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJNRyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjcuNjQwNDk5OTk5OTk5OTk2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiSyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjEuODgyOTE0Mjg1NzE0MjksCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICAgInF1YW50aXR5IiA6IDE5LjI3MDg4ODg4ODg4ODg4NywKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlpOIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTQuMDAyOTMzMzMzMzMzMzMsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJQIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjAuNzI1MTQyODU3MTQyODYsCiAgICAgICAgICAidW5pdCIgOiAiJSIKICAgICAgICB9LAogICAgICAgICJWSVRBX1JBRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMS4xMzQyMjIyMjIyMjIyMjIyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUQyIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMjI2Ljg0MDAwMDAwMDAwMDAzLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVEhJQSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlRoaWFtaW4gKEIxKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTAuODMyNjY2NjY2NjY2NjY2LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiUklCRiIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlJpYm9mbGF2aW4gKEIyKSIsCiAgICAgICAgICAicXVhbnRpdHkiIDogMTIuMjEzNDExNzY0NzA1ODgyLAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiTklBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiTmlhY2luIChCMykiLAogICAgICAgICAgInF1YW50aXR5IiA6IDE0Ljg2MDEzOTk5OTk5OTk5OCwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIlZJVEI2QSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjYiLAogICAgICAgICAgInF1YW50aXR5IiA6IDEzLjk5NDYwMDAwMDAwMDAwMiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0sCiAgICAgICAgIkZPTERGRSIgOiB7CiAgICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICAgInF1YW50aXR5IiA6IDI2LjI4LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVE9DUEhBIiA6IHsKICAgICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBFIiwKICAgICAgICAgICJxdWFudGl0eSIgOiAyMS41OTY0LAogICAgICAgICAgInVuaXQiIDogIiUiCiAgICAgICAgfSwKICAgICAgICAiVklUSzEiIDogewogICAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAgICAgInF1YW50aXR5IiA6IDQ4LjA4NTQ5OTk5OTk5OTk5NiwKICAgICAgICAgICJ1bml0IiA6ICIlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgImRpZ2VzdCIgOiBbIHsKICAgICAgICAibGFiZWwiIDogIkZhdCIsCiAgICAgICAgInRhZyIgOiAiRkFUIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJmYXRDb250ZW50IiwKICAgICAgICAidG90YWwiIDogMy4yMTQ3Nzk5OTk5OTk5OTk3LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogNC45NDU4MTUzODQ2MTUzODQsCiAgICAgICAgInVuaXQiIDogImciLAogICAgICAgICJzdWIiIDogWyB7CiAgICAgICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICAgICAidGFnIiA6ICJGQVNBVCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgICAgICJ0b3RhbCIgOiAwLjA5NTQ5MiwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAwLjQ3NzQ1OTk5OTk5OTk5OTk0LAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJUcmFucyIsCiAgICAgICAgICAidGFnIiA6ICJGQVRSTiIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSwgewogICAgICAgICAgImxhYmVsIiA6ICJNb25vdW5zYXR1cmF0ZWQiLAogICAgICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMC4zMTYzMzIsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiUG9seXVuc2F0dXJhdGVkIiwKICAgICAgICAgICJ0YWciIDogIkZBUFUiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDEuODUwMzIxOTk5OTk5OTk5OCwKICAgICAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICAgInVuaXQiIDogImciCiAgICAgICAgfSBdCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgICAidGFnIiA6ICJDSE9DREYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgICAgICJ0b3RhbCIgOiAxNDguNTQzODQwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0OS41MTQ2MTMzMzMzMzMzNCwKICAgICAgICAidW5pdCIgOiAiZyIsCiAgICAgICAgInN1YiIgOiBbIHsKICAgICAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAgICAgInRhZyIgOiAiQ0hPQ0RGLm5ldCIsCiAgICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgICAidG90YWwiIDogMTE2LjI5MDI0MDAwMDAwMDAxLAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgICAgICJ0YWciIDogIkZJQlRHIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogImZpYmVyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMzIuMjUzNiwKICAgICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAgICJkYWlseSIgOiAxMjkuMDE0NCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0sIHsKICAgICAgICAgICJsYWJlbCIgOiAiU3VnYXJzIiwKICAgICAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgICAgICJzY2hlbWFPcmdUYWciIDogInN1Z2FyQ29udGVudCIsCiAgICAgICAgICAidG90YWwiIDogMTEwLjExMzY2LAogICAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgICAidW5pdCIgOiAiZyIKICAgICAgICB9LCB7CiAgICAgICAgICAibGFiZWwiIDogIlN1Z2FycywgYWRkZWQiLAogICAgICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICAgInRvdGFsIiA6IDg4LjAyMzYsCiAgICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgICAgICJ1bml0IiA6ICJnIgogICAgICAgIH0gXQogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICAgICAidGFnIiA6ICJQUk9DTlQiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogInByb3RlaW5Db250ZW50IiwKICAgICAgICAidG90YWwiIDogNS45OTg2OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDExLjk5NzM2LAogICAgICAgICJ1bml0IiA6ICJnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJDaG9sZXN0ZXJvbCIsCiAgICAgICAgInRhZyIgOiAiQ0hPTEUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogImNob2xlc3Rlcm9sQ29udGVudCIsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAgICJ0YWciIDogIk5BIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6ICJzb2RpdW1Db250ZW50IiwKICAgICAgICAidG90YWwiIDogOS4zODk5OTk5OTk5OTk5OTksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAwLjM5MTI0OTk5OTk5OTk5OTkzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiQ2FsY2l1bSIsCiAgICAgICAgInRhZyIgOiAiQ0EiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTMxLjA4ODAwMDAwMDAwMDAyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMTMuMTA4ODAwMDAwMDAwMDAyLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgICAidGFnIiA6ICJNRyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMTAuNTYyLAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjcuNjQwNDk5OTk5OTk5OTk2LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgICAidGFnIiA6ICJLIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDc2NS45MDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMS44ODI5MTQyODU3MTQyOSwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAgICJ0YWciIDogIkZFIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDMuNDY4NzU5OTk5OTk5OTk5NiwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE5LjI3MDg4ODg4ODg4ODg4NywKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAgICJ0YWciIDogIlpOIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDIuMTAwNDM5OTk5OTk5OTk5NCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDE0LjAwMjkzMzMzMzMzMzMzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAgICAgInRhZyIgOiAiUCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxNDUuMDc2MDAwMDAwMDAwMDIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMC43MjUxNDI4NTcxNDI4NiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQSIsCiAgICAgICAgInRhZyIgOiAiVklUQV9SQUUiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMTAuMjA4LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMS4xMzQyMjIyMjIyMjIyMjIyLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAgICAgInRhZyIgOiAiVklUQyIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMzYuMTA0LAogICAgICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICAgICAiZGFpbHkiIDogMjI2Ljg0MDAwMDAwMDAwMDAzLAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVGhpYW1pbiAoQjEpIiwKICAgICAgICAidGFnIiA6ICJUSElBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMTYyNDksCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxMC44MzI2NjY2NjY2NjY2NjYsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAgICJ0YWciIDogIlJJQkYiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4yMDc2Mjc5OTk5OTk5OTk5OCwKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEyLjIxMzQxMTc2NDcwNTg4MiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgICAidGFnIiA6ICJOSUEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMi45NzIwMjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAxNC44NjAxMzk5OTk5OTk5OTgsCiAgICAgICAgInVuaXQiIDogIm1nIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICAgICAidGFnIiA6ICJWSVRCNkEiLAogICAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgICAidG90YWwiIDogMC4yNzk4OTIwMDAwMDAwMDAwMywKICAgICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICAgImRhaWx5IiA6IDEzLjk5NDYwMDAwMDAwMDAwMiwKICAgICAgICAidW5pdCIgOiAibWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAgICJ0YWciIDogIkZPTERGRSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMDUuMTIsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyNi4yOCwKICAgICAgICAidW5pdCIgOiAiwrVnIgogICAgICB9LCB7CiAgICAgICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICAgICAidGFnIiA6ICJGT0xGRCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAxMDUuMTIsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAgICJ0YWciIDogIkZPTEFDIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDAuMCwKICAgICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCMTIiLAogICAgICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICAgInRhZyIgOiAiVklURCIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgICAiZGFpbHkiIDogMC4wLAogICAgICAgICJ1bml0IiA6ICLCtWciCiAgICAgIH0sIHsKICAgICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICAgInRvdGFsIiA6IDQuMzE5MjgsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiAyMS41OTY0LAogICAgICAgICJ1bml0IiA6ICJtZyIKICAgICAgfSwgewogICAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgICAidGFnIiA6ICJWSVRLMSIsCiAgICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAgICJ0b3RhbCIgOiAzOC40NjgzOTk5OTk5OTk5OTUsCiAgICAgICAgImhhc1JESSIgOiB0cnVlLAogICAgICAgICJkYWlseSIgOiA0OC4wODU0OTk5OTk5OTk5OTYsCiAgICAgICAgInVuaXQiIDogIsK1ZyIKICAgICAgfSBdCiAgICB9LAogICAgImJvb2ttYXJrZWQiIDogZmFsc2UsCiAgICAiYm91Z2h0IiA6IGZhbHNlCiAgfSBdCn0= + http_version: + recorded_at: Fri, 04 May 2018 20:58:57 GMT +recorded_with: VCR 4.0.0 diff --git a/test/cassettes/single-recipe-query.yml b/test/cassettes/single-recipe-query.yml new file mode 100644 index 000000000..2bfc9619a --- /dev/null +++ b/test/cassettes/single-recipe-query.yml @@ -0,0 +1,47 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.edamam.com/search?app_id=379dc117&app_key=9fcb79f83581cc266057d2b408a6b9cb&r=http://www.edamam.com/ontologies/edamam.owl%23recipe_bbdb996ddc7cf771c863538e02ed13c4 + 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: + - Fri, 04 May 2018 20:49:48 GMT + Content-Type: + - application/json;charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - route=ee37ea0cbec446fe0dc609c7b4a6323b; Path=/ + Cache-Control: + - private + Expires: + - Thu, 01 Jan 1970 00:00:00 UTC + X-Served-By: + - ip-10-149-22-246/10.149.22.246 + Vary: + - Accept-Encoding + body: + encoding: ASCII-8BIT + string: !binary |- + W3sKICAidXJpIiA6ICJodHRwOi8vd3d3LmVkYW1hbS5jb20vb250b2xvZ2llcy9lZGFtYW0ub3dsI3JlY2lwZV9iYmRiOTk2ZGRjN2NmNzcxYzg2MzUzOGUwMmVkMTNjNCIsCiAgImxhYmVsIiA6ICJQaXp6YSIsCiAgImltYWdlIiA6ICJodHRwczovL3d3dy5lZGFtYW0uY29tL3dlYi1pbWcvZjJiL2YyYjNmYzQyZjk3MTY0NDE5MWRlNGI1MDI4ZDllMjE4LmpwZyIsCiAgInNvdXJjZSIgOiAiQ29va2luZyBDaGFubmVsIiwKICAidXJsIiA6ICJodHRwOi8vd3d3LmNvb2tpbmdjaGFubmVsdHYuY29tL3JlY2lwZXMvcGl6emEtMTkyNjY5MyIsCiAgInNoYXJlQXMiIDogImh0dHA6Ly93d3cuZWRhbWFtLmNvbS9yZWNpcGUvcGl6emEtYmJkYjk5NmRkYzdjZjc3MWM4NjM1MzhlMDJlZDEzYzQvLSIsCiAgInlpZWxkIiA6IDEyLjAsCiAgImRpZXRMYWJlbHMiIDogWyAiQmFsYW5jZWQiIF0sCiAgImhlYWx0aExhYmVscyIgOiBbICJTdWdhci1Db25zY2lvdXMiLCAiUGVhbnV0LUZyZWUiLCAiVHJlZS1OdXQtRnJlZSIsICJBbGNvaG9sLUZyZWUiIF0sCiAgImNhdXRpb25zIiA6IFsgXSwKICAiaW5ncmVkaWVudExpbmVzIiA6IFsgIjEvMiBwb3VuZCBmbG91ciIsICIxLzItb3VuY2UgYmFrZXJzIHllYXN0IiwgIjEgdGFibGVzcG9vbiB3YXRlciB0byBibGVuZCB5ZWFzdCIsICIxIHRhYmxlc3Bvb24gb2xpdmUgb2lsLCBwbHVzIGV4dHJhIHRvIGRhbXBlbiBwaXp6YSBhdCBlbmQiLCAiU2FsdCBhbmQgcGVwcGVyIiwgIjEgZWdnIiwgIjEvNCBjdXAgaG90IHdhdGVyIiwgIjIgKDEgcG91bmQgMTItb3VuY2UpIHRpbnMgb3IgMyBwb3VuZHMgZnJlc2ggZWdnLXNoYXBlZCB0b21hdG9lcywgc2tpbm5lZCwgc2VlZGVkIGFuZCByb3VnaGx5IGNob3BwZWQiLCAiMiB0ZWFzcG9vbnMgY2FwZXJzIiwgIjEvMiBzbWFsbCB0aW4gYW5jaG92aWVzIGluIG9pbCwgZHJhaW5lZCIsICI1IHNsaWNlcyBtb3p6YXJlbGxhIGNoZWVzZSIsICIxMCBibGFjayBvbGl2ZSBoYWx2ZXMiLCAiMSBzcHJpZyBvcmVnYW5vIiwgIjEgc21hbGwgZ2FybGljIGNsb3ZlLCBmaW5lbHkgc2xpY2VkIiwgIkZyZXNobHkgZ3JvdW5kIGJsYWNrIHBlcHBlciwgZm9yIGdhcm5pc2giIF0sCiAgImluZ3JlZGllbnRzIiA6IFsgewogICAgInRleHQiIDogIjEvMiBwb3VuZCBmbG91ciIsCiAgICAid2VpZ2h0IiA6IDIyNi43OTYxODUKICB9LCB7CiAgICAidGV4dCIgOiAiMS8yLW91bmNlIGJha2VycyB5ZWFzdCIsCiAgICAid2VpZ2h0IiA6IDE0LjE3NDc2MTU2MjUKICB9LCB7CiAgICAidGV4dCIgOiAiMSB0YWJsZXNwb29uIHdhdGVyIHRvIGJsZW5kIHllYXN0IiwKICAgICJ3ZWlnaHQiIDogMTIuMAogIH0sIHsKICAgICJ0ZXh0IiA6ICIxIHRhYmxlc3Bvb24gb2xpdmUgb2lsLCBwbHVzIGV4dHJhIHRvIGRhbXBlbiBwaXp6YSBhdCBlbmQiLAogICAgIndlaWdodCIgOiA0NTIuMAogIH0sIHsKICAgICJ0ZXh0IiA6ICJTYWx0IGFuZCBwZXBwZXIiLAogICAgIndlaWdodCIgOiAxMS40ODI1ODQxMTkzNzUKICB9LCB7CiAgICAidGV4dCIgOiAiU2FsdCBhbmQgcGVwcGVyIiwKICAgICJ3ZWlnaHQiIDogNS43NDEyOTIwNTk2ODc1CiAgfSwgewogICAgInRleHQiIDogIjEgZWdnIiwKICAgICJ3ZWlnaHQiIDogNDMuMAogIH0sIHsKICAgICJ0ZXh0IiA6ICIxLzQgY3VwIGhvdCB3YXRlciIsCiAgICAid2VpZ2h0IiA6IDU5LjI1CiAgfSwgewogICAgInRleHQiIDogIjIgKDEgcG91bmQgMTItb3VuY2UpIHRpbnMgb3IgMyBwb3VuZHMgZnJlc2ggZWdnLXNoYXBlZCB0b21hdG9lcywgc2tpbm5lZCwgc2VlZGVkIGFuZCByb3VnaGx5IGNob3BwZWQiLAogICAgIndlaWdodCIgOiA5MDcuMTg0NzQKICB9LCB7CiAgICAidGV4dCIgOiAiMiB0ZWFzcG9vbnMgY2FwZXJzIiwKICAgICJ3ZWlnaHQiIDogNC43MzMzMzMzMzMzMzMzMzMKICB9LCB7CiAgICAidGV4dCIgOiAiMS8yIHNtYWxsIHRpbiBhbmNob3ZpZXMgaW4gb2lsLCBkcmFpbmVkIiwKICAgICJ3ZWlnaHQiIDogMTYuODc1CiAgfSwgewogICAgInRleHQiIDogIjUgc2xpY2VzIG1venphcmVsbGEgY2hlZXNlIiwKICAgICJ3ZWlnaHQiIDogMTQxLjUKICB9LCB7CiAgICAidGV4dCIgOiAiMTAgYmxhY2sgb2xpdmUgaGFsdmVzIiwKICAgICJ3ZWlnaHQiIDogMzIuMAogIH0sIHsKICAgICJ0ZXh0IiA6ICIxIHNwcmlnIG9yZWdhbm8iLAogICAgIndlaWdodCIgOiAyLjAKICB9LCB7CiAgICAidGV4dCIgOiAiMSBzbWFsbCBnYXJsaWMgY2xvdmUsIGZpbmVseSBzbGljZWQiLAogICAgIndlaWdodCIgOiAyLjI1CiAgfSBdLAogICJjYWxvcmllcyIgOiAyODc0Ljk2NDk1NjYxNDYwNywKICAidG90YWxXZWlnaHQiIDogMTkxOS41MDUzMTE5NTU1MjA3LAogICJ0b3RhbFRpbWUiIDogODAuMCwKICAidG90YWxOdXRyaWVudHMiIDogewogICAgIkVORVJDX0tDQUwiIDogewogICAgICAibGFiZWwiIDogIkVuZXJneSIsCiAgICAgICJxdWFudGl0eSIgOiAyODc0Ljk2NDk1NjYxNDYwNywKICAgICAgInVuaXQiIDogImtjYWwiCiAgICB9LAogICAgIkZBVCIgOiB7CiAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgInF1YW50aXR5IiA6IDEwNi4zMjM4NDkxMDU3MTg3NCwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZBU0FUIiA6IHsKICAgICAgImxhYmVsIiA6ICJTYXR1cmF0ZWQiLAogICAgICAicXVhbnRpdHkiIDogNDQuNTQyOTQ3NDYzNzI4MTUsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwKICAgICJGQVRSTiIgOiB7CiAgICAgICJsYWJlbCIgOiAiVHJhbnMiLAogICAgICAicXVhbnRpdHkiIDogMC4wMTYzNCwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZBTVMiIDogewogICAgICAibGFiZWwiIDogIk1vbm91bnNhdHVyYXRlZCIsCiAgICAgICJxdWFudGl0eSIgOiAzNS42MTY0NDcyMDA5OTkyMiwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIkZBUFUiIDogewogICAgICAibGFiZWwiIDogIlBvbHl1bnNhdHVyYXRlZCIsCiAgICAgICJxdWFudGl0eSIgOiAxMy4yMTAwNjE5NjkwMDQ2NDMsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwKICAgICJDSE9DREYiIDogewogICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgInF1YW50aXR5IiA6IDM1OC4zNDAyMzIyMzk3MzI3LAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiRklCVEciIDogewogICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgInF1YW50aXR5IiA6IDQzLjg3MDI4MTQ3MzA4MDEwNSwKICAgICAgInVuaXQiIDogImciCiAgICB9LAogICAgIlNVR0FSIiA6IHsKICAgICAgImxhYmVsIiA6ICJTdWdhcnMiLAogICAgICAicXVhbnRpdHkiIDogNDEuNjMwNjYxNTA1MzQ4NjgsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwKICAgICJQUk9DTlQiIDogewogICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAicXVhbnRpdHkiIDogMTMwLjE0NzE5MzM0NDA0MzIyLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sCiAgICAiQ0hPTEUiIDogewogICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgInF1YW50aXR5IiA6IDM2My41MTg3NSwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJOQSIgOiB7CiAgICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICAgInF1YW50aXR5IiA6IDUxMTcuMDExOTI4MTc1NDc5LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIkNBIiA6IHsKICAgICAgImxhYmVsIiA6ICJDYWxjaXVtIiwKICAgICAgInF1YW50aXR5IiA6IDIxMjAuNDU1MDc3NTc2NDk5NywKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJNRyIgOiB7CiAgICAgICJsYWJlbCIgOiAiTWFnbmVzaXVtIiwKICAgICAgInF1YW50aXR5IiA6IDMyNC40NDEzNjUzNjU4MTU2LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIksiIDogewogICAgICAibGFiZWwiIDogIlBvdGFzc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiAzMjg0LjY0NjM0OTA3ODQ1NiwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJGRSIgOiB7CiAgICAgICJsYWJlbCIgOiAiSXJvbiIsCiAgICAgICJxdWFudGl0eSIgOiAyMi45MzY0NDkzMzQwNjg1NzcsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiWk4iIDogewogICAgICAibGFiZWwiIDogIlppbmMiLAogICAgICAicXVhbnRpdHkiIDogMTUuNDA3OTE0MDkzMjM5NDQ4LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIlAiIDogewogICAgICAibGFiZWwiIDogIlBob3NwaG9ydXMiLAogICAgICAicXVhbnRpdHkiIDogMjEwMi41MjY1OTE1NDA3NjU0LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIlZJVEFfUkFFIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAicXVhbnRpdHkiIDogODM5LjMxODQzMDE4OTQ0OSwKICAgICAgInVuaXQiIDogIsK1ZyIKICAgIH0sCiAgICAiVklUQyIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBDIiwKICAgICAgInF1YW50aXR5IiA6IDEyMS4wNDczMzQ4NTgwMjA4NSwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJUSElBIiA6IHsKICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAicXVhbnRpdHkiIDogOS4zODc4NDkwNjgxNDMyMTMsCiAgICAgICJ1bml0IiA6ICJtZyIKICAgIH0sCiAgICAiUklCRiIgOiB7CiAgICAgICJsYWJlbCIgOiAiUmlib2ZsYXZpbiAoQjIpIiwKICAgICAgInF1YW50aXR5IiA6IDMuNDcyNTg1NDUyNTQwNzcwNywKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJOSUEiIDogewogICAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICAgInF1YW50aXR5IiA6IDMzLjQ4MzA0NzM2MTAwMDU2LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIlZJVEI2QSIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICJxdWFudGl0eSIgOiAyLjEzODk3NjM4Mjc5Nzg1OCwKICAgICAgInVuaXQiIDogIm1nIgogICAgfSwKICAgICJGT0xERkUiIDogewogICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAicXVhbnRpdHkiIDogMTA3OC40MjcxNDQxNzkzMTM3LAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfSwKICAgICJGT0xGRCIgOiB7CiAgICAgICJsYWJlbCIgOiAiRm9sYXRlIChmb29kKSIsCiAgICAgICJxdWFudGl0eSIgOiA3ODQuNjI3MTQ0MTc5MzEzNiwKICAgICAgInVuaXQiIDogIsK1ZyIKICAgIH0sCiAgICAiRk9MQUMiIDogewogICAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgICAicXVhbnRpdHkiIDogMTcxLjc2MDAwMDAwMDAwMDAyLAogICAgICAidW5pdCIgOiAiwrVnIgogICAgfSwKICAgICJWSVRCMTIiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgInF1YW50aXR5IiA6IDUuMTA4MDcyMzMzMDkzNzUsCiAgICAgICJ1bml0IiA6ICLCtWciCiAgICB9LAogICAgIlZJVEQiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gRCIsCiAgICAgICJxdWFudGl0eSIgOiAxLjg1NDM3NSwKICAgICAgInVuaXQiIDogIsK1ZyIKICAgIH0sCiAgICAiVE9DUEhBIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgICAicXVhbnRpdHkiIDogMTIuMzYwNjE3OTQ3NzU0MDg2LAogICAgICAidW5pdCIgOiAibWciCiAgICB9LAogICAgIlZJVEsxIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEsiLAogICAgICAicXVhbnRpdHkiIDogODMuMzk1NDEwOTQyOTU4NDMsCiAgICAgICJ1bml0IiA6ICLCtWciCiAgICB9CiAgfSwKICAidG90YWxEYWlseSIgOiB7CiAgICAiRU5FUkNfS0NBTCIgOiB7CiAgICAgICJsYWJlbCIgOiAiRW5lcmd5IiwKICAgICAgInF1YW50aXR5IiA6IDE0My43NDgyNDc4MzA3MzAzOCwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIkZBVCIgOiB7CiAgICAgICJsYWJlbCIgOiAiRmF0IiwKICAgICAgInF1YW50aXR5IiA6IDE2My41NzUxNTI0NzAzMzY1LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiRkFTQVQiIDogewogICAgICAibGFiZWwiIDogIlNhdHVyYXRlZCIsCiAgICAgICJxdWFudGl0eSIgOiAyMjIuNzE0NzM3MzE4NjQwNzQsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJDSE9DREYiIDogewogICAgICAibGFiZWwiIDogIkNhcmJzIiwKICAgICAgInF1YW50aXR5IiA6IDExOS40NDY3NDQwNzk5MTA5MSwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIkZJQlRHIiA6IHsKICAgICAgImxhYmVsIiA6ICJGaWJlciIsCiAgICAgICJxdWFudGl0eSIgOiAxNzUuNDgxMTI1ODkyMzIwNDIsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJQUk9DTlQiIDogewogICAgICAibGFiZWwiIDogIlByb3RlaW4iLAogICAgICAicXVhbnRpdHkiIDogMjYwLjI5NDM4NjY4ODA4NjQzLAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiQ0hPTEUiIDogewogICAgICAibGFiZWwiIDogIkNob2xlc3Rlcm9sIiwKICAgICAgInF1YW50aXR5IiA6IDEyMS4xNzI5MTY2NjY2NjY2NywKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIk5BIiA6IHsKICAgICAgImxhYmVsIiA6ICJTb2RpdW0iLAogICAgICAicXVhbnRpdHkiIDogMjEzLjIwODgzMDM0MDY0NDk0LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiQ0EiIDogewogICAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgICAicXVhbnRpdHkiIDogMjEyLjA0NTUwNzc1NzY0OTk3LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiTUciIDogewogICAgICAibGFiZWwiIDogIk1hZ25lc2l1bSIsCiAgICAgICJxdWFudGl0eSIgOiA4MS4xMTAzNDEzNDE0NTM5LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiSyIgOiB7CiAgICAgICJsYWJlbCIgOiAiUG90YXNzaXVtIiwKICAgICAgInF1YW50aXR5IiA6IDkzLjg0NzAzODU0NTA5ODc0LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiRkUiIDogewogICAgICAibGFiZWwiIDogIklyb24iLAogICAgICAicXVhbnRpdHkiIDogMTI3LjQyNDcxODUyMjYwMzIsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJaTiIgOiB7CiAgICAgICJsYWJlbCIgOiAiWmluYyIsCiAgICAgICJxdWFudGl0eSIgOiAxMDIuNzE5NDI3Mjg4MjYyOTksCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJQIiA6IHsKICAgICAgImxhYmVsIiA6ICJQaG9zcGhvcnVzIiwKICAgICAgInF1YW50aXR5IiA6IDMwMC4zNjA5NDE2NDg2ODA3NSwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlZJVEFfUkFFIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEEiLAogICAgICAicXVhbnRpdHkiIDogOTMuMjU3NjAzMzU0MzgzMjIsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVRDIiA6IHsKICAgICAgImxhYmVsIiA6ICJWaXRhbWluIEMiLAogICAgICAicXVhbnRpdHkiIDogMjAxLjc0NTU1ODA5NjcwMTQsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJUSElBIiA6IHsKICAgICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgICAicXVhbnRpdHkiIDogNjI1Ljg1NjYwNDU0Mjg4MDksCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJSSUJGIiA6IHsKICAgICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgICAicXVhbnRpdHkiIDogMjA0LjI2OTczMjUwMjM5ODI4LAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiTklBIiA6IHsKICAgICAgImxhYmVsIiA6ICJOaWFjaW4gKEIzKSIsCiAgICAgICJxdWFudGl0eSIgOiAxNjcuNDE1MjM2ODA1MDAyOCwKICAgICAgInVuaXQiIDogIiUiCiAgICB9LAogICAgIlZJVEI2QSIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBCNiIsCiAgICAgICJxdWFudGl0eSIgOiAxMDYuOTQ4ODE5MTM5ODkyODksCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJGT0xERkUiIDogewogICAgICAibGFiZWwiIDogIkZvbGF0ZSBlcXVpdmFsZW50ICh0b3RhbCkiLAogICAgICAicXVhbnRpdHkiIDogMjY5LjYwNjc4NjA0NDgyODQsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVRCMTIiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICAgInF1YW50aXR5IiA6IDg1LjEzNDUzODg4NDg5NTgzLAogICAgICAidW5pdCIgOiAiJSIKICAgIH0sCiAgICAiVklURCIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBEIiwKICAgICAgInF1YW50aXR5IiA6IDAuNDYzNTkzNzUsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJUT0NQSEEiIDogewogICAgICAibGFiZWwiIDogIlZpdGFtaW4gRSIsCiAgICAgICJxdWFudGl0eSIgOiA2MS44MDMwODk3Mzg3NzA0MjQsCiAgICAgICJ1bml0IiA6ICIlIgogICAgfSwKICAgICJWSVRLMSIgOiB7CiAgICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICAgInF1YW50aXR5IiA6IDEwNC4yNDQyNjM2Nzg2OTgwNSwKICAgICAgInVuaXQiIDogIiUiCiAgICB9CiAgfSwKICAiZGlnZXN0IiA6IFsgewogICAgImxhYmVsIiA6ICJGYXQiLAogICAgInRhZyIgOiAiRkFUIiwKICAgICJzY2hlbWFPcmdUYWciIDogImZhdENvbnRlbnQiLAogICAgInRvdGFsIiA6IDEwNi4zMjM4NDkxMDU3MTg3NCwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiAxNjMuNTc1MTUyNDcwMzM2NSwKICAgICJ1bml0IiA6ICJnIiwKICAgICJzdWIiIDogWyB7CiAgICAgICJsYWJlbCIgOiAiU2F0dXJhdGVkIiwKICAgICAgInRhZyIgOiAiRkFTQVQiLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJzYXR1cmF0ZWRGYXRDb250ZW50IiwKICAgICAgInRvdGFsIiA6IDQ0LjU0Mjk0NzQ2MzcyODE1LAogICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICJkYWlseSIgOiAyMjIuNzE0NzM3MzE4NjQwNzQsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIlRyYW5zIiwKICAgICAgInRhZyIgOiAiRkFUUk4iLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJ0cmFuc0ZhdENvbnRlbnQiLAogICAgICAidG90YWwiIDogMC4wMTYzNCwKICAgICAgImhhc1JESSIgOiBmYWxzZSwKICAgICAgImRhaWx5IiA6IDAuMCwKICAgICAgInVuaXQiIDogImciCiAgICB9LCB7CiAgICAgICJsYWJlbCIgOiAiTW9ub3Vuc2F0dXJhdGVkIiwKICAgICAgInRhZyIgOiAiRkFNUyIsCiAgICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICAgInRvdGFsIiA6IDM1LjYxNjQ0NzIwMDk5OTIyLAogICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAiZGFpbHkiIDogMC4wLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sIHsKICAgICAgImxhYmVsIiA6ICJQb2x5dW5zYXR1cmF0ZWQiLAogICAgICAidGFnIiA6ICJGQVBVIiwKICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAidG90YWwiIDogMTMuMjEwMDYxOTY5MDA0NjQzLAogICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAiZGFpbHkiIDogMC4wLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0gXQogIH0sIHsKICAgICJsYWJlbCIgOiAiQ2FyYnMiLAogICAgInRhZyIgOiAiQ0hPQ0RGIiwKICAgICJzY2hlbWFPcmdUYWciIDogImNhcmJvaHlkcmF0ZUNvbnRlbnQiLAogICAgInRvdGFsIiA6IDM1OC4zNDAyMzIyMzk3MzI3LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDExOS40NDY3NDQwNzk5MTA5MSwKICAgICJ1bml0IiA6ICJnIiwKICAgICJzdWIiIDogWyB7CiAgICAgICJsYWJlbCIgOiAiQ2FyYnMgKG5ldCkiLAogICAgICAidGFnIiA6ICJDSE9DREYubmV0IiwKICAgICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgICAidG90YWwiIDogMzE0LjQ2OTk1MDc2NjY1MjYsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIkZpYmVyIiwKICAgICAgInRhZyIgOiAiRklCVEciLAogICAgICAic2NoZW1hT3JnVGFnIiA6ICJmaWJlckNvbnRlbnQiLAogICAgICAidG90YWwiIDogNDMuODcwMjgxNDczMDgwMTA1LAogICAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAgICJkYWlseSIgOiAxNzUuNDgxMTI1ODkyMzIwNDIsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSwgewogICAgICAibGFiZWwiIDogIlN1Z2FycyIsCiAgICAgICJ0YWciIDogIlNVR0FSIiwKICAgICAgInNjaGVtYU9yZ1RhZyIgOiAic3VnYXJDb250ZW50IiwKICAgICAgInRvdGFsIiA6IDQxLjYzMDY2MTUwNTM0ODY4LAogICAgICAiaGFzUkRJIiA6IGZhbHNlLAogICAgICAiZGFpbHkiIDogMC4wLAogICAgICAidW5pdCIgOiAiZyIKICAgIH0sIHsKICAgICAgImxhYmVsIiA6ICJTdWdhcnMsIGFkZGVkIiwKICAgICAgInRhZyIgOiAiU1VHQVIuYWRkZWQiLAogICAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAgICJ0b3RhbCIgOiAwLjAsCiAgICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAgICJkYWlseSIgOiAwLjAsCiAgICAgICJ1bml0IiA6ICJnIgogICAgfSBdCiAgfSwgewogICAgImxhYmVsIiA6ICJQcm90ZWluIiwKICAgICJ0YWciIDogIlBST0NOVCIsCiAgICAic2NoZW1hT3JnVGFnIiA6ICJwcm90ZWluQ29udGVudCIsCiAgICAidG90YWwiIDogMTMwLjE0NzE5MzM0NDA0MzIyLAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDI2MC4yOTQzODY2ODgwODY0MywKICAgICJ1bml0IiA6ICJnIgogIH0sIHsKICAgICJsYWJlbCIgOiAiQ2hvbGVzdGVyb2wiLAogICAgInRhZyIgOiAiQ0hPTEUiLAogICAgInNjaGVtYU9yZ1RhZyIgOiAiY2hvbGVzdGVyb2xDb250ZW50IiwKICAgICJ0b3RhbCIgOiAzNjMuNTE4NzUsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTIxLjE3MjkxNjY2NjY2NjY3LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiU29kaXVtIiwKICAgICJ0YWciIDogIk5BIiwKICAgICJzY2hlbWFPcmdUYWciIDogInNvZGl1bUNvbnRlbnQiLAogICAgInRvdGFsIiA6IDUxMTcuMDExOTI4MTc1NDc5LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDIxMy4yMDg4MzAzNDA2NDQ5NCwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIkNhbGNpdW0iLAogICAgInRhZyIgOiAiQ0EiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDIxMjAuNDU1MDc3NTc2NDk5NywKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiAyMTIuMDQ1NTA3NzU3NjQ5OTcsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJNYWduZXNpdW0iLAogICAgInRhZyIgOiAiTUciLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDMyNC40NDEzNjUzNjU4MTU2LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDgxLjExMDM0MTM0MTQ1MzksCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJQb3Rhc3NpdW0iLAogICAgInRhZyIgOiAiSyIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMzI4NC42NDYzNDkwNzg0NTYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogOTMuODQ3MDM4NTQ1MDk4NzQsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJJcm9uIiwKICAgICJ0YWciIDogIkZFIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAyMi45MzY0NDkzMzQwNjg1NzcsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTI3LjQyNDcxODUyMjYwMzIsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJaaW5jIiwKICAgICJ0YWciIDogIlpOIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxNS40MDc5MTQwOTMyMzk0NDgsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTAyLjcxOTQyNzI4ODI2Mjk5LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiUGhvc3Bob3J1cyIsCiAgICAidGFnIiA6ICJQIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAyMTAyLjUyNjU5MTU0MDc2NTQsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMzAwLjM2MDk0MTY0ODY4MDc1LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBBIiwKICAgICJ0YWciIDogIlZJVEFfUkFFIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiA4MzkuMzE4NDMwMTg5NDQ5LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDkzLjI1NzYwMzM1NDM4MzIyLAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQyIsCiAgICAidGFnIiA6ICJWSVRDIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxMjEuMDQ3MzM0ODU4MDIwODUsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMjAxLjc0NTU1ODA5NjcwMTQsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJUaGlhbWluIChCMSkiLAogICAgInRhZyIgOiAiVEhJQSIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogOS4zODc4NDkwNjgxNDMyMTMsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNjI1Ljg1NjYwNDU0Mjg4MDksCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJSaWJvZmxhdmluIChCMikiLAogICAgInRhZyIgOiAiUklCRiIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMy40NzI1ODU0NTI1NDA3NzA3LAogICAgImhhc1JESSIgOiB0cnVlLAogICAgImRhaWx5IiA6IDIwNC4yNjk3MzI1MDIzOTgyOCwKICAgICJ1bml0IiA6ICJtZyIKICB9LCB7CiAgICAibGFiZWwiIDogIk5pYWNpbiAoQjMpIiwKICAgICJ0YWciIDogIk5JQSIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMzMuNDgzMDQ3MzYxMDAwNTYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTY3LjQxNTIzNjgwNTAwMjgsCiAgICAidW5pdCIgOiAibWciCiAgfSwgewogICAgImxhYmVsIiA6ICJWaXRhbWluIEI2IiwKICAgICJ0YWciIDogIlZJVEI2QSIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMi4xMzg5NzYzODI3OTc4NTgsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMTA2Ljk0ODgxOTEzOTg5Mjg5LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiRm9sYXRlIGVxdWl2YWxlbnQgKHRvdGFsKSIsCiAgICAidGFnIiA6ICJGT0xERkUiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDEwNzguNDI3MTQ0MTc5MzEzNywKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiAyNjkuNjA2Nzg2MDQ0ODI4NCwKICAgICJ1bml0IiA6ICLCtWciCiAgfSwgewogICAgImxhYmVsIiA6ICJGb2xhdGUgKGZvb2QpIiwKICAgICJ0YWciIDogIkZPTEZEIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiA3ODQuNjI3MTQ0MTc5MzEzNiwKICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAiZGFpbHkiIDogMC4wLAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIkZvbGljIGFjaWQiLAogICAgInRhZyIgOiAiRk9MQUMiLAogICAgInNjaGVtYU9yZ1RhZyIgOiBudWxsLAogICAgInRvdGFsIiA6IDE3MS43NjAwMDAwMDAwMDAwMiwKICAgICJoYXNSREkiIDogZmFsc2UsCiAgICAiZGFpbHkiIDogMC4wLAogICAgInVuaXQiIDogIsK1ZyIKICB9LCB7CiAgICAibGFiZWwiIDogIlZpdGFtaW4gQjEyIiwKICAgICJ0YWciIDogIlZJVEIxMiIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogNS4xMDgwNzIzMzMwOTM3NSwKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiA4NS4xMzQ1Mzg4ODQ4OTU4MywKICAgICJ1bml0IiA6ICLCtWciCiAgfSwgewogICAgImxhYmVsIiA6ICJWaXRhbWluIEQiLAogICAgInRhZyIgOiAiVklURCIsCiAgICAic2NoZW1hT3JnVGFnIiA6IG51bGwsCiAgICAidG90YWwiIDogMS44NTQzNzUsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogMC40NjM1OTM3NSwKICAgICJ1bml0IiA6ICLCtWciCiAgfSwgewogICAgImxhYmVsIiA6ICJWaXRhbWluIEUiLAogICAgInRhZyIgOiAiVE9DUEhBIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiAxMi4zNjA2MTc5NDc3NTQwODYsCiAgICAiaGFzUkRJIiA6IHRydWUsCiAgICAiZGFpbHkiIDogNjEuODAzMDg5NzM4NzcwNDI0LAogICAgInVuaXQiIDogIm1nIgogIH0sIHsKICAgICJsYWJlbCIgOiAiVml0YW1pbiBLIiwKICAgICJ0YWciIDogIlZJVEsxIiwKICAgICJzY2hlbWFPcmdUYWciIDogbnVsbCwKICAgICJ0b3RhbCIgOiA4My4zOTU0MTA5NDI5NTg0MywKICAgICJoYXNSREkiIDogdHJ1ZSwKICAgICJkYWlseSIgOiAxMDQuMjQ0MjYzNjc4Njk4MDUsCiAgICAidW5pdCIgOiAiwrVnIgogIH0gXQp9XQ== + http_version: + recorded_at: Fri, 04 May 2018 20:49:48 GMT +recorded_with: VCR 4.0.0 diff --git a/test/lib/recipe_api_wrapper_test.rb b/test/lib/recipe_api_wrapper_test.rb index 96cf52cd9..c3f9dadd5 100644 --- a/test/lib/recipe_api_wrapper_test.rb +++ b/test/lib/recipe_api_wrapper_test.rb @@ -1,13 +1,58 @@ require 'test_helper' require 'pry' -describe 'RecipeApiWrapper' do +describe RecipeApiWrapper do it 'can query a valid recipe' do + VCR.use_cassette("recipe-query") do + a_recipe = "chicken" + response = RecipeApiWrapper.list_of_queried_recipes(a_recipe) + response.class.must_equal Array + response.size.must_equal 10 + response[0].label.must_equal "Teriyaki Chicken" + response[0].source.must_equal "David Lebovitz" + response[9].label.must_equal "Roast Chicken" + response[9].source.must_equal "Fine Cooking" + end end it 'can query for a valid recipe item' do + #expected fields exist from object that is created . + VCR.use_cassette("single-recipe-query") do + a_recipe = "http://www.edamam.com/ontologies/edamam.owl#recipe_bbdb996ddc7cf771c863538e02ed13c4" + response = RecipeApiWrapper.a_recipe(a_recipe) + response.class.must_equal Recipe + response.label.must_equal "Pizza" + response.source.must_equal "Cooking Channel" + end end it 'can query a valid recipe within a specific range' do + # sample query with expected first and last range id exist + #expected names are displayed + VCR.use_cassette("recipe-query-specific-range") do + a_recipe = "lime" + from = 4 + to = 10 + + response = RecipeApiWrapper.limited_query(a_recipe,from,to) + response.class.must_equal Array + response.size.must_equal 6 + response[0].label.must_equal "Lime Ginger Iced Tea" + response[5].label.must_equal "Raspberry Lime Popsicles" + end + end + + it 'will return an empty array for recipe that cannot be found by API' do + VCR.use_cassette("empty-array-check") do + a_recipe = "alfkjalkdfjalsdkjfalkdjf" + response = RecipeApiWrapper.list_of_queried_recipes(a_recipe) + response.must_be_empty + end end + + it 'will not return a recipe for an invalid recipe query' do + #negative case??? + + end + end diff --git a/test/test_helper.rb b/test/test_helper.rb index 2be595b50..07503dee7 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -6,6 +6,11 @@ require 'vcr' require 'webmock/minitest' + +if ActionPack::VERSION::STRING >= "5.2.0" + Minitest::Rails::TestUnit = Rails::TestUnit +end + # For colorful output! Minitest::Reporters.use!( Minitest::Reporters::SpecReporter.new, From 9550356589dc5a0d65ac685d20630b46837a66ea Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Fri, 4 May 2018 22:49:06 -0700 Subject: [PATCH 04/18] added grid to organize recipe query, added oauth for guest users to be able to sign in with their github (attempted with google but the process kept rejecting clientID). --- .env | 4 ++ .gitignore | 3 ++ Gemfile | 5 +++ Gemfile.lock | 22 ++++++++++ app/assets/javascripts/sessions.js | 2 + app/assets/javascripts/users.js | 2 + app/assets/stylesheets/application.css | 24 +++++++++++ app/assets/stylesheets/sessions.scss | 3 ++ app/assets/stylesheets/users.scss | 3 ++ app/controllers/recipe_controller.rb | 1 + app/controllers/sessions_controller.rb | 43 +++++++++++++++++++ app/controllers/users_controller.rb | 2 + app/helpers/sessions_helper.rb | 2 + app/helpers/users_helper.rb | 2 + app/models/user.rb | 2 + app/views/layouts/application.html.erb | 26 ++++++++--- app/views/recipe/index.html.erb | 7 +-- app/views/sessions/create.html.erb | 2 + app/views/sessions/destroy.html.erb | 2 + config/initializers/omniauth.rb | 3 ++ config/routes.rb | 4 ++ db/migrate/20180504221754_create_users.rb | 8 ++++ db/migrate/20180504222227_add_username_to.rb | 5 +++ db/migrate/20180504222412_add_uid_to_user.rb | 5 +++ .../20180505030522_add_email_to_user.rb | 5 +++ db/schema.rb | 10 ++++- test/controllers/sessions_controller_test.rb | 14 ++++++ test/controllers/users_controller_test.rb | 7 +++ test/fixtures/users.yml | 11 +++++ test/models/user_test.rb | 9 ++++ 30 files changed, 228 insertions(+), 10 deletions(-) create mode 100644 app/assets/javascripts/sessions.js create mode 100644 app/assets/javascripts/users.js create mode 100644 app/assets/stylesheets/sessions.scss create mode 100644 app/assets/stylesheets/users.scss create mode 100644 app/controllers/sessions_controller.rb create mode 100644 app/controllers/users_controller.rb create mode 100644 app/helpers/sessions_helper.rb create mode 100644 app/helpers/users_helper.rb create mode 100644 app/models/user.rb create mode 100644 app/views/sessions/create.html.erb create mode 100644 app/views/sessions/destroy.html.erb create mode 100644 config/initializers/omniauth.rb create mode 100644 db/migrate/20180504221754_create_users.rb create mode 100644 db/migrate/20180504222227_add_username_to.rb create mode 100644 db/migrate/20180504222412_add_uid_to_user.rb create mode 100644 db/migrate/20180505030522_add_email_to_user.rb create mode 100644 test/controllers/sessions_controller_test.rb create mode 100644 test/controllers/users_controller_test.rb create mode 100644 test/fixtures/users.yml create mode 100644 test/models/user_test.rb diff --git a/.env b/.env index 0c683e14a..3a4643331 100644 --- a/.env +++ b/.env @@ -1,2 +1,6 @@ APPID = 379dc117 APPKEY = 9fcb79f83581cc266057d2b408a6b9cb + + +GITHUB_CLIENT_ID = da40320402a2fbf48ed1 +GITHUB_CLIENT_SECRET = 8c8e27d94958246bcebd11d4491594d7ae2e2127 diff --git a/.gitignore b/.gitignore index 211a27abb..21b04b0b1 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,6 @@ # Ignore master key for decrypting credentials and more. /config/master.key + + +.env diff --git a/Gemfile b/Gemfile index b08b952c3..36c92d122 100644 --- a/Gemfile +++ b/Gemfile @@ -47,6 +47,7 @@ end group :development do # Access an interactive console on exception pages or by calling 'console' anywhere in the code. + gem 'dotenv-rails' 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 @@ -84,3 +85,7 @@ group :test do end gem 'uri-handler' + + +gem "omniauth" +gem "omniauth-github" diff --git a/Gemfile.lock b/Gemfile.lock index 0917cb784..767647dd4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -87,6 +87,8 @@ GEM railties (>= 3.2, < 6.0) erubi (1.7.1) execjs (2.7.0) + faraday (0.12.2) + multipart-post (>= 1.2, < 3) ffi (1.9.23) foundation-rails (6.4.3.0) railties (>= 3.1.0) @@ -95,6 +97,7 @@ GEM globalid (0.4.1) activesupport (>= 4.2.0) hashdiff (0.3.7) + hashie (3.5.7) httparty (0.16.2) multi_xml (>= 0.5.2) i18n (1.0.1) @@ -110,6 +113,7 @@ GEM jquery-turbolinks (2.1.0) railties (>= 3.1.0) turbolinks + jwt (1.5.6) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) @@ -143,10 +147,26 @@ GEM msgpack (1.2.4) multi_json (1.13.1) multi_xml (0.6.0) + multipart-post (2.0.0) nio4r (2.3.0) nokogiri (1.8.2) mini_portile2 (~> 2.3.0) normalize-rails (4.1.1) + oauth2 (1.4.0) + faraday (>= 0.8, < 0.13) + jwt (~> 1.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (>= 1.2, < 3) + omniauth (1.8.1) + hashie (>= 3.4.6, < 3.6.0) + rack (>= 1.6.2, < 3) + omniauth-github (1.3.0) + omniauth (~> 1.5) + omniauth-oauth2 (>= 1.4.0, < 2.0) + omniauth-oauth2 (1.5.0) + oauth2 (~> 1.1) + omniauth (~> 1.2) pg (1.0.0) pry (0.11.3) coderay (~> 1.1.0) @@ -264,6 +284,8 @@ DEPENDENCIES minitest-reporters minitest-vcr normalize-rails + omniauth + omniauth-github pg (>= 0.18, < 2.0) pry-rails puma (~> 3.11) diff --git a/app/assets/javascripts/sessions.js b/app/assets/javascripts/sessions.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/sessions.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/javascripts/users.js b/app/assets/javascripts/users.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/users.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 3a3841832..91955f9b7 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -17,3 +17,27 @@ *= require foundation_and_overrides */ + +nav{ + margin-left:85%; + margin-top:10px; +} + + #food-items{ + display: grid; + grid-template-columns: auto auto auto; + padding-left: 100px; + list-style-type: none; + } + + #recipe-title{ + text-align:left; + } + + .pagination{ + padding-left:35%; + } + + .pagination li{ + font-size: 20px; + } diff --git a/app/assets/stylesheets/sessions.scss b/app/assets/stylesheets/sessions.scss new file mode 100644 index 000000000..ccb1ed25b --- /dev/null +++ b/app/assets/stylesheets/sessions.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Sessions controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss new file mode 100644 index 000000000..31a2eacb8 --- /dev/null +++ b/app/assets/stylesheets/users.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Users controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/recipe_controller.rb b/app/controllers/recipe_controller.rb index da0724c5a..20edafe5a 100644 --- a/app/controllers/recipe_controller.rb +++ b/app/controllers/recipe_controller.rb @@ -19,6 +19,7 @@ def index else @recipes = RecipeApiWrapper.list_of_queried_recipes(@query) end + end def show diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb new file mode 100644 index 000000000..84786acd9 --- /dev/null +++ b/app/controllers/sessions_controller.rb @@ -0,0 +1,43 @@ +class SessionsController < ApplicationController + def create + auth_hash = request.env['omniauth.auth'] + if auth_hash['uid'] + @user = User.find_by(uid: auth_hash['uid']) + if @user.nil? + create_new_user + else + flash[:status] = :success + flash[:result_text] = "Logged in successfully, welcome back #{@user.username}" + end + session[:user_id] = @user.id + else + flash[:status] = :failure + flash[:result_text] = "Log in has failed" + end + redirect_to query_results_path + end + + def destroy + session[:user_id] = nil + flash[:status] = :success + flash[:result_text] = "You've logged out" + redirect_to query_results_path + end + + + private + def create_new_user + auth_hash = request.env['omniauth.auth'] + @user = User.new(username: auth_hash['info']['nickname'], email: auth_hash['info']['email'], uid: auth_hash['uid']) + if @user.save + flash[:status] = :success + flash[:result_text] = "Your account has been generated #{@user.username}!" + else + flash[:status] = :failure + flash[:result_text] = "Something has gone wrong in the account generation process." + end + end + + + +end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb new file mode 100644 index 000000000..3e74dea87 --- /dev/null +++ b/app/controllers/users_controller.rb @@ -0,0 +1,2 @@ +class UsersController < ApplicationController +end diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb new file mode 100644 index 000000000..309f8b2eb --- /dev/null +++ b/app/helpers/sessions_helper.rb @@ -0,0 +1,2 @@ +module SessionsHelper +end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb new file mode 100644 index 000000000..2310a240d --- /dev/null +++ b/app/helpers/users_helper.rb @@ -0,0 +1,2 @@ +module UsersHelper +end diff --git a/app/models/user.rb b/app/models/user.rb new file mode 100644 index 000000000..379658a50 --- /dev/null +++ b/app/models/user.rb @@ -0,0 +1,2 @@ +class User < ApplicationRecord +end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 467812e24..a5dd358b1 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -10,16 +10,30 @@ <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> + <%= yield %>
-
diff --git a/app/views/recipe/index.html.erb b/app/views/recipe/index.html.erb index d6f370bde..02fbdb094 100644 --- a/app/views/recipe/index.html.erb +++ b/app/views/recipe/index.html.erb @@ -4,9 +4,10 @@ <%= submit_tag "Search", class:"button"%> <%end%> -
    +
      <%@recipes.each do |recipe|%> -
    • <%=link_to image_tag(recipe.image),recipe_show_path(recipe.label,:uri=>recipe.uri)%>
    • -
    • <%=link_to recipe.label,recipe_show_path(recipe.label,:uri=>recipe.uri)%>
    • +
    • <%=link_to image_tag(recipe.image),recipe_show_path(recipe.label,:uri=>recipe.uri)%> +

      <%=link_to recipe.label,recipe_show_path(recipe.label,:uri=>recipe.uri)%>

      +
    • <% end %>
    diff --git a/app/views/sessions/create.html.erb b/app/views/sessions/create.html.erb new file mode 100644 index 000000000..c251174fe --- /dev/null +++ b/app/views/sessions/create.html.erb @@ -0,0 +1,2 @@ +

    Sessions#create

    +

    Find me in app/views/sessions/create.html.erb

    diff --git a/app/views/sessions/destroy.html.erb b/app/views/sessions/destroy.html.erb new file mode 100644 index 000000000..d75237d98 --- /dev/null +++ b/app/views/sessions/destroy.html.erb @@ -0,0 +1,2 @@ +

    Sessions#destroy

    +

    Find me in app/views/sessions/destroy.html.erb

    diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb new file mode 100644 index 000000000..fd4416122 --- /dev/null +++ b/config/initializers/omniauth.rb @@ -0,0 +1,3 @@ +Rails.application.config.middleware.use OmniAuth::Builder do + provider :github, ENV["GITHUB_CLIENT_ID"], ENV["GITHUB_CLIENT_SECRET"], scope: "user:email" +end diff --git a/config/routes.rb b/config/routes.rb index e360b3b8d..8db4aa040 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,5 +10,9 @@ get '/search',to: 'recipe#index', as: 'query_results' + get "/auth/:provider/callback", to: "sessions#create" + get 'logout', to:'sessions#destroy', as: 'signout' + get '/:item', to: 'recipe#show', as: 'recipe_show' + end diff --git a/db/migrate/20180504221754_create_users.rb b/db/migrate/20180504221754_create_users.rb new file mode 100644 index 000000000..8006900e1 --- /dev/null +++ b/db/migrate/20180504221754_create_users.rb @@ -0,0 +1,8 @@ +class CreateUsers < ActiveRecord::Migration[5.2] + def change + create_table :users do |t| + + t.timestamps + end + end +end diff --git a/db/migrate/20180504222227_add_username_to.rb b/db/migrate/20180504222227_add_username_to.rb new file mode 100644 index 000000000..5ad59f32c --- /dev/null +++ b/db/migrate/20180504222227_add_username_to.rb @@ -0,0 +1,5 @@ +class AddUsernameTo < ActiveRecord::Migration[5.2] + def change + add_column :users, :username, :string + end +end diff --git a/db/migrate/20180504222412_add_uid_to_user.rb b/db/migrate/20180504222412_add_uid_to_user.rb new file mode 100644 index 000000000..9036beec7 --- /dev/null +++ b/db/migrate/20180504222412_add_uid_to_user.rb @@ -0,0 +1,5 @@ +class AddUidToUser < ActiveRecord::Migration[5.2] + def change + add_column :users, :uid, :integer + end +end diff --git a/db/migrate/20180505030522_add_email_to_user.rb b/db/migrate/20180505030522_add_email_to_user.rb new file mode 100644 index 000000000..09aa8cfd7 --- /dev/null +++ b/db/migrate/20180505030522_add_email_to_user.rb @@ -0,0 +1,5 @@ +class AddEmailToUser < ActiveRecord::Migration[5.2] + def change + add_column :users, :email, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 2611543b3..e9daa90b7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,9 +10,17 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 0) do +ActiveRecord::Schema.define(version: 2018_05_05_030522) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" + create_table "users", force: :cascade do |t| + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "username" + t.integer "uid" + t.string "email" + end + end diff --git a/test/controllers/sessions_controller_test.rb b/test/controllers/sessions_controller_test.rb new file mode 100644 index 000000000..484f25335 --- /dev/null +++ b/test/controllers/sessions_controller_test.rb @@ -0,0 +1,14 @@ +require "test_helper" + +describe SessionsController do + it "should get create" do + get sessions_create_url + value(response).must_be :success? + end + + it "should get destroy" do + get sessions_destroy_url + value(response).must_be :success? + end + +end diff --git a/test/controllers/users_controller_test.rb b/test/controllers/users_controller_test.rb new file mode 100644 index 000000000..89decb54e --- /dev/null +++ b/test/controllers/users_controller_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +describe UsersController do + # it "must be a real test" do + # flunk "Need real tests" + # end +end diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml new file mode 100644 index 000000000..dc3ee79b5 --- /dev/null +++ b/test/fixtures/users.yml @@ -0,0 +1,11 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +# This model initially had no columns defined. If you add columns to the +# model remove the "{}" from the fixture names and add the columns immediately +# below each fixture, per the syntax in the comments below +# +one: {} +# column: value +# +two: {} +# column: value diff --git a/test/models/user_test.rb b/test/models/user_test.rb new file mode 100644 index 000000000..cc862ac2d --- /dev/null +++ b/test/models/user_test.rb @@ -0,0 +1,9 @@ +require "test_helper" + +describe User do + let(:user) { User.new } + + it "must be valid" do + value(user).must_be :valid? + end +end From d2455d066f567f940702028a67968f16c1e29b4b Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Sat, 5 May 2018 12:08:03 -0700 Subject: [PATCH 05/18] updated routes --- app/assets/javascripts/homepage.js | 2 ++ app/assets/stylesheets/application.css | 13 ++++++++++++- app/assets/stylesheets/homepage.scss | 3 +++ app/controllers/homepage_controller.rb | 4 ++++ app/helpers/homepage_helper.rb | 2 ++ app/views/homepage/index.html.erb | 1 + app/views/layouts/application.html.erb | 14 +++++++++++++- app/views/recipe/index.html.erb | 6 ------ config/routes.rb | 4 +++- test/controllers/homepage_controller_test.rb | 7 +++++++ 10 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 app/assets/javascripts/homepage.js create mode 100644 app/assets/stylesheets/homepage.scss create mode 100644 app/controllers/homepage_controller.rb create mode 100644 app/helpers/homepage_helper.rb create mode 100644 app/views/homepage/index.html.erb create mode 100644 test/controllers/homepage_controller_test.rb diff --git a/app/assets/javascripts/homepage.js b/app/assets/javascripts/homepage.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/homepage.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 91955f9b7..012ecbd96 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -18,11 +18,22 @@ */ + nav{ margin-left:85%; margin-top:10px; } +#search-bar{ + margin-left:50px; + margin-right:50px; + flex-grow: 100%; +} + +#search-bar .button { + margin-left: 43%; +} + #food-items{ display: grid; grid-template-columns: auto auto auto; @@ -35,7 +46,7 @@ nav{ } .pagination{ - padding-left:35%; + padding-left:31%; } .pagination li{ diff --git a/app/assets/stylesheets/homepage.scss b/app/assets/stylesheets/homepage.scss new file mode 100644 index 000000000..9027e07a0 --- /dev/null +++ b/app/assets/stylesheets/homepage.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the homepage controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/homepage_controller.rb b/app/controllers/homepage_controller.rb new file mode 100644 index 000000000..e09cc6e59 --- /dev/null +++ b/app/controllers/homepage_controller.rb @@ -0,0 +1,4 @@ +class HomepageController < ApplicationController + def index + end +end diff --git a/app/helpers/homepage_helper.rb b/app/helpers/homepage_helper.rb new file mode 100644 index 000000000..c5bbfe518 --- /dev/null +++ b/app/helpers/homepage_helper.rb @@ -0,0 +1,2 @@ +module HomepageHelper +end diff --git a/app/views/homepage/index.html.erb b/app/views/homepage/index.html.erb new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/app/views/homepage/index.html.erb @@ -0,0 +1 @@ + diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index a5dd358b1..b778f14a1 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -19,7 +19,18 @@ - <%= yield %> + <%if params[:query].nil?%> +

    Welcome to Wrapped Recipes!

    + <%else%> +

    Search Results for: <%=params[:query]%>

    + <%end%> + + <%= yield %>
      @@ -35,6 +46,7 @@
    • <%=link_to 10, {:action => 'index', :from=> 91, :to=>100, :query=>params[:query]} %>
    +
    diff --git a/app/views/recipe/index.html.erb b/app/views/recipe/index.html.erb index 02fbdb094..b96aef114 100644 --- a/app/views/recipe/index.html.erb +++ b/app/views/recipe/index.html.erb @@ -1,9 +1,3 @@ - -<%= form_tag query_results_path, method: :get do %> - <%=text_field_tag :query%> - <%= submit_tag "Search", class:"button"%> -<%end%> -
      <%@recipes.each do |recipe|%>
    • <%=link_to image_tag(recipe.image),recipe_show_path(recipe.label,:uri=>recipe.uri)%> diff --git a/config/routes.rb b/config/routes.rb index 8db4aa040..571671335 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -8,8 +8,10 @@ # post '/search-confirmed', to: 'recipe#search', as:'confirmed_search' + # root 'homepage#index' get '/search',to: 'recipe#index', as: 'query_results' - + + root 'recipe#index' get "/auth/:provider/callback", to: "sessions#create" get 'logout', to:'sessions#destroy', as: 'signout' diff --git a/test/controllers/homepage_controller_test.rb b/test/controllers/homepage_controller_test.rb new file mode 100644 index 000000000..3817f5981 --- /dev/null +++ b/test/controllers/homepage_controller_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +describe HomepageController do + # it "must be a real test" do + # flunk "Need real tests" + # end +end From e9965c9a74ca05da347b834b538877e34103c6bd Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Sat, 5 May 2018 12:13:17 -0700 Subject: [PATCH 06/18] removed require pry from program and updated config to .eager_load_paths --- config/application.rb | 2 +- config/routes.rb | 2 +- test/lib/recipe_api_wrapper_test.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index af143658a..c5faad560 100644 --- a/config/application.rb +++ b/config/application.rb @@ -24,6 +24,6 @@ class Application < Rails::Application # the framework and any gems in your application. # Automatically load all code from /lib - config.autoload_paths << Rails.root.join('lib') + config.eager_load_paths << Rails.root.join('lib') end end diff --git a/config/routes.rb b/config/routes.rb index 571671335..f8195c17d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,7 +10,7 @@ # root 'homepage#index' get '/search',to: 'recipe#index', as: 'query_results' - + root 'recipe#index' get "/auth/:provider/callback", to: "sessions#create" get 'logout', to:'sessions#destroy', as: 'signout' diff --git a/test/lib/recipe_api_wrapper_test.rb b/test/lib/recipe_api_wrapper_test.rb index c3f9dadd5..032fb30c6 100644 --- a/test/lib/recipe_api_wrapper_test.rb +++ b/test/lib/recipe_api_wrapper_test.rb @@ -1,5 +1,5 @@ require 'test_helper' -require 'pry' + describe RecipeApiWrapper do it 'can query a valid recipe' do From 84a6636036846d00ce9f32b5a55ceade6db406f2 Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Sat, 5 May 2018 12:46:39 -0700 Subject: [PATCH 07/18] added homepage button --- app/assets/stylesheets/application.css | 8 ++++---- app/views/layouts/application.html.erb | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 012ecbd96..f1b9eb931 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -17,12 +17,12 @@ *= require foundation_and_overrides */ + nav{ + margin-left:85%; + margin-top:10px; + } -nav{ - margin-left:85%; - margin-top:10px; -} #search-bar{ margin-left:50px; diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index b778f14a1..868c7f2ae 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -11,6 +11,7 @@ <%= csrf_meta_tags %> - - <%if params[:query].nil?%> -

      Welcome to Wrapped Recipes!

      - <%else%> + + <%if params[:query].nil?%> + +

      Wrapped Recipes

      + <%else%> +

      Search Results for: <%=params[:query]%>

      <%end%> <%= yield %> +
      -
      • <%=link_to 1, {:action => 'index', :from=> 0, :to=> 9, :query=>params[:query]} %>
      • <%=link_to 2, {:action => 'index', :from=> 10, :to=> 20, :query=>params[:query]} %>
      • @@ -46,10 +48,9 @@
      • <%=link_to 9, {:action => 'index', :from=> 81, :to=>90, :query=>params[:query]} %>
      • <%=link_to 10, {:action => 'index', :from=> 91, :to=>100, :query=>params[:query]} %>
      -
      +

      Powered by Edamam ©2018

      - diff --git a/app/views/recipe/show.html.erb b/app/views/recipe/show.html.erb index d9a884c31..d0335d904 100644 --- a/app/views/recipe/show.html.erb +++ b/app/views/recipe/show.html.erb @@ -1,22 +1,29 @@ -

      <%=@recipe.label%>

      -

      By <%=@recipe.source%>

      +

      <%=@recipe.label%>

      +

      By <%=@recipe.source%>

      -<%=image_tag("#{@recipe.image}",alt: "image of #{@recipe.label}")%> -
      Ingredients
      + +<%=image_tag("#{@recipe.image}",class: "item-image")%> + +
      +

      Ingredients

        <%@recipe.ingredientLines.each do |ingredient| %>
      • <%=ingredient%>
      • <%end%>
      +
      -

      Try it yourself <%=link_to "here", @recipe.url, target: :_blank%>

      -
      Total Calories: <%=@recipe.totalNutrients["ENERC_KCAL"]["quantity"].round(2)%>
      +
      Total Calories: <%=@recipe.totalNutrients["ENERC_KCAL"]["quantity"].round(2)%>
      -
      Nutritional Information
      -
+

Try it yourself <%=link_to "here", @recipe.url, target: :_blank%>

+ +

Nutritional Information :

+ +
+
- + @@ -25,8 +32,9 @@ <%nutrient[1]["quantity"] = nutrient[1]["quantity"].round(3)%> <%nutrient[1].values.each do |item|%> - + <%end%> <%end%>
Nutritional InformationNutritional Information Quantity Unit
<%=item%><%=item%>
+ diff --git a/config/routes.rb b/config/routes.rb index f8195c17d..2101aea52 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -8,7 +8,6 @@ # post '/search-confirmed', to: 'recipe#search', as:'confirmed_search' - # root 'homepage#index' get '/search',to: 'recipe#index', as: 'query_results' root 'recipe#index' From 466a893acb0c509a3ec5ef9645b3fa190fb92e66 Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Sat, 5 May 2018 16:15:31 -0700 Subject: [PATCH 09/18] modified position of pagination --- app/assets/stylesheets/application.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 45e3c6da8..2d0398bc1 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -69,14 +69,13 @@ width: 100%; .pagination{ padding-left:31%; + margin-bottom: 50px; } .pagination li{ font-size: 20px; } - - .item-header{ color:white; text-align:center; From 0ce7a7d9389d7f9ac09ffca020c12f4a23bfb0e1 Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Sat, 5 May 2018 16:30:20 -0700 Subject: [PATCH 10/18] updated design from grid to flexbox for search images to be more responsive to size changes. --- app/assets/stylesheets/application.css | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 2d0398bc1..4b1be27b7 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -47,7 +47,6 @@ #main-title{ text-align:center; - font-family: blippo; color: white; font-weight: bold; } @@ -57,12 +56,14 @@ width: 100%; } #food-items{ - display: grid; - grid-template-columns: auto auto auto; - padding-left: 100px; - list-style-type: none; + display: flex; + flex-flow: wrap; + list-style-type: none; + padding-left: 30px; } + + #recipe-title{ text-align:left; } From 3ab3df010e38c9fafe07bdea8962b46356dcaa25 Mon Sep 17 00:00:00 2001 From: SelamawitA Date: Sun, 6 May 2018 14:58:47 -0700 Subject: [PATCH 11/18] added filter to recipe controller requiring user to sign in for access to show page of a recipe. Added flash messages (and some styling) for reminder to log-in and successful search. --- app/assets/stylesheets/application.css | 6 ++++-- app/controllers/application_controller.rb | 8 ++++++++ app/controllers/homepage_controller.rb | 4 ---- app/controllers/recipe_controller.rb | 17 +++++++++-------- app/controllers/users_controller.rb | 2 -- app/views/homepage/index.html.erb | 1 - app/views/layouts/application.html.erb | 10 +++++++++- 7 files changed, 30 insertions(+), 18 deletions(-) delete mode 100644 app/controllers/homepage_controller.rb delete mode 100644 app/controllers/users_controller.rb delete mode 100644 app/views/homepage/index.html.erb diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 4b1be27b7..ec09fece6 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -62,8 +62,6 @@ width: 100%; padding-left: 30px; } - - #recipe-title{ text-align:left; } @@ -135,3 +133,7 @@ th{ height:25px; background:#1779ba; } + +.flash-messages{ + color:white; +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 09705d12a..02d4da67d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,2 +1,10 @@ class ApplicationController < ActionController::Base + + def require_user_log_in + if session[:user_id].nil? + flash[:status] = :error + flash[:login_required] = "Please log in for access to details of recipes." + redirect_to root_path + end + end end diff --git a/app/controllers/homepage_controller.rb b/app/controllers/homepage_controller.rb deleted file mode 100644 index e09cc6e59..000000000 --- a/app/controllers/homepage_controller.rb +++ /dev/null @@ -1,4 +0,0 @@ -class HomepageController < ApplicationController - def index - end -end diff --git a/app/controllers/recipe_controller.rb b/app/controllers/recipe_controller.rb index 20edafe5a..92bcf800b 100644 --- a/app/controllers/recipe_controller.rb +++ b/app/controllers/recipe_controller.rb @@ -1,4 +1,6 @@ class RecipeController < ApplicationController + before_action :require_user_log_in, only: [:show] + #First attempt at design - is this another valid approch? # def new # @query = "user_input" # #can i update this in the form? Or do i need a seperate method? @@ -6,8 +8,6 @@ class RecipeController < ApplicationController # end # def search - # #should be post because we are modifiying content - despite not having a server....'' - # # raise # @query = params["user_input"] # redirect_to query_results_path(@query) # end @@ -18,6 +18,13 @@ def index @recipes = RecipeApiWrapper.limited_query(@query,params[:from],params[:to]) else @recipes = RecipeApiWrapper.list_of_queried_recipes(@query) + if @recipes == [] + flash[:status] = :error + flash[:message] = "We currently do not have any #{@query} recipes." + else + flash[:status] = :success + flash[:message] = "Sucecssfully found #{@query} recipes." + end end end @@ -27,9 +34,3 @@ def show end end - - -#Questions -#10 unsure of how restful my set up is, especially routes -#2) attempted to build w/o new/create set up but couldn't figure out how to update new method with params info..is there a way? -#3) how weird does this solution look? diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb deleted file mode 100644 index 3e74dea87..000000000 --- a/app/controllers/users_controller.rb +++ /dev/null @@ -1,2 +0,0 @@ -class UsersController < ApplicationController -end diff --git a/app/views/homepage/index.html.erb b/app/views/homepage/index.html.erb deleted file mode 100644 index 8b1378917..000000000 --- a/app/views/homepage/index.html.erb +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d8125b38b..1bf3b5035 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -19,7 +19,6 @@ <%end%> - <%if params[:query].nil?%>

Wrapped Recipes

@@ -27,6 +26,15 @@

Search Results for: <%=params[:query]%>

<%end%> + + <%if flash[:message]%> + <% if params[:query].nil? %> +

<%=flash[:login_required]%>

+ <%else%> +

<%=flash[:message]%>

+ <%end%> + <%end%> +