diff --git a/lib/channel.rb b/lib/channel.rb new file mode 100644 index 00000000..9d813904 --- /dev/null +++ b/lib/channel.rb @@ -0,0 +1,32 @@ +require_relative 'recipient' +require 'dotenv' + +class Channel < Recipient + attr_reader :topic, :member_count + + def initialize(slack_id:, name:, topic:, member_count:) + super(slack_id: slack_id, name: name) + @topic = topic + @member_count = member_count + end + + def self.list + Dotenv.load + params = { token: ENV['SLACK_API_KEY'] } + + response = self.get('https://slack.com/api/channels.list', params) + + response['channels'].map do |channel| + channel_info = { slack_id: channel['id'], + name: channel['name'], + topic: channel['topic']['value'], + member_count: channel['num_members'] + } + self.new(channel_info) + end + end + + def details + return "Channel's name: #{name}, Topic: #{topic}, Slack id: #{slack_id}, Member count: #{member_count}" + end +end diff --git a/lib/recipient.rb b/lib/recipient.rb new file mode 100644 index 00000000..c2eac967 --- /dev/null +++ b/lib/recipient.rb @@ -0,0 +1,50 @@ +require 'httparty' +require 'dotenv' + +class Recipient + attr_reader :slack_id, :name + + class SlackApiError < Exception; end + + def initialize(slack_id:, name:) + raise ArgumentError unless (slack_id && name) + @slack_id = slack_id + @name = name + end + + def self.list + raise NotImplementedError, "template method" + end + + def self.get(url, params) + response = HTTParty.get(url, query: params) + raise SlackApiError unless response['ok'] + + return response.parsed_response + end + + def send_message(message) + Dotenv.load + + body = { + token: ENV["SLACK_API_KEY"], + text: message, + channel: slack_id, + } + + headers = { 'Content-Type' => 'application/x-www-form-urlencoded' } + url = "https://slack.com/api/chat.postMessage" + + response = HTTParty.post(url, body: body, headers: headers) + + unless response.code == 200 && response["ok"] + raise SlackApiError + end + + return true + end + + def details + raise NotImplementedError, "template method" + end +end diff --git a/lib/slack.rb b/lib/slack.rb index 960cf2f7..8ec66c27 100755 --- a/lib/slack.rb +++ b/lib/slack.rb @@ -1,11 +1,86 @@ #!/usr/bin/env ruby -def main - puts "Welcome to the Ada Slack CLI!" +require_relative 'workspace' - # TODO project - - puts "Thank you for using the Ada Slack CLI" -end - -main if __FILE__ == $PROGRAM_NAME \ No newline at end of file +COMMANDS = ['list users', 'list channels', 'select user', 'select channel', + 'details', 'send message', 'quit'] + + SEARCH_KEYS = ['name', 'id'] + + def show_commands + puts "Available commands:" + puts COMMANDS + puts + end + + def get_command + input = gets.chomp.downcase + until COMMANDS.include? input + puts "Please enter a valid command" + show_commands + input = gets.chomp.downcase + end + return input + end + + def prompt_recipient + puts "What do you like to search for: name or id:" + + key = gets.chomp.downcase + until SEARCH_KEYS.include? key + puts "Invalid command \nWhat do you like to search for: name or id:" + key = gets.chomp.downcase + end + + puts "Please enter #{key}:" + input = gets.chomp + + key == 'name' ? {name: input} : {slack_id: input} + end + + def main + puts "Welcome to the Ada Slack CLI!\n" + + workspace = Workspace.new + workspace.show_details + while true + show_commands + command = get_command + + case command + when 'quit' + break + + when 'list users' + workspace.show_details :users + + when 'list channels' + workspace.show_details :channels + + when 'select channel' + channel_info = prompt_recipient + workspace.select_channel(channel_info) + workspace.selected ? workspace.show_selected : puts("Channel not found\n\n") + + when 'select user' + user_info = prompt_recipient + workspace.select_user(user_info) + workspace.selected ? workspace.show_selected : puts("User not found\n\n") + + when 'details' + workspace.show_selected + + when 'send message' + begin + workspace.send_message + rescue Recipient::SlackApiError + puts "Unable to send message\n\n" + end + end + end + + puts "Thank you for using the Ada Slack CLI" + end + + main if __FILE__ == $PROGRAM_NAME + \ No newline at end of file diff --git a/lib/user.rb b/lib/user.rb new file mode 100644 index 00000000..b74ab3b9 --- /dev/null +++ b/lib/user.rb @@ -0,0 +1,31 @@ +require 'dotenv' +require_relative 'recipient' + +class User < Recipient + attr_reader :real_name, :status_text + + def initialize(slack_id:, name:, real_name:, status_text:) + super(slack_id: slack_id, name: name) + @real_name = real_name + @status_text = status_text + end + + def self.list + Dotenv.load + params = { token: ENV['SLACK_API_KEY'] } + + response = self.get('https://slack.com/api/users.list', params) + + response['members'].map do |user| + user_info = { slack_id: user['id'], name: user['name'], + real_name: user['profile']['real_name'], + status_text: user['profile']['status_text'], + } + self.new(user_info) + end + end + + def details + return "Username: #{name}, Real name: #{real_name}, Slack id: #{slack_id}" + end +end diff --git a/lib/workspace.rb b/lib/workspace.rb new file mode 100644 index 00000000..29aff409 --- /dev/null +++ b/lib/workspace.rb @@ -0,0 +1,56 @@ +require_relative 'channel' +require_relative 'user' + +class Workspace + attr_reader :channels, :users, :selected + + def initialize + @channels = Channel.list + @users = User.list + @selected = nil + end + + def show_details *recipients + recipients = [:channels, :users] if recipients.empty? + + recipients.each do |recipient| + puts recipient.capitalize + puts self.send(recipient).map(&:details).join("\n") + puts + end + end + + def select_user name: nil, slack_id: nil + @selected = find_recipient list: users, name: name, slack_id: slack_id + end + + def select_channel name: nil, slack_id: nil + @selected = find_recipient list: channels, name: name, slack_id: slack_id + end + + def find_recipient(list:, name: nil, slack_id: nil) + raise ArgumentError unless name || slack_id + + return list.find do |recipient| + name ? recipient.name == name : recipient.slack_id == slack_id + end + end + + def send_message + if selected + puts "Please enter message to send to #{selected.name}: " + message = gets.chomp + raise Recipient::SlackApiError if message.empty? + + selected.send_message(message) + else + puts "No recipient selected\n\n" + return false + end + end + + def show_selected + puts selected ? selected.details : "No recipient was selected" + puts + end +end diff --git a/test/cassettes/Channel_list.yml b/test/cassettes/Channel_list.yml new file mode 100644 index 00000000..691e7554 --- /dev/null +++ b/test/cassettes/Channel_list.yml @@ -0,0 +1,157 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/channels.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '553' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 23:19:33 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 92f8ffa2-2e05-49c9-beca-2c1968ebeba8 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-zrg4 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 536063cb28bfc05fcb7a78183dd89b73.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - _cv08FQyzjVPuN_um5B2zN_I2W7sIbDrD2g6UfJLPXDfQ_T7fa72mA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMURJLBUK","name":"random","is_channel":true,"created":1568072573,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2},{"id":"CMZT9GCQZ","name":"slack-cli","is_channel":true,"created":1568072574,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"slack-cli","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CN8G3GAR4","name":"general","is_channel":true,"created":1568072573,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Tue, 10 Sep 2019 23:19:34 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '553' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 23:19:34 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 91bce71f-6654-4e0f-a9d7-4f8b0383414a + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-7ui7 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 1ec2938341958d70d56193d709c89def.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - 5omFJ3QvwLuMTi9mRpsOYUVWOJlgRrz5HwXleFzLaA_sqp-h_VOO-w== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMURJLBUK","name":"random","is_channel":true,"created":1568072573,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2},{"id":"CMZT9GCQZ","name":"slack-cli","is_channel":true,"created":1568072574,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"slack-cli","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CN8G3GAR4","name":"general","is_channel":true,"created":1568072573,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Tue, 10 Sep 2019 23:19:34 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/Recipient_get.yml b/test/cassettes/Recipient_get.yml new file mode 100644 index 00000000..05148704 --- /dev/null +++ b/test/cassettes/Recipient_get.yml @@ -0,0 +1,143 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/channels.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '53' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 22:15:11 GMT + Server: + - Apache + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + X-Accepted-Oauth-Scopes: + - channels:read + Vary: + - Accept-Encoding + X-Slack-Req-Id: + - 32901cd2-8baf-4100-8172-699a483d4cb3 + X-Xss-Protection: + - '0' + X-Content-Type-Options: + - nosniff + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-m81p + X-Cache: + - Miss from cloudfront + Via: + - 1.1 44cd593d82a2d200a94217033c614c6a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - _OXVg-9ROvsv44YE9z_0UfwcuuAIYASxKk1K4Eh1tIPYrrvjBfHyhw== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"not_authed"}' + http_version: + recorded_at: Tue, 10 Sep 2019 22:15:11 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '553' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 22:28:15 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - a2142486-07c5-44b9-9d00-8d9d3aba398c + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-07ln + X-Cache: + - Miss from cloudfront + Via: + - 1.1 42ef990e439ae115ff739f04e3945234.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - 5K8hJkAhj3cHjUJscxZbnr6EdG8BI7QzVIqRCEiJvcbo1FWm3IpLRw== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMURJLBUK","name":"random","is_channel":true,"created":1568072573,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2},{"id":"CMZT9GCQZ","name":"slack-cli","is_channel":true,"created":1568072574,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"slack-cli","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CN8G3GAR4","name":"general","is_channel":true,"created":1568072573,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Tue, 10 Sep 2019 22:28:15 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/Recipient_get_bad_requests.yml b/test/cassettes/Recipient_get_bad_requests.yml new file mode 100644 index 00000000..4c1ae15b --- /dev/null +++ b/test/cassettes/Recipient_get_bad_requests.yml @@ -0,0 +1,66 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/channels.list + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '53' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 23:09:23 GMT + Server: + - Apache + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + X-Accepted-Oauth-Scopes: + - channels:read + Vary: + - Accept-Encoding + X-Slack-Req-Id: + - 953374a7-5bdb-4c9c-9c10-e8856f1e48be + X-Xss-Protection: + - '0' + X-Content-Type-Options: + - nosniff + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-gcsj + X-Cache: + - Miss from cloudfront + Via: + - 1.1 c9b161639a9353c2354b895548ea9fca.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - gWMyytBg0kHmToLb6LTpwucFG6owXmM3049kYud8E7OcPZCWaI6Qiw== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"not_authed"}' + http_version: + recorded_at: Tue, 10 Sep 2019 23:09:23 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/User_list.yml b/test/cassettes/User_list.yml new file mode 100644 index 00000000..9bbc22da --- /dev/null +++ b/test/cassettes/User_list.yml @@ -0,0 +1,218 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list? + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '53' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 22:42:57 GMT + Server: + - Apache + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + X-Slack-Req-Id: + - 005b8325-ba42-4776-b7a0-7dc1f0835a73 + X-Xss-Protection: + - '0' + X-Content-Type-Options: + - nosniff + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-admz + X-Cache: + - Miss from cloudfront + Via: + - 1.1 0a2ce08fa1ec3c33302a7547d3305978.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - BVQWn2tfbnTLavSyZJlvRdhEcxkbO-6tMBNQeHblft8VFarFW_kcCQ== + body: + encoding: ASCII-8BIT + string: '{"ok":false,"error":"not_authed"}' + http_version: + recorded_at: Tue, 10 Sep 2019 22:42:57 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '922' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 22:44:48 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - be004189-6f40-4a46-80a9-326e805698df + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-x0x4 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 deaaf0548506de20925615eb51a7ea7f.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - HY-x5-SeFCpgxmL-aoNoWq9JZwbncJdaJw6mAOKdJGDIcT0kPeoDjg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TMZT9G1J5","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Slackbot","real_name_normalized":"Slackbot","display_name":"Slackbot","display_name_normalized":"Slackbot","fields":null,"status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"sv41d8cd98f0","always_active":true,"first_name":"slackbot","last_name":"","image_24":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_24.png","image_32":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_32.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_72.png","image_192":"https:\/\/a.slack-edge.com\/80588\/marketing\/img\/avatars\/slackbot\/avatar-slackbot.png","image_512":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":0},{"id":"UN69SS932","team_id":"TMZT9G1J5","name":"nguyenthao.lee","deleted":false,"color":"e7392d","real_name":"Eve + Le","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Eve + Le","real_name_normalized":"Eve Le","display_name":"Eve Le","display_name_normalized":"Eve + Le","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge724ec3bf28","image_24":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1568072641,"has_2fa":false},{"id":"UN8G3G4VC","team_id":"TMZT9G1J5","name":"calopter","deleted":false,"color":"9f69e7","real_name":"calopter","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"calopter","real_name_normalized":"calopter","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc2c2d474187","image_24":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":true,"is_owner":true,"is_primary_owner":true,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1568072573,"has_2fa":false}],"cache_ts":1568155488,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Tue, 10 Sep 2019 22:44:48 GMT +- request: + method: get + uri: https://slack.com/api/users.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '921' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 22:53:21 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 123b9308-3f87-4c98-a559-3c17d32d402f + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-o786 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 adc2002956acc4d61bfbf3b973fdf247.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - AFG1ZqTPR0cwNkeLF6tLIbQhS0Zv-F-WD_PulZ34y0GlyDMM5jKENg== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TMZT9G1J5","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Slackbot","real_name_normalized":"Slackbot","display_name":"Slackbot","display_name_normalized":"Slackbot","fields":null,"status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"sv41d8cd98f0","always_active":true,"first_name":"slackbot","last_name":"","image_24":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_24.png","image_32":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_32.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_72.png","image_192":"https:\/\/a.slack-edge.com\/80588\/marketing\/img\/avatars\/slackbot\/avatar-slackbot.png","image_512":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":0},{"id":"UN69SS932","team_id":"TMZT9G1J5","name":"nguyenthao.lee","deleted":false,"color":"e7392d","real_name":"Eve + Le","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Eve + Le","real_name_normalized":"Eve Le","display_name":"Eve Le","display_name_normalized":"Eve + Le","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge724ec3bf28","image_24":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1568072641,"has_2fa":false},{"id":"UN8G3G4VC","team_id":"TMZT9G1J5","name":"calopter","deleted":false,"color":"9f69e7","real_name":"calopter","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"calopter","real_name_normalized":"calopter","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc2c2d474187","image_24":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":true,"is_owner":true,"is_primary_owner":true,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1568072573,"has_2fa":false}],"cache_ts":1568156001,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Tue, 10 Sep 2019 22:53:21 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/send_failure.yml b/test/cassettes/send_failure.yml new file mode 100644 index 00000000..f1496a2c --- /dev/null +++ b/test/cassettes/send_failure.yml @@ -0,0 +1,125 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.slack.com/methods/chat.postMessage + body: + encoding: UTF-8 + string: token=&text=hello&channel=0 + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/html; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 21:10:28 GMT + Server: + - Apache + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Set-Cookie: + - b=2hih15o06osiu4mqfqvb40zbx; expires=Wed, 12-Sep-2029 21:10:28 GMT; Max-Age=315619200; + path=/; domain=.slack.com + - x=2hih15o06osiu4mqfqvb40zbx.1568322628; expires=Thu, 12-Sep-2019 21:25:28 + GMT; Max-Age=900; path=/; domain=.slack.com + X-Frame-Options: + - SAMEORIGIN + X-Via: + - haproxy-www-wzn6 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 7514e5e25722778fd4b1744d4ecc67e1.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - iR6UTF1WR7BNf8Gfd-rr9kRCpaU90CsU6Lt0HeR1hIVuH9rz4Y8I1w== + body: + encoding: ASCII-8BIT + string: !binary |- + PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4tVVMiIGNsYXNzPSIiPjxoZWFkPjxzY3JpcHQ+d2luZG93LnRzX2VuZHBvaW50X3VybCA9ICJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL3RpbWluZyI7KGZ1bmN0aW9uKGUpIHsKCXZhciBuPURhdGUubm93P0RhdGUubm93KCk6K25ldyBEYXRlLHI9ZS5wZXJmb3JtYW5jZXx8e30sdD1bXSxhPXt9LGk9ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHI9MCxhPXQubGVuZ3RoLGk9W107YT5yO3IrKyl0W3JdW2VdPT1uJiZpLnB1c2godFtyXSk7cmV0dXJuIGl9LG89ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIsYT10Lmxlbmd0aDthLS07KXI9dFthXSxyLmVudHJ5VHlwZSE9ZXx8dm9pZCAwIT09biYmci5uYW1lIT1ufHx0LnNwbGljZShhLDEpfTtyLm5vd3x8KHIubm93PXIud2Via2l0Tm93fHxyLm1vek5vd3x8ci5tc05vd3x8ZnVuY3Rpb24oKXtyZXR1cm4oRGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGUpLW59KSxyLm1hcmt8fChyLm1hcms9ci53ZWJraXRNYXJrfHxmdW5jdGlvbihlKXt2YXIgbj17bmFtZTplLGVudHJ5VHlwZToibWFyayIsc3RhcnRUaW1lOnIubm93KCksZHVyYXRpb246MH07dC5wdXNoKG4pLGFbZV09bn0pLHIubWVhc3VyZXx8KHIubWVhc3VyZT1yLndlYmtpdE1lYXN1cmV8fGZ1bmN0aW9uKGUsbixyKXtuPWFbbl0uc3RhcnRUaW1lLHI9YVtyXS5zdGFydFRpbWUsdC5wdXNoKHtuYW1lOmUsZW50cnlUeXBlOiJtZWFzdXJlIixzdGFydFRpbWU6bixkdXJhdGlvbjpyLW59KX0pLHIuZ2V0RW50cmllc0J5VHlwZXx8KHIuZ2V0RW50cmllc0J5VHlwZT1yLndlYmtpdEdldEVudHJpZXNCeVR5cGV8fGZ1bmN0aW9uKGUpe3JldHVybiBpKCJlbnRyeVR5cGUiLGUpfSksci5nZXRFbnRyaWVzQnlOYW1lfHwoci5nZXRFbnRyaWVzQnlOYW1lPXIud2Via2l0R2V0RW50cmllc0J5TmFtZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGkoIm5hbWUiLGUpfSksci5jbGVhck1hcmtzfHwoci5jbGVhck1hcmtzPXIud2Via2l0Q2xlYXJNYXJrc3x8ZnVuY3Rpb24oZSl7bygibWFyayIsZSl9KSxyLmNsZWFyTWVhc3VyZXN8fChyLmNsZWFyTWVhc3VyZXM9ci53ZWJraXRDbGVhck1lYXN1cmVzfHxmdW5jdGlvbihlKXtvKCJtZWFzdXJlIixlKX0pLGUucGVyZm9ybWFuY2U9ciwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiYoZGVmaW5lLmFtZHx8ZGVmaW5lLmFqcykmJmRlZmluZSgicGVyZm9ybWFuY2UiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lCn0pKHdpbmRvdyk7PC9zY3JpcHQ+PHNjcmlwdD4KCihmdW5jdGlvbigpIHsKCQoJd2luZG93LlRTTWFyayA9IGZ1bmN0aW9uKG1hcmtfbGFiZWwpIHsKCQlpZiAoIXdpbmRvdy5wZXJmb3JtYW5jZSB8fCAhd2luZG93LnBlcmZvcm1hbmNlLm1hcmspIHJldHVybjsKCQlwZXJmb3JtYW5jZS5tYXJrKG1hcmtfbGFiZWwpOwoJfTsKCXdpbmRvdy5UU01hcmsoJ3N0YXJ0X2xvYWQnKTsKCgkKCXdpbmRvdy5UU01lYXN1cmVBbmRCZWFjb24gPSBmdW5jdGlvbihtZWFzdXJlX2xhYmVsLCBzdGFydF9tYXJrX2xhYmVsKSB7CgkJaWYgKCF3aW5kb3cucGVyZm9ybWFuY2UgfHwgIXdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrIHx8ICF3aW5kb3cucGVyZm9ybWFuY2UubWVhc3VyZSkgewoJCQlyZXR1cm47CgkJfQoKCQlwZXJmb3JtYW5jZS5tYXJrKHN0YXJ0X21hcmtfbGFiZWwgKyAnX2VuZCcpOwoKCQl0cnkgewoJCQlwZXJmb3JtYW5jZS5tZWFzdXJlKG1lYXN1cmVfbGFiZWwsIHN0YXJ0X21hcmtfbGFiZWwsIHN0YXJ0X21hcmtfbGFiZWwgKyAnX2VuZCcpOwoJCQl3aW5kb3cuVFNCZWFjb24obWVhc3VyZV9sYWJlbCwgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShtZWFzdXJlX2xhYmVsKVswXS5kdXJhdGlvbik7CgkJfSBjYXRjaCAoZSkgewoJCQkKCQl9Cgl9OwoKCQoJaWYgKCdzZW5kQmVhY29uJyBpbiBuYXZpZ2F0b3IpIHsKCQl3aW5kb3cuVFNCZWFjb24gPSBmdW5jdGlvbihsYWJlbCwgdmFsdWUpIHsKCQkJdmFyIGVuZHBvaW50X3VybCA9IHdpbmRvdy50c19lbmRwb2ludF91cmwgfHwgJ2h0dHBzOi8vc2xhY2suY29tL2JlYWNvbi90aW1pbmcnOwoJCQluYXZpZ2F0b3Iuc2VuZEJlYWNvbigKCQkJCWVuZHBvaW50X3VybCArICc/ZGF0YT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGxhYmVsICsgJzonICsgdmFsdWUpLAoJCQkJJycKCQkJKTsKCQl9OwoJfSBlbHNlIHsKCQl3aW5kb3cuVFNCZWFjb24gPSBmdW5jdGlvbihsYWJlbCwgdmFsdWUpIHsKCQkJdmFyIGVuZHBvaW50X3VybCA9IHdpbmRvdy50c19lbmRwb2ludF91cmwgfHwgJ2h0dHBzOi8vc2xhY2suY29tL2JlYWNvbi90aW1pbmcnOwoJCQluZXcgSW1hZ2UoKS5zcmMgPSBlbmRwb2ludF91cmwgKyAnP2RhdGE9JyArIGVuY29kZVVSSUNvbXBvbmVudChsYWJlbCArICc6JyArIHZhbHVlKTsKCQl9OwoJfQp9KSgpOwo8L3NjcmlwdD48c2NyaXB0PndpbmRvdy5UU01hcmsoJ3N0ZXBfbG9hZCcpOzwvc2NyaXB0Pjxub3NjcmlwdD48bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwOyBVUkw9L21ldGhvZHMvY2hhdC5wb3N0TWVzc2FnZT9ub2pzbW9kZT0xIj48L25vc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgc2FmZV9ob3N0cyA9IFsnYXBwLm9wdGltaXplbHkuY29tJ107CgppZiAoc2VsZiAhPT0gdG9wICYmIHNhZmVfaG9zdHMuaW5kZXhPZih0b3AubG9jYXRpb24uaG9zdCkgPT09IC0xKSB7Cgl3aW5kb3cuZG9jdW1lbnQud3JpdGUoCgkJJ1x1MDAzQ3N0eWxlPmJvZHkgKiB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fVx1MDAzQy9zdHlsZT5cdTAwM0NhIGhyZWY9IiMiIG9uY2xpY2s9JyArCgkJCScidG9wLmxvY2F0aW9uLmhyZWY9d2luZG93LmxvY2F0aW9uLmhyZWYiIHN0eWxlPSJkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7cGFkZGluZzoxMHB4Ij5HbyB0byBTbGFjay5jb21cdTAwM0MvYT4nCgkpOwp9CgooZnVuY3Rpb24oKSB7Cgl2YXIgdGltZXI7CglpZiAoc2VsZiAhPT0gdG9wICYmIHNhZmVfaG9zdHMuaW5kZXhPZih0b3AubG9jYXRpb24uaG9zdCkgPT09IC0xKSB7CgkJdGltZXIgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CgkJCWlmICh3aW5kb3cpIHsKCQkJCXRyeSB7CgkJCQkJdmFyIHBhZ2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlJyk7CgkJCQkJdmFyIGNsaWVudEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsaWVudC11aScpOwoJCQkJCXZhciBzZWN0aW9uRWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbmF2LCBoZWFkZXIsIHNlY3Rpb24nKTsKCgkJCQkJcGFnZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGFnZUVsKTsKCQkJCQljbGllbnRFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNsaWVudEVsKTsKCQkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHNlY3Rpb25FbHMubGVuZ3RoOyBpKyspIHsKCQkJCQkJc2VjdGlvbkVsc1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNlY3Rpb25FbHNbaV0pOwoJCQkJCX0KCQkJCQl3aW5kb3cuVFMgPSBudWxsOwoJCQkJCXdpbmRvdy5URCA9IG51bGw7CgkJCQkJd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpOwoJCQkJfSBjYXRjaCAoZSkge30JCgkJCX0KCQl9LCAyMDApOwoJfQp9KSgpOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij50cnkgewoJaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICYmICF3aW5kb3cubG9jYXRpb24uaGFzaC5tYXRjaCgvXigjP1thLXpBLVowLTlfXSopJC8pKSB7CgkJd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnJzsKCX0KfSBjYXRjaCAoZSkge30KPC9zY3JpcHQ+PHRpdGxlPmNoYXQucG9zdE1lc3NhZ2UgbWV0aG9kIHwgU2xhY2s8L3RpdGxlPjxtZXRhIG5hbWU9IkhhbmRoZWxkRnJpZW5kbHkiIGNvbnRlbnQ9InRydWUiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj48bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IlNsYWNrIj48bGluayBocmVmPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vNGQ4MTQvc3R5bGUvcm9sbHVwLXNsYWNrX2tpdF9sZWdhY3lfYWRhcHRlcnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PGxpbmsgaHJlZj0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2Q1OGJlL3N0eWxlL3JvbGx1cC1hcGlfc2l0ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48bGluayBocmVmPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9tb2Rlcm4udmVuZG9yLmIzZWMwMDgubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjxsaW5rIGhyZWY9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9mMTk1YzMvc3R5bGUvcm9sbHVwLXNsYWNrX2tpdF9oZWxwZXJzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBpZD0ic2xhY2tfa2l0X2hlbHBlcnNfc3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS93ZWJwYWNrLm1hbmlmZXN0LjRjYmU0YzdmZGI0MGIzNjliZTliLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxsaW5rIGlkPSJmYXZpY29uIiByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS84MDU4OC9tYXJrZXRpbmcvaW1nL21ldGEvZmF2aWNvbi0zMi5wbmciIHNpemVzPSIxNngxNiAzMngzMiA0OHg0OCIgdHlwZT0iaW1hZ2UvcG5nIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOwp3aW5kb3cuZGF0YUxheWVyLnB1c2goewoJJ2d0bS5zdGFydCc6IERhdGUubm93KCksCgknZXZlbnQnIDogJ2d0bS5qcycsCgknc2VjdXJlX3BhZ2UnIDogZmFsc2UsCn0pOwp2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CnZhciB0aGlzU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CnRoaXNTY3JpcHQuYXN5bmMgPSB0cnVlOwp0aGlzU2NyaXB0LnNyYyA9ICcvL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9R1RNLUtIMkxQSyc7CmZpcnN0U2NyaXB0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXNTY3JpcHQsIGZpcnN0U2NyaXB0KTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oZSkgewoJdmFyIGd0bURhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107Cgl2YXIgZ3RtVGFncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJypbZGF0YS1ndG0tY2xpY2tdJyk7Cgl2YXIgZ3RtQ2xpY2tIYW5kbGVyID0gZnVuY3Rpb24oYykgewoJCXZhciBndG1fZXZlbnRzID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtZ3RtLWNsaWNrJyk7CgkJaWYgKCFndG1fZXZlbnRzKSByZXR1cm47CgkJdmFyIGd0bV9ldmVudHNfYXJyID0gZ3RtX2V2ZW50cy5zcGxpdCgiLCIpOwoJCWZvcih2YXIgZT0wOyBlIDwgZ3RtX2V2ZW50c19hcnIubGVuZ3RoOyBlKyspIHsKCQkJdmFyIGV2ID0gZ3RtX2V2ZW50c19hcnJbZV0udHJpbSgpOwoJCQlndG1EYXRhTGF5ZXIucHVzaCh7ICdldmVudCc6IGV2IH0pOwoJCX0KCX07Cglmb3IodmFyIGc9MDsgZyA8IGd0bVRhZ3MubGVuZ3RoOyBnKyspewoJCXZhciBlbGVtID0gZ3RtVGFnc1tnXTsKCQllbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZ3RtQ2xpY2tIYW5kbGVyKTsKCX0KfSk7Cjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKGZ1bmN0aW9uKGUsYyxiLGYsZCxnLGEpe2UuU2xhY2tCZWFjb25PYmplY3Q9ZDsKZVtkXT1lW2RdfHxmdW5jdGlvbigpeyhlW2RdLnE9ZVtkXS5xfHxbXSkucHVzaChbMSpuZXcgRGF0ZSgpLGFyZ3VtZW50c10pfTsKZVtkXS5sPTEqbmV3IERhdGUoKTtnPWMuY3JlYXRlRWxlbWVudChiKTthPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYilbMF07CmcuYXN5bmM9MTtnLnNyYz1mO2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxhKQp9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsImh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3NsYWNrX2JlYWNvbi41MjU2YzFmMjUyZjlhZTg4NTA3MS5taW4uanMiLCJzYiIpOwp3aW5kb3cuc2IoJ3NldCcsICd0b2tlbicsICczMzA3ZjQzNjk2M2UwMmQ0ZjllYjg1Y2U1MTU5NzQ0YycpOwp3aW5kb3cuc2IoJ3RyYWNrJywgJ3BhZ2V2aWV3Jyk7Cjwvc2NyaXB0PjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iUmVjZW50IGNoYW5nZXMgdG8gdGhlIFNsYWNrIHBsYXRmb3JtIFJTUyBGZWVkIiBocmVmPSIvY2hhbmdlbG9nLnJzcyI+PC9oZWFkPjxib2R5IGNsYXNzPSJhcGkgIGZlYXR1cmVfcmVsYXRlZF9jb250ZW50Ij48aGVhZGVyPjxhIGlkPSJtZW51X3RvZ2dsZSIgY2xhc3M9Im5vX3RyYW5zaXRpb24gc2hvd19vbl9tb2JpbGUiPjxzcGFuIGNsYXNzPSJtZW51X2ljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0idmVydF9kaXZpZGVyIj48L3NwYW4+PC9hPjxhIGhyZWY9Imh0dHBzOi8vYXBpLnNsYWNrLmNvbS8iIGlkPSJoZWFkZXJfbG9nbyIgY2xhc3M9ImFwaSI+PGltZyBhbHQ9IlNsYWNrIEFQSSIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vODA1ODgvaW1nL3NsYWNrX2FwaV9sb2dvX3ZvZ3VlLnBuZyI+PC9hPjxkaXYgY2xhc3M9ImhlYWRlcl9uYXYiPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3NpZ25pbiIgY2xhc3M9ImJ0biBoZWFkZXJfYnRuIGZsb2F0X3JpZ2h0IiBkYXRhLXFhPSJzaWduX2luIj5HbyB0byBTbGFjazwvYT48ZGl2IGNsYXNzPSJoZWFkZXJfbGlua3MgZmxvYXRfcmlnaHQiPjxhIGhyZWY9Ii8jcmVhZF90aGVfZG9jcyIgY2xhc3M9ImFjdGl2ZSIgZGF0YS1xYT0iZG9jdW1lbnRhdGlvbiI+RG9jdW1lbnRhdGlvbjwvYT4gPGEgaHJlZj0iL3R1dG9yaWFscyIgZGF0YS1xYT0idHV0b3JpYWxzIj5UdXRvcmlhbHM8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vQHNsYWNrYXBpIiB0YXJnZXQ9Im5ldyIgZGF0YS1xYT0idHdpdHRlciI+VHdpdHRlcjwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhbGVydF9wYWdlX3N0YWNrZWQiPjxkaXYgY2xhc3M9ImFsZXJ0X3BhZ2UgYWxlcnRfc3VjY2VzcyBoaWRkZW4gZmFkZSBhcGlfYWxlcnRfcGFnZSIgZGF0YS1qcz0iYXBpX2FsZXJ0X3BhZ2UiPjxpIGNsYXNzPSJ0c19pY29uIHRzX2ljb25fY2hlY2tfY2lyY2xlX28iPjwvaT5TdWNjZXNzITwvZGl2PjwvZGl2PjwvaGVhZGVyPjxkaXYgaWQ9InBhZ2UiIGNsYXNzPSJsYXlvdXRfdGhyZWVfY29sIj48ZGl2IGlkPSJwYWdlX2NvbnRlbnRzIiBjbGFzcz0iY2xlYXJmaXggIj48bmF2IGlkPSJhcGlfbmF2IiBjbGFzcz0iY29sIj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUgc2hvd19vbl9tb2JpbGUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+TXkgU2xhY2sgQVBJPC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gaXNfYWN0aXZlIiBocmVmPSIvI3JlYWRfdGhlX2RvY3MiPkRvY3VtZW50YXRpb248L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvYXBwcyI+WW91ciBBcHBzPC9hPjwvbGk+PC91bD48L2Rpdj48YSBuYW1lPSJyZWFkX3RoZV9kb2NzIj48L2E+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlN0YXJ0IGhlcmU8c3VwIGNsYXNzPSJzaWRlYmFyX25ld19pbmRpY2F0b3IiIHRpdGxlPSJBbiBpbnRyb2R1Y3Rpb24gdG8gU2xhY2sgYXBwcyI+bmV3PC9zdXA+PC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc3RhcnQvb3ZlcnZpZXciPkFuIGludHJvZHVjdGlvbiB0b8KgYXBwczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9zdGFydC9wbGFubmluZyI+UGxhbm5pbmcgeW91ciBhcHA8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc3RhcnQvZGVzaWduaW5nIj5EZXNpZ25pbmcgYXBwIGV4cGVyaWVuY2VzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3N0YXJ0L2J1aWxkaW5nIj5CdWlsZGluZyBhbiBhcHA8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5BcHAgZmVhdHVyZXM8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9pbnRlcm5hbC1pbnRlZ3JhdGlvbnMiPkludGVybmFsIGludGVncmF0aW9uczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9pbmNvbWluZy13ZWJob29rcyI+SW5jb21pbmcgd2ViaG9va3M8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2xhc2gtY29tbWFuZHMiPlNsYXNoIGNvbW1hbmRzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2JvdC11c2VycyI+QnVpbGRpbmcgYm90czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9hY3Rpb25zIj5BY3Rpb25zPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RpYWxvZ3MiPkRpYWxvZ3M8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvcmVmZXJlbmNlL2FwcC1ob21lIj5BcHAgSG9tZTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9zaGFyZWQtY2hhbm5lbHMiPlNoYXJlZCBDaGFubmVsczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9lbnRlcnByaXNlLWdyaWQiPkVudGVycHJpc2UgR3JpZDwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPk1lc3NhZ2luZzwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvbWVzc2FnaW5nIj5PdmVydmlldzwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL21lc3NhZ2luZy9tYW5hZ2luZyI+TWFuYWdpbmcgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9tZXNzYWdpbmcvY29tcG9zaW5nIj5Db21wb3NpbmcgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9tZXNzYWdpbmcvaW50ZXJhY3Rpdml0eSI+SW50ZXJhY3Rpdml0eTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL21lc3NhZ2luZy9maWxlcyI+V29ya2luZyB3aXRoIGZpbGVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvcmVmZXJlbmNlL21lc3NhZ2luZy9wYXlsb2FkIj5SZWZlcmVuY2U8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii90b29scy9ibG9jay1raXQtYnVpbGRlciI+QmxvY2sga2l0IGJ1aWxkZXI8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5BcHBzIGZvciBhZG1pbnM8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2FkbWlucyI+T3ZlcnZpZXc8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9hZG1pbnMvbWFuYWdpbmciPk1hbmFnaW5nIGFwcHM8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5SZWZlcmVuY2U8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii93ZWIiPldlYiBBUEk8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZXZlbnRzLWFwaSI+RXZlbnRzIEFQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL2NvbnZlcnNhdGlvbnMtYXBpIj5Db252ZXJzYXRpb25zIEFQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9ydG0iPlJlYWwgVGltZSBNZXNzYWdpbmcgQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIGlzX2FjdGl2ZSIgaHJlZj0iL21ldGhvZHMiPk1ldGhvZHM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvdHlwZXMiPk9iamVjdCBUeXBlczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9ldmVudHMiPkV2ZW50IFR5cGVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3NjaW0iPlNDSU0gQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvYXVkaXQtbG9ncy1hcGkiPkF1ZGl0IExvZ3MgQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvcGFnaW5hdGlvbiI+UGFnaW5hdGlvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3ByZXNlbmNlLWFuZC1zdGF0dXMiPlByZXNlbmNlICZhbXA7IHN0YXR1czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL2RlZXAtbGlua2luZyI+RGVlcCBsaW5raW5nIGludG8gY2xpZW50czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3JhdGUtbGltaXRzIj5SYXRlIExpbWl0czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3RyaWdnZXJzIj5UcmlnZ2VyczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2RvY3Mvb3V0bW9kZWQtbWVzc2FnaW5nIj5PdXRtb2RlZCBtZXNzYWdpbmc8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9pbnRlcmFjdGl2ZS1tZXNzYWdlcyI+SW50ZXJhY3RpdmUgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvbGVnYWN5LXdvcmtzcGFjZS1hcHBzIj5MZWdhY3k6IFdvcmtzcGFjZSBhcHBzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3NsYWNrLWFwcHMiPk1hbmFnaW5nIFNsYWNrIGFwcHM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9zbGFjay1zdGF0dXMiPlNsYWNrIFN0YXR1czwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlNsYWNrIEFwcCBEaXJlY3Rvcnk8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NsYWNrLWFwcHMtY2hlY2tsaXN0Ij5TdWJtaXNzaW9uIGNoZWNrbGlzdDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NsYWNrLWFwcHMtZ3VpZGVsaW5lcyI+U3VibWlzc2lvbiBndWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvc2xhY2stYXBwcy1zdWdnZXN0aW9ucyI+QXBwIHN1Z2dlc3Rpb25zPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSJodHRwczovL3NsYWNrLmNvbS9hcHBzIiB0YXJnZXQ9Il9ibGFuayI+QXBwIERpcmVjdG9yeTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kZXZlbG9wZXItcG9saWNpZXMiPkRldmVsb3BlciBwb2xpY2llczwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPkF1dGhlbnRpY2F0aW9uPC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9vYXV0aCI+VXNpbmcgT0F1dGggMi4wPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvb2F1dGgtc2NvcGVzIj5QZXJtaXNzaW9ucyBzeXN0ZW08L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2NvcGVzIj5TY29wZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy90b2tlbi10eXBlcyI+VG9rZW4gdHlwZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy92ZXJpZnlpbmctcmVxdWVzdHMtZnJvbS1zbGFjayI+VmVyaWZ5aW5nIHJlcXVlc3RzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvb2F1dGgtc2FmZXR5Ij5TZWN1cml0eSByZWNvbW1lbmRhdGlvbnM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9zbGFjay1idXR0b24iPlNsYWNrIEJ1dHRvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NpZ24taW4td2l0aC1zbGFjayI+U2lnbiBpbiB3aXRoIFNsYWNrPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+S2VlcCBpbiB0b3VjaDwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvc3VwcG9ydCI+U3VwcG9ydCBhbmQgRGlzY3Vzc2lvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9zbGFja2FwaSIgdGFyZ2V0PSJfYmxhbmsiPkBTbGFja0FQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL3NsYWNrLWRldmVsb3Blci1ibG9nIiB0YXJnZXQ9Il9ibGFuayI+UGxhdGZvcm0gQmxvZzwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5lbmdpbmVlcmluZy8iIHRhcmdldD0iX2JsYW5rIj5TbGFjayBFbmdpbmVlcmluZyBCbG9nPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvcm9hZG1hcCI+UGxhdGZvcm0gUm9hZG1hcDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vcGFydG5lcnMiPlBhcnRuZXJpbmcgd2l0aCBTbGFjazwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlJlc291cmNlczwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgdGl0bGU9IkZyZXF1ZW50bHkgYXNrZWQgcXVlc3Rpb25zIiBocmVmPSIvZmFxIj5GQVE8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvdG9vbHMiPlNsYWNrIGRldmVsb3BlciB0b29sczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2xhbmcvamEtanAiPkFydGljbGVzIGluIEphcGFuZXNlPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+TWVzc2FnZSBidWlsZGVyPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+Q29tbXVuaXR5PC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Imh0dHBzOi8vc2xhY2tjb21tdW5pdHkuY29tP3V0bV9tZWRpdW09cmVmZXJyYWwmYW1wO3V0bV9zb3VyY2U9YXBpc2xhY2smYW1wO3V0bV9jYW1wYWlnbj1meTIwLVExMDMtc3BjbGF1bmNoIj5TbGFjayBQbGF0Zm9ybSBDb21tdW5pdHk8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvY29tbXVuaXR5Ij5CdWlsdCBieSBvdXIgY29tbXVuaXR5PC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvaG9zdGluZyI+SG9zdGluZyBQcm92aWRlcnM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9jb21tdW5pdHktY29kZS1vZi1jb25kdWN0Ij5Db2RlIG9mIENvbmR1Y3Q8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2xhY2stZnVuZCI+U2xhY2sgRnVuZDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vL3Rlcm1zLW9mLXNlcnZpY2UvYXBpIj5BUEkgVGVybXMgb2YgU2VydmljZTwvYT48L2xpPjwvdWw+PHA+PGEgZGF0YS1ndG0tY2xpY2s9IkFQSUdldEhlbHAiIGRhdGEtY2xvZy1ldmVudD0iQVBQX0RJUkVDVE9SWV9XRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9YXBpX25hdl9nZXRfaGVscF9idG4iIGhyZWY9Ii9zdXBwb3J0P3JlZj1hcGlfbmF2IiBjbGFzcz0iYnRuIj5HZXQgSGVscDwvYT48L3A+PC9kaXY+PC9uYXY+PGRpdiBpZD0iYXBpX21haW5fY29udGVudCIgY2xhc3M9ImNvbCI+PGRpdiBjbGFzcz0iZmxvYXRfcmlnaHQgc21hbGxfdG9wX21hcmdpbiIgc3R5bGU9IndpZHRoOiAzMDBweDsgbWF4LXdpZHRoOiAxMDAlOyI+PHNlbGVjdCBpZD0iYXBpX21ldGhvZCIgZGF0YS1sYXp5LWZpbHRlci1zZWxlY3Q9IjEiPjxvcHRpb24gc2VsZWN0ZWQgZGlzYWJsZWQ+VmlldyBhbm90aGVyIG1ldGhvZC4uLjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFkbWluLmFwcHMuYXBwcm92ZSI+YWRtaW4uYXBwcy5hcHByb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWRtaW4uYXBwcy5yZXF1ZXN0cy5saXN0Ij5hZG1pbi5hcHBzLnJlcXVlc3RzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZG1pbi5hcHBzLnJlc3RyaWN0Ij5hZG1pbi5hcHBzLnJlc3RyaWN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWRtaW4udXNlcnMuc2Vzc2lvbi5yZXNldCI+YWRtaW4udXNlcnMuc2Vzc2lvbi5yZXNldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwaS50ZXN0Ij5hcGkudGVzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwcHMucGVybWlzc2lvbnMuaW5mbyI+YXBwcy5wZXJtaXNzaW9ucy5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy5yZXF1ZXN0Ij5hcHBzLnBlcm1pc3Npb25zLnJlcXVlc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhcHBzLnBlcm1pc3Npb25zLnJlc291cmNlcy5saXN0Ij5hcHBzLnBlcm1pc3Npb25zLnJlc291cmNlcy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy5zY29wZXMubGlzdCI+YXBwcy5wZXJtaXNzaW9ucy5zY29wZXMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwcHMucGVybWlzc2lvbnMudXNlcnMubGlzdCI+YXBwcy5wZXJtaXNzaW9ucy51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy51c2Vycy5yZXF1ZXN0Ij5hcHBzLnBlcm1pc3Npb25zLnVzZXJzLnJlcXVlc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhcHBzLnVuaW5zdGFsbCI+YXBwcy51bmluc3RhbGw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRoLnJldm9rZSI+YXV0aC5yZXZva2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRoLnRlc3QiPmF1dGgudGVzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJvdHMuaW5mbyI+Ym90cy5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuYXJjaGl2ZSI+Y2hhbm5lbHMuYXJjaGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmNyZWF0ZSI+Y2hhbm5lbHMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuaGlzdG9yeSI+Y2hhbm5lbHMuaGlzdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmluZm8iPmNoYW5uZWxzLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5pbnZpdGUiPmNoYW5uZWxzLmludml0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmpvaW4iPmNoYW5uZWxzLmpvaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5raWNrIj5jaGFubmVscy5raWNrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMubGVhdmUiPmNoYW5uZWxzLmxlYXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMubGlzdCI+Y2hhbm5lbHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLm1hcmsiPmNoYW5uZWxzLm1hcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5yZW5hbWUiPmNoYW5uZWxzLnJlbmFtZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLnJlcGxpZXMiPmNoYW5uZWxzLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5zZXRQdXJwb3NlIj5jaGFubmVscy5zZXRQdXJwb3NlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuc2V0VG9waWMiPmNoYW5uZWxzLnNldFRvcGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMudW5hcmNoaXZlIj5jaGFubmVscy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGF0LmRlbGV0ZSI+Y2hhdC5kZWxldGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGF0LmRlbGV0ZVNjaGVkdWxlZE1lc3NhZ2UiPmNoYXQuZGVsZXRlU2NoZWR1bGVkTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuZ2V0UGVybWFsaW5rIj5jaGF0LmdldFBlcm1hbGluazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQubWVNZXNzYWdlIj5jaGF0Lm1lTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQucG9zdEVwaGVtZXJhbCI+Y2hhdC5wb3N0RXBoZW1lcmFsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC5wb3N0TWVzc2FnZSI+Y2hhdC5wb3N0TWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuc2NoZWR1bGVNZXNzYWdlIj5jaGF0LnNjaGVkdWxlTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuc2NoZWR1bGVkTWVzc2FnZXMubGlzdCI+Y2hhdC5zY2hlZHVsZWRNZXNzYWdlcy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC51bmZ1cmwiPmNoYXQudW5mdXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC51cGRhdGUiPmNoYXQudXBkYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5hcmNoaXZlIj5jb252ZXJzYXRpb25zLmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmNsb3NlIj5jb252ZXJzYXRpb25zLmNsb3NlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5jcmVhdGUiPmNvbnZlcnNhdGlvbnMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5oaXN0b3J5Ij5jb252ZXJzYXRpb25zLmhpc3Rvcnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmluZm8iPmNvbnZlcnNhdGlvbnMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuaW52aXRlIj5jb252ZXJzYXRpb25zLmludml0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuam9pbiI+Y29udmVyc2F0aW9ucy5qb2luPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5raWNrIj5jb252ZXJzYXRpb25zLmtpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmxlYXZlIj5jb252ZXJzYXRpb25zLmxlYXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5saXN0Ij5jb252ZXJzYXRpb25zLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLm1lbWJlcnMiPmNvbnZlcnNhdGlvbnMubWVtYmVyczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMub3BlbiI+Y29udmVyc2F0aW9ucy5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5yZW5hbWUiPmNvbnZlcnNhdGlvbnMucmVuYW1lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5yZXBsaWVzIj5jb252ZXJzYXRpb25zLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLnNldFB1cnBvc2UiPmNvbnZlcnNhdGlvbnMuc2V0UHVycG9zZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuc2V0VG9waWMiPmNvbnZlcnNhdGlvbnMuc2V0VG9waWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLnVuYXJjaGl2ZSI+Y29udmVyc2F0aW9ucy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkaWFsb2cub3BlbiI+ZGlhbG9nLm9wZW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkbmQuZW5kRG5kIj5kbmQuZW5kRG5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZG5kLmVuZFNub296ZSI+ZG5kLmVuZFNub296ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRuZC5pbmZvIj5kbmQuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRuZC5zZXRTbm9vemUiPmRuZC5zZXRTbm9vemU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkbmQudGVhbUluZm8iPmRuZC50ZWFtSW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImVtb2ppLmxpc3QiPmVtb2ppLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy5jb21tZW50cy5kZWxldGUiPmZpbGVzLmNvbW1lbnRzLmRlbGV0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLmRlbGV0ZSI+ZmlsZXMuZGVsZXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMuaW5mbyI+ZmlsZXMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLmxpc3QiPmZpbGVzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy5yZW1vdGUuYWRkIj5maWxlcy5yZW1vdGUuYWRkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLmluZm8iPmZpbGVzLnJlbW90ZS5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLmxpc3QiPmZpbGVzLnJlbW90ZS5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLnJlbW92ZSI+ZmlsZXMucmVtb3RlLnJlbW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLnJlbW90ZS5zaGFyZSI+ZmlsZXMucmVtb3RlLnNoYXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLnVwZGF0ZSI+ZmlsZXMucmVtb3RlLnVwZGF0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLnJldm9rZVB1YmxpY1VSTCI+ZmlsZXMucmV2b2tlUHVibGljVVJMPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMuc2hhcmVkUHVibGljVVJMIj5maWxlcy5zaGFyZWRQdWJsaWNVUkw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy51cGxvYWQiPmZpbGVzLnVwbG9hZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5hcmNoaXZlIj5ncm91cHMuYXJjaGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5jcmVhdGUiPmdyb3Vwcy5jcmVhdGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuY3JlYXRlQ2hpbGQiPmdyb3Vwcy5jcmVhdGVDaGlsZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5oaXN0b3J5Ij5ncm91cHMuaGlzdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5pbmZvIj5ncm91cHMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5pbnZpdGUiPmdyb3Vwcy5pbnZpdGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMua2ljayI+Z3JvdXBzLmtpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMubGVhdmUiPmdyb3Vwcy5sZWF2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5saXN0Ij5ncm91cHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5tYXJrIj5ncm91cHMubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5vcGVuIj5ncm91cHMub3Blbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5yZW5hbWUiPmdyb3Vwcy5yZW5hbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMucmVwbGllcyI+Z3JvdXBzLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuc2V0UHVycG9zZSI+Z3JvdXBzLnNldFB1cnBvc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuc2V0VG9waWMiPmdyb3Vwcy5zZXRUb3BpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy51bmFyY2hpdmUiPmdyb3Vwcy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5jbG9zZSI+aW0uY2xvc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5oaXN0b3J5Ij5pbS5oaXN0b3J5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaW0ubGlzdCI+aW0ubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImltLm1hcmsiPmltLm1hcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5vcGVuIj5pbS5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaW0ucmVwbGllcyI+aW0ucmVwbGllczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1pZ3JhdGlvbi5leGNoYW5nZSI+bWlncmF0aW9uLmV4Y2hhbmdlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5jbG9zZSI+bXBpbS5jbG9zZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1waW0uaGlzdG9yeSI+bXBpbS5oaXN0b3J5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5saXN0Ij5tcGltLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJtcGltLm1hcmsiPm1waW0ubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1waW0ub3BlbiI+bXBpbS5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5yZXBsaWVzIj5tcGltLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJvYXV0aC5hY2Nlc3MiPm9hdXRoLmFjY2Vzczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im9hdXRoLnRva2VuIj5vYXV0aC50b2tlbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InBpbnMuYWRkIj5waW5zLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InBpbnMubGlzdCI+cGlucy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icGlucy5yZW1vdmUiPnBpbnMucmVtb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVhY3Rpb25zLmFkZCI+cmVhY3Rpb25zLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlYWN0aW9ucy5nZXQiPnJlYWN0aW9ucy5nZXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJyZWFjdGlvbnMubGlzdCI+cmVhY3Rpb25zLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJyZWFjdGlvbnMucmVtb3ZlIj5yZWFjdGlvbnMucmVtb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVtaW5kZXJzLmFkZCI+cmVtaW5kZXJzLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5jb21wbGV0ZSI+cmVtaW5kZXJzLmNvbXBsZXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVtaW5kZXJzLmRlbGV0ZSI+cmVtaW5kZXJzLmRlbGV0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5pbmZvIj5yZW1pbmRlcnMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5saXN0Ij5yZW1pbmRlcnMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJ0bS5jb25uZWN0Ij5ydG0uY29ubmVjdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJ0bS5zdGFydCI+cnRtLnN0YXJ0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2VhcmNoLmFsbCI+c2VhcmNoLmFsbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNlYXJjaC5maWxlcyI+c2VhcmNoLmZpbGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2VhcmNoLm1lc3NhZ2VzIj5zZWFyY2gubWVzc2FnZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdGFycy5hZGQiPnN0YXJzLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InN0YXJzLmxpc3QiPnN0YXJzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdGFycy5yZW1vdmUiPnN0YXJzLnJlbW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InRlYW0uYWNjZXNzTG9ncyI+dGVhbS5hY2Nlc3NMb2dzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGVhbS5iaWxsYWJsZUluZm8iPnRlYW0uYmlsbGFibGVJbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGVhbS5pbmZvIj50ZWFtLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0ZWFtLmludGVncmF0aW9uTG9ncyI+dGVhbS5pbnRlZ3JhdGlvbkxvZ3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0ZWFtLnByb2ZpbGUuZ2V0Ij50ZWFtLnByb2ZpbGUuZ2V0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy5jcmVhdGUiPnVzZXJncm91cHMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy5kaXNhYmxlIj51c2VyZ3JvdXBzLmRpc2FibGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VyZ3JvdXBzLmVuYWJsZSI+dXNlcmdyb3Vwcy5lbmFibGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VyZ3JvdXBzLmxpc3QiPnVzZXJncm91cHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJncm91cHMudXBkYXRlIj51c2VyZ3JvdXBzLnVwZGF0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJncm91cHMudXNlcnMubGlzdCI+dXNlcmdyb3Vwcy51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy51c2Vycy51cGRhdGUiPnVzZXJncm91cHMudXNlcnMudXBkYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuY29udmVyc2F0aW9ucyI+dXNlcnMuY29udmVyc2F0aW9uczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmRlbGV0ZVBob3RvIj51c2Vycy5kZWxldGVQaG90bzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmdldFByZXNlbmNlIj51c2Vycy5nZXRQcmVzZW5jZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmlkZW50aXR5Ij51c2Vycy5pZGVudGl0eTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmluZm8iPnVzZXJzLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2Vycy5saXN0Ij51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMubG9va3VwQnlFbWFpbCI+dXNlcnMubG9va3VwQnlFbWFpbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnByb2ZpbGUuZ2V0Ij51c2Vycy5wcm9maWxlLmdldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnByb2ZpbGUuc2V0Ij51c2Vycy5wcm9maWxlLnNldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnNldEFjdGl2ZSI+dXNlcnMuc2V0QWN0aXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuc2V0UGhvdG8iPnVzZXJzLnNldFBob3RvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuc2V0UHJlc2VuY2UiPnVzZXJzLnNldFByZXNlbmNlPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGgxPmNoYXQucG9zdE1lc3NhZ2U8L2gxPjxkaXYgY2xhc3M9InRhYl9zZXQgb25fbmV1dHJhbF9ncmV5Ij48YSBocmVmPSIvbWV0aG9kcy9jaGF0LnBvc3RNZXNzYWdlIiBjbGFzcz0ic2VsZWN0ZWQiPkRvY3VtZW50YXRpb248L2E+PGEgaHJlZj0iL21ldGhvZHMvY2hhdC5wb3N0TWVzc2FnZS90ZXN0Ij5UZXN0ZXI8L2E+PC9kaXY+PHNlY3Rpb24gY2xhc3M9InRhYl9wYW5lIHNlbGVjdGVkIGNsZWFyZml4IGxhcmdlX2JvdHRvbV9wYWRkaW5nIiBkYXRhLXRhYj0iZG9jcyI+PHA+U2VuZHMgYSBtZXNzYWdlIHRvIGEgY2hhbm5lbC48L3A+PHA+PC9wPjxoMiBpZD0iZmFjdHMiPkZhY3RzPC9oMj48dGFibGUgY2xhc3M9InNtYWxsIGZ1bGxfd2lkdGggbm9fYm90dG9tX21hcmdpbiBub19ib3R0b21fcGFkZGluZyI+PHRyPjx0aCBjbGFzcz0iYWxpZ25fcmlnaHQiPk1ldGhvZCBVUkw6PC90aD48dGQ+PGNvZGU+aHR0cHM6Ly9zbGFjay5jb20vYXBpL2NoYXQucG9zdE1lc3NhZ2U8L2NvZGU+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImFsaWduX3JpZ2h0Ij5QcmVmZXJyZWQgSFRUUCBtZXRob2Q6PC90aD48dGQ+PGNvZGU+UE9TVDwvY29kZT48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iYWxpZ25fcmlnaHQiPkFjY2VwdGVkIGNvbnRlbnQgdHlwZXM6PC90aD48dGQ+PGNvZGU+YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkPC9jb2RlPiwgPGEgdGl0bGU9IkxlYXJuIG1vcmUgYWJvdXQgc2VuZGluZyBIVFRQIFBPU1Qgd2l0aCBKU09OIiBocmVmPSIvd2ViI3Bvc3RpbmdfanNvbiI+PGNvZGU+YXBwbGljYXRpb24vanNvbjwvY29kZT48L2E+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImFsaWduX3JpZ2h0Ij5SYXRlIGxpbWl0aW5nOjwvdGg+PHRkPjxzcGFuIGNsYXNzPSJyYXRlX2xpbWl0IHRpZXJfdDUiPjxhIGhyZWY9Ii9kb2NzL3JhdGUtbGltaXRzI3RpZXJfdDUiPlNwZWNpYWw8L2E+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJhbGlnbl9yaWdodCI+V29ya3Mgd2l0aDo8L3RoPjx0ZD48dGFibGUgY2xhc3M9InNtYWxsIGZ1bGxfd2lkdGggbm9fbWFyZ2luIG5vX3BhZGRpbmciPjx0ciBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPjx0aCBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPlRva2VuIHR5cGU8L3RoPjx0aCBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPlJlcXVpcmVkIHNjb3BlKHMpPC90aD48L3RyPjx0cj48dGQ+PGEgY2xhc3M9ImJ0bl9iYXNpYyBwaWxsX2J0biBidG5fc21hbGwgdG9rZW5fYm90IHRva2VuX2xpbmsiIGhyZWY9Ii9kb2NzL3Rva2VuLXR5cGVzI2JvdCI+Ym90PC9hPjwvdGQ+PHRkPjxhIGhyZWY9Ii9zY29wZXMvYm90Ij48Y29kZT5ib3Q8L2NvZGU+PC9hPjwvdGQ+PC90cj48dHI+PHRkPjxhIGNsYXNzPSJidG5fYmFzaWMgcGlsbF9idG4gYnRuX3NtYWxsIHRva2VuX3VzZXIgdG9rZW5fbGluayIgaHJlZj0iL2RvY3MvdG9rZW4tdHlwZXMjdXNlciI+dXNlcjwvYT48L3RkPjx0ZD48YSBocmVmPSIvc2NvcGVzL2NoYXQ6d3JpdGU6dXNlciI+PGNvZGU+Y2hhdDp3cml0ZTp1c2VyPC9jb2RlPjwvYT7CoCA8YSBocmVmPSIvc2NvcGVzL2NoYXQ6d3JpdGU6Ym90Ij48Y29kZT5jaGF0OndyaXRlOmJvdDwvY29kZT48L2E+wqAgPC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PGhyIGNsYXNzPSJzbWFsbF90b3BfbWFyZ2luIj48cD5UaGlzIG1ldGhvZCBwb3N0cyA8YSBocmVmPSIvZG9jcy9tZXNzYWdlcyI+YSBtZXNzYWdlPC9hPiB0byBhIHB1YmxpYyBjaGFubmVsLCBwcml2YXRlIGNoYW5uZWwsIG9yIGRpcmVjdCBtZXNzYWdlL0lNIGNoYW5uZWwuPC9wPgoKPGEgbmFtZT0iYXJndW1lbnRzIj48L2E+PGgyID5Bcmd1bWVudHM8L2gyPgoKPHRhYmxlIGNsYXNzPSJhcmd1bWVudHMgZnVsbF93aWR0aCI+IDx0cj4gPHRoPkFyZ3VtZW50PC90aD4gPHRoPkV4YW1wbGU8L3RoPiA8dGg+UmVxdWlyZWQ8L3RoPiA8dGg+RGVzY3JpcHRpb248L3RoPiA8L3RyPiA8dHI+PHRkPjxjb2RlPnRva2VuPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnh4eHgteHh4eHh4eHh4LXh4eHg8L2NvZGU+PC90ZD48dGQ+UmVxdWlyZWQ8L3RkPjx0ZD48cD5BdXRoZW50aWNhdGlvbiB0b2tlbiBiZWFyaW5nIHJlcXVpcmVkIHNjb3Blcy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmNoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PGNvZGU+QzEyMzQ1Njc4OTA8L2NvZGU+PC90ZD48dGQ+UmVxdWlyZWQ8L3RkPjx0ZD48cD5DaGFubmVsLCBwcml2YXRlIGdyb3VwLCBvciBJTSBjaGFubmVsIHRvIHNlbmQgbWVzc2FnZSB0by4gQ2FuIGJlIGFuIGVuY29kZWQgSUQsIG9yIGEgbmFtZS4gU2VlIDxhIGhyZWY9IiNjaGFubmVscyI+YmVsb3c8L2E+IGZvciBtb3JlIGRldGFpbHMuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50ZXh0PC9jb2RlPjwvdGQ+PHRkPjxjb2RlPkhlbGxvIHdvcmxkPC9jb2RlPjwvdGQ+PHRkPlJlcXVpcmVkPC90ZD48dGQ+PHA+VGV4dCBvZiB0aGUgbWVzc2FnZSB0byBzZW5kLiBTZWUgYmVsb3cgZm9yIGFuIGV4cGxhbmF0aW9uIG9mIDxhIGhyZWY9IiNmb3JtYXR0aW5nIj5mb3JtYXR0aW5nPC9hPi4gVGhpcyBmaWVsZCBpcyB1c3VhbGx5IHJlcXVpcmVkLCB1bmxlc3MgeW91J3JlIHByb3ZpZGluZyBvbmx5IDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBpbnN0ZWFkLiBQcm92aWRlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycyBvciA8YSBocmVmPSIvY2hhbmdlbG9nLzIwMTgtMDQtdHJ1bmNhdGluZy1yZWFsbHktbG9uZy1tZXNzYWdlcyI+cmlzayB0cnVuY2F0aW9uPC9hPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmFzX3VzZXI8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlBhc3MgdHJ1ZSB0byBwb3N0IHRoZSBtZXNzYWdlIGFzIHRoZSBhdXRoZWQgdXNlciwgaW5zdGVhZCBvZiBhcyBhIGJvdC4gRGVmYXVsdHMgdG8gZmFsc2UuIFNlZSA8YSBocmVmPSIjYXV0aG9yc2hpcCI+YXV0aG9yc2hpcDwvYT4gYmVsb3cuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5hdHRhY2htZW50czwvY29kZT48L3RkPjx0ZD48Y29kZT5beyZxdW90O3ByZXRleHQmcXVvdDs6ICZxdW90O3ByZS1oZWxsbyZxdW90OywgJnF1b3Q7dGV4dCZxdW90OzogJnF1b3Q7dGV4dC13b3JsZCZxdW90O31dPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsPC90ZD48dGQ+PHA+QSBKU09OLWJhc2VkIGFycmF5IG9mIHN0cnVjdHVyZWQgYXR0YWNobWVudHMsIHByZXNlbnRlZCBhcyBhIFVSTC1lbmNvZGVkIHN0cmluZy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmJsb2NrczwvY29kZT48L3RkPjx0ZD48Y29kZT5beyZxdW90O3R5cGUmcXVvdDs6ICZxdW90O3NlY3Rpb24mcXVvdDssICZxdW90O3RleHQmcXVvdDs6IHsmcXVvdDt0eXBlJnF1b3Q7OiAmcXVvdDtwbGFpbl90ZXh0JnF1b3Q7LCAmcXVvdDt0ZXh0JnF1b3Q7OiAmcXVvdDtIZWxsbyB3b3JsZCZxdW90O319XTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkEgSlNPTi1iYXNlZCBhcnJheSBvZiBzdHJ1Y3R1cmVkIGJsb2NrcywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aWNvbl9lbW9qaTwvY29kZT48L3RkPjx0ZD48Y29kZT46Y2hhcnRfd2l0aF91cHdhcmRzX3RyZW5kOjwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkVtb2ppIHRvIHVzZSBhcyB0aGUgaWNvbiBmb3IgdGhpcyBtZXNzYWdlLiBPdmVycmlkZXMgPGNvZGU+aWNvbl91cmw8L2NvZGU+LiBNdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCA8Y29kZT5hc191c2VyPC9jb2RlPiBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIDxhIGhyZWY9IiNhdXRob3JzaGlwIj5hdXRob3JzaGlwPC9hPiBiZWxvdy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmljb25fdXJsPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPmh0dHA6Ly9sb3JlbXBpeGVsLmNvbS80OC80ODwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlVSTCB0byBhbiBpbWFnZSB0byB1c2UgYXMgdGhlIGljb24gZm9yIHRoaXMgbWVzc2FnZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPGNvZGU+YXNfdXNlcjwvY29kZT4gc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIDxhIGhyZWY9IiNhdXRob3JzaGlwIj5hdXRob3JzaGlwPC9hPiBiZWxvdy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmxpbmtfbmFtZXM8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkZpbmQgYW5kIGxpbmsgY2hhbm5lbCBuYW1lcyBhbmQgdXNlcm5hbWVzLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bXJrZHduPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPmZhbHNlPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsLCBkZWZhdWx0PXRydWU8L3RkPjx0ZD48cD5EaXNhYmxlIFNsYWNrIG1hcmt1cCBwYXJzaW5nIGJ5IHNldHRpbmcgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LiBFbmFibGVkIGJ5IGRlZmF1bHQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5wYXJzZTwvY29kZT48L3RkPjx0ZD48Y29kZT5mdWxsPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsPC90ZD48dGQ+PHA+Q2hhbmdlIGhvdyBtZXNzYWdlcyBhcmUgdHJlYXRlZC4gRGVmYXVsdHMgdG8gPGNvZGU+bm9uZTwvY29kZT4uIFNlZSA8YSBocmVmPSIjZm9ybWF0dGluZyI+YmVsb3c8L2E+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVwbHlfYnJvYWRjYXN0PC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnRydWU8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5Vc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPGNvZGU+dGhyZWFkX3RzPC9jb2RlPiBhbmQgaW5kaWNhdGVzIHdoZXRoZXIgcmVwbHkgc2hvdWxkIGJlIG1hZGUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCBvciBjb252ZXJzYXRpb24uIERlZmF1bHRzIHRvIDxjb2RlPmZhbHNlPC9jb2RlPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPnRocmVhZF90czwvY29kZT48L3RkPjx0ZD48Y29kZT4xMjM0NTY3ODkwLjEyMzQ1NjwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlByb3ZpZGUgYW5vdGhlciBtZXNzYWdlJ3MgPGNvZGU+dHM8L2NvZGU+IHZhbHVlIHRvIG1ha2UgdGhpcyBtZXNzYWdlIGEgcmVwbHkuIEF2b2lkIHVzaW5nIGEgcmVwbHkncyA8Y29kZT50czwvY29kZT4gdmFsdWU7IHVzZSBpdHMgcGFyZW50IGluc3RlYWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51bmZ1cmxfbGlua3M8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlBhc3MgdHJ1ZSB0byBlbmFibGUgdW5mdXJsaW5nIG9mIHByaW1hcmlseSB0ZXh0LWJhc2VkIGNvbnRlbnQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51bmZ1cmxfbWVkaWE8L2NvZGU+PC90ZD48dGQ+PGNvZGU+ZmFsc2U8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5QYXNzIGZhbHNlIHRvIGRpc2FibGUgdW5mdXJsaW5nIG9mIG1lZGlhIGNvbnRlbnQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51c2VybmFtZTwvY29kZT48L3RkPjx0ZD48Y29kZT5NeSBCb3Q8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5TZXQgeW91ciBib3QncyB1c2VyIG5hbWUuIE11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHNldCB0byBmYWxzZSwgb3RoZXJ3aXNlIGlnbm9yZWQuIFNlZSA8YSBocmVmPSIjYXV0aG9yc2hpcCI+YXV0aG9yc2hpcDwvYT4gYmVsb3cuPC9wPgo8L3RkPjwvdHI+PC90YWJsZT48cCBjbGFzcz0iYWxlcnQgYWxlcnRfaW5mbyI+PHRzLWljb24gY2xhc3M9InRzX2ljb25fY29kZSI+PC90cy1pY29uPlRoaXMgbWV0aG9kIHN1cHBvcnRzIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IHZpYSBIVFRQIFBPU1QuIFByZXNlbnQgeW91ciA8Y29kZT50b2tlbjwvY29kZT4gaW4geW91ciByZXF1ZXN0J3MgPGNvZGU+QXV0aG9yaXphdGlvbjwvY29kZT4gaGVhZGVyLiA8YSBocmVmPSIvd2ViI3Bvc3RpbmdfanNvbiI+TGVhcm4gbW9yZTwvYT4uPC9wPgoKPHA+UGxlYXNlIG5vdGUgdGhhdCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgPGNvZGU+YXNfdXNlcjwvY29kZT4gcGFyYW1ldGVyIHZhcmllcyBkZXBlbmRpbmcgb24gdGhlIGtpbmQgb2YgdG9rZW4geW91J3JlIHVzaW5nLiBJdCdzIGJlc3QgdG8gYmUgZXhwbGljaXQgd2l0aCB0aGlzIHZhbHVlLiBSZWFkIG1vcmUgYWJvdXQgPGEgaHJlZj0iI2F1dGhvcnNoaXAiPkF1dGhvcnNoaXA8L2E+IHRvIHVuZGVyc3RhbmQgaG93IGl0cyBkZWZhdWx0IHZhbHVlIG1heSB2YXJ5LjwvcD4KCjxwPkEgbWVzc2FnZSBtdXN0IGhhdmUgZWl0aGVyIDxjb2RlPnRleHQ8L2NvZGU+IG9yIDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBvciBib3RoLiBUaGUgPGNvZGU+dGV4dDwvY29kZT4gcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHVubGVzcyB5b3UgcHJvdmlkZSA8Y29kZT5hdHRhY2htZW50czwvY29kZT4uIFlvdSBjYW4gdXNlIGJvdGggcGFyYW1ldGVycyBpbiBjb25qdW5jdGlvbiB3aXRoIGVhY2ggb3RoZXIgdG8gY3JlYXRlIGF3ZXNvbWUgbWVzc2FnZXMuPC9wPgoKPGEgbmFtZT0ianNvbl9wb3N0X3N1cHBvcnQiPjwvYT48aDMgPkpTT04gUE9TVCBzdXBwb3J0PC9oMz4KCjxwPkFzIG9mIE9jdG9iZXIgMjAxNywgaXQncyBub3cgcG9zc2libGUgdG8gc2VuZCBhIHdlbGwtZm9ybWF0dGVkIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IFBPU1QgYm9keSB0byA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiBhbmQgb3RoZXIgPGEgaHJlZj0iL3dlYiI+V2ViIEFQSTwvYT4gd3JpdGUgbWV0aG9kcy4gTm8gbmVlZCB0byBjYXJlZnVsbHkgVVJMLWVuY29kZSB5b3VyIEpTT04gPGNvZGU+YXR0YWNobWVudHM8L2NvZGU+IGFuZCBwcmVzZW50IGFsbCBvdGhlciBmaWVsZHMgYXMgVVJMIGVuY29kZWQga2V5L3ZhbHVlIHBhaXJzOyBqdXN0IHNlbmQgSlNPTiBpbnN0ZWFkLjwvcD4KCjxwPk5vdyB5b3UgY2FuIHNlbmQgbWVzc2FnZXMgbG92aW5nbHkgYXV0aG9yZWQgd2l0aCB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+bWVzc2FnZSBidWlsZGVyPC9hPiB0byA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiB3aXRob3V0IGZ1cnRoZXIgbW9kaWZpY2F0aW9uLjwvcD4KCjxwPkxlYXJuIG1vcmUgYWJvdXQgdGhpcyBzdXBwb3J0IGluIHRoZSA8YSBocmVmPSIvd2ViIj5XZWIgQVBJPC9hPiBkb2NzIG9yIDxhIGhyZWY9Ii9jaGFuZ2Vsb2cvMjAxNy0xMC1rZWVwaW5nLXVwLXdpdGgtdGhlLWpzb25zIj50aGlzIGNoYW5nZWxvZzwvYT4uPC9wPgoKPGEgbmFtZT0icmVzcG9uc2UiPjwvYT48aDIgPlJlc3BvbnNlPC9oMj4KCjxkaXY+PHA+PHA+VHlwaWNhbCBzdWNjZXNzIHJlc3BvbnNlPC9wPgo8L3A+PHByZT48Y29kZSBjbGFzcz0ianNvbiI+ewogICAgJnF1b3Q7b2smcXVvdDs6IHRydWUsCiAgICAmcXVvdDtjaGFubmVsJnF1b3Q7OiAmcXVvdDtDMUg5UkVTR0wmcXVvdDssCiAgICAmcXVvdDt0cyZxdW90OzogJnF1b3Q7MTUwMzQzNTk1Ni4wMDAyNDcmcXVvdDssCiAgICAmcXVvdDttZXNzYWdlJnF1b3Q7OiB7CiAgICAgICAgJnF1b3Q7dGV4dCZxdW90OzogJnF1b3Q7SGVyZSdzIGEgbWVzc2FnZSBmb3IgeW91JnF1b3Q7LAogICAgICAgICZxdW90O3VzZXJuYW1lJnF1b3Q7OiAmcXVvdDtlY3RvMSZxdW90OywKICAgICAgICAmcXVvdDtib3RfaWQmcXVvdDs6ICZxdW90O0IxOUxVN0NTWSZxdW90OywKICAgICAgICAmcXVvdDthdHRhY2htZW50cyZxdW90OzogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAmcXVvdDt0ZXh0JnF1b3Q7OiAmcXVvdDtUaGlzIGlzIGFuIGF0dGFjaG1lbnQmcXVvdDssCiAgICAgICAgICAgICAgICAmcXVvdDtpZCZxdW90OzogMSwKICAgICAgICAgICAgICAgICZxdW90O2ZhbGxiYWNrJnF1b3Q7OiAmcXVvdDtUaGlzIGlzIGFuIGF0dGFjaG1lbnQncyBmYWxsYmFjayZxdW90OwogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAmcXVvdDt0eXBlJnF1b3Q7OiAmcXVvdDttZXNzYWdlJnF1b3Q7LAogICAgICAgICZxdW90O3N1YnR5cGUmcXVvdDs6ICZxdW90O2JvdF9tZXNzYWdlJnF1b3Q7LAogICAgICAgICZxdW90O3RzJnF1b3Q7OiAmcXVvdDsxNTAzNDM1OTU2LjAwMDI0NyZxdW90OwogICAgfQp9PC9jb2RlPjwvcHJlPjwvZGl2PjxkaXY+PHA+PHA+VHlwaWNhbCBlcnJvciByZXNwb25zZSBpZiB0b28gbWFueSBhdHRhY2htZW50cyBhcmUgaW5jbHVkZWQ8L3A+CjwvcD48cHJlPjxjb2RlIGNsYXNzPSJqc29uIj57CiAgICAmcXVvdDtvayZxdW90OzogZmFsc2UsCiAgICAmcXVvdDtlcnJvciZxdW90OzogJnF1b3Q7dG9vX21hbnlfYXR0YWNobWVudHMmcXVvdDsKfTwvY29kZT48L3ByZT48L2Rpdj4KCjxwPlRoZSByZXNwb25zZSBpbmNsdWRlcyB0aGUgInRpbWVzdGFtcCBJRCIgKDxjb2RlPnRzPC9jb2RlPikgYW5kIHRoZSBjaGFubmVsLWxpa2UgdGhpbmcgd2hlcmUgdGhlIG1lc3NhZ2Ugd2FzIHBvc3RlZC4gSXQgYWxzbyBpbmNsdWRlcyB0aGUgY29tcGxldGUgbWVzc2FnZSBvYmplY3QsIGFzIHBhcnNlZCBieSBvdXIgc2VydmVycy4gVGhpcyBtYXkgZGlmZmVyIGZyb20gdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcyBvdXIgc2VydmVycyBzYW5pdGl6ZSBsaW5rcywgYXR0YWNobWVudHMsIGFuZCBvdGhlciBwcm9wZXJ0aWVzLiBZb3VyIG1lc3NhZ2UgbWF5IG11dGF0ZS48L3A+Cgo8cD48YSBuYW1lPSJmb3JtYXR0aW5nIj48L2E+PC9wPgoKPGEgbmFtZT0iZm9ybWF0dGluZ19tZXNzYWdlcyI+PC9hPjxoMiA+Rm9ybWF0dGluZyBtZXNzYWdlczwvaDI+Cgo8cD5NZXNzYWdlcyBhcmUgZm9ybWF0dGVkIGFzIGRlc2NyaWJlZCBpbiB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZS1mb3JtYXR0aW5nIj5mb3JtYXR0aW5nIHNwZWM8L2E+LiBZb3UgY2FuIHNwZWNpZnkgdmFsdWVzIGZvciA8Y29kZT5wYXJzZTwvY29kZT4gYW5kIDxjb2RlPmxpbmtfbmFtZXM8L2NvZGU+IHRvIGNoYW5nZSBmb3JtYXR0aW5nIGJlaGF2aW9yLjwvcD4KCjxwPldoZW4gUE9TVGluZyB3aXRoIDxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT4gZGF0YSwgdGhlIG9wdGlvbmFsIDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBhcmd1bWVudCBzaG91bGQgY29udGFpbiBhIEpTT04tZW5jb2RlZCBhcnJheSBvZiBhdHRhY2htZW50cy4gTWFrZSBpdCBlYXN5IG9uIHlvdXJzZWxmIGFuZCBzZW5kIHlvdXIgZW50aXJlIG1lc3NhZ2VzIGFzIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IGluc3RlYWQuPC9wPgoKPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZS1hdHRhY2htZW50cyI+YXR0YWNobWVudHMgc3BlYzwvYT4uIElmIHlvdSdyZSB1c2luZyBhIDxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBhcHA8L2E+LCB5b3UgY2FuIGFsc28gdXNlIHRoaXMgbWV0aG9kIHRvIGF0dGFjaCA8YSBocmVmPSIvZG9jcy9tZXNzYWdlLWJ1dHRvbnMiPm1lc3NhZ2UgYnV0dG9uczwvYT4uPC9wPgoKPHA+QnkgZGVmYXVsdCBsaW5rcyB0byBtZWRpYSBhcmUgdW5mdXJsZWQsIGJ1dCBsaW5rcyB0byB0ZXh0IGNvbnRlbnQgYXJlIG5vdC4gRm9yCm1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGRpZmZlcmVuY2VzIGFuZCBob3cgdG8gY29udHJvbCB0aGlzLCBzZWUgdGhlCjxhIGhyZWY9Ii9kb2NzL21lc3NhZ2UtYXR0YWNobWVudHMjdW5mdXJsaW5nIj50aGUgdW5mdXJsaW5nIGRvY3VtZW50YXRpb248L2E+LjwvcD4KCjxwPlVzZSB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+PHN0cm9uZz5NZXNzYWdlIEJ1aWxkZXI8L3N0cm9uZz48L2E+IHRvIHByZXZpZXcgeW91ciBtZXNzYWdlIGZvcm1hdHRpbmcgYW5kIGF0dGFjaG1lbnRzIGluIHJlYWwgdGltZSEgSXQncyBlYXN5IHRvIHRyYW5zbGF0ZSB5b3VyIEpTT04gZXhhbXBsZXMgdG8gdGhlIHBhcmFtZXRlcnMgdW5kZXJzdG9vZCBieSA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPi48L3A+Cgo8cD5Gb3IgYmVzdCByZXN1bHRzLCBsaW1pdCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIDxjb2RlPnRleHQ8L2NvZGU+IGZpZWxkIHRvIDQsMDAwIGNoYXJhY3RlcnMuIElkZWFsbHksIG1lc3NhZ2VzIHNob3VsZCBiZSBzaG9ydCBhbmQgaHVtYW4tcmVhZGFibGUuIFNsYWNrIHdpbGwgPGEgaHJlZj0iL2NoYW5nZWxvZy8yMDE4LXRydW5jYXRpbmctcmVhbGx5LWxvbmctbWVzc2FnZXMiPnRydW5jYXRlIG1lc3NhZ2VzPC9hPiBjb250YWluaW5nIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycy48L3A+Cgo8cD5JZiB5b3UgbmVlZCB0byBwb3N0IGxvbmdlciBtZXNzYWdlcywgcGxlYXNlIGNvbnNpZGVyIDxhIGhyZWY9Ii9tZXRob2RzL2ZpbGVzLnVwbG9hZCI+dXBsb2FkaW5nIGEgc25pcHBldCBpbnN0ZWFkPC9hPi48L3A+Cgo8cD5Db25zaWRlciByZXZpZXdpbmcgb3VyIDxhIGhyZWY9Ii9kb2NzL21lc3NhZ2UtZ3VpZGVsaW5lcyI+bWVzc2FnZSBndWlkZWxpbmVzPC9hPiwgZXNwZWNpYWxseSBpZiB5b3UncmUgdXNpbmcgYXR0YWNobWVudHMgb3IgbWVzc2FnZSBidXR0b25zLjwvcD4KCjxhIG5hbWU9ImF1dGhvcnNoaXAiPjwvYT48aDIgPkF1dGhvcnNoaXA8L2gyPgoKPHA+SG93IG1lc3NhZ2UgYXV0aG9yc2hpcCBpcyBhdHRyaWJ1dGVkIHZhcmllcyBieSBhIGZldyBmYWN0b3JzLCB3aXRoIHNvbWUgYmVoYXZpb3JzIHZhcnlpbmcgZGVwZW5kaW5nIG9uIHRoZSBraW5kcyBvZiB0b2tlbnMgeW91J3JlIHVzaW5nIHRvIHBvc3QgYSBtZXNzYWdlLjwvcD4KCjxwPlRoZSBiZXN0IHdheSB0byByZWFsaXplIHlvdXIgaW50ZW5kZWQgcmVzdWx0IGlzIHRvIGJlIGV4cGxpY2l0IHdpdGggdGhlIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHBhcmFtZXRlci48L3A+Cgo8cD48Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiB3YW50cyB5b3VyIG1lc3NhZ2UgcG9zdGluZyB0byBzdWNjZWVkIGFuZCBtYXkgYXR0ZW1wdCB0byBndWVzcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSA8Y29kZT5hc191c2VyPC9jb2RlPiBpbnRlcnByZXRhdGlvbiBiYXNlZCBvbiB0aGUga2luZCBvZiB0b2tlbiB5b3UncmUgdXNpbmcuPC9wPgoKPHA+SWYgPGNvZGU+YXNfdXNlcjwvY29kZT4gaXMgbm90IHByb3ZpZGVkIGF0IGFsbCwgdGhlbiB0aGUgdmFsdWUgaXMgaW5mZXJyZWQsIGJhc2VkIG9uIHRoZSBzY29wZXMgZ3JhbnRlZCB0byB0aGUgY2FsbGVyOiBJZiB0aGUgY2FsbGVyIDxlbT5jb3VsZDwvZW0+IHBvc3Qgd2l0aCA8Y29kZT5hc191c2VyPC9jb2RlPiBwYXNzZWQgYXMgPGNvZGU+ZmFsc2U8L2NvZGU+LCB0aGVuIHRoYXQgaXMgaG93IHRoZSBtZXRob2QgYmVoYXZlczsgb3RoZXJ3aXNlLCB0aGUgbWV0aG9kIGJlaGF2ZXMKYXMgaWYgPGNvZGU+YXNfdXNlcjwvY29kZT4gd2VyZSBwYXNzZWQgYXMgPGNvZGU+dHJ1ZTwvY29kZT4uPC9wPgoKPGEgbmFtZT0id2hlbl9hc191c2VyX2lzX2ZhbHNlIj48L2E+PGgzID5XaGVuIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIGZhbHNlPC9oMz4KCjxwPldoZW4gdGhlIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHBhcmFtZXRlciBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LCBtZXNzYWdlcyBhcmUgcG9zdGVkIGFzICI8YSBocmVmPSIvZXZlbnRzL21lc3NhZ2UvYm90X21lc3NhZ2UiPjxjb2RlPmJvdF9tZXNzYWdlczwvY29kZT48L2E+Iiwgd2l0aCBtZXNzYWdlIGF1dGhvcnNoaXAgYXR0cmlidXRlZCB0byB0aGUgdXNlciBuYW1lIGFuZCBpY29ucyBhc3NvY2lhdGVkIHdpdGggdGhlIDxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHA8L2E+LjwvcD4KCjxwPldpdGggPGNvZGU+YXNfdXNlcjwvY29kZT4gc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiwgeW91IG1heSBhbHNvIHByb3ZpZGUgYSA8Y29kZT51c2VybmFtZTwvY29kZT4gdG8gZXhwbGljaXRseSBzcGVjaWZ5IHRoZSBib3QgdXNlcidzIGlkZW50aXR5IGZvciB0aGlzIG1lc3NhZ2UsIGFsb25nIHdpdGggPGNvZGU+aWNvbl91cmw8L2NvZGU+IG9yIDxjb2RlPmljb25fZW1vamk8L2NvZGU+LjwvcD4KCjxoNT5FZmZlY3Qgb24gaWRlbnRpdHk8L2g1PgoKPHA+VG9rZW4gdHlwZXMgcHJvdmlkZSB2YXJ5aW5nIGRlZmF1bHQgaWRlbnRpdHkgdmFsdWVzIGZvciA8Y29kZT51c2VybmFtZTwvY29kZT4sIDxjb2RlPmljb25fdXJsPC9jb2RlPiwgYW5kIDxjb2RlPmljb25fZW1vamk8L2NvZGU+LjwvcD4KCjx1bD4KPGxpPjxhIGhyZWY9Ii9kb2NzL29hdXRoLXRlc3QtdG9rZW5zIj50ZXN0IHRva2VuczwvYT4KCjx1bD4KPGxpPmdlbmVyaWMgdXNlciBpY29uIGFuZCAiYm90IiB1c2VybmFtZTwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHAgdXNlciB0b2tlbjwvYT4gd2l0aCA8YSBocmVmPSIvZG9jcy9vYXV0aC1zY29wZXMiPjxjb2RlPmNoYXQ6d3JpdGU6Ym90PC9jb2RlPjwvYT4KCjx1bD4KPGxpPmluaGVyaXRzIFNsYWNrIEFwcCdzIGljb24sIHdpdGggZ2VuZXJpYyAiYm90IiB1c2VybmFtZSAoc2VlIGJlbG93KTwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9ib3QtdXNlcnMjc2hhcmVfeW91cl9ib3RfdXNlcl9hc19hX3NsYWNrX2FwcCI+U2xhY2sgQXBwIGJvdCB1c2VyIHRva2VuPC9hPgoKPHVsPgo8bGk+aW5oZXJpdHMgU2xhY2sgQXBwJ3MgaWNvbiwgd2l0aCBnZW5lcmljICJib3QiIHVzZXJuYW1lIChzZWUgYmVsb3cpPC9saT4KPC91bD48L2xpPgo8L3VsPgoKPGJsb2NrcXVvdGU+CiAgPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBJbiB0aGUgU2xhY2sgQXBwIGNhc2VzIGFib3ZlLCBpdCB3b3VsZCBjZXJ0YWlubHkgbWFrZSBtb3JlIHNlbnNlIGZvciB5b3VyIGFwcGxpY2F0aW9uJ3MgbmFtZSB0byBiZSB0aGUgZGVmYXVsdCA8Y29kZT51c2VybmFtZTwvY29kZT4gYXNzb2NpYXRlZCB3aXRoIHlvdXIgYXBwLiBUaGlzIGluY29uc2lzdGVudCBiZWhhdmlvciB3aWxsIGJlIGNvcnJlY3RlZC4gT2YgY291cnNlLCB5b3UgY2FuIHN0aWxsIG5hbWUgeW91ciBib3QgImJvdCwiIGlmIHRoYXQgaXMgeW91ciBib3QncyBuYW1lLjwvcD4KPC9ibG9ja3F1b3RlPgoKPGEgbmFtZT0id2hlbl9hc191c2VyX2lzX3RydWUiPjwvYT48aDMgPldoZW4gPGNvZGU+YXNfdXNlcjwvY29kZT4gaXMgdHJ1ZTwvaDM+Cgo8cD5TZXQgPGNvZGU+YXNfdXNlcjwvY29kZT4gdG8gPGNvZGU+dHJ1ZTwvY29kZT4gYW5kIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgd2lsbCBhcHBlYXIgYXMgdGhlIGF1dGhvciBvZiB0aGUgbWVzc2FnZSwgaWdub3JpbmcgYW55IHZhbHVlcyBwcm92aWRlZCBmb3IgPGNvZGU+dXNlcm5hbWU8L2NvZGU+LCA8Y29kZT5pY29uX3VybDwvY29kZT4sIGFuZCA8Y29kZT5pY29uX2Vtb2ppPC9jb2RlPi4gUG9zdGluZyBhcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gdGhlCjxjb2RlPmNsaWVudDwvY29kZT4gb3IgdGhlIG1vcmUgcHJlZmVycmVkIDxjb2RlPmNoYXQ6d3JpdGU6dXNlcjwvY29kZT4gPGEgaHJlZj0iL2RvY3Mvb2F1dGgjYXV0aF9zY29wZXMiPnNjb3BlczwvYT4uPC9wPgoKPGg1PkVmZmVjdCBvbiBpZGVudGl0eTwvaDU+Cgo8cD5Ub2tlbiB0eXBlcyBwcm92aWRlIHZhcnlpbmcgZGVmYXVsdCBpZGVudGl0eSB2YWx1ZXMgZm9yIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiwgPGNvZGU+aWNvbl91cmw8L2NvZGU+LCBhbmQgPGNvZGU+aWNvbl9lbW9qaTwvY29kZT4uPC9wPgoKPHVsPgo8bGk+PGEgaHJlZj0iL2RvY3Mvb2F1dGgtdGVzdC10b2tlbnMiPnRlc3QgdG9rZW5zPC9hPgoKPHVsPgo8bGk+aW5oZXJpdHMgdGhlIGljb24gYW5kIHVzZXJuYW1lIG9mIHRoZSB0b2tlbiBvd25lcjwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHAgdXNlciB0b2tlbjwvYT4gd2l0aCA8YSBocmVmPSIvZG9jcy9vYXV0aC1zY29wZXMiPjxjb2RlPmNoYXQ6d3JpdGU6dXNlcjwvY29kZT48L2E+Cgo8dWw+CjxsaT5pbmhlcml0cyBpY29uIGFuZCB1c2VybmFtZSBvZiB0aGUgdG9rZW4gb3duZXI8L2xpPgo8L3VsPjwvbGk+CjxsaT48YSBocmVmPSIvYm90LXVzZXJzI3NoYXJlX3lvdXJfYm90X3VzZXJfYXNfYV9zbGFja19hcHAiPlNsYWNrIEFwcCBib3QgdXNlciB0b2tlbjwvYT4KCjx1bD4KPGxpPmluaGVyaXRzIFNsYWNrIEFwcCdzIGljb24gYW5kIGFwcCdzIGJvdCB1c2VybmFtZTwvbGk+CjwvdWw+PC9saT4KPC91bD4KCjxhIG5hbWU9InRocmVhZHNfYW5kX3JlcGxpZXMiPjwvYT48aDIgPlRocmVhZHMgYW5kIHJlcGxpZXM8L2gyPgoKPHA+UHJvdmlkZSBhIDxjb2RlPnRocmVhZF90czwvY29kZT4gdmFsdWUgZm9yIHRoZSBwb3N0ZWQgbWVzc2FnZSB0byBhY3QgYXMgYSByZXBseSB0byBhIHBhcmVudCBtZXNzYWdlLiBTcGFyaW5nbHkgc2V0IDxjb2RlPnJlcGx5X2Jyb2FkY2FzdDwvY29kZT4gdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgeW91ciByZXBseSBpcyBpbXBvcnRhbnQgZW5vdWdoIGZvciBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCB0byByZWNlaXZlLjwvcD4KCjxwPlNlZSA8YSBocmVmPSIvZG9jcy9tZXNzYWdlLXRocmVhZGluZyI+bWVzc2FnZSB0aHJlYWRpbmc8L2E+IGZvciBhIG1vcmUgaW4gZGVwdGggbG9vayBhdCBtZXNzYWdlIHRocmVhZGluZy48L3A+Cgo8YSBuYW1lPSJjaGFubmVscyI+PC9hPjxoMiA+Q2hhbm5lbHM8L2gyPgoKPHA+WW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGEgcHVibGljIGNoYW5uZWwsIHByaXZhdGUgY2hhbm5lbCwgb3IgYW4gSU0gY2hhbm5lbCB3aXRoIHRoZSA8Y29kZT5jaGFubmVsPC9jb2RlPiBhcmd1bWVudC4gRWFjaCBvbmUgYmVoYXZlcyBzbGlnaHRseSBkaWZmZXJlbnRseSBiYXNlZCBvbiB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgcGVybWlzc2lvbnMgYW5kIGFkZGl0aW9uYWwgYXJndW1lbnRzOjwvcD4KCjxhIG5hbWU9InBvc3RfdG9fYV9wdWJsaWNfY2hhbm5lbCI+PC9hPjxoNCA+UG9zdCB0byBhIHB1YmxpYyBjaGFubmVsPC9oND4KCjxwPllvdSBjYW4gZWl0aGVyIHBhc3MgdGhlIGNoYW5uZWwncyBuYW1lICg8Y29kZT4jZ2VuZXJhbDwvY29kZT4pIG9yIGVuY29kZWQgSUQgKDxjb2RlPkMwMjRCRTkxTDwvY29kZT4pLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQgdG8gdGhhdCBjaGFubmVsLiBUaGUgY2hhbm5lbCdzIElEIGNhbiBiZSByZXRyaWV2ZWQgdGhyb3VnaCB0aGUgPGEgaHJlZj0iL21ldGhvZHMvY2hhbm5lbHMubGlzdCI+Y2hhbm5lbHMubGlzdDwvYT4gQVBJIG1ldGhvZC48L3A+Cgo8YSBuYW1lPSJwb3N0X3RvX2FfcHJpdmF0ZV9ncm91cCI+PC9hPjxoNCA+UG9zdCB0byBhIHByaXZhdGUgZ3JvdXA8L2g0PgoKPHA+QXMgbG9uZyBhcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGlzIGEgbWVtYmVyIG9mIHRoZSBwcml2YXRlIGdyb3VwLCB5b3UgY2FuIGVpdGhlciBwYXNzIHRoZSBncm91cCdzIG5hbWUgKDxjb2RlPnNlY3JldC1ncm91cDwvY29kZT4pIG9yIGVuY29kZWQgSUQgKDxjb2RlPkcwMTJBQzg2QzwvY29kZT4pLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQgdG8gdGhhdCBncm91cC4gVGhlIHByaXZhdGUgZ3JvdXAncyBJRCBjYW4gYmUgcmV0cmlldmVkIHRocm91Z2ggdGhlIDxhIGhyZWY9Ii9tZXRob2RzL2dyb3Vwcy5saXN0Ij5ncm91cHMubGlzdDwvYT4gQVBJIG1ldGhvZC48L3A+Cgo8YSBuYW1lPSJwb3N0X3RvX2FuX2ltX2NoYW5uZWwiPjwvYT48aDQgPlBvc3QgdG8gYW4gSU0gY2hhbm5lbDwvaDQ+Cgo8cD5XYXJuaW5nOiBoZXJlIGJlIGRyYWdvbnMuIFBvc3RpbmcgdG8gYW4gSU0gY2hhbm5lbCBpcyBhIGxpdHRsZSBtb3JlIGNvbXBsZXggZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiA8Y29kZT5hc191c2VyPC9jb2RlPiBhbmQgdGhlIHR5cGUgb2YgdG9rZW4gYXNzb2NpYXRlZCB3aXRoIHlvdXIgYXBwLjwvcD4KCjx1bD4KPGxpPklmIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIGZhbHNlOgoKPHVsPgo8bGk+UGFzcyB0aGUgSU0gY2hhbm5lbCdzIElEICg8Y29kZT5EMDIzQkIzTDI8L2NvZGU+KSBhcyB0aGUgdmFsdWUgb2YgPGNvZGU+Y2hhbm5lbDwvY29kZT4gdG8gcG9zdCB0byB0aGF0IElNIGNoYW5uZWwgPGVtPmFzIHRoZSBhcHAsIGJvdCwgb3IgdXNlciBhc3NvY2lhdGVkIHdpdGggdGhlIHRva2VuPC9lbT4uIFlvdSBjYW4gY2hhbmdlIHRoZSBpY29uIGFuZCB1c2VybmFtZSB0aGF0IGdvIHdpdGggdGhlIG1lc3NhZ2UgdXNpbmcgdGhlIDxjb2RlPmljb25fdXJsPC9jb2RlPiBhbmQgPGNvZGU+dXNlcm5hbWU8L2NvZGU+IHBhcmFtZXRlcnMuIFRoZSBJTSBjaGFubmVsJ3MgSUQgY2FuIGJlIHJldHJpZXZlZCB0aHJvdWdoIHRoZSA8YSBocmVmPSIvbWV0aG9kcy9pbS5saXN0Ij5pbS5saXN0PC9hPiBBUEkgbWV0aG9kLjwvbGk+CjwvdWw+PC9saT4KPGxpPklmIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIHRydWUgKGZvciB3b3Jrc3BhY2UgYXBwcywgdGhpcyBpcyBhbHdheXMgdGhlIGNhc2UpOgoKPHVsPgo8bGk+UGFzcyB0aGUgSU0gY2hhbm5lbCdzIElEICg8Y29kZT5EMDIzQkIzTDI8L2NvZGU+KSBvciBhIHVzZXIncyBJRCAoPGNvZGU+VTBHOVFGOUM2PC9jb2RlPikgYXMgdGhlIHZhbHVlIG9mIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHRvIHBvc3QgdG8gdGhhdCBJTSBjaGFubmVsIDxlbT5hcyB0aGUgYXBwLCBib3QsIG9yIHVzZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSB0b2tlbjwvZW0+LiBUaGUgSU0gY2hhbm5lbCdzIElEIGNhbiBiZSByZXRyaWV2ZWQgdGhyb3VnaCB0aGUgPGEgaHJlZj0iL21ldGhvZHMvaW0ubGlzdCI+aW0ubGlzdDwvYT4gQVBJIG1ldGhvZC4gV2hlbiA8Y29kZT5hc191c2VyPC9jb2RlPiBpcyB0cnVlLCB0aGUgY2FsbGVyIG1heSA8ZW0+bm90PC9lbT4gbWFuaXB1bGF0ZSB0aGUgaWNvbiBhbmQgdXNlcm5hbWUgb24gdGhlIG1lc3NhZ2UuCllvdSBtaWdodCByZWNlaXZlIGEgPGNvZGU+Y2hhbm5lbF9ub3RfZm91bmQ8L2NvZGU+IGVycm9yIGlmIHlvdXIgYXBwIGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGVudGVyIGludG8gYW4gSU0gd2l0aCB0aGUgaW50ZW5kZWQgdXNlci48L2xpPgo8L3VsPjwvbGk+CjwvdWw+Cgo8cD5UbyBzZW5kIGEgZGlyZWN0IG1lc3NhZ2UgdG8gdGhlIHVzZXIgPGVtPm93bmluZzwvZW0+IHRoZSB0b2tlbiB1c2VkIGluIHRoZSByZXF1ZXN0LCBwcm92aWRlIHRoZSA8Y29kZT5jaGFubmVsPC9jb2RlPiBmaWVsZCB3aXRoIGEgY29udmVyc2F0aW9uL0lNIElEIHZhbHVlIGZvdW5kIGluIGEgbWV0aG9kIGxpa2UgPGEgaHJlZj0iL21ldGhvZHMvaW0ubGlzdCI+PGNvZGU+aW0ubGlzdDwvY29kZT48L2E+LjwvcD4KCjxwIGNsYXNzPSJhbGVydCBhbGVydF9pbmZvIj4KICAgIDx0cy1pY29uIGNsYXNzPSJ0c19pY29uX2luZm9fY2lyY2xlIj48L3RzLWljb24+IFdlIGFyZSBwaGFzaW5nIG91dCBzdXBwb3J0IGZvciBhbWJpZ3VvdXNseSBwYXNzaW5nIGEgInVzZXJuYW1lIiBhcyBhIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHZhbHVlLiBQbGVhc2UgPGVtPmFsd2F5czwvZW0+IHVzZSBjaGFubmVsLWxpa2UgSURzIGluc3RlYWQuCjwvcD4KCjxwPjxhIG5hbWU9ImFwcF9ob21lIj48L2E+PC9wPgoKPGEgbmFtZT0iYmVnaW5fYV9jb252ZXJzYXRpb25faW5fYV91c2VyX3NfYXBwX2hvbWUiPjwvYT48aDIgPkJlZ2luIGEgY29udmVyc2F0aW9uIGluIGEgdXNlcidzIEFwcCBIb21lPC9oMj4KCjxwPlN0YXJ0IGEgY29udmVyc2F0aW9uIHdpdGggdXNlcnMgaW4geW91ciA8YSBocmVmPSIvcmVmZXJlbmNlL2FwcC1ob21lIj5BcHAgSG9tZTwvYT4uPC9wPgoKPHA+V2l0aCB0aGUgPGNvZGU+Y2hhdDp3cml0ZTwvY29kZT4gc2NvcGUgZW5hYmxlZCwgY2FsbCA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiBhbmQgcGFzcyBhIHVzZXIncyBJRCAoPGNvZGU+VTBHOVFGOUM2PC9jb2RlPikgYXMgdGhlIHZhbHVlIG9mIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHRvIHBvc3QgdG8gdGhhdCB1c2VyJ3MgQXBwIEhvbWUgY2hhbm5lbC4gWW91IGNhbiB1c2UgdGhlaXIgZGlyZWN0IG1lc3NhZ2UgY2hhbm5lbCBJRCAoYXMgZm91bmQgd2l0aCA8Y29kZT5pbS5vcGVuPC9jb2RlPiwgZm9yIGluc3RhbmNlKSBpbnN0ZWFkLjwvcD4KCjxhIG5hbWU9InJhdGVfbGltaXRpbmciPjwvYT48aDIgPlJhdGUgbGltaXRpbmc8L2gyPgoKPHA+PGNvZGU+Y2hhdC5wb3N0TWVzc2FnZTwvY29kZT4gaGFzIHNwZWNpYWwgPGEgaHJlZj0iL2RvY3MvcmF0ZS1saW1pdHMiPnJhdGUgbGltaXRpbmc8L2E+IGNvbmRpdGlvbnMuIEl0IHdpbGwgZ2VuZXJhbGx5IGFsbG93IGFuIGFwcCB0byBwb3N0IDEgbWVzc2FnZSBwZXIgc2Vjb25kIHRvIGEgc3BlY2lmaWMgY2hhbm5lbC4gVGhlcmUgYXJlIGxpbWl0cyBnb3Zlcm5pbmcgeW91ciBhcHAncyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgZW50aXJlIHdvcmtzcGFjZSBhYm92ZSB0aGF0LCBsaW1pdGluZyBwb3N0aW5nIHRvIHNldmVyYWwgaHVuZHJlZCBtZXNzYWdlcyBwZXIgbWludXRlLiBHZW5lcm91cyBidXJzdCBiZWhhdmlvciBpcyBhbHNvIGdyYW50ZWQuPC9wPgoKPGEgbmFtZT0iZXJyb3JzIj48L2E+PGgyID5FcnJvcnM8L2gyPgoKPHA+IFRoaXMgdGFibGUgbGlzdHMgdGhlIGV4cGVjdGVkIGVycm9ycyB0aGF0IHRoaXMgbWV0aG9kIGNvdWxkIHJldHVybi4gSG93ZXZlciwgb3RoZXIgZXJyb3JzIGNhbiBiZSByZXR1cm5lZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VydmljZSBpcyBkb3duIG9yIG90aGVyIHVuZXhwZWN0ZWQgZmFjdG9ycyBhZmZlY3QgcHJvY2Vzc2luZy4gQ2FsbGVycyBzaG91bGQgYWx3YXlzIGNoZWNrIHRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+b2s8L2NvZGU+IHBhcmFtcyBpbiB0aGUgcmVzcG9uc2UuIDwvcD48dGFibGUgY2xhc3M9ImFyZ3VtZW50cyBmdWxsX3dpZHRoIj48dHI+PHRoPkVycm9yPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+PHRyPjx0ZD48Y29kZT5jaGFubmVsX25vdF9mb3VuZDwvY29kZT48L3RkPjx0ZD48cD5WYWx1ZSBwYXNzZWQgZm9yIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHdhcyBpbnZhbGlkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bm90X2luX2NoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PHA+Q2Fubm90IHBvc3QgdXNlciBtZXNzYWdlcyB0byBhIGNoYW5uZWwgdGhleSBhcmUgbm90IGluLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aXNfYXJjaGl2ZWQ8L2NvZGU+PC90ZD48dGQ+PHA+Q2hhbm5lbCBoYXMgYmVlbiBhcmNoaXZlZC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1zZ190b29fbG9uZzwvY29kZT48L3RkPjx0ZD48cD5NZXNzYWdlIHRleHQgaXMgdG9vIGxvbmc8L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm5vX3RleHQ8L2NvZGU+PC90ZD48dGQ+PHA+Tm8gbWVzc2FnZSB0ZXh0IHByb3ZpZGVkPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXN0cmljdGVkX2FjdGlvbjwvY29kZT48L3RkPjx0ZD48cD5BIHdvcmtzcGFjZSBwcmVmZXJlbmNlIHByZXZlbnRzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgZnJvbSBwb3N0aW5nLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVzdHJpY3RlZF9hY3Rpb25fcmVhZF9vbmx5X2NoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PHA+Q2Fubm90IHBvc3QgYW55IG1lc3NhZ2UgaW50byBhIHJlYWQtb25seSBjaGFubmVsLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVzdHJpY3RlZF9hY3Rpb25fdGhyZWFkX29ubHlfY2hhbm5lbDwvY29kZT48L3RkPjx0ZD48cD5DYW5ub3QgcG9zdCB0b3AtbGV2ZWwgbWVzc2FnZXMgaW50byBhIHRocmVhZC1vbmx5IGNoYW5uZWwuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXN0cmljdGVkX2FjdGlvbl9ub25fdGhyZWFkYWJsZV9jaGFubmVsPC9jb2RlPjwvdGQ+PHRkPjxwPkNhbm5vdCBwb3N0IHRocmVhZCByZXBsaWVzIGludG8gYSBub25fdGhyZWFkYWJsZSBjaGFubmVsLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+dG9vX21hbnlfYXR0YWNobWVudHM8L2NvZGU+PC90ZD48dGQ+PHA+VG9vIG1hbnkgYXR0YWNobWVudHMgd2VyZSBwcm92aWRlZCB3aXRoIHRoaXMgbWVzc2FnZS4gQSBtYXhpbXVtIG9mIDEwMCBhdHRhY2htZW50cyBhcmUgYWxsb3dlZCBvbiBhIG1lc3NhZ2UuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yYXRlX2xpbWl0ZWQ8L2NvZGU+PC90ZD48dGQ+PHA+QXBwbGljYXRpb24gaGFzIHBvc3RlZCB0b28gbWFueSBtZXNzYWdlcywgPGEgaHJlZj0iL2RvY3MvcmF0ZS1saW1pdHMiPnJlYWQgdGhlIFJhdGUgTGltaXQgZG9jdW1lbnRhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb248L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmFzX3VzZXJfbm90X3N1cHBvcnRlZDwvY29kZT48L3RkPjx0ZD48cD5UaGUgPGNvZGU+YXNfdXNlcjwvY29kZT4gcGFyYW1ldGVyIGRvZXMgbm90IGZ1bmN0aW9uIHdpdGggd29ya3NwYWNlIGFwcHMuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5la21fYWNjZXNzX2RlbmllZDwvY29kZT48L3RkPjx0ZD48cD5BZG1pbmlzdHJhdG9ycyBoYXZlIHN1c3BlbmRlZCB0aGUgYWJpbGl0eSB0byBwb3N0IGEgbWVzc2FnZS48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm5vdF9hdXRoZWQ8L2NvZGU+PC90ZD48dGQ+PHA+Tm8gYXV0aGVudGljYXRpb24gdG9rZW4gcHJvdmlkZWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5pbnZhbGlkX2F1dGg8L2NvZGU+PC90ZD48dGQ+PHA+U29tZSBhc3BlY3Qgb2YgYXV0aGVudGljYXRpb24gY2Fubm90IGJlIHZhbGlkYXRlZC4gRWl0aGVyIHRoZSBwcm92aWRlZCB0b2tlbiBpcyBpbnZhbGlkIG9yIHRoZSByZXF1ZXN0IG9yaWdpbmF0ZXMgZnJvbSBhbiBJUCBhZGRyZXNzIGRpc2FsbG93ZWQgZnJvbSBtYWtpbmcgdGhlIHJlcXVlc3QuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5hY2NvdW50X2luYWN0aXZlPC9jb2RlPjwvdGQ+PHRkPjxwPkF1dGhlbnRpY2F0aW9uIHRva2VuIGlzIGZvciBhIGRlbGV0ZWQgdXNlciBvciB3b3Jrc3BhY2UuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50b2tlbl9yZXZva2VkPC9jb2RlPjwvdGQ+PHRkPjxwPkF1dGhlbnRpY2F0aW9uIHRva2VuIGlzIGZvciBhIGRlbGV0ZWQgdXNlciBvciB3b3Jrc3BhY2Ugb3IgdGhlIGFwcCBoYXMgYmVlbiByZW1vdmVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bm9fcGVybWlzc2lvbjwvY29kZT48L3RkPjx0ZD48cD5UaGUgd29ya3NwYWNlIHRva2VuIHVzZWQgaW4gdGhpcyByZXF1ZXN0IGRvZXMgbm90IGhhdmUgdGhlIHBlcm1pc3Npb25zIG5lY2Vzc2FyeSB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4gTWFrZSBzdXJlIHlvdXIgYXBwIGlzIGEgbWVtYmVyIG9mIHRoZSBjb252ZXJzYXRpb24gaXQncyBhdHRlbXB0aW5nIHRvIHBvc3QgYSBtZXNzYWdlIHRvLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+b3JnX2xvZ2luX3JlcXVpcmVkPC9jb2RlPjwvdGQ+PHRkPjxwPlRoZSB3b3Jrc3BhY2UgaXMgdW5kZXJnb2luZyBhbiBlbnRlcnByaXNlIG1pZ3JhdGlvbiBhbmQgd2lsbCBub3QgYmUgYXZhaWxhYmxlIHVudGlsIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZS48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1pc3Npbmdfc2NvcGU8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIHRva2VuIHVzZWQgaXMgbm90IGdyYW50ZWQgdGhlIHNwZWNpZmljIHNjb3BlIHBlcm1pc3Npb25zIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgcmVxdWVzdC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmludmFsaWRfYXJndW1lbnRzPC9jb2RlPjwvdGQ+PHRkPjxwPlRoZSBtZXRob2Qgd2FzIGNhbGxlZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aW52YWxpZF9hcmdfbmFtZTwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBwYXNzZWQgYW4gYXJndW1lbnQgd2hvc2UgbmFtZSBmYWxscyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgYWNjZXB0ZWQgb3IgZXhwZWN0ZWQgdmFsdWVzLiBUaGlzIGluY2x1ZGVzIHZlcnkgbG9uZyBuYW1lcyBhbmQgbmFtZXMgd2l0aCBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiA8Y29kZT5fPC9jb2RlPi4gSWYgeW91IGdldCB0aGlzIGVycm9yLCBpdCBpcyB0eXBpY2FsbHkgYW4gaW5kaWNhdGlvbiB0aGF0IHlvdSBoYXZlIG1hZGUgYSA8ZW0+dmVyeTwvZW0+IG1hbGZvcm1lZCBBUEkgY2FsbC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmludmFsaWRfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYnV0IHRoZSA8Y29kZT5jaGFyc2V0PC9jb2RlPiBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPkNvbnRlbnQtVHlwZTwvY29kZT4gaGVhZGVyIHdhcyBpbnZhbGlkLiBWYWxpZCBjaGFyc2V0IG5hbWVzIGFyZTogPGNvZGU+dXRmLTg8L2NvZGU+IDxjb2RlPmlzby04ODU5LTE8L2NvZGU+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aW52YWxpZF9mb3JtX2RhdGE8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3Qgd2l0aCA8Y29kZT5Db250ZW50LVR5cGU8L2NvZGU+IDxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT4gb3IgPGNvZGU+bXVsdGlwYXJ0L2Zvcm0tZGF0YTwvY29kZT4sIGJ1dCB0aGUgZm9ybSBkYXRhIHdhcyBlaXRoZXIgbWlzc2luZyBvciBzeW50YWN0aWNhbGx5IGludmFsaWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5pbnZhbGlkX3Bvc3RfdHlwZTwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYnV0IHRoZSBzcGVjaWZpZWQgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiB3YXMgaW52YWxpZC4gVmFsaWQgdHlwZXMgYXJlOiA8Y29kZT5hcHBsaWNhdGlvbi9qc29uPC9jb2RlPiA8Y29kZT5hcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ8L2NvZGU+IDxjb2RlPm11bHRpcGFydC9mb3JtLWRhdGE8L2NvZGU+IDxjb2RlPnRleHQvcGxhaW48L2NvZGU+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bWlzc2luZ19wb3N0X3R5cGU8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3QgYW5kIGluY2x1ZGVkIGEgZGF0YSBwYXlsb2FkLCBidXQgdGhlIHJlcXVlc3QgZGlkIG5vdCBpbmNsdWRlIGEgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiBoZWFkZXIuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50ZWFtX2FkZGVkX3RvX29yZzwvY29kZT48L3RkPjx0ZD48cD5UaGUgd29ya3NwYWNlIGFzc29jaWF0ZWQgd2l0aCB5b3VyIHJlcXVlc3QgaXMgY3VycmVudGx5IHVuZGVyZ29pbmcgbWlncmF0aW9uIHRvIGFuIEVudGVycHJpc2UgT3JnYW5pemF0aW9uLiBXZWIgQVBJIGFuZCBvdGhlciBwbGF0Zm9ybSBvcGVyYXRpb25zIHdpbGwgYmUgaW50ZXJtaXR0ZW50bHkgdW5hdmFpbGFibGUgdW50aWwgdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGUuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXF1ZXN0X3RpbWVvdXQ8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3QsIGJ1dCB0aGUgPGNvZGU+UE9TVDwvY29kZT4gZGF0YSB3YXMgZWl0aGVyIG1pc3Npbmcgb3IgdHJ1bmNhdGVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+ZmF0YWxfZXJyb3I8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIHNlcnZlciBjb3VsZCBub3QgY29tcGxldGUgeW91ciBvcGVyYXRpb24ocykgd2l0aG91dCBlbmNvdW50ZXJpbmcgYSBjYXRhc3Ryb3BoaWMgZXJyb3IuIEl0J3MgcG9zc2libGUgc29tZSBhc3BlY3Qgb2YgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQgYmVmb3JlIHRoZSBlcnJvciB3YXMgcmFpc2VkLjwvcD4KPC90ZD48L3RyPjwvdGFibGU+Cgo8YSBuYW1lPSJ3YXJuaW5ncyI+PC9hPjxoMiA+V2FybmluZ3M8L2gyPgoKPHA+IFRoaXMgdGFibGUgbGlzdHMgdGhlIGV4cGVjdGVkIHdhcm5pbmdzIHRoYXQgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4uIEhvd2V2ZXIsIG90aGVyIHdhcm5pbmdzIGNhbiBiZSByZXR1cm5lZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VydmljZSBpcyBleHBlcmllbmNpbmcgdW5leHBlY3RlZCB0cm91YmxlLiA8L3A+PHRhYmxlIGNsYXNzPSJhcmd1bWVudHMgZnVsbF93aWR0aCI+PHRyPjx0aD5XYXJuaW5nPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+PHRyPjx0ZD48Y29kZT5tZXNzYWdlX3RydW5jYXRlZDwvY29kZT48L3RkPjx0ZD48cD5UaGUgPGNvZGU+dGV4dDwvY29kZT4gZmllbGQgb2YgYSBtZXNzYWdlIHNob3VsZCBoYXZlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycy4gV2UgPGEgaHJlZj0iL2NoYW5nZWxvZy8yMDE4LTA0LXRydW5jYXRpbmctcmVhbGx5LWxvbmctbWVzc2FnZXMiPnRydW5jYXRlIHJlYWxseSBsb25nIG1lc3NhZ2VzPC9hPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1pc3NpbmdfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYW5kIHJlY29tbWVuZGVkIHByYWN0aWNlIGZvciB0aGUgc3BlY2lmaWVkIDxjb2RlPkNvbnRlbnQtVHlwZTwvY29kZT4gaXMgdG8gaW5jbHVkZSBhIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IHBhcmFtZXRlci4gSG93ZXZlciwgbm8gPGNvZGU+Y2hhcnNldDwvY29kZT4gd2FzIHByZXNlbnQuIFNwZWNpZmljYWxseSwgbm9uLWZvcm0tZGF0YSBjb250ZW50IHR5cGVzIChlLmcuIDxjb2RlPnRleHQvcGxhaW48L2NvZGU+KSBhcmUgdGhlIG9uZXMgZm9yIHdoaWNoIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IGlzIHJlY29tbWVuZGVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+c3VwZXJmbHVvdXNfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYW5kIHRoZSBzcGVjaWZpZWQgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiBpcyBub3QgZGVmaW5lZCB0byB1bmRlcnN0YW5kIHRoZSA8Y29kZT5jaGFyc2V0PC9jb2RlPiBwYXJhbWV0ZXIuIEhvd2V2ZXIsIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IHdhcyBpbiBmYWN0IHByZXNlbnQuIFNwZWNpZmljYWxseSwgZm9ybS1kYXRhIGNvbnRlbnQgdHlwZXMgKGUuZy4gPGNvZGU+bXVsdGlwYXJ0L2Zvcm0tZGF0YTwvY29kZT4pIGFyZSB0aGUgb25lcyBmb3Igd2hpY2ggPGNvZGU+Y2hhcnNldDwvY29kZT4gaXMgc3VwZXJmbHVvdXMuPC9wPgo8L3RkPjwvdHI+PC90YWJsZT4KPC9zZWN0aW9uPjwvZGl2PjxkaXYgaWQ9Im92ZXJsYXkiPjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyX2JvdGgiPjwvZGl2PjwvZGl2PjwvZGl2Pjxmb290ZXIgZGF0YS1xYT0iZm9vdGVyIj48c2VjdGlvbiBjbGFzcz0ibGlua3MiPjxkaXYgY2xhc3M9ImdyaWQiPjxkaXYgY2xhc3M9ImNvbCBzcGFuXzFfb2ZfNCBuYXZfY29sIj48dWw+PGxpIGNsYXNzPSJjYXRfMSI+VXNpbmcgU2xhY2s8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9pcyIgZGF0YS1xYT0icHJvZHVjdF9mb290ZXIiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9wcm9kdWN0Ij5Qcm9kdWN0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2VudGVycHJpc2UiIGRhdGEtcWE9ImVudGVycHJpc2VfZm9vdGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZW50ZXJwcmlzZSI+RW50ZXJwcmlzZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9wcmljaW5nP3VpX3N0ZXA9MjgmdWlfZWxlbWVudD01IiBkYXRhLXFhPSJwcmljaW5nX2Zvb3RlciIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX3ByaWNpbmciPlByaWNpbmc8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9nZXQuc2xhY2suaGVscC9oYy9lbi11cyIgZGF0YS1xYT0ic3VwcG9ydF9mb290ZXIiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zdXBwb3J0Ij5TdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2d1aWRlcyIgZGF0YS1xYT0iZ2V0dGluZ19zdGFydGVkIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZ2V0dGluZ19zdGFydGVkIj5TbGFjayBHdWlkZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vYXBwcyIgZGF0YS1xYT0iYXBwX2RpcmVjdG9yeSIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2FwcF9kaXJlY3RvcnkiPkFwcCBEaXJlY3Rvcnk8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9hcGkuc2xhY2suY29tLyIgZGF0YS1xYT0iYXBpIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfYXBpIj5BUEk8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImNvbCBzcGFuXzFfb2ZfNCBuYXZfY29sIj48dWw+PGxpIGNsYXNzPSJjYXRfMiI+U2xhY2sgPHRzLWljb24gY2xhc3M9InRzX2ljb25faGVhcnQiPjwvdHMtaWNvbj48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9qb2JzIiBkYXRhLXFhPSJqb2JzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfam9icyI+Sm9iczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9jdXN0b21lcnMiIGRhdGEtcWE9ImN1c3RvbWVycyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2N1c3RvbWVycyI+Q3VzdG9tZXJzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2RldmVsb3BlcnMiIGRhdGEtcWE9ImRldmVsb3BlcnMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9kZXZlbG9wZXJzIj5EZXZlbG9wZXJzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2V2ZW50cyIgZGF0YS1xYT0iZXZlbnRzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZXZlbnRzIj5FdmVudHM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFja2hxLmNvbS8iIGRhdGEtcWE9ImJsb2dfZm9vdGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfYmxvZyI+QmxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLnNob3AvIiBkYXRhLXFhPSJzbGFja19zaG9wIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfc2hvcCI+U2xhY2sgU2hvcDwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iY29sIHNwYW5fMV9vZl80IG5hdl9jb2wiPjx1bD48bGkgY2xhc3M9ImNhdF8zIj5MZWdhbDwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3ByaXZhY3ktcG9saWN5IiBkYXRhLXFhPSJwcml2YWN5IiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfcHJpdmFjeSI+UHJpdmFjeTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9zZWN1cml0eSIgZGF0YS1xYT0ic2VjdXJpdHkiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zZWN1cml0eSI+U2VjdXJpdHk8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vdGVybXMtb2Ytc2VydmljZSIgZGF0YS1xYT0idG9zIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfdG9zIj5UZXJtcyBvZiBTZXJ2aWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3BvbGljaWVzIiBkYXRhLXFhPSJwb2xpY2llcyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX3BvbGljaWVzIj5Qb2xpY2llczwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iY29sIHNwYW5fMV9vZl80IG5hdl9jb2wiPjx1bD48bGkgY2xhc3M9ImNhdF80Ij5IYW5keSBMaW5rczwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2Rvd25sb2FkcyIgZGF0YS1xYT0iZG93bmxvYWRzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZG93bmxvYWRzIj5Eb3dubG9hZCBkZXNrdG9wIGFwcDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9kb3dubG9hZHMiIGRhdGEtcWE9ImRvd25sb2Fkc19tb2JpbGUiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9kb3dubG9hZHNfbW9iaWxlIj5Eb3dubG9hZCBtb2JpbGUgYXBwPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2JyYW5kLWd1aWRlbGluZXMiIGRhdGEtcWE9ImJyYW5kX2d1aWRlbGluZXMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9icmFuZF9ndWlkZWxpbmVzIj5CcmFuZCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2thdHdvcmsuY29tIiBkYXRhLXFhPSJzbGFja19hdF93b3JrIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfYXRfd29yayI+U2xhY2sgYXQgV29yazwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3N0YXR1cy5zbGFjay5jb20vIiBkYXRhLXFhPSJzdGF0dXMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zdGF0dXMiPlN0YXR1czwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9ImZvb3Rub3RlIj48c2VjdGlvbj48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbSIgYXJpYS1sYWJlbD0iU2xhY2sgaG9tZXBhZ2UiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zbGFja19pY29uIj48dHMtaWNvbiBjbGFzcz0iYy1pY29uLS1zbGFjayIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48dWw+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2hlbHAvY29udGFjdCIgZGF0YS1xYT0iY29udGFjdF91cyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2NvbnRhY3RfdXMiPkNvbnRhY3QgVXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9TbGFja0hRIiBkYXRhLXFhPSJzbGFja190d2l0dGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfdHdpdHRlciIgYXJpYS1sYWJlbD0iU2xhY2sgb24gVHdpdHRlciI+PHRzLWljb24gY2xhc3M9InRzX2ljb25fdHdpdHRlciIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48L2xpPjxsaSBjbGFzcz0ieXQiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNZM1lFQ2dlQmNMQ3pJckZMUDRnYmx3IiBkYXRhLXFhPSJzbGFja195b3V0dWJlIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfeW91dHViZSIgYXJpYS1sYWJlbD0iU2xhY2sgb24gWW91VHViZSI+PHRzLWljb24gY2xhc3M9InRzX2ljb25feW91dHViZSIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48L2xpPjwvdWw+PC9zZWN0aW9uPjwvZGl2PjwvZm9vdGVyPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyoqCiAqIEEgcGxhY2Vob2xkZXIgZnVuY3Rpb24gdGhhdCB0aGUgYnVpbGQgc2NyaXB0IHVzZXMgdG8KICogcmVwbGFjZSBmaWxlIHBhdGhzIHdpdGggdGhlaXIgQ0ROIHZlcnNpb25zLgogKgogKiBAcGFyYW0ge1N0cmluZ30gZmlsZV9wYXRoIC0gRmlsZSBwYXRoCiAqIEByZXR1cm5zIHtTdHJpbmd9CiAqLwpmdW5jdGlvbiB2dnYoZmlsZV9wYXRoKSB7CgkJIHZhciB2dnZfd2FybmluZyA9ICdZb3UgY2Fubm90IHVzZSB2dnYgb24gZHluYW1pYyB2YWx1ZXMuIFBsZWFzZSBtYWtlIHN1cmUgeW91IG9ubHkgcGFzcyBpbiBzdGF0aWMgZmlsZSBwYXRocy4nOyBpZiAoVFMgJiYgVFMud2FybikgeyBUUy53YXJuKHZ2dl93YXJuaW5nKTsgfSBlbHNlIHsgY29uc29sZS53YXJuKHZ2dl93YXJuaW5nKTsgfSAKCXJldHVybiBmaWxlX3BhdGg7Cn0KCnZhciBjZG5fdXJsID0gImh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tIjsKdmFyIHZ2dl9hYnNfdXJsID0gImh0dHBzOlwvXC9zbGFjay5jb21cLyI7CnZhciBpbmNfanNfc2V0dXBfZGF0YSA9IHsKCWVtb2ppX3NoZWV0czogewoJCWFwcGxlOiAnaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tLzgwNTg4L2ltZy9lbW9qaV8yMDE3XzEyXzA2L3NoZWV0X2FwcGxlXzY0X2luZGV4ZWRfMjU2LnBuZycsCgkJZ29vZ2xlOiAnaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tLzgwNTg4L2ltZy9lbW9qaV8yMDE3XzEyXzA2L3NoZWV0X2dvb2dsZV82NF9pbmRleGVkXzI1Ni5wbmcnLAoJfSwKfTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgkvLyBjb21tb24gYm9vdF9kYXRhCgl2YXIgYm9vdF9kYXRhID0geyJhcGlfdXJsIjoiXC9hcGlcLyIsImFwcCI6ImZhbHNlIiwidXNlcl9pZCI6bnVsbCwidGVhbV9pZCI6IlQwMDAwMDAwMCIsInZpc2l0b3JfdWlkIjoiMmhpaDE1bzA2b3NpdTRtcWZxdmI0MHpieCIsIm5vX2xvZ2luIjp0cnVlLCJ2ZXJzaW9uX3RzIjoiMTU2ODMxOTc2MiIsInZlcnNpb25fdWlkIjoiMDcyODAwMDdlNDE3OGZlNmJjODcwNGEyNjk1MjNkOGMxMWExNTBmYSIsImNhY2hlX3ZlcnNpb24iOiJ2MTgta3VkdSIsImNhY2hlX3RzX3ZlcnNpb24iOiJ2Mi1idW5ueSIsInJlZGlyX2RvbWFpbiI6InNsYWNrLXJlZGlyLm5ldCIsInNpZ25pbl91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9zaWduaW4iLCJhYnNfcm9vdF91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC8iLCJ0ZWFtX3VybCI6IiIsImltYWdlX3Byb3h5X3VybCI6Imh0dHBzOlwvXC9zbGFjay1pbWdzLmNvbVwvIiwiYmVhY29uX3RpbWluZ191cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL3RpbWluZyIsImJlYWNvbl9lcnJvcl91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL2Vycm9yIiwiY2xvZ191cmwiOiJjbG9nXC90cmFja1wvIiwiYXBpX3Rva2VuIjoiIiwiaGNfdHJhY2tpbmdfcXMiOiIiLCJ2dnZfcGF0aHMiOnsibHpfc3RyaW5nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2x6LXN0cmluZy0xLjQuNC53b3JrZXIuOGRlMWIwMGQ2NzBmZjNkYzcwNmEwLmpzIiwiY29kZW1pcnJvciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yLm1pbi42OGM2YTA2MTJhYmNjYzZiODg1OS5taW4uanMiLCJjb2RlbWlycm9yX2FkZG9uX3NpbXBsZSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX3NpbXBsZS45OTNmYzVmOGRkZDQwMWY2MzJhYS5taW4uanMiLCJjb2RlbWlycm9yX2xvYWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sb2FkLmE5OGRkZjFjYTE4NWEyYTUxNzExLm1pbi5qcyIsImNvZGVtaXJyb3JfZmlsZXMiOnsiYXBsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19hcGwuOWNlOThjOGIyNDQ1YjIyM2M4N2YubWluLmpzIiwiYXNjaWlhcm1vciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYXNjaWlhcm1vci4zNTU4NzkzN2VhNTFjMmEyM2YyMS5taW4uanMiLCJhc24uMSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYXNuLjEuMDFjNjEwODYyMzk3ZTI1YmU5OTEubWluLmpzIiwiYXN0ZXJpc2siOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2FzdGVyaXNrLmQ5M2I0YWI0ODhmYTM5ZDE1MzVhLm1pbi5qcyIsImJyYWluZnVjayI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYnJhaW5mdWNrLjMyMjFhYTFiYjkwMTg2YmM2ZDRjLm1pbi5qcyIsImNsaWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbGlrZS4zYTE4ZTg2OGM2N2Y2YmVjMDkxYy5taW4uanMiLCJjbG9qdXJlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbG9qdXJlLmJmMmY4NDIyOWQ5NTFkZjEwMzkxLm1pbi5qcyIsImNtYWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbWFrZS40Y2IzODE4MzE0ODNjNGY1NGM1Ny5taW4uanMiLCJjb2JvbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY29ib2wuZTNjOGNiZmM1N2QwMzU2Njc3YmUubWluLmpzIiwiY29mZmVlc2NyaXB0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jb2ZmZWVzY3JpcHQuZTU3MDA2MjZmMTE0ZjI5OTA1NzkubWluLmpzIiwiY29tbW9ubGlzcCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY29tbW9ubGlzcC44NTVlZGZjMGUxZDkxY2EwNWMxNi5taW4uanMiLCJjc3MiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2Nzcy4yN2YwZmExZjJmOTk3MzY3OGY0MS5taW4uanMiLCJjcnlzdGFsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jcnlzdGFsLmE4ZTRlMmRmMWMxMTVjZDgwYWNmLm1pbi5qcyIsImN5cGhlciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY3lwaGVyLjUxNjI2NDY3NWUzMzk2NDg3ZjNkLm1pbi5qcyIsImQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2QuMmE1M2Q1MDJlNjY3NzcwZDJkNTAubWluLmpzIiwiZGFydCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZGFydC5kMTA5M2YzYjkzMjM3ZWE3M2RkYS5taW4uanMiLCJkaWZmIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19kaWZmLjRiNzZkNzAyZmZkOGU0MGNiMzhlLm1pbi5qcyIsImRqYW5nbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZGphbmdvLjFhNmMwMzFhMjZkYWEyMWE2OWI4Lm1pbi5qcyIsImRvY2tlcmZpbGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2RvY2tlcmZpbGUuNjA0MzdjZGQ3MzNkZGZmNGQ2OWUubWluLmpzIiwiZHRkIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19kdGQuNWFmM2JiZjkzOTYwYzg0ZjUwMmYubWluLmpzIiwiZHlsYW4iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2R5bGFuLjdjZThmMjFlNTIwZDY4MmY0ZjhiLm1pbi5qcyIsImVibmYiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2VibmYuYzQ2NmU0ZTMzMWUzMTdlZTNiYjYubWluLmpzIiwiZWNsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lY2wuZWRhYjQ4NjkwYzdkZDBiMGU3YmYubWluLmpzIiwiZWlmZmVsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19laWZmZWwuMzgyOTU3NzlkODc3ZjJkOTMxNzIubWluLmpzIiwiZWxtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lbG0uNjI1ZDU5NDAwYmFmNjYwMmY4MGIubWluLmpzIiwiZXJsYW5nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lcmxhbmcuY2Y5NTg2MWRmY2FjMzcxMzc2MzUubWluLmpzIiwiZmFjdG9yIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19mYWN0b3IuZDM2MTRkZmE0MWFjMGRjNzg0NWMubWluLmpzIiwiZm9ydGgiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ZvcnRoLjg0ODM0ODViMGM0NWFjZDk5NjhlLm1pbi5qcyIsImZvcnRyYW4iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ZvcnRyYW4uMTQ3ZjkzMzliNGJiMWZhNTJmNWEubWluLmpzIiwiZ2FzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19nYXMuZDRiYzFiNTJlZTBiZjU2MmQzOGIubWluLmpzIiwiZ2ZtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19nZm0uMDQ0ZWJlNzU2M2UxMzJkZGM3NzYubWluLmpzIiwiZ2hlcmtpbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZ2hlcmtpbi45OWVlOGQwYzBiMGU0M2RmM2ZjMi5taW4uanMiLCJnbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZ28uY2NjM2ZiNWQyZmExOGI3MjE0NzIubWluLmpzIiwiZ3Jvb3Z5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ncm9vdnkuM2I3OTlmY2RiNzI1MTEzYjI2ZTYubWluLmpzIiwiaGFtbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaGFtbC5iMDZmY2NiNGE4Njg4NjkzY2U2MC5taW4uanMiLCJoYW5kbGViYXJzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19oYW5kbGViYXJzLmE0MDA5YzBlNmFjYWU4NTQ0OWFlLm1pbi5qcyIsImhhc2tlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2hhc2tlbGwuNWRlYzhiYjEwODViNjVmNzdjZmIubWluLmpzIiwiaGF4ZSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaGF4ZS4yYjQwMDQwNzVmYTU5ZGI0MjE1ZC5taW4uanMiLCJodG1sZW1iZWRkZWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2h0bWxlbWJlZGRlZC40OTAxNWNiZWU3ZjZiZWQ0ZmRiMi5taW4uanMiLCJodG1sbWl4ZWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2h0bWxtaXhlZC45MmQ5M2Q1M2ExNmUwNzU4NDZlZi5taW4uanMiLCJodHRwIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19odHRwLjhhMjQ2M2M4MmNhNTM1MzMwMzI0Lm1pbi5qcyIsImlkbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaWRsLjUxNGI2YTVlNmZmOTljMzI2Njc2Lm1pbi5qcyIsImphZGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2phZGUuMzJjMGFlOTY5YzA5MTJjN2QxYTcubWluLmpzIiwiamF2YXNjcmlwdCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfamF2YXNjcmlwdC5hYzE4MzNlOWUyMzlkNTMyYjVhOS5taW4uanMiLCJqaW5qYTIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ppbmphMi5kYjEyZWNmZDRiYmNiODc1OTY2My5taW4uanMiLCJqdWxpYSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfanVsaWEuN2IyY2RlNThkYzBlZWIwN2U2NzAubWluLmpzIiwibGl2ZXNjcmlwdCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbGl2ZXNjcmlwdC45NTljNGRjNzI1NjZhMjY0Nzg4Ny5taW4uanMiLCJsdWEiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2x1YS4xZmQ5YjM0NmNkMWU2ZWFlODAwNS5taW4uanMiLCJtYXJrZG93biI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbWFya2Rvd24uMzU3ZDRmMDIzMWQ3MDVjY2Y0YTgubWluLmpzIiwibWF0aGVtYXRpY2EiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21hdGhlbWF0aWNhLjQ1Y2U2YTg0NDg3NDc1NTVlZThmLm1pbi5qcyIsIm1pcmMiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21pcmMuNjQyYTBhOTA5M2MzZWRlZWQxZDMubWluLmpzIiwibWxsaWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19tbGxpa2UuYjJlNTllMzRiMmFlYjBiMGUzM2UubWluLmpzIiwibW9kZWxpY2EiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21vZGVsaWNhLjliZWJhOTAyZmFkNjhkNjUyNTA0Lm1pbi5qcyIsIm1zY2dlbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbXNjZ2VuLjlkZWQ1ZDEzMmNlYTU0OGE1ODRlLm1pbi5qcyIsIm11bXBzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19tdW1wcy42Mjc1MTAwZDNjYmEzY2RkYjE3MS5taW4uanMiLCJuZ2lueCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbmdpbnguMzkyOTQ3YTVjZGUzNjBlNTUzOTEubWluLmpzIiwibnNpcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbnNpcy4xODA2MDk4ZjJlZmZjNGM1ZWZkNy5taW4uanMiLCJudHJpcGxlcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbnRyaXBsZXMuNWM2YjkxZjZkYzI5ZDIyNTE1OWIubWluLmpzIiwib2N0YXZlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19vY3RhdmUuOTljYmYzZTBhNzIyZDk1Mjc3ZmQubWluLmpzIiwib3oiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX296LjQ1NDdjY2ZkZGM1Mjg1ZmViZGRhLm1pbi5qcyIsInBhc2NhbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGFzY2FsLjFmZGJjNzVmNjU5YWI3YjIwZWY5Lm1pbi5qcyIsInBlZ2pzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19wZWdqcy4zNTIxMTU0YjlkMGZiOGRkZTJjOC5taW4uanMiLCJwZXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19wZXJsLjI2MTYyYjFkZTNmMjQ4OGZmZWRjLm1pbi5qcyIsInBocCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGhwLjhlNzcwMjE0MWM0ZDAwNmJiMjBkLm1pbi5qcyIsInBpZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGlnLmNjZjM5MjkzOTZlZTdkMjQxNDA2Lm1pbi5qcyIsInBvd2Vyc2hlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Bvd2Vyc2hlbGwuODlmMmU5YmY2YzgyYWQxZGQ5YmUubWluLmpzIiwicHJvcGVydGllcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcHJvcGVydGllcy5lYTdjZTE0YzQyNTE3NGFkYmYxNS5taW4uanMiLCJwdXBwZXQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3B1cHBldC4wOWQ0YTA0MzkwM2E1MjIzNzQ2Ny5taW4uanMiLCJweXRob24iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3B5dGhvbi45Y2ZjYjgyNDJjM2M1ZjRkMDkwMi5taW4uanMiLCJxIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19xLjc2MDliNmVmYWY1ZGRmZGZhNGE1Lm1pbi5qcyIsInIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3IuMzQ5MzZlNDFmMTFlYzE4YTc1NzQubWluLmpzIiwicnBtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ycG0uYzI5MTc5ZDkxODg3MDFlYjVmM2UubWluLmpzIiwicnN0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19yc3QuMTNiZWM2MzMxYzAxNzVjYmIwOTYubWluLmpzIiwicnVieSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcnVieS44MmRlYTExNjQ0Yzc0ZTRlYTU0Mi5taW4uanMiLCJydXN0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ydXN0LjBlNmNjMWEwZDJkMmQ4ZjhlYmRiLm1pbi5qcyIsInNhc3MiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Nhc3MuMWZiY2U1NGIyYzMwNDQzNzc5ZWUubWluLmpzIiwic2NoZW1lIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zY2hlbWUuODg3OWVlNWY4ODc1ZDZiY2M4MDQubWluLmpzIiwic2hlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NoZWxsLmRjNWQzNTU4ZmRkZWRkMTgzOTRmLm1pbi5qcyIsInNpZXZlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zaWV2ZS4zYjMyMjcyNmI5MDcxNDBiOTRlOC5taW4uanMiLCJzbGltIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zbGltLmM3YzBiYzBmMTczODM0NDA5NTExLm1pbi5qcyIsInNtYWxsdGFsayI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc21hbGx0YWxrLjk4YzEyMzc1Yzg3YzUxOTBjODM5Lm1pbi5qcyIsInNtYXJ0eSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc21hcnR5LjdiYTYyMzc3ZjU5ZjcxNzY5OTk3Lm1pbi5qcyIsInNvbHIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NvbHIuMjZjNGU0MTliMGM4Nzk5YmJiN2QubWluLmpzIiwic295IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zb3kuODhlOTVmZmI0NWE0YWM0MjQ1YTYubWluLmpzIiwic3BhcnFsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zcGFycWwuOGMwNTMxMTEwZDhhOWNjMzA1YWYubWluLmpzIiwic3ByZWFkc2hlZXQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NwcmVhZHNoZWV0LmJjOWFhODM3MmQ5OTQxOTFiZGY1Lm1pbi5qcyIsInNxbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc3FsLjEwOTQzZmQ0YjIzZjIzMjg3MzQ2Lm1pbi5qcyIsInN0ZXgiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3N0ZXguNWNlODFjZGQwMjNiODlhZWU3OWEubWluLmpzIiwic3R5bHVzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zdHlsdXMuZjM5N2YwMmRlMzU2YWU2ZjljNzAubWluLmpzIiwic3dpZnQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3N3aWZ0LmY5ZTNhMThhMTQ5NGM2NTAyMmQ3Lm1pbi5qcyIsInRjbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdGNsLmVlMTRjZTM1MjgzM2M0ZmM0NzllLm1pbi5qcyIsInRleHRpbGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3RleHRpbGUuNzM1ZjIyNTQ4MWViNTczNDEyMDkubWluLmpzIiwidGlkZGx5d2lraSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdGlkZGx5d2lraS5jMjMxOTcyNDQ3ZWQxYmJlMDQ0OC5taW4uanMiLCJ0aWtpIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ190aWtpLmQ3N2YwZTY2ZTczZWNjZGRjNGJiLm1pbi5qcyIsInRvbWwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3RvbWwuNDA2NWI0ZWMwNjU3MDQwMzU3MDQubWluLmpzIiwidG9ybmFkbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdG9ybmFkby4zMzMzMDlkY2Y0MTUxNGEzYTNmZC5taW4uanMiLCJ0cm9mZiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHJvZmYuZjZiMGZhMDg3NDExMTllZjZhNWMubWluLmpzIiwidHRjbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHRjbi4yNWZkMGZmNzI5ZGIxNmYwMTM2Yy5taW4uanMiLCJ0dGNuOmNmZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHRjbi1jZmcuYTY2ZTNhNGI0YmQ4NTcxY2U2ODAubWluLmpzIiwidHVydGxlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ190dXJ0bGUuZDczOTljN2M3MDhhZTFhNzNmNDUubWluLmpzIiwidHdpZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHdpZy43MWYxMjNiZGQzNDIyYzY4MzI4MS5taW4uanMiLCJ2YiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdmIuYjA5MTIzYzZiYzFlNGJlMzg5ZWMubWluLmpzIiwidmJzY3JpcHQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Zic2NyaXB0Ljk5OTdiYmY5NWFlYTAyNTQ1YmE3Lm1pbi5qcyIsInZlbG9jaXR5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192ZWxvY2l0eS42NjdlYTQ5ZTJhNTZlN2RlZTlhZS5taW4uanMiLCJ2ZXJpbG9nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192ZXJpbG9nLmU2NjEwN2FjNTY3ZTJhZmZkNjEwLm1pbi5qcyIsInZoZGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3ZoZGwuYjA3ZmU3OWNmYTlmNWFmNjIxNmUubWluLmpzIiwidnVlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192dWUuNTljZWYxMTE3ZWRlYzg3YjU1NzIubWluLmpzIiwieG1sIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ194bWwuMWNjNGVjMzllM2VjNTE1YWFjYTYubWluLmpzIiwieHF1ZXJ5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ194cXVlcnkuNzhjMGViNzgzYzc1YTUyN2VmNjQubWluLmpzIiwieWFtbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfeWFtbC5hMDUyMTJiODEwMDcxYjVjNjEzZi5taW4uanMiLCJ6ODAiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3o4MC41Njc5ODM1ZmMzMTE0YzU2MDBlMi5taW4uanMifX0sIm5vdGlmaWNhdGlvbl9zb3VuZHMiOlt7InZhbHVlIjoiYjIubXAzIiwibGFiZWwiOiJEaW5nIiwidXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzdlOTFcL3NvdW5kc1wvcHVzaFwvYjIubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9iMi5vZ2cifSx7InZhbHVlIjoiYW5pbWFsX3N0aWNrLm1wMyIsImxhYmVsIjoiQm9pbmciLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9hbmltYWxfc3RpY2subXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9hbmltYWxfc3RpY2sub2dnIn0seyJ2YWx1ZSI6ImJlZW5fdHJlZS5tcDMiLCJsYWJlbCI6IkRyb3AiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9iZWVuX3RyZWUubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9iZWVuX3RyZWUub2dnIn0seyJ2YWx1ZSI6ImNvbXBsZXRlX3F1ZXN0X3JlcXVpcmVtZW50Lm1wMyIsImxhYmVsIjoiVGEtZGEiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9jb21wbGV0ZV9xdWVzdF9yZXF1aXJlbWVudC5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2NvbXBsZXRlX3F1ZXN0X3JlcXVpcmVtZW50Lm9nZyJ9LHsidmFsdWUiOiJjb25maXJtX2RlbGl2ZXJ5Lm1wMyIsImxhYmVsIjoiUGxpbmsiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9jb25maXJtX2RlbGl2ZXJ5Lm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvY29uZmlybV9kZWxpdmVyeS5vZ2cifSx7InZhbHVlIjoiZmxpdHRlcmJ1Zy5tcDMiLCJsYWJlbCI6IldvdyIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2ZsaXR0ZXJidWcubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9mbGl0dGVyYnVnLm9nZyJ9LHsidmFsdWUiOiJoZXJlX3lvdV9nb19saWdodGVyLm1wMyIsImxhYmVsIjoiSGVyZSB5b3UgZ28iLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9oZXJlX3lvdV9nb19saWdodGVyLm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaGVyZV95b3VfZ29fbGlnaHRlci5vZ2cifSx7InZhbHVlIjoiaGlfZmxvd2Vyc19oaXQubXAzIiwibGFiZWwiOiJIaSIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2hpX2Zsb3dlcnNfaGl0Lm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaGlfZmxvd2Vyc19oaXQub2dnIn0seyJ2YWx1ZSI6Imtub2NrX2JydXNoLm1wMyIsImxhYmVsIjoiS25vY2sgQnJ1c2giLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9rbm9ja19icnVzaC5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2tub2NrX2JydXNoLm9nZyJ9LHsidmFsdWUiOiJzYXZlX2FuZF9jaGVja291dC5tcDMiLCJsYWJlbCI6Ildob2EhIiwidXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzdlOTFcL3NvdW5kc1wvcHVzaFwvc2F2ZV9hbmRfY2hlY2tvdXQubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9zYXZlX2FuZF9jaGVja291dC5vZ2cifSx7InZhbHVlIjoiaXRlbV9waWNrdXAubXAzIiwibGFiZWwiOiJZb2luayIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2l0ZW1fcGlja3VwLm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaXRlbV9waWNrdXAub2dnIn0seyJ2YWx1ZSI6Imh1bW11cy5tcDMiLCJsYWJlbCI6Ikh1bW11cyIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZmE5XC9zb3VuZHNcL3B1c2hcL2h1bW11cy5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2h1bW11cy5vZ2cifSx7InZhbHVlIjoibm9uZSIsImxhYmVsIjoiTm9uZSJ9XSwiYWxlcnRfc291bmRzIjpbeyJ2YWx1ZSI6ImZyb2cubXAzIiwibGFiZWwiOiJGcm9nIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvYTM0YVwvc291bmRzXC9mcm9nLm1wMyJ9XSwiY2FsbF9zb3VuZHMiOlt7InZhbHVlIjoiY2FsbFwvYWxlcnRfdjIubXAzIiwibGFiZWwiOiJBbGVydCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvYWxlcnRfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL2luY29taW5nX3JpbmdfdjIubXAzIiwibGFiZWwiOiJJbmNvbWluZyByaW5nIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC9pbmNvbWluZ19yaW5nX3YyLm1wMyJ9LHsidmFsdWUiOiJjYWxsXC9vdXRnb2luZ19yaW5nX3YyLm1wMyIsImxhYmVsIjoiT3V0Z29pbmcgcmluZyIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvb3V0Z29pbmdfcmluZ192Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwvcG9wX3YyLm1wMyIsImxhYmVsIjoiSW5jb21pbmcgcmVhY3Rpb24iLCJ1cmwiOiJodHRwczpcL1wvc2xhY2suZ2xvYmFsLnNzbC5mYXN0bHkubmV0XC8wOGY3XC9zb3VuZHNcL2NhbGxcL3BvcF92Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwvdGhleV9sZWZ0X2NhbGxfdjIubXAzIiwibGFiZWwiOiJUaGV5IGxlZnQgY2FsbCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvdGhleV9sZWZ0X2NhbGxfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL3lvdV9sZWZ0X2NhbGxfdjIubXAzIiwibGFiZWwiOiJZb3UgbGVmdCBjYWxsIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC95b3VfbGVmdF9jYWxsX3YyLm1wMyJ9LHsidmFsdWUiOiJjYWxsXC90aGV5X2pvaW5lZF9jYWxsX3YyLm1wMyIsImxhYmVsIjoiVGhleSBqb2luZWQgY2FsbCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvdGhleV9qb2luZWRfY2FsbF92Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwveW91X2pvaW5lZF9jYWxsX3YyLm1wMyIsImxhYmVsIjoiWW91IGpvaW5lZCBjYWxsIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC95b3Vfam9pbmVkX2NhbGxfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL2NvbmZpcm1hdGlvbl92Mi5tcDMiLCJsYWJlbCI6IkNvbmZpcm1hdGlvbiIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvY29uZmlybWF0aW9uX3YyLm1wMyJ9XSwiY2FsbF9zb3VuZHNfdmVyc2lvbiI6InYyIiwiYTExeV9zb3VuZHMiOltdLCJpbWciOnsiYXBwX2ljb24iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvODA1ODhcL2ltZ1wvc2xhY2tfZ3Jvd2xfaWNvbl92b2d1ZS5wbmcifSwicGFnZV9uZWVkc19lbnRlcnByaXNlIjpmYWxzZSwicGFnZV9uZWVkc19jdXN0b21fZW1vamkiOmZhbHNlLCJpc19kZXByZWNhdGVkX3dlYmNsaWVudF9icm93c2VyIjpmYWxzZSwiaXNfdW5zdXBwb3J0ZWRfd2ViY2xpZW50X2Jyb3dzZXIiOnRydWUsImRlZmF1bHRfdHoiOiJBbWVyaWNhXC9Mb3NfQW5nZWxlcyIsImZlYXR1cmVfYnVpbGRlcl9hcHBfY29sbGFib3JhdG9ycyI6ZmFsc2UsImZlYXR1cmVfYXVkaXRfbG9nc192aWV3IjpmYWxzZSwiZmVhdHVyZV9hdWRpdF9sb2dzX3ZpZXdfd29ya3NwYWNlIjpmYWxzZSwiZmVhdHVyZV9kYXRhX2xvY2F0aW9uX3ZpZXciOmZhbHNlLCJmZWF0dXJlX3NrX2kxOG4iOmZhbHNlLCJmZWF0dXJlX29yZ19tb2Rlcm5fc2V0dGluZ19wYWdlIjpmYWxzZSwiZmVhdHVyZV9vcmdfbW9kZXJuX3NlY3VyaXR5X3ByZWZlcmVuY2VzX3BhZ2UiOmZhbHNlLCJmZWF0dXJlX29yZ19tb2Rlcm5fc3NvX3ByZWZlcmVuY2VzX3BhZ2UiOnRydWUsImZlYXR1cmVfaWRwX2dyb3VwX2NvdW50IjpmYWxzZSwiZmVhdHVyZV9tMTFuX29yZ190ZWFtX292ZXJ2aWV3IjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2V4cG9ydF9pbXBvcnQiOnRydWUsImZlYXR1cmVfYWNjZXNzaWJsZV9zZWxlY3RzIjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2NoYW5uZWxfYWN0aW9ucyI6ZmFsc2UsImZlYXR1cmVfYnVpbGRlcl9hcHBfcmVtb3ZhbCI6ZmFsc2UsImZlYXR1cmVfYnVpbGRlcl9kaXNhYmxlX2dsb2JhbF90cmlnZ2VycyI6dHJ1ZSwiZmVhdHVyZV93b3JrZmxvd19idWlsZGVyX2VuYWJsZWRfb3JnX3NldHRpbmciOmZhbHNlLCJmZWF0dXJlX2J1aWxkZXJfY2FuX2FjY2VzcyI6ZmFsc2UsImZlYXR1cmVfc2hhcmVkX2NoYW5uZWxzX3JlbW92ZV9iZXRhX2xhYmVsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfbm9fb25lX3ByZWYiOmZhbHNlLCJmZWF0dXJlX2VzY19ncmFudWxhcl90ZWFtX3ByZWZzIjpmYWxzZSwiZmVhdHVyZV9lc2NfZ3JhbnVsYXJfdGVhbV9wcmVmc19jbGllbnQiOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2RuZCI6ZmFsc2UsImZlYXR1cmVfY29udGV4dF9iYXIiOnRydWUsImZlYXR1cmVfY29udGV4dF9iYXJfY3VzdG9tX3N0YXR1cyI6ZmFsc2UsImZlYXR1cmVfY29udGV4dF9iYXJfZ3Vlc3RzIjpmYWxzZSwiZmVhdHVyZV9lc2Nfd29ya3NwYWNlX3NldHRpbmdzX2NsaWVudCI6ZmFsc2UsImZlYXR1cmVfY2VfZW5nX2hjMnNsYWNrIjpmYWxzZSwiZmVhdHVyZV9tdWx0aV9maWxlX2xheW91dCI6dHJ1ZSwiZmVhdHVyZV9yaWNoX3RleHRfbGlua3MiOnRydWUsImZlYXR1cmVfcmljaF90ZXh0X3NsYXNoX2NvbW1tYW5kcyI6ZmFsc2UsImZlYXR1cmVfbWlncmF0aW9uX29yZ19hcHByb3ZhbHMiOnRydWUsImZlYXR1cmVfbmV3eHBfMzI2NiI6ZmFsc2UsImZlYXR1cmVfdGlueXNwZWNrIjpmYWxzZSwiZmVhdHVyZV9kZXNrdG9wX2NvcHlfdGV4dCI6ZmFsc2UsImZlYXR1cmVfd2ViYXBwX2Fsd2F5c19jb2xsZWN0X2luaXRpYWxfdGltZV9wZXJpb2Rfc3RhdHMiOmZhbHNlLCJmZWF0dXJlX2ZsYW5uZWxfdXNlX2NhbmFyeV9zb21ldGltZXMiOmZhbHNlLCJmZWF0dXJlX3NzYl9xMzE5X2RlcHJlY2F0aW9uIjpmYWxzZSwiZmVhdHVyZV9zc2JfcTMxOV9kZXByZWNhdGlvbl9kYXJrIjpmYWxzZSwiZmVhdHVyZV9zc2JfcTMxOV9kZXByZWNhdGlvbl9tb2RhbCI6ZmFsc2UsImZlYXR1cmVfc3NiX3EzMTlfZGVwcmVjYXRpb25fYmxvY2siOmZhbHNlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X3Vuc3VwcG9ydGVkIjp0cnVlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X3Vuc3VwcG9ydGVkX3RvYXN0Ijp0cnVlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X21vYmlsZSI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vdXRkYXRlZCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vdXRkYXRlZF90b2FzdCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vcyI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vc190b2FzdCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9tb2RhbCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9ibG9jayI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfZ2V0X21lbWJlcl9ieV9uYW1lIjpmYWxzZSwiZmVhdHVyZV9yZWFjdF9maWxlX3ZpZXdlciI6ZmFsc2UsImZlYXR1cmVfcmVhY3RfZmlsZV92aWV3ZXJfbmF2aWdhdGlvbiI6dHJ1ZSwiZmVhdHVyZV91bmtub3duX2ZpbGVzIjpmYWxzZSwiZmVhdHVyZV9hZGRfbWVzc2FnZV9wZXJmIjpmYWxzZSwiZmVhdHVyZV9maXhfY3VzdG9tX2Vtb2ppX2Vycm9ycyI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5fZGVsZXRlX2ZpbGUiOnRydWUsImZlYXR1cmVfc29uaWNfY2hhbm5lbF9vcHRpb25zIjpmYWxzZSwiZmVhdHVyZV9zb25pY19kZWx1eGVfdG9hc3QiOnRydWUsImZlYXR1cmVfc29uaWNfZGVsdXhlX3RvYXN0X2V4aXN0aW5nIjp0cnVlLCJmZWF0dXJlX3NvbmljX2RlbHV4ZV90b2FzdF9kYXJrIjp0cnVlLCJmZWF0dXJlX3NlbGVjdF9tb2RlbF9vcHRpb25fZmV0Y2hlcl9tMTFuIjpmYWxzZSwiZmVhdHVyZV9hMTF5X21lc3NhZ2Vfc3VtbWFyeSI6dHJ1ZSwiZmVhdHVyZV9yZXRyeV9uZXdfaW1hZ2VzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2RldGFpbHNfbWVtYmVyc2hpcF9saXN0IjpmYWxzZSwiZmVhdHVyZV9hbGxfZG1fbXV0ZSI6ZmFsc2UsImZlYXR1cmVfYWxsX2RtX211dGVfYm90cyI6ZmFsc2UsImZlYXR1cmVfZmlsZV90aHJlYWRzIjp0cnVlLCJmZWF0dXJlX2ZpbGVfdGhyZWFkc19kYXJrX2xhdW5jaCI6dHJ1ZSwiZmVhdHVyZV9icm9hZGNhc3RfaW5kaWNhdG9yIjp0cnVlLCJmZWF0dXJlX25ld19yZXBsaWVzX2FmdGVyX2JjYXN0Ijp0cnVlLCJmZWF0dXJlX3NvbmljX2Vtb2ppIjpmYWxzZSwiZmVhdHVyZV9lbW9qaV9zZWFyY2hfa2V5d29yZHNfaW5fYXV0b2NvbXBsZXRlIjpmYWxzZSwiZmVhdHVyZV9jdXN0b21fZW1vamlfc2VhcmNoX2J5X2NyZWF0b3IiOnRydWUsImZlYXR1cmVfc29uaWNfZnJlcXVlbnRfZW1vamlfZnJvbV9wcmVmIjpmYWxzZSwiZmVhdHVyZV9zb25pY19pbWdfcHJveHkiOnRydWUsImZlYXR1cmVfZW1haWxfaW5nZXN0aW9uIjpmYWxzZSwiZmVhdHVyZV9zaWRlYmFyX2NvbnRleHRfbWVudSI6ZmFsc2UsImZlYXR1cmVfYXR0YWNobWVudHNfaW5saW5lIjpmYWxzZSwiZmVhdHVyZV9maXhfZmlsZXMiOnRydWUsImZlYXR1cmVfcGFnaW5nX2FwaSI6ZmFsc2UsImZlYXR1cmVfYWFhX2FkbWluX2FwaXMiOmZhbHNlLCJmZWF0dXJlX2FhYV9hZG1pbl9hcGlzX2V2ZW50c19kb2NzIjp0cnVlLCJmZWF0dXJlX3RyaWdnZXJfdXNlcl9kbV9jbGljayI6dHJ1ZSwiZmVhdHVyZV9hcHBfbGF1bmNoZXIiOmZhbHNlLCJmZWF0dXJlX3dhbG1hcnRfb29tX2FkbWluX3BhZ2VfZml4IjpmYWxzZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X3ByaW1lciI6ZmFsc2UsImZlYXR1cmVfZGlzbWlzc19hZGRfYXBwcyI6dHJ1ZSwiZmVhdHVyZV9jdXN0b21fc3RhdHVzX2V4cGlyeSI6dHJ1ZSwiZmVhdHVyZV9jaGFubmVsX3NpZGViYXJfZHJhZnRzX3NlY3Rpb24iOnRydWUsImZlYXR1cmVfbmF2aWdhdGVfaGlzdG9yeSI6dHJ1ZSwiZmVhdHVyZV9jb21wb3NlX2Zsb3ciOmZhbHNlLCJmZWF0dXJlX2JldHRlcl9zbm9vemUiOnRydWUsImZlYXR1cmVfc29uaWNfZG5kX21hbmFnZXIiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2RuZF9ydG0iOmZhbHNlLCJmZWF0dXJlX3NvbmljX3ByZXNlbmNlX21hbmFnZXIiOmZhbHNlLCJmZWF0dXJlX2Zhc3Rlcl9jb3VudF9hbGxfdW5yZWFkcyI6dHJ1ZSwiZmVhdHVyZV9zb25pY191c2VyX2dyb3VwcyI6ZmFsc2UsImZlYXR1cmVfc29uaWNfdXNlcl9ncm91cHNfYTExeV9yZWZhY3RvciI6ZmFsc2UsImZlYXR1cmVfc29uaWNfdXNlcl9ncm91cHNfY29weV91cGRhdGUiOmZhbHNlLCJmZWF0dXJlX2xhenlfdXNlcl9ncm91cHMiOnRydWUsImZlYXR1cmVfc29uaWNfc2VydmljZV9kb3duIjp0cnVlLCJmZWF0dXJlX20xMW5fdXNlcl9mZXRjaF9zdGF0cyI6dHJ1ZSwiZmVhdHVyZV91bnRydXN0d29ydGh5X25hdmlnYXRvcl9vbmxpbmUiOnRydWUsImZlYXR1cmVfY29ubmVjdGl2aXR5X21hbmFnZXIiOnRydWUsImZlYXR1cmVfY2xpZW50X2Jvb3Rfc2hvdWxkX3JlbG9hZCI6ZmFsc2UsImZlYXR1cmVfZGF0YV9yZXNpZGVuY3lfZGVidWdnaW5nIjpmYWxzZSwiZmVhdHVyZV9lbnRfYXBwX21hbmFnZW1lbnRfcmVzdHJpY3Rpb24iOmZhbHNlLCJmZWF0dXJlX2dyaWRfYXJjaGl2ZV9saW5rX2ZpeGVzIjp0cnVlLCJmZWF0dXJlX3NvbmljX21lbWJlcl9kaXJlY3RvcnkiOmZhbHNlLCJmZWF0dXJlX21vZGVybml6ZWRfeHdzX3Blcm1hbGlua19kaWFsb2dzIjp0cnVlLCJmZWF0dXJlX3NhZmVndWFyZF9vcmdfcmV0ZW50aW9uIjp0cnVlLCJmZWF0dXJlX2Rhc2hib2FyZF9zb3J0YWJsZV9saXN0cyI6ZmFsc2UsImZlYXR1cmVfZW50ZXByaXNlX3VzZXJfdGVhbXNfdXBkYXRlIjp0cnVlLCJmZWF0dXJlX3NrX2xvYWRpbmdfYnV0dG9uX21vdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3NrX2Jhc2VfaWNvbiI6ZmFsc2UsImZlYXR1cmVfc2FtbF9hdXRobl9rZXlfZXhwaXJ5X2RhdGUiOnRydWUsImZlYXR1cmVfd3RhX3Blcm1fYXBpX3NwbGl0IjpmYWxzZSwiZmVhdHVyZV93dGFfY29udmVyc2F0aW9uc19hcGlfY2hhbm5lbF9jcmVhdGVkX21zZyI6ZmFsc2UsImZlYXR1cmVfZmlsZV9saW5rc19iZXR0ZXJlciI6ZmFsc2UsImZlYXR1cmVfdW5zYWZlX3Rsc19kZXByZWNhdGlvbl9hcGlfdmlldyI6dHJ1ZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2luZm9fY29uc29saWRhdGlvbl9waGFzZV8xIjpmYWxzZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2luZm9fY29uc29saWRhdGlvbl9waGFzZV8yIjpmYWxzZSwiZmVhdHVyZV9hcHBfY29tcGxpYW5jZV9pbmZvX2NvbGxlY3Rpb24iOmZhbHNlLCJmZWF0dXJlX2d1ZXN0X2FwaV9jaGFuZ2VzIjpmYWxzZSwiZmVhdHVyZV9nZHByX2V4cG9ydHMiOnRydWUsImZlYXR1cmVfYWxsb3dfYnVsa19kZWxldGVfam9pbl9sZWF2ZV9tZXNzYWdlcyI6dHJ1ZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfYmxvY2tfbGFyZ2Vfb3JncyI6ZmFsc2UsImZlYXR1cmVfY2hhbm5lbF9pc19yZW1vdmVfY3JlYXRlX3NoYXJlZF9jaGFubmVsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfbmV0d29yayI6ZmFsc2UsImZlYXR1cmVfbXBpbV9jaGFubmVscyI6ZmFsc2UsImZlYXR1cmVfY29udmVyc2F0aW9uc19saXN0Ijp0cnVlLCJmZWF0dXJlX2dkcHJfdXNlcl9qb2luX3RvcyI6dHJ1ZSwiZmVhdHVyZV91c2VyX2ludml0ZV90b3NfYXByaWxfMjAxOCI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5pemVfaW52aXRlcyI6dHJ1ZSwiZmVhdHVyZV9jdXN0b21fZW1vamlfZG93bmxvYWRfYnRuIjpmYWxzZSwiZmVhdHVyZV9pbnZpdGVzX3Nzb19jaGVjayI6dHJ1ZSwiZmVhdHVyZV9pbmNyZW1lbnRhbF91bnJlYWRfY291bnRzIjpmYWxzZSwiZmVhdHVyZV9uZXVlX3R5cGUiOmZhbHNlLCJmZWF0dXJlX2N1c3RfYWNxX2kxOG5fdHdlYWtzIjpmYWxzZSwiZmVhdHVyZV9zZWN1cml0eV9sZWdhbF9wYWdlX3VwZGF0ZXMiOmZhbHNlLCJmZWF0dXJlX3Byb2pfdXBkYXRlZF9wcmljaW5nX2xwIjp0cnVlLCJmZWF0dXJlX3Byb2pfd29ya2Zsb3dfYnVpbGRlcl9scCI6ZmFsc2UsImZlYXR1cmVfcHJval9pZHJfd2ViIjp0cnVlLCJmZWF0dXJlX3Byb2pfaWRyX3dlYl9jdGEiOnRydWUsImZlYXR1cmVfcHJval9zcGVjX2Vhcmx5X2JpcmQiOmZhbHNlLCJmZWF0dXJlX3Byb2pfYnJhbmRfdG9fcGVyZl9wYWdlIjpmYWxzZSwiZmVhdHVyZV9wcm9qX3ByaWNpbmdfc2lnbmVkX291dF91cGRhdGVzIjp0cnVlLCJmZWF0dXJlX3BhcnRuZXJfem9vbV9scCI6dHJ1ZSwiZmVhdHVyZV93aGl0ZWxpc3RfemVuZGVza19jaGF0X3dpZGdldCI6ZmFsc2UsImZlYXR1cmVfbGl2ZV9zdXBwb3J0X2ZyZWVfcGxhbiI6ZmFsc2UsImZlYXR1cmVfb2ZmbGluZV9tb2RlIjpmYWxzZSwiZmVhdHVyZV9mb3JjZV9sc19jb21wcmVzc2lvbiI6ZmFsc2UsImZlYXR1cmVfdXNlX2ltZ3Byb3h5X3Jlc2l6aW5nIjp0cnVlLCJmZWF0dXJlX3NoYXJlX21lbnRpb25fY29tbWVudF9jbGVhbnVwIjpmYWxzZSwiZmVhdHVyZV9leHRlcm5hbF9maWxlcyI6ZmFsc2UsImZlYXR1cmVfZGVza3RvcF9zb25pY19yb2xsb3V0Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfc29uaWNfYmV0YV9yb2xsb3V0Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfc29uaWNfZGlzYWJsZV9yb2xsb3V0IjpmYWxzZSwiZmVhdHVyZV9lbGVjdHJvbl9tZW1vcnlfbG9nZ2luZyI6ZmFsc2UsImZlYXR1cmVfbmF0aXZlX2FwcF9zdGFydF9ub25fbWFjIjpmYWxzZSwiZmVhdHVyZV9sb2NhbGl6YXRpb25fcGhhc2VfdHdvIjp0cnVlLCJmZWF0dXJlX2xvY2FsZV9lc19MQSI6dHJ1ZSwiZmVhdHVyZV9sb2NhbGVfZW5fR0IiOnRydWUsImZlYXR1cmVfbG9jYWxlX3B0X0JSIjp0cnVlLCJmZWF0dXJlX25ld19sb2NhbGVfdG9hc3QiOnRydWUsImZlYXR1cmVfY2hhbm5lbF9leHBvcnRzIjpmYWxzZSwiZmVhdHVyZV9kb2NzIjp0cnVlLCJmZWF0dXJlX2RvY3NfdHJhbnNsYXRpb25zIjpmYWxzZSwiZmVhdHVyZV9kb2NzX21lbnRpb25zX2FuZF9jaGFubmVscyI6ZmFsc2UsImZlYXR1cmVfYm9vdF9mYWxsYmFja192aWV3X3YxIjpmYWxzZSwiZmVhdHVyZV9jYWxsc19lc2NfdWkiOnRydWUsImZlYXR1cmVfc3BvY2tfY2FsbHMiOnRydWUsImZlYXR1cmVfbW9kZXJuX2NhbGxzX2ludml0ZSI6ZmFsc2UsImZlYXR1cmVfc3BvY2tfY2FsbHNfYTExeSI6ZmFsc2UsImZlYXR1cmVfc3BvY2tfY2FsbHNfZHJhd19jb2xvcl9waWNrZXIiOmZhbHNlLCJmZWF0dXJlX2NhbGxzX3N1cnZleV9yZXF1ZXN0X3Jlc3BvbnNlIjp0cnVlLCJmZWF0dXJlX3JlbW90ZV9maWxlc19kcm9wYm94X21pZ3JhdGlvbiI6dHJ1ZSwiZmVhdHVyZV9yZW1vdGVfZmlsZXNfZHJvcGJveF9taWdyYXRpb25fbGFiZWxzIjp0cnVlLCJmZWF0dXJlX3JlbW90ZV9maWxlc19hcGkiOnRydWUsImZlYXR1cmVfZGVmYXVsdF9zaGFyZWRfY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfcmVhY3RfbGZzIjpmYWxzZSwiZmVhdHVyZV9sb2dfcXVpY2tzd2l0Y2hlcl9xdWVyaWVzIjp0cnVlLCJmZWF0dXJlX21jX21lbnRpb25zX3RhYl9wcmVmc19hbmRfY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfdG9rZW5faXBfd2hpdGVsaXN0Ijp0cnVlLCJmZWF0dXJlX3NpZGViYXJfdGhlbWVfdW5kbyI6ZmFsc2UsImZlYXR1cmVfaGlkZV9vbl9zdGFydHVwIjpmYWxzZSwiZmVhdHVyZV9kb250X3NldF9jaGFubmVsX21lbWJlcnNoaXBfdHdpY2UiOmZhbHNlLCJmZWF0dXJlX2FsbG93X2ludHJhX3dvcmRfZm9ybWF0dGluZyI6dHJ1ZSwiZmVhdHVyZV9hbGxvd19jamtfYXV0b2NvbXBsZXRlIjp0cnVlLCJmZWF0dXJlX2kxOG5fY2hhbm5lbHNfdmFsaWRhdGVfZW1vamkiOnRydWUsImZlYXR1cmVfZndfZW5nX25vcm1hbGl6YXRpb24iOnRydWUsImZlYXR1cmVfc2xpbV9zY3JvbGxiYXIiOmZhbHNlLCJmZWF0dXJlX3ByaW1hcnlfc2VhcmNoIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fc291bmRzIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fZnV6enlfbWF0Y2hlciI6ZmFsc2UsImZlYXR1cmVfc2xpX2NoYW5uZWxfYXJjaGl2ZV9zdWdnZXN0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9zdGVlcGxlX2NodXJjaCI6dHJ1ZSwiZmVhdHVyZV9zdGVlcGxlX2NodXJjaF9saW5rIjp0cnVlLCJmZWF0dXJlX3N0ZWVwbGVfY2h1cmNoX2V4dCI6ZmFsc2UsImZlYXR1cmVfc3Ryb2xsZXJzX3RvX3BlcmNoIjp0cnVlLCJmZWF0dXJlX3NpZGViYXJfdmlydHVhbGl6ZWQiOmZhbHNlLCJmZWF0dXJlX2ZhbnRhaWxfbnVydHVyZSI6ZmFsc2UsImZlYXR1cmVfcG91cm92ZXIiOmZhbHNlLCJmZWF0dXJlX21vZGVybl9tcGltX21ha2VfbmFtZSI6ZmFsc2UsImZlYXR1cmVfcGVvcGxlX3NlYXJjaCI6ZmFsc2UsImZlYXR1cmVfcmVhY3RfbWVzc2FnZXMiOnRydWUsImZlYXR1cmVfZWRnZV91cGxvYWRfcHJveHlfY2hlY2siOmZhbHNlLCJmZWF0dXJlX2xlZ2FjeV9maWxlX3VwbG9hZF9hbmFseXRpY3MiOnRydWUsImZlYXR1cmVfc29uaWNfY2xpcGJvYXJkIjpmYWxzZSwiZmVhdHVyZV9zb25pY19hY3Rpdml0eSI6ZmFsc2UsImZlYXR1cmVfZWRpdF9wcm9maWxlX3NwZWVkX2J1bXAiOmZhbHNlLCJmZWF0dXJlX2Rvd25sb2Fkc19wb2xpc2giOmZhbHNlLCJmZWF0dXJlX3NvbmljX2RtX2Jyb3dzZXIiOnRydWUsImZlYXR1cmVfc29uaWNfZWRpdF9wcm9maWxlIjpmYWxzZSwiZmVhdHVyZV9zb25pY19maW5kX21vcmVfd2tzcHMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2lucHV0cyI6ZmFsc2UsImZlYXR1cmVfdGhyZWFkZWRfc2xhY2tfb3duZWRfcGx1Z2lucyI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfdW51c2VkX2NvbW1hbmRzIjp0cnVlLCJmZWF0dXJlX2hpZGVfdW5mdXJsX3VybHMiOmZhbHNlLCJmZWF0dXJlX3JlYWN0X21lbWJlcl9wcm9maWxlX2NhcmQiOmZhbHNlLCJmZWF0dXJlX2Vycm9yX2JvdW5kYXJ5X2NvcHkiOnRydWUsImZlYXR1cmVfc29uaWNfY2xvdWRfZmlsZXNfcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9zb25pY19zbmlwcGV0cyI6ZmFsc2UsImZlYXR1cmVfY29weV9jaGFubmVsX25hbWUiOmZhbHNlLCJmZWF0dXJlX2JveF9jb250ZW50X3BpY2tlciI6dHJ1ZSwiZmVhdHVyZV9mYWlsb3Zlcl9wcm94eV9jaGVjayI6ZmFsc2UsImZlYXR1cmVfYXBwX3N1YmRvbWFpbl9jaGVjayI6dHJ1ZSwiZmVhdHVyZV9zb25pY19kcmFmdF9taWdyYXRpb24iOnRydWUsImZlYXR1cmVfY2RuX2Rvd25sb2FkX3Rlc3QiOmZhbHNlLCJmZWF0dXJlX2FwcF9pbmRleCI6ZmFsc2UsImZlYXR1cmVfbW9kZXJuaXplX3NsYWNrX2FjdGlvbnMiOmZhbHNlLCJmZWF0dXJlX2dkcml2ZV9kb19ub3RfaW5zdGFsbF9ieV9kZWZhdWx0Ijp0cnVlLCJmZWF0dXJlX2RlbGV0ZV9tb3ZlZF9jaGFubmVscyI6dHJ1ZSwiZmVhdHVyZV9zaW5nbGVfd29ya3NwYWNlX3JlZGlyZWN0Ijp0cnVlLCJmZWF0dXJlX3plcm9fd29ya3NwYWNlX29uYm9hcmRpbmciOnRydWUsImZlYXR1cmVfb29tX212X2NoYW5uZWxzX2xpc3QiOnRydWUsImZlYXR1cmVfc3NvX2Zvcm1hdHRpbmdfZXJyb3IiOnRydWUsImZlYXR1cmVfc2luZ2xlX3VzZXJfd29ya3NwYWNlX3BhZ2luYXRpb24iOnRydWUsImZlYXR1cmVfZWttX3BoYXNlXzIiOnRydWUsImZlYXR1cmVfZWttX2JhY2tmaWxsX2FkZF9zbGVlcCI6ZmFsc2UsImZlYXR1cmVfZWttX2ZpbGVfcmV2b2NhdGlvbiI6ZmFsc2UsImZlYXR1cmVfZWttX3Jldm9jYXRpb25fYXBpX2NoYW5nZXMiOmZhbHNlLCJmZWF0dXJlX2VrbV9tZXNzYWdlX3Jldm9jYXRpb25fcG9sbGluZ190ZXN0IjpmYWxzZSwiZmVhdHVyZV9la21fbWVzc2FnZV9yZXZvY2F0aW9uIjp0cnVlLCJmZWF0dXJlX2xvbmdlcl9jaGFubmVsX25hbWVzIjp0cnVlLCJmZWF0dXJlX21zX2xhdGVzdCI6dHJ1ZSwiZmVhdHVyZV9ndWVzdHNfdXNlX2VudGl0bGVtZW50cyI6dHJ1ZSwiZmVhdHVyZV9hcHBfc3BhY2UiOnRydWUsImZlYXR1cmVfbTExbl9hcHBzX2Jyb3dzZXIiOmZhbHNlLCJmZWF0dXJlX3Nob3dfaW5zdGFsbGVkX2FwcF9kbV9zdWdnZXN0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9hcHBfc3BhY2VfbGlua3MiOnRydWUsImZlYXR1cmVfYXBwX2NhbnZhc2VzIjpmYWxzZSwiZmVhdHVyZV9hcHBfdmlld3NfdjEiOmZhbHNlLCJmZWF0dXJlX2FwcF92aWV3c19hcGlzX3YxIjpmYWxzZSwiZmVhdHVyZV9hcHBfaG9tZV9hZG1pbl9wYWdlcyI6ZmFsc2UsImZlYXR1cmVfYXBwX3ZpZXdzX3JlbWluZGVycyI6ZmFsc2UsImZlYXR1cmVfYXBwX3ZpZXdzX3JlbWluZGVyc19saXN0IjpmYWxzZSwiZmVhdHVyZV9ibG9ja3NfcmVtaW5kZXJzX2xpc3QiOmZhbHNlLCJmZWF0dXJlX21lc3NhZ2VfYmxvY2tzIjpmYWxzZSwiZmVhdHVyZV9zaWxlbmNlX2FwcF9kbXMiOmZhbHNlLCJmZWF0dXJlX3NldF90el9hdXRvbWF0aWNhbGx5Ijp0cnVlLCJmZWF0dXJlX2NvbmZpcm1fY2xlYXJfYWxsX3VucmVhZHNfcHJlZiI6dHJ1ZSwiZmVhdHVyZV9ibG9ja19tb3VudHMiOnRydWUsImZlYXR1cmVfYXR0YWNobWVudHNfdjIiOnRydWUsImZlYXR1cmVfYmxvY2tfa2l0X2RvY3VtZW50YXRpb24iOnRydWUsImZlYXR1cmVfYmxvY2tfa2l0X2V4cGFuZGFibGVfYmxvY2siOmZhbHNlLCJmZWF0dXJlX2dyb3VwX2Jsb2NrIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfZGVlcF9saW5rcyI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X211bHRpX3NlbGVjdHMiOmZhbHNlLCJmZWF0dXJlX3Nob3dfYmxvY2tfa2l0X2luX3NoYXJlX2RpYWxvZ3MiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2tpdF9ldmVudF9ibG9jayI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X3JlZmFjdG9yIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfc2hvdWxkX3VzZV9zbGFja19raXRfc2VsZWN0Ijp0cnVlLCJmZWF0dXJlX2Jsb2NrX2tpdF91c2VyX2Jsb2NrIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfcmFkaW9fYnV0dG9ucyI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X2NoZWNrYm94ZXMiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2tpdF9yYW5nZV9kYXRlcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9hZGRfYXBwX2hvbWVfdGVhbV9uYW1lIjpmYWxzZSwiZmVhdHVyZV9kYXRlX3RpbWVfcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9iZWFjb25fanNfZXJyb3JzIjpmYWxzZSwiZmVhdHVyZV9iZWFjb25fanNfYWRtaW5fZXJyb3JzIjpmYWxzZSwiZmVhdHVyZV9kaWFsb2dzX3YyX21vYmlsZSI6dHJ1ZSwiZmVhdHVyZV91c2VyX2FwcF9kaXNhYmxlX3NwZWVkX2J1bXAiOnRydWUsImZlYXR1cmVfb25lZHJpdmVfcGlja2VyIjp0cnVlLCJmZWF0dXJlX29uZWRyaXZlX3JlZGlyZWN0X3VyaSI6dHJ1ZSwiZmVhdHVyZV9vbmVkcml2ZV9iZXR0ZXJfZXJyb3JzIjp0cnVlLCJmZWF0dXJlX29uZWRyaXZlX2xhbmRpbmdfcGFnZSI6dHJ1ZSwiZmVhdHVyZV9vbmVkcml2ZV9kZXByZWNpYXRpb25fYmFubmVyIjpmYWxzZSwiZmVhdHVyZV9vbmVkcml2ZV91cGRhdGVfdW5mdXJsX3N1Z2dlc3Rpb25zIjp0cnVlLCJmZWF0dXJlX2Rpc2FibGVfYm94X3BsdXNfbWVudSI6ZmFsc2UsImZlYXR1cmVfdHJhY3Rvcl9zaGFyZWRfaW52aXRlX2xpbmsiOnRydWUsImZlYXR1cmVfbmV3eHBfMjExOSI6dHJ1ZSwiZmVhdHVyZV90cmFjdG9yX2JhY2t1cF9jaGFubmVsbmFtZV9jb3B5Ijp0cnVlLCJmZWF0dXJlX3NrX3RhYmxlcyI6ZmFsc2UsImZlYXR1cmVfc29uaWNfZGVncmFkZWRfYmFubmVyIjp0cnVlLCJmZWF0dXJlX2RlZ3JhZGVkX3NlbmQiOnRydWUsImZlYXR1cmVfZmxhbm5lbF94aHIiOnRydWUsImZlYXR1cmVfZGVzeW5jX3Jlc3luYyI6ZmFsc2UsImZlYXR1cmVfdml0ZXNzX3NpZGViYXIiOnRydWUsImZlYXR1cmVfc3RyYW5nZXJfZGFuZ2VyIjpmYWxzZSwiZmVhdHVyZV9tZXNzYWdlX2hpc3RvcnlfY2ZtIjp0cnVlLCJmZWF0dXJlX2RlZ3JhZGVkX3J0bV9hbHdheXNfZmFpbHMiOmZhbHNlLCJmZWF0dXJlX2RlbGV0ZV90ZWFtX2FuZF9hcHBzIjp0cnVlLCJmZWF0dXJlX3BqcGVnIjpmYWxzZSwiZmVhdHVyZV9wZGZfdGh1bWIiOnRydWUsImZlYXR1cmVfYXBwc19tYW5hZ2VfcGVybWlzc2lvbnNfc2NvcGVfY2hhbmdlcyI6dHJ1ZSwiZmVhdHVyZV9yZW1pbmRlcl9jcm9zc193b3Jrc3BhY2UiOnRydWUsImZlYXR1cmVfc3BlZWR5X2Jvb3RfaGFuZGxlYmFycyI6ZmFsc2UsImZlYXR1cmVfc2FtbF9vd25lcnNfb25seSI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5fZHVubmluZ19iYW5uZXJzX2kxOG4iOnRydWUsImZlYXR1cmVfZmxhbm5lbF9hbHdheXNfdXNlX2NhbmFyeSI6ZmFsc2UsImZlYXR1cmVfc29uaWNfcmVkaXJlY3Rfb3B0X291dCI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdiI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdl9yb2xsYmFjayI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdl9sYXlvdXQiOmZhbHNlLCJmZWF0dXJlX2NsYXNzaWNfbmF2IjpmYWxzZSwiZmVhdHVyZV9uZXdfcmVhY3Rpb25zIjp0cnVlLCJmZWF0dXJlX3BhZ2VzX2V4YW1wbGUiOmZhbHNlLCJmZWF0dXJlX3NvbmljX3BpbnMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2NoYW5uZWxfYnJvd3NlciI6dHJ1ZSwiZmVhdHVyZV9zb25pY192aWRlb19wbGFjZWhvbGRlciI6dHJ1ZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2hvbWVfcGFnZV9yZWRlc2lnbiI6dHJ1ZSwiZmVhdHVyZV9oaWRkZW5fd2tzcF91bmZ1cmxzIjp0cnVlLCJmZWF0dXJlX2d1ZXN0X3drc3BfdW5mdXJscyI6ZmFsc2UsImZlYXR1cmVfd29ya3NwYWNlX3NjaW1fbWFuYWdlbWVudCI6ZmFsc2UsImZlYXR1cmVfdW5pZmllZF9tZW1iZXIiOmZhbHNlLCJmZWF0dXJlX25ld191bmlmaWVkX2xpc3RfZW50aXRpZXMiOmZhbHNlLCJmZWF0dXJlX3R1cm5fbXBkbV9ub3RpZnNfb24iOnRydWUsImZlYXR1cmVfYnJvd3Nlcl9kcmFnbmRyb3AiOmZhbHNlLCJmZWF0dXJlX2Rlc2t0b3BfZm9yY2VfcHJvZHVjdGlvbl9jaGFubmVsIjpmYWxzZSwiZmVhdHVyZV9kZXNrdG9wX2xvZ3NfdXBsb2FkIjpmYWxzZSwiZmVhdHVyZV9tYWNvc19kaXNhYmxlX2h3Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfbm90aWZpY2F0aW9uc18yMDE4IjpmYWxzZSwiZmVhdHVyZV9leGNlbF9vZmZpY2VfcHJldmlldyI6dHJ1ZSwiZmVhdHVyZV9vcmdfYXdhcmVfZXh0ZXJuYWxfc2hhcmVkX2NoYW5uZWxzIjp0cnVlLCJmZWF0dXJlX2VzY19kaXNjb25uZWN0X3YyX2NsaWVudCI6dHJ1ZSwiZmVhdHVyZV9lc2NfZGlzY29ubmVjdF92Ml9yZWxlYXNlX2RlcGVuZGVudF9jb3B5Ijp0cnVlLCJmZWF0dXJlX3F1aWxsX3VwZ3JhZGUiOnRydWUsImZlYXR1cmVfYWxseV9zb3VuZHMiOmZhbHNlLCJmZWF0dXJlX2JvdHNfbm90X21lbWJlcnMiOnRydWUsImZlYXR1cmVfd3RhX21vZGFsX20xMW4iOmZhbHNlLCJmZWF0dXJlX3d0YV9zdG9wX2NyZWF0aW9uIjp0cnVlLCJmZWF0dXJlX20xMW5fY2hhbm5lbF9kZXRhaWxzIjpmYWxzZSwiZmVhdHVyZV9ncm91cF9zY29wZXMiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2d1ZXN0X2FwcF9jcmVhdGlvbiI6dHJ1ZSwiZmVhdHVyZV9vYXV0aF9jaGFubmVsX3BpY2tlcnNfZmxhbm5lbCI6ZmFsc2UsImZlYXR1cmVfd3RhX29yZ19sZXZlbF9hcHBzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2FjdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3Nob3J0Y3V0c19idXR0b25fb25fbGVmdCI6ZmFsc2UsImZlYXR1cmVfY29sb3JmdWxfc2xhc2hfY29tbWFuZHMiOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfYWN0aW9uc19jbGllbnQiOmZhbHNlLCJmZWF0dXJlX3Nob3J0Y3V0c19wcm9tcHQiOnRydWUsImZlYXR1cmVfYWNjZXNzaWJsZV9kaWFsb2dzIjp0cnVlLCJmZWF0dXJlX2FwcF9hY3Rpb25zX2dsb2JhbCI6ZmFsc2UsImZlYXR1cmVfYXBwX2FjdGlvbnNfZmVfcmVmYWN0b3IiOmZhbHNlLCJmZWF0dXJlX3NoYXJlZF9jaGFubmVsX2ZyZWVfdHJpYWxfZmxvdyI6dHJ1ZSwiZmVhdHVyZV9jYWxsc19jbGlwYm9hcmRfYnJvYWRjYXN0aW5nX29wdGluIjp0cnVlLCJmZWF0dXJlX3NjcmVlbl9zaGFyZV9uZWVkc19hZXJvIjpmYWxzZSwiZmVhdHVyZV9zbGlfdHJlbmRpbmdfZGFzaGJvYXJkIjpmYWxzZSwiZmVhdHVyZV9pMThuX3NlbGVjdF9lbXB0eV9zdGF0ZV9zdHJpbmciOmZhbHNlLCJmZWF0dXJlX2FjY2Vzc2libGVfZnNfZGlhbG9ncyI6dHJ1ZSwiZmVhdHVyZV9jaGFubmVsX2Jyb3dzZXJfZHJvcGRvd24iOnRydWUsImZlYXR1cmVfdHJhcF9rYl93aXRoaW5fZnNfbW9kYWxzIjp0cnVlLCJmZWF0dXJlX2RpYWxvZ19zcGVlZGJ1bXAiOnRydWUsImZlYXR1cmVfbW9kZXJuX2ltYWdlX3ZpZXdlciI6dHJ1ZSwiZmVhdHVyZV9lbW9qaV9ieV9pZCI6dHJ1ZSwiZmVhdHVyZV93dGFfbm90aWZpY2F0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9tY19taWdyYXRpb25fYmFubmVyIjp0cnVlLCJmZWF0dXJlX2ZpbGVfY29tbWVudF9kZWxldGVkX3J0bV9oYW5kbGVyIjpmYWxzZSwiZmVhdHVyZV9hdHRhY2htZW50X3RleHRfbW9yZSI6ZmFsc2UsImZlYXR1cmVfYXJpYV9hcHBsaWNhdGlvbl9tb2RlIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcmVxdWVzdF93b3Jrc3BhY2VfZGlhbG9nIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcHJvZmlsZV9mbGV4cGFuZSI6ZmFsc2UsImZlYXR1cmVfc2NnX2NvbnZlcnNpb25fY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfcmVkdWNlX3VuZXhwZWN0ZWRfdW5pbnN0YWxscyI6dHJ1ZSwiZmVhdHVyZV9zb25pY19xdWlja19zd2l0Y2hlciI6ZmFsc2UsImZlYXR1cmVfaWRwX2dyb3VwX3dhcm5pbmciOmZhbHNlLCJmZWF0dXJlX3RyYWNrX3RpbWVfc3BlbnQiOnRydWUsImZlYXR1cmVfYW5ub3VuY2Vfb25seSI6dHJ1ZSwiZmVhdHVyZV9hbm5vdW5jZV9vbmx5X3dlYnNvY2tldCI6dHJ1ZSwiZmVhdHVyZV9hbm5vdW5jZV9vbmx5X3ByZWZfY2hhbmdlX21lc3NhZ2UiOnRydWUsImZlYXR1cmVfYW5ub3VuY2Vfb25seV9wcm9tbyI6ZmFsc2UsImZlYXR1cmVfYXRfbWVudGlvbl9pbnZpdGVzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2ludml0ZV90b2tlbml6YXRpb24iOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfaXNfbmV3X2NyZWF0ZV9lZGl0IjpmYWxzZSwiZmVhdHVyZV9jb21wb3NlX3Byb3RvdHlwZSI6ZmFsc2UsImZlYXR1cmVfaW1wb3J0c19jYW5jZWwiOmZhbHNlLCJmZWF0dXJlX2ltcG9ydHNfY2hhbm5lbF9zZXBhcmF0aW9uIjpmYWxzZSwiZmVhdHVyZV9ldmFsdWVfMjY0MV9kaXNhbGxvd19lbmZvcmNlX29yZ3dpZGVfcG9saWN5IjpmYWxzZSwiZmVhdHVyZV9lbWFpbF93b3Jrb2JqZWN0X3VpIjpmYWxzZSwiZmVhdHVyZV9lbWFpbF9ub3RpZnkiOmZhbHNlLCJmZWF0dXJlX2VtYWlsX3ByaXZhdGUiOnRydWUsImZlYXR1cmVfYXN5bmNfdXNlcnNfc2V0X3Bob3RvIjpmYWxzZSwiZmVhdHVyZV9lc2NfYWRtaW4iOnRydWUsImZlYXR1cmVfY3VzdG9taXplZF9kb21haW5fY2xhaW1pbmciOnRydWUsImZlYXR1cmVfb3JnX3dpZGVfbTExbiI6ZmFsc2UsImZlYXR1cmVfY2FsZW5kYXJfc2ltcGxlX2FnZW5kYV92aWV3IjpmYWxzZSwiZmVhdHVyZV9hbmFseXRpY3NfZW5hYmxlX2RpdmlzaW9uIjpmYWxzZSwiZmVhdHVyZV9zZWFyY2hfb25fbmFtZV9hbmRfZW1haWxfb25seSI6dHJ1ZSwiZmVhdHVyZV9lbnRlcnByaXNlX2FuYWx5dGljc19hcHBzX3RhYiI6ZmFsc2UsImZlYXR1cmVfZW50ZXJwcmlzZV9hbmFseXRpY3NfMjAxOV9xMV91cGRhdGUiOnRydWUsImZlYXR1cmVfaW5zaWdodHNfYWxsb3dfYWNjZXNzX3RvX2FwcCI6ZmFsc2UsImZlYXR1cmVfZXhpc3RpbmdfaGVscF9yZXF1ZXN0X2F0dGFjaG1lbnRzIjp0cnVlLCJmZWF0dXJlX21pZ3JhdGlvbl9iYWNrZ3JvdW5kX2NsaWVudCI6ZmFsc2UsImZlYXR1cmVfdW5mdXJsX21ldGFkYXRhIjpmYWxzZSwiZmVhdHVyZV9wbHVzX21lbnVfYWRkX2FwcHNfbGluayI6ZmFsc2UsImZlYXR1cmVfcmVjZW50X2ZpbGVzX29tbmlwaWNrZXIiOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2JvdHNfZGV2ZWxvcGVyX3ByZXZpZXciOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2JvdF9zY29wZXNfR0EiOmZhbHNlLCJmZWF0dXJlX2VtYWlsX2JyaWRnZV9ncmlkIjpmYWxzZSwiZmVhdHVyZV9yZW1vdmVfZ2RyaXZlX2NvbmZpcm1hdGlvbiI6ZmFsc2UsImZlYXR1cmVfc3RyaXBlX3NjYSI6ZmFsc2UsImZlYXR1cmVfc2VsZl9zZXJ2ZV9zZWxlY3QiOnRydWUsImZlYXR1cmVfdmF0X3Byb2plY3Rfc2Ffc2siOnRydWUsImZlYXR1cmVfdmF0X3Byb2plY3Rfc2Ffc2tfMiI6dHJ1ZSwiZmVhdHVyZV92YXRfcHJvamVjdF9zYV9za19jb2xsZWN0aW9uIjp0cnVlLCJmZWF0dXJlX2VtYWlsX2JpbGxpbmdfcGVuZGluZ19leHBpcnlfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3VwZ3JhZGVfc2xhY2tfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3BlcnNfc2VhcmNoX21zZ19saW1pdF93YXJuaW5nX2kxOG4iOnRydWUsImZlYXR1cmVfaGlnaGxpZ2h0X3N0YW5kYXJkX29uX3BsYW5zX3BhZ2VfaTE4biI6dHJ1ZSwiZmVhdHVyZV9nc29fcmVtb3RlX3Nlc3Npb25fd2lwZSI6ZmFsc2UsImZlYXR1cmVfYWRtaW5fbW92ZV9jaGFubmVsc19tZXNzYWdlIjpmYWxzZSwiZmVhdHVyZV9uZXd4cF9qaXJhXzIwNDMiOnRydWUsImZlYXR1cmVfc2VlX21vcmVfY2hhbm5lbHMiOmZhbHNlLCJmZWF0dXJlX2NyZWF0b3Jfc29uaWNfdXJsIjpmYWxzZSwiZmVhdHVyZV9qaXJhX25ld3hwXzIzNzIiOnRydWUsImZlYXR1cmVfamlyYV9uZXd4cF8yMzcyX2NvcHkiOmZhbHNlLCJmZWF0dXJlX2ppcmFfbmV3eHBfMTc1NCI6ZmFsc2UsImZlYXR1cmVfdW5zdXBwb3J0ZWRfYnJvd3NlcnNfY29tcG9uZW50X3RyYW5zbGF0aW9ucyI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfZmVfaW52aXRlX21vZGVybiI6dHJ1ZSwiZmVhdHVyZV9hY3RpdmF0aW9uX21vZGVybl9nZXRfc3RhcnRlZCI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfMjEwNV90cmFuc2xhdGlvbnMiOmZhbHNlLCJmZWF0dXJlX21vZGVybml6ZV9jaGFubmVsX2NyZWF0ZV9tb2RhbCI6dHJ1ZSwiZmVhdHVyZV9zb25pY19wbGFjZWhvbGRlcl9sYWJlbHMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2VzY19jcmVhdGlvbiI6ZmFsc2UsImZlYXR1cmVfbmlnaHRzaGFkZSI6dHJ1ZSwiZmVhdHVyZV9wbGF0Zm9ybV9jYWxsc19hcGkiOnRydWUsImZlYXR1cmVfdGhyZWFkZWRfY2FsbF9ibG9jayI6ZmFsc2UsImZlYXR1cmVfYnJpbmdfcGxhbnNfcGFnZV90b19zc2JfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX2VpZGVudF8yMTU0IjpmYWxzZSwiZmVhdHVyZV9tb2JpbGVfYmlvbWV0cmljc190aW1lb3V0Ijp0cnVlLCJmZWF0dXJlX3NvbmljX2NoYW5uZWxfaW52aXRlX21vZGFsIjpmYWxzZSwiZmVhdHVyZV9saWZlY3ljbGVfbG9nZ2luZ19wbGFuc19wYWdlIjp0cnVlLCJmZWF0dXJlX2NoYW5nZV9wdXJwb3NlX3RvX2Rlc2NyaXB0aW9uIjpmYWxzZSwiZmVhdHVyZV9wbGF0Zm9ybV9hcHBfbWFuYWdlbWVudF9vbl9kZW1hbmRfcGlja2VycyI6dHJ1ZSwiZmVhdHVyZV9wbGF0Zm9ybV9hcHBfbWFuYWdlbWVudF9vbl9kZW1hbmRfcGlja2Vyc19waGFzZV8yIjpmYWxzZSwiZmVhdHVyZV9zbGFja19tZXNzYWdlX2F0dGFjaG1lbnRfdG9vbHRpcCI6ZmFsc2UsImZlYXR1cmVfY2hlY2tvdXRfZnVsbF9zY2hlZHVsZV9zZWxlY3Rvcl90cmFuc2xhdGlvbnMiOnRydWUsImZlYXR1cmVfbW9kZXJuX2dkcml2ZV9jcmVhdGUiOmZhbHNlLCJmZWF0dXJlX2dkcml2ZV9wcm9tcHRfcmVmYWN0b3IiOnRydWUsImZlYXR1cmVfYXBwX3Byb21wdHNfY29ubmVjdF9yZWZhY3RvciI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfMjc3OCI6dHJ1ZSwiZmVhdHVyZV9uZXd4cF8zMTAwIjpmYWxzZSwiZmVhdHVyZV9uZXd4cDMxMDBfdjEiOnRydWUsImZlYXR1cmVfc2VhcmNoX2ZlZWRiYWNrIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5pemVfbGltaXRfbWV0ZXIiOnRydWUsImZlYXR1cmVfc2hhcmVkX2NoYW5uZWxzX2N1c3RvbV9lbW9qaXNfdXJsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfY3VzdG9tX2Vtb2ppc191cmxfY2xpZW50IjpmYWxzZSwiZmVhdHVyZV9uZXdfY29weV9mb3JfaWRlbnRpdHlfYmFzaWMiOmZhbHNlLCJmZWF0dXJlX25ld3hwXzI3OTgiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2xlYXZlX3dvcmtzcGFjZV9kaWFsb2ciOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfbmFtaW5nX25vcm1zIjp0cnVlLCJmZWF0dXJlX2FwcHNfYnJvd3Nlcl9hMTF5IjpmYWxzZSwiZmVhdHVyZV9iZXR0ZXJfc2NfaW52aXRlcyI6ZmFsc2UsImZlYXR1cmVfYmV0dGVyX21hbmFnZV9zY19tb2RhbCI6ZmFsc2UsImZlYXR1cmVfYmV0dGVyX3NjX2ludml0ZXNfYWNjZXB0X2Zsb3dfYXBwIjpmYWxzZSwiZmVhdHVyZV9iZXR0ZXJfc2NfaW52aXRlc19zbGFja2JvdF9jbGllbnQiOmZhbHNlLCJmZWF0dXJlX3BhaWRfb25ib2FyZGluZ19wYWdldXBkYXRlIjp0cnVlLCJmZWF0dXJlX2Rvd25sb2FkX2FjY2Vzc19sb2dzIjp0cnVlLCJmZWF0dXJlX25ld3hwXzMwOTdfdHJhbnNsYXRpb25zIjpmYWxzZSwiZmVhdHVyZV90cmFjZV93ZWJhcHBfaW5pdCI6dHJ1ZSwiZmVhdHVyZV9uZXd4cF8yODMyIjp0cnVlLCJmZWF0dXJlX2FwcF9icm93c2VyX2JldHRlcl9oZWFkZXJfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX2Fubm91bmNlbWVudF9vbmx5X2NoYW5uZWxfY29weV9jaGFuZ2VfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3dvcmtmbG93X2JvdHNfaW5fY2xpZW50IjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2lzX3dvcmtmbG93X2FwcCI6ZmFsc2UsImZlYXR1cmVfc3RyaXBlX2NvbXBsZXRlbHlfZG93bl9iYW5uZXIiOmZhbHNlLCJmZWF0dXJlX2ZlYXRfYnJvd3Nlcl9jb250cm9sIjpmYWxzZSwiZmVhdHVyZV9uZXd4cF8yODYyX3RyYW5zbGF0aW9ucyI6ZmFsc2UsImZlYXR1cmVfbW92ZV9jaGFubmVsc19jb3B5IjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcGxhbnNfcGFnZV90cmFuc2xhdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3BsYW5zX3BhZ2VfcXVvdGUiOmZhbHNlLCJmZWF0dXJlX2NoZWNrb3V0djJfZGlzY291bnRfZm9yX2VkdWNhdGlvbl9hbmRfbm9ucHJvZml0IjpmYWxzZSwiZmVhdHVyZV9kZXByZWNhdGlvbl9kYXNoYm9hcmRzIjpmYWxzZSwiZmVhdHVyZV9lbnRlcnByaXNlX3NlbGVjdF9mcm9tX2JpbGxpbmciOmZhbHNlLCJjbGllbnRfbG9ncyI6eyIwIjp7Im51bWJlcnMiOlswXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiMiI6eyJudW1iZXJzIjpbMl0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQiOnsibnVtYmVycyI6WzRdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI1Ijp7Im51bWJlcnMiOls1XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiMjMiOnsibnVtYmVycyI6WzIzXSwidXNlcl9mYWNpbmciOmZhbHNlfSwic291bmRzIjp7Im5hbWUiOiJzb3VuZHMiLCJudW1iZXJzIjpbMzddfSwiMzciOnsibmFtZSI6InNvdW5kcyIsIm51bWJlcnMiOlszN10sInVzZXJfZmFjaW5nIjp0cnVlfSwiNDciOnsibnVtYmVycyI6WzQ3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNDgiOnsibnVtYmVycyI6WzQ4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiTWVzc2FnZSBIaXN0b3J5Ijp7Im5hbWUiOiJNZXNzYWdlIEhpc3RvcnkiLCJudW1iZXJzIjpbNThdfSwiNTgiOnsibmFtZSI6Ik1lc3NhZ2UgSGlzdG9yeSIsIm51bWJlcnMiOls1OF0sInVzZXJfZmFjaW5nIjp0cnVlfSwiNjciOnsibnVtYmVycyI6WzY3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzIiOnsibnVtYmVycyI6WzcyXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzMiOnsibnVtYmVycyI6WzczXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiODIiOnsibnVtYmVycyI6WzgyXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiODgiOnsibnVtYmVycyI6Wzg4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTEiOnsibnVtYmVycyI6WzkxXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTMiOnsibnVtYmVycyI6WzkzXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTYiOnsibnVtYmVycyI6Wzk2XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTkiOnsibnVtYmVycyI6Wzk5XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiQ2hhbm5lbCBNYXJraW5nIChNUykiOnsibmFtZSI6IkNoYW5uZWwgTWFya2luZyAoTVMpIiwibnVtYmVycyI6WzE0MV19LCIxNDEiOnsibmFtZSI6IkNoYW5uZWwgTWFya2luZyAoTVMpIiwibnVtYmVycyI6WzE0MV0sInVzZXJfZmFjaW5nIjp0cnVlfSwiQ2hhbm5lbCBNYXJraW5nIChDbGllbnQpIjp7Im5hbWUiOiJDaGFubmVsIE1hcmtpbmcgKENsaWVudCkiLCJudW1iZXJzIjpbMTQyXX0sIjE0MiI6eyJuYW1lIjoiQ2hhbm5lbCBNYXJraW5nIChDbGllbnQpIiwibnVtYmVycyI6WzE0Ml0sInVzZXJfZmFjaW5nIjp0cnVlfSwiQ2xvc2UgT2xkIElNcyAoQ2xpZW50KSI6eyJuYW1lIjoiQ2xvc2UgT2xkIElNcyAoQ2xpZW50KSIsIm51bWJlcnMiOlsyMjFdfSwiMjIxIjp7Im5hbWUiOiJDbG9zZSBPbGQgSU1zIChDbGllbnQpIiwibnVtYmVycyI6WzIyMV0sInVzZXJfZmFjaW5nIjp0cnVlfSwiMzY1Ijp7Im51bWJlcnMiOlszNjVdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCIzODkiOnsibnVtYmVycyI6WzM4OV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQzOCI6eyJudW1iZXJzIjpbNDM4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNDQ0Ijp7Im51bWJlcnMiOls0NDRdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI0ODEiOnsibnVtYmVycyI6WzQ4MV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQ4OCI6eyJudW1iZXJzIjpbNDg4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNTI5Ijp7Im51bWJlcnMiOls1MjldLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI1NTIiOnsibnVtYmVycyI6WzU1Ml0sInVzZXJfZmFjaW5nIjpmYWxzZX0sImRhc2hib2FyZCI6eyJuYW1lIjoiZGFzaGJvYXJkIiwibnVtYmVycyI6WzY2Nl19LCI2NjYiOnsibmFtZSI6ImRhc2hib2FyZCIsIm51bWJlcnMiOls2NjZdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI2NjciOnsibnVtYmVycyI6WzY2N10sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjc3MyI6eyJudW1iZXJzIjpbNzczXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzc3Ijp7Im51bWJlcnMiOls3NzddLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI3OTQiOnsibnVtYmVycyI6Wzc5NF0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIkNsaWVudCBSZXNwb25zaXZlbmVzcyI6eyJuYW1lIjoiQ2xpZW50IFJlc3BvbnNpdmVuZXNzIiwidXNlcl9mYWNpbmciOmZhbHNlLCJudW1iZXJzIjpbODA4XX0sIjgwOCI6eyJuYW1lIjoiQ2xpZW50IFJlc3BvbnNpdmVuZXNzIiwidXNlcl9mYWNpbmciOmZhbHNlLCJudW1iZXJzIjpbODA4XX0sIk1lc3NhZ2UgUGFuZSBTY3JvbGxpbmciOnsibmFtZSI6Ik1lc3NhZ2UgUGFuZSBTY3JvbGxpbmciLCJudW1iZXJzIjpbODg4XX0sIjg4OCI6eyJuYW1lIjoiTWVzc2FnZSBQYW5lIFNjcm9sbGluZyIsIm51bWJlcnMiOls4ODhdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIlVucmVhZCBiYW5uZXIgYW5kIGRpdmlkZXIiOnsibmFtZSI6IlVucmVhZCBiYW5uZXIgYW5kIGRpdmlkZXIiLCJudW1iZXJzIjpbOTk5XX0sIjk5OSI6eyJuYW1lIjoiVW5yZWFkIGJhbm5lciBhbmQgZGl2aWRlciIsIm51bWJlcnMiOls5OTldLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjEwMDAiOnsibnVtYmVycyI6WzEwMDBdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCJEdXBsaWNhdGUgYmFkZ2VzIChkZXNrdG9wIGFwcCBpY29ucykiOnsibmFtZSI6IkR1cGxpY2F0ZSBiYWRnZXMgKGRlc2t0b3AgYXBwIGljb25zKSIsIm51bWJlcnMiOlsxNzAxXX0sIjE3MDEiOnsibmFtZSI6IkR1cGxpY2F0ZSBiYWRnZXMgKGRlc2t0b3AgYXBwIGljb25zKSIsIm51bWJlcnMiOlsxNzAxXSwidXNlcl9mYWNpbmciOnRydWV9LCJNZW1iZXJzIjp7Im5hbWUiOiJNZW1iZXJzIiwibnVtYmVycyI6WzE5NzVdfSwiMTk3NSI6eyJuYW1lIjoiTWVtYmVycyIsIm51bWJlcnMiOlsxOTc1XSwidXNlcl9mYWNpbmciOnRydWV9LCJsYXp5IGxvYWRpbmciOnsibmFtZSI6ImxhenkgbG9hZGluZyIsIm51bWJlcnMiOlsxOTg5XX0sIjE5ODkiOnsibmFtZSI6ImxhenkgbG9hZGluZyIsIm51bWJlcnMiOlsxOTg5XSwidXNlcl9mYWNpbmciOnRydWV9LCJ0aGluX2NoYW5uZWxfbWVtYmVyc2hpcCI6eyJuYW1lIjoidGhpbl9jaGFubmVsX21lbWJlcnNoaXAiLCJudW1iZXJzIjpbMTk5MF19LCIxOTkwIjp7Im5hbWUiOiJ0aGluX2NoYW5uZWxfbWVtYmVyc2hpcCIsIm51bWJlcnMiOlsxOTkwXSwidXNlcl9mYWNpbmciOnRydWV9LCJzdGF0cyI6eyJuYW1lIjoic3RhdHMiLCJudW1iZXJzIjpbMTk5MV19LCIxOTkxIjp7Im5hbWUiOiJzdGF0cyIsIm51bWJlcnMiOlsxOTkxXSwidXNlcl9mYWNpbmciOnRydWV9LCJtcyI6eyJuYW1lIjoibXMiLCJudW1iZXJzIjpbMTk5Nl19LCIxOTk2Ijp7Im5hbWUiOiJtcyIsIm51bWJlcnMiOlsxOTk2XSwidXNlcl9mYWNpbmciOnRydWV9LCJzaGFyZWRfY2hhbm5lbHNfY29ubmVjdGlvbiI6eyJuYW1lIjoic2hhcmVkX2NoYW5uZWxzX2Nvbm5lY3Rpb24iLCJudW1iZXJzIjpbMTk5OV19LCIxOTk5Ijp7Im5hbWUiOiJzaGFyZWRfY2hhbm5lbHNfY29ubmVjdGlvbiIsIm51bWJlcnMiOlsxOTk5XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiZG5kIjp7Im5hbWUiOiJkbmQiLCJudW1iZXJzIjpbMjAwMl19LCIyMDAyIjp7Im5hbWUiOiJkbmQiLCJudW1iZXJzIjpbMjAwMl0sInVzZXJfZmFjaW5nIjp0cnVlfSwiMjAwMyI6eyJudW1iZXJzIjpbMjAwM10sInVzZXJfZmFjaW5nIjpmYWxzZX0sIlRocmVhZHMiOnsibmFtZSI6IlRocmVhZHMiLCJudW1iZXJzIjpbMjAwNF19LCIyMDA0Ijp7Im5hbWUiOiJUaHJlYWRzIiwibnVtYmVycyI6WzIwMDRdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjIwMDUiOnsibnVtYmVycyI6WzIwMDVdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCJSZWFjdGlvbnMiOnsibmFtZSI6IlJlYWN0aW9ucyIsIm51bWJlcnMiOlsyMDA2XX0sIjIwMDYiOnsibmFtZSI6IlJlYWN0aW9ucyIsIm51bWJlcnMiOlsyMDA2XSwidXNlcl9mYWNpbmciOnRydWV9LCJUU1NTQi5mb2N1c1RhYkFuZFN3aXRjaFRvQ2hhbm5lbCI6eyJuYW1lIjoiVFNTU0IuZm9jdXNUYWJBbmRTd2l0Y2hUb0NoYW5uZWwiLCJudW1iZXJzIjpbMjAwN119LCIyMDA3Ijp7Im5hbWUiOiJUU1NTQi5mb2N1c1RhYkFuZFN3aXRjaFRvQ2hhbm5lbCIsIm51bWJlcnMiOlsyMDA3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiUHJlc2VuY2UgRGV0ZWN0aW9uIjp7Im5hbWUiOiJQcmVzZW5jZSBEZXRlY3Rpb24iLCJudW1iZXJzIjpbMjAxN119LCIyMDE3Ijp7Im5hbWUiOiJQcmVzZW5jZSBEZXRlY3Rpb24iLCJudW1iZXJzIjpbMjAxN10sInVzZXJfZmFjaW5nIjp0cnVlfSwibWNfc2licyI6eyJuYW1lIjoibWNfc2licyIsIm51bWJlcnMiOls5OTk5XX0sIjk5OTkiOnsibmFtZSI6Im1jX3NpYnMiLCJudW1iZXJzIjpbOTk5OV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIk1lbWJlciBzZWFyY2hpbmciOnsibmFtZSI6Ik1lbWJlciBzZWFyY2hpbmciLCJudW1iZXJzIjpbOTAyMTFdfSwiOTAyMTEiOnsibmFtZSI6Ik1lbWJlciBzZWFyY2hpbmciLCJudW1iZXJzIjpbOTAyMTFdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjk4NzY1Ijp7Im51bWJlcnMiOls5ODc2NV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjg2NzUzMDkiOnsibnVtYmVycyI6Wzg2NzUzMDldLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9fX07Cglib290X2RhdGEuc3RhcnRfbXMgPSBEYXRlLm5vdygpOwo8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIFRTX2xhc3RfbG9nX2RhdGUgPSBudWxsOwp2YXIgVFNNYWtlTG9nRGF0ZSA9IGZ1bmN0aW9uKCkgewoJdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwoKCXZhciB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpOwoJdmFyIG1vID0gZGF0ZS5nZXRNb250aCgpKzE7Cgl2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpOwoKCXZhciB0aW1lID0gewoJICBoOiBkYXRlLmdldEhvdXJzKCksCgkgIG1pOiBkYXRlLmdldE1pbnV0ZXMoKSwKCSAgczogZGF0ZS5nZXRTZWNvbmRzKCksCgkgIG1zOiBkYXRlLmdldE1pbGxpc2Vjb25kcygpCgl9OwoKCU9iamVjdC5rZXlzKHRpbWUpLm1hcChmdW5jdGlvbihtb21lbnQsIGluZGV4KSB7CgkJaWYgKG1vbWVudCA9PSAnbXMnKSB7CgkJCWlmICh0aW1lW21vbWVudF0gPCAxMCkgewoJCQkJdGltZVttb21lbnRdID0gdGltZVttb21lbnRdKycwMCc7CgkJCX0gZWxzZSBpZiAodGltZVttb21lbnRdIDwgMTAwKSB7CgkJCQl0aW1lW21vbWVudF0gPSB0aW1lW21vbWVudF0rJzAnOwoJCQl9CgkJfSBlbHNlIGlmICh0aW1lW21vbWVudF0gPCAxMCkgewoJCQl0aW1lW21vbWVudF0gPSAnMCcgKyB0aW1lW21vbWVudF07CgkJfQoJfSk7CgoJdmFyIHN0ciA9IHkgKyAnLycgKyBtbyArICcvJyArIGQgKyAnICcgKyB0aW1lLmggKyAnOicgKyB0aW1lLm1pICsgJzonICsgdGltZS5zICsgJy4nICsgdGltZS5tczsKCWlmIChUU19sYXN0X2xvZ19kYXRlKSB7CgkJdmFyIGRpZmYgPSBkYXRlLVRTX2xhc3RfbG9nX2RhdGU7CgkJLy9zdHIrPSAnICgnK2RpZmYrJ21zKSc7Cgl9CglUU19sYXN0X2xvZ19kYXRlID0gZGF0ZTsKCXJldHVybiBzdHIrJyAnOwp9Cgp2YXIgcGFyc2VEZWVwTGlua1JlcXVlc3QgPSBmdW5jdGlvbihjb2RlKSB7Cgl2YXIgbSA9IGNvZGUubWF0Y2goLyJpZCI6IihbQ0RHXVtBLVowLTldezh9KSIvKTsKCXZhciBpZCA9IG0gPyBtWzFdIDogbnVsbDsKCgltID0gY29kZS5tYXRjaCgvInRlYW0iOiIoVFtBLVowLTldezh9KSIvKTsKCXZhciB0ZWFtID0gbSA/IG1bMV0gOiBudWxsOwoKCW0gPSBjb2RlLm1hdGNoKC8ibWVzc2FnZSI6IihbMC05XStcLlswLTldKykiLyk7Cgl2YXIgbWVzc2FnZSA9IG0gPyBtWzFdIDogbnVsbDsKCglyZXR1cm4geyBpZDogaWQsIHRlYW06IHRlYW0sIG1lc3NhZ2U6IG1lc3NhZ2UgfTsKfQoKaWYgKCdyZW5kZXJlckV2YWxBc3luYycgaW4gd2luZG93KSB7Cgl2YXIgb3JpZ1JlbmRlcmVyRXZhbEFzeW5jID0gd2luZG93LnJlbmRlcmVyRXZhbEFzeW5jOwoJd2luZG93LnJlbmRlcmVyRXZhbEFzeW5jID0gZnVuY3Rpb24oYmxvYikgewoJCXRyeSB7CgkJCXZhciBkYXRhID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoYXRvYihibG9iKSkpOwoJCQlpZiAoZGF0YS5jb2RlLm1hdGNoKC9oYW5kbGVEZWVwTGluay8pKSB7CgkJCQl2YXIgcmVxdWVzdCA9IHBhcnNlRGVlcExpbmtSZXF1ZXN0KGRhdGEuY29kZSk7CgkJCQlpZiAoIXJlcXVlc3QuaWQgfHwgIXJlcXVlc3QudGVhbSB8fCAhcmVxdWVzdC5tZXNzYWdlKSByZXR1cm47CgoJCQkJcmVxdWVzdC5jbWQgPSAnY2hhbm5lbCc7CgkJCQlUU1NTQi5oYW5kbGVEZWVwTGlua1dpdGhBcmdzKEpTT04uc3RyaW5naWZ5KHJlcXVlc3QpKTsKCQkJCXJldHVybjsKCQkJfSBlbHNlIHsKCQkJCW9yaWdSZW5kZXJlckV2YWxBc3luYyhibG9iKTsKCQkJfQoJCX0gY2F0Y2ggKGUpIHsKCQl9Cgl9Cn08L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIFRTU1NCID0gewoJY2FsbDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQp9Ozwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3JvbGx1cC1jb3JlX3JlcXVpcmVkX2xpYnMuNGE4MTZhOGVkMzQ0NjcyZjQ0MzYubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvbW9kZXJuLnZlbmRvci5jZTNhMWQ4NTY5ZjczMjFhOWQ5MC5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9hcHBsaWNhdGlvbi5jMDcwZjExNDUwYjg1Njk5Y2NkMC5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtY29yZV9yZXF1aXJlZF90cy5hOTcwNjYzYTY2ZTI2MzY1OWJhMi5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtY29yZV93ZWIuMTg5Y2YyOTY0NzQ1YmExNjQ0MWEubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvcm9sbHVwLWFwaV9kb2NzLmMwMzIxZmM4N2NkMmE1NmRjNDVjLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3JvbGx1cC1zZWNvbmRhcnlfYV9yZXF1aXJlZC44N2M3OGM1NjZmZjJmMmQ0OTM1Ny5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtc2Vjb25kYXJ5X2JfcmVxdWlyZWQuODEzYWE1NzYzYTVjYjA1ZGUwMjMubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvZm9vdGVyLmQwYzNkMjkxY2FjN2RlMWVlNzMxLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxzY3JpcHQ+CQkJd2luZG93LmJvb3RfZGF0YSA9IHdpbmRvdy5ib290X2RhdGEgfHwge307CgkJCWJvb3RfZGF0YS5ub19sb2dpbiA9IHRydWU7CgkJCWJvb3RfZGF0YS5hcHAgPSAnYXBpJzsKCQkJYm9vdF9kYXRhLmFwaV91cmwgPSAnL2FwaS8nOwoJCQlib290X2RhdGEuYXBwX2lkID0gIiI7CgkJCWJvb3RfZGF0YS5hcHBfbmFtZSA9ICIiOwoJCQlib290X2RhdGEubnVtX3RlYW1zID0gMDsKCQkJYm9vdF9kYXRhLnJlc2VydmVkX2NvbW1hbmRzID0gW107CgkJCWJvb3RfZGF0YS5udW1fY29tbWFuZHMgPSAwOwoJCQlib290X2RhdGEuc3Vkb191cmwgPSAiIjsKCQkJYm9vdF9kYXRhLmFwaV90b2tlbiA9ICIiOwoJCQlUUy5ib290KGJvb3RfZGF0YSk7PC9zY3JpcHQ+PHNjcmlwdD4KdmFyIGFwaV91cmwgPSAiaHR0cHM6XC9cL3NsYWNrLmNvbVwvYXBpXC9jaGF0LnBvc3RNZXNzYWdlIjsKdmFyIGFwaV90b2tlbnMgPSB7fTsKdmFyIGFwaV9hcmdzID0geyJ0b2tlbiI6eyJ0eXBlIjoidG9rZW4iLCJvcHRpb25hbCI6ZmFsc2UsImV4YW1wbGUiOiJ4eHh4LXh4eHh4eHh4eC14eHh4IiwiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VBdXRoZW50aWNhdGlvbiB0b2tlbiBiZWFyaW5nIHJlcXVpcmVkIHNjb3Blcy5cdTAwM0NcL3BcdTAwM0VcbiIsInVpZCI6MX0sImNoYW5uZWwiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VDaGFubmVsLCBwcml2YXRlIGdyb3VwLCBvciBJTSBjaGFubmVsIHRvIHNlbmQgbWVzc2FnZSB0by4gQ2FuIGJlIGFuIGVuY29kZWQgSUQsIG9yIGEgbmFtZS4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNjaGFubmVsc1wiXHUwMDNFYmVsb3dcdTAwM0NcL2FcdTAwM0UgZm9yIG1vcmUgZGV0YWlscy5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJjaGFubmVsIiwibG9nZ2VkIjpmYWxzZSwiaXNfcmVzb3VyY2UiOnRydWUsInN1YnR5cGUiOiJjaGFubmVsIiwiZXhhbXBsZSI6IkMxMjM0NTY3ODkwIiwidWlkIjoyfSwidGV4dCI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVRleHQgb2YgdGhlIG1lc3NhZ2UgdG8gc2VuZC4gU2VlIGJlbG93IGZvciBhbiBleHBsYW5hdGlvbiBvZiBcdTAwM0NhIGhyZWY9XCIjZm9ybWF0dGluZ1wiXHUwMDNFZm9ybWF0dGluZ1x1MDAzQ1wvYVx1MDAzRS4gVGhpcyBmaWVsZCBpcyB1c3VhbGx5IHJlcXVpcmVkLCB1bmxlc3MgeW91J3JlIHByb3ZpZGluZyBvbmx5IFx1MDAzQ2NvZGVcdTAwM0VhdHRhY2htZW50c1x1MDAzQ1wvY29kZVx1MDAzRSBpbnN0ZWFkLiBQcm92aWRlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycyBvciBcdTAwM0NhIGhyZWY9XCJcL2NoYW5nZWxvZ1wvMjAxOC0wNC10cnVuY2F0aW5nLXJlYWxseS1sb25nLW1lc3NhZ2VzXCJcdTAwM0VyaXNrIHRydW5jYXRpb25cdTAwM0NcL2FcdTAwM0UuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoic3RyaW5nIiwiZXhhbXBsZSI6IkhlbGxvIHdvcmxkIiwic3VidHlwZSI6InN0cmluZyIsInVpZCI6M30sImFzX3VzZXIiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VQYXNzIHRydWUgdG8gcG9zdCB0aGUgbWVzc2FnZSBhcyB0aGUgYXV0aGVkIHVzZXIsIGluc3RlYWQgb2YgYXMgYSBib3QuIERlZmF1bHRzIHRvIGZhbHNlLiBTZWUgXHUwMDNDYSBocmVmPVwiI2F1dGhvcnNoaXBcIlx1MDAzRWF1dGhvcnNoaXBcdTAwM0NcL2FcdTAwM0UgYmVsb3cuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoiYm9vbGVhbiIsImV4YW1wbGUiOiJ0cnVlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjExfSwiYXR0YWNobWVudHMiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VBIEpTT04tYmFzZWQgYXJyYXkgb2Ygc3RydWN0dXJlZCBhdHRhY2htZW50cywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLlx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6ImF0dGFjaG1lbnRzIiwiZXhhbXBsZSI6Ilt7XCJwcmV0ZXh0XCI6IFwicHJlLWhlbGxvXCIsIFwidGV4dFwiOiBcInRleHQtd29ybGRcIn1dIiwib3B0aW9uYWwiOnRydWUsInN1YnR5cGUiOiJhdHRhY2htZW50cyIsInVpZCI6N30sImJsb2NrcyI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRUEgSlNPTi1iYXNlZCBhcnJheSBvZiBzdHJ1Y3R1cmVkIGJsb2NrcywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLlx1MDAzQ1wvcFx1MDAzRVxuIiwiZXhhbXBsZSI6Ilt7XCJ0eXBlXCI6IFwic2VjdGlvblwiLCBcInRleHRcIjoge1widHlwZVwiOiBcInBsYWluX3RleHRcIiwgXCJ0ZXh0XCI6IFwiSGVsbG8gd29ybGRcIn19XSIsIm9wdGlvbmFsIjp0cnVlLCJ1aWQiOjR9LCJpY29uX2Vtb2ppIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFRW1vamkgdG8gdXNlIGFzIHRoZSBpY29uIGZvciB0aGlzIG1lc3NhZ2UuIE92ZXJyaWRlcyBcdTAwM0Njb2RlXHUwMDNFaWNvbl91cmxcdTAwM0NcL2NvZGVcdTAwM0UuIE11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIFx1MDAzQ2NvZGVcdTAwM0Vhc191c2VyXHUwMDNDXC9jb2RlXHUwMDNFIHNldCB0byBcdTAwM0Njb2RlXHUwMDNFZmFsc2VcdTAwM0NcL2NvZGVcdTAwM0UsIG90aGVyd2lzZSBpZ25vcmVkLiBTZWUgXHUwMDNDYSBocmVmPVwiI2F1dGhvcnNoaXBcIlx1MDAzRWF1dGhvcnNoaXBcdTAwM0NcL2FcdTAwM0UgYmVsb3cuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoic3RyaW5nIiwiZXhhbXBsZSI6IjpjaGFydF93aXRoX3Vwd2FyZHNfdHJlbmQ6IiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InN0cmluZyIsInVpZCI6MTN9LCJpY29uX3VybCI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVVSTCB0byBhbiBpbWFnZSB0byB1c2UgYXMgdGhlIGljb24gZm9yIHRoaXMgbWVzc2FnZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRWFzX3VzZXJcdTAwM0NcL2NvZGVcdTAwM0Ugc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNhdXRob3JzaGlwXCJcdTAwM0VhdXRob3JzaGlwXHUwMDNDXC9hXHUwMDNFIGJlbG93Llx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InVybCIsImV4YW1wbGUiOiJodHRwOlwvXC9sb3JlbXBpeGVsLmNvbVwvNDhcLzQ4IiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InVybCIsInVpZCI6MTJ9LCJsaW5rX25hbWVzIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFRmluZCBhbmQgbGluayBjaGFubmVsIG5hbWVzIGFuZCB1c2VybmFtZXMuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoiYm9vbGVhbiIsImV4YW1wbGUiOiJ0cnVlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjZ9LCJtcmtkd24iOnsiZGVmYXVsdCI6InRydWUiLCJkZXNjIjoiXHUwMDNDcFx1MDAzRURpc2FibGUgU2xhY2sgbWFya3VwIHBhcnNpbmcgYnkgc2V0dGluZyB0byBcdTAwM0Njb2RlXHUwMDNFZmFsc2VcdTAwM0NcL2NvZGVcdTAwM0UuIEVuYWJsZWQgYnkgZGVmYXVsdC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6ImZhbHNlIiwiaGlkZGVuIjpmYWxzZSwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjE2fSwicGFyc2UiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VDaGFuZ2UgaG93IG1lc3NhZ2VzIGFyZSB0cmVhdGVkLiBEZWZhdWx0cyB0byBcdTAwM0Njb2RlXHUwMDNFbm9uZVx1MDAzQ1wvY29kZVx1MDAzRS4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNmb3JtYXR0aW5nXCJcdTAwM0ViZWxvd1x1MDAzQ1wvYVx1MDAzRS5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJlbnVtIiwiZXhhbXBsZSI6ImZ1bGwiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJ2YWx1ZXMiOlsibm9uZSIsImZ1bGwiXSwic3VidHlwZSI6ImVudW0iLCJ1aWQiOjV9LCJyZXBseV9icm9hZGNhc3QiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRXRocmVhZF90c1x1MDAzQ1wvY29kZVx1MDAzRSBhbmQgaW5kaWNhdGVzIHdoZXRoZXIgcmVwbHkgc2hvdWxkIGJlIG1hZGUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCBvciBjb252ZXJzYXRpb24uIERlZmF1bHRzIHRvIFx1MDAzQ2NvZGVcdTAwM0VmYWxzZVx1MDAzQ1wvY29kZVx1MDAzRS5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6InRydWUiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJzdWJ0eXBlIjoiYm9vbGVhbiIsInVpZCI6MTV9LCJ0aHJlYWRfdHMiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VQcm92aWRlIGFub3RoZXIgbWVzc2FnZSdzIFx1MDAzQ2NvZGVcdTAwM0V0c1x1MDAzQ1wvY29kZVx1MDAzRSB2YWx1ZSB0byBtYWtlIHRoaXMgbWVzc2FnZSBhIHJlcGx5LiBBdm9pZCB1c2luZyBhIHJlcGx5J3MgXHUwMDNDY29kZVx1MDAzRXRzXHUwMDNDXC9jb2RlXHUwMDNFIHZhbHVlOyB1c2UgaXRzIHBhcmVudCBpbnN0ZWFkLlx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InRpbWVzdGFtcCIsImhpZGRlbiI6ZmFsc2UsImxvZ2dlZCI6dHJ1ZSwib3B0aW9uYWwiOnRydWUsInN1YnR5cGUiOiJ0aW1lc3RhbXAiLCJleGFtcGxlIjoiMTIzNDU2Nzg5MC4xMjM0NTYiLCJ1aWQiOjE0fSwidW5mdXJsX2xpbmtzIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFUGFzcyB0cnVlIHRvIGVuYWJsZSB1bmZ1cmxpbmcgb2YgcHJpbWFyaWx5IHRleHQtYmFzZWQgY29udGVudC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6InRydWUiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJzdWJ0eXBlIjoiYm9vbGVhbiIsInVpZCI6OH0sInVuZnVybF9tZWRpYSI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVBhc3MgZmFsc2UgdG8gZGlzYWJsZSB1bmZ1cmxpbmcgb2YgbWVkaWEgY29udGVudC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6ImZhbHNlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjl9LCJ1c2VybmFtZSI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVNldCB5b3VyIGJvdCdzIHVzZXIgbmFtZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRWFzX3VzZXJcdTAwM0NcL2NvZGVcdTAwM0Ugc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNhdXRob3JzaGlwXCJcdTAwM0VhdXRob3JzaGlwXHUwMDNDXC9hXHUwMDNFIGJlbG93Llx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InVzZXJfbmFtZSIsImV4YW1wbGUiOiJNeSBCb3QiLCJsb2dnZWQiOmZhbHNlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InVzZXJfbmFtZSIsInVpZCI6MTB9fTsKCiB2YXIgZ2V0X2FwaV91cmwgPSBmdW5jdGlvbihiaXRzKSB7IHJldHVybiBhcGlfdXJsICsgJz8nICsgYml0cy5qb2luKCcmJyk7IH07IAoKJChmdW5jdGlvbigpewoKCSQoJyNhcGlfbWV0aG9kJykuY2hhbmdlKGZ1bmN0aW9uKCl7CgkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL21ldGhvZHMvJyskKHRoaXMpLnZhbCgpOwoJfSk7CgoJJCgnI2FwaS10b2tlbicpLmNoYW5nZShmdW5jdGlvbigpewoJCXZhciB0ZWFtX2lkID0gJCh0aGlzKS52YWwoKTsKCQl2YXIgdG9rZW4gPSBudWxsOwoKCQlmb3IgKHZhciBpPTA7IGk8YXBpX3Rva2Vucy5sZW5ndGg7IGkrKyl7CgkJCWlmIChhcGlfdG9rZW5zW2ldLnRlYW1faWQgPT0gdGVhbV9pZCl7CgkJCQl0b2tlbiA9IGFwaV90b2tlbnNbaV07CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJZm9yICh2YXIgaSBpbiBhcGlfYXJncyl7CgkJCXZhciBhcmcgPSBhcGlfYXJnc1tpXSB8fCB7fTsKCQkJdmFyIGRlZl9sYWJlbCA9ICcnOwoJCQl2YXIgZGVmX3ZhbHVlID0gJyc7CgoJCQlpZiAodG9rZW4gJiYgdG9rZW4udG9rZW4pewoJCQkJaWYgKGFyZy5zdWJ0eXBlID09ICdjaGFubmVsJyl7CgkJCQkJZGVmX2xhYmVsID0gdG9rZW4uY2hhbm5lbF9uYW1lOwoJCQkJCWRlZl92YWx1ZSA9IHRva2VuLmNoYW5uZWxfaWQ7CgkJCQl9CgkJCQlpZiAoYXJnLnN1YnR5cGUgPT0gJ3VzZXInKXsKCQkJCQlkZWZfbGFiZWwgPSAnQCcrdG9rZW4udXNlcl9uYW1lOwoJCQkJCWRlZl92YWx1ZSA9IHRva2VuLnVzZXJfaWQ7CgkJCQl9CgkJCX0KCgkJCSQoJyNhcGktYXJnLWV4dHJhcy0nK2FyZy51aWQpLnRleHQoJycpOwoKCQkJaWYgKGRlZl9sYWJlbCl7CgkJCQkkKCcjYXBpLWFyZy1leHRyYXMtJythcmcudWlkKS5hcHBlbmQoJCgnPGE+JykudGV4dChkZWZfbGFiZWwpLmNsaWNrKChmdW5jdGlvbigpewoKCQkJCQl2YXIgdmFsID0gZGVmX3ZhbHVlOwoJCQkJCXZhciB1aWQgPSBhcmcudWlkOwoKCQkJCQlyZXR1cm4gZnVuY3Rpb24oKXsKCgkJCQkJCSQoJyNhcGktYXJnLScrdWlkKS52YWwodmFsKTsKCQkJCQl9OwoJCQkJfSkoKSkpOwoJCQl9CgkJfQoJfSkuY2hhbmdlKCk7CgoJJCgnI2FwaS10ZXN0LWZvcm0nKS5zdWJtaXQoZnVuY3Rpb24oKXsKCgkJdmFyIGJpdHMgPSBbXTsKCQl2YXIgZmlsZSA9IG51bGw7CgkJdmFyIGNvbnRlbnQgPSBudWxsOwoKCQlmb3IgKHZhciBpIGluIGFwaV9hcmdzKXsKCQkJdmFyIGFyZyA9IGFwaV9hcmdzW2ldIHx8IHt9OwoJCQl2YXIgdmFsID0gJCgnI2FwaS1hcmctJythcmcudWlkKS52YWwoKTsKCgkJCWlmIChpID09ICd0b2tlbicpIHsKCQkJCXZhciB2ID0gJCgnI2FwaS10b2tlbicpLnZhbCgpOwoJCQkJdmFyIGJlYXJlcl90b2tlbiA9ICQoJyNhcGktYXJnLXRva2VuJykudmFsKCk7CgoJCQkJdmFsID0gJyc7CgoJCQkJaWYgKGJlYXJlcl90b2tlbiAhPT0gJycpewoJCQkJCXZhbCA9IGJlYXJlcl90b2tlbjsKCQkJCX1lbHNlewoJCQkJCWZvciAodmFyIGo9MDsgajxhcGlfdG9rZW5zLmxlbmd0aDsgaisrKXsKCQkJCQkJaWYgKGFwaV90b2tlbnNbal0udGVhbV9pZCA9PSB2KXsKCQkJCQkJCXZhbCA9IGFwaV90b2tlbnNbal0udG9rZW47CgkJCQkJCQlicmVhazsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAodiA9PSAnaW52YWxpZCcpIHZhbCA9ICdpbnZhbGlkJzsKCQkJfSBlbHNlIGlmIChhcmcuc3VidHlwZSA9PSAncG9zdF9maWxlJykgewoJCQkJZmlsZSA9ICQoJ2lucHV0OmZpbGUnKVswXS5maWxlc1swXTsKCQkJCXZhbCA9IG51bGw7CgkJCX0gZWxzZSBpZiAoaSA9PSAnY29udGVudCcpIHsKCQkJCWNvbnRlbnQgPSB2YWw7CgkJCX0KCgkJCWlmICh2YWwgJiYgdmFsLmxlbmd0aCl7CgkJCQliaXRzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGkpKyc9JytlbmNvZGVVUklDb21wb25lbnQodmFsKSk7CgkJCX0KCQl9CgoJCXZhciBleHRyYSA9ICQoJyNhcGktYXJnLWV4dHJhJykudmFsKCk7CgkJaWYgKGV4dHJhICYmIGV4dHJhLmxlbmd0aCkgYml0cy5wdXNoKGV4dHJhKTsKCgkJYml0cy5wdXNoKCdwcmV0dHk9MScpOwoKCQl2YXIgdXJsID0gZ2V0X2FwaV91cmwoYml0cyk7CgoJCSQoJyNwcmV2aWV3LXVybCBjb2RlJykudGV4dCh1cmwpOwoJCSQoJyNwcmV2aWV3LXVybCBhJykuYXR0cignaHJlZicsIHVybCk7CgkJJCgnI3ByZXZpZXctdXJsJykuc2hvdygpOwoKCQlpZiAoJCh0aGlzKS5hdHRyKCdtZXRob2QnKSA9PT0gJ1BPU1QnKSB7CgkJCXZhciBmb3JtX2RhdGEgPSBuZXcgRm9ybURhdGEoKTsKCQkJaWYgKGZpbGUpIHsKCQkJCWlmIChhcGlfYXJnc1snaW1hZ2UnXSkgewoJCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2ltYWdlJywgZmlsZSk7CgkJCQl9IGVsc2UgewoJCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBjb250ZW50KTsKCQkJfQoKCQkJJC5hamF4KHsKCQkJCXVybDogdXJsLAoJCQkJbWV0aG9kOiAnUE9TVCcsCgkJCQljb250ZW50VHlwZTogZmFsc2UsCgkJCQlwcm9jZXNzRGF0YTogZmFsc2UsCgkJCQljYWNoZTogZmFsc2UsCgkJCQlkYXRhOiBmb3JtX2RhdGEsCgkJCX0pLmRvbmUoZnVuY3Rpb24oZGF0YSkgewoJCQkJLy8gTGFzdCB2YXIgdG8gc3RyaW5naWZ5IHNpbXVsYXRlcyBwcmV0dHkgcHJpbnQgYnkgdGFiYmluZyBvdmVyIDQgc3BhY2VzCgkJCQl2YXIgaHRtbF9zdHJpbmcgPQoJCQkJCSc8cHJlIHN0eWxlLSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOnByZS13cmFwIj4nICsKCQkJCQkJXy5lc2NhcGUoSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgNCkpICsKCQkJCQknPC9wcmU+JwoJCQkJOwoJCQkJJCgnI2FwaS1wcmV2aWV3LWZyYW1lJykuYXR0cignc3JjZG9jJywgaHRtbF9zdHJpbmcpLnNob3coKTsKCQkJfSk7CgkJfSBlbHNlIHsKCQkJLy8gSWYgdGhlIG1ldGhvZCBpcyAnR0VUJyB0aGlzIHdpbGwgZGVmYXVsdCB0byByZWZyZXNoaW5nIGFuIGlmcmFtZSwgd2hpY2ggc2VuZHMKCQkJLy8gdGhlIHJlcXVlc3QgdG8gdGhlIGNvbnN0cnVjdGVkIHVybCBhbmQgZGlzcGxheXMgdGhlIHJlc3BvbnNlIGRhdGEKCQkJJCgnI2FwaS1wcmV2aWV3LWZyYW1lJykuYXR0cignc3JjJywgdXJsKS5zaG93KCk7CgkJfQoKCQlyZXR1cm4gZmFsc2U7Cgl9KTsKfSk7Cjwvc2NyaXB0PjxzY3JpcHQ+CQlobGpzLmNvbmZpZ3VyZSh7bGFuZ3VhZ2VzOiBbJ2pzb24nLCAnYmFzaCcsICdqYXZhc2NyaXB0JywgJ2h0dHAnXX0pOwoJCWhsanMuaW5pdEhpZ2hsaWdodGluZ09uTG9hZCgpOzwvc2NyaXB0PgoKPCEtLSBzbGFjay13d3ctaGh2bS1tYWluLWlhZC12MXVkLyAyMDE5LTA5LTEyIDE0OjEwOjI4LyB2MDcyODAwMDdlNDE3OGZlNmJjODcwNGEyNjk1MjNkOGMxMWExNTBmYS8gQjpIIC0tPgoKPC9ib2R5PjwvaHRtbD4= + http_version: + recorded_at: Thu, 12 Sep 2019 21:10:28 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage + body: + encoding: UTF-8 + string: token=&text=hello&channel=0 + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 21:17:25 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 6cc8561c-8a7d-4815-9c4f-ce5a0b1da5c4 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - chat:write:bot + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-5t66 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 6b03f32d70ff9f666371f69d2672d273.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - 7aDzyWFsJRmNl4JEIuzpsAX9jvi8XjiB1G7eJDLd4kLSwPjBVqHFlw== + body: + encoding: UTF-8 + string: '{"ok":false,"error":"channel_not_found"}' + http_version: + recorded_at: Thu, 12 Sep 2019 21:17:25 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/send_message_channel.yml b/test/cassettes/send_message_channel.yml new file mode 100644 index 00000000..ed9efbb1 --- /dev/null +++ b/test/cassettes/send_message_channel.yml @@ -0,0 +1,126 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.slack.com/methods/chat.postMessage + body: + encoding: UTF-8 + string: token=&text=hello&channel=CMURJLBUK + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/html; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 21:10:28 GMT + Server: + - Apache + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Set-Cookie: + - b=ctnrvpd2x6j4j5tamdcg5swpf; expires=Wed, 12-Sep-2029 21:10:28 GMT; Max-Age=315619200; + path=/; domain=.slack.com + - x=ctnrvpd2x6j4j5tamdcg5swpf.1568322628; expires=Thu, 12-Sep-2019 21:25:28 + GMT; Max-Age=900; path=/; domain=.slack.com + X-Frame-Options: + - SAMEORIGIN + X-Via: + - haproxy-www-d0g2 + X-Cache: + - Miss from cloudfront + Via: + - 1.1 deaaf0548506de20925615eb51a7ea7f.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - QZG998L6lOLgrKcI6LmEGMfYq8ffMIHJC5Y20YZc4HFlxI_rjHCeAA== + body: + encoding: ASCII-8BIT + string: !binary |- + PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4tVVMiIGNsYXNzPSIiPjxoZWFkPjxzY3JpcHQ+d2luZG93LnRzX2VuZHBvaW50X3VybCA9ICJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL3RpbWluZyI7KGZ1bmN0aW9uKGUpIHsKCXZhciBuPURhdGUubm93P0RhdGUubm93KCk6K25ldyBEYXRlLHI9ZS5wZXJmb3JtYW5jZXx8e30sdD1bXSxhPXt9LGk9ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHI9MCxhPXQubGVuZ3RoLGk9W107YT5yO3IrKyl0W3JdW2VdPT1uJiZpLnB1c2godFtyXSk7cmV0dXJuIGl9LG89ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIsYT10Lmxlbmd0aDthLS07KXI9dFthXSxyLmVudHJ5VHlwZSE9ZXx8dm9pZCAwIT09biYmci5uYW1lIT1ufHx0LnNwbGljZShhLDEpfTtyLm5vd3x8KHIubm93PXIud2Via2l0Tm93fHxyLm1vek5vd3x8ci5tc05vd3x8ZnVuY3Rpb24oKXtyZXR1cm4oRGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGUpLW59KSxyLm1hcmt8fChyLm1hcms9ci53ZWJraXRNYXJrfHxmdW5jdGlvbihlKXt2YXIgbj17bmFtZTplLGVudHJ5VHlwZToibWFyayIsc3RhcnRUaW1lOnIubm93KCksZHVyYXRpb246MH07dC5wdXNoKG4pLGFbZV09bn0pLHIubWVhc3VyZXx8KHIubWVhc3VyZT1yLndlYmtpdE1lYXN1cmV8fGZ1bmN0aW9uKGUsbixyKXtuPWFbbl0uc3RhcnRUaW1lLHI9YVtyXS5zdGFydFRpbWUsdC5wdXNoKHtuYW1lOmUsZW50cnlUeXBlOiJtZWFzdXJlIixzdGFydFRpbWU6bixkdXJhdGlvbjpyLW59KX0pLHIuZ2V0RW50cmllc0J5VHlwZXx8KHIuZ2V0RW50cmllc0J5VHlwZT1yLndlYmtpdEdldEVudHJpZXNCeVR5cGV8fGZ1bmN0aW9uKGUpe3JldHVybiBpKCJlbnRyeVR5cGUiLGUpfSksci5nZXRFbnRyaWVzQnlOYW1lfHwoci5nZXRFbnRyaWVzQnlOYW1lPXIud2Via2l0R2V0RW50cmllc0J5TmFtZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGkoIm5hbWUiLGUpfSksci5jbGVhck1hcmtzfHwoci5jbGVhck1hcmtzPXIud2Via2l0Q2xlYXJNYXJrc3x8ZnVuY3Rpb24oZSl7bygibWFyayIsZSl9KSxyLmNsZWFyTWVhc3VyZXN8fChyLmNsZWFyTWVhc3VyZXM9ci53ZWJraXRDbGVhck1lYXN1cmVzfHxmdW5jdGlvbihlKXtvKCJtZWFzdXJlIixlKX0pLGUucGVyZm9ybWFuY2U9ciwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiYoZGVmaW5lLmFtZHx8ZGVmaW5lLmFqcykmJmRlZmluZSgicGVyZm9ybWFuY2UiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lCn0pKHdpbmRvdyk7PC9zY3JpcHQ+PHNjcmlwdD4KCihmdW5jdGlvbigpIHsKCQoJd2luZG93LlRTTWFyayA9IGZ1bmN0aW9uKG1hcmtfbGFiZWwpIHsKCQlpZiAoIXdpbmRvdy5wZXJmb3JtYW5jZSB8fCAhd2luZG93LnBlcmZvcm1hbmNlLm1hcmspIHJldHVybjsKCQlwZXJmb3JtYW5jZS5tYXJrKG1hcmtfbGFiZWwpOwoJfTsKCXdpbmRvdy5UU01hcmsoJ3N0YXJ0X2xvYWQnKTsKCgkKCXdpbmRvdy5UU01lYXN1cmVBbmRCZWFjb24gPSBmdW5jdGlvbihtZWFzdXJlX2xhYmVsLCBzdGFydF9tYXJrX2xhYmVsKSB7CgkJaWYgKCF3aW5kb3cucGVyZm9ybWFuY2UgfHwgIXdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrIHx8ICF3aW5kb3cucGVyZm9ybWFuY2UubWVhc3VyZSkgewoJCQlyZXR1cm47CgkJfQoKCQlwZXJmb3JtYW5jZS5tYXJrKHN0YXJ0X21hcmtfbGFiZWwgKyAnX2VuZCcpOwoKCQl0cnkgewoJCQlwZXJmb3JtYW5jZS5tZWFzdXJlKG1lYXN1cmVfbGFiZWwsIHN0YXJ0X21hcmtfbGFiZWwsIHN0YXJ0X21hcmtfbGFiZWwgKyAnX2VuZCcpOwoJCQl3aW5kb3cuVFNCZWFjb24obWVhc3VyZV9sYWJlbCwgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShtZWFzdXJlX2xhYmVsKVswXS5kdXJhdGlvbik7CgkJfSBjYXRjaCAoZSkgewoJCQkKCQl9Cgl9OwoKCQoJaWYgKCdzZW5kQmVhY29uJyBpbiBuYXZpZ2F0b3IpIHsKCQl3aW5kb3cuVFNCZWFjb24gPSBmdW5jdGlvbihsYWJlbCwgdmFsdWUpIHsKCQkJdmFyIGVuZHBvaW50X3VybCA9IHdpbmRvdy50c19lbmRwb2ludF91cmwgfHwgJ2h0dHBzOi8vc2xhY2suY29tL2JlYWNvbi90aW1pbmcnOwoJCQluYXZpZ2F0b3Iuc2VuZEJlYWNvbigKCQkJCWVuZHBvaW50X3VybCArICc/ZGF0YT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGxhYmVsICsgJzonICsgdmFsdWUpLAoJCQkJJycKCQkJKTsKCQl9OwoJfSBlbHNlIHsKCQl3aW5kb3cuVFNCZWFjb24gPSBmdW5jdGlvbihsYWJlbCwgdmFsdWUpIHsKCQkJdmFyIGVuZHBvaW50X3VybCA9IHdpbmRvdy50c19lbmRwb2ludF91cmwgfHwgJ2h0dHBzOi8vc2xhY2suY29tL2JlYWNvbi90aW1pbmcnOwoJCQluZXcgSW1hZ2UoKS5zcmMgPSBlbmRwb2ludF91cmwgKyAnP2RhdGE9JyArIGVuY29kZVVSSUNvbXBvbmVudChsYWJlbCArICc6JyArIHZhbHVlKTsKCQl9OwoJfQp9KSgpOwo8L3NjcmlwdD48c2NyaXB0PndpbmRvdy5UU01hcmsoJ3N0ZXBfbG9hZCcpOzwvc2NyaXB0Pjxub3NjcmlwdD48bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwOyBVUkw9L21ldGhvZHMvY2hhdC5wb3N0TWVzc2FnZT9ub2pzbW9kZT0xIj48L25vc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgc2FmZV9ob3N0cyA9IFsnYXBwLm9wdGltaXplbHkuY29tJ107CgppZiAoc2VsZiAhPT0gdG9wICYmIHNhZmVfaG9zdHMuaW5kZXhPZih0b3AubG9jYXRpb24uaG9zdCkgPT09IC0xKSB7Cgl3aW5kb3cuZG9jdW1lbnQud3JpdGUoCgkJJ1x1MDAzQ3N0eWxlPmJvZHkgKiB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fVx1MDAzQy9zdHlsZT5cdTAwM0NhIGhyZWY9IiMiIG9uY2xpY2s9JyArCgkJCScidG9wLmxvY2F0aW9uLmhyZWY9d2luZG93LmxvY2F0aW9uLmhyZWYiIHN0eWxlPSJkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7cGFkZGluZzoxMHB4Ij5HbyB0byBTbGFjay5jb21cdTAwM0MvYT4nCgkpOwp9CgooZnVuY3Rpb24oKSB7Cgl2YXIgdGltZXI7CglpZiAoc2VsZiAhPT0gdG9wICYmIHNhZmVfaG9zdHMuaW5kZXhPZih0b3AubG9jYXRpb24uaG9zdCkgPT09IC0xKSB7CgkJdGltZXIgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CgkJCWlmICh3aW5kb3cpIHsKCQkJCXRyeSB7CgkJCQkJdmFyIHBhZ2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlJyk7CgkJCQkJdmFyIGNsaWVudEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsaWVudC11aScpOwoJCQkJCXZhciBzZWN0aW9uRWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbmF2LCBoZWFkZXIsIHNlY3Rpb24nKTsKCgkJCQkJcGFnZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGFnZUVsKTsKCQkJCQljbGllbnRFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNsaWVudEVsKTsKCQkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHNlY3Rpb25FbHMubGVuZ3RoOyBpKyspIHsKCQkJCQkJc2VjdGlvbkVsc1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNlY3Rpb25FbHNbaV0pOwoJCQkJCX0KCQkJCQl3aW5kb3cuVFMgPSBudWxsOwoJCQkJCXdpbmRvdy5URCA9IG51bGw7CgkJCQkJd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpOwoJCQkJfSBjYXRjaCAoZSkge30JCgkJCX0KCQl9LCAyMDApOwoJfQp9KSgpOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij50cnkgewoJaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICYmICF3aW5kb3cubG9jYXRpb24uaGFzaC5tYXRjaCgvXigjP1thLXpBLVowLTlfXSopJC8pKSB7CgkJd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnJzsKCX0KfSBjYXRjaCAoZSkge30KPC9zY3JpcHQ+PHRpdGxlPmNoYXQucG9zdE1lc3NhZ2UgbWV0aG9kIHwgU2xhY2s8L3RpdGxlPjxtZXRhIG5hbWU9IkhhbmRoZWxkRnJpZW5kbHkiIGNvbnRlbnQ9InRydWUiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj48bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IlNsYWNrIj48bGluayBocmVmPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vNGQ4MTQvc3R5bGUvcm9sbHVwLXNsYWNrX2tpdF9sZWdhY3lfYWRhcHRlcnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PGxpbmsgaHJlZj0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2Q1OGJlL3N0eWxlL3JvbGx1cC1hcGlfc2l0ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48bGluayBocmVmPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9tb2Rlcm4udmVuZG9yLmIzZWMwMDgubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjxsaW5rIGhyZWY9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9mMTk1YzMvc3R5bGUvcm9sbHVwLXNsYWNrX2tpdF9oZWxwZXJzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBpZD0ic2xhY2tfa2l0X2hlbHBlcnNfc3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS93ZWJwYWNrLm1hbmlmZXN0LjRjYmU0YzdmZGI0MGIzNjliZTliLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxsaW5rIGlkPSJmYXZpY29uIiByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS84MDU4OC9tYXJrZXRpbmcvaW1nL21ldGEvZmF2aWNvbi0zMi5wbmciIHNpemVzPSIxNngxNiAzMngzMiA0OHg0OCIgdHlwZT0iaW1hZ2UvcG5nIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOwp3aW5kb3cuZGF0YUxheWVyLnB1c2goewoJJ2d0bS5zdGFydCc6IERhdGUubm93KCksCgknZXZlbnQnIDogJ2d0bS5qcycsCgknc2VjdXJlX3BhZ2UnIDogZmFsc2UsCn0pOwp2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CnZhciB0aGlzU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CnRoaXNTY3JpcHQuYXN5bmMgPSB0cnVlOwp0aGlzU2NyaXB0LnNyYyA9ICcvL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9R1RNLUtIMkxQSyc7CmZpcnN0U2NyaXB0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXNTY3JpcHQsIGZpcnN0U2NyaXB0KTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oZSkgewoJdmFyIGd0bURhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107Cgl2YXIgZ3RtVGFncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJypbZGF0YS1ndG0tY2xpY2tdJyk7Cgl2YXIgZ3RtQ2xpY2tIYW5kbGVyID0gZnVuY3Rpb24oYykgewoJCXZhciBndG1fZXZlbnRzID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtZ3RtLWNsaWNrJyk7CgkJaWYgKCFndG1fZXZlbnRzKSByZXR1cm47CgkJdmFyIGd0bV9ldmVudHNfYXJyID0gZ3RtX2V2ZW50cy5zcGxpdCgiLCIpOwoJCWZvcih2YXIgZT0wOyBlIDwgZ3RtX2V2ZW50c19hcnIubGVuZ3RoOyBlKyspIHsKCQkJdmFyIGV2ID0gZ3RtX2V2ZW50c19hcnJbZV0udHJpbSgpOwoJCQlndG1EYXRhTGF5ZXIucHVzaCh7ICdldmVudCc6IGV2IH0pOwoJCX0KCX07Cglmb3IodmFyIGc9MDsgZyA8IGd0bVRhZ3MubGVuZ3RoOyBnKyspewoJCXZhciBlbGVtID0gZ3RtVGFnc1tnXTsKCQllbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZ3RtQ2xpY2tIYW5kbGVyKTsKCX0KfSk7Cjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKGZ1bmN0aW9uKGUsYyxiLGYsZCxnLGEpe2UuU2xhY2tCZWFjb25PYmplY3Q9ZDsKZVtkXT1lW2RdfHxmdW5jdGlvbigpeyhlW2RdLnE9ZVtkXS5xfHxbXSkucHVzaChbMSpuZXcgRGF0ZSgpLGFyZ3VtZW50c10pfTsKZVtkXS5sPTEqbmV3IERhdGUoKTtnPWMuY3JlYXRlRWxlbWVudChiKTthPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYilbMF07CmcuYXN5bmM9MTtnLnNyYz1mO2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxhKQp9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsImh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3NsYWNrX2JlYWNvbi41MjU2YzFmMjUyZjlhZTg4NTA3MS5taW4uanMiLCJzYiIpOwp3aW5kb3cuc2IoJ3NldCcsICd0b2tlbicsICczMzA3ZjQzNjk2M2UwMmQ0ZjllYjg1Y2U1MTU5NzQ0YycpOwp3aW5kb3cuc2IoJ3RyYWNrJywgJ3BhZ2V2aWV3Jyk7Cjwvc2NyaXB0PjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iUmVjZW50IGNoYW5nZXMgdG8gdGhlIFNsYWNrIHBsYXRmb3JtIFJTUyBGZWVkIiBocmVmPSIvY2hhbmdlbG9nLnJzcyI+PC9oZWFkPjxib2R5IGNsYXNzPSJhcGkgIGZlYXR1cmVfcmVsYXRlZF9jb250ZW50Ij48aGVhZGVyPjxhIGlkPSJtZW51X3RvZ2dsZSIgY2xhc3M9Im5vX3RyYW5zaXRpb24gc2hvd19vbl9tb2JpbGUiPjxzcGFuIGNsYXNzPSJtZW51X2ljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0idmVydF9kaXZpZGVyIj48L3NwYW4+PC9hPjxhIGhyZWY9Imh0dHBzOi8vYXBpLnNsYWNrLmNvbS8iIGlkPSJoZWFkZXJfbG9nbyIgY2xhc3M9ImFwaSI+PGltZyBhbHQ9IlNsYWNrIEFQSSIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vODA1ODgvaW1nL3NsYWNrX2FwaV9sb2dvX3ZvZ3VlLnBuZyI+PC9hPjxkaXYgY2xhc3M9ImhlYWRlcl9uYXYiPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3NpZ25pbiIgY2xhc3M9ImJ0biBoZWFkZXJfYnRuIGZsb2F0X3JpZ2h0IiBkYXRhLXFhPSJzaWduX2luIj5HbyB0byBTbGFjazwvYT48ZGl2IGNsYXNzPSJoZWFkZXJfbGlua3MgZmxvYXRfcmlnaHQiPjxhIGhyZWY9Ii8jcmVhZF90aGVfZG9jcyIgY2xhc3M9ImFjdGl2ZSIgZGF0YS1xYT0iZG9jdW1lbnRhdGlvbiI+RG9jdW1lbnRhdGlvbjwvYT4gPGEgaHJlZj0iL3R1dG9yaWFscyIgZGF0YS1xYT0idHV0b3JpYWxzIj5UdXRvcmlhbHM8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vQHNsYWNrYXBpIiB0YXJnZXQ9Im5ldyIgZGF0YS1xYT0idHdpdHRlciI+VHdpdHRlcjwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhbGVydF9wYWdlX3N0YWNrZWQiPjxkaXYgY2xhc3M9ImFsZXJ0X3BhZ2UgYWxlcnRfc3VjY2VzcyBoaWRkZW4gZmFkZSBhcGlfYWxlcnRfcGFnZSIgZGF0YS1qcz0iYXBpX2FsZXJ0X3BhZ2UiPjxpIGNsYXNzPSJ0c19pY29uIHRzX2ljb25fY2hlY2tfY2lyY2xlX28iPjwvaT5TdWNjZXNzITwvZGl2PjwvZGl2PjwvaGVhZGVyPjxkaXYgaWQ9InBhZ2UiIGNsYXNzPSJsYXlvdXRfdGhyZWVfY29sIj48ZGl2IGlkPSJwYWdlX2NvbnRlbnRzIiBjbGFzcz0iY2xlYXJmaXggIj48bmF2IGlkPSJhcGlfbmF2IiBjbGFzcz0iY29sIj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUgc2hvd19vbl9tb2JpbGUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+TXkgU2xhY2sgQVBJPC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gaXNfYWN0aXZlIiBocmVmPSIvI3JlYWRfdGhlX2RvY3MiPkRvY3VtZW50YXRpb248L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvYXBwcyI+WW91ciBBcHBzPC9hPjwvbGk+PC91bD48L2Rpdj48YSBuYW1lPSJyZWFkX3RoZV9kb2NzIj48L2E+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlN0YXJ0IGhlcmU8c3VwIGNsYXNzPSJzaWRlYmFyX25ld19pbmRpY2F0b3IiIHRpdGxlPSJBbiBpbnRyb2R1Y3Rpb24gdG8gU2xhY2sgYXBwcyI+bmV3PC9zdXA+PC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc3RhcnQvb3ZlcnZpZXciPkFuIGludHJvZHVjdGlvbiB0b8KgYXBwczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9zdGFydC9wbGFubmluZyI+UGxhbm5pbmcgeW91ciBhcHA8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc3RhcnQvZGVzaWduaW5nIj5EZXNpZ25pbmcgYXBwIGV4cGVyaWVuY2VzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3N0YXJ0L2J1aWxkaW5nIj5CdWlsZGluZyBhbiBhcHA8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5BcHAgZmVhdHVyZXM8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9pbnRlcm5hbC1pbnRlZ3JhdGlvbnMiPkludGVybmFsIGludGVncmF0aW9uczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9pbmNvbWluZy13ZWJob29rcyI+SW5jb21pbmcgd2ViaG9va3M8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2xhc2gtY29tbWFuZHMiPlNsYXNoIGNvbW1hbmRzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2JvdC11c2VycyI+QnVpbGRpbmcgYm90czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9hY3Rpb25zIj5BY3Rpb25zPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RpYWxvZ3MiPkRpYWxvZ3M8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvcmVmZXJlbmNlL2FwcC1ob21lIj5BcHAgSG9tZTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9zaGFyZWQtY2hhbm5lbHMiPlNoYXJlZCBDaGFubmVsczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9lbnRlcnByaXNlLWdyaWQiPkVudGVycHJpc2UgR3JpZDwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPk1lc3NhZ2luZzwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvbWVzc2FnaW5nIj5PdmVydmlldzwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL21lc3NhZ2luZy9tYW5hZ2luZyI+TWFuYWdpbmcgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9tZXNzYWdpbmcvY29tcG9zaW5nIj5Db21wb3NpbmcgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9tZXNzYWdpbmcvaW50ZXJhY3Rpdml0eSI+SW50ZXJhY3Rpdml0eTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL21lc3NhZ2luZy9maWxlcyI+V29ya2luZyB3aXRoIGZpbGVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvcmVmZXJlbmNlL21lc3NhZ2luZy9wYXlsb2FkIj5SZWZlcmVuY2U8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii90b29scy9ibG9jay1raXQtYnVpbGRlciI+QmxvY2sga2l0IGJ1aWxkZXI8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5BcHBzIGZvciBhZG1pbnM8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2FkbWlucyI+T3ZlcnZpZXc8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9hZG1pbnMvbWFuYWdpbmciPk1hbmFnaW5nIGFwcHM8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5SZWZlcmVuY2U8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii93ZWIiPldlYiBBUEk8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZXZlbnRzLWFwaSI+RXZlbnRzIEFQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL2NvbnZlcnNhdGlvbnMtYXBpIj5Db252ZXJzYXRpb25zIEFQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9ydG0iPlJlYWwgVGltZSBNZXNzYWdpbmcgQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIGlzX2FjdGl2ZSIgaHJlZj0iL21ldGhvZHMiPk1ldGhvZHM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvdHlwZXMiPk9iamVjdCBUeXBlczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9ldmVudHMiPkV2ZW50IFR5cGVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3NjaW0iPlNDSU0gQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvYXVkaXQtbG9ncy1hcGkiPkF1ZGl0IExvZ3MgQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvcGFnaW5hdGlvbiI+UGFnaW5hdGlvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3ByZXNlbmNlLWFuZC1zdGF0dXMiPlByZXNlbmNlICZhbXA7IHN0YXR1czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL2RlZXAtbGlua2luZyI+RGVlcCBsaW5raW5nIGludG8gY2xpZW50czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3JhdGUtbGltaXRzIj5SYXRlIExpbWl0czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3RyaWdnZXJzIj5UcmlnZ2VyczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2RvY3Mvb3V0bW9kZWQtbWVzc2FnaW5nIj5PdXRtb2RlZCBtZXNzYWdpbmc8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9pbnRlcmFjdGl2ZS1tZXNzYWdlcyI+SW50ZXJhY3RpdmUgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvbGVnYWN5LXdvcmtzcGFjZS1hcHBzIj5MZWdhY3k6IFdvcmtzcGFjZSBhcHBzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3NsYWNrLWFwcHMiPk1hbmFnaW5nIFNsYWNrIGFwcHM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9zbGFjay1zdGF0dXMiPlNsYWNrIFN0YXR1czwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlNsYWNrIEFwcCBEaXJlY3Rvcnk8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NsYWNrLWFwcHMtY2hlY2tsaXN0Ij5TdWJtaXNzaW9uIGNoZWNrbGlzdDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NsYWNrLWFwcHMtZ3VpZGVsaW5lcyI+U3VibWlzc2lvbiBndWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvc2xhY2stYXBwcy1zdWdnZXN0aW9ucyI+QXBwIHN1Z2dlc3Rpb25zPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSJodHRwczovL3NsYWNrLmNvbS9hcHBzIiB0YXJnZXQ9Il9ibGFuayI+QXBwIERpcmVjdG9yeTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kZXZlbG9wZXItcG9saWNpZXMiPkRldmVsb3BlciBwb2xpY2llczwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPkF1dGhlbnRpY2F0aW9uPC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9vYXV0aCI+VXNpbmcgT0F1dGggMi4wPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvb2F1dGgtc2NvcGVzIj5QZXJtaXNzaW9ucyBzeXN0ZW08L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2NvcGVzIj5TY29wZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy90b2tlbi10eXBlcyI+VG9rZW4gdHlwZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy92ZXJpZnlpbmctcmVxdWVzdHMtZnJvbS1zbGFjayI+VmVyaWZ5aW5nIHJlcXVlc3RzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvb2F1dGgtc2FmZXR5Ij5TZWN1cml0eSByZWNvbW1lbmRhdGlvbnM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9zbGFjay1idXR0b24iPlNsYWNrIEJ1dHRvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NpZ24taW4td2l0aC1zbGFjayI+U2lnbiBpbiB3aXRoIFNsYWNrPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+S2VlcCBpbiB0b3VjaDwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvc3VwcG9ydCI+U3VwcG9ydCBhbmQgRGlzY3Vzc2lvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9zbGFja2FwaSIgdGFyZ2V0PSJfYmxhbmsiPkBTbGFja0FQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL3NsYWNrLWRldmVsb3Blci1ibG9nIiB0YXJnZXQ9Il9ibGFuayI+UGxhdGZvcm0gQmxvZzwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5lbmdpbmVlcmluZy8iIHRhcmdldD0iX2JsYW5rIj5TbGFjayBFbmdpbmVlcmluZyBCbG9nPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvcm9hZG1hcCI+UGxhdGZvcm0gUm9hZG1hcDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vcGFydG5lcnMiPlBhcnRuZXJpbmcgd2l0aCBTbGFjazwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlJlc291cmNlczwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgdGl0bGU9IkZyZXF1ZW50bHkgYXNrZWQgcXVlc3Rpb25zIiBocmVmPSIvZmFxIj5GQVE8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvdG9vbHMiPlNsYWNrIGRldmVsb3BlciB0b29sczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2xhbmcvamEtanAiPkFydGljbGVzIGluIEphcGFuZXNlPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+TWVzc2FnZSBidWlsZGVyPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+Q29tbXVuaXR5PC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Imh0dHBzOi8vc2xhY2tjb21tdW5pdHkuY29tP3V0bV9tZWRpdW09cmVmZXJyYWwmYW1wO3V0bV9zb3VyY2U9YXBpc2xhY2smYW1wO3V0bV9jYW1wYWlnbj1meTIwLVExMDMtc3BjbGF1bmNoIj5TbGFjayBQbGF0Zm9ybSBDb21tdW5pdHk8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvY29tbXVuaXR5Ij5CdWlsdCBieSBvdXIgY29tbXVuaXR5PC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvaG9zdGluZyI+SG9zdGluZyBQcm92aWRlcnM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9jb21tdW5pdHktY29kZS1vZi1jb25kdWN0Ij5Db2RlIG9mIENvbmR1Y3Q8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2xhY2stZnVuZCI+U2xhY2sgRnVuZDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vL3Rlcm1zLW9mLXNlcnZpY2UvYXBpIj5BUEkgVGVybXMgb2YgU2VydmljZTwvYT48L2xpPjwvdWw+PHA+PGEgZGF0YS1ndG0tY2xpY2s9IkFQSUdldEhlbHAiIGRhdGEtY2xvZy1ldmVudD0iQVBQX0RJUkVDVE9SWV9XRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9YXBpX25hdl9nZXRfaGVscF9idG4iIGhyZWY9Ii9zdXBwb3J0P3JlZj1hcGlfbmF2IiBjbGFzcz0iYnRuIj5HZXQgSGVscDwvYT48L3A+PC9kaXY+PC9uYXY+PGRpdiBpZD0iYXBpX21haW5fY29udGVudCIgY2xhc3M9ImNvbCI+PGRpdiBjbGFzcz0iZmxvYXRfcmlnaHQgc21hbGxfdG9wX21hcmdpbiIgc3R5bGU9IndpZHRoOiAzMDBweDsgbWF4LXdpZHRoOiAxMDAlOyI+PHNlbGVjdCBpZD0iYXBpX21ldGhvZCIgZGF0YS1sYXp5LWZpbHRlci1zZWxlY3Q9IjEiPjxvcHRpb24gc2VsZWN0ZWQgZGlzYWJsZWQ+VmlldyBhbm90aGVyIG1ldGhvZC4uLjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFkbWluLmFwcHMuYXBwcm92ZSI+YWRtaW4uYXBwcy5hcHByb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWRtaW4uYXBwcy5yZXF1ZXN0cy5saXN0Ij5hZG1pbi5hcHBzLnJlcXVlc3RzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZG1pbi5hcHBzLnJlc3RyaWN0Ij5hZG1pbi5hcHBzLnJlc3RyaWN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWRtaW4udXNlcnMuc2Vzc2lvbi5yZXNldCI+YWRtaW4udXNlcnMuc2Vzc2lvbi5yZXNldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwaS50ZXN0Ij5hcGkudGVzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwcHMucGVybWlzc2lvbnMuaW5mbyI+YXBwcy5wZXJtaXNzaW9ucy5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy5yZXF1ZXN0Ij5hcHBzLnBlcm1pc3Npb25zLnJlcXVlc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhcHBzLnBlcm1pc3Npb25zLnJlc291cmNlcy5saXN0Ij5hcHBzLnBlcm1pc3Npb25zLnJlc291cmNlcy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy5zY29wZXMubGlzdCI+YXBwcy5wZXJtaXNzaW9ucy5zY29wZXMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwcHMucGVybWlzc2lvbnMudXNlcnMubGlzdCI+YXBwcy5wZXJtaXNzaW9ucy51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy51c2Vycy5yZXF1ZXN0Ij5hcHBzLnBlcm1pc3Npb25zLnVzZXJzLnJlcXVlc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhcHBzLnVuaW5zdGFsbCI+YXBwcy51bmluc3RhbGw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRoLnJldm9rZSI+YXV0aC5yZXZva2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRoLnRlc3QiPmF1dGgudGVzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJvdHMuaW5mbyI+Ym90cy5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuYXJjaGl2ZSI+Y2hhbm5lbHMuYXJjaGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmNyZWF0ZSI+Y2hhbm5lbHMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuaGlzdG9yeSI+Y2hhbm5lbHMuaGlzdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmluZm8iPmNoYW5uZWxzLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5pbnZpdGUiPmNoYW5uZWxzLmludml0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmpvaW4iPmNoYW5uZWxzLmpvaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5raWNrIj5jaGFubmVscy5raWNrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMubGVhdmUiPmNoYW5uZWxzLmxlYXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMubGlzdCI+Y2hhbm5lbHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLm1hcmsiPmNoYW5uZWxzLm1hcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5yZW5hbWUiPmNoYW5uZWxzLnJlbmFtZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLnJlcGxpZXMiPmNoYW5uZWxzLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5zZXRQdXJwb3NlIj5jaGFubmVscy5zZXRQdXJwb3NlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuc2V0VG9waWMiPmNoYW5uZWxzLnNldFRvcGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMudW5hcmNoaXZlIj5jaGFubmVscy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGF0LmRlbGV0ZSI+Y2hhdC5kZWxldGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGF0LmRlbGV0ZVNjaGVkdWxlZE1lc3NhZ2UiPmNoYXQuZGVsZXRlU2NoZWR1bGVkTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuZ2V0UGVybWFsaW5rIj5jaGF0LmdldFBlcm1hbGluazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQubWVNZXNzYWdlIj5jaGF0Lm1lTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQucG9zdEVwaGVtZXJhbCI+Y2hhdC5wb3N0RXBoZW1lcmFsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC5wb3N0TWVzc2FnZSI+Y2hhdC5wb3N0TWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuc2NoZWR1bGVNZXNzYWdlIj5jaGF0LnNjaGVkdWxlTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuc2NoZWR1bGVkTWVzc2FnZXMubGlzdCI+Y2hhdC5zY2hlZHVsZWRNZXNzYWdlcy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC51bmZ1cmwiPmNoYXQudW5mdXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC51cGRhdGUiPmNoYXQudXBkYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5hcmNoaXZlIj5jb252ZXJzYXRpb25zLmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmNsb3NlIj5jb252ZXJzYXRpb25zLmNsb3NlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5jcmVhdGUiPmNvbnZlcnNhdGlvbnMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5oaXN0b3J5Ij5jb252ZXJzYXRpb25zLmhpc3Rvcnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmluZm8iPmNvbnZlcnNhdGlvbnMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuaW52aXRlIj5jb252ZXJzYXRpb25zLmludml0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuam9pbiI+Y29udmVyc2F0aW9ucy5qb2luPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5raWNrIj5jb252ZXJzYXRpb25zLmtpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmxlYXZlIj5jb252ZXJzYXRpb25zLmxlYXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5saXN0Ij5jb252ZXJzYXRpb25zLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLm1lbWJlcnMiPmNvbnZlcnNhdGlvbnMubWVtYmVyczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMub3BlbiI+Y29udmVyc2F0aW9ucy5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5yZW5hbWUiPmNvbnZlcnNhdGlvbnMucmVuYW1lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5yZXBsaWVzIj5jb252ZXJzYXRpb25zLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLnNldFB1cnBvc2UiPmNvbnZlcnNhdGlvbnMuc2V0UHVycG9zZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuc2V0VG9waWMiPmNvbnZlcnNhdGlvbnMuc2V0VG9waWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLnVuYXJjaGl2ZSI+Y29udmVyc2F0aW9ucy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkaWFsb2cub3BlbiI+ZGlhbG9nLm9wZW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkbmQuZW5kRG5kIj5kbmQuZW5kRG5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZG5kLmVuZFNub296ZSI+ZG5kLmVuZFNub296ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRuZC5pbmZvIj5kbmQuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRuZC5zZXRTbm9vemUiPmRuZC5zZXRTbm9vemU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkbmQudGVhbUluZm8iPmRuZC50ZWFtSW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImVtb2ppLmxpc3QiPmVtb2ppLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy5jb21tZW50cy5kZWxldGUiPmZpbGVzLmNvbW1lbnRzLmRlbGV0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLmRlbGV0ZSI+ZmlsZXMuZGVsZXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMuaW5mbyI+ZmlsZXMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLmxpc3QiPmZpbGVzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy5yZW1vdGUuYWRkIj5maWxlcy5yZW1vdGUuYWRkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLmluZm8iPmZpbGVzLnJlbW90ZS5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLmxpc3QiPmZpbGVzLnJlbW90ZS5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLnJlbW92ZSI+ZmlsZXMucmVtb3RlLnJlbW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLnJlbW90ZS5zaGFyZSI+ZmlsZXMucmVtb3RlLnNoYXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLnVwZGF0ZSI+ZmlsZXMucmVtb3RlLnVwZGF0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLnJldm9rZVB1YmxpY1VSTCI+ZmlsZXMucmV2b2tlUHVibGljVVJMPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMuc2hhcmVkUHVibGljVVJMIj5maWxlcy5zaGFyZWRQdWJsaWNVUkw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy51cGxvYWQiPmZpbGVzLnVwbG9hZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5hcmNoaXZlIj5ncm91cHMuYXJjaGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5jcmVhdGUiPmdyb3Vwcy5jcmVhdGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuY3JlYXRlQ2hpbGQiPmdyb3Vwcy5jcmVhdGVDaGlsZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5oaXN0b3J5Ij5ncm91cHMuaGlzdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5pbmZvIj5ncm91cHMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5pbnZpdGUiPmdyb3Vwcy5pbnZpdGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMua2ljayI+Z3JvdXBzLmtpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMubGVhdmUiPmdyb3Vwcy5sZWF2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5saXN0Ij5ncm91cHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5tYXJrIj5ncm91cHMubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5vcGVuIj5ncm91cHMub3Blbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5yZW5hbWUiPmdyb3Vwcy5yZW5hbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMucmVwbGllcyI+Z3JvdXBzLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuc2V0UHVycG9zZSI+Z3JvdXBzLnNldFB1cnBvc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuc2V0VG9waWMiPmdyb3Vwcy5zZXRUb3BpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy51bmFyY2hpdmUiPmdyb3Vwcy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5jbG9zZSI+aW0uY2xvc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5oaXN0b3J5Ij5pbS5oaXN0b3J5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaW0ubGlzdCI+aW0ubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImltLm1hcmsiPmltLm1hcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5vcGVuIj5pbS5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaW0ucmVwbGllcyI+aW0ucmVwbGllczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1pZ3JhdGlvbi5leGNoYW5nZSI+bWlncmF0aW9uLmV4Y2hhbmdlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5jbG9zZSI+bXBpbS5jbG9zZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1waW0uaGlzdG9yeSI+bXBpbS5oaXN0b3J5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5saXN0Ij5tcGltLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJtcGltLm1hcmsiPm1waW0ubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1waW0ub3BlbiI+bXBpbS5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5yZXBsaWVzIj5tcGltLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJvYXV0aC5hY2Nlc3MiPm9hdXRoLmFjY2Vzczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im9hdXRoLnRva2VuIj5vYXV0aC50b2tlbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InBpbnMuYWRkIj5waW5zLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InBpbnMubGlzdCI+cGlucy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icGlucy5yZW1vdmUiPnBpbnMucmVtb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVhY3Rpb25zLmFkZCI+cmVhY3Rpb25zLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlYWN0aW9ucy5nZXQiPnJlYWN0aW9ucy5nZXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJyZWFjdGlvbnMubGlzdCI+cmVhY3Rpb25zLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJyZWFjdGlvbnMucmVtb3ZlIj5yZWFjdGlvbnMucmVtb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVtaW5kZXJzLmFkZCI+cmVtaW5kZXJzLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5jb21wbGV0ZSI+cmVtaW5kZXJzLmNvbXBsZXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVtaW5kZXJzLmRlbGV0ZSI+cmVtaW5kZXJzLmRlbGV0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5pbmZvIj5yZW1pbmRlcnMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5saXN0Ij5yZW1pbmRlcnMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJ0bS5jb25uZWN0Ij5ydG0uY29ubmVjdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJ0bS5zdGFydCI+cnRtLnN0YXJ0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2VhcmNoLmFsbCI+c2VhcmNoLmFsbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNlYXJjaC5maWxlcyI+c2VhcmNoLmZpbGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2VhcmNoLm1lc3NhZ2VzIj5zZWFyY2gubWVzc2FnZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdGFycy5hZGQiPnN0YXJzLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InN0YXJzLmxpc3QiPnN0YXJzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdGFycy5yZW1vdmUiPnN0YXJzLnJlbW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InRlYW0uYWNjZXNzTG9ncyI+dGVhbS5hY2Nlc3NMb2dzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGVhbS5iaWxsYWJsZUluZm8iPnRlYW0uYmlsbGFibGVJbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGVhbS5pbmZvIj50ZWFtLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0ZWFtLmludGVncmF0aW9uTG9ncyI+dGVhbS5pbnRlZ3JhdGlvbkxvZ3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0ZWFtLnByb2ZpbGUuZ2V0Ij50ZWFtLnByb2ZpbGUuZ2V0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy5jcmVhdGUiPnVzZXJncm91cHMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy5kaXNhYmxlIj51c2VyZ3JvdXBzLmRpc2FibGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VyZ3JvdXBzLmVuYWJsZSI+dXNlcmdyb3Vwcy5lbmFibGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VyZ3JvdXBzLmxpc3QiPnVzZXJncm91cHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJncm91cHMudXBkYXRlIj51c2VyZ3JvdXBzLnVwZGF0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJncm91cHMudXNlcnMubGlzdCI+dXNlcmdyb3Vwcy51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy51c2Vycy51cGRhdGUiPnVzZXJncm91cHMudXNlcnMudXBkYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuY29udmVyc2F0aW9ucyI+dXNlcnMuY29udmVyc2F0aW9uczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmRlbGV0ZVBob3RvIj51c2Vycy5kZWxldGVQaG90bzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmdldFByZXNlbmNlIj51c2Vycy5nZXRQcmVzZW5jZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmlkZW50aXR5Ij51c2Vycy5pZGVudGl0eTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmluZm8iPnVzZXJzLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2Vycy5saXN0Ij51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMubG9va3VwQnlFbWFpbCI+dXNlcnMubG9va3VwQnlFbWFpbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnByb2ZpbGUuZ2V0Ij51c2Vycy5wcm9maWxlLmdldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnByb2ZpbGUuc2V0Ij51c2Vycy5wcm9maWxlLnNldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnNldEFjdGl2ZSI+dXNlcnMuc2V0QWN0aXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuc2V0UGhvdG8iPnVzZXJzLnNldFBob3RvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuc2V0UHJlc2VuY2UiPnVzZXJzLnNldFByZXNlbmNlPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGgxPmNoYXQucG9zdE1lc3NhZ2U8L2gxPjxkaXYgY2xhc3M9InRhYl9zZXQgb25fbmV1dHJhbF9ncmV5Ij48YSBocmVmPSIvbWV0aG9kcy9jaGF0LnBvc3RNZXNzYWdlIiBjbGFzcz0ic2VsZWN0ZWQiPkRvY3VtZW50YXRpb248L2E+PGEgaHJlZj0iL21ldGhvZHMvY2hhdC5wb3N0TWVzc2FnZS90ZXN0Ij5UZXN0ZXI8L2E+PC9kaXY+PHNlY3Rpb24gY2xhc3M9InRhYl9wYW5lIHNlbGVjdGVkIGNsZWFyZml4IGxhcmdlX2JvdHRvbV9wYWRkaW5nIiBkYXRhLXRhYj0iZG9jcyI+PHA+U2VuZHMgYSBtZXNzYWdlIHRvIGEgY2hhbm5lbC48L3A+PHA+PC9wPjxoMiBpZD0iZmFjdHMiPkZhY3RzPC9oMj48dGFibGUgY2xhc3M9InNtYWxsIGZ1bGxfd2lkdGggbm9fYm90dG9tX21hcmdpbiBub19ib3R0b21fcGFkZGluZyI+PHRyPjx0aCBjbGFzcz0iYWxpZ25fcmlnaHQiPk1ldGhvZCBVUkw6PC90aD48dGQ+PGNvZGU+aHR0cHM6Ly9zbGFjay5jb20vYXBpL2NoYXQucG9zdE1lc3NhZ2U8L2NvZGU+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImFsaWduX3JpZ2h0Ij5QcmVmZXJyZWQgSFRUUCBtZXRob2Q6PC90aD48dGQ+PGNvZGU+UE9TVDwvY29kZT48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iYWxpZ25fcmlnaHQiPkFjY2VwdGVkIGNvbnRlbnQgdHlwZXM6PC90aD48dGQ+PGNvZGU+YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkPC9jb2RlPiwgPGEgdGl0bGU9IkxlYXJuIG1vcmUgYWJvdXQgc2VuZGluZyBIVFRQIFBPU1Qgd2l0aCBKU09OIiBocmVmPSIvd2ViI3Bvc3RpbmdfanNvbiI+PGNvZGU+YXBwbGljYXRpb24vanNvbjwvY29kZT48L2E+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImFsaWduX3JpZ2h0Ij5SYXRlIGxpbWl0aW5nOjwvdGg+PHRkPjxzcGFuIGNsYXNzPSJyYXRlX2xpbWl0IHRpZXJfdDUiPjxhIGhyZWY9Ii9kb2NzL3JhdGUtbGltaXRzI3RpZXJfdDUiPlNwZWNpYWw8L2E+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJhbGlnbl9yaWdodCI+V29ya3Mgd2l0aDo8L3RoPjx0ZD48dGFibGUgY2xhc3M9InNtYWxsIGZ1bGxfd2lkdGggbm9fbWFyZ2luIG5vX3BhZGRpbmciPjx0ciBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPjx0aCBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPlRva2VuIHR5cGU8L3RoPjx0aCBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPlJlcXVpcmVkIHNjb3BlKHMpPC90aD48L3RyPjx0cj48dGQ+PGEgY2xhc3M9ImJ0bl9iYXNpYyBwaWxsX2J0biBidG5fc21hbGwgdG9rZW5fYm90IHRva2VuX2xpbmsiIGhyZWY9Ii9kb2NzL3Rva2VuLXR5cGVzI2JvdCI+Ym90PC9hPjwvdGQ+PHRkPjxhIGhyZWY9Ii9zY29wZXMvYm90Ij48Y29kZT5ib3Q8L2NvZGU+PC9hPjwvdGQ+PC90cj48dHI+PHRkPjxhIGNsYXNzPSJidG5fYmFzaWMgcGlsbF9idG4gYnRuX3NtYWxsIHRva2VuX3VzZXIgdG9rZW5fbGluayIgaHJlZj0iL2RvY3MvdG9rZW4tdHlwZXMjdXNlciI+dXNlcjwvYT48L3RkPjx0ZD48YSBocmVmPSIvc2NvcGVzL2NoYXQ6d3JpdGU6dXNlciI+PGNvZGU+Y2hhdDp3cml0ZTp1c2VyPC9jb2RlPjwvYT7CoCA8YSBocmVmPSIvc2NvcGVzL2NoYXQ6d3JpdGU6Ym90Ij48Y29kZT5jaGF0OndyaXRlOmJvdDwvY29kZT48L2E+wqAgPC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PGhyIGNsYXNzPSJzbWFsbF90b3BfbWFyZ2luIj48cD5UaGlzIG1ldGhvZCBwb3N0cyA8YSBocmVmPSIvZG9jcy9tZXNzYWdlcyI+YSBtZXNzYWdlPC9hPiB0byBhIHB1YmxpYyBjaGFubmVsLCBwcml2YXRlIGNoYW5uZWwsIG9yIGRpcmVjdCBtZXNzYWdlL0lNIGNoYW5uZWwuPC9wPgoKPGEgbmFtZT0iYXJndW1lbnRzIj48L2E+PGgyID5Bcmd1bWVudHM8L2gyPgoKPHRhYmxlIGNsYXNzPSJhcmd1bWVudHMgZnVsbF93aWR0aCI+IDx0cj4gPHRoPkFyZ3VtZW50PC90aD4gPHRoPkV4YW1wbGU8L3RoPiA8dGg+UmVxdWlyZWQ8L3RoPiA8dGg+RGVzY3JpcHRpb248L3RoPiA8L3RyPiA8dHI+PHRkPjxjb2RlPnRva2VuPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnh4eHgteHh4eHh4eHh4LXh4eHg8L2NvZGU+PC90ZD48dGQ+UmVxdWlyZWQ8L3RkPjx0ZD48cD5BdXRoZW50aWNhdGlvbiB0b2tlbiBiZWFyaW5nIHJlcXVpcmVkIHNjb3Blcy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmNoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PGNvZGU+QzEyMzQ1Njc4OTA8L2NvZGU+PC90ZD48dGQ+UmVxdWlyZWQ8L3RkPjx0ZD48cD5DaGFubmVsLCBwcml2YXRlIGdyb3VwLCBvciBJTSBjaGFubmVsIHRvIHNlbmQgbWVzc2FnZSB0by4gQ2FuIGJlIGFuIGVuY29kZWQgSUQsIG9yIGEgbmFtZS4gU2VlIDxhIGhyZWY9IiNjaGFubmVscyI+YmVsb3c8L2E+IGZvciBtb3JlIGRldGFpbHMuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50ZXh0PC9jb2RlPjwvdGQ+PHRkPjxjb2RlPkhlbGxvIHdvcmxkPC9jb2RlPjwvdGQ+PHRkPlJlcXVpcmVkPC90ZD48dGQ+PHA+VGV4dCBvZiB0aGUgbWVzc2FnZSB0byBzZW5kLiBTZWUgYmVsb3cgZm9yIGFuIGV4cGxhbmF0aW9uIG9mIDxhIGhyZWY9IiNmb3JtYXR0aW5nIj5mb3JtYXR0aW5nPC9hPi4gVGhpcyBmaWVsZCBpcyB1c3VhbGx5IHJlcXVpcmVkLCB1bmxlc3MgeW91J3JlIHByb3ZpZGluZyBvbmx5IDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBpbnN0ZWFkLiBQcm92aWRlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycyBvciA8YSBocmVmPSIvY2hhbmdlbG9nLzIwMTgtMDQtdHJ1bmNhdGluZy1yZWFsbHktbG9uZy1tZXNzYWdlcyI+cmlzayB0cnVuY2F0aW9uPC9hPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmFzX3VzZXI8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlBhc3MgdHJ1ZSB0byBwb3N0IHRoZSBtZXNzYWdlIGFzIHRoZSBhdXRoZWQgdXNlciwgaW5zdGVhZCBvZiBhcyBhIGJvdC4gRGVmYXVsdHMgdG8gZmFsc2UuIFNlZSA8YSBocmVmPSIjYXV0aG9yc2hpcCI+YXV0aG9yc2hpcDwvYT4gYmVsb3cuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5hdHRhY2htZW50czwvY29kZT48L3RkPjx0ZD48Y29kZT5beyZxdW90O3ByZXRleHQmcXVvdDs6ICZxdW90O3ByZS1oZWxsbyZxdW90OywgJnF1b3Q7dGV4dCZxdW90OzogJnF1b3Q7dGV4dC13b3JsZCZxdW90O31dPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsPC90ZD48dGQ+PHA+QSBKU09OLWJhc2VkIGFycmF5IG9mIHN0cnVjdHVyZWQgYXR0YWNobWVudHMsIHByZXNlbnRlZCBhcyBhIFVSTC1lbmNvZGVkIHN0cmluZy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmJsb2NrczwvY29kZT48L3RkPjx0ZD48Y29kZT5beyZxdW90O3R5cGUmcXVvdDs6ICZxdW90O3NlY3Rpb24mcXVvdDssICZxdW90O3RleHQmcXVvdDs6IHsmcXVvdDt0eXBlJnF1b3Q7OiAmcXVvdDtwbGFpbl90ZXh0JnF1b3Q7LCAmcXVvdDt0ZXh0JnF1b3Q7OiAmcXVvdDtIZWxsbyB3b3JsZCZxdW90O319XTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkEgSlNPTi1iYXNlZCBhcnJheSBvZiBzdHJ1Y3R1cmVkIGJsb2NrcywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aWNvbl9lbW9qaTwvY29kZT48L3RkPjx0ZD48Y29kZT46Y2hhcnRfd2l0aF91cHdhcmRzX3RyZW5kOjwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkVtb2ppIHRvIHVzZSBhcyB0aGUgaWNvbiBmb3IgdGhpcyBtZXNzYWdlLiBPdmVycmlkZXMgPGNvZGU+aWNvbl91cmw8L2NvZGU+LiBNdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCA8Y29kZT5hc191c2VyPC9jb2RlPiBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIDxhIGhyZWY9IiNhdXRob3JzaGlwIj5hdXRob3JzaGlwPC9hPiBiZWxvdy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmljb25fdXJsPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPmh0dHA6Ly9sb3JlbXBpeGVsLmNvbS80OC80ODwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlVSTCB0byBhbiBpbWFnZSB0byB1c2UgYXMgdGhlIGljb24gZm9yIHRoaXMgbWVzc2FnZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPGNvZGU+YXNfdXNlcjwvY29kZT4gc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIDxhIGhyZWY9IiNhdXRob3JzaGlwIj5hdXRob3JzaGlwPC9hPiBiZWxvdy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmxpbmtfbmFtZXM8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkZpbmQgYW5kIGxpbmsgY2hhbm5lbCBuYW1lcyBhbmQgdXNlcm5hbWVzLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bXJrZHduPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPmZhbHNlPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsLCBkZWZhdWx0PXRydWU8L3RkPjx0ZD48cD5EaXNhYmxlIFNsYWNrIG1hcmt1cCBwYXJzaW5nIGJ5IHNldHRpbmcgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LiBFbmFibGVkIGJ5IGRlZmF1bHQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5wYXJzZTwvY29kZT48L3RkPjx0ZD48Y29kZT5mdWxsPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsPC90ZD48dGQ+PHA+Q2hhbmdlIGhvdyBtZXNzYWdlcyBhcmUgdHJlYXRlZC4gRGVmYXVsdHMgdG8gPGNvZGU+bm9uZTwvY29kZT4uIFNlZSA8YSBocmVmPSIjZm9ybWF0dGluZyI+YmVsb3c8L2E+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVwbHlfYnJvYWRjYXN0PC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnRydWU8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5Vc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPGNvZGU+dGhyZWFkX3RzPC9jb2RlPiBhbmQgaW5kaWNhdGVzIHdoZXRoZXIgcmVwbHkgc2hvdWxkIGJlIG1hZGUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCBvciBjb252ZXJzYXRpb24uIERlZmF1bHRzIHRvIDxjb2RlPmZhbHNlPC9jb2RlPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPnRocmVhZF90czwvY29kZT48L3RkPjx0ZD48Y29kZT4xMjM0NTY3ODkwLjEyMzQ1NjwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlByb3ZpZGUgYW5vdGhlciBtZXNzYWdlJ3MgPGNvZGU+dHM8L2NvZGU+IHZhbHVlIHRvIG1ha2UgdGhpcyBtZXNzYWdlIGEgcmVwbHkuIEF2b2lkIHVzaW5nIGEgcmVwbHkncyA8Y29kZT50czwvY29kZT4gdmFsdWU7IHVzZSBpdHMgcGFyZW50IGluc3RlYWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51bmZ1cmxfbGlua3M8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlBhc3MgdHJ1ZSB0byBlbmFibGUgdW5mdXJsaW5nIG9mIHByaW1hcmlseSB0ZXh0LWJhc2VkIGNvbnRlbnQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51bmZ1cmxfbWVkaWE8L2NvZGU+PC90ZD48dGQ+PGNvZGU+ZmFsc2U8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5QYXNzIGZhbHNlIHRvIGRpc2FibGUgdW5mdXJsaW5nIG9mIG1lZGlhIGNvbnRlbnQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51c2VybmFtZTwvY29kZT48L3RkPjx0ZD48Y29kZT5NeSBCb3Q8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5TZXQgeW91ciBib3QncyB1c2VyIG5hbWUuIE11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHNldCB0byBmYWxzZSwgb3RoZXJ3aXNlIGlnbm9yZWQuIFNlZSA8YSBocmVmPSIjYXV0aG9yc2hpcCI+YXV0aG9yc2hpcDwvYT4gYmVsb3cuPC9wPgo8L3RkPjwvdHI+PC90YWJsZT48cCBjbGFzcz0iYWxlcnQgYWxlcnRfaW5mbyI+PHRzLWljb24gY2xhc3M9InRzX2ljb25fY29kZSI+PC90cy1pY29uPlRoaXMgbWV0aG9kIHN1cHBvcnRzIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IHZpYSBIVFRQIFBPU1QuIFByZXNlbnQgeW91ciA8Y29kZT50b2tlbjwvY29kZT4gaW4geW91ciByZXF1ZXN0J3MgPGNvZGU+QXV0aG9yaXphdGlvbjwvY29kZT4gaGVhZGVyLiA8YSBocmVmPSIvd2ViI3Bvc3RpbmdfanNvbiI+TGVhcm4gbW9yZTwvYT4uPC9wPgoKPHA+UGxlYXNlIG5vdGUgdGhhdCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgPGNvZGU+YXNfdXNlcjwvY29kZT4gcGFyYW1ldGVyIHZhcmllcyBkZXBlbmRpbmcgb24gdGhlIGtpbmQgb2YgdG9rZW4geW91J3JlIHVzaW5nLiBJdCdzIGJlc3QgdG8gYmUgZXhwbGljaXQgd2l0aCB0aGlzIHZhbHVlLiBSZWFkIG1vcmUgYWJvdXQgPGEgaHJlZj0iI2F1dGhvcnNoaXAiPkF1dGhvcnNoaXA8L2E+IHRvIHVuZGVyc3RhbmQgaG93IGl0cyBkZWZhdWx0IHZhbHVlIG1heSB2YXJ5LjwvcD4KCjxwPkEgbWVzc2FnZSBtdXN0IGhhdmUgZWl0aGVyIDxjb2RlPnRleHQ8L2NvZGU+IG9yIDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBvciBib3RoLiBUaGUgPGNvZGU+dGV4dDwvY29kZT4gcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHVubGVzcyB5b3UgcHJvdmlkZSA8Y29kZT5hdHRhY2htZW50czwvY29kZT4uIFlvdSBjYW4gdXNlIGJvdGggcGFyYW1ldGVycyBpbiBjb25qdW5jdGlvbiB3aXRoIGVhY2ggb3RoZXIgdG8gY3JlYXRlIGF3ZXNvbWUgbWVzc2FnZXMuPC9wPgoKPGEgbmFtZT0ianNvbl9wb3N0X3N1cHBvcnQiPjwvYT48aDMgPkpTT04gUE9TVCBzdXBwb3J0PC9oMz4KCjxwPkFzIG9mIE9jdG9iZXIgMjAxNywgaXQncyBub3cgcG9zc2libGUgdG8gc2VuZCBhIHdlbGwtZm9ybWF0dGVkIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IFBPU1QgYm9keSB0byA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiBhbmQgb3RoZXIgPGEgaHJlZj0iL3dlYiI+V2ViIEFQSTwvYT4gd3JpdGUgbWV0aG9kcy4gTm8gbmVlZCB0byBjYXJlZnVsbHkgVVJMLWVuY29kZSB5b3VyIEpTT04gPGNvZGU+YXR0YWNobWVudHM8L2NvZGU+IGFuZCBwcmVzZW50IGFsbCBvdGhlciBmaWVsZHMgYXMgVVJMIGVuY29kZWQga2V5L3ZhbHVlIHBhaXJzOyBqdXN0IHNlbmQgSlNPTiBpbnN0ZWFkLjwvcD4KCjxwPk5vdyB5b3UgY2FuIHNlbmQgbWVzc2FnZXMgbG92aW5nbHkgYXV0aG9yZWQgd2l0aCB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+bWVzc2FnZSBidWlsZGVyPC9hPiB0byA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiB3aXRob3V0IGZ1cnRoZXIgbW9kaWZpY2F0aW9uLjwvcD4KCjxwPkxlYXJuIG1vcmUgYWJvdXQgdGhpcyBzdXBwb3J0IGluIHRoZSA8YSBocmVmPSIvd2ViIj5XZWIgQVBJPC9hPiBkb2NzIG9yIDxhIGhyZWY9Ii9jaGFuZ2Vsb2cvMjAxNy0xMC1rZWVwaW5nLXVwLXdpdGgtdGhlLWpzb25zIj50aGlzIGNoYW5nZWxvZzwvYT4uPC9wPgoKPGEgbmFtZT0icmVzcG9uc2UiPjwvYT48aDIgPlJlc3BvbnNlPC9oMj4KCjxkaXY+PHA+PHA+VHlwaWNhbCBzdWNjZXNzIHJlc3BvbnNlPC9wPgo8L3A+PHByZT48Y29kZSBjbGFzcz0ianNvbiI+ewogICAgJnF1b3Q7b2smcXVvdDs6IHRydWUsCiAgICAmcXVvdDtjaGFubmVsJnF1b3Q7OiAmcXVvdDtDMUg5UkVTR0wmcXVvdDssCiAgICAmcXVvdDt0cyZxdW90OzogJnF1b3Q7MTUwMzQzNTk1Ni4wMDAyNDcmcXVvdDssCiAgICAmcXVvdDttZXNzYWdlJnF1b3Q7OiB7CiAgICAgICAgJnF1b3Q7dGV4dCZxdW90OzogJnF1b3Q7SGVyZSdzIGEgbWVzc2FnZSBmb3IgeW91JnF1b3Q7LAogICAgICAgICZxdW90O3VzZXJuYW1lJnF1b3Q7OiAmcXVvdDtlY3RvMSZxdW90OywKICAgICAgICAmcXVvdDtib3RfaWQmcXVvdDs6ICZxdW90O0IxOUxVN0NTWSZxdW90OywKICAgICAgICAmcXVvdDthdHRhY2htZW50cyZxdW90OzogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAmcXVvdDt0ZXh0JnF1b3Q7OiAmcXVvdDtUaGlzIGlzIGFuIGF0dGFjaG1lbnQmcXVvdDssCiAgICAgICAgICAgICAgICAmcXVvdDtpZCZxdW90OzogMSwKICAgICAgICAgICAgICAgICZxdW90O2ZhbGxiYWNrJnF1b3Q7OiAmcXVvdDtUaGlzIGlzIGFuIGF0dGFjaG1lbnQncyBmYWxsYmFjayZxdW90OwogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAmcXVvdDt0eXBlJnF1b3Q7OiAmcXVvdDttZXNzYWdlJnF1b3Q7LAogICAgICAgICZxdW90O3N1YnR5cGUmcXVvdDs6ICZxdW90O2JvdF9tZXNzYWdlJnF1b3Q7LAogICAgICAgICZxdW90O3RzJnF1b3Q7OiAmcXVvdDsxNTAzNDM1OTU2LjAwMDI0NyZxdW90OwogICAgfQp9PC9jb2RlPjwvcHJlPjwvZGl2PjxkaXY+PHA+PHA+VHlwaWNhbCBlcnJvciByZXNwb25zZSBpZiB0b28gbWFueSBhdHRhY2htZW50cyBhcmUgaW5jbHVkZWQ8L3A+CjwvcD48cHJlPjxjb2RlIGNsYXNzPSJqc29uIj57CiAgICAmcXVvdDtvayZxdW90OzogZmFsc2UsCiAgICAmcXVvdDtlcnJvciZxdW90OzogJnF1b3Q7dG9vX21hbnlfYXR0YWNobWVudHMmcXVvdDsKfTwvY29kZT48L3ByZT48L2Rpdj4KCjxwPlRoZSByZXNwb25zZSBpbmNsdWRlcyB0aGUgInRpbWVzdGFtcCBJRCIgKDxjb2RlPnRzPC9jb2RlPikgYW5kIHRoZSBjaGFubmVsLWxpa2UgdGhpbmcgd2hlcmUgdGhlIG1lc3NhZ2Ugd2FzIHBvc3RlZC4gSXQgYWxzbyBpbmNsdWRlcyB0aGUgY29tcGxldGUgbWVzc2FnZSBvYmplY3QsIGFzIHBhcnNlZCBieSBvdXIgc2VydmVycy4gVGhpcyBtYXkgZGlmZmVyIGZyb20gdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcyBvdXIgc2VydmVycyBzYW5pdGl6ZSBsaW5rcywgYXR0YWNobWVudHMsIGFuZCBvdGhlciBwcm9wZXJ0aWVzLiBZb3VyIG1lc3NhZ2UgbWF5IG11dGF0ZS48L3A+Cgo8cD48YSBuYW1lPSJmb3JtYXR0aW5nIj48L2E+PC9wPgoKPGEgbmFtZT0iZm9ybWF0dGluZ19tZXNzYWdlcyI+PC9hPjxoMiA+Rm9ybWF0dGluZyBtZXNzYWdlczwvaDI+Cgo8cD5NZXNzYWdlcyBhcmUgZm9ybWF0dGVkIGFzIGRlc2NyaWJlZCBpbiB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZS1mb3JtYXR0aW5nIj5mb3JtYXR0aW5nIHNwZWM8L2E+LiBZb3UgY2FuIHNwZWNpZnkgdmFsdWVzIGZvciA8Y29kZT5wYXJzZTwvY29kZT4gYW5kIDxjb2RlPmxpbmtfbmFtZXM8L2NvZGU+IHRvIGNoYW5nZSBmb3JtYXR0aW5nIGJlaGF2aW9yLjwvcD4KCjxwPldoZW4gUE9TVGluZyB3aXRoIDxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT4gZGF0YSwgdGhlIG9wdGlvbmFsIDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBhcmd1bWVudCBzaG91bGQgY29udGFpbiBhIEpTT04tZW5jb2RlZCBhcnJheSBvZiBhdHRhY2htZW50cy4gTWFrZSBpdCBlYXN5IG9uIHlvdXJzZWxmIGFuZCBzZW5kIHlvdXIgZW50aXJlIG1lc3NhZ2VzIGFzIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IGluc3RlYWQuPC9wPgoKPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZS1hdHRhY2htZW50cyI+YXR0YWNobWVudHMgc3BlYzwvYT4uIElmIHlvdSdyZSB1c2luZyBhIDxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBhcHA8L2E+LCB5b3UgY2FuIGFsc28gdXNlIHRoaXMgbWV0aG9kIHRvIGF0dGFjaCA8YSBocmVmPSIvZG9jcy9tZXNzYWdlLWJ1dHRvbnMiPm1lc3NhZ2UgYnV0dG9uczwvYT4uPC9wPgoKPHA+QnkgZGVmYXVsdCBsaW5rcyB0byBtZWRpYSBhcmUgdW5mdXJsZWQsIGJ1dCBsaW5rcyB0byB0ZXh0IGNvbnRlbnQgYXJlIG5vdC4gRm9yCm1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGRpZmZlcmVuY2VzIGFuZCBob3cgdG8gY29udHJvbCB0aGlzLCBzZWUgdGhlCjxhIGhyZWY9Ii9kb2NzL21lc3NhZ2UtYXR0YWNobWVudHMjdW5mdXJsaW5nIj50aGUgdW5mdXJsaW5nIGRvY3VtZW50YXRpb248L2E+LjwvcD4KCjxwPlVzZSB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+PHN0cm9uZz5NZXNzYWdlIEJ1aWxkZXI8L3N0cm9uZz48L2E+IHRvIHByZXZpZXcgeW91ciBtZXNzYWdlIGZvcm1hdHRpbmcgYW5kIGF0dGFjaG1lbnRzIGluIHJlYWwgdGltZSEgSXQncyBlYXN5IHRvIHRyYW5zbGF0ZSB5b3VyIEpTT04gZXhhbXBsZXMgdG8gdGhlIHBhcmFtZXRlcnMgdW5kZXJzdG9vZCBieSA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPi48L3A+Cgo8cD5Gb3IgYmVzdCByZXN1bHRzLCBsaW1pdCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIDxjb2RlPnRleHQ8L2NvZGU+IGZpZWxkIHRvIDQsMDAwIGNoYXJhY3RlcnMuIElkZWFsbHksIG1lc3NhZ2VzIHNob3VsZCBiZSBzaG9ydCBhbmQgaHVtYW4tcmVhZGFibGUuIFNsYWNrIHdpbGwgPGEgaHJlZj0iL2NoYW5nZWxvZy8yMDE4LXRydW5jYXRpbmctcmVhbGx5LWxvbmctbWVzc2FnZXMiPnRydW5jYXRlIG1lc3NhZ2VzPC9hPiBjb250YWluaW5nIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycy48L3A+Cgo8cD5JZiB5b3UgbmVlZCB0byBwb3N0IGxvbmdlciBtZXNzYWdlcywgcGxlYXNlIGNvbnNpZGVyIDxhIGhyZWY9Ii9tZXRob2RzL2ZpbGVzLnVwbG9hZCI+dXBsb2FkaW5nIGEgc25pcHBldCBpbnN0ZWFkPC9hPi48L3A+Cgo8cD5Db25zaWRlciByZXZpZXdpbmcgb3VyIDxhIGhyZWY9Ii9kb2NzL21lc3NhZ2UtZ3VpZGVsaW5lcyI+bWVzc2FnZSBndWlkZWxpbmVzPC9hPiwgZXNwZWNpYWxseSBpZiB5b3UncmUgdXNpbmcgYXR0YWNobWVudHMgb3IgbWVzc2FnZSBidXR0b25zLjwvcD4KCjxhIG5hbWU9ImF1dGhvcnNoaXAiPjwvYT48aDIgPkF1dGhvcnNoaXA8L2gyPgoKPHA+SG93IG1lc3NhZ2UgYXV0aG9yc2hpcCBpcyBhdHRyaWJ1dGVkIHZhcmllcyBieSBhIGZldyBmYWN0b3JzLCB3aXRoIHNvbWUgYmVoYXZpb3JzIHZhcnlpbmcgZGVwZW5kaW5nIG9uIHRoZSBraW5kcyBvZiB0b2tlbnMgeW91J3JlIHVzaW5nIHRvIHBvc3QgYSBtZXNzYWdlLjwvcD4KCjxwPlRoZSBiZXN0IHdheSB0byByZWFsaXplIHlvdXIgaW50ZW5kZWQgcmVzdWx0IGlzIHRvIGJlIGV4cGxpY2l0IHdpdGggdGhlIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHBhcmFtZXRlci48L3A+Cgo8cD48Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiB3YW50cyB5b3VyIG1lc3NhZ2UgcG9zdGluZyB0byBzdWNjZWVkIGFuZCBtYXkgYXR0ZW1wdCB0byBndWVzcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSA8Y29kZT5hc191c2VyPC9jb2RlPiBpbnRlcnByZXRhdGlvbiBiYXNlZCBvbiB0aGUga2luZCBvZiB0b2tlbiB5b3UncmUgdXNpbmcuPC9wPgoKPHA+SWYgPGNvZGU+YXNfdXNlcjwvY29kZT4gaXMgbm90IHByb3ZpZGVkIGF0IGFsbCwgdGhlbiB0aGUgdmFsdWUgaXMgaW5mZXJyZWQsIGJhc2VkIG9uIHRoZSBzY29wZXMgZ3JhbnRlZCB0byB0aGUgY2FsbGVyOiBJZiB0aGUgY2FsbGVyIDxlbT5jb3VsZDwvZW0+IHBvc3Qgd2l0aCA8Y29kZT5hc191c2VyPC9jb2RlPiBwYXNzZWQgYXMgPGNvZGU+ZmFsc2U8L2NvZGU+LCB0aGVuIHRoYXQgaXMgaG93IHRoZSBtZXRob2QgYmVoYXZlczsgb3RoZXJ3aXNlLCB0aGUgbWV0aG9kIGJlaGF2ZXMKYXMgaWYgPGNvZGU+YXNfdXNlcjwvY29kZT4gd2VyZSBwYXNzZWQgYXMgPGNvZGU+dHJ1ZTwvY29kZT4uPC9wPgoKPGEgbmFtZT0id2hlbl9hc191c2VyX2lzX2ZhbHNlIj48L2E+PGgzID5XaGVuIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIGZhbHNlPC9oMz4KCjxwPldoZW4gdGhlIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHBhcmFtZXRlciBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LCBtZXNzYWdlcyBhcmUgcG9zdGVkIGFzICI8YSBocmVmPSIvZXZlbnRzL21lc3NhZ2UvYm90X21lc3NhZ2UiPjxjb2RlPmJvdF9tZXNzYWdlczwvY29kZT48L2E+Iiwgd2l0aCBtZXNzYWdlIGF1dGhvcnNoaXAgYXR0cmlidXRlZCB0byB0aGUgdXNlciBuYW1lIGFuZCBpY29ucyBhc3NvY2lhdGVkIHdpdGggdGhlIDxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHA8L2E+LjwvcD4KCjxwPldpdGggPGNvZGU+YXNfdXNlcjwvY29kZT4gc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiwgeW91IG1heSBhbHNvIHByb3ZpZGUgYSA8Y29kZT51c2VybmFtZTwvY29kZT4gdG8gZXhwbGljaXRseSBzcGVjaWZ5IHRoZSBib3QgdXNlcidzIGlkZW50aXR5IGZvciB0aGlzIG1lc3NhZ2UsIGFsb25nIHdpdGggPGNvZGU+aWNvbl91cmw8L2NvZGU+IG9yIDxjb2RlPmljb25fZW1vamk8L2NvZGU+LjwvcD4KCjxoNT5FZmZlY3Qgb24gaWRlbnRpdHk8L2g1PgoKPHA+VG9rZW4gdHlwZXMgcHJvdmlkZSB2YXJ5aW5nIGRlZmF1bHQgaWRlbnRpdHkgdmFsdWVzIGZvciA8Y29kZT51c2VybmFtZTwvY29kZT4sIDxjb2RlPmljb25fdXJsPC9jb2RlPiwgYW5kIDxjb2RlPmljb25fZW1vamk8L2NvZGU+LjwvcD4KCjx1bD4KPGxpPjxhIGhyZWY9Ii9kb2NzL29hdXRoLXRlc3QtdG9rZW5zIj50ZXN0IHRva2VuczwvYT4KCjx1bD4KPGxpPmdlbmVyaWMgdXNlciBpY29uIGFuZCAiYm90IiB1c2VybmFtZTwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHAgdXNlciB0b2tlbjwvYT4gd2l0aCA8YSBocmVmPSIvZG9jcy9vYXV0aC1zY29wZXMiPjxjb2RlPmNoYXQ6d3JpdGU6Ym90PC9jb2RlPjwvYT4KCjx1bD4KPGxpPmluaGVyaXRzIFNsYWNrIEFwcCdzIGljb24sIHdpdGggZ2VuZXJpYyAiYm90IiB1c2VybmFtZSAoc2VlIGJlbG93KTwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9ib3QtdXNlcnMjc2hhcmVfeW91cl9ib3RfdXNlcl9hc19hX3NsYWNrX2FwcCI+U2xhY2sgQXBwIGJvdCB1c2VyIHRva2VuPC9hPgoKPHVsPgo8bGk+aW5oZXJpdHMgU2xhY2sgQXBwJ3MgaWNvbiwgd2l0aCBnZW5lcmljICJib3QiIHVzZXJuYW1lIChzZWUgYmVsb3cpPC9saT4KPC91bD48L2xpPgo8L3VsPgoKPGJsb2NrcXVvdGU+CiAgPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBJbiB0aGUgU2xhY2sgQXBwIGNhc2VzIGFib3ZlLCBpdCB3b3VsZCBjZXJ0YWlubHkgbWFrZSBtb3JlIHNlbnNlIGZvciB5b3VyIGFwcGxpY2F0aW9uJ3MgbmFtZSB0byBiZSB0aGUgZGVmYXVsdCA8Y29kZT51c2VybmFtZTwvY29kZT4gYXNzb2NpYXRlZCB3aXRoIHlvdXIgYXBwLiBUaGlzIGluY29uc2lzdGVudCBiZWhhdmlvciB3aWxsIGJlIGNvcnJlY3RlZC4gT2YgY291cnNlLCB5b3UgY2FuIHN0aWxsIG5hbWUgeW91ciBib3QgImJvdCwiIGlmIHRoYXQgaXMgeW91ciBib3QncyBuYW1lLjwvcD4KPC9ibG9ja3F1b3RlPgoKPGEgbmFtZT0id2hlbl9hc191c2VyX2lzX3RydWUiPjwvYT48aDMgPldoZW4gPGNvZGU+YXNfdXNlcjwvY29kZT4gaXMgdHJ1ZTwvaDM+Cgo8cD5TZXQgPGNvZGU+YXNfdXNlcjwvY29kZT4gdG8gPGNvZGU+dHJ1ZTwvY29kZT4gYW5kIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgd2lsbCBhcHBlYXIgYXMgdGhlIGF1dGhvciBvZiB0aGUgbWVzc2FnZSwgaWdub3JpbmcgYW55IHZhbHVlcyBwcm92aWRlZCBmb3IgPGNvZGU+dXNlcm5hbWU8L2NvZGU+LCA8Y29kZT5pY29uX3VybDwvY29kZT4sIGFuZCA8Y29kZT5pY29uX2Vtb2ppPC9jb2RlPi4gUG9zdGluZyBhcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gdGhlCjxjb2RlPmNsaWVudDwvY29kZT4gb3IgdGhlIG1vcmUgcHJlZmVycmVkIDxjb2RlPmNoYXQ6d3JpdGU6dXNlcjwvY29kZT4gPGEgaHJlZj0iL2RvY3Mvb2F1dGgjYXV0aF9zY29wZXMiPnNjb3BlczwvYT4uPC9wPgoKPGg1PkVmZmVjdCBvbiBpZGVudGl0eTwvaDU+Cgo8cD5Ub2tlbiB0eXBlcyBwcm92aWRlIHZhcnlpbmcgZGVmYXVsdCBpZGVudGl0eSB2YWx1ZXMgZm9yIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiwgPGNvZGU+aWNvbl91cmw8L2NvZGU+LCBhbmQgPGNvZGU+aWNvbl9lbW9qaTwvY29kZT4uPC9wPgoKPHVsPgo8bGk+PGEgaHJlZj0iL2RvY3Mvb2F1dGgtdGVzdC10b2tlbnMiPnRlc3QgdG9rZW5zPC9hPgoKPHVsPgo8bGk+aW5oZXJpdHMgdGhlIGljb24gYW5kIHVzZXJuYW1lIG9mIHRoZSB0b2tlbiBvd25lcjwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHAgdXNlciB0b2tlbjwvYT4gd2l0aCA8YSBocmVmPSIvZG9jcy9vYXV0aC1zY29wZXMiPjxjb2RlPmNoYXQ6d3JpdGU6dXNlcjwvY29kZT48L2E+Cgo8dWw+CjxsaT5pbmhlcml0cyBpY29uIGFuZCB1c2VybmFtZSBvZiB0aGUgdG9rZW4gb3duZXI8L2xpPgo8L3VsPjwvbGk+CjxsaT48YSBocmVmPSIvYm90LXVzZXJzI3NoYXJlX3lvdXJfYm90X3VzZXJfYXNfYV9zbGFja19hcHAiPlNsYWNrIEFwcCBib3QgdXNlciB0b2tlbjwvYT4KCjx1bD4KPGxpPmluaGVyaXRzIFNsYWNrIEFwcCdzIGljb24gYW5kIGFwcCdzIGJvdCB1c2VybmFtZTwvbGk+CjwvdWw+PC9saT4KPC91bD4KCjxhIG5hbWU9InRocmVhZHNfYW5kX3JlcGxpZXMiPjwvYT48aDIgPlRocmVhZHMgYW5kIHJlcGxpZXM8L2gyPgoKPHA+UHJvdmlkZSBhIDxjb2RlPnRocmVhZF90czwvY29kZT4gdmFsdWUgZm9yIHRoZSBwb3N0ZWQgbWVzc2FnZSB0byBhY3QgYXMgYSByZXBseSB0byBhIHBhcmVudCBtZXNzYWdlLiBTcGFyaW5nbHkgc2V0IDxjb2RlPnJlcGx5X2Jyb2FkY2FzdDwvY29kZT4gdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgeW91ciByZXBseSBpcyBpbXBvcnRhbnQgZW5vdWdoIGZvciBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCB0byByZWNlaXZlLjwvcD4KCjxwPlNlZSA8YSBocmVmPSIvZG9jcy9tZXNzYWdlLXRocmVhZGluZyI+bWVzc2FnZSB0aHJlYWRpbmc8L2E+IGZvciBhIG1vcmUgaW4gZGVwdGggbG9vayBhdCBtZXNzYWdlIHRocmVhZGluZy48L3A+Cgo8YSBuYW1lPSJjaGFubmVscyI+PC9hPjxoMiA+Q2hhbm5lbHM8L2gyPgoKPHA+WW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGEgcHVibGljIGNoYW5uZWwsIHByaXZhdGUgY2hhbm5lbCwgb3IgYW4gSU0gY2hhbm5lbCB3aXRoIHRoZSA8Y29kZT5jaGFubmVsPC9jb2RlPiBhcmd1bWVudC4gRWFjaCBvbmUgYmVoYXZlcyBzbGlnaHRseSBkaWZmZXJlbnRseSBiYXNlZCBvbiB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgcGVybWlzc2lvbnMgYW5kIGFkZGl0aW9uYWwgYXJndW1lbnRzOjwvcD4KCjxhIG5hbWU9InBvc3RfdG9fYV9wdWJsaWNfY2hhbm5lbCI+PC9hPjxoNCA+UG9zdCB0byBhIHB1YmxpYyBjaGFubmVsPC9oND4KCjxwPllvdSBjYW4gZWl0aGVyIHBhc3MgdGhlIGNoYW5uZWwncyBuYW1lICg8Y29kZT4jZ2VuZXJhbDwvY29kZT4pIG9yIGVuY29kZWQgSUQgKDxjb2RlPkMwMjRCRTkxTDwvY29kZT4pLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQgdG8gdGhhdCBjaGFubmVsLiBUaGUgY2hhbm5lbCdzIElEIGNhbiBiZSByZXRyaWV2ZWQgdGhyb3VnaCB0aGUgPGEgaHJlZj0iL21ldGhvZHMvY2hhbm5lbHMubGlzdCI+Y2hhbm5lbHMubGlzdDwvYT4gQVBJIG1ldGhvZC48L3A+Cgo8YSBuYW1lPSJwb3N0X3RvX2FfcHJpdmF0ZV9ncm91cCI+PC9hPjxoNCA+UG9zdCB0byBhIHByaXZhdGUgZ3JvdXA8L2g0PgoKPHA+QXMgbG9uZyBhcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGlzIGEgbWVtYmVyIG9mIHRoZSBwcml2YXRlIGdyb3VwLCB5b3UgY2FuIGVpdGhlciBwYXNzIHRoZSBncm91cCdzIG5hbWUgKDxjb2RlPnNlY3JldC1ncm91cDwvY29kZT4pIG9yIGVuY29kZWQgSUQgKDxjb2RlPkcwMTJBQzg2QzwvY29kZT4pLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQgdG8gdGhhdCBncm91cC4gVGhlIHByaXZhdGUgZ3JvdXAncyBJRCBjYW4gYmUgcmV0cmlldmVkIHRocm91Z2ggdGhlIDxhIGhyZWY9Ii9tZXRob2RzL2dyb3Vwcy5saXN0Ij5ncm91cHMubGlzdDwvYT4gQVBJIG1ldGhvZC48L3A+Cgo8YSBuYW1lPSJwb3N0X3RvX2FuX2ltX2NoYW5uZWwiPjwvYT48aDQgPlBvc3QgdG8gYW4gSU0gY2hhbm5lbDwvaDQ+Cgo8cD5XYXJuaW5nOiBoZXJlIGJlIGRyYWdvbnMuIFBvc3RpbmcgdG8gYW4gSU0gY2hhbm5lbCBpcyBhIGxpdHRsZSBtb3JlIGNvbXBsZXggZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiA8Y29kZT5hc191c2VyPC9jb2RlPiBhbmQgdGhlIHR5cGUgb2YgdG9rZW4gYXNzb2NpYXRlZCB3aXRoIHlvdXIgYXBwLjwvcD4KCjx1bD4KPGxpPklmIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIGZhbHNlOgoKPHVsPgo8bGk+UGFzcyB0aGUgSU0gY2hhbm5lbCdzIElEICg8Y29kZT5EMDIzQkIzTDI8L2NvZGU+KSBhcyB0aGUgdmFsdWUgb2YgPGNvZGU+Y2hhbm5lbDwvY29kZT4gdG8gcG9zdCB0byB0aGF0IElNIGNoYW5uZWwgPGVtPmFzIHRoZSBhcHAsIGJvdCwgb3IgdXNlciBhc3NvY2lhdGVkIHdpdGggdGhlIHRva2VuPC9lbT4uIFlvdSBjYW4gY2hhbmdlIHRoZSBpY29uIGFuZCB1c2VybmFtZSB0aGF0IGdvIHdpdGggdGhlIG1lc3NhZ2UgdXNpbmcgdGhlIDxjb2RlPmljb25fdXJsPC9jb2RlPiBhbmQgPGNvZGU+dXNlcm5hbWU8L2NvZGU+IHBhcmFtZXRlcnMuIFRoZSBJTSBjaGFubmVsJ3MgSUQgY2FuIGJlIHJldHJpZXZlZCB0aHJvdWdoIHRoZSA8YSBocmVmPSIvbWV0aG9kcy9pbS5saXN0Ij5pbS5saXN0PC9hPiBBUEkgbWV0aG9kLjwvbGk+CjwvdWw+PC9saT4KPGxpPklmIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIHRydWUgKGZvciB3b3Jrc3BhY2UgYXBwcywgdGhpcyBpcyBhbHdheXMgdGhlIGNhc2UpOgoKPHVsPgo8bGk+UGFzcyB0aGUgSU0gY2hhbm5lbCdzIElEICg8Y29kZT5EMDIzQkIzTDI8L2NvZGU+KSBvciBhIHVzZXIncyBJRCAoPGNvZGU+VTBHOVFGOUM2PC9jb2RlPikgYXMgdGhlIHZhbHVlIG9mIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHRvIHBvc3QgdG8gdGhhdCBJTSBjaGFubmVsIDxlbT5hcyB0aGUgYXBwLCBib3QsIG9yIHVzZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSB0b2tlbjwvZW0+LiBUaGUgSU0gY2hhbm5lbCdzIElEIGNhbiBiZSByZXRyaWV2ZWQgdGhyb3VnaCB0aGUgPGEgaHJlZj0iL21ldGhvZHMvaW0ubGlzdCI+aW0ubGlzdDwvYT4gQVBJIG1ldGhvZC4gV2hlbiA8Y29kZT5hc191c2VyPC9jb2RlPiBpcyB0cnVlLCB0aGUgY2FsbGVyIG1heSA8ZW0+bm90PC9lbT4gbWFuaXB1bGF0ZSB0aGUgaWNvbiBhbmQgdXNlcm5hbWUgb24gdGhlIG1lc3NhZ2UuCllvdSBtaWdodCByZWNlaXZlIGEgPGNvZGU+Y2hhbm5lbF9ub3RfZm91bmQ8L2NvZGU+IGVycm9yIGlmIHlvdXIgYXBwIGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGVudGVyIGludG8gYW4gSU0gd2l0aCB0aGUgaW50ZW5kZWQgdXNlci48L2xpPgo8L3VsPjwvbGk+CjwvdWw+Cgo8cD5UbyBzZW5kIGEgZGlyZWN0IG1lc3NhZ2UgdG8gdGhlIHVzZXIgPGVtPm93bmluZzwvZW0+IHRoZSB0b2tlbiB1c2VkIGluIHRoZSByZXF1ZXN0LCBwcm92aWRlIHRoZSA8Y29kZT5jaGFubmVsPC9jb2RlPiBmaWVsZCB3aXRoIGEgY29udmVyc2F0aW9uL0lNIElEIHZhbHVlIGZvdW5kIGluIGEgbWV0aG9kIGxpa2UgPGEgaHJlZj0iL21ldGhvZHMvaW0ubGlzdCI+PGNvZGU+aW0ubGlzdDwvY29kZT48L2E+LjwvcD4KCjxwIGNsYXNzPSJhbGVydCBhbGVydF9pbmZvIj4KICAgIDx0cy1pY29uIGNsYXNzPSJ0c19pY29uX2luZm9fY2lyY2xlIj48L3RzLWljb24+IFdlIGFyZSBwaGFzaW5nIG91dCBzdXBwb3J0IGZvciBhbWJpZ3VvdXNseSBwYXNzaW5nIGEgInVzZXJuYW1lIiBhcyBhIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHZhbHVlLiBQbGVhc2UgPGVtPmFsd2F5czwvZW0+IHVzZSBjaGFubmVsLWxpa2UgSURzIGluc3RlYWQuCjwvcD4KCjxwPjxhIG5hbWU9ImFwcF9ob21lIj48L2E+PC9wPgoKPGEgbmFtZT0iYmVnaW5fYV9jb252ZXJzYXRpb25faW5fYV91c2VyX3NfYXBwX2hvbWUiPjwvYT48aDIgPkJlZ2luIGEgY29udmVyc2F0aW9uIGluIGEgdXNlcidzIEFwcCBIb21lPC9oMj4KCjxwPlN0YXJ0IGEgY29udmVyc2F0aW9uIHdpdGggdXNlcnMgaW4geW91ciA8YSBocmVmPSIvcmVmZXJlbmNlL2FwcC1ob21lIj5BcHAgSG9tZTwvYT4uPC9wPgoKPHA+V2l0aCB0aGUgPGNvZGU+Y2hhdDp3cml0ZTwvY29kZT4gc2NvcGUgZW5hYmxlZCwgY2FsbCA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiBhbmQgcGFzcyBhIHVzZXIncyBJRCAoPGNvZGU+VTBHOVFGOUM2PC9jb2RlPikgYXMgdGhlIHZhbHVlIG9mIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHRvIHBvc3QgdG8gdGhhdCB1c2VyJ3MgQXBwIEhvbWUgY2hhbm5lbC4gWW91IGNhbiB1c2UgdGhlaXIgZGlyZWN0IG1lc3NhZ2UgY2hhbm5lbCBJRCAoYXMgZm91bmQgd2l0aCA8Y29kZT5pbS5vcGVuPC9jb2RlPiwgZm9yIGluc3RhbmNlKSBpbnN0ZWFkLjwvcD4KCjxhIG5hbWU9InJhdGVfbGltaXRpbmciPjwvYT48aDIgPlJhdGUgbGltaXRpbmc8L2gyPgoKPHA+PGNvZGU+Y2hhdC5wb3N0TWVzc2FnZTwvY29kZT4gaGFzIHNwZWNpYWwgPGEgaHJlZj0iL2RvY3MvcmF0ZS1saW1pdHMiPnJhdGUgbGltaXRpbmc8L2E+IGNvbmRpdGlvbnMuIEl0IHdpbGwgZ2VuZXJhbGx5IGFsbG93IGFuIGFwcCB0byBwb3N0IDEgbWVzc2FnZSBwZXIgc2Vjb25kIHRvIGEgc3BlY2lmaWMgY2hhbm5lbC4gVGhlcmUgYXJlIGxpbWl0cyBnb3Zlcm5pbmcgeW91ciBhcHAncyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgZW50aXJlIHdvcmtzcGFjZSBhYm92ZSB0aGF0LCBsaW1pdGluZyBwb3N0aW5nIHRvIHNldmVyYWwgaHVuZHJlZCBtZXNzYWdlcyBwZXIgbWludXRlLiBHZW5lcm91cyBidXJzdCBiZWhhdmlvciBpcyBhbHNvIGdyYW50ZWQuPC9wPgoKPGEgbmFtZT0iZXJyb3JzIj48L2E+PGgyID5FcnJvcnM8L2gyPgoKPHA+IFRoaXMgdGFibGUgbGlzdHMgdGhlIGV4cGVjdGVkIGVycm9ycyB0aGF0IHRoaXMgbWV0aG9kIGNvdWxkIHJldHVybi4gSG93ZXZlciwgb3RoZXIgZXJyb3JzIGNhbiBiZSByZXR1cm5lZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VydmljZSBpcyBkb3duIG9yIG90aGVyIHVuZXhwZWN0ZWQgZmFjdG9ycyBhZmZlY3QgcHJvY2Vzc2luZy4gQ2FsbGVycyBzaG91bGQgYWx3YXlzIGNoZWNrIHRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+b2s8L2NvZGU+IHBhcmFtcyBpbiB0aGUgcmVzcG9uc2UuIDwvcD48dGFibGUgY2xhc3M9ImFyZ3VtZW50cyBmdWxsX3dpZHRoIj48dHI+PHRoPkVycm9yPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+PHRyPjx0ZD48Y29kZT5jaGFubmVsX25vdF9mb3VuZDwvY29kZT48L3RkPjx0ZD48cD5WYWx1ZSBwYXNzZWQgZm9yIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHdhcyBpbnZhbGlkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bm90X2luX2NoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PHA+Q2Fubm90IHBvc3QgdXNlciBtZXNzYWdlcyB0byBhIGNoYW5uZWwgdGhleSBhcmUgbm90IGluLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aXNfYXJjaGl2ZWQ8L2NvZGU+PC90ZD48dGQ+PHA+Q2hhbm5lbCBoYXMgYmVlbiBhcmNoaXZlZC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1zZ190b29fbG9uZzwvY29kZT48L3RkPjx0ZD48cD5NZXNzYWdlIHRleHQgaXMgdG9vIGxvbmc8L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm5vX3RleHQ8L2NvZGU+PC90ZD48dGQ+PHA+Tm8gbWVzc2FnZSB0ZXh0IHByb3ZpZGVkPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXN0cmljdGVkX2FjdGlvbjwvY29kZT48L3RkPjx0ZD48cD5BIHdvcmtzcGFjZSBwcmVmZXJlbmNlIHByZXZlbnRzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgZnJvbSBwb3N0aW5nLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVzdHJpY3RlZF9hY3Rpb25fcmVhZF9vbmx5X2NoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PHA+Q2Fubm90IHBvc3QgYW55IG1lc3NhZ2UgaW50byBhIHJlYWQtb25seSBjaGFubmVsLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVzdHJpY3RlZF9hY3Rpb25fdGhyZWFkX29ubHlfY2hhbm5lbDwvY29kZT48L3RkPjx0ZD48cD5DYW5ub3QgcG9zdCB0b3AtbGV2ZWwgbWVzc2FnZXMgaW50byBhIHRocmVhZC1vbmx5IGNoYW5uZWwuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXN0cmljdGVkX2FjdGlvbl9ub25fdGhyZWFkYWJsZV9jaGFubmVsPC9jb2RlPjwvdGQ+PHRkPjxwPkNhbm5vdCBwb3N0IHRocmVhZCByZXBsaWVzIGludG8gYSBub25fdGhyZWFkYWJsZSBjaGFubmVsLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+dG9vX21hbnlfYXR0YWNobWVudHM8L2NvZGU+PC90ZD48dGQ+PHA+VG9vIG1hbnkgYXR0YWNobWVudHMgd2VyZSBwcm92aWRlZCB3aXRoIHRoaXMgbWVzc2FnZS4gQSBtYXhpbXVtIG9mIDEwMCBhdHRhY2htZW50cyBhcmUgYWxsb3dlZCBvbiBhIG1lc3NhZ2UuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yYXRlX2xpbWl0ZWQ8L2NvZGU+PC90ZD48dGQ+PHA+QXBwbGljYXRpb24gaGFzIHBvc3RlZCB0b28gbWFueSBtZXNzYWdlcywgPGEgaHJlZj0iL2RvY3MvcmF0ZS1saW1pdHMiPnJlYWQgdGhlIFJhdGUgTGltaXQgZG9jdW1lbnRhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb248L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmFzX3VzZXJfbm90X3N1cHBvcnRlZDwvY29kZT48L3RkPjx0ZD48cD5UaGUgPGNvZGU+YXNfdXNlcjwvY29kZT4gcGFyYW1ldGVyIGRvZXMgbm90IGZ1bmN0aW9uIHdpdGggd29ya3NwYWNlIGFwcHMuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5la21fYWNjZXNzX2RlbmllZDwvY29kZT48L3RkPjx0ZD48cD5BZG1pbmlzdHJhdG9ycyBoYXZlIHN1c3BlbmRlZCB0aGUgYWJpbGl0eSB0byBwb3N0IGEgbWVzc2FnZS48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm5vdF9hdXRoZWQ8L2NvZGU+PC90ZD48dGQ+PHA+Tm8gYXV0aGVudGljYXRpb24gdG9rZW4gcHJvdmlkZWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5pbnZhbGlkX2F1dGg8L2NvZGU+PC90ZD48dGQ+PHA+U29tZSBhc3BlY3Qgb2YgYXV0aGVudGljYXRpb24gY2Fubm90IGJlIHZhbGlkYXRlZC4gRWl0aGVyIHRoZSBwcm92aWRlZCB0b2tlbiBpcyBpbnZhbGlkIG9yIHRoZSByZXF1ZXN0IG9yaWdpbmF0ZXMgZnJvbSBhbiBJUCBhZGRyZXNzIGRpc2FsbG93ZWQgZnJvbSBtYWtpbmcgdGhlIHJlcXVlc3QuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5hY2NvdW50X2luYWN0aXZlPC9jb2RlPjwvdGQ+PHRkPjxwPkF1dGhlbnRpY2F0aW9uIHRva2VuIGlzIGZvciBhIGRlbGV0ZWQgdXNlciBvciB3b3Jrc3BhY2UuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50b2tlbl9yZXZva2VkPC9jb2RlPjwvdGQ+PHRkPjxwPkF1dGhlbnRpY2F0aW9uIHRva2VuIGlzIGZvciBhIGRlbGV0ZWQgdXNlciBvciB3b3Jrc3BhY2Ugb3IgdGhlIGFwcCBoYXMgYmVlbiByZW1vdmVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bm9fcGVybWlzc2lvbjwvY29kZT48L3RkPjx0ZD48cD5UaGUgd29ya3NwYWNlIHRva2VuIHVzZWQgaW4gdGhpcyByZXF1ZXN0IGRvZXMgbm90IGhhdmUgdGhlIHBlcm1pc3Npb25zIG5lY2Vzc2FyeSB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4gTWFrZSBzdXJlIHlvdXIgYXBwIGlzIGEgbWVtYmVyIG9mIHRoZSBjb252ZXJzYXRpb24gaXQncyBhdHRlbXB0aW5nIHRvIHBvc3QgYSBtZXNzYWdlIHRvLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+b3JnX2xvZ2luX3JlcXVpcmVkPC9jb2RlPjwvdGQ+PHRkPjxwPlRoZSB3b3Jrc3BhY2UgaXMgdW5kZXJnb2luZyBhbiBlbnRlcnByaXNlIG1pZ3JhdGlvbiBhbmQgd2lsbCBub3QgYmUgYXZhaWxhYmxlIHVudGlsIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZS48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1pc3Npbmdfc2NvcGU8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIHRva2VuIHVzZWQgaXMgbm90IGdyYW50ZWQgdGhlIHNwZWNpZmljIHNjb3BlIHBlcm1pc3Npb25zIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgcmVxdWVzdC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmludmFsaWRfYXJndW1lbnRzPC9jb2RlPjwvdGQ+PHRkPjxwPlRoZSBtZXRob2Qgd2FzIGNhbGxlZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aW52YWxpZF9hcmdfbmFtZTwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBwYXNzZWQgYW4gYXJndW1lbnQgd2hvc2UgbmFtZSBmYWxscyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgYWNjZXB0ZWQgb3IgZXhwZWN0ZWQgdmFsdWVzLiBUaGlzIGluY2x1ZGVzIHZlcnkgbG9uZyBuYW1lcyBhbmQgbmFtZXMgd2l0aCBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiA8Y29kZT5fPC9jb2RlPi4gSWYgeW91IGdldCB0aGlzIGVycm9yLCBpdCBpcyB0eXBpY2FsbHkgYW4gaW5kaWNhdGlvbiB0aGF0IHlvdSBoYXZlIG1hZGUgYSA8ZW0+dmVyeTwvZW0+IG1hbGZvcm1lZCBBUEkgY2FsbC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmludmFsaWRfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYnV0IHRoZSA8Y29kZT5jaGFyc2V0PC9jb2RlPiBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPkNvbnRlbnQtVHlwZTwvY29kZT4gaGVhZGVyIHdhcyBpbnZhbGlkLiBWYWxpZCBjaGFyc2V0IG5hbWVzIGFyZTogPGNvZGU+dXRmLTg8L2NvZGU+IDxjb2RlPmlzby04ODU5LTE8L2NvZGU+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aW52YWxpZF9mb3JtX2RhdGE8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3Qgd2l0aCA8Y29kZT5Db250ZW50LVR5cGU8L2NvZGU+IDxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT4gb3IgPGNvZGU+bXVsdGlwYXJ0L2Zvcm0tZGF0YTwvY29kZT4sIGJ1dCB0aGUgZm9ybSBkYXRhIHdhcyBlaXRoZXIgbWlzc2luZyBvciBzeW50YWN0aWNhbGx5IGludmFsaWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5pbnZhbGlkX3Bvc3RfdHlwZTwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYnV0IHRoZSBzcGVjaWZpZWQgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiB3YXMgaW52YWxpZC4gVmFsaWQgdHlwZXMgYXJlOiA8Y29kZT5hcHBsaWNhdGlvbi9qc29uPC9jb2RlPiA8Y29kZT5hcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ8L2NvZGU+IDxjb2RlPm11bHRpcGFydC9mb3JtLWRhdGE8L2NvZGU+IDxjb2RlPnRleHQvcGxhaW48L2NvZGU+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bWlzc2luZ19wb3N0X3R5cGU8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3QgYW5kIGluY2x1ZGVkIGEgZGF0YSBwYXlsb2FkLCBidXQgdGhlIHJlcXVlc3QgZGlkIG5vdCBpbmNsdWRlIGEgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiBoZWFkZXIuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50ZWFtX2FkZGVkX3RvX29yZzwvY29kZT48L3RkPjx0ZD48cD5UaGUgd29ya3NwYWNlIGFzc29jaWF0ZWQgd2l0aCB5b3VyIHJlcXVlc3QgaXMgY3VycmVudGx5IHVuZGVyZ29pbmcgbWlncmF0aW9uIHRvIGFuIEVudGVycHJpc2UgT3JnYW5pemF0aW9uLiBXZWIgQVBJIGFuZCBvdGhlciBwbGF0Zm9ybSBvcGVyYXRpb25zIHdpbGwgYmUgaW50ZXJtaXR0ZW50bHkgdW5hdmFpbGFibGUgdW50aWwgdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGUuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXF1ZXN0X3RpbWVvdXQ8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3QsIGJ1dCB0aGUgPGNvZGU+UE9TVDwvY29kZT4gZGF0YSB3YXMgZWl0aGVyIG1pc3Npbmcgb3IgdHJ1bmNhdGVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+ZmF0YWxfZXJyb3I8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIHNlcnZlciBjb3VsZCBub3QgY29tcGxldGUgeW91ciBvcGVyYXRpb24ocykgd2l0aG91dCBlbmNvdW50ZXJpbmcgYSBjYXRhc3Ryb3BoaWMgZXJyb3IuIEl0J3MgcG9zc2libGUgc29tZSBhc3BlY3Qgb2YgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQgYmVmb3JlIHRoZSBlcnJvciB3YXMgcmFpc2VkLjwvcD4KPC90ZD48L3RyPjwvdGFibGU+Cgo8YSBuYW1lPSJ3YXJuaW5ncyI+PC9hPjxoMiA+V2FybmluZ3M8L2gyPgoKPHA+IFRoaXMgdGFibGUgbGlzdHMgdGhlIGV4cGVjdGVkIHdhcm5pbmdzIHRoYXQgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4uIEhvd2V2ZXIsIG90aGVyIHdhcm5pbmdzIGNhbiBiZSByZXR1cm5lZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VydmljZSBpcyBleHBlcmllbmNpbmcgdW5leHBlY3RlZCB0cm91YmxlLiA8L3A+PHRhYmxlIGNsYXNzPSJhcmd1bWVudHMgZnVsbF93aWR0aCI+PHRyPjx0aD5XYXJuaW5nPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+PHRyPjx0ZD48Y29kZT5tZXNzYWdlX3RydW5jYXRlZDwvY29kZT48L3RkPjx0ZD48cD5UaGUgPGNvZGU+dGV4dDwvY29kZT4gZmllbGQgb2YgYSBtZXNzYWdlIHNob3VsZCBoYXZlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycy4gV2UgPGEgaHJlZj0iL2NoYW5nZWxvZy8yMDE4LTA0LXRydW5jYXRpbmctcmVhbGx5LWxvbmctbWVzc2FnZXMiPnRydW5jYXRlIHJlYWxseSBsb25nIG1lc3NhZ2VzPC9hPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1pc3NpbmdfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYW5kIHJlY29tbWVuZGVkIHByYWN0aWNlIGZvciB0aGUgc3BlY2lmaWVkIDxjb2RlPkNvbnRlbnQtVHlwZTwvY29kZT4gaXMgdG8gaW5jbHVkZSBhIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IHBhcmFtZXRlci4gSG93ZXZlciwgbm8gPGNvZGU+Y2hhcnNldDwvY29kZT4gd2FzIHByZXNlbnQuIFNwZWNpZmljYWxseSwgbm9uLWZvcm0tZGF0YSBjb250ZW50IHR5cGVzIChlLmcuIDxjb2RlPnRleHQvcGxhaW48L2NvZGU+KSBhcmUgdGhlIG9uZXMgZm9yIHdoaWNoIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IGlzIHJlY29tbWVuZGVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+c3VwZXJmbHVvdXNfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYW5kIHRoZSBzcGVjaWZpZWQgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiBpcyBub3QgZGVmaW5lZCB0byB1bmRlcnN0YW5kIHRoZSA8Y29kZT5jaGFyc2V0PC9jb2RlPiBwYXJhbWV0ZXIuIEhvd2V2ZXIsIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IHdhcyBpbiBmYWN0IHByZXNlbnQuIFNwZWNpZmljYWxseSwgZm9ybS1kYXRhIGNvbnRlbnQgdHlwZXMgKGUuZy4gPGNvZGU+bXVsdGlwYXJ0L2Zvcm0tZGF0YTwvY29kZT4pIGFyZSB0aGUgb25lcyBmb3Igd2hpY2ggPGNvZGU+Y2hhcnNldDwvY29kZT4gaXMgc3VwZXJmbHVvdXMuPC9wPgo8L3RkPjwvdHI+PC90YWJsZT4KPC9zZWN0aW9uPjwvZGl2PjxkaXYgaWQ9Im92ZXJsYXkiPjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyX2JvdGgiPjwvZGl2PjwvZGl2PjwvZGl2Pjxmb290ZXIgZGF0YS1xYT0iZm9vdGVyIj48c2VjdGlvbiBjbGFzcz0ibGlua3MiPjxkaXYgY2xhc3M9ImdyaWQiPjxkaXYgY2xhc3M9ImNvbCBzcGFuXzFfb2ZfNCBuYXZfY29sIj48dWw+PGxpIGNsYXNzPSJjYXRfMSI+VXNpbmcgU2xhY2s8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9pcyIgZGF0YS1xYT0icHJvZHVjdF9mb290ZXIiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9wcm9kdWN0Ij5Qcm9kdWN0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2VudGVycHJpc2UiIGRhdGEtcWE9ImVudGVycHJpc2VfZm9vdGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZW50ZXJwcmlzZSI+RW50ZXJwcmlzZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9wcmljaW5nP3VpX3N0ZXA9MjgmdWlfZWxlbWVudD01IiBkYXRhLXFhPSJwcmljaW5nX2Zvb3RlciIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX3ByaWNpbmciPlByaWNpbmc8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9nZXQuc2xhY2suaGVscC9oYy9lbi11cyIgZGF0YS1xYT0ic3VwcG9ydF9mb290ZXIiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zdXBwb3J0Ij5TdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2d1aWRlcyIgZGF0YS1xYT0iZ2V0dGluZ19zdGFydGVkIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZ2V0dGluZ19zdGFydGVkIj5TbGFjayBHdWlkZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vYXBwcyIgZGF0YS1xYT0iYXBwX2RpcmVjdG9yeSIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2FwcF9kaXJlY3RvcnkiPkFwcCBEaXJlY3Rvcnk8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9hcGkuc2xhY2suY29tLyIgZGF0YS1xYT0iYXBpIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfYXBpIj5BUEk8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImNvbCBzcGFuXzFfb2ZfNCBuYXZfY29sIj48dWw+PGxpIGNsYXNzPSJjYXRfMiI+U2xhY2sgPHRzLWljb24gY2xhc3M9InRzX2ljb25faGVhcnQiPjwvdHMtaWNvbj48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9qb2JzIiBkYXRhLXFhPSJqb2JzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfam9icyI+Sm9iczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9jdXN0b21lcnMiIGRhdGEtcWE9ImN1c3RvbWVycyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2N1c3RvbWVycyI+Q3VzdG9tZXJzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2RldmVsb3BlcnMiIGRhdGEtcWE9ImRldmVsb3BlcnMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9kZXZlbG9wZXJzIj5EZXZlbG9wZXJzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2V2ZW50cyIgZGF0YS1xYT0iZXZlbnRzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZXZlbnRzIj5FdmVudHM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFja2hxLmNvbS8iIGRhdGEtcWE9ImJsb2dfZm9vdGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfYmxvZyI+QmxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLnNob3AvIiBkYXRhLXFhPSJzbGFja19zaG9wIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfc2hvcCI+U2xhY2sgU2hvcDwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iY29sIHNwYW5fMV9vZl80IG5hdl9jb2wiPjx1bD48bGkgY2xhc3M9ImNhdF8zIj5MZWdhbDwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3ByaXZhY3ktcG9saWN5IiBkYXRhLXFhPSJwcml2YWN5IiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfcHJpdmFjeSI+UHJpdmFjeTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9zZWN1cml0eSIgZGF0YS1xYT0ic2VjdXJpdHkiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zZWN1cml0eSI+U2VjdXJpdHk8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vdGVybXMtb2Ytc2VydmljZSIgZGF0YS1xYT0idG9zIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfdG9zIj5UZXJtcyBvZiBTZXJ2aWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3BvbGljaWVzIiBkYXRhLXFhPSJwb2xpY2llcyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX3BvbGljaWVzIj5Qb2xpY2llczwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iY29sIHNwYW5fMV9vZl80IG5hdl9jb2wiPjx1bD48bGkgY2xhc3M9ImNhdF80Ij5IYW5keSBMaW5rczwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2Rvd25sb2FkcyIgZGF0YS1xYT0iZG93bmxvYWRzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZG93bmxvYWRzIj5Eb3dubG9hZCBkZXNrdG9wIGFwcDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9kb3dubG9hZHMiIGRhdGEtcWE9ImRvd25sb2Fkc19tb2JpbGUiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9kb3dubG9hZHNfbW9iaWxlIj5Eb3dubG9hZCBtb2JpbGUgYXBwPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2JyYW5kLWd1aWRlbGluZXMiIGRhdGEtcWE9ImJyYW5kX2d1aWRlbGluZXMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9icmFuZF9ndWlkZWxpbmVzIj5CcmFuZCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2thdHdvcmsuY29tIiBkYXRhLXFhPSJzbGFja19hdF93b3JrIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfYXRfd29yayI+U2xhY2sgYXQgV29yazwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3N0YXR1cy5zbGFjay5jb20vIiBkYXRhLXFhPSJzdGF0dXMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zdGF0dXMiPlN0YXR1czwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9ImZvb3Rub3RlIj48c2VjdGlvbj48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbSIgYXJpYS1sYWJlbD0iU2xhY2sgaG9tZXBhZ2UiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zbGFja19pY29uIj48dHMtaWNvbiBjbGFzcz0iYy1pY29uLS1zbGFjayIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48dWw+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2hlbHAvY29udGFjdCIgZGF0YS1xYT0iY29udGFjdF91cyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2NvbnRhY3RfdXMiPkNvbnRhY3QgVXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9TbGFja0hRIiBkYXRhLXFhPSJzbGFja190d2l0dGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfdHdpdHRlciIgYXJpYS1sYWJlbD0iU2xhY2sgb24gVHdpdHRlciI+PHRzLWljb24gY2xhc3M9InRzX2ljb25fdHdpdHRlciIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48L2xpPjxsaSBjbGFzcz0ieXQiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNZM1lFQ2dlQmNMQ3pJckZMUDRnYmx3IiBkYXRhLXFhPSJzbGFja195b3V0dWJlIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfeW91dHViZSIgYXJpYS1sYWJlbD0iU2xhY2sgb24gWW91VHViZSI+PHRzLWljb24gY2xhc3M9InRzX2ljb25feW91dHViZSIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48L2xpPjwvdWw+PC9zZWN0aW9uPjwvZGl2PjwvZm9vdGVyPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyoqCiAqIEEgcGxhY2Vob2xkZXIgZnVuY3Rpb24gdGhhdCB0aGUgYnVpbGQgc2NyaXB0IHVzZXMgdG8KICogcmVwbGFjZSBmaWxlIHBhdGhzIHdpdGggdGhlaXIgQ0ROIHZlcnNpb25zLgogKgogKiBAcGFyYW0ge1N0cmluZ30gZmlsZV9wYXRoIC0gRmlsZSBwYXRoCiAqIEByZXR1cm5zIHtTdHJpbmd9CiAqLwpmdW5jdGlvbiB2dnYoZmlsZV9wYXRoKSB7CgkJIHZhciB2dnZfd2FybmluZyA9ICdZb3UgY2Fubm90IHVzZSB2dnYgb24gZHluYW1pYyB2YWx1ZXMuIFBsZWFzZSBtYWtlIHN1cmUgeW91IG9ubHkgcGFzcyBpbiBzdGF0aWMgZmlsZSBwYXRocy4nOyBpZiAoVFMgJiYgVFMud2FybikgeyBUUy53YXJuKHZ2dl93YXJuaW5nKTsgfSBlbHNlIHsgY29uc29sZS53YXJuKHZ2dl93YXJuaW5nKTsgfSAKCXJldHVybiBmaWxlX3BhdGg7Cn0KCnZhciBjZG5fdXJsID0gImh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tIjsKdmFyIHZ2dl9hYnNfdXJsID0gImh0dHBzOlwvXC9zbGFjay5jb21cLyI7CnZhciBpbmNfanNfc2V0dXBfZGF0YSA9IHsKCWVtb2ppX3NoZWV0czogewoJCWFwcGxlOiAnaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tLzgwNTg4L2ltZy9lbW9qaV8yMDE3XzEyXzA2L3NoZWV0X2FwcGxlXzY0X2luZGV4ZWRfMjU2LnBuZycsCgkJZ29vZ2xlOiAnaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tLzgwNTg4L2ltZy9lbW9qaV8yMDE3XzEyXzA2L3NoZWV0X2dvb2dsZV82NF9pbmRleGVkXzI1Ni5wbmcnLAoJfSwKfTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgkvLyBjb21tb24gYm9vdF9kYXRhCgl2YXIgYm9vdF9kYXRhID0geyJhcGlfdXJsIjoiXC9hcGlcLyIsImFwcCI6ImZhbHNlIiwidXNlcl9pZCI6bnVsbCwidGVhbV9pZCI6IlQwMDAwMDAwMCIsInZpc2l0b3JfdWlkIjoiY3RucnZwZDJ4Nmo0ajV0YW1kY2c1c3dwZiIsIm5vX2xvZ2luIjp0cnVlLCJ2ZXJzaW9uX3RzIjoiMTU2ODMxOTc2MiIsInZlcnNpb25fdWlkIjoiMDcyODAwMDdlNDE3OGZlNmJjODcwNGEyNjk1MjNkOGMxMWExNTBmYSIsImNhY2hlX3ZlcnNpb24iOiJ2MTgta3VkdSIsImNhY2hlX3RzX3ZlcnNpb24iOiJ2Mi1idW5ueSIsInJlZGlyX2RvbWFpbiI6InNsYWNrLXJlZGlyLm5ldCIsInNpZ25pbl91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9zaWduaW4iLCJhYnNfcm9vdF91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC8iLCJ0ZWFtX3VybCI6IiIsImltYWdlX3Byb3h5X3VybCI6Imh0dHBzOlwvXC9zbGFjay1pbWdzLmNvbVwvIiwiYmVhY29uX3RpbWluZ191cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL3RpbWluZyIsImJlYWNvbl9lcnJvcl91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL2Vycm9yIiwiY2xvZ191cmwiOiJjbG9nXC90cmFja1wvIiwiYXBpX3Rva2VuIjoiIiwiaGNfdHJhY2tpbmdfcXMiOiIiLCJ2dnZfcGF0aHMiOnsibHpfc3RyaW5nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2x6LXN0cmluZy0xLjQuNC53b3JrZXIuOGRlMWIwMGQ2NzBmZjNkYzcwNmEwLmpzIiwiY29kZW1pcnJvciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yLm1pbi42OGM2YTA2MTJhYmNjYzZiODg1OS5taW4uanMiLCJjb2RlbWlycm9yX2FkZG9uX3NpbXBsZSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX3NpbXBsZS45OTNmYzVmOGRkZDQwMWY2MzJhYS5taW4uanMiLCJjb2RlbWlycm9yX2xvYWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sb2FkLmE5OGRkZjFjYTE4NWEyYTUxNzExLm1pbi5qcyIsImNvZGVtaXJyb3JfZmlsZXMiOnsiYXBsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19hcGwuOWNlOThjOGIyNDQ1YjIyM2M4N2YubWluLmpzIiwiYXNjaWlhcm1vciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYXNjaWlhcm1vci4zNTU4NzkzN2VhNTFjMmEyM2YyMS5taW4uanMiLCJhc24uMSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYXNuLjEuMDFjNjEwODYyMzk3ZTI1YmU5OTEubWluLmpzIiwiYXN0ZXJpc2siOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2FzdGVyaXNrLmQ5M2I0YWI0ODhmYTM5ZDE1MzVhLm1pbi5qcyIsImJyYWluZnVjayI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYnJhaW5mdWNrLjMyMjFhYTFiYjkwMTg2YmM2ZDRjLm1pbi5qcyIsImNsaWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbGlrZS4zYTE4ZTg2OGM2N2Y2YmVjMDkxYy5taW4uanMiLCJjbG9qdXJlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbG9qdXJlLmJmMmY4NDIyOWQ5NTFkZjEwMzkxLm1pbi5qcyIsImNtYWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbWFrZS40Y2IzODE4MzE0ODNjNGY1NGM1Ny5taW4uanMiLCJjb2JvbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY29ib2wuZTNjOGNiZmM1N2QwMzU2Njc3YmUubWluLmpzIiwiY29mZmVlc2NyaXB0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jb2ZmZWVzY3JpcHQuZTU3MDA2MjZmMTE0ZjI5OTA1NzkubWluLmpzIiwiY29tbW9ubGlzcCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY29tbW9ubGlzcC44NTVlZGZjMGUxZDkxY2EwNWMxNi5taW4uanMiLCJjc3MiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2Nzcy4yN2YwZmExZjJmOTk3MzY3OGY0MS5taW4uanMiLCJjcnlzdGFsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jcnlzdGFsLmE4ZTRlMmRmMWMxMTVjZDgwYWNmLm1pbi5qcyIsImN5cGhlciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY3lwaGVyLjUxNjI2NDY3NWUzMzk2NDg3ZjNkLm1pbi5qcyIsImQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2QuMmE1M2Q1MDJlNjY3NzcwZDJkNTAubWluLmpzIiwiZGFydCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZGFydC5kMTA5M2YzYjkzMjM3ZWE3M2RkYS5taW4uanMiLCJkaWZmIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19kaWZmLjRiNzZkNzAyZmZkOGU0MGNiMzhlLm1pbi5qcyIsImRqYW5nbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZGphbmdvLjFhNmMwMzFhMjZkYWEyMWE2OWI4Lm1pbi5qcyIsImRvY2tlcmZpbGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2RvY2tlcmZpbGUuNjA0MzdjZGQ3MzNkZGZmNGQ2OWUubWluLmpzIiwiZHRkIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19kdGQuNWFmM2JiZjkzOTYwYzg0ZjUwMmYubWluLmpzIiwiZHlsYW4iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2R5bGFuLjdjZThmMjFlNTIwZDY4MmY0ZjhiLm1pbi5qcyIsImVibmYiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2VibmYuYzQ2NmU0ZTMzMWUzMTdlZTNiYjYubWluLmpzIiwiZWNsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lY2wuZWRhYjQ4NjkwYzdkZDBiMGU3YmYubWluLmpzIiwiZWlmZmVsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19laWZmZWwuMzgyOTU3NzlkODc3ZjJkOTMxNzIubWluLmpzIiwiZWxtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lbG0uNjI1ZDU5NDAwYmFmNjYwMmY4MGIubWluLmpzIiwiZXJsYW5nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lcmxhbmcuY2Y5NTg2MWRmY2FjMzcxMzc2MzUubWluLmpzIiwiZmFjdG9yIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19mYWN0b3IuZDM2MTRkZmE0MWFjMGRjNzg0NWMubWluLmpzIiwiZm9ydGgiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ZvcnRoLjg0ODM0ODViMGM0NWFjZDk5NjhlLm1pbi5qcyIsImZvcnRyYW4iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ZvcnRyYW4uMTQ3ZjkzMzliNGJiMWZhNTJmNWEubWluLmpzIiwiZ2FzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19nYXMuZDRiYzFiNTJlZTBiZjU2MmQzOGIubWluLmpzIiwiZ2ZtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19nZm0uMDQ0ZWJlNzU2M2UxMzJkZGM3NzYubWluLmpzIiwiZ2hlcmtpbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZ2hlcmtpbi45OWVlOGQwYzBiMGU0M2RmM2ZjMi5taW4uanMiLCJnbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZ28uY2NjM2ZiNWQyZmExOGI3MjE0NzIubWluLmpzIiwiZ3Jvb3Z5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ncm9vdnkuM2I3OTlmY2RiNzI1MTEzYjI2ZTYubWluLmpzIiwiaGFtbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaGFtbC5iMDZmY2NiNGE4Njg4NjkzY2U2MC5taW4uanMiLCJoYW5kbGViYXJzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19oYW5kbGViYXJzLmE0MDA5YzBlNmFjYWU4NTQ0OWFlLm1pbi5qcyIsImhhc2tlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2hhc2tlbGwuNWRlYzhiYjEwODViNjVmNzdjZmIubWluLmpzIiwiaGF4ZSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaGF4ZS4yYjQwMDQwNzVmYTU5ZGI0MjE1ZC5taW4uanMiLCJodG1sZW1iZWRkZWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2h0bWxlbWJlZGRlZC40OTAxNWNiZWU3ZjZiZWQ0ZmRiMi5taW4uanMiLCJodG1sbWl4ZWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2h0bWxtaXhlZC45MmQ5M2Q1M2ExNmUwNzU4NDZlZi5taW4uanMiLCJodHRwIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19odHRwLjhhMjQ2M2M4MmNhNTM1MzMwMzI0Lm1pbi5qcyIsImlkbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaWRsLjUxNGI2YTVlNmZmOTljMzI2Njc2Lm1pbi5qcyIsImphZGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2phZGUuMzJjMGFlOTY5YzA5MTJjN2QxYTcubWluLmpzIiwiamF2YXNjcmlwdCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfamF2YXNjcmlwdC5hYzE4MzNlOWUyMzlkNTMyYjVhOS5taW4uanMiLCJqaW5qYTIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ppbmphMi5kYjEyZWNmZDRiYmNiODc1OTY2My5taW4uanMiLCJqdWxpYSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfanVsaWEuN2IyY2RlNThkYzBlZWIwN2U2NzAubWluLmpzIiwibGl2ZXNjcmlwdCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbGl2ZXNjcmlwdC45NTljNGRjNzI1NjZhMjY0Nzg4Ny5taW4uanMiLCJsdWEiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2x1YS4xZmQ5YjM0NmNkMWU2ZWFlODAwNS5taW4uanMiLCJtYXJrZG93biI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbWFya2Rvd24uMzU3ZDRmMDIzMWQ3MDVjY2Y0YTgubWluLmpzIiwibWF0aGVtYXRpY2EiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21hdGhlbWF0aWNhLjQ1Y2U2YTg0NDg3NDc1NTVlZThmLm1pbi5qcyIsIm1pcmMiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21pcmMuNjQyYTBhOTA5M2MzZWRlZWQxZDMubWluLmpzIiwibWxsaWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19tbGxpa2UuYjJlNTllMzRiMmFlYjBiMGUzM2UubWluLmpzIiwibW9kZWxpY2EiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21vZGVsaWNhLjliZWJhOTAyZmFkNjhkNjUyNTA0Lm1pbi5qcyIsIm1zY2dlbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbXNjZ2VuLjlkZWQ1ZDEzMmNlYTU0OGE1ODRlLm1pbi5qcyIsIm11bXBzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19tdW1wcy42Mjc1MTAwZDNjYmEzY2RkYjE3MS5taW4uanMiLCJuZ2lueCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbmdpbnguMzkyOTQ3YTVjZGUzNjBlNTUzOTEubWluLmpzIiwibnNpcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbnNpcy4xODA2MDk4ZjJlZmZjNGM1ZWZkNy5taW4uanMiLCJudHJpcGxlcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbnRyaXBsZXMuNWM2YjkxZjZkYzI5ZDIyNTE1OWIubWluLmpzIiwib2N0YXZlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19vY3RhdmUuOTljYmYzZTBhNzIyZDk1Mjc3ZmQubWluLmpzIiwib3oiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX296LjQ1NDdjY2ZkZGM1Mjg1ZmViZGRhLm1pbi5qcyIsInBhc2NhbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGFzY2FsLjFmZGJjNzVmNjU5YWI3YjIwZWY5Lm1pbi5qcyIsInBlZ2pzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19wZWdqcy4zNTIxMTU0YjlkMGZiOGRkZTJjOC5taW4uanMiLCJwZXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19wZXJsLjI2MTYyYjFkZTNmMjQ4OGZmZWRjLm1pbi5qcyIsInBocCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGhwLjhlNzcwMjE0MWM0ZDAwNmJiMjBkLm1pbi5qcyIsInBpZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGlnLmNjZjM5MjkzOTZlZTdkMjQxNDA2Lm1pbi5qcyIsInBvd2Vyc2hlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Bvd2Vyc2hlbGwuODlmMmU5YmY2YzgyYWQxZGQ5YmUubWluLmpzIiwicHJvcGVydGllcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcHJvcGVydGllcy5lYTdjZTE0YzQyNTE3NGFkYmYxNS5taW4uanMiLCJwdXBwZXQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3B1cHBldC4wOWQ0YTA0MzkwM2E1MjIzNzQ2Ny5taW4uanMiLCJweXRob24iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3B5dGhvbi45Y2ZjYjgyNDJjM2M1ZjRkMDkwMi5taW4uanMiLCJxIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19xLjc2MDliNmVmYWY1ZGRmZGZhNGE1Lm1pbi5qcyIsInIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3IuMzQ5MzZlNDFmMTFlYzE4YTc1NzQubWluLmpzIiwicnBtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ycG0uYzI5MTc5ZDkxODg3MDFlYjVmM2UubWluLmpzIiwicnN0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19yc3QuMTNiZWM2MzMxYzAxNzVjYmIwOTYubWluLmpzIiwicnVieSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcnVieS44MmRlYTExNjQ0Yzc0ZTRlYTU0Mi5taW4uanMiLCJydXN0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ydXN0LjBlNmNjMWEwZDJkMmQ4ZjhlYmRiLm1pbi5qcyIsInNhc3MiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Nhc3MuMWZiY2U1NGIyYzMwNDQzNzc5ZWUubWluLmpzIiwic2NoZW1lIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zY2hlbWUuODg3OWVlNWY4ODc1ZDZiY2M4MDQubWluLmpzIiwic2hlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NoZWxsLmRjNWQzNTU4ZmRkZWRkMTgzOTRmLm1pbi5qcyIsInNpZXZlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zaWV2ZS4zYjMyMjcyNmI5MDcxNDBiOTRlOC5taW4uanMiLCJzbGltIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zbGltLmM3YzBiYzBmMTczODM0NDA5NTExLm1pbi5qcyIsInNtYWxsdGFsayI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc21hbGx0YWxrLjk4YzEyMzc1Yzg3YzUxOTBjODM5Lm1pbi5qcyIsInNtYXJ0eSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc21hcnR5LjdiYTYyMzc3ZjU5ZjcxNzY5OTk3Lm1pbi5qcyIsInNvbHIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NvbHIuMjZjNGU0MTliMGM4Nzk5YmJiN2QubWluLmpzIiwic295IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zb3kuODhlOTVmZmI0NWE0YWM0MjQ1YTYubWluLmpzIiwic3BhcnFsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zcGFycWwuOGMwNTMxMTEwZDhhOWNjMzA1YWYubWluLmpzIiwic3ByZWFkc2hlZXQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NwcmVhZHNoZWV0LmJjOWFhODM3MmQ5OTQxOTFiZGY1Lm1pbi5qcyIsInNxbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc3FsLjEwOTQzZmQ0YjIzZjIzMjg3MzQ2Lm1pbi5qcyIsInN0ZXgiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3N0ZXguNWNlODFjZGQwMjNiODlhZWU3OWEubWluLmpzIiwic3R5bHVzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zdHlsdXMuZjM5N2YwMmRlMzU2YWU2ZjljNzAubWluLmpzIiwic3dpZnQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3N3aWZ0LmY5ZTNhMThhMTQ5NGM2NTAyMmQ3Lm1pbi5qcyIsInRjbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdGNsLmVlMTRjZTM1MjgzM2M0ZmM0NzllLm1pbi5qcyIsInRleHRpbGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3RleHRpbGUuNzM1ZjIyNTQ4MWViNTczNDEyMDkubWluLmpzIiwidGlkZGx5d2lraSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdGlkZGx5d2lraS5jMjMxOTcyNDQ3ZWQxYmJlMDQ0OC5taW4uanMiLCJ0aWtpIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ190aWtpLmQ3N2YwZTY2ZTczZWNjZGRjNGJiLm1pbi5qcyIsInRvbWwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3RvbWwuNDA2NWI0ZWMwNjU3MDQwMzU3MDQubWluLmpzIiwidG9ybmFkbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdG9ybmFkby4zMzMzMDlkY2Y0MTUxNGEzYTNmZC5taW4uanMiLCJ0cm9mZiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHJvZmYuZjZiMGZhMDg3NDExMTllZjZhNWMubWluLmpzIiwidHRjbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHRjbi4yNWZkMGZmNzI5ZGIxNmYwMTM2Yy5taW4uanMiLCJ0dGNuOmNmZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHRjbi1jZmcuYTY2ZTNhNGI0YmQ4NTcxY2U2ODAubWluLmpzIiwidHVydGxlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ190dXJ0bGUuZDczOTljN2M3MDhhZTFhNzNmNDUubWluLmpzIiwidHdpZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHdpZy43MWYxMjNiZGQzNDIyYzY4MzI4MS5taW4uanMiLCJ2YiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdmIuYjA5MTIzYzZiYzFlNGJlMzg5ZWMubWluLmpzIiwidmJzY3JpcHQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Zic2NyaXB0Ljk5OTdiYmY5NWFlYTAyNTQ1YmE3Lm1pbi5qcyIsInZlbG9jaXR5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192ZWxvY2l0eS42NjdlYTQ5ZTJhNTZlN2RlZTlhZS5taW4uanMiLCJ2ZXJpbG9nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192ZXJpbG9nLmU2NjEwN2FjNTY3ZTJhZmZkNjEwLm1pbi5qcyIsInZoZGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3ZoZGwuYjA3ZmU3OWNmYTlmNWFmNjIxNmUubWluLmpzIiwidnVlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192dWUuNTljZWYxMTE3ZWRlYzg3YjU1NzIubWluLmpzIiwieG1sIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ194bWwuMWNjNGVjMzllM2VjNTE1YWFjYTYubWluLmpzIiwieHF1ZXJ5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ194cXVlcnkuNzhjMGViNzgzYzc1YTUyN2VmNjQubWluLmpzIiwieWFtbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfeWFtbC5hMDUyMTJiODEwMDcxYjVjNjEzZi5taW4uanMiLCJ6ODAiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3o4MC41Njc5ODM1ZmMzMTE0YzU2MDBlMi5taW4uanMifX0sIm5vdGlmaWNhdGlvbl9zb3VuZHMiOlt7InZhbHVlIjoiYjIubXAzIiwibGFiZWwiOiJEaW5nIiwidXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzdlOTFcL3NvdW5kc1wvcHVzaFwvYjIubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9iMi5vZ2cifSx7InZhbHVlIjoiYW5pbWFsX3N0aWNrLm1wMyIsImxhYmVsIjoiQm9pbmciLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9hbmltYWxfc3RpY2subXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9hbmltYWxfc3RpY2sub2dnIn0seyJ2YWx1ZSI6ImJlZW5fdHJlZS5tcDMiLCJsYWJlbCI6IkRyb3AiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9iZWVuX3RyZWUubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9iZWVuX3RyZWUub2dnIn0seyJ2YWx1ZSI6ImNvbXBsZXRlX3F1ZXN0X3JlcXVpcmVtZW50Lm1wMyIsImxhYmVsIjoiVGEtZGEiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9jb21wbGV0ZV9xdWVzdF9yZXF1aXJlbWVudC5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2NvbXBsZXRlX3F1ZXN0X3JlcXVpcmVtZW50Lm9nZyJ9LHsidmFsdWUiOiJjb25maXJtX2RlbGl2ZXJ5Lm1wMyIsImxhYmVsIjoiUGxpbmsiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9jb25maXJtX2RlbGl2ZXJ5Lm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvY29uZmlybV9kZWxpdmVyeS5vZ2cifSx7InZhbHVlIjoiZmxpdHRlcmJ1Zy5tcDMiLCJsYWJlbCI6IldvdyIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2ZsaXR0ZXJidWcubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9mbGl0dGVyYnVnLm9nZyJ9LHsidmFsdWUiOiJoZXJlX3lvdV9nb19saWdodGVyLm1wMyIsImxhYmVsIjoiSGVyZSB5b3UgZ28iLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9oZXJlX3lvdV9nb19saWdodGVyLm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaGVyZV95b3VfZ29fbGlnaHRlci5vZ2cifSx7InZhbHVlIjoiaGlfZmxvd2Vyc19oaXQubXAzIiwibGFiZWwiOiJIaSIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2hpX2Zsb3dlcnNfaGl0Lm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaGlfZmxvd2Vyc19oaXQub2dnIn0seyJ2YWx1ZSI6Imtub2NrX2JydXNoLm1wMyIsImxhYmVsIjoiS25vY2sgQnJ1c2giLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9rbm9ja19icnVzaC5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2tub2NrX2JydXNoLm9nZyJ9LHsidmFsdWUiOiJzYXZlX2FuZF9jaGVja291dC5tcDMiLCJsYWJlbCI6Ildob2EhIiwidXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzdlOTFcL3NvdW5kc1wvcHVzaFwvc2F2ZV9hbmRfY2hlY2tvdXQubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9zYXZlX2FuZF9jaGVja291dC5vZ2cifSx7InZhbHVlIjoiaXRlbV9waWNrdXAubXAzIiwibGFiZWwiOiJZb2luayIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2l0ZW1fcGlja3VwLm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaXRlbV9waWNrdXAub2dnIn0seyJ2YWx1ZSI6Imh1bW11cy5tcDMiLCJsYWJlbCI6Ikh1bW11cyIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZmE5XC9zb3VuZHNcL3B1c2hcL2h1bW11cy5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2h1bW11cy5vZ2cifSx7InZhbHVlIjoibm9uZSIsImxhYmVsIjoiTm9uZSJ9XSwiYWxlcnRfc291bmRzIjpbeyJ2YWx1ZSI6ImZyb2cubXAzIiwibGFiZWwiOiJGcm9nIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvYTM0YVwvc291bmRzXC9mcm9nLm1wMyJ9XSwiY2FsbF9zb3VuZHMiOlt7InZhbHVlIjoiY2FsbFwvYWxlcnRfdjIubXAzIiwibGFiZWwiOiJBbGVydCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvYWxlcnRfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL2luY29taW5nX3JpbmdfdjIubXAzIiwibGFiZWwiOiJJbmNvbWluZyByaW5nIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC9pbmNvbWluZ19yaW5nX3YyLm1wMyJ9LHsidmFsdWUiOiJjYWxsXC9vdXRnb2luZ19yaW5nX3YyLm1wMyIsImxhYmVsIjoiT3V0Z29pbmcgcmluZyIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvb3V0Z29pbmdfcmluZ192Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwvcG9wX3YyLm1wMyIsImxhYmVsIjoiSW5jb21pbmcgcmVhY3Rpb24iLCJ1cmwiOiJodHRwczpcL1wvc2xhY2suZ2xvYmFsLnNzbC5mYXN0bHkubmV0XC8wOGY3XC9zb3VuZHNcL2NhbGxcL3BvcF92Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwvdGhleV9sZWZ0X2NhbGxfdjIubXAzIiwibGFiZWwiOiJUaGV5IGxlZnQgY2FsbCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvdGhleV9sZWZ0X2NhbGxfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL3lvdV9sZWZ0X2NhbGxfdjIubXAzIiwibGFiZWwiOiJZb3UgbGVmdCBjYWxsIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC95b3VfbGVmdF9jYWxsX3YyLm1wMyJ9LHsidmFsdWUiOiJjYWxsXC90aGV5X2pvaW5lZF9jYWxsX3YyLm1wMyIsImxhYmVsIjoiVGhleSBqb2luZWQgY2FsbCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvdGhleV9qb2luZWRfY2FsbF92Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwveW91X2pvaW5lZF9jYWxsX3YyLm1wMyIsImxhYmVsIjoiWW91IGpvaW5lZCBjYWxsIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC95b3Vfam9pbmVkX2NhbGxfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL2NvbmZpcm1hdGlvbl92Mi5tcDMiLCJsYWJlbCI6IkNvbmZpcm1hdGlvbiIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvY29uZmlybWF0aW9uX3YyLm1wMyJ9XSwiY2FsbF9zb3VuZHNfdmVyc2lvbiI6InYyIiwiYTExeV9zb3VuZHMiOltdLCJpbWciOnsiYXBwX2ljb24iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvODA1ODhcL2ltZ1wvc2xhY2tfZ3Jvd2xfaWNvbl92b2d1ZS5wbmcifSwicGFnZV9uZWVkc19lbnRlcnByaXNlIjpmYWxzZSwicGFnZV9uZWVkc19jdXN0b21fZW1vamkiOmZhbHNlLCJpc19kZXByZWNhdGVkX3dlYmNsaWVudF9icm93c2VyIjpmYWxzZSwiaXNfdW5zdXBwb3J0ZWRfd2ViY2xpZW50X2Jyb3dzZXIiOnRydWUsImRlZmF1bHRfdHoiOiJBbWVyaWNhXC9Mb3NfQW5nZWxlcyIsImZlYXR1cmVfYnVpbGRlcl9hcHBfY29sbGFib3JhdG9ycyI6ZmFsc2UsImZlYXR1cmVfYXVkaXRfbG9nc192aWV3IjpmYWxzZSwiZmVhdHVyZV9hdWRpdF9sb2dzX3ZpZXdfd29ya3NwYWNlIjpmYWxzZSwiZmVhdHVyZV9kYXRhX2xvY2F0aW9uX3ZpZXciOmZhbHNlLCJmZWF0dXJlX3NrX2kxOG4iOmZhbHNlLCJmZWF0dXJlX29yZ19tb2Rlcm5fc2V0dGluZ19wYWdlIjpmYWxzZSwiZmVhdHVyZV9vcmdfbW9kZXJuX3NlY3VyaXR5X3ByZWZlcmVuY2VzX3BhZ2UiOmZhbHNlLCJmZWF0dXJlX29yZ19tb2Rlcm5fc3NvX3ByZWZlcmVuY2VzX3BhZ2UiOnRydWUsImZlYXR1cmVfaWRwX2dyb3VwX2NvdW50IjpmYWxzZSwiZmVhdHVyZV9tMTFuX29yZ190ZWFtX292ZXJ2aWV3IjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2V4cG9ydF9pbXBvcnQiOnRydWUsImZlYXR1cmVfYWNjZXNzaWJsZV9zZWxlY3RzIjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2NoYW5uZWxfYWN0aW9ucyI6ZmFsc2UsImZlYXR1cmVfYnVpbGRlcl9hcHBfcmVtb3ZhbCI6ZmFsc2UsImZlYXR1cmVfYnVpbGRlcl9kaXNhYmxlX2dsb2JhbF90cmlnZ2VycyI6dHJ1ZSwiZmVhdHVyZV93b3JrZmxvd19idWlsZGVyX2VuYWJsZWRfb3JnX3NldHRpbmciOmZhbHNlLCJmZWF0dXJlX2J1aWxkZXJfY2FuX2FjY2VzcyI6ZmFsc2UsImZlYXR1cmVfc2hhcmVkX2NoYW5uZWxzX3JlbW92ZV9iZXRhX2xhYmVsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfbm9fb25lX3ByZWYiOmZhbHNlLCJmZWF0dXJlX2VzY19ncmFudWxhcl90ZWFtX3ByZWZzIjpmYWxzZSwiZmVhdHVyZV9lc2NfZ3JhbnVsYXJfdGVhbV9wcmVmc19jbGllbnQiOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2RuZCI6ZmFsc2UsImZlYXR1cmVfY29udGV4dF9iYXIiOnRydWUsImZlYXR1cmVfY29udGV4dF9iYXJfY3VzdG9tX3N0YXR1cyI6ZmFsc2UsImZlYXR1cmVfY29udGV4dF9iYXJfZ3Vlc3RzIjpmYWxzZSwiZmVhdHVyZV9lc2Nfd29ya3NwYWNlX3NldHRpbmdzX2NsaWVudCI6ZmFsc2UsImZlYXR1cmVfY2VfZW5nX2hjMnNsYWNrIjpmYWxzZSwiZmVhdHVyZV9tdWx0aV9maWxlX2xheW91dCI6dHJ1ZSwiZmVhdHVyZV9yaWNoX3RleHRfbGlua3MiOnRydWUsImZlYXR1cmVfcmljaF90ZXh0X3NsYXNoX2NvbW1tYW5kcyI6ZmFsc2UsImZlYXR1cmVfbWlncmF0aW9uX29yZ19hcHByb3ZhbHMiOnRydWUsImZlYXR1cmVfbmV3eHBfMzI2NiI6ZmFsc2UsImZlYXR1cmVfdGlueXNwZWNrIjpmYWxzZSwiZmVhdHVyZV9kZXNrdG9wX2NvcHlfdGV4dCI6ZmFsc2UsImZlYXR1cmVfd2ViYXBwX2Fsd2F5c19jb2xsZWN0X2luaXRpYWxfdGltZV9wZXJpb2Rfc3RhdHMiOmZhbHNlLCJmZWF0dXJlX2ZsYW5uZWxfdXNlX2NhbmFyeV9zb21ldGltZXMiOmZhbHNlLCJmZWF0dXJlX3NzYl9xMzE5X2RlcHJlY2F0aW9uIjpmYWxzZSwiZmVhdHVyZV9zc2JfcTMxOV9kZXByZWNhdGlvbl9kYXJrIjpmYWxzZSwiZmVhdHVyZV9zc2JfcTMxOV9kZXByZWNhdGlvbl9tb2RhbCI6ZmFsc2UsImZlYXR1cmVfc3NiX3EzMTlfZGVwcmVjYXRpb25fYmxvY2siOmZhbHNlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X3Vuc3VwcG9ydGVkIjp0cnVlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X3Vuc3VwcG9ydGVkX3RvYXN0Ijp0cnVlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X21vYmlsZSI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vdXRkYXRlZCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vdXRkYXRlZF90b2FzdCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vcyI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vc190b2FzdCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9tb2RhbCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9ibG9jayI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfZ2V0X21lbWJlcl9ieV9uYW1lIjpmYWxzZSwiZmVhdHVyZV9yZWFjdF9maWxlX3ZpZXdlciI6ZmFsc2UsImZlYXR1cmVfcmVhY3RfZmlsZV92aWV3ZXJfbmF2aWdhdGlvbiI6dHJ1ZSwiZmVhdHVyZV91bmtub3duX2ZpbGVzIjpmYWxzZSwiZmVhdHVyZV9hZGRfbWVzc2FnZV9wZXJmIjpmYWxzZSwiZmVhdHVyZV9maXhfY3VzdG9tX2Vtb2ppX2Vycm9ycyI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5fZGVsZXRlX2ZpbGUiOnRydWUsImZlYXR1cmVfc29uaWNfY2hhbm5lbF9vcHRpb25zIjpmYWxzZSwiZmVhdHVyZV9zb25pY19kZWx1eGVfdG9hc3QiOnRydWUsImZlYXR1cmVfc29uaWNfZGVsdXhlX3RvYXN0X2V4aXN0aW5nIjp0cnVlLCJmZWF0dXJlX3NvbmljX2RlbHV4ZV90b2FzdF9kYXJrIjp0cnVlLCJmZWF0dXJlX3NlbGVjdF9tb2RlbF9vcHRpb25fZmV0Y2hlcl9tMTFuIjpmYWxzZSwiZmVhdHVyZV9hMTF5X21lc3NhZ2Vfc3VtbWFyeSI6dHJ1ZSwiZmVhdHVyZV9yZXRyeV9uZXdfaW1hZ2VzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2RldGFpbHNfbWVtYmVyc2hpcF9saXN0IjpmYWxzZSwiZmVhdHVyZV9hbGxfZG1fbXV0ZSI6ZmFsc2UsImZlYXR1cmVfYWxsX2RtX211dGVfYm90cyI6ZmFsc2UsImZlYXR1cmVfZmlsZV90aHJlYWRzIjp0cnVlLCJmZWF0dXJlX2ZpbGVfdGhyZWFkc19kYXJrX2xhdW5jaCI6dHJ1ZSwiZmVhdHVyZV9icm9hZGNhc3RfaW5kaWNhdG9yIjp0cnVlLCJmZWF0dXJlX25ld19yZXBsaWVzX2FmdGVyX2JjYXN0Ijp0cnVlLCJmZWF0dXJlX3NvbmljX2Vtb2ppIjpmYWxzZSwiZmVhdHVyZV9lbW9qaV9zZWFyY2hfa2V5d29yZHNfaW5fYXV0b2NvbXBsZXRlIjpmYWxzZSwiZmVhdHVyZV9jdXN0b21fZW1vamlfc2VhcmNoX2J5X2NyZWF0b3IiOnRydWUsImZlYXR1cmVfc29uaWNfZnJlcXVlbnRfZW1vamlfZnJvbV9wcmVmIjpmYWxzZSwiZmVhdHVyZV9zb25pY19pbWdfcHJveHkiOnRydWUsImZlYXR1cmVfZW1haWxfaW5nZXN0aW9uIjpmYWxzZSwiZmVhdHVyZV9zaWRlYmFyX2NvbnRleHRfbWVudSI6ZmFsc2UsImZlYXR1cmVfYXR0YWNobWVudHNfaW5saW5lIjpmYWxzZSwiZmVhdHVyZV9maXhfZmlsZXMiOnRydWUsImZlYXR1cmVfcGFnaW5nX2FwaSI6ZmFsc2UsImZlYXR1cmVfYWFhX2FkbWluX2FwaXMiOmZhbHNlLCJmZWF0dXJlX2FhYV9hZG1pbl9hcGlzX2V2ZW50c19kb2NzIjp0cnVlLCJmZWF0dXJlX3RyaWdnZXJfdXNlcl9kbV9jbGljayI6dHJ1ZSwiZmVhdHVyZV9hcHBfbGF1bmNoZXIiOmZhbHNlLCJmZWF0dXJlX3dhbG1hcnRfb29tX2FkbWluX3BhZ2VfZml4IjpmYWxzZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X3ByaW1lciI6ZmFsc2UsImZlYXR1cmVfZGlzbWlzc19hZGRfYXBwcyI6dHJ1ZSwiZmVhdHVyZV9jdXN0b21fc3RhdHVzX2V4cGlyeSI6dHJ1ZSwiZmVhdHVyZV9jaGFubmVsX3NpZGViYXJfZHJhZnRzX3NlY3Rpb24iOnRydWUsImZlYXR1cmVfbmF2aWdhdGVfaGlzdG9yeSI6dHJ1ZSwiZmVhdHVyZV9jb21wb3NlX2Zsb3ciOmZhbHNlLCJmZWF0dXJlX2JldHRlcl9zbm9vemUiOnRydWUsImZlYXR1cmVfc29uaWNfZG5kX21hbmFnZXIiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2RuZF9ydG0iOmZhbHNlLCJmZWF0dXJlX3NvbmljX3ByZXNlbmNlX21hbmFnZXIiOmZhbHNlLCJmZWF0dXJlX2Zhc3Rlcl9jb3VudF9hbGxfdW5yZWFkcyI6dHJ1ZSwiZmVhdHVyZV9zb25pY191c2VyX2dyb3VwcyI6ZmFsc2UsImZlYXR1cmVfc29uaWNfdXNlcl9ncm91cHNfYTExeV9yZWZhY3RvciI6ZmFsc2UsImZlYXR1cmVfc29uaWNfdXNlcl9ncm91cHNfY29weV91cGRhdGUiOmZhbHNlLCJmZWF0dXJlX2xhenlfdXNlcl9ncm91cHMiOnRydWUsImZlYXR1cmVfc29uaWNfc2VydmljZV9kb3duIjp0cnVlLCJmZWF0dXJlX20xMW5fdXNlcl9mZXRjaF9zdGF0cyI6dHJ1ZSwiZmVhdHVyZV91bnRydXN0d29ydGh5X25hdmlnYXRvcl9vbmxpbmUiOnRydWUsImZlYXR1cmVfY29ubmVjdGl2aXR5X21hbmFnZXIiOnRydWUsImZlYXR1cmVfY2xpZW50X2Jvb3Rfc2hvdWxkX3JlbG9hZCI6ZmFsc2UsImZlYXR1cmVfZGF0YV9yZXNpZGVuY3lfZGVidWdnaW5nIjpmYWxzZSwiZmVhdHVyZV9lbnRfYXBwX21hbmFnZW1lbnRfcmVzdHJpY3Rpb24iOmZhbHNlLCJmZWF0dXJlX2dyaWRfYXJjaGl2ZV9saW5rX2ZpeGVzIjp0cnVlLCJmZWF0dXJlX3NvbmljX21lbWJlcl9kaXJlY3RvcnkiOmZhbHNlLCJmZWF0dXJlX21vZGVybml6ZWRfeHdzX3Blcm1hbGlua19kaWFsb2dzIjp0cnVlLCJmZWF0dXJlX3NhZmVndWFyZF9vcmdfcmV0ZW50aW9uIjp0cnVlLCJmZWF0dXJlX2Rhc2hib2FyZF9zb3J0YWJsZV9saXN0cyI6ZmFsc2UsImZlYXR1cmVfZW50ZXByaXNlX3VzZXJfdGVhbXNfdXBkYXRlIjp0cnVlLCJmZWF0dXJlX3NrX2xvYWRpbmdfYnV0dG9uX21vdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3NrX2Jhc2VfaWNvbiI6ZmFsc2UsImZlYXR1cmVfc2FtbF9hdXRobl9rZXlfZXhwaXJ5X2RhdGUiOnRydWUsImZlYXR1cmVfd3RhX3Blcm1fYXBpX3NwbGl0IjpmYWxzZSwiZmVhdHVyZV93dGFfY29udmVyc2F0aW9uc19hcGlfY2hhbm5lbF9jcmVhdGVkX21zZyI6ZmFsc2UsImZlYXR1cmVfZmlsZV9saW5rc19iZXR0ZXJlciI6ZmFsc2UsImZlYXR1cmVfdW5zYWZlX3Rsc19kZXByZWNhdGlvbl9hcGlfdmlldyI6dHJ1ZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2luZm9fY29uc29saWRhdGlvbl9waGFzZV8xIjpmYWxzZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2luZm9fY29uc29saWRhdGlvbl9waGFzZV8yIjpmYWxzZSwiZmVhdHVyZV9hcHBfY29tcGxpYW5jZV9pbmZvX2NvbGxlY3Rpb24iOmZhbHNlLCJmZWF0dXJlX2d1ZXN0X2FwaV9jaGFuZ2VzIjpmYWxzZSwiZmVhdHVyZV9nZHByX2V4cG9ydHMiOnRydWUsImZlYXR1cmVfYWxsb3dfYnVsa19kZWxldGVfam9pbl9sZWF2ZV9tZXNzYWdlcyI6dHJ1ZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfYmxvY2tfbGFyZ2Vfb3JncyI6ZmFsc2UsImZlYXR1cmVfY2hhbm5lbF9pc19yZW1vdmVfY3JlYXRlX3NoYXJlZF9jaGFubmVsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfbmV0d29yayI6ZmFsc2UsImZlYXR1cmVfbXBpbV9jaGFubmVscyI6ZmFsc2UsImZlYXR1cmVfY29udmVyc2F0aW9uc19saXN0Ijp0cnVlLCJmZWF0dXJlX2dkcHJfdXNlcl9qb2luX3RvcyI6dHJ1ZSwiZmVhdHVyZV91c2VyX2ludml0ZV90b3NfYXByaWxfMjAxOCI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5pemVfaW52aXRlcyI6dHJ1ZSwiZmVhdHVyZV9jdXN0b21fZW1vamlfZG93bmxvYWRfYnRuIjpmYWxzZSwiZmVhdHVyZV9pbnZpdGVzX3Nzb19jaGVjayI6dHJ1ZSwiZmVhdHVyZV9pbmNyZW1lbnRhbF91bnJlYWRfY291bnRzIjpmYWxzZSwiZmVhdHVyZV9uZXVlX3R5cGUiOmZhbHNlLCJmZWF0dXJlX2N1c3RfYWNxX2kxOG5fdHdlYWtzIjpmYWxzZSwiZmVhdHVyZV9zZWN1cml0eV9sZWdhbF9wYWdlX3VwZGF0ZXMiOmZhbHNlLCJmZWF0dXJlX3Byb2pfdXBkYXRlZF9wcmljaW5nX2xwIjp0cnVlLCJmZWF0dXJlX3Byb2pfd29ya2Zsb3dfYnVpbGRlcl9scCI6ZmFsc2UsImZlYXR1cmVfcHJval9pZHJfd2ViIjp0cnVlLCJmZWF0dXJlX3Byb2pfaWRyX3dlYl9jdGEiOnRydWUsImZlYXR1cmVfcHJval9zcGVjX2Vhcmx5X2JpcmQiOmZhbHNlLCJmZWF0dXJlX3Byb2pfYnJhbmRfdG9fcGVyZl9wYWdlIjpmYWxzZSwiZmVhdHVyZV9wcm9qX3ByaWNpbmdfc2lnbmVkX291dF91cGRhdGVzIjp0cnVlLCJmZWF0dXJlX3BhcnRuZXJfem9vbV9scCI6dHJ1ZSwiZmVhdHVyZV93aGl0ZWxpc3RfemVuZGVza19jaGF0X3dpZGdldCI6ZmFsc2UsImZlYXR1cmVfbGl2ZV9zdXBwb3J0X2ZyZWVfcGxhbiI6ZmFsc2UsImZlYXR1cmVfb2ZmbGluZV9tb2RlIjpmYWxzZSwiZmVhdHVyZV9mb3JjZV9sc19jb21wcmVzc2lvbiI6ZmFsc2UsImZlYXR1cmVfdXNlX2ltZ3Byb3h5X3Jlc2l6aW5nIjp0cnVlLCJmZWF0dXJlX3NoYXJlX21lbnRpb25fY29tbWVudF9jbGVhbnVwIjpmYWxzZSwiZmVhdHVyZV9leHRlcm5hbF9maWxlcyI6ZmFsc2UsImZlYXR1cmVfZGVza3RvcF9zb25pY19yb2xsb3V0Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfc29uaWNfYmV0YV9yb2xsb3V0Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfc29uaWNfZGlzYWJsZV9yb2xsb3V0IjpmYWxzZSwiZmVhdHVyZV9lbGVjdHJvbl9tZW1vcnlfbG9nZ2luZyI6ZmFsc2UsImZlYXR1cmVfbmF0aXZlX2FwcF9zdGFydF9ub25fbWFjIjpmYWxzZSwiZmVhdHVyZV9sb2NhbGl6YXRpb25fcGhhc2VfdHdvIjp0cnVlLCJmZWF0dXJlX2xvY2FsZV9lc19MQSI6dHJ1ZSwiZmVhdHVyZV9sb2NhbGVfZW5fR0IiOnRydWUsImZlYXR1cmVfbG9jYWxlX3B0X0JSIjp0cnVlLCJmZWF0dXJlX25ld19sb2NhbGVfdG9hc3QiOnRydWUsImZlYXR1cmVfY2hhbm5lbF9leHBvcnRzIjpmYWxzZSwiZmVhdHVyZV9kb2NzIjp0cnVlLCJmZWF0dXJlX2RvY3NfdHJhbnNsYXRpb25zIjpmYWxzZSwiZmVhdHVyZV9kb2NzX21lbnRpb25zX2FuZF9jaGFubmVscyI6ZmFsc2UsImZlYXR1cmVfYm9vdF9mYWxsYmFja192aWV3X3YxIjpmYWxzZSwiZmVhdHVyZV9jYWxsc19lc2NfdWkiOnRydWUsImZlYXR1cmVfc3BvY2tfY2FsbHMiOnRydWUsImZlYXR1cmVfbW9kZXJuX2NhbGxzX2ludml0ZSI6ZmFsc2UsImZlYXR1cmVfc3BvY2tfY2FsbHNfYTExeSI6ZmFsc2UsImZlYXR1cmVfc3BvY2tfY2FsbHNfZHJhd19jb2xvcl9waWNrZXIiOmZhbHNlLCJmZWF0dXJlX2NhbGxzX3N1cnZleV9yZXF1ZXN0X3Jlc3BvbnNlIjp0cnVlLCJmZWF0dXJlX3JlbW90ZV9maWxlc19kcm9wYm94X21pZ3JhdGlvbiI6dHJ1ZSwiZmVhdHVyZV9yZW1vdGVfZmlsZXNfZHJvcGJveF9taWdyYXRpb25fbGFiZWxzIjp0cnVlLCJmZWF0dXJlX3JlbW90ZV9maWxlc19hcGkiOnRydWUsImZlYXR1cmVfZGVmYXVsdF9zaGFyZWRfY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfcmVhY3RfbGZzIjpmYWxzZSwiZmVhdHVyZV9sb2dfcXVpY2tzd2l0Y2hlcl9xdWVyaWVzIjp0cnVlLCJmZWF0dXJlX21jX21lbnRpb25zX3RhYl9wcmVmc19hbmRfY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfdG9rZW5faXBfd2hpdGVsaXN0Ijp0cnVlLCJmZWF0dXJlX3NpZGViYXJfdGhlbWVfdW5kbyI6ZmFsc2UsImZlYXR1cmVfaGlkZV9vbl9zdGFydHVwIjpmYWxzZSwiZmVhdHVyZV9kb250X3NldF9jaGFubmVsX21lbWJlcnNoaXBfdHdpY2UiOmZhbHNlLCJmZWF0dXJlX2FsbG93X2ludHJhX3dvcmRfZm9ybWF0dGluZyI6dHJ1ZSwiZmVhdHVyZV9hbGxvd19jamtfYXV0b2NvbXBsZXRlIjp0cnVlLCJmZWF0dXJlX2kxOG5fY2hhbm5lbHNfdmFsaWRhdGVfZW1vamkiOnRydWUsImZlYXR1cmVfZndfZW5nX25vcm1hbGl6YXRpb24iOnRydWUsImZlYXR1cmVfc2xpbV9zY3JvbGxiYXIiOmZhbHNlLCJmZWF0dXJlX3ByaW1hcnlfc2VhcmNoIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fc291bmRzIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fZnV6enlfbWF0Y2hlciI6ZmFsc2UsImZlYXR1cmVfc2xpX2NoYW5uZWxfYXJjaGl2ZV9zdWdnZXN0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9zdGVlcGxlX2NodXJjaCI6dHJ1ZSwiZmVhdHVyZV9zdGVlcGxlX2NodXJjaF9saW5rIjp0cnVlLCJmZWF0dXJlX3N0ZWVwbGVfY2h1cmNoX2V4dCI6ZmFsc2UsImZlYXR1cmVfc3Ryb2xsZXJzX3RvX3BlcmNoIjp0cnVlLCJmZWF0dXJlX3NpZGViYXJfdmlydHVhbGl6ZWQiOmZhbHNlLCJmZWF0dXJlX2ZhbnRhaWxfbnVydHVyZSI6ZmFsc2UsImZlYXR1cmVfcG91cm92ZXIiOmZhbHNlLCJmZWF0dXJlX21vZGVybl9tcGltX21ha2VfbmFtZSI6ZmFsc2UsImZlYXR1cmVfcGVvcGxlX3NlYXJjaCI6ZmFsc2UsImZlYXR1cmVfcmVhY3RfbWVzc2FnZXMiOnRydWUsImZlYXR1cmVfZWRnZV91cGxvYWRfcHJveHlfY2hlY2siOmZhbHNlLCJmZWF0dXJlX2xlZ2FjeV9maWxlX3VwbG9hZF9hbmFseXRpY3MiOnRydWUsImZlYXR1cmVfc29uaWNfY2xpcGJvYXJkIjpmYWxzZSwiZmVhdHVyZV9zb25pY19hY3Rpdml0eSI6ZmFsc2UsImZlYXR1cmVfZWRpdF9wcm9maWxlX3NwZWVkX2J1bXAiOmZhbHNlLCJmZWF0dXJlX2Rvd25sb2Fkc19wb2xpc2giOmZhbHNlLCJmZWF0dXJlX3NvbmljX2RtX2Jyb3dzZXIiOnRydWUsImZlYXR1cmVfc29uaWNfZWRpdF9wcm9maWxlIjpmYWxzZSwiZmVhdHVyZV9zb25pY19maW5kX21vcmVfd2tzcHMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2lucHV0cyI6ZmFsc2UsImZlYXR1cmVfdGhyZWFkZWRfc2xhY2tfb3duZWRfcGx1Z2lucyI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfdW51c2VkX2NvbW1hbmRzIjp0cnVlLCJmZWF0dXJlX2hpZGVfdW5mdXJsX3VybHMiOmZhbHNlLCJmZWF0dXJlX3JlYWN0X21lbWJlcl9wcm9maWxlX2NhcmQiOmZhbHNlLCJmZWF0dXJlX2Vycm9yX2JvdW5kYXJ5X2NvcHkiOnRydWUsImZlYXR1cmVfc29uaWNfY2xvdWRfZmlsZXNfcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9zb25pY19zbmlwcGV0cyI6ZmFsc2UsImZlYXR1cmVfY29weV9jaGFubmVsX25hbWUiOmZhbHNlLCJmZWF0dXJlX2JveF9jb250ZW50X3BpY2tlciI6dHJ1ZSwiZmVhdHVyZV9mYWlsb3Zlcl9wcm94eV9jaGVjayI6ZmFsc2UsImZlYXR1cmVfYXBwX3N1YmRvbWFpbl9jaGVjayI6dHJ1ZSwiZmVhdHVyZV9zb25pY19kcmFmdF9taWdyYXRpb24iOnRydWUsImZlYXR1cmVfY2RuX2Rvd25sb2FkX3Rlc3QiOmZhbHNlLCJmZWF0dXJlX2FwcF9pbmRleCI6ZmFsc2UsImZlYXR1cmVfbW9kZXJuaXplX3NsYWNrX2FjdGlvbnMiOmZhbHNlLCJmZWF0dXJlX2dkcml2ZV9kb19ub3RfaW5zdGFsbF9ieV9kZWZhdWx0Ijp0cnVlLCJmZWF0dXJlX2RlbGV0ZV9tb3ZlZF9jaGFubmVscyI6dHJ1ZSwiZmVhdHVyZV9zaW5nbGVfd29ya3NwYWNlX3JlZGlyZWN0Ijp0cnVlLCJmZWF0dXJlX3plcm9fd29ya3NwYWNlX29uYm9hcmRpbmciOnRydWUsImZlYXR1cmVfb29tX212X2NoYW5uZWxzX2xpc3QiOnRydWUsImZlYXR1cmVfc3NvX2Zvcm1hdHRpbmdfZXJyb3IiOnRydWUsImZlYXR1cmVfc2luZ2xlX3VzZXJfd29ya3NwYWNlX3BhZ2luYXRpb24iOnRydWUsImZlYXR1cmVfZWttX3BoYXNlXzIiOnRydWUsImZlYXR1cmVfZWttX2JhY2tmaWxsX2FkZF9zbGVlcCI6ZmFsc2UsImZlYXR1cmVfZWttX2ZpbGVfcmV2b2NhdGlvbiI6ZmFsc2UsImZlYXR1cmVfZWttX3Jldm9jYXRpb25fYXBpX2NoYW5nZXMiOmZhbHNlLCJmZWF0dXJlX2VrbV9tZXNzYWdlX3Jldm9jYXRpb25fcG9sbGluZ190ZXN0IjpmYWxzZSwiZmVhdHVyZV9la21fbWVzc2FnZV9yZXZvY2F0aW9uIjp0cnVlLCJmZWF0dXJlX2xvbmdlcl9jaGFubmVsX25hbWVzIjp0cnVlLCJmZWF0dXJlX21zX2xhdGVzdCI6dHJ1ZSwiZmVhdHVyZV9ndWVzdHNfdXNlX2VudGl0bGVtZW50cyI6dHJ1ZSwiZmVhdHVyZV9hcHBfc3BhY2UiOnRydWUsImZlYXR1cmVfbTExbl9hcHBzX2Jyb3dzZXIiOmZhbHNlLCJmZWF0dXJlX3Nob3dfaW5zdGFsbGVkX2FwcF9kbV9zdWdnZXN0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9hcHBfc3BhY2VfbGlua3MiOnRydWUsImZlYXR1cmVfYXBwX2NhbnZhc2VzIjpmYWxzZSwiZmVhdHVyZV9hcHBfdmlld3NfdjEiOmZhbHNlLCJmZWF0dXJlX2FwcF92aWV3c19hcGlzX3YxIjpmYWxzZSwiZmVhdHVyZV9hcHBfaG9tZV9hZG1pbl9wYWdlcyI6ZmFsc2UsImZlYXR1cmVfYXBwX3ZpZXdzX3JlbWluZGVycyI6ZmFsc2UsImZlYXR1cmVfYXBwX3ZpZXdzX3JlbWluZGVyc19saXN0IjpmYWxzZSwiZmVhdHVyZV9ibG9ja3NfcmVtaW5kZXJzX2xpc3QiOmZhbHNlLCJmZWF0dXJlX21lc3NhZ2VfYmxvY2tzIjpmYWxzZSwiZmVhdHVyZV9zaWxlbmNlX2FwcF9kbXMiOmZhbHNlLCJmZWF0dXJlX3NldF90el9hdXRvbWF0aWNhbGx5Ijp0cnVlLCJmZWF0dXJlX2NvbmZpcm1fY2xlYXJfYWxsX3VucmVhZHNfcHJlZiI6dHJ1ZSwiZmVhdHVyZV9ibG9ja19tb3VudHMiOnRydWUsImZlYXR1cmVfYXR0YWNobWVudHNfdjIiOnRydWUsImZlYXR1cmVfYmxvY2tfa2l0X2RvY3VtZW50YXRpb24iOnRydWUsImZlYXR1cmVfYmxvY2tfa2l0X2V4cGFuZGFibGVfYmxvY2siOmZhbHNlLCJmZWF0dXJlX2dyb3VwX2Jsb2NrIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfZGVlcF9saW5rcyI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X211bHRpX3NlbGVjdHMiOmZhbHNlLCJmZWF0dXJlX3Nob3dfYmxvY2tfa2l0X2luX3NoYXJlX2RpYWxvZ3MiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2tpdF9ldmVudF9ibG9jayI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X3JlZmFjdG9yIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfc2hvdWxkX3VzZV9zbGFja19raXRfc2VsZWN0Ijp0cnVlLCJmZWF0dXJlX2Jsb2NrX2tpdF91c2VyX2Jsb2NrIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfcmFkaW9fYnV0dG9ucyI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X2NoZWNrYm94ZXMiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2tpdF9yYW5nZV9kYXRlcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9hZGRfYXBwX2hvbWVfdGVhbV9uYW1lIjpmYWxzZSwiZmVhdHVyZV9kYXRlX3RpbWVfcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9iZWFjb25fanNfZXJyb3JzIjpmYWxzZSwiZmVhdHVyZV9iZWFjb25fanNfYWRtaW5fZXJyb3JzIjpmYWxzZSwiZmVhdHVyZV9kaWFsb2dzX3YyX21vYmlsZSI6dHJ1ZSwiZmVhdHVyZV91c2VyX2FwcF9kaXNhYmxlX3NwZWVkX2J1bXAiOnRydWUsImZlYXR1cmVfb25lZHJpdmVfcGlja2VyIjp0cnVlLCJmZWF0dXJlX29uZWRyaXZlX3JlZGlyZWN0X3VyaSI6dHJ1ZSwiZmVhdHVyZV9vbmVkcml2ZV9iZXR0ZXJfZXJyb3JzIjp0cnVlLCJmZWF0dXJlX29uZWRyaXZlX2xhbmRpbmdfcGFnZSI6dHJ1ZSwiZmVhdHVyZV9vbmVkcml2ZV9kZXByZWNpYXRpb25fYmFubmVyIjpmYWxzZSwiZmVhdHVyZV9vbmVkcml2ZV91cGRhdGVfdW5mdXJsX3N1Z2dlc3Rpb25zIjp0cnVlLCJmZWF0dXJlX2Rpc2FibGVfYm94X3BsdXNfbWVudSI6ZmFsc2UsImZlYXR1cmVfdHJhY3Rvcl9zaGFyZWRfaW52aXRlX2xpbmsiOnRydWUsImZlYXR1cmVfbmV3eHBfMjExOSI6dHJ1ZSwiZmVhdHVyZV90cmFjdG9yX2JhY2t1cF9jaGFubmVsbmFtZV9jb3B5Ijp0cnVlLCJmZWF0dXJlX3NrX3RhYmxlcyI6ZmFsc2UsImZlYXR1cmVfc29uaWNfZGVncmFkZWRfYmFubmVyIjp0cnVlLCJmZWF0dXJlX2RlZ3JhZGVkX3NlbmQiOnRydWUsImZlYXR1cmVfZmxhbm5lbF94aHIiOnRydWUsImZlYXR1cmVfZGVzeW5jX3Jlc3luYyI6ZmFsc2UsImZlYXR1cmVfdml0ZXNzX3NpZGViYXIiOnRydWUsImZlYXR1cmVfc3RyYW5nZXJfZGFuZ2VyIjpmYWxzZSwiZmVhdHVyZV9tZXNzYWdlX2hpc3RvcnlfY2ZtIjp0cnVlLCJmZWF0dXJlX2RlZ3JhZGVkX3J0bV9hbHdheXNfZmFpbHMiOmZhbHNlLCJmZWF0dXJlX2RlbGV0ZV90ZWFtX2FuZF9hcHBzIjp0cnVlLCJmZWF0dXJlX3BqcGVnIjpmYWxzZSwiZmVhdHVyZV9wZGZfdGh1bWIiOnRydWUsImZlYXR1cmVfYXBwc19tYW5hZ2VfcGVybWlzc2lvbnNfc2NvcGVfY2hhbmdlcyI6dHJ1ZSwiZmVhdHVyZV9yZW1pbmRlcl9jcm9zc193b3Jrc3BhY2UiOnRydWUsImZlYXR1cmVfc3BlZWR5X2Jvb3RfaGFuZGxlYmFycyI6ZmFsc2UsImZlYXR1cmVfc2FtbF9vd25lcnNfb25seSI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5fZHVubmluZ19iYW5uZXJzX2kxOG4iOnRydWUsImZlYXR1cmVfZmxhbm5lbF9hbHdheXNfdXNlX2NhbmFyeSI6ZmFsc2UsImZlYXR1cmVfc29uaWNfcmVkaXJlY3Rfb3B0X291dCI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdiI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdl9yb2xsYmFjayI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdl9sYXlvdXQiOmZhbHNlLCJmZWF0dXJlX2NsYXNzaWNfbmF2IjpmYWxzZSwiZmVhdHVyZV9uZXdfcmVhY3Rpb25zIjp0cnVlLCJmZWF0dXJlX3BhZ2VzX2V4YW1wbGUiOmZhbHNlLCJmZWF0dXJlX3NvbmljX3BpbnMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2NoYW5uZWxfYnJvd3NlciI6dHJ1ZSwiZmVhdHVyZV9zb25pY192aWRlb19wbGFjZWhvbGRlciI6dHJ1ZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2hvbWVfcGFnZV9yZWRlc2lnbiI6dHJ1ZSwiZmVhdHVyZV9oaWRkZW5fd2tzcF91bmZ1cmxzIjp0cnVlLCJmZWF0dXJlX2d1ZXN0X3drc3BfdW5mdXJscyI6ZmFsc2UsImZlYXR1cmVfd29ya3NwYWNlX3NjaW1fbWFuYWdlbWVudCI6ZmFsc2UsImZlYXR1cmVfdW5pZmllZF9tZW1iZXIiOmZhbHNlLCJmZWF0dXJlX25ld191bmlmaWVkX2xpc3RfZW50aXRpZXMiOmZhbHNlLCJmZWF0dXJlX3R1cm5fbXBkbV9ub3RpZnNfb24iOnRydWUsImZlYXR1cmVfYnJvd3Nlcl9kcmFnbmRyb3AiOmZhbHNlLCJmZWF0dXJlX2Rlc2t0b3BfZm9yY2VfcHJvZHVjdGlvbl9jaGFubmVsIjpmYWxzZSwiZmVhdHVyZV9kZXNrdG9wX2xvZ3NfdXBsb2FkIjpmYWxzZSwiZmVhdHVyZV9tYWNvc19kaXNhYmxlX2h3Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfbm90aWZpY2F0aW9uc18yMDE4IjpmYWxzZSwiZmVhdHVyZV9leGNlbF9vZmZpY2VfcHJldmlldyI6dHJ1ZSwiZmVhdHVyZV9vcmdfYXdhcmVfZXh0ZXJuYWxfc2hhcmVkX2NoYW5uZWxzIjp0cnVlLCJmZWF0dXJlX2VzY19kaXNjb25uZWN0X3YyX2NsaWVudCI6dHJ1ZSwiZmVhdHVyZV9lc2NfZGlzY29ubmVjdF92Ml9yZWxlYXNlX2RlcGVuZGVudF9jb3B5Ijp0cnVlLCJmZWF0dXJlX3F1aWxsX3VwZ3JhZGUiOnRydWUsImZlYXR1cmVfYWxseV9zb3VuZHMiOmZhbHNlLCJmZWF0dXJlX2JvdHNfbm90X21lbWJlcnMiOnRydWUsImZlYXR1cmVfd3RhX21vZGFsX20xMW4iOmZhbHNlLCJmZWF0dXJlX3d0YV9zdG9wX2NyZWF0aW9uIjp0cnVlLCJmZWF0dXJlX20xMW5fY2hhbm5lbF9kZXRhaWxzIjpmYWxzZSwiZmVhdHVyZV9ncm91cF9zY29wZXMiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2d1ZXN0X2FwcF9jcmVhdGlvbiI6dHJ1ZSwiZmVhdHVyZV9vYXV0aF9jaGFubmVsX3BpY2tlcnNfZmxhbm5lbCI6ZmFsc2UsImZlYXR1cmVfd3RhX29yZ19sZXZlbF9hcHBzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2FjdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3Nob3J0Y3V0c19idXR0b25fb25fbGVmdCI6ZmFsc2UsImZlYXR1cmVfY29sb3JmdWxfc2xhc2hfY29tbWFuZHMiOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfYWN0aW9uc19jbGllbnQiOmZhbHNlLCJmZWF0dXJlX3Nob3J0Y3V0c19wcm9tcHQiOnRydWUsImZlYXR1cmVfYWNjZXNzaWJsZV9kaWFsb2dzIjp0cnVlLCJmZWF0dXJlX2FwcF9hY3Rpb25zX2dsb2JhbCI6ZmFsc2UsImZlYXR1cmVfYXBwX2FjdGlvbnNfZmVfcmVmYWN0b3IiOmZhbHNlLCJmZWF0dXJlX3NoYXJlZF9jaGFubmVsX2ZyZWVfdHJpYWxfZmxvdyI6dHJ1ZSwiZmVhdHVyZV9jYWxsc19jbGlwYm9hcmRfYnJvYWRjYXN0aW5nX29wdGluIjp0cnVlLCJmZWF0dXJlX3NjcmVlbl9zaGFyZV9uZWVkc19hZXJvIjpmYWxzZSwiZmVhdHVyZV9zbGlfdHJlbmRpbmdfZGFzaGJvYXJkIjpmYWxzZSwiZmVhdHVyZV9pMThuX3NlbGVjdF9lbXB0eV9zdGF0ZV9zdHJpbmciOmZhbHNlLCJmZWF0dXJlX2FjY2Vzc2libGVfZnNfZGlhbG9ncyI6dHJ1ZSwiZmVhdHVyZV9jaGFubmVsX2Jyb3dzZXJfZHJvcGRvd24iOnRydWUsImZlYXR1cmVfdHJhcF9rYl93aXRoaW5fZnNfbW9kYWxzIjp0cnVlLCJmZWF0dXJlX2RpYWxvZ19zcGVlZGJ1bXAiOnRydWUsImZlYXR1cmVfbW9kZXJuX2ltYWdlX3ZpZXdlciI6dHJ1ZSwiZmVhdHVyZV9lbW9qaV9ieV9pZCI6dHJ1ZSwiZmVhdHVyZV93dGFfbm90aWZpY2F0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9tY19taWdyYXRpb25fYmFubmVyIjp0cnVlLCJmZWF0dXJlX2ZpbGVfY29tbWVudF9kZWxldGVkX3J0bV9oYW5kbGVyIjpmYWxzZSwiZmVhdHVyZV9hdHRhY2htZW50X3RleHRfbW9yZSI6ZmFsc2UsImZlYXR1cmVfYXJpYV9hcHBsaWNhdGlvbl9tb2RlIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcmVxdWVzdF93b3Jrc3BhY2VfZGlhbG9nIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcHJvZmlsZV9mbGV4cGFuZSI6ZmFsc2UsImZlYXR1cmVfc2NnX2NvbnZlcnNpb25fY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfcmVkdWNlX3VuZXhwZWN0ZWRfdW5pbnN0YWxscyI6dHJ1ZSwiZmVhdHVyZV9zb25pY19xdWlja19zd2l0Y2hlciI6ZmFsc2UsImZlYXR1cmVfaWRwX2dyb3VwX3dhcm5pbmciOmZhbHNlLCJmZWF0dXJlX3RyYWNrX3RpbWVfc3BlbnQiOnRydWUsImZlYXR1cmVfYW5ub3VuY2Vfb25seSI6dHJ1ZSwiZmVhdHVyZV9hbm5vdW5jZV9vbmx5X3dlYnNvY2tldCI6dHJ1ZSwiZmVhdHVyZV9hbm5vdW5jZV9vbmx5X3ByZWZfY2hhbmdlX21lc3NhZ2UiOnRydWUsImZlYXR1cmVfYW5ub3VuY2Vfb25seV9wcm9tbyI6ZmFsc2UsImZlYXR1cmVfYXRfbWVudGlvbl9pbnZpdGVzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2ludml0ZV90b2tlbml6YXRpb24iOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfaXNfbmV3X2NyZWF0ZV9lZGl0IjpmYWxzZSwiZmVhdHVyZV9jb21wb3NlX3Byb3RvdHlwZSI6ZmFsc2UsImZlYXR1cmVfaW1wb3J0c19jYW5jZWwiOmZhbHNlLCJmZWF0dXJlX2ltcG9ydHNfY2hhbm5lbF9zZXBhcmF0aW9uIjpmYWxzZSwiZmVhdHVyZV9ldmFsdWVfMjY0MV9kaXNhbGxvd19lbmZvcmNlX29yZ3dpZGVfcG9saWN5IjpmYWxzZSwiZmVhdHVyZV9lbWFpbF93b3Jrb2JqZWN0X3VpIjpmYWxzZSwiZmVhdHVyZV9lbWFpbF9ub3RpZnkiOmZhbHNlLCJmZWF0dXJlX2VtYWlsX3ByaXZhdGUiOnRydWUsImZlYXR1cmVfYXN5bmNfdXNlcnNfc2V0X3Bob3RvIjpmYWxzZSwiZmVhdHVyZV9lc2NfYWRtaW4iOnRydWUsImZlYXR1cmVfY3VzdG9taXplZF9kb21haW5fY2xhaW1pbmciOnRydWUsImZlYXR1cmVfb3JnX3dpZGVfbTExbiI6ZmFsc2UsImZlYXR1cmVfY2FsZW5kYXJfc2ltcGxlX2FnZW5kYV92aWV3IjpmYWxzZSwiZmVhdHVyZV9hbmFseXRpY3NfZW5hYmxlX2RpdmlzaW9uIjpmYWxzZSwiZmVhdHVyZV9zZWFyY2hfb25fbmFtZV9hbmRfZW1haWxfb25seSI6dHJ1ZSwiZmVhdHVyZV9lbnRlcnByaXNlX2FuYWx5dGljc19hcHBzX3RhYiI6ZmFsc2UsImZlYXR1cmVfZW50ZXJwcmlzZV9hbmFseXRpY3NfMjAxOV9xMV91cGRhdGUiOnRydWUsImZlYXR1cmVfaW5zaWdodHNfYWxsb3dfYWNjZXNzX3RvX2FwcCI6ZmFsc2UsImZlYXR1cmVfZXhpc3RpbmdfaGVscF9yZXF1ZXN0X2F0dGFjaG1lbnRzIjp0cnVlLCJmZWF0dXJlX21pZ3JhdGlvbl9iYWNrZ3JvdW5kX2NsaWVudCI6ZmFsc2UsImZlYXR1cmVfdW5mdXJsX21ldGFkYXRhIjpmYWxzZSwiZmVhdHVyZV9wbHVzX21lbnVfYWRkX2FwcHNfbGluayI6ZmFsc2UsImZlYXR1cmVfcmVjZW50X2ZpbGVzX29tbmlwaWNrZXIiOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2JvdHNfZGV2ZWxvcGVyX3ByZXZpZXciOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2JvdF9zY29wZXNfR0EiOmZhbHNlLCJmZWF0dXJlX2VtYWlsX2JyaWRnZV9ncmlkIjpmYWxzZSwiZmVhdHVyZV9yZW1vdmVfZ2RyaXZlX2NvbmZpcm1hdGlvbiI6ZmFsc2UsImZlYXR1cmVfc3RyaXBlX3NjYSI6ZmFsc2UsImZlYXR1cmVfc2VsZl9zZXJ2ZV9zZWxlY3QiOnRydWUsImZlYXR1cmVfdmF0X3Byb2plY3Rfc2Ffc2siOnRydWUsImZlYXR1cmVfdmF0X3Byb2plY3Rfc2Ffc2tfMiI6dHJ1ZSwiZmVhdHVyZV92YXRfcHJvamVjdF9zYV9za19jb2xsZWN0aW9uIjp0cnVlLCJmZWF0dXJlX2VtYWlsX2JpbGxpbmdfcGVuZGluZ19leHBpcnlfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3VwZ3JhZGVfc2xhY2tfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3BlcnNfc2VhcmNoX21zZ19saW1pdF93YXJuaW5nX2kxOG4iOnRydWUsImZlYXR1cmVfaGlnaGxpZ2h0X3N0YW5kYXJkX29uX3BsYW5zX3BhZ2VfaTE4biI6dHJ1ZSwiZmVhdHVyZV9nc29fcmVtb3RlX3Nlc3Npb25fd2lwZSI6ZmFsc2UsImZlYXR1cmVfYWRtaW5fbW92ZV9jaGFubmVsc19tZXNzYWdlIjpmYWxzZSwiZmVhdHVyZV9uZXd4cF9qaXJhXzIwNDMiOnRydWUsImZlYXR1cmVfc2VlX21vcmVfY2hhbm5lbHMiOmZhbHNlLCJmZWF0dXJlX2NyZWF0b3Jfc29uaWNfdXJsIjpmYWxzZSwiZmVhdHVyZV9qaXJhX25ld3hwXzIzNzIiOnRydWUsImZlYXR1cmVfamlyYV9uZXd4cF8yMzcyX2NvcHkiOmZhbHNlLCJmZWF0dXJlX2ppcmFfbmV3eHBfMTc1NCI6ZmFsc2UsImZlYXR1cmVfdW5zdXBwb3J0ZWRfYnJvd3NlcnNfY29tcG9uZW50X3RyYW5zbGF0aW9ucyI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfZmVfaW52aXRlX21vZGVybiI6dHJ1ZSwiZmVhdHVyZV9hY3RpdmF0aW9uX21vZGVybl9nZXRfc3RhcnRlZCI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfMjEwNV90cmFuc2xhdGlvbnMiOmZhbHNlLCJmZWF0dXJlX21vZGVybml6ZV9jaGFubmVsX2NyZWF0ZV9tb2RhbCI6dHJ1ZSwiZmVhdHVyZV9zb25pY19wbGFjZWhvbGRlcl9sYWJlbHMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2VzY19jcmVhdGlvbiI6ZmFsc2UsImZlYXR1cmVfbmlnaHRzaGFkZSI6dHJ1ZSwiZmVhdHVyZV9wbGF0Zm9ybV9jYWxsc19hcGkiOnRydWUsImZlYXR1cmVfdGhyZWFkZWRfY2FsbF9ibG9jayI6ZmFsc2UsImZlYXR1cmVfYnJpbmdfcGxhbnNfcGFnZV90b19zc2JfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX2VpZGVudF8yMTU0IjpmYWxzZSwiZmVhdHVyZV9tb2JpbGVfYmlvbWV0cmljc190aW1lb3V0Ijp0cnVlLCJmZWF0dXJlX3NvbmljX2NoYW5uZWxfaW52aXRlX21vZGFsIjpmYWxzZSwiZmVhdHVyZV9saWZlY3ljbGVfbG9nZ2luZ19wbGFuc19wYWdlIjp0cnVlLCJmZWF0dXJlX2NoYW5nZV9wdXJwb3NlX3RvX2Rlc2NyaXB0aW9uIjpmYWxzZSwiZmVhdHVyZV9wbGF0Zm9ybV9hcHBfbWFuYWdlbWVudF9vbl9kZW1hbmRfcGlja2VycyI6dHJ1ZSwiZmVhdHVyZV9wbGF0Zm9ybV9hcHBfbWFuYWdlbWVudF9vbl9kZW1hbmRfcGlja2Vyc19waGFzZV8yIjpmYWxzZSwiZmVhdHVyZV9zbGFja19tZXNzYWdlX2F0dGFjaG1lbnRfdG9vbHRpcCI6ZmFsc2UsImZlYXR1cmVfY2hlY2tvdXRfZnVsbF9zY2hlZHVsZV9zZWxlY3Rvcl90cmFuc2xhdGlvbnMiOnRydWUsImZlYXR1cmVfbW9kZXJuX2dkcml2ZV9jcmVhdGUiOmZhbHNlLCJmZWF0dXJlX2dkcml2ZV9wcm9tcHRfcmVmYWN0b3IiOnRydWUsImZlYXR1cmVfYXBwX3Byb21wdHNfY29ubmVjdF9yZWZhY3RvciI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfMjc3OCI6dHJ1ZSwiZmVhdHVyZV9uZXd4cF8zMTAwIjpmYWxzZSwiZmVhdHVyZV9uZXd4cDMxMDBfdjEiOnRydWUsImZlYXR1cmVfc2VhcmNoX2ZlZWRiYWNrIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5pemVfbGltaXRfbWV0ZXIiOnRydWUsImZlYXR1cmVfc2hhcmVkX2NoYW5uZWxzX2N1c3RvbV9lbW9qaXNfdXJsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfY3VzdG9tX2Vtb2ppc191cmxfY2xpZW50IjpmYWxzZSwiZmVhdHVyZV9uZXdfY29weV9mb3JfaWRlbnRpdHlfYmFzaWMiOmZhbHNlLCJmZWF0dXJlX25ld3hwXzI3OTgiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2xlYXZlX3dvcmtzcGFjZV9kaWFsb2ciOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfbmFtaW5nX25vcm1zIjp0cnVlLCJmZWF0dXJlX2FwcHNfYnJvd3Nlcl9hMTF5IjpmYWxzZSwiZmVhdHVyZV9iZXR0ZXJfc2NfaW52aXRlcyI6ZmFsc2UsImZlYXR1cmVfYmV0dGVyX21hbmFnZV9zY19tb2RhbCI6ZmFsc2UsImZlYXR1cmVfYmV0dGVyX3NjX2ludml0ZXNfYWNjZXB0X2Zsb3dfYXBwIjpmYWxzZSwiZmVhdHVyZV9iZXR0ZXJfc2NfaW52aXRlc19zbGFja2JvdF9jbGllbnQiOmZhbHNlLCJmZWF0dXJlX3BhaWRfb25ib2FyZGluZ19wYWdldXBkYXRlIjp0cnVlLCJmZWF0dXJlX2Rvd25sb2FkX2FjY2Vzc19sb2dzIjp0cnVlLCJmZWF0dXJlX25ld3hwXzMwOTdfdHJhbnNsYXRpb25zIjpmYWxzZSwiZmVhdHVyZV90cmFjZV93ZWJhcHBfaW5pdCI6dHJ1ZSwiZmVhdHVyZV9uZXd4cF8yODMyIjp0cnVlLCJmZWF0dXJlX2FwcF9icm93c2VyX2JldHRlcl9oZWFkZXJfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX2Fubm91bmNlbWVudF9vbmx5X2NoYW5uZWxfY29weV9jaGFuZ2VfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3dvcmtmbG93X2JvdHNfaW5fY2xpZW50IjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2lzX3dvcmtmbG93X2FwcCI6ZmFsc2UsImZlYXR1cmVfc3RyaXBlX2NvbXBsZXRlbHlfZG93bl9iYW5uZXIiOmZhbHNlLCJmZWF0dXJlX2ZlYXRfYnJvd3Nlcl9jb250cm9sIjpmYWxzZSwiZmVhdHVyZV9uZXd4cF8yODYyX3RyYW5zbGF0aW9ucyI6ZmFsc2UsImZlYXR1cmVfbW92ZV9jaGFubmVsc19jb3B5IjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcGxhbnNfcGFnZV90cmFuc2xhdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3BsYW5zX3BhZ2VfcXVvdGUiOmZhbHNlLCJmZWF0dXJlX2NoZWNrb3V0djJfZGlzY291bnRfZm9yX2VkdWNhdGlvbl9hbmRfbm9ucHJvZml0IjpmYWxzZSwiZmVhdHVyZV9kZXByZWNhdGlvbl9kYXNoYm9hcmRzIjpmYWxzZSwiZmVhdHVyZV9lbnRlcnByaXNlX3NlbGVjdF9mcm9tX2JpbGxpbmciOmZhbHNlLCJjbGllbnRfbG9ncyI6eyIwIjp7Im51bWJlcnMiOlswXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiMiI6eyJudW1iZXJzIjpbMl0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQiOnsibnVtYmVycyI6WzRdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI1Ijp7Im51bWJlcnMiOls1XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiMjMiOnsibnVtYmVycyI6WzIzXSwidXNlcl9mYWNpbmciOmZhbHNlfSwic291bmRzIjp7Im5hbWUiOiJzb3VuZHMiLCJudW1iZXJzIjpbMzddfSwiMzciOnsibmFtZSI6InNvdW5kcyIsIm51bWJlcnMiOlszN10sInVzZXJfZmFjaW5nIjp0cnVlfSwiNDciOnsibnVtYmVycyI6WzQ3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNDgiOnsibnVtYmVycyI6WzQ4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiTWVzc2FnZSBIaXN0b3J5Ijp7Im5hbWUiOiJNZXNzYWdlIEhpc3RvcnkiLCJudW1iZXJzIjpbNThdfSwiNTgiOnsibmFtZSI6Ik1lc3NhZ2UgSGlzdG9yeSIsIm51bWJlcnMiOls1OF0sInVzZXJfZmFjaW5nIjp0cnVlfSwiNjciOnsibnVtYmVycyI6WzY3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzIiOnsibnVtYmVycyI6WzcyXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzMiOnsibnVtYmVycyI6WzczXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiODIiOnsibnVtYmVycyI6WzgyXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiODgiOnsibnVtYmVycyI6Wzg4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTEiOnsibnVtYmVycyI6WzkxXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTMiOnsibnVtYmVycyI6WzkzXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTYiOnsibnVtYmVycyI6Wzk2XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTkiOnsibnVtYmVycyI6Wzk5XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiQ2hhbm5lbCBNYXJraW5nIChNUykiOnsibmFtZSI6IkNoYW5uZWwgTWFya2luZyAoTVMpIiwibnVtYmVycyI6WzE0MV19LCIxNDEiOnsibmFtZSI6IkNoYW5uZWwgTWFya2luZyAoTVMpIiwibnVtYmVycyI6WzE0MV0sInVzZXJfZmFjaW5nIjp0cnVlfSwiQ2hhbm5lbCBNYXJraW5nIChDbGllbnQpIjp7Im5hbWUiOiJDaGFubmVsIE1hcmtpbmcgKENsaWVudCkiLCJudW1iZXJzIjpbMTQyXX0sIjE0MiI6eyJuYW1lIjoiQ2hhbm5lbCBNYXJraW5nIChDbGllbnQpIiwibnVtYmVycyI6WzE0Ml0sInVzZXJfZmFjaW5nIjp0cnVlfSwiQ2xvc2UgT2xkIElNcyAoQ2xpZW50KSI6eyJuYW1lIjoiQ2xvc2UgT2xkIElNcyAoQ2xpZW50KSIsIm51bWJlcnMiOlsyMjFdfSwiMjIxIjp7Im5hbWUiOiJDbG9zZSBPbGQgSU1zIChDbGllbnQpIiwibnVtYmVycyI6WzIyMV0sInVzZXJfZmFjaW5nIjp0cnVlfSwiMzY1Ijp7Im51bWJlcnMiOlszNjVdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCIzODkiOnsibnVtYmVycyI6WzM4OV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQzOCI6eyJudW1iZXJzIjpbNDM4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNDQ0Ijp7Im51bWJlcnMiOls0NDRdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI0ODEiOnsibnVtYmVycyI6WzQ4MV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQ4OCI6eyJudW1iZXJzIjpbNDg4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNTI5Ijp7Im51bWJlcnMiOls1MjldLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI1NTIiOnsibnVtYmVycyI6WzU1Ml0sInVzZXJfZmFjaW5nIjpmYWxzZX0sImRhc2hib2FyZCI6eyJuYW1lIjoiZGFzaGJvYXJkIiwibnVtYmVycyI6WzY2Nl19LCI2NjYiOnsibmFtZSI6ImRhc2hib2FyZCIsIm51bWJlcnMiOls2NjZdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI2NjciOnsibnVtYmVycyI6WzY2N10sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjc3MyI6eyJudW1iZXJzIjpbNzczXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzc3Ijp7Im51bWJlcnMiOls3NzddLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI3OTQiOnsibnVtYmVycyI6Wzc5NF0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIkNsaWVudCBSZXNwb25zaXZlbmVzcyI6eyJuYW1lIjoiQ2xpZW50IFJlc3BvbnNpdmVuZXNzIiwidXNlcl9mYWNpbmciOmZhbHNlLCJudW1iZXJzIjpbODA4XX0sIjgwOCI6eyJuYW1lIjoiQ2xpZW50IFJlc3BvbnNpdmVuZXNzIiwidXNlcl9mYWNpbmciOmZhbHNlLCJudW1iZXJzIjpbODA4XX0sIk1lc3NhZ2UgUGFuZSBTY3JvbGxpbmciOnsibmFtZSI6Ik1lc3NhZ2UgUGFuZSBTY3JvbGxpbmciLCJudW1iZXJzIjpbODg4XX0sIjg4OCI6eyJuYW1lIjoiTWVzc2FnZSBQYW5lIFNjcm9sbGluZyIsIm51bWJlcnMiOls4ODhdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIlVucmVhZCBiYW5uZXIgYW5kIGRpdmlkZXIiOnsibmFtZSI6IlVucmVhZCBiYW5uZXIgYW5kIGRpdmlkZXIiLCJudW1iZXJzIjpbOTk5XX0sIjk5OSI6eyJuYW1lIjoiVW5yZWFkIGJhbm5lciBhbmQgZGl2aWRlciIsIm51bWJlcnMiOls5OTldLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjEwMDAiOnsibnVtYmVycyI6WzEwMDBdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCJEdXBsaWNhdGUgYmFkZ2VzIChkZXNrdG9wIGFwcCBpY29ucykiOnsibmFtZSI6IkR1cGxpY2F0ZSBiYWRnZXMgKGRlc2t0b3AgYXBwIGljb25zKSIsIm51bWJlcnMiOlsxNzAxXX0sIjE3MDEiOnsibmFtZSI6IkR1cGxpY2F0ZSBiYWRnZXMgKGRlc2t0b3AgYXBwIGljb25zKSIsIm51bWJlcnMiOlsxNzAxXSwidXNlcl9mYWNpbmciOnRydWV9LCJNZW1iZXJzIjp7Im5hbWUiOiJNZW1iZXJzIiwibnVtYmVycyI6WzE5NzVdfSwiMTk3NSI6eyJuYW1lIjoiTWVtYmVycyIsIm51bWJlcnMiOlsxOTc1XSwidXNlcl9mYWNpbmciOnRydWV9LCJsYXp5IGxvYWRpbmciOnsibmFtZSI6ImxhenkgbG9hZGluZyIsIm51bWJlcnMiOlsxOTg5XX0sIjE5ODkiOnsibmFtZSI6ImxhenkgbG9hZGluZyIsIm51bWJlcnMiOlsxOTg5XSwidXNlcl9mYWNpbmciOnRydWV9LCJ0aGluX2NoYW5uZWxfbWVtYmVyc2hpcCI6eyJuYW1lIjoidGhpbl9jaGFubmVsX21lbWJlcnNoaXAiLCJudW1iZXJzIjpbMTk5MF19LCIxOTkwIjp7Im5hbWUiOiJ0aGluX2NoYW5uZWxfbWVtYmVyc2hpcCIsIm51bWJlcnMiOlsxOTkwXSwidXNlcl9mYWNpbmciOnRydWV9LCJzdGF0cyI6eyJuYW1lIjoic3RhdHMiLCJudW1iZXJzIjpbMTk5MV19LCIxOTkxIjp7Im5hbWUiOiJzdGF0cyIsIm51bWJlcnMiOlsxOTkxXSwidXNlcl9mYWNpbmciOnRydWV9LCJtcyI6eyJuYW1lIjoibXMiLCJudW1iZXJzIjpbMTk5Nl19LCIxOTk2Ijp7Im5hbWUiOiJtcyIsIm51bWJlcnMiOlsxOTk2XSwidXNlcl9mYWNpbmciOnRydWV9LCJzaGFyZWRfY2hhbm5lbHNfY29ubmVjdGlvbiI6eyJuYW1lIjoic2hhcmVkX2NoYW5uZWxzX2Nvbm5lY3Rpb24iLCJudW1iZXJzIjpbMTk5OV19LCIxOTk5Ijp7Im5hbWUiOiJzaGFyZWRfY2hhbm5lbHNfY29ubmVjdGlvbiIsIm51bWJlcnMiOlsxOTk5XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiZG5kIjp7Im5hbWUiOiJkbmQiLCJudW1iZXJzIjpbMjAwMl19LCIyMDAyIjp7Im5hbWUiOiJkbmQiLCJudW1iZXJzIjpbMjAwMl0sInVzZXJfZmFjaW5nIjp0cnVlfSwiMjAwMyI6eyJudW1iZXJzIjpbMjAwM10sInVzZXJfZmFjaW5nIjpmYWxzZX0sIlRocmVhZHMiOnsibmFtZSI6IlRocmVhZHMiLCJudW1iZXJzIjpbMjAwNF19LCIyMDA0Ijp7Im5hbWUiOiJUaHJlYWRzIiwibnVtYmVycyI6WzIwMDRdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjIwMDUiOnsibnVtYmVycyI6WzIwMDVdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCJSZWFjdGlvbnMiOnsibmFtZSI6IlJlYWN0aW9ucyIsIm51bWJlcnMiOlsyMDA2XX0sIjIwMDYiOnsibmFtZSI6IlJlYWN0aW9ucyIsIm51bWJlcnMiOlsyMDA2XSwidXNlcl9mYWNpbmciOnRydWV9LCJUU1NTQi5mb2N1c1RhYkFuZFN3aXRjaFRvQ2hhbm5lbCI6eyJuYW1lIjoiVFNTU0IuZm9jdXNUYWJBbmRTd2l0Y2hUb0NoYW5uZWwiLCJudW1iZXJzIjpbMjAwN119LCIyMDA3Ijp7Im5hbWUiOiJUU1NTQi5mb2N1c1RhYkFuZFN3aXRjaFRvQ2hhbm5lbCIsIm51bWJlcnMiOlsyMDA3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiUHJlc2VuY2UgRGV0ZWN0aW9uIjp7Im5hbWUiOiJQcmVzZW5jZSBEZXRlY3Rpb24iLCJudW1iZXJzIjpbMjAxN119LCIyMDE3Ijp7Im5hbWUiOiJQcmVzZW5jZSBEZXRlY3Rpb24iLCJudW1iZXJzIjpbMjAxN10sInVzZXJfZmFjaW5nIjp0cnVlfSwibWNfc2licyI6eyJuYW1lIjoibWNfc2licyIsIm51bWJlcnMiOls5OTk5XX0sIjk5OTkiOnsibmFtZSI6Im1jX3NpYnMiLCJudW1iZXJzIjpbOTk5OV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIk1lbWJlciBzZWFyY2hpbmciOnsibmFtZSI6Ik1lbWJlciBzZWFyY2hpbmciLCJudW1iZXJzIjpbOTAyMTFdfSwiOTAyMTEiOnsibmFtZSI6Ik1lbWJlciBzZWFyY2hpbmciLCJudW1iZXJzIjpbOTAyMTFdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjk4NzY1Ijp7Im51bWJlcnMiOls5ODc2NV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjg2NzUzMDkiOnsibnVtYmVycyI6Wzg2NzUzMDldLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9fX07Cglib290X2RhdGEuc3RhcnRfbXMgPSBEYXRlLm5vdygpOwo8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIFRTX2xhc3RfbG9nX2RhdGUgPSBudWxsOwp2YXIgVFNNYWtlTG9nRGF0ZSA9IGZ1bmN0aW9uKCkgewoJdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwoKCXZhciB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpOwoJdmFyIG1vID0gZGF0ZS5nZXRNb250aCgpKzE7Cgl2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpOwoKCXZhciB0aW1lID0gewoJICBoOiBkYXRlLmdldEhvdXJzKCksCgkgIG1pOiBkYXRlLmdldE1pbnV0ZXMoKSwKCSAgczogZGF0ZS5nZXRTZWNvbmRzKCksCgkgIG1zOiBkYXRlLmdldE1pbGxpc2Vjb25kcygpCgl9OwoKCU9iamVjdC5rZXlzKHRpbWUpLm1hcChmdW5jdGlvbihtb21lbnQsIGluZGV4KSB7CgkJaWYgKG1vbWVudCA9PSAnbXMnKSB7CgkJCWlmICh0aW1lW21vbWVudF0gPCAxMCkgewoJCQkJdGltZVttb21lbnRdID0gdGltZVttb21lbnRdKycwMCc7CgkJCX0gZWxzZSBpZiAodGltZVttb21lbnRdIDwgMTAwKSB7CgkJCQl0aW1lW21vbWVudF0gPSB0aW1lW21vbWVudF0rJzAnOwoJCQl9CgkJfSBlbHNlIGlmICh0aW1lW21vbWVudF0gPCAxMCkgewoJCQl0aW1lW21vbWVudF0gPSAnMCcgKyB0aW1lW21vbWVudF07CgkJfQoJfSk7CgoJdmFyIHN0ciA9IHkgKyAnLycgKyBtbyArICcvJyArIGQgKyAnICcgKyB0aW1lLmggKyAnOicgKyB0aW1lLm1pICsgJzonICsgdGltZS5zICsgJy4nICsgdGltZS5tczsKCWlmIChUU19sYXN0X2xvZ19kYXRlKSB7CgkJdmFyIGRpZmYgPSBkYXRlLVRTX2xhc3RfbG9nX2RhdGU7CgkJLy9zdHIrPSAnICgnK2RpZmYrJ21zKSc7Cgl9CglUU19sYXN0X2xvZ19kYXRlID0gZGF0ZTsKCXJldHVybiBzdHIrJyAnOwp9Cgp2YXIgcGFyc2VEZWVwTGlua1JlcXVlc3QgPSBmdW5jdGlvbihjb2RlKSB7Cgl2YXIgbSA9IGNvZGUubWF0Y2goLyJpZCI6IihbQ0RHXVtBLVowLTldezh9KSIvKTsKCXZhciBpZCA9IG0gPyBtWzFdIDogbnVsbDsKCgltID0gY29kZS5tYXRjaCgvInRlYW0iOiIoVFtBLVowLTldezh9KSIvKTsKCXZhciB0ZWFtID0gbSA/IG1bMV0gOiBudWxsOwoKCW0gPSBjb2RlLm1hdGNoKC8ibWVzc2FnZSI6IihbMC05XStcLlswLTldKykiLyk7Cgl2YXIgbWVzc2FnZSA9IG0gPyBtWzFdIDogbnVsbDsKCglyZXR1cm4geyBpZDogaWQsIHRlYW06IHRlYW0sIG1lc3NhZ2U6IG1lc3NhZ2UgfTsKfQoKaWYgKCdyZW5kZXJlckV2YWxBc3luYycgaW4gd2luZG93KSB7Cgl2YXIgb3JpZ1JlbmRlcmVyRXZhbEFzeW5jID0gd2luZG93LnJlbmRlcmVyRXZhbEFzeW5jOwoJd2luZG93LnJlbmRlcmVyRXZhbEFzeW5jID0gZnVuY3Rpb24oYmxvYikgewoJCXRyeSB7CgkJCXZhciBkYXRhID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoYXRvYihibG9iKSkpOwoJCQlpZiAoZGF0YS5jb2RlLm1hdGNoKC9oYW5kbGVEZWVwTGluay8pKSB7CgkJCQl2YXIgcmVxdWVzdCA9IHBhcnNlRGVlcExpbmtSZXF1ZXN0KGRhdGEuY29kZSk7CgkJCQlpZiAoIXJlcXVlc3QuaWQgfHwgIXJlcXVlc3QudGVhbSB8fCAhcmVxdWVzdC5tZXNzYWdlKSByZXR1cm47CgoJCQkJcmVxdWVzdC5jbWQgPSAnY2hhbm5lbCc7CgkJCQlUU1NTQi5oYW5kbGVEZWVwTGlua1dpdGhBcmdzKEpTT04uc3RyaW5naWZ5KHJlcXVlc3QpKTsKCQkJCXJldHVybjsKCQkJfSBlbHNlIHsKCQkJCW9yaWdSZW5kZXJlckV2YWxBc3luYyhibG9iKTsKCQkJfQoJCX0gY2F0Y2ggKGUpIHsKCQl9Cgl9Cn08L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIFRTU1NCID0gewoJY2FsbDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQp9Ozwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3JvbGx1cC1jb3JlX3JlcXVpcmVkX2xpYnMuNGE4MTZhOGVkMzQ0NjcyZjQ0MzYubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvbW9kZXJuLnZlbmRvci5jZTNhMWQ4NTY5ZjczMjFhOWQ5MC5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9hcHBsaWNhdGlvbi5jMDcwZjExNDUwYjg1Njk5Y2NkMC5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtY29yZV9yZXF1aXJlZF90cy5hOTcwNjYzYTY2ZTI2MzY1OWJhMi5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtY29yZV93ZWIuMTg5Y2YyOTY0NzQ1YmExNjQ0MWEubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvcm9sbHVwLWFwaV9kb2NzLmMwMzIxZmM4N2NkMmE1NmRjNDVjLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3JvbGx1cC1zZWNvbmRhcnlfYV9yZXF1aXJlZC44N2M3OGM1NjZmZjJmMmQ0OTM1Ny5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtc2Vjb25kYXJ5X2JfcmVxdWlyZWQuODEzYWE1NzYzYTVjYjA1ZGUwMjMubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvZm9vdGVyLmQwYzNkMjkxY2FjN2RlMWVlNzMxLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxzY3JpcHQ+CQkJd2luZG93LmJvb3RfZGF0YSA9IHdpbmRvdy5ib290X2RhdGEgfHwge307CgkJCWJvb3RfZGF0YS5ub19sb2dpbiA9IHRydWU7CgkJCWJvb3RfZGF0YS5hcHAgPSAnYXBpJzsKCQkJYm9vdF9kYXRhLmFwaV91cmwgPSAnL2FwaS8nOwoJCQlib290X2RhdGEuYXBwX2lkID0gIiI7CgkJCWJvb3RfZGF0YS5hcHBfbmFtZSA9ICIiOwoJCQlib290X2RhdGEubnVtX3RlYW1zID0gMDsKCQkJYm9vdF9kYXRhLnJlc2VydmVkX2NvbW1hbmRzID0gW107CgkJCWJvb3RfZGF0YS5udW1fY29tbWFuZHMgPSAwOwoJCQlib290X2RhdGEuc3Vkb191cmwgPSAiIjsKCQkJYm9vdF9kYXRhLmFwaV90b2tlbiA9ICIiOwoJCQlUUy5ib290KGJvb3RfZGF0YSk7PC9zY3JpcHQ+PHNjcmlwdD4KdmFyIGFwaV91cmwgPSAiaHR0cHM6XC9cL3NsYWNrLmNvbVwvYXBpXC9jaGF0LnBvc3RNZXNzYWdlIjsKdmFyIGFwaV90b2tlbnMgPSB7fTsKdmFyIGFwaV9hcmdzID0geyJ0b2tlbiI6eyJ0eXBlIjoidG9rZW4iLCJvcHRpb25hbCI6ZmFsc2UsImV4YW1wbGUiOiJ4eHh4LXh4eHh4eHh4eC14eHh4IiwiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VBdXRoZW50aWNhdGlvbiB0b2tlbiBiZWFyaW5nIHJlcXVpcmVkIHNjb3Blcy5cdTAwM0NcL3BcdTAwM0VcbiIsInVpZCI6MX0sImNoYW5uZWwiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VDaGFubmVsLCBwcml2YXRlIGdyb3VwLCBvciBJTSBjaGFubmVsIHRvIHNlbmQgbWVzc2FnZSB0by4gQ2FuIGJlIGFuIGVuY29kZWQgSUQsIG9yIGEgbmFtZS4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNjaGFubmVsc1wiXHUwMDNFYmVsb3dcdTAwM0NcL2FcdTAwM0UgZm9yIG1vcmUgZGV0YWlscy5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJjaGFubmVsIiwibG9nZ2VkIjpmYWxzZSwiaXNfcmVzb3VyY2UiOnRydWUsInN1YnR5cGUiOiJjaGFubmVsIiwiZXhhbXBsZSI6IkMxMjM0NTY3ODkwIiwidWlkIjoyfSwidGV4dCI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVRleHQgb2YgdGhlIG1lc3NhZ2UgdG8gc2VuZC4gU2VlIGJlbG93IGZvciBhbiBleHBsYW5hdGlvbiBvZiBcdTAwM0NhIGhyZWY9XCIjZm9ybWF0dGluZ1wiXHUwMDNFZm9ybWF0dGluZ1x1MDAzQ1wvYVx1MDAzRS4gVGhpcyBmaWVsZCBpcyB1c3VhbGx5IHJlcXVpcmVkLCB1bmxlc3MgeW91J3JlIHByb3ZpZGluZyBvbmx5IFx1MDAzQ2NvZGVcdTAwM0VhdHRhY2htZW50c1x1MDAzQ1wvY29kZVx1MDAzRSBpbnN0ZWFkLiBQcm92aWRlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycyBvciBcdTAwM0NhIGhyZWY9XCJcL2NoYW5nZWxvZ1wvMjAxOC0wNC10cnVuY2F0aW5nLXJlYWxseS1sb25nLW1lc3NhZ2VzXCJcdTAwM0VyaXNrIHRydW5jYXRpb25cdTAwM0NcL2FcdTAwM0UuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoic3RyaW5nIiwiZXhhbXBsZSI6IkhlbGxvIHdvcmxkIiwic3VidHlwZSI6InN0cmluZyIsInVpZCI6M30sImFzX3VzZXIiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VQYXNzIHRydWUgdG8gcG9zdCB0aGUgbWVzc2FnZSBhcyB0aGUgYXV0aGVkIHVzZXIsIGluc3RlYWQgb2YgYXMgYSBib3QuIERlZmF1bHRzIHRvIGZhbHNlLiBTZWUgXHUwMDNDYSBocmVmPVwiI2F1dGhvcnNoaXBcIlx1MDAzRWF1dGhvcnNoaXBcdTAwM0NcL2FcdTAwM0UgYmVsb3cuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoiYm9vbGVhbiIsImV4YW1wbGUiOiJ0cnVlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjExfSwiYXR0YWNobWVudHMiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VBIEpTT04tYmFzZWQgYXJyYXkgb2Ygc3RydWN0dXJlZCBhdHRhY2htZW50cywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLlx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6ImF0dGFjaG1lbnRzIiwiZXhhbXBsZSI6Ilt7XCJwcmV0ZXh0XCI6IFwicHJlLWhlbGxvXCIsIFwidGV4dFwiOiBcInRleHQtd29ybGRcIn1dIiwib3B0aW9uYWwiOnRydWUsInN1YnR5cGUiOiJhdHRhY2htZW50cyIsInVpZCI6N30sImJsb2NrcyI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRUEgSlNPTi1iYXNlZCBhcnJheSBvZiBzdHJ1Y3R1cmVkIGJsb2NrcywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLlx1MDAzQ1wvcFx1MDAzRVxuIiwiZXhhbXBsZSI6Ilt7XCJ0eXBlXCI6IFwic2VjdGlvblwiLCBcInRleHRcIjoge1widHlwZVwiOiBcInBsYWluX3RleHRcIiwgXCJ0ZXh0XCI6IFwiSGVsbG8gd29ybGRcIn19XSIsIm9wdGlvbmFsIjp0cnVlLCJ1aWQiOjR9LCJpY29uX2Vtb2ppIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFRW1vamkgdG8gdXNlIGFzIHRoZSBpY29uIGZvciB0aGlzIG1lc3NhZ2UuIE92ZXJyaWRlcyBcdTAwM0Njb2RlXHUwMDNFaWNvbl91cmxcdTAwM0NcL2NvZGVcdTAwM0UuIE11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIFx1MDAzQ2NvZGVcdTAwM0Vhc191c2VyXHUwMDNDXC9jb2RlXHUwMDNFIHNldCB0byBcdTAwM0Njb2RlXHUwMDNFZmFsc2VcdTAwM0NcL2NvZGVcdTAwM0UsIG90aGVyd2lzZSBpZ25vcmVkLiBTZWUgXHUwMDNDYSBocmVmPVwiI2F1dGhvcnNoaXBcIlx1MDAzRWF1dGhvcnNoaXBcdTAwM0NcL2FcdTAwM0UgYmVsb3cuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoic3RyaW5nIiwiZXhhbXBsZSI6IjpjaGFydF93aXRoX3Vwd2FyZHNfdHJlbmQ6IiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InN0cmluZyIsInVpZCI6MTN9LCJpY29uX3VybCI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVVSTCB0byBhbiBpbWFnZSB0byB1c2UgYXMgdGhlIGljb24gZm9yIHRoaXMgbWVzc2FnZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRWFzX3VzZXJcdTAwM0NcL2NvZGVcdTAwM0Ugc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNhdXRob3JzaGlwXCJcdTAwM0VhdXRob3JzaGlwXHUwMDNDXC9hXHUwMDNFIGJlbG93Llx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InVybCIsImV4YW1wbGUiOiJodHRwOlwvXC9sb3JlbXBpeGVsLmNvbVwvNDhcLzQ4IiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InVybCIsInVpZCI6MTJ9LCJsaW5rX25hbWVzIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFRmluZCBhbmQgbGluayBjaGFubmVsIG5hbWVzIGFuZCB1c2VybmFtZXMuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoiYm9vbGVhbiIsImV4YW1wbGUiOiJ0cnVlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjZ9LCJtcmtkd24iOnsiZGVmYXVsdCI6InRydWUiLCJkZXNjIjoiXHUwMDNDcFx1MDAzRURpc2FibGUgU2xhY2sgbWFya3VwIHBhcnNpbmcgYnkgc2V0dGluZyB0byBcdTAwM0Njb2RlXHUwMDNFZmFsc2VcdTAwM0NcL2NvZGVcdTAwM0UuIEVuYWJsZWQgYnkgZGVmYXVsdC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6ImZhbHNlIiwiaGlkZGVuIjpmYWxzZSwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjE2fSwicGFyc2UiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VDaGFuZ2UgaG93IG1lc3NhZ2VzIGFyZSB0cmVhdGVkLiBEZWZhdWx0cyB0byBcdTAwM0Njb2RlXHUwMDNFbm9uZVx1MDAzQ1wvY29kZVx1MDAzRS4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNmb3JtYXR0aW5nXCJcdTAwM0ViZWxvd1x1MDAzQ1wvYVx1MDAzRS5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJlbnVtIiwiZXhhbXBsZSI6ImZ1bGwiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJ2YWx1ZXMiOlsibm9uZSIsImZ1bGwiXSwic3VidHlwZSI6ImVudW0iLCJ1aWQiOjV9LCJyZXBseV9icm9hZGNhc3QiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRXRocmVhZF90c1x1MDAzQ1wvY29kZVx1MDAzRSBhbmQgaW5kaWNhdGVzIHdoZXRoZXIgcmVwbHkgc2hvdWxkIGJlIG1hZGUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCBvciBjb252ZXJzYXRpb24uIERlZmF1bHRzIHRvIFx1MDAzQ2NvZGVcdTAwM0VmYWxzZVx1MDAzQ1wvY29kZVx1MDAzRS5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6InRydWUiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJzdWJ0eXBlIjoiYm9vbGVhbiIsInVpZCI6MTV9LCJ0aHJlYWRfdHMiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VQcm92aWRlIGFub3RoZXIgbWVzc2FnZSdzIFx1MDAzQ2NvZGVcdTAwM0V0c1x1MDAzQ1wvY29kZVx1MDAzRSB2YWx1ZSB0byBtYWtlIHRoaXMgbWVzc2FnZSBhIHJlcGx5LiBBdm9pZCB1c2luZyBhIHJlcGx5J3MgXHUwMDNDY29kZVx1MDAzRXRzXHUwMDNDXC9jb2RlXHUwMDNFIHZhbHVlOyB1c2UgaXRzIHBhcmVudCBpbnN0ZWFkLlx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InRpbWVzdGFtcCIsImhpZGRlbiI6ZmFsc2UsImxvZ2dlZCI6dHJ1ZSwib3B0aW9uYWwiOnRydWUsInN1YnR5cGUiOiJ0aW1lc3RhbXAiLCJleGFtcGxlIjoiMTIzNDU2Nzg5MC4xMjM0NTYiLCJ1aWQiOjE0fSwidW5mdXJsX2xpbmtzIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFUGFzcyB0cnVlIHRvIGVuYWJsZSB1bmZ1cmxpbmcgb2YgcHJpbWFyaWx5IHRleHQtYmFzZWQgY29udGVudC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6InRydWUiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJzdWJ0eXBlIjoiYm9vbGVhbiIsInVpZCI6OH0sInVuZnVybF9tZWRpYSI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVBhc3MgZmFsc2UgdG8gZGlzYWJsZSB1bmZ1cmxpbmcgb2YgbWVkaWEgY29udGVudC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6ImZhbHNlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjl9LCJ1c2VybmFtZSI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVNldCB5b3VyIGJvdCdzIHVzZXIgbmFtZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRWFzX3VzZXJcdTAwM0NcL2NvZGVcdTAwM0Ugc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNhdXRob3JzaGlwXCJcdTAwM0VhdXRob3JzaGlwXHUwMDNDXC9hXHUwMDNFIGJlbG93Llx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InVzZXJfbmFtZSIsImV4YW1wbGUiOiJNeSBCb3QiLCJsb2dnZWQiOmZhbHNlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InVzZXJfbmFtZSIsInVpZCI6MTB9fTsKCiB2YXIgZ2V0X2FwaV91cmwgPSBmdW5jdGlvbihiaXRzKSB7IHJldHVybiBhcGlfdXJsICsgJz8nICsgYml0cy5qb2luKCcmJyk7IH07IAoKJChmdW5jdGlvbigpewoKCSQoJyNhcGlfbWV0aG9kJykuY2hhbmdlKGZ1bmN0aW9uKCl7CgkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL21ldGhvZHMvJyskKHRoaXMpLnZhbCgpOwoJfSk7CgoJJCgnI2FwaS10b2tlbicpLmNoYW5nZShmdW5jdGlvbigpewoJCXZhciB0ZWFtX2lkID0gJCh0aGlzKS52YWwoKTsKCQl2YXIgdG9rZW4gPSBudWxsOwoKCQlmb3IgKHZhciBpPTA7IGk8YXBpX3Rva2Vucy5sZW5ndGg7IGkrKyl7CgkJCWlmIChhcGlfdG9rZW5zW2ldLnRlYW1faWQgPT0gdGVhbV9pZCl7CgkJCQl0b2tlbiA9IGFwaV90b2tlbnNbaV07CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJZm9yICh2YXIgaSBpbiBhcGlfYXJncyl7CgkJCXZhciBhcmcgPSBhcGlfYXJnc1tpXSB8fCB7fTsKCQkJdmFyIGRlZl9sYWJlbCA9ICcnOwoJCQl2YXIgZGVmX3ZhbHVlID0gJyc7CgoJCQlpZiAodG9rZW4gJiYgdG9rZW4udG9rZW4pewoJCQkJaWYgKGFyZy5zdWJ0eXBlID09ICdjaGFubmVsJyl7CgkJCQkJZGVmX2xhYmVsID0gdG9rZW4uY2hhbm5lbF9uYW1lOwoJCQkJCWRlZl92YWx1ZSA9IHRva2VuLmNoYW5uZWxfaWQ7CgkJCQl9CgkJCQlpZiAoYXJnLnN1YnR5cGUgPT0gJ3VzZXInKXsKCQkJCQlkZWZfbGFiZWwgPSAnQCcrdG9rZW4udXNlcl9uYW1lOwoJCQkJCWRlZl92YWx1ZSA9IHRva2VuLnVzZXJfaWQ7CgkJCQl9CgkJCX0KCgkJCSQoJyNhcGktYXJnLWV4dHJhcy0nK2FyZy51aWQpLnRleHQoJycpOwoKCQkJaWYgKGRlZl9sYWJlbCl7CgkJCQkkKCcjYXBpLWFyZy1leHRyYXMtJythcmcudWlkKS5hcHBlbmQoJCgnPGE+JykudGV4dChkZWZfbGFiZWwpLmNsaWNrKChmdW5jdGlvbigpewoKCQkJCQl2YXIgdmFsID0gZGVmX3ZhbHVlOwoJCQkJCXZhciB1aWQgPSBhcmcudWlkOwoKCQkJCQlyZXR1cm4gZnVuY3Rpb24oKXsKCgkJCQkJCSQoJyNhcGktYXJnLScrdWlkKS52YWwodmFsKTsKCQkJCQl9OwoJCQkJfSkoKSkpOwoJCQl9CgkJfQoJfSkuY2hhbmdlKCk7CgoJJCgnI2FwaS10ZXN0LWZvcm0nKS5zdWJtaXQoZnVuY3Rpb24oKXsKCgkJdmFyIGJpdHMgPSBbXTsKCQl2YXIgZmlsZSA9IG51bGw7CgkJdmFyIGNvbnRlbnQgPSBudWxsOwoKCQlmb3IgKHZhciBpIGluIGFwaV9hcmdzKXsKCQkJdmFyIGFyZyA9IGFwaV9hcmdzW2ldIHx8IHt9OwoJCQl2YXIgdmFsID0gJCgnI2FwaS1hcmctJythcmcudWlkKS52YWwoKTsKCgkJCWlmIChpID09ICd0b2tlbicpIHsKCQkJCXZhciB2ID0gJCgnI2FwaS10b2tlbicpLnZhbCgpOwoJCQkJdmFyIGJlYXJlcl90b2tlbiA9ICQoJyNhcGktYXJnLXRva2VuJykudmFsKCk7CgoJCQkJdmFsID0gJyc7CgoJCQkJaWYgKGJlYXJlcl90b2tlbiAhPT0gJycpewoJCQkJCXZhbCA9IGJlYXJlcl90b2tlbjsKCQkJCX1lbHNlewoJCQkJCWZvciAodmFyIGo9MDsgajxhcGlfdG9rZW5zLmxlbmd0aDsgaisrKXsKCQkJCQkJaWYgKGFwaV90b2tlbnNbal0udGVhbV9pZCA9PSB2KXsKCQkJCQkJCXZhbCA9IGFwaV90b2tlbnNbal0udG9rZW47CgkJCQkJCQlicmVhazsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAodiA9PSAnaW52YWxpZCcpIHZhbCA9ICdpbnZhbGlkJzsKCQkJfSBlbHNlIGlmIChhcmcuc3VidHlwZSA9PSAncG9zdF9maWxlJykgewoJCQkJZmlsZSA9ICQoJ2lucHV0OmZpbGUnKVswXS5maWxlc1swXTsKCQkJCXZhbCA9IG51bGw7CgkJCX0gZWxzZSBpZiAoaSA9PSAnY29udGVudCcpIHsKCQkJCWNvbnRlbnQgPSB2YWw7CgkJCX0KCgkJCWlmICh2YWwgJiYgdmFsLmxlbmd0aCl7CgkJCQliaXRzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGkpKyc9JytlbmNvZGVVUklDb21wb25lbnQodmFsKSk7CgkJCX0KCQl9CgoJCXZhciBleHRyYSA9ICQoJyNhcGktYXJnLWV4dHJhJykudmFsKCk7CgkJaWYgKGV4dHJhICYmIGV4dHJhLmxlbmd0aCkgYml0cy5wdXNoKGV4dHJhKTsKCgkJYml0cy5wdXNoKCdwcmV0dHk9MScpOwoKCQl2YXIgdXJsID0gZ2V0X2FwaV91cmwoYml0cyk7CgoJCSQoJyNwcmV2aWV3LXVybCBjb2RlJykudGV4dCh1cmwpOwoJCSQoJyNwcmV2aWV3LXVybCBhJykuYXR0cignaHJlZicsIHVybCk7CgkJJCgnI3ByZXZpZXctdXJsJykuc2hvdygpOwoKCQlpZiAoJCh0aGlzKS5hdHRyKCdtZXRob2QnKSA9PT0gJ1BPU1QnKSB7CgkJCXZhciBmb3JtX2RhdGEgPSBuZXcgRm9ybURhdGEoKTsKCQkJaWYgKGZpbGUpIHsKCQkJCWlmIChhcGlfYXJnc1snaW1hZ2UnXSkgewoJCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2ltYWdlJywgZmlsZSk7CgkJCQl9IGVsc2UgewoJCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBjb250ZW50KTsKCQkJfQoKCQkJJC5hamF4KHsKCQkJCXVybDogdXJsLAoJCQkJbWV0aG9kOiAnUE9TVCcsCgkJCQljb250ZW50VHlwZTogZmFsc2UsCgkJCQlwcm9jZXNzRGF0YTogZmFsc2UsCgkJCQljYWNoZTogZmFsc2UsCgkJCQlkYXRhOiBmb3JtX2RhdGEsCgkJCX0pLmRvbmUoZnVuY3Rpb24oZGF0YSkgewoJCQkJLy8gTGFzdCB2YXIgdG8gc3RyaW5naWZ5IHNpbXVsYXRlcyBwcmV0dHkgcHJpbnQgYnkgdGFiYmluZyBvdmVyIDQgc3BhY2VzCgkJCQl2YXIgaHRtbF9zdHJpbmcgPQoJCQkJCSc8cHJlIHN0eWxlLSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOnByZS13cmFwIj4nICsKCQkJCQkJXy5lc2NhcGUoSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgNCkpICsKCQkJCQknPC9wcmU+JwoJCQkJOwoJCQkJJCgnI2FwaS1wcmV2aWV3LWZyYW1lJykuYXR0cignc3JjZG9jJywgaHRtbF9zdHJpbmcpLnNob3coKTsKCQkJfSk7CgkJfSBlbHNlIHsKCQkJLy8gSWYgdGhlIG1ldGhvZCBpcyAnR0VUJyB0aGlzIHdpbGwgZGVmYXVsdCB0byByZWZyZXNoaW5nIGFuIGlmcmFtZSwgd2hpY2ggc2VuZHMKCQkJLy8gdGhlIHJlcXVlc3QgdG8gdGhlIGNvbnN0cnVjdGVkIHVybCBhbmQgZGlzcGxheXMgdGhlIHJlc3BvbnNlIGRhdGEKCQkJJCgnI2FwaS1wcmV2aWV3LWZyYW1lJykuYXR0cignc3JjJywgdXJsKS5zaG93KCk7CgkJfQoKCQlyZXR1cm4gZmFsc2U7Cgl9KTsKfSk7Cjwvc2NyaXB0PjxzY3JpcHQ+CQlobGpzLmNvbmZpZ3VyZSh7bGFuZ3VhZ2VzOiBbJ2pzb24nLCAnYmFzaCcsICdqYXZhc2NyaXB0JywgJ2h0dHAnXX0pOwoJCWhsanMuaW5pdEhpZ2hsaWdodGluZ09uTG9hZCgpOzwvc2NyaXB0PgoKPCEtLSBzbGFjay13d3ctaGh2bS1tYWluLWlhZC13aTh5LyAyMDE5LTA5LTEyIDE0OjEwOjI4LyB2MDcyODAwMDdlNDE3OGZlNmJjODcwNGEyNjk1MjNkOGMxMWExNTBmYS8gQjpIIC0tPgoKPC9ib2R5PjwvaHRtbD4= + http_version: + recorded_at: Thu, 12 Sep 2019 21:10:29 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage + body: + encoding: UTF-8 + string: token=&text=hello&channel=CMURJLBUK + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 21:17:11 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 5caebf9e-23ae-4355-bac0-290b2a19d61b + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - chat:write:bot + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-w4yr + X-Cache: + - Miss from cloudfront + Via: + - 1.1 d90109c5a0c30f43223e0db85921c5c2.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - tiQwf4feBYtDg2wE211oM2ymRp4eOLopvaKgWMvJHjm3LVm5sHeHmQ== + body: + encoding: UTF-8 + string: '{"ok":true,"channel":"CMURJLBUK","ts":"1568323031.000100","message":{"type":"message","subtype":"bot_message","text":"hello","ts":"1568323031.000100","username":"Branches + - Mira - API project","bot_id":"BN5RNCZ0C"}}' + http_version: + recorded_at: Thu, 12 Sep 2019 21:17:11 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/send_message_user.yml b/test/cassettes/send_message_user.yml new file mode 100644 index 00000000..2ab7baf4 --- /dev/null +++ b/test/cassettes/send_message_user.yml @@ -0,0 +1,126 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.slack.com/methods/chat.postMessage + body: + encoding: UTF-8 + string: token=&text=hello&channel=USLACKBOT + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/html; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 21:10:29 GMT + Server: + - Apache + X-Xss-Protection: + - '0' + Vary: + - Accept-Encoding + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Set-Cookie: + - b=c3iavsal23hwcx7c67g8z01ev; expires=Wed, 12-Sep-2029 21:10:29 GMT; Max-Age=315619200; + path=/; domain=.slack.com + - x=c3iavsal23hwcx7c67g8z01ev.1568322629; expires=Thu, 12-Sep-2019 21:25:29 + GMT; Max-Age=900; path=/; domain=.slack.com + X-Frame-Options: + - SAMEORIGIN + X-Via: + - haproxy-www-7kxn + X-Cache: + - Miss from cloudfront + Via: + - 1.1 995664ee945c06fc706b5cb8e0e650dc.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - j3jsXjxuG4KBE5FWjtv2fxH8-YxUI5q6RjZiBxTxmVDV9I08NxrTYQ== + body: + encoding: ASCII-8BIT + string: !binary |- + PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4tVVMiIGNsYXNzPSIiPjxoZWFkPjxzY3JpcHQ+d2luZG93LnRzX2VuZHBvaW50X3VybCA9ICJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL3RpbWluZyI7KGZ1bmN0aW9uKGUpIHsKCXZhciBuPURhdGUubm93P0RhdGUubm93KCk6K25ldyBEYXRlLHI9ZS5wZXJmb3JtYW5jZXx8e30sdD1bXSxhPXt9LGk9ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHI9MCxhPXQubGVuZ3RoLGk9W107YT5yO3IrKyl0W3JdW2VdPT1uJiZpLnB1c2godFtyXSk7cmV0dXJuIGl9LG89ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIsYT10Lmxlbmd0aDthLS07KXI9dFthXSxyLmVudHJ5VHlwZSE9ZXx8dm9pZCAwIT09biYmci5uYW1lIT1ufHx0LnNwbGljZShhLDEpfTtyLm5vd3x8KHIubm93PXIud2Via2l0Tm93fHxyLm1vek5vd3x8ci5tc05vd3x8ZnVuY3Rpb24oKXtyZXR1cm4oRGF0ZS5ub3c/RGF0ZS5ub3coKTorbmV3IERhdGUpLW59KSxyLm1hcmt8fChyLm1hcms9ci53ZWJraXRNYXJrfHxmdW5jdGlvbihlKXt2YXIgbj17bmFtZTplLGVudHJ5VHlwZToibWFyayIsc3RhcnRUaW1lOnIubm93KCksZHVyYXRpb246MH07dC5wdXNoKG4pLGFbZV09bn0pLHIubWVhc3VyZXx8KHIubWVhc3VyZT1yLndlYmtpdE1lYXN1cmV8fGZ1bmN0aW9uKGUsbixyKXtuPWFbbl0uc3RhcnRUaW1lLHI9YVtyXS5zdGFydFRpbWUsdC5wdXNoKHtuYW1lOmUsZW50cnlUeXBlOiJtZWFzdXJlIixzdGFydFRpbWU6bixkdXJhdGlvbjpyLW59KX0pLHIuZ2V0RW50cmllc0J5VHlwZXx8KHIuZ2V0RW50cmllc0J5VHlwZT1yLndlYmtpdEdldEVudHJpZXNCeVR5cGV8fGZ1bmN0aW9uKGUpe3JldHVybiBpKCJlbnRyeVR5cGUiLGUpfSksci5nZXRFbnRyaWVzQnlOYW1lfHwoci5nZXRFbnRyaWVzQnlOYW1lPXIud2Via2l0R2V0RW50cmllc0J5TmFtZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGkoIm5hbWUiLGUpfSksci5jbGVhck1hcmtzfHwoci5jbGVhck1hcmtzPXIud2Via2l0Q2xlYXJNYXJrc3x8ZnVuY3Rpb24oZSl7bygibWFyayIsZSl9KSxyLmNsZWFyTWVhc3VyZXN8fChyLmNsZWFyTWVhc3VyZXM9ci53ZWJraXRDbGVhck1lYXN1cmVzfHxmdW5jdGlvbihlKXtvKCJtZWFzdXJlIixlKX0pLGUucGVyZm9ybWFuY2U9ciwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiYoZGVmaW5lLmFtZHx8ZGVmaW5lLmFqcykmJmRlZmluZSgicGVyZm9ybWFuY2UiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lCn0pKHdpbmRvdyk7PC9zY3JpcHQ+PHNjcmlwdD4KCihmdW5jdGlvbigpIHsKCQoJd2luZG93LlRTTWFyayA9IGZ1bmN0aW9uKG1hcmtfbGFiZWwpIHsKCQlpZiAoIXdpbmRvdy5wZXJmb3JtYW5jZSB8fCAhd2luZG93LnBlcmZvcm1hbmNlLm1hcmspIHJldHVybjsKCQlwZXJmb3JtYW5jZS5tYXJrKG1hcmtfbGFiZWwpOwoJfTsKCXdpbmRvdy5UU01hcmsoJ3N0YXJ0X2xvYWQnKTsKCgkKCXdpbmRvdy5UU01lYXN1cmVBbmRCZWFjb24gPSBmdW5jdGlvbihtZWFzdXJlX2xhYmVsLCBzdGFydF9tYXJrX2xhYmVsKSB7CgkJaWYgKCF3aW5kb3cucGVyZm9ybWFuY2UgfHwgIXdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrIHx8ICF3aW5kb3cucGVyZm9ybWFuY2UubWVhc3VyZSkgewoJCQlyZXR1cm47CgkJfQoKCQlwZXJmb3JtYW5jZS5tYXJrKHN0YXJ0X21hcmtfbGFiZWwgKyAnX2VuZCcpOwoKCQl0cnkgewoJCQlwZXJmb3JtYW5jZS5tZWFzdXJlKG1lYXN1cmVfbGFiZWwsIHN0YXJ0X21hcmtfbGFiZWwsIHN0YXJ0X21hcmtfbGFiZWwgKyAnX2VuZCcpOwoJCQl3aW5kb3cuVFNCZWFjb24obWVhc3VyZV9sYWJlbCwgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShtZWFzdXJlX2xhYmVsKVswXS5kdXJhdGlvbik7CgkJfSBjYXRjaCAoZSkgewoJCQkKCQl9Cgl9OwoKCQoJaWYgKCdzZW5kQmVhY29uJyBpbiBuYXZpZ2F0b3IpIHsKCQl3aW5kb3cuVFNCZWFjb24gPSBmdW5jdGlvbihsYWJlbCwgdmFsdWUpIHsKCQkJdmFyIGVuZHBvaW50X3VybCA9IHdpbmRvdy50c19lbmRwb2ludF91cmwgfHwgJ2h0dHBzOi8vc2xhY2suY29tL2JlYWNvbi90aW1pbmcnOwoJCQluYXZpZ2F0b3Iuc2VuZEJlYWNvbigKCQkJCWVuZHBvaW50X3VybCArICc/ZGF0YT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGxhYmVsICsgJzonICsgdmFsdWUpLAoJCQkJJycKCQkJKTsKCQl9OwoJfSBlbHNlIHsKCQl3aW5kb3cuVFNCZWFjb24gPSBmdW5jdGlvbihsYWJlbCwgdmFsdWUpIHsKCQkJdmFyIGVuZHBvaW50X3VybCA9IHdpbmRvdy50c19lbmRwb2ludF91cmwgfHwgJ2h0dHBzOi8vc2xhY2suY29tL2JlYWNvbi90aW1pbmcnOwoJCQluZXcgSW1hZ2UoKS5zcmMgPSBlbmRwb2ludF91cmwgKyAnP2RhdGE9JyArIGVuY29kZVVSSUNvbXBvbmVudChsYWJlbCArICc6JyArIHZhbHVlKTsKCQl9OwoJfQp9KSgpOwo8L3NjcmlwdD48c2NyaXB0PndpbmRvdy5UU01hcmsoJ3N0ZXBfbG9hZCcpOzwvc2NyaXB0Pjxub3NjcmlwdD48bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwOyBVUkw9L21ldGhvZHMvY2hhdC5wb3N0TWVzc2FnZT9ub2pzbW9kZT0xIj48L25vc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgc2FmZV9ob3N0cyA9IFsnYXBwLm9wdGltaXplbHkuY29tJ107CgppZiAoc2VsZiAhPT0gdG9wICYmIHNhZmVfaG9zdHMuaW5kZXhPZih0b3AubG9jYXRpb24uaG9zdCkgPT09IC0xKSB7Cgl3aW5kb3cuZG9jdW1lbnQud3JpdGUoCgkJJ1x1MDAzQ3N0eWxlPmJvZHkgKiB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fVx1MDAzQy9zdHlsZT5cdTAwM0NhIGhyZWY9IiMiIG9uY2xpY2s9JyArCgkJCScidG9wLmxvY2F0aW9uLmhyZWY9d2luZG93LmxvY2F0aW9uLmhyZWYiIHN0eWxlPSJkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7cGFkZGluZzoxMHB4Ij5HbyB0byBTbGFjay5jb21cdTAwM0MvYT4nCgkpOwp9CgooZnVuY3Rpb24oKSB7Cgl2YXIgdGltZXI7CglpZiAoc2VsZiAhPT0gdG9wICYmIHNhZmVfaG9zdHMuaW5kZXhPZih0b3AubG9jYXRpb24uaG9zdCkgPT09IC0xKSB7CgkJdGltZXIgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CgkJCWlmICh3aW5kb3cpIHsKCQkJCXRyeSB7CgkJCQkJdmFyIHBhZ2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlJyk7CgkJCQkJdmFyIGNsaWVudEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsaWVudC11aScpOwoJCQkJCXZhciBzZWN0aW9uRWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbmF2LCBoZWFkZXIsIHNlY3Rpb24nKTsKCgkJCQkJcGFnZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGFnZUVsKTsKCQkJCQljbGllbnRFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNsaWVudEVsKTsKCQkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHNlY3Rpb25FbHMubGVuZ3RoOyBpKyspIHsKCQkJCQkJc2VjdGlvbkVsc1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNlY3Rpb25FbHNbaV0pOwoJCQkJCX0KCQkJCQl3aW5kb3cuVFMgPSBudWxsOwoJCQkJCXdpbmRvdy5URCA9IG51bGw7CgkJCQkJd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpOwoJCQkJfSBjYXRjaCAoZSkge30JCgkJCX0KCQl9LCAyMDApOwoJfQp9KSgpOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij50cnkgewoJaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICYmICF3aW5kb3cubG9jYXRpb24uaGFzaC5tYXRjaCgvXigjP1thLXpBLVowLTlfXSopJC8pKSB7CgkJd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnJzsKCX0KfSBjYXRjaCAoZSkge30KPC9zY3JpcHQ+PHRpdGxlPmNoYXQucG9zdE1lc3NhZ2UgbWV0aG9kIHwgU2xhY2s8L3RpdGxlPjxtZXRhIG5hbWU9IkhhbmRoZWxkRnJpZW5kbHkiIGNvbnRlbnQ9InRydWUiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj48bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IlNsYWNrIj48bGluayBocmVmPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vNGQ4MTQvc3R5bGUvcm9sbHVwLXNsYWNrX2tpdF9sZWdhY3lfYWRhcHRlcnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PGxpbmsgaHJlZj0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2Q1OGJlL3N0eWxlL3JvbGx1cC1hcGlfc2l0ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48bGluayBocmVmPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9tb2Rlcm4udmVuZG9yLmIzZWMwMDgubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjxsaW5rIGhyZWY9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9mMTk1YzMvc3R5bGUvcm9sbHVwLXNsYWNrX2tpdF9oZWxwZXJzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBpZD0ic2xhY2tfa2l0X2hlbHBlcnNfc3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS93ZWJwYWNrLm1hbmlmZXN0LjRjYmU0YzdmZGI0MGIzNjliZTliLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxsaW5rIGlkPSJmYXZpY29uIiByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS84MDU4OC9tYXJrZXRpbmcvaW1nL21ldGEvZmF2aWNvbi0zMi5wbmciIHNpemVzPSIxNngxNiAzMngzMiA0OHg0OCIgdHlwZT0iaW1hZ2UvcG5nIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOwp3aW5kb3cuZGF0YUxheWVyLnB1c2goewoJJ2d0bS5zdGFydCc6IERhdGUubm93KCksCgknZXZlbnQnIDogJ2d0bS5qcycsCgknc2VjdXJlX3BhZ2UnIDogZmFsc2UsCn0pOwp2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CnZhciB0aGlzU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CnRoaXNTY3JpcHQuYXN5bmMgPSB0cnVlOwp0aGlzU2NyaXB0LnNyYyA9ICcvL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9R1RNLUtIMkxQSyc7CmZpcnN0U2NyaXB0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXNTY3JpcHQsIGZpcnN0U2NyaXB0KTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oZSkgewoJdmFyIGd0bURhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107Cgl2YXIgZ3RtVGFncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJypbZGF0YS1ndG0tY2xpY2tdJyk7Cgl2YXIgZ3RtQ2xpY2tIYW5kbGVyID0gZnVuY3Rpb24oYykgewoJCXZhciBndG1fZXZlbnRzID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtZ3RtLWNsaWNrJyk7CgkJaWYgKCFndG1fZXZlbnRzKSByZXR1cm47CgkJdmFyIGd0bV9ldmVudHNfYXJyID0gZ3RtX2V2ZW50cy5zcGxpdCgiLCIpOwoJCWZvcih2YXIgZT0wOyBlIDwgZ3RtX2V2ZW50c19hcnIubGVuZ3RoOyBlKyspIHsKCQkJdmFyIGV2ID0gZ3RtX2V2ZW50c19hcnJbZV0udHJpbSgpOwoJCQlndG1EYXRhTGF5ZXIucHVzaCh7ICdldmVudCc6IGV2IH0pOwoJCX0KCX07Cglmb3IodmFyIGc9MDsgZyA8IGd0bVRhZ3MubGVuZ3RoOyBnKyspewoJCXZhciBlbGVtID0gZ3RtVGFnc1tnXTsKCQllbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZ3RtQ2xpY2tIYW5kbGVyKTsKCX0KfSk7Cjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKGZ1bmN0aW9uKGUsYyxiLGYsZCxnLGEpe2UuU2xhY2tCZWFjb25PYmplY3Q9ZDsKZVtkXT1lW2RdfHxmdW5jdGlvbigpeyhlW2RdLnE9ZVtkXS5xfHxbXSkucHVzaChbMSpuZXcgRGF0ZSgpLGFyZ3VtZW50c10pfTsKZVtkXS5sPTEqbmV3IERhdGUoKTtnPWMuY3JlYXRlRWxlbWVudChiKTthPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYilbMF07CmcuYXN5bmM9MTtnLnNyYz1mO2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxhKQp9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsImh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3NsYWNrX2JlYWNvbi41MjU2YzFmMjUyZjlhZTg4NTA3MS5taW4uanMiLCJzYiIpOwp3aW5kb3cuc2IoJ3NldCcsICd0b2tlbicsICczMzA3ZjQzNjk2M2UwMmQ0ZjllYjg1Y2U1MTU5NzQ0YycpOwp3aW5kb3cuc2IoJ3RyYWNrJywgJ3BhZ2V2aWV3Jyk7Cjwvc2NyaXB0PjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iUmVjZW50IGNoYW5nZXMgdG8gdGhlIFNsYWNrIHBsYXRmb3JtIFJTUyBGZWVkIiBocmVmPSIvY2hhbmdlbG9nLnJzcyI+PC9oZWFkPjxib2R5IGNsYXNzPSJhcGkgIGZlYXR1cmVfcmVsYXRlZF9jb250ZW50Ij48aGVhZGVyPjxhIGlkPSJtZW51X3RvZ2dsZSIgY2xhc3M9Im5vX3RyYW5zaXRpb24gc2hvd19vbl9tb2JpbGUiPjxzcGFuIGNsYXNzPSJtZW51X2ljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0idmVydF9kaXZpZGVyIj48L3NwYW4+PC9hPjxhIGhyZWY9Imh0dHBzOi8vYXBpLnNsYWNrLmNvbS8iIGlkPSJoZWFkZXJfbG9nbyIgY2xhc3M9ImFwaSI+PGltZyBhbHQ9IlNsYWNrIEFQSSIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vODA1ODgvaW1nL3NsYWNrX2FwaV9sb2dvX3ZvZ3VlLnBuZyI+PC9hPjxkaXYgY2xhc3M9ImhlYWRlcl9uYXYiPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3NpZ25pbiIgY2xhc3M9ImJ0biBoZWFkZXJfYnRuIGZsb2F0X3JpZ2h0IiBkYXRhLXFhPSJzaWduX2luIj5HbyB0byBTbGFjazwvYT48ZGl2IGNsYXNzPSJoZWFkZXJfbGlua3MgZmxvYXRfcmlnaHQiPjxhIGhyZWY9Ii8jcmVhZF90aGVfZG9jcyIgY2xhc3M9ImFjdGl2ZSIgZGF0YS1xYT0iZG9jdW1lbnRhdGlvbiI+RG9jdW1lbnRhdGlvbjwvYT4gPGEgaHJlZj0iL3R1dG9yaWFscyIgZGF0YS1xYT0idHV0b3JpYWxzIj5UdXRvcmlhbHM8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vQHNsYWNrYXBpIiB0YXJnZXQ9Im5ldyIgZGF0YS1xYT0idHdpdHRlciI+VHdpdHRlcjwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhbGVydF9wYWdlX3N0YWNrZWQiPjxkaXYgY2xhc3M9ImFsZXJ0X3BhZ2UgYWxlcnRfc3VjY2VzcyBoaWRkZW4gZmFkZSBhcGlfYWxlcnRfcGFnZSIgZGF0YS1qcz0iYXBpX2FsZXJ0X3BhZ2UiPjxpIGNsYXNzPSJ0c19pY29uIHRzX2ljb25fY2hlY2tfY2lyY2xlX28iPjwvaT5TdWNjZXNzITwvZGl2PjwvZGl2PjwvaGVhZGVyPjxkaXYgaWQ9InBhZ2UiIGNsYXNzPSJsYXlvdXRfdGhyZWVfY29sIj48ZGl2IGlkPSJwYWdlX2NvbnRlbnRzIiBjbGFzcz0iY2xlYXJmaXggIj48bmF2IGlkPSJhcGlfbmF2IiBjbGFzcz0iY29sIj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUgc2hvd19vbl9tb2JpbGUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+TXkgU2xhY2sgQVBJPC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gaXNfYWN0aXZlIiBocmVmPSIvI3JlYWRfdGhlX2RvY3MiPkRvY3VtZW50YXRpb248L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvYXBwcyI+WW91ciBBcHBzPC9hPjwvbGk+PC91bD48L2Rpdj48YSBuYW1lPSJyZWFkX3RoZV9kb2NzIj48L2E+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlN0YXJ0IGhlcmU8c3VwIGNsYXNzPSJzaWRlYmFyX25ld19pbmRpY2F0b3IiIHRpdGxlPSJBbiBpbnRyb2R1Y3Rpb24gdG8gU2xhY2sgYXBwcyI+bmV3PC9zdXA+PC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc3RhcnQvb3ZlcnZpZXciPkFuIGludHJvZHVjdGlvbiB0b8KgYXBwczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9zdGFydC9wbGFubmluZyI+UGxhbm5pbmcgeW91ciBhcHA8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc3RhcnQvZGVzaWduaW5nIj5EZXNpZ25pbmcgYXBwIGV4cGVyaWVuY2VzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3N0YXJ0L2J1aWxkaW5nIj5CdWlsZGluZyBhbiBhcHA8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5BcHAgZmVhdHVyZXM8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9pbnRlcm5hbC1pbnRlZ3JhdGlvbnMiPkludGVybmFsIGludGVncmF0aW9uczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9pbmNvbWluZy13ZWJob29rcyI+SW5jb21pbmcgd2ViaG9va3M8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2xhc2gtY29tbWFuZHMiPlNsYXNoIGNvbW1hbmRzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2JvdC11c2VycyI+QnVpbGRpbmcgYm90czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9hY3Rpb25zIj5BY3Rpb25zPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RpYWxvZ3MiPkRpYWxvZ3M8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvcmVmZXJlbmNlL2FwcC1ob21lIj5BcHAgSG9tZTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9zaGFyZWQtY2hhbm5lbHMiPlNoYXJlZCBDaGFubmVsczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9lbnRlcnByaXNlLWdyaWQiPkVudGVycHJpc2UgR3JpZDwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPk1lc3NhZ2luZzwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvbWVzc2FnaW5nIj5PdmVydmlldzwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL21lc3NhZ2luZy9tYW5hZ2luZyI+TWFuYWdpbmcgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9tZXNzYWdpbmcvY29tcG9zaW5nIj5Db21wb3NpbmcgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9tZXNzYWdpbmcvaW50ZXJhY3Rpdml0eSI+SW50ZXJhY3Rpdml0eTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL21lc3NhZ2luZy9maWxlcyI+V29ya2luZyB3aXRoIGZpbGVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvcmVmZXJlbmNlL21lc3NhZ2luZy9wYXlsb2FkIj5SZWZlcmVuY2U8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii90b29scy9ibG9jay1raXQtYnVpbGRlciI+QmxvY2sga2l0IGJ1aWxkZXI8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5BcHBzIGZvciBhZG1pbnM8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2FkbWlucyI+T3ZlcnZpZXc8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9hZG1pbnMvbWFuYWdpbmciPk1hbmFnaW5nIGFwcHM8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXJfbWVudSI+PGg0IGNsYXNzPSJzaWRlYmFyX21lbnVfaGVhZGVyIj5SZWZlcmVuY2U8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii93ZWIiPldlYiBBUEk8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZXZlbnRzLWFwaSI+RXZlbnRzIEFQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL2NvbnZlcnNhdGlvbnMtYXBpIj5Db252ZXJzYXRpb25zIEFQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9ydG0iPlJlYWwgVGltZSBNZXNzYWdpbmcgQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIGlzX2FjdGl2ZSIgaHJlZj0iL21ldGhvZHMiPk1ldGhvZHM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvdHlwZXMiPk9iamVjdCBUeXBlczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9ldmVudHMiPkV2ZW50IFR5cGVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3NjaW0iPlNDSU0gQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvYXVkaXQtbG9ncy1hcGkiPkF1ZGl0IExvZ3MgQVBJPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvcGFnaW5hdGlvbiI+UGFnaW5hdGlvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3ByZXNlbmNlLWFuZC1zdGF0dXMiPlByZXNlbmNlICZhbXA7IHN0YXR1czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL2RlZXAtbGlua2luZyI+RGVlcCBsaW5raW5nIGludG8gY2xpZW50czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3JhdGUtbGltaXRzIj5SYXRlIExpbWl0czwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3RyaWdnZXJzIj5UcmlnZ2VyczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2RvY3Mvb3V0bW9kZWQtbWVzc2FnaW5nIj5PdXRtb2RlZCBtZXNzYWdpbmc8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Ii9pbnRlcmFjdGl2ZS1tZXNzYWdlcyI+SW50ZXJhY3RpdmUgbWVzc2FnZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvbGVnYWN5LXdvcmtzcGFjZS1hcHBzIj5MZWdhY3k6IFdvcmtzcGFjZSBhcHBzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL3NsYWNrLWFwcHMiPk1hbmFnaW5nIFNsYWNrIGFwcHM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9zbGFjay1zdGF0dXMiPlNsYWNrIFN0YXR1czwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlNsYWNrIEFwcCBEaXJlY3Rvcnk8L2g0Pjx1bCBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3QiPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NsYWNrLWFwcHMtY2hlY2tsaXN0Ij5TdWJtaXNzaW9uIGNoZWNrbGlzdDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NsYWNrLWFwcHMtZ3VpZGVsaW5lcyI+U3VibWlzc2lvbiBndWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvc2xhY2stYXBwcy1zdWdnZXN0aW9ucyI+QXBwIHN1Z2dlc3Rpb25zPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSJodHRwczovL3NsYWNrLmNvbS9hcHBzIiB0YXJnZXQ9Il9ibGFuayI+QXBwIERpcmVjdG9yeTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kZXZlbG9wZXItcG9saWNpZXMiPkRldmVsb3BlciBwb2xpY2llczwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPkF1dGhlbnRpY2F0aW9uPC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9vYXV0aCI+VXNpbmcgT0F1dGggMi4wPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvb2F1dGgtc2NvcGVzIj5QZXJtaXNzaW9ucyBzeXN0ZW08L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2NvcGVzIj5TY29wZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy90b2tlbi10eXBlcyI+VG9rZW4gdHlwZXM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy92ZXJpZnlpbmctcmVxdWVzdHMtZnJvbS1zbGFjayI+VmVyaWZ5aW5nIHJlcXVlc3RzPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvb2F1dGgtc2FmZXR5Ij5TZWN1cml0eSByZWNvbW1lbmRhdGlvbnM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9zbGFjay1idXR0b24iPlNsYWNrIEJ1dHRvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSAiIGhyZWY9Ii9kb2NzL3NpZ24taW4td2l0aC1zbGFjayI+U2lnbiBpbiB3aXRoIFNsYWNrPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+S2VlcCBpbiB0b3VjaDwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3Mvc3VwcG9ydCI+U3VwcG9ydCBhbmQgRGlzY3Vzc2lvbjwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9zbGFja2FwaSIgdGFyZ2V0PSJfYmxhbmsiPkBTbGFja0FQSTwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL3NsYWNrLWRldmVsb3Blci1ibG9nIiB0YXJnZXQ9Il9ibGFuayI+UGxhdGZvcm0gQmxvZzwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5lbmdpbmVlcmluZy8iIHRhcmdldD0iX2JsYW5rIj5TbGFjayBFbmdpbmVlcmluZyBCbG9nPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtIiBocmVmPSIvcm9hZG1hcCI+UGxhdGZvcm0gUm9hZG1hcDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vcGFydG5lcnMiPlBhcnRuZXJpbmcgd2l0aCBTbGFjazwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhcl9tZW51Ij48aDQgY2xhc3M9InNpZGViYXJfbWVudV9oZWFkZXIiPlJlc291cmNlczwvaDQ+PHVsIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdCI+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgdGl0bGU9IkZyZXF1ZW50bHkgYXNrZWQgcXVlc3Rpb25zIiBocmVmPSIvZmFxIj5GQVE8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvdG9vbHMiPlNsYWNrIGRldmVsb3BlciB0b29sczwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iL2xhbmcvamEtanAiPkFydGljbGVzIGluIEphcGFuZXNlPC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+TWVzc2FnZSBidWlsZGVyPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyX21lbnUiPjxoNCBjbGFzcz0ic2lkZWJhcl9tZW51X2hlYWRlciI+Q29tbXVuaXR5PC9oND48dWwgY2xhc3M9InNpZGViYXJfbWVudV9saXN0Ij48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0iIGhyZWY9Imh0dHBzOi8vc2xhY2tjb21tdW5pdHkuY29tP3V0bV9tZWRpdW09cmVmZXJyYWwmYW1wO3V0bV9zb3VyY2U9YXBpc2xhY2smYW1wO3V0bV9jYW1wYWlnbj1meTIwLVExMDMtc3BjbGF1bmNoIj5TbGFjayBQbGF0Zm9ybSBDb21tdW5pdHk8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvY29tbXVuaXR5Ij5CdWlsdCBieSBvdXIgY29tbXVuaXR5PC9hPjwvbGk+PGxpPjxhIGNsYXNzPSJzaWRlYmFyX21lbnVfbGlzdF9pdGVtICIgaHJlZj0iL2RvY3MvaG9zdGluZyI+SG9zdGluZyBQcm92aWRlcnM8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvZG9jcy9jb21tdW5pdHktY29kZS1vZi1jb25kdWN0Ij5Db2RlIG9mIENvbmR1Y3Q8L2E+PC9saT48bGk+PGEgY2xhc3M9InNpZGViYXJfbWVudV9saXN0X2l0ZW0gIiBocmVmPSIvc2xhY2stZnVuZCI+U2xhY2sgRnVuZDwvYT48L2xpPjxsaT48YSBjbGFzcz0ic2lkZWJhcl9tZW51X2xpc3RfaXRlbSIgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vL3Rlcm1zLW9mLXNlcnZpY2UvYXBpIj5BUEkgVGVybXMgb2YgU2VydmljZTwvYT48L2xpPjwvdWw+PHA+PGEgZGF0YS1ndG0tY2xpY2s9IkFQSUdldEhlbHAiIGRhdGEtY2xvZy1ldmVudD0iQVBQX0RJUkVDVE9SWV9XRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9YXBpX25hdl9nZXRfaGVscF9idG4iIGhyZWY9Ii9zdXBwb3J0P3JlZj1hcGlfbmF2IiBjbGFzcz0iYnRuIj5HZXQgSGVscDwvYT48L3A+PC9kaXY+PC9uYXY+PGRpdiBpZD0iYXBpX21haW5fY29udGVudCIgY2xhc3M9ImNvbCI+PGRpdiBjbGFzcz0iZmxvYXRfcmlnaHQgc21hbGxfdG9wX21hcmdpbiIgc3R5bGU9IndpZHRoOiAzMDBweDsgbWF4LXdpZHRoOiAxMDAlOyI+PHNlbGVjdCBpZD0iYXBpX21ldGhvZCIgZGF0YS1sYXp5LWZpbHRlci1zZWxlY3Q9IjEiPjxvcHRpb24gc2VsZWN0ZWQgZGlzYWJsZWQ+VmlldyBhbm90aGVyIG1ldGhvZC4uLjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFkbWluLmFwcHMuYXBwcm92ZSI+YWRtaW4uYXBwcy5hcHByb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWRtaW4uYXBwcy5yZXF1ZXN0cy5saXN0Ij5hZG1pbi5hcHBzLnJlcXVlc3RzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZG1pbi5hcHBzLnJlc3RyaWN0Ij5hZG1pbi5hcHBzLnJlc3RyaWN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWRtaW4udXNlcnMuc2Vzc2lvbi5yZXNldCI+YWRtaW4udXNlcnMuc2Vzc2lvbi5yZXNldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwaS50ZXN0Ij5hcGkudGVzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwcHMucGVybWlzc2lvbnMuaW5mbyI+YXBwcy5wZXJtaXNzaW9ucy5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy5yZXF1ZXN0Ij5hcHBzLnBlcm1pc3Npb25zLnJlcXVlc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhcHBzLnBlcm1pc3Npb25zLnJlc291cmNlcy5saXN0Ij5hcHBzLnBlcm1pc3Npb25zLnJlc291cmNlcy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy5zY29wZXMubGlzdCI+YXBwcy5wZXJtaXNzaW9ucy5zY29wZXMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFwcHMucGVybWlzc2lvbnMudXNlcnMubGlzdCI+YXBwcy5wZXJtaXNzaW9ucy51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXBwcy5wZXJtaXNzaW9ucy51c2Vycy5yZXF1ZXN0Ij5hcHBzLnBlcm1pc3Npb25zLnVzZXJzLnJlcXVlc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhcHBzLnVuaW5zdGFsbCI+YXBwcy51bmluc3RhbGw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRoLnJldm9rZSI+YXV0aC5yZXZva2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRoLnRlc3QiPmF1dGgudGVzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJvdHMuaW5mbyI+Ym90cy5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuYXJjaGl2ZSI+Y2hhbm5lbHMuYXJjaGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmNyZWF0ZSI+Y2hhbm5lbHMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuaGlzdG9yeSI+Y2hhbm5lbHMuaGlzdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmluZm8iPmNoYW5uZWxzLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5pbnZpdGUiPmNoYW5uZWxzLmludml0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLmpvaW4iPmNoYW5uZWxzLmpvaW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5raWNrIj5jaGFubmVscy5raWNrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMubGVhdmUiPmNoYW5uZWxzLmxlYXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMubGlzdCI+Y2hhbm5lbHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLm1hcmsiPmNoYW5uZWxzLm1hcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5yZW5hbWUiPmNoYW5uZWxzLnJlbmFtZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYW5uZWxzLnJlcGxpZXMiPmNoYW5uZWxzLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGFubmVscy5zZXRQdXJwb3NlIj5jaGFubmVscy5zZXRQdXJwb3NlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMuc2V0VG9waWMiPmNoYW5uZWxzLnNldFRvcGljPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhbm5lbHMudW5hcmNoaXZlIj5jaGFubmVscy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGF0LmRlbGV0ZSI+Y2hhdC5kZWxldGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjaGF0LmRlbGV0ZVNjaGVkdWxlZE1lc3NhZ2UiPmNoYXQuZGVsZXRlU2NoZWR1bGVkTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuZ2V0UGVybWFsaW5rIj5jaGF0LmdldFBlcm1hbGluazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQubWVNZXNzYWdlIj5jaGF0Lm1lTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQucG9zdEVwaGVtZXJhbCI+Y2hhdC5wb3N0RXBoZW1lcmFsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC5wb3N0TWVzc2FnZSI+Y2hhdC5wb3N0TWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuc2NoZWR1bGVNZXNzYWdlIj5jaGF0LnNjaGVkdWxlTWVzc2FnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNoYXQuc2NoZWR1bGVkTWVzc2FnZXMubGlzdCI+Y2hhdC5zY2hlZHVsZWRNZXNzYWdlcy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC51bmZ1cmwiPmNoYXQudW5mdXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2hhdC51cGRhdGUiPmNoYXQudXBkYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5hcmNoaXZlIj5jb252ZXJzYXRpb25zLmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmNsb3NlIj5jb252ZXJzYXRpb25zLmNsb3NlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5jcmVhdGUiPmNvbnZlcnNhdGlvbnMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5oaXN0b3J5Ij5jb252ZXJzYXRpb25zLmhpc3Rvcnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmluZm8iPmNvbnZlcnNhdGlvbnMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuaW52aXRlIj5jb252ZXJzYXRpb25zLmludml0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuam9pbiI+Y29udmVyc2F0aW9ucy5qb2luPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5raWNrIj5jb252ZXJzYXRpb25zLmtpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLmxlYXZlIj5jb252ZXJzYXRpb25zLmxlYXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5saXN0Ij5jb252ZXJzYXRpb25zLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLm1lbWJlcnMiPmNvbnZlcnNhdGlvbnMubWVtYmVyczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMub3BlbiI+Y29udmVyc2F0aW9ucy5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5yZW5hbWUiPmNvbnZlcnNhdGlvbnMucmVuYW1lPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29udmVyc2F0aW9ucy5yZXBsaWVzIj5jb252ZXJzYXRpb25zLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLnNldFB1cnBvc2UiPmNvbnZlcnNhdGlvbnMuc2V0UHVycG9zZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbnZlcnNhdGlvbnMuc2V0VG9waWMiPmNvbnZlcnNhdGlvbnMuc2V0VG9waWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjb252ZXJzYXRpb25zLnVuYXJjaGl2ZSI+Y29udmVyc2F0aW9ucy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkaWFsb2cub3BlbiI+ZGlhbG9nLm9wZW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkbmQuZW5kRG5kIj5kbmQuZW5kRG5kPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZG5kLmVuZFNub296ZSI+ZG5kLmVuZFNub296ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRuZC5pbmZvIj5kbmQuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImRuZC5zZXRTbm9vemUiPmRuZC5zZXRTbm9vemU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkbmQudGVhbUluZm8iPmRuZC50ZWFtSW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImVtb2ppLmxpc3QiPmVtb2ppLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy5jb21tZW50cy5kZWxldGUiPmZpbGVzLmNvbW1lbnRzLmRlbGV0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLmRlbGV0ZSI+ZmlsZXMuZGVsZXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMuaW5mbyI+ZmlsZXMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLmxpc3QiPmZpbGVzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy5yZW1vdGUuYWRkIj5maWxlcy5yZW1vdGUuYWRkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLmluZm8iPmZpbGVzLnJlbW90ZS5pbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLmxpc3QiPmZpbGVzLnJlbW90ZS5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLnJlbW92ZSI+ZmlsZXMucmVtb3RlLnJlbW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLnJlbW90ZS5zaGFyZSI+ZmlsZXMucmVtb3RlLnNoYXJlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMucmVtb3RlLnVwZGF0ZSI+ZmlsZXMucmVtb3RlLnVwZGF0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbGVzLnJldm9rZVB1YmxpY1VSTCI+ZmlsZXMucmV2b2tlUHVibGljVVJMPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmlsZXMuc2hhcmVkUHVibGljVVJMIj5maWxlcy5zaGFyZWRQdWJsaWNVUkw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaWxlcy51cGxvYWQiPmZpbGVzLnVwbG9hZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5hcmNoaXZlIj5ncm91cHMuYXJjaGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5jcmVhdGUiPmdyb3Vwcy5jcmVhdGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuY3JlYXRlQ2hpbGQiPmdyb3Vwcy5jcmVhdGVDaGlsZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5oaXN0b3J5Ij5ncm91cHMuaGlzdG9yeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5pbmZvIj5ncm91cHMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5pbnZpdGUiPmdyb3Vwcy5pbnZpdGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMua2ljayI+Z3JvdXBzLmtpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMubGVhdmUiPmdyb3Vwcy5sZWF2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5saXN0Ij5ncm91cHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5tYXJrIj5ncm91cHMubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5vcGVuIj5ncm91cHMub3Blbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy5yZW5hbWUiPmdyb3Vwcy5yZW5hbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMucmVwbGllcyI+Z3JvdXBzLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuc2V0UHVycG9zZSI+Z3JvdXBzLnNldFB1cnBvc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJncm91cHMuc2V0VG9waWMiPmdyb3Vwcy5zZXRUb3BpYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imdyb3Vwcy51bmFyY2hpdmUiPmdyb3Vwcy51bmFyY2hpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5jbG9zZSI+aW0uY2xvc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5oaXN0b3J5Ij5pbS5oaXN0b3J5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaW0ubGlzdCI+aW0ubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImltLm1hcmsiPmltLm1hcms8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpbS5vcGVuIj5pbS5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaW0ucmVwbGllcyI+aW0ucmVwbGllczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1pZ3JhdGlvbi5leGNoYW5nZSI+bWlncmF0aW9uLmV4Y2hhbmdlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5jbG9zZSI+bXBpbS5jbG9zZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1waW0uaGlzdG9yeSI+bXBpbS5oaXN0b3J5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5saXN0Ij5tcGltLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJtcGltLm1hcmsiPm1waW0ubWFyazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1waW0ub3BlbiI+bXBpbS5vcGVuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibXBpbS5yZXBsaWVzIj5tcGltLnJlcGxpZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJvYXV0aC5hY2Nlc3MiPm9hdXRoLmFjY2Vzczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im9hdXRoLnRva2VuIj5vYXV0aC50b2tlbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InBpbnMuYWRkIj5waW5zLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InBpbnMubGlzdCI+cGlucy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icGlucy5yZW1vdmUiPnBpbnMucmVtb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVhY3Rpb25zLmFkZCI+cmVhY3Rpb25zLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlYWN0aW9ucy5nZXQiPnJlYWN0aW9ucy5nZXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJyZWFjdGlvbnMubGlzdCI+cmVhY3Rpb25zLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJyZWFjdGlvbnMucmVtb3ZlIj5yZWFjdGlvbnMucmVtb3ZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVtaW5kZXJzLmFkZCI+cmVtaW5kZXJzLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5jb21wbGV0ZSI+cmVtaW5kZXJzLmNvbXBsZXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icmVtaW5kZXJzLmRlbGV0ZSI+cmVtaW5kZXJzLmRlbGV0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5pbmZvIj5yZW1pbmRlcnMuaW5mbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJlbWluZGVycy5saXN0Ij5yZW1pbmRlcnMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJ0bS5jb25uZWN0Ij5ydG0uY29ubmVjdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJ0bS5zdGFydCI+cnRtLnN0YXJ0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2VhcmNoLmFsbCI+c2VhcmNoLmFsbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNlYXJjaC5maWxlcyI+c2VhcmNoLmZpbGVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2VhcmNoLm1lc3NhZ2VzIj5zZWFyY2gubWVzc2FnZXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdGFycy5hZGQiPnN0YXJzLmFkZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InN0YXJzLmxpc3QiPnN0YXJzLmxpc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdGFycy5yZW1vdmUiPnN0YXJzLnJlbW92ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InRlYW0uYWNjZXNzTG9ncyI+dGVhbS5hY2Nlc3NMb2dzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGVhbS5iaWxsYWJsZUluZm8iPnRlYW0uYmlsbGFibGVJbmZvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGVhbS5pbmZvIj50ZWFtLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0ZWFtLmludGVncmF0aW9uTG9ncyI+dGVhbS5pbnRlZ3JhdGlvbkxvZ3M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0ZWFtLnByb2ZpbGUuZ2V0Ij50ZWFtLnByb2ZpbGUuZ2V0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy5jcmVhdGUiPnVzZXJncm91cHMuY3JlYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy5kaXNhYmxlIj51c2VyZ3JvdXBzLmRpc2FibGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VyZ3JvdXBzLmVuYWJsZSI+dXNlcmdyb3Vwcy5lbmFibGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VyZ3JvdXBzLmxpc3QiPnVzZXJncm91cHMubGlzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJncm91cHMudXBkYXRlIj51c2VyZ3JvdXBzLnVwZGF0ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJncm91cHMudXNlcnMubGlzdCI+dXNlcmdyb3Vwcy51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcmdyb3Vwcy51c2Vycy51cGRhdGUiPnVzZXJncm91cHMudXNlcnMudXBkYXRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuY29udmVyc2F0aW9ucyI+dXNlcnMuY29udmVyc2F0aW9uczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmRlbGV0ZVBob3RvIj51c2Vycy5kZWxldGVQaG90bzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmdldFByZXNlbmNlIj51c2Vycy5nZXRQcmVzZW5jZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmlkZW50aXR5Ij51c2Vycy5pZGVudGl0eTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLmluZm8iPnVzZXJzLmluZm88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2Vycy5saXN0Ij51c2Vycy5saXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMubG9va3VwQnlFbWFpbCI+dXNlcnMubG9va3VwQnlFbWFpbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnByb2ZpbGUuZ2V0Ij51c2Vycy5wcm9maWxlLmdldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnByb2ZpbGUuc2V0Ij51c2Vycy5wcm9maWxlLnNldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZXJzLnNldEFjdGl2ZSI+dXNlcnMuc2V0QWN0aXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuc2V0UGhvdG8iPnVzZXJzLnNldFBob3RvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlcnMuc2V0UHJlc2VuY2UiPnVzZXJzLnNldFByZXNlbmNlPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGgxPmNoYXQucG9zdE1lc3NhZ2U8L2gxPjxkaXYgY2xhc3M9InRhYl9zZXQgb25fbmV1dHJhbF9ncmV5Ij48YSBocmVmPSIvbWV0aG9kcy9jaGF0LnBvc3RNZXNzYWdlIiBjbGFzcz0ic2VsZWN0ZWQiPkRvY3VtZW50YXRpb248L2E+PGEgaHJlZj0iL21ldGhvZHMvY2hhdC5wb3N0TWVzc2FnZS90ZXN0Ij5UZXN0ZXI8L2E+PC9kaXY+PHNlY3Rpb24gY2xhc3M9InRhYl9wYW5lIHNlbGVjdGVkIGNsZWFyZml4IGxhcmdlX2JvdHRvbV9wYWRkaW5nIiBkYXRhLXRhYj0iZG9jcyI+PHA+U2VuZHMgYSBtZXNzYWdlIHRvIGEgY2hhbm5lbC48L3A+PHA+PC9wPjxoMiBpZD0iZmFjdHMiPkZhY3RzPC9oMj48dGFibGUgY2xhc3M9InNtYWxsIGZ1bGxfd2lkdGggbm9fYm90dG9tX21hcmdpbiBub19ib3R0b21fcGFkZGluZyI+PHRyPjx0aCBjbGFzcz0iYWxpZ25fcmlnaHQiPk1ldGhvZCBVUkw6PC90aD48dGQ+PGNvZGU+aHR0cHM6Ly9zbGFjay5jb20vYXBpL2NoYXQucG9zdE1lc3NhZ2U8L2NvZGU+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImFsaWduX3JpZ2h0Ij5QcmVmZXJyZWQgSFRUUCBtZXRob2Q6PC90aD48dGQ+PGNvZGU+UE9TVDwvY29kZT48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iYWxpZ25fcmlnaHQiPkFjY2VwdGVkIGNvbnRlbnQgdHlwZXM6PC90aD48dGQ+PGNvZGU+YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkPC9jb2RlPiwgPGEgdGl0bGU9IkxlYXJuIG1vcmUgYWJvdXQgc2VuZGluZyBIVFRQIFBPU1Qgd2l0aCBKU09OIiBocmVmPSIvd2ViI3Bvc3RpbmdfanNvbiI+PGNvZGU+YXBwbGljYXRpb24vanNvbjwvY29kZT48L2E+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImFsaWduX3JpZ2h0Ij5SYXRlIGxpbWl0aW5nOjwvdGg+PHRkPjxzcGFuIGNsYXNzPSJyYXRlX2xpbWl0IHRpZXJfdDUiPjxhIGhyZWY9Ii9kb2NzL3JhdGUtbGltaXRzI3RpZXJfdDUiPlNwZWNpYWw8L2E+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJhbGlnbl9yaWdodCI+V29ya3Mgd2l0aDo8L3RoPjx0ZD48dGFibGUgY2xhc3M9InNtYWxsIGZ1bGxfd2lkdGggbm9fbWFyZ2luIG5vX3BhZGRpbmciPjx0ciBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPjx0aCBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPlRva2VuIHR5cGU8L3RoPjx0aCBjbGFzcz0ibm9fbWFyZ2luIG5vX3BhZGRpbmciPlJlcXVpcmVkIHNjb3BlKHMpPC90aD48L3RyPjx0cj48dGQ+PGEgY2xhc3M9ImJ0bl9iYXNpYyBwaWxsX2J0biBidG5fc21hbGwgdG9rZW5fYm90IHRva2VuX2xpbmsiIGhyZWY9Ii9kb2NzL3Rva2VuLXR5cGVzI2JvdCI+Ym90PC9hPjwvdGQ+PHRkPjxhIGhyZWY9Ii9zY29wZXMvYm90Ij48Y29kZT5ib3Q8L2NvZGU+PC9hPjwvdGQ+PC90cj48dHI+PHRkPjxhIGNsYXNzPSJidG5fYmFzaWMgcGlsbF9idG4gYnRuX3NtYWxsIHRva2VuX3VzZXIgdG9rZW5fbGluayIgaHJlZj0iL2RvY3MvdG9rZW4tdHlwZXMjdXNlciI+dXNlcjwvYT48L3RkPjx0ZD48YSBocmVmPSIvc2NvcGVzL2NoYXQ6d3JpdGU6dXNlciI+PGNvZGU+Y2hhdDp3cml0ZTp1c2VyPC9jb2RlPjwvYT7CoCA8YSBocmVmPSIvc2NvcGVzL2NoYXQ6d3JpdGU6Ym90Ij48Y29kZT5jaGF0OndyaXRlOmJvdDwvY29kZT48L2E+wqAgPC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+PGhyIGNsYXNzPSJzbWFsbF90b3BfbWFyZ2luIj48cD5UaGlzIG1ldGhvZCBwb3N0cyA8YSBocmVmPSIvZG9jcy9tZXNzYWdlcyI+YSBtZXNzYWdlPC9hPiB0byBhIHB1YmxpYyBjaGFubmVsLCBwcml2YXRlIGNoYW5uZWwsIG9yIGRpcmVjdCBtZXNzYWdlL0lNIGNoYW5uZWwuPC9wPgoKPGEgbmFtZT0iYXJndW1lbnRzIj48L2E+PGgyID5Bcmd1bWVudHM8L2gyPgoKPHRhYmxlIGNsYXNzPSJhcmd1bWVudHMgZnVsbF93aWR0aCI+IDx0cj4gPHRoPkFyZ3VtZW50PC90aD4gPHRoPkV4YW1wbGU8L3RoPiA8dGg+UmVxdWlyZWQ8L3RoPiA8dGg+RGVzY3JpcHRpb248L3RoPiA8L3RyPiA8dHI+PHRkPjxjb2RlPnRva2VuPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnh4eHgteHh4eHh4eHh4LXh4eHg8L2NvZGU+PC90ZD48dGQ+UmVxdWlyZWQ8L3RkPjx0ZD48cD5BdXRoZW50aWNhdGlvbiB0b2tlbiBiZWFyaW5nIHJlcXVpcmVkIHNjb3Blcy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmNoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PGNvZGU+QzEyMzQ1Njc4OTA8L2NvZGU+PC90ZD48dGQ+UmVxdWlyZWQ8L3RkPjx0ZD48cD5DaGFubmVsLCBwcml2YXRlIGdyb3VwLCBvciBJTSBjaGFubmVsIHRvIHNlbmQgbWVzc2FnZSB0by4gQ2FuIGJlIGFuIGVuY29kZWQgSUQsIG9yIGEgbmFtZS4gU2VlIDxhIGhyZWY9IiNjaGFubmVscyI+YmVsb3c8L2E+IGZvciBtb3JlIGRldGFpbHMuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50ZXh0PC9jb2RlPjwvdGQ+PHRkPjxjb2RlPkhlbGxvIHdvcmxkPC9jb2RlPjwvdGQ+PHRkPlJlcXVpcmVkPC90ZD48dGQ+PHA+VGV4dCBvZiB0aGUgbWVzc2FnZSB0byBzZW5kLiBTZWUgYmVsb3cgZm9yIGFuIGV4cGxhbmF0aW9uIG9mIDxhIGhyZWY9IiNmb3JtYXR0aW5nIj5mb3JtYXR0aW5nPC9hPi4gVGhpcyBmaWVsZCBpcyB1c3VhbGx5IHJlcXVpcmVkLCB1bmxlc3MgeW91J3JlIHByb3ZpZGluZyBvbmx5IDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBpbnN0ZWFkLiBQcm92aWRlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycyBvciA8YSBocmVmPSIvY2hhbmdlbG9nLzIwMTgtMDQtdHJ1bmNhdGluZy1yZWFsbHktbG9uZy1tZXNzYWdlcyI+cmlzayB0cnVuY2F0aW9uPC9hPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmFzX3VzZXI8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlBhc3MgdHJ1ZSB0byBwb3N0IHRoZSBtZXNzYWdlIGFzIHRoZSBhdXRoZWQgdXNlciwgaW5zdGVhZCBvZiBhcyBhIGJvdC4gRGVmYXVsdHMgdG8gZmFsc2UuIFNlZSA8YSBocmVmPSIjYXV0aG9yc2hpcCI+YXV0aG9yc2hpcDwvYT4gYmVsb3cuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5hdHRhY2htZW50czwvY29kZT48L3RkPjx0ZD48Y29kZT5beyZxdW90O3ByZXRleHQmcXVvdDs6ICZxdW90O3ByZS1oZWxsbyZxdW90OywgJnF1b3Q7dGV4dCZxdW90OzogJnF1b3Q7dGV4dC13b3JsZCZxdW90O31dPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsPC90ZD48dGQ+PHA+QSBKU09OLWJhc2VkIGFycmF5IG9mIHN0cnVjdHVyZWQgYXR0YWNobWVudHMsIHByZXNlbnRlZCBhcyBhIFVSTC1lbmNvZGVkIHN0cmluZy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmJsb2NrczwvY29kZT48L3RkPjx0ZD48Y29kZT5beyZxdW90O3R5cGUmcXVvdDs6ICZxdW90O3NlY3Rpb24mcXVvdDssICZxdW90O3RleHQmcXVvdDs6IHsmcXVvdDt0eXBlJnF1b3Q7OiAmcXVvdDtwbGFpbl90ZXh0JnF1b3Q7LCAmcXVvdDt0ZXh0JnF1b3Q7OiAmcXVvdDtIZWxsbyB3b3JsZCZxdW90O319XTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkEgSlNPTi1iYXNlZCBhcnJheSBvZiBzdHJ1Y3R1cmVkIGJsb2NrcywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aWNvbl9lbW9qaTwvY29kZT48L3RkPjx0ZD48Y29kZT46Y2hhcnRfd2l0aF91cHdhcmRzX3RyZW5kOjwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkVtb2ppIHRvIHVzZSBhcyB0aGUgaWNvbiBmb3IgdGhpcyBtZXNzYWdlLiBPdmVycmlkZXMgPGNvZGU+aWNvbl91cmw8L2NvZGU+LiBNdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCA8Y29kZT5hc191c2VyPC9jb2RlPiBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIDxhIGhyZWY9IiNhdXRob3JzaGlwIj5hdXRob3JzaGlwPC9hPiBiZWxvdy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmljb25fdXJsPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPmh0dHA6Ly9sb3JlbXBpeGVsLmNvbS80OC80ODwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlVSTCB0byBhbiBpbWFnZSB0byB1c2UgYXMgdGhlIGljb24gZm9yIHRoaXMgbWVzc2FnZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPGNvZGU+YXNfdXNlcjwvY29kZT4gc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIDxhIGhyZWY9IiNhdXRob3JzaGlwIj5hdXRob3JzaGlwPC9hPiBiZWxvdy48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmxpbmtfbmFtZXM8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPkZpbmQgYW5kIGxpbmsgY2hhbm5lbCBuYW1lcyBhbmQgdXNlcm5hbWVzLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bXJrZHduPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPmZhbHNlPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsLCBkZWZhdWx0PXRydWU8L3RkPjx0ZD48cD5EaXNhYmxlIFNsYWNrIG1hcmt1cCBwYXJzaW5nIGJ5IHNldHRpbmcgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LiBFbmFibGVkIGJ5IGRlZmF1bHQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5wYXJzZTwvY29kZT48L3RkPjx0ZD48Y29kZT5mdWxsPC9jb2RlPjwvdGQ+PHRkPk9wdGlvbmFsPC90ZD48dGQ+PHA+Q2hhbmdlIGhvdyBtZXNzYWdlcyBhcmUgdHJlYXRlZC4gRGVmYXVsdHMgdG8gPGNvZGU+bm9uZTwvY29kZT4uIFNlZSA8YSBocmVmPSIjZm9ybWF0dGluZyI+YmVsb3c8L2E+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVwbHlfYnJvYWRjYXN0PC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnRydWU8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5Vc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPGNvZGU+dGhyZWFkX3RzPC9jb2RlPiBhbmQgaW5kaWNhdGVzIHdoZXRoZXIgcmVwbHkgc2hvdWxkIGJlIG1hZGUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCBvciBjb252ZXJzYXRpb24uIERlZmF1bHRzIHRvIDxjb2RlPmZhbHNlPC9jb2RlPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPnRocmVhZF90czwvY29kZT48L3RkPjx0ZD48Y29kZT4xMjM0NTY3ODkwLjEyMzQ1NjwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlByb3ZpZGUgYW5vdGhlciBtZXNzYWdlJ3MgPGNvZGU+dHM8L2NvZGU+IHZhbHVlIHRvIG1ha2UgdGhpcyBtZXNzYWdlIGEgcmVwbHkuIEF2b2lkIHVzaW5nIGEgcmVwbHkncyA8Y29kZT50czwvY29kZT4gdmFsdWU7IHVzZSBpdHMgcGFyZW50IGluc3RlYWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51bmZ1cmxfbGlua3M8L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJ1ZTwvY29kZT48L3RkPjx0ZD5PcHRpb25hbDwvdGQ+PHRkPjxwPlBhc3MgdHJ1ZSB0byBlbmFibGUgdW5mdXJsaW5nIG9mIHByaW1hcmlseSB0ZXh0LWJhc2VkIGNvbnRlbnQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51bmZ1cmxfbWVkaWE8L2NvZGU+PC90ZD48dGQ+PGNvZGU+ZmFsc2U8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5QYXNzIGZhbHNlIHRvIGRpc2FibGUgdW5mdXJsaW5nIG9mIG1lZGlhIGNvbnRlbnQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT51c2VybmFtZTwvY29kZT48L3RkPjx0ZD48Y29kZT5NeSBCb3Q8L2NvZGU+PC90ZD48dGQ+T3B0aW9uYWw8L3RkPjx0ZD48cD5TZXQgeW91ciBib3QncyB1c2VyIG5hbWUuIE11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHNldCB0byBmYWxzZSwgb3RoZXJ3aXNlIGlnbm9yZWQuIFNlZSA8YSBocmVmPSIjYXV0aG9yc2hpcCI+YXV0aG9yc2hpcDwvYT4gYmVsb3cuPC9wPgo8L3RkPjwvdHI+PC90YWJsZT48cCBjbGFzcz0iYWxlcnQgYWxlcnRfaW5mbyI+PHRzLWljb24gY2xhc3M9InRzX2ljb25fY29kZSI+PC90cy1pY29uPlRoaXMgbWV0aG9kIHN1cHBvcnRzIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IHZpYSBIVFRQIFBPU1QuIFByZXNlbnQgeW91ciA8Y29kZT50b2tlbjwvY29kZT4gaW4geW91ciByZXF1ZXN0J3MgPGNvZGU+QXV0aG9yaXphdGlvbjwvY29kZT4gaGVhZGVyLiA8YSBocmVmPSIvd2ViI3Bvc3RpbmdfanNvbiI+TGVhcm4gbW9yZTwvYT4uPC9wPgoKPHA+UGxlYXNlIG5vdGUgdGhhdCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgPGNvZGU+YXNfdXNlcjwvY29kZT4gcGFyYW1ldGVyIHZhcmllcyBkZXBlbmRpbmcgb24gdGhlIGtpbmQgb2YgdG9rZW4geW91J3JlIHVzaW5nLiBJdCdzIGJlc3QgdG8gYmUgZXhwbGljaXQgd2l0aCB0aGlzIHZhbHVlLiBSZWFkIG1vcmUgYWJvdXQgPGEgaHJlZj0iI2F1dGhvcnNoaXAiPkF1dGhvcnNoaXA8L2E+IHRvIHVuZGVyc3RhbmQgaG93IGl0cyBkZWZhdWx0IHZhbHVlIG1heSB2YXJ5LjwvcD4KCjxwPkEgbWVzc2FnZSBtdXN0IGhhdmUgZWl0aGVyIDxjb2RlPnRleHQ8L2NvZGU+IG9yIDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBvciBib3RoLiBUaGUgPGNvZGU+dGV4dDwvY29kZT4gcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHVubGVzcyB5b3UgcHJvdmlkZSA8Y29kZT5hdHRhY2htZW50czwvY29kZT4uIFlvdSBjYW4gdXNlIGJvdGggcGFyYW1ldGVycyBpbiBjb25qdW5jdGlvbiB3aXRoIGVhY2ggb3RoZXIgdG8gY3JlYXRlIGF3ZXNvbWUgbWVzc2FnZXMuPC9wPgoKPGEgbmFtZT0ianNvbl9wb3N0X3N1cHBvcnQiPjwvYT48aDMgPkpTT04gUE9TVCBzdXBwb3J0PC9oMz4KCjxwPkFzIG9mIE9jdG9iZXIgMjAxNywgaXQncyBub3cgcG9zc2libGUgdG8gc2VuZCBhIHdlbGwtZm9ybWF0dGVkIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IFBPU1QgYm9keSB0byA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiBhbmQgb3RoZXIgPGEgaHJlZj0iL3dlYiI+V2ViIEFQSTwvYT4gd3JpdGUgbWV0aG9kcy4gTm8gbmVlZCB0byBjYXJlZnVsbHkgVVJMLWVuY29kZSB5b3VyIEpTT04gPGNvZGU+YXR0YWNobWVudHM8L2NvZGU+IGFuZCBwcmVzZW50IGFsbCBvdGhlciBmaWVsZHMgYXMgVVJMIGVuY29kZWQga2V5L3ZhbHVlIHBhaXJzOyBqdXN0IHNlbmQgSlNPTiBpbnN0ZWFkLjwvcD4KCjxwPk5vdyB5b3UgY2FuIHNlbmQgbWVzc2FnZXMgbG92aW5nbHkgYXV0aG9yZWQgd2l0aCB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+bWVzc2FnZSBidWlsZGVyPC9hPiB0byA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiB3aXRob3V0IGZ1cnRoZXIgbW9kaWZpY2F0aW9uLjwvcD4KCjxwPkxlYXJuIG1vcmUgYWJvdXQgdGhpcyBzdXBwb3J0IGluIHRoZSA8YSBocmVmPSIvd2ViIj5XZWIgQVBJPC9hPiBkb2NzIG9yIDxhIGhyZWY9Ii9jaGFuZ2Vsb2cvMjAxNy0xMC1rZWVwaW5nLXVwLXdpdGgtdGhlLWpzb25zIj50aGlzIGNoYW5nZWxvZzwvYT4uPC9wPgoKPGEgbmFtZT0icmVzcG9uc2UiPjwvYT48aDIgPlJlc3BvbnNlPC9oMj4KCjxkaXY+PHA+PHA+VHlwaWNhbCBzdWNjZXNzIHJlc3BvbnNlPC9wPgo8L3A+PHByZT48Y29kZSBjbGFzcz0ianNvbiI+ewogICAgJnF1b3Q7b2smcXVvdDs6IHRydWUsCiAgICAmcXVvdDtjaGFubmVsJnF1b3Q7OiAmcXVvdDtDMUg5UkVTR0wmcXVvdDssCiAgICAmcXVvdDt0cyZxdW90OzogJnF1b3Q7MTUwMzQzNTk1Ni4wMDAyNDcmcXVvdDssCiAgICAmcXVvdDttZXNzYWdlJnF1b3Q7OiB7CiAgICAgICAgJnF1b3Q7dGV4dCZxdW90OzogJnF1b3Q7SGVyZSdzIGEgbWVzc2FnZSBmb3IgeW91JnF1b3Q7LAogICAgICAgICZxdW90O3VzZXJuYW1lJnF1b3Q7OiAmcXVvdDtlY3RvMSZxdW90OywKICAgICAgICAmcXVvdDtib3RfaWQmcXVvdDs6ICZxdW90O0IxOUxVN0NTWSZxdW90OywKICAgICAgICAmcXVvdDthdHRhY2htZW50cyZxdW90OzogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAmcXVvdDt0ZXh0JnF1b3Q7OiAmcXVvdDtUaGlzIGlzIGFuIGF0dGFjaG1lbnQmcXVvdDssCiAgICAgICAgICAgICAgICAmcXVvdDtpZCZxdW90OzogMSwKICAgICAgICAgICAgICAgICZxdW90O2ZhbGxiYWNrJnF1b3Q7OiAmcXVvdDtUaGlzIGlzIGFuIGF0dGFjaG1lbnQncyBmYWxsYmFjayZxdW90OwogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAmcXVvdDt0eXBlJnF1b3Q7OiAmcXVvdDttZXNzYWdlJnF1b3Q7LAogICAgICAgICZxdW90O3N1YnR5cGUmcXVvdDs6ICZxdW90O2JvdF9tZXNzYWdlJnF1b3Q7LAogICAgICAgICZxdW90O3RzJnF1b3Q7OiAmcXVvdDsxNTAzNDM1OTU2LjAwMDI0NyZxdW90OwogICAgfQp9PC9jb2RlPjwvcHJlPjwvZGl2PjxkaXY+PHA+PHA+VHlwaWNhbCBlcnJvciByZXNwb25zZSBpZiB0b28gbWFueSBhdHRhY2htZW50cyBhcmUgaW5jbHVkZWQ8L3A+CjwvcD48cHJlPjxjb2RlIGNsYXNzPSJqc29uIj57CiAgICAmcXVvdDtvayZxdW90OzogZmFsc2UsCiAgICAmcXVvdDtlcnJvciZxdW90OzogJnF1b3Q7dG9vX21hbnlfYXR0YWNobWVudHMmcXVvdDsKfTwvY29kZT48L3ByZT48L2Rpdj4KCjxwPlRoZSByZXNwb25zZSBpbmNsdWRlcyB0aGUgInRpbWVzdGFtcCBJRCIgKDxjb2RlPnRzPC9jb2RlPikgYW5kIHRoZSBjaGFubmVsLWxpa2UgdGhpbmcgd2hlcmUgdGhlIG1lc3NhZ2Ugd2FzIHBvc3RlZC4gSXQgYWxzbyBpbmNsdWRlcyB0aGUgY29tcGxldGUgbWVzc2FnZSBvYmplY3QsIGFzIHBhcnNlZCBieSBvdXIgc2VydmVycy4gVGhpcyBtYXkgZGlmZmVyIGZyb20gdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcyBvdXIgc2VydmVycyBzYW5pdGl6ZSBsaW5rcywgYXR0YWNobWVudHMsIGFuZCBvdGhlciBwcm9wZXJ0aWVzLiBZb3VyIG1lc3NhZ2UgbWF5IG11dGF0ZS48L3A+Cgo8cD48YSBuYW1lPSJmb3JtYXR0aW5nIj48L2E+PC9wPgoKPGEgbmFtZT0iZm9ybWF0dGluZ19tZXNzYWdlcyI+PC9hPjxoMiA+Rm9ybWF0dGluZyBtZXNzYWdlczwvaDI+Cgo8cD5NZXNzYWdlcyBhcmUgZm9ybWF0dGVkIGFzIGRlc2NyaWJlZCBpbiB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZS1mb3JtYXR0aW5nIj5mb3JtYXR0aW5nIHNwZWM8L2E+LiBZb3UgY2FuIHNwZWNpZnkgdmFsdWVzIGZvciA8Y29kZT5wYXJzZTwvY29kZT4gYW5kIDxjb2RlPmxpbmtfbmFtZXM8L2NvZGU+IHRvIGNoYW5nZSBmb3JtYXR0aW5nIGJlaGF2aW9yLjwvcD4KCjxwPldoZW4gUE9TVGluZyB3aXRoIDxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT4gZGF0YSwgdGhlIG9wdGlvbmFsIDxjb2RlPmF0dGFjaG1lbnRzPC9jb2RlPiBhcmd1bWVudCBzaG91bGQgY29udGFpbiBhIEpTT04tZW5jb2RlZCBhcnJheSBvZiBhdHRhY2htZW50cy4gTWFrZSBpdCBlYXN5IG9uIHlvdXJzZWxmIGFuZCBzZW5kIHlvdXIgZW50aXJlIG1lc3NhZ2VzIGFzIDxjb2RlPmFwcGxpY2F0aW9uL2pzb248L2NvZGU+IGluc3RlYWQuPC9wPgoKPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZS1hdHRhY2htZW50cyI+YXR0YWNobWVudHMgc3BlYzwvYT4uIElmIHlvdSdyZSB1c2luZyBhIDxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBhcHA8L2E+LCB5b3UgY2FuIGFsc28gdXNlIHRoaXMgbWV0aG9kIHRvIGF0dGFjaCA8YSBocmVmPSIvZG9jcy9tZXNzYWdlLWJ1dHRvbnMiPm1lc3NhZ2UgYnV0dG9uczwvYT4uPC9wPgoKPHA+QnkgZGVmYXVsdCBsaW5rcyB0byBtZWRpYSBhcmUgdW5mdXJsZWQsIGJ1dCBsaW5rcyB0byB0ZXh0IGNvbnRlbnQgYXJlIG5vdC4gRm9yCm1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGRpZmZlcmVuY2VzIGFuZCBob3cgdG8gY29udHJvbCB0aGlzLCBzZWUgdGhlCjxhIGhyZWY9Ii9kb2NzL21lc3NhZ2UtYXR0YWNobWVudHMjdW5mdXJsaW5nIj50aGUgdW5mdXJsaW5nIGRvY3VtZW50YXRpb248L2E+LjwvcD4KCjxwPlVzZSB0aGUgPGEgaHJlZj0iL2RvY3MvbWVzc2FnZXMvYnVpbGRlciI+PHN0cm9uZz5NZXNzYWdlIEJ1aWxkZXI8L3N0cm9uZz48L2E+IHRvIHByZXZpZXcgeW91ciBtZXNzYWdlIGZvcm1hdHRpbmcgYW5kIGF0dGFjaG1lbnRzIGluIHJlYWwgdGltZSEgSXQncyBlYXN5IHRvIHRyYW5zbGF0ZSB5b3VyIEpTT04gZXhhbXBsZXMgdG8gdGhlIHBhcmFtZXRlcnMgdW5kZXJzdG9vZCBieSA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPi48L3A+Cgo8cD5Gb3IgYmVzdCByZXN1bHRzLCBsaW1pdCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIDxjb2RlPnRleHQ8L2NvZGU+IGZpZWxkIHRvIDQsMDAwIGNoYXJhY3RlcnMuIElkZWFsbHksIG1lc3NhZ2VzIHNob3VsZCBiZSBzaG9ydCBhbmQgaHVtYW4tcmVhZGFibGUuIFNsYWNrIHdpbGwgPGEgaHJlZj0iL2NoYW5nZWxvZy8yMDE4LXRydW5jYXRpbmctcmVhbGx5LWxvbmctbWVzc2FnZXMiPnRydW5jYXRlIG1lc3NhZ2VzPC9hPiBjb250YWluaW5nIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycy48L3A+Cgo8cD5JZiB5b3UgbmVlZCB0byBwb3N0IGxvbmdlciBtZXNzYWdlcywgcGxlYXNlIGNvbnNpZGVyIDxhIGhyZWY9Ii9tZXRob2RzL2ZpbGVzLnVwbG9hZCI+dXBsb2FkaW5nIGEgc25pcHBldCBpbnN0ZWFkPC9hPi48L3A+Cgo8cD5Db25zaWRlciByZXZpZXdpbmcgb3VyIDxhIGhyZWY9Ii9kb2NzL21lc3NhZ2UtZ3VpZGVsaW5lcyI+bWVzc2FnZSBndWlkZWxpbmVzPC9hPiwgZXNwZWNpYWxseSBpZiB5b3UncmUgdXNpbmcgYXR0YWNobWVudHMgb3IgbWVzc2FnZSBidXR0b25zLjwvcD4KCjxhIG5hbWU9ImF1dGhvcnNoaXAiPjwvYT48aDIgPkF1dGhvcnNoaXA8L2gyPgoKPHA+SG93IG1lc3NhZ2UgYXV0aG9yc2hpcCBpcyBhdHRyaWJ1dGVkIHZhcmllcyBieSBhIGZldyBmYWN0b3JzLCB3aXRoIHNvbWUgYmVoYXZpb3JzIHZhcnlpbmcgZGVwZW5kaW5nIG9uIHRoZSBraW5kcyBvZiB0b2tlbnMgeW91J3JlIHVzaW5nIHRvIHBvc3QgYSBtZXNzYWdlLjwvcD4KCjxwPlRoZSBiZXN0IHdheSB0byByZWFsaXplIHlvdXIgaW50ZW5kZWQgcmVzdWx0IGlzIHRvIGJlIGV4cGxpY2l0IHdpdGggdGhlIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHBhcmFtZXRlci48L3A+Cgo8cD48Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiB3YW50cyB5b3VyIG1lc3NhZ2UgcG9zdGluZyB0byBzdWNjZWVkIGFuZCBtYXkgYXR0ZW1wdCB0byBndWVzcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSA8Y29kZT5hc191c2VyPC9jb2RlPiBpbnRlcnByZXRhdGlvbiBiYXNlZCBvbiB0aGUga2luZCBvZiB0b2tlbiB5b3UncmUgdXNpbmcuPC9wPgoKPHA+SWYgPGNvZGU+YXNfdXNlcjwvY29kZT4gaXMgbm90IHByb3ZpZGVkIGF0IGFsbCwgdGhlbiB0aGUgdmFsdWUgaXMgaW5mZXJyZWQsIGJhc2VkIG9uIHRoZSBzY29wZXMgZ3JhbnRlZCB0byB0aGUgY2FsbGVyOiBJZiB0aGUgY2FsbGVyIDxlbT5jb3VsZDwvZW0+IHBvc3Qgd2l0aCA8Y29kZT5hc191c2VyPC9jb2RlPiBwYXNzZWQgYXMgPGNvZGU+ZmFsc2U8L2NvZGU+LCB0aGVuIHRoYXQgaXMgaG93IHRoZSBtZXRob2QgYmVoYXZlczsgb3RoZXJ3aXNlLCB0aGUgbWV0aG9kIGJlaGF2ZXMKYXMgaWYgPGNvZGU+YXNfdXNlcjwvY29kZT4gd2VyZSBwYXNzZWQgYXMgPGNvZGU+dHJ1ZTwvY29kZT4uPC9wPgoKPGEgbmFtZT0id2hlbl9hc191c2VyX2lzX2ZhbHNlIj48L2E+PGgzID5XaGVuIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIGZhbHNlPC9oMz4KCjxwPldoZW4gdGhlIDxjb2RlPmFzX3VzZXI8L2NvZGU+IHBhcmFtZXRlciBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LCBtZXNzYWdlcyBhcmUgcG9zdGVkIGFzICI8YSBocmVmPSIvZXZlbnRzL21lc3NhZ2UvYm90X21lc3NhZ2UiPjxjb2RlPmJvdF9tZXNzYWdlczwvY29kZT48L2E+Iiwgd2l0aCBtZXNzYWdlIGF1dGhvcnNoaXAgYXR0cmlidXRlZCB0byB0aGUgdXNlciBuYW1lIGFuZCBpY29ucyBhc3NvY2lhdGVkIHdpdGggdGhlIDxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHA8L2E+LjwvcD4KCjxwPldpdGggPGNvZGU+YXNfdXNlcjwvY29kZT4gc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiwgeW91IG1heSBhbHNvIHByb3ZpZGUgYSA8Y29kZT51c2VybmFtZTwvY29kZT4gdG8gZXhwbGljaXRseSBzcGVjaWZ5IHRoZSBib3QgdXNlcidzIGlkZW50aXR5IGZvciB0aGlzIG1lc3NhZ2UsIGFsb25nIHdpdGggPGNvZGU+aWNvbl91cmw8L2NvZGU+IG9yIDxjb2RlPmljb25fZW1vamk8L2NvZGU+LjwvcD4KCjxoNT5FZmZlY3Qgb24gaWRlbnRpdHk8L2g1PgoKPHA+VG9rZW4gdHlwZXMgcHJvdmlkZSB2YXJ5aW5nIGRlZmF1bHQgaWRlbnRpdHkgdmFsdWVzIGZvciA8Y29kZT51c2VybmFtZTwvY29kZT4sIDxjb2RlPmljb25fdXJsPC9jb2RlPiwgYW5kIDxjb2RlPmljb25fZW1vamk8L2NvZGU+LjwvcD4KCjx1bD4KPGxpPjxhIGhyZWY9Ii9kb2NzL29hdXRoLXRlc3QtdG9rZW5zIj50ZXN0IHRva2VuczwvYT4KCjx1bD4KPGxpPmdlbmVyaWMgdXNlciBpY29uIGFuZCAiYm90IiB1c2VybmFtZTwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHAgdXNlciB0b2tlbjwvYT4gd2l0aCA8YSBocmVmPSIvZG9jcy9vYXV0aC1zY29wZXMiPjxjb2RlPmNoYXQ6d3JpdGU6Ym90PC9jb2RlPjwvYT4KCjx1bD4KPGxpPmluaGVyaXRzIFNsYWNrIEFwcCdzIGljb24sIHdpdGggZ2VuZXJpYyAiYm90IiB1c2VybmFtZSAoc2VlIGJlbG93KTwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9ib3QtdXNlcnMjc2hhcmVfeW91cl9ib3RfdXNlcl9hc19hX3NsYWNrX2FwcCI+U2xhY2sgQXBwIGJvdCB1c2VyIHRva2VuPC9hPgoKPHVsPgo8bGk+aW5oZXJpdHMgU2xhY2sgQXBwJ3MgaWNvbiwgd2l0aCBnZW5lcmljICJib3QiIHVzZXJuYW1lIChzZWUgYmVsb3cpPC9saT4KPC91bD48L2xpPgo8L3VsPgoKPGJsb2NrcXVvdGU+CiAgPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBJbiB0aGUgU2xhY2sgQXBwIGNhc2VzIGFib3ZlLCBpdCB3b3VsZCBjZXJ0YWlubHkgbWFrZSBtb3JlIHNlbnNlIGZvciB5b3VyIGFwcGxpY2F0aW9uJ3MgbmFtZSB0byBiZSB0aGUgZGVmYXVsdCA8Y29kZT51c2VybmFtZTwvY29kZT4gYXNzb2NpYXRlZCB3aXRoIHlvdXIgYXBwLiBUaGlzIGluY29uc2lzdGVudCBiZWhhdmlvciB3aWxsIGJlIGNvcnJlY3RlZC4gT2YgY291cnNlLCB5b3UgY2FuIHN0aWxsIG5hbWUgeW91ciBib3QgImJvdCwiIGlmIHRoYXQgaXMgeW91ciBib3QncyBuYW1lLjwvcD4KPC9ibG9ja3F1b3RlPgoKPGEgbmFtZT0id2hlbl9hc191c2VyX2lzX3RydWUiPjwvYT48aDMgPldoZW4gPGNvZGU+YXNfdXNlcjwvY29kZT4gaXMgdHJ1ZTwvaDM+Cgo8cD5TZXQgPGNvZGU+YXNfdXNlcjwvY29kZT4gdG8gPGNvZGU+dHJ1ZTwvY29kZT4gYW5kIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgd2lsbCBhcHBlYXIgYXMgdGhlIGF1dGhvciBvZiB0aGUgbWVzc2FnZSwgaWdub3JpbmcgYW55IHZhbHVlcyBwcm92aWRlZCBmb3IgPGNvZGU+dXNlcm5hbWU8L2NvZGU+LCA8Y29kZT5pY29uX3VybDwvY29kZT4sIGFuZCA8Y29kZT5pY29uX2Vtb2ppPC9jb2RlPi4gUG9zdGluZyBhcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gdGhlCjxjb2RlPmNsaWVudDwvY29kZT4gb3IgdGhlIG1vcmUgcHJlZmVycmVkIDxjb2RlPmNoYXQ6d3JpdGU6dXNlcjwvY29kZT4gPGEgaHJlZj0iL2RvY3Mvb2F1dGgjYXV0aF9zY29wZXMiPnNjb3BlczwvYT4uPC9wPgoKPGg1PkVmZmVjdCBvbiBpZGVudGl0eTwvaDU+Cgo8cD5Ub2tlbiB0eXBlcyBwcm92aWRlIHZhcnlpbmcgZGVmYXVsdCBpZGVudGl0eSB2YWx1ZXMgZm9yIDxjb2RlPnVzZXJuYW1lPC9jb2RlPiwgPGNvZGU+aWNvbl91cmw8L2NvZGU+LCBhbmQgPGNvZGU+aWNvbl9lbW9qaTwvY29kZT4uPC9wPgoKPHVsPgo8bGk+PGEgaHJlZj0iL2RvY3Mvb2F1dGgtdGVzdC10b2tlbnMiPnRlc3QgdG9rZW5zPC9hPgoKPHVsPgo8bGk+aW5oZXJpdHMgdGhlIGljb24gYW5kIHVzZXJuYW1lIG9mIHRoZSB0b2tlbiBvd25lcjwvbGk+CjwvdWw+PC9saT4KPGxpPjxhIGhyZWY9Ii9zbGFjay1hcHBzIj5TbGFjayBBcHAgdXNlciB0b2tlbjwvYT4gd2l0aCA8YSBocmVmPSIvZG9jcy9vYXV0aC1zY29wZXMiPjxjb2RlPmNoYXQ6d3JpdGU6dXNlcjwvY29kZT48L2E+Cgo8dWw+CjxsaT5pbmhlcml0cyBpY29uIGFuZCB1c2VybmFtZSBvZiB0aGUgdG9rZW4gb3duZXI8L2xpPgo8L3VsPjwvbGk+CjxsaT48YSBocmVmPSIvYm90LXVzZXJzI3NoYXJlX3lvdXJfYm90X3VzZXJfYXNfYV9zbGFja19hcHAiPlNsYWNrIEFwcCBib3QgdXNlciB0b2tlbjwvYT4KCjx1bD4KPGxpPmluaGVyaXRzIFNsYWNrIEFwcCdzIGljb24gYW5kIGFwcCdzIGJvdCB1c2VybmFtZTwvbGk+CjwvdWw+PC9saT4KPC91bD4KCjxhIG5hbWU9InRocmVhZHNfYW5kX3JlcGxpZXMiPjwvYT48aDIgPlRocmVhZHMgYW5kIHJlcGxpZXM8L2gyPgoKPHA+UHJvdmlkZSBhIDxjb2RlPnRocmVhZF90czwvY29kZT4gdmFsdWUgZm9yIHRoZSBwb3N0ZWQgbWVzc2FnZSB0byBhY3QgYXMgYSByZXBseSB0byBhIHBhcmVudCBtZXNzYWdlLiBTcGFyaW5nbHkgc2V0IDxjb2RlPnJlcGx5X2Jyb2FkY2FzdDwvY29kZT4gdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgeW91ciByZXBseSBpcyBpbXBvcnRhbnQgZW5vdWdoIGZvciBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCB0byByZWNlaXZlLjwvcD4KCjxwPlNlZSA8YSBocmVmPSIvZG9jcy9tZXNzYWdlLXRocmVhZGluZyI+bWVzc2FnZSB0aHJlYWRpbmc8L2E+IGZvciBhIG1vcmUgaW4gZGVwdGggbG9vayBhdCBtZXNzYWdlIHRocmVhZGluZy48L3A+Cgo8YSBuYW1lPSJjaGFubmVscyI+PC9hPjxoMiA+Q2hhbm5lbHM8L2gyPgoKPHA+WW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGEgcHVibGljIGNoYW5uZWwsIHByaXZhdGUgY2hhbm5lbCwgb3IgYW4gSU0gY2hhbm5lbCB3aXRoIHRoZSA8Y29kZT5jaGFubmVsPC9jb2RlPiBhcmd1bWVudC4gRWFjaCBvbmUgYmVoYXZlcyBzbGlnaHRseSBkaWZmZXJlbnRseSBiYXNlZCBvbiB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgcGVybWlzc2lvbnMgYW5kIGFkZGl0aW9uYWwgYXJndW1lbnRzOjwvcD4KCjxhIG5hbWU9InBvc3RfdG9fYV9wdWJsaWNfY2hhbm5lbCI+PC9hPjxoNCA+UG9zdCB0byBhIHB1YmxpYyBjaGFubmVsPC9oND4KCjxwPllvdSBjYW4gZWl0aGVyIHBhc3MgdGhlIGNoYW5uZWwncyBuYW1lICg8Y29kZT4jZ2VuZXJhbDwvY29kZT4pIG9yIGVuY29kZWQgSUQgKDxjb2RlPkMwMjRCRTkxTDwvY29kZT4pLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQgdG8gdGhhdCBjaGFubmVsLiBUaGUgY2hhbm5lbCdzIElEIGNhbiBiZSByZXRyaWV2ZWQgdGhyb3VnaCB0aGUgPGEgaHJlZj0iL21ldGhvZHMvY2hhbm5lbHMubGlzdCI+Y2hhbm5lbHMubGlzdDwvYT4gQVBJIG1ldGhvZC48L3A+Cgo8YSBuYW1lPSJwb3N0X3RvX2FfcHJpdmF0ZV9ncm91cCI+PC9hPjxoNCA+UG9zdCB0byBhIHByaXZhdGUgZ3JvdXA8L2g0PgoKPHA+QXMgbG9uZyBhcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGlzIGEgbWVtYmVyIG9mIHRoZSBwcml2YXRlIGdyb3VwLCB5b3UgY2FuIGVpdGhlciBwYXNzIHRoZSBncm91cCdzIG5hbWUgKDxjb2RlPnNlY3JldC1ncm91cDwvY29kZT4pIG9yIGVuY29kZWQgSUQgKDxjb2RlPkcwMTJBQzg2QzwvY29kZT4pLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQgdG8gdGhhdCBncm91cC4gVGhlIHByaXZhdGUgZ3JvdXAncyBJRCBjYW4gYmUgcmV0cmlldmVkIHRocm91Z2ggdGhlIDxhIGhyZWY9Ii9tZXRob2RzL2dyb3Vwcy5saXN0Ij5ncm91cHMubGlzdDwvYT4gQVBJIG1ldGhvZC48L3A+Cgo8YSBuYW1lPSJwb3N0X3RvX2FuX2ltX2NoYW5uZWwiPjwvYT48aDQgPlBvc3QgdG8gYW4gSU0gY2hhbm5lbDwvaDQ+Cgo8cD5XYXJuaW5nOiBoZXJlIGJlIGRyYWdvbnMuIFBvc3RpbmcgdG8gYW4gSU0gY2hhbm5lbCBpcyBhIGxpdHRsZSBtb3JlIGNvbXBsZXggZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiA8Y29kZT5hc191c2VyPC9jb2RlPiBhbmQgdGhlIHR5cGUgb2YgdG9rZW4gYXNzb2NpYXRlZCB3aXRoIHlvdXIgYXBwLjwvcD4KCjx1bD4KPGxpPklmIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIGZhbHNlOgoKPHVsPgo8bGk+UGFzcyB0aGUgSU0gY2hhbm5lbCdzIElEICg8Y29kZT5EMDIzQkIzTDI8L2NvZGU+KSBhcyB0aGUgdmFsdWUgb2YgPGNvZGU+Y2hhbm5lbDwvY29kZT4gdG8gcG9zdCB0byB0aGF0IElNIGNoYW5uZWwgPGVtPmFzIHRoZSBhcHAsIGJvdCwgb3IgdXNlciBhc3NvY2lhdGVkIHdpdGggdGhlIHRva2VuPC9lbT4uIFlvdSBjYW4gY2hhbmdlIHRoZSBpY29uIGFuZCB1c2VybmFtZSB0aGF0IGdvIHdpdGggdGhlIG1lc3NhZ2UgdXNpbmcgdGhlIDxjb2RlPmljb25fdXJsPC9jb2RlPiBhbmQgPGNvZGU+dXNlcm5hbWU8L2NvZGU+IHBhcmFtZXRlcnMuIFRoZSBJTSBjaGFubmVsJ3MgSUQgY2FuIGJlIHJldHJpZXZlZCB0aHJvdWdoIHRoZSA8YSBocmVmPSIvbWV0aG9kcy9pbS5saXN0Ij5pbS5saXN0PC9hPiBBUEkgbWV0aG9kLjwvbGk+CjwvdWw+PC9saT4KPGxpPklmIDxjb2RlPmFzX3VzZXI8L2NvZGU+IGlzIHRydWUgKGZvciB3b3Jrc3BhY2UgYXBwcywgdGhpcyBpcyBhbHdheXMgdGhlIGNhc2UpOgoKPHVsPgo8bGk+UGFzcyB0aGUgSU0gY2hhbm5lbCdzIElEICg8Y29kZT5EMDIzQkIzTDI8L2NvZGU+KSBvciBhIHVzZXIncyBJRCAoPGNvZGU+VTBHOVFGOUM2PC9jb2RlPikgYXMgdGhlIHZhbHVlIG9mIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHRvIHBvc3QgdG8gdGhhdCBJTSBjaGFubmVsIDxlbT5hcyB0aGUgYXBwLCBib3QsIG9yIHVzZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSB0b2tlbjwvZW0+LiBUaGUgSU0gY2hhbm5lbCdzIElEIGNhbiBiZSByZXRyaWV2ZWQgdGhyb3VnaCB0aGUgPGEgaHJlZj0iL21ldGhvZHMvaW0ubGlzdCI+aW0ubGlzdDwvYT4gQVBJIG1ldGhvZC4gV2hlbiA8Y29kZT5hc191c2VyPC9jb2RlPiBpcyB0cnVlLCB0aGUgY2FsbGVyIG1heSA8ZW0+bm90PC9lbT4gbWFuaXB1bGF0ZSB0aGUgaWNvbiBhbmQgdXNlcm5hbWUgb24gdGhlIG1lc3NhZ2UuCllvdSBtaWdodCByZWNlaXZlIGEgPGNvZGU+Y2hhbm5lbF9ub3RfZm91bmQ8L2NvZGU+IGVycm9yIGlmIHlvdXIgYXBwIGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGVudGVyIGludG8gYW4gSU0gd2l0aCB0aGUgaW50ZW5kZWQgdXNlci48L2xpPgo8L3VsPjwvbGk+CjwvdWw+Cgo8cD5UbyBzZW5kIGEgZGlyZWN0IG1lc3NhZ2UgdG8gdGhlIHVzZXIgPGVtPm93bmluZzwvZW0+IHRoZSB0b2tlbiB1c2VkIGluIHRoZSByZXF1ZXN0LCBwcm92aWRlIHRoZSA8Y29kZT5jaGFubmVsPC9jb2RlPiBmaWVsZCB3aXRoIGEgY29udmVyc2F0aW9uL0lNIElEIHZhbHVlIGZvdW5kIGluIGEgbWV0aG9kIGxpa2UgPGEgaHJlZj0iL21ldGhvZHMvaW0ubGlzdCI+PGNvZGU+aW0ubGlzdDwvY29kZT48L2E+LjwvcD4KCjxwIGNsYXNzPSJhbGVydCBhbGVydF9pbmZvIj4KICAgIDx0cy1pY29uIGNsYXNzPSJ0c19pY29uX2luZm9fY2lyY2xlIj48L3RzLWljb24+IFdlIGFyZSBwaGFzaW5nIG91dCBzdXBwb3J0IGZvciBhbWJpZ3VvdXNseSBwYXNzaW5nIGEgInVzZXJuYW1lIiBhcyBhIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHZhbHVlLiBQbGVhc2UgPGVtPmFsd2F5czwvZW0+IHVzZSBjaGFubmVsLWxpa2UgSURzIGluc3RlYWQuCjwvcD4KCjxwPjxhIG5hbWU9ImFwcF9ob21lIj48L2E+PC9wPgoKPGEgbmFtZT0iYmVnaW5fYV9jb252ZXJzYXRpb25faW5fYV91c2VyX3NfYXBwX2hvbWUiPjwvYT48aDIgPkJlZ2luIGEgY29udmVyc2F0aW9uIGluIGEgdXNlcidzIEFwcCBIb21lPC9oMj4KCjxwPlN0YXJ0IGEgY29udmVyc2F0aW9uIHdpdGggdXNlcnMgaW4geW91ciA8YSBocmVmPSIvcmVmZXJlbmNlL2FwcC1ob21lIj5BcHAgSG9tZTwvYT4uPC9wPgoKPHA+V2l0aCB0aGUgPGNvZGU+Y2hhdDp3cml0ZTwvY29kZT4gc2NvcGUgZW5hYmxlZCwgY2FsbCA8Y29kZT5jaGF0LnBvc3RNZXNzYWdlPC9jb2RlPiBhbmQgcGFzcyBhIHVzZXIncyBJRCAoPGNvZGU+VTBHOVFGOUM2PC9jb2RlPikgYXMgdGhlIHZhbHVlIG9mIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHRvIHBvc3QgdG8gdGhhdCB1c2VyJ3MgQXBwIEhvbWUgY2hhbm5lbC4gWW91IGNhbiB1c2UgdGhlaXIgZGlyZWN0IG1lc3NhZ2UgY2hhbm5lbCBJRCAoYXMgZm91bmQgd2l0aCA8Y29kZT5pbS5vcGVuPC9jb2RlPiwgZm9yIGluc3RhbmNlKSBpbnN0ZWFkLjwvcD4KCjxhIG5hbWU9InJhdGVfbGltaXRpbmciPjwvYT48aDIgPlJhdGUgbGltaXRpbmc8L2gyPgoKPHA+PGNvZGU+Y2hhdC5wb3N0TWVzc2FnZTwvY29kZT4gaGFzIHNwZWNpYWwgPGEgaHJlZj0iL2RvY3MvcmF0ZS1saW1pdHMiPnJhdGUgbGltaXRpbmc8L2E+IGNvbmRpdGlvbnMuIEl0IHdpbGwgZ2VuZXJhbGx5IGFsbG93IGFuIGFwcCB0byBwb3N0IDEgbWVzc2FnZSBwZXIgc2Vjb25kIHRvIGEgc3BlY2lmaWMgY2hhbm5lbC4gVGhlcmUgYXJlIGxpbWl0cyBnb3Zlcm5pbmcgeW91ciBhcHAncyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgZW50aXJlIHdvcmtzcGFjZSBhYm92ZSB0aGF0LCBsaW1pdGluZyBwb3N0aW5nIHRvIHNldmVyYWwgaHVuZHJlZCBtZXNzYWdlcyBwZXIgbWludXRlLiBHZW5lcm91cyBidXJzdCBiZWhhdmlvciBpcyBhbHNvIGdyYW50ZWQuPC9wPgoKPGEgbmFtZT0iZXJyb3JzIj48L2E+PGgyID5FcnJvcnM8L2gyPgoKPHA+IFRoaXMgdGFibGUgbGlzdHMgdGhlIGV4cGVjdGVkIGVycm9ycyB0aGF0IHRoaXMgbWV0aG9kIGNvdWxkIHJldHVybi4gSG93ZXZlciwgb3RoZXIgZXJyb3JzIGNhbiBiZSByZXR1cm5lZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VydmljZSBpcyBkb3duIG9yIG90aGVyIHVuZXhwZWN0ZWQgZmFjdG9ycyBhZmZlY3QgcHJvY2Vzc2luZy4gQ2FsbGVycyBzaG91bGQgYWx3YXlzIGNoZWNrIHRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+b2s8L2NvZGU+IHBhcmFtcyBpbiB0aGUgcmVzcG9uc2UuIDwvcD48dGFibGUgY2xhc3M9ImFyZ3VtZW50cyBmdWxsX3dpZHRoIj48dHI+PHRoPkVycm9yPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+PHRyPjx0ZD48Y29kZT5jaGFubmVsX25vdF9mb3VuZDwvY29kZT48L3RkPjx0ZD48cD5WYWx1ZSBwYXNzZWQgZm9yIDxjb2RlPmNoYW5uZWw8L2NvZGU+IHdhcyBpbnZhbGlkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bm90X2luX2NoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PHA+Q2Fubm90IHBvc3QgdXNlciBtZXNzYWdlcyB0byBhIGNoYW5uZWwgdGhleSBhcmUgbm90IGluLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aXNfYXJjaGl2ZWQ8L2NvZGU+PC90ZD48dGQ+PHA+Q2hhbm5lbCBoYXMgYmVlbiBhcmNoaXZlZC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1zZ190b29fbG9uZzwvY29kZT48L3RkPjx0ZD48cD5NZXNzYWdlIHRleHQgaXMgdG9vIGxvbmc8L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm5vX3RleHQ8L2NvZGU+PC90ZD48dGQ+PHA+Tm8gbWVzc2FnZSB0ZXh0IHByb3ZpZGVkPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXN0cmljdGVkX2FjdGlvbjwvY29kZT48L3RkPjx0ZD48cD5BIHdvcmtzcGFjZSBwcmVmZXJlbmNlIHByZXZlbnRzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgZnJvbSBwb3N0aW5nLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVzdHJpY3RlZF9hY3Rpb25fcmVhZF9vbmx5X2NoYW5uZWw8L2NvZGU+PC90ZD48dGQ+PHA+Q2Fubm90IHBvc3QgYW55IG1lc3NhZ2UgaW50byBhIHJlYWQtb25seSBjaGFubmVsLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+cmVzdHJpY3RlZF9hY3Rpb25fdGhyZWFkX29ubHlfY2hhbm5lbDwvY29kZT48L3RkPjx0ZD48cD5DYW5ub3QgcG9zdCB0b3AtbGV2ZWwgbWVzc2FnZXMgaW50byBhIHRocmVhZC1vbmx5IGNoYW5uZWwuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXN0cmljdGVkX2FjdGlvbl9ub25fdGhyZWFkYWJsZV9jaGFubmVsPC9jb2RlPjwvdGQ+PHRkPjxwPkNhbm5vdCBwb3N0IHRocmVhZCByZXBsaWVzIGludG8gYSBub25fdGhyZWFkYWJsZSBjaGFubmVsLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+dG9vX21hbnlfYXR0YWNobWVudHM8L2NvZGU+PC90ZD48dGQ+PHA+VG9vIG1hbnkgYXR0YWNobWVudHMgd2VyZSBwcm92aWRlZCB3aXRoIHRoaXMgbWVzc2FnZS4gQSBtYXhpbXVtIG9mIDEwMCBhdHRhY2htZW50cyBhcmUgYWxsb3dlZCBvbiBhIG1lc3NhZ2UuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yYXRlX2xpbWl0ZWQ8L2NvZGU+PC90ZD48dGQ+PHA+QXBwbGljYXRpb24gaGFzIHBvc3RlZCB0b28gbWFueSBtZXNzYWdlcywgPGEgaHJlZj0iL2RvY3MvcmF0ZS1saW1pdHMiPnJlYWQgdGhlIFJhdGUgTGltaXQgZG9jdW1lbnRhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb248L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmFzX3VzZXJfbm90X3N1cHBvcnRlZDwvY29kZT48L3RkPjx0ZD48cD5UaGUgPGNvZGU+YXNfdXNlcjwvY29kZT4gcGFyYW1ldGVyIGRvZXMgbm90IGZ1bmN0aW9uIHdpdGggd29ya3NwYWNlIGFwcHMuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5la21fYWNjZXNzX2RlbmllZDwvY29kZT48L3RkPjx0ZD48cD5BZG1pbmlzdHJhdG9ycyBoYXZlIHN1c3BlbmRlZCB0aGUgYWJpbGl0eSB0byBwb3N0IGEgbWVzc2FnZS48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm5vdF9hdXRoZWQ8L2NvZGU+PC90ZD48dGQ+PHA+Tm8gYXV0aGVudGljYXRpb24gdG9rZW4gcHJvdmlkZWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5pbnZhbGlkX2F1dGg8L2NvZGU+PC90ZD48dGQ+PHA+U29tZSBhc3BlY3Qgb2YgYXV0aGVudGljYXRpb24gY2Fubm90IGJlIHZhbGlkYXRlZC4gRWl0aGVyIHRoZSBwcm92aWRlZCB0b2tlbiBpcyBpbnZhbGlkIG9yIHRoZSByZXF1ZXN0IG9yaWdpbmF0ZXMgZnJvbSBhbiBJUCBhZGRyZXNzIGRpc2FsbG93ZWQgZnJvbSBtYWtpbmcgdGhlIHJlcXVlc3QuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5hY2NvdW50X2luYWN0aXZlPC9jb2RlPjwvdGQ+PHRkPjxwPkF1dGhlbnRpY2F0aW9uIHRva2VuIGlzIGZvciBhIGRlbGV0ZWQgdXNlciBvciB3b3Jrc3BhY2UuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50b2tlbl9yZXZva2VkPC9jb2RlPjwvdGQ+PHRkPjxwPkF1dGhlbnRpY2F0aW9uIHRva2VuIGlzIGZvciBhIGRlbGV0ZWQgdXNlciBvciB3b3Jrc3BhY2Ugb3IgdGhlIGFwcCBoYXMgYmVlbiByZW1vdmVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bm9fcGVybWlzc2lvbjwvY29kZT48L3RkPjx0ZD48cD5UaGUgd29ya3NwYWNlIHRva2VuIHVzZWQgaW4gdGhpcyByZXF1ZXN0IGRvZXMgbm90IGhhdmUgdGhlIHBlcm1pc3Npb25zIG5lY2Vzc2FyeSB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4gTWFrZSBzdXJlIHlvdXIgYXBwIGlzIGEgbWVtYmVyIG9mIHRoZSBjb252ZXJzYXRpb24gaXQncyBhdHRlbXB0aW5nIHRvIHBvc3QgYSBtZXNzYWdlIHRvLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+b3JnX2xvZ2luX3JlcXVpcmVkPC9jb2RlPjwvdGQ+PHRkPjxwPlRoZSB3b3Jrc3BhY2UgaXMgdW5kZXJnb2luZyBhbiBlbnRlcnByaXNlIG1pZ3JhdGlvbiBhbmQgd2lsbCBub3QgYmUgYXZhaWxhYmxlIHVudGlsIG1pZ3JhdGlvbiBpcyBjb21wbGV0ZS48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1pc3Npbmdfc2NvcGU8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIHRva2VuIHVzZWQgaXMgbm90IGdyYW50ZWQgdGhlIHNwZWNpZmljIHNjb3BlIHBlcm1pc3Npb25zIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgcmVxdWVzdC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmludmFsaWRfYXJndW1lbnRzPC9jb2RlPjwvdGQ+PHRkPjxwPlRoZSBtZXRob2Qgd2FzIGNhbGxlZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aW52YWxpZF9hcmdfbmFtZTwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBwYXNzZWQgYW4gYXJndW1lbnQgd2hvc2UgbmFtZSBmYWxscyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgYWNjZXB0ZWQgb3IgZXhwZWN0ZWQgdmFsdWVzLiBUaGlzIGluY2x1ZGVzIHZlcnkgbG9uZyBuYW1lcyBhbmQgbmFtZXMgd2l0aCBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiA8Y29kZT5fPC9jb2RlPi4gSWYgeW91IGdldCB0aGlzIGVycm9yLCBpdCBpcyB0eXBpY2FsbHkgYW4gaW5kaWNhdGlvbiB0aGF0IHlvdSBoYXZlIG1hZGUgYSA8ZW0+dmVyeTwvZW0+IG1hbGZvcm1lZCBBUEkgY2FsbC48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPmludmFsaWRfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYnV0IHRoZSA8Y29kZT5jaGFyc2V0PC9jb2RlPiBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPkNvbnRlbnQtVHlwZTwvY29kZT4gaGVhZGVyIHdhcyBpbnZhbGlkLiBWYWxpZCBjaGFyc2V0IG5hbWVzIGFyZTogPGNvZGU+dXRmLTg8L2NvZGU+IDxjb2RlPmlzby04ODU5LTE8L2NvZGU+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+aW52YWxpZF9mb3JtX2RhdGE8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3Qgd2l0aCA8Y29kZT5Db250ZW50LVR5cGU8L2NvZGU+IDxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT4gb3IgPGNvZGU+bXVsdGlwYXJ0L2Zvcm0tZGF0YTwvY29kZT4sIGJ1dCB0aGUgZm9ybSBkYXRhIHdhcyBlaXRoZXIgbWlzc2luZyBvciBzeW50YWN0aWNhbGx5IGludmFsaWQuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5pbnZhbGlkX3Bvc3RfdHlwZTwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYnV0IHRoZSBzcGVjaWZpZWQgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiB3YXMgaW52YWxpZC4gVmFsaWQgdHlwZXMgYXJlOiA8Y29kZT5hcHBsaWNhdGlvbi9qc29uPC9jb2RlPiA8Y29kZT5hcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ8L2NvZGU+IDxjb2RlPm11bHRpcGFydC9mb3JtLWRhdGE8L2NvZGU+IDxjb2RlPnRleHQvcGxhaW48L2NvZGU+LjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+bWlzc2luZ19wb3N0X3R5cGU8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3QgYW5kIGluY2x1ZGVkIGEgZGF0YSBwYXlsb2FkLCBidXQgdGhlIHJlcXVlc3QgZGlkIG5vdCBpbmNsdWRlIGEgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiBoZWFkZXIuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT50ZWFtX2FkZGVkX3RvX29yZzwvY29kZT48L3RkPjx0ZD48cD5UaGUgd29ya3NwYWNlIGFzc29jaWF0ZWQgd2l0aCB5b3VyIHJlcXVlc3QgaXMgY3VycmVudGx5IHVuZGVyZ29pbmcgbWlncmF0aW9uIHRvIGFuIEVudGVycHJpc2UgT3JnYW5pemF0aW9uLiBXZWIgQVBJIGFuZCBvdGhlciBwbGF0Zm9ybSBvcGVyYXRpb25zIHdpbGwgYmUgaW50ZXJtaXR0ZW50bHkgdW5hdmFpbGFibGUgdW50aWwgdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGUuPC9wPgo8L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT5yZXF1ZXN0X3RpbWVvdXQ8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIG1ldGhvZCB3YXMgY2FsbGVkIHZpYSBhIDxjb2RlPlBPU1Q8L2NvZGU+IHJlcXVlc3QsIGJ1dCB0aGUgPGNvZGU+UE9TVDwvY29kZT4gZGF0YSB3YXMgZWl0aGVyIG1pc3Npbmcgb3IgdHJ1bmNhdGVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+ZmF0YWxfZXJyb3I8L2NvZGU+PC90ZD48dGQ+PHA+VGhlIHNlcnZlciBjb3VsZCBub3QgY29tcGxldGUgeW91ciBvcGVyYXRpb24ocykgd2l0aG91dCBlbmNvdW50ZXJpbmcgYSBjYXRhc3Ryb3BoaWMgZXJyb3IuIEl0J3MgcG9zc2libGUgc29tZSBhc3BlY3Qgb2YgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQgYmVmb3JlIHRoZSBlcnJvciB3YXMgcmFpc2VkLjwvcD4KPC90ZD48L3RyPjwvdGFibGU+Cgo8YSBuYW1lPSJ3YXJuaW5ncyI+PC9hPjxoMiA+V2FybmluZ3M8L2gyPgoKPHA+IFRoaXMgdGFibGUgbGlzdHMgdGhlIGV4cGVjdGVkIHdhcm5pbmdzIHRoYXQgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4uIEhvd2V2ZXIsIG90aGVyIHdhcm5pbmdzIGNhbiBiZSByZXR1cm5lZCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc2VydmljZSBpcyBleHBlcmllbmNpbmcgdW5leHBlY3RlZCB0cm91YmxlLiA8L3A+PHRhYmxlIGNsYXNzPSJhcmd1bWVudHMgZnVsbF93aWR0aCI+PHRyPjx0aD5XYXJuaW5nPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+PHRyPjx0ZD48Y29kZT5tZXNzYWdlX3RydW5jYXRlZDwvY29kZT48L3RkPjx0ZD48cD5UaGUgPGNvZGU+dGV4dDwvY29kZT4gZmllbGQgb2YgYSBtZXNzYWdlIHNob3VsZCBoYXZlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycy4gV2UgPGEgaHJlZj0iL2NoYW5nZWxvZy8yMDE4LTA0LXRydW5jYXRpbmctcmVhbGx5LWxvbmctbWVzc2FnZXMiPnRydW5jYXRlIHJlYWxseSBsb25nIG1lc3NhZ2VzPC9hPi48L3A+CjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPm1pc3NpbmdfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYW5kIHJlY29tbWVuZGVkIHByYWN0aWNlIGZvciB0aGUgc3BlY2lmaWVkIDxjb2RlPkNvbnRlbnQtVHlwZTwvY29kZT4gaXMgdG8gaW5jbHVkZSBhIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IHBhcmFtZXRlci4gSG93ZXZlciwgbm8gPGNvZGU+Y2hhcnNldDwvY29kZT4gd2FzIHByZXNlbnQuIFNwZWNpZmljYWxseSwgbm9uLWZvcm0tZGF0YSBjb250ZW50IHR5cGVzIChlLmcuIDxjb2RlPnRleHQvcGxhaW48L2NvZGU+KSBhcmUgdGhlIG9uZXMgZm9yIHdoaWNoIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IGlzIHJlY29tbWVuZGVkLjwvcD4KPC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+c3VwZXJmbHVvdXNfY2hhcnNldDwvY29kZT48L3RkPjx0ZD48cD5UaGUgbWV0aG9kIHdhcyBjYWxsZWQgdmlhIGEgPGNvZGU+UE9TVDwvY29kZT4gcmVxdWVzdCwgYW5kIHRoZSBzcGVjaWZpZWQgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiBpcyBub3QgZGVmaW5lZCB0byB1bmRlcnN0YW5kIHRoZSA8Y29kZT5jaGFyc2V0PC9jb2RlPiBwYXJhbWV0ZXIuIEhvd2V2ZXIsIDxjb2RlPmNoYXJzZXQ8L2NvZGU+IHdhcyBpbiBmYWN0IHByZXNlbnQuIFNwZWNpZmljYWxseSwgZm9ybS1kYXRhIGNvbnRlbnQgdHlwZXMgKGUuZy4gPGNvZGU+bXVsdGlwYXJ0L2Zvcm0tZGF0YTwvY29kZT4pIGFyZSB0aGUgb25lcyBmb3Igd2hpY2ggPGNvZGU+Y2hhcnNldDwvY29kZT4gaXMgc3VwZXJmbHVvdXMuPC9wPgo8L3RkPjwvdHI+PC90YWJsZT4KPC9zZWN0aW9uPjwvZGl2PjxkaXYgaWQ9Im92ZXJsYXkiPjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyX2JvdGgiPjwvZGl2PjwvZGl2PjwvZGl2Pjxmb290ZXIgZGF0YS1xYT0iZm9vdGVyIj48c2VjdGlvbiBjbGFzcz0ibGlua3MiPjxkaXYgY2xhc3M9ImdyaWQiPjxkaXYgY2xhc3M9ImNvbCBzcGFuXzFfb2ZfNCBuYXZfY29sIj48dWw+PGxpIGNsYXNzPSJjYXRfMSI+VXNpbmcgU2xhY2s8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9pcyIgZGF0YS1xYT0icHJvZHVjdF9mb290ZXIiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9wcm9kdWN0Ij5Qcm9kdWN0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2VudGVycHJpc2UiIGRhdGEtcWE9ImVudGVycHJpc2VfZm9vdGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZW50ZXJwcmlzZSI+RW50ZXJwcmlzZTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9wcmljaW5nP3VpX3N0ZXA9MjgmdWlfZWxlbWVudD01IiBkYXRhLXFhPSJwcmljaW5nX2Zvb3RlciIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX3ByaWNpbmciPlByaWNpbmc8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9nZXQuc2xhY2suaGVscC9oYy9lbi11cyIgZGF0YS1xYT0ic3VwcG9ydF9mb290ZXIiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zdXBwb3J0Ij5TdXBwb3J0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2d1aWRlcyIgZGF0YS1xYT0iZ2V0dGluZ19zdGFydGVkIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZ2V0dGluZ19zdGFydGVkIj5TbGFjayBHdWlkZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vYXBwcyIgZGF0YS1xYT0iYXBwX2RpcmVjdG9yeSIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2FwcF9kaXJlY3RvcnkiPkFwcCBEaXJlY3Rvcnk8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9hcGkuc2xhY2suY29tLyIgZGF0YS1xYT0iYXBpIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfYXBpIj5BUEk8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImNvbCBzcGFuXzFfb2ZfNCBuYXZfY29sIj48dWw+PGxpIGNsYXNzPSJjYXRfMiI+U2xhY2sgPHRzLWljb24gY2xhc3M9InRzX2ljb25faGVhcnQiPjwvdHMtaWNvbj48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9qb2JzIiBkYXRhLXFhPSJqb2JzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfam9icyI+Sm9iczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9jdXN0b21lcnMiIGRhdGEtcWE9ImN1c3RvbWVycyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2N1c3RvbWVycyI+Q3VzdG9tZXJzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2RldmVsb3BlcnMiIGRhdGEtcWE9ImRldmVsb3BlcnMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9kZXZlbG9wZXJzIj5EZXZlbG9wZXJzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2V2ZW50cyIgZGF0YS1xYT0iZXZlbnRzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZXZlbnRzIj5FdmVudHM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFja2hxLmNvbS8iIGRhdGEtcWE9ImJsb2dfZm9vdGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfYmxvZyI+QmxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLnNob3AvIiBkYXRhLXFhPSJzbGFja19zaG9wIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfc2hvcCI+U2xhY2sgU2hvcDwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iY29sIHNwYW5fMV9vZl80IG5hdl9jb2wiPjx1bD48bGkgY2xhc3M9ImNhdF8zIj5MZWdhbDwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3ByaXZhY3ktcG9saWN5IiBkYXRhLXFhPSJwcml2YWN5IiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfcHJpdmFjeSI+UHJpdmFjeTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9zZWN1cml0eSIgZGF0YS1xYT0ic2VjdXJpdHkiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zZWN1cml0eSI+U2VjdXJpdHk8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9zbGFjay5jb20vdGVybXMtb2Ytc2VydmljZSIgZGF0YS1xYT0idG9zIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfdG9zIj5UZXJtcyBvZiBTZXJ2aWNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL3BvbGljaWVzIiBkYXRhLXFhPSJwb2xpY2llcyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX3BvbGljaWVzIj5Qb2xpY2llczwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iY29sIHNwYW5fMV9vZl80IG5hdl9jb2wiPjx1bD48bGkgY2xhc3M9ImNhdF80Ij5IYW5keSBMaW5rczwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2Rvd25sb2FkcyIgZGF0YS1xYT0iZG93bmxvYWRzIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfZG93bmxvYWRzIj5Eb3dubG9hZCBkZXNrdG9wIGFwcDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbS9kb3dubG9hZHMiIGRhdGEtcWE9ImRvd25sb2Fkc19tb2JpbGUiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9kb3dubG9hZHNfbW9iaWxlIj5Eb3dubG9hZCBtb2JpbGUgYXBwPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2JyYW5kLWd1aWRlbGluZXMiIGRhdGEtcWE9ImJyYW5kX2d1aWRlbGluZXMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9icmFuZF9ndWlkZWxpbmVzIj5CcmFuZCBHdWlkZWxpbmVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2thdHdvcmsuY29tIiBkYXRhLXFhPSJzbGFja19hdF93b3JrIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfYXRfd29yayI+U2xhY2sgYXQgV29yazwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL3N0YXR1cy5zbGFjay5jb20vIiBkYXRhLXFhPSJzdGF0dXMiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zdGF0dXMiPlN0YXR1czwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9ImZvb3Rub3RlIj48c2VjdGlvbj48YSBocmVmPSJodHRwczovL3NsYWNrLmNvbSIgYXJpYS1sYWJlbD0iU2xhY2sgaG9tZXBhZ2UiIGRhdGEtY2xvZy1ldmVudD0iV0VCU0lURV9DTElDSyIgZGF0YS1jbG9nLXBhcmFtcz0iY2xpY2tfdGFyZ2V0PWZvb3Rlcl9zbGFja19pY29uIj48dHMtaWNvbiBjbGFzcz0iYy1pY29uLS1zbGFjayIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48dWw+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2xhY2suY29tL2hlbHAvY29udGFjdCIgZGF0YS1xYT0iY29udGFjdF91cyIgZGF0YS1jbG9nLWV2ZW50PSJXRUJTSVRFX0NMSUNLIiBkYXRhLWNsb2ctcGFyYW1zPSJjbGlja190YXJnZXQ9Zm9vdGVyX2NvbnRhY3RfdXMiPkNvbnRhY3QgVXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9TbGFja0hRIiBkYXRhLXFhPSJzbGFja190d2l0dGVyIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfdHdpdHRlciIgYXJpYS1sYWJlbD0iU2xhY2sgb24gVHdpdHRlciI+PHRzLWljb24gY2xhc3M9InRzX2ljb25fdHdpdHRlciIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48L2xpPjxsaSBjbGFzcz0ieXQiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUNZM1lFQ2dlQmNMQ3pJckZMUDRnYmx3IiBkYXRhLXFhPSJzbGFja195b3V0dWJlIiBkYXRhLWNsb2ctZXZlbnQ9IldFQlNJVEVfQ0xJQ0siIGRhdGEtY2xvZy1wYXJhbXM9ImNsaWNrX3RhcmdldD1mb290ZXJfc2xhY2tfeW91dHViZSIgYXJpYS1sYWJlbD0iU2xhY2sgb24gWW91VHViZSI+PHRzLWljb24gY2xhc3M9InRzX2ljb25feW91dHViZSIgYXJpYS1oaWRkZW4+PC90cy1pY29uPjwvYT48L2xpPjwvdWw+PC9zZWN0aW9uPjwvZGl2PjwvZm9vdGVyPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyoqCiAqIEEgcGxhY2Vob2xkZXIgZnVuY3Rpb24gdGhhdCB0aGUgYnVpbGQgc2NyaXB0IHVzZXMgdG8KICogcmVwbGFjZSBmaWxlIHBhdGhzIHdpdGggdGhlaXIgQ0ROIHZlcnNpb25zLgogKgogKiBAcGFyYW0ge1N0cmluZ30gZmlsZV9wYXRoIC0gRmlsZSBwYXRoCiAqIEByZXR1cm5zIHtTdHJpbmd9CiAqLwpmdW5jdGlvbiB2dnYoZmlsZV9wYXRoKSB7CgkJIHZhciB2dnZfd2FybmluZyA9ICdZb3UgY2Fubm90IHVzZSB2dnYgb24gZHluYW1pYyB2YWx1ZXMuIFBsZWFzZSBtYWtlIHN1cmUgeW91IG9ubHkgcGFzcyBpbiBzdGF0aWMgZmlsZSBwYXRocy4nOyBpZiAoVFMgJiYgVFMud2FybikgeyBUUy53YXJuKHZ2dl93YXJuaW5nKTsgfSBlbHNlIHsgY29uc29sZS53YXJuKHZ2dl93YXJuaW5nKTsgfSAKCXJldHVybiBmaWxlX3BhdGg7Cn0KCnZhciBjZG5fdXJsID0gImh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tIjsKdmFyIHZ2dl9hYnNfdXJsID0gImh0dHBzOlwvXC9zbGFjay5jb21cLyI7CnZhciBpbmNfanNfc2V0dXBfZGF0YSA9IHsKCWVtb2ppX3NoZWV0czogewoJCWFwcGxlOiAnaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tLzgwNTg4L2ltZy9lbW9qaV8yMDE3XzEyXzA2L3NoZWV0X2FwcGxlXzY0X2luZGV4ZWRfMjU2LnBuZycsCgkJZ29vZ2xlOiAnaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tLzgwNTg4L2ltZy9lbW9qaV8yMDE3XzEyXzA2L3NoZWV0X2dvb2dsZV82NF9pbmRleGVkXzI1Ni5wbmcnLAoJfSwKfTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgkvLyBjb21tb24gYm9vdF9kYXRhCgl2YXIgYm9vdF9kYXRhID0geyJhcGlfdXJsIjoiXC9hcGlcLyIsImFwcCI6ImZhbHNlIiwidXNlcl9pZCI6bnVsbCwidGVhbV9pZCI6IlQwMDAwMDAwMCIsInZpc2l0b3JfdWlkIjoiYzNpYXZzYWwyM2h3Y3g3YzY3Zzh6MDFldiIsIm5vX2xvZ2luIjp0cnVlLCJ2ZXJzaW9uX3RzIjoiMTU2ODMxOTc2MiIsInZlcnNpb25fdWlkIjoiMDcyODAwMDdlNDE3OGZlNmJjODcwNGEyNjk1MjNkOGMxMWExNTBmYSIsImNhY2hlX3ZlcnNpb24iOiJ2MTgta3VkdSIsImNhY2hlX3RzX3ZlcnNpb24iOiJ2Mi1idW5ueSIsInJlZGlyX2RvbWFpbiI6InNsYWNrLXJlZGlyLm5ldCIsInNpZ25pbl91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9zaWduaW4iLCJhYnNfcm9vdF91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC8iLCJ0ZWFtX3VybCI6IiIsImltYWdlX3Byb3h5X3VybCI6Imh0dHBzOlwvXC9zbGFjay1pbWdzLmNvbVwvIiwiYmVhY29uX3RpbWluZ191cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL3RpbWluZyIsImJlYWNvbl9lcnJvcl91cmwiOiJodHRwczpcL1wvc2xhY2suY29tXC9iZWFjb25cL2Vycm9yIiwiY2xvZ191cmwiOiJjbG9nXC90cmFja1wvIiwiYXBpX3Rva2VuIjoiIiwiaGNfdHJhY2tpbmdfcXMiOiIiLCJ2dnZfcGF0aHMiOnsibHpfc3RyaW5nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2x6LXN0cmluZy0xLjQuNC53b3JrZXIuOGRlMWIwMGQ2NzBmZjNkYzcwNmEwLmpzIiwiY29kZW1pcnJvciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yLm1pbi42OGM2YTA2MTJhYmNjYzZiODg1OS5taW4uanMiLCJjb2RlbWlycm9yX2FkZG9uX3NpbXBsZSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX3NpbXBsZS45OTNmYzVmOGRkZDQwMWY2MzJhYS5taW4uanMiLCJjb2RlbWlycm9yX2xvYWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sb2FkLmE5OGRkZjFjYTE4NWEyYTUxNzExLm1pbi5qcyIsImNvZGVtaXJyb3JfZmlsZXMiOnsiYXBsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19hcGwuOWNlOThjOGIyNDQ1YjIyM2M4N2YubWluLmpzIiwiYXNjaWlhcm1vciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYXNjaWlhcm1vci4zNTU4NzkzN2VhNTFjMmEyM2YyMS5taW4uanMiLCJhc24uMSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYXNuLjEuMDFjNjEwODYyMzk3ZTI1YmU5OTEubWluLmpzIiwiYXN0ZXJpc2siOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2FzdGVyaXNrLmQ5M2I0YWI0ODhmYTM5ZDE1MzVhLm1pbi5qcyIsImJyYWluZnVjayI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfYnJhaW5mdWNrLjMyMjFhYTFiYjkwMTg2YmM2ZDRjLm1pbi5qcyIsImNsaWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbGlrZS4zYTE4ZTg2OGM2N2Y2YmVjMDkxYy5taW4uanMiLCJjbG9qdXJlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbG9qdXJlLmJmMmY4NDIyOWQ5NTFkZjEwMzkxLm1pbi5qcyIsImNtYWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jbWFrZS40Y2IzODE4MzE0ODNjNGY1NGM1Ny5taW4uanMiLCJjb2JvbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY29ib2wuZTNjOGNiZmM1N2QwMzU2Njc3YmUubWluLmpzIiwiY29mZmVlc2NyaXB0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jb2ZmZWVzY3JpcHQuZTU3MDA2MjZmMTE0ZjI5OTA1NzkubWluLmpzIiwiY29tbW9ubGlzcCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY29tbW9ubGlzcC44NTVlZGZjMGUxZDkxY2EwNWMxNi5taW4uanMiLCJjc3MiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2Nzcy4yN2YwZmExZjJmOTk3MzY3OGY0MS5taW4uanMiLCJjcnlzdGFsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19jcnlzdGFsLmE4ZTRlMmRmMWMxMTVjZDgwYWNmLm1pbi5qcyIsImN5cGhlciI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfY3lwaGVyLjUxNjI2NDY3NWUzMzk2NDg3ZjNkLm1pbi5qcyIsImQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2QuMmE1M2Q1MDJlNjY3NzcwZDJkNTAubWluLmpzIiwiZGFydCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZGFydC5kMTA5M2YzYjkzMjM3ZWE3M2RkYS5taW4uanMiLCJkaWZmIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19kaWZmLjRiNzZkNzAyZmZkOGU0MGNiMzhlLm1pbi5qcyIsImRqYW5nbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZGphbmdvLjFhNmMwMzFhMjZkYWEyMWE2OWI4Lm1pbi5qcyIsImRvY2tlcmZpbGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2RvY2tlcmZpbGUuNjA0MzdjZGQ3MzNkZGZmNGQ2OWUubWluLmpzIiwiZHRkIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19kdGQuNWFmM2JiZjkzOTYwYzg0ZjUwMmYubWluLmpzIiwiZHlsYW4iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2R5bGFuLjdjZThmMjFlNTIwZDY4MmY0ZjhiLm1pbi5qcyIsImVibmYiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2VibmYuYzQ2NmU0ZTMzMWUzMTdlZTNiYjYubWluLmpzIiwiZWNsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lY2wuZWRhYjQ4NjkwYzdkZDBiMGU3YmYubWluLmpzIiwiZWlmZmVsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19laWZmZWwuMzgyOTU3NzlkODc3ZjJkOTMxNzIubWluLmpzIiwiZWxtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lbG0uNjI1ZDU5NDAwYmFmNjYwMmY4MGIubWluLmpzIiwiZXJsYW5nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19lcmxhbmcuY2Y5NTg2MWRmY2FjMzcxMzc2MzUubWluLmpzIiwiZmFjdG9yIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19mYWN0b3IuZDM2MTRkZmE0MWFjMGRjNzg0NWMubWluLmpzIiwiZm9ydGgiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ZvcnRoLjg0ODM0ODViMGM0NWFjZDk5NjhlLm1pbi5qcyIsImZvcnRyYW4iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ZvcnRyYW4uMTQ3ZjkzMzliNGJiMWZhNTJmNWEubWluLmpzIiwiZ2FzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19nYXMuZDRiYzFiNTJlZTBiZjU2MmQzOGIubWluLmpzIiwiZ2ZtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19nZm0uMDQ0ZWJlNzU2M2UxMzJkZGM3NzYubWluLmpzIiwiZ2hlcmtpbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZ2hlcmtpbi45OWVlOGQwYzBiMGU0M2RmM2ZjMi5taW4uanMiLCJnbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfZ28uY2NjM2ZiNWQyZmExOGI3MjE0NzIubWluLmpzIiwiZ3Jvb3Z5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ncm9vdnkuM2I3OTlmY2RiNzI1MTEzYjI2ZTYubWluLmpzIiwiaGFtbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaGFtbC5iMDZmY2NiNGE4Njg4NjkzY2U2MC5taW4uanMiLCJoYW5kbGViYXJzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19oYW5kbGViYXJzLmE0MDA5YzBlNmFjYWU4NTQ0OWFlLm1pbi5qcyIsImhhc2tlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2hhc2tlbGwuNWRlYzhiYjEwODViNjVmNzdjZmIubWluLmpzIiwiaGF4ZSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaGF4ZS4yYjQwMDQwNzVmYTU5ZGI0MjE1ZC5taW4uanMiLCJodG1sZW1iZWRkZWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2h0bWxlbWJlZGRlZC40OTAxNWNiZWU3ZjZiZWQ0ZmRiMi5taW4uanMiLCJodG1sbWl4ZWQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2h0bWxtaXhlZC45MmQ5M2Q1M2ExNmUwNzU4NDZlZi5taW4uanMiLCJodHRwIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19odHRwLjhhMjQ2M2M4MmNhNTM1MzMwMzI0Lm1pbi5qcyIsImlkbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfaWRsLjUxNGI2YTVlNmZmOTljMzI2Njc2Lm1pbi5qcyIsImphZGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2phZGUuMzJjMGFlOTY5YzA5MTJjN2QxYTcubWluLmpzIiwiamF2YXNjcmlwdCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfamF2YXNjcmlwdC5hYzE4MzNlOWUyMzlkNTMyYjVhOS5taW4uanMiLCJqaW5qYTIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2ppbmphMi5kYjEyZWNmZDRiYmNiODc1OTY2My5taW4uanMiLCJqdWxpYSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfanVsaWEuN2IyY2RlNThkYzBlZWIwN2U2NzAubWluLmpzIiwibGl2ZXNjcmlwdCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbGl2ZXNjcmlwdC45NTljNGRjNzI1NjZhMjY0Nzg4Ny5taW4uanMiLCJsdWEiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX2x1YS4xZmQ5YjM0NmNkMWU2ZWFlODAwNS5taW4uanMiLCJtYXJrZG93biI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbWFya2Rvd24uMzU3ZDRmMDIzMWQ3MDVjY2Y0YTgubWluLmpzIiwibWF0aGVtYXRpY2EiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21hdGhlbWF0aWNhLjQ1Y2U2YTg0NDg3NDc1NTVlZThmLm1pbi5qcyIsIm1pcmMiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21pcmMuNjQyYTBhOTA5M2MzZWRlZWQxZDMubWluLmpzIiwibWxsaWtlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19tbGxpa2UuYjJlNTllMzRiMmFlYjBiMGUzM2UubWluLmpzIiwibW9kZWxpY2EiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX21vZGVsaWNhLjliZWJhOTAyZmFkNjhkNjUyNTA0Lm1pbi5qcyIsIm1zY2dlbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbXNjZ2VuLjlkZWQ1ZDEzMmNlYTU0OGE1ODRlLm1pbi5qcyIsIm11bXBzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19tdW1wcy42Mjc1MTAwZDNjYmEzY2RkYjE3MS5taW4uanMiLCJuZ2lueCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbmdpbnguMzkyOTQ3YTVjZGUzNjBlNTUzOTEubWluLmpzIiwibnNpcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbnNpcy4xODA2MDk4ZjJlZmZjNGM1ZWZkNy5taW4uanMiLCJudHJpcGxlcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfbnRyaXBsZXMuNWM2YjkxZjZkYzI5ZDIyNTE1OWIubWluLmpzIiwib2N0YXZlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19vY3RhdmUuOTljYmYzZTBhNzIyZDk1Mjc3ZmQubWluLmpzIiwib3oiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX296LjQ1NDdjY2ZkZGM1Mjg1ZmViZGRhLm1pbi5qcyIsInBhc2NhbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGFzY2FsLjFmZGJjNzVmNjU5YWI3YjIwZWY5Lm1pbi5qcyIsInBlZ2pzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19wZWdqcy4zNTIxMTU0YjlkMGZiOGRkZTJjOC5taW4uanMiLCJwZXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19wZXJsLjI2MTYyYjFkZTNmMjQ4OGZmZWRjLm1pbi5qcyIsInBocCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGhwLjhlNzcwMjE0MWM0ZDAwNmJiMjBkLm1pbi5qcyIsInBpZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcGlnLmNjZjM5MjkzOTZlZTdkMjQxNDA2Lm1pbi5qcyIsInBvd2Vyc2hlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Bvd2Vyc2hlbGwuODlmMmU5YmY2YzgyYWQxZGQ5YmUubWluLmpzIiwicHJvcGVydGllcyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcHJvcGVydGllcy5lYTdjZTE0YzQyNTE3NGFkYmYxNS5taW4uanMiLCJwdXBwZXQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3B1cHBldC4wOWQ0YTA0MzkwM2E1MjIzNzQ2Ny5taW4uanMiLCJweXRob24iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3B5dGhvbi45Y2ZjYjgyNDJjM2M1ZjRkMDkwMi5taW4uanMiLCJxIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19xLjc2MDliNmVmYWY1ZGRmZGZhNGE1Lm1pbi5qcyIsInIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3IuMzQ5MzZlNDFmMTFlYzE4YTc1NzQubWluLmpzIiwicnBtIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ycG0uYzI5MTc5ZDkxODg3MDFlYjVmM2UubWluLmpzIiwicnN0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19yc3QuMTNiZWM2MzMxYzAxNzVjYmIwOTYubWluLmpzIiwicnVieSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfcnVieS44MmRlYTExNjQ0Yzc0ZTRlYTU0Mi5taW4uanMiLCJydXN0IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19ydXN0LjBlNmNjMWEwZDJkMmQ4ZjhlYmRiLm1pbi5qcyIsInNhc3MiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Nhc3MuMWZiY2U1NGIyYzMwNDQzNzc5ZWUubWluLmpzIiwic2NoZW1lIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zY2hlbWUuODg3OWVlNWY4ODc1ZDZiY2M4MDQubWluLmpzIiwic2hlbGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NoZWxsLmRjNWQzNTU4ZmRkZWRkMTgzOTRmLm1pbi5qcyIsInNpZXZlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zaWV2ZS4zYjMyMjcyNmI5MDcxNDBiOTRlOC5taW4uanMiLCJzbGltIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zbGltLmM3YzBiYzBmMTczODM0NDA5NTExLm1pbi5qcyIsInNtYWxsdGFsayI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc21hbGx0YWxrLjk4YzEyMzc1Yzg3YzUxOTBjODM5Lm1pbi5qcyIsInNtYXJ0eSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc21hcnR5LjdiYTYyMzc3ZjU5ZjcxNzY5OTk3Lm1pbi5qcyIsInNvbHIiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NvbHIuMjZjNGU0MTliMGM4Nzk5YmJiN2QubWluLmpzIiwic295IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zb3kuODhlOTVmZmI0NWE0YWM0MjQ1YTYubWluLmpzIiwic3BhcnFsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zcGFycWwuOGMwNTMxMTEwZDhhOWNjMzA1YWYubWluLmpzIiwic3ByZWFkc2hlZXQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3NwcmVhZHNoZWV0LmJjOWFhODM3MmQ5OTQxOTFiZGY1Lm1pbi5qcyIsInNxbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfc3FsLjEwOTQzZmQ0YjIzZjIzMjg3MzQ2Lm1pbi5qcyIsInN0ZXgiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3N0ZXguNWNlODFjZGQwMjNiODlhZWU3OWEubWluLmpzIiwic3R5bHVzIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ19zdHlsdXMuZjM5N2YwMmRlMzU2YWU2ZjljNzAubWluLmpzIiwic3dpZnQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3N3aWZ0LmY5ZTNhMThhMTQ5NGM2NTAyMmQ3Lm1pbi5qcyIsInRjbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdGNsLmVlMTRjZTM1MjgzM2M0ZmM0NzllLm1pbi5qcyIsInRleHRpbGUiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3RleHRpbGUuNzM1ZjIyNTQ4MWViNTczNDEyMDkubWluLmpzIiwidGlkZGx5d2lraSI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdGlkZGx5d2lraS5jMjMxOTcyNDQ3ZWQxYmJlMDQ0OC5taW4uanMiLCJ0aWtpIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ190aWtpLmQ3N2YwZTY2ZTczZWNjZGRjNGJiLm1pbi5qcyIsInRvbWwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3RvbWwuNDA2NWI0ZWMwNjU3MDQwMzU3MDQubWluLmpzIiwidG9ybmFkbyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdG9ybmFkby4zMzMzMDlkY2Y0MTUxNGEzYTNmZC5taW4uanMiLCJ0cm9mZiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHJvZmYuZjZiMGZhMDg3NDExMTllZjZhNWMubWluLmpzIiwidHRjbiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHRjbi4yNWZkMGZmNzI5ZGIxNmYwMTM2Yy5taW4uanMiLCJ0dGNuOmNmZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHRjbi1jZmcuYTY2ZTNhNGI0YmQ4NTcxY2U2ODAubWluLmpzIiwidHVydGxlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ190dXJ0bGUuZDczOTljN2M3MDhhZTFhNzNmNDUubWluLmpzIiwidHdpZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdHdpZy43MWYxMjNiZGQzNDIyYzY4MzI4MS5taW4uanMiLCJ2YiI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfdmIuYjA5MTIzYzZiYzFlNGJlMzg5ZWMubWluLmpzIiwidmJzY3JpcHQiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3Zic2NyaXB0Ljk5OTdiYmY5NWFlYTAyNTQ1YmE3Lm1pbi5qcyIsInZlbG9jaXR5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192ZWxvY2l0eS42NjdlYTQ5ZTJhNTZlN2RlZTlhZS5taW4uanMiLCJ2ZXJpbG9nIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192ZXJpbG9nLmU2NjEwN2FjNTY3ZTJhZmZkNjEwLm1pbi5qcyIsInZoZGwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3ZoZGwuYjA3ZmU3OWNmYTlmNWFmNjIxNmUubWluLmpzIiwidnVlIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ192dWUuNTljZWYxMTE3ZWRlYzg3YjU1NzIubWluLmpzIiwieG1sIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ194bWwuMWNjNGVjMzllM2VjNTE1YWFjYTYubWluLmpzIiwieHF1ZXJ5IjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cL2J2MS02LThjODU4ZmFcL2NvZGVtaXJyb3JfbGFuZ194cXVlcnkuNzhjMGViNzgzYzc1YTUyN2VmNjQubWluLmpzIiwieWFtbCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC9idjEtNi04Yzg1OGZhXC9jb2RlbWlycm9yX2xhbmdfeWFtbC5hMDUyMTJiODEwMDcxYjVjNjEzZi5taW4uanMiLCJ6ODAiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvYnYxLTYtOGM4NThmYVwvY29kZW1pcnJvcl9sYW5nX3o4MC41Njc5ODM1ZmMzMTE0YzU2MDBlMi5taW4uanMifX0sIm5vdGlmaWNhdGlvbl9zb3VuZHMiOlt7InZhbHVlIjoiYjIubXAzIiwibGFiZWwiOiJEaW5nIiwidXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzdlOTFcL3NvdW5kc1wvcHVzaFwvYjIubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9iMi5vZ2cifSx7InZhbHVlIjoiYW5pbWFsX3N0aWNrLm1wMyIsImxhYmVsIjoiQm9pbmciLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9hbmltYWxfc3RpY2subXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9hbmltYWxfc3RpY2sub2dnIn0seyJ2YWx1ZSI6ImJlZW5fdHJlZS5tcDMiLCJsYWJlbCI6IkRyb3AiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9iZWVuX3RyZWUubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9iZWVuX3RyZWUub2dnIn0seyJ2YWx1ZSI6ImNvbXBsZXRlX3F1ZXN0X3JlcXVpcmVtZW50Lm1wMyIsImxhYmVsIjoiVGEtZGEiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9jb21wbGV0ZV9xdWVzdF9yZXF1aXJlbWVudC5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2NvbXBsZXRlX3F1ZXN0X3JlcXVpcmVtZW50Lm9nZyJ9LHsidmFsdWUiOiJjb25maXJtX2RlbGl2ZXJ5Lm1wMyIsImxhYmVsIjoiUGxpbmsiLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9jb25maXJtX2RlbGl2ZXJ5Lm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvY29uZmlybV9kZWxpdmVyeS5vZ2cifSx7InZhbHVlIjoiZmxpdHRlcmJ1Zy5tcDMiLCJsYWJlbCI6IldvdyIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2ZsaXR0ZXJidWcubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9mbGl0dGVyYnVnLm9nZyJ9LHsidmFsdWUiOiJoZXJlX3lvdV9nb19saWdodGVyLm1wMyIsImxhYmVsIjoiSGVyZSB5b3UgZ28iLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9oZXJlX3lvdV9nb19saWdodGVyLm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaGVyZV95b3VfZ29fbGlnaHRlci5vZ2cifSx7InZhbHVlIjoiaGlfZmxvd2Vyc19oaXQubXAzIiwibGFiZWwiOiJIaSIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2hpX2Zsb3dlcnNfaGl0Lm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaGlfZmxvd2Vyc19oaXQub2dnIn0seyJ2YWx1ZSI6Imtub2NrX2JydXNoLm1wMyIsImxhYmVsIjoiS25vY2sgQnJ1c2giLCJ1cmwiOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvN2U5MVwvc291bmRzXC9wdXNoXC9rbm9ja19icnVzaC5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2tub2NrX2JydXNoLm9nZyJ9LHsidmFsdWUiOiJzYXZlX2FuZF9jaGVja291dC5tcDMiLCJsYWJlbCI6Ildob2EhIiwidXJsIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzdlOTFcL3NvdW5kc1wvcHVzaFwvc2F2ZV9hbmRfY2hlY2tvdXQubXAzIiwidXJsX29nZyI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC80NmViYlwvc291bmRzXC9wdXNoXC9zYXZlX2FuZF9jaGVja291dC5vZ2cifSx7InZhbHVlIjoiaXRlbV9waWNrdXAubXAzIiwibGFiZWwiOiJZb2luayIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZTkxXC9zb3VuZHNcL3B1c2hcL2l0ZW1fcGlja3VwLm1wMyIsInVybF9vZ2ciOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvNDZlYmJcL3NvdW5kc1wvcHVzaFwvaXRlbV9waWNrdXAub2dnIn0seyJ2YWx1ZSI6Imh1bW11cy5tcDMiLCJsYWJlbCI6Ikh1bW11cyIsInVybCI6Imh0dHBzOlwvXC9hLnNsYWNrLWVkZ2UuY29tXC83ZmE5XC9zb3VuZHNcL3B1c2hcL2h1bW11cy5tcDMiLCJ1cmxfb2dnIjoiaHR0cHM6XC9cL2Euc2xhY2stZWRnZS5jb21cLzQ2ZWJiXC9zb3VuZHNcL3B1c2hcL2h1bW11cy5vZ2cifSx7InZhbHVlIjoibm9uZSIsImxhYmVsIjoiTm9uZSJ9XSwiYWxlcnRfc291bmRzIjpbeyJ2YWx1ZSI6ImZyb2cubXAzIiwibGFiZWwiOiJGcm9nIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvYTM0YVwvc291bmRzXC9mcm9nLm1wMyJ9XSwiY2FsbF9zb3VuZHMiOlt7InZhbHVlIjoiY2FsbFwvYWxlcnRfdjIubXAzIiwibGFiZWwiOiJBbGVydCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvYWxlcnRfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL2luY29taW5nX3JpbmdfdjIubXAzIiwibGFiZWwiOiJJbmNvbWluZyByaW5nIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC9pbmNvbWluZ19yaW5nX3YyLm1wMyJ9LHsidmFsdWUiOiJjYWxsXC9vdXRnb2luZ19yaW5nX3YyLm1wMyIsImxhYmVsIjoiT3V0Z29pbmcgcmluZyIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvb3V0Z29pbmdfcmluZ192Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwvcG9wX3YyLm1wMyIsImxhYmVsIjoiSW5jb21pbmcgcmVhY3Rpb24iLCJ1cmwiOiJodHRwczpcL1wvc2xhY2suZ2xvYmFsLnNzbC5mYXN0bHkubmV0XC8wOGY3XC9zb3VuZHNcL2NhbGxcL3BvcF92Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwvdGhleV9sZWZ0X2NhbGxfdjIubXAzIiwibGFiZWwiOiJUaGV5IGxlZnQgY2FsbCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvdGhleV9sZWZ0X2NhbGxfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL3lvdV9sZWZ0X2NhbGxfdjIubXAzIiwibGFiZWwiOiJZb3UgbGVmdCBjYWxsIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC95b3VfbGVmdF9jYWxsX3YyLm1wMyJ9LHsidmFsdWUiOiJjYWxsXC90aGV5X2pvaW5lZF9jYWxsX3YyLm1wMyIsImxhYmVsIjoiVGhleSBqb2luZWQgY2FsbCIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvdGhleV9qb2luZWRfY2FsbF92Mi5tcDMifSx7InZhbHVlIjoiY2FsbFwveW91X2pvaW5lZF9jYWxsX3YyLm1wMyIsImxhYmVsIjoiWW91IGpvaW5lZCBjYWxsIiwidXJsIjoiaHR0cHM6XC9cL3NsYWNrLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldFwvMDhmN1wvc291bmRzXC9jYWxsXC95b3Vfam9pbmVkX2NhbGxfdjIubXAzIn0seyJ2YWx1ZSI6ImNhbGxcL2NvbmZpcm1hdGlvbl92Mi5tcDMiLCJsYWJlbCI6IkNvbmZpcm1hdGlvbiIsInVybCI6Imh0dHBzOlwvXC9zbGFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXRcLzA4ZjdcL3NvdW5kc1wvY2FsbFwvY29uZmlybWF0aW9uX3YyLm1wMyJ9XSwiY2FsbF9zb3VuZHNfdmVyc2lvbiI6InYyIiwiYTExeV9zb3VuZHMiOltdLCJpbWciOnsiYXBwX2ljb24iOiJodHRwczpcL1wvYS5zbGFjay1lZGdlLmNvbVwvODA1ODhcL2ltZ1wvc2xhY2tfZ3Jvd2xfaWNvbl92b2d1ZS5wbmcifSwicGFnZV9uZWVkc19lbnRlcnByaXNlIjpmYWxzZSwicGFnZV9uZWVkc19jdXN0b21fZW1vamkiOmZhbHNlLCJpc19kZXByZWNhdGVkX3dlYmNsaWVudF9icm93c2VyIjpmYWxzZSwiaXNfdW5zdXBwb3J0ZWRfd2ViY2xpZW50X2Jyb3dzZXIiOnRydWUsImRlZmF1bHRfdHoiOiJBbWVyaWNhXC9Mb3NfQW5nZWxlcyIsImZlYXR1cmVfYnVpbGRlcl9hcHBfY29sbGFib3JhdG9ycyI6ZmFsc2UsImZlYXR1cmVfYXVkaXRfbG9nc192aWV3IjpmYWxzZSwiZmVhdHVyZV9hdWRpdF9sb2dzX3ZpZXdfd29ya3NwYWNlIjpmYWxzZSwiZmVhdHVyZV9kYXRhX2xvY2F0aW9uX3ZpZXciOmZhbHNlLCJmZWF0dXJlX3NrX2kxOG4iOmZhbHNlLCJmZWF0dXJlX29yZ19tb2Rlcm5fc2V0dGluZ19wYWdlIjpmYWxzZSwiZmVhdHVyZV9vcmdfbW9kZXJuX3NlY3VyaXR5X3ByZWZlcmVuY2VzX3BhZ2UiOmZhbHNlLCJmZWF0dXJlX29yZ19tb2Rlcm5fc3NvX3ByZWZlcmVuY2VzX3BhZ2UiOnRydWUsImZlYXR1cmVfaWRwX2dyb3VwX2NvdW50IjpmYWxzZSwiZmVhdHVyZV9tMTFuX29yZ190ZWFtX292ZXJ2aWV3IjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2V4cG9ydF9pbXBvcnQiOnRydWUsImZlYXR1cmVfYWNjZXNzaWJsZV9zZWxlY3RzIjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2NoYW5uZWxfYWN0aW9ucyI6ZmFsc2UsImZlYXR1cmVfYnVpbGRlcl9hcHBfcmVtb3ZhbCI6ZmFsc2UsImZlYXR1cmVfYnVpbGRlcl9kaXNhYmxlX2dsb2JhbF90cmlnZ2VycyI6dHJ1ZSwiZmVhdHVyZV93b3JrZmxvd19idWlsZGVyX2VuYWJsZWRfb3JnX3NldHRpbmciOmZhbHNlLCJmZWF0dXJlX2J1aWxkZXJfY2FuX2FjY2VzcyI6ZmFsc2UsImZlYXR1cmVfc2hhcmVkX2NoYW5uZWxzX3JlbW92ZV9iZXRhX2xhYmVsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfbm9fb25lX3ByZWYiOmZhbHNlLCJmZWF0dXJlX2VzY19ncmFudWxhcl90ZWFtX3ByZWZzIjpmYWxzZSwiZmVhdHVyZV9lc2NfZ3JhbnVsYXJfdGVhbV9wcmVmc19jbGllbnQiOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2RuZCI6ZmFsc2UsImZlYXR1cmVfY29udGV4dF9iYXIiOnRydWUsImZlYXR1cmVfY29udGV4dF9iYXJfY3VzdG9tX3N0YXR1cyI6ZmFsc2UsImZlYXR1cmVfY29udGV4dF9iYXJfZ3Vlc3RzIjpmYWxzZSwiZmVhdHVyZV9lc2Nfd29ya3NwYWNlX3NldHRpbmdzX2NsaWVudCI6ZmFsc2UsImZlYXR1cmVfY2VfZW5nX2hjMnNsYWNrIjpmYWxzZSwiZmVhdHVyZV9tdWx0aV9maWxlX2xheW91dCI6dHJ1ZSwiZmVhdHVyZV9yaWNoX3RleHRfbGlua3MiOnRydWUsImZlYXR1cmVfcmljaF90ZXh0X3NsYXNoX2NvbW1tYW5kcyI6ZmFsc2UsImZlYXR1cmVfbWlncmF0aW9uX29yZ19hcHByb3ZhbHMiOnRydWUsImZlYXR1cmVfbmV3eHBfMzI2NiI6ZmFsc2UsImZlYXR1cmVfdGlueXNwZWNrIjpmYWxzZSwiZmVhdHVyZV9kZXNrdG9wX2NvcHlfdGV4dCI6ZmFsc2UsImZlYXR1cmVfd2ViYXBwX2Fsd2F5c19jb2xsZWN0X2luaXRpYWxfdGltZV9wZXJpb2Rfc3RhdHMiOmZhbHNlLCJmZWF0dXJlX2ZsYW5uZWxfdXNlX2NhbmFyeV9zb21ldGltZXMiOmZhbHNlLCJmZWF0dXJlX3NzYl9xMzE5X2RlcHJlY2F0aW9uIjpmYWxzZSwiZmVhdHVyZV9zc2JfcTMxOV9kZXByZWNhdGlvbl9kYXJrIjpmYWxzZSwiZmVhdHVyZV9zc2JfcTMxOV9kZXByZWNhdGlvbl9tb2RhbCI6ZmFsc2UsImZlYXR1cmVfc3NiX3EzMTlfZGVwcmVjYXRpb25fYmxvY2siOmZhbHNlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X3Vuc3VwcG9ydGVkIjp0cnVlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X3Vuc3VwcG9ydGVkX3RvYXN0Ijp0cnVlLCJmZWF0dXJlX2RlcHJlY2F0ZV9xMTE5X21vYmlsZSI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vdXRkYXRlZCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vdXRkYXRlZF90b2FzdCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vcyI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9vc190b2FzdCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9tb2RhbCI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfcTExOV9ibG9jayI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfZ2V0X21lbWJlcl9ieV9uYW1lIjpmYWxzZSwiZmVhdHVyZV9yZWFjdF9maWxlX3ZpZXdlciI6ZmFsc2UsImZlYXR1cmVfcmVhY3RfZmlsZV92aWV3ZXJfbmF2aWdhdGlvbiI6dHJ1ZSwiZmVhdHVyZV91bmtub3duX2ZpbGVzIjpmYWxzZSwiZmVhdHVyZV9hZGRfbWVzc2FnZV9wZXJmIjpmYWxzZSwiZmVhdHVyZV9maXhfY3VzdG9tX2Vtb2ppX2Vycm9ycyI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5fZGVsZXRlX2ZpbGUiOnRydWUsImZlYXR1cmVfc29uaWNfY2hhbm5lbF9vcHRpb25zIjpmYWxzZSwiZmVhdHVyZV9zb25pY19kZWx1eGVfdG9hc3QiOnRydWUsImZlYXR1cmVfc29uaWNfZGVsdXhlX3RvYXN0X2V4aXN0aW5nIjp0cnVlLCJmZWF0dXJlX3NvbmljX2RlbHV4ZV90b2FzdF9kYXJrIjp0cnVlLCJmZWF0dXJlX3NlbGVjdF9tb2RlbF9vcHRpb25fZmV0Y2hlcl9tMTFuIjpmYWxzZSwiZmVhdHVyZV9hMTF5X21lc3NhZ2Vfc3VtbWFyeSI6dHJ1ZSwiZmVhdHVyZV9yZXRyeV9uZXdfaW1hZ2VzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2RldGFpbHNfbWVtYmVyc2hpcF9saXN0IjpmYWxzZSwiZmVhdHVyZV9hbGxfZG1fbXV0ZSI6ZmFsc2UsImZlYXR1cmVfYWxsX2RtX211dGVfYm90cyI6ZmFsc2UsImZlYXR1cmVfZmlsZV90aHJlYWRzIjp0cnVlLCJmZWF0dXJlX2ZpbGVfdGhyZWFkc19kYXJrX2xhdW5jaCI6dHJ1ZSwiZmVhdHVyZV9icm9hZGNhc3RfaW5kaWNhdG9yIjp0cnVlLCJmZWF0dXJlX25ld19yZXBsaWVzX2FmdGVyX2JjYXN0Ijp0cnVlLCJmZWF0dXJlX3NvbmljX2Vtb2ppIjpmYWxzZSwiZmVhdHVyZV9lbW9qaV9zZWFyY2hfa2V5d29yZHNfaW5fYXV0b2NvbXBsZXRlIjpmYWxzZSwiZmVhdHVyZV9jdXN0b21fZW1vamlfc2VhcmNoX2J5X2NyZWF0b3IiOnRydWUsImZlYXR1cmVfc29uaWNfZnJlcXVlbnRfZW1vamlfZnJvbV9wcmVmIjpmYWxzZSwiZmVhdHVyZV9zb25pY19pbWdfcHJveHkiOnRydWUsImZlYXR1cmVfZW1haWxfaW5nZXN0aW9uIjpmYWxzZSwiZmVhdHVyZV9zaWRlYmFyX2NvbnRleHRfbWVudSI6ZmFsc2UsImZlYXR1cmVfYXR0YWNobWVudHNfaW5saW5lIjpmYWxzZSwiZmVhdHVyZV9maXhfZmlsZXMiOnRydWUsImZlYXR1cmVfcGFnaW5nX2FwaSI6ZmFsc2UsImZlYXR1cmVfYWFhX2FkbWluX2FwaXMiOmZhbHNlLCJmZWF0dXJlX2FhYV9hZG1pbl9hcGlzX2V2ZW50c19kb2NzIjp0cnVlLCJmZWF0dXJlX3RyaWdnZXJfdXNlcl9kbV9jbGljayI6dHJ1ZSwiZmVhdHVyZV9hcHBfbGF1bmNoZXIiOmZhbHNlLCJmZWF0dXJlX3dhbG1hcnRfb29tX2FkbWluX3BhZ2VfZml4IjpmYWxzZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X3ByaW1lciI6ZmFsc2UsImZlYXR1cmVfZGlzbWlzc19hZGRfYXBwcyI6dHJ1ZSwiZmVhdHVyZV9jdXN0b21fc3RhdHVzX2V4cGlyeSI6dHJ1ZSwiZmVhdHVyZV9jaGFubmVsX3NpZGViYXJfZHJhZnRzX3NlY3Rpb24iOnRydWUsImZlYXR1cmVfbmF2aWdhdGVfaGlzdG9yeSI6dHJ1ZSwiZmVhdHVyZV9jb21wb3NlX2Zsb3ciOmZhbHNlLCJmZWF0dXJlX2JldHRlcl9zbm9vemUiOnRydWUsImZlYXR1cmVfc29uaWNfZG5kX21hbmFnZXIiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2RuZF9ydG0iOmZhbHNlLCJmZWF0dXJlX3NvbmljX3ByZXNlbmNlX21hbmFnZXIiOmZhbHNlLCJmZWF0dXJlX2Zhc3Rlcl9jb3VudF9hbGxfdW5yZWFkcyI6dHJ1ZSwiZmVhdHVyZV9zb25pY191c2VyX2dyb3VwcyI6ZmFsc2UsImZlYXR1cmVfc29uaWNfdXNlcl9ncm91cHNfYTExeV9yZWZhY3RvciI6ZmFsc2UsImZlYXR1cmVfc29uaWNfdXNlcl9ncm91cHNfY29weV91cGRhdGUiOmZhbHNlLCJmZWF0dXJlX2xhenlfdXNlcl9ncm91cHMiOnRydWUsImZlYXR1cmVfc29uaWNfc2VydmljZV9kb3duIjp0cnVlLCJmZWF0dXJlX20xMW5fdXNlcl9mZXRjaF9zdGF0cyI6dHJ1ZSwiZmVhdHVyZV91bnRydXN0d29ydGh5X25hdmlnYXRvcl9vbmxpbmUiOnRydWUsImZlYXR1cmVfY29ubmVjdGl2aXR5X21hbmFnZXIiOnRydWUsImZlYXR1cmVfY2xpZW50X2Jvb3Rfc2hvdWxkX3JlbG9hZCI6ZmFsc2UsImZlYXR1cmVfZGF0YV9yZXNpZGVuY3lfZGVidWdnaW5nIjpmYWxzZSwiZmVhdHVyZV9lbnRfYXBwX21hbmFnZW1lbnRfcmVzdHJpY3Rpb24iOmZhbHNlLCJmZWF0dXJlX2dyaWRfYXJjaGl2ZV9saW5rX2ZpeGVzIjp0cnVlLCJmZWF0dXJlX3NvbmljX21lbWJlcl9kaXJlY3RvcnkiOmZhbHNlLCJmZWF0dXJlX21vZGVybml6ZWRfeHdzX3Blcm1hbGlua19kaWFsb2dzIjp0cnVlLCJmZWF0dXJlX3NhZmVndWFyZF9vcmdfcmV0ZW50aW9uIjp0cnVlLCJmZWF0dXJlX2Rhc2hib2FyZF9zb3J0YWJsZV9saXN0cyI6ZmFsc2UsImZlYXR1cmVfZW50ZXByaXNlX3VzZXJfdGVhbXNfdXBkYXRlIjp0cnVlLCJmZWF0dXJlX3NrX2xvYWRpbmdfYnV0dG9uX21vdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3NrX2Jhc2VfaWNvbiI6ZmFsc2UsImZlYXR1cmVfc2FtbF9hdXRobl9rZXlfZXhwaXJ5X2RhdGUiOnRydWUsImZlYXR1cmVfd3RhX3Blcm1fYXBpX3NwbGl0IjpmYWxzZSwiZmVhdHVyZV93dGFfY29udmVyc2F0aW9uc19hcGlfY2hhbm5lbF9jcmVhdGVkX21zZyI6ZmFsc2UsImZlYXR1cmVfZmlsZV9saW5rc19iZXR0ZXJlciI6ZmFsc2UsImZlYXR1cmVfdW5zYWZlX3Rsc19kZXByZWNhdGlvbl9hcGlfdmlldyI6dHJ1ZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2luZm9fY29uc29saWRhdGlvbl9waGFzZV8xIjpmYWxzZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2luZm9fY29uc29saWRhdGlvbl9waGFzZV8yIjpmYWxzZSwiZmVhdHVyZV9hcHBfY29tcGxpYW5jZV9pbmZvX2NvbGxlY3Rpb24iOmZhbHNlLCJmZWF0dXJlX2d1ZXN0X2FwaV9jaGFuZ2VzIjpmYWxzZSwiZmVhdHVyZV9nZHByX2V4cG9ydHMiOnRydWUsImZlYXR1cmVfYWxsb3dfYnVsa19kZWxldGVfam9pbl9sZWF2ZV9tZXNzYWdlcyI6dHJ1ZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfYmxvY2tfbGFyZ2Vfb3JncyI6ZmFsc2UsImZlYXR1cmVfY2hhbm5lbF9pc19yZW1vdmVfY3JlYXRlX3NoYXJlZF9jaGFubmVsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfbmV0d29yayI6ZmFsc2UsImZlYXR1cmVfbXBpbV9jaGFubmVscyI6ZmFsc2UsImZlYXR1cmVfY29udmVyc2F0aW9uc19saXN0Ijp0cnVlLCJmZWF0dXJlX2dkcHJfdXNlcl9qb2luX3RvcyI6dHJ1ZSwiZmVhdHVyZV91c2VyX2ludml0ZV90b3NfYXByaWxfMjAxOCI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5pemVfaW52aXRlcyI6dHJ1ZSwiZmVhdHVyZV9jdXN0b21fZW1vamlfZG93bmxvYWRfYnRuIjpmYWxzZSwiZmVhdHVyZV9pbnZpdGVzX3Nzb19jaGVjayI6dHJ1ZSwiZmVhdHVyZV9pbmNyZW1lbnRhbF91bnJlYWRfY291bnRzIjpmYWxzZSwiZmVhdHVyZV9uZXVlX3R5cGUiOmZhbHNlLCJmZWF0dXJlX2N1c3RfYWNxX2kxOG5fdHdlYWtzIjpmYWxzZSwiZmVhdHVyZV9zZWN1cml0eV9sZWdhbF9wYWdlX3VwZGF0ZXMiOmZhbHNlLCJmZWF0dXJlX3Byb2pfdXBkYXRlZF9wcmljaW5nX2xwIjp0cnVlLCJmZWF0dXJlX3Byb2pfd29ya2Zsb3dfYnVpbGRlcl9scCI6ZmFsc2UsImZlYXR1cmVfcHJval9pZHJfd2ViIjp0cnVlLCJmZWF0dXJlX3Byb2pfaWRyX3dlYl9jdGEiOnRydWUsImZlYXR1cmVfcHJval9zcGVjX2Vhcmx5X2JpcmQiOmZhbHNlLCJmZWF0dXJlX3Byb2pfYnJhbmRfdG9fcGVyZl9wYWdlIjpmYWxzZSwiZmVhdHVyZV9wcm9qX3ByaWNpbmdfc2lnbmVkX291dF91cGRhdGVzIjp0cnVlLCJmZWF0dXJlX3BhcnRuZXJfem9vbV9scCI6dHJ1ZSwiZmVhdHVyZV93aGl0ZWxpc3RfemVuZGVza19jaGF0X3dpZGdldCI6ZmFsc2UsImZlYXR1cmVfbGl2ZV9zdXBwb3J0X2ZyZWVfcGxhbiI6ZmFsc2UsImZlYXR1cmVfb2ZmbGluZV9tb2RlIjpmYWxzZSwiZmVhdHVyZV9mb3JjZV9sc19jb21wcmVzc2lvbiI6ZmFsc2UsImZlYXR1cmVfdXNlX2ltZ3Byb3h5X3Jlc2l6aW5nIjp0cnVlLCJmZWF0dXJlX3NoYXJlX21lbnRpb25fY29tbWVudF9jbGVhbnVwIjpmYWxzZSwiZmVhdHVyZV9leHRlcm5hbF9maWxlcyI6ZmFsc2UsImZlYXR1cmVfZGVza3RvcF9zb25pY19yb2xsb3V0Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfc29uaWNfYmV0YV9yb2xsb3V0Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfc29uaWNfZGlzYWJsZV9yb2xsb3V0IjpmYWxzZSwiZmVhdHVyZV9lbGVjdHJvbl9tZW1vcnlfbG9nZ2luZyI6ZmFsc2UsImZlYXR1cmVfbmF0aXZlX2FwcF9zdGFydF9ub25fbWFjIjpmYWxzZSwiZmVhdHVyZV9sb2NhbGl6YXRpb25fcGhhc2VfdHdvIjp0cnVlLCJmZWF0dXJlX2xvY2FsZV9lc19MQSI6dHJ1ZSwiZmVhdHVyZV9sb2NhbGVfZW5fR0IiOnRydWUsImZlYXR1cmVfbG9jYWxlX3B0X0JSIjp0cnVlLCJmZWF0dXJlX25ld19sb2NhbGVfdG9hc3QiOnRydWUsImZlYXR1cmVfY2hhbm5lbF9leHBvcnRzIjpmYWxzZSwiZmVhdHVyZV9kb2NzIjp0cnVlLCJmZWF0dXJlX2RvY3NfdHJhbnNsYXRpb25zIjpmYWxzZSwiZmVhdHVyZV9kb2NzX21lbnRpb25zX2FuZF9jaGFubmVscyI6ZmFsc2UsImZlYXR1cmVfYm9vdF9mYWxsYmFja192aWV3X3YxIjpmYWxzZSwiZmVhdHVyZV9jYWxsc19lc2NfdWkiOnRydWUsImZlYXR1cmVfc3BvY2tfY2FsbHMiOnRydWUsImZlYXR1cmVfbW9kZXJuX2NhbGxzX2ludml0ZSI6ZmFsc2UsImZlYXR1cmVfc3BvY2tfY2FsbHNfYTExeSI6ZmFsc2UsImZlYXR1cmVfc3BvY2tfY2FsbHNfZHJhd19jb2xvcl9waWNrZXIiOmZhbHNlLCJmZWF0dXJlX2NhbGxzX3N1cnZleV9yZXF1ZXN0X3Jlc3BvbnNlIjp0cnVlLCJmZWF0dXJlX3JlbW90ZV9maWxlc19kcm9wYm94X21pZ3JhdGlvbiI6dHJ1ZSwiZmVhdHVyZV9yZW1vdGVfZmlsZXNfZHJvcGJveF9taWdyYXRpb25fbGFiZWxzIjp0cnVlLCJmZWF0dXJlX3JlbW90ZV9maWxlc19hcGkiOnRydWUsImZlYXR1cmVfZGVmYXVsdF9zaGFyZWRfY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfcmVhY3RfbGZzIjpmYWxzZSwiZmVhdHVyZV9sb2dfcXVpY2tzd2l0Y2hlcl9xdWVyaWVzIjp0cnVlLCJmZWF0dXJlX21jX21lbnRpb25zX3RhYl9wcmVmc19hbmRfY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfdG9rZW5faXBfd2hpdGVsaXN0Ijp0cnVlLCJmZWF0dXJlX3NpZGViYXJfdGhlbWVfdW5kbyI6ZmFsc2UsImZlYXR1cmVfaGlkZV9vbl9zdGFydHVwIjpmYWxzZSwiZmVhdHVyZV9kb250X3NldF9jaGFubmVsX21lbWJlcnNoaXBfdHdpY2UiOmZhbHNlLCJmZWF0dXJlX2FsbG93X2ludHJhX3dvcmRfZm9ybWF0dGluZyI6dHJ1ZSwiZmVhdHVyZV9hbGxvd19jamtfYXV0b2NvbXBsZXRlIjp0cnVlLCJmZWF0dXJlX2kxOG5fY2hhbm5lbHNfdmFsaWRhdGVfZW1vamkiOnRydWUsImZlYXR1cmVfZndfZW5nX25vcm1hbGl6YXRpb24iOnRydWUsImZlYXR1cmVfc2xpbV9zY3JvbGxiYXIiOmZhbHNlLCJmZWF0dXJlX3ByaW1hcnlfc2VhcmNoIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fc291bmRzIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fZnV6enlfbWF0Y2hlciI6ZmFsc2UsImZlYXR1cmVfc2xpX2NoYW5uZWxfYXJjaGl2ZV9zdWdnZXN0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9zdGVlcGxlX2NodXJjaCI6dHJ1ZSwiZmVhdHVyZV9zdGVlcGxlX2NodXJjaF9saW5rIjp0cnVlLCJmZWF0dXJlX3N0ZWVwbGVfY2h1cmNoX2V4dCI6ZmFsc2UsImZlYXR1cmVfc3Ryb2xsZXJzX3RvX3BlcmNoIjp0cnVlLCJmZWF0dXJlX3NpZGViYXJfdmlydHVhbGl6ZWQiOmZhbHNlLCJmZWF0dXJlX2ZhbnRhaWxfbnVydHVyZSI6ZmFsc2UsImZlYXR1cmVfcG91cm92ZXIiOmZhbHNlLCJmZWF0dXJlX21vZGVybl9tcGltX21ha2VfbmFtZSI6ZmFsc2UsImZlYXR1cmVfcGVvcGxlX3NlYXJjaCI6ZmFsc2UsImZlYXR1cmVfcmVhY3RfbWVzc2FnZXMiOnRydWUsImZlYXR1cmVfZWRnZV91cGxvYWRfcHJveHlfY2hlY2siOmZhbHNlLCJmZWF0dXJlX2xlZ2FjeV9maWxlX3VwbG9hZF9hbmFseXRpY3MiOnRydWUsImZlYXR1cmVfc29uaWNfY2xpcGJvYXJkIjpmYWxzZSwiZmVhdHVyZV9zb25pY19hY3Rpdml0eSI6ZmFsc2UsImZlYXR1cmVfZWRpdF9wcm9maWxlX3NwZWVkX2J1bXAiOmZhbHNlLCJmZWF0dXJlX2Rvd25sb2Fkc19wb2xpc2giOmZhbHNlLCJmZWF0dXJlX3NvbmljX2RtX2Jyb3dzZXIiOnRydWUsImZlYXR1cmVfc29uaWNfZWRpdF9wcm9maWxlIjpmYWxzZSwiZmVhdHVyZV9zb25pY19maW5kX21vcmVfd2tzcHMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2lucHV0cyI6ZmFsc2UsImZlYXR1cmVfdGhyZWFkZWRfc2xhY2tfb3duZWRfcGx1Z2lucyI6dHJ1ZSwiZmVhdHVyZV9kZXByZWNhdGVfdW51c2VkX2NvbW1hbmRzIjp0cnVlLCJmZWF0dXJlX2hpZGVfdW5mdXJsX3VybHMiOmZhbHNlLCJmZWF0dXJlX3JlYWN0X21lbWJlcl9wcm9maWxlX2NhcmQiOmZhbHNlLCJmZWF0dXJlX2Vycm9yX2JvdW5kYXJ5X2NvcHkiOnRydWUsImZlYXR1cmVfc29uaWNfY2xvdWRfZmlsZXNfcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9zb25pY19zbmlwcGV0cyI6ZmFsc2UsImZlYXR1cmVfY29weV9jaGFubmVsX25hbWUiOmZhbHNlLCJmZWF0dXJlX2JveF9jb250ZW50X3BpY2tlciI6dHJ1ZSwiZmVhdHVyZV9mYWlsb3Zlcl9wcm94eV9jaGVjayI6ZmFsc2UsImZlYXR1cmVfYXBwX3N1YmRvbWFpbl9jaGVjayI6dHJ1ZSwiZmVhdHVyZV9zb25pY19kcmFmdF9taWdyYXRpb24iOnRydWUsImZlYXR1cmVfY2RuX2Rvd25sb2FkX3Rlc3QiOmZhbHNlLCJmZWF0dXJlX2FwcF9pbmRleCI6ZmFsc2UsImZlYXR1cmVfbW9kZXJuaXplX3NsYWNrX2FjdGlvbnMiOmZhbHNlLCJmZWF0dXJlX2dkcml2ZV9kb19ub3RfaW5zdGFsbF9ieV9kZWZhdWx0Ijp0cnVlLCJmZWF0dXJlX2RlbGV0ZV9tb3ZlZF9jaGFubmVscyI6dHJ1ZSwiZmVhdHVyZV9zaW5nbGVfd29ya3NwYWNlX3JlZGlyZWN0Ijp0cnVlLCJmZWF0dXJlX3plcm9fd29ya3NwYWNlX29uYm9hcmRpbmciOnRydWUsImZlYXR1cmVfb29tX212X2NoYW5uZWxzX2xpc3QiOnRydWUsImZlYXR1cmVfc3NvX2Zvcm1hdHRpbmdfZXJyb3IiOnRydWUsImZlYXR1cmVfc2luZ2xlX3VzZXJfd29ya3NwYWNlX3BhZ2luYXRpb24iOnRydWUsImZlYXR1cmVfZWttX3BoYXNlXzIiOnRydWUsImZlYXR1cmVfZWttX2JhY2tmaWxsX2FkZF9zbGVlcCI6ZmFsc2UsImZlYXR1cmVfZWttX2ZpbGVfcmV2b2NhdGlvbiI6ZmFsc2UsImZlYXR1cmVfZWttX3Jldm9jYXRpb25fYXBpX2NoYW5nZXMiOmZhbHNlLCJmZWF0dXJlX2VrbV9tZXNzYWdlX3Jldm9jYXRpb25fcG9sbGluZ190ZXN0IjpmYWxzZSwiZmVhdHVyZV9la21fbWVzc2FnZV9yZXZvY2F0aW9uIjp0cnVlLCJmZWF0dXJlX2xvbmdlcl9jaGFubmVsX25hbWVzIjp0cnVlLCJmZWF0dXJlX21zX2xhdGVzdCI6dHJ1ZSwiZmVhdHVyZV9ndWVzdHNfdXNlX2VudGl0bGVtZW50cyI6dHJ1ZSwiZmVhdHVyZV9hcHBfc3BhY2UiOnRydWUsImZlYXR1cmVfbTExbl9hcHBzX2Jyb3dzZXIiOmZhbHNlLCJmZWF0dXJlX3Nob3dfaW5zdGFsbGVkX2FwcF9kbV9zdWdnZXN0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9hcHBfc3BhY2VfbGlua3MiOnRydWUsImZlYXR1cmVfYXBwX2NhbnZhc2VzIjpmYWxzZSwiZmVhdHVyZV9hcHBfdmlld3NfdjEiOmZhbHNlLCJmZWF0dXJlX2FwcF92aWV3c19hcGlzX3YxIjpmYWxzZSwiZmVhdHVyZV9hcHBfaG9tZV9hZG1pbl9wYWdlcyI6ZmFsc2UsImZlYXR1cmVfYXBwX3ZpZXdzX3JlbWluZGVycyI6ZmFsc2UsImZlYXR1cmVfYXBwX3ZpZXdzX3JlbWluZGVyc19saXN0IjpmYWxzZSwiZmVhdHVyZV9ibG9ja3NfcmVtaW5kZXJzX2xpc3QiOmZhbHNlLCJmZWF0dXJlX21lc3NhZ2VfYmxvY2tzIjpmYWxzZSwiZmVhdHVyZV9zaWxlbmNlX2FwcF9kbXMiOmZhbHNlLCJmZWF0dXJlX3NldF90el9hdXRvbWF0aWNhbGx5Ijp0cnVlLCJmZWF0dXJlX2NvbmZpcm1fY2xlYXJfYWxsX3VucmVhZHNfcHJlZiI6dHJ1ZSwiZmVhdHVyZV9ibG9ja19tb3VudHMiOnRydWUsImZlYXR1cmVfYXR0YWNobWVudHNfdjIiOnRydWUsImZlYXR1cmVfYmxvY2tfa2l0X2RvY3VtZW50YXRpb24iOnRydWUsImZlYXR1cmVfYmxvY2tfa2l0X2V4cGFuZGFibGVfYmxvY2siOmZhbHNlLCJmZWF0dXJlX2dyb3VwX2Jsb2NrIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfZGVlcF9saW5rcyI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X211bHRpX3NlbGVjdHMiOmZhbHNlLCJmZWF0dXJlX3Nob3dfYmxvY2tfa2l0X2luX3NoYXJlX2RpYWxvZ3MiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2tpdF9ldmVudF9ibG9jayI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X3JlZmFjdG9yIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfc2hvdWxkX3VzZV9zbGFja19raXRfc2VsZWN0Ijp0cnVlLCJmZWF0dXJlX2Jsb2NrX2tpdF91c2VyX2Jsb2NrIjpmYWxzZSwiZmVhdHVyZV9ibG9ja19raXRfcmFkaW9fYnV0dG9ucyI6ZmFsc2UsImZlYXR1cmVfYmxvY2tfa2l0X2NoZWNrYm94ZXMiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2tpdF9yYW5nZV9kYXRlcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9hZGRfYXBwX2hvbWVfdGVhbV9uYW1lIjpmYWxzZSwiZmVhdHVyZV9kYXRlX3RpbWVfcGlja2VyIjpmYWxzZSwiZmVhdHVyZV9iZWFjb25fanNfZXJyb3JzIjpmYWxzZSwiZmVhdHVyZV9iZWFjb25fanNfYWRtaW5fZXJyb3JzIjpmYWxzZSwiZmVhdHVyZV9kaWFsb2dzX3YyX21vYmlsZSI6dHJ1ZSwiZmVhdHVyZV91c2VyX2FwcF9kaXNhYmxlX3NwZWVkX2J1bXAiOnRydWUsImZlYXR1cmVfb25lZHJpdmVfcGlja2VyIjp0cnVlLCJmZWF0dXJlX29uZWRyaXZlX3JlZGlyZWN0X3VyaSI6dHJ1ZSwiZmVhdHVyZV9vbmVkcml2ZV9iZXR0ZXJfZXJyb3JzIjp0cnVlLCJmZWF0dXJlX29uZWRyaXZlX2xhbmRpbmdfcGFnZSI6dHJ1ZSwiZmVhdHVyZV9vbmVkcml2ZV9kZXByZWNpYXRpb25fYmFubmVyIjpmYWxzZSwiZmVhdHVyZV9vbmVkcml2ZV91cGRhdGVfdW5mdXJsX3N1Z2dlc3Rpb25zIjp0cnVlLCJmZWF0dXJlX2Rpc2FibGVfYm94X3BsdXNfbWVudSI6ZmFsc2UsImZlYXR1cmVfdHJhY3Rvcl9zaGFyZWRfaW52aXRlX2xpbmsiOnRydWUsImZlYXR1cmVfbmV3eHBfMjExOSI6dHJ1ZSwiZmVhdHVyZV90cmFjdG9yX2JhY2t1cF9jaGFubmVsbmFtZV9jb3B5Ijp0cnVlLCJmZWF0dXJlX3NrX3RhYmxlcyI6ZmFsc2UsImZlYXR1cmVfc29uaWNfZGVncmFkZWRfYmFubmVyIjp0cnVlLCJmZWF0dXJlX2RlZ3JhZGVkX3NlbmQiOnRydWUsImZlYXR1cmVfZmxhbm5lbF94aHIiOnRydWUsImZlYXR1cmVfZGVzeW5jX3Jlc3luYyI6ZmFsc2UsImZlYXR1cmVfdml0ZXNzX3NpZGViYXIiOnRydWUsImZlYXR1cmVfc3RyYW5nZXJfZGFuZ2VyIjpmYWxzZSwiZmVhdHVyZV9tZXNzYWdlX2hpc3RvcnlfY2ZtIjp0cnVlLCJmZWF0dXJlX2RlZ3JhZGVkX3J0bV9hbHdheXNfZmFpbHMiOmZhbHNlLCJmZWF0dXJlX2RlbGV0ZV90ZWFtX2FuZF9hcHBzIjp0cnVlLCJmZWF0dXJlX3BqcGVnIjpmYWxzZSwiZmVhdHVyZV9wZGZfdGh1bWIiOnRydWUsImZlYXR1cmVfYXBwc19tYW5hZ2VfcGVybWlzc2lvbnNfc2NvcGVfY2hhbmdlcyI6dHJ1ZSwiZmVhdHVyZV9yZW1pbmRlcl9jcm9zc193b3Jrc3BhY2UiOnRydWUsImZlYXR1cmVfc3BlZWR5X2Jvb3RfaGFuZGxlYmFycyI6ZmFsc2UsImZlYXR1cmVfc2FtbF9vd25lcnNfb25seSI6dHJ1ZSwiZmVhdHVyZV9tb2Rlcm5fZHVubmluZ19iYW5uZXJzX2kxOG4iOnRydWUsImZlYXR1cmVfZmxhbm5lbF9hbHdheXNfdXNlX2NhbmFyeSI6ZmFsc2UsImZlYXR1cmVfc29uaWNfcmVkaXJlY3Rfb3B0X291dCI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdiI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdl9yb2xsYmFjayI6ZmFsc2UsImZlYXR1cmVfZ2xvYmFsX25hdl9sYXlvdXQiOmZhbHNlLCJmZWF0dXJlX2NsYXNzaWNfbmF2IjpmYWxzZSwiZmVhdHVyZV9uZXdfcmVhY3Rpb25zIjp0cnVlLCJmZWF0dXJlX3BhZ2VzX2V4YW1wbGUiOmZhbHNlLCJmZWF0dXJlX3NvbmljX3BpbnMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2NoYW5uZWxfYnJvd3NlciI6dHJ1ZSwiZmVhdHVyZV9zb25pY192aWRlb19wbGFjZWhvbGRlciI6dHJ1ZSwiZmVhdHVyZV9hcHBfZGlyZWN0b3J5X2hvbWVfcGFnZV9yZWRlc2lnbiI6dHJ1ZSwiZmVhdHVyZV9oaWRkZW5fd2tzcF91bmZ1cmxzIjp0cnVlLCJmZWF0dXJlX2d1ZXN0X3drc3BfdW5mdXJscyI6ZmFsc2UsImZlYXR1cmVfd29ya3NwYWNlX3NjaW1fbWFuYWdlbWVudCI6ZmFsc2UsImZlYXR1cmVfdW5pZmllZF9tZW1iZXIiOmZhbHNlLCJmZWF0dXJlX25ld191bmlmaWVkX2xpc3RfZW50aXRpZXMiOmZhbHNlLCJmZWF0dXJlX3R1cm5fbXBkbV9ub3RpZnNfb24iOnRydWUsImZlYXR1cmVfYnJvd3Nlcl9kcmFnbmRyb3AiOmZhbHNlLCJmZWF0dXJlX2Rlc2t0b3BfZm9yY2VfcHJvZHVjdGlvbl9jaGFubmVsIjpmYWxzZSwiZmVhdHVyZV9kZXNrdG9wX2xvZ3NfdXBsb2FkIjpmYWxzZSwiZmVhdHVyZV9tYWNvc19kaXNhYmxlX2h3Ijp0cnVlLCJmZWF0dXJlX2Rlc2t0b3Bfbm90aWZpY2F0aW9uc18yMDE4IjpmYWxzZSwiZmVhdHVyZV9leGNlbF9vZmZpY2VfcHJldmlldyI6dHJ1ZSwiZmVhdHVyZV9vcmdfYXdhcmVfZXh0ZXJuYWxfc2hhcmVkX2NoYW5uZWxzIjp0cnVlLCJmZWF0dXJlX2VzY19kaXNjb25uZWN0X3YyX2NsaWVudCI6dHJ1ZSwiZmVhdHVyZV9lc2NfZGlzY29ubmVjdF92Ml9yZWxlYXNlX2RlcGVuZGVudF9jb3B5Ijp0cnVlLCJmZWF0dXJlX3F1aWxsX3VwZ3JhZGUiOnRydWUsImZlYXR1cmVfYWxseV9zb3VuZHMiOmZhbHNlLCJmZWF0dXJlX2JvdHNfbm90X21lbWJlcnMiOnRydWUsImZlYXR1cmVfd3RhX21vZGFsX20xMW4iOmZhbHNlLCJmZWF0dXJlX3d0YV9zdG9wX2NyZWF0aW9uIjp0cnVlLCJmZWF0dXJlX20xMW5fY2hhbm5lbF9kZXRhaWxzIjpmYWxzZSwiZmVhdHVyZV9ncm91cF9zY29wZXMiOmZhbHNlLCJmZWF0dXJlX2Jsb2NrX2d1ZXN0X2FwcF9jcmVhdGlvbiI6dHJ1ZSwiZmVhdHVyZV9vYXV0aF9jaGFubmVsX3BpY2tlcnNfZmxhbm5lbCI6ZmFsc2UsImZlYXR1cmVfd3RhX29yZ19sZXZlbF9hcHBzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2FjdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3Nob3J0Y3V0c19idXR0b25fb25fbGVmdCI6ZmFsc2UsImZlYXR1cmVfY29sb3JmdWxfc2xhc2hfY29tbWFuZHMiOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfYWN0aW9uc19jbGllbnQiOmZhbHNlLCJmZWF0dXJlX3Nob3J0Y3V0c19wcm9tcHQiOnRydWUsImZlYXR1cmVfYWNjZXNzaWJsZV9kaWFsb2dzIjp0cnVlLCJmZWF0dXJlX2FwcF9hY3Rpb25zX2dsb2JhbCI6ZmFsc2UsImZlYXR1cmVfYXBwX2FjdGlvbnNfZmVfcmVmYWN0b3IiOmZhbHNlLCJmZWF0dXJlX3NoYXJlZF9jaGFubmVsX2ZyZWVfdHJpYWxfZmxvdyI6dHJ1ZSwiZmVhdHVyZV9jYWxsc19jbGlwYm9hcmRfYnJvYWRjYXN0aW5nX29wdGluIjp0cnVlLCJmZWF0dXJlX3NjcmVlbl9zaGFyZV9uZWVkc19hZXJvIjpmYWxzZSwiZmVhdHVyZV9zbGlfdHJlbmRpbmdfZGFzaGJvYXJkIjpmYWxzZSwiZmVhdHVyZV9pMThuX3NlbGVjdF9lbXB0eV9zdGF0ZV9zdHJpbmciOmZhbHNlLCJmZWF0dXJlX2FjY2Vzc2libGVfZnNfZGlhbG9ncyI6dHJ1ZSwiZmVhdHVyZV9jaGFubmVsX2Jyb3dzZXJfZHJvcGRvd24iOnRydWUsImZlYXR1cmVfdHJhcF9rYl93aXRoaW5fZnNfbW9kYWxzIjp0cnVlLCJmZWF0dXJlX2RpYWxvZ19zcGVlZGJ1bXAiOnRydWUsImZlYXR1cmVfbW9kZXJuX2ltYWdlX3ZpZXdlciI6dHJ1ZSwiZmVhdHVyZV9lbW9qaV9ieV9pZCI6dHJ1ZSwiZmVhdHVyZV93dGFfbm90aWZpY2F0aW9ucyI6dHJ1ZSwiZmVhdHVyZV9tY19taWdyYXRpb25fYmFubmVyIjp0cnVlLCJmZWF0dXJlX2ZpbGVfY29tbWVudF9kZWxldGVkX3J0bV9oYW5kbGVyIjpmYWxzZSwiZmVhdHVyZV9hdHRhY2htZW50X3RleHRfbW9yZSI6ZmFsc2UsImZlYXR1cmVfYXJpYV9hcHBsaWNhdGlvbl9tb2RlIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcmVxdWVzdF93b3Jrc3BhY2VfZGlhbG9nIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcHJvZmlsZV9mbGV4cGFuZSI6ZmFsc2UsImZlYXR1cmVfc2NnX2NvbnZlcnNpb25fY2hhbm5lbHMiOnRydWUsImZlYXR1cmVfcmVkdWNlX3VuZXhwZWN0ZWRfdW5pbnN0YWxscyI6dHJ1ZSwiZmVhdHVyZV9zb25pY19xdWlja19zd2l0Y2hlciI6ZmFsc2UsImZlYXR1cmVfaWRwX2dyb3VwX3dhcm5pbmciOmZhbHNlLCJmZWF0dXJlX3RyYWNrX3RpbWVfc3BlbnQiOnRydWUsImZlYXR1cmVfYW5ub3VuY2Vfb25seSI6dHJ1ZSwiZmVhdHVyZV9hbm5vdW5jZV9vbmx5X3dlYnNvY2tldCI6dHJ1ZSwiZmVhdHVyZV9hbm5vdW5jZV9vbmx5X3ByZWZfY2hhbmdlX21lc3NhZ2UiOnRydWUsImZlYXR1cmVfYW5ub3VuY2Vfb25seV9wcm9tbyI6ZmFsc2UsImZlYXR1cmVfYXRfbWVudGlvbl9pbnZpdGVzIjpmYWxzZSwiZmVhdHVyZV9jaGFubmVsX2ludml0ZV90b2tlbml6YXRpb24iOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfaXNfbmV3X2NyZWF0ZV9lZGl0IjpmYWxzZSwiZmVhdHVyZV9jb21wb3NlX3Byb3RvdHlwZSI6ZmFsc2UsImZlYXR1cmVfaW1wb3J0c19jYW5jZWwiOmZhbHNlLCJmZWF0dXJlX2ltcG9ydHNfY2hhbm5lbF9zZXBhcmF0aW9uIjpmYWxzZSwiZmVhdHVyZV9ldmFsdWVfMjY0MV9kaXNhbGxvd19lbmZvcmNlX29yZ3dpZGVfcG9saWN5IjpmYWxzZSwiZmVhdHVyZV9lbWFpbF93b3Jrb2JqZWN0X3VpIjpmYWxzZSwiZmVhdHVyZV9lbWFpbF9ub3RpZnkiOmZhbHNlLCJmZWF0dXJlX2VtYWlsX3ByaXZhdGUiOnRydWUsImZlYXR1cmVfYXN5bmNfdXNlcnNfc2V0X3Bob3RvIjpmYWxzZSwiZmVhdHVyZV9lc2NfYWRtaW4iOnRydWUsImZlYXR1cmVfY3VzdG9taXplZF9kb21haW5fY2xhaW1pbmciOnRydWUsImZlYXR1cmVfb3JnX3dpZGVfbTExbiI6ZmFsc2UsImZlYXR1cmVfY2FsZW5kYXJfc2ltcGxlX2FnZW5kYV92aWV3IjpmYWxzZSwiZmVhdHVyZV9hbmFseXRpY3NfZW5hYmxlX2RpdmlzaW9uIjpmYWxzZSwiZmVhdHVyZV9zZWFyY2hfb25fbmFtZV9hbmRfZW1haWxfb25seSI6dHJ1ZSwiZmVhdHVyZV9lbnRlcnByaXNlX2FuYWx5dGljc19hcHBzX3RhYiI6ZmFsc2UsImZlYXR1cmVfZW50ZXJwcmlzZV9hbmFseXRpY3NfMjAxOV9xMV91cGRhdGUiOnRydWUsImZlYXR1cmVfaW5zaWdodHNfYWxsb3dfYWNjZXNzX3RvX2FwcCI6ZmFsc2UsImZlYXR1cmVfZXhpc3RpbmdfaGVscF9yZXF1ZXN0X2F0dGFjaG1lbnRzIjp0cnVlLCJmZWF0dXJlX21pZ3JhdGlvbl9iYWNrZ3JvdW5kX2NsaWVudCI6ZmFsc2UsImZlYXR1cmVfdW5mdXJsX21ldGFkYXRhIjpmYWxzZSwiZmVhdHVyZV9wbHVzX21lbnVfYWRkX2FwcHNfbGluayI6ZmFsc2UsImZlYXR1cmVfcmVjZW50X2ZpbGVzX29tbmlwaWNrZXIiOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2JvdHNfZGV2ZWxvcGVyX3ByZXZpZXciOmZhbHNlLCJmZWF0dXJlX2dyYW51bGFyX2JvdF9zY29wZXNfR0EiOmZhbHNlLCJmZWF0dXJlX2VtYWlsX2JyaWRnZV9ncmlkIjpmYWxzZSwiZmVhdHVyZV9yZW1vdmVfZ2RyaXZlX2NvbmZpcm1hdGlvbiI6ZmFsc2UsImZlYXR1cmVfc3RyaXBlX3NjYSI6ZmFsc2UsImZlYXR1cmVfc2VsZl9zZXJ2ZV9zZWxlY3QiOnRydWUsImZlYXR1cmVfdmF0X3Byb2plY3Rfc2Ffc2siOnRydWUsImZlYXR1cmVfdmF0X3Byb2plY3Rfc2Ffc2tfMiI6dHJ1ZSwiZmVhdHVyZV92YXRfcHJvamVjdF9zYV9za19jb2xsZWN0aW9uIjp0cnVlLCJmZWF0dXJlX2VtYWlsX2JpbGxpbmdfcGVuZGluZ19leHBpcnlfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3VwZ3JhZGVfc2xhY2tfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3BlcnNfc2VhcmNoX21zZ19saW1pdF93YXJuaW5nX2kxOG4iOnRydWUsImZlYXR1cmVfaGlnaGxpZ2h0X3N0YW5kYXJkX29uX3BsYW5zX3BhZ2VfaTE4biI6dHJ1ZSwiZmVhdHVyZV9nc29fcmVtb3RlX3Nlc3Npb25fd2lwZSI6ZmFsc2UsImZlYXR1cmVfYWRtaW5fbW92ZV9jaGFubmVsc19tZXNzYWdlIjpmYWxzZSwiZmVhdHVyZV9uZXd4cF9qaXJhXzIwNDMiOnRydWUsImZlYXR1cmVfc2VlX21vcmVfY2hhbm5lbHMiOmZhbHNlLCJmZWF0dXJlX2NyZWF0b3Jfc29uaWNfdXJsIjpmYWxzZSwiZmVhdHVyZV9qaXJhX25ld3hwXzIzNzIiOnRydWUsImZlYXR1cmVfamlyYV9uZXd4cF8yMzcyX2NvcHkiOmZhbHNlLCJmZWF0dXJlX2ppcmFfbmV3eHBfMTc1NCI6ZmFsc2UsImZlYXR1cmVfdW5zdXBwb3J0ZWRfYnJvd3NlcnNfY29tcG9uZW50X3RyYW5zbGF0aW9ucyI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfZmVfaW52aXRlX21vZGVybiI6dHJ1ZSwiZmVhdHVyZV9hY3RpdmF0aW9uX21vZGVybl9nZXRfc3RhcnRlZCI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfMjEwNV90cmFuc2xhdGlvbnMiOmZhbHNlLCJmZWF0dXJlX21vZGVybml6ZV9jaGFubmVsX2NyZWF0ZV9tb2RhbCI6dHJ1ZSwiZmVhdHVyZV9zb25pY19wbGFjZWhvbGRlcl9sYWJlbHMiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2VzY19jcmVhdGlvbiI6ZmFsc2UsImZlYXR1cmVfbmlnaHRzaGFkZSI6dHJ1ZSwiZmVhdHVyZV9wbGF0Zm9ybV9jYWxsc19hcGkiOnRydWUsImZlYXR1cmVfdGhyZWFkZWRfY2FsbF9ibG9jayI6ZmFsc2UsImZlYXR1cmVfYnJpbmdfcGxhbnNfcGFnZV90b19zc2JfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX2VpZGVudF8yMTU0IjpmYWxzZSwiZmVhdHVyZV9tb2JpbGVfYmlvbWV0cmljc190aW1lb3V0Ijp0cnVlLCJmZWF0dXJlX3NvbmljX2NoYW5uZWxfaW52aXRlX21vZGFsIjpmYWxzZSwiZmVhdHVyZV9saWZlY3ljbGVfbG9nZ2luZ19wbGFuc19wYWdlIjp0cnVlLCJmZWF0dXJlX2NoYW5nZV9wdXJwb3NlX3RvX2Rlc2NyaXB0aW9uIjpmYWxzZSwiZmVhdHVyZV9wbGF0Zm9ybV9hcHBfbWFuYWdlbWVudF9vbl9kZW1hbmRfcGlja2VycyI6dHJ1ZSwiZmVhdHVyZV9wbGF0Zm9ybV9hcHBfbWFuYWdlbWVudF9vbl9kZW1hbmRfcGlja2Vyc19waGFzZV8yIjpmYWxzZSwiZmVhdHVyZV9zbGFja19tZXNzYWdlX2F0dGFjaG1lbnRfdG9vbHRpcCI6ZmFsc2UsImZlYXR1cmVfY2hlY2tvdXRfZnVsbF9zY2hlZHVsZV9zZWxlY3Rvcl90cmFuc2xhdGlvbnMiOnRydWUsImZlYXR1cmVfbW9kZXJuX2dkcml2ZV9jcmVhdGUiOmZhbHNlLCJmZWF0dXJlX2dkcml2ZV9wcm9tcHRfcmVmYWN0b3IiOnRydWUsImZlYXR1cmVfYXBwX3Byb21wdHNfY29ubmVjdF9yZWZhY3RvciI6ZmFsc2UsImZlYXR1cmVfbmV3eHBfMjc3OCI6dHJ1ZSwiZmVhdHVyZV9uZXd4cF8zMTAwIjpmYWxzZSwiZmVhdHVyZV9uZXd4cDMxMDBfdjEiOnRydWUsImZlYXR1cmVfc2VhcmNoX2ZlZWRiYWNrIjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5pemVfbGltaXRfbWV0ZXIiOnRydWUsImZlYXR1cmVfc2hhcmVkX2NoYW5uZWxzX2N1c3RvbV9lbW9qaXNfdXJsIjpmYWxzZSwiZmVhdHVyZV9zaGFyZWRfY2hhbm5lbHNfY3VzdG9tX2Vtb2ppc191cmxfY2xpZW50IjpmYWxzZSwiZmVhdHVyZV9uZXdfY29weV9mb3JfaWRlbnRpdHlfYmFzaWMiOmZhbHNlLCJmZWF0dXJlX25ld3hwXzI3OTgiOmZhbHNlLCJmZWF0dXJlX3NvbmljX2xlYXZlX3dvcmtzcGFjZV9kaWFsb2ciOmZhbHNlLCJmZWF0dXJlX2NoYW5uZWxfbmFtaW5nX25vcm1zIjp0cnVlLCJmZWF0dXJlX2FwcHNfYnJvd3Nlcl9hMTF5IjpmYWxzZSwiZmVhdHVyZV9iZXR0ZXJfc2NfaW52aXRlcyI6ZmFsc2UsImZlYXR1cmVfYmV0dGVyX21hbmFnZV9zY19tb2RhbCI6ZmFsc2UsImZlYXR1cmVfYmV0dGVyX3NjX2ludml0ZXNfYWNjZXB0X2Zsb3dfYXBwIjpmYWxzZSwiZmVhdHVyZV9iZXR0ZXJfc2NfaW52aXRlc19zbGFja2JvdF9jbGllbnQiOmZhbHNlLCJmZWF0dXJlX3BhaWRfb25ib2FyZGluZ19wYWdldXBkYXRlIjp0cnVlLCJmZWF0dXJlX2Rvd25sb2FkX2FjY2Vzc19sb2dzIjp0cnVlLCJmZWF0dXJlX25ld3hwXzMwOTdfdHJhbnNsYXRpb25zIjpmYWxzZSwiZmVhdHVyZV90cmFjZV93ZWJhcHBfaW5pdCI6dHJ1ZSwiZmVhdHVyZV9uZXd4cF8yODMyIjp0cnVlLCJmZWF0dXJlX2FwcF9icm93c2VyX2JldHRlcl9oZWFkZXJfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX2Fubm91bmNlbWVudF9vbmx5X2NoYW5uZWxfY29weV9jaGFuZ2VfdHJhbnNsYXRpb25zIjp0cnVlLCJmZWF0dXJlX3dvcmtmbG93X2JvdHNfaW5fY2xpZW50IjpmYWxzZSwiZmVhdHVyZV9idWlsZGVyX2lzX3dvcmtmbG93X2FwcCI6ZmFsc2UsImZlYXR1cmVfc3RyaXBlX2NvbXBsZXRlbHlfZG93bl9iYW5uZXIiOmZhbHNlLCJmZWF0dXJlX2ZlYXRfYnJvd3Nlcl9jb250cm9sIjpmYWxzZSwiZmVhdHVyZV9uZXd4cF8yODYyX3RyYW5zbGF0aW9ucyI6ZmFsc2UsImZlYXR1cmVfbW92ZV9jaGFubmVsc19jb3B5IjpmYWxzZSwiZmVhdHVyZV9tb2Rlcm5fcGxhbnNfcGFnZV90cmFuc2xhdGlvbnMiOmZhbHNlLCJmZWF0dXJlX3BsYW5zX3BhZ2VfcXVvdGUiOmZhbHNlLCJmZWF0dXJlX2NoZWNrb3V0djJfZGlzY291bnRfZm9yX2VkdWNhdGlvbl9hbmRfbm9ucHJvZml0IjpmYWxzZSwiZmVhdHVyZV9kZXByZWNhdGlvbl9kYXNoYm9hcmRzIjpmYWxzZSwiZmVhdHVyZV9lbnRlcnByaXNlX3NlbGVjdF9mcm9tX2JpbGxpbmciOmZhbHNlLCJjbGllbnRfbG9ncyI6eyIwIjp7Im51bWJlcnMiOlswXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiMiI6eyJudW1iZXJzIjpbMl0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQiOnsibnVtYmVycyI6WzRdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI1Ijp7Im51bWJlcnMiOls1XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiMjMiOnsibnVtYmVycyI6WzIzXSwidXNlcl9mYWNpbmciOmZhbHNlfSwic291bmRzIjp7Im5hbWUiOiJzb3VuZHMiLCJudW1iZXJzIjpbMzddfSwiMzciOnsibmFtZSI6InNvdW5kcyIsIm51bWJlcnMiOlszN10sInVzZXJfZmFjaW5nIjp0cnVlfSwiNDciOnsibnVtYmVycyI6WzQ3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNDgiOnsibnVtYmVycyI6WzQ4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiTWVzc2FnZSBIaXN0b3J5Ijp7Im5hbWUiOiJNZXNzYWdlIEhpc3RvcnkiLCJudW1iZXJzIjpbNThdfSwiNTgiOnsibmFtZSI6Ik1lc3NhZ2UgSGlzdG9yeSIsIm51bWJlcnMiOls1OF0sInVzZXJfZmFjaW5nIjp0cnVlfSwiNjciOnsibnVtYmVycyI6WzY3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzIiOnsibnVtYmVycyI6WzcyXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzMiOnsibnVtYmVycyI6WzczXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiODIiOnsibnVtYmVycyI6WzgyXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiODgiOnsibnVtYmVycyI6Wzg4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTEiOnsibnVtYmVycyI6WzkxXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTMiOnsibnVtYmVycyI6WzkzXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTYiOnsibnVtYmVycyI6Wzk2XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiOTkiOnsibnVtYmVycyI6Wzk5XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiQ2hhbm5lbCBNYXJraW5nIChNUykiOnsibmFtZSI6IkNoYW5uZWwgTWFya2luZyAoTVMpIiwibnVtYmVycyI6WzE0MV19LCIxNDEiOnsibmFtZSI6IkNoYW5uZWwgTWFya2luZyAoTVMpIiwibnVtYmVycyI6WzE0MV0sInVzZXJfZmFjaW5nIjp0cnVlfSwiQ2hhbm5lbCBNYXJraW5nIChDbGllbnQpIjp7Im5hbWUiOiJDaGFubmVsIE1hcmtpbmcgKENsaWVudCkiLCJudW1iZXJzIjpbMTQyXX0sIjE0MiI6eyJuYW1lIjoiQ2hhbm5lbCBNYXJraW5nIChDbGllbnQpIiwibnVtYmVycyI6WzE0Ml0sInVzZXJfZmFjaW5nIjp0cnVlfSwiQ2xvc2UgT2xkIElNcyAoQ2xpZW50KSI6eyJuYW1lIjoiQ2xvc2UgT2xkIElNcyAoQ2xpZW50KSIsIm51bWJlcnMiOlsyMjFdfSwiMjIxIjp7Im5hbWUiOiJDbG9zZSBPbGQgSU1zIChDbGllbnQpIiwibnVtYmVycyI6WzIyMV0sInVzZXJfZmFjaW5nIjp0cnVlfSwiMzY1Ijp7Im51bWJlcnMiOlszNjVdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCIzODkiOnsibnVtYmVycyI6WzM4OV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQzOCI6eyJudW1iZXJzIjpbNDM4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNDQ0Ijp7Im51bWJlcnMiOls0NDRdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI0ODEiOnsibnVtYmVycyI6WzQ4MV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjQ4OCI6eyJudW1iZXJzIjpbNDg4XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNTI5Ijp7Im51bWJlcnMiOls1MjldLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI1NTIiOnsibnVtYmVycyI6WzU1Ml0sInVzZXJfZmFjaW5nIjpmYWxzZX0sImRhc2hib2FyZCI6eyJuYW1lIjoiZGFzaGJvYXJkIiwibnVtYmVycyI6WzY2Nl19LCI2NjYiOnsibmFtZSI6ImRhc2hib2FyZCIsIm51bWJlcnMiOls2NjZdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI2NjciOnsibnVtYmVycyI6WzY2N10sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjc3MyI6eyJudW1iZXJzIjpbNzczXSwidXNlcl9mYWNpbmciOmZhbHNlfSwiNzc3Ijp7Im51bWJlcnMiOls3NzddLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCI3OTQiOnsibnVtYmVycyI6Wzc5NF0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIkNsaWVudCBSZXNwb25zaXZlbmVzcyI6eyJuYW1lIjoiQ2xpZW50IFJlc3BvbnNpdmVuZXNzIiwidXNlcl9mYWNpbmciOmZhbHNlLCJudW1iZXJzIjpbODA4XX0sIjgwOCI6eyJuYW1lIjoiQ2xpZW50IFJlc3BvbnNpdmVuZXNzIiwidXNlcl9mYWNpbmciOmZhbHNlLCJudW1iZXJzIjpbODA4XX0sIk1lc3NhZ2UgUGFuZSBTY3JvbGxpbmciOnsibmFtZSI6Ik1lc3NhZ2UgUGFuZSBTY3JvbGxpbmciLCJudW1iZXJzIjpbODg4XX0sIjg4OCI6eyJuYW1lIjoiTWVzc2FnZSBQYW5lIFNjcm9sbGluZyIsIm51bWJlcnMiOls4ODhdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIlVucmVhZCBiYW5uZXIgYW5kIGRpdmlkZXIiOnsibmFtZSI6IlVucmVhZCBiYW5uZXIgYW5kIGRpdmlkZXIiLCJudW1iZXJzIjpbOTk5XX0sIjk5OSI6eyJuYW1lIjoiVW5yZWFkIGJhbm5lciBhbmQgZGl2aWRlciIsIm51bWJlcnMiOls5OTldLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjEwMDAiOnsibnVtYmVycyI6WzEwMDBdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCJEdXBsaWNhdGUgYmFkZ2VzIChkZXNrdG9wIGFwcCBpY29ucykiOnsibmFtZSI6IkR1cGxpY2F0ZSBiYWRnZXMgKGRlc2t0b3AgYXBwIGljb25zKSIsIm51bWJlcnMiOlsxNzAxXX0sIjE3MDEiOnsibmFtZSI6IkR1cGxpY2F0ZSBiYWRnZXMgKGRlc2t0b3AgYXBwIGljb25zKSIsIm51bWJlcnMiOlsxNzAxXSwidXNlcl9mYWNpbmciOnRydWV9LCJNZW1iZXJzIjp7Im5hbWUiOiJNZW1iZXJzIiwibnVtYmVycyI6WzE5NzVdfSwiMTk3NSI6eyJuYW1lIjoiTWVtYmVycyIsIm51bWJlcnMiOlsxOTc1XSwidXNlcl9mYWNpbmciOnRydWV9LCJsYXp5IGxvYWRpbmciOnsibmFtZSI6ImxhenkgbG9hZGluZyIsIm51bWJlcnMiOlsxOTg5XX0sIjE5ODkiOnsibmFtZSI6ImxhenkgbG9hZGluZyIsIm51bWJlcnMiOlsxOTg5XSwidXNlcl9mYWNpbmciOnRydWV9LCJ0aGluX2NoYW5uZWxfbWVtYmVyc2hpcCI6eyJuYW1lIjoidGhpbl9jaGFubmVsX21lbWJlcnNoaXAiLCJudW1iZXJzIjpbMTk5MF19LCIxOTkwIjp7Im5hbWUiOiJ0aGluX2NoYW5uZWxfbWVtYmVyc2hpcCIsIm51bWJlcnMiOlsxOTkwXSwidXNlcl9mYWNpbmciOnRydWV9LCJzdGF0cyI6eyJuYW1lIjoic3RhdHMiLCJudW1iZXJzIjpbMTk5MV19LCIxOTkxIjp7Im5hbWUiOiJzdGF0cyIsIm51bWJlcnMiOlsxOTkxXSwidXNlcl9mYWNpbmciOnRydWV9LCJtcyI6eyJuYW1lIjoibXMiLCJudW1iZXJzIjpbMTk5Nl19LCIxOTk2Ijp7Im5hbWUiOiJtcyIsIm51bWJlcnMiOlsxOTk2XSwidXNlcl9mYWNpbmciOnRydWV9LCJzaGFyZWRfY2hhbm5lbHNfY29ubmVjdGlvbiI6eyJuYW1lIjoic2hhcmVkX2NoYW5uZWxzX2Nvbm5lY3Rpb24iLCJudW1iZXJzIjpbMTk5OV19LCIxOTk5Ijp7Im5hbWUiOiJzaGFyZWRfY2hhbm5lbHNfY29ubmVjdGlvbiIsIm51bWJlcnMiOlsxOTk5XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiZG5kIjp7Im5hbWUiOiJkbmQiLCJudW1iZXJzIjpbMjAwMl19LCIyMDAyIjp7Im5hbWUiOiJkbmQiLCJudW1iZXJzIjpbMjAwMl0sInVzZXJfZmFjaW5nIjp0cnVlfSwiMjAwMyI6eyJudW1iZXJzIjpbMjAwM10sInVzZXJfZmFjaW5nIjpmYWxzZX0sIlRocmVhZHMiOnsibmFtZSI6IlRocmVhZHMiLCJudW1iZXJzIjpbMjAwNF19LCIyMDA0Ijp7Im5hbWUiOiJUaHJlYWRzIiwibnVtYmVycyI6WzIwMDRdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjIwMDUiOnsibnVtYmVycyI6WzIwMDVdLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9LCJSZWFjdGlvbnMiOnsibmFtZSI6IlJlYWN0aW9ucyIsIm51bWJlcnMiOlsyMDA2XX0sIjIwMDYiOnsibmFtZSI6IlJlYWN0aW9ucyIsIm51bWJlcnMiOlsyMDA2XSwidXNlcl9mYWNpbmciOnRydWV9LCJUU1NTQi5mb2N1c1RhYkFuZFN3aXRjaFRvQ2hhbm5lbCI6eyJuYW1lIjoiVFNTU0IuZm9jdXNUYWJBbmRTd2l0Y2hUb0NoYW5uZWwiLCJudW1iZXJzIjpbMjAwN119LCIyMDA3Ijp7Im5hbWUiOiJUU1NTQi5mb2N1c1RhYkFuZFN3aXRjaFRvQ2hhbm5lbCIsIm51bWJlcnMiOlsyMDA3XSwidXNlcl9mYWNpbmciOmZhbHNlfSwiUHJlc2VuY2UgRGV0ZWN0aW9uIjp7Im5hbWUiOiJQcmVzZW5jZSBEZXRlY3Rpb24iLCJudW1iZXJzIjpbMjAxN119LCIyMDE3Ijp7Im5hbWUiOiJQcmVzZW5jZSBEZXRlY3Rpb24iLCJudW1iZXJzIjpbMjAxN10sInVzZXJfZmFjaW5nIjp0cnVlfSwibWNfc2licyI6eyJuYW1lIjoibWNfc2licyIsIm51bWJlcnMiOls5OTk5XX0sIjk5OTkiOnsibmFtZSI6Im1jX3NpYnMiLCJudW1iZXJzIjpbOTk5OV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIk1lbWJlciBzZWFyY2hpbmciOnsibmFtZSI6Ik1lbWJlciBzZWFyY2hpbmciLCJudW1iZXJzIjpbOTAyMTFdfSwiOTAyMTEiOnsibmFtZSI6Ik1lbWJlciBzZWFyY2hpbmciLCJudW1iZXJzIjpbOTAyMTFdLCJ1c2VyX2ZhY2luZyI6dHJ1ZX0sIjk4NzY1Ijp7Im51bWJlcnMiOls5ODc2NV0sInVzZXJfZmFjaW5nIjpmYWxzZX0sIjg2NzUzMDkiOnsibnVtYmVycyI6Wzg2NzUzMDldLCJ1c2VyX2ZhY2luZyI6ZmFsc2V9fX07Cglib290X2RhdGEuc3RhcnRfbXMgPSBEYXRlLm5vdygpOwo8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIFRTX2xhc3RfbG9nX2RhdGUgPSBudWxsOwp2YXIgVFNNYWtlTG9nRGF0ZSA9IGZ1bmN0aW9uKCkgewoJdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwoKCXZhciB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpOwoJdmFyIG1vID0gZGF0ZS5nZXRNb250aCgpKzE7Cgl2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpOwoKCXZhciB0aW1lID0gewoJICBoOiBkYXRlLmdldEhvdXJzKCksCgkgIG1pOiBkYXRlLmdldE1pbnV0ZXMoKSwKCSAgczogZGF0ZS5nZXRTZWNvbmRzKCksCgkgIG1zOiBkYXRlLmdldE1pbGxpc2Vjb25kcygpCgl9OwoKCU9iamVjdC5rZXlzKHRpbWUpLm1hcChmdW5jdGlvbihtb21lbnQsIGluZGV4KSB7CgkJaWYgKG1vbWVudCA9PSAnbXMnKSB7CgkJCWlmICh0aW1lW21vbWVudF0gPCAxMCkgewoJCQkJdGltZVttb21lbnRdID0gdGltZVttb21lbnRdKycwMCc7CgkJCX0gZWxzZSBpZiAodGltZVttb21lbnRdIDwgMTAwKSB7CgkJCQl0aW1lW21vbWVudF0gPSB0aW1lW21vbWVudF0rJzAnOwoJCQl9CgkJfSBlbHNlIGlmICh0aW1lW21vbWVudF0gPCAxMCkgewoJCQl0aW1lW21vbWVudF0gPSAnMCcgKyB0aW1lW21vbWVudF07CgkJfQoJfSk7CgoJdmFyIHN0ciA9IHkgKyAnLycgKyBtbyArICcvJyArIGQgKyAnICcgKyB0aW1lLmggKyAnOicgKyB0aW1lLm1pICsgJzonICsgdGltZS5zICsgJy4nICsgdGltZS5tczsKCWlmIChUU19sYXN0X2xvZ19kYXRlKSB7CgkJdmFyIGRpZmYgPSBkYXRlLVRTX2xhc3RfbG9nX2RhdGU7CgkJLy9zdHIrPSAnICgnK2RpZmYrJ21zKSc7Cgl9CglUU19sYXN0X2xvZ19kYXRlID0gZGF0ZTsKCXJldHVybiBzdHIrJyAnOwp9Cgp2YXIgcGFyc2VEZWVwTGlua1JlcXVlc3QgPSBmdW5jdGlvbihjb2RlKSB7Cgl2YXIgbSA9IGNvZGUubWF0Y2goLyJpZCI6IihbQ0RHXVtBLVowLTldezh9KSIvKTsKCXZhciBpZCA9IG0gPyBtWzFdIDogbnVsbDsKCgltID0gY29kZS5tYXRjaCgvInRlYW0iOiIoVFtBLVowLTldezh9KSIvKTsKCXZhciB0ZWFtID0gbSA/IG1bMV0gOiBudWxsOwoKCW0gPSBjb2RlLm1hdGNoKC8ibWVzc2FnZSI6IihbMC05XStcLlswLTldKykiLyk7Cgl2YXIgbWVzc2FnZSA9IG0gPyBtWzFdIDogbnVsbDsKCglyZXR1cm4geyBpZDogaWQsIHRlYW06IHRlYW0sIG1lc3NhZ2U6IG1lc3NhZ2UgfTsKfQoKaWYgKCdyZW5kZXJlckV2YWxBc3luYycgaW4gd2luZG93KSB7Cgl2YXIgb3JpZ1JlbmRlcmVyRXZhbEFzeW5jID0gd2luZG93LnJlbmRlcmVyRXZhbEFzeW5jOwoJd2luZG93LnJlbmRlcmVyRXZhbEFzeW5jID0gZnVuY3Rpb24oYmxvYikgewoJCXRyeSB7CgkJCXZhciBkYXRhID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoYXRvYihibG9iKSkpOwoJCQlpZiAoZGF0YS5jb2RlLm1hdGNoKC9oYW5kbGVEZWVwTGluay8pKSB7CgkJCQl2YXIgcmVxdWVzdCA9IHBhcnNlRGVlcExpbmtSZXF1ZXN0KGRhdGEuY29kZSk7CgkJCQlpZiAoIXJlcXVlc3QuaWQgfHwgIXJlcXVlc3QudGVhbSB8fCAhcmVxdWVzdC5tZXNzYWdlKSByZXR1cm47CgoJCQkJcmVxdWVzdC5jbWQgPSAnY2hhbm5lbCc7CgkJCQlUU1NTQi5oYW5kbGVEZWVwTGlua1dpdGhBcmdzKEpTT04uc3RyaW5naWZ5KHJlcXVlc3QpKTsKCQkJCXJldHVybjsKCQkJfSBlbHNlIHsKCQkJCW9yaWdSZW5kZXJlckV2YWxBc3luYyhibG9iKTsKCQkJfQoJCX0gY2F0Y2ggKGUpIHsKCQl9Cgl9Cn08L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIFRTU1NCID0gewoJY2FsbDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQp9Ozwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3JvbGx1cC1jb3JlX3JlcXVpcmVkX2xpYnMuNGE4MTZhOGVkMzQ0NjcyZjQ0MzYubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvbW9kZXJuLnZlbmRvci5jZTNhMWQ4NTY5ZjczMjFhOWQ5MC5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9hcHBsaWNhdGlvbi5jMDcwZjExNDUwYjg1Njk5Y2NkMC5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtY29yZV9yZXF1aXJlZF90cy5hOTcwNjYzYTY2ZTI2MzY1OWJhMi5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtY29yZV93ZWIuMTg5Y2YyOTY0NzQ1YmExNjQ0MWEubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvcm9sbHVwLWFwaV9kb2NzLmMwMzIxZmM4N2NkMmE1NmRjNDVjLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vYS5zbGFjay1lZGdlLmNvbS9idjEtNi04Yzg1OGZhL3JvbGx1cC1zZWNvbmRhcnlfYV9yZXF1aXJlZC44N2M3OGM1NjZmZjJmMmQ0OTM1Ny5taW4uanMiIG9ubG9hZD0id2luZG93Ll9jZG4gPyBfY2RuLm9rKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBvbmVycm9yPSJ3aW5kb3cuX2NkbiA/IF9jZG4uZmFpbGVkKHRoaXMsIGFyZ3VtZW50cykgOiBudWxsIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Euc2xhY2stZWRnZS5jb20vYnYxLTYtOGM4NThmYS9yb2xsdXAtc2Vjb25kYXJ5X2JfcmVxdWlyZWQuODEzYWE1NzYzYTVjYjA1ZGUwMjMubWluLmpzIiBvbmxvYWQ9IndpbmRvdy5fY2RuID8gX2Nkbi5vayh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgb25lcnJvcj0id2luZG93Ll9jZG4gPyBfY2RuLmZhaWxlZCh0aGlzLCBhcmd1bWVudHMpIDogbnVsbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hLnNsYWNrLWVkZ2UuY29tL2J2MS02LThjODU4ZmEvZm9vdGVyLmQwYzNkMjkxY2FjN2RlMWVlNzMxLm1pbi5qcyIgb25sb2FkPSJ3aW5kb3cuX2NkbiA/IF9jZG4ub2sodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIG9uZXJyb3I9IndpbmRvdy5fY2RuID8gX2Nkbi5mYWlsZWQodGhpcywgYXJndW1lbnRzKSA6IG51bGwiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxzY3JpcHQ+CQkJd2luZG93LmJvb3RfZGF0YSA9IHdpbmRvdy5ib290X2RhdGEgfHwge307CgkJCWJvb3RfZGF0YS5ub19sb2dpbiA9IHRydWU7CgkJCWJvb3RfZGF0YS5hcHAgPSAnYXBpJzsKCQkJYm9vdF9kYXRhLmFwaV91cmwgPSAnL2FwaS8nOwoJCQlib290X2RhdGEuYXBwX2lkID0gIiI7CgkJCWJvb3RfZGF0YS5hcHBfbmFtZSA9ICIiOwoJCQlib290X2RhdGEubnVtX3RlYW1zID0gMDsKCQkJYm9vdF9kYXRhLnJlc2VydmVkX2NvbW1hbmRzID0gW107CgkJCWJvb3RfZGF0YS5udW1fY29tbWFuZHMgPSAwOwoJCQlib290X2RhdGEuc3Vkb191cmwgPSAiIjsKCQkJYm9vdF9kYXRhLmFwaV90b2tlbiA9ICIiOwoJCQlUUy5ib290KGJvb3RfZGF0YSk7PC9zY3JpcHQ+PHNjcmlwdD4KdmFyIGFwaV91cmwgPSAiaHR0cHM6XC9cL3NsYWNrLmNvbVwvYXBpXC9jaGF0LnBvc3RNZXNzYWdlIjsKdmFyIGFwaV90b2tlbnMgPSB7fTsKdmFyIGFwaV9hcmdzID0geyJ0b2tlbiI6eyJ0eXBlIjoidG9rZW4iLCJvcHRpb25hbCI6ZmFsc2UsImV4YW1wbGUiOiJ4eHh4LXh4eHh4eHh4eC14eHh4IiwiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VBdXRoZW50aWNhdGlvbiB0b2tlbiBiZWFyaW5nIHJlcXVpcmVkIHNjb3Blcy5cdTAwM0NcL3BcdTAwM0VcbiIsInVpZCI6MX0sImNoYW5uZWwiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VDaGFubmVsLCBwcml2YXRlIGdyb3VwLCBvciBJTSBjaGFubmVsIHRvIHNlbmQgbWVzc2FnZSB0by4gQ2FuIGJlIGFuIGVuY29kZWQgSUQsIG9yIGEgbmFtZS4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNjaGFubmVsc1wiXHUwMDNFYmVsb3dcdTAwM0NcL2FcdTAwM0UgZm9yIG1vcmUgZGV0YWlscy5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJjaGFubmVsIiwibG9nZ2VkIjpmYWxzZSwiaXNfcmVzb3VyY2UiOnRydWUsInN1YnR5cGUiOiJjaGFubmVsIiwiZXhhbXBsZSI6IkMxMjM0NTY3ODkwIiwidWlkIjoyfSwidGV4dCI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVRleHQgb2YgdGhlIG1lc3NhZ2UgdG8gc2VuZC4gU2VlIGJlbG93IGZvciBhbiBleHBsYW5hdGlvbiBvZiBcdTAwM0NhIGhyZWY9XCIjZm9ybWF0dGluZ1wiXHUwMDNFZm9ybWF0dGluZ1x1MDAzQ1wvYVx1MDAzRS4gVGhpcyBmaWVsZCBpcyB1c3VhbGx5IHJlcXVpcmVkLCB1bmxlc3MgeW91J3JlIHByb3ZpZGluZyBvbmx5IFx1MDAzQ2NvZGVcdTAwM0VhdHRhY2htZW50c1x1MDAzQ1wvY29kZVx1MDAzRSBpbnN0ZWFkLiBQcm92aWRlIG5vIG1vcmUgdGhhbiA0MCwwMDAgY2hhcmFjdGVycyBvciBcdTAwM0NhIGhyZWY9XCJcL2NoYW5nZWxvZ1wvMjAxOC0wNC10cnVuY2F0aW5nLXJlYWxseS1sb25nLW1lc3NhZ2VzXCJcdTAwM0VyaXNrIHRydW5jYXRpb25cdTAwM0NcL2FcdTAwM0UuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoic3RyaW5nIiwiZXhhbXBsZSI6IkhlbGxvIHdvcmxkIiwic3VidHlwZSI6InN0cmluZyIsInVpZCI6M30sImFzX3VzZXIiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VQYXNzIHRydWUgdG8gcG9zdCB0aGUgbWVzc2FnZSBhcyB0aGUgYXV0aGVkIHVzZXIsIGluc3RlYWQgb2YgYXMgYSBib3QuIERlZmF1bHRzIHRvIGZhbHNlLiBTZWUgXHUwMDNDYSBocmVmPVwiI2F1dGhvcnNoaXBcIlx1MDAzRWF1dGhvcnNoaXBcdTAwM0NcL2FcdTAwM0UgYmVsb3cuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoiYm9vbGVhbiIsImV4YW1wbGUiOiJ0cnVlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjExfSwiYXR0YWNobWVudHMiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VBIEpTT04tYmFzZWQgYXJyYXkgb2Ygc3RydWN0dXJlZCBhdHRhY2htZW50cywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLlx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6ImF0dGFjaG1lbnRzIiwiZXhhbXBsZSI6Ilt7XCJwcmV0ZXh0XCI6IFwicHJlLWhlbGxvXCIsIFwidGV4dFwiOiBcInRleHQtd29ybGRcIn1dIiwib3B0aW9uYWwiOnRydWUsInN1YnR5cGUiOiJhdHRhY2htZW50cyIsInVpZCI6N30sImJsb2NrcyI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRUEgSlNPTi1iYXNlZCBhcnJheSBvZiBzdHJ1Y3R1cmVkIGJsb2NrcywgcHJlc2VudGVkIGFzIGEgVVJMLWVuY29kZWQgc3RyaW5nLlx1MDAzQ1wvcFx1MDAzRVxuIiwiZXhhbXBsZSI6Ilt7XCJ0eXBlXCI6IFwic2VjdGlvblwiLCBcInRleHRcIjoge1widHlwZVwiOiBcInBsYWluX3RleHRcIiwgXCJ0ZXh0XCI6IFwiSGVsbG8gd29ybGRcIn19XSIsIm9wdGlvbmFsIjp0cnVlLCJ1aWQiOjR9LCJpY29uX2Vtb2ppIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFRW1vamkgdG8gdXNlIGFzIHRoZSBpY29uIGZvciB0aGlzIG1lc3NhZ2UuIE92ZXJyaWRlcyBcdTAwM0Njb2RlXHUwMDNFaWNvbl91cmxcdTAwM0NcL2NvZGVcdTAwM0UuIE11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIFx1MDAzQ2NvZGVcdTAwM0Vhc191c2VyXHUwMDNDXC9jb2RlXHUwMDNFIHNldCB0byBcdTAwM0Njb2RlXHUwMDNFZmFsc2VcdTAwM0NcL2NvZGVcdTAwM0UsIG90aGVyd2lzZSBpZ25vcmVkLiBTZWUgXHUwMDNDYSBocmVmPVwiI2F1dGhvcnNoaXBcIlx1MDAzRWF1dGhvcnNoaXBcdTAwM0NcL2FcdTAwM0UgYmVsb3cuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoic3RyaW5nIiwiZXhhbXBsZSI6IjpjaGFydF93aXRoX3Vwd2FyZHNfdHJlbmQ6IiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InN0cmluZyIsInVpZCI6MTN9LCJpY29uX3VybCI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVVSTCB0byBhbiBpbWFnZSB0byB1c2UgYXMgdGhlIGljb24gZm9yIHRoaXMgbWVzc2FnZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRWFzX3VzZXJcdTAwM0NcL2NvZGVcdTAwM0Ugc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNhdXRob3JzaGlwXCJcdTAwM0VhdXRob3JzaGlwXHUwMDNDXC9hXHUwMDNFIGJlbG93Llx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InVybCIsImV4YW1wbGUiOiJodHRwOlwvXC9sb3JlbXBpeGVsLmNvbVwvNDhcLzQ4IiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InVybCIsInVpZCI6MTJ9LCJsaW5rX25hbWVzIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFRmluZCBhbmQgbGluayBjaGFubmVsIG5hbWVzIGFuZCB1c2VybmFtZXMuXHUwMDNDXC9wXHUwMDNFXG4iLCJ0eXBlIjoiYm9vbGVhbiIsImV4YW1wbGUiOiJ0cnVlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjZ9LCJtcmtkd24iOnsiZGVmYXVsdCI6InRydWUiLCJkZXNjIjoiXHUwMDNDcFx1MDAzRURpc2FibGUgU2xhY2sgbWFya3VwIHBhcnNpbmcgYnkgc2V0dGluZyB0byBcdTAwM0Njb2RlXHUwMDNFZmFsc2VcdTAwM0NcL2NvZGVcdTAwM0UuIEVuYWJsZWQgYnkgZGVmYXVsdC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6ImZhbHNlIiwiaGlkZGVuIjpmYWxzZSwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjE2fSwicGFyc2UiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VDaGFuZ2UgaG93IG1lc3NhZ2VzIGFyZSB0cmVhdGVkLiBEZWZhdWx0cyB0byBcdTAwM0Njb2RlXHUwMDNFbm9uZVx1MDAzQ1wvY29kZVx1MDAzRS4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNmb3JtYXR0aW5nXCJcdTAwM0ViZWxvd1x1MDAzQ1wvYVx1MDAzRS5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJlbnVtIiwiZXhhbXBsZSI6ImZ1bGwiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJ2YWx1ZXMiOlsibm9uZSIsImZ1bGwiXSwic3VidHlwZSI6ImVudW0iLCJ1aWQiOjV9LCJyZXBseV9icm9hZGNhc3QiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRXRocmVhZF90c1x1MDAzQ1wvY29kZVx1MDAzRSBhbmQgaW5kaWNhdGVzIHdoZXRoZXIgcmVwbHkgc2hvdWxkIGJlIG1hZGUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiB0aGUgY2hhbm5lbCBvciBjb252ZXJzYXRpb24uIERlZmF1bHRzIHRvIFx1MDAzQ2NvZGVcdTAwM0VmYWxzZVx1MDAzQ1wvY29kZVx1MDAzRS5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6InRydWUiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJzdWJ0eXBlIjoiYm9vbGVhbiIsInVpZCI6MTV9LCJ0aHJlYWRfdHMiOnsiZGVzYyI6Ilx1MDAzQ3BcdTAwM0VQcm92aWRlIGFub3RoZXIgbWVzc2FnZSdzIFx1MDAzQ2NvZGVcdTAwM0V0c1x1MDAzQ1wvY29kZVx1MDAzRSB2YWx1ZSB0byBtYWtlIHRoaXMgbWVzc2FnZSBhIHJlcGx5LiBBdm9pZCB1c2luZyBhIHJlcGx5J3MgXHUwMDNDY29kZVx1MDAzRXRzXHUwMDNDXC9jb2RlXHUwMDNFIHZhbHVlOyB1c2UgaXRzIHBhcmVudCBpbnN0ZWFkLlx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InRpbWVzdGFtcCIsImhpZGRlbiI6ZmFsc2UsImxvZ2dlZCI6dHJ1ZSwib3B0aW9uYWwiOnRydWUsInN1YnR5cGUiOiJ0aW1lc3RhbXAiLCJleGFtcGxlIjoiMTIzNDU2Nzg5MC4xMjM0NTYiLCJ1aWQiOjE0fSwidW5mdXJsX2xpbmtzIjp7ImRlc2MiOiJcdTAwM0NwXHUwMDNFUGFzcyB0cnVlIHRvIGVuYWJsZSB1bmZ1cmxpbmcgb2YgcHJpbWFyaWx5IHRleHQtYmFzZWQgY29udGVudC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6InRydWUiLCJsb2dnZWQiOnRydWUsIm9wdGlvbmFsIjp0cnVlLCJzdWJ0eXBlIjoiYm9vbGVhbiIsInVpZCI6OH0sInVuZnVybF9tZWRpYSI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVBhc3MgZmFsc2UgdG8gZGlzYWJsZSB1bmZ1cmxpbmcgb2YgbWVkaWEgY29udGVudC5cdTAwM0NcL3BcdTAwM0VcbiIsInR5cGUiOiJib29sZWFuIiwiZXhhbXBsZSI6ImZhbHNlIiwibG9nZ2VkIjp0cnVlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6ImJvb2xlYW4iLCJ1aWQiOjl9LCJ1c2VybmFtZSI6eyJkZXNjIjoiXHUwMDNDcFx1MDAzRVNldCB5b3VyIGJvdCdzIHVzZXIgbmFtZS4gTXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggXHUwMDNDY29kZVx1MDAzRWFzX3VzZXJcdTAwM0NcL2NvZGVcdTAwM0Ugc2V0IHRvIGZhbHNlLCBvdGhlcndpc2UgaWdub3JlZC4gU2VlIFx1MDAzQ2EgaHJlZj1cIiNhdXRob3JzaGlwXCJcdTAwM0VhdXRob3JzaGlwXHUwMDNDXC9hXHUwMDNFIGJlbG93Llx1MDAzQ1wvcFx1MDAzRVxuIiwidHlwZSI6InVzZXJfbmFtZSIsImV4YW1wbGUiOiJNeSBCb3QiLCJsb2dnZWQiOmZhbHNlLCJvcHRpb25hbCI6dHJ1ZSwic3VidHlwZSI6InVzZXJfbmFtZSIsInVpZCI6MTB9fTsKCiB2YXIgZ2V0X2FwaV91cmwgPSBmdW5jdGlvbihiaXRzKSB7IHJldHVybiBhcGlfdXJsICsgJz8nICsgYml0cy5qb2luKCcmJyk7IH07IAoKJChmdW5jdGlvbigpewoKCSQoJyNhcGlfbWV0aG9kJykuY2hhbmdlKGZ1bmN0aW9uKCl7CgkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL21ldGhvZHMvJyskKHRoaXMpLnZhbCgpOwoJfSk7CgoJJCgnI2FwaS10b2tlbicpLmNoYW5nZShmdW5jdGlvbigpewoJCXZhciB0ZWFtX2lkID0gJCh0aGlzKS52YWwoKTsKCQl2YXIgdG9rZW4gPSBudWxsOwoKCQlmb3IgKHZhciBpPTA7IGk8YXBpX3Rva2Vucy5sZW5ndGg7IGkrKyl7CgkJCWlmIChhcGlfdG9rZW5zW2ldLnRlYW1faWQgPT0gdGVhbV9pZCl7CgkJCQl0b2tlbiA9IGFwaV90b2tlbnNbaV07CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJZm9yICh2YXIgaSBpbiBhcGlfYXJncyl7CgkJCXZhciBhcmcgPSBhcGlfYXJnc1tpXSB8fCB7fTsKCQkJdmFyIGRlZl9sYWJlbCA9ICcnOwoJCQl2YXIgZGVmX3ZhbHVlID0gJyc7CgoJCQlpZiAodG9rZW4gJiYgdG9rZW4udG9rZW4pewoJCQkJaWYgKGFyZy5zdWJ0eXBlID09ICdjaGFubmVsJyl7CgkJCQkJZGVmX2xhYmVsID0gdG9rZW4uY2hhbm5lbF9uYW1lOwoJCQkJCWRlZl92YWx1ZSA9IHRva2VuLmNoYW5uZWxfaWQ7CgkJCQl9CgkJCQlpZiAoYXJnLnN1YnR5cGUgPT0gJ3VzZXInKXsKCQkJCQlkZWZfbGFiZWwgPSAnQCcrdG9rZW4udXNlcl9uYW1lOwoJCQkJCWRlZl92YWx1ZSA9IHRva2VuLnVzZXJfaWQ7CgkJCQl9CgkJCX0KCgkJCSQoJyNhcGktYXJnLWV4dHJhcy0nK2FyZy51aWQpLnRleHQoJycpOwoKCQkJaWYgKGRlZl9sYWJlbCl7CgkJCQkkKCcjYXBpLWFyZy1leHRyYXMtJythcmcudWlkKS5hcHBlbmQoJCgnPGE+JykudGV4dChkZWZfbGFiZWwpLmNsaWNrKChmdW5jdGlvbigpewoKCQkJCQl2YXIgdmFsID0gZGVmX3ZhbHVlOwoJCQkJCXZhciB1aWQgPSBhcmcudWlkOwoKCQkJCQlyZXR1cm4gZnVuY3Rpb24oKXsKCgkJCQkJCSQoJyNhcGktYXJnLScrdWlkKS52YWwodmFsKTsKCQkJCQl9OwoJCQkJfSkoKSkpOwoJCQl9CgkJfQoJfSkuY2hhbmdlKCk7CgoJJCgnI2FwaS10ZXN0LWZvcm0nKS5zdWJtaXQoZnVuY3Rpb24oKXsKCgkJdmFyIGJpdHMgPSBbXTsKCQl2YXIgZmlsZSA9IG51bGw7CgkJdmFyIGNvbnRlbnQgPSBudWxsOwoKCQlmb3IgKHZhciBpIGluIGFwaV9hcmdzKXsKCQkJdmFyIGFyZyA9IGFwaV9hcmdzW2ldIHx8IHt9OwoJCQl2YXIgdmFsID0gJCgnI2FwaS1hcmctJythcmcudWlkKS52YWwoKTsKCgkJCWlmIChpID09ICd0b2tlbicpIHsKCQkJCXZhciB2ID0gJCgnI2FwaS10b2tlbicpLnZhbCgpOwoJCQkJdmFyIGJlYXJlcl90b2tlbiA9ICQoJyNhcGktYXJnLXRva2VuJykudmFsKCk7CgoJCQkJdmFsID0gJyc7CgoJCQkJaWYgKGJlYXJlcl90b2tlbiAhPT0gJycpewoJCQkJCXZhbCA9IGJlYXJlcl90b2tlbjsKCQkJCX1lbHNlewoJCQkJCWZvciAodmFyIGo9MDsgajxhcGlfdG9rZW5zLmxlbmd0aDsgaisrKXsKCQkJCQkJaWYgKGFwaV90b2tlbnNbal0udGVhbV9pZCA9PSB2KXsKCQkJCQkJCXZhbCA9IGFwaV90b2tlbnNbal0udG9rZW47CgkJCQkJCQlicmVhazsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAodiA9PSAnaW52YWxpZCcpIHZhbCA9ICdpbnZhbGlkJzsKCQkJfSBlbHNlIGlmIChhcmcuc3VidHlwZSA9PSAncG9zdF9maWxlJykgewoJCQkJZmlsZSA9ICQoJ2lucHV0OmZpbGUnKVswXS5maWxlc1swXTsKCQkJCXZhbCA9IG51bGw7CgkJCX0gZWxzZSBpZiAoaSA9PSAnY29udGVudCcpIHsKCQkJCWNvbnRlbnQgPSB2YWw7CgkJCX0KCgkJCWlmICh2YWwgJiYgdmFsLmxlbmd0aCl7CgkJCQliaXRzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGkpKyc9JytlbmNvZGVVUklDb21wb25lbnQodmFsKSk7CgkJCX0KCQl9CgoJCXZhciBleHRyYSA9ICQoJyNhcGktYXJnLWV4dHJhJykudmFsKCk7CgkJaWYgKGV4dHJhICYmIGV4dHJhLmxlbmd0aCkgYml0cy5wdXNoKGV4dHJhKTsKCgkJYml0cy5wdXNoKCdwcmV0dHk9MScpOwoKCQl2YXIgdXJsID0gZ2V0X2FwaV91cmwoYml0cyk7CgoJCSQoJyNwcmV2aWV3LXVybCBjb2RlJykudGV4dCh1cmwpOwoJCSQoJyNwcmV2aWV3LXVybCBhJykuYXR0cignaHJlZicsIHVybCk7CgkJJCgnI3ByZXZpZXctdXJsJykuc2hvdygpOwoKCQlpZiAoJCh0aGlzKS5hdHRyKCdtZXRob2QnKSA9PT0gJ1BPU1QnKSB7CgkJCXZhciBmb3JtX2RhdGEgPSBuZXcgRm9ybURhdGEoKTsKCQkJaWYgKGZpbGUpIHsKCQkJCWlmIChhcGlfYXJnc1snaW1hZ2UnXSkgewoJCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2ltYWdlJywgZmlsZSk7CgkJCQl9IGVsc2UgewoJCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvcm1fZGF0YS5hcHBlbmQoJ2NvbnRlbnQnLCBjb250ZW50KTsKCQkJfQoKCQkJJC5hamF4KHsKCQkJCXVybDogdXJsLAoJCQkJbWV0aG9kOiAnUE9TVCcsCgkJCQljb250ZW50VHlwZTogZmFsc2UsCgkJCQlwcm9jZXNzRGF0YTogZmFsc2UsCgkJCQljYWNoZTogZmFsc2UsCgkJCQlkYXRhOiBmb3JtX2RhdGEsCgkJCX0pLmRvbmUoZnVuY3Rpb24oZGF0YSkgewoJCQkJLy8gTGFzdCB2YXIgdG8gc3RyaW5naWZ5IHNpbXVsYXRlcyBwcmV0dHkgcHJpbnQgYnkgdGFiYmluZyBvdmVyIDQgc3BhY2VzCgkJCQl2YXIgaHRtbF9zdHJpbmcgPQoJCQkJCSc8cHJlIHN0eWxlLSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOnByZS13cmFwIj4nICsKCQkJCQkJXy5lc2NhcGUoSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgNCkpICsKCQkJCQknPC9wcmU+JwoJCQkJOwoJCQkJJCgnI2FwaS1wcmV2aWV3LWZyYW1lJykuYXR0cignc3JjZG9jJywgaHRtbF9zdHJpbmcpLnNob3coKTsKCQkJfSk7CgkJfSBlbHNlIHsKCQkJLy8gSWYgdGhlIG1ldGhvZCBpcyAnR0VUJyB0aGlzIHdpbGwgZGVmYXVsdCB0byByZWZyZXNoaW5nIGFuIGlmcmFtZSwgd2hpY2ggc2VuZHMKCQkJLy8gdGhlIHJlcXVlc3QgdG8gdGhlIGNvbnN0cnVjdGVkIHVybCBhbmQgZGlzcGxheXMgdGhlIHJlc3BvbnNlIGRhdGEKCQkJJCgnI2FwaS1wcmV2aWV3LWZyYW1lJykuYXR0cignc3JjJywgdXJsKS5zaG93KCk7CgkJfQoKCQlyZXR1cm4gZmFsc2U7Cgl9KTsKfSk7Cjwvc2NyaXB0PjxzY3JpcHQ+CQlobGpzLmNvbmZpZ3VyZSh7bGFuZ3VhZ2VzOiBbJ2pzb24nLCAnYmFzaCcsICdqYXZhc2NyaXB0JywgJ2h0dHAnXX0pOwoJCWhsanMuaW5pdEhpZ2hsaWdodGluZ09uTG9hZCgpOzwvc2NyaXB0PgoKPCEtLSBzbGFjay13d3ctaGh2bS1tYWluLWlhZC01ZjIxLyAyMDE5LTA5LTEyIDE0OjEwOjI5LyB2MDcyODAwMDdlNDE3OGZlNmJjODcwNGEyNjk1MjNkOGMxMWExNTBmYS8gQjpIIC0tPgoKPC9ib2R5PjwvaHRtbD4= + http_version: + recorded_at: Thu, 12 Sep 2019 21:10:29 GMT +- request: + method: post + uri: https://slack.com/api/chat.postMessage + body: + encoding: UTF-8 + string: token=&text=hello&channel=USLACKBOT + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 21:17:22 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 161910e1-e6f7-4d9e-baf9-eb2595e3acdc + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - chat:write:bot + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-te4j + X-Cache: + - Miss from cloudfront + Via: + - 1.1 4d8620b80ebe37d366388e117039aa8e.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - yEKgTD0-j01nnPppd3e48gySV4AsEpUL_XSxUh6edBHb0fVa-XTqOA== + body: + encoding: UTF-8 + string: '{"ok":true,"channel":"DNAK7M9EC","ts":"1568323043.000100","message":{"type":"message","subtype":"bot_message","text":"hello","ts":"1568323043.000100","username":"Branches + - Mira - API project","bot_id":"BN5RNCZ0C"}}' + http_version: + recorded_at: Thu, 12 Sep 2019 21:17:23 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/workspace.yml b/test/cassettes/workspace.yml new file mode 100644 index 00000000..5531c930 --- /dev/null +++ b/test/cassettes/workspace.yml @@ -0,0 +1,156 @@ +--- +http_interactions: +- request: + method: get + uri: https://slack.com/api/users.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '921' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 22:57:15 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 5f6ce4b5-fb1c-40b8-8d0a-3d755ff2e1b3 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - users:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-j2wg + X-Cache: + - Miss from cloudfront + Via: + - 1.1 6ca7826fb0f4c565b1af9c7737725c49.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - tN1e4KaKkMdwSvpECnHrOw9Ed8cXoBoQgZ1trMnbfL_hh4PiPTilXQ== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"members":[{"id":"USLACKBOT","team_id":"TMZT9G1J5","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":null,"tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Slackbot","real_name_normalized":"Slackbot","display_name":"Slackbot","display_name_normalized":"Slackbot","fields":null,"status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"sv41d8cd98f0","always_active":true,"first_name":"slackbot","last_name":"","image_24":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_24.png","image_32":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_32.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_72.png","image_192":"https:\/\/a.slack-edge.com\/80588\/marketing\/img\/avatars\/slackbot\/avatar-slackbot.png","image_512":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":0},{"id":"UN69SS932","team_id":"TMZT9G1J5","name":"nguyenthao.lee","deleted":false,"color":"e7392d","real_name":"Eve + Le","tz":"America\/Los_Angeles","tz_label":"Pacific Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"Eve + Le","real_name_normalized":"Eve Le","display_name":"Eve Le","display_name_normalized":"Eve + Le","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"ge724ec3bf28","image_24":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/e724ec3bf28e70c48923513f8c6b3378.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0025-512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1568072641,"has_2fa":false},{"id":"UN8G3G4VC","team_id":"TMZT9G1J5","name":"calopter","deleted":false,"color":"9f69e7","real_name":"calopter","tz":"America\/Los_Angeles","tz_label":"Pacific + Daylight Time","tz_offset":-25200,"profile":{"title":"","phone":"","skype":"","real_name":"calopter","real_name_normalized":"calopter","display_name":"","display_name_normalized":"","status_text":"","status_emoji":"","status_expiration":0,"avatar_hash":"gc2c2d474187","image_24":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/c2c2d474187b1091a22d714154b5f862.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2F80588%2Fimg%2Favatars%2Fuser_shapes%2Fava_0007-512.png","status_text_canonical":"","team":"TMZT9G1J5"},"is_admin":true,"is_owner":true,"is_primary_owner":true,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1568072573,"has_2fa":false}],"cache_ts":1568156235,"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Tue, 10 Sep 2019 22:57:15 GMT +- request: + method: get + uri: https://slack.com/api/channels.list?token= + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Content-Length: + - '553' + Connection: + - keep-alive + Date: + - Tue, 10 Sep 2019 23:19:34 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - 731f2e64-115a-4a63-871b-25697753564c + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - channels:read + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-vfyi + X-Cache: + - Miss from cloudfront + Via: + - 1.1 d042f60a962591f741406f28a8170c5a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19-C1 + X-Amz-Cf-Id: + - XqtQY9fsx2A9_GaRd109i1Or61QAX3uT9GmaoDYbFQwEDovIQszZCA== + body: + encoding: ASCII-8BIT + string: '{"ok":true,"channels":[{"id":"CMURJLBUK","name":"random","is_channel":true,"created":1568072573,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"random","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Non-work + banter and water cooler conversation","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"A + place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber + you''d prefer to keep out of more focused work-related channels.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2},{"id":"CMZT9GCQZ","name":"slack-cli","is_channel":true,"created":1568072574,"is_archived":false,"is_general":false,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"slack-cli","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"","creator":"","last_set":0},"purpose":{"value":"","creator":"","last_set":0},"previous_names":[],"num_members":2},{"id":"CN8G3GAR4","name":"general","is_channel":true,"created":1568072573,"is_archived":false,"is_general":true,"unlinked":0,"creator":"UN8G3G4VC","name_normalized":"general","is_shared":false,"is_org_shared":false,"is_member":true,"is_private":false,"is_mpim":false,"members":["UN69SS932","UN8G3G4VC"],"topic":{"value":"Company-wide + announcements and work-based matters","creator":"UN8G3G4VC","last_set":1568072573},"purpose":{"value":"This + channel is for workspace-wide communication and announcements. All members + are in this channel.","creator":"UN8G3G4VC","last_set":1568072573},"previous_names":[],"num_members":2}],"response_metadata":{"next_cursor":""}}' + http_version: + recorded_at: Tue, 10 Sep 2019 23:19:34 GMT +recorded_with: VCR 5.0.0 diff --git a/test/cassettes/workspace_send_message.yml b/test/cassettes/workspace_send_message.yml new file mode 100644 index 00000000..3d9e59e7 --- /dev/null +++ b/test/cassettes/workspace_send_message.yml @@ -0,0 +1,71 @@ +--- +http_interactions: +- request: + method: post + uri: https://slack.com/api/chat.postMessage + body: + encoding: UTF-8 + string: token=&text=hello&channel=UN8G3G4VC + headers: + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Date: + - Thu, 12 Sep 2019 21:31:12 GMT + Server: + - Apache + X-Content-Type-Options: + - nosniff + X-Slack-Req-Id: + - fc823f9e-97ca-4c04-880f-1c20867bf283 + X-Oauth-Scopes: + - identify,channels:read,users:read,chat:write:bot + Expires: + - Mon, 26 Jul 1997 05:00:00 GMT + Cache-Control: + - private, no-cache, no-store, must-revalidate + Access-Control-Expose-Headers: + - x-slack-req-id, retry-after + X-Xss-Protection: + - '0' + X-Accepted-Oauth-Scopes: + - chat:write:bot + Vary: + - Accept-Encoding + Pragma: + - no-cache + Access-Control-Allow-Headers: + - slack-route, x-slack-version-ts + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Referrer-Policy: + - no-referrer + Access-Control-Allow-Origin: + - "*" + X-Via: + - haproxy-www-kftm + X-Cache: + - Miss from cloudfront + Via: + - 1.1 078ca3a7cfdee29c8e3514176205c50a.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - SEA19 + X-Amz-Cf-Id: + - ypW0ofXJRvL_tUTgNyZAG5RuTF_aEp-jmudaUN0phAESh9Kx2DURxA== + body: + encoding: UTF-8 + string: '{"ok":true,"channel":"DN69ZM5V3","ts":"1568323872.000100","message":{"type":"message","subtype":"bot_message","text":"hello","ts":"1568323872.000100","username":"Branches + - Eve - API Project","bot_id":"BN6A55G5T"}}' + http_version: + recorded_at: Thu, 12 Sep 2019 21:31:12 GMT +recorded_with: VCR 5.0.0 diff --git a/test/channel_test.rb b/test/channel_test.rb new file mode 100644 index 00000000..79934ec4 --- /dev/null +++ b/test/channel_test.rb @@ -0,0 +1,40 @@ +require_relative 'test_helper' + +describe Channel do + before do + @slack_id = "ABC123" + @name = "tofu" + @topic = "pets" + @member_count = 2 + @channel = Channel.new(slack_id: @slack_id, name: @name, topic: @topic, member_count: @member_count) + end + + describe "Constructor" do + it "can construct a Channel instance" do + expect (@channel).must_be_instance_of Channel + end + + it "can access slack_id and name attributes" do + expect (@channel.name).must_equal @name + expect (@channel.slack_id).must_equal @slack_id + expect (@channel.topic).must_equal @topic + expect (@channel.member_count).must_equal @member_count + end + end + + describe "#details method" do + it "returns a String" do + expect (@channel.details).must_be_instance_of String + expect (@channel.details).must_equal "Channel's name: #{@name}, Topic: #{@topic}, Slack id: #{@slack_id}, Member count: #{@member_count}" + end + end + + describe ".list method" do + it 'returns a list of channel instances' do + VCR.use_cassette('Channel_list') do + expect(Channel.list).must_be_instance_of Array + expect(Channel.list.sample).must_be_instance_of Channel + end + end + end +end \ No newline at end of file diff --git a/test/recipient_test.rb b/test/recipient_test.rb new file mode 100644 index 00000000..ce859c6b --- /dev/null +++ b/test/recipient_test.rb @@ -0,0 +1,77 @@ +require_relative 'test_helper' + +describe Recipient do + before do + @slack_id = "ABC123" + @name = "tofu" + end + + describe "Constructor" do + it "can construct a Recipient instance" do + expect (Recipient.new(slack_id: @slack_id, name: @name)).must_be_instance_of Recipient + end + + it "can access slack_id and name attributes" do + recipient = Recipient.new(slack_id: @slack_id, name: @name) + + expect (recipient.name).must_equal @name + expect (recipient.slack_id).must_equal @slack_id + end + + it "raises ArgumentError if input is invalid" do + expect {Recipient.new(slack_id: nil, name: nil)}.must_raise ArgumentError + end + end + + describe "#send_message method" do + before do + VCR.use_cassette('workspace') do + workspace = Workspace.new + @user = workspace.users.first + @channel = workspace.channels.first + @message = 'hello' + end + end + + it 'can send a message to a channel' do + VCR.use_cassette('send_message_channel') do + expect(@channel.send_message(@message)).must_equal true + end + end + + it 'can send a message to a user' do + VCR.use_cassette('send_message_user') do + expect(@user.send_message(@message)).must_equal true + end + end + + it 'raises SlackApiError if response["ok"] is false' do + VCR.use_cassette('send_failure') do + channel = Channel.new slack_id: "0", name: "foo", topic: "foo", member_count: 0 + expect { channel.send_message @message }.must_raise Recipient::SlackApiError + end + end + end + + describe ".get method" do + before do + Dotenv.load + @url = 'https://slack.com/api/channels.list' + @params = { token: ENV["SLACK_API_KEY"] } + end + + it 'returns a hash' do + VCR.use_cassette('Recipient_get') do + response = Recipient.get(@url, @params) + expect(response).must_be_instance_of Hash + expect(response['channels']).must_be_instance_of Array + end + end + + it "raises SlackApiError if response status is not success" do + VCR.use_cassette('Recipient_get_bad_requests') do + expect {Recipient.get(@url, {})}.must_raise Recipient::SlackApiError + end + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 90aeb408..12c3aee3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -8,10 +8,27 @@ require 'minitest/reporters' require 'minitest/skip_dsl' require 'vcr' +require 'dotenv' + +Dotenv.load + +require_relative '../lib/recipient' +require_relative '../lib/user' +require_relative '../lib/channel' +require_relative '../lib/workspace' Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new VCR.configure do |config| config.cassette_library_dir = "test/cassettes" config.hook_into :webmock + config.default_cassette_options = { + :record => :new_episodes, + :match_requests_on => [:method, :uri, :body], + } + + config.filter_sensitive_data('') do + ENV['SLACK_API_KEY'] + end end + diff --git a/test/user_test.rb b/test/user_test.rb new file mode 100644 index 00000000..a152c146 --- /dev/null +++ b/test/user_test.rb @@ -0,0 +1,40 @@ +require_relative 'test_helper' + +describe User do + before do + @slack_id = "ABC123" + @name = "tofu" + @real_name = "Tofu Le" + @status_text = "brb" + @user = User.new(slack_id: @slack_id, name: @name, real_name: @real_name, status_text: @status_text) + end + + describe "Constructor" do + it "can construct a User instance" do + expect (@user).must_be_instance_of User + end + + it "can access slack_id, name, real name and status text attributes" do + expect (@user.name).must_equal @name + expect (@user.slack_id).must_equal @slack_id + expect (@user.real_name).must_equal @real_name + expect (@user.status_text).must_equal @status_text + end + end + + describe "#details method" do + it "returns a String" do + expect (@user.details).must_be_instance_of String + expect (@user.details).must_equal "Username: #{@name}, Real name: #{@real_name}, Slack id: #{@slack_id}" + end + end + + describe ".list method" do + it 'returns a list of user instances' do + VCR.use_cassette('User_list') do + expect(User.list).must_be_instance_of Array + expect(User.list.sample).must_be_instance_of User + end + end + end +end diff --git a/test/workspace_test.rb b/test/workspace_test.rb new file mode 100644 index 00000000..dfa66c3d --- /dev/null +++ b/test/workspace_test.rb @@ -0,0 +1,117 @@ +require_relative 'test_helper' + +describe Workspace do + before do + VCR.use_cassette('workspace') do + @workspace = Workspace.new + end + end + + describe 'Constructor' do + it 'can create a Workspace instance' do + expect(@workspace).must_be_instance_of Workspace + end + + it 'has users, channels and selected' do + expect(@workspace.channels).must_be_instance_of Array + expect(@workspace.users).must_be_instance_of Array + assert_nil(@workspace.selected) + end + + it 'populates users and channels' do + expect(@workspace.channels.first).must_be_instance_of Channel + expect(@workspace.users.first).must_be_instance_of User + end + end + + describe '#select_channel' do + before do + @user_name = "calopter" + @user_id = "UN8G3G4VC" + @users = @workspace.users + + @channel_name = "random" + @channel_id = "CMURJLBUK" + @channels = @workspace.channels + end + + it 'sets @selected to the found channel' do + @workspace.select_channel name: @channel_name + channel = @workspace.find_recipient(list: @channels, name: @channel_name) + + expect(@workspace.selected).must_equal channel + end + + it 'sets selected to nil if no channel found' do + @workspace.select_channel name: "TOFU" + + assert_nil(@workspace.selected) + end + end + + describe '#select_user' do + before do + @user_name = "calopter" + @user_id = "UN8G3G4VC" + @users = @workspace.users + end + + it 'sets @selected to the found user' do + @workspace.select_user name: @user_name + user = @workspace.find_recipient(list: @users, name: @user_name) + + expect(@workspace.selected).must_equal user + end + + it 'sets selected to nil if no user found' do + @workspace.select_user name: "TOFU" + + assert_nil(@workspace.selected) + end + end + + describe "#find_recipient" do + before do + @user_name = "calopter" + @user_id = "UN8G3G4VC" + @users = @workspace.users + + @channel_name = "random" + @channel_id = "CMURJLBUK" + @channels = @workspace.channels + end + + it "returns the correct User by slack id or name" do + user = @workspace.find_recipient(list: @users, name: @user_name) + + expect (user).must_be_instance_of User + expect (user.slack_id).must_equal @user_id + + user = @workspace.find_recipient(list: @users, slack_id: @user_id) + + expect (user).must_be_instance_of User + expect (user.name).must_equal @user_name + end + + it "returns the correct Channel by slack id or name" do + channel = @workspace.find_recipient(list: @channels, name: @channel_name) + + expect (channel).must_be_instance_of Channel + expect (channel.slack_id).must_equal @channel_id + + channel = @workspace.find_recipient(list: @channels, slack_id: @channel_id) + + expect (channel).must_be_instance_of Channel + expect (channel.name).must_equal @channel_name + end + + it "raises ArgumentError if both name and slack id aren't provided" do + expect {@workspace.find_recipient(list: [])}.must_raise ArgumentError + end + + it "returns nil if no recipient found from name or slack id" do + assert_nil (@workspace.find_recipient(list: @channels, name: "Tofu")) + assert_nil (@workspace.find_recipient(list: @users, slack_id: "Tofu")) + end + end +end