├── Gemfile ├── .rspec ├── exe └── urlscan ├── renovate.json ├── lib ├── urlscan │ ├── version.rb │ ├── cli.rb │ ├── exceptions.rb │ ├── api.rb │ ├── commands │ │ ├── base.rb │ │ └── community.rb │ └── clients │ │ ├── community.rb │ │ ├── pro.rb │ │ └── base.rb └── urlscan.rb ├── Rakefile ├── spec ├── urlscan_spec.rb ├── support │ └── helpers │ │ └── io_helpers.rb ├── spec_helper.rb ├── cli_spec.rb ├── api_spec.rb └── fixtures │ └── vcr_cassettes │ └── UrlScan_API │ ├── _pro_similar │ └── 1_9_2.yml │ ├── _submit │ ├── 1_1_1.yml │ └── 1_1_2.yml │ ├── _result │ └── 1_5_1.yml │ ├── _screenshot │ └── 1_5_1.yml │ └── _dom │ └── 1_4_1.yml ├── .codeclimate.yml ├── .github └── workflows │ └── test.yml ├── .gitignore ├── LICENSE ├── urlscan.gemspec ├── README.md └── .rubocop.yml /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gemspec 4 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --format documentation 2 | --color 3 | --require spec_helper 4 | -------------------------------------------------------------------------------- /exe/urlscan: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "urlscan" 4 | 5 | UrlScan::CLI.start 6 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ], 5 | "enabled": false 6 | } 7 | -------------------------------------------------------------------------------- /lib/urlscan/version.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module UrlScan 4 | VERSION = "0.8.0" 5 | end 6 | -------------------------------------------------------------------------------- /lib/urlscan/cli.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module UrlScan 4 | class CLI < Commands::Community; end 5 | end 6 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require "bundler/gem_tasks" 2 | require "rspec/core/rake_task" 3 | 4 | RSpec::Core::RakeTask.new(:spec) 5 | 6 | task default: :spec 7 | -------------------------------------------------------------------------------- /spec/urlscan_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | RSpec.describe UrlScan do 4 | it "has a version number" do 5 | expect(subject::VERSION).not_to be nil 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /.codeclimate.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | prepare: 3 | fetch: 4 | - url: "https://raw.githubusercontent.com/janlelis/relaxed.ruby.style/master/.rubocop.yml" 5 | path: "alternate-rubocop-path.yml" 6 | plugins: 7 | rubocop: 8 | enabled: true 9 | config: 10 | file: "alternate-rubocop-path.yml" 11 | exclude_patterns: 12 | - "spec/**/*" 13 | -------------------------------------------------------------------------------- /lib/urlscan.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "urlscan/version" 4 | require "urlscan/exceptions" 5 | 6 | require "urlscan/clients/base" 7 | require "urlscan/clients/community" 8 | require "urlscan/clients/pro" 9 | 10 | require "urlscan/commands/base" 11 | require "urlscan/commands/community" 12 | 13 | require "urlscan/api" 14 | require "urlscan/cli" 15 | -------------------------------------------------------------------------------- /lib/urlscan/exceptions.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module UrlScan 4 | class ResponseError < StandardError; end 5 | 6 | class AuthenticationError < ResponseError; end 7 | 8 | class NotFound < ResponseError; end 9 | 10 | class ProcessingError < ResponseError; end 11 | 12 | class RateLimited < ResponseError; end 13 | 14 | class InternalServerError < ResponseError; end 15 | end 16 | -------------------------------------------------------------------------------- /lib/urlscan/api.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "forwardable" 4 | 5 | module UrlScan 6 | class API 7 | extend Forwardable 8 | 9 | attr_reader :pro 10 | 11 | def initialize(key = ENV["URLSCAN_API_KEY"]) 12 | @community = Clients::Community.new(key) 13 | @pro = Clients::Pro.new(key) 14 | end 15 | 16 | def_delegators :@community, :submit, :result, :dom, :screenshot, :search 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /spec/support/helpers/io_helpers.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Spec 4 | module Support 5 | module Helpers 6 | module IOHelpers 7 | def capture(stream) 8 | begin 9 | stream = stream.to_s 10 | eval "$#{stream} = StringIO.new" 11 | yield 12 | result = eval("$#{stream}").string 13 | ensure 14 | eval("$#{stream} = #{stream.upcase}") 15 | end 16 | result 17 | end 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Ruby CI 2 | 3 | on: [pull_request] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | 9 | strategy: 10 | fail-fast: false 11 | matrix: 12 | ruby: [2.7, "3.0"] 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Set up Ruby 17 | uses: ruby/setup-ruby@v1 18 | with: 19 | ruby-version: ${{ matrix.ruby }} 20 | bundler-cache: true 21 | - name: Build and test with Rake 22 | run: | 23 | bundle exec rake 24 | -------------------------------------------------------------------------------- /lib/urlscan/commands/base.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "json" 4 | require "thor" 5 | 6 | module UrlScan 7 | module Commands 8 | class Base < Thor 9 | class_option :API_KEY, type: :string 10 | 11 | no_commands do 12 | def api 13 | options.key?("API_KEY") ? API.new(options["API_KEY"]) : API.new 14 | end 15 | 16 | def with_error_handling 17 | yield 18 | rescue ArgumentError => _e 19 | puts "Warning: please specify your urlscan.io API key via ENV['URLSCAN_API_KEY'] or --API-KEY" 20 | rescue ResponseError => e 21 | puts "Warning: #{e}" 22 | end 23 | end 24 | end 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.rbc 3 | /.config 4 | /coverage/ 5 | /InstalledFiles 6 | /pkg/ 7 | /spec/reports/ 8 | /spec/examples.txt 9 | /test/tmp/ 10 | /test/version_tmp/ 11 | /tmp/ 12 | /.vscode 13 | 14 | # Used by dotenv library to load environment variables. 15 | .env 16 | 17 | ## Documentation cache and generated files: 18 | /.yardoc/ 19 | /_yardoc/ 20 | /doc/ 21 | /rdoc/ 22 | 23 | ## Environment normalization: 24 | /.bundle/ 25 | /vendor/bundle 26 | /lib/bundler/man/ 27 | 28 | # for a library or gem, you might want to ignore these files since the code is 29 | # intended to run in multiple environments; otherwise, check them in: 30 | Gemfile.lock 31 | # .ruby-version 32 | # .ruby-gemset 33 | 34 | # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: 35 | .rvmrc 36 | 37 | # rspec failure tracking 38 | .rspec_status -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Manabu Niseki 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "bundler/setup" 4 | 5 | require "simplecov" 6 | require "coveralls" 7 | SimpleCov.formatter = Coveralls::SimpleCov::Formatter 8 | SimpleCov.start do 9 | add_filter "/spec" 10 | end 11 | Coveralls.wear! 12 | 13 | require "urlscan" 14 | require "vcr" 15 | 16 | require_relative "./support/helpers/io_helpers" 17 | 18 | RSpec.configure do |config| 19 | # Enable flags like --only-failures and --next-failure 20 | config.example_status_persistence_file_path = ".rspec_status" 21 | 22 | # Disable RSpec exposing methods globally on `Module` and `main` 23 | config.disable_monkey_patching! 24 | 25 | config.expect_with :rspec do |c| 26 | c.syntax = :expect 27 | end 28 | 29 | config.shared_context_metadata_behavior = :apply_to_host_groups 30 | 31 | config.include Spec::Support::Helpers::IOHelpers 32 | end 33 | 34 | ENV["URLSCAN_API_KEY"] = "foo bar" unless ENV.key?("URLSCAN_API_KEY") 35 | 36 | VCR.configure do |config| 37 | config.cassette_library_dir = "spec/fixtures/vcr_cassettes" 38 | config.configure_rspec_metadata! 39 | config.filter_sensitive_data("") { ENV["URLSCAN_API_KEY"] } 40 | config.hook_into :webmock 41 | end 42 | -------------------------------------------------------------------------------- /lib/urlscan/clients/community.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module UrlScan 4 | module Clients 5 | class Community < Base 6 | # @return [Hash] 7 | def submit(url, customagent: nil, referer: nil, visibility: nil, tags: nil, override_safety: nil, country: nil) 8 | params = { 9 | url: url, 10 | customagent: customagent, 11 | referer: referer, 12 | visibility: visibility, 13 | tags: tags, 14 | overrideSafety: override_safety, 15 | country: country 16 | }.compact 17 | post("/scan/", params) { |json| json } 18 | end 19 | 20 | # @return [Hash] 21 | def result(uuid) 22 | get("/result/#{uuid}") { |json| json } 23 | end 24 | 25 | # @return [String] 26 | def dom(uuid) 27 | get("/dom/#{uuid}/") { |dom| dom } 28 | end 29 | 30 | def screenshot(uuid) 31 | get("/screenshots/#{uuid}.png") { |png| png } 32 | end 33 | 34 | # @return [Hash] 35 | def search(q, size: 100, search_after: nil) 36 | params = { q: q, size: size, search_after: search_after }.compact 37 | get("/search/", params) { |json| json } 38 | end 39 | end 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /urlscan.gemspec: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | lib = File.expand_path('lib', __dir__) 4 | $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 5 | require "urlscan/version" 6 | 7 | Gem::Specification.new do |spec| 8 | spec.name = "urlscan" 9 | spec.version = UrlScan::VERSION 10 | spec.authors = ["Manabu Niseki"] 11 | spec.email = ["manabu.niseki@gmail.com"] 12 | 13 | spec.summary = "Ruby API client for urlscan.io" 14 | spec.homepage = "https://github.com/ninoseki/urlscan" 15 | spec.license = "MIT" 16 | 17 | spec.files = `git ls-files -z`.split("\x0").reject do |f| 18 | f.match(%r{^(test|spec|features)/}) 19 | end 20 | spec.bindir = "exe" 21 | spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } 22 | spec.require_paths = ["lib"] 23 | 24 | spec.add_development_dependency "bundler", "~> 2.2" 25 | spec.add_development_dependency "coveralls_reborn", "~> 0.23" 26 | spec.add_development_dependency "rake", "~> 13.0" 27 | spec.add_development_dependency "rspec", "~> 3.10" 28 | spec.add_development_dependency "vcr", "~> 6.0" 29 | spec.add_development_dependency "webmock", "~> 3.14" 30 | 31 | spec.add_runtime_dependency "thor", "~> 1.1" 32 | end 33 | -------------------------------------------------------------------------------- /spec/cli_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'json' 4 | 5 | RSpec.describe UrlScan::CLI do 6 | let(:uuid){ "7f0aa2ab-748a-4cae-b648-71e324e836cd" } 7 | 8 | describe "#submit", vcr: { cassette_name: "UrlScan_API/_submit/1_1_1" } do 9 | it do 10 | output = capture(:stdout) { described_class.start(%w(submit wikipedia.org)) } 11 | json = JSON.parse(output) 12 | expect(json).to be_a(Hash) 13 | end 14 | end 15 | 16 | describe "#result", vcr: { cassette_name: "UrlScan_API/_result/1_2_1" } do 17 | it do 18 | output = capture(:stdout) { described_class.start(["result", uuid]) } 19 | json = JSON.parse(output) 20 | expect(json).to be_a(Hash) 21 | end 22 | end 23 | 24 | describe "#search", vcr: { cassette_name: "UrlScan_API/_search/1_3_1" } do 25 | it do 26 | output = capture(:stdout) { described_class.start(%w(search domain:wikipedia.org)) } 27 | json = JSON.parse(output) 28 | expect(json).to be_a(Hash) 29 | end 30 | end 31 | 32 | describe "#dom", vcr: { cassette_name: "UrlScan_API/_result/1_4_1" } do 33 | it do 34 | output = capture(:stdout) { described_class.start(["dom", uuid]) } 35 | expect(output).to be_a(String) 36 | end 37 | end 38 | 39 | describe "#screenshot", vcr: { cassette_name: "UrlScan_API/_result/1_5_1" } do 40 | it do 41 | output = capture(:stdout) { described_class.start(["screenshot", uuid]) } 42 | expect(output).to be_a(String) 43 | end 44 | end 45 | end 46 | -------------------------------------------------------------------------------- /lib/urlscan/clients/pro.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module UrlScan 4 | module Clients 5 | class Pro < Base 6 | VERSION = 1 7 | HOST = "urlscan.io" 8 | 9 | # @return [Hash] 10 | def brands 11 | get("/brands") { |json| json } 12 | end 13 | 14 | # @return [Hash] 15 | def kits 16 | get("/kits") { |json| json } 17 | end 18 | 19 | # @return [Hash] 20 | def phishfeed(q: "result.task.time:>now-24h", format: "json", limit: nil) 21 | params = { q: q, format: format, limit: limit }.compact 22 | get("/phishfeed", params) { |json| json } 23 | end 24 | 25 | # @return [Hash] 26 | def similar(uuid, q: nil, size: nil, search_after: nil, threshold: nil, min_size: nil, method: nil, resource_types: nil) 27 | params = { 28 | q: q, 29 | size: size, 30 | search_after: search_after, 31 | threshold: threshold, 32 | minSize: min_size, 33 | method: method, 34 | resourceTypes: resource_types 35 | }.compact 36 | get("/result/#{uuid}/similar/", params) { |json| json } 37 | end 38 | 39 | # @return [Hash] 40 | def scanners 41 | get("/livescan/scanners/") { |json| json } 42 | end 43 | 44 | private 45 | 46 | def build_filter(filter) 47 | return nil unless filter 48 | 49 | filter.start_with?("$") ? filter : "$#{filter}" 50 | end 51 | 52 | def url 53 | @url ||= "https://#{HOST}/api/v#{VERSION}/pro" 54 | end 55 | end 56 | end 57 | end 58 | -------------------------------------------------------------------------------- /spec/api_spec.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | RSpec.describe UrlScan::API, :vcr do 4 | let(:api) { described_class.new } 5 | let(:uuid) { "7f0aa2ab-748a-4cae-b648-71e324e836cd" } 6 | 7 | describe "#submit" do 8 | it do 9 | json = api.submit("https://www.wikipedia.org/") 10 | expect(json["message"]).to eq("Submission successful") 11 | end 12 | 13 | it do 14 | json = api.submit("https://www.wikipedia.org/", visibility: "private") 15 | expect(json["message"]).to eq("Submission successful") 16 | end 17 | end 18 | 19 | describe "#result" do 20 | it do 21 | json = api.result(uuid) 22 | expect(json).to be_a(Hash) 23 | end 24 | end 25 | 26 | describe "#search" do 27 | it do 28 | json = api.search("domain:wikipedia.org") 29 | expect(json).to be_a(Hash) 30 | end 31 | end 32 | 33 | describe "#dom" do 34 | it do 35 | dom = api.dom(uuid) 36 | expect(dom).to be_a(String) 37 | end 38 | end 39 | 40 | describe "#screenshot" do 41 | it do 42 | screenshot = api.screenshot(uuid) 43 | expect(screenshot).to be_a(String) 44 | end 45 | end 46 | 47 | describe "#pro.brands" do 48 | it do 49 | json = api.pro.brands 50 | expect(json).to be_a(Hash) 51 | end 52 | end 53 | 54 | describe "#pro.kits" do 55 | it do 56 | json = api.pro.kits 57 | expect(json).to be_a(Hash) 58 | end 59 | end 60 | 61 | describe "#pro.phishfeed" do 62 | it do 63 | json = api.pro.phishfeed 64 | expect(json).to be_a(Hash) 65 | end 66 | end 67 | 68 | describe "#pro.similar" do 69 | it do 70 | json = api.pro.similar("34449810-6d17-40c1-bc77-56eb40b3781f") 71 | expect(json).to be_a(Hash) 72 | end 73 | 74 | it do 75 | json = api.pro.similar("34449810-6d17-40c1-bc77-56eb40b3781f", q: "date:>now-7d") 76 | expect(json).to be_a(Hash) 77 | end 78 | end 79 | end 80 | -------------------------------------------------------------------------------- /lib/urlscan/commands/community.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module UrlScan 4 | module Commands 5 | class Community < Base 6 | desc "submit [URL]", "submit a scan to [URL]" 7 | method_option :customagent, type: :string 8 | method_option :referer, type: :string 9 | method_option :visibility, type: :string 10 | method_option :tags, type: :array 11 | method_option :override_safety, type: :string 12 | method_option :country, type: :string 13 | def submit(url) 14 | with_error_handling do 15 | res = api.submit( 16 | url, 17 | customagent: options[:customagent], 18 | referer: options[:referer], 19 | visibility: options[:visibility], 20 | tags: options[:tags], 21 | override_safety: options[:override_safety], 22 | country: options[:country] 23 | ) 24 | puts JSON.pretty_generate(res) 25 | end 26 | end 27 | 28 | desc "result [UUID]", "get the result of a scan using the scan id [UUID]" 29 | def result(uuid) 30 | with_error_handling do 31 | res = api.result(uuid) 32 | puts JSON.pretty_generate(res) 33 | end 34 | end 35 | 36 | desc "search [QUERY]", "search for scans by [QUERY]" 37 | method_option :size, type: :numeric, default: 100 38 | method_option :search_after, type: :string 39 | def search(query) 40 | with_error_handling do 41 | res = api.search(query, size: options["size"], search_after: options["search_after"]) 42 | puts JSON.pretty_generate(res) 43 | end 44 | end 45 | 46 | desc "dom [UUID]", "get the DOM of a scan using the scan id [UUID]" 47 | def dom(uuid) 48 | with_error_handling do 49 | res = api.dom(uuid) 50 | puts res 51 | end 52 | end 53 | 54 | desc "screenshot [UUID]", "get the screenshot(image/png) of a scan using the scan id [UUID]" 55 | def screenshot(uuid) 56 | with_error_handling do 57 | res = api.screenshot(uuid) 58 | puts res 59 | end 60 | end 61 | end 62 | end 63 | end 64 | -------------------------------------------------------------------------------- /spec/fixtures/vcr_cassettes/UrlScan_API/_pro_similar/1_9_2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | http_interactions: 3 | - request: 4 | method: get 5 | uri: https://urlscan.io/api/v1/pro/result/34449810-6d17-40c1-bc77-56eb40b3781f/similar/?q=date:%3Enow-7d 6 | body: 7 | encoding: US-ASCII 8 | string: '' 9 | headers: 10 | Api-Key: 11 | - "" 12 | Accept-Encoding: 13 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 14 | Accept: 15 | - "*/*" 16 | User-Agent: 17 | - Ruby 18 | Host: 19 | - urlscan.io 20 | response: 21 | status: 22 | code: 200 23 | message: OK 24 | headers: 25 | Server: 26 | - nginx 27 | Date: 28 | - Fri, 03 Dec 2021 23:32:08 GMT 29 | Content-Type: 30 | - application/json; charset=utf-8 31 | Transfer-Encoding: 32 | - chunked 33 | Connection: 34 | - keep-alive 35 | X-User-Country: 36 | - JP 37 | Etag: 38 | - W/"45-aQCPH7iGIl6pW29cBW7iPyJU/88" 39 | Content-Security-Policy: 40 | - 'default-src ''self'' data: ; script-src ''self'' data: developers.google.com 41 | www.google.com www.gstatic.com https://*.hsforms.net https://*.hsforms.com; 42 | style-src ''self'' ''unsafe-inline'' fonts.googleapis.com www.google.com; 43 | img-src * data: ; font-src ''self'' fonts.gstatic.com; child-src ''self''; 44 | frame-src https://www.google.com/recaptcha/ https://*.hsforms.net https://*.hsforms.com; 45 | form-action ''self'' https://*.hsforms.com; upgrade-insecure-requests; connect-src 46 | ''self'' https://*.hsforms.com' 47 | Referrer-Policy: 48 | - unsafe-url 49 | Strict-Transport-Security: 50 | - max-age=63072000; includeSubdomains; preload 51 | X-Content-Type-Options: 52 | - nosniff 53 | X-Frame-Options: 54 | - DENY 55 | X-Xss-Protection: 56 | - 1; mode=block 57 | X-Proxy-Cache: 58 | - MISS 59 | X-Robots-Tag: 60 | - all 61 | body: 62 | encoding: ASCII-8BIT 63 | string: |- 64 | { 65 | "results": [], 66 | "total": 0, 67 | "took": 376, 68 | "has_more": false 69 | } 70 | recorded_at: Fri, 03 Dec 2021 23:32:07 GMT 71 | recorded_with: VCR 6.0.0 72 | -------------------------------------------------------------------------------- /lib/urlscan/clients/base.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "net/https" 4 | require "json" 5 | 6 | module UrlScan 7 | module Clients 8 | class Base 9 | VERSION = 1 10 | HOST = "urlscan.io" 11 | 12 | attr_reader :key 13 | 14 | def initialize(key = ENV["URLSCAN_API_KEY"]) 15 | @key = key 16 | end 17 | 18 | private 19 | 20 | def url 21 | @url ||= "https://#{HOST}/api/v#{VERSION}" 22 | end 23 | 24 | def url_for(path) 25 | URI(url + path) 26 | end 27 | 28 | def https_options 29 | if proxy = ENV["HTTPS_PROXY"] 30 | uri = URI(proxy) 31 | { 32 | proxy_address: uri.hostname, 33 | proxy_port: uri.port, 34 | proxy_from_env: false, 35 | use_ssl: true 36 | } 37 | else 38 | { use_ssl: true } 39 | end 40 | end 41 | 42 | def request(req) 43 | Net::HTTP.start(HOST, 443, https_options) do |http| 44 | response = http.request(req) 45 | 46 | case response.code 47 | when "200" 48 | if response["Content-Type"].to_s.include? "application/json" 49 | yield JSON.parse(response.body) 50 | else 51 | yield response.body 52 | end 53 | when "400" then raise ProcessingError, response.body 54 | when "401" then raise AuthenticationError, response.body 55 | when "404" then raise NotFound, response.body 56 | when "429" then raise RateLimited, response.body 57 | when "500" then raise InternalServerError, response.body 58 | else 59 | raise ResponseError, response.body 60 | end 61 | end 62 | end 63 | 64 | def default_headers 65 | @default_headers ||= { "API-KEY": key }.compact 66 | end 67 | 68 | def get(path, params = {}, &block) 69 | uri = url_for(path) 70 | uri.query = URI.encode_www_form(params) 71 | 72 | get = Net::HTTP::Get.new(uri, default_headers) 73 | request(get, &block) 74 | end 75 | 76 | def post(path, json, &block) 77 | post = Net::HTTP::Post.new(url_for(path), default_headers) 78 | post.content_type = "application/json" 79 | post.body = json.to_json 80 | 81 | request(post, &block) 82 | end 83 | end 84 | end 85 | end 86 | -------------------------------------------------------------------------------- /spec/fixtures/vcr_cassettes/UrlScan_API/_submit/1_1_1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | http_interactions: 3 | - request: 4 | method: post 5 | uri: https://urlscan.io/api/v1/scan/ 6 | body: 7 | encoding: UTF-8 8 | string: '{"url":"https://www.wikipedia.org/"}' 9 | headers: 10 | Api-Key: 11 | - "" 12 | Accept-Encoding: 13 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 14 | Accept: 15 | - "*/*" 16 | User-Agent: 17 | - Ruby 18 | Host: 19 | - urlscan.io 20 | Content-Type: 21 | - application/json 22 | response: 23 | status: 24 | code: 200 25 | message: OK 26 | headers: 27 | Server: 28 | - nginx 29 | Date: 30 | - Fri, 03 Dec 2021 23:52:41 GMT 31 | Content-Type: 32 | - application/json; charset=utf-8 33 | Transfer-Encoding: 34 | - chunked 35 | Connection: 36 | - keep-alive 37 | X-User-Country: 38 | - JP 39 | X-Rate-Limit-Scope: 40 | - user 41 | X-Rate-Limit-Action: 42 | - private 43 | X-Rate-Limit-Window: 44 | - minute 45 | X-Rate-Limit-Limit: 46 | - '120' 47 | X-Rate-Limit-Remaining: 48 | - '119' 49 | X-Rate-Limit-Reset: 50 | - '2021-12-03T23:53:00.000Z' 51 | X-Rate-Limit-Reset-After: 52 | - '17' 53 | Vary: 54 | - Accept 55 | Etag: 56 | - W/"162-PdXKj68yCSJ2qku9oQSk1CfaLPk" 57 | Content-Security-Policy: 58 | - 'default-src ''self'' data: ; script-src ''self'' data: developers.google.com 59 | www.google.com www.gstatic.com https://*.hsforms.net https://*.hsforms.com; 60 | style-src ''self'' ''unsafe-inline'' fonts.googleapis.com www.google.com; 61 | img-src * data: ; font-src ''self'' fonts.gstatic.com; child-src ''self''; 62 | frame-src https://www.google.com/recaptcha/ https://*.hsforms.net https://*.hsforms.com; 63 | form-action ''self'' https://*.hsforms.com; upgrade-insecure-requests; connect-src 64 | ''self'' https://*.hsforms.com' 65 | Referrer-Policy: 66 | - unsafe-url 67 | Strict-Transport-Security: 68 | - max-age=63072000; includeSubdomains; preload 69 | X-Content-Type-Options: 70 | - nosniff 71 | X-Frame-Options: 72 | - DENY 73 | X-Xss-Protection: 74 | - 1; mode=block 75 | X-Robots-Tag: 76 | - all 77 | body: 78 | encoding: ASCII-8BIT 79 | string: |- 80 | { 81 | "message": "Submission successful", 82 | "uuid": "df6f3755-af72-4d2b-a084-cbe3992d824d", 83 | "result": "https://urlscan.io/result/df6f3755-af72-4d2b-a084-cbe3992d824d/", 84 | "api": "https://urlscan.io/api/v1/result/df6f3755-af72-4d2b-a084-cbe3992d824d/", 85 | "visibility": "private", 86 | "options": {}, 87 | "url": "https://www.wikipedia.org/", 88 | "country": "jp" 89 | } 90 | recorded_at: Fri, 03 Dec 2021 23:52:40 GMT 91 | recorded_with: VCR 6.0.0 92 | -------------------------------------------------------------------------------- /spec/fixtures/vcr_cassettes/UrlScan_API/_submit/1_1_2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | http_interactions: 3 | - request: 4 | method: post 5 | uri: https://urlscan.io/api/v1/scan/ 6 | body: 7 | encoding: UTF-8 8 | string: '{"url":"https://www.wikipedia.org/","visibility":"private"}' 9 | headers: 10 | Api-Key: 11 | - "" 12 | Accept-Encoding: 13 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 14 | Accept: 15 | - "*/*" 16 | User-Agent: 17 | - Ruby 18 | Host: 19 | - urlscan.io 20 | Content-Type: 21 | - application/json 22 | response: 23 | status: 24 | code: 200 25 | message: OK 26 | headers: 27 | Server: 28 | - nginx 29 | Date: 30 | - Fri, 03 Dec 2021 23:52:40 GMT 31 | Content-Type: 32 | - application/json; charset=utf-8 33 | Transfer-Encoding: 34 | - chunked 35 | Connection: 36 | - keep-alive 37 | X-User-Country: 38 | - JP 39 | X-Rate-Limit-Scope: 40 | - user 41 | X-Rate-Limit-Action: 42 | - private 43 | X-Rate-Limit-Window: 44 | - day 45 | X-Rate-Limit-Limit: 46 | - '20000' 47 | X-Rate-Limit-Remaining: 48 | - '19996' 49 | X-Rate-Limit-Reset: 50 | - '2021-12-04T00:00:00.000Z' 51 | X-Rate-Limit-Reset-After: 52 | - '438' 53 | Vary: 54 | - Accept 55 | Etag: 56 | - W/"162-bAq7gZ0093N9Hn6AKUXNbQZ7Vjs" 57 | Content-Security-Policy: 58 | - 'default-src ''self'' data: ; script-src ''self'' data: developers.google.com 59 | www.google.com www.gstatic.com https://*.hsforms.net https://*.hsforms.com; 60 | style-src ''self'' ''unsafe-inline'' fonts.googleapis.com www.google.com; 61 | img-src * data: ; font-src ''self'' fonts.gstatic.com; child-src ''self''; 62 | frame-src https://www.google.com/recaptcha/ https://*.hsforms.net https://*.hsforms.com; 63 | form-action ''self'' https://*.hsforms.com; upgrade-insecure-requests; connect-src 64 | ''self'' https://*.hsforms.com' 65 | Referrer-Policy: 66 | - unsafe-url 67 | Strict-Transport-Security: 68 | - max-age=63072000; includeSubdomains; preload 69 | X-Content-Type-Options: 70 | - nosniff 71 | X-Frame-Options: 72 | - DENY 73 | X-Xss-Protection: 74 | - 1; mode=block 75 | X-Robots-Tag: 76 | - all 77 | body: 78 | encoding: ASCII-8BIT 79 | string: |- 80 | { 81 | "message": "Submission successful", 82 | "uuid": "5ff429a5-b4d3-4868-b5fc-e49895798943", 83 | "result": "https://urlscan.io/result/5ff429a5-b4d3-4868-b5fc-e49895798943/", 84 | "api": "https://urlscan.io/api/v1/result/5ff429a5-b4d3-4868-b5fc-e49895798943/", 85 | "visibility": "private", 86 | "options": {}, 87 | "url": "https://www.wikipedia.org/", 88 | "country": "jp" 89 | } 90 | recorded_at: Fri, 03 Dec 2021 23:52:39 GMT 91 | recorded_with: VCR 6.0.0 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # urlscan 2 | 3 | [![Gem Version](https://badge.fury.io/rb/urlscan.svg)](https://badge.fury.io/rb/urlscan) 4 | [![Ruby CI](https://github.com/ninoseki/urlscan/actions/workflows/test.yml/badge.svg)](https://github.com/ninoseki/urlscan/actions/workflows/test.yml) 5 | [![Maintainability](https://api.codeclimate.com/v1/badges/c6625486f2d57039adef/maintainability)](https://codeclimate.com/github/ninoseki/urlscan/maintainability) 6 | [![Coverage Status](https://coveralls.io/repos/github/ninoseki/urlscan/badge.svg?branch=master)](https://coveralls.io/github/ninoseki/urlscan?branch=master) 7 | 8 | ## Description 9 | 10 | [urlscan.io](https://urlscan.io/) API wrapper for Ruby. 11 | 12 | ## Installation 13 | 14 | ```bash 15 | gem install urlscan 16 | ``` 17 | 18 | ## API usage 19 | 20 | ```ruby 21 | require "urlscan" 22 | 23 | # when given nothing, it tries to load your API key from ENV["URLSCAN_API_KEY"] 24 | api = UrlScan::API.new 25 | # or you can set it manually 26 | api = UrlScan::API.new(api_key) 27 | 28 | # Submit a URL to scan 29 | res = api.submit("https://wikipedia.org") 30 | 31 | # Get a scan result 32 | res = api.result("ac04bc14-4efe-439d-b356-8384843daf75") 33 | 34 | # Get a DOM 35 | res = api.dom("ac04bc14-4efe-439d-b356-8384843daf75") 36 | 37 | # Search 38 | res = api.search("wikipedia.org") 39 | ``` 40 | 41 | ## Supported API endpoints 42 | 43 | | HTTP Method | URI | API method | 44 | |-------------|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| 45 | | POST | /scan | `UrlScan::Clients::Community#submit(url, customagent: nil, referer: nil, visibility: nil, tags: nil, override_safety: nil, country: nil))` | 46 | | GET | /result/`uuid`/ | `UrlScan::Clients::Community#result(uuid)` | 47 | | GET | /dom/`uuid`/ | `UrlScan::Clients::Community#dom(uuid)` | 48 | | GET | /screenshots/`uuid`.png | `UrlScan::Clients::Community#screenshot(uuid)` | 49 | | GET | /search | `UrlScan::Clients::Community#search(q, size: 100, search_after: nil)` | 50 | 51 | ### Pro 52 | 53 | | HTTP Method | URI | API method | 54 | |-------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| 55 | | GET | /brands | `UrlScan::Clients::Pro#brands` | 56 | | GET | /kits | `UrlScan::Clients::Pro#kits` | 57 | | GET | /phishfeed | `UrlScan::Clients::Pro#phishfeed(q: "result.task.time:>now-24h", format: "json", limit: ni)` | 58 | | GET | /result/`uuid`/similar/ | `UrlScan::Clients::Pro#similar(uuid, q: nil, size: nil, search_after: nil, threshold: nil, min_size: nil, method: nil, resource_types: nil))` | 59 | 60 | ## CLI usage 61 | 62 | ```bash 63 | $ urlscan 64 | Commands: 65 | urlscan dom [UUID] # get the DOM of a scan using the scan id [UUID] 66 | urlscan help [COMMAND] # Describe available commands or one specific command 67 | urlscan result [UUID] # get the result of a scan using the scan id [UUID] 68 | urlscan screenshot [UUID] # get the screenshot(image/png) of a scan using the scan id [UUID] 69 | urlscan search [QUERY] # search for scans by [QUERY] 70 | urlscan submit [URL] # submit a scan to [URL] 71 | 72 | Options: 73 | [--API-KEY=API_KEY] 74 | 75 | ``` 76 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- 1 | # Relaxed.Ruby.Style 2 | ## Version 2.2 3 | 4 | require: 5 | - rubocop-performance 6 | - rubocop-rspec 7 | 8 | AllCops: 9 | TargetRubyVersion: 2.6 10 | 11 | Style/Alias: 12 | Enabled: false 13 | StyleGuide: https://relaxed.ruby.style/#stylealias 14 | 15 | Style/AsciiComments: 16 | Enabled: false 17 | StyleGuide: https://relaxed.ruby.style/#styleasciicomments 18 | 19 | Style/BeginBlock: 20 | Enabled: false 21 | StyleGuide: https://relaxed.ruby.style/#stylebeginblock 22 | 23 | Style/BlockDelimiters: 24 | Enabled: false 25 | StyleGuide: https://relaxed.ruby.style/#styleblockdelimiters 26 | 27 | Style/CommentAnnotation: 28 | Enabled: false 29 | StyleGuide: https://relaxed.ruby.style/#stylecommentannotation 30 | 31 | Style/Documentation: 32 | Enabled: false 33 | StyleGuide: https://relaxed.ruby.style/#styledocumentation 34 | 35 | Layout/DotPosition: 36 | Enabled: false 37 | StyleGuide: https://relaxed.ruby.style/#layoutdotposition 38 | 39 | Style/DoubleNegation: 40 | Enabled: false 41 | StyleGuide: https://relaxed.ruby.style/#styledoublenegation 42 | 43 | Style/EndBlock: 44 | Enabled: false 45 | StyleGuide: https://relaxed.ruby.style/#styleendblock 46 | 47 | Style/FormatString: 48 | Enabled: false 49 | StyleGuide: https://relaxed.ruby.style/#styleformatstring 50 | 51 | Style/IfUnlessModifier: 52 | Enabled: false 53 | StyleGuide: https://relaxed.ruby.style/#styleifunlessmodifier 54 | 55 | Style/Lambda: 56 | Enabled: false 57 | StyleGuide: https://relaxed.ruby.style/#stylelambda 58 | 59 | Style/ModuleFunction: 60 | Enabled: false 61 | StyleGuide: https://relaxed.ruby.style/#stylemodulefunction 62 | 63 | Style/MultilineBlockChain: 64 | Enabled: false 65 | StyleGuide: https://relaxed.ruby.style/#stylemultilineblockchain 66 | 67 | Style/NegatedIf: 68 | Enabled: false 69 | StyleGuide: https://relaxed.ruby.style/#stylenegatedif 70 | 71 | Style/NegatedWhile: 72 | Enabled: false 73 | StyleGuide: https://relaxed.ruby.style/#stylenegatedwhile 74 | 75 | Style/ParallelAssignment: 76 | Enabled: false 77 | StyleGuide: https://relaxed.ruby.style/#styleparallelassignment 78 | 79 | Style/PercentLiteralDelimiters: 80 | Enabled: false 81 | StyleGuide: https://relaxed.ruby.style/#stylepercentliteraldelimiters 82 | 83 | Style/PerlBackrefs: 84 | Enabled: false 85 | StyleGuide: https://relaxed.ruby.style/#styleperlbackrefs 86 | 87 | Style/Semicolon: 88 | Enabled: false 89 | StyleGuide: https://relaxed.ruby.style/#stylesemicolon 90 | 91 | Style/SignalException: 92 | Enabled: false 93 | StyleGuide: https://relaxed.ruby.style/#stylesignalexception 94 | 95 | Style/SingleLineBlockParams: 96 | Enabled: false 97 | StyleGuide: https://relaxed.ruby.style/#stylesinglelineblockparams 98 | 99 | Style/SingleLineMethods: 100 | Enabled: false 101 | StyleGuide: https://relaxed.ruby.style/#stylesinglelinemethods 102 | 103 | Layout/SpaceBeforeBlockBraces: 104 | Enabled: false 105 | StyleGuide: https://relaxed.ruby.style/#layoutspacebeforeblockbraces 106 | 107 | Layout/SpaceInsideParens: 108 | Enabled: false 109 | StyleGuide: https://relaxed.ruby.style/#layoutspaceinsideparens 110 | 111 | Style/SpecialGlobalVars: 112 | Enabled: false 113 | StyleGuide: https://relaxed.ruby.style/#stylespecialglobalvars 114 | 115 | Style/StringLiterals: 116 | Enabled: false 117 | StyleGuide: https://relaxed.ruby.style/#stylestringliterals 118 | 119 | Style/TrailingCommaInArguments: 120 | Enabled: false 121 | StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarguments 122 | 123 | Style/TrailingCommaInArrayLiteral: 124 | Enabled: false 125 | StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarrayliteral 126 | 127 | Style/TrailingCommaInHashLiteral: 128 | Enabled: false 129 | StyleGuide: https://relaxed.ruby.style/#styletrailingcommainhashliteral 130 | 131 | Style/SymbolArray: 132 | Enabled: false 133 | StyleGuide: http://relaxed.ruby.style/#stylesymbolarray 134 | 135 | Style/WhileUntilModifier: 136 | Enabled: false 137 | StyleGuide: https://relaxed.ruby.style/#stylewhileuntilmodifier 138 | 139 | Style/WordArray: 140 | Enabled: false 141 | StyleGuide: https://relaxed.ruby.style/#stylewordarray 142 | 143 | Lint/AmbiguousRegexpLiteral: 144 | Enabled: false 145 | StyleGuide: https://relaxed.ruby.style/#lintambiguousregexpliteral 146 | 147 | Lint/AssignmentInCondition: 148 | Enabled: false 149 | StyleGuide: https://relaxed.ruby.style/#lintassignmentincondition 150 | 151 | Metrics/AbcSize: 152 | Enabled: false 153 | 154 | Metrics/BlockNesting: 155 | Enabled: false 156 | 157 | Metrics/ClassLength: 158 | Enabled: false 159 | 160 | Metrics/ModuleLength: 161 | Enabled: false 162 | 163 | Metrics/CyclomaticComplexity: 164 | Enabled: false 165 | 166 | Metrics/LineLength: 167 | Enabled: false 168 | 169 | Metrics/MethodLength: 170 | Enabled: false 171 | 172 | Metrics/ParameterLists: 173 | Enabled: false 174 | 175 | Metrics/PerceivedComplexity: 176 | Enabled: false 177 | -------------------------------------------------------------------------------- /spec/fixtures/vcr_cassettes/UrlScan_API/_result/1_5_1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | http_interactions: 3 | - request: 4 | method: get 5 | uri: https://urlscan.io/api/v1/screenshots/7f0aa2ab-748a-4cae-b648-71e324e836cd.png 6 | body: 7 | encoding: US-ASCII 8 | string: '' 9 | headers: 10 | Accept-Encoding: 11 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 12 | Accept: 13 | - "*/*" 14 | User-Agent: 15 | - Ruby 16 | Host: 17 | - urlscan.io 18 | response: 19 | status: 20 | code: 200 21 | message: OK 22 | headers: 23 | Server: 24 | - nginx 25 | Date: 26 | - Sun, 18 Aug 2019 10:40:41 GMT 27 | Content-Type: 28 | - image/png 29 | Content-Length: 30 | - '4761' 31 | Last-Modified: 32 | - Mon, 12 Aug 2019 18:06:46 GMT 33 | Connection: 34 | - keep-alive 35 | Etag: 36 | - '"5d51aab6-1299"' 37 | Expires: 38 | - Mon, 19 Aug 2019 10:40:41 GMT 39 | Cache-Control: 40 | - max-age=86400 41 | - public, must-revalidate, proxy-revalidate 42 | Accept-Ranges: 43 | - bytes 44 | body: 45 | encoding: ASCII-8BIT 46 | string: !binary |- 47 | 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 48 | http_version: 49 | recorded_at: Sun, 18 Aug 2019 10:40:39 GMT 50 | recorded_with: VCR 5.0.0 51 | -------------------------------------------------------------------------------- /spec/fixtures/vcr_cassettes/UrlScan_API/_screenshot/1_5_1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | http_interactions: 3 | - request: 4 | method: get 5 | uri: https://urlscan.io/api/v1/screenshots/7f0aa2ab-748a-4cae-b648-71e324e836cd.png 6 | body: 7 | encoding: US-ASCII 8 | string: '' 9 | headers: 10 | Accept-Encoding: 11 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 12 | Accept: 13 | - "*/*" 14 | User-Agent: 15 | - Ruby 16 | Host: 17 | - urlscan.io 18 | response: 19 | status: 20 | code: 200 21 | message: OK 22 | headers: 23 | Server: 24 | - nginx 25 | Date: 26 | - Sun, 18 Aug 2019 10:33:34 GMT 27 | Content-Type: 28 | - image/png 29 | Content-Length: 30 | - '4761' 31 | Last-Modified: 32 | - Mon, 12 Aug 2019 18:06:46 GMT 33 | Connection: 34 | - keep-alive 35 | Etag: 36 | - '"5d51aab6-1299"' 37 | Expires: 38 | - Mon, 19 Aug 2019 10:33:34 GMT 39 | Cache-Control: 40 | - max-age=86400 41 | - public, must-revalidate, proxy-revalidate 42 | Accept-Ranges: 43 | - bytes 44 | body: 45 | encoding: ASCII-8BIT 46 | string: !binary |- 47 | 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 48 | http_version: 49 | recorded_at: Sun, 18 Aug 2019 10:33:32 GMT 50 | recorded_with: VCR 5.0.0 51 | -------------------------------------------------------------------------------- /spec/fixtures/vcr_cassettes/UrlScan_API/_dom/1_4_1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | http_interactions: 3 | - request: 4 | method: get 5 | uri: https://urlscan.io/api/v1/dom/7f0aa2ab-748a-4cae-b648-71e324e836cd/ 6 | body: 7 | encoding: US-ASCII 8 | string: '' 9 | headers: 10 | Accept-Encoding: 11 | - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 12 | Accept: 13 | - "*/*" 14 | User-Agent: 15 | - Ruby 16 | Host: 17 | - urlscan.io 18 | response: 19 | status: 20 | code: 200 21 | message: OK 22 | headers: 23 | Server: 24 | - nginx 25 | Date: 26 | - Wed, 24 Jul 2019 06:37:01 GMT 27 | Content-Length: 28 | - '18430' 29 | Connection: 30 | - keep-alive 31 | Last-Modified: 32 | - Tue, 16 Jan 2018 05:48:13 GMT 33 | Etag: 34 | - '"47fe-562de46d0148f"' 35 | Accept-Ranges: 36 | - bytes 37 | Content-Type: 38 | - text/plain 39 | body: 40 | encoding: ASCII-8BIT 41 | string: !binary |- 42 | PGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHRpdGxlPldpa2lwZWRpYTwvdGl0bGU+CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJXaWtpcGVkaWEgaXMgYSBmcmVlIG9ubGluZSBlbmN5Y2xvcGVkaWEsIGNyZWF0ZWQgYW5kIGVkaXRlZCBieSB2b2x1bnRlZXJzIGFyb3VuZCB0aGUgd29ybGQgYW5kIGhvc3RlZCBieSB0aGUgV2lraW1lZGlhIEZvdW5kYXRpb24uIj4KPCEtLVtpZiBndCBJRSA3XS0tPgo8c2NyaXB0Pgpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKCAvKF58XHMpbm8tanMoXHN8JCkvLCAiJDFqcy1lbmFibGVkJDIiICk7Cjwvc2NyaXB0Pgo8IS0tW2VuZGlmXS0tPgo8IS0tW2lmIGx0IElFIDddPjxtZXRhIGh0dHAtZXF1aXY9ImltYWdldG9vbGJhciIgY29udGVudD0ibm8iPjwhW2VuZGlmXS0tPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLHVzZXItc2NhbGFibGU9eWVzIj4KPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvc3RhdGljL2FwcGxlLXRvdWNoL3dpa2lwZWRpYS5wbmciPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9zdGF0aWMvZmF2aWNvbi93aWtpcGVkaWEuaWNvIj4KPGxpbmsgcmVsPSJsaWNlbnNlIiBocmVmPSIvL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wLyI+CjxzdHlsZT4KLnNwcml0ZXtiYWNrZ3JvdW5kLWltYWdlOnVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL3Nwcml0ZS02ZTM1ZjQ2NC5wbmcpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LHRyYW5zcGFyZW50KSx1cmwocG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9zcHJpdGUtNmUzNWY0NjQuc3ZnKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS5zdmctQ29tbW9ucy1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDt3aWR0aDo0N3B4O2hlaWdodDo0N3B4fS5zdmctTWVkaWFXaWtpLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtNDdweDt3aWR0aDo0MnB4O2hlaWdodDo0MnB4fS5zdmctTWV0YS1XaWtpLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtODlweDt3aWR0aDozN3B4O2hlaWdodDozN3B4fS5zdmctV2lraWJvb2tzLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTI2cHg7d2lkdGg6MzdweDtoZWlnaHQ6MzdweH0uc3ZnLVdpa2lkYXRhLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTYzcHg7d2lkdGg6NDlweDtoZWlnaHQ6NDlweH0uc3ZnLVdpa2ltZWRpYS1sb2dvX2JsYWNre2JhY2tncm91bmQtcG9zaXRpb246MCAtMjEycHg7d2lkdGg6NDJweDtoZWlnaHQ6NDJweH0uc3ZnLVdpa2lwZWRpYV93b3JkbWFya3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTI1NHB4O3dpZHRoOjE3NnB4O2hlaWdodDozMnB4fS5zdmctV2lraXF1b3RlLWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtMjg2cHg7d2lkdGg6NDJweDtoZWlnaHQ6NDJweH0uc3ZnLVdpa2lzb3VyY2UtbG9nb19zaXN0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zMjhweDt3aWR0aDozOXB4O2hlaWdodDozOXB4fS5zdmctV2lraXNwZWNpZXMtbG9nb19zaXN0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zNjdweDt3aWR0aDo0MnB4O2hlaWdodDo0MnB4fS5zdmctV2lraXZlcnNpdHktbG9nb19zaXN0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC00MDlweDt3aWR0aDo0M3B4O2hlaWdodDozN3B4fS5zdmctV2lraXZveWFnZS1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTQ0NnB4O3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHh9LnN2Zy1XaWt0aW9uYXJ5LWxvZ29fc2lzdGVye2JhY2tncm91bmQtcG9zaXRpb246MCAtNDgycHg7d2lkdGg6MzdweDtoZWlnaHQ6MzdweH0uc3ZnLWFycm93LWRvd257YmFja2dyb3VuZC1wb3NpdGlvbjowIC01MTlweDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LnN2Zy1hcnJvdy1kb3duLWJsdWV7YmFja2dyb3VuZC1wb3NpdGlvbjowIC01MjdweDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LnN2Zy1ub2ltYWdle2JhY2tncm91bmQtcG9zaXRpb246MCAtNTM1cHg7d2lkdGg6NThweDtoZWlnaHQ6NThweH0uc3ZnLXNlYXJjaC1pY29ue2JhY2tncm91bmQtcG9zaXRpb246MCAtNTkzcHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweH0uc3ZnLXRyYW5zbGF0ZS1pY29ue2JhY2tncm91bmQtcG9zaXRpb246MCAtNjE1cHg7d2lkdGg6MjVweDtoZWlnaHQ6MThweH0uc3ZnLXdpa2lwZWRpYV9hcHBfdGlsZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTYzM3B4O3dpZHRoOjQycHg7aGVpZ2h0OjQycHh9Cjwvc3R5bGU+CjxzdHlsZT4KLyohClB1cmUgdjAuNi4xLXByZQpDb3B5cmlnaHQgMjAxNCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpMaWNlbnNlZCB1bmRlciB0aGUgQlNEIExpY2Vuc2UuCmh0dHBzOi8vZ2l0aHViLmNvbS95YWhvby9wdXJlL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQKKi8vKiEKbm9ybWFsaXplLmNzcyB2XjMuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZQpDb3B5cmlnaHQgKGMpIE5pY29sYXMgR2FsbGFnaGVyIGFuZCBKb25hdGhhbiBOZWFsCiovLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL2h0bWx7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlO2ZvbnQtc2l6ZTo2Mi41JX1ib2R5e21hcmdpbjowfWFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfWF1ZGlvLGNhbnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfVtoaWRkZW5dLHRlbXBsYXRle2Rpc3BsYXk6bm9uZX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9YTphY3RpdmUsYTpob3ZlcntvdXRsaW5lOjB9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OjcwMH1kZm57Zm9udC1zdHlsZTppdGFsaWN9aDF7Zm9udC1zaXplOjMycHg7Zm9udC1zaXplOjMuMnJlbTttYXJnaW46MTAuN3B4IDA7bWFyZ2luOjEuMDdyZW0gMH1tYXJre2JhY2tncm91bmQ6I2ZjMztjb2xvcjojMDAwfXNtYWxse2ZvbnQtc2l6ZTo4NSV9c3ViLHN1cHtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vwe3RvcDotLjVlbX1zdWJ7Ym90dG9tOi0uMjVlbX1pbWd7Ym9yZGVyOjB9c3ZnOm5vdCg6cm9vdCl7b3ZlcmZsb3c6aGlkZGVufWZpZ3VyZXttYXJnaW46MTZweCA0MHB4O21hcmdpbjoxLjZyZW0gNHJlbX1ocnstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjB9cHJle292ZXJmbG93OmF1dG99Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MTRweDtmb250LXNpemU6MS40cmVtfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Y29sb3I6aW5oZXJpdDtmb250OmluaGVyaXQ7bWFyZ2luOjB9YnV0dG9ue292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIGlucHV0W3R5cGU9YnV0dG9uXSxpbnB1dFt0eXBlPXJlc2V0XSxpbnB1dFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtjdXJzb3I6cG9pbnRlcn1idXR0b25bZGlzYWJsZWRdLGh0bWwgaW5wdXRbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MDtwYWRkaW5nOjB9aW5wdXR7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9Y2hlY2tib3hdLGlucHV0W3R5cGU9cmFkaW9dey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9aW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94fWlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9aW5wdXRbdHlwZT1zZWFyY2hdOmZvY3Vze291dGxpbmUtb2Zmc2V0Oi0ycHh9ZmllbGRzZXR7Ym9yZGVyOjFweCBzb2xpZCBzaWx2ZXI7bWFyZ2luOjAgMnB4O21hcmdpbjowIC4ycmVtO3BhZGRpbmc6NS42cHggMTBweCAxMnB4O3BhZGRpbmc6LjU2cmVtIDFyZW0gMS4ycmVtfWxlZ2VuZHtib3JkZXI6MDtwYWRkaW5nOjB9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31vcHRncm91cHtmb250LXdlaWdodDo3MDB9dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9dGQsdGh7cGFkZGluZzowfS5oaWRkZW4sW2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH1ib2R5e2JhY2tncm91bmQtY29sb3I6I2ZmZjtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc2l6ZToxLjNyZW07bGluZS1oZWlnaHQ6MS41O21hcmdpbjozLjlweCAwO21hcmdpbjouMzlyZW0gMH1hey1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259YSxhOmFjdGl2ZSxhOmZvY3Vze3VuaWNvZGUtYmlkaTplbWJlZDtvdXRsaW5lOjA7Y29sb3I6IzM2Yzt0ZXh0LWRlY29yYXRpb246bm9uZX1hOmZvY3Vze291dGxpbmU6MXB4IHNvbGlkICMzNmN9YTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWltZ3tib3JkZXI6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9aHJ7Y2xlYXI6Ym90aDtoZWlnaHQ6MDtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzhjY2QxO21hcmdpbjoyLjZweCAxM3B4O21hcmdpbjouMjZyZW0gMS4zcmVtfS8qIQpQdXJlIHYwLjYuMS1wcmUKQ29weXJpZ2h0IDIwMTQgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KTGljZW5zZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlLgpodHRwczovL2dpdGh1Yi5jb20veWFob28vcHVyZS9ibG9iL21hc3Rlci9MSUNFTlNFLm1kCiovLnB1cmUtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3pvb206MTtsaW5lLWhlaWdodDpub3JtYWw7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7Y29sb3I6IzIyMjtwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjE5LjJweDttaW4taGVpZ2h0OjEuOTJyZW07bWluLXdpZHRoOjE2cHg7bWluLXdpZHRoOjEuNnJlbTttYXJnaW46MS42cHggMDttYXJnaW46LjE2cmVtIDA7Ym9yZGVyOjFweCBzb2xpZCAjYTJhOWIxOy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzo4cHggMTZweDtwYWRkaW5nOi44cmVtIDEuNnJlbTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjp0b3A7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGVhc2UsY29sb3IgLjFzIGVhc2UsYm9yZGVyLWNvbG9yIC4xcyBlYXNlLC13ZWJraXQtYm94LXNoYWRvdyAuMXMgZWFzZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGVhc2UsY29sb3IgLjFzIGVhc2UsYm9yZGVyLWNvbG9yIC4xcyBlYXNlLC13ZWJraXQtYm94LXNoYWRvdyAuMXMgZWFzZTstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZCAuMXMgZWFzZSxjb2xvciAuMXMgZWFzZSxib3JkZXItY29sb3IgLjFzIGVhc2UsYm94LXNoYWRvdyAuMXMgZWFzZSwtbW96LWJveC1zaGFkb3cgLjFzIGVhc2U7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xcyBlYXNlLGNvbG9yIC4xcyBlYXNlLGJvcmRlci1jb2xvciAuMXMgZWFzZSxib3gtc2hhZG93IC4xcyBlYXNlO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMXMgZWFzZSxjb2xvciAuMXMgZWFzZSxib3JkZXItY29sb3IgLjFzIGVhc2UsYm94LXNoYWRvdyAuMXMgZWFzZSwtd2Via2l0LWJveC1zaGFkb3cgLjFzIGVhc2UsLW1vei1ib3gtc2hhZG93IC4xcyBlYXNlfS5wdXJlLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntwYWRkaW5nOjA7Ym9yZGVyOjB9LnB1cmUtYnV0dG9uLWhvdmVyLC5wdXJlLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNhMmE5YjE7Y29sb3I6IzQ0NH0ucHVyZS1idXR0b24tYWN0aXZlLC5wdXJlLWJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYzhjY2QxO2JvcmRlci1jb2xvcjojNzI3NzdkO2NvbG9yOiMwMDB9LnB1cmUtYnV0dG9uOmZvY3Vze291dGxpbmU6MDtib3JkZXItY29sb3I6IzM2Yzstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmM7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmN9LnB1cmUtYnV0dG9uLXByaW1hcnktcHJvZ3Jlc3NpdmV7YmFja2dyb3VuZC1jb2xvcjojMzZjO2JvcmRlci1jb2xvcjojMzZjO2NvbG9yOiNmZmZ9LnB1cmUtYnV0dG9uLXByaW1hcnktcHJvZ3Jlc3NpdmU6aG92ZXJ7YmFja2dyb3VuZDojNDQ3ZmY1O2JvcmRlci1jb2xvcjojNDQ3ZmY1fS5wdXJlLWJ1dHRvbi1wcmltYXJ5LXByb2dyZXNzaXZlOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMyYTRiOGQ7Ym9yZGVyLWNvbG9yOiMyYTRiOGQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LnB1cmUtYnV0dG9uLXByaW1hcnktcHJvZ3Jlc3NpdmU6Zm9jdXN7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjLGluc2V0IDAgMCAwIDJweCAjZmZmOy1tb3otYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggIzM2YyxpbnNldCAwIDAgMCAycHggI2ZmZjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjLGluc2V0IDAgMCAwIDJweCAjZmZmO2JvcmRlci1jb2xvcjojMzZjfS8qIQpQdXJlIHYwLjYuMS1wcmUKQ29weXJpZ2h0IDIwMTQgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KTGljZW5zZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlLgpodHRwczovL2dpdGh1Yi5jb20veWFob28vcHVyZS9ibG9iL21hc3Rlci9MSUNFTlNFLm1kCiovLnB1cmUtZm9ybSBpbnB1dFt0eXBlPXNlYXJjaF17YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MXB4IHNvbGlkICNhMmE5YjE7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjhweDtwYWRkaW5nOi44cmVtOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZjstbW96LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmY7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnB1cmUtZm9ybSBpbnB1dDpmb2N1czppbnZhbGlke2NvbG9yOiNiMzI0MjQ7Ym9yZGVyLWNvbG9yOiNkMzN9LnB1cmUtZm9ybSBmaWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjUuNnB4IDAgMTJweDtwYWRkaW5nOi41NnJlbSAwIDEuMnJlbTtib3JkZXI6MH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5wdXJlLWZvcm0gaW5wdXRbdHlwZT1zZWFyY2hde21hcmdpbi1ib3R0b206NC44cHg7bWFyZ2luLWJvdHRvbTouNDhyZW07ZGlzcGxheTpibG9ja319LmNlbnRyYWwtdGV4dGxvZ297bWFyZ2luOjMwcHggMCAxNXB4IDA7bWFyZ2luOjNyZW0gMCAxLjVyZW0gMDtwYWRkaW5nOjEwcHggMDtwYWRkaW5nOjFyZW0gMDtmb250LWZhbWlseTonTGludXggTGliZXJ0aW5lJywnSG9lZmxlciBUZXh0JyxHZW9yZ2lhLCdUaW1lcyBOZXcgUm9tYW4nLFRpbWVzLHNlcmlmO2ZvbnQtc2l6ZTozMHB4O2ZvbnQtc2l6ZTozcmVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDozM3B4O2xpbmUtaGVpZ2h0OjMuM3JlbTt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczoic3MwNT0xIjstbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczoic3MwNSI7LXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6InNzMDUiOy1tcy1mb250LWZlYXR1cmUtc2V0dGluZ3M6InNzMDUiO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoic3MwNSJ9LmxvY2FsaXplZC1zbG9nYW57ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOi0yMHB4O21hcmdpbi1ib3R0b206LTJyZW07Zm9udC1mYW1pbHk6J0xpbnV4IExpYmVydGluZScsR2VvcmdpYSxUaW1lcyxzZXJpZjtmb250LXNpemU6MTZweDtmb250LXNpemU6MS42cmVtOy13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDstbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMH0uY2VudHJhbC10ZXh0bG9nb19faW1hZ2V7Y29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3RleHQtaW5kZW50Oi0xMDAwMHB4fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6NDgwcHgpey5jZW50cmFsLXRleHRsb2dve3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDo3MHB4O21hcmdpbjowO3BhZGRpbmc6MDtsaW5lLWhlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXJ9LmNlbnRyYWwtdGV4dGxvZ29fX2ltYWdle21hcmdpbi10b3A6OHB4O21hcmdpbi10b3A6LjhyZW19LmxvY2FsaXplZC1zbG9nYW57bWFyZ2luLWxlZnQ6MThweDttYXJnaW4tbGVmdDoxLjhyZW19fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6Mzc1cHgpey5jZW50cmFsLXRleHRsb2dve21hcmdpbi1sZWZ0OjUwcHh9fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpey5jZW50cmFsLXRleHRsb2dvX19pbWFnZXtoZWlnaHQ6YXV0b319LmNlbnRyYWwtZmVhdHVyZWR7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjMyNXB4O2hlaWdodDozMi41cmVtO3dpZHRoOjU0NnB4O3dpZHRoOjU0LjZyZW07bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNlbnRyYWwtZmVhdHVyZWQtbG9nby13cmFwcGVye2xpbmUtaGVpZ2h0OjMxMnB4O2xpbmUtaGVpZ2h0OjMxLjJyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5jZW50cmFsLWZlYXR1cmVkLWxhbmd7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTU2cHg7d2lkdGg6MTUuNnJlbX0uY2VudHJhbC1mZWF0dXJlZC1sYW5nIC5saW5rLWJveHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MDt0ZXh0LWRlY29yYXRpb246bm9uZTt3aGl0ZS1zcGFjZTpub3JtYWx9LmNlbnRyYWwtZmVhdHVyZWQtbGFuZyAubGluay1ib3g6aG92ZXIgc3Ryb25ne3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmNlbnRyYWwtZmVhdHVyZWQtbGFuZyBzdHJvbmd7ZGlzcGxheTpibG9jaztmb250LXNpemU6bGFyZ2VyfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgc21hbGx7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjExLjA0cHg7Zm9udC1zaXplOjEuMTA0cmVtO2xpbmUtaGVpZ2h0OjEwLjM2cHg7bGluZS1oZWlnaHQ6MS4wMzZyZW07Y29sb3I6IzU0NTk1ZH0uY2VudHJhbC1mZWF0dXJlZC1sYW5nIGVte2ZvbnQtc3R5bGU6aXRhbGljfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgLmVtTm9uSXRhbGljTGFuZ3tmb250LXN0eWxlOm5vcm1hbH0ubGFuZzF7dG9wOjA7cmlnaHQ6NjAlfS5sYW5nMnt0b3A6MDtsZWZ0OjYwJX0ubGFuZzN7dG9wOjIwJTtyaWdodDo3MCV9Lmxhbmc0e3RvcDoyMCU7bGVmdDo3MCV9Lmxhbmc1e3RvcDo0MCU7cmlnaHQ6NzIlfS5sYW5nNnt0b3A6NDAlO2xlZnQ6NzIlfS5sYW5nN3t0b3A6NjAlO3JpZ2h0OjcwJX0ubGFuZzh7dG9wOjYwJTtsZWZ0OjcwJX0ubGFuZzl7dG9wOjgwJTtyaWdodDo2MCV9LmxhbmcxMHt0b3A6ODAlO2xlZnQ6NjAlfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6NDgwcHgpey5jZW50cmFsLWZlYXR1cmVke3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luLXRvcDo0MS42cHg7bWFyZ2luLXRvcDo0LjE2cmVtO3BhZGRpbmctdG9wOjIwLjhweDtwYWRkaW5nLXRvcDoyLjA4cmVtO2ZvbnQtc2l6ZToxMC40cHg7Zm9udC1zaXplOjEuMDRyZW07dGV4dC1hbGlnbjpsZWZ0fS5jZW50cmFsLWZlYXR1cmVkOmFmdGVye2NvbnRlbnQ6JyAnO2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTpoaWRkZW47Y2xlYXI6Ym90aDtoZWlnaHQ6MDtmb250LXNpemU6MH0uY2VudHJhbC1mZWF0dXJlZC1sb2dve3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNzBweDtsZWZ0OjguMzJweDtsZWZ0Oi44MzJyZW07d2lkdGg6NzBweDttYXJnaW4tdG9wOi00MS42cHg7bWFyZ2luLXRvcDotNC4xNnJlbX0uY2VudHJhbC1mZWF0dXJlZC1sYW5ne2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0bzstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjY0cHg7aGVpZ2h0OjYuNHJlbTt3aWR0aDozMyU7bWFyZ2luOjA7cGFkZGluZzowIDE2cHg7cGFkZGluZzowIDEuNnJlbTtmb250LXNpemU6MTIuOHB4O2ZvbnQtc2l6ZToxLjI4cmVtO3RleHQtYWxpZ246Y2VudGVyfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgc3Ryb25ne2ZvbnQtc2l6ZToxMi44cHg7Zm9udC1zaXplOjEuMjhyZW19LmNlbnRyYWwtZmVhdHVyZWQtbGFuZyBzbWFsbHtmb250LXNpemU6Ni44cHg7Zm9udC1zaXplOi42OHJlbTtsaW5lLWhlaWdodDoxMC4ycHg7bGluZS1oZWlnaHQ6MS4wMnJlbX19QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDozNzVweCl7LmNlbnRyYWwtZmVhdHVyZWQtbGFuZ3tmb250LXNpemU6MTEuMnB4O2ZvbnQtc2l6ZToxLjEycmVtfS5jZW50cmFsLWZlYXR1cmVkLWxhbmcgc21hbGx7Zm9udC1zaXplOjkuNnB4O2ZvbnQtc2l6ZTouOTZyZW07bGluZS1oZWlnaHQ6MTYuOHB4O2xpbmUtaGVpZ2h0OjEuNjhyZW19fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpey5jZW50cmFsLWZlYXR1cmVkLWxhbmd7d2lkdGg6MTAwJX19LnNlYXJjaC1jb250YWluZXJ7ZmxvYXQ6bm9uZTttYXgtd2lkdGg6OTUlO3dpZHRoOjU0MHB4O21hcmdpbjowIGF1dG8gMTkuNXB4IGF1dG87bWFyZ2luOjAgYXV0byAxLjk1cmVtIGF1dG87cGFkZGluZzozLjlweDtwYWRkaW5nOi4zOXJlbTt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnNlYXJjaC1jb250YWluZXIgYnV0dG9ue21hcmdpbjowO3BhZGRpbmc6OHB4IDE2cHg7cGFkZGluZzouOHJlbSAxLjZyZW07ei1pbmRleDoyO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6MS42O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uc2VhcmNoLWNvbnRhaW5lciBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLnNlYXJjaC1jb250YWluZXIgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLC5zZWFyY2gtY29udGFpbmVyIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sLnNlYXJjaC1jb250YWluZXIgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnNlYXJjaC1jb250YWluZXIgaW5wdXQ6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntkaXNwbGF5Om5vbmV9LnNlYXJjaC1jb250YWluZXIgLnNwcml0ZS5zdmctYXJyb3ctZG93bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6N3B4O3RvcDouN3JlbTtyaWdodDo2LjVweDtyaWdodDouNjVyZW07bWFyZ2luOjB9I3NlYXJjaElucHV0e2hlaWdodDo0My4ycHg7aGVpZ2h0OjQuMzJyZW07d2lkdGg6MTAwJTtwYWRkaW5nOjhweDtwYWRkaW5nOi44cmVtO3BhZGRpbmctcmlnaHQ6MTAyLjRweDtwYWRkaW5nLXJpZ2h0OjEwLjI0cmVtO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6MS42fS5zZWFyY2gtY29udGFpbmVyIC5zZWFyY2gtaW5wdXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NzMlO21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLXJpZ2h0Oi44cmVtO3ZlcnRpY2FsLWFsaWduOnRvcH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5zZWFyY2gtY29udGFpbmVye21hcmdpbi10b3A6MH0uc2VhcmNoLWNvbnRhaW5lciAucHVyZS1mb3JtIGZpZWxkc2V0e21hcmdpbi1sZWZ0OjVweDttYXJnaW4tbGVmdDouNXJlbTttYXJnaW4tcmlnaHQ6ODBweDttYXJnaW4tcmlnaHQ6OHJlbX0uc2VhcmNoLWNvbnRhaW5lciAuc2VhcmNoLWlucHV0e21hcmdpbi1sZWZ0OjVweDttYXJnaW4tbGVmdDouNXJlbTttYXJnaW4tcmlnaHQ6LTcwcHg7bWFyZ2luLXJpZ2h0Oi03cmVtO21hcmdpbi1ib3R0b206MDt3aWR0aDoxMDAlfS5zZWFyY2gtY29udGFpbmVyIC5wdXJlLWZvcm0gYnV0dG9ue2Zsb2F0OnJpZ2h0O3JpZ2h0Oi03MHB4O3JpZ2h0Oi03cmVtO21hcmdpbjowO3BhZGRpbmc6OHB4IDE2cHg7cGFkZGluZzouOHJlbSAxLjZyZW19fS5zdWdnZXN0aW9ucy1kcm9wZG93bntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3otaW5kZXg6Mjstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjFweCBzb2xpZCAjYTJhOWIxO2JvcmRlci10b3A6MDstd2Via2l0LWJveC1zaGFkb3c6MCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMjUpOy1tb3otYm94LXNoYWRvdzowIDJweCAycHggMCByZ2JhKDAsMCwwLC4yNSk7Ym94LXNoYWRvdzowIDJweCAycHggMCByZ2JhKDAsMCwwLC4yNSk7dGV4dC1hbGlnbjpsZWZ0O2xpc3Qtc3R5bGUtdHlwZTpub25lfS5zdWdnZXN0aW9uLWxpbmt7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWluLWhlaWdodDo3MHB4O21pbi1oZWlnaHQ6N3JlbTt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggODVweDtwYWRkaW5nOjFyZW0gMXJlbSAxcmVtIDguNXJlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWFlY2YwO2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1hbGlnbjpsZWZ0O3RleHQtYWxpZ246aW5pdGlhbDt3aGl0ZS1zcGFjZTpub3JtYWx9LnN1Z2dlc3Rpb24tbGluay5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZWFmM2ZmfWEuc3VnZ2VzdGlvbi1saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfWEuc3VnZ2VzdGlvbi1saW5rOmFjdGl2ZSxhLnN1Z2dlc3Rpb24tbGluazpmb2N1c3tvdXRsaW5lOjA7d2hpdGUtc3BhY2U6bm9ybWFsfS5zdWdnZXN0aW9uLXRodW1ibmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiNlYWVjZjA7YmFja2dyb3VuZC1pbWFnZTp1cmwocG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9ub2ltYWdlLnBuZyk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDApLHJnYmEoMCwwLDAsMCkpLHVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUyMGVuY29kaW5nJTNEJTIydXRmLTglMjIlM0YlM0UlMEElM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDU2JTIwNTYlMjIlMjBlbmFibGUtYmFja2dyb3VuZCUzRCUyMm5ldyUyMDAlMjAwJTIwNTYlMjA1NiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZWVlJTIyJTIwZCUzRCUyMk0wJTIwMGg1NnY1NmgtNTZ6JTIyJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjBkJTNEJTIyTTM2LjQlMjAxMy41aC0xOC42djI0LjljMCUyMDEuNC45JTIwMi4zJTIwMi4zJTIwMi4zaDE4Ljd2LTI1Yy4xLTEuNC0xLTIuMi0yLjQtMi4yem0tNi4yJTIwMy41aDUuMXY2LjRoLTUuMXYtNi40em0tOC44JTIwMGg2djEuOGgtNnYtMS44em0wJTIwNC42aDZ2MS44aC02di0xLjh6bTAlMjAxNS41di0xLjhoMTMuOHYxLjhoLTEzLjh6bTEzLjgtNC41aC0xMy44di0xLjhoMTMuOHYxLjh6bTAtNC43aC0xMy44di0xLjhoMTMuOHYxLjh6JTIyJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LHRyYW5zcGFyZW50KSx1cmwocG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9ub2ltYWdlLnN2ZykgIWllO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbShyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLDApKSksdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0MlM0Z4bWwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJ1dGYtOCUyMiUzRiUzRSUwQSUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNTYlMjA1NiUyMiUyMGVuYWJsZS1iYWNrZ3JvdW5kJTNEJTIybmV3JTIwMCUyMDAlMjA1NiUyMDU2JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlZWUlMjIlMjBkJTNEJTIyTTAlMjAwaDU2djU2aC01NnolMjIlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzk5OSUyMiUyMGQlM0QlMjJNMzYuNCUyMDEzLjVoLTE4LjZ2MjQuOWMwJTIwMS40LjklMjAyLjMlMjAyLjMlMjAyLjNoMTguN3YtMjVjLjEtMS40LTEtMi4yLTIuNC0yLjJ6bS02LjIlMjAzLjVoNS4xdjYuNGgtNS4xdi02LjR6bS04LjglMjAwaDZ2MS44aC02di0xLjh6bTAlMjA0LjZoNnYxLjhoLTZ2LTEuOHptMCUyMDE1LjV2LTEuOGgxMy44djEuOGgtMTMuOHptMTMuOC00LjVoLTEzLjh2LTEuOGgxMy44djEuOHptMC00LjdoLTEzLjh2LTEuOGgxMy44djEuOHolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwKSxyZ2JhKDAsMCwwLDApKSx1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQyUzRnhtbCUyMHZlcnNpb24lM0QlMjIxLjAlMjIlMjBlbmNvZGluZyUzRCUyMnV0Zi04JTIyJTNGJTNFJTBBJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA1NiUyMDU2JTIyJTIwZW5hYmxlLWJhY2tncm91bmQlM0QlMjJuZXclMjAwJTIwMCUyMDU2JTIwNTYlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2VlZSUyMiUyMGQlM0QlMjJNMCUyMDBoNTZ2NTZoLTU2eiUyMiUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwZCUzRCUyMk0zNi40JTIwMTMuNWgtMTguNnYyNC45YzAlMjAxLjQuOSUyMDIuMyUyMDIuMyUyMDIuM2gxOC43di0yNWMuMS0xLjQtMS0yLjItMi40LTIuMnptLTYuMiUyMDMuNWg1LjF2Ni40aC01LjF2LTYuNHptLTguOCUyMDBoNnYxLjhoLTZ2LTEuOHptMCUyMDQuNmg2djEuOGgtNnYtMS44em0wJTIwMTUuNXYtMS44aDEzLjh2MS44aC0xMy44em0xMy44LTQuNWgtMTMuOHYtMS44aDEzLjh2MS44em0wLTQuN2gtMTMuOHYtMS44aDEzLjh2MS44eiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwKSxyZ2JhKDAsMCwwLDApKSx1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQyUzRnhtbCUyMHZlcnNpb24lM0QlMjIxLjAlMjIlMjBlbmNvZGluZyUzRCUyMnV0Zi04JTIyJTNGJTNFJTBBJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA1NiUyMDU2JTIyJTIwZW5hYmxlLWJhY2tncm91bmQlM0QlMjJuZXclMjAwJTIwMCUyMDU2JTIwNTYlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2VlZSUyMiUyMGQlM0QlMjJNMCUyMDBoNTZ2NTZoLTU2eiUyMiUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwZCUzRCUyMk0zNi40JTIwMTMuNWgtMTguNnYyNC45YzAlMjAxLjQuOSUyMDIuMyUyMDIuMyUyMDIuM2gxOC43di0yNWMuMS0xLjQtMS0yLjItMi40LTIuMnptLTYuMiUyMDMuNWg1LjF2Ni40aC01LjF2LTYuNHptLTguOCUyMDBoNnYxLjhoLTZ2LTEuOHptMCUyMDQuNmg2djEuOGgtNnYtMS44em0wJTIwMTUuNXYtMS44aDEzLjh2MS44aC0xMy44em0xMy44LTQuNWgtMTMuOHYtMS44aDEzLjh2MS44em0wLTQuN2gtMTMuOHYtMS44aDEzLjh2MS44eiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHRyYW5zcGFyZW50KSx0byh0cmFuc3BhcmVudCkpLHVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL25vaW1hZ2Uuc3ZnKSAhaWU7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCx0cmFuc3BhcmVudCksdXJsKHBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvbm9pbWFnZS5zdmcpICFpZTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCx0cmFuc3BhcmVudCksdXJsKHBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvbm9pbWFnZS5zdmcpICFpZTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCx0cmFuc3BhcmVudCksdXJsKHBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvbm9pbWFnZS5wbmcpO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MTAwJSBhdXRvOy1tb3otYmFja2dyb3VuZC1zaXplOjEwMCUgYXV0bztiYWNrZ3JvdW5kLXNpemU6MTAwJSBhdXRvOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtoZWlnaHQ6MTAwJTt3aWR0aDo3MHB4O3dpZHRoOjdyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS5zdWdnZXN0aW9uLXRpdGxle21hcmdpbjowIDAgNy44cHggMDttYXJnaW46MCAwIC43OHJlbSAwO2NvbG9yOiM1NDU5NWQ7Zm9udC1zaXplOjE1LjZweDtmb250LXNpemU6MS41NnJlbTtsaW5lLWhlaWdodDoxOC43MnB4O2xpbmUtaGVpZ2h0OjEuODcycmVtfS5zdWdnZXN0aW9uLWxpbmsuYWN0aXZlIC5zdWdnZXN0aW9uLXRpdGxle2NvbG9yOiMzNmN9LnN1Z2dlc3Rpb24taGlnaGxpZ2h0e2ZvbnQtc3R5bGU6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnN1Z2dlc3Rpb24tZGVzY3JpcHRpb257Y29sb3I6IzcyNzc3ZDttYXJnaW46MDtmb250LXNpemU6MTNweDtmb250LXNpemU6MS4zcmVtO2xpbmUtaGVpZ2h0OjE0LjI5OXB4O2xpbmUtaGVpZ2h0OjEuNDNyZW19LnN0eWxlZC1zZWxlY3R7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O3RvcDoxcmVtO2JvdHRvbToxMnB4O2JvdHRvbToxLjJyZW07cmlnaHQ6MTJweDtyaWdodDoxLjJyZW07bWF4LXdpZHRoOjk1cHg7bWF4LXdpZHRoOjkuNXJlbTtoZWlnaHQ6MjRweDtoZWlnaHQ6Mi40cmVtO21hcmdpbjowO3BhZGRpbmc6MDstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS5zdHlsZWQtc2VsZWN0OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYX0uc3R5bGVkLXNlbGVjdCAuaGlkZS1hcnJvd3tyaWdodDozMnB4O3JpZ2h0OjMuMnJlbTttYXgtd2lkdGg6NjhweDttYXgtd2lkdGg6Ni44cmVtO2hlaWdodDoyNHB4O2hlaWdodDoyLjRyZW07cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOnJpZ2h0fS5zdHlsZWQtc2VsZWN0IHNlbGVjdHtiYWNrZ3JvdW5kOjAgMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjI0cHg7aGVpZ2h0OjIuNHJlbTttaW4td2lkdGg6MTEwcHg7bWluLXdpZHRoOjExcmVtO21heC13aWR0aDoxMTBweDttYXgtd2lkdGg6MTFyZW07d2lkdGg6MTEwcHg7d2lkdGg6MTFyZW07b3V0bGluZTowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MDtsaW5lLWhlaWdodDoxOS41cHg7bGluZS1oZWlnaHQ6MS45NXJlbTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6d2luZG93O3RleHQtaW5kZW50Oi4wMXB4O3RleHQtb3ZlcmZsb3c6Jyc7LW8tYXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtvcGFjaXR5OjA7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2N1cnNvcjpwb2ludGVyfS5zdHlsZWQtc2VsZWN0Lm5vLWpze3dpZHRoOjk1cHg7d2lkdGg6OS41cmVtfS5zdHlsZWQtc2VsZWN0Lm5vLWpzIHNlbGVjdHtvcGFjaXR5OjE7bWFyZ2luOjA7cGFkZGluZzowIDI0cHggMCA4cHg7cGFkZGluZzowIDIuNHJlbSAwIC44cmVtO2NvbG9yOiM1NDU5NWR9LnN0eWxlZC1zZWxlY3Qubm8tanMgLmhpZGUtYXJyb3d7d2lkdGg6NjhweDt3aWR0aDo2LjhyZW19LnNlYXJjaC1jb250YWluZXIgLnN0eWxlZC1zZWxlY3Qubm8tanMgLmpzLWxhbmdwaWNrZXItbGFiZWx7ZGlzcGxheTpub25lfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgLmhpZGUtYXJyb3d7cGFkZGluZzowIDI0cHggMCA4cHg7cGFkZGluZzowIDIuNHJlbSAwIC44cmVtfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgc2VsZWN0e2JhY2tncm91bmQ6MCAwO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt6LWluZGV4OjE7d2lkdGg6MTAwJTtib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjAgMjRweCAwO3BhZGRpbmc6MCAyLjRyZW0gMDtjb2xvcjp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgc2VsZWN0IG9wdGlvbntjb2xvcjojNTQ1OTVkfS5zdHlsZWQtc2VsZWN0LmpzLWVuYWJsZWQgc2VsZWN0OmhvdmVye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnN0eWxlZC1zZWxlY3QtYWN0aXZlLWhlbHBlcntkaXNwbGF5Om5vbmV9LnN0eWxlZC1zZWxlY3QuanMtZW5hYmxlZCBzZWxlY3Q6Zm9jdXMrLnN0eWxlZC1zZWxlY3QtYWN0aXZlLWhlbHBlcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdXRsaW5lOjFweCBzb2xpZCAjMzZjfS5zZWFyY2gtY29udGFpbmVyIC5qcy1sYW5ncGlja2VyLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO2NvbG9yOiM1NDU5NWQ7Zm9udC1zaXplOjEyLjhweDtmb250LXNpemU6MS4yOHJlbTtsaW5lLWhlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OjIuNHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnN0eWxlZC1zZWxlY3Qgc2VsZWN0OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYX0uc3R5bGVkLXNlbGVjdCBzZWxlY3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTpub25lfS5zdHlsZWQtc2VsZWN0IHNlbGVjdDpmb2N1c3tvdXRsaW5lOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsuc3R5bGVkLXNlbGVjdCBzZWxlY3R7d2lkdGg6MTEwJX19Lm90aGVyLXByb2plY3Rze2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjcwJX0ub3RoZXItcHJvamVjdHtmbG9hdDpsZWZ0O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzJTtoZWlnaHQ6OTBweDtoZWlnaHQ6OXJlbX0ub3RoZXItcHJvamVjdC1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6NTBweDt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcH0ub3RoZXItcHJvamVjdC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjUwcHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnN2Zy1XaWtpbmV3cy1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLWltYWdlOnVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL1dpa2luZXdzLWxvZ29fc2lzdGVyLnBuZyk7YmFja2dyb3VuZC1wb3NpdGlvbjowIDA7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6NDdweCAyNnB4Oy1tb3otYmFja2dyb3VuZC1zaXplOjQ3cHggMjZweDtiYWNrZ3JvdW5kLXNpemU6NDdweCAyNnB4O3dpZHRoOjQ3cHg7aGVpZ2h0OjI2cHh9QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS4yNSksKG1pbi1yZXNvbHV0aW9uOjEyMGRwaSl7LnN2Zy1XaWtpbmV3cy1sb2dvX3Npc3RlcntiYWNrZ3JvdW5kLWltYWdlOnVybChwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvaW1nL1dpa2luZXdzLWxvZ29fc2lzdGVyQDJ4LnBuZyl9fS5vdGhlci1wcm9qZWN0IC5zcHJpdGUtcHJvamVjdC1sb2dvc3tkaXNwbGF5OmlubGluZS1ibG9ja30ub3RoZXItcHJvamVjdC10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDo2NSU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vcm1hbH0ub3RoZXItcHJvamVjdC10YWdsaW5lLC5vdGhlci1wcm9qZWN0LXRpdGxle2Rpc3BsYXk6YmxvY2t9Lm90aGVyLXByb2plY3QtdGFnbGluZXtjb2xvcjojNTQ1OTVkO2ZvbnQtc2l6ZToxMi4xNnB4O2ZvbnQtc2l6ZToxLjIxNnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsub3RoZXItcHJvamVjdHN7d2lkdGg6MTAwJX0ub3RoZXItcHJvamVjdHt3aWR0aDozMyV9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5vdGhlci1wcm9qZWN0e3dpZHRoOjUwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDozMjBweCl7Lm90aGVyLXByb2plY3QtdGV4dHttYXJnaW4tcmlnaHQ6NXB4O2ZvbnQtc2l6ZToxMS41MnB4O2ZvbnQtc2l6ZToxLjE1MnJlbX0ub3RoZXItcHJvamVjdC10YWdsaW5le2ZvbnQtc2l6ZToxMC45NDRweDtmb250LXNpemU6MS4wOTQ0cmVtfX0ubGFuZy1saXN0LWNvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXgtaGVpZ2h0OjA7d2lkdGg6ODAlO21hcmdpbjotMTZweCBhdXRvIDQ4cHg7bWFyZ2luOi0xLjZyZW0gYXV0byA0LjhyZW07LXdlYmtpdC10cmFuc2l0aW9uOm1heC1oZWlnaHQgLjVzIGVhc2Utb3V0LHZpc2liaWxpdHkgLjVzIGVhc2UtaW4gMXM7LW1vei10cmFuc2l0aW9uOm1heC1oZWlnaHQgLjVzIGVhc2Utb3V0LHZpc2liaWxpdHkgLjVzIGVhc2UtaW4gMXM7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC41cyBlYXNlLW91dCx2aXNpYmlsaXR5IC41cyBlYXNlLWluIDFzfS5qcy1lbmFibGVkIC5sYW5nLWxpc3QtY29udGFpbmVye3Zpc2liaWxpdHk6aGlkZGVufS5sYW5nLWxpc3QtYWN0aXZlIC5sYW5nLWxpc3QtY29udGFpbmVyLC5uby1qcyAubGFuZy1saXN0LWNvbnRhaW5lcnt2aXNpYmlsaXR5OnZpc2libGU7bWF4LWhlaWdodDoxMDAwMHB4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXgtaGVpZ2h0IDFzIGVhc2UtaW4gLjJzLHZpc2liaWxpdHkgMTAwMHMgZWFzZS1pbiAwczstbW96LXRyYW5zaXRpb246bWF4LWhlaWdodCAxcyBlYXNlLWluIC4ycyx2aXNpYmlsaXR5IDEwMDBzIGVhc2UtaW4gMHM7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IDFzIGVhc2UtaW4gLjJzLHZpc2liaWxpdHkgMTAwMHMgZWFzZS1pbiAwc30ubm8tanMgLmxhbmctbGlzdC1idXR0b257ZGlzcGxheTpub25lfS5sYW5nLWxpc3QtYnV0dG9uLXdyYXBwZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmxhbmctbGlzdC1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO2Rpc3BsYXk6aW5saW5lO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW46MCBhdXRvO3BhZGRpbmc6Ni40cHggMTIuOHB4O3BhZGRpbmc6LjY0cmVtIDEuMjhyZW07b3V0bGluZToxNnB4IHNvbGlkICNmZmY7b3V0bGluZToxLjZyZW0gc29saWQgI2ZmZjtib3JkZXI6MXB4IHNvbGlkICNhMmE5YjE7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDtjb2xvcjojMzZjO2ZvbnQtc2l6ZToxMi44cHg7Zm9udC1zaXplOjEuMjhyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC10cmFuc2l0aW9uOm91dGxpbmUtd2lkdGggLjFzIGVhc2UtaW4gLjVzOy1tb3otdHJhbnNpdGlvbjpvdXRsaW5lLXdpZHRoIC4xcyBlYXNlLWluIC41czt0cmFuc2l0aW9uOm91dGxpbmUtd2lkdGggLjFzIGVhc2UtaW4gLjVzfS5sYW5nLWxpc3QtYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2EyYTliMX0ubGFuZy1saXN0LWJ1dHRvbjpmb2N1c3tib3JkZXItY29sb3I6IzM2Yzstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmM7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjMzZjO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICMzNmN9LmxhbmctbGlzdC1hY3RpdmUgLmxhbmctbGlzdC1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZmZmO291dGxpbmU6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLWNvbG9yOiM3Mjc3N2Q7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzOy1tb3otdHJhbnNpdGlvbi1kZWxheTowczt0cmFuc2l0aW9uLWRlbGF5OjBzfS5sYW5nLWxpc3QtYnV0dG9uLXRleHR7cGFkZGluZzowIDYuNHB4O3BhZGRpbmc6MCAuNjRyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5sYW5nLWxpc3QtYnV0dG9uIGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS5uby1qcyAubGFuZy1saXN0LWJvcmRlciwubm8tanMgLmxhbmctbGlzdC1idXR0b257ZGlzcGxheTpub25lfS5sYW5nLWxpc3QtYm9yZGVye2JhY2tncm91bmQtY29sb3I6I2M4Y2NkMTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDo0NjBweDt3aWR0aDo4MCU7bWFyZ2luOi0xNnB4IGF1dG8gMTZweDttYXJnaW46LTEuNnJlbSBhdXRvIDEuNnJlbTtoZWlnaHQ6MXB4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXgtd2lkdGggLjJzIGVhc2Utb3V0IDQwMHM7LW1vei10cmFuc2l0aW9uOm1heC13aWR0aCAuMnMgZWFzZS1vdXQgNDAwczt0cmFuc2l0aW9uOm1heC13aWR0aCAuMnMgZWFzZS1vdXQgNDAwc30ubGFuZy1saXN0LWFjdGl2ZSAubGFuZy1saXN0LWJvcmRlcnttYXgtd2lkdGg6ODUlOy13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTowczstbW96LXRyYW5zaXRpb24tZGVsYXk6MHM7dHJhbnNpdGlvbi1kZWxheTowc30ubm8tanMgLmxhbmctbGlzdC1jb250ZW50e3BhZGRpbmc6MH0ubGFuZy1saXN0LWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZzoxNnB4IDE2cHggMDtwYWRkaW5nOjEuNnJlbSAxLjZyZW0gMH0uc3ZnLWFycm93LWRvd24tYmx1ZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGVhc2Utb3V0O3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGVhc2Utb3V0Oy1tb3otdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2Utb3V0LC1tb3otdHJhbnNmb3JtIC4ycyBlYXNlLW91dDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2Utb3V0LC13ZWJraXQtdHJhbnNmb3JtIC4ycyBlYXNlLW91dCwtbW96LXRyYW5zZm9ybSAuMnMgZWFzZS1vdXR9LmxhbmctbGlzdC1hY3RpdmUgLnN2Zy1hcnJvdy1kb3duLWJsdWV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7LW1vei10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmxhbmdsaXN0e3dpZHRoOmF1dG87bWFyZ2luOjE2cHggMDttYXJnaW46MS42cmVtIDA7dGV4dC1hbGlnbjpsZWZ0fS5sYW5nbGlzdC1vdGhlcnN7Zm9udC13ZWlnaHQ6NzAwfS5obGlzdCB1bHttYXJnaW46MDtwYWRkaW5nOjB9LmhsaXN0IGxpe2Rpc3BsYXk6aW5saW5lfS5obGlzdCB1bCB1bHtkaXNwbGF5OmlubGluZX0uaGxpc3QgbGk6YmVmb3Jle2NvbnRlbnQ6IiDCtyAiO2ZvbnQtd2VpZ2h0OjcwMH0uaGxpc3QgbGk6Zmlyc3QtY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6bm9uZX0uaGxpc3QgbGk+dWw6YmVmb3Jle2NvbnRlbnQ6IlwwMGEwKCJ9LmhsaXN0IGxpPnVsOmFmdGVye2NvbnRlbnQ6IikgIn0ubGFuZ2xpc3Q+dWx7LXdlYmtpdC1jb2x1bW4td2lkdGg6MTEuMnJlbTstbW96LWNvbHVtbi13aWR0aDoxMS4ycmVtO2NvbHVtbi13aWR0aDoxMS4ycmVtfS5sYW5nbGlzdD51bD5saXtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuNzstd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7cGFnZS1icmVhay1pbnNpZGU6YXZvaWQ7YnJlYWstaW5zaWRlOmF2b2lkfS5uby1qcyAubGFuZ2xpc3Q+dWx7dGV4dC1hbGlnbjpjZW50ZXI7bGlzdC1zdHlsZS10eXBlOmNpcmNsZX0ubm8tanMgLmxhbmdsaXN0PnVsPmxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MCA4cHg7cGFkZGluZzowIC44cmVtfS5sYW5nbGlzdD51bD5saTpiZWZvcmV7Y29udGVudDpub25lfS5sYW5nbGlzdD51bD5saSBhe3doaXRlLXNwYWNlOm5vcm1hbH0ubGFuZ2xpc3Qtb3RoZXJzPnVse3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtY29sdW1uLWNvdW50OjE7LW1vei1jb2x1bW4tY291bnQ6MTtjb2x1bW4tY291bnQ6MX0ubGFuZ2xpc3Qtb3RoZXJzPnVsIGxpe2Rpc3BsYXk6aW5saW5lfS5sYW5nbGlzdC1vdGhlcnM+dWwgbGk6YmVmb3Jle2NvbnRlbnQ6JyDCtyAnfS5sYW5nbGlzdC1vdGhlcnM+dWwgbGk6Zmlyc3QtY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6bm9uZX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsubGFuZ2xpc3R7Zm9udC1zaXplOmluaGVyaXR9LmxhbmdsaXN0IGF7d29yZC13cmFwOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6bm9ybWFsfS5sYW5nLWxpc3QtY29udGFpbmVye3dpZHRoOmF1dG87bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1sZWZ0Oi44cmVtO21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLXJpZ2h0Oi44cmVtfS5ib29rc2hlbGZ7b3ZlcmZsb3c6dmlzaWJsZX19LmJvb2tzaGVsZntkaXNwbGF5OmJsb2NrO2JvcmRlci10b3A6MXB4IHNvbGlkICNjOGNjZDE7LXdlYmtpdC1ib3gtc2hhZG93OjAgLTFweCAwICNmZmY7LW1vei1ib3gtc2hhZG93OjAgLTFweCAwICNmZmY7Ym94LXNoYWRvdzowIC0xcHggMCAjZmZmO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uYm9va3NoZWxmIHNwYW57YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTEuMnB4O3RvcDotMS4xMnJlbTtmb250LXdlaWdodDo0MDB9LmJvb2tzaGVsZi1jb250YWluZXJ7ZGlzcGxheTpibG9jaztvdmVyZmxvdzp2aXNpYmxlO2hlaWdodDoxcHg7d2lkdGg6MTAwJTttYXJnaW46MjRweCAwIDE2cHg7bWFyZ2luOjIuNHJlbSAwIDEuNnJlbTtmb250LXNpemU6MTNweDtmb250LXNpemU6MS4zcmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoyMHB4O2xpbmUtaGVpZ2h0OjJyZW19LmJvb2tzaGVsZi1jb250YWluZXIgLnRleHR7cGFkZGluZzowIDkuOTJweDtwYWRkaW5nOjAgLjk5MnJlbX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsuYm9va3NoZWxme3dpZHRoOmF1dG87bGVmdDphdXRvfS5ib29rc2hlbGYtY29udGFpbmVye3RleHQtYWxpZ246bGVmdDt3aWR0aDphdXRvfX0uYXBwLWJhZGdlc3tiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmF9LmFwcC1iYWRnZXMgLmZvb3Rlci1zaWRlYmFyLXRleHR7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctdG9wOi44cmVtO3BhZGRpbmctYm90dG9tOjhweDtwYWRkaW5nLWJvdHRvbTouOHJlbX0uYXBwLWJhZGdlcyAuc3ByaXRlLmZvb3Rlci1zaWRlYmFyLWljb257dG9wOjhweDt0b3A6LjhyZW19LmFwcC1iYWRnZXMgdWx7bWFyZ2luOjA7cGFkZGluZzowO2xpc3Qtc3R5bGUtdHlwZTpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpey5hcHAtYmFkZ2VzIC5mb290ZXItc2lkZWJhci1jb250ZW50e21heC13aWR0aDozNTBweDt0ZXh0LWFsaWduOmNlbnRlcn0uYXBwLWJhZGdlcyAuc3ByaXRlLmZvb3Rlci1zaWRlYmFyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjA7dG9wOi0zcHg7bGVmdDowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNyk7LW1vei10cmFuc2Zvcm06c2NhbGUoLjcpOy1tcy10cmFuc2Zvcm06c2NhbGUoLjcpO3RyYW5zZm9ybTpzY2FsZSguNyl9LmFwcC1iYWRnZXtmbG9hdDpsZWZ0O3dpZHRoOjQ5JX0uYXBwLWJhZGdlLWFuZHJvaWQgYSwuYXBwLWJhZGdlLWlvcyBhe2Rpc3BsYXk6YmxvY2t9LmFwcC1iYWRnZS1pb3N7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZH0uYXBwLWJhZGdlLWZ1bGxsaXN0e3dpZHRoOjEwMCU7bWFyZ2luOjE5LjJweCAwIDYuNHB4IDA7bWFyZ2luOjEuOTJyZW0gMCAuNjRyZW0gMH19LmZvb3RlcntvdmVyZmxvdzpoaWRkZW47bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjQxLjZweCAxMi44cHggMTIuOHB4O3BhZGRpbmc6NC4xNnJlbSAxLjI4cmVtIDEuMjhyZW07Zm9udC1zaXplOjEyLjhweDtmb250LXNpemU6MS4yOHJlbX0uZm9vdGVyOmFmdGVyLC5mb290ZXI6YmVmb3Jle2NvbnRlbnQ6JyAnO2Rpc3BsYXk6dGFibGV9LmZvb3RlcjphZnRlcntjbGVhcjpib3RofS5mb290ZXItc2lkZWJhcnt3aWR0aDozMCU7ZmxvYXQ6bGVmdDtjbGVhcjpsZWZ0O21hcmdpbi1ib3R0b206MzJweDttYXJnaW4tYm90dG9tOjMuMnJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmZvb3Rlci1zaWRlYmFyLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjM1MHB4O21hcmdpbjowIGF1dG99LnNwcml0ZS5mb290ZXItc2lkZWJhci1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6OHB4O2xlZnQ6LjhyZW19LmZvb3Rlci1zaWRlYmFyLXRleHR7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjYwcHg7cGFkZGluZy1sZWZ0OjZyZW07cGFkZGluZy1yaWdodDoyMHB4O3BhZGRpbmctcmlnaHQ6MnJlbTtjb2xvcjojNTQ1OTVkfS5zaXRlLWxpY2Vuc2V7bWFyZ2luOjA7Y29sb3I6IzU0NTk1ZDt0ZXh0LWFsaWduOmNlbnRlcn0uc2l0ZS1saWNlbnNlIHNtYWxsOmFmdGVye2NvbnRlbnQ6J1wyMDIyJztkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTNweDtmb250LXNpemU6MS4zcmVtO2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1sZWZ0Oi44cmVtO21hcmdpbi1yaWdodDo1cHg7bWFyZ2luLXJpZ2h0Oi41cmVtfS5zaXRlLWxpY2Vuc2Ugc21hbGw6bGFzdC1jaGlsZDphZnRlcntkaXNwbGF5Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7LmZvb3RlcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy10b3A6MTIuOHB4O3BhZGRpbmctdG9wOjEuMjhyZW19LmZvb3RlciAuZm9vdGVyLXNpZGViYXJ7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoxOy1tb3otYm94LW9yZGluYWwtZ3JvdXA6MTstd2Via2l0LW9yZGVyOjE7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxfS5mb290ZXIgLm90aGVyLXByb2plY3Rzey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MjstbW96LWJveC1vcmRpbmFsLWdyb3VwOjI7LXdlYmtpdC1vcmRlcjoyOy1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mn0uZm9vdGVyIC5hcHAtYmFkZ2Vzey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MzstbW96LWJveC1vcmRpbmFsLWdyb3VwOjM7LXdlYmtpdC1vcmRlcjozOy1tcy1mbGV4LW9yZGVyOjM7b3JkZXI6M30uZm9vdGVyLXNpZGViYXJ7d2lkdGg6MTAwJX0uc3ByaXRlLmZvb3Rlci1zaWRlYmFyLWljb257ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjA7bWFyZ2luOjAgYXV0byAxMi44cHggYXV0bzttYXJnaW46MCBhdXRvIDEuMjhyZW0gYXV0b30uZm9vdGVyLXNpZGViYXItY29udGVudHttYXgtd2lkdGg6bm9uZX0uZm9vdGVyLXNpZGViYXItdGV4dHttYXJnaW46MDtwYWRkaW5nOjA7dGV4dC1hbGlnbjpjZW50ZXJ9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpey5mb290ZXJ7cGFkZGluZzo5LjZweCA2LjRweCAxMi44cHg7cGFkZGluZzouOTZyZW0gLjY0cmVtIDEuMjhyZW19fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6NDgwcHgpey5zZWFyY2gtY29udGFpbmVye21hcmdpbi10b3A6MDtoZWlnaHQ6NzhweDtoZWlnaHQ6Ny44cmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo2NXB4O3RvcDo2LjVyZW07bGVmdDowO3JpZ2h0OjA7bWF4LXdpZHRoOjEwMCU7d2lkdGg6YXV0bztwYWRkaW5nOjA7dGV4dC1hbGlnbjpsZWZ0fS5zZWFyY2gtY29udGFpbmVyIGxhYmVse2Rpc3BsYXk6bm9uZX0uc2VhcmNoLWZvcm0gI3NlYXJjaElucHV0e21heC13aWR0aDo0MCU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5zZWFyY2gtZm9ybSAuZm9ybUJ0bnttYXgtd2lkdGg6MjUlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1mb3JtIGZpZWxkc2V0e21hcmdpbjowO2JvcmRlci1sZWZ0OjA7Ym9yZGVyLXJpZ2h0OjB9aHJ7bWFyZ2luLXRvcDo2LjVweDttYXJnaW4tdG9wOi42NXJlbX19QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86MiksKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoyKSwobWluLXJlc29sdXRpb246MmRwcHgpLChtaW4tcmVzb2x1dGlvbjoxOTJkcGkpe2hye2JvcmRlci1ib3R0b20td2lkdGg6LjVweH19QHN1cHBvcnRzICgtd2Via2l0LW1hcnF1ZWUtc3R5bGU6c2xpZGUpe2hye2JvcmRlci1ib3R0b20td2lkdGg6MXB4fX0uanMtZW5hYmxlZCAuY2VudHJhbC1mZWF0dXJlZCwuanMtZW5hYmxlZCAuanNsMTBue3Zpc2liaWxpdHk6aGlkZGVufS5qc2wxMG4tdmlzaWJsZSAuY2VudHJhbC1mZWF0dXJlZCwuanNsMTBuLXZpc2libGUgLmpzbDEwbnt2aXNpYmlsaXR5OnZpc2libGV9Lm90aGVycHJvamVjdHMtaWNvbnsqem9vbToxOypkaXNwbGF5OmlubGluZX0uc3VnZ2VzdGlvbi1pdGVteyp3aWR0aDphdXRvfS5jZW50cmFsLWZlYXR1cmVkLWxvZ297KmRpc3BsYXk6aW5saW5lLWJsb2NrOypsaW5lLWhlaWdodDoyNmVtOyp0b3A6NmVtOypwb3NpdGlvbjphYnNvbHV0ZTsqbGVmdDoxMy41ZW19LnNlYXJjaC1jb250YWluZXIgYnV0dG9ueypkaXNwbGF5OmlubGluZX0jc2VhcmNoSW5wdXR7KnBhZGRpbmc6OHB4IDAgMCA4cHg7KndpZHRoOjkwJTsqaGVpZ2h0OjM0cHh9I3NlYXJjaC1pbnB1dHsqZGlzcGxheTppbmxpbmV9LmxhbmdsaXN0IHVseyp0ZXh0LWFsaWduOmNlbnRlcn0ubGFuZ2xpc3QgdWwgbGl7KmRpc3BsYXk6aW5saW5lIWltcG9ydGFudDsqcGFkZGluZy1sZWZ0OjVweDsqcGFkZGluZy1yaWdodDo1cHh9QG1lZGlhIHByaW50e2JvZHl7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH1he2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50fWE6bGluayxhOnZpc2l0ZWR7Y29sb3I6IzUyMDtiYWNrZ3JvdW5kOjAgMH1pbWd7Ym9yZGVyOjB9fQo8L3N0eWxlPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmciPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vZW4ud2lraXBlZGlhLm9yZyI+PC9oZWFkPjxib2R5IGlkPSJ3d3ctd2lraXBlZGlhLW9yZyIgY2xhc3M9IiBqc2wxMG4tdmlzaWJsZSI+CjxoMSBjbGFzcz0iY2VudHJhbC10ZXh0bG9nbyIgc3R5bGU9ImZvbnQtdmFyaWFudDogc21hbGwtY2FwczsiIGFsdD0iV2lraXBlZGlBIiB0aXRsZT0iV2lraXBlZGlhIj4KPGRpdiBjbGFzcz0iY2VudHJhbC10ZXh0bG9nb19faW1hZ2Ugc3ByaXRlIHN2Zy1XaWtpcGVkaWFfd29yZG1hcmsiPgpXaWtpcGVkaWEKPC9kaXY+CjxzdHJvbmcgY2xhc3M9ImpzbDEwbiBsb2NhbGl6ZWQtc2xvZ2FuIiBkYXRhLWpzbDEwbj0ic2xvZ2FuIj5UaGUgRnJlZSBFbmN5Y2xvcGVkaWE8L3N0cm9uZz4KPC9oMT4KPCEtLSBjb250YWluZXIgZGl2IGZvciB0aGUgY2VudHJhbCBsb2dvIGFuZCB0aGUgbGlua3MgdG8gdGhlIG1vc3Qgdmlld2VkIGxhbmd1YWdlIGVkaXRpb25zIC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkIiBkYXRhLWVsLXNlY3Rpb249InByaW1hcnkgbGlua3MiPgo8IS0tIGxvZ28gLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbG9nby13cmFwcGVyIj4KPGltZyBjbGFzcz0iY2VudHJhbC1mZWF0dXJlZC1sb2dvIiBzcmM9InBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvV2lraXBlZGlhLWxvZ28tdjIucG5nIiBzcmNzZXQ9InBvcnRhbC93aWtpcGVkaWEub3JnL2Fzc2V0cy9pbWcvV2lraXBlZGlhLWxvZ28tdjJAMS41eC5wbmcgMS41eCwgcG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2ltZy9XaWtpcGVkaWEtbG9nby12MkAyeC5wbmcgMngiIHdpZHRoPSIyMDAiIGFsdD0iV2lraXBlZGlhIExvZ28iPgo8L2Rpdj4KPCEtLSBSYW5raW5ncyBmcm9tIGh0dHA6Ly9zdGF0cy53aWtpbWVkaWEub3JnL0VOL1NpdGVtYXAuaHRtIC0tPgo8IS0tIEFydGljbGUgY291bnRzIGZyb20gaHR0cDovL21ldGEud2lraW1lZGlhLm9yZy93aWtpL0xpc3Rfb2ZfV2lraXBlZGlhcy9UYWJsZSAtLT4KPCEtLSAjMS4gZW4ud2lraXBlZGlhLm9yZyAtIDEgODkyIDQ4MyAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzEiIGxhbmc9ImVuIiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1lbiIgaHJlZj0iLy9lbi53aWtpcGVkaWEub3JnLyIgdGl0bGU9IkVuZ2xpc2gg4oCUIFdpa2lwZWRpYSDigJQgVGhlIEZyZWUgRW5jeWNsb3BlZGlhIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJUaGUgRnJlZSBFbmN5Y2xvcGVkaWEiPgo8c3Ryb25nPkVuZ2xpc2g8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjUmbmJzcDs1NTAmbmJzcDswMDArPC9iZGk+IDxzcGFuPmFydGljbGVzPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwhLS0gIzIuIGphLndpa2lwZWRpYS5vcmcgLSAyNTEgNTY4IDAwMCB2aWV3cy9kYXkgLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbGFuZyBsYW5nMiIgbGFuZz0iamEiIGRpcj0ibHRyIj4KPGEgaWQ9ImpzLWxpbmstYm94LWphIiBocmVmPSIvL2phLndpa2lwZWRpYS5vcmcvIiB0aXRsZT0iTmlob25nbyDigJQg44Km44Kj44Kt44Oa44OH44Kj44KiIOKAlCDjg5Xjg6rjg7znmb7np5HkuovlhbgiIGNsYXNzPSJsaW5rLWJveCIgZGF0YS1zbG9nYW49IuODleODquODvOeZvuenkeS6i+WFuCI+CjxzdHJvbmc+5pel5pys6KqePC9zdHJvbmc+CjxzbWFsbD48YmRpIGRpcj0ibHRyIj4xJm5ic3A7MDkxJm5ic3A7MDAwKzwvYmRpPiA8c3Bhbj7oqJjkuos8L3NwYW4+PC9zbWFsbD4KPC9hPgo8L2Rpdj4KPCEtLSAjMy4gZGUud2lraXBlZGlhLm9yZyAtIDIzNyAwMjIgMDAwIHZpZXdzL2RheSAtLT4KPGRpdiBjbGFzcz0iY2VudHJhbC1mZWF0dXJlZC1sYW5nIGxhbmczIiBsYW5nPSJkZSIgZGlyPSJsdHIiPgo8YSBpZD0ianMtbGluay1ib3gtZGUiIGhyZWY9Ii8vZGUud2lraXBlZGlhLm9yZy8iIHRpdGxlPSJEZXV0c2NoIOKAlCBXaWtpcGVkaWEg4oCUIERpZSBmcmVpZSBFbnp5a2xvcMOkZGllIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJEaWUgZnJlaWUgRW56eWtsb3DDpGRpZSI+CjxzdHJvbmc+RGV1dHNjaDwvc3Ryb25nPgo8c21hbGw+PGJkaSBkaXI9Imx0ciI+MiZuYnNwOzE0MiZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+QXJ0aWtlbDwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM0LiBydS53aWtpcGVkaWEub3JnIC0gMjI4IDgxNyAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzQiIGxhbmc9InJ1IiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1ydSIgaHJlZj0iLy9ydS53aWtpcGVkaWEub3JnLyIgdGl0bGU9IlJ1c3NraXkg4oCUINCS0LjQutC40L/QtdC00LjRjyDigJQg0KHQstC+0LHQvtC00L3QsNGPINGN0L3RhtC40LrQu9C+0L/QtdC00LjRjyIgY2xhc3M9ImxpbmstYm94IiBkYXRhLXNsb2dhbj0i0KHQstC+0LHQvtC00L3QsNGPINGN0L3RhtC40LrQu9C+0L/QtdC00LjRjyI+CjxzdHJvbmc+0KDRg9GB0YHQutC40Lk8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjEmbmJzcDs0NDcmbmJzcDswMDArPC9iZGk+IDxzcGFuPtGB0YLQsNGC0LXQuTwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM1LiBlcy53aWtpcGVkaWEub3JnIC0gMjE4IDU1MiAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzUiIGxhbmc9ImVzIiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1lcyIgaHJlZj0iLy9lcy53aWtpcGVkaWEub3JnLyIgdGl0bGU9IkVzcGHDsW9sIOKAlCBXaWtpcGVkaWEg4oCUIExhIGVuY2ljbG9wZWRpYSBsaWJyZSIgY2xhc3M9ImxpbmstYm94IiBkYXRhLXNsb2dhbj0iTGEgZW5jaWNsb3BlZGlhIGxpYnJlIj4KPHN0cm9uZz5Fc3Bhw7FvbDwvc3Ryb25nPgo8c21hbGw+PGJkaSBkaXI9Imx0ciI+MSZuYnNwOzM4MSZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+YXJ0w61jdWxvczwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM2LiBmci53aWtpcGVkaWEub3JnIC0gMTczIDc2MiAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzYiIGxhbmc9ImZyIiBkaXI9Imx0ciI+CjxhIGlkPSJqcy1saW5rLWJveC1mciIgaHJlZj0iLy9mci53aWtpcGVkaWEub3JnLyIgdGl0bGU9IkZyYW7Dp2FpcyDigJQgV2lraXDDqWRpYSDigJQgTOKAmWVuY3ljbG9ww6lkaWUgbGlicmUiIGNsYXNzPSJsaW5rLWJveCIgZGF0YS1zbG9nYW49IkzigJllbmN5Y2xvcMOpZGllIGxpYnJlIj4KPHN0cm9uZz5GcmFuw6dhaXM8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjEmbmJzcDs5NDcmbmJzcDswMDArPC9iZGk+IDxzcGFuPmFydGljbGVzPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwhLS0gIzcuIGl0Lndpa2lwZWRpYS5vcmcgLSAxMzQgMTczIDAwMCB2aWV3cy9kYXkgLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbGFuZyBsYW5nNyIgbGFuZz0iaXQiIGRpcj0ibHRyIj4KPGEgaWQ9ImpzLWxpbmstYm94LWl0IiBocmVmPSIvL2l0Lndpa2lwZWRpYS5vcmcvIiB0aXRsZT0iSXRhbGlhbm8g4oCUIFdpa2lwZWRpYSDigJQgTCdlbmNpY2xvcGVkaWEgbGliZXJhIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJMJ2VuY2ljbG9wZWRpYSBsaWJlcmEiPgo8c3Ryb25nPkl0YWxpYW5vPC9zdHJvbmc+CjxzbWFsbD48YmRpIGRpcj0ibHRyIj4xJm5ic3A7NDA5Jm5ic3A7MDAwKzwvYmRpPiA8c3Bhbj52b2NpPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwhLS0gIzguIHpoLndpa2lwZWRpYS5vcmcgLSA4MiA5MjUgMDAwIHZpZXdzL2RheSAtLT4KPGRpdiBjbGFzcz0iY2VudHJhbC1mZWF0dXJlZC1sYW5nIGxhbmc4IiBsYW5nPSJ6aCIgZGlyPSJsdHIiPgo8YSBpZD0ianMtbGluay1ib3gtemgiIGhyZWY9Ii8vemgud2lraXBlZGlhLm9yZy8iIHRpdGxlPSJaaMWNbmd3w6luIOKAlCDntq3ln7rnmb7np5Eg4oCUIOiHqueUseeahOeZvuenkeWFqOabuCIgY2xhc3M9ImxpbmstYm94IiBkYXRhLWNvbnZlcnR0aXRsZS1oYW5zPSJaaMWNbmd3w6luIOKAlCDnu7Tln7rnmb7np5Eg4oCUIOiHqueUseeahOeZvuenkeWFqOS5piIgZGF0YS1zbG9nYW49IuiHqueUseeahOeZvuenkeWFqOabuCI+CjxzdHJvbmc+5Lit5paHPC9zdHJvbmc+CjxzbWFsbD48YmRpIGRpcj0ibHRyIj45ODYmbmJzcDswMDArPC9iZGk+IDxzcGFuIGRhdGEtY29udmVydC1oYW5zPSLmnaHnm64iIGlkPSJ6aF9hcnQiPuaineebrjwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICM5LiBwdC53aWtpcGVkaWEub3JnIC0gNzAgMTg3IDAwMCB2aWV3cy9kYXkgLS0+CjxkaXYgY2xhc3M9ImNlbnRyYWwtZmVhdHVyZWQtbGFuZyBsYW5nOSIgbGFuZz0icHQiIGRpcj0ibHRyIj4KPGEgaWQ9ImpzLWxpbmstYm94LXB0IiBocmVmPSIvL3B0Lndpa2lwZWRpYS5vcmcvIiB0aXRsZT0iUG9ydHVndcOqcyDigJQgV2lraXDDqWRpYSDigJQgQSBlbmNpY2xvcMOpZGlhIGxpdnJlIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJBIGVuY2ljbG9ww6lkaWEgbGl2cmUiPgo8c3Ryb25nPlBvcnR1Z3XDqnM8L3N0cm9uZz4KPHNtYWxsPjxiZGkgZGlyPSJsdHIiPjk4OCZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+YXJ0aWdvczwvc3Bhbj48L3NtYWxsPgo8L2E+CjwvZGl2Pgo8IS0tICMxMC4gcGwud2lraXBlZGlhLm9yZyAtIDYzIDg2OCAwMDAgdmlld3MvZGF5IC0tPgo8ZGl2IGNsYXNzPSJjZW50cmFsLWZlYXR1cmVkLWxhbmcgbGFuZzEwIiBsYW5nPSJwbCIgZGlyPSJsdHIiPgo8YSBpZD0ianMtbGluay1ib3gtcGwiIGhyZWY9Ii8vcGwud2lraXBlZGlhLm9yZy8iIHRpdGxlPSJQb2xza2kg4oCUIFdpa2lwZWRpYSDigJQgV29sbmEgZW5jeWtsb3BlZGlhIiBjbGFzcz0ibGluay1ib3giIGRhdGEtc2xvZ2FuPSJXb2xuYSBlbmN5a2xvcGVkaWEiPgo8c3Ryb25nPlBvbHNraTwvc3Ryb25nPgo8c21hbGw+PGJkaSBkaXI9Imx0ciI+MSZuYnNwOzI2MCZuYnNwOzAwMCs8L2JkaT4gPHNwYW4+aGFzZcWCPC9zcGFuPjwvc21hbGw+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8IS0tIFNlYXJjaCBmb3JtIC0tPgo8ZGl2IGNsYXNzPSJzZWFyY2gtY29udGFpbmVyIj4KPGZvcm0gY2xhc3M9InB1cmUtZm9ybSIgaWQ9InNlYXJjaC1mb3JtIiBhY3Rpb249Ii8vd3d3Lndpa2lwZWRpYS5vcmcvc2VhcmNoLXJlZGlyZWN0LnBocCIgZGF0YS1lbC1zZWN0aW9uPSJzZWFyY2giPgo8ZmllbGRzZXQ+CjwhLS0gc2VhcmNoLXJlZGlyZWN0LnBocCBpcyBwcm9qZWN0LWluZGVwZW5kZW50LCByZXF1aXJlcyBhIGZhbWlseSAtLT4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFtaWx5IiB2YWx1ZT0id2lraXBlZGlhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlbkxhbmd1YWdlSW5wdXQiIG5hbWU9Imxhbmd1YWdlIiB2YWx1ZT0iZW4iPgo8ZGl2IGNsYXNzPSJzZWFyY2gtaW5wdXQiIGlkPSJzZWFyY2gtaW5wdXQiPgo8aW5wdXQgaWQ9InNlYXJjaElucHV0IiBuYW1lPSJzZWFyY2giIHR5cGU9InNlYXJjaCIgc2l6ZT0iMjAiIGF1dG9mb2N1cz0iYXV0b2ZvY3VzIiBhY2Nlc3NrZXk9IkYiIGRpcj0iYXV0byIgcmVzdWx0cz0iMTAiIGF1dG9jb21wbGV0ZT0ib2ZmIiBsaXN0PSJzdWdnZXN0aW9ucyIgc3R5bGU9InBhZGRpbmctcmlnaHQ6IDY0cHg7Ij4KPGRpdiBjbGFzcz0iIHN0eWxlZC1zZWxlY3QganMtZW5hYmxlZCI+CjxkaXYgY2xhc3M9ImhpZGUtYXJyb3ciPgo8bGFiZWwgZm9yPSJsYW5ndWFnZSIgaWQ9ImpzTGFuZ0xhYmVsIiBjbGFzcz0ianMtbGFuZ3BpY2tlci1sYWJlbCI+ZW48L2xhYmVsPjxzZWxlY3QgaWQ9InNlYXJjaExhbmd1YWdlIiBuYW1lPSJsYW5ndWFnZSI+CjwhLS0gMTAwLDAwMCsgY29udGVudCBwYWdlcywgc29ydGVkIGJ5IHJvbWFuaXphdGlvbiAtLT4KPG9wdGlvbiB2YWx1ZT0iYXIiIGxhbmc9ImFyIj7Yp9mE2LnYsdio2YrYqTwvb3B0aW9uPjwhLS0gQWwtyr9BcmFixKt5YWggLS0+CjxvcHRpb24gdmFsdWU9ImF6IiBsYW5nPSJheiI+QXrJmXJiYXljYW5jYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJiZyIgbGFuZz0iYmciPtCR0YrQu9Cz0LDRgNGB0LrQuDwvb3B0aW9uPjwhLS0gQseObGdhcnNraSAtLT4KPG9wdGlvbiB2YWx1ZT0ibmFuIiBsYW5nPSJuYW4iPkLDom4tbMOibS1nw7ogLyBIxY0tbMOzLW/Ekzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJiZSIgbGFuZz0iYmUiPtCR0LXQu9Cw0YDRg9GB0LrQsNGPICjQkNC60LDQtNGN0LzRltGH0L3QsNGPKTwvb3B0aW9uPjwhLS0gQmVsYXJ1c2theWEgKEFrYWRlbWljaG5heWEpIC0tPgo8b3B0aW9uIHZhbHVlPSJjYSIgbGFuZz0iY2EiPkNhdGFsw6A8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY3MiIGxhbmc9ImNzIj7EjGXFoXRpbmE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZGEiIGxhbmc9ImRhIj5EYW5zazwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJkZSIgbGFuZz0iZGUiPkRldXRzY2g8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZXQiIGxhbmc9ImV0Ij5FZXN0aTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlbCIgbGFuZz0iZWwiPs6VzrvOu863zr3Ouc66zqw8L29wdGlvbj48IS0tIEVsbMSrbmlrw6EgLS0+CjxvcHRpb24gdmFsdWU9ImVuIiBsYW5nPSJlbiIgc2VsZWN0ZWQ9InNlbGVjdGVkIj5FbmdsaXNoPC9vcHRpb24+PCEtLSBFbmdsaXNoIC0tPgo8b3B0aW9uIHZhbHVlPSJlcyIgbGFuZz0iZXMiPkVzcGHDsW9sPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImVvIiBsYW5nPSJlbyI+RXNwZXJhbnRvPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImV1IiBsYW5nPSJldSI+RXVza2FyYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJmYSIgbGFuZz0iZmEiPtmB2KfYsdiz24w8L29wdGlvbj48IS0tIEbEgXJzaSAtLT4KPG9wdGlvbiB2YWx1ZT0iZnIiIGxhbmc9ImZyIj5GcmFuw6dhaXM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZ2wiIGxhbmc9ImdsIj5HYWxlZ288L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ia28iIGxhbmc9ImtvIj7tlZzqta3slrQ8L29wdGlvbj48IS0tIEhhbmd1Z2VvIC0tPgo8b3B0aW9uIHZhbHVlPSJoeSIgbGFuZz0iaHkiPtWA1aHVtdWl1oDVpdW2PC9vcHRpb24+PCEtLSBIYXllcmVuIC0tPgo8b3B0aW9uIHZhbHVlPSJoaSIgbGFuZz0iaGkiPuCkueCkv+CkqOCljeCkpuClgDwvb3B0aW9uPjwhLS0gSGluZMSrIC0tPgo8b3B0aW9uIHZhbHVlPSJociIgbGFuZz0iaHIiPkhydmF0c2tpPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImlkIiBsYW5nPSJpZCI+QmFoYXNhIEluZG9uZXNpYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpdCIgbGFuZz0iaXQiPkl0YWxpYW5vPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImhlIiBsYW5nPSJoZSI+16LXkdeo15nXqjwvb3B0aW9uPjwhLS0gyr9JdnJpdCAtLT4KPG9wdGlvbiB2YWx1ZT0ia2EiIGxhbmc9ImthIj7hg6Xhg5Dhg6Dhg5fhg6Phg5rhg5g8L29wdGlvbj48IS0tIEthcnR1bGkgLS0+CjxvcHRpb24gdmFsdWU9ImxhIiBsYW5nPSJsYSI+TGF0aW5hPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Imx0IiBsYW5nPSJsdCI+TGlldHV2acWzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Imh1IiBsYW5nPSJodSI+TWFneWFyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im1zIiBsYW5nPSJtcyI+QmFoYXNhIE1lbGF5dTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJtaW4iIGxhbmc9Im1pbiI+QmFoYXNvIE1pbmFuZ2thYmF1PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5sIiBsYW5nPSJubCI+TmVkZXJsYW5kczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJqYSIgbGFuZz0iamEiPuaXpeacrOiqnjwvb3B0aW9uPjwhLS0gTmlob25nbyAtLT4KPG9wdGlvbiB2YWx1ZT0ibm8iIGxhbmc9Im5iIj5Ob3JzayAoQm9rbcOlbCk8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibm4iIGxhbmc9Im5uIj5Ob3JzayAoTnlub3Jzayk8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY2UiIGxhbmc9ImNlIj7QndC+0YXRh9C40LnQvTwvb3B0aW9uPjwhLS0gTm94w6dpeW4gLS0+CjxvcHRpb24gdmFsdWU9InV6IiBsYW5nPSJ1eiI+T8q7emJla2NoYSAvINCO0LfQsdC10LrRh9CwPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InBsIiBsYW5nPSJwbCI+UG9sc2tpPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InB0IiBsYW5nPSJwdCI+UG9ydHVndcOqczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJrayIgbGFuZz0ia2siPtKa0LDQt9Cw0pvRiNCwIC8gUWF6YXHFn2EgLyDZgtin2LLYp9mC2LTYpzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJybyIgbGFuZz0icm8iPlJvbcOibsSDPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InJ1IiBsYW5nPSJydSI+0KDRg9GB0YHQutC40Lk8L29wdGlvbj48IS0tIFJ1c3NraXkgLS0+CjxvcHRpb24gdmFsdWU9InNpbXBsZSIgbGFuZz0iZW4iPlNpbXBsZSBFbmdsaXNoPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImNlYiIgbGFuZz0iY2ViIj5TaW51Z2JvYW5vbmcgQmluaXNheWE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic2siIGxhbmc9InNrIj5TbG92ZW7EjWluYTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzbCIgbGFuZz0ic2wiPlNsb3ZlbsWhxI1pbmE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic3IiIGxhbmc9InNyIj7QodGA0L/RgdC60LggLyBTcnBza2k8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic2giIGxhbmc9InNoIj5TcnBza29ocnZhdHNraSAvINCh0YDQv9GB0LrQvtGF0YDQstCw0YLRgdC60Lg8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZmkiIGxhbmc9ImZpIj5TdW9taTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzdiIgbGFuZz0ic3YiPlN2ZW5za2E8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGEiIGxhbmc9InRhIj7grqTgrq7grr/grrTgr408L29wdGlvbj48IS0tIFRhbWnhuLsgLS0+CjxvcHRpb24gdmFsdWU9InRoIiBsYW5nPSJ0aCI+4Lig4Liy4Lip4Liy4LmE4LiX4LiiPC9vcHRpb24+PCEtLSBQaGFzYSBUaGFpIC0tPgo8b3B0aW9uIHZhbHVlPSJ0ciIgbGFuZz0idHIiPlTDvHJrw6dlPC9vcHRpb24+PCEtLSBUdXJrY2UgLS0+CjxvcHRpb24gdmFsdWU9InVrIiBsYW5nPSJ1ayI+0KPQutGA0LDRl9C90YHRjNC60LA8L29wdGlvbj48IS0tIFVrcmF5aW5z4oCZa2EgLS0+CjxvcHRpb24gdmFsdWU9InVyIiBsYW5nPSJ1ciI+2KfYsdiv2Yg8L29wdGlvbj48IS0tIFVyZHUgLS0+CjxvcHRpb24gdmFsdWU9InZpIiBsYW5nPSJ2aSI+VGnhur9uZyBWaeG7h3Q8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idm8iIGxhbmc9InZvIj5Wb2xhcMO8azwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ3YXIiIGxhbmc9IndhciI+V2luYXJheTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ6aCIgbGFuZz0iemgiPuS4reaWhzwvb3B0aW9uPjwhLS0gWmjFjW5nd8OpbiAtLT4KPC9zZWxlY3Q+CjxkaXYgY2xhc3M9InN0eWxlZC1zZWxlY3QtYWN0aXZlLWhlbHBlciI+PC9kaXY+CjwvZGl2Pgo8aSBjbGFzcz0ic3ByaXRlIHN2Zy1hcnJvdy1kb3duIj48L2k+CjwvZGl2Pgo8ZGl2IGlkPSJ0eXBlYWhlYWQtc3VnZ2VzdGlvbnMiPjwvZGl2PjwvZGl2Pgo8YnV0dG9uIGNsYXNzPSJwdXJlLWJ1dHRvbiBwdXJlLWJ1dHRvbi1wcmltYXJ5LXByb2dyZXNzaXZlIiB0eXBlPSJzdWJtaXQiPgo8aSBjbGFzcz0ic3ByaXRlIHN2Zy1zZWFyY2gtaWNvbiI+PC9pPgo8L2J1dHRvbj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkdvIiBuYW1lPSJnbyI+CjwvZmllbGRzZXQ+CjwvZm9ybT4KPC9kaXY+CjxkaXYgY2xhc3M9ImxhbmctbGlzdC1idXR0b24td3JhcHBlciI+CjxidXR0b24gaWQ9ImpzLWxhbmctbGlzdC1idXR0b24iIGNsYXNzPSJsYW5nLWxpc3QtYnV0dG9uIj4KPGkgY2xhc3M9InNwcml0ZSBzdmctdHJhbnNsYXRlLWljb24iPjwvaT4KPHNwYW4gY2xhc3M9ImxhbmctbGlzdC1idXR0b24tdGV4dCBqc2wxMG4iIGRhdGEtanNsMTBuPSJsYW5ndWFnZS1idXR0b24tdGV4dCI+UmVhZCBXaWtpcGVkaWEgaW4geW91ciBsYW5ndWFnZSA8L3NwYW4+CjxpIGNsYXNzPSJzcHJpdGUgc3ZnLWFycm93LWRvd24tYmx1ZSI+PC9pPgo8L2J1dHRvbj4KPC9kaXY+CjxkaXYgY2xhc3M9ImxhbmctbGlzdC1ib3JkZXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJsYW5nLWxpc3QtY29udGFpbmVyIj4KPGRpdiBpZD0ianMtbGFuZy1saXN0cyIgY2xhc3M9ImxhbmctbGlzdC1jb250ZW50Ij4KPCEtLSBCb29rc2hlbHZlcyAtLT4KPGgyIGNsYXNzPSJib29rc2hlbGYtY29udGFpbmVyIj4KPHNwYW4gY2xhc3M9ImJvb2tzaGVsZiI+CjxzcGFuIGNsYXNzPSJ0ZXh0IiBkaXI9Imx0ciI+MSZuYnNwOzAwMCZuYnNwOzAwMCs8L3NwYW4+Cjwvc3Bhbj4KPC9oMj4KPCEtLSAxLDAwMCwwMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGxhbmdsaXN0LWxhcmdlIGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249InNlY29uZGFyeSBsaW5rcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vZGUud2lraXBlZGlhLm9yZy8iIGxhbmc9ImRlIj5EZXV0c2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlbiIgdGl0bGU9IkVuZ2xpc2giPkVuZ2xpc2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZXMud2lraXBlZGlhLm9yZy8iIGxhbmc9ImVzIj5Fc3Bhw7FvbDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mci53aWtpcGVkaWEub3JnLyIgbGFuZz0iZnIiPkZyYW7Dp2FpczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pdC53aWtpcGVkaWEub3JnLyIgbGFuZz0iaXQiPkl0YWxpYW5vPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25sLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJubCI+TmVkZXJsYW5kczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9qYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iamEiIHRpdGxlPSJOaWhvbmdvIj7ml6XmnKzoqp48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGwud2lraXBlZGlhLm9yZy8iIGxhbmc9InBsIj5Qb2xza2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcnUud2lraXBlZGlhLm9yZy8iIGxhbmc9InJ1IiB0aXRsZT0iUnVzc2tpeSI+0KDRg9GB0YHQutC40Lk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2ViLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjZWIiPlNpbnVnYm9hbm9uZyBCaW5pc2F5YTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdi53aWtpcGVkaWEub3JnLyIgbGFuZz0ic3YiPlN2ZW5za2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmkud2lraXBlZGlhLm9yZy8iIGxhbmc9InZpIj5UaeG6v25nIFZp4buHdDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy93YXIud2lraXBlZGlhLm9yZy8iIGxhbmc9IndhciI+V2luYXJheTwvYT48L2xpPgo8L3VsPgo8L2Rpdj4KPCEtLSBCb29rc2hlbHZlcyAtLT4KPGgyIGNsYXNzPSJib29rc2hlbGYtY29udGFpbmVyIj4KPHNwYW4gY2xhc3M9ImJvb2tzaGVsZiI+CjxzcGFuIGNsYXNzPSJ0ZXh0IiBkaXI9Imx0ciI+MTAwJm5ic3A7MDAwKzwvc3Bhbj4KPC9zcGFuPgo8L2gyPgo8IS0tIDEwMCwwMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGxhbmdsaXN0LWxhcmdlIGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249InNlY29uZGFyeSBsaW5rcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vYXIud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFyIiB0aXRsZT0iQWwtyr9BcmFixKt5YWgiPjxiZGkgZGlyPSJydGwiPtin2YTYudix2KjZitipPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2F6Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJheiI+QXrJmXJiYXljYW5jYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iZy53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmciIHRpdGxlPSJCx45sZ2Fyc2tpIj7QkdGK0LvQs9Cw0YDRgdC60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemgtbWluLW5hbi53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmFuIj5Cw6JuLWzDom0tZ8O6IC8gSMWNLWzDsy1vxJM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYmUud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJlIiB0aXRsZT0iQmVsYXJ1c2theWEgKEFrYWRlbWljaG5heWEpIj7QkdC10LvQsNGA0YPRgdC60LDRjyAo0JDQutCw0LTRjdC80ZbRh9C90LDRjyk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2Eud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNhIj5DYXRhbMOgPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjcyI+xIxlxaF0aW5hPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJkYSI+RGFuc2s8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZXQud2lraXBlZGlhLm9yZy8iIGxhbmc9ImV0Ij5FZXN0aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9lbC53aWtpcGVkaWEub3JnLyIgbGFuZz0iZWwiIHRpdGxlPSJFbGzEq25pa8OhIj7Olc67zrvOt869zrnOus6sPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2VvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlbyI+RXNwZXJhbnRvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2V1Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJldSI+RXVza2FyYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZmEiIHRpdGxlPSJGxIFyc2kiPjxiZGkgZGlyPSJydGwiPtmB2KfYsdiz24w8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2wud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdsIj5HYWxlZ288L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va28ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImtvIiB0aXRsZT0iSGFuZ3VnZW8iPu2VnOq1reyWtDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oeS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaHkiIHRpdGxlPSJIYXllcmVuIj7VgNWh1bXVpdaA1aXVtjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oaS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaGkiIHRpdGxlPSJIaW5kxKsiPuCkueCkv+CkqOCljeCkpuClgDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oci53aWtpcGVkaWEub3JnLyIgbGFuZz0iaHIiPkhydmF0c2tpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2lkLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJpZCI+QmFoYXNhIEluZG9uZXNpYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oZS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaGUiIHRpdGxlPSLKv0l2cml0Ij48YmRpIGRpcj0icnRsIj7XoteR16jXmdeqPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2thLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrYSIgdGl0bGU9IkthcnR1bGkiPuGDpeGDkOGDoOGDl+GDo+GDmuGDmDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sYS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibGEiPkxhdGluYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sdC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibHQiPkxpZXR1dmnFszwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9odS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaHUiPk1hZ3lhcjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tcy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibXMiPkJhaGFzYSBNZWxheXU8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWluLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtaW4iPkJhaGFzbyBNaW5hbmdrYWJhdTwvYT48L2xpPgo8bGkgbGFuZz0ibm8iPk5vcnNrPHVsPjxsaT48YSBocmVmPSIvL25vLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJuYiI+Qm9rbcOlbDwvYT48L2xpPjxsaT48YSBocmVmPSIvL25uLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJubiI+Tnlub3JzazwvYT48L2xpPjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2Uud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNlIiB0aXRsZT0iTm94w6dpeW4iPtCd0L7RhdGH0LjQudC9PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3V6Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ1eiI+T8q7emJla2NoYSAvINCO0LfQsdC10LrRh9CwPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3B0Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwdCI+UG9ydHVndcOqczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ray53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2siPjxzcGFuIGxhbmc9ImtrLUN5cmwiPtKa0LDQt9Cw0pvRiNCwPC9zcGFuPiAvIDxzcGFuIGxhbmc9ImtrLUxhdG4iPlFhemFxxZ9hPC9zcGFuPiAvIDxiZGkgbGFuZz0ia2stQXJhYiIgZGlyPSJydGwiPtmC2KfYstin2YLYtNinPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3JvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJybyI+Um9tw6JuxIM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2ltcGxlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlbiI+U2ltcGxlIEVuZ2xpc2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2sud2lraXBlZGlhLm9yZy8iIGxhbmc9InNrIj5TbG92ZW7EjWluYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zbC53aWtpcGVkaWEub3JnLyIgbGFuZz0ic2wiPlNsb3ZlbsWhxI1pbmE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3Iud2lraXBlZGlhLm9yZy8iIGxhbmc9InNyIj7QodGA0L/RgdC60LggLyBTcnBza2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2gud2lraXBlZGlhLm9yZy8iIGxhbmc9InNoIj5TcnBza29ocnZhdHNraSAvINCh0YDQv9GB0LrQvtGF0YDQstCw0YLRgdC60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZmkud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZpIj5TdW9taTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90YS53aWtpcGVkaWEub3JnLyIgbGFuZz0idGEiIHRpdGxlPSJUYW1p4bi7Ij7grqTgrq7grr/grrTgr408L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdGgud2lraXBlZGlhLm9yZy8iIGxhbmc9InRoIiB0aXRsZT0iUGhhc2EgVGhhaSI+4Lig4Liy4Lip4Liy4LmE4LiX4LiiPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3RyLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0ciIgdGl0bGU9IlR1cmtjZSI+VMO8cmvDp2U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdWsud2lraXBlZGlhLm9yZy8iIGxhbmc9InVrIiB0aXRsZT0iVWtyYXlpbnPigJlrYSI+0KPQutGA0LDRl9C90YHRjNC60LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdXIud2lraXBlZGlhLm9yZy8iIGxhbmc9InVyIiB0aXRsZT0iVXJkdSI+PGJkaSBkaXI9InJ0bCI+2KfYsdiv2Yg8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdm8ud2lraXBlZGlhLm9yZy8iIGxhbmc9InZvIj5Wb2xhcMO8azwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy96aC53aWtpcGVkaWEub3JnLyIgbGFuZz0iemgiIHRpdGxlPSJaaMWNbmd3w6luIj7kuK3mloc8L2E+PC9saT4KPC91bD4KPC9kaXY+CjwhLS0gQm9va3NoZWx2ZXMgLS0+CjxoMiBjbGFzcz0iYm9va3NoZWxmLWNvbnRhaW5lciI+CjxzcGFuIGNsYXNzPSJib29rc2hlbGYiPgo8c3BhbiBjbGFzcz0idGV4dCIgZGlyPSJsdHIiPjEwJm5ic3A7MDAwKzwvc3Bhbj4KPC9zcGFuPgo8L2gyPgo8IS0tIDEwLDAwMCsgY29udGVudCBwYWdlcyAtLT4KPGRpdiBjbGFzcz0ibGFuZ2xpc3QgaGxpc3QiIGRhdGEtZWwtc2VjdGlvbj0ic2Vjb25kYXJ5IGxpbmtzIj4KPHVsPgo8bGk+PGEgaHJlZj0iLy9hZi53aWtpcGVkaWEub3JnLyIgbGFuZz0iYWYiPkFmcmlrYWFuczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hbHMud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdzdyI+QWxlbWFubmlzY2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYW0ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFtIiB0aXRsZT0ixIBtYXJpw7HDscSBIj7hiqDhiJvhiK3hips8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYW4ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFuIj5BcmFnb27DqXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXN0Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJhc3QiPkFzdHVyaWFudTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ibi53aWtpcGVkaWEub3JnLyIgbGFuZz0iYm4iIHRpdGxlPSJCYW5nbGEiPuCmrOCmvuCmguCmsuCmvjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tYXAtYm1zLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtYXAteC1ibXMiPkJhc2EgQmFueXVtYXNhbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmEiIHRpdGxlPSJCYcWfcW9ydHNhIj7QkdCw0YjSodC+0YDRgtGB0LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYmUtdGFyYXNrLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJiZSIgdGl0bGU9IkJlbGFydXNrYXlhIChUYXJhxaFraWV2aWNhKSI+0JHQtdC70LDRgNGD0YHQutCw0Y8gKNCi0LDRgNCw0YjQutC10LLRltGG0LApPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JweS53aWtpcGVkaWEub3JnLyIgbGFuZz0iYnB5IiB0aXRsZT0iQmlzaG51cHJpeWEgTWFuaXB1cmkiPuCmrOCmv+Cmt+CnjeCmo+CngeCmquCnjeCmsOCmv+Cmr+CmvOCmviDgpq7gpqPgpr/gpqrgp4HgprDgp4A8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYmFyLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJiYXIiPkJvYXJpc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJicyI+Qm9zYW5za2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYnIud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJyIj5CcmV6aG9uZWc8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY3Yud2lraXBlZGlhLm9yZy8iIGxhbmc9ImN2IiB0aXRsZT0ixIzEg3ZhxaFsYSI+0KfTkdCy0LDRiNC70LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZm8ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZvIj5Gw7hyb3lza3Q8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZnkud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZ5Ij5GcnlzazwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9nYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZ2EiPkdhZWlsZ2U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2Qud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdkIj5Hw6BpZGhsaWc8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ3Uud2lraXBlZGlhLm9yZy8iIGxhbmc9Imd1IiB0aXRsZT0iR3VqYXJhdGkiPuCql+CrgeCqnOCqsOCqvuCqpOCrgDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oc2Iud2lraXBlZGlhLm9yZy8iIGxhbmc9ImhzYiI+SG9ybmpvc2VyYnNjZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pby53aWtpcGVkaWEub3JnLyIgbGFuZz0iaW8iPklkbzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pbG8ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImlsbyI+SWxva2FubzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pYS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaWEiPkludGVybGluZ3VhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL29zLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJvcyIgdGl0bGU9Iklyb24gw4Z2emFnIj7QmNGA0L7QvSDDptCy0LfQsNCzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2lzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJpcyI+w41zbGVuc2thPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2p2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJqdiI+SmF3YTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rbi53aWtpcGVkaWEub3JnLyIgbGFuZz0ia24iIHRpdGxlPSJLYW5uYWRhIj7gspXgsqjgs43gsqjgsqE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaHQud2lraXBlZGlhLm9yZy8iIGxhbmc9Imh0Ij5LcmV5w7JsIEF5aXN5ZW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va3Uud2lraXBlZGlhLm9yZy8iIGxhbmc9Imt1Ij48c3BhbiBsYW5nPSJrdS1MYXRuIj5LdXJkw648L3NwYW4+IC8gPGJkaSBsYW5nPSJrdS1BcmFiIiBkaXI9InJ0bCI+2YPZiNix2K/bjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ja2Iud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNrYiIgdGl0bGU9Ikt1cmTDrnkgTmF3ZW5kw64iPjxiZGkgZGlyPSJydGwiPtqp2YjYsdiv24zbjCDZhtin2YjbldmG2K/bjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9reS53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3kiIHRpdGxlPSJLeXJneXrEjWEiPtCa0YvRgNCz0YvQt9GH0LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbXJqLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtanIiIHRpdGxlPSJLeXJ5ayBNYXJ5Ij7QmtGL0YDRi9C6INCc0LDRgNGLPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2x2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsdiI+TGF0dmllxaF1PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xiLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsYiI+TMOrdHplYnVlcmdlc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsaSI+TGltYnVyZ3M8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbG1vLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsbW8iPkx1bWJhYXJ0PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21haS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibWFpIiB0aXRsZT0iTWFpdGhpbMSrIj7gpK7gpYjgpKXgpL/gpLLgpYA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWsud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1rIiB0aXRsZT0iTWFrZWRvbnNraSI+0JzQsNC60LXQtNC+0L3RgdC60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWcud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1nIj5NYWxhZ2FzeTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tbC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibWwiIHRpdGxlPSJNYWxheWFsYW0iPuC0ruC0suC0r+C0vuC0s+C0gjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tci53aWtpcGVkaWEub3JnLyIgbGFuZz0ibXIiIHRpdGxlPSJNYXJhdGhpIj7gpK7gpLDgpL7gpKDgpYA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8veG1mLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ4bWYiIHRpdGxlPSJNYXJnYWx1cmkiPuGDm+GDkOGDoOGDkuGDkOGDmuGDo+GDoOGDmDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hcnoud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFyeiIgdGl0bGU9Ik1h4bmjcsSrIj48YmRpIGRpcj0icnRsIj7Zhdi12LHZiTwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tem4ud2lraXBlZGlhLm9yZy8iIGxhbmc9Im16biIgdGl0bGU9Ik3DpHplcnVuaSI+PGJkaSBkaXI9InJ0bCI+2YXYp9iy2ZDYsdmI2YbbjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9jZG8ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImNkbyI+TcOsbmctZMSVzKRuZy1uZ+G5s8yEPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21uLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtbiIgdGl0bGU9Ik1vbmdvbCI+0JzQvtC90LPQvtC7PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL215Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJteSIgdGl0bGU9Ik15YW5tYXJzYXIiPuGAmeGAvOGAlOGAuuGAmeGArOGAmOGArOGAnuGArDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9uZXcud2lraXBlZGlhLm9yZy8iIGxhbmc9Im5ldyIgdGl0bGU9Ik5lcGFsIEJoYXNhIj7gpKjgpYfgpKrgpL7gpLIg4KSt4KS+4KS34KS+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25lLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJuZSIgdGl0bGU9Ik5lcMSBbMSrIj7gpKjgpYfgpKrgpL7gpLLgpYA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbmFwLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJuYXAiPk5uYXB1bGl0YW5vPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL29jLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJvYyI+T2NjaXRhbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9vci53aWtpcGVkaWEub3JnLyIgbGFuZz0ib3IiIHRpdGxlPSJP4bmbacSBIj7grJPgrKHgrL/grLzgrIY8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGEud2lraXBlZGlhLm9yZy8iIGxhbmc9InBhIiB0aXRsZT0iUGHDsWrEgWLEqyAoR3VybXVraMSrKSI+4Kiq4Kmw4Kic4Ki+4Kis4KmAICjgqJfgqYHgqLDgqK7gqYHgqJbgqYApPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BuYi53aWtpcGVkaWEub3JnLyIgbGFuZz0icG5iIiB0aXRsZT0iUGHDsWrEgWLEqyAoU2jEgWhtdWtoxKspIj48YmRpIGRpcj0icnRsIj7ZvtmG2KzYp9io24wgKNi02KfbgSDZhdqp2r7bjCk8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcG1zLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwbXMiPlBpZW1vbnTDqGlzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25kcy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmRzIj5QbGF0dGTDvMO8dHNjaDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9xdS53aWtpcGVkaWEub3JnLyIgbGFuZz0icXUiPlJ1bmEgU2ltaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9jeS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3kiIHRpdGxlPSJTYWVzbmVnIj5DeW1yYWVnPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzYSIgdGl0bGU9IlNh4bmDc2vhuZt0YW0iPuCkuOCkguCkuOCljeCkleClg+CkpOCkruCljTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zYWgud2lraXBlZGlhLm9yZy8iIGxhbmc9InNhaCIgdGl0bGU9IlNheGEgVHlsYSI+0KHQsNGF0LAg0KLRi9C70LA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2NvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzY28iPlNjb3RzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NxLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzcSI+U2hxaXA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2NuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzY24iPlNpY2lsaWFudTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zaS53aWtpcGVkaWEub3JnLyIgbGFuZz0ic2kiIHRpdGxlPSJTaeG5g2hhbGEiPuC3g+C3kuC2guC3hOC2vTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdS53aWtpcGVkaWEub3JnLyIgbGFuZz0ic3UiPkJhc2EgU3VuZGE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3cud2lraXBlZGlhLm9yZy8iIGxhbmc9InN3Ij5LaXN3YWhpbGk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdGwud2lraXBlZGlhLm9yZy8iIGxhbmc9InRsIj5UYWdhbG9nPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3R0Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0dCI+0KLQsNGC0LDRgNGH0LAgLyBUYXRhcsOnYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90ZS53aWtpcGVkaWEub3JnLyIgbGFuZz0idGUiIHRpdGxlPSJUZWx1Z3UiPuCwpOCxhuCwsuCxgeCwl+CxgTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90Zy53aWtpcGVkaWEub3JnLyIgbGFuZz0idGciIHRpdGxlPSJUb2ppa8SrIj7QotC+0rfQuNC606M8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXpiLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJhemIiIHRpdGxlPSJUw7xya2NlIj48YmRpIGRpcj0icnRsIj7YqtuG2LHaqdis2Yc8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYnVnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJidWciPuGoheGolCDhqJXhqJnhqIHhqJcgLyBCYXNhIFVnaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy92ZWMud2lraXBlZGlhLm9yZy8iIGxhbmc9InZlYyI+VsOobmV0bzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy93YS53aWtpcGVkaWEub3JnLyIgbGFuZz0id2EiPldhbG9uPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3lpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ5aSIgdGl0bGU9IllpZGnFoSI+PGJkaSBkaXI9InJ0bCI+15nXmda015PXmdepPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3lvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ5byI+WW9yw7liw6E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemgteXVlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ5dWUiIHRpdGxlPSJZdWh0IFnDumggLyBKeXV0NiBqeXU1IiBkYXRhLWNvbnZlcnQtaGFucz0i57Kk6K+tIiBpZD0iemgteXVlX3dpa2kiPueyteiqnjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iYXQtc21nLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzZ3MiPsW9ZW1haXTEl8Wha2E8L2E+PC9saT4KPC91bD4KPC9kaXY+CjwhLS0gQm9va3NoZWx2ZXMgLS0+CjxoMiBjbGFzcz0iYm9va3NoZWxmLWNvbnRhaW5lciI+CjxzcGFuIGNsYXNzPSJib29rc2hlbGYiPgo8c3BhbiBjbGFzcz0idGV4dCIgZGlyPSJsdHIiPjEmbmJzcDswMDArPC9zcGFuPgo8L3NwYW4+CjwvaDI+CjwhLS0gMSwwMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249InNlY29uZGFyeSBsaW5rcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vYWNlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJhY2UiPkJhaHNhIEFjw6hoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2tiZC53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2JkIiB0aXRsZT0iQWRpZ2hhYnplIj7QkNC00YvQs9GN0LHQt9GNPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2FuZy53aWtpcGVkaWEub3JnLyIgbGFuZz0iYW5nIj7Dhm5nbGlzYzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hYi53aWtpcGVkaWEub3JnLyIgbGFuZz0iYWIiIHRpdGxlPSJB4bmXc3VhIj7QkNKn0YHRg9CwPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3JvYS1ydXAud2lraXBlZGlhLm9yZy8iIGxhbmc9InJvYS1ydXAiPkFybcOjbmVhc2hjZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mcnAud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZycCI+QXJwaXRhbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hcmMud2lraXBlZGlhLm9yZy8iIGxhbmc9ImFyYyIgdGl0bGU9IsSAdMO7csSBecOiIj48YmRpIGRpcj0icnRsIj7ckNys3Jjcqtyd3JA8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ24ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImduIj5BdmHDsWXigJnhur08L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXYud2lraXBlZGlhLm9yZy8iIGxhbmc9ImF2IiB0aXRsZT0iQXZhciI+0JDQstCw0YA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYXkud2lraXBlZGlhLm9yZy8iIGxhbmc9ImF5Ij5BeW1hcjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iam4ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJqbiI+QmFoYXNhIEJhbmphcjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iaC53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmgiIHRpdGxlPSJCaMWNamFwdXLEqyI+4KSt4KWL4KSc4KSq4KWB4KSw4KWAPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JjbC53aWtpcGVkaWEub3JnLyIgbGFuZz0iYmNsIj5CaWtvbCBDZW50cmFsPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2JpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJiaSI+QmlzbGFtYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9iby53aWtpcGVkaWEub3JnLyIgbGFuZz0iYm8iIHRpdGxlPSJCb2QgU2thZCI+4L2W4L284L2R4LyL4L2h4L2y4L2CPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2J4ci53aWtpcGVkaWEub3JnLyIgbGFuZz0iYnhyIiB0aXRsZT0iQnVyeWFkIj7QkdGD0YDRj9Cw0LQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vY2JrLXphbS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY2JrLXgtemFtIj5DaGF2YWNhbm8gZGUgWmFtYm9hbmdhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjbyI+Q29yc3U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemEud2lraXBlZGlhLm9yZy8iIGxhbmc9InphIj5DdWVuZ2g8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2Uud2lraXBlZGlhLm9yZy8iIGxhbmc9InNlIj5EYXZ2aXPDoW1lZ2llbGxhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BkYy53aWtpcGVkaWEub3JnLyIgbGFuZz0icGRjIj5EZWl0c2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2R2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJkdiIgdGl0bGU9IkRoaXZlaGkiPjxiZGkgZGlyPSJydGwiPt6L3qjeiN6s3oDeqN6E3qbekN6wPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL252Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJudiI+RGluw6kgQml6YWFkPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RzYi53aWtpcGVkaWEub3JnLyIgbGFuZz0iZHNiIj5Eb2xub3NlcmJza2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZW1sLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJyb2EteC1lbWwiPkVtaWdsacOgbuKAk1J1bWFnbsOybDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9teXYud2lraXBlZGlhLm9yZy8iIGxhbmc9Im15diIgdGl0bGU9IkVyemphbmoiPtCt0YDQt9GP0L3RjDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9leHQud2lraXBlZGlhLm9yZy8iIGxhbmc9ImV4dCI+RXN0cmVtZcOxdTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9oaWYud2lraXBlZGlhLm9yZy8iIGxhbmc9ImhpZiI+RmlqaSBIaW5kaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mdXIud2lraXBlZGlhLm9yZy8iIGxhbmc9ImZ1ciI+RnVybGFuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2d2Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJndiI+R2FlbGc8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2FnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJnYWciPkdhZ2F1ejwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9raS53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2kiPkfEqWvFqXnFqTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9nbGsud2lraXBlZGlhLm9yZy8iIGxhbmc9ImdsayIgdGl0bGU9IkdpbMmZa2kiPjxiZGkgZGlyPSJydGwiPtqv24zZhNqp24w8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZ2FuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJnYW4iIHRpdGxlPSJHb24gdWEiIGRhdGEtY29udmVydC1oYW5zPSLotaPor60iIGlkPSJnYW5fd2lraSI+6LSb6KqePC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2hhay53aWtpcGVkaWEub3JnLyIgbGFuZz0iaGFrIj5IYWsta8OiLWZhIC8g5a6i5a626KmxPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3hhbC53aWtpcGVkaWEub3JnLyIgbGFuZz0ieGFsIiB0aXRsZT0iSGFsyrltZyI+0KXQsNC70YzQvNCzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2hhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJoYSI+PHNwYW4gbGFuZz0iaGEtTGF0biI+SGF1c2E8L3NwYW4+IC8gPGJkaSBsYW5nPSJoYS1BcmFiIiBkaXI9InJ0bCI+2YfZjtmI2Y/Ys9mO2Kc8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaGF3Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJoYXciPsq7xYxsZWxvIEhhd2FpyrtpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2lnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJpZyI+SWdibzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9pZS53aWtpcGVkaWEub3JnLyIgbGFuZz0iaWUiPkludGVybGluZ3VlPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2tsLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrbCI+S2FsYWFsbGlzdXQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGFtLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwYW0iPkthcGFtcGFuZ2FuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NzYi53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3NiIj5LYXN6w6tic2N6aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rdy53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3ciPktlcm5ld2VrPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2ttLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrbSIgdGl0bGU9IlBow6lhc2EgS2htw6lyIj7hnpfhnrbhnp/hnrbhnoHhn5Lhnpjhn4Lhnpo8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcncud2lraXBlZGlhLm9yZy8iIGxhbmc9InJ3Ij5LaW55YXJ3YW5kYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rdi53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3YiIHRpdGxlPSJLb21pIj7QmtC+0LzQuDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rZy53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2ciPktvbmdvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2dvbS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZ29tIj7gpJXgpYvgpILgpJXgpKPgpYAgLyBLb25rbm5pPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xvLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsbyIgdGl0bGU9IlBoYWFzYWEgTGFhbyI+4Lqe4Lqy4Lqq4Lqy4Lql4Lqy4LqnPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2xhZC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibGFkIiB0aXRsZT0iTGFkaW5vIj48c3BhbiBsYW5nPSJsYWQtTGF0biI+RHpodWRlem1vPC9zcGFuPiAvIDxiZGkgbGFuZz0ibGFkLUhlYnIiIGRpcj0icnRsIj7XnNeQ15PXmdeg15U8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbGJlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsYmUiIHRpdGxlPSJMYWvLkHUiPtCb0LDQutC60YM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbGV6Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJsZXoiIHRpdGxlPSJMZXpnaSI+0JvQtdC30LPQuDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9saWoud2lraXBlZGlhLm9yZy8iIGxhbmc9ImxpaiI+TMOsZ3VyZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sbi53aWtpcGVkaWEub3JnLyIgbGFuZz0ibG4iPkxpbmfDoWxhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2piby53aWtpcGVkaWEub3JnLyIgbGFuZz0iamJvIj5sb2piYW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbHJjLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJscmMiIHRpdGxlPSJMw7ZyaXnDqS3FoG9txIFsxKsiPjxiZGkgZGlyPSJydGwiPtmE24rYsduMINi02YjZhdin2YTbjDwvYmRpPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9sZy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibGciPkx1Z2FuZGE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbXQud2lraXBlZGlhLm9yZy8iIGxhbmc9Im10Ij5NYWx0aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy96aC1jbGFzc2ljYWwud2lraXBlZGlhLm9yZy8iIGxhbmc9Imx6aCIgdGl0bGU9Ik1hbjRqaW40IC8gV8OpbnnDoW4iPuaWh+iogDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90eS53aWtpcGVkaWEub3JnLyIgbGFuZz0idHkiPlJlbyBNxIHigJlvaGk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWkud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1pIj5NxIFvcmk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbXdsLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJtd2wiPk1pcmFuZMOpczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9tZGYud2lraXBlZGlhLm9yZy8iIGxhbmc9Im1kZiIgdGl0bGU9Ik1va8WhZW5qIj7QnNC+0LrRiNC10L3RjDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9uYWgud2lraXBlZGlhLm9yZy8iIGxhbmc9Im5haCI+TsSBaHVhdGxhaHTFjWxsaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9uYS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmEiPkRvcmVyaW4gTmFvZXJvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25kcy1ubC53aWtpcGVkaWEub3JnLyIgbGFuZz0ibmRzLW5sIj5OZWRlcnNha3Npc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2Zyci53aWtpcGVkaWEub3JnLyIgbGFuZz0iZnJyIj5Ob3JkZnJpaXNrPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25ybS53aWtpcGVkaWEub3JnLyIgbGFuZz0icm9hLXgtbnJtIj5Ob3Vvcm1hbmQgLyBOb3JtYXVuZDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ub3Yud2lraXBlZGlhLm9yZy8iIGxhbmc9Im5vdiI+Tm92aWFsPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21oci53aWtpcGVkaWEub3JnLyIgbGFuZz0ibWhyIiB0aXRsZT0iT2x5ayBNYXJpaiI+0J7Qu9GL0Log0JzQsNGA0LjQuTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9hcy53aWtpcGVkaWEub3JnLyIgbGFuZz0iYXMiIHRpdGxlPSLDlHjDtG1peWEiPuCmheCmuOCmruCngOCmr+CmvuCmvDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9waS53aWtpcGVkaWEub3JnLyIgbGFuZz0icGkiIHRpdGxlPSJQxIHhuLdpIj7gpKrgpL7gpLTgpL88L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcGFnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwYWciPlBhbmdhc2luw6FuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BhcC53aWtpcGVkaWEub3JnLyIgbGFuZz0icGFwIj5QYXBpYW1lbnR1PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJwcyIgdGl0bGU9IlBhyoJ0byI+PGJkaSBkaXI9InJ0bCI+2b7amtiq2Yg8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va29pLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrb2kiIHRpdGxlPSJQZXJlbSBLb21pIj7Qn9C10YDQtdC8INCa0L7QvNC4PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BmbC53aWtpcGVkaWEub3JnLyIgbGFuZz0icGZsIj5QZsOkbHppc2NoPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3BjZC53aWtpcGVkaWEub3JnLyIgbGFuZz0icGNkIj5QaWNhcmQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8va3JjLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJrcmMiIHRpdGxlPSJRYXJhw6dheeKAk01hbHFhciI+0JrRitCw0YDQsNGH0LDQueKAk9Cc0LDQu9C60YrQsNGAPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2thYS53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2FhIj5RYXJhcWFscGFxc2hhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NyaC53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3JoIj5RxLFyxLFtdGF0YXJjYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rc2gud2lraXBlZGlhLm9yZy8iIGxhbmc9ImtzaCI+Umlwb2FyaXNjaDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ybS53aWtpcGVkaWEub3JnLyIgbGFuZz0icm0iPlJ1bWFudHNjaDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ydWUud2lraXBlZGlhLm9yZy8iIGxhbmc9InJ1ZSIgdGl0bGU9IlJ1c2lu4oCZc2t5aiBZYXp5ayI+0KDRg9GB0LjQvdGM0YHQutGL0Lkg0K/Qt9GL0Lo8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2Mud2lraXBlZGlhLm9yZy8iIGxhbmc9InNjIj5TYXJkdTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdHEud2lraXBlZGlhLm9yZy8iIGxhbmc9InN0cSI+U2VlbHRlcnNrPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL25zby53aWtpcGVkaWEub3JnLyIgbGFuZz0ibnNvIj5TZXNvdGhvIHNhIExlYm9hPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzbiI+Q2hpU2hvbmE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc2Qud2lraXBlZGlhLm9yZy8iIGxhbmc9InNkIiB0aXRsZT0iU2luZGjEqyI+PGJkaSBkaXI9InJ0bCI+2LPZhtqM2Yo8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3psLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzemwiPsWabMWvbnNraTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zby53aWtpcGVkaWEub3JnLyIgbGFuZz0ic28iPlNvb21hYWxpZ2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc3JuLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzcm4iPlNyYW5hbnRvbmdvPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2thYi53aWtpcGVkaWEub3JnLyIgbGFuZz0ia2FiIj5UYXFiYXlsaXQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcm9hLXRhcmEud2lraXBlZGlhLm9yZy8iIGxhbmc9InJvYSI+VGFyYW5kw61uZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90ZXQud2lraXBlZGlhLm9yZy8iIGxhbmc9InRldCI+VGV0dW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdHBpLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0cGkiPlRvayBQaXNpbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90by53aWtpcGVkaWEub3JnLyIgbGFuZz0idG8iPmZha2EgVG9uZ2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdGsud2lraXBlZGlhLm9yZy8iIGxhbmc9InRrIj5Uw7xya21lbsOnZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90eXYud2lraXBlZGlhLm9yZy8iIGxhbmc9InR5diIgdGl0bGU9IlR5dmEgZHlsIj7QotGL0LLQsCDQtNGL0Ls8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdWRtLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ1ZG0iIHRpdGxlPSJVZG11cnQiPtCj0LTQvNGD0YDRgjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy91Zy53aWtpcGVkaWEub3JnLyIgbGFuZz0idWciPjxiZGkgZGlyPSJydGwiPtim24fZiti624fYsdqG2Yc8L2JkaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmVwLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ2ZXAiPlZlcHPDpG48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZml1LXZyby53aWtpcGVkaWEub3JnLyIgbGFuZz0iZml1LXZybyI+VsO1cm88L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmxzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ2bHMiPldlc3QtVmxhbXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vd28ud2lraXBlZGlhLm9yZy8iIGxhbmc9IndvIj5Xb2xvZjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy93dXUud2lraXBlZGlhLm9yZy8iIGxhbmc9Ind1dSIgdGl0bGU9IlfDuiBZx5QiIGRhdGEtY29udmVydC1oYW5zPSLlkLTor60iIGlkPSJ3dXVfd2lraSI+5ZCz6KqePC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RpcS53aWtpcGVkaWEub3JnLyIgbGFuZz0iZGlxIj5aYXpha2k8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vemVhLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ6ZWEiPlplw6p1d3M8L2E+PC9saT4KPC91bD4KPC9kaXY+CjwhLS0gQm9va3NoZWx2ZXMgLS0+CjxoMiBjbGFzcz0iYm9va3NoZWxmLWNvbnRhaW5lciI+CjxzcGFuIGNsYXNzPSJib29rc2hlbGYiPgo8c3BhbiBjbGFzcz0idGV4dCIgZGlyPSJsdHIiPjEwMCs8L3NwYW4+Cjwvc3Bhbj4KPC9oMj4KPCEtLSAxMDArIGNvbnRlbnQgcGFnZXMgLS0+CjxkaXYgY2xhc3M9ImxhbmdsaXN0IGxhbmdsaXN0LXRpbnkgaGxpc3QiIGRhdGEtZWwtc2VjdGlvbj0ic2Vjb25kYXJ5IGxpbmtzIj4KPHVsPgo8bGk+PGEgaHJlZj0iLy9hay53aWtpcGVkaWEub3JnLyIgbGFuZz0iYWsiPkFrYW48L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vYm0ud2lraXBlZGlhLm9yZy8iIGxhbmc9ImJtIj5CYW1hbmFua2FuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NoLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjaCI+Q2hhbW9ydTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ueS53aWtpcGVkaWEub3JnLyIgbGFuZz0ibnkiPkNoaWNoZXdhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2VlLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJlZSI+RcqLZWdiZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mZi53aWtpcGVkaWEub3JnLyIgbGFuZz0iZmYiPkZ1bGZ1bGRlPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2dvdC53aWtpcGVkaWEub3JnLyIgbGFuZz0iZ290IiB0aXRsZT0iR3V0aXNrIj7wkIyy8JCMv/CQjYTwkIy58JCNg/CQjLo8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaXUud2lraXBlZGlhLm9yZy8iIGxhbmc9Iml1Ij7hkIPhk4ThkoPhkY7hkZDhkaYgLyBJbnVrdGl0dXQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vaWsud2lraXBlZGlhLm9yZy8iIGxhbmc9ImlrIj5Jw7F1cGlhazwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9rcy53aWtpcGVkaWEub3JnLyIgbGFuZz0ia3MiIHRpdGxlPSJLYXNobWlyaSI+PGJkaSBkaXI9InJ0bCI+2YPYtNmF2YrYsdmKPC9iZGk+PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2x0Zy53aWtpcGVkaWEub3JnLyIgbGFuZz0ibHRnIj5MYXRnYcS8dTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9mai53aWtpcGVkaWEub3JnLyIgbGFuZz0iZmoiPk5hIFZvc2EgVmFrYS1WaXRpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NyLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJjciI+TsSTaGl5YXfEk3dpbiAvIOGTgOGQpuGQg+GUreGQjeGQj+GQozwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9waWgud2lraXBlZGlhLm9yZy8iIGxhbmc9InBpaCI+Tm9yZnVrIC8gUGl0a2VybjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9vbS53aWtpcGVkaWEub3JnLyIgbGFuZz0ib20iPkFmYWFuIE9yb21vbzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9wbnQud2lraXBlZGlhLm9yZy8iIGxhbmc9InBudCIgdGl0bGU9IlBvbnRpYWvDoSI+zqDOv869z4TOuc6xzrrOrDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9kei53aWtpcGVkaWEub3JnLyIgbGFuZz0iZHoiIHRpdGxlPSJSZHpvbmctS2hhIj7gvaLgvqvgvbzgvYTgvIvgvYE8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vcm15Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJybXkiPlJvbWFuaTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9ybi53aWtpcGVkaWEub3JnLyIgbGFuZz0icm4iPktpcnVuZGk8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vc20ud2lraXBlZGlhLm9yZy8iIGxhbmc9InNtIj5HYWdhbmEgU8SBbW9hPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NnLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzZyI+U8OkbmfDtjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9zdC53aWtpcGVkaWEub3JnLyIgbGFuZz0ic3QiPlNlc290aG88L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdG4ud2lraXBlZGlhLm9yZy8iIGxhbmc9InRuIj5TZXRzd2FuYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9jdS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY3UiIHRpdGxlPSJTbG92xJtuxK1za8WtIj7QodC70L7QstGjzIHQvdGM0YHQutGKIC8g4rCU4rCO4rCR4rCC4rCh4rCQ4rCg4rCU4rCN4rCfPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3NzLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJzcyI+U2lTd2F0aTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90aS53aWtpcGVkaWEub3JnLyIgbGFuZz0idGkiIHRpdGxlPSJUaWdyacOxw7HEgSI+4Ym14YyN4Yit4YqbPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2Noci53aWtpcGVkaWEub3JnLyIgbGFuZz0iY2hyIiB0aXRsZT0iVHNhbGFnaSI+4Y+j4Y6z4Y6pPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2NoeS53aWtpcGVkaWEub3JnLyIgbGFuZz0iY2h5Ij5Uc8SXaGVzZW7El3N0c2VzdG90c2U8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmUud2lraXBlZGlhLm9yZy8iIGxhbmc9InZlIj5Uc2hpdmVu4biTYTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy90cy53aWtpcGVkaWEub3JnLyIgbGFuZz0idHMiPlhpdHNvbmdhPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3R1bS53aWtpcGVkaWEub3JnLyIgbGFuZz0idHVtIj5jaGlUdW1idWthPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3R3Lndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ0dyI+VHdpPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3hoLndpa2lwZWRpYS5vcmcvIiBsYW5nPSJ4aCI+aXNpWGhvc2E8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8venUud2lraXBlZGlhLm9yZy8iIGxhbmc9Inp1Ij5pc2ladWx1PC9hPjwvbGk+CjwvdWw+CjwvZGl2Pgo8IS0tIE90aGVyIGxhbmd1YWdlcyAtLT4KPGRpdiBjbGFzcz0ibGFuZ2xpc3QgbGFuZ2xpc3Qtb3RoZXJzIGhsaXN0IiBkYXRhLWVsLXNlY3Rpb249Im90aGVyIGxhbmd1YWdlcyI+Cjx1bD4KPGxpPjxhIGhyZWY9Ii8vbWV0YS53aWtpbWVkaWEub3JnL3dpa2kvTGlzdF9vZl9XaWtpcGVkaWFzIiBsYW5nPSJlbiI+T3RoZXIgbGFuZ3VhZ2VzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2RlLndpa2lwZWRpYS5vcmcvd2lraS9XaWtpcGVkaWE6U3ByYWNoZW4iIGxhbmc9ImRlIj5XZWl0ZXJlIFNwcmFjaGVuPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21ldGEud2lraW1lZGlhLm9yZy93aWtpL0xpc3RlX2Rlc19XaWtpcCVDMyVBOWRpYXMiIGxhbmc9ImZyIj5BdXRyZXMgbGFuZ3VlczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iLy9wbC53aWtpcGVkaWEub3JnL3dpa2kvV2lraXBlZGlhOkxpc3RhX3dlcnNqaV9qJUM0JTk5enlrb3d5Y2giIGxhbmc9InBsIj5Lb21wbGV0bmEgbGlzdGEgasSZenlrw7N3PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL2phLndpa2lwZWRpYS5vcmcvd2lraS9XaWtpcGVkaWE6JUU1JUE0JTlBJUU4JUE4JTgwJUU4JUFBJTlFJUUzJTgzJTk3JUUzJTgzJUFEJUUzJTgyJUI4JUUzJTgyJUE3JUUzJTgyJUFGJUUzJTgzJTg4JUUzJTgxJUE4JUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgxJUFFJUUzJTgyJUE2JUUzJTgyJUEzJUUzJTgyJUFEJUUzJTgzJTlBJUUzJTgzJTg3JUUzJTgyJUEzJUUzJTgyJUEyIiBsYW5nPSJqYSI+5LuW44Gu6KiA6KqePC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL21ldGEud2lraW1lZGlhLm9yZy93aWtpL0xpc3RhX2RlX1dpa2lwZWRpYXMiIGxhbmc9ImVzIj5PdHJvcyBpZGlvbWFzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3poLndpa2lwZWRpYS5vcmcvd2lraS9XaWtpcGVkaWE6JUU3JUJCJUI0JUU1JTlGJUJBJUU3JTk5JUJFJUU3JUE3JTkxJUU4JUFGJUFEJUU4JUE4JTgwJUU1JTg4JTk3JUU4JUExJUE4IiBsYW5nPSJ6aCIgZGF0YS1jb252ZXJ0LWhhbnM9IuWFtuS7luivreiogCIgaWQ9InpoX290aGVycyI+5YW25LuW6Kqe6KiAPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlOTIlRDAlQjglRDAlQkElRDAlQjglRDAlQkYlRDAlQjUlRDAlQjQlRDAlQjglRDElOEY6JUQwJUExJUQwJTkyIiBsYW5nPSJydSI+0JTRgNGD0LPQuNC1INGP0LfRi9C60Lg8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vZW8ud2lraXBlZGlhLm9yZy93aWtpL1Zpa2lwZWRpbzpJbnRlcm5hY2lhX1Zpa2lwZWRpbyIgbGFuZz0iZW8iPkFsaWFqIGxpbmd2b2o8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vbWV0YS53aWtpbWVkaWEub3JnL3dpa2kvJUVDJTlDJTg0JUVEJTgyJUE0JUVCJUIwJUIxJUVBJUIzJUJDJUVDJTlEJTk4XyVFQiVBQSVBOSVFQiVBMSU5RCIgbGFuZz0ia28iPuuLpOuluCDslrjslrQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii8vdmkud2lraXBlZGlhLm9yZy93aWtpL1dpa2lwZWRpYTpQaGklQzMlQUFuX2IlRTElQkElQTNuX25nJUMzJUI0bl9uZyVFMSVCQiVBRiIgbGFuZz0idmkiPk5nw7RuIG5n4buvIGtow6FjPC9hPjwvbGk+CjwvdWw+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxocj4KPGRpdiBjbGFzcz0iZm9vdGVyIiBkYXRhLWVsLXNlY3Rpb249Im90aGVyIHByb2plY3RzIj4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXIiPgo8ZGl2IGNsYXNzPSJmb290ZXItc2lkZWJhci1jb250ZW50Ij4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXItaWNvbiBzcHJpdGUgc3ZnLVdpa2ltZWRpYS1sb2dvX2JsYWNrIj4KPC9kaXY+CjxkaXYgY2xhc3M9ImZvb3Rlci1zaWRlYmFyLXRleHQganNsMTBuIiBkYXRhLWpzbDEwbj0iZm9vdGVyLWRlc2NyaXB0aW9uIj4KV2lraXBlZGlhIGlzIGhvc3RlZCBieSB0aGUgPGEgaHJlZj0iLy93aWtpbWVkaWFmb3VuZGF0aW9uLm9yZy8iPldpa2ltZWRpYSBGb3VuZGF0aW9uPC9hPiwgYSBub24tcHJvZml0IG9yZ2FuaXphdGlvbiB0aGF0IGFsc28gaG9zdHMgYSByYW5nZSBvZiBvdGhlciBwcm9qZWN0cy4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXIgYXBwLWJhZGdlcyI+CjxkaXYgY2xhc3M9ImZvb3Rlci1zaWRlYmFyLWNvbnRlbnQiPgo8ZGl2IGNsYXNzPSJmb290ZXItc2lkZWJhci10ZXh0Ij4KPGRpdiBjbGFzcz0iZm9vdGVyLXNpZGViYXItaWNvbiBzcHJpdGUgc3ZnLXdpa2lwZWRpYV9hcHBfdGlsZSI+PC9kaXY+CjxzdHJvbmcgY2xhc3M9ImpzbDEwbiIgZGF0YS1qc2wxMG49ImFwcC1saW5rcy50aXRsZSI+V2lraXBlZGlhIGFwcHMgYXJlIG5vdyBhdmFpbGFibGU6PC9zdHJvbmc+Cjx1bD4KPGxpIGNsYXNzPSJhcHAtYmFkZ2UgYXBwLWJhZGdlLWlvcyI+CjxhIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJhcHAtbGlua3MuaW9zIiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iLy9pdHVuZXMuYXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZDMyNDcxNTIzOD9wdD0yMDgzMDUmYW1wO2N0PXBvcnRhbCZhbXA7bXQ9OCI+RG93bmxvYWQgZm9yIGlPUyBvbiB0aGUgQXBwIFN0b3JlPC9hPgo8L2xpPgo8bGkgY2xhc3M9ImFwcC1iYWRnZSBhcHAtYmFkZ2UtYW5kcm9pZCI+CjxhIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJhcHAtbGlua3MuYW5kcm9pZCIgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ii8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1vcmcud2lraXBlZGlhJmFtcDtyZWZlcnJlcj1jYW1wYWlnbl9pZCUzRHBvcnRhbCI+RG93bmxvYWQgZm9yIEFuZHJvaWQgb24gR29vZ2xlIFBsYXk8L2E+CjwvbGk+CjxsaSBjbGFzcz0iYXBwLWJhZGdlIGFwcC1iYWRnZS1mdWxsbGlzdCI+CjxzcGFuIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJhcHAtbGlua3Mub3RoZXIiPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX1dpa2lwZWRpYV9tb2JpbGVfYXBwbGljYXRpb25zIj5WaWV3IGZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgV2lraXBlZGlhIGFwcHM8L2E+PC9zcGFuPgo8L2xpPgo8L3VsPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0cyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL2NvbW1vbnMud2lraW1lZGlhLm9yZy8iPgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LWljb24iPgo8ZGl2IGNsYXNzPSJzcHJpdGUgc3ZnLUNvbW1vbnMtbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0iY29tbW9ucy5uYW1lIj5Db21tb25zPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49ImNvbW1vbnMuc2xvZ2FuIj5GcmVlbHkgdXNhYmxlIHBob3RvcyAmYW1wOyBtb3JlPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lndpa2l2b3lhZ2Uub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraXZveWFnZS1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpdm95YWdlLm5hbWUiPldpa2l2b3lhZ2U8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraXZveWFnZS5zbG9nYW4iPkZyZWUgdHJhdmVsIGd1aWRlPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lndpa3Rpb25hcnkub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lrdGlvbmFyeS1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWt0aW9uYXJ5Lm5hbWUiPldpa3Rpb25hcnk8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lrdGlvbmFyeS5zbG9nYW4iPkZyZWUgZGljdGlvbmFyeTwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpYm9va3Mub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraWJvb2tzLWxvZ29fc2lzdGVyIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtdGV4dCI+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRpdGxlIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lib29rcy5uYW1lIj5XaWtpYm9va3M8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraWJvb2tzLnNsb2dhbiI+RnJlZSB0ZXh0Ym9va3M8L3NwYW4+CjwvZGl2Pgo8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0Ij4KPGEgY2xhc3M9Im90aGVyLXByb2plY3QtbGluayIgaHJlZj0iLy93d3cud2lraW5ld3Mub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraW5ld3MtbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraW5ld3MubmFtZSI+V2lraW5ld3M8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraW5ld3Muc2xvZ2FuIj5GcmVlIG5ld3Mgc291cmNlPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lndpa2lkYXRhLm9yZy8iPgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LWljb24iPgo8ZGl2IGNsYXNzPSJzcHJpdGUgc3ZnLVdpa2lkYXRhLWxvZ29fc2lzdGVyIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtdGV4dCI+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRpdGxlIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lkYXRhLm5hbWUiPldpa2lkYXRhPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lkYXRhLnNsb2dhbiI+RnJlZSBrbm93bGVkZ2UgYmFzZTwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpdmVyc2l0eS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1XaWtpdmVyc2l0eS1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpdmVyc2l0eS5uYW1lIj5XaWtpdmVyc2l0eTwvc3Bhbj4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGFnbGluZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpdmVyc2l0eS5zbG9nYW4iPkZyZWUgY291cnNlIG1hdGVyaWFsczwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpcXVvdGUub3JnLyI+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtaWNvbiI+CjxkaXYgY2xhc3M9InNwcml0ZSBzdmctV2lraXF1b3RlLWxvZ29fc2lzdGVyIj48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QtdGV4dCI+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRpdGxlIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lxdW90ZS5uYW1lIj5XaWtpcXVvdGU8L3NwYW4+CjxzcGFuIGNsYXNzPSJvdGhlci1wcm9qZWN0LXRhZ2xpbmUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraXF1b3RlLnNsb2dhbiI+RnJlZSBxdW90ZSBjb21wZW5kaXVtPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdCI+CjxhIGNsYXNzPSJvdGhlci1wcm9qZWN0LWxpbmsiIGhyZWY9Ii8vd3d3Lm1lZGlhd2lraS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1NZWRpYVdpa2ktbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0ibWVkaWF3aWtpLm5hbWUiPk1lZGlhV2lraTwvc3Bhbj4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGFnbGluZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJtZWRpYXdpa2kuc2xvZ2FuIj5GcmVlICZhbXA7IG9wZW4gd2lraSBhcHBsaWNhdGlvbjwvc3Bhbj4KPC9kaXY+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im90aGVyLXByb2plY3QiPgo8YSBjbGFzcz0ib3RoZXItcHJvamVjdC1saW5rIiBocmVmPSIvL3d3dy53aWtpc291cmNlLm9yZy8iPgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LWljb24iPgo8ZGl2IGNsYXNzPSJzcHJpdGUgc3ZnLVdpa2lzb3VyY2UtbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0id2lraXNvdXJjZS5uYW1lIj5XaWtpc291cmNlPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49Indpa2lzb3VyY2Uuc2xvZ2FuIj5GcmVlIGxpYnJhcnk8L3NwYW4+CjwvZGl2Pgo8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0Ij4KPGEgY2xhc3M9Im90aGVyLXByb2plY3QtbGluayIgaHJlZj0iLy9zcGVjaWVzLndpa2ltZWRpYS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1XaWtpc3BlY2llcy1sb2dvX3Npc3RlciI+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0LXRleHQiPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10aXRsZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpc3BlY2llcy5uYW1lIj5XaWtpc3BlY2llczwvc3Bhbj4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGFnbGluZSBqc2wxMG4iIGRhdGEtanNsMTBuPSJ3aWtpc3BlY2llcy5zbG9nYW4iPkZyZWUgc3BlY2llcyBkaXJlY3Rvcnk8L3NwYW4+CjwvZGl2Pgo8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdGhlci1wcm9qZWN0Ij4KPGEgY2xhc3M9Im90aGVyLXByb2plY3QtbGluayIgaHJlZj0iLy9tZXRhLndpa2ltZWRpYS5vcmcvIj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC1pY29uIj4KPGRpdiBjbGFzcz0ic3ByaXRlIHN2Zy1NZXRhLVdpa2ktbG9nb19zaXN0ZXIiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib3RoZXItcHJvamVjdC10ZXh0Ij4KPHNwYW4gY2xhc3M9Im90aGVyLXByb2plY3QtdGl0bGUganNsMTBuIiBkYXRhLWpzbDEwbj0ibWV0YXdpa2kubmFtZSI+TWV0YS1XaWtpPC9zcGFuPgo8c3BhbiBjbGFzcz0ib3RoZXItcHJvamVjdC10YWdsaW5lIGpzbDEwbiIgZGF0YS1qc2wxMG49Im1ldGF3aWtpLnNsb2dhbiI+Q29tbXVuaXR5IGNvb3JkaW5hdGlvbiAmYW1wOyBkb2N1bWVudGF0aW9uPC9zcGFuPgo8L2Rpdj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8cCBjbGFzcz0ic2l0ZS1saWNlbnNlIj4KPHNtYWxsIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJsaWNlbnNlIj5UaGlzIHBhZ2UgaXMgYXZhaWxhYmxlIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wLyI+Q3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIExpY2Vuc2U8L2E+PC9zbWFsbD4KPHNtYWxsIGNsYXNzPSJqc2wxMG4iIGRhdGEtanNsMTBuPSJ0ZXJtcyI+PGEgaHJlZj0iLy9tZXRhLndpa2ltZWRpYS5vcmcvd2lraS9UZXJtc19vZl9Vc2UiPlRlcm1zIG9mIFVzZTwvYT48L3NtYWxsPgo8c21hbGwgY2xhc3M9ImpzbDEwbiIgZGF0YS1qc2wxMG49IlByaXZhY3kgUG9saWN5Ij48YSBocmVmPSIvL21ldGEud2lraW1lZGlhLm9yZy93aWtpL1ByaXZhY3lfcG9saWN5Ij5Qcml2YWN5IFBvbGljeTwvYT48L3NtYWxsPgo8L3A+CjwhLS1baWYgZ3QgSUUgN10tLT4KPHNjcmlwdD4KdmFyIHJ0bExhbmdzID0gWydhcicsJ2FyYycsJ2FyeicsJ2JjYycsJ2JnbicsJ2JxaScsJ2NrYicsJ2R2JywnZmEnLCdnbGsnLCdoZScsJ2trLWNuJywna2stYXJhYicsJ2todycsJ2tzJywna3UtYXJhYicsJ2xraScsJ2xyYycsJ2x1eicsJ216bicsJ3BuYicsJ3BzJywnc2QnLCdzZGgnLCd1ZycsJ3VyJywneWknXSwKICAgIHRyYW5zbGF0aW9uc0hhc2ggPSAnNTgxZjU1MjknLAogICAgLyoKICAgICBUaGlzIG9iamVjdCBpcyB1c2VkIGJ5IGwxMG4gc2NyaXB0cyAocGFnZS1sb2NhbGl6ZWQuanMsIHRvcHRlbi1sb2NhbGl6ZWQuanMpCiAgICAgdG8gcmV2ZWFsIHRoZSBwYWdlIGNvbnRlbnQgYWZ0ZXIgbDEwbiBqc29uIGlzIGxvYWRlZC4KICAgICBBIHRpbWVyIGlzIGFsc28gc2V0IHRvIHByZXZlbnQgSlMgZnJvbSBoaWRpbmcgcGFnZSBjb250ZW50IGluZGVmaW5pdGVsdHkuCiAgICAgVGhpcyBzY3JpcHQgaXMgaW5saW5lZCB0byBzYWZlZ3VhcmQgYWdhaW50IHNjcmlwdCBsb2FkaW5nIGVycm9ycyBhbmQgcGxhY2VkCiAgICAgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSB0byBzYWZlZ3VhcmQgYWdhaW5zdCBhbnkgSFRNTCBsb2FkaW5nL3BhcnNpbmcgZXJyb3JzLgogICAgKi8KICAgIHdtTDEwblZpc2libGUgPSB7CiAgICAgICAgcmVhZHk6IGZhbHNlLAogICAgICAgIG1ha2VWaXNpYmxlOiBmdW5jdGlvbigpewogICAgICAgICAgICBpZiAoICF3bUwxMG5WaXNpYmxlLnJlYWR5ICkgewogICAgICAgICAgICAgICAgd21MMTBuVmlzaWJsZS5yZWFkeSA9IHRydWU7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSArPSAnIGpzbDEwbi12aXNpYmxlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH07CiAgICB3aW5kb3cuc2V0VGltZW91dCggd21MMTBuVmlzaWJsZS5tYWtlVmlzaWJsZSwgMTAwMCApCjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0icG9ydGFsL3dpa2lwZWRpYS5vcmcvYXNzZXRzL2pzL2luZGV4LTQ3ZjVmMDc2ODIuanMiPjwvc2NyaXB0Pgo8IS0tW2VuZGlmXS0tPgo8IS0tW2lmIGd0IElFIDldLS0+CjxzY3JpcHQgc3JjPSJwb3J0YWwvd2lraXBlZGlhLm9yZy9hc3NldHMvanMvZ3QtaWU5LTAxMWY4ZGJmYTkuanMiPjwvc2NyaXB0Pgo8IS0tW2VuZGlmXS0tPgo8IS0tW2lmIGx0ZSBJRSA5XS0tPgo8c3R5bGU+Ci5zdHlsZWQtc2VsZWN0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KPC9zdHlsZT4KPCEtLVtlbmRpZl0tLT4KPCEtLVtpZiBsdGUgSUUgOV0+CjxzdHlsZT4KICAgIC5sYW5nbGlzdCA+IHVsIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAubGFuZ2xpc3QgPiB1bCA+IGxpIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgICAgcGFkZGluZzogMCAwLjVlbTsKICAgIH0KPC9zdHlsZT4KPCFbZW5kaWZdLS0+CgoKPC9ib2R5Pg== 43 | http_version: 44 | recorded_at: Wed, 24 Jul 2019 06:37:01 GMT 45 | recorded_with: VCR 4.0.0 46 | --------------------------------------------------------------------------------