video_info 2.7.1 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/unit_test.yml +42 -0
- data/Guardfile +1 -1
- data/README.md +8 -19
- data/lib/video_info/provider.rb +11 -2
- data/lib/video_info/providers/vimeo_api.rb +9 -3
- data/lib/video_info/providers/vimeo_scraper.rb +12 -2
- data/lib/video_info/providers/youtube.rb +8 -0
- data/lib/video_info/providers/youtube_api.rb +1 -2
- data/lib/video_info/providers/youtube_scraper.rb +43 -25
- data/lib/video_info/providers/youtubeplaylist_api.rb +15 -1
- data/lib/video_info/version.rb +1 -1
- data/lib/video_info.rb +3 -3
- data/tmp/rspec_guard_result +25 -0
- data/video_info.gemspec +5 -6
- metadata +16 -472
- data/.travis.yml +0 -21
- data/lib/video_info/providers/vkontakte.rb +0 -212
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_invalid_video_url/_available_/1_2_2_1_1.yml +0 -93
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -96
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author/1_3_7_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_thumbnail/1_3_9_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_url/1_3_8_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_date/should_show_correct_date.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_description/1_3_10_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_duration/1_3_12_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_keywords/1_3_11_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail/1_3_19_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_large/1_3_18_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_medium/1_3_17_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_small/1_3_16_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_title/1_3_6_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_view_count/1_3_20_1.yml +0 -100
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/1_2_3_1_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/2_2_3_1_1.yml +0 -65
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/1_2_2_1_1.yml +0 -124
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_this_video_does_not_exist_video/_available_/2_2_2_1_1.yml +0 -67
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/2_2_1_1_1.yml +0 -67
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author/1_13_2_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_thumbnail/1_13_3_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_url/1_13_4_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/available_/1_13_1_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/date/1_13_7_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/description/1_13_6_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/duration/1_13_8_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/height/1_13_10_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/keywords/1_13_9_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_large/1_13_14_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_medium/1_13_13_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_small/1_13_12_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/title/1_13_5_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/view_count/1_13_15_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/width/1_13_11_1.yml +0 -128
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/1_3_18_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/2_3_18_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/1_3_17_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/2_3_17_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/1_3_19_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/2_3_19_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_date/should_have_correct_upload_date.yml +0 -226
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/1_3_7_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/2_3_7_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/1_3_9_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/2_3_9_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/1_3_11_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/2_3_11_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_keywords/should_return_a_string_list_of_keywords.yml +0 -226
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/1_3_16_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/2_3_16_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/1_3_15_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/2_3_15_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/1_3_14_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/2_3_14_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/1_3_13_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/2_3_13_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/1_3_6_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/2_3_6_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/1_3_20_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/2_3_20_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/1_3_10_1.yml +0 -150
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/2_3_10_1.yml +0 -79
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/1_12_1_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/2_12_1_1.yml +0 -75
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/1_12_2_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/2_12_2_1.yml +0 -75
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/1_12_3_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/2_12_3_1.yml +0 -75
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/1_12_4_1.yml +0 -222
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/2_12_4_1.yml +0 -75
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_hashes/available_/1_2_6_1_1.yml +0 -86
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_invalid_video/available_/1_2_2_1_1.yml +0 -50
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_private_video/available_/1_2_3_1_1.yml +0 -132
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect/available_/1_2_4_1_1.yml +0 -134
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect_to_main_page_for_auth/available_/1_2_5_1_1.yml +0 -85
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_valid_video/available_/1_2_1_1_1.yml +0 -87
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author/1_5_14_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author_thumbnail/1_5_15_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/author_url/1_5_16_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/description/1_5_8_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/duration/1_5_10_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/embed_code/1_5_6_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/embed_url/1_5_5_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/height/1_5_12_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/thumbnail_small/1_5_18_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/title/1_5_7_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/view_count/1_5_13_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_from_kirill_lyanoi_z_video2152699_168591741_2F56fd229a9dfe2dcdbe/width/1_5_11_1.yml +0 -50
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/author/1_3_7_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/embed_code/1_3_6_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/embed_url/1_3_5_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_https_/vk_com/id44052340_z_video61291456_159590018_2F2521d92730a272a9ea/title/1_3_4_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video-54799401_165822734/title/1_7_4_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video3552522_171340713/embed_url/1_10_1_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/description/1_6_8_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/duration/1_6_10_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_code/1_6_6_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_url/1_6_5_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/height/1_6_12_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/title/1_6_7_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/view_count/1_6_13_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/width/1_6_11_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author/1_4_5_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_thumbnail/1_4_6_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_url/1_4_7_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/title/1_4_4_1.yml +0 -48
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_invalid_video/_available_/1_2_2_1_1.yml +0 -67
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -69
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_duration/1_4_7_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_height/1_4_9_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_large/1_4_12_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_medium/1_4_11_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_small/1_4_10_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_title/1_4_6_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_width/1_4_8_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_duration/1_3_7_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_height/1_3_9_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail/1_3_13_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_large/1_3_12_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_medium/1_3_11_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_small/1_3_10_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_title/1_3_6_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_width/1_3_8_1.yml +0 -77
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/1_2_2_1_1.yml +0 -1447
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/2_2_2_1_1.yml +0 -156
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_2_1_1.yml +0 -481
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_3_1_1.yml +0 -485
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_2_1_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_3_1_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_2_11_1.yml +0 -481
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_3_11_1.yml +0 -481
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_2_11_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_3_11_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_2_8_1.yml +0 -483
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_3_8_1.yml +0 -483
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_2_8_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_3_8_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_2_10_1.yml +0 -485
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_3_10_1.yml +0 -484
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_2_10_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_3_10_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_2_9_1.yml +0 -485
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_3_9_1.yml +0 -484
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_2_9_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_3_9_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_2_7_1.yml +0 -481
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_3_7_1.yml +0 -484
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_2_7_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_3_7_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_2_17_1.yml +0 -485
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_3_17_1.yml +0 -485
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_2_17_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_3_17_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/2_2_1_1_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/1_2_3_1_1.yml +0 -483
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/1_2_4_1_1.yml +0 -484
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/2_2_3_1_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_video_removed_because_of_copyright_claim/_available_/2_2_4_1_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_date/should_return_date_video_was_posted.yml +0 -178
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/1_17_7_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/2_17_7_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/1_17_9_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/2_17_9_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/1_17_8_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/2_17_8_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/1_17_6_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/2_17_6_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/1_17_16_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/2_17_16_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/1_3_6_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/2_3_6_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/1_3_7_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/2_3_7_1.yml +0 -208
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/1_3_8_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/2_3_8_1.yml +0 -208
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_date/should_return_date_video_was_posted.yml +0 -178
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/1_3_10_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/2_3_10_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/1_3_12_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/2_3_12_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/1_3_11_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/2_3_11_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/1_3_9_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/2_3_9_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/1_3_20_1.yml +0 -56
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/2_3_20_1.yml +0 -125
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/1_2_2_1_1.yml +0 -60
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/2_2_2_1_1.yml +0 -60
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/1_2_3_1_1.yml +0 -94
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/2_2_3_1_1.yml +0 -94
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/1_2_1_1_1.yml +0 -94
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/2_2_1_1_1.yml +0 -94
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/1_3_19_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/2_3_19_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/1_3_20_1.yml +0 -189
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/2_3_20_1.yml +0 -189
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/1_3_21_1.yml +0 -189
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/2_3_21_1.yml +0 -189
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/1_3_7_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/2_3_7_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/1_3_8_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/2_3_8_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/1_3_16_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/2_3_16_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/1_3_15_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/2_3_15_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/1_3_14_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/2_3_14_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/1_3_13_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/2_3_13_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/1_3_6_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/2_3_6_1.yml +0 -105
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_videos/returns_list_of_videos_in_playlist.yml +0 -265
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_that_does_not_exist_in_embed_path/_videos/1_4_2_1.yml +0 -54
- data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_that_does_not_exist_in_embed_path/_videos/2_4_2_1.yml +0 -54
- data/spec/lib/video_info/provider_spec.rb +0 -80
- data/spec/lib/video_info/providers/dailymotion_spec.rb +0 -194
- data/spec/lib/video_info/providers/vimeo_spec.rb +0 -328
- data/spec/lib/video_info/providers/vkontakte_spec.rb +0 -236
- data/spec/lib/video_info/providers/wistia_spec.rb +0 -197
- data/spec/lib/video_info/providers/youtube_playlist_spec.rb +0 -236
- data/spec/lib/video_info/providers/youtube_scraper_spec.rb +0 -12
- data/spec/lib/video_info/providers/youtube_spec.rb +0 -575
- data/spec/lib/video_info_spec.rb +0 -106
- data/spec/spec_helper.rb +0 -26
@@ -1,86 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: get
|
5
|
-
uri: http://vk.com:443/videos43640822
|
6
|
-
body:
|
7
|
-
encoding: US-ASCII
|
8
|
-
string: ''
|
9
|
-
headers:
|
10
|
-
Accept-Encoding:
|
11
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
Accept:
|
13
|
-
- "*/*"
|
14
|
-
User-Agent:
|
15
|
-
- Mozilla/5.0 (Linux; VideoInfo)
|
16
|
-
- Ruby
|
17
|
-
Host:
|
18
|
-
- vk.com
|
19
|
-
response:
|
20
|
-
status:
|
21
|
-
code: 400
|
22
|
-
message: Bad Request
|
23
|
-
headers:
|
24
|
-
Server:
|
25
|
-
- Apache
|
26
|
-
Date:
|
27
|
-
- Mon, 27 Mar 2017 21:01:26 GMT
|
28
|
-
Content-Type:
|
29
|
-
- text/html
|
30
|
-
Content-Length:
|
31
|
-
- '265'
|
32
|
-
Connection:
|
33
|
-
- close
|
34
|
-
body:
|
35
|
-
encoding: UTF-8
|
36
|
-
string: "<html>\r\n<head><title>400 The plain HTTP request was sent to HTTPS
|
37
|
-
port</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>400 Bad Request</h1></center>\r\n<center>The
|
38
|
-
plain HTTP request was sent to HTTPS port</center>\r\n<hr><center>Apache</center>\r\n</body>\r\n</html>\r\n"
|
39
|
-
http_version:
|
40
|
-
recorded_at: Mon, 27 Mar 2017 21:01:27 GMT
|
41
|
-
- request:
|
42
|
-
method: post
|
43
|
-
uri: https://vk.com/al_video.php
|
44
|
-
body:
|
45
|
-
encoding: US-ASCII
|
46
|
-
string: User-Agent=VideoInfo%2F2.7&act=show&al=1&autoplay=0&module=profile&video=43640822_168790809
|
47
|
-
headers:
|
48
|
-
Accept-Encoding:
|
49
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
50
|
-
Accept:
|
51
|
-
- "*/*"
|
52
|
-
User-Agent:
|
53
|
-
- Mozilla/5.0 (Linux; VideoInfo)
|
54
|
-
- Ruby
|
55
|
-
response:
|
56
|
-
status:
|
57
|
-
code: 200
|
58
|
-
message: OK
|
59
|
-
headers:
|
60
|
-
Server:
|
61
|
-
- Apache
|
62
|
-
Date:
|
63
|
-
- Mon, 27 Mar 2017 21:01:27 GMT
|
64
|
-
Content-Type:
|
65
|
-
- text/html; charset=windows-1251
|
66
|
-
Content-Length:
|
67
|
-
- '10504'
|
68
|
-
Connection:
|
69
|
-
- keep-alive
|
70
|
-
X-Powered-By:
|
71
|
-
- PHP/3.12334
|
72
|
-
Set-Cookie:
|
73
|
-
- remixlang=3; expires=Sat, 24 Mar 2018 00:54:39 GMT; path=/; domain=.vk.com
|
74
|
-
Pragma:
|
75
|
-
- no-cache
|
76
|
-
Cache-Control:
|
77
|
-
- no-store
|
78
|
-
Strict-Transport-Security:
|
79
|
-
- max-age=0
|
80
|
-
body:
|
81
|
-
encoding: ASCII-8BIT
|
82
|
-
string: !binary |-
|
83
|
-
PCEtLTMzMjY4NDA3MjMyMjg8IT51aV9tZWRpYV9zZWxlY3Rvci5qcyx1aV9tZWRpYV9zZWxlY3Rvci5jc3MsZW1vamkuanMsbm90aWZpZXIuY3NzLHZpZGVvdmlldy5qcyx2aWRlb3ZpZXcuY3NzLHBhZ2UuanMscGFnZS5jc3MscG9zdC5jc3MsdWlfY29udHJvbHMuanMsdWlfY29udHJvbHMuY3NzPCE+MzwhPjM3MDQ8IT4wPCE+VURDIG9wZW4gY3VwIDIwMTQvIDMgcGxhY2UgLyBTYWxleSBEYXJpYSAoc29sbyk8IT48ZGl2IGlkPSJ2aWRlb19ib3hfd3JhcDQzNjQwODIyXzE2ODc5MDgwOSIgY2xhc3M9InZpZGVvX2JveF93cmFwIj4KICA8ZGl2IGNsYXNzPSJ2aWRlb19ib3hfbXNnIj4KICAgIDxkaXYgY2xhc3M9InZpZGVvX2JveF9tc2dfYmFja2dyb3VuZCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vcHAudXNlcmFwaS5jb20vYzU0MDYwOS91Mjc5NjUyOS92aWRlby9sX2ViNzkwNDg3LmpwZyk7Ij48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InZpZGVvX2JveF9tc2dfdGV4dCI+VGhlIGxhdGVzdCB2ZXJzaW9uIG9mIDxhIGhyZWY9Imh0dHA6Ly9nZXQuYWRvYmUuY29tL2ZsYXNoIiB0YXJnZXQ9Il9ibGFuayI+Rmxhc2gmbmJzcDtQbGF5ZXI8L2E+IGlzIHJlcXVpcmVkIHRvIHZpZXcgdmlkZW9zLjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj48IT4KYWRkVGVtcGxhdGVzKHsiXyI6Il8iLCJhdWRpb19yb3ciOiI8ZGl2IGNsYXNzPVwiYXVkaW9fcm93IF9hdWRpb19yb3cgX2F1ZGlvX3Jvd18lMSVfJTAlICVjbHMlIGNsZWFyX2ZpeFwiIG9uY2xpY2s9XCJyZXR1cm4gZ2V0QXVkaW9QbGF5ZXIoKS50b2dnbGVBdWRpbyh0aGlzLCBldmVudClcIiBkYXRhLWF1ZGlvPVwiJXNlcmlhbGl6ZWQlXCIgZGF0YS1mdWxsLWlkPVwiJTElXyUwJVwiIGlkPVwiYXVkaW9fJTElXyUwJVwiPlxuICA8ZGl2IGNsYXNzPVwiYXVkaW9fcGxheV93cmFwXCIgZGF0YS1ub2RyYWc9XCIxXCI+PGJ1dHRvbiBjbGFzcz1cImF1ZGlvX3BsYXkgX2F1ZGlvX3BsYXlcIiBpZD1cInBsYXlfJTElXyUwJVwiIGFyaWEtbGFiZWw9XCJcIj48XC9idXR0b24+PFwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXVkaW9faW5mb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhdWRpb19kdXJhdGlvbl93cmFwIF9hdWRpb19kdXJhdGlvbl93cmFwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXVkaW9faHFfbGFiZWxcIj48XC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXVkaW9fZHVyYXRpb24gX2F1ZGlvX2R1cmF0aW9uXCI+JWR1cmF0aW9uJTxcL2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdWRpb19hY3RzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpb19hY3RcIiBpZD1cInJlY29tXCIgb25tb3VzZW92ZXI9XCJhdWRpb1Nob3dBY3Rpb25Ub29sdGlwKHRoaXMsICclMSVfJTAlJylcIiBvbmNsaWNrPVwiQXVkaW9QYWdlKHRoaXMpLnNob3dSZWNvbXModGhpcywgJyUxJV8lMCUnLCBldmVudClcIj48ZGl2PjxcL2Rpdj48XC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpb19hY3RcIiBpZD1cIm5leHRcIiBvbm1vdXNlb3Zlcj1cImF1ZGlvU2hvd0FjdGlvblRvb2x0aXAodGhpcywgJyUxJV8lMCUnKVwiIG9uY2xpY2s9XCJnZXRBdWRpb1BsYXllcigpLnNldE5leHQodGhpcywgZXZlbnQpXCI+PGRpdj48XC9kaXY+PFwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXVkaW9fYWN0XCIgaWQ9XCJlZGl0XCIgb25tb3VzZW92ZXI9XCJhdWRpb1Nob3dBY3Rpb25Ub29sdGlwKHRoaXMsICclMSVfJTAlJylcIiBvbmNsaWNrPVwiQXVkaW9QYWdlKHRoaXMpLmVkaXRBdWRpbyh0aGlzLCAnJTElXyUwJScsIGV2ZW50KVwiPjxkaXY+PFwvZGl2PjxcL2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF1ZGlvX2FjdCBfYXVkaW9fYWN0X2RlbGV0ZVwiIGlkPVwiZGVsZXRlXCIgb25jbGljaz1cIkF1ZGlvUGFnZSh0aGlzKS5kZWxldGVBdWRpbyh0aGlzLCAnJTElXyUwJScsIGV2ZW50KVwiIG9ubW91c2VvdmVyPVwiYXVkaW9TaG93QWN0aW9uVG9vbHRpcCh0aGlzLCAnJTElXyUwJScpXCI+PGRpdj48XC9kaXY+PFwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXVkaW9fYWN0XCIgaWQ9XCJhZGRcIiBvbmNsaWNrPVwicmV0dXJuIGFkZEF1ZGlvKHRoaXMsIGV2ZW50KVwiIG9ubW91c2VvdmVyPVwiYXVkaW9TaG93QWN0aW9uVG9vbHRpcCh0aGlzLCAnJTElXyUwJScpXCI+PGRpdj48XC9kaXY+PFwvZGl2PlxuICAgICAgICBcbiAgICAgICAgXG4gICAgICA8XC9kaXY+XG4gICAgPFwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhdWRpb190aXRsZV93cmFwXCJcbiAgICAgPjxhIGhyZWY9XCIlc2VhcmNoX2hyZWYlXCIgb25tb3VzZW92ZXI9XCJzZXRUaXRsZSh0aGlzKVwiIG5vZHJhZz1cIjFcIiBvbmNsaWNrPVwicmV0dXJuIGF1ZGlvU2VhcmNoUGVyZm9ybWVyKHRoaXMsIGV2ZW50KVwiIGNsYXNzPVwiYXVkaW9fcGVyZm9ybWVyXCI+JTQlPFwvYVxuICAgICA+PHNwYW4gY2xhc3M9XCJhdWRpb19pbmZvX2RpdmlkZXJcIj4mbmRhc2g7PFwvc3BhblxuICAgICA+PHNwYW4gY2xhc3M9XCJhdWRpb190aXRsZSBfYXVkaW9fdGl0bGVcIiBvbm1vdXNlb3Zlcj1cInNldFRpdGxlKHRoaXMsIGRvbVBOKHRoaXMpKVwiXG4gICAgICAgID48c3BhbiBjbGFzcz1cImF1ZGlvX3RpdGxlX2lubmVyXCIgdGFiaW5kZXg9XCIwXCIgbm9kcmFnPVwiMVwiIGFyaWEtbGFiZWw9XCIlMyVcIiBvbmNsaWNrPVwicmV0dXJuIHRvZ2dsZUF1ZGlvTHlyaWNzKGV2ZW50LCB0aGlzLCAnJTElXyUwJScsICclOSUnKVwiPiUzJTxcL3NwYW4+XG4gICAgICAgIFxuICAgICAgICA8c3BhbiBjbGFzcz1cImF1ZGlvX2F1dGhvclwiIG9uY2xpY2s9XCJjdXIuY2FuY2VsQ2xpY2s9dHJ1ZVwiPiU4JTxcL3NwYW4+XG4gICAgICA8XC9zcGFuXG4gICAgPjxcL2Rpdj5cbiAgPFwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiX2F1ZGlvX3BsYXllcl93cmFwXCI+PFwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiX2F1ZGlvX2x5cmljc193cmFwIGF1ZGlvX2x5cmljc1wiIGRhdGEtbm9kcmFnPVwiMVwiPjxcL2Rpdj5cbjxcL2Rpdj4iLCJhdWRpb19iaXRzX3RvX2NscyI6IntcIjFcIjpcImlubGluZWRcIixcIjJcIjpcImx5cmljc1wiLFwiNFwiOlwiY2FuZWRpdFwiLFwiOFwiOlwiY2FuYWRkXCIsXCI2NFwiOlwicmVjb21zXCIsXCIxNlwiOlwiY2xhaW1lZFwiLFwiMzJcIjpcImNsYWltZWRfdGl0bGVcIixcIjI1NlwiOlwiZnJvbV9xdWV1ZVwiLFwiNTEyXCI6XCJocVwiLFwiMzI3NjhcIjpcImx0YlwiLFwiMTYzODRcIjpcImxwYlwiLFwiNDA5NlwiOlwiY2xhaW1faGlkZGVuXCIsXCIyMDQ4XCI6XCJjbGFpbV9tb2RlXCIsXCI4MTkyXCI6XCJjbGFpbV91bWFcIn0ifSk7Cm12Y3VyLm12RGF0YS5hZGRlZFZpZGVvID0gJzQzNjQwODIyXzE2ODc5MDgwOSc7IAptdmN1ci5tdkRhdGEuYWRkZWRWaWRlb0hhc2ggPSAnZDMzNDM1M2YwNTNjZmFkNWEyJzsgCm12Y3VyLm12RGF0YS5hZGRlZFZpZGVvU2hhcmVIYXNoID0gJzYyOGQ5ZDU0Njc3NWE0ZTI1Yyc7Cm12Y3VyLm12RGF0YS5uZWVkc05ldyA9IDE7PCE+Cgo8ZGl2IGNsYXNzPSJtdl9pbmZvX3dpZGVfY29sdW1uIGZsX2wiPgogIAogIDxkaXYgY2xhc3M9Im12X3RpdGxlX2Jsb2NrIj4KICAgIDxkaXYgaWQ9Im12X3ZpZXdzIiBjbGFzcz0ibXZfdmlld3NfY291bnQgIiBvbm1vdXNlb3Zlcj0iIj4xLDgzMyB2aWV3czwvZGl2PgogICAgPGRpdiBjbGFzcz0ibXZfdGl0bGUiIGlkPSJtdl90aXRsZSI+VURDIG9wZW4gY3VwIDIwMTQvIDMgcGxhY2UgLyBTYWxleSBEYXJpYSAoc29sbyk8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJtdl9hY3Rpb25zX2Jsb2NrIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICA8ZGl2IGNsYXNzPSJjbGVhcl9maXgiPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZmxhdF9idXR0b24gc2Vjb25kYXJ5IGJ1dHRvbl9saWdodCBtdl9zaGFyZV9idXR0b24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBvbmNsaWNrPSJ2aWRlb3ZpZXcuc2VuZFZpZGVvKCk7Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibXZfc2hhcmVfaWNvbiI+PC9zcGFuPlNoYXJlCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGlkPSJtdl9hZGRfd3JhcCI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZsYXRfYnV0dG9uIHNlY29uZGFyeSBidXR0b25fbGlnaHQgbXZfZWRpdF9idXR0b24iIG9uY2xpY2s9InJldHVybiB2aWRlb3ZpZXcuc2hvd0VkaXRCb3goMTY4NzkwODA5LCA0MzY0MDgyMikiIGlkPSJtdl9lZGl0X2J1dHRvbiI+CiAgICAgICAgPHNwYW4gY2xhc3M9Im12X2VkaXRfaWNvbiI+PC9zcGFuPkVkaXQgdmlkZW8KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJtdl9tb3JlIGZsX2wiIGlkPSJtdl9tb3JlIj5Nb3JlPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICAKICA8ZGl2IGNsYXNzPSJtdl9hdXRob3JfYmxvY2siPgogICAgPGRpdiBjbGFzcz0iY2xlYXJfZml4Ij4KICAgICAgPGEgaHJlZj0iL2Rhcmlhc2FsZXkiIGNsYXNzPSJtdl9hdXRob3JfcGhvdG9fd3JhcCBmbF9sIj4KICAgICAgICA8aW1nIGlkPSJtdl9hdXRob3JfcGhvdG8iIGNsYXNzPSJtdl9hdXRob3JfcGhvdG8iIHNyYz0iaHR0cHM6Ly9wcC51c2VyYXBpLmNvbS9jODM3NDIyL3Y4Mzc0MjI4MjIvOTNjOC8wMG9xZC0zQlM5VS5qcGciPgogICAgICA8L2E+CiAgICAgIDxkaXYgY2xhc3M9Im12X2F1dGhvcl9pbmZvIGZsX2wiPgogICAgICAgIDxkaXYgY2xhc3M9Im12X2F1dGhvcl9uYW1lIj4KICAgICAgICAgIDxhIGNsYXNzPSJtZW1fbGluayIgaHJlZj0iL2Rhcmlhc2FsZXkiPkRhc2hhIFNhbGV5PC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im12X2luZm9fZGF0ZSI+SnVuIDIsIDIwMTQgYXQgOTowNCBhbTwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIAogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0ibXZfZGVzY3JpcHRpb25fYmxvY2siPgogIDxkaXYgY2xhc3M9InNlbGVjdF9maXggY2xlYXJfZml4Ij4KICAgIDxkaXYgaWQ9Im12X2Rlc2NyaXB0aW9uIiBjbGFzcz0ibXZfZGVzYyI+CiAgPGRpdiBjbGFzcz0ianNfbXZfZGVzY3JfZmllbGQgY2FudF9lZGl0IiBpZD0ibXZfZGVzY3JfZmllbGQiPlVEQyBvcGVuIGN1cCAyMDE0LyAzIHBsYWNlIC8gU2FsZXkgRGFyaWEgKHNvbG8pPC9kaXY+CiAgPGEgaWQ9Im12X2Rlc2NyX2V4cGFuZF90b2dnbGUiIGNsYXNzPSJ3YWxsX3Bvc3RfbW9yZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiIG9uY2xpY2s9IlZpZGVvdmlldy5leHBhbmREZXNjcih0aGlzKSI+RXhwYW5kIHRleHSFPC9hPgogIDxkaXYgaWQ9Im12X2Rlc2NfZnVsbF90ZXh0Ij5VREMgb3BlbiBjdXAgMjAxNC8gMyBwbGFjZSAvIFNhbGV5IERhcmlhIChzb2xvKTwvZGl2PgogIDxkaXYgY2xhc3M9InByICIgaWQ9Im12X2lubGluZV9lZGl0X3ByIj48ZGl2IGNsYXNzPSJwcl9idCI+PC9kaXY+PGRpdiBjbGFzcz0icHJfYnQiPjwvZGl2PjxkaXYgY2xhc3M9InByX2J0Ij48L2Rpdj48L2Rpdj4KPC9kaXY+CiAgPC9kaXY+CjwvZGl2PgogIDxkaXYgY2xhc3M9Im12X2NvbW1lbnRzX2Jsb2NrIHdhbGxfbW9kdWxlIj4KICAgIDxkaXYgaWQ9InBvc3Q0MzY0MDgyMl92aWRlbzE2ODc5MDgwOW12Ij4KICAgICAgPGRpdiBpZD0ibXZfY29tbWVudHNfd3JhcCI+CiAgPGRpdiBpZD0ibXZfY29tbWVudHNfaGVhZGVyIiBvbmNsaWNrPSJWaWRlb3ZpZXcubW9yZUNvbW1lbnRzKCk7IiBjbGFzcz0iIj5TaG93IDExIHByZXZpb3VzIGNvbW1lbnRzPC9kaXY+CiAgPGRpdiBpZD0ibXZfY29tbWVudHNfc3VtbWFyeSIgY2xhc3M9Im12X2NvbW1lbnRzX3N1bW1hcnkgIiBzdHlsZT0iIj4xNCBjb21tZW50czwvZGl2PgogIDxkaXYgaWQ9Im12X2NvbW1lbnRzIj48ZGl2IGlkPSJwb3N0NDM2NDA4MjJ2aWRlb181NW12IiBjbGFzcz0icmVwbHkgcmVwbHlfZGl2ZWQgY2xlYXIgIF9wb3N0IiBkYXRhLXBvc3QtaWQ9IjQzNjQwODIydmlkZW9fNTVtdiIgPgogIDxkaXYgY2xhc3M9InJlcGx5X3dyYXAgX3JlcGx5X2NvbnRlbnQgX3Bvc3RfY29udGVudCBjbGVhcl9maXgiPgogICAgCiAgICA8YSBjbGFzcz0icmVwbHlfaW1hZ2UiIGhyZWY9Ii9qb255d29vZCI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL3BwLnVzZXJhcGkuY29tL2M2MjY1MjgvdjYyNjUyODk2Ni81ZTc0My9rUVZtTUJjbG5jSS5qcGciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgY2xhc3M9InJlcGx5X2ltZyIgYWx0PSJBbGV4ZXkgU2ltb25vdiIgLz4KICAgIDwvYT4KICAgIDxkaXYgY2xhc3M9InJlcGx5X2NvbnRlbnQiID4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InJlcGx5X2F1dGhvciI+CiAgICAgICAgPGEgY2xhc3M9ImF1dGhvciIgaHJlZj0iL2pvbnl3b29kIiBkYXRhLWZyb20taWQ9IjQzNjQwODIyIj5BbGV4ZXkgU2ltb25vdjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InJlcGx5X3RleHQiID48ZGl2IGlkPSJ3cHQ0MzY0MDgyMnZpZGVvXzU1bXYiPjxkaXYgY2xhc3M9IndhbGxfcmVwbHlfdGV4dCI+0+zt6PbgPC9kaXY+PC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InJlcGx5X2Zvb3RlciBjbGVhcl9maXgiIGlkPSJ3cGVfYm90dG9tNDM2NDA4MjJ2aWRlb181NW12Ij4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJyZXBseV9kYXRlIj4yMiBKdW4gMjAxNDwvZGl2PgogICAgICAgIAogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2Rpdj48ZGl2IGlkPSJwb3N0NDM2NDA4MjJ2aWRlb182NW12IiBjbGFzcz0icmVwbHkgcmVwbHlfZGl2ZWQgY2xlYXIgIF9wb3N0IiBkYXRhLXBvc3QtaWQ9IjQzNjQwODIydmlkZW9fNjVtdiIgPgogIDxkaXYgY2xhc3M9InJlcGx5X3dyYXAgX3JlcGx5X2NvbnRlbnQgX3Bvc3RfY29udGVudCBjbGVhcl9maXgiPgogICAgCiAgICA8YSBjbGFzcz0icmVwbHlfaW1hZ2UiIGhyZWY9Ii9rb3NobWFyaW5zIj4KICAgICAgPGltZyBzcmM9Imh0dHBzOi8vcHAudXNlcmFwaS5jb20vYzYwNDQzMS92NjA0NDMxNzUzLzNhNGVkL2d2bVA1cDA3QVRFLmpwZyIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiBjbGFzcz0icmVwbHlfaW1nIiBhbHQ9IkVsZW5hIFNobWFyaW5hIiAvPgogICAgPC9hPgogICAgPGRpdiBjbGFzcz0icmVwbHlfY29udGVudCIgPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0icmVwbHlfYXV0aG9yIj4KICAgICAgICA8YSBjbGFzcz0iYXV0aG9yIiBocmVmPSIva29zaG1hcmlucyIgZGF0YS1mcm9tLWlkPSI0MzY0MDgyMiI+RWxlbmEgU2htYXJpbmE8L2E+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyZXBseV90ZXh0IiA+PGRpdiBpZD0id3B0NDM2NDA4MjJ2aWRlb182NW12Ij48ZGl2IGNsYXNzPSJ3YWxsX3JlcGx5X3RleHQiPjxpbWcgY2xhc3M9ImVtb2ppX2NzcyIgYWx0PSImIzEyODUyMzsiIGVtb2ppPSJEODNEREUwQiIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDBweCAtODVweDsiIHNyYz0iL2ltYWdlcy9ibGFuay5naWYiPjxpbWcgY2xhc3M9ImVtb2ppX2NzcyIgYWx0PSImIzEyODA3NzsiIGVtb2ppPSJEODNEREM0RCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDU5cHg7IiBzcmM9Ii9pbWFnZXMvYmxhbmsuZ2lmIj48aW1nIGNsYXNzPSJlbW9qaSIgYWx0PSImIzEwMDI0OyIgc3JjPSIvaW1hZ2VzL2Vtb2ppLzI3MjgucG5nIj48L2Rpdj48L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icmVwbHlfZm9vdGVyIGNsZWFyX2ZpeCIgaWQ9IndwZV9ib3R0b200MzY0MDgyMnZpZGVvXzY1bXYiPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InJlcGx5X2RhdGUiPjYgT2N0IDIwMTQ8L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+PGRpdiBpZD0icG9zdDQzNjQwODIydmlkZW9fNjZtdiIgY2xhc3M9InJlcGx5IHJlcGx5X2RpdmVkIGNsZWFyICBfcG9zdCIgZGF0YS1wb3N0LWlkPSI0MzY0MDgyMnZpZGVvXzY2bXYiID4KICA8ZGl2IGNsYXNzPSJyZXBseV93cmFwIF9yZXBseV9jb250ZW50IF9wb3N0X2NvbnRlbnQgY2xlYXJfZml4Ij4KICAgIAogICAgPGEgY2xhc3M9InJlcGx5X2ltYWdlIiBocmVmPSIvZWxkYXJfbXVydGF6aW4iPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9wcC51c2VyYXBpLmNvbS9jODM2MjM1L3Y4MzYyMzU2NzIvMjc2N2YvYkY1WE0xTjdBaEUuanBnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIGNsYXNzPSJyZXBseV9pbWciIGFsdD0iRWxkYXIgTXVydGF6aW4iIC8+CiAgICA8L2E+CiAgICA8ZGl2IGNsYXNzPSJyZXBseV9jb250ZW50IiA+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJyZXBseV9hdXRob3IiPgogICAgICAgIDxhIGNsYXNzPSJhdXRob3IiIGhyZWY9Ii9lbGRhcl9tdXJ0YXppbiIgZGF0YS1mcm9tLWlkPSI0MzY0MDgyMiI+RWxkYXIgTXVydGF6aW48L2E+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyZXBseV90ZXh0IiA+PGRpdiBpZD0id3B0NDM2NDA4MjJ2aWRlb182Nm12Ij48ZGl2IGNsYXNzPSJ3YWxsX3JlcGx5X3RleHQiPsDg4ODg4ODg4C4uLi4g08DTIC4uLjwvZGl2PjwvZGl2PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyZXBseV9mb290ZXIgY2xlYXJfZml4IiBpZD0id3BlX2JvdHRvbTQzNjQwODIydmlkZW9fNjZtdiI+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0icmVwbHlfZGF0ZSI+MTggT2N0IDIwMTQ8L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+PC9kaXY+CjwvZGl2PgogICAgICAKICAgIDwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibXZfaW5mb19uYXJyb3dfY29sdW1uIGZsX3IiPgogIDxkaXYgY2xhc3M9Im12X3JlY29tX2Jsb2NrIj4KICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9ibG9ja190aXRsZSI+T3RoZXIgdmlkZW9zPC9kaXY+CiAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbSBjbGVhcl9maXgiPgogIDxhIGhyZWY9Ii92aWRlby05MzgwODMxN180NTYyNDA2ODIiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy05MzgwODMxN180NTYyNDA2ODInLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnfSwgZXZlbnQpOyIgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGh1bWIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vcHAudXNlcmFwaS5jb20vYzYzODkxOS92NjM4OTE5MzE3LzM0NGUwL0Zoemg4X1FHZkNjLmpwZycpIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fZHVyYXRpb24iPjM6MDY8L2Rpdj4KICA8L2E+CiAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9pbmZvIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGl0bGUiPgogICAgICA8YSBocmVmPSIvdmlkZW8tOTM4MDgzMTdfNDU2MjQwNjgyIiAgb25tb3VzZXVwPSJhamF4LnBvc3QoJy9hbF9pbmRleC5waHAnLCB7YWN0OidhX290aGVyX3ZpZGVvc19uYXZpZ2F0aW9uJywgYmxvY2tfaWQ6IDEsIGZyb206ICdvdGhlcl92aWRlb3MnfSk7IHJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiICBvbmNsaWNrPSJyZXR1cm4gc2hvd1ZpZGVvKCctOTM4MDgzMTdfNDU2MjQwNjgyJywgJycsIHthdXRvcGxheTogMSwgbW9kdWxlOiAncmVjb21tZW5kJywgYWRkUGFyYW1zOiB7IGFiX2dyb3VwOiAncHJldm5leHQnIH19LCBldmVudCk7IiB0aXRsZT0iy/P3+OXlIOfgIMzg8PI6IMv+5Ogg7eXi5fDu//Lt+yI+y/P3+OXlIOfgIMzg8PI6IMv+5Ogg7eXi5fDu//Lt+zwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV92aWV3cyI+MjcsNDcyIHZpZXdzPC9kaXY+CiAgPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW0gY2xlYXJfZml4Ij4KICA8YSBocmVmPSIvdmlkZW8tNTIyNTc3MTBfNDU2MjM5MDc4IiAgb25tb3VzZXVwPSJhamF4LnBvc3QoJy9hbF9pbmRleC5waHAnLCB7YWN0OidhX290aGVyX3ZpZGVvc19uYXZpZ2F0aW9uJywgYmxvY2tfaWQ6IDEsIGZyb206ICdvdGhlcl92aWRlb3MnfSk7IHJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiICBvbmNsaWNrPSJyZXR1cm4gc2hvd1ZpZGVvKCctNTIyNTc3MTBfNDU2MjM5MDc4JywgJycsIHthdXRvcGxheTogMSwgbW9kdWxlOiAncmVjb21tZW5kJ30sIGV2ZW50KTsiIGNsYXNzPSJtdl9yZWNvbV9pdGVtX3RodW1iIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3BwLnVzZXJhcGkuY29tL2M2Mzk3MjgvdjYzOTcyODQ2My8xNWI4YS93WVNGUmRZUWtzNC5qcGcnKSI+CiAgICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX2R1cmF0aW9uIj4yNzoxNzwvZGl2PgogIDwvYT4KICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX2luZm8iPgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV90aXRsZSI+CiAgICAgIDxhIGhyZWY9Ii92aWRlby01MjI1NzcxMF80NTYyMzkwNzgiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy01MjI1NzcxMF80NTYyMzkwNzgnLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnLCBhZGRQYXJhbXM6IHsgYWJfZ3JvdXA6ICdwcmV2bmV4dCcgfX0sIGV2ZW50KTsiIHRpdGxlPSJCb2xzaG9pIFRoZWF0cmUgb2YgUnVzc2lhIC8gwe7r/Pju6SDy5eDy8CDQ7vHx6OgglyBMaXZlIj5Cb2xzaG9pIFRoZWF0cmUgb2YgUnVzc2lhIC8gwe7r/Pju6SDy5eDy8CDQ7vHx6OgglyBMaXZlPC9hPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX3ZpZXdzIj45MCwzMDEgdmlld3M8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbSBjbGVhcl9maXgiPgogIDxhIGhyZWY9Ii92aWRlby02NjY2Njk3M180NTYyMzk0MDUiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy02NjY2Njk3M180NTYyMzk0MDUnLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnfSwgZXZlbnQpOyIgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGh1bWIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vcHAudXNlcmFwaS5jb20vYzYzOTMxOS92NjM5MzE5MTYzL2VjY2Ivb1RKMFQ2Z2pUQjAuanBnJykiPgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9kdXJhdGlvbiI+NTozMDwvZGl2PgogIDwvYT4KICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX2luZm8iPgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV90aXRsZSI+CiAgICAgIDxhIGhyZWY9Ii92aWRlby02NjY2Njk3M180NTYyMzk0MDUiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy02NjY2Njk3M180NTYyMzk0MDUnLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnLCBhZGRQYXJhbXM6IHsgYWJfZ3JvdXA6ICdwcmV2bmV4dCcgfX0sIGV2ZW50KTsiIHRpdGxlPSJHRUVLIM3u4u7x8uguIEJyYXp6ZXJzIPHt/+vgIKvP8Ojn8ODqIOIg5O7x7+X14PW7IOTr/yDi5/Du8ev79Swg4CDiIMDs5fDo6uUg4PDl8fLu4uDr6CDE5u7q5fDgIj5HRUVLIM3u4u7x8uguIEJyYXp6ZXJzIPHt/+vgIKvP8Ojn8ODqIOIg5O7x7+X14PW7IOTr/yDi5/Du8ev79Swg4CDiIMDs5fDo6uUg4PDl8fLu4uDr6CDE5u7q5fDgPC9hPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX3ZpZXdzIj4xOSw3MzUgdmlld3M8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbSBjbGVhcl9maXgiPgogIDxhIGhyZWY9Ii92aWRlby01MzM3NzQ2OV80NTYyMzkxOTkiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy01MzM3NzQ2OV80NTYyMzkxOTknLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnfSwgZXZlbnQpOyIgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGh1bWIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vY3M1NDE2MDYudXNlcmFwaS5jb20vYzYzNjMyOS92NjM2MzI5NDY5LzU4ZmMyL1lacHExWWVPc3p3LmpwZycpIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fZHVyYXRpb24iPjE6Mzg8L2Rpdj4KICA8L2E+CiAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9pbmZvIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGl0bGUiPgogICAgICA8YSBocmVmPSIvdmlkZW8tNTMzNzc0NjlfNDU2MjM5MTk5IiAgb25tb3VzZXVwPSJhamF4LnBvc3QoJy9hbF9pbmRleC5waHAnLCB7YWN0OidhX290aGVyX3ZpZGVvc19uYXZpZ2F0aW9uJywgYmxvY2tfaWQ6IDEsIGZyb206ICdvdGhlcl92aWRlb3MnfSk7IHJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiICBvbmNsaWNrPSJyZXR1cm4gc2hvd1ZpZGVvKCctNTMzNzc0NjlfNDU2MjM5MTk5JywgJycsIHthdXRvcGxheTogMSwgbW9kdWxlOiAncmVjb21tZW5kJywgYWRkUGFyYW1zOiB7IGFiX2dyb3VwOiAncHJldm5leHQnIH19LCBldmVudCk7IiB0aXRsZT0iyu7w7uv8IMHl6/zj6On25eIgLSDu8vD74u7qIDEgLSDz5uUg4iDq6O3uJiMzMzsiPsru8O7r/CDB5ev84+jp9uXiIC0g7vLw++Lu6iAxIC0g8+blIOIg6ujt7iYjMzM7PC9hPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX3ZpZXdzIj40OSw5NTYgdmlld3M8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbSBjbGVhcl9maXgiPgogIDxhIGhyZWY9Ii92aWRlby00NTI4MDA1NV80NTYyMzk4MDUiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy00NTI4MDA1NV80NTYyMzk4MDUnLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnfSwgZXZlbnQpOyIgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGh1bWIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vcHAudXNlcmFwaS5jb20vYzYzODAyMC92NjM4MDIwMDU1LzM1OThmL0t6VjBLNld0NnNrLmpwZycpIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fZHVyYXRpb24iPjM6MTc8L2Rpdj4KICA8L2E+CiAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9pbmZvIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGl0bGUiPgogICAgICA8YSBocmVmPSIvdmlkZW8tNDUyODAwNTVfNDU2MjM5ODA1IiAgb25tb3VzZXVwPSJhamF4LnBvc3QoJy9hbF9pbmRleC5waHAnLCB7YWN0OidhX290aGVyX3ZpZGVvc19uYXZpZ2F0aW9uJywgYmxvY2tfaWQ6IDEsIGZyb206ICdvdGhlcl92aWRlb3MnfSk7IHJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiICBvbmNsaWNrPSJyZXR1cm4gc2hvd1ZpZGVvKCctNDUyODAwNTVfNDU2MjM5ODA1JywgJycsIHthdXRvcGxheTogMSwgbW9kdWxlOiAncmVjb21tZW5kJywgYWRkUGFyYW1zOiB7IGFiX2dyb3VwOiAncHJldm5leHQnIH19LCBldmVudCk7IiB0aXRsZT0iyuDi5fAg7eAg7+Xx7f4gS2F0eSBQZXJyeSAtIENoYWluZWQgVG8gVGhlIFJoeXRobSAoQ292ZXIgUmF1YW4pIj7K4OLl8CDt4CDv5fHt/iBLYXR5IFBlcnJ5IC0gQ2hhaW5lZCBUbyBUaGUgUmh5dGhtIChDb3ZlciBSYXVhbik8L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fdmlld3MiPjIwOSwyNTQgdmlld3M8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbSBjbGVhcl9maXgiPgogIDxhIGhyZWY9Ii92aWRlby05MzgwODMxN180NTYyNDA2ODIiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy05MzgwODMxN180NTYyNDA2ODInLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnfSwgZXZlbnQpOyIgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGh1bWIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vcHAudXNlcmFwaS5jb20vYzYzODkxOS92NjM4OTE5MzE3LzM0NGUwL0Zoemg4X1FHZkNjLmpwZycpIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fZHVyYXRpb24iPjM6MDY8L2Rpdj4KICA8L2E+CiAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9pbmZvIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGl0bGUiPgogICAgICA8YSBocmVmPSIvdmlkZW8tOTM4MDgzMTdfNDU2MjQwNjgyIiAgb25tb3VzZXVwPSJhamF4LnBvc3QoJy9hbF9pbmRleC5waHAnLCB7YWN0OidhX290aGVyX3ZpZGVvc19uYXZpZ2F0aW9uJywgYmxvY2tfaWQ6IDEsIGZyb206ICdvdGhlcl92aWRlb3MnfSk7IHJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiICBvbmNsaWNrPSJyZXR1cm4gc2hvd1ZpZGVvKCctOTM4MDgzMTdfNDU2MjQwNjgyJywgJycsIHthdXRvcGxheTogMSwgbW9kdWxlOiAncmVjb21tZW5kJywgYWRkUGFyYW1zOiB7IGFiX2dyb3VwOiAncHJldm5leHQnIH19LCBldmVudCk7IiB0aXRsZT0iy/P3+OXlIOfgIMzg8PI6IMv+5Ogg7eXi5fDu//Lt+yI+y/P3+OXlIOfgIMzg8PI6IMv+5Ogg7eXi5fDu//Lt+zwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV92aWV3cyI+MjcsNDcyIHZpZXdzPC9kaXY+CiAgPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW0gY2xlYXJfZml4Ij4KICA8YSBocmVmPSIvdmlkZW8tMjM5NzgxXzQ1NjIzOTA1MCIgIG9ubW91c2V1cD0iYWpheC5wb3N0KCcvYWxfaW5kZXgucGhwJywge2FjdDonYV9vdGhlcl92aWRlb3NfbmF2aWdhdGlvbicsIGJsb2NrX2lkOiAxLCBmcm9tOiAnb3RoZXJfdmlkZW9zJ30pOyByZXR1cm4gY2hlY2tFdmVudChldmVudCk7IiAgb25jbGljaz0icmV0dXJuIHNob3dWaWRlbygnLTIzOTc4MV80NTYyMzkwNTAnLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnfSwgZXZlbnQpOyIgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGh1bWIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vcHAudXNlcmFwaS5jb20vYzYzNzYyMi92NjM3NjIyNzgxLzQxMDU2L3RqMGtRSXp6ZzUwLmpwZycpIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fZHVyYXRpb24iPjE6NTQ8L2Rpdj4KICA8L2E+CiAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9pbmZvIj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fdGl0bGUiPgogICAgICA8YSBocmVmPSIvdmlkZW8tMjM5NzgxXzQ1NjIzOTA1MCIgIG9ubW91c2V1cD0iYWpheC5wb3N0KCcvYWxfaW5kZXgucGhwJywge2FjdDonYV9vdGhlcl92aWRlb3NfbmF2aWdhdGlvbicsIGJsb2NrX2lkOiAxLCBmcm9tOiAnb3RoZXJfdmlkZW9zJ30pOyByZXR1cm4gY2hlY2tFdmVudChldmVudCk7IiAgb25jbGljaz0icmV0dXJuIHNob3dWaWRlbygnLTIzOTc4MV80NTYyMzkwNTAnLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnLCBhZGRQYXJhbXM6IHsgYWJfZ3JvdXA6ICdwcmV2bmV4dCcgfX0sIGV2ZW50KTsiIHRpdGxlPSLP8ODi7iDt4CDy5e/r7i4gwO3y7u0gweXr/+XiIChUaGVyciBNYWl0eikiPs/w4OLuIO3gIPLl7+vuLiDA7fLu7SDB5ev/5eIgKFRoZXJyIE1haXR6KTwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV92aWV3cyI+NDMsMzY1IHZpZXdzPC9kaXY+CiAgPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW0gY2xlYXJfZml4Ij4KICA8YSBocmVmPSIvdmlkZW8tMjc0MzkzNjdfNDU2MjQwODkwIiAgb25tb3VzZXVwPSJhamF4LnBvc3QoJy9hbF9pbmRleC5waHAnLCB7YWN0OidhX290aGVyX3ZpZGVvc19uYXZpZ2F0aW9uJywgYmxvY2tfaWQ6IDEsIGZyb206ICdvdGhlcl92aWRlb3MnfSk7IHJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiICBvbmNsaWNrPSJyZXR1cm4gc2hvd1ZpZGVvKCctMjc0MzkzNjdfNDU2MjQwODkwJywgJycsIHthdXRvcGxheTogMSwgbW9kdWxlOiAncmVjb21tZW5kJ30sIGV2ZW50KTsiIGNsYXNzPSJtdl9yZWNvbV9pdGVtX3RodW1iIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3BwLnVzZXJhcGkuY29tL2M2Mzc5MjcvdjYzNzkyNzM2Ny8zNzkwOS9uWWl2RjFDOGpRVS5qcGcnKSI+CiAgICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX2R1cmF0aW9uIj4zOjIyPC9kaXY+CiAgPC9hPgogIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1faW5mbyI+CiAgICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX3RpdGxlIj4KICAgICAgPGEgaHJlZj0iL3ZpZGVvLTI3NDM5MzY3XzQ1NjI0MDg5MCIgIG9ubW91c2V1cD0iYWpheC5wb3N0KCcvYWxfaW5kZXgucGhwJywge2FjdDonYV9vdGhlcl92aWRlb3NfbmF2aWdhdGlvbicsIGJsb2NrX2lkOiAxLCBmcm9tOiAnb3RoZXJfdmlkZW9zJ30pOyByZXR1cm4gY2hlY2tFdmVudChldmVudCk7IiAgb25jbGljaz0icmV0dXJuIHNob3dWaWRlbygnLTI3NDM5MzY3XzQ1NjI0MDg5MCcsICcnLCB7YXV0b3BsYXk6IDEsIG1vZHVsZTogJ3JlY29tbWVuZCcsIGFkZFBhcmFtczogeyBhYl9ncm91cDogJ3ByZXZuZXh0JyB9fSwgZXZlbnQpOyIgdGl0bGU9IlJPQ0tBQllFIC0gQ2xlYW4gQmFuZGl0ICjq4OLl8CDiIOzg+Ojt5SkgU2hpcmxleSBTZXRpYSAgS0hTIENPVkVSIj5ST0NLQUJZRSAtIENsZWFuIEJhbmRpdCAo6uDi5fAg4iDs4Pjo7eUpIFNoaXJsZXkgU2V0aWEgIEtIUyBDT1ZFUjwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV92aWV3cyI+MzAzLDk0OSB2aWV3czwvZGl2PgogIDwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtIGNsZWFyX2ZpeCI+CiAgPGEgaHJlZj0iL3ZpZGVvLTM3NDE2MDE4XzQ1NjIzOTA1NyIgIG9ubW91c2V1cD0iYWpheC5wb3N0KCcvYWxfaW5kZXgucGhwJywge2FjdDonYV9vdGhlcl92aWRlb3NfbmF2aWdhdGlvbicsIGJsb2NrX2lkOiAxLCBmcm9tOiAnb3RoZXJfdmlkZW9zJ30pOyByZXR1cm4gY2hlY2tFdmVudChldmVudCk7IiAgb25jbGljaz0icmV0dXJuIHNob3dWaWRlbygnLTM3NDE2MDE4XzQ1NjIzOTA1NycsICcnLCB7YXV0b3BsYXk6IDEsIG1vZHVsZTogJ3JlY29tbWVuZCd9LCBldmVudCk7IiBjbGFzcz0ibXZfcmVjb21faXRlbV90aHVtYiIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9wcC51c2VyYXBpLmNvbS9jODM2NjI1L3Y4MzY2MjUwMTgvMmU4OGIvZ2ttaV9WUnJ3SEUuanBnJykiPgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9kdXJhdGlvbiI+MTowMDwvZGl2PgogIDwvYT4KICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX2luZm8iPgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV90aXRsZSI+CiAgICAgIDxhIGhyZWY9Ii92aWRlby0zNzQxNjAxOF80NTYyMzkwNTciICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy0zNzQxNjAxOF80NTYyMzkwNTcnLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnLCBhZGRQYXJhbXM6IHsgYWJfZ3JvdXA6ICdwcmV2bmV4dCcgfX0sIGV2ZW50KTsiIHRpdGxlPSLA7e3gIMrr6OLr5e3kIOTr/yBIYXJwZXImIzM5O3MgQmF6YWFyINDu8fHo/yI+wO3t4CDK6+ji6+Xt5CDk6/8gSGFycGVyJiMzOTtzIEJhemFhciDQ7vHx6P88L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im12X3JlY29tX2l0ZW1fdmlld3MiPjc3LDIzMiB2aWV3czwvZGl2PgogIDwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtIGNsZWFyX2ZpeCI+CiAgPGEgaHJlZj0iL3ZpZGVvLTUyOTI1MDM5XzQ1NjI0MDQ5OSIgIG9ubW91c2V1cD0iYWpheC5wb3N0KCcvYWxfaW5kZXgucGhwJywge2FjdDonYV9vdGhlcl92aWRlb3NfbmF2aWdhdGlvbicsIGJsb2NrX2lkOiAxLCBmcm9tOiAnb3RoZXJfdmlkZW9zJ30pOyByZXR1cm4gY2hlY2tFdmVudChldmVudCk7IiAgb25jbGljaz0icmV0dXJuIHNob3dWaWRlbygnLTUyOTI1MDM5XzQ1NjI0MDQ5OScsICcnLCB7YXV0b3BsYXk6IDEsIG1vZHVsZTogJ3JlY29tbWVuZCd9LCBldmVudCk7IiBjbGFzcz0ibXZfcmVjb21faXRlbV90aHVtYiIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9wcC51c2VyYXBpLmNvbS9jNjM4ODE4L3Y2Mzg4MTg3NDIvMzRjZmMvOWN1amZjUUV0ZE0uanBnJykiPgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV9kdXJhdGlvbiI+MzoyNzwvZGl2PgogIDwvYT4KICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX2luZm8iPgogICAgPGRpdiBjbGFzcz0ibXZfcmVjb21faXRlbV90aXRsZSI+CiAgICAgIDxhIGhyZWY9Ii92aWRlby01MjkyNTAzOV80NTYyNDA0OTkiICBvbm1vdXNldXA9ImFqYXgucG9zdCgnL2FsX2luZGV4LnBocCcsIHthY3Q6J2Ffb3RoZXJfdmlkZW9zX25hdmlnYXRpb24nLCBibG9ja19pZDogMSwgZnJvbTogJ290aGVyX3ZpZGVvcyd9KTsgcmV0dXJuIGNoZWNrRXZlbnQoZXZlbnQpOyIgIG9uY2xpY2s9InJldHVybiBzaG93VmlkZW8oJy01MjkyNTAzOV80NTYyNDA0OTknLCAnJywge2F1dG9wbGF5OiAxLCBtb2R1bGU6ICdyZWNvbW1lbmQnLCBhZGRQYXJhbXM6IHsgYWJfZ3JvdXA6ICdwcmV2bmV4dCcgfX0sIGV2ZW50KTsiIHRpdGxlPSJEVUIgfCBGYW5zOiDM8fLo8uXr6CDw5eDj6PDz/vIg7eAg8vDl6evl8CDL6OPoINHv8ODi5eTr6OLu8fLoIj5EVUIgfCBGYW5zOiDM8fLo8uXr6CDw5eDj6PDz/vIg7eAg8vDl6evl8CDL6OPoINHv8ODi5eTr6OLu8fLoPC9hPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtdl9yZWNvbV9pdGVtX3ZpZXdzIj45Miw3MDAgdmlld3M8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj48IT48IT48IWpzb24+eyJsYW5nIjp7Imdsb2JhbF9zaG9ydF9kYXRlX3RpbWUiOlsiIiwie2RheX0ge21vbnRofSBhdCB7aG91cn06e21pbnV0ZX0ge2FtX3BtfSIsInllc3RlcmRheSBhdCB7aG91cn06e21pbnV0ZX0ge2FtX3BtfSIsInRvZGF5IGF0IHtob3VyfTp7bWludXRlfSB7YW1fcG19IiwidG9tb3Jyb3cgYXQge2hvdXJ9OnttaW51dGV9IHthbV9wbX0iXSwicmVwbHlfdG9fcG9zdCI6IllvdXIgY29tbWVudC4uIiwid2FsbF9NX3JlcGxpZXNfb2ZfTiI6WyIiLCIlcyBjb21tZW50IG9mIHtsaW5rfXthbGx9e1wvbGlua30iLCIlcyBjb21tZW50cyBvZiB7bGlua317YWxsfXtcL2xpbmt9Il0sIndhbGxfbW9yZV9yZXBsaWVzIjpbIiIsInNob3cgJXMgbW9yZSBjb21tZW50Iiwic2hvdyAlcyBtb3JlIGNvbW1lbnRzIl0sIndhbGxfYWxsX3JlcGxpZXMiOiJhbGwgY29tbWVudHMiLCJkb250X2F0dGFjaCI6IlJlbW92ZSBhdHRhY2htZW50IiwidmlkZW9fWF9jb21tcyI6WyIiLCIlcyBjb21tZW50IiwiJXMgY29tbWVudHMiXSwidmlkZW9fZWRpdCI6IkVkaXQgdmlkZW8iLCJ2aWRlb19lZGl0X2Rlc2MiOiJFZGl0IGRlc2NyaXB0aW9uIiwidmlkZW9fZWRpdF9kZXNjX2ludHJvIjoiRW50ZXIgZGVzY3JpcHRpb24iLCJ2aWRlb19zaG93X3ByZXZpb3VzX2NvbW1lbnRzIjpbIiIsIlNob3cgJXMgcHJldmlvdXMgY29tbWVudCIsIlNob3cgJXMgcHJldmlvdXMgY29tbWVudHMiXSwidmlkZW9fYXJlX3lvdV9zdXJlX2Nsb3NlIjoiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNsb3NlIHRoaXMgdmlkZW8/IiwidmlkZW9fYXJlX3lvdV9zdXJlX2Nsb3NlX3RpdGxlIjoiQ2xvc2UgdmlkZW8iLCJwcm9maWxlX21lbnRpb25fbm90X2ZvdW5kIjoiVXNlciB3YXMgbm90IGZvdW5kIiwicHJvZmlsZV9tZW50aW9uX3N0YXJ0X3R5cGluZyI6IlN0YXJ0IHR5cGluZyBhIG5hbWUuLiIsInZpZGVvX2FsYnVtX2lzX3ByaXZhdGVfdHQiOiJUaGlzIGFsYnVtIGlzIHByaXZhdGUiLCJ2aWRlb19hZGRfdG9fbXlfcGxheWxpc3QiOiJBZGQgdG8gTXkgVmlkZW9zIiwidmlkZW9fYWRkZWRfdG9fbXlfcGxheWxpc3QiOiJBZGRlZCIsInZpZGVvX2NoYW5nZXNfc2F2ZWQiOiJDaGFuZ2VzIHNhdmVkIiwidmlkZW9fYWRkX2FsYnVtIjoiQ3JlYXRlIGFsYnVtIiwidmlkZW9fYWRkX3ByaXZhdGVfYWxidW0iOiJDcmVhdGUgYSBwcml2YXRlIGFsYnVtIiwidmlkZW9fYWRkX3RvX2dyb3VwIjoiQWRkIHRvIGNvbW11bml0eSIsInZpZGVvX2V4cG9ydF9hY3Rpb24iOiJFeHBvcnQiLCJ2aWRlb19zdGF0aXN0aWNzIjoiU3RhdGlzdGljcyIsInZpZGVvX2NvbXBsYWluIjoiUmVwb3J0IiwidmlkZW9fc2VsZWN0X2FsYnVtcyI6IlNlbGVjdCBhbGJ1bXMiLCJ2aWRlb190Y19zdXJlX2RlbGV0ZSI6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyB2aWRlbz88YnI+PGJyPllvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHJlc3RvcmUgdGFncyBhbmQgY29tbWVudHMuIiwidmlkZW9fdGNfZGVsZXRlIjoiRGVsZXRlIiwidmlkZW9fZGVsZXRlX2RpYWxvZ190aXRsZSI6IkRlbGV0ZSB2aWRlbyIsInZpZGVvX2RlbGV0ZV9ib3hfbm9fdGl0bGUiOiJObyIsInZpZGVvX21lbnVfZGVsZXRlIjoiRGVsZXRlIHZpZGVvIiwidmlkZW9fdmlld3NfY291bnRfdHRfdGV4dCI6Ik9yaWdpbmFsIHZpZGVvIHZpZXdzICh0b3RhbCB2aWV3cykiLCJ2aWRlb19vbmx5X3ByaXZhdGVfdmlkZW8iOiJUaGlzIHZpZGVvIGNhbiBvbmx5IGJlIGFkZGVkIHRvIGEgcHJpdmF0ZSBhbGJ1bSIsInZpZGVvX2xlYXZlX2Nsb3NlZF9ncm91cF90aXRsZSI6IkxlYXZlIGNsb3NlZCBjb21tdW5pdHkiLCJ2aWRlb19sZWF2ZV9jbG9zZWRfZ3JvdXBfdGV4dCI6IllvdSBhcmUgYWJvdXQgdG8gbGVhdmUgYSBjbG9zZWQgY29tbXVuaXR5LiBJdCBtYXkgbm90IGJlIHRoYXQgZWFzeSB0byBjb21lIGJhY2suIExlYXZlIHRoZSBjb21tdW5pdHk/IiwidmlkZW9fbGVhdmVfYWRtaW5lZF9ncm91cF90ZXh0IjoiWW91IGFyZSBhbiA8Yj5hZG1pbmlzdHJhdG9yPFwvYj4gaW4gdGhpcyBjb21tdW5pdHkuIFlvdSB3aWxsIGxvc2UgdGhpcyBwb3NpdGlvbiBpZiB5b3UgbGVhdmUgbm93LiBMZWF2ZSB0aGUgY29tbXVuaXR5PyIsInZpZGVvX3ZpZXdfc3Vic2NyaWJlX3RvX2F1dGhvciI6IlN1YnNjcmliZSIsInZpZGVvX3ZpZXdfc3Vic2NyaWJlZF9tc2ciOiJGb2xsb3dpbmciLCJ2aWRlb19wbGF5ZXJfbmV4dF90aXRsZSI6Ik5leHQgdmlkZW8iLCJ2aWRlb19pX2xpa2UiOiJMaWtlIiwidmlkZW9fc2hhcmVfd2l0aF9mcmllbmRzIjoiU2hhcmUiLCJ2aWRlb19hZGRfZmxhc2giOiJBZGQgdG8gTXkgVmlkZW9zIiwidmlkZW9fYWRkZWRfZmxhc2giOiJWaWRlbyBhZGRlZCB0byBNeSBWaWRlb3MiLCJ2aWRlb19jb21tZW50c19zdW1tYXJ5IjpbIiIsIiVzIGNvbW1lbnQiLCIlcyBjb21tZW50cyJdLCJ2aWRlb19OX3ZpZXdzX2xpc3QiOlsiIiwiJXMgdmlldyIsIiVzIHZpZXdzIl0sInZpZGVvX3BsYXlsaXN0X3JldmVyc2VfdHQiOiJSZXZlcnNlIG9yZGVyIiwidmlkZW9fcGxheWxpc3RfYXV0b3BsYXlfZGlzYWJsZV90dCI6IkRpc2FibGUgYXV0b3BsYXkiLCJ2aWRlb19wbGF5bGlzdF9hdXRvcGxheV9lbmFibGVfdHQiOiJFbmFibGUgYXV0b3BsYXkiLCJ2aWRlb19saXZlX05fd2F0Y2hpbmciOlsiIiwiJXMgaXMgd2F0Y2hpbmcgbm93IiwiJXMgYXJlIHdhdGNoaW5nIG5vdyJdLCJ2aWRlb19saXZlX2NoYXRfbXNnX3Rvb19sb25nIjoiVGhlIG1lc3NhZ2UgaXMgdG9vIGxvbmciLCJ2aWRlb19saXZlX2NoYXRfdG9vX2Zhc3QiOiJUb28gZmFzdIUiLCJ2aWRlb19hcmlhX21pbmltaXplX3BsYXlsaXN0IjoiSGlkZSBwbGF5bGlzdCIsInZpZGVvX2FyaWFfZXhwYW5kX3BsYXlsaXN0IjoiU2hvdyBwbGF5bGlzdCIsInZpZGVvX2FyaWFfbWluaW1pemVfY2hhdCI6IkhpZGUgY2hhdCIsInZpZGVvX2FyaWFfZXhwYW5kX2NoYXQiOiJFeHBhbmQgY2hhdCIsInZpZGVvX2xpdmVfbm90aWZ5X3N1YnNjcmliZWQiOiJTdHJlYW0gbm90aWZpY2F0aW9ucyBlbmFibGVkIiwidmlkZW9fbGl2ZV9ub3RpZnlfdW5zdWJzY3JpYmVkIjoiU3RyZWFtIG5vdGlmaWNhdGlvbnMgZGlzYWJsZWQiLCJ2aWRlb19saXZlX3lvdV9oYXZlX1hfbW9uZXkiOiJZb3UgaGF2ZSB7bW9uZXl9IiwidmlkZW9fdW5mb2xsb3dfZnJpZW5kX3RpdGxlIjoiUmVtb3ZlIGZyb20gZnJpZW5kcyIsInZpZGVvX3VuZm9sbG93X2ZyaWVuZF90ZXh0IjoiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSBEYXNoYSBmcm9tIHlvdXIgZnJpZW5kIGxpc3Q/In0sIm12RGF0YSI6eyJ0aXRsZSI6IlVEQyBvcGVuIGN1cCAyMDE0XC8gMyBwbGFjZSBcLyBTYWxleSBEYXJpYSAoc29sbykiLCJkZXNjIjoiVURDIG9wZW4gY3VwIDIwMTRcLyAzIHBsYWNlIFwvIFNhbGV5IERhcmlhIChzb2xvKSIsIm9pZCI6NDM2NDA4MjIsInZpZCI6MTY4NzkwODA5LCJhdXRob3JJZCI6NDM2NDA4MjIsImF1dGhvclBob3RvIjoiaHR0cHM6XC9cL3BwLnVzZXJhcGkuY29tXC9jODM3NDIyXC92ODM3NDIyODIyXC85M2M4XC8wMG9xZC0zQlM5VS5qcGciLCJhdXRob3JIcmVmIjoiXC9kYXJpYXNhbGV5IiwidmlkZW9SYXciOiI0MzY0MDgyMl8xNjg3OTA4MDkiLCJoYXNoIjoiOTUzYzRkZTBlYWI5MmQzYzZhIiwibGlrZUhhc2giOiI5ZjVlNWUyZGEwYmViNzQwZmQiLCJlZGl0SGFzaCI6IiIsImVkaXRGcm9tRHJvcGRvd24iOjAsImhpZGVFZGl0IjpudWxsLCJjb21tc2hvd24iOjMsImNvbW1jb3VudCI6MTQsImxpa2VkIjpmYWxzZSwibGlrZXMiOjAsImFkZGVkIjowLCJjYW5fYWRkIjowLCJhZGRfaGFzaCI6IjIyNjY4ZDFiYTQ4MzkzMzM0YiIsIm5vbGlrZXMiOjEsImR1cmF0aW9uIjo4NCwidnNlZ3NTaXplIjo4LjAwMDAwMCwicGxheWxpc3RzIjpbXSwidXBsb2FkZWQiOmZhbHNlLCJwdWJsaXNoZWQiOnRydWUsIm5vQ29udHJvbHMiOmZhbHNlLCJwbGF5bGlzdEFkZEhhc2giOiIyMjY2OGQxYmE0ODM5MzMzNGIiLCJkZWxldGVIYXNoIjoiIiwicmVwb3J0UmVhc29ucyI6W10sInJlcG9ydEhhc2giOiI4OTk1MDU5NGUyYmNhZjVlYzAiLCJpbmZvIjpbNDM2NDA4MjIsMTY4NzkwODA5LCJodHRwczpcL1wvcHAudXNlcmFwaS5jb21cL2M1NDA2MDlcL3UyNzk2NTI5XC92aWRlb1wvbF9lYjc5MDQ4Ny5qcGciLCJVREMgb3BlbiBjdXAgMjAxNFwvIDMgcGxhY2UgXC8gU2FsZXkgRGFyaWEgKHNvbG8pIiwxNjM4NCwiMToyNCIsIiIsIiIsIjxhIGhyZWY9XCJcL2Rhcmlhc2FsZXlcIiBjbGFzcz1cIm1lbV9saW5rXCI+RGFzaGEgU2FsZXk8XC9hPiIsMTQwMTY4OTA0OSwxODMzXSwiY2FuRXhwb3J0IjoxLCJpc1ZpZGVvQWRzIjpmYWxzZSwiZGVsZXRlRnJvbUFsbEFsYnVtc0hhc2giOiIiLCJpc19saXZlIjowLCJpc19hY3RpdmVfbGl2ZSI6MCwiUExBWUxJU1RfQURERURfSUQiOi0yLCJQTEFZTElTVF9VUExPQURFRF9JRCI6LTEsIm5vUHVibGljQWRkIjpmYWxzZSwiUExBWUVSX0ZVTExfV0lEVEgiOjk2MCwiUExBWUVSX0ZVTExfSEVJR0hUIjo1NDAsIlBMQVlFUl9QTF9XSURUSCI6NzIwLCJQTEFZRVJfUExfSEVJR0hUIjo0MDUsImxfdHlwZSI6MSwia3oiOjAsInRuc19tb25ldGl6ZWQiOnRydWV9LCJ3YWxsVHBsIjp7InJlcGx5X2JveCI6IjxkaXYgaWQ9XCJyZXBseV9ib3hfd3JhcCVwb3N0X2lkJVwiPjxkaXYgY2xhc3M9XCJyZXBseV9ib3hfaW5uZXJfd3JhcFwiPlxuICA8ZGl2IGNsYXNzPVwicmVwbHlfZmFrZWJveF93cmFwXCIgaWQ9XCJyZXBseV9mYWtlYm94JXBvc3RfaWQlXCIgb25jbGljaz1cInJldHVybiBXYWxsLnNob3dFZGl0UmVwbHkoJyVwb3N0X2lkJScsIGV2ZW50KVwiIGRhdGEtb3duZXItcGhvdG89XCIlb3duZXJfcGhvdG8lXCIgZGF0YS1vd25lci1ocmVmPVwiJW93bmVyX2hyZWYlXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvc3RfZmllbGRfdXNlclwiPlxuICA8YSBjbGFzcz1cInBvc3RfZmllbGRfdXNlcl9saW5rXCIgaHJlZj1cIlwvaWRcIiBvbmNsaWNrPVwicmV0dXJuIG5hdi5nbyh0aGlzLCBldmVudClcIj5cbiAgICA8aW1nIGNsYXNzPVwicG9zdF9maWVsZF91c2VyX2ltYWdlXCIgc3JjPVwiXC9pbWFnZXNcL2NhbWVyYV81MC5wbmdcIiBcLz5cbiAgPFwvYT5cbjxcL2Rpdj4ldXNlcl9pbWFnZSVcbiAgICA8ZGl2IGNsYXNzPVwicmVwbHlfZmFrZWJveFwiPkxlYXZlIGEgY29tbWVudC4uLjxcL2Rpdj48XC9kaXY+XG48XC9kaXY+PFwvZGl2PjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgaWQ9XCJwb3N0X2hhc2glcG9zdF9pZCVcIiB2YWx1ZT1cIjE0OTA2NDg0ODdfMTEyNzJkMWQwOTk1ZTU5OWFiXCIgY2FuX3JlcGx5X2FzX2dyb3VwPVwiJWNhbl9yZXBseV9hc19ncm91cCVcIiBcLz4iLCJyZXBseV9mb3JtIjoiPGRpdiBpZD1cInJlcGx5X2JveCVwb3N0X2lkJVwiIGNsYXNzPVwic3VibWl0X3Bvc3RfYm94IHJlcGx5X2JveCBjbGVhcl9maXggX3N1Ym1pdF9wb3N0X2JveFwiIG9uY2xpY2s9XCJyZXR1cm4gY2FuY2VsRXZlbnQoZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJyZXBseV9mb3JtXCI+XG4gICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBpZD1cInJlcGx5X3RvJXBvc3RfaWQlXCIgdmFsdWU9XCJcIiBcLz5cbiAgICA8ZGl2IGNsYXNzPVwicG9zdF9maWVsZF91c2VyXCI+XG4gIDxhIGNsYXNzPVwicG9zdF9maWVsZF91c2VyX2xpbmtcIiBocmVmPVwiXC9pZFwiIG9uY2xpY2s9XCJyZXR1cm4gbmF2LmdvKHRoaXMsIGV2ZW50KVwiPlxuICAgIDxpbWcgY2xhc3M9XCJwb3N0X2ZpZWxkX3VzZXJfaW1hZ2VcIiBzcmM9XCJcL2ltYWdlc1wvY2FtZXJhXzUwLnBuZ1wiIFwvPlxuICA8XC9hPlxuPFwvZGl2PiV1c2VyX2ltYWdlJVxuICAgIDxkaXYgY2xhc3M9XCJyZXBseV9maWVsZF93cmFwIF9lbW9qaV9maWVsZF93cmFwXCI+XG4gICAgICA8ZGl2IGlkPVwicmVwbHlfc21pbGUlcG9zdF9pZCVcIiBjbGFzcz1cImVtb2ppX3NtaWxlX3dyYXAgIF9lbW9qaV93cmFwXCI+XG4gIDxkaXYgY2xhc3M9XCJlbW9qaV9zbWlsZSBfZW1vamlfYnRuXCIgdGl0bGU9XCJVc2UgdGhlIFRBQiBrZXkgdG8gaW5zZXJ0IGVtb2ppIGZhc3RlclwiIG9ubW91c2VvdmVyPVwicmV0dXJuIEVtb2ppLnNob3codGhpcywgZXZlbnQpO1wiIG9ubW91c2VvdXQ9XCJyZXR1cm4gRW1vamkuaGlkZSh0aGlzLCBldmVudCk7XCIgb25jbGljaz1cInJldHVybiBjYW5jZWxFdmVudChldmVudCk7XCI+XG4gICAgPGRpdiBjbGFzcz1cImVtb2ppX3NtaWxlX2ljb25cIj48XC9kaXY+XG4gIDxcL2Rpdj5cbjxcL2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJyZXBseV9maWVsZCVwb3N0X2lkJVwiIGNsYXNzPVwicmVwbHlfZmllbGQgc3VibWl0X3Bvc3RfZmllbGRcIiBvbmZvY3VzPVwicmV0dXJuIFdhbGwuc2hvd0VkaXRSZXBseSgnJXBvc3RfaWQlJywgZXZlbnQpO1wiIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIiBwbGFjZWhvbGRlcj1cIkxlYXZlIGEgY29tbWVudC4uLlwiPjxcL2Rpdj5cbiAgICA8XC9kaXY+XG4gICAgPGRpdiBpZD1cInN1Ym1pdF9yZXBseSVwb3N0X2lkJVwiIGNsYXNzPVwic3VibWl0X3Bvc3QgY2xlYXJfZml4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVwbHlfd2FybiBjbGVhclwiIGlkPVwicmVwbHlfd2FybiVwb3N0X2lkJVwiPjxcL2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJyZXBseV9tZWRpYV9wcmV2aWV3JXBvc3RfaWQlXCIgY2xhc3M9XCJyZXBseV9tZWRpYV9wcmV2aWV3IGNsZWFyX2ZpeCBtZWRpYV9wcmV2aWV3XCI+PFwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFkZHBvc3RfYnV0dG9uX3dyYXBcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZsYXRfYnV0dG9uIGFkZHBvc3RfYnV0dG9uXCIgaWQ9XCJyZXBseV9idXR0b24lcG9zdF9pZCVcIiBvbmNsaWNrPVwid2FsbC5zZW5kUmVwbHkoJyVwb3N0X2lkJScsIGV2ZW50LCB7fSk7XCIgb25tb3VzZW92ZXI9XCJ3YWxsLnJlcGx5U3VibWl0VG9vbHRpcCgnJXBvc3RfaWQlJywgMSwgdGhpcyk7XCIgb25tb3VzZW91dD1cIndhbGwucmVwbHlTdWJtaXRUb29sdGlwKCclcG9zdF9pZCUnLCAwLCB0aGlzKTtcIj5Qb3N0PFwvYnV0dG9uPlxuICAgICAgPFwvZGl2PlxuICAgICAgJWFkZF9idXR0b25zJVxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VfYWRkX21lZGlhXCIgaWQ9XCJyZXBseV9hZGRfbWVkaWFfJXBvc3RfaWQlXCI+PFwvZGl2PlxuICAgICAgPGRpdiBpZD1cInJlcGx5X3RvX3RpdGxlJXBvc3RfaWQlXCIgY2xhc3M9XCJyZXBseV90b190aXRsZSBhZGRwb3N0X3BvcHRcIj48XC9kaXY+XG4gICAgPFwvZGl2PlxuICA8XC9kaXY+XG48XC9kaXY+IiwicmVwbHlfZm9ybV9vZmZpY2lhbCI6IjxkaXYgY2xhc3M9XCJhZGRwb3N0X29wdCBjaGVja2JveF9vZmZpY2lhbFwiIGlkPVwicmVwbHlfYXNfZ3JvdXAlcG9zdF9pZCVcIiBvbmNsaWNrPVwid2FsbC5yZXBseUFzR3JvdXAodGhpcyk7XCIgb25tb3VzZW92ZXI9XCJ3YWxsLnJlcGx5QXNHcm91cE92ZXIodGhpcywgJ29uIGJlaGFsZiBvZiB0aGUgdXNlcicsICdwb3N0IGFzIGNvbW11bml0eScpO1wiIG9uZm9jdXM9XCJ3YWxsLnJlcGx5QXNHcm91cE92ZXIodGhpcywgJ29uIGJlaGFsZiBvZiB0aGUgdXNlcicsICdwb3N0IGFzIGNvbW11bml0eScpO1wiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwib24gYmVoYWxmIG9mIHRoZSB1c2VyXCI+XG4gIDxpbWcgY2xhc3M9XCJ0aHVtYl9vZmZcIiBzcmM9XCJcL2ltYWdlc1wvY2FtZXJhXzUwLnBuZ1wiIFwvPlxuICA8aW1nIGNsYXNzPVwidGh1bWJfb25cIiBzcmM9XCIlb3duZXJfcGhvdG8lXCIgXC8+XG48XC9kaXY+IiwicmVwbHlfZm9ybV9ncm91cF9pbWFnZSI6IjxkaXYgY2xhc3M9XCJwb3N0X2ZpZWxkX2dyb3VwXCI+XG4gIDxhIGNsYXNzPVwicG9zdF9maWVsZF91c2VyX2xpbmtcIiBocmVmPVwiJW93bmVyX2hyZWYlXCIgb25jbGljaz1cInJldHVybiBuYXYuZ28odGhpcywgZXZlbnQpXCI+XG4gICAgPGltZyBjbGFzcz1cInBvc3RfZmllbGRfdXNlcl9pbWFnZVwiIHNyYz1cIiVvd25lcl9waG90byVcIiBcLz5cbiAgPFwvYT5cbjxcL2Rpdj4iLCJyZXBseV9tdWx0aWxpbmUiOmZhbHNlLCJyZXBseV9tdWx0aWxpbmVfaW50cm8iOnRydWUsInJlcGx5X2xpbmtfd3JhcCI6IjxkaXYgY2xhc3M9XCJyZXBseV9saW5rX3dyYXBcIj5cbiAgPGEgY2xhc3M9XCJyZXBseV9saW5rIF9yZXBseV9sbmtcIj5SZXBseTxcL2E+XG48XC9kaXY+IiwicmVwbHlfbGlua190byI6IiA8YSBjbGFzcz1cInJlcGx5X3RvXCI+cmVwbGllZCB0byAldG9fdXNlciU8XC9hPiIsInJlcGx5X2Zhc3QiOiI8ZGl2IGlkPVwicG9zdCVyZXBseV9pZCVcIiBjbGFzcz1cInJlcGx5IHJlcGx5X2RpdmVkIGNsZWFyICBfcG9zdFwiIGRhdGEtcG9zdC1pZD1cIiVyZXBseV9pZCVcIiA+XG4gIDxkaXYgY2xhc3M9XCJyZXBseV93cmFwIF9yZXBseV9jb250ZW50IF9wb3N0X2NvbnRlbnQgY2xlYXJfZml4XCI+XG4gICAgXG4gICAgPGEgY2xhc3M9XCJyZXBseV9pbWFnZVwiIGhyZWY9XCJcL2lkXCI+XG4gICAgICA8aW1nIHNyYz1cIlwvaW1hZ2VzXC9jYW1lcmFfNTAucG5nXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgY2xhc3M9XCJyZXBseV9pbWdcIiBhbHQ9XCJERUxFVEVEXCIgXC8+XG4gICAgPFwvYT5cbiAgICA8ZGl2IGNsYXNzPVwicmVwbHlfY29udGVudFwiID5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cInJlcGx5X2F1dGhvclwiPlxuICAgICAgICA8YSBjbGFzcz1cImF1dGhvclwiIGhyZWY9XCJcL2lkXCIgZGF0YS1mcm9tLWlkPVwiMFwiPkRFTEVURUQ8XC9hPiV0b19saW5rJVxuICAgICAgPFwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJlcGx5X3RleHRcIiA+PGRpdiBjbGFzcz1cIndhbGxfcmVwbHlfdGV4dFwiPiVtZXNzYWdlJTxcL2Rpdj48XC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVwbHlfZm9vdGVyIGNsZWFyX2ZpeFwiIGlkPVwid3BlX2JvdHRvbSVyZXBseV9pZCVcIj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXBseV9kYXRlXCI+JWRhdGUlPFwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVwbHlfbGlua193cmFwXCI+XG4gIDxhIGNsYXNzPVwicmVwbHlfbGluayBfcmVwbHlfbG5rXCI+UmVwbHk8XC9hPlxuPFwvZGl2PlxuICAgICAgPFwvZGl2PlxuICAgIDxcL2Rpdj5cbiAgPFwvZGl2PlxuPFwvZGl2PiIsInJlcGx5X211bHRpbGluZV9oaW50IjoiPGRpdiBjbGFzcz1cInJlcGx5X3N1Ym1pdF9oaW50X3dyYXBcIiAgb25jbGljaz1cInN0b3BFdmVudChldmVudCk7XCI+XG4gIDxkaXYgY2xhc3M9XCJyZXBseV9zdWJtaXRfaGludF90aXRsZVwiPlNob3J0Y3V0czxcL2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJlcGx5X3N1Ym1pdF9oaW50X29wdHNcIiBpZD1cInJlcGx5X3N1Ym1pdF9oaW50X29wdHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmFkaW9idG4gJWRpc2FibGVkJSBcIiBkYXRhLXZhbD1cIjBcIiBvbmNsaWNrPVwicmFkaW9idG4odGhpcywgMCwgJ3JlcGx5X3N1Ym1pdCcpOyB3YWxsLm9uUmVwbHlTdWJtaXRDaGFuZ2VkKDApO1wiPjxkaXYgY2xhc3M9XCJyYWRpb2J0bl9sYWJlbFwiPjxiPkVudGVyPFwvYj4glyBzZW5kIG1lc3NhZ2U8YnI+PGI+U2hpZnQrRW50ZXI8XC9iPiCXIG5ldyBsaW5lPFwvZGl2PjxcL2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmFkaW9idG4gJWVuYWJsZWQlIFwiIGRhdGEtdmFsPVwiMVwiIG9uY2xpY2s9XCJyYWRpb2J0bih0aGlzLCAxLCAncmVwbHlfc3VibWl0Jyk7IHdhbGwub25SZXBseVN1Ym1pdENoYW5nZWQoMSk7XCI+PGRpdiBjbGFzcz1cInJhZGlvYnRuX2xhYmVsXCI+PGI+Q3RybCtFbnRlcjxcL2I+IJcgc2VuZCBtZXNzYWdlPGJyPjxiPkVudGVyPFwvYj4glyBuZXcgbGluZTxcL2Rpdj48XC9kaXY+XG4gIDxcL2Rpdj5cbjxcL2Rpdj4iLCJyZXBseV9idXR0b24iOiI8YSBocmVmPVwiI1wiIGNsYXNzPVwicG9zdF9yZXBseSBfcmVwbHlfd3JhcFwiIG9uY2xpY2s9XCJyZXR1cm4gV2FsbC5zaG93RWRpdFJlcGx5KCclcG9zdF9pZCUnLCBldmVudClcIj5cbiAgPGkgY2xhc3M9XCJwb3N0X3JlcGx5X2ljb24gX2ljb25cIj48XC9pPlxuICA8c3BhbiBjbGFzcz1cInBvc3RfcmVwbHlfbGluayBfbGlua1wiPkNvbW1lbnQ8XC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInBvc3RfcmVwbHlfY291bnQgX2NvdW50XCI+PFwvc3Bhbj5cbjxcL2E+IiwicmVwbHlfbGluayI6IjxzcGFuIGlkPVwicmVwbHlfbGluayVwb3N0X2lkJVwiIGNsYXNzPVwicmVwbHlfbGlua193cmFwXCI+PGEgaHJlZj1cIiNcIiBjbGFzcz1cInJlcGx5X2xpbmtcIiBvbmNsaWNrPVwicmV0dXJuIFdhbGwuc2hvd0VkaXRSZXBseSgnJXBvc3RfaWQlJywgZXZlbnQpXCI+Q29tbWVudDxcL2E+PFwvc3Bhbj4iLCJvd25fcmVwbHlfbGluayI6IjxzcGFuIGNsYXNzPVwicmVwbHlfbGlua193cmFwXCI+PGEgY2xhc3M9XCJyZXBseV9saW5rXCIgb25jbGljaz1cIldhbGwubGlrZVNoYXJlQ3VzdG9tKCclcG9zdF9pZCUnKVwiPlJlcGx5PFwvYT48XC9zcGFuPiIsImVkaXRfbGluayI6IjxzcGFuIGNsYXNzPVwiZGl2aWRlXCI+fDxcL3NwYW4+PGEgb25jbGljaz1cIndhbGwuZWRpdFBvc3QodGhpcywgJyVwb3N0X2lkJScpXCI+RWRpdCA8XC9hPiIsInBvc3QiOiI8ZGl2IGlkPVwicG9zdCVwb3N0X2lkJVwiIGNsYXNzPVwiX3Bvc3QgcG9zdCBwYWdlX2Jsb2NrXCIgZGF0YS1wb3N0LWlkPVwiJXBvc3RfaWQlXCIgb25jbGljaz1cIndhbGwucG9zdENsaWNrKCclcG9zdF9pZCUnLCBldmVudCk7XCIgPlxuICA8ZGl2IGNsYXNzPVwiX3Bvc3RfY29udGVudFwiPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJwb3N0X2hlYWRlclwiPlxuICAgICAgPGEgY2xhc3M9XCJwb3N0X2ltYWdlJW9ubGluZV9jbGFzcyVcIiBocmVmPVwiJWxpbmslXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiJXBob3RvJVwiIGRhdGEtcG9zdC1pZD1cIiVwb3N0X2lkJVwiIGRhdGEtcG9zdC1jbGljay10eXBlPVwicG9zdF9vd25lcl9pbWdcIiB3aWR0aD1cIjUwXCIgaGVpZ2h0PVwiNTBcIiBjbGFzcz1cInBvc3RfaW1nXCIgXC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmxpbmRfbGFiZWxcIj4uPFwvc3Bhbj5cbiAgICAgIDxcL2E+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9zdF9oZWFkZXJfaW5mb1wiPlxuICAgICAgICA8aDUgY2xhc3M9XCJwb3N0X2F1dGhvclwiPiVuYW1lJTxcL2g1PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zdF9kYXRlXCI+PGEgY2xhc3M9XCJwb3N0X2xpbmtcIiBocmVmPVwiXC93YWxsJXBvc3RfaWQlXCIgb25jbGljaz1cInJldHVybiBzaG93V2lraSh7dzogJ3dhbGwlcG9zdF9pZCUnfSwgZmFsc2UsIGV2ZW50KTtcIj4lZGF0ZSU8XC9hPjxcL2Rpdj5cbiAgICAgICAgJWFjdGlvbnMlXG4gICAgICA8XC9kaXY+XG4gICAgPFwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwb3N0X2NvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3N0X2luZm9cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndhbGxfdGV4dFwiPiV0ZXh0JTxcL2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc3RfZnVsbF9saWtlX3dyYXAgY2xlYXJfZml4XCI+XG4gIDxkaXYgY2xhc3M9XCJwb3N0X2Z1bGxfbGlrZVwiPlxuICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJwb3N0X2xpa2UgX2xpa2Vfd3JhcCBub19saWtlc1wiIG9ubW91c2VvdmVyPVwiV2FsbC5saWtlc1Nob3codGhpcywgJyVwb3N0X2lkJScpXCIgb25jbGljaz1cInJldHVybiBXYWxsLmxpa2VJdCh0aGlzLCAnJXBvc3RfaWQlJywgJzE0OTA2NDg0ODdfNzdiNWI1NTg4NjZmZjM0OTJiJywgZXZlbnQpO1wiPlxuICAgICAgPGkgY2xhc3M9XCJwb3N0X2xpa2VfaWNvbiBfaWNvblwiPjxcL2k+XG4gICAgICA8c3BhbiBjbGFzcz1cInBvc3RfbGlrZV9saW5rIF9saW5rXCI+PFwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicG9zdF9saWtlX2NvdW50IF9jb3VudFwiPjxcL3NwYW4+XG4gICAgPFwvYT5cbiAgICA8c3BhbiBjbGFzcz1cImJsaW5kX2xhYmVsXCIgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImxpbmtcIiBvbmNsaWNrPVwiV2FsbC5saWtlc1Nob3dMaXN0KHRoaXMsICclcG9zdF9pZCUnKVwiPlNob3cgbGlrZXM8XC9zcGFuPlxuICAgICVyZXBseV9idXR0b24lXG4gICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInBvc3Rfc2hhcmUgX3NoYXJlX3dyYXAgbm9fc2hhcmVzXCIgIG9ubW91c2VvdmVyPVwiV2FsbC5zaGFyZXNTaG93KHRoaXMsICclcG9zdF9pZCUnKVwiIG9uY2xpY2s9XCJyZXR1cm4gV2FsbC5zaGFyZXNPcGVuKGV2ZW50LCAnJXBvc3RfaWQlJyk7XCI+XG4gICAgICA8aSBjbGFzcz1cInBvc3Rfc2hhcmVfaWNvbiBfaWNvblwiPjxcL2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImJsaW5kX2xhYmVsXCI+PFwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicG9zdF9zaGFyZV9saW5rIF9saW5rXCI+PFwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicG9zdF9zaGFyZV9jb3VudCBfY291bnRcIj48XC9zcGFuPlxuICAgIDxcL2E+XG4gICAgPHNwYW4gY2xhc3M9XCJibGluZF9sYWJlbFwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCIgb25jbGljaz1cIldhbGwuc2hhcmVzU2hvd0xpc3QodGhpcywgJyVwb3N0X2lkJScpXCI+U2hvdyBzaGFyZWQgY29waWVzPFwvc3Bhbj5cbiAgICBcbiAgPFwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicG9zdF92aWV3cyBfdmlld3Nfd3JhcCBub192aWV3cyBfYXV0b191cGRhdGVcIiBvbm1vdXNlb3Zlcj1cIldhbGwudmlld3NVcGRhdGUodGhpcywgJyVwb3N0X2lkJScpXCI+XG4gIDxpIGNsYXNzPVwicG9zdF92aWV3c19pY29uIF9pY29uXCI+PFwvaT5cbiAgPHNwYW4gY2xhc3M9XCJwb3N0X3ZpZXdzX2NvdW50IF9jb3VudFwiPjxcL3NwYW4+XG48XC9kaXY+XG48XC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXBsaWVzXCI+PGRpdiBjbGFzcz1cInJlcGxpZXNfd3JhcFwiIGlkPVwicmVwbGllc193cmFwJXBvc3RfaWQlXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPlxuICA8ZGl2IGNsYXNzPVwicmVwbGllc19saXN0IF9yZXBsaWVzX2xpc3RcIiBpZD1cInJlcGxpZXMlcG9zdF9pZCVcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIGlkPVwic3RhcnRfcmVwbHklcG9zdF9pZCVcIiB2YWx1ZT1cIlwiXC8+PFwvZGl2PlxuICAlcmVwbHlfYm94JVxuPFwvZGl2PjxcL2Rpdj5cbiAgICAgIDxcL2Rpdj5cbiAgICA8XC9kaXY+XG4gICAgXG4gIDxcL2Rpdj5cbiAgXG48XC9kaXY+IiwicmVwbHkiOiI8ZGl2IGlkPVwicG9zdCVyZXBseV9pZCVcIiBjbGFzcz1cInJlcGx5IHJlcGx5X2RpdmVkIGNsZWFyICVjbGFzc25hbWUlIF9wb3N0XCIgZGF0YS1wb3N0LWlkPVwiJXJlcGx5X2lkJVwiICVhdHRyJT5cbiAgPGRpdiBjbGFzcz1cInJlcGx5X3dyYXAgX3JlcGx5X2NvbnRlbnQgX3Bvc3RfY29udGVudCBjbGVhcl9maXhcIj5cbiAgICBcbiAgICA8YSBjbGFzcz1cInJlcGx5X2ltYWdlXCIgaHJlZj1cIiVsaW5rJVwiPlxuICAgICAgPGltZyBzcmM9XCIlcGhvdG8lXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgY2xhc3M9XCJyZXBseV9pbWdcIiBhbHQ9XCIlbmFtZSVcIiBcLz5cbiAgICA8XC9hPlxuICAgIDxkaXYgY2xhc3M9XCJyZXBseV9jb250ZW50XCIgPlxuICAgICAgJWFjdGlvbnMlXG4gICAgICA8ZGl2IGNsYXNzPVwicmVwbHlfYXV0aG9yXCI+XG4gICAgICAgIDxhIGNsYXNzPVwiYXV0aG9yXCIgaHJlZj1cIiVsaW5rJVwiIGRhdGEtZnJvbS1pZD1cIiVyZXBseV91aWQlXCI+JW5hbWUlPFwvYT4ldG9fbGluayVcbiAgICAgIDxcL2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXBseV90ZXh0XCIgPiV0ZXh0JTxcL2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXBseV9mb290ZXIgY2xlYXJfZml4XCIgaWQ9XCJ3cGVfYm90dG9tJXJlcGx5X2lkJVwiPlxuICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwibGlrZV93cmFwIF9saWtlX3dyYXAgbm9fbGlrZXNcIiBvbmNsaWNrPVwicmV0dXJuIFdhbGwubGlrZUl0KHRoaXMsICclbGlrZV9pZCUnLCAnMTQ5MDY0ODQ4N183N2I1YjU1ODg2NmZmMzQ5MmInLCBldmVudCk7XCIgb25tb3VzZW92ZXI9XCJXYWxsLmxpa2VzU2hvdyh0aGlzLCAnJWxpa2VfaWQlJylcIj5cbiAgPHNwYW4gY2xhc3M9XCJibGluZF9sYWJlbFwiPkxpa2U8XC9zcGFuPlxuICA8aSBjbGFzcz1cImxpa2VfaWNvbiBfaWNvblwiPjxcL2k+XG4gIDxzcGFuIGNsYXNzPVwibGlrZV9jb3VudCBfY291bnRcIj48XC9zcGFuPlxuPFwvYT5cbjxzcGFuIGNsYXNzPVwiYmxpbmRfbGFiZWxcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwibGlua1wiIG9uY2xpY2s9XCJXYWxsLmxpa2VzU2hvd0xpc3QodGhpcywgJyVsaWtlX2lkJScpXCI+U2hvdyBsaWtlczxcL3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXBseV9kYXRlXCI+PGEgY2xhc3M9XCJ3ZF9sbmtcIiBocmVmPVwiXC93YWxsJXBvc3RfaWQlP3JlcGx5PSVyZXBseV9tc2dfaWQlXCIgb25jbGljaz1cInJldHVybiBuYXYuZ28odGhpcywgZXZlbnQpXCI+JWRhdGUlPFwvYT48XC9kaXY+XG4gICAgICAgICVhbnN3ZXJfbGluayVcbiAgICAgIDxcL2Rpdj5cbiAgICA8XC9kaXY+XG4gIDxcL2Rpdj5cbjxcL2Rpdj4iLCJkZWwiOiI8YSBjbGFzcz1cInVpX2FjdGlvbnNfbWVudV9pdGVtXCIgb25jbGljaz1cIndhbGwuZGVsZXRlUG9zdCh0aGlzLCAnJXBvc3RfaWQlJywgJzE0OTA2NDg0ODdfNDNjNmNiOGZjODk3ODEyOGYwJyk7IHJldHVybiBmYWxzZTtcIj5EZWxldGUgcG9zdDxcL2E+Iiwic3BhbSI6IjxhIGNsYXNzPVwidWlfYWN0aW9uc19tZW51X2l0ZW1cIiBvbmNsaWNrPVwid2FsbC5tYXJrQXNTcGFtKHRoaXMsICclcG9zdF9pZCUnLCAnMTQ5MDY0ODQ4N181MWFmZTYxNThlOWRlMDZjNWYnKTsgcmV0dXJuIGZhbHNlO1wiPlJlcG9ydDxcL2E+IiwiZWRpdCI6IjxhIGNsYXNzPVwidWlfYWN0aW9uc19tZW51X2l0ZW1cIiBvbmNsaWNrPVwid2FsbC5lZGl0UG9zdCh0aGlzLCAnJXBvc3RfaWQlJyk7IHJldHVybiBmYWxzZTtcIj5FZGl0IDxcL2E+IiwicG9zdF9hY3Rpb25zIjoiPGRpdiBjbGFzcz1cInVpX2FjdGlvbnNfbWVudV93cmFwIF91aV9tZW51X3dyYXAgXCIgb25tb3VzZW92ZXI9XCJ1aUFjdGlvbnNNZW51LnNob3codGhpcyk7XCIgb25tb3VzZW91dCA9XCJ1aUFjdGlvbnNNZW51LmhpZGUodGhpcyk7XCI+XG4gIDxkaXYgY2xhc3M9XCJ1aV9hY3Rpb25zX21lbnVfaWNvbnNcIiAgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIkFjdGlvbnNcIiByb2xlPVwiYnV0dG9uXCIgb25jbGljaz1cInVpQWN0aW9uc01lbnUua2V5VG9nZ2xlKHRoaXMsIGV2ZW50KTtcIj48c3BhbiBjbGFzcz1cImJsaW5kX2xhYmVsXCI+QWN0aW9uczxcL3NwYW4+PFwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidWlfYWN0aW9uc19tZW51IF91aV9tZW51XCIgPiVhY3Rpb25zJTxcL2Rpdj5cbjxcL2Rpdj4iLCJkZWxfcmVwbHkiOiI8ZGl2IGlkPVwicmVwbHlfZGVsZXRlJXJlcGx5X2lkJVwiIGNsYXNzPVwicmVwbHlfZGVsZXRlX2J1dHRvbiByZXBseV9hY3Rpb24gZmxfclwiIGRhdGEtdGl0bGU9XCJEZWxldGVcIiBvbmNsaWNrPVwid2FsbC5kZWxldGVQb3N0KHRoaXMsICclcmVwbHlfaWQlJywgJzE0OTA2NDg0ODdfNDNjNmNiOGZjODk3ODEyOGYwJyk7XCIgb25tb3VzZW92ZXI9XCJzaG93VGl0bGUodGhpcyk7XCIgYXJpYS1sYWJlbD1cIkRlbGV0ZVwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCI+PFwvZGl2PiIsInNwYW1fcmVwbHkiOiI8ZGl2IGlkPVwicmVwbHlfZGVsZXRlJXJlcGx5X2lkJVwiIGNsYXNzPVwicmVwbHlfZGVsZXRlX2J1dHRvbiByZXBseV9hY3Rpb24gZmxfclwiIGRhdGEtdGl0bGU9XCJSZXBvcnRcIiBvbmNsaWNrPVwid2FsbC5tYXJrQXNTcGFtKHRoaXMsICclcmVwbHlfaWQlJywgJzE0OTA2NDg0ODdfNTFhZmU2MTU4ZTlkZTA2YzVmJyk7XCIgb25tb3VzZW92ZXI9XCJzaG93VGl0bGUodGhpcyk7XCIgYXJpYS1sYWJlbD1cIlJlcG9ydFwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCI+PFwvZGl2PiIsImVkaXRfcmVwbHkiOiI8ZGl2IGlkPVwicmVwbHlfZWRpdCVyZXBseV9pZCVcIiBjbGFzcz1cInJlcGx5X2VkaXRfYnV0dG9uIHJlcGx5X2FjdGlvbiBmbF9yXCIgZGF0YS10aXRsZT1cIkVkaXQgXCIgb25jbGljaz1cIndhbGwuZWRpdFBvc3QodGhpcywgJyVyZXBseV9pZCUnKTtcIiBvbm1vdXNlb3Zlcj1cInNob3dUaXRsZSh0aGlzKTtcIiBhcmlhLWxhYmVsPVwiRWRpdCBcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwibGlua1wiPjxcL2Rpdj4iLCJyZXBseV9hY3Rpb25zIjoiPGRpdiBjbGFzcz1cImZsX3IgcG9zdF9hY3Rpb25zX3dyYXBcIj48ZGl2IGNsYXNzPVwicG9zdF9hY3Rpb25zXCI+JWFjdGlvbnMlPFwvZGl2PjxcL2Rpdj4iLCJwb2xsX3N0YXRzIjoiPGRpdiBjbGFzcz1cInBhZ2VfcG9sbF9zdGF0XCIlaGFuZGxlcnMlPlxuICA8ZGl2IGNsYXNzPVwicGFnZV9wb2xsX3RleHRcIj4lb3B0aW9uX3RleHQlPFwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGFnZV9wb2xsX3Jvd193cmFwXCI+XG4gICAgPGRpdiBjbGFzcz1cInBhZ2VfcG9sbF9yb3dfcGVyY2VudFwiPiVwZXJjZW50JSU8XC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBhZ2VfcG9sbF9yb3clcm93X2NsYXNzJVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VfcG9sbF9wZXJjZW50XCIgc3R5bGU9XCJ3aWR0aDogJWNzc19wZXJjZW50JSVcIj48XC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnZV9wb2xsX3Jvd19jb3VudFwiPiVjb3VudCU8XC9kaXY+XG4gICAgPFwvZGl2PlxuICA8XC9kaXY+XG48XC9kaXY+IiwicG9sbF9oYXNoIjoiMTQ5MDY0ODQ4N181YmJlYzI5OGVkOTQ3MzM4ZmIiLCJkYXRlX2Zvcm1hdCI6InRvZGF5IGF0IHtob3VyfTp7bWludXRlfSB7YW1fcG19IiwidGltZV9zeXN0ZW0iOlsicG0iLCJhbSJdLCJhYnNfdGltZXN0YW1wIjoxNDkwNjQ4NDg3LCJsYW5nIjp7IndhbGxfTV9yZXBsaWVzX29mX04iOlsiIiwiJXMgY29tbWVudCBvZiB7bGlua317YWxsfXtcL2xpbmt9IiwiJXMgY29tbWVudHMgb2Yge2xpbmt9e2FsbH17XC9saW5rfSJdLCJ3YWxsX2hpZGVfcmVwbGllcyI6IkhpZGUgY29tbWVudHMiLCJ3YWxsX3Nob3dfbl9vZl9tX2xhc3QiOlsiIiwiU2hvdyBsYXRlc3QgJXMgY29tbWVudCBvdXQgb2Yge2NvdW50fSIsIlNob3cgbGF0ZXN0ICVzIGNvbW1lbnRzIG91dCBvZiB7Y291bnR9Il0sIndhbGxfc2hvd19hbGxfbl9yZXBsaWVzIjpbIiIsIlNob3cgJXMgY29tbWVudCIsIlNob3cgYWxsICVzIGNvbW1lbnRzIl0sIndhbGxfTl9yZXBsaWVzIjpbIiIsIiVzIGNvbW1lbnQiLCIlcyBjb21tZW50cyJdLCJ3YWxsX3RocmVlX2xhc3RfcmVwbGllcyI6Imxhc3QgdGhyZWUgcG9zdHMiLCJ3YWxsX2FsbF9yZXBsaWVzIjoiYWxsIGNvbW1lbnRzIiwid2FsbF94X25ld19yZXBsaWVzX21vcmUiOlsiIiwiJXMgbmV3IGNvbW1lbnQgYWRkZWQiLCIlcyBuZXcgY29tbWVudHMgYWRkZWQiXSwid2FsbF9YX3Blb3BsZV92b3RlZCI6WyIiLCI8Yj4lczxcL2I+IHBlcnNvbiB2b3RlZC4iLCI8Yj4lczxcL2I+IHBlb3BsZSB2b3RlZC4iXSwid2FsbF9yZXBseV9zdWJtaXRfaGludF8xIjoiU2hpZnQrRW50ZXIglyBuZXcgbGluZSIsIndhbGxfcmVwbHlfc3VibWl0X2hpbnRfMiI6IkN0cmwrRW50ZXIgliBzZW5kIG1lc3NhZ2UiLCJ3YWxsX3JlcGx5X3N1Ym1pdF9oaW50XzFfbW9yZSI6IkVudGVyIJcgc2VuZCBtZXNzYWdlLCBTaGlmdCtFbnRlciCXIG5ldyBsaW5lIiwid2FsbF9yZXBseV9zdWJtaXRfaGludF8yX21vcmUiOiJFbnRlciCXIG5ldyBsaW5lLCBDdHJsK0VudGVyIJcgc2VuZCBtZXNzYWdlIiwid2FsbF9yZXBseV9wb3N0IjoiUmVwbHkiLCJ3YWxsX3JlcGxpZWRfdG9fZ3JvdXAiOiJ0aGUgYWRtaW4iLCJ3YWxsX3JlcGx5X2FzX3VzZXIiOiJvbiBiZWhhbGYgb2YgdGhlIHVzZXIiLCJ3YWxsX3JlcGx5X2FzX2dyb3VwIjoicG9zdCBhcyBjb21tdW5pdHkiLCJ3YWxsX2FkZF9waG90b19lcnJvciI6IlVuYWJsZSB0byB1cGxvYWQgdGhlIGltYWdlIiwid2FsbF9qdXN0X25vdyI6WyIiLCJPbmUgc2Vjb25kIGFnbyIsIlR3byBzZWNvbmRzIGFnbyIsIlRocmVlIHNlY29uZHMgYWdvIiwiRm91ciBzZWNvbmRzIGFnbyIsIkZpdmUgc2Vjb25kcyBhZ28iXSwid2FsbF9YX3NlY29uZHNfYWdvX3dvcmRzIjpbIiIsIk9uZSBzZWNvbmQgYWdvIiwiVHdvIHNlY29uZHMgYWdvIiwiVGhyZWUgc2Vjb25kcyBhZ28iLCJGb3VyIHNlY29uZHMgYWdvIiwiRml2ZSBzZWNvbmRzIGFnbyJdLCJ3YWxsX1hfc2Vjb25kc19hZ28iOlsiIiwiJXMgc2Vjb25kIGFnbyIsIiVzIHNlY29uZHMgYWdvIl0sIndhbGxfWF9taW51dGVzX2Fnb193b3JkcyI6WyIiLCJvbmUgbWludXRlIGFnbyIsInR3byBtaW51dGVzIGFnbyIsInRocmVlIG1pbnV0ZXMgYWdvIiwiNCBtaW51dGVzIGFnbyIsIjUgbWludXRlcyBhZ28iXSwid2FsbF9YX21pbnV0ZXNfYWdvIjpbIiIsIiVzIG1pbnV0ZSBhZ28iLCIlcyBtaW51dGVzIGFnbyJdLCJ3YWxsX1hfaG91cnNfYWdvX3dvcmRzIjpbIiIsIm9uZSBob3VyIGFnbyIsInR3byBob3VycyBhZ28iLCJ0aHJlZSBob3VycyBhZ28iLCJmb3VyIGhvdXJzIGFnbyIsImZpdmUgaG91cnMgYWdvIl0sIndhbGxfWF9ob3Vyc19hZ28iOlsiIiwiJXMgaG91ciBhZ28iLCIlcyBob3VycyBhZ28iXX19LCJzaGFyZV90aW1laGFzaCI6IjE0OTA2NDg0ODdfZjk5NjM4ZDE3ZmVmNGZkYTg3IiwiY29tbWVudHNUcGwiOnsicmVwbHkiOiI8ZGl2IGlkPVwicG9zdCVyZXBseV9pZCVcIiBjbGFzcz1cInJlcGx5IHJlcGx5X2RpdmVkIGNsZWFyICBfcG9zdFwiIGRhdGEtcG9zdC1pZD1cIiVyZXBseV9pZCVcIiAgb25jbGljaz1cIlZpZGVvdmlldy5jb21tZW50Q2xpY2sodGhpcywgZXZlbnQsICVmcm9tX2lkJSwgJXJlcGx5X21zZ19pZCUpXCI+XG4gIDxkaXYgY2xhc3M9XCJyZXBseV93cmFwIF9yZXBseV9jb250ZW50IF9wb3N0X2NvbnRlbnQgY2xlYXJfZml4XCI+XG4gICAgXG4gICAgPGEgY2xhc3M9XCJyZXBseV9pbWFnZVwiIGhyZWY9XCIlaHJlZiVcIj5cbiAgICAgIDxpbWcgc3JjPVwiJXBob3RvJVwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGNsYXNzPVwicmVwbHlfaW1nXCIgYWx0PVwiJW5hbWUlXCIgXC8+XG4gICAgPFwvYT5cbiAgICA8ZGl2IGNsYXNzPVwicmVwbHlfY29udGVudFwiID5cbiAgICAgICVhY3Rpb25zJVxuICAgICAgPGRpdiBjbGFzcz1cInJlcGx5X2F1dGhvclwiPlxuICAgICAgICA8YSBjbGFzcz1cImF1dGhvclwiIGhyZWY9XCIlaHJlZiVcIiBkYXRhLWZyb20taWQ9XCIlZnJvbV9pZCVcIj4lbmFtZSU8XC9hPiV0b19saW5rJVxuICAgICAgPFwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJlcGx5X3RleHRcIiA+JW1lc3NhZ2UlPFwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJlcGx5X2Zvb3RlciBjbGVhcl9maXhcIiBpZD1cIndwZV9ib3R0b20lcmVwbHlfaWQlXCI+XG4gICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJsaWtlX3dyYXAgX2xpa2Vfd3JhcCBub19saWtlc1wiIG9uY2xpY2s9XCJyZXR1cm4gV2FsbC5saWtlSXQodGhpcywgJyVwb3N0X29pZCV2aWRlb19jb21tZW50JXJlcGx5X21zZ19pZCVtdicsICcxNDkwNjQ4NDg3Xzc3YjViNTU4ODY2ZmYzNDkyYicsIGV2ZW50KTtcIiBvbm1vdXNlb3Zlcj1cIldhbGwubGlrZXNTaG93KHRoaXMsICclcG9zdF9vaWQldmlkZW9fY29tbWVudCVyZXBseV9tc2dfaWQlbXYnKVwiPlxuICA8c3BhbiBjbGFzcz1cImJsaW5kX2xhYmVsXCI+TGlrZTxcL3NwYW4+XG4gIDxpIGNsYXNzPVwibGlrZV9pY29uIF9pY29uXCI+PFwvaT5cbiAgPHNwYW4gY2xhc3M9XCJsaWtlX2NvdW50IF9jb3VudFwiPjxcL3NwYW4+XG48XC9hPlxuPHNwYW4gY2xhc3M9XCJibGluZF9sYWJlbFwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCIgb25jbGljaz1cIldhbGwubGlrZXNTaG93TGlzdCh0aGlzLCAnJXBvc3Rfb2lkJXZpZGVvX2NvbW1lbnQlcmVwbHlfbXNnX2lkJW12JylcIj5TaG93IGxpa2VzPFwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlcGx5X2RhdGVcIj4lZGF0ZSU8XC9kaXY+XG4gICAgICAgIFxuICAgICAgPFwvZGl2PlxuICAgIDxcL2Rpdj5cbiAgPFwvZGl2PlxuPFwvZGl2PiIsImFjdGlvbnMiOiI8ZGl2IGNsYXNzPVwiZmxfciBwb3N0X2FjdGlvbnNfd3JhcFwiPjxkaXYgY2xhc3M9XCJwb3N0X2FjdGlvbnNcIj4lYWN0aW9ucyU8XC9kaXY+PFwvZGl2PiIsImVkaXRfcmVwbHkiOiI8ZGl2IGlkPVwicmVwbHlfZWRpdCVyZXBseV9pZCVcIiBjbGFzcz1cInJlcGx5X2VkaXRfYnV0dG9uIHJlcGx5X2FjdGlvbiBmbF9yXCIgZGF0YS10aXRsZT1cIkVkaXRcIiBvbmNsaWNrPVwiV2FsbC5lZGl0UG9zdCh0aGlzLCAnJXJlcGx5X2lkJScpXCIgb25tb3VzZW92ZXI9XCJzaG93VGl0bGUodGhpcyk7XCIgYXJpYS1sYWJlbD1cIkVkaXRcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwibGlua1wiPjxcL2Rpdj4iLCJkZWxfcmVwbHkiOiI8ZGl2IGlkPVwicmVwbHlfZGVsZXRlJXJlcGx5X2lkJVwiIGNsYXNzPVwicmVwbHlfZGVsZXRlX2J1dHRvbiByZXBseV9hY3Rpb24gZmxfclwiIGRhdGEtdGl0bGU9XCJEZWxldGVcIiBvbmNsaWNrPVwiVmlkZW92aWV3LmNvbW1BY3Rpb24oJ2RlbGV0ZScsICVwb3N0X29pZCUsICVyZXBseV9tc2dfaWQlLCAnMTQ5MDY0ODQ4N182YTM2Y2NhM2IxMGVhMWI5ZGQnLCAnbXYnKVwiIG9ubW91c2VvdmVyPVwic2hvd1RpdGxlKHRoaXMpO1wiIGFyaWEtbGFiZWw9XCJEZWxldGVcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwibGlua1wiPjxcL2Rpdj4iLCJzcGFtX3JlcGx5IjoiPGRpdiBpZD1cInJlcGx5X2RlbGV0ZSVyZXBseV9pZCVcIiBjbGFzcz1cInJlcGx5X2RlbGV0ZV9idXR0b24gcmVwbHlfYWN0aW9uIGZsX3JcIiBkYXRhLXRpdGxlPVwiUmVwb3J0XCIgb25jbGljaz1cIlZpZGVvdmlldy5jb21tQWN0aW9uKCdzcGFtJywgJXBvc3Rfb2lkJSwgJXJlcGx5X21zZ19pZCUsICcxNDkwNjQ4NDg3XzZhMzZjY2EzYjEwZWExYjlkZCcsICdtdicpXCIgb25tb3VzZW92ZXI9XCJzaG93VGl0bGUodGhpcyk7XCIgYXJpYS1sYWJlbD1cIlJlcG9ydFwiIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJsaW5rXCI+PFwvZGl2PiJ9LCJwb3N0IjoiNDM2NDA4MjJfdmlkZW8xNjg3OTA4MDltdiIsIm1heFJlcGx5TGVuZ3RoIjoxNjM4NCwibWF4Q2hhdFJlcGx5TGVuZ3RoIjo2MDAsIm1heERlc2NyaXB0aW9uTGVuZ3RoIjoxMDI0LCJwdWJsaXNoQWN0aW9uIjoiIiwicGxfbGlzdCI6MCwiaXNfdmtfcGxheWVyIjoxLCJpc19mbHYiOmZhbHNlLCJjYW50UGxheSI6MCwicGxheWVyIjp7InR5cGUiOiJ2ayIsInBhcmFtcyI6W3sibGFuZ19hZGQiOiJBZGQgdG8gTXkgVmlkZW9zIiwibGFuZ19hZGRlZCI6IlZpZGVvIGFkZGVkIHRvIE15IFZpZGVvcyIsImxhbmdfc2hhcmUiOiJTaGFyZSIsImxhbmdfbGlrZSI6Ikxpa2UiLCJsYW5nX2RvbmF0ZSI6IkRvbmF0ZSIsImxhbmdfc3Vic2NyaWJlIjoiU3Vic2NyaWJlIiwibGFuZ19zdWJzY3JpYmVkIjoiRm9sbG93aW5nIiwibGFuZ192b2x1bWVfb24iOiJVbm11dGUiLCJsYW5nX3ZvbHVtZV9vZmYiOiJNdXRlIiwibGFuZ192b2x1bWUiOiJWb2x1bWUiLCJsYW5nX2hkc2QiOiJDaGFuZ2UgVmlkZW8gUXVhbGl0eSIsImxhbmdfcXVhbGl0eV9hdXRvIjoiQXV0byIsImxhbmdfb3Blbl9wb3B1cCI6IkV4cGFuZCIsImxhbmdfZnVsbHNjcmVlbiI6IkZ1bGwgU2NyZWVuIiwibGFuZ193aW5kb3ciOiJNaW5pbWl6ZSIsImxhbmdfcm90YXRlIjoiUm90YXRlIiwibGFuZ19hZHNfbGluayI6IkFkdmVydGlzZXImIzM5O3MgU2l0ZSIsImxhbmdfYWRzIjoiQWRzIiwibGFuZ19hZHNfc2tpcCI6IlNraXAgYWQiLCJsYW5nX2Fkc19za2lwX3RpbWUiOiJTa2lwIGFkcyBpbiB7dGltZX0gcyIsImxhbmdfcmVwb3J0X3Byb2JsZW0iOiJSZXBvcnQgYSBwcm9ibGVtLi4iLCJsYW5nX3BsYXkiOiJQbGF5IiwibGFuZ19wYXVzZSI6IlBhdXNlIiwibGFuZ19yZXBsYXkiOiJSZXBsYXkiLCJsYW5nX25leHQiOiJOZXh0IHZpZGVvIiwibGFuZ19uZXh0X2NhbmNlbCI6IkNhbmNlbCIsImxhbmdfZ290b19vcmlnX3ZpZGVvIjoiR28gdG8gVmlkZW8iLCJsYW5nX2dvdG9fYWR2ZXJ0aXNlcnNfc2l0ZSI6IkdvIHRvIHRoZSB3ZWJzaXRlIiwibGFuZ19idXlfdGlja2V0cyI6bnVsbCwibGFuZ19sb2FkX2Vycm9yIjoiQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGxvYWRpbmcuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuIiwibGFuZ19lcnJfY29kZSI6IkVycm9yIGNvZGU6IHtjb2RlfSIsImxhbmdfYmFkX2Jyb3dzZXIiOiJTb3JyeSwgeW91ciBicm93c2VyIGlzbiYjMzk7dCBzdXBwb3J0ZWQgYXQgdGhlIG1vbWVudCIsImxhbmdfbGl2ZSI6IkxpdmUiLCJsYW5nX2xpdmVfc3RhcnRpbmdfc29vbiI6IlRoZSBsaXZlIHdpbGwgc3RhcnQgc29vbiIsImxhbmdfbGl2ZV9mYWlsZWQiOiJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBzdHJlYW1pbmciLCJsYW5nX2xpdmVfd2FpdF9yZWNvcmQiOiJUaGUgbGl2ZSBoYXMgZmluaXNoZWQgYW5kIHdpbGwgc29vbiBiZWNvbWUgYXZhaWxhYmxlIGluIHJlcGxheSIsImxhbmdfbGl2ZV91c2VyX3NlbnRfZ2lmdCI6WyIiLCJzZW50IGEgZ2lmdCIsInNlbnQgYSBnaWZ0Il0sImxhbmdfbGl2ZV91c2VyX3NlbnRfc3VwZXJjb21tZW50IjpbIiIsInNlbnQgYSBzdXBlciBtZXNzYWdlIiwic2VudCBhIHN1cGVyIG1lc3NhZ2UiXSwibGFuZ19saXZlX2Rvd25sb2FkX2FwcCI6IkRvd25sb2FkIGFwcCIsImxhbmdfYXV0b3BsYXlfdm9sdW1lX2hpbnQiOiLRbGljayB0byB0dXJuIG9uIHRoZSBzb3VuZCIsImxhbmdfYXV0b3BsYXlfZXhwYW5kX2hpbnQiOiJDbGljayB0byBleHBhbmQiLCJsYW5nX3RpbWVkX2J1dHRvbl9nb3RvIjoiz+Xw5eny6CIsImxhbmdfdGltZWRfYnV0dG9uX29wZW4iOiJPcGVuIiwibGFuZ190aW1lZF9idXR0b25fYnV5IjoiQnV5IiwibGFuZ190aW1lZF9idXR0b25fYnV5X3RpY2tldHMiOiJCdXkgdGlja2V0cyIsImxhbmdfdGltZWRfYnV0dG9uX2NoZWNraW4iOm51bGwsImxhbmdfdGltZWRfYnV0dG9uX2luc3RhbGwiOiLT8fLg7e7i6PL8IiwibGFuZ190aW1lZF9idXR0b25fY29udGFjdCI6ItHi/+fg8vzx/yIsImxhbmdfdGltZWRfYnV0dG9uX2ZpbGwiOiLH4O/u6+3o8vwiLCJsYW5nX3RpbWVkX2J1dHRvbl9sZWFybl9tb3JlIjoiTW9yZSIsImxhbmdfY21lbnVfY29weV92aWRlb19saW5rIjoiQ29weSB2aWRlbyBsaW5rIiwibGFuZ19jbWVudV9jb3B5X3RpbWVjb2RlX2xpbmsiOiJDb3B5IGxpbmsgd2l0aCB0aW1lY29kZSIsImxhbmdfY21lbnVfY29weV9lbWJlZF9jb2RlIjoiQ29weSBlbWJlZCBjb2RlIiwibGFuZ19jbWVudV9lbmFibGVfbG9vcCI6IkVuYWJsZSBsb29wIiwibGFuZ19jbWVudV9kaXNhYmxlX2xvb3AiOiJEaXNhYmxlIGxvb3AiLCJsYW5nX2NtZW51X3BsYXliYWNrX3NwZWVkIjoiUGxheWJhY2sgc3BlZWQiLCJsYW5nX2NtZW51X3JlcG9ydF9lcnJvciI6IlJlcG9ydCBhIHByb2JsZW0uLiIsImxhbmdfY21lbnVfY29weV9kZWJ1ZyI6IkNvcHkgZGVidWcgaW5mbyIsImxhbmdfYXJpYV92aWRlb3BsYXllciI6IlZLIFZpZGVvIFBsYXllciIsImxhbmdfYXJpYV92b2x1bWVfc2xpZGVyIjoiVm9sdW1lIHNsaWRlciIsImxhbmdfYXJpYV92b2x1bWVfbXV0ZWQiOiJWb2x1bWUgaXMgbXV0ZWQiLCJsYW5nX2FyaWFfdGltZWxpbmVfc2xpZGVyIjoiVGltZSBzbGlkZXIiLCJsYW5nX2FyaWFfdGltZWxpbmVfdmFsdWUiOiJ7dGltZX0gKHRvdGFsIGR1cmF0aW9uIHtkdXJhdGlvbn0pIiwibGFuZ19hcmlhX2VudGVyX2Z1bGxzY3JlZW4iOiJFbnRlciBmdWxsIHNjcmVlbiBtb2RlIiwibGFuZ19hcmlhX2V4aXRfZnVsbHNjcmVlbiI6IkV4aXQgZnVsbCBzY3JlZW4gbW9kZSIsImxhbmdfYXJpYV9xdWFsaXR5X2N1cnJlbnQiOiJDdXJyZW50IHF1YWxpdHkgaXMge3F1YWxpdHl9IiwidmlkZW9fcGxheV9oZCI6IldhdGNoIGluIEhEIiwidmlkZW9fc3RvcF9sb2FkaW5nIjoiU3RvcCBEb3dubG9hZCIsInZpZGVvX3BsYXllcl92ZXJzaW9uIjoiVksgVmlkZW8gUGxheWVyIiwidmlkZW9fZ2V0X3ZpZGVvX2NvZGUiOiJDb3B5IGVtYmVkIGNvZGUiLCJ2aWRlb19nZXRfY3VycmVudF91cmwiOiJDb3B5IGxpbmsgd2l0aCB0aW1lY29kZSIsInZpZGVvX2xvYWRfZXJyb3IiOiJBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgbG9hZGluZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4iLCJnb3RvX29yaWdfdmlkZW8iOiJHbyB0byBWaWRlbyIsInZpZCI6MTY4NzkwODA5LCJvaWQiOjQzNjQwODIyLCJtZF90aXRsZSI6IlVEQyBvcGVuIGN1cCAyMDE0XC8gMyBwbGFjZSBcLyBTYWxleSBEYXJpYSAoc29sbykiLCJtZF9hdXRob3IiOiJEYXNoYSBTYWxleSIsImF1dGhvcl9pZCI6NDM2NDA4MjIsImF1dGhvcl9ocmVmIjoiXC9kYXJpYXNhbGV5IiwiYXV0aG9yX3Bob3RvIjoiaHR0cHM6XC9cL3BwLnVzZXJhcGkuY29tXC9jODM3NDIyXC92ODM3NDIyODIyXC85M2M4XC8wMG9xZC0zQlM5VS5qcGciLCJoYXNoIjoiOGZkZTU2NmE0YzJmZTIyZTg1NjY3M2IxNzlmY2E3YmQiLCJoYXNoMiI6Ijg2YWEwZDc4YmJhMGZjMTciLCJpc19leHQiOjAsImR1cmF0aW9uIjo4NCwidCI6IiIsInZpZ29fY2lkIjoiY2ZjZDIwODQ5NWQ1NjVlZjY2ZTdkZmY5Zjk4NzY0ZGEiLCJ2aWV3ZXJfaWQiOjAsInBvc3RfaWQiOm51bGwsIm1vZHVsZSI6InByb2ZpbGUiLCJnIjowLCJhIjowLCJjaXMiOjAsInJlY29tbWVuZF9zaWciOiJiZmI1OGJjYmI4MDZkMDBhNWRmOTlhZTI0OTY0MmVjYyIsImVycm9yX3N0YXRfaGFzaCI6IjE0OTA2NDg0ODdfYzU0NWExNjliMmUzN2QxNDBmIiwiYWRzX3N0YXRfaGFzaCI6IjI2ODhjMDIxZjMxNjIxZjg5MyIsImFkc19jb21zY29yZV9jMyI6Im1vbmV0aXplZCIsImFkc190eXBlIjoxLCJhZHNfY2F0Ijo1LCJhZHNfc2l0ZXpvbmUiOjUsImFkc19yZWZlcnJlciI6IiIsImFkc19laWQxIjoxMDA1NDk1MTQsImFkc19wdWlkNSI6OSwiYWRzX3B1aWQ2Ijo1NywiYWRzX3B1aWQzNCI6MCwiYWRzX3B1aWQ0IjozLCJhZHNfcHVpZDciOjEsImFkc19wbCI6MjE0NjksImFkc19wbF90eXBlIjoib3RoZXIiLCJhZHNfc2FmZSI6MSwibm9saWtlcyI6MSwiaGQiOjMsImhkX2RlZiI6LTEsImFuZ2xlIjowLjAwMDAwMCwiaW1nX2FuZ2xlIjowLjAwMDAwMCwicmVwZWF0IjowLCJ1cmwyNDAiOiJodHRwczpcL1wvY3M1NDA2MDkudXNlcmFwaS5jb21cL3UyNzk2NTI5XC92aWRlb3NcLzVkMDI0N2E2NDUuMjQwLm1wND9leHRyYT15RktxU3YzSGVFS1dnRktNTEZqODRyYmg4a0NOWm9DczJaWnR4dmJfV19YWmNKTlJCbnBpZW5fT1Y5VXFzZ19WVS14eU5FSmlMMThXVU1xbFl3VTNfTFlUSUNoVVNEWHFqdk9FdTl0OTNhcmljRmxYVVdHWHFUSnlTb28iLCJ1cmwzNjAiOiJodHRwczpcL1wvY3M1NDA2MDkudXNlcmFwaS5jb21cL3UyNzk2NTI5XC92aWRlb3NcLzVkMDI0N2E2NDUuMzYwLm1wND9leHRyYT15RktxU3YzSGVFS1dnRktNTEZqODRyYmg4a0NOWm9DczJaWnR4dmJfV19YWmNKTlJCbnBpZW5fT1Y5VXFzZ19WVS14eU5FSmlMMThXVU1xbFl3VTNfTFlUSUNoVVNEWHFqdk9FdTl0OTNhcmljRmxYVVdHWHFUSnlTb28iLCJ1cmw0ODAiOiJodHRwczpcL1wvY3M1NDA2MDkudXNlcmFwaS5jb21cL3UyNzk2NTI5XC92aWRlb3NcLzVkMDI0N2E2NDUuNDgwLm1wND9leHRyYT15RktxU3YzSGVFS1dnRktNTEZqODRyYmg4a0NOWm9DczJaWnR4dmJfV19YWmNKTlJCbnBpZW5fT1Y5VXFzZ19WVS14eU5FSmlMMThXVU1xbFl3VTNfTFlUSUNoVVNEWHFqdk9FdTl0OTNhcmljRmxYVVdHWHFUSnlTb28iLCJ1cmw3MjAiOiJodHRwczpcL1wvY3M1NDA2MDkudXNlcmFwaS5jb21cL3UyNzk2NTI5XC92aWRlb3NcLzVkMDI0N2E2NDUuNzIwLm1wND9leHRyYT15RktxU3YzSGVFS1dnRktNTEZqODRyYmg4a0NOWm9DczJaWnR4dmJfV19YWmNKTlJCbnBpZW5fT1Y5VXFzZ19WVS14eU5FSmlMMThXVU1xbFl3VTNfTFlUSUNoVVNEWHFqdk9FdTl0OTNhcmljRmxYVVdHWHFUSnlTb28iLCJqcGciOiJodHRwczpcL1wvcHAudXNlcmFwaS5jb21cL2M1NDA2MDlcL3UyNzk2NTI5XC92aWRlb1wvbF9lYjc5MDQ4Ny5qcGciLCJub2xvZ28iOjEsInNob3dfbmV4dCI6MCwibGlrZWQiOjAsImFkZF9oYXNoIjoiMjI2NjhkMWJhNDgzOTMzMzRiIiwiYWRkZWQiOjAsImNhbl9hZGQiOjAsIm5vX3RpdGxlIjowLCJ2c2Vnc19zaXplIjo4LjAwMDAwMCwidnNlZ3NfaGFzaCI6IjA0MzYzNmVhMGNjNDFjNjNiZCJ9XX19PCE+PCFwYWdldmlld19jYW5kaWRhdGU+
|
84
|
-
http_version:
|
85
|
-
recorded_at: Mon, 27 Mar 2017 21:01:27 GMT
|
86
|
-
recorded_with: VCR 3.0.3
|
@@ -1,50 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: get
|
5
|
-
uri: http://vk.com/video39576223_invalid
|
6
|
-
body:
|
7
|
-
encoding: US-ASCII
|
8
|
-
string: ''
|
9
|
-
headers:
|
10
|
-
Accept-Encoding:
|
11
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
Accept:
|
13
|
-
- "*/*"
|
14
|
-
User-Agent:
|
15
|
-
- Mozilla/5.0 (Linux; VideoInfo)
|
16
|
-
- Ruby
|
17
|
-
Host:
|
18
|
-
- vk.com
|
19
|
-
response:
|
20
|
-
status:
|
21
|
-
code: 404
|
22
|
-
message: Not Found
|
23
|
-
headers:
|
24
|
-
Server:
|
25
|
-
- Apache
|
26
|
-
Date:
|
27
|
-
- Mon, 27 Mar 2017 21:01:20 GMT
|
28
|
-
Content-Type:
|
29
|
-
- text/html
|
30
|
-
Content-Length:
|
31
|
-
- '407'
|
32
|
-
Connection:
|
33
|
-
- keep-alive
|
34
|
-
Etag:
|
35
|
-
- '"58b47037-197"'
|
36
|
-
body:
|
37
|
-
encoding: UTF-8
|
38
|
-
string: |
|
39
|
-
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
40
|
-
<html>
|
41
|
-
<head>
|
42
|
-
<title>404 Not Found</title>
|
43
|
-
</head>
|
44
|
-
<body style="background: #3f5d81 url(https://vk.com/images/error404.png) no-repeat 50% 50%; width: 100%; height: 100%; overflow: hidden; margin: 0px;">
|
45
|
-
<a style="position: absolute; left: 50%; top: 50%; margin: -265px -345px 0px; height: 530px; width: 690px;" href="http://vk.com/"></a>
|
46
|
-
</body>
|
47
|
-
</html>
|
48
|
-
http_version:
|
49
|
-
recorded_at: Mon, 27 Mar 2017 21:01:20 GMT
|
50
|
-
recorded_with: VCR 3.0.3
|
@@ -1,132 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: get
|
5
|
-
uri: http://vk.com/video39576223_166315543
|
6
|
-
body:
|
7
|
-
encoding: US-ASCII
|
8
|
-
string: ''
|
9
|
-
headers:
|
10
|
-
Accept-Encoding:
|
11
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
Accept:
|
13
|
-
- "*/*"
|
14
|
-
User-Agent:
|
15
|
-
- Mozilla/5.0 (Linux; VideoInfo)
|
16
|
-
- Ruby
|
17
|
-
Host:
|
18
|
-
- vk.com
|
19
|
-
response:
|
20
|
-
status:
|
21
|
-
code: 302
|
22
|
-
message: Found
|
23
|
-
headers:
|
24
|
-
Server:
|
25
|
-
- Apache
|
26
|
-
Date:
|
27
|
-
- Mon, 27 Mar 2017 21:01:20 GMT
|
28
|
-
Content-Type:
|
29
|
-
- text/html; charset=windows-1251
|
30
|
-
Content-Length:
|
31
|
-
- '20'
|
32
|
-
Connection:
|
33
|
-
- keep-alive
|
34
|
-
X-Powered-By:
|
35
|
-
- PHP/3.12334
|
36
|
-
Set-Cookie:
|
37
|
-
- remixlang=3; expires=Thu, 22 Mar 2018 13:12:03 GMT; path=/; domain=.vk.com
|
38
|
-
Pragma:
|
39
|
-
- no-cache
|
40
|
-
Cache-Control:
|
41
|
-
- no-store
|
42
|
-
Location:
|
43
|
-
- https://vk.com/video39576223_166315543
|
44
|
-
body:
|
45
|
-
encoding: ASCII-8BIT
|
46
|
-
string: ''
|
47
|
-
http_version:
|
48
|
-
recorded_at: Mon, 27 Mar 2017 21:01:20 GMT
|
49
|
-
- request:
|
50
|
-
method: get
|
51
|
-
uri: http://vk.com:443/video39576223_166315543
|
52
|
-
body:
|
53
|
-
encoding: US-ASCII
|
54
|
-
string: ''
|
55
|
-
headers:
|
56
|
-
Accept-Encoding:
|
57
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
58
|
-
Accept:
|
59
|
-
- "*/*"
|
60
|
-
User-Agent:
|
61
|
-
- Mozilla/5.0 (Linux; VideoInfo)
|
62
|
-
- Ruby
|
63
|
-
Host:
|
64
|
-
- vk.com
|
65
|
-
response:
|
66
|
-
status:
|
67
|
-
code: 400
|
68
|
-
message: Bad Request
|
69
|
-
headers:
|
70
|
-
Server:
|
71
|
-
- Apache
|
72
|
-
Date:
|
73
|
-
- Mon, 27 Mar 2017 21:01:21 GMT
|
74
|
-
Content-Type:
|
75
|
-
- text/html
|
76
|
-
Content-Length:
|
77
|
-
- '267'
|
78
|
-
Connection:
|
79
|
-
- close
|
80
|
-
body:
|
81
|
-
encoding: UTF-8
|
82
|
-
string: "<html>\r\n<head><title>400 The plain HTTP request was sent to HTTPS
|
83
|
-
port</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>400 Bad Request</h1></center>\r\n<center>The
|
84
|
-
plain HTTP request was sent to HTTPS port</center>\r\n<hr><center> Apache
|
85
|
-
</center>\r\n</body>\r\n</html>\r\n"
|
86
|
-
http_version:
|
87
|
-
recorded_at: Mon, 27 Mar 2017 21:01:21 GMT
|
88
|
-
- request:
|
89
|
-
method: post
|
90
|
-
uri: https://vk.com/al_video.php
|
91
|
-
body:
|
92
|
-
encoding: US-ASCII
|
93
|
-
string: User-Agent=VideoInfo%2F2.7&act=show&al=1&autoplay=0&module=profile&video=39576223_166315543
|
94
|
-
headers:
|
95
|
-
Accept-Encoding:
|
96
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
97
|
-
Accept:
|
98
|
-
- "*/*"
|
99
|
-
User-Agent:
|
100
|
-
- Mozilla/5.0 (Linux; VideoInfo)
|
101
|
-
- Ruby
|
102
|
-
response:
|
103
|
-
status:
|
104
|
-
code: 200
|
105
|
-
message: OK
|
106
|
-
headers:
|
107
|
-
Server:
|
108
|
-
- Apache
|
109
|
-
Date:
|
110
|
-
- Mon, 27 Mar 2017 21:01:22 GMT
|
111
|
-
Content-Type:
|
112
|
-
- text/html; charset=windows-1251
|
113
|
-
Content-Length:
|
114
|
-
- '98'
|
115
|
-
Connection:
|
116
|
-
- keep-alive
|
117
|
-
X-Powered-By:
|
118
|
-
- PHP/3.12334
|
119
|
-
Set-Cookie:
|
120
|
-
- remixlang=3; expires=Sat, 07 Apr 2018 09:30:21 GMT; path=/; domain=.vk.com
|
121
|
-
Pragma:
|
122
|
-
- no-cache
|
123
|
-
Cache-Control:
|
124
|
-
- no-store
|
125
|
-
Strict-Transport-Security:
|
126
|
-
- max-age=0
|
127
|
-
body:
|
128
|
-
encoding: ASCII-8BIT
|
129
|
-
string: "<!--3326840723228<!><!>3<!>3704<!>8<!>Access denied (5)<!><!>57460364<!><!pageview_candidate>"
|
130
|
-
http_version:
|
131
|
-
recorded_at: Mon, 27 Mar 2017 21:01:22 GMT
|
132
|
-
recorded_with: VCR 3.0.3
|