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.
Files changed (246) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/unit_test.yml +42 -0
  3. data/Guardfile +1 -1
  4. data/README.md +8 -19
  5. data/lib/video_info/provider.rb +11 -2
  6. data/lib/video_info/providers/vimeo_api.rb +9 -3
  7. data/lib/video_info/providers/vimeo_scraper.rb +12 -2
  8. data/lib/video_info/providers/youtube.rb +8 -0
  9. data/lib/video_info/providers/youtube_api.rb +1 -2
  10. data/lib/video_info/providers/youtube_scraper.rb +43 -25
  11. data/lib/video_info/providers/youtubeplaylist_api.rb +15 -1
  12. data/lib/video_info/version.rb +1 -1
  13. data/lib/video_info.rb +3 -3
  14. data/tmp/rspec_guard_result +25 -0
  15. data/video_info.gemspec +5 -6
  16. metadata +16 -472
  17. data/.travis.yml +0 -21
  18. data/lib/video_info/providers/vkontakte.rb +0 -212
  19. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_invalid_video_url/_available_/1_2_2_1_1.yml +0 -93
  20. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -96
  21. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author/1_3_7_1.yml +0 -100
  22. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_thumbnail/1_3_9_1.yml +0 -100
  23. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_author_url/1_3_8_1.yml +0 -100
  24. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_date/should_show_correct_date.yml +0 -100
  25. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_description/1_3_10_1.yml +0 -100
  26. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_duration/1_3_12_1.yml +0 -100
  27. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_keywords/1_3_11_1.yml +0 -100
  28. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail/1_3_19_1.yml +0 -100
  29. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_large/1_3_18_1.yml +0 -100
  30. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_medium/1_3_17_1.yml +0 -100
  31. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_thumbnail_small/1_3_16_1.yml +0 -100
  32. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_title/1_3_6_1.yml +0 -100
  33. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Dailymotion/with_video_x7lni3/_view_count/1_3_20_1.yml +0 -100
  34. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/1_2_3_1_1.yml +0 -150
  35. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_password_required_video/_available_/2_2_3_1_1.yml +0 -65
  36. 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
  37. 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
  38. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -150
  39. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/_available_/with_valid_video/_available_/2_2_1_1_1.yml +0 -67
  40. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author/1_13_2_1.yml +0 -128
  41. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_thumbnail/1_13_3_1.yml +0 -128
  42. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/author_url/1_13_4_1.yml +0 -128
  43. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/available_/1_13_1_1.yml +0 -128
  44. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/date/1_13_7_1.yml +0 -128
  45. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/description/1_13_6_1.yml +0 -128
  46. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/duration/1_13_8_1.yml +0 -128
  47. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/height/1_13_10_1.yml +0 -128
  48. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/keywords/1_13_9_1.yml +0 -128
  49. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_large/1_13_14_1.yml +0 -128
  50. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_medium/1_13_13_1.yml +0 -128
  51. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/thumbnail_small/1_13_12_1.yml +0 -128
  52. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/title/1_13_5_1.yml +0 -128
  53. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/view_count/1_13_15_1.yml +0 -128
  54. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_unavailable_video/width/1_13_11_1.yml +0 -128
  55. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/1_3_18_1.yml +0 -150
  56. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author/2_3_18_1.yml +0 -79
  57. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/1_3_17_1.yml +0 -150
  58. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_thumbnail/2_3_17_1.yml +0 -79
  59. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/1_3_19_1.yml +0 -150
  60. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_author_url/2_3_19_1.yml +0 -79
  61. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_date/should_have_correct_upload_date.yml +0 -226
  62. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/1_3_7_1.yml +0 -150
  63. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_description/2_3_7_1.yml +0 -79
  64. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/1_3_9_1.yml +0 -150
  65. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_duration/2_3_9_1.yml +0 -79
  66. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/1_3_11_1.yml +0 -150
  67. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_height/2_3_11_1.yml +0 -79
  68. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_keywords/should_return_a_string_list_of_keywords.yml +0 -226
  69. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/1_3_16_1.yml +0 -222
  70. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail/2_3_16_1.yml +0 -79
  71. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/1_3_15_1.yml +0 -222
  72. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_large/2_3_15_1.yml +0 -79
  73. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/1_3_14_1.yml +0 -222
  74. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_medium/2_3_14_1.yml +0 -79
  75. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/1_3_13_1.yml +0 -222
  76. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_thumbnail_small/2_3_13_1.yml +0 -79
  77. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/1_3_6_1.yml +0 -150
  78. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_title/2_3_6_1.yml +0 -79
  79. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/1_3_20_1.yml +0 -150
  80. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_view_count/2_3_20_1.yml +0 -79
  81. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/1_3_10_1.yml +0 -150
  82. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_136971428/_width/2_3_10_1.yml +0 -79
  83. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/1_12_1_1.yml +0 -222
  84. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail/2_12_1_1.yml +0 -75
  85. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/1_12_2_1.yml +0 -222
  86. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_large/2_12_2_1.yml +0 -75
  87. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/1_12_3_1.yml +0 -222
  88. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_medium/2_12_3_1.yml +0 -75
  89. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/1_12_4_1.yml +0 -222
  90. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vimeo/with_video_193970014/thumbnail_small/2_12_4_1.yml +0 -75
  91. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_hashes/available_/1_2_6_1_1.yml +0 -86
  92. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_invalid_video/available_/1_2_2_1_1.yml +0 -50
  93. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_private_video/available_/1_2_3_1_1.yml +0 -132
  94. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_redirect/available_/1_2_4_1_1.yml +0 -134
  95. 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
  96. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/_available_/with_valid_video/available_/1_2_1_1_1.yml +0 -87
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video-54799401_165822734/title/1_7_4_1.yml +0 -48
  114. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video3552522_171340713/embed_url/1_10_1_1.yml +0 -48
  115. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/description/1_6_8_1.yml +0 -48
  116. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/duration/1_6_10_1.yml +0 -48
  117. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_code/1_6_6_1.yml +0 -48
  118. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/embed_url/1_6_5_1.yml +0 -48
  119. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/height/1_6_12_1.yml +0 -48
  120. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/title/1_6_7_1.yml +0 -48
  121. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/view_count/1_6_13_1.yml +0 -48
  122. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_video39576223_161598544/width/1_6_11_1.yml +0 -48
  123. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author/1_4_5_1.yml +0 -48
  124. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_thumbnail/1_4_6_1.yml +0 -48
  125. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/author_url/1_4_7_1.yml +0 -48
  126. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Vkontakte/with_video_videos43640822_/video43640822_168790809/title/1_4_4_1.yml +0 -48
  127. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_invalid_video/_available_/1_2_2_1_1.yml +0 -67
  128. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -69
  129. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_duration/1_4_7_1.yml +0 -77
  130. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_height/1_4_9_1.yml +0 -77
  131. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_large/1_4_12_1.yml +0 -77
  132. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_medium/1_4_11_1.yml +0 -77
  133. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_thumbnail_small/1_4_10_1.yml +0 -77
  134. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_title/1_4_6_1.yml +0 -77
  135. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_pxonqr42is/_width/1_4_8_1.yml +0 -77
  136. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_duration/1_3_7_1.yml +0 -77
  137. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_height/1_3_9_1.yml +0 -77
  138. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail/1_3_13_1.yml +0 -77
  139. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_large/1_3_12_1.yml +0 -77
  140. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_medium/1_3_11_1.yml +0 -77
  141. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_thumbnail_small/1_3_10_1.yml +0 -77
  142. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_title/1_3_6_1.yml +0 -77
  143. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Wistia/with_video_rs1me54mpw/_width/1_3_8_1.yml +0 -77
  144. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/1_2_2_1_1.yml +0 -1447
  145. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/foo/_available/2_2_2_1_1.yml +0 -156
  146. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_2_1_1.yml +0 -481
  147. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/1_2_3_1_1.yml +0 -485
  148. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_2_1_1.yml +0 -54
  149. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_available_/2_2_3_1_1.yml +0 -54
  150. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_2_11_1.yml +0 -481
  151. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/1_2_3_11_1.yml +0 -481
  152. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_2_11_1.yml +0 -54
  153. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_date/2_2_3_11_1.yml +0 -54
  154. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_2_8_1.yml +0 -483
  155. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/1_2_3_8_1.yml +0 -483
  156. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_2_8_1.yml +0 -54
  157. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_description/2_2_3_8_1.yml +0 -54
  158. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_2_10_1.yml +0 -485
  159. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/1_2_3_10_1.yml +0 -484
  160. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_2_10_1.yml +0 -54
  161. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_duration/2_2_3_10_1.yml +0 -54
  162. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_2_9_1.yml +0 -485
  163. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/1_2_3_9_1.yml +0 -484
  164. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_2_9_1.yml +0 -54
  165. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_keywords/2_2_3_9_1.yml +0 -54
  166. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_2_7_1.yml +0 -481
  167. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/1_2_3_7_1.yml +0 -484
  168. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_2_7_1.yml +0 -54
  169. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_title/2_2_3_7_1.yml +0 -54
  170. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_2_17_1.yml +0 -485
  171. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/1_2_3_17_1.yml +0 -485
  172. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_2_17_1.yml +0 -54
  173. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_unavailable_video/_view_count/2_2_3_17_1.yml +0 -54
  174. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/1_2_1_1_1.yml +0 -56
  175. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/_available_/with_valid_video/_available_/2_2_1_1_1.yml +0 -125
  176. 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
  177. 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
  178. 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
  179. 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
  180. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_date/should_return_date_video_was_posted.yml +0 -178
  181. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/1_17_7_1.yml +0 -56
  182. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_description/2_17_7_1.yml +0 -125
  183. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/1_17_9_1.yml +0 -56
  184. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_duration/2_17_9_1.yml +0 -125
  185. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/1_17_8_1.yml +0 -56
  186. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_keywords/2_17_8_1.yml +0 -125
  187. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/1_17_6_1.yml +0 -56
  188. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_title/2_17_6_1.yml +0 -125
  189. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/1_17_16_1.yml +0 -56
  190. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_full_screen_video_URLs/_view_count/2_17_16_1.yml +0 -125
  191. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/1_3_6_1.yml +0 -56
  192. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author/2_3_6_1.yml +0 -125
  193. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/1_3_7_1.yml +0 -56
  194. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_thumbnail/2_3_7_1.yml +0 -208
  195. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/1_3_8_1.yml +0 -56
  196. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_author_url/2_3_8_1.yml +0 -208
  197. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_date/should_return_date_video_was_posted.yml +0 -178
  198. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/1_3_10_1.yml +0 -56
  199. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_description/2_3_10_1.yml +0 -125
  200. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/1_3_12_1.yml +0 -56
  201. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_duration/2_3_12_1.yml +0 -125
  202. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/1_3_11_1.yml +0 -56
  203. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_keywords/2_3_11_1.yml +0 -125
  204. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/1_3_9_1.yml +0 -56
  205. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_title/2_3_9_1.yml +0 -125
  206. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/1_3_20_1.yml +0 -56
  207. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_Youtube/with_video_mZqGqE0D0n4/_view_count/2_3_20_1.yml +0 -125
  208. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/1_2_2_1_1.yml +0 -60
  209. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_invalid_playlist/_available_/2_2_2_1_1.yml +0 -60
  210. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/1_2_3_1_1.yml +0 -94
  211. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_list_url/_available_/2_2_3_1_1.yml +0 -94
  212. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/1_2_1_1_1.yml +0 -94
  213. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/_available_/with_valid_playlist/_available_/2_2_1_1_1.yml +0 -94
  214. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/1_3_19_1.yml +0 -105
  215. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author/2_3_19_1.yml +0 -105
  216. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/1_3_20_1.yml +0 -189
  217. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_thumbnail/2_3_20_1.yml +0 -189
  218. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/1_3_21_1.yml +0 -189
  219. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_author_url/2_3_21_1.yml +0 -189
  220. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/1_3_7_1.yml +0 -105
  221. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_description/2_3_7_1.yml +0 -105
  222. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/1_3_8_1.yml +0 -105
  223. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_keywords/2_3_8_1.yml +0 -105
  224. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/1_3_16_1.yml +0 -105
  225. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail/2_3_16_1.yml +0 -105
  226. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/1_3_15_1.yml +0 -105
  227. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_large/2_3_15_1.yml +0 -105
  228. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/1_3_14_1.yml +0 -105
  229. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_medium/2_3_14_1.yml +0 -105
  230. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/1_3_13_1.yml +0 -105
  231. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_thumbnail_small/2_3_13_1.yml +0 -105
  232. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/1_3_6_1.yml +0 -105
  233. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_title/2_3_6_1.yml +0 -105
  234. data/spec/fixtures/vcr_cassettes/VideoInfo_Providers_YoutubePlaylist/with_playlist_PL9hW1uS6HUftLdHI6RIsaf/_videos/returns_list_of_videos_in_playlist.yml +0 -265
  235. 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
  236. 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
  237. data/spec/lib/video_info/provider_spec.rb +0 -80
  238. data/spec/lib/video_info/providers/dailymotion_spec.rb +0 -194
  239. data/spec/lib/video_info/providers/vimeo_spec.rb +0 -328
  240. data/spec/lib/video_info/providers/vkontakte_spec.rb +0 -236
  241. data/spec/lib/video_info/providers/wistia_spec.rb +0 -197
  242. data/spec/lib/video_info/providers/youtube_playlist_spec.rb +0 -236
  243. data/spec/lib/video_info/providers/youtube_scraper_spec.rb +0 -12
  244. data/spec/lib/video_info/providers/youtube_spec.rb +0 -575
  245. data/spec/lib/video_info_spec.rb +0 -106
  246. data/spec/spec_helper.rb +0 -26
@@ -1,128 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: head
5
- uri: https://vimeo.com/0812455
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - VideoInfo/2.7
12
- Accept:
13
- - "*/*"
14
- response:
15
- status:
16
- code: 404
17
- message: Not Found
18
- headers:
19
- Server:
20
- - nginx
21
- Content-Type:
22
- - text/html; charset=UTF-8
23
- Expires:
24
- - Mon, 27 Mar 2017 09:01:04 GMT
25
- X-Frame-Options:
26
- - sameorigin
27
- Via:
28
- - 1.1 varnish
29
- - 1.1 varnish
30
- - 1.1 varnish
31
- Cache-Control:
32
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
33
- X-Varnish-Cache:
34
- - '0'
35
- X-Vserver:
36
- - dfvimeowebproxy3
37
- Fastly-Debug-Digest:
38
- - 5c8cad581c94a8a0faf793c8c4898a0848cc94c3ce18c6c8e7834c3408b6d12c
39
- Content-Length:
40
- - '57834'
41
- Accept-Ranges:
42
- - bytes
43
- Date:
44
- - Mon, 27 Mar 2017 21:01:04 GMT
45
- Age:
46
- - '0'
47
- Connection:
48
- - keep-alive
49
- X-Served-By:
50
- - cache-iad2127-IAD, cache-lax8645-LAX
51
- X-Cache:
52
- - MISS, MISS
53
- X-Cache-Hits:
54
- - 0, 0
55
- X-Timer:
56
- - S1490648464.104232,VS0,VE402
57
- Vary:
58
- - Accept-Encoding
59
- body:
60
- encoding: UTF-8
61
- string: ''
62
- http_version:
63
- recorded_at: Mon, 27 Mar 2017 21:01:04 GMT
64
- - request:
65
- method: get
66
- uri: https://vimeo.com/0812455
67
- body:
68
- encoding: US-ASCII
69
- string: ''
70
- headers:
71
- Accept-Encoding:
72
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
- Accept:
74
- - "*/*"
75
- User-Agent:
76
- - Ruby
77
- response:
78
- status:
79
- code: 404
80
- message: Not Found
81
- headers:
82
- Server:
83
- - nginx
84
- Content-Type:
85
- - text/html; charset=UTF-8
86
- Expires:
87
- - Mon, 27 Mar 2017 09:01:04 GMT
88
- X-Frame-Options:
89
- - sameorigin
90
- Via:
91
- - 1.1 varnish
92
- - 1.1 varnish
93
- - 1.1 varnish
94
- Cache-Control:
95
- - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
96
- X-Varnish-Cache:
97
- - '0'
98
- X-Vserver:
99
- - dfvimeowebproxy3
100
- Fastly-Debug-Digest:
101
- - 5c8cad581c94a8a0faf793c8c4898a0848cc94c3ce18c6c8e7834c3408b6d12c
102
- Content-Length:
103
- - '19294'
104
- Accept-Ranges:
105
- - bytes
106
- Date:
107
- - Mon, 27 Mar 2017 21:01:04 GMT
108
- Age:
109
- - '0'
110
- Connection:
111
- - keep-alive
112
- X-Served-By:
113
- - cache-iad2120-IAD, cache-lax8639-LAX
114
- X-Cache:
115
- - MISS, MISS
116
- X-Cache-Hits:
117
- - 0, 0
118
- X-Timer:
119
- - S1490648464.536852,VS0,VE404
120
- Vary:
121
- - Accept-Encoding
122
- body:
123
- encoding: ASCII-8BIT
124
- string: !binary |-
125
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgoKCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEuMCxtYXhpbXVtLXNjYWxlPTEuMCx1c2VyLXNjYWxhYmxlPW5vIj4KIAo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Ii8vcGxheWVyLnZpbWVvLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9pLnZpbWVvY2RuLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iLy9mLnZpbWVvY2RuLmNvbSI+CjxtZXRhIHByb3BlcnR5PSJmYjphcHBfaWQiIGNvbnRlbnQ9IjE5ODg0MDI4OTYzIj4KCgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJTb3JyeSwgd2UgY291bGRuJnJzcXVvO3QgZmluZCB0aGF0IHBhZ2UiPgogIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCI+CgoKCgoKIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgaHJlZj0iaHR0cHM6Ly9pLnZpbWVvY2RuLmNvbS9mYXZpY29uL21haW4tdG91Y2hfMTgwIj4KCjxsaW5rIHJlbD0ibWFzay1pY29uIiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL3N2Zy9sZWdhY3lfdmlld19zdXBwb3J0L2lyaXNfaWNvbl92XzY0LnN2ZyIgY29sb3I9IiMxNzI3MmUiPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vaW1hZ2VzX3Y2L2Zhdmljb24uaWNvIiBkYXRhLXBsYXk9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9wbGF5XzMyIiBkYXRhLXBhdXNlPSJodHRwczovL2kudmltZW9jZG4uY29tL2Zhdmljb24vcGF1c2VfMzIiPgoKPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlSW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vaS52aW1lb2Nkbi5jb20vZmF2aWNvbi9tYWluLXRvdWNoXzE0NCI+CjxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMDBhZGVmIj4KCjxsaW5rIHJlbD0ic2VhcmNoIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiBocmVmPSIvc2VhcmNoL29wZW5zZWFyY2gueG1sIiB0aXRsZT0iVmltZW8gc2VhcmNoIj4KPGxpbmsgcmVsPSJsb2dvIiB0eXBlPSJpbWFnZS9zdmciIGhyZWY9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vbG9nby5zdmciPgogPHRpdGxlPlZpbWVVaE9oPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9zdHlsZXMvY3NzX29wdC9nbG9iYWwvaWNvbl9mb250cy5taW4uY3NzP0RFViI+CgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2YudmltZW9jZG4uY29tL3N0eWxlcy9jc3Nfb3B0L2V4Y2VwdGlvbl9jb21iaW5lZC5taW4uY3NzPzcwMmFiZWMxIj4KCgoKIDxzY3JpcHQ+CiAgCiAgdmFyIHBsYXllckFzc2V0VXJscyA9IHsianMiOiJodHRwczpcL1wvZi52aW1lb2Nkbi5jb21cL3BcLzIuNTMuMTBcL2pzXC9wbGF5ZXIuanMiLCJtb29nIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC9mbGFzaFwvbW9vZ2Fsb29wXC82LjQuNVwvbW9vZ2Fsb29wLnN3ZiIsImNocm9tZWxlc3NfY3NzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9jc3NcL2Nocm9tZWxlc3MuY3NzIiwiY2hyb21lbGVzc19qcyI6Imh0dHBzOlwvXC9mLnZpbWVvY2RuLmNvbVwvcFwvMi41My4xMFwvanNcL2Nocm9tZWxlc3MuanMiLCJtb29nX2pzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9qc1wvbW9vZ2Fsb29wLmpzIiwiY3NzIjoiaHR0cHM6XC9cL2YudmltZW9jZG4uY29tXC9wXC8yLjUzLjEwXC9jc3NcL3BsYXllci5jc3MiLCJwbGF5ZXJfdXJsIjoicGxheWVyLnZpbWVvLmNvbSJ9OwoKICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogIHdpbmRvdyA9IF9leHRlbmQod2luZG93LCB7InZpbWVvX2VzaSI6eyJjb25maWciOnsiYXV0b2NvbXBsZXRlX2VuYWJsZWQiOnRydWV9fSwiZ2xvYmFsX25vdGlmaWNhdGlvbnMiOltdfSk7Cjwvc2NyaXB0PgoKIDxzdHlsZSBpZD0iZXNpX3JpYmJvbiI+CiAuZXNpX3JpYmJvbiB7CiBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjUwMCUyMiUzRSUzQ3JlY3QlMjB4JTNEJTIyMCUyMiUyMHdpZHRoJTNEJTIyMzQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyOGExZDglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM0JTIyJTIwd2lkdGglM0QlMjI1NSUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyMzI0OGJjNyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyODklMjIlMjB3aWR0aCUzRCUyMjMlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMxZTM5NTUlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjkyJTIyJTIwd2lkdGglM0QlMjIxNTclMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjMyZjUxMzIlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI0OSUyMiUyMHdpZHRoJTNEJTIyMzAlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM0MTY4MjglMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjI3OSUyMiUyMHdpZHRoJTNEJTIyNTQlMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjM3ZWFhMjklMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjMzMyUyMiUyMHdpZHRoJTNEJTIyMTElMjIlMjBoZWlnaHQlM0QlMjIxMDAlMjUlMjIlMjBzdHlsZSUzRCUyMmZpbGwlM0ElMjNkY2JkNDIlMjIlMkYlM0UlM0NyZWN0JTIweCUzRCUyMjM0NCUyMiUyMHdpZHRoJTNEJTIyNCUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2RjYWQyNyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyMzQ4JTIyJTIwd2lkdGglM0QlMjIyMyUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2UzOWEyMyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyMzcxJTIyJTIwd2lkdGglM0QlMjIzNSUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2NjNTU0YyUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNDA2JTIyJTIwd2lkdGglM0QlMjIxOCUyMiUyMGhlaWdodCUzRCUyMjEwMCUyNSUyMiUyMHN0eWxlJTNEJTIyZmlsbCUzQSUyM2NhNDczZiUyMiUyRiUzRSUzQ3JlY3QlMjB4JTNEJTIyNDI0JTIyJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzYTcyODM0JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0MzAlMjIlMjB3aWR0aCUzRCUyMjQ2JTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNzM1Njc1JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0NzYlMjIlMjB3aWR0aCUzRCUyMjEyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzNjUzZTY2JTIyJTJGJTNFJTNDcmVjdCUyMHglM0QlMjI0ODglMjIlMjB3aWR0aCUzRCUyMjEyJTIyJTIwaGVpZ2h0JTNEJTIyMTAwJTI1JTIyJTIwc3R5bGUlM0QlMjJmaWxsJTNBJTIzM2IzMTViJTIyJTJGJTNFJTNDJTJGc3ZnJTNFJTBBKSB0b3AgbGVmdC81MDBweCAxMDAlIHJlcGVhdC14ICFpbXBvcnRhbnQ7CiB9CiA8L3N0eWxlPgogCiA8c2NyaXB0PgogdmFyIGFibGluY29sbl9jb25maWcgPSBhYmxpbmNvbG5fY29uZmlnIHx8IHt9OwogYWJsaW5jb2xuX2NvbmZpZy50ZXN0cyA9IHsiREZQQWRDb2hvcnRzIjp7ImlkIjo2OSwibmFtZSI6IkRGUEFkQ29ob3J0cyIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6bnVsbCwiZXhwZXJpbWVudHMiOltdfSwiRXhwbG9yZSI6eyJpZCI6NjQsIm5hbWUiOiJFeHBsb3JlIiwiYnVja2V0cyI6MTAwMCwiaW5wdXQiOiJ2dWlkIiwidXJsIjoiXC8iLCJleHBlcmltZW50cyI6W119LCJUb3BOYXZBQiI6eyJpZCI6NjcsIm5hbWUiOiJUb3BOYXZBQiIsImJ1Y2tldHMiOjEwMDAsImlucHV0IjoidnVpZCIsInVybCI6IlwvIiwiZXhwZXJpbWVudHMiOltdfSwiVG9wTmF2Q29weVRlc3QiOnsiaWQiOjc3LCJuYW1lIjoiVG9wTmF2Q29weVRlc3QiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOiJcL2Fib3V0IiwiZXhwZXJpbWVudHMiOltdfSwiVG9wTmF2Lkhvc3RWaWRlb3NMaW5rIjp7ImlkIjoxMDMsIm5hbWUiOiJUb3BOYXYuSG9zdFZpZGVvc0xpbmsiLCJidWNrZXRzIjoxMDAwLCJpbnB1dCI6InZ1aWQiLCJ1cmwiOm51bGwsImV4cGVyaW1lbnRzIjpbXX19OwogPC9zY3JpcHQ+CgoKIDxzY3JpcHQ+CndpbmRvdy5OUkVVTXx8KE5SRVVNPXt9KSxfX25yX3JlcXVpcmU9ZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIobil7aWYoIWVbbl0pe3ZhciBvPWVbbl09e2V4cG9ydHM6e319O3Rbbl1bMF0uY2FsbChvLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG89dFtuXVsxXVtlXTtyZXR1cm4gcihvP286ZSl9LG8sby5leHBvcnRzKX1yZXR1cm4gZVtuXS5leHBvcnRzfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBfX25yX3JlcXVpcmUpcmV0dXJuIF9fbnJfcmVxdWlyZTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylyKG5bb10pO3JldHVybiByfSh7UUpmM2F4OltmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZShlLG4sYSl7dCYmdChlLG4sYSksYXx8KGE9e30pO2Zvcih2YXIgYz1zKGUpLGY9Yy5sZW5ndGgsdT1pKGEsbyxyKSxkPTA7Zj5kO2QrKyljW2RdLmFwcGx5KHUsbik7cmV0dXJuIHV9ZnVuY3Rpb24gYSh0LGUpe2ZbdF09cyh0KS5jb25jYXQoZSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZlt0XXx8W119ZnVuY3Rpb24gYygpe3JldHVybiBuKGUpfXZhciBmPXt9O3JldHVybntvbjphLGVtaXQ6ZSxjcmVhdGU6YyxsaXN0ZW5lcnM6cyxfZXZlbnRzOmZ9fWZ1bmN0aW9uIHIoKXtyZXR1cm57fX12YXIgbz0ibnJAY29udGV4dCIsaT10KCJnb3MiKTtlLmV4cG9ydHM9bigpfSx7Z29zOiI3ZVNERmgifV0sZWU6W2Z1bmN0aW9uKHQsZSl7ZS5leHBvcnRzPXQoIlFKZjNheCIpfSx7fV0sMzpbZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbixpLHMpe3RyeXtjP2MtPTE6cigiZXJyIixbc3x8bmV3IFVuY2F1Z2h0RXhjZXB0aW9uKHQsZSxuKV0pfWNhdGNoKGYpe3RyeXtyKCJpZXJyIixbZiwobmV3IERhdGUpLmdldFRpbWUoKSwhMF0pfWNhdGNoKHUpe319cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGE/YS5hcHBseSh0aGlzLG8oYXJndW1lbnRzKSk6ITF9ZnVuY3Rpb24gVW5jYXVnaHRFeGNlcHRpb24odCxlLG4pe3RoaXMubWVzc2FnZT10fHwiVW5jYXVnaHQgZXJyb3Igd2l0aCBubyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIix0aGlzLnNvdXJjZVVSTD1lLHRoaXMubGluZT1ufWZ1bmN0aW9uIG4odCl7cigiZXJyIixbdCwobmV3IERhdGUpLmdldFRpbWUoKV0pfXZhciByPXQoImhhbmRsZSIpLG89dCg1KSxpPXQoImVlIiksYT13aW5kb3cub25lcnJvcixzPSExLGM9MDt0KCJsb2FkZXIiKS5mZWF0dXJlcy5lcnI9ITAsd2luZG93Lm9uZXJyb3I9ZSxOUkVVTS5ub3RpY2VFcnJvcj1uO3RyeXt0aHJvdyBuZXcgRXJyb3J9Y2F0Y2goZil7InN0YWNrImluIGYmJih0KDEpLHQoNCksImFkZEV2ZW50TGlzdGVuZXIiaW4gd2luZG93JiZ0KDIpLHdpbmRvdy5YTUxIdHRwUmVxdWVzdCYmWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlJiZYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lciYmdCgzKSxzPSEwKX1pLm9uKCJmbi1zdGFydCIsZnVuY3Rpb24oKXtzJiYoYys9MSl9KSxpLm9uKCJmbi1lcnIiLGZ1bmN0aW9uKHQsZSxyKXtzJiYodGhpcy50aHJvd249ITAsbihyKSl9KSxpLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKCl7cyYmIXRoaXMudGhyb3duJiZjPjAmJihjLT0xKX0pLGkub24oImludGVybmFsLWVycm9yIixmdW5jdGlvbih0KXtyKCJpZXJyIixbdCwobmV3IERhdGUpLmdldFRpbWUoKSwhMF0pfSl9LHsxOjgsMjo1LDM6OSw0OjcsNToyMCxlZToiUUpmM2F4IixoYW5kbGU6IkQ1RHVMUCIsbG9hZGVyOiJHOXowQmwifV0sNDpbZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe31pZih3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcmJndpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbj10KCJlZSIpLHI9dCgiaGFuZGxlIiksbz10KDIpO3QoImxvYWRlciIpLmZlYXR1cmVzLnN0bj0hMCx0KDEpLG4ub24oImZuLXN0YXJ0IixmdW5jdGlvbih0KXt2YXIgZT10WzBdO2UgaW5zdGFuY2VvZiBFdmVudCYmKHRoaXMuYnN0U3RhcnQ9RGF0ZS5ub3coKSl9KSxuLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKHQsZSl7dmFyIG49dFswXTtuIGluc3RhbmNlb2YgRXZlbnQmJnIoImJzdCIsW24sZSx0aGlzLmJzdFN0YXJ0LERhdGUubm93KCldKX0pLG8ub24oImZuLXN0YXJ0IixmdW5jdGlvbih0LGUsbil7dGhpcy5ic3RTdGFydD1EYXRlLm5vdygpLHRoaXMuYnN0VHlwZT1ufSksby5vbigiZm4tZW5kIixmdW5jdGlvbih0LGUpe3IoImJzdFRpbWVyIixbZSx0aGlzLmJzdFN0YXJ0LERhdGUubm93KCksdGhpcy5ic3RUeXBlXSl9KSxuLm9uKCJwdXNoU3RhdGUtc3RhcnQiLGZ1bmN0aW9uKCl7dGhpcy50aW1lPURhdGUubm93KCksdGhpcy5zdGFydFBhdGg9bG9jYXRpb24ucGF0aG5hbWUrbG9jYXRpb24uaGFzaH0pLG4ub24oInB1c2hTdGF0ZS1lbmQiLGZ1bmN0aW9uKCl7cigiYnN0SGlzdCIsW2xvY2F0aW9uLnBhdGhuYW1lK2xvY2F0aW9uLmhhc2gsdGhpcy5zdGFydFBhdGgsdGhpcy50aW1lXSl9KSwiYWRkRXZlbnRMaXN0ZW5lciJpbiB3aW5kb3cucGVyZm9ybWFuY2UmJih3aW5kb3cucGVyZm9ybWFuY2UuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIixmdW5jdGlvbigpe3IoImJzdFJlc291cmNlIixbd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIildKSx3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJSZXNvdXJjZVRpbWluZ3MoKX0sITEpLHdpbmRvdy5wZXJmb3JtYW5jZS5hZGRFdmVudExpc3RlbmVyKCJyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwiLGZ1bmN0aW9uKCl7cigiYnN0UmVzb3VyY2UiLFt3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKV0pLHdpbmRvdy5wZXJmb3JtYW5jZS5jbGVhclJlc291cmNlVGltaW5ncygpfSwhMSkpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZSwhMSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLGUsITEpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlLCExKX19LHsxOjYsMjo4LGVlOiJRSmYzYXgiLGhhbmRsZToiRDVEdUxQIixsb2FkZXI6Ikc5ejBCbCJ9XSw1OltmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCl7aS5pblBsYWNlKHQsWyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCItIixyKX1mdW5jdGlvbiByKHQpe3JldHVybiB0WzFdfXZhciBvPSh0KDEpLHQoImVlIikuY3JlYXRlKCkpLGk9dCgyKShvKSxhPXQoImdvcyIpO2lmKGUuZXhwb3J0cz1vLG4od2luZG93KSwiZ2V0UHJvdG90eXBlT2YiaW4gT2JqZWN0KXtmb3IodmFyIHM9ZG9jdW1lbnQ7cyYmIXMuaGFzT3duUHJvcGVydHkoImFkZEV2ZW50TGlzdGVuZXIiKTspcz1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk7cyYmbihzKTtmb3IodmFyIGM9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlO2MmJiFjLmhhc093blByb3BlcnR5KCJhZGRFdmVudExpc3RlbmVyIik7KWM9T2JqZWN0LmdldFByb3RvdHlwZU9mKGMpO2MmJm4oYyl9ZWxzZSBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImFkZEV2ZW50TGlzdGVuZXIiKSYmbihYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUpO28ub24oImFkZEV2ZW50TGlzdGVuZXItc3RhcnQiLGZ1bmN0aW9uKHQpe2lmKHRbMV0pe3ZhciBlPXRbMV07ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy53cmFwcGVkPXRbMV09YShlLCJuckB3cmFwcGVkIixmdW5jdGlvbigpe3JldHVybiBpKGUsImZuLSIsbnVsbCxlLm5hbWV8fCJhbm9ueW1vdXMiKX0pOiJmdW5jdGlvbiI9PXR5cGVvZiBlLmhhbmRsZUV2ZW50JiZpLmluUGxhY2UoZSxbImhhbmRsZUV2ZW50Il0sImZuLSIpfX0pLG8ub24oInJlbW92ZUV2ZW50TGlzdGVuZXItc3RhcnQiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMud3JhcHBlZDtlJiYodFsxXT1lKX0pfSx7MToyMCwyOjIxLGVlOiJRSmYzYXgiLGdvczoiN2VTREZoIn1dLDY6W2Z1bmN0aW9uKHQsZSl7dmFyIG49KHQoMiksdCgiZWUiKS5jcmVhdGUoKSkscj10KDEpKG4pO2UuZXhwb3J0cz1uLHIuaW5QbGFjZSh3aW5kb3cuaGlzdG9yeSxbInB1c2hTdGF0ZSJdLCItIil9LHsxOjIxLDI6MjAsZWU6IlFKZjNheCJ9XSw3OltmdW5jdGlvbih0LGUpe3ZhciBuPSh0KDIpLHQoImVlIikuY3JlYXRlKCkpLHI9dCgxKShuKTtlLmV4cG9ydHM9bixyLmluUGxhY2Uod2luZG93LFsicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwid2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwibXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSwicmFmLSIpLG4ub24oInJhZi1zdGFydCIsZnVuY3Rpb24odCl7dFswXT1yKHRbMF0sImZuLSIpfSl9LHsxOjIxLDI6MjAsZWU6IlFKZjNheCJ9XSw4OltmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCxlLG4pe3ZhciByPXRbMF07InN0cmluZyI9PXR5cGVvZiByJiYocj1uZXcgRnVuY3Rpb24ocikpLHRbMF09byhyLCJmbi0iLG51bGwsbil9dmFyIHI9KHQoMiksdCgiZWUiKS5jcmVhdGUoKSksbz10KDEpKHIpO2UuZXhwb3J0cz1yLG8uaW5QbGFjZSh3aW5kb3csWyJzZXRUaW1lb3V0Iiwic2V0SW50ZXJ2YWwiLCJzZXRJbW1lZGlhdGUiXSwic2V0VGltZXItIiksci5vbigic2V0VGltZXItc3RhcnQiLG4pfSx7MToyMSwyOjIwLGVlOiJRSmYzYXgifV0sOTpbZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7Yy5pblBsYWNlKHRoaXMsZCwiZm4tIil9ZnVuY3Rpb24gcih0LGUpe2MuaW5QbGFjZShlLFsib25yZWFkeXN0YXRlY2hhbmdlIl0sImZuLSIpfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZX12YXIgaT10KCJlZSIpLmNyZWF0ZSgpLGE9dCgxKSxzPXQoMiksYz1zKGkpLGY9cyhhKSx1PXdpbmRvdy5YTUxIdHRwUmVxdWVzdCxkPVsib25sb2FkIiwib25lcnJvciIsIm9uYWJvcnQiLCJvbmxvYWRzdGFydCIsIm9ubG9hZGVuZCIsIm9ucHJvZ3Jlc3MiLCJvbnRpbWVvdXQiXTtlLmV4cG9ydHM9aSx3aW5kb3cuWE1MSHR0cFJlcXVlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IHUodCk7dHJ5e2kuZW1pdCgibmV3LXhociIsW10sZSksZi5pblBsYWNlKGUsWyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCItIixmdW5jdGlvbih0LGUpe3JldHVybiBlfSksZS5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixuLCExKX1jYXRjaChyKXt0cnl7aS5lbWl0KCJpbnRlcm5hbC1lcnJvciIsW3JdKX1jYXRjaChvKXt9fXJldHVybiBlfSx3aW5kb3cuWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlPXUucHJvdG90eXBlLGMuaW5QbGFjZShYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUsWyJvcGVuIiwic2VuZCJdLCIteGhyLSIsbyksaS5vbigic2VuZC14aHItc3RhcnQiLHIpLGkub24oIm9wZW4teGhyLXN0YXJ0IixyKX0sezE6NSwyOjIxLGVlOiJRSmYzYXgifV0sMTA6W2Z1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lmxlbmd0aClyZXR1cm4gdC5sZW5ndGg7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXJldHVybiB2b2lkIDA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmdCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiZ0LmJ5dGVMZW5ndGgpcmV0dXJuIHQuYnl0ZUxlbmd0aDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEJsb2ImJnQgaW5zdGFuY2VvZiBCbG9iJiZ0LnNpemUpcmV0dXJuIHQuc2l6ZTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZ0IGluc3RhbmNlb2YgRm9ybURhdGEpcmV0dXJuIHZvaWQgMDt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpLmxlbmd0aH1jYXRjaChlKXtyZXR1cm4gdm9pZCAwfX1mdW5jdGlvbiBuKHQpe3ZhciBuPXRoaXMucGFyYW1zLHI9dGhpcy5tZXRyaWNzO2lmKCF0aGlzLmVuZGVkKXt0aGlzLmVuZGVkPSEwO2Zvcih2YXIgaT0wO2M+aTtpKyspdC5yZW1vdmVFdmVudExpc3RlbmVyKHNbaV0sdGhpcy5saXN0ZW5lciwhMSk7aWYoIW4uYWJvcnRlZCl7aWYoci5kdXJhdGlvbj0obmV3IERhdGUpLmdldFRpbWUoKS10aGlzLnN0YXJ0VGltZSw0PT09dC5yZWFkeVN0YXRlKXtuLnN0YXR1cz10LnN0YXR1czt2YXIgYT10LnJlc3BvbnNlVHlwZSxmPSJhcnJheWJ1ZmZlciI9PT1hfHwiYmxvYiI9PT1hfHwianNvbiI9PT1hP3QucmVzcG9uc2U6dC5yZXNwb25zZVRleHQsdT1lKGYpO2lmKHUmJihyLnJ4U2l6ZT11KSx0aGlzLnNhbWVPcmlnaW4pe3ZhciBkPXQuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtTmV3UmVsaWMtQXBwLURhdGEiKTtkJiYobi5jYXQ9ZC5zcGxpdCgiLCAiKS5wb3AoKSl9fWVsc2Ugbi5zdGF0dXM9MDtyLmNiVGltZT10aGlzLmNiVGltZSxvKCJ4aHIiLFtuLHIsdGhpcy5zdGFydFRpbWVdKX19fWZ1bmN0aW9uIHIodCxlKXt2YXIgbj1pKGUpLHI9dC5wYXJhbXM7ci5ob3N0PW4uaG9zdG5hbWUrIjoiK24ucG9ydCxyLnBhdGhuYW1lPW4ucGF0aG5hbWUsdC5zYW1lT3JpZ2luPW4uc2FtZU9yaWdpbn1pZih3aW5kb3cuWE1MSHR0cFJlcXVlc3QmJlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZSYmWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXImJiEvQ3JpT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3QoImxvYWRlciIpLmZlYXR1cmVzLnhocj0hMDt2YXIgbz10KCJoYW5kbGUiKSxpPXQoMiksYT10KCJlZSIpLHM9WyJsb2FkIiwiZXJyb3IiLCJhYm9ydCIsInRpbWVvdXQiXSxjPXMubGVuZ3RoLGY9dCgxKTt0KDQpLHQoMyksYS5vbigibmV3LXhociIsZnVuY3Rpb24oKXt0aGlzLnRvdGFsQ2JzPTAsdGhpcy5jYWxsZWQ9MCx0aGlzLmNiVGltZT0wLHRoaXMuZW5kPW4sdGhpcy5lbmRlZD0hMSx0aGlzLnhockd1aWRzPXt9fSksYS5vbigib3Blbi14aHItc3RhcnQiLGZ1bmN0aW9uKHQpe3RoaXMucGFyYW1zPXttZXRob2Q6dFswXX0scih0aGlzLHRbMV0pLHRoaXMubWV0cmljcz17fX0pLGEub24oIm9wZW4teGhyLWVuZCIsZnVuY3Rpb24odCxlKXsibG9hZGVyX2NvbmZpZyJpbiBOUkVVTSYmInhwaWQiaW4gTlJFVU0ubG9hZGVyX2NvbmZpZyYmdGhpcy5zYW1lT3JpZ2luJiZlLnNldFJlcXVlc3RIZWFkZXIoIlgtTmV3UmVsaWMtSUQiLE5SRVVNLmxvYWRlcl9jb25maWcueHBpZCl9KSxhLm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxuKXt2YXIgcj10aGlzLm1ldHJpY3Msbz10WzBdLGk9dGhpcztpZihyJiZvKXt2YXIgZj1lKG8pO2YmJihyLnR4U2l6ZT1mKX10aGlzLnN0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmxpc3RlbmVyPWZ1bmN0aW9uKHQpe3RyeXsiYWJvcnQiPT09dC50eXBlJiYoaS5wYXJhbXMuYWJvcnRlZD0hMCksKCJsb2FkIiE9PXQudHlwZXx8aS5jYWxsZWQ9PT1pLnRvdGFsQ2JzJiYoaS5vbmxvYWRDYWxsZWR8fCJmdW5jdGlvbiIhPXR5cGVvZiBuLm9ubG9hZCkpJiZpLmVuZChuKX1jYXRjaChlKXt0cnl7YS5lbWl0KCJpbnRlcm5hbC1lcnJvciIsW2VdKX1jYXRjaChyKXt9fX07Zm9yKHZhciB1PTA7Yz51O3UrKyluLmFkZEV2ZW50TGlzdGVuZXIoc1t1XSx0aGlzLmxpc3RlbmVyLCExKX0pLGEub24oInhoci1jYi10aW1lIixmdW5jdGlvbih0LGUsbil7dGhpcy5jYlRpbWUrPXQsZT90aGlzLm9ubG9hZENhbGxlZD0hMDp0aGlzLmNhbGxlZCs9MSx0aGlzLmNhbGxlZCE9PXRoaXMudG90YWxDYnN8fCF0aGlzLm9ubG9hZENhbGxlZCYmImZ1bmN0aW9uIj09dHlwZW9mIG4ub25sb2FkfHx0aGlzLmVuZChuKX0pLGEub24oInhoci1sb2FkLWFkZGVkIixmdW5jdGlvbih0LGUpe3ZhciBuPSIiK2YodCkrISFlO3RoaXMueGhyR3VpZHMmJiF0aGlzLnhockd1aWRzW25dJiYodGhpcy54aHJHdWlkc1tuXT0hMCx0aGlzLnRvdGFsQ2JzKz0xKX0pLGEub24oInhoci1sb2FkLXJlbW92ZWQiLGZ1bmN0aW9uKHQsZSl7dmFyIG49IiIrZih0KSshIWU7dGhpcy54aHJHdWlkcyYmdGhpcy54aHJHdWlkc1tuXSYmKGRlbGV0ZSB0aGlzLnhockd1aWRzW25dLHRoaXMudG90YWxDYnMtPTEpfSksYS5vbigiYWRkRXZlbnRMaXN0ZW5lci1lbmQiLGZ1bmN0aW9uKHQsZSl7ZSBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1ZXN0JiYibG9hZCI9PT10WzBdJiZhLmVtaXQoInhoci1sb2FkLWFkZGVkIixbdFsxXSx0WzJdXSxlKX0pLGEub24oInJlbW92ZUV2ZW50TGlzdGVuZXItZW5kIixmdW5jdGlvbih0LGUpe2UgaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdCYmImxvYWQiPT09dFswXSYmYS5lbWl0KCJ4aHItbG9hZC1yZW1vdmVkIixbdFsxXSx0WzJdXSxlKX0pLGEub24oImZuLXN0YXJ0IixmdW5jdGlvbih0LGUsbil7ZSBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1ZXN0JiYoIm9ubG9hZCI9PT1uJiYodGhpcy5vbmxvYWQ9ITApLCgibG9hZCI9PT0odFswXSYmdFswXS50eXBlKXx8dGhpcy5vbmxvYWQpJiYodGhpcy54aHJDYlN0YXJ0PShuZXcgRGF0ZSkuZ2V0VGltZSgpKSl9KSxhLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKHQsZSl7dGhpcy54aHJDYlN0YXJ0JiZhLmVtaXQoInhoci1jYi10aW1lIixbKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy54aHJDYlN0YXJ0LHRoaXMub25sb2FkLGVdLGUpfSl9fSx7MToiWEw3SEJJIiwyOjExLDM6OSw0OjUsZWU6IlFKZjNheCIsaGFuZGxlOiJENUR1TFAiLGxvYWRlcjoiRzl6MEJsIn1dLDExOltmdW5jdGlvbih0LGUpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksbj13aW5kb3cubG9jYXRpb24scj17fTtlLmhyZWY9dCxyLnBvcnQ9ZS5wb3J0O3ZhciBvPWUuaHJlZi5zcGxpdCgiOi8vIik7cmV0dXJuIXIucG9ydCYmb1sxXSYmKHIucG9ydD1vWzFdLnNwbGl0KCIvIilbMF0uc3BsaXQoIjoiKVsxXSksci5wb3J0JiYiMCIhPT1yLnBvcnR8fChyLnBvcnQ9Imh0dHBzIj09PW9bMF0/IjQ0MyI6IjgwIiksci5ob3N0bmFtZT1lLmhvc3RuYW1lfHxuLmhvc3RuYW1lLHIucGF0aG5hbWU9ZS5wYXRobmFtZSwiLyIhPT1yLnBhdGhuYW1lLmNoYXJBdCgwKSYmKHIucGF0aG5hbWU9Ii8iK3IucGF0aG5hbWUpLHIuc2FtZU9yaWdpbj0hZS5ob3N0bmFtZXx8ZS5ob3N0bmFtZT09PWRvY3VtZW50LmRvbWFpbiYmZS5wb3J0PT09bi5wb3J0JiZlLnByb3RvY29sPT09bi5wcm90b2NvbCxyfX0se31dLGdvczpbZnVuY3Rpb24odCxlKXtlLmV4cG9ydHM9dCgiN2VTREZoIil9LHt9XSwiN2VTREZoIjpbZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKHQsZSxuKXtpZihyLmNhbGwodCxlKSlyZXR1cm4gdFtlXTt2YXIgbz1uKCk7aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3Qua2V5cyl0cnl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm8sd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMX0pLG99Y2F0Y2goaSl7fXJldHVybiB0W2VdPW8sb312YXIgcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1ufSx7fV0sRDVEdUxQOltmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCxlLG4pe3JldHVybiByLmxpc3RlbmVycyh0KS5sZW5ndGg/ci5lbWl0KHQsZSxuKToob1t0XXx8KG9bdF09W10pLHZvaWQgb1t0XS5wdXNoKGUpKX12YXIgcj10KCJlZSIpLmNyZWF0ZSgpLG89e307ZS5leHBvcnRzPW4sbi5lZT1yLHIucT1vfSx7ZWU6IlFKZjNheCJ9XSxoYW5kbGU6W2Z1bmN0aW9uKHQsZSl7ZS5leHBvcnRzPXQoIkQ1RHVMUCIpfSx7fV0sWEw3SEJJOltmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIXR8fCJvYmplY3QiIT09ZSYmImZ1bmN0aW9uIiE9PWU/LTE6dD09PXdpbmRvdz8wOmkodCxvLGZ1bmN0aW9uKCl7cmV0dXJuIHIrK30pfXZhciByPTEsbz0ibnJAaWQiLGk9dCgiZ29zIik7ZS5leHBvcnRzPW59LHtnb3M6IjdlU0RGaCJ9XSxpZDpbZnVuY3Rpb24odCxlKXtlLmV4cG9ydHM9dCgiWEw3SEJJIil9LHt9XSxsb2FkZXI6W2Z1bmN0aW9uKHQsZSl7ZS5leHBvcnRzPXQoIkc5ejBCbCIpfSx7fV0sRzl6MEJsOltmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt2YXIgdD1wLmluZm89TlJFVU0uaW5mbztpZih0JiZ0LmFnZW50JiZ0LmxpY2Vuc2VLZXkmJnQuYXBwbGljYXRpb25JRCYmYyYmYy5ib2R5KXtwLnByb3RvPSJodHRwcyI9PT1kLnNwbGl0KCI6IilbMF18fHQuc3NsRm9ySHR0cD8iaHR0cHM6Ly8iOiJodHRwOi8vIixhKCJtYXJrIixbIm9ubG9hZCIsaSgpXSk7dmFyIGU9Yy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtlLnNyYz1wLnByb3RvK3QuYWdlbnQsYy5ib2R5LmFwcGVuZENoaWxkKGUpfX1mdW5jdGlvbiByKCl7ImNvbXBsZXRlIj09PWMucmVhZHlTdGF0ZSYmbygpfWZ1bmN0aW9uIG8oKXthKCJtYXJrIixbImRvbUNvbnRlbnQiLGkoKV0pfWZ1bmN0aW9uIGkoKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX12YXIgYT10KCJoYW5kbGUiKSxzPXdpbmRvdyxjPXMuZG9jdW1lbnQsZj0iYWRkRXZlbnRMaXN0ZW5lciIsdT0iYXR0YWNoRXZlbnQiLGQ9KCIiK2xvY2F0aW9uKS5zcGxpdCgiPyIpWzBdLHA9ZS5leHBvcnRzPXtvZmZzZXQ6aSgpLG9yaWdpbjpkLGZlYXR1cmVzOnt9fTtjW2ZdPyhjW2ZdKCJET01Db250ZW50TG9hZGVkIixvLCExKSxzW2ZdKCJsb2FkIixuLCExKSk6KGNbdV0oIm9ucmVhZHlzdGF0ZWNoYW5nZSIsciksc1t1XSgib25sb2FkIixuKSksYSgibWFyayIsWyJmaXJzdGJ5dGUiLGkoKV0pfSx7aGFuZGxlOiJENUR1TFAifV0sMjA6W2Z1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbih0LGUsbil7ZXx8KGU9MCksInVuZGVmaW5lZCI9PXR5cGVvZiBuJiYobj10P3QubGVuZ3RoOjApO2Zvcih2YXIgcj0tMSxvPW4tZXx8MCxpPUFycmF5KDA+bz8wOm8pOysrcjxvOylpW3JdPXRbZStyXTtyZXR1cm4gaX1lLmV4cG9ydHM9bn0se31dLDIxOltmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuISh0JiYiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5hcHBseSYmIXRbaV0pfXZhciByPXQoImVlIiksbz10KDEpLGk9Im5yQHdyYXBwZXIiLGE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUscixhKXtmdW5jdGlvbiBucldyYXBwZXIoKXt2YXIgbixpLHMsZjt0cnl7aT10aGlzLG49byhhcmd1bWVudHMpLHM9ciYmcihuLGkpfHx7fX1jYXRjaChkKXt1KFtkLCIiLFtuLGksYV0sc10pfWMoZSsic3RhcnQiLFtuLGksYV0scyk7dHJ5e3JldHVybiBmPXQuYXBwbHkoaSxuKX1jYXRjaChwKXt0aHJvdyBjKGUrImVyciIsW24saSxwXSxzKSxwfWZpbmFsbHl7YyhlKyJlbmQiLFtuLGksZl0scyl9fXJldHVybiBuKHQpP3Q6KGV8fChlPSIiKSxucldyYXBwZXJbaV09ITAsZih0LG5yV3JhcHBlciksbnJXcmFwcGVyKX1mdW5jdGlvbiBzKHQscixvLGkpe298fChvPSIiKTt2YXIgYSxzLGMsZj0iLSI9PT1vLmNoYXJBdCgwKTtmb3IoYz0wO2M8ci5sZW5ndGg7YysrKXM9cltjXSxhPXRbc10sbihhKXx8KHRbc109ZShhLGY/cytvOm8saSxzLHQpKX1mdW5jdGlvbiBjKGUsbixyKXt0cnl7dC5lbWl0KGUsbixyKX1jYXRjaChvKXt1KFtvLGUsbixyXSl9fWZ1bmN0aW9uIGYodCxlKXtpZihPYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5rZXlzKXRyeXt2YXIgbj1PYmplY3Qua2V5cyh0KTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2dldDpmdW5jdGlvbigpe3JldHVybiB0W25dfSxzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRbbl09ZSxlfX0pfSksZX1jYXRjaChyKXt1KFtyXSl9Zm9yKHZhciBvIGluIHQpYS5jYWxsKHQsbykmJihlW29dPXRbb10pO3JldHVybiBlfWZ1bmN0aW9uIHUoZSl7dHJ5e3QuZW1pdCgiaW50ZXJuYWwtZXJyb3IiLGUpfWNhdGNoKG4pe319cmV0dXJuIHR8fCh0PXIpLGUuaW5QbGFjZT1zLGUuZmxhZz1pLGV9fSx7MToyMCxlZToiUUpmM2F4In1dfSx7fSxbIkc5ejBCbCIsMywxMCw0XSk7CjtOUkVVTS5pbmZvPXtiZWFjb246ImJhbS5uci1kYXRhLm5ldCIsZXJyb3JCZWFjb246ImJhbS5uci1kYXRhLm5ldCIsbGljZW5zZUtleToiNjg5ZDViNDU2MiIsYXBwbGljYXRpb25JRDoiMjAxMTIyNCIsc2E6MSxhZ2VudDoianMtYWdlbnQubmV3cmVsaWMuY29tL25yLTQ3Ni5taW4uanMifQo8L3NjcmlwdD4KCiA8c2NyaXB0PgogdmFyIGdvb2dsZXRhZyA9IGdvb2dsZXRhZyB8fCB7fSwKIGdwdGFkc2xvdHMgPSBbXSwKIGxhbmd1YWdlLAogaGFzX3VwbG9hZGVkLAogY29ob3J0OwogZ29vZ2xldGFnLmNtZCA9IGdvb2dsZXRhZy5jbWQgfHwgW107CgogKGZ1bmN0aW9uKCkgewogdmFyIGdhZHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSwKIHVzZVNTTCA9ICdodHRwczonID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sLAogbm9kZTsKIGdhZHMuYXN5bmMgPSB0cnVlOwogZ2Fkcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiBnYWRzLnNyYyA9ICh1c2VTU0wgPyAnaHR0cHM6JyA6ICdodHRwOicpICsgJy8vd3d3Lmdvb2dsZXRhZ3NlcnZpY2VzLmNvbS90YWcvanMvZ3B0LmpzJzsKIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGdhZHMsIG5vZGUpOwogfSkoKTsKCiBnb29nbGV0YWcuY21kLnB1c2goZnVuY3Rpb24oKSB7CiAKICBsYW5ndWFnZSA9IGRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKC8oPzooPzpefC4qO1xzKilsYW5ndWFnZVxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpOwogaGFzX3VwbG9hZGVkID0gKGRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKC8oPzooPzpefC4qO1xzKiloYXNfdXBsb2FkZWRccypcPVxzKihbXjtdKikuKiQpfF4uKiQvLCAiJDEiKSkgPyAnWScgOiAnTic7CiAKIGNvaG9ydCA9ICh3aW5kb3cuQUJMaW5jb2xuKSA/IHdpbmRvdy5BQkxpbmNvbG4uZ2V0VGVzdCgnREZQQWRDb2hvcnRzJykuZ2V0KCdjb2hvcnQnLCAnQScpIDogJ0EnOwoKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2xhbmd1YWdlJywgW2xhbmd1YWdlXSk7CiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdpc191cGxvYWRlcicsIFtoYXNfdXBsb2FkZWRdKTsKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2NvaG9ydCcsIFtjb2hvcnRdKTsKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2NvaG9ydF9hJywgWyhjb2hvcnQgPT09ICdBJykgPyAnWScgOiAnTiddKTsKIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2NvaG9ydF9iJywgWyhjb2hvcnQgPT09ICdCJykgPyAnWScgOiAnTiddKTsKCiAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnc2VjJywgWydmYWxzZSddKTsKCiBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdsb2dnZWRfaW4nLCBbJ2ZhbHNlJ10pOwoKICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdycHYnLCAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMSkudG9TdHJpbmcoKSk7CgogZ29vZ2xldGFnLnB1YmFkcygpLmVuYWJsZUFzeW5jUmVuZGVyaW5nKCk7CiBnb29nbGV0YWcuZW5hYmxlU2VydmljZXMoKTsKIH0pOwogPC9zY3JpcHQ+Cgo8c2NyaXB0PgohZnVuY3Rpb24oKXt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6ZXhwb3J0cyxyPVtdO2lmKGUucGVyZm9ybWFuY2V8fChlLnBlcmZvcm1hbmNlPXt9KSxlLnBlcmZvcm1hbmNlLm5vd3x8KGUucGVyZm9ybWFuY2Uubm93PXBlcmZvcm1hbmNlLm5vd3x8cGVyZm9ybWFuY2Uud2Via2l0Tm93fHxwZXJmb3JtYW5jZS5tc05vd3x8cGVyZm9ybWFuY2UubW96Tm93KSwhZS5wZXJmb3JtYW5jZS5ub3cpe3ZhciBuPURhdGUubm93P0RhdGUubm93KCk6K25ldyBEYXRlO3BlcmZvcm1hbmNlLnRpbWluZyYmcGVyZm9ybWFuY2UudGltaW5nJiYobj1wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0KSxlLnBlcmZvcm1hbmNlLm5vdz1mdW5jdGlvbigpe3ZhciBlPURhdGUubm93P0RhdGUubm93KCk6K25ldyBEYXRlO3JldHVybiBlLW59fWUucGVyZm9ybWFuY2UubWFya3x8KGUucGVyZm9ybWFuY2UubWFyaz1lLnBlcmZvcm1hbmNlLndlYmtpdE1hcms/ZS5wZXJmb3JtYW5jZS53ZWJraXRNYXJrOmZ1bmN0aW9uKG4pe3IuZm9yRWFjaChmdW5jdGlvbihlLHIsYSl7ZS5uYW1lPT09biYmYS5zcGxpY2UociwxKX0pLHIucHVzaCh7bmFtZTpuLGVudHJ5VHlwZToibWFyayIsc3RhcnRUaW1lOmUucGVyZm9ybWFuY2Uubm93KCksZHVyYXRpb246MH0pfSksZS5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlfHwoZS5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlPWUucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5VHlwZT9lLnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeVR5cGU6ZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24ocil7cmV0dXJuIHIuZW50cnlUeXBlPT09ZX07cmV0dXJuLTEhPT1bIm1hcmsiLCJtZWFzdXJlIl0uaW5kZXhPZihlKT9yLmZpbHRlcihuKTp2b2lkIDB9KSxlLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWV8fChlLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWU9ZS5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlOYW1lP2UucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZTpmdW5jdGlvbihlKXtyZXR1cm4gci5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIHIubmFtZT09PWV9KX0pLGUucGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlc3x8KGUucGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcz1lLnBlcmZvcm1hbmNlLndlYmtpdENsZWFyTWVhc3VyZXM/ZS5wZXJmb3JtYW5jZS53ZWJraXRDbGVhck1lYXN1cmVzOmZ1bmN0aW9uKCl7ci5mb3JFYWNoKGZ1bmN0aW9uKGUscixuKXsibWVhc3VyZSI9PT1lLmVudHJ5VHlwZSYmbi5zcGxpY2UociwxKX0pLHI9W119KSxlLnBlcmZvcm1hbmNlLmNsZWFyTWFya3N8fChlLnBlcmZvcm1hbmNlLmNsZWFyTWFya3M9ZS5wZXJmb3JtYW5jZS53ZWJraXRDbGVhck1hcmtzP2UucGVyZm9ybWFuY2Uud2Via2l0Q2xlYXJNYXJrczpmdW5jdGlvbigpe3IuZm9yRWFjaChmdW5jdGlvbihlLHIsbil7Im1hcmsiPT09ZS5lbnRyeVR5cGUmJm4uc3BsaWNlKHIsMSl9KSxyPVtdfSksZS5wZXJmb3JtYW5jZS5tZWFzdXJlfHwoZS5wZXJmb3JtYW5jZS5tZWFzdXJlPWUucGVyZm9ybWFuY2Uud2Via2l0TWVhc3VyZT9lLnBlcmZvcm1hbmNlLndlYmtpdE1lYXN1cmU6ZnVuY3Rpb24oZSxuLGEpe3ZhciB0PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gci5uYW1lPT09ZSYmIm1hcmsiPT09ci5lbnRyeVR5cGV9fSxvPXIuZmlsdGVyKHQobikpWzBdLG09ci5maWx0ZXIodChhKSlbMF0saT1tLnN0YXJ0VGltZS1vLnN0YXJ0VGltZTtyLnB1c2goe25hbWU6ZSxlbnRyeVR5cGU6Im1lYXN1cmUiLHN0YXJ0VGltZTpvLnN0YXJ0VGltZSxkdXJhdGlvbjppfSl9KX0oKSx3aW5kb3cubWFya1VzZXJUaW1lPWZ1bmN0aW9uKGUpe3ZhciByPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZSwwKX07cihmdW5jdGlvbigpe3dpbmRvdy5wZXJmb3JtYW5jZS5tYXJrKGUpLHdpbmRvdy5jb25zb2xlJiZjb25zb2xlLnRpbWVTdGFtcCYmY29uc29sZS50aW1lU3RhbXAoZSl9KX07CgooZnVuY3Rpb24oKSB7CiB3aW5kb3cubWFya1VzZXJUaW1lID0gZnVuY3Rpb24obGFiZWwpIHsKIHdpbmRvdy5fZ3RtID0gd2luZG93Ll9ndG0gfHwgW107CgogLy8gRXhpdCBlYXJseSBpZiB0aGUgYnJvd3NlciBjYW4ndCBoYW5kbGUgbmV3IHRoaW5ncwogaWYgKHR5cGVvZiBwZXJmb3JtYW5jZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHBlcmZvcm1hbmNlLm1hcmsgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHBlcmZvcm1hbmNlLmNsZWFyTWFya3MgIT09ICdmdW5jdGlvbicpIHsKIHJldHVybjsKIH0KCiB2YXIgdWlkID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKS50b1N0cmluZygpLnNwbGl0KCcwLicpWzFdKSArIG5ldyBEYXRlKCkuZ2V0VGltZSgpLAogbWFya19uYW1lID0gbGFiZWwgKyAnXycgKyB1aWQsCiBwYXJ0cyA9IGxhYmVsLnNwbGl0KCd8JyksCiBjYXRlZ29yeSA9IHBhcnRzWzBdLAogdmFyaWFibGUgPSBwYXJ0c1sxXSwKIGxhYmVsID0gcGFydHNbMl0sCiBtYXJrX3RpbWUsCiBtYXJrX2VudHJpZXM7CgogcGVyZm9ybWFuY2UubWFyayhtYXJrX25hbWUpOwogbWFya19lbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShtYXJrX25hbWUpOwoKIGlmIChtYXJrX2VudHJpZXMubGVuZ3RoKSB7CiBtYXJrX3RpbWUgPSBtYXJrX2VudHJpZXNbMF0uc3RhcnRUaW1lOwogd2luZG93Ll9ndG0ucHVzaCh7CiAnZXZlbnQnOiAncGVyZm9ybWFuY2VfdGltaW5nJywKICdwZXJmb3JtYW5jZV90aW1pbmcuY2F0ZWdvcnknOiBjYXRlZ29yeSwKICdwZXJmb3JtYW5jZV90aW1pbmcudmFyaWFibGUnOiB2YXJpYWJsZSwKICdwZXJmb3JtYW5jZV90aW1pbmcudGltZSc6IG1hcmtfdGltZSAvIDEwMDAsCiAncGVyZm9ybWFuY2VfdGltaW5nLmxhYmVsJzogbGFiZWwKIH0pOwogfQogfTsKfSgpKTsKPC9zY3JpcHQ+CgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vZi52aW1lb2Nkbi5jb20vanNfb3B0L2FibGluY29sbl9jb21iaW5lZC5taW4uanM/NDY0MjMwZjAiPjwvc2NyaXB0PgoKCgogPC9oZWFkPgogPGJvZHkgY2xhc3M9Im9uc2l0ZSAiPgogPGRpdiBpZD0id3JhcCIgY2xhc3M9Im91dGVyX3dyYXAiPgogCiA8ZGl2IGNsYXNzPSJib2R5X3JpYmJvbiBlc2lfcmliYm9uIj48L2Rpdj4KCiAKIAo8c2NyaXB0Pgogd2luZG93LnZpbWVvID0gd2luZG93LnZpbWVvIHx8IHt9Owo8L3NjcmlwdD4KPGRpdiBpZD0idG9wbmF2X2Rlc2t0b3AiIGNsYXNzPSJ0b3BuYXZfZGVza3RvcCAiIHJvbGU9ImJhbm5lciI+CiA8ZGl2IGNsYXNzPSJ0b3BuYXZfZGVza3RvcF93cmFwcGVyIj4KCiAgIDxhIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9sb2dvIiBocmVmPSIvL3ZpbWVvLmNvbSIgYWx0PSJHbyB0byBWaW1lbyBob21lIHBhZ2UiIHRpdGxlPSJHbyB0byBWaW1lbyBob21lIHBhZ2UiIGFyaWEtbGFiZWw9IkdvIHRvIFZpbWVvIGhvbWUgcGFnZSIgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6dmltZW9faG9tZSIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfaG9tZV9jbGljayI+CiAgPHN2ZyBhbHQ9IlZpbWVvIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjQwIj48cGF0aCBkPSJNMjIuNDQ4IDE0LjU3NWMtLjEwNCAyLjE3LTEuNjE4IDUuMTQ2LTQuNTQ0IDguOTEyLTMuMDMgMy45NDItNS41OSA1LjkxMi03LjY4NiA1LjkxMi0xLjI5NyAwLTIuMzk3LTEuMjA0LTMuMy0zLjYtLjYtMi4yLTEuMjAyLTQuMzk4LTEuNzk0LTYuNTk4LS42NjQtMi4zOTYtMS4zOC0zLjYtMi4xNDctMy42LS4xNjYgMC0uNzQ3LjM1NC0xLjc1MyAxLjA1bC0xLjA0OC0xLjM1YzEuMS0uOTY1IDIuMTktMS45MyAzLjI1Ny0yLjkwNSAxLjQ2My0xLjI2NSAyLjU3My0xLjk0IDMuMy0yLjAwMiAxLjczMi0uMTY2IDIuOCAxLjAxNyAzLjIwNSAzLjU1OC40MzUgMi43NC43MzYgNC40NC45MDIgNS4xMTUuNDk4IDIuMjcgMS4wNDggMy40MDIgMS42NSAzLjQwMi40NjYgMCAxLjE3Mi0uNzM3IDIuMTA1LTIuMjEuOTM0LTEuNDczIDEuNDMyLTIuNTkzIDEuNTA0LTMuMzcuMTMzLTEuMjc3LS4zNjUtMS45MS0xLjUwNi0xLjkxLS41MyAwLTEuMDguMTI1LTEuNjUuMzY0IDEuMS0zLjU5IDMuMTg2LTUuMzMzIDYuMjc3LTUuMjMgMi4yNzMuMDczIDMuMzUgMS41NTYgMy4yMjcgNC40Nm0xMy43NTUgNy4wMzRjLS45MzMgMS43NjQtMi4yMiAzLjM3LTMuODYgNC44MDMtMi4yNCAxLjkzLTQuNDcgMi45MDUtNi43IDIuOTA1LTEuMDM3LjAwMi0xLjgyNi0uMzMtMi4zNzYtLjk5NC0uNTUtLjY2My0uODEtMS41MzUtLjc3Ny0yLjYwMy4wMy0xLjEuMzcyLTIuOCAxLjAyNS01LjEwNC42NTQtMi4zMDMuOTc2LTMuNTM3Ljk3Ni0zLjcwMyAwLS44Ni0uMy0xLjI5Ny0uOTAyLTEuMjk3LS4xOTggMC0uNzcuMzUzLTEuNzAyIDEuMDQ4bC0xLjE1Mi0xLjM1YzEuMDctLjk2MiAyLjEzNy0xLjkyNyAzLjIwNi0yLjkwMiAxLjQzLTEuMjY2IDIuNS0xLjk0IDMuMjA1LTIuMDAyIDEuMS0uMTAzIDEuOTEuMjMgMi40MjguOTc2LjUxOC43NDcuNzA1IDEuNzIyLjU4IDIuOTE1LS40MzUgMi4wMzQtLjkwMiA0LjYwNy0xLjQgNy43My0uMDMgMS40My40ODggMi4xNDYgMS41NTYgMi4xNDYuNDY3IDAgMS4yOTctLjQ5OCAyLjUtMS40ODMuOTk2LS44MiAxLjgxNS0xLjU5OCAyLjQ1LTIuMzI0bC45NDIgMS4yNDRtLTQuMzU3LTE3LjhjLS4wMy44My0uNDQ2IDEuNjI4LTEuMjU1IDIuMzk1LS45Ljg2LTEuOTcgMS4yOTYtMy4yMDQgMS4yOTYtMS45IDAtMi44MjItLjgzLTIuNzUtMi40OS4wMzItLjg2LjU0LTEuNjkgMS41MjYtMi40OS45ODUtLjc5NyAyLjA3NC0xLjE5IDMuMjc4LTEuMTkuNzA1IDAgMS4yODYuMjcgMS43NTMuODIuNDY3LjU0LjY4NCAxLjEuNjUzIDEuNjZtMzUuNjEyIDE3LjhjLS45MzMgMS43NjMtMi4yMiAzLjM3LTMuODYgNC44MDItMi4yNCAxLjkzLTQuNDcgMi45MDQtNi43IDIuOTA0LTIuMTY4LjAwMi0zLjIxNi0xLjIwMi0zLjE1My0zLjU5OC4wMy0xLjA3LjIzOC0yLjM1NS42MjItMy44NS4zODQtMS41MDMuNTktMi42NjUuNjIzLTMuNTA1LjAzLTEuMjY1LS4zNTMtMS44OTgtMS4xNTItMS44OTgtLjg3IDAtMS45MSAxLjAzNi0zLjExMiAzLjEtMS4yNzYgMi4xNjgtMS45NiA0LjI3NC0yLjA2NCA2LjMwOC0uMDczIDEuNDMuMDcyIDIuNTQuNDI1IDMuMjk4LTIuMzI0LjA2NC0zLjk2My0uMzItNC44ODYtMS4xNS0uODMtLjczNy0xLjIxMi0xLjk1LTEuMTUtMy42NTIuMDMtMS4wNjguMTk4LTIuMTM3LjQ4OC0zLjIwNS4yOS0xLjA3LjQ1Ny0yLjAyMy40ODgtMi44NTMuMDYyLTEuMjM0LS4zODQtMS44NTctMS4zNS0xLjg1Ny0uODQgMC0xLjc0Ljk1NS0yLjcwNiAyLjg1My0uOTY2IDEuOS0xLjUwNSAzLjg5LTEuNjEgNS45NTYtLjA2IDEuODY3LjA1MyAzLjE3NC4zNjQgMy45LTIuMjkzLjA2Mi0zLjkyLS40MTUtNC44NzYtMS40NTItLjc5OC0uODYtMS4xNi0yLjE4LTEuMS0zLjk0Mi4wMzItLjg2LjE4OC0yLjA3NS40NTctMy42Mi4yOC0xLjU0Ni40MjUtMi43NS40NTctMy42Mi4wNjItLjYwMy0uMDgzLS45MDMtLjQ0Ni0uOTAzLS4xOTcgMC0uNzY4LjM0LTEuNzAyIDEuMDE1bC0xLjIwMy0xLjM0OGMuMTY4LS4xMzUgMS4yMTYtMS4xIDMuMTU2LTIuOTA1IDEuNC0xLjI5NyAyLjM1NC0xLjk3IDIuODUyLTIuMDAyLjg3Mi0uMDczIDEuNTY3LjI5IDIuMTA2IDEuMDguNTMuNzg3LjggMS42OS44IDIuNzI3IDAgLjMzMi0uMDMyLjY1NC0uMTA1Ljk1NC40OTctLjc2NiAxLjA4LTEuNDMgMS43NTItMiAxLjUzNy0xLjM0IDMuMjYtMi4wODYgNS4xNTctMi4yNTIgMS42NC0uMTM1IDIuOC4yNSAzLjUwNSAxLjE1Mi41Ny43MzYuODMgMS43ODQuOCAzLjE1My4yMzctLjE5OC40ODYtLjQxNi43NDYtLjY1NC43NjctLjkwMyAxLjUxNC0xLjYyIDIuMjUtMi4xNDggMS4yMzUtLjkwMiAyLjUyLTEuNCAzLjg2LTEuNTA0IDEuNTk3LS4xMzUgMi43NS4yNSAzLjQ1NCAxLjE1Mi42MDIuNzI2Ljg3IDEuNzc0LjggMy4xNDMtLjAzMi45MzMtLjI2IDIuMjgtLjY3NSA0LjA2NS0uNDE2IDEuNzczLS42MjQgMi44LS42MjQgMy4wNy0uMDMuNjk1LjAzIDEuMTgyLjE5NyAxLjQ0Mi4xNjYuMjcuNTcuMzk0IDEuMjAzLjM5NC40NjcgMCAxLjI5Ny0uNDk3IDIuNS0xLjQ4Mi45OTYtLjgyIDEuODE2LTEuNTk4IDIuNDUtMi4zMjRsLjk2MyAxLjI1NG0xOC43NjUtLjA1MmMtLjk2NSAxLjU5OC0yLjg3NCAzLjE5NS01LjcwNiA0Ljc5My0zLjUzOCAyLjAzMi03LjEyNyAzLjA1LTEwLjc1OCAzLjA1LTIuNzA2IDAtNC42MzYtLjkwNC01LjgwOC0yLjctLjgzLTEuMjMzLTEuMjM0LTIuNjk2LTEuMjAzLTQuNDA3LjAzLTIuNjk4IDEuMjM0LTUuMjcgMy42LTcuNzEgMi42MDMtMi42NjUgNS42NzQtNC4wMDMgOS4yMS00LjAwMyAzLjI3IDAgNSAxLjMyOCA1LjIwOCAzLjk5NC4xMzUgMS43MDItLjc5OCAzLjQ0NS0yLjggNS4yNC0yLjEzNyAxLjk2LTQuODI0IDMuMjE1LTguMDYgMy43NDQuNi44MyAxLjUwNCAxLjI0NSAyLjcwNyAxLjI0NSAyLjM5NiAwIDUuMDItLjYxMyA3Ljg2My0xLjgzNyAyLjAzMy0uODYgMy42My0xLjc1MyA0LjgwMy0yLjY3NmwuOTQ1IDEuMjY1bS0xMS4zNi01LjIyOGMuMDMyLS44OTItLjMzLTEuMzUtMS4xLTEuMzUtLjk5NCAwLTIuMDEuNjg2LTMuMDQ4IDIuMDY2LTEuMDM4IDEuMzgtMS41NjcgMi42OTctMS41OTggMy45NjItLjAyIDAtLjAyLjIxOCAwIC42NDMgMS42My0uNiAzLjA1LTEuNTE0IDQuMjQyLTIuNzM4Ljk2Ni0xLjA1OCAxLjQ2My0xLjkyIDEuNTA1LTIuNTgzbTI0Ljk0NiAxLjg2OGMtLjEzNSAzLjA3Mi0xLjI2NSA1LjcxNy0zLjQwMiA3Ljk0Ny0yLjEzNSAyLjIzLTQuNzkgMy4zNS03Ljk1NSAzLjM1LTIuNjM1IDAtNC42MzctLjg1LTYuMDA2LTIuNTUtLjk5Ny0xLjI2Ny0xLjU1Ny0yLjg1NC0xLjY1LTQuNzUyLS4xNjYtMi44NjMuODYtNS40OTggMy4xLTcuODk0IDIuNDA4LTIuNjY1IDUuNDI3LTMuOTkzIDkuMDU3LTMuOTkzIDIuMzM0IDAgNC4wOTguNzg4IDUuMyAyLjM0NCAxLjEzMiAxLjQ0MyAxLjY1IDMuMjkgMS41NTcgNS41NW0tNS42NjQtLjE4NWMuMDMtLjkwMy0uMDk0LTEuNzMzLS4zNzQtMi40OC0uMjgtLjc0Ny0uNjk1LTEuMTMtMS4yMjQtMS4xMy0xLjcwMiAwLTMuMTAyLjkyMy00LjIwMiAyLjc2LS45MzMgMS41MDMtMS40MyAzLjExLTEuNTA0IDQuODEyLS4wMy44NC4xMTQgMS41NzcuNDQ2IDIuMjEuMzY0LjczNi44ODIgMS4xIDEuNTU2IDEuMSAxLjUwNSAwIDIuNzktLjg4MyAzLjg2LTIuNjU2Ljg5Mi0xLjQ3MiAxLjM4LTMuMDA4IDEuNDQtNC42MTVoLjAwMnoiIGZpbGw9IiMxMTIyMzMiLz48L3N2Zz4KICA8L2E+CiAKICAgPG5hdiBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudSIgcm9sZT0ibmF2aWdhdGlvbiIgYXJpYS1sYWJlbD0iTWFpbiBtZW51Ij4KIDx1bCBjbGFzcz0idG9wbmF2X21lbnVfZGVza3RvcF9tYWluIiByb2xlPSJtZW51YmFyIj4KCiAgCiAKIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyIgZGF0YS1tZW51LWlkPSJqb2luIj4KIDxhIGNsYXNzPSJ0b3BuYXZfbWVudV9qb2luIGpzLXRvcG5hdl9tZW51X2F1dGgiIG9uY2xpY2s9ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7dmltZW8uTW9kYWwuY3JlYXRlKHtzaXplOid4c21hbGwnLGNvbnRlbnQ6Jy9qb2luP21vZGFsPW5ldyd9KSIgZGF0YS1nYS1ldmVudC1jbGljaz0idG9wX25hdnxqb2luIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpqb2luIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9qb2luX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9qb2luIiB0aXRsZT0iQmVjb21lIGEgVmltZW8gbWVtYmVyIiB0YWJpbmRleD0iMCIgcmVsPSJ0b2dnbGUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1vd25zPSJ0b3BuYXZfam9pbiI+CiBKb2luIDwvYT4KCiAgIDwvbGk+CiAKIAogPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zIiBkYXRhLW1lbnUtaWQ9ImxvZ2luIj4KIDxhIGNsYXNzPSJqcy10b3BuYXZfbWVudV9hdXRoIiBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO3ZpbWVvLlNlc3Npb24uY3JlYXRlKCdyZWcnLCBudWxsLCB0cnVlKTsiIGRhdGEtZ2EtZXZlbnQtY2xpY2s9InRvcF9uYXZ8bG9naW4iIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50OmxvZ2luIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9sb2dpbl9jbGljayIgaHJlZj0iLy92aW1lby5jb20vbG9nX2luIiB0aXRsZT0iTG9nIGluIHRvIHlvdXIgYWNjb3VudCIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X2xvZ2luIj4KIExvZyBpbiA8L2E+CgogICA8L2xpPgogCiAKIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyIgZGF0YS1tZW51LWlkPSJjcmVhdGUiPgogPGEgY2xhc3M9ImpzLXRvcG5hdi1jcmVhdGUgdG9wbmF2X2hhc19kcm9wZG93biB0b3BuYXZfaWNvbl9jaGV2cm9uX2EiIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om1hbmFnZV92aWRlb3N8a2V5d29yZDpob3N0X3ZpZGVvcyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9jcmVhdGUiIHRpdGxlPSIiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl9jcmVhdGUiPgogSG9zdCB2aWRlb3MgPC9hPgoKICAgPHVsIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duIiByb2xlPSJtZW51IiBhcmlhLWhpZGRlbj0idHJ1ZSIgaWQ9InRvcG5hdl9jcmVhdGUiPgogIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omhvc3RfdmlkZW9zfGtleXdvcmQ6Y29tcGFyZV9wbGFucyIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfY3JlYXRlX21lbWJlcnNoaXBfb3B0aW9uc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vdXBncmFkZSIgdGl0bGU9IlVwZ3JhZGUgb3IgY29tcGFyZSBvdXIgcGxhbnMiPkNvbXBhcmUgcGxhbnM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOnByb2Zlc3Npb25hbHMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9tZW1iZXJzaGlwX29wdGlvbnNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3Byb2Zlc3Npb25hbHMiIHRpdGxlPSJHZXQgcHJvZmVzc2lvbmFsIHZpZGVvIGhvc3RpbmcgdG9vbHMiPlByb2Zlc3Npb25hbHM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpob3N0X3ZpZGVvc3xrZXl3b3JkOmJ1c2luZXNzZXMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X2NyZWF0ZV9tZW1iZXJzaGlwX29wdGlvbnNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2J1c2luZXNzIiB0aXRsZT0iR2V0IHBvd2VyZnVsIHZpZGVvIG1hcmtldGluZyB0b29scyI+QnVzaW5lc3NlczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omhvc3RfdmlkZW9zfGtleXdvcmQ6dmlkZW9fbG92ZXJzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfbWVtYmVyc2hpcF9vcHRpb25zX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9ldmVyeW9uZSIgdGl0bGU9IlVwbG9hZCBhbmQgc2hhcmUgeW91ciB2aWRlb3MiPlZpZGVvIGxvdmVyczwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Omhvc3RfdmlkZW9zfGtleXdvcmQ6dmlkZW9fc2Nob29sIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9jcmVhdGVfdmlkZW9fc2Nob29sX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS92aWRlb3NjaG9vbCIgdGl0bGU9IkxlYXJuIGhvdyB0byBtYWtlIGJldHRlciB2aWRlb3MiPlZpZGVvIFNjaG9vbDwvYT4KIDwvbGk+CiAgIDwvdWw+CiAgPC9saT4KIAogCiA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXMiIGRhdGEtbWVudS1pZD0id2F0Y2giPgogPGEgY2xhc3M9InRvcG5hdl9oYXNfZHJvcGRvd24gdG9wbmF2X2ljb25fY2hldnJvbl9hIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOndhdGNoIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9jbGljayIgaHJlZj0iLy92aW1lby5jb20vd2F0Y2giIHRpdGxlPSIiIHRhYmluZGV4PSIwIiByZWw9InRvZ2dsZSIgcm9sZT0iYnV0dG9uIiBhcmlhLW93bnM9InRvcG5hdl93YXRjaCI+CiBXYXRjaCA8L2E+CgogICA8dWwgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd24iIHJvbGU9Im1lbnUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBpZD0idG9wbmF2X3dhdGNoIj4KICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOnN0YWZmX3BpY2tzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9zdGFmZl9waWNrc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vY2hhbm5lbHMvc3RhZmZwaWNrcyIgdGl0bGU9IlRoZSBiZXN0IHZpZGVvcyBvbiBWaW1lbywgY3VyYXRlZCBkYWlseSBieSBvdXIgdGVhbSI+U3RhZmYgUGlja3M8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOmNhdGVnb3JpZXMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2NhdGVnb3JpZXNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL2NhdGVnb3JpZXMiIHRpdGxlPSJCcm93c2UgdmlkZW9zIGJ5IGludGVyZXN0LCBnZW5yZSwgYW5kIG1vcmUiPkNhdGVnb3JpZXM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOmNoYW5uZWxzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl93YXRjaF9jaGFubmVsc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vY2hhbm5lbHMiIHRpdGxlPSJWaWV3IHZpZGVvIHBsYXlsaXN0cyBjcmVhdGVkIGFuZCBjdXJhdGVkIGJ5IG90aGVyIG1lbWJlcnMiPkNoYW5uZWxzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6d2F0Y2h8a2V5d29yZDpncm91cHMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX2dyb3Vwc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vZ3JvdXBzIiB0aXRsZT0iV2F0Y2ggYW5kIGRpc2N1c3MgdmlkZW9zIHdpdGggb3RoZXJzIj5Hcm91cHM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOmFwcCIgZGF0YS1ndG0tY2xpY2s9InRvcF9uYXZfd2F0Y2hfYXBwc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vZXZlcnl3aGVyZSIgdGl0bGU9IldhdGNoIFZpbWVvIHZpZGVvcyBvbiBUVnMsIHBob25lcywgdGFibGV0cywgYW5kIG1vcmUiPkFwcHM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDp3YXRjaHxrZXl3b3JkOm1vcmUiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3dhdGNoX21vcmVfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL3dhdGNoIiB0aXRsZT0iRGlzY292ZXIgbW9yZSB3YXlzIHRvIHdhdGNoIG9uIFZpbWVvIj5Nb3Jl4oCmPC9hPgogPC9saT4KICAgPC91bD4KICA8L2xpPgogCiAKIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtcyIgZGF0YS1tZW51LWlkPSJvbmRlbWFuZCI+CiA8YSBjbGFzcz0idG9wbmF2X2hhc19kcm9wZG93biB0b3BuYXZfaXNfb25kZW1hbmQgdG9wbmF2X2ljb25fY2hldnJvbl9hIiBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDpvbl9kZW1hbmQiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZCIgdGl0bGU9IldhdGNoIG1vdmllcywgc2VyaWVzLCBhbmQgbW9yZSIgdGFiaW5kZXg9IjAiIHJlbD0idG9nZ2xlIiByb2xlPSJidXR0b24iIGFyaWEtb3ducz0idG9wbmF2X29uZGVtYW5kIj4KIE9uIERlbWFuZCA8L2E+CgogICA8dWwgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd24iIHJvbGU9Im1lbnUiIGFyaWEtaGlkZGVuPSJ0cnVlIiBpZD0idG9wbmF2X29uZGVtYW5kIj4KICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDp3aGF0c19uZXciIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX3doYXRzX25ld19jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQiIHRpdGxlPSJTZWUgbmV3IGFuZCBub3Rld29ydGh5IHRpdGxlcyBhZGRlZCB0byBPbiBEZW1hbmQiPldoYXTigJlzIG5ldzwvYT4KIDwvbGk+CiAgIAogIDxsaSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfbWVudV9pdGVtc19kcm9wZG93bl9pdGVtIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIj4KIDxhIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29udGFpbmVyOnRvcF9uYXZ8Y29tcG9uZW50Om9uX2RlbWFuZHxrZXl3b3JkOmRpc2NvdmVyIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF9kaXNjb3Zlcl9jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQvZGlzY292ZXIiIHRpdGxlPSJEaXNjb3ZlciB0aXRsZXMgb3VyIHRlYW0gcmVjb21tZW5kcyI+RGlzY292ZXI8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDpnZW5yZXMiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X29uZGVtYW5kX2dlbnJlc19jbGljayIgaHJlZj0iLy92aW1lby5jb20vb25kZW1hbmQvYnJvd3NlIiB0aXRsZT0iQnJvd3NlIHRpdGxlcyBieSBnZW5yZSI+R2VucmVzPC9hPgogPC9saT4KICAgCiAgPGxpIGNsYXNzPSJ0b3BuYXZfZGVza3RvcF9tZW51X2l0ZW1zX2Ryb3Bkb3duX2l0ZW0iIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiPgogPGEgZGF0YS1mYXRhbC1hdHRyYWN0aW9uPSJjb250YWluZXI6dG9wX25hdnxjb21wb25lbnQ6b25fZGVtYW5kfGtleXdvcmQ6dHZfc2VyaWVzIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF90dl9zZXJpZXNfY2xpY2siIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kL2Jyb3dzZS90ditzZXJpZXMiIHRpdGxlPSJCcm93c2Ugc2VyaWVzIGFuZCBUViBzaG93cyI+VFYgKyBTZXJpZXM8L2E+CiA8L2xpPgogICAKICA8bGkgY2xhc3M9InRvcG5hdl9kZXNrdG9wX21lbnVfaXRlbXNfZHJvcGRvd25faXRlbSIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSI+CiA8YSBkYXRhLWZhdGFsLWF0dHJhY3Rpb249ImNvbnRhaW5lcjp0b3BfbmF2fGNvbXBvbmVudDpvbl9kZW1hbmR8a2V5d29yZDpzdGFydF9zZWxsaW5nIiBkYXRhLWd0bS1jbGljaz0idG9wX25hdl9vbmRlbWFuZF9zZWxsX2NsaWNrIiBocmVmPSIvL3ZpbWVvLmNvbS9vbmRlbWFuZC9zdGFydHNlbGxpbmciIHRpdGxlPSJTZWxsIGRpcmVjdGx5IHRvIHlvdXIgZmFucyB3aXRoIFZpbWVvIE9uIERlbWFuZCI+U3RhcnQgc2VsbGluZzwvYT4KIDwvbGk+CiAgIDwvdWw+CiAgPC9saT4KIAogPC91bD4KIDwvbmF2PjwhLS0gLy50b3BuYXZfZGVza3RvcF9tZW51IC0tPgogCiAgIDxkaXYgY2xhc3M9InRvcG5hdl9tZW51X3JpZ2h0Ij4KCiAgIDxmb3JtIGNsYXNzPSJ0b3BuYXZfbWVudV9zZWFyY2giIGFjdGlvbj0iLy92aW1lby5jb20vc2VhcmNoIiBtZXRob2Q9ImdldCIgcm9sZT0ic2VhcmNoIiBkYXRhLWRzLXByb3RlY3Rpb24+CiA8aW5wdXQgY2xhc3M9InRvcG5hdl9tZW51X3NlYXJjaF9pbnB1dCBqcy10b3BuYXZfbWVudV9zZWFyY2hfaW5wdXQganMtc2VhcmNoX2F1dG9jb21wbGV0ZSIgIHR5cGU9InRleHQiIG5hbWU9InEiIHRpdGxlPSJTZWFyY2ggdmlkZW9zLCBwZW9wbGUsIGFuZCBtb3JlIiB2YWx1ZT0iIiBhcmlhLWxhYmVsPSJTZWFyY2ggdmlkZW9zLCBwZW9wbGUsIGFuZCBtb3JlIiBwbGFjZWhvbGRlcj0iU2VhcmNoIHZpZGVvcywgcGVvcGxlLCBhbmQgbW9yZSIgYXV0b2NvbXBsZXRlPSJvZmYiPjxidXR0b24gY2xhc3M9InRvcG5hdl9tZW51X3NlYXJjaF9zdWJtaXQgdG9wbmF2X2ljb25fc2VhcmNoX2IiIHR5cGU9InN1Ym1pdCIgYXJpYS1sYWJlbD0iU2VhcmNoIj48L2J1dHRvbj4KIDwvZm9ybT4KIAogIAogIAogICA8YSBjbGFzcz0idG9wbmF2X2Rlc2t0b3BfdXBsb2FkIHRvcG5hdl9pY29uX3VwbG9hZF9iIiBocmVmPSIvdXBsb2FkIiB0aXRsZT0iVXBsb2FkIHlvdXIgdmlkZW9zIiByb2xlPSJidXR0b24iIGRhdGEtZmF0YWwtYXR0cmFjdGlvbj0iY29tcG9uZW50OnRvcF9uYXZ8a2V5d29yZDp1cGxvYWQiIGRhdGEtZ3RtLWNsaWNrPSJ0b3BfbmF2X3VwbG9hZF9jbGljayI+PHNwYW4+VXBsb2FkPC9zcGFuPjwvYT4KICA8L2Rpdj48IS0tIC8udG9wbmF2X21lbnVfcmlnaHQgLS0+CiAgPC9kaXY+PCEtLSAvLnRvcG5hdl9kZXNrdG9wX3dyYXBwZXIgLS0+CjwvZGl2PgoKIDxuYXYgaWQ9InRvcG5hdl9tb2JpbGUiIGNsYXNzPSJ0b3BuYXZfbW9iaWxlICIgcm9sZT0iYmFubmVyIj4KCiA8ZGl2IGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2JhciI+CiAgPGJ1dHRvbiBjbGFzcz0idG9wbmF2X21vYmlsZV9idXR0b24gdG9wbmF2X21vYmlsZV9wdWxsX2xlZnQgdG9wbmF2X21vYmlsZV9oZWFkZXJfbG9nbyBqcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9sb2dvIHRvcG5hdl9pY29uX21vYmlsZV92bG9nb19iIj4KICA8L2J1dHRvbj4KIDxhIGhyZWY9Ii8vdmltZW8uY29tL3NlYXJjaCIgY2xhc3M9InRvcG5hdl9tb2JpbGVfYnV0dG9uIHRvcG5hdl9tb2JpbGVfcHVsbF9yaWdodCB0b3BuYXZfbW9iaWxlX2hlYWRlcl9zZWFyY2ggdG9wbmF2X2ljb25fbW9iaWxlX3NlYXJjaF9iIj4gPC9hPgogPHNwYW4gY2xhc3M9InRvcG5hdl9tb2JpbGVfaGVhZGVyX3RpdGxlIj48L3NwYW4+CiA8L2Rpdj4KCiAgPHNlY3Rpb24gY2xhc3M9InRvcG5hdl9tb2JpbGVfbWVudSBqcy10b3BuYXZfbW9iaWxlX21lbnVfbWFpbiI+CiA8ZGl2IGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2JhciI+CiA8YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfbGVmdCBqcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9jbG9zZSB0b3BuYXZfaWNvbl9tb2JpbGVfeF9iIj4gPC9idXR0b24+CiA8YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfcmlnaHQganMtdG9wbmF2X21vYmlsZV9oZWFkZXJfc2V0dGluZ3MgdG9wbmF2X2ljb25fbW9iaWxlX2dlYXJfYiI+IDwvYnV0dG9uPgogPC9kaXY+CgogPHVsPgogICA8bGk+CiA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9InRvcG5hdl9pY29uX21vYmlsZV9jaGFubmVsX2IgIiBocmVmPSIvL3ZpbWVvLmNvbS8iPgogU3RhZmYgUGlja3MgPC9hPgogPC9saT4KICAgPGxpPgogPGEgZGF0YS1hY3Rpb249Imxhc3RfcGFnZSIgZGF0YS1icmVlemUtaWdub3JlIGNsYXNzPSJ0b3BuYXZfaWNvbl9tb2JpbGVfYXZhdGFyX2IgIiBocmVmPSIvbG9nX2luIj4KIDxzcGFuIGNsYXNzPSJtZW51X2F1dGgiPkpvaW4gb3IgbG9nIGluPC9zcGFuPiA8L2E+CiA8L2xpPgogICA8bGk+CiA8YSBkYXRhLWJyZWV6ZS1pZ25vcmUgY2xhc3M9InRvcG5hdl9pY29uX21vYmlsZV9zdGFyX2IiIGhyZWY9Ii8vdmltZW8uY29tL3dhdGNoIj4KIFdhdGNoIDwvYT4KIDwvbGk+CiAgIDxsaT4KIDxhIG9uY2xpY2s9InZpbWVvLm1vYmlsZS5kZXNrdG9wX3NoYXJlZC5fdXBsb2FkKHRoaXMpOyByZXR1cm4gZmFsc2U7IiBkYXRhLWJyZWV6ZS1pZ25vcmUgY2xhc3M9InRvcG5hdl9pY29uX21vYmlsZV91cGxvYWRfYiIgaHJlZj0iLy92aW1lby5jb20vdXBsb2FkIj4KIFVwbG9hZCA8L2E+CiA8L2xpPgogICA8bGk+CiA8YSBkYXRhLWJyZWV6ZS1pZ25vcmUgY2xhc3M9InRvcG5hdl9pY29uX21vYmlsZV92b2RfYiAiIGhyZWY9Ii8vdmltZW8uY29tL29uZGVtYW5kIj4KIE9uIERlbWFuZCA8L2E+CiA8L2xpPgogICA8bGk+CiA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9InRvcG5hdl9pY29uX21vYmlsZV9mb3Jnb3RfYiAiIGhyZWY9Imh0dHBzOi8vaGVscC52aW1lby5jb20vaGMvZW4tdXMiPgogSGVscCA8L2E+CiA8L2xpPgogIDwvdWw+CiA8L3NlY3Rpb24+CgogIDxzZWN0aW9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX21lbnUgdG9wbmF2X21vYmlsZV9tZW51X3NldHRpbmdzIGpzLXRvcG5hdl9tb2JpbGVfbWVudV9zZXR0aW5ncyI+CiA8ZGl2IGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2JhciI+CiA8YnV0dG9uIGNsYXNzPSJ0b3BuYXZfbW9iaWxlX2J1dHRvbiB0b3BuYXZfbW9iaWxlX3B1bGxfbGVmdCBqcy10b3BuYXZfbW9iaWxlX2hlYWRlcl9zZXR0aW5zX2Nsb3NlIHRvcG5hdl9pY29uX21vYmlsZV9hcnJvd2xlZnRfYiI+IDwvYnV0dG9uPgogPHNwYW4gY2xhc3M9InRvcG5hdl9tb2JpbGVfaGVhZGVyX3RpdGxlIj5Nb3JlIHN0dWZmPC9zcGFuPgogPC9kaXY+CgogPHVsPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii8vdmltZW8uY29tL3Rlcm1zIj4KIFRlcm1zIG9mIFNlcnZpY2UgPC9hPgogICA8L2xpPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii8vdmltZW8uY29tL3ByaXZhY3kiPgogUHJpdmFjeSBQb2xpY3kgPC9hPgogICA8L2xpPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0ibWVudS5jbG9zZSIgY2xhc3M9IiAiIGhyZWY9Ii8vdmltZW8uY29tL2RtY2EiPgogQ29weXJpZ2h0IDwvYT4KICAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS9jb29raWVfcG9saWN5Ij4KIENvb2tpZXMgPC9hPgogICA8L2xpPgogIDxsaT4KICA8YSBkYXRhLWFjdGlvbj0iZGVza3RvcCIgb25jbGljaz0idmltZW8ubW9iaWxlLmRlc2t0b3Bfc2hhcmVkLl9zMmRzKCk7IHJldHVybiBmYWxzZSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj4KIERlc2t0b3Agc2l0ZSA8L2E+CiAgIDwvbGk+CiAgPGxpPgogIDxhIGxhbmd1YWdlIGhyZWY9IiMiPgogTGFuZ3VhZ2UgPC9hPgogICA8c2VsZWN0IG9uY2hhbmdlPSJ2aW1lby5tb2JpbGUuZGVza3RvcF9zaGFyZWQuX3MybCh0aGlzKSIgdGl0bGU9IkNob29zZSBhIGRpZmZlcmVudCBsYW5ndWFnZSIgY2xhc3M9InRvcG5hdl9tb2JpbGVfbWVudV9zZXR0aW5nc19sYW5ndWFnZSI+CiAgIDxvcHRpb24gY2xhc3M9InNlbGVjdGVkIiBzZWxlY3RlZCB2YWx1ZT0iZW4iCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogRW5nbGlzaCA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJlcyIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBFc3Bhw7FvbCA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJkZS1ERSIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiBEZXV0c2NoIDwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9ImZyLUZSIgogbmFtZT0ic2VsZWN0X2xhbmd1YWdlIj4KIEZyYW7Dp2FpcyA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJqYS1KUCIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiDml6XmnKzoqp4gPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0icHQtQlIiCiBuYW1lPSJzZWxlY3RfbGFuZ3VhZ2UiPgogUG9ydHVndcOqcyA8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJrby1LUiIKIG5hbWU9InNlbGVjdF9sYW5ndWFnZSI+CiDtlZzqta3slrQgPC9vcHRpb24+CiAgPC9zZWxlY3Q+CiAgPC9saT4KICA8bGk+CiAgPGEgZGF0YS1hY3Rpb249Im1lbnUuY2xvc2UiIGNsYXNzPSIgIiBocmVmPSIvL3ZpbWVvLmNvbS9mYXEiPgogRkFRIDwvYT4KICAgPC9saT4KICA8L3VsPgoKIDxkaXYgY2xhc3M9InRvcG5hdl9tb2JpbGVfbWVudV9jb3B5cmlnaHQiPlRNICsgwqkgMjAxNyBWaW1lbywgSW5jLjwvZGl2PgogPC9zZWN0aW9uPgo8L25hdj4KCjxzY3JpcHQ+CiFmdW5jdGlvbihhLGIpe2EudmltZW89YS52aW1lb3x8e30sdmltZW8ubW9iaWxlPXZpbWVvLm1vYmlsZXx8e30sVmltZW89dmltZW8ubW9iaWxlfHx7fSxWaW1lby5kZXNrdG9wX3NoYXJlZD1WaW1lby5kZXNrdG9wX3NoYXJlZHx8e307dmFyIGM9Yi5nZXRFbGVtZW50QnlJZCgidG9wbmF2X2Rlc2t0b3AiKSxkPSJvbnRvdWNoc3RhcnQiaW4gYT8idG91Y2hzdGFydCI6YS5Qb2ludGVyRXZlbnQ/InBvaW50ZXJkb3duIjphLk1TUG9pbnRlckV2ZW50PyJNU1BvaW50ZXJEb3duIjoiY2xpY2siOyJjbGljayIhPT1kJiZjLmFkZEV2ZW50TGlzdGVuZXIoZCxmdW5jdGlvbihhKXt2YXIgYj0iaW1nIj09PWEudGFyZ2V0LnRhZ05hbWUudG9Mb3dlckNhc2UoKT9hLnRhcmdldC5wYXJlbnROb2RlOmEudGFyZ2V0O2IuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0b3BuYXZfaGFzX2Ryb3Bkb3duIikmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSl9LCExKSxjLmFkZEV2ZW50TGlzdGVuZXIoZCxmdW5jdGlvbihjKXtjLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImpzLXRvcG5hdl9tZW51X2F1dGgiKSYmKGIuY29va2llPSJsYXN0X3BhZ2U9IitlbmNvZGVVUklDb21wb25lbnQoYS5sb2NhdGlvbi5wYXRobmFtZSkrIjtwYXRoPScvJzttYXgtYWdlPTE4MDA7Iil9LCExKSxWaW1lby5kZXNrdG9wX3NoYXJlZC5fdXBsb2FkPWZ1bmN0aW9uKGMpe2lmKC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgZixnLGQ9InZpbWVvOi8vYXBwLnZpbWVvLmNvbS91cGxvYWQ/cmVmPW1vYmlsZXdlYiIsZT0iL3VwbG9hZCI7cmV0dXJuIGY9ZnVuY3Rpb24oKXtiLndlYmtpdEhpZGRlbnx8KGEubG9jYXRpb249ZSl9LGc9ZnVuY3Rpb24oKXthLmxvY2F0aW9uPWQsc2V0VGltZW91dChmLDI1KX0sZygpLCExfWEubG9jYXRpb249Yy5ocmVmfSxWaW1lby5kZXNrdG9wX3NoYXJlZC5fczJkcz1mdW5jdGlvbigpe2IuY29va2llPSJvcHRfb3V0X21vYmlsZT0xO2V4cGlyZXM9RnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBHTVQ7ZG9tYWluPSIrdmltZW8uZG9tYWluLGEubG9jYXRpb24ucmVsb2FkKCl9LFZpbWVvLmRlc2t0b3Bfc2hhcmVkLl9zMmw9ZnVuY3Rpb24oYil7dmFyIGM9Yi52YWx1ZSxkPW5ldyBYTUxIdHRwUmVxdWVzdDtkLm9wZW4oIlBPU1QiLCIvc2V0dGluZ3MvbG9jYWxlIiksZC5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKSxkLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpLGQuc2VuZCgibG9jYWxlPSIrYysiJnRva2VuPSIrdmltZW8ueHNyZnQpLGQub25sb2FkPWZ1bmN0aW9uKCl7MjAwPT09ZC5zdGF0dXMmJmEubG9jYXRpb24ucmVsb2FkKCl9fTt2YXIgZT0iY2xpY2siLGY9ImJsb2NrIixnPSJub25lIixoPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX2xvZ28iKTtoJiZoLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLGEucHJldmVudERlZmF1bHQoKTt2YXIgYz1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX21lbnVfbWFpbiIpO2Muc3R5bGUuZGlzcGxheT1mO3ZhciBkPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX2Nsb3NlIik7ZC5hZGRFdmVudExpc3RlbmVyKGUsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCksYy5zdHlsZS5kaXNwbGF5PWd9KTt2YXIgaD1iLnF1ZXJ5U2VsZWN0b3IoIi5qcy10b3BuYXZfbW9iaWxlX21lbnVfc2V0dGluZ3MiKSxpPWIucXVlcnlTZWxlY3RvcigiLmpzLXRvcG5hdl9tb2JpbGVfaGVhZGVyX3NldHRpbmdzIik7aS5hZGRFdmVudExpc3RlbmVyKGUsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSxhLnByZXZlbnREZWZhdWx0KCksaC5zdHlsZS5kaXNwbGF5PWYsYy5zdHlsZS5kaXNwbGF5PWc7dmFyIGQ9Yi5xdWVyeVNlbGVjdG9yKCIuanMtdG9wbmF2X21vYmlsZV9oZWFkZXJfc2V0dGluc19jbG9zZSIpO2QuYWRkRXZlbnRMaXN0ZW5lcihlLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCksYS5wcmV2ZW50RGVmYXVsdCgpLGguc3R5bGUuZGlzcGxheT1nLGMuc3R5bGUuZGlzcGxheT1mfSl9KX0sITEpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmdW5jdGlvbiBmKGEpe3ZhciBiPW5ldyBYTUxIdHRwUmVxdWVzdDtiLm9wZW4oIlBPU1QiLCIvc2V0dGluZ3MvbmF2IiksYi5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKSxiLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpLGIuc2VuZCgibWVzc2FnZV9zdGF0ZT0iK2ErIiZ0b2tlbj0iK3ZpbWVvLnhzcmZ0KSxiLm9ubG9hZD1mdW5jdGlvbigpe319dmFyIGE9Yi5nZXRFbGVtZW50QnlJZCgidG9wbmF2X21lbnVfYXZhdGFyIik7aWYoYSl7dmFyIGM9YS5xdWVyeVNlbGVjdG9yKCIudG9wbmF2X21lbnVfYXZhdGFyX2J1YmJsZSIpLGU9KGEucXVlcnlTZWxlY3RvcigiI3RvcG5hdl91c2VyX2Ryb3Bkb3duIiksITEpO2MmJmMuY2xhc3NMaXN0LmFkZCgib24iKSxhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtlfHwoZT0hMCxjJiZjLmNsYXNzTGlzdC5yZW1vdmUoIm9uIiksZigxKSl9LCExKX19LDFlMyl9KHdpbmRvdyxkb2N1bWVudCk7Cjwvc2NyaXB0PgoKIDxkaXYgY2xhc3M9IndyYXBfY29udGVudCI+CiAKCgoKPGRpdiBjbGFzcz0iZXhjZXB0aW9uX2NvbnRhaW5lciI+CiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fc2VjdGlvbiBleGNlcHRpb25fc2VjdGlvbi0taW5mbyI+CiA8ZGl2IGNsYXNzPSJleGNlcHRpb25fc2hydWdfbyI+PC9kaXY+CiA8aDEgY2xhc3M9ImV4Y2VwdGlvbl90aXRsZSBpcmlzX2hlYWRlciI+U29ycnksIHdlIGNvdWxkbuKAmXQgZmluZCB0aGF0IHBhZ2U8L2gxPgoKIDxkaXYgY2xhc3M9ImV4Y2VwdGlvbl9jb250ZW50Ij4KIDxwIGNsYXNzPSJleGNlcHRpb25fbWVzc2FnZSI+CiAgPC9wPgoKIDxkaXYgY2xhc3M9ImV4Y2VwdGlvbl9ub3RpZmljYXRpb24gaXJpc19ub3RpZmljYXRpb24gaXJpc19ub3RpZmljYXRpb24tLXVwc2VsbCI+CiA8ZGl2IGNsYXNzPSJpcmlzX25vdGlmaWNhdGlvbi0tdXBzZWxsLWljb24iPgogPHNwYW4gY2xhc3M9ImlyaXNfaWMgaXMtLTE2Ij48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNNyA0aDJ2Mkg3VjR6bTAgM2gydjVIN1Y3eiIvPjwvc3ZnPjwvc3Bhbj4KIDwvZGl2PgoKIDxkaXYgY2xhc3M9ImlyaXNfbm90aWZpY2F0aW9uLWhlYWRlciI+CiA8c3Ryb25nPlJlYXNvbnMgeW91IG1pZ2h0IGJlIHNlZWluZyB0aGlzIHBhZ2U8L3N0cm9uZz4KIDwvZGl2PgoKIDx1bCBjbGFzcz0iaXJpc19ub3RpZmljYXRpb24tbGlzdCI+CiAgPGxpPkl0IGV4aXN0cywgYnV0IHlvdSBkb27igJl0IGhhdmUgcGVybWlzc2lvbiB0byBzZWUgaXQsIG9yIHlvdSBuZWVkIHRvIDxhIG9uY2xpY2s9InZpbWVvLlNlc3Npb24uY3JlYXRlKCkiPmxvZyBpbjwvYT4uPC9saT4KICA8bGk+Tm90aGluZyBoYXMgZXZlciBleGlzdGVkIGhlcmUuIFNwb29reS48L2xpPgogPGxpPlNvbWV0aGluZyBvbmNlIGxpdmVkIGhlcmUsIGJ1dCBoYXMgYmVlbiBkZWxldGVkLjwvbGk+CiA8L3VsPgo8L2Rpdj4KCiAgPGZvcm0gY2xhc3M9ImV4Y2VwdGlvbl9zZWFyY2giIGFjdGlvbj0iL3NlYXJjaCIgbWV0aG9kPSJnZXQiPgogPGRpdiBjbGFzcz0iZXhjZXB0aW9uX3NlYXJjaC1pbnB1dC13cmFwcGVyIj4KIDxpbnB1dCBjbGFzcz0iZXhjZXB0aW9uX3NlYXJjaC1pbnB1dCBpcmlzX2lucHV0IGlyaXNfaW5wdXQtLXNlYXJjaCBqcy1zZWFyY2hfYXV0b2NvbXBsZXRlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJxIiBwbGFjZWhvbGRlcj0iU2VhcmNoIHZpZGVvcywgcGVvcGxlLCBhbmQgbW9yZSIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+CiA8L2Rpdj4KIDxidXR0b24gY2xhc3M9ImV4Y2VwdGlvbl9zZWFyY2gtYnV0dG9uIGlyaXNfYnRuIGlyaXNfYnRuLS1wcmltYXJ5Ij4KIDxzcGFuIGNsYXNzPSJpcmlzX2J0bi1jb250ZW50Ij5TZWFyY2g8L3NwYW4+CiA8L2J1dHRvbj4KIDwvZm9ybT4KICA8L2Rpdj4KIDwvZGl2PgoKIDxkaXYgY2xhc3M9ImV4Y2VwdGlvbl9hdXhpbGlhcnkiPjwvZGl2Pgo8L2Rpdj4KCiA8L2Rpdj4KCiAgCjxmb290ZXIgY2xhc3M9ImZvb3Rlcl92MiBmb290ZXJfdjItLXJlc3BvbnNpdmUiPgogICAgPHNlY3Rpb24gY2xhc3M9ImZvb3Rlcl92Ml9fc2l0ZW1hcCI+CiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2xpbmtzIj4KCiA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rIGZvb3Rlcl92Ml9hY2NvcmRpb24iPgogPGlucHV0IGNsYXNzPSJmb290ZXJfdjJfYWNjb3JkaW9uX19jaGVjayIgdHlwZT0iY2hlY2tib3giPgogPGg0IGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyIj4KIDxzcGFuIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaGVhZGVyLXRleHQiPlZpbWVvPC9zcGFuPgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fcmV2ZWFsIj4KIDxzdmcgY2xhc3M9ImlyaXNfaWMgaXMtLTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiPjxwYXRoIGQ9Ik03LjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMEw0IDQuNTg2IDEuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwLS4zOS4zOS0uMzkgMS4wMjQgMCAxLjQxNGwzIDNjLjM5LjM5IDEuMDI0LjM5IDEuNDE0IDBsMy0zYy4zOS0uMzkuMzktMS4wMjQgMC0xLjQxNHoiLz48L3N2Zz4KIDwvZGl2PgogPC9oND4KIDx1bCBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWxpc3QgZm9vdGVyX3YyX2FjY29yZGlvbl9fbWVudSI+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9hYm91dCIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX2Fib3V0X2NsaWNrIj4KIEFib3V0IFZpbWVvIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9ibG9nIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmltZW9fYmxvZ19jbGljayI+CiBWaW1lbyBCbG9nIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9oZWxwL2d1aWRlbGluZXMiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua192aW1lb19ndWlkZWxpbmVzX2NsaWNrIj4KIFZpbWVvIEd1aWRlbGluZXMgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIudmltZW8uY29tIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfZGV2ZWxvcGVyc19jbGljayI+CiBEZXZlbG9wZXJzIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9qb2JzIj4KIEpvYnMgPC9hPgogPC9saT4KIDwvdWw+CiA8L3NlY3Rpb24+CgogPHNlY3Rpb24gY2xhc3M9ImZvb3Rlcl92Ml9fbGluayBmb290ZXJfdjJfYWNjb3JkaW9uIj4KIDxpbnB1dCBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fY2hlY2siIHR5cGU9ImNoZWNrYm94Ij4KIDxoNCBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlciI+CiA8c3BhbiBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWhlYWRlci10ZXh0Ij5IZWxwPC9zcGFuPgogPGRpdiBjbGFzcz0iZm9vdGVyX3YyX2FjY29yZGlvbl9fcmV2ZWFsIj4KIDxzdmcgY2xhc3M9ImlyaXNfaWMgaXMtLTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiPjxwYXRoIGQ9Ik03LjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMEw0IDQuNTg2IDEuNzA3IDIuMjkzYy0uMzktLjM5LTEuMDI0LS4zOS0xLjQxNCAwLS4zOS4zOS0uMzkgMS4wMjQgMCAxLjQxNGwzIDNjLjM5LjM5IDEuMDI0LjM5IDEuNDE0IDBsMy0zYy4zOS0uMzkuMzktMS4wMjQgMC0xLjQxNHoiLz48L3N2Zz4KIDwvZGl2PgogPC9oND4KIDx1bCBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWxpc3QgZm9vdGVyX3YyX2FjY29yZGlvbl9fbWVudSI+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9oZWxwIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfaGVscF9jZW50ZXJfY2xpY2siPgogSGVscCBDZW50ZXIgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19saW5rLWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktMyBpcmlzX2xpbmstLWZvb3RlciIgaHJlZj0iL3ZpZGVvc2Nob29sIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfdmlkZW9fc2Nob29sX2NsaWNrIj4KIFZpZGVvIFNjaG9vbCA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvaGVscC9mYXEiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19mYXFfY2xpY2siPgogRkFRIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9mb3J1bXMiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19mb3J1bXNfY2xpY2siPgogRm9ydW1zIDwvYT4KIDwvbGk+CiA8L3VsPgogPC9zZWN0aW9uPgoKIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2xpbmsgZm9vdGVyX3YyX2FjY29yZGlvbiI+CiA8aW5wdXQgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX2NoZWNrIiB0eXBlPSJjaGVja2JveCI+CiA8aDQgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXIiPgogPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXItdGV4dCI+TW9yZTwvc3Bhbj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX3JldmVhbCI+CiA8c3ZnIGNsYXNzPSJpcmlzX2ljIGlzLS0xMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOCA4Ij48cGF0aCBkPSJNNy43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNCA0LjU4NiAxLjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMC0uMzkuMzktLjM5IDEuMDI0IDAgMS40MTRsMyAzYy4zOS4zOSAxLjAyNC4zOSAxLjQxNCAwbDMtM2MuMzktLjM5LjM5LTEuMDI0IDAtMS40MTR6Ii8+PC9zdmc+CiA8L2Rpdj4KIDwvaDQ+CiA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvb25kZW1hbmQiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua19vbl9kZW1hbmRfY2xpY2siPgogT24gRGVtYW5kIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9ldmVyeXdoZXJlIiBkYXRhLWd0bS1jbGljaz0iZm9vdGVyX2xpbmtfZXZlcnl3aGVyZV9jbGljayI+CiBFdmVyeXdoZXJlIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii91cGxvYWQiIGRhdGEtZ3RtLWNsaWNrPSJmb290ZXJfbGlua191cGxvYWRfY2xpY2siPgogVXBsb2FkIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9zaXRlX21hcCIgZGF0YS1ndG0tY2xpY2s9ImZvb3Rlcl9saW5rX3NpdGVfbWFwX2NsaWNrIj4KIFNpdGUgTWFwIDwvYT4KIDwvbGk+CiA8L3VsPgogPC9zZWN0aW9uPgoKIDxzZWN0aW9uIGNsYXNzPSJmb290ZXJfdjJfX2xpbmsgZm9vdGVyX3YyX2FjY29yZGlvbiI+CiA8aW5wdXQgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX2NoZWNrIiB0eXBlPSJjaGVja2JveCI+CiA8aDQgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXIiPgogPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1oZWFkZXItdGV4dCI+VXBncmFkZTwvc3Bhbj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9hY2NvcmRpb25fX3JldmVhbCI+CiA8c3ZnIGNsYXNzPSJpcmlzX2ljIGlzLS0xMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOCA4Ij48cGF0aCBkPSJNNy43MDcgMi4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNCA0LjU4NiAxLjcwNyAyLjI5M2MtLjM5LS4zOS0xLjAyNC0uMzktMS40MTQgMC0uMzkuMzktLjM5IDEuMDI0IDAgMS40MTRsMyAzYy4zOS4zOSAxLjAyNC4zOSAxLjQxNCAwbDMtM2MuMzktLjM5LjM5LTEuMDI0IDAtMS40MTR6Ii8+PC9zdmc+CiA8L2Rpdj4KIDwvaDQ+CiA8dWwgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1saXN0IGZvb3Rlcl92Ml9hY2NvcmRpb25fX21lbnUiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xpbmstaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS0zIGlyaXNfbGluay0tZm9vdGVyIiBocmVmPSIvcGx1cz92PWZvb3RlciI+CiBWaW1lbyBQbHVzIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9wcm8/dj1mb290ZXIiPgogVmltZW8gUFJPIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGluay1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTMgaXJpc19saW5rLS1mb290ZXIiIGhyZWY9Ii9idXNpbmVzcyI+CiBWaW1lbyBCdXNpbmVzcyA8L2E+CiA8L2xpPgogPC91bD4KIDwvc2VjdGlvbj4KIDwvZGl2PgoKICAgPGFzaWRlIGlkPSJmb290ZXJfdGlwIiBjbGFzcz0iZm9vdGVyX3YyX190aXAiIGFyaWEtbGl2ZT0icG9saXRlIj4KIDxoNCBjbGFzcz0iZm9vdGVyX3YyX190aXAtaGVhZGVyIj5EaWQgeW91IGtub3c/PC9oND4KIDxwIGNsYXNzPSJhY3RpdmUgZm9vdGVyX3YyX190aXAtY29udGVudCI+TWFzdGVyIHRoZSBzZXZlbiBzZWFzIG9mIDxhIGhyZWY9Ii92aWRlb3NjaG9vbC9sZXNzb24vMjU0L3RoZS1iYXNpY3Mtb2YtdW5kZXJ3YXRlci12aWRlbyI+dW5kZXJ3YXRlciB2aWRlbzwvYT4gYnkgZGl2aW5nIGludG8gVmltZW8gVmlkZW8gU2Nob29sLjwvcD4KIDwvYXNpZGU+CiA8L3NlY3Rpb24+CiAKICA8c2VjdGlvbiBjbGFzcz0iZm9vdGVyX3YyX19hdXhpbGlhcnkgIj4KCiA8ZGl2IGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsIj4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQiPgogPHA+VE0gKyAmY29weTsgMjAxNyBWaW1lbywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KIDwvZGl2PgogPHVsIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QiPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvdGVybXMiIHRpdGxlPSJUZXJtcyAmYW1wOyBDb25kaXRpb25zIj4KIFRlcm1zIDwvYT4KIDwvbGk+CiA8bGkgY2xhc3M9ImZvb3Rlcl92Ml9fbGVnYWwtbGlzdC1pdGVtIj4KIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9Ii9wcml2YWN5IiB0aXRsZT0iUHJpdmFjeSBQb2xpY3kiPgogUHJpdmFjeSA8L2E+CiA8L2xpPgogPGxpIGNsYXNzPSJmb290ZXJfdjJfX2xlZ2FsLWxpc3QtaXRlbSI+CiA8YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IiBocmVmPSIvZG1jYSIgdGl0bGU9IkNvcHlyaWdodCBJbmZvcm1hdGlvbiI+CiBDb3B5cmlnaHQgPC9hPgogPC9saT4KIDxsaSBjbGFzcz0iZm9vdGVyX3YyX19sZWdhbC1saXN0LWl0ZW0iPgogPGEgY2xhc3M9ImlyaXNfbGluayBpcmlzX2xpbmstLWdyYXktNCIgaHJlZj0iL2Nvb2tpZV9wb2xpY3kiIHRpdGxlPSJMZWFybiBtb3JlIGFib3V0IGhvdyBWaW1lbyB1c2VzIGNvb2tpZXMiPgogQ29va2llcyA8L2E+CiA8L2xpPgogPC91bD4KIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fYXV4aWxpYXJ5LWNvbnRlbnQgZm9vdGVyX3YyX193aXRobG92ZSI+CiBNYWRlIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly92aW1lby5jb20vbG92ZSI+PHN2ZyBjbGFzcz0iaXJpc19pYyBpcy0tMTIgZm9vdGVyX3YyX19sb3ZlaGVhcnQgZm9vdGVyX3YyX19hdXhpbGlhcnktaWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTIgMTIiPjxwYXRoIGQ9Ik05IDJDNy4zMTIgMiA2IDMuNSA2IDMuNVM0LjY4NyAyIDMgMkMxLjMxMiAyIDAgMy4zMTIgMCA1YzAgMy4xODggMy43NSAzLjAxMiA2IDYgMi4yNS0yLjk4OCA2LTIuODEyIDYtNiAwLTEuNjg4LTEuMzEzLTMtMy0zeiIvPjwvc3ZnPjwvYT4gaW4gTllDLiA8L2Rpdj4KIDwvZGl2PgoKIDxkaXYgY2xhc3M9ImZvb3Rlcl92Ml9fZmlsdGVycyBmb290ZXJfdjJfX2F1eGlsaWFyeS1jb250ZW50Ij4KIDxzcGFuIGNsYXNzPSJsYW5ndWFnZSI+CiBMYW5ndWFnZToKIDxhIGNsYXNzPSJpcmlzX2xpbmsgaXJpc19saW5rLS1ncmF5LTQiIGhyZWY9IiNsYW5ndWFnZSIgb25jbGljaz0idmltZW8uTW9kYWwuY3JlYXRlKHtjb250ZW50OiAnL3NldHRpbmdzL2xvY2FsZScsIHNpemU6ICdzbWFsbCd9KTsgcmV0dXJuIGZhbHNlOyIgdGl0bGU9IkNob29zZSBhIGRpZmZlcmVudCBsYW5ndWFnZSI+RW5nbGlzaDwvYT4KIDwvc3Bhbj4KCiAgPHNwYW4gY2xhc3M9ImZvb3Rlcl92Ml9fZmlsdGVyIj5NYXR1cmUgY29udGVudCBmaWx0ZXI6IDwvc3Bhbj48YSBjbGFzcz0iaXJpc19saW5rIGlyaXNfbGluay0tZ3JheS00IGZvb3Rlcl92Ml9fZmlsdGVyc19fbGFuZyBjb250ZW50ZmlsdGVyIGpzLWZvb3Rlcl9jb250ZW50ZmlsdGVyX2xpbmsiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgb25jbGljaz0idmltZW8uTW9kYWwuY3JlYXRlKHtjb250ZW50OiAnL3NldHRpbmdzL2NvbnRlbnRyYXRpbmcnfSkiIHRpdGxlPSJDaGFuZ2UgeW91ciBtYXR1cmUgY29udGVudCBmaWx0ZXIiPk5vbmU8L2E+CiAgPC9kaXY+Cgo8L3NlY3Rpb24+CjwvZm9vdGVyPgogCiA8L2Rpdj4KCiAKIAogCiAKPHNjcmlwdD4KIHZhciBfX2ZhID0gX19mYSB8fCBbXTsKIF9fZmEucHVzaChbJ3RyYWNrUGFnZXZpZXcnXSk7CgogIC8vIEFuYWx5dGljcyBTZXR1cAogdmFyIF9ndG0gPSBfZ3RtIHx8IFtdLAogX2luaXRpYWxfZ3RtX3N0YXRlID0geyJleGNlcHRpb25faHR0cF9jb2RlIjoiSFRUUFwvMS4xIDQwNCBOb3QgRm91bmQiLCJsYW5ndWFnZSI6ImVuIiwidXNlcl9zdGF0dXMiOiJsb2dnZWRfb3V0IiwidXNlcl90eXBlIjoibm9uZSIsImdhX3VuaXZlcnNhbF9pZCI6IlVBLTc2NjQxLTgiLCJjb21zY29yZV9zaXRlX2lkIjoxMDM0ODI4OX07CgogX2luaXRpYWxfZ3RtX3N0YXRlWyd2dWlkJ10gPSBkb2N1bWVudC5jb29raWUucmVwbGFjZSgvKD86KD86XnwuKjtccyopdnVpZFxzKlw9XHMqKFteO10qKS4qJCl8Xi4qJC8sICIkMSIpOwogX2luaXRpYWxfZ3RtX3N0YXRlWydndG0uc3RhcnQnXSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogX2luaXRpYWxfZ3RtX3N0YXRlWydldmVudCddID0gJ2d0bS5qcyc7CiBfZ3RtLnB1c2goX2luaXRpYWxfZ3RtX3N0YXRlKTsKIAogLyoqCiAqIElmIHRoZSBjdXJyZW50IHJlcXVlc3Qgd2FzIGJ1Y2tldGVkIGluIGFuIEFCTGluY29sbiBleHBlcmltZW50LAogKiBzZW5kIHRoZSBzZWxlY3RlZCB0cmVhdG1lbnQgYmFjayBmcm9tIHRoZSBjbGllbnQsIHRvIGZpbHRlciBhYiB0ZXN0CiAqIGRhdGEgZG93biB0byBub24tcm9ib3QgdXNlcnMgdGhhdCBydW4gSmF2YVNjcmlwdC4KICovCiBpZiAoIkFCTGluY29sbiIgaW4gd2luZG93KSB7CiAoZnVuY3Rpb24gKCkgewogICB9KSgpOwogfQoKICB2YXIgX2V4dGVuZCA9IGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50c1swXSxuPTEsZT1hcmd1bWVudHMubGVuZ3RoO2U+bjtuKyspe3ZhciB0PWFyZ3VtZW50c1tuXTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYoclthXT10W2FdKX1yZXR1cm4gcn07CgogIHZhciBDU1NfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3R5bGVzL2Nzc19vcHQvJywKIEpTX0RJUiA9ICdodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC8nLAogSU1BR0VfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vaW1hZ2VzX3Y2LycsCiBTVkdfRElSID0gJ2h0dHBzOi8vZi52aW1lb2Nkbi5jb20vc3ZnLycsCiAgQlVJTERfSEFTSCA9ICc3MjQ1NCc7CgogIHZhciB2aW1lbyA9IF9leHRlbmQoKHdpbmRvdy52aW1lbyB8fCB7fSksIHsiYXBwX3ZlcnNpb24iOiJ2NiIsImRvbWFpbiI6InZpbWVvLmNvbSIsInVybCI6InZpbWVvLmNvbSIsImN1cl91c2VyIjpmYWxzZSwiaXNfbW9iaWxlIjpmYWxzZX0pOwogdmltZW8uY29uZmlnID0gX2V4dGVuZCgodmltZW8uY29uZmlnIHx8IHt9KSwgeyJsb2NhbGUiOiJlbiJ9KTsKCiAgdmFyIGxvY2FsZUNvbmZpZyA9IHsKIGxhbmc6ICdlbicsCiAnRGF0ZSc6IHsKIG1vbnRoczogWyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLAogbW9udGhzX2FiYnI6IFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sCiBkYXlzOiBbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sCiBkYXlzX2FiYnI6IFsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sCgogLy8gQ3VsdHVyZSdzIGRhdGUgb3JkZXI6IE1NL0REL1lZWVkKIGRhdGVPcmRlcjogWydkYXRlJywgJ21vbnRoJywgJ3llYXInXSwKIHNob3J0RGF0ZTogJyVkLyVtLyVZJywKIHNob3J0VGltZTogJyVJOiVNJXAnLAogQU06ICdBTScsCiBQTTogJ1BNJywKIGZpcnN0RGF5T2ZXZWVrOiAwLAoKIC8vIERhdGUuRXh0cmFzCiBvcmRpbmFsOiBmdW5jdGlvbihkYXlPZk1vbnRoKXsKIHJldHVybiBkYXlPZk1vbnRoOwogfQogfSwKICdEYXRlUGlja2VyJzogewogc2VsZWN0X2FfdGltZTogIlNlbGVjdCBhIHRpbWUiLAogdXNlX21vdXNlX3doZWVsOiAiVXNlIHRoZSBtb3VzZSB3aGVlbCB0byBxdWlja2x5IGNoYW5nZSB2YWx1ZSIsCiB0aW1lX2NvbmZpcm1fYnV0dG9uOiAiT0siLAogYXBwbHlfcmFuZ2U6ICJBcHBseSIsCiBjYW5jZWw6ICJDYW5jZWwiLAogd2VlazogIldrIiB9LAogICdOdW1iZXInOiB7CiBkZWNpbWFsOiAnLicsCiBncm91cDogJywnLAogY3VycmVuY3k6IHsKIHByZWZpeDogJyQnCiB9CiB9LAogJ0Zvcm1WYWxpZGF0b3InOiB7InJlcXVpcmVkIjoiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iLCJyZXF1aXJlZENoayI6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn0gfTsKCiB2YXIgZnVsbExvY2FsZSA9ICcnOwoKIAogIHZhciBDb3B5ID0ge3RyYW5zbGF0ZTpmdW5jdGlvbih0LGksdSl7dmFyIGU9J29iamVjdCchPXR5cGVvZiB0aGlzLmRpY3RbdF0/dGhpcy5kaWN0W3RdOmk/dGhpcy5kaWN0W3RdLnBsdXJhbDp0aGlzLmRpY3RbdF0uc2luZ3VsYXI7cmV0dXJuJ29iamVjdCc9PXR5cGVvZiB1JiYoZT10aGlzLnN1YnN0aXR1dGUoZSx1KSksZX0sc3Vic3RpdHV0ZTpmdW5jdGlvbih0LGkpe3JldHVybiB2b2lkIDAhPT10LnN1YnN0aXR1dGU/dC5zdWJzdGl0dXRlKGkpOnQucmVwbGFjZSgvXFw/XHsoW157fV0rKVx9L2csZnVuY3Rpb24odCx1KXtyZXR1cm4nXFwnPT10LmNoYXJBdCgwKT90LnNsaWNlKDEpOm51bGwhPWlbdV0/aVt1XTonJ30pfSxkaWN0Ont9fTsKIENvcHkuZGljdCA9IHsiZGlkX3lvdV9tZWFuX2VtYWlsIjoiRGlkIHlvdSBtZWFuIDxlbT57U1VHR0VTVH08XC9lbT4/IiwiZW1haWxfcGFzc3dvcmRfbWlzbWF0Y2giOiJFbWFpbCBhbmQgcGFzc3dvcmQgZG8gbm90IG1hdGNoIiwianVzdF9ub3ciOiJqdXN0IG5vdyIsInNlY29uZHNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBzZWNvbmQgYWdvIiwicGx1cmFsIjoie0NPVU5UfSBzZWNvbmRzIGFnbyJ9LCJtaW51dGVzX2FnbyI6eyJzaW5ndWxhciI6IntDT1VOVH0gbWludXRlIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gbWludXRlcyBhZ28ifSwiaG91cnNfYWdvIjp7InNpbmd1bGFyIjoie0NPVU5UfSBob3VyIGFnbyIsInBsdXJhbCI6IntDT1VOVH0gaG91cnMgYWdvIn0sIm9wZW5fY29tbWVudF9ib3giOiJBZGQgbmV3IGNvbW1lbnQgaW5zdGVhZCAmcmFxdW87IiwidXJsX3VuYXZhaWxhYmxlIjoiU29ycnksIHRoaXMgdXJsIGlzIHVuYXZhaWxhYmxlLiIsInVuc2F2ZWRfY2hhbmdlc19nZW5lcmljIjoiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLCBhcmUgeW91IHN1cmUgeW91IHdpc2ggdG8gbGVhdmU/IiwiYWRkIjoiQWRkIiwicmVtb3ZlIjoiUmVtb3ZlIiwic2VsZWN0IjoiU2VsZWN0Iiwibm9fZm9sbG93ZXJzX2Zvcl9sZXR0ZXIiOiJZb3UgZG9uJnJzcXVvO3QgZm9sbG93IGFueW9uZSB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciAmbGRxdW87e1BBR0VfTEVUVEVSfSZyZHF1bzsiLCJzaGFyZV9saW1pdF9yZWFjaGVkIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gc2hhcmUgd2l0aC4iLCJhdF9sZWFzdF9vbmUiOiJUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSB1c2VyLiIsImF2YWlsYWJsZSI6IkF2YWlsYWJsZSIsInVuYXZhaWxhYmxlIjoiVW5hdmFpbGFibGUiLCJicm93c2VfZXJyb3JfZ2VuZXJpYyI6IlNvcnJ5LCB0aGVyZSB3YXMgYW4gZXJyb3IiLCJicm93c2VfZXJyb3Jfbm9fdmlkZW9zIjoiU29ycnksIG5vIHZpZGVvcyBmb3VuZCIsImZvbGxvdyI6IkZvbGxvdyIsImZvbGxvd2luZyI6IkZvbGxvd2luZyIsInVuZm9sbG93IjoiVW5mb2xsb3ciLCJ1bmZvbGxvd2luZyI6IlVuZm9sbG93aW5nIiwiY291bnRfY29tbWVudHMiOnsic2luZ3VsYXIiOiJ7Q09VTlR9IGNvbW1lbnQiLCJwbHVyYWwiOiJ7Q09VTlR9IGNvbW1lbnRzIn0sImZpcnN0X2NvbW1lbnQiOiJCZSB0aGUgZmlyc3QgdG8gY29tbWVudFx1MjAyNiIsIm5vX2NvbW1lbnRzX2Zvcl95b3UiOiJGb3JiaWRkZW4uIFlvdSBjYW5ub3QgcG9zdCBjb21tZW50cyBvbiB0aGlzIHBhZ2UuIiwib29wcyI6Ik9vcHMhIiwicGxheWVyX3RyeV9hZ2FpbiI6IlRoYXQgd2Fzbid0IHN1cHBvc2VkIHRvIGhhcHBlbi4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLiIsImR1cmF0aW9uX2lucHV0X21pbl9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgbGVzcyB0aGFuIHtNSU5fRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X21heF9kdXJhdGlvbiI6IlRoZSBkdXJhdGlvbiBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHtNQVhfRFVSQVRJT059LiIsImR1cmF0aW9uX2lucHV0X2ludmFsaWRfY2hhcmFjdGVycyI6IjAtOSBhbmQgOiBhcmUgdGhlIG9ubHkgYWNjZXB0YWJsZSBpbnB1dHMuIiwiY2xvc2UiOiJDbG9zZSIsImV4cGFuZCI6IkV4cGFuZCIsImxvYWRpbmciOiJMb2FkaW5nLi4uIiwidG9wIjoidG9wIiwiYWR2YW5jZWRfc2VhcmNoIjoiQWR2YW5jZWQgU2VhcmNoIiwibm9fc3VnZ2VzdGlvbnMiOiJObyBzdWdnZXN0aW9ucyIsInJlY2VudF9zZWFyY2hlcyI6IlJlY2VudCBTZWFyY2hlcyIsInNlYXJjaF9hbGwiOiJTZWFyY2ggQWxsIG9mIFZpbWVvIiwiZW1haWxfYW5kX3Bhc3N3b3JkIjoiUGxlYXNlIGVudGVyIHlvdXIgZW1haWwgYW5kIHBhc3N3b3JkIiwiZW1haWxfYWRkcmVzcyI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MiLCJuYW1lX2VtYWlsX2FuZF9wYXNzd29yZCI6IlBsZWFzZSBlbnRlciB5b3VyIG5hbWUsIGVtYWlsLCBhbmQgcGFzc3dvcmQiLCJBY3Rpdml0eSI6IkFjdGl2aXR5IiwiRm9sbG93IjoiRm9sbG93IiwiRm9sbG93aW5nIjoiRm9sbG93aW5nIiwiTG9hZGluZyI6IkxvYWRpbmciLCJObyBhY3Rpdml0eSBpbiB0aGUgcGFzdCAzMCBkYXlzIjoiTm8gYWN0aXZpdHkgaW4gdGhlIHBhc3QgMzAgZGF5cyIsIlNlZSBhbGwiOiJTZWUgYWxsIiwiVW5mb2xsb3ciOiJVbmZvbGxvdyIsIlZpZXcgbWVzc2FnZSI6IlZpZXcgbWVzc2FnZSIsIldlJ2xsIGFsZXJ0IHlvdSBvbmNlIHNvbWV0aGluZyBjb29sIGhhcHBlbnMuIjoiV2UnbGwgYWxlcnQgeW91IG9uY2Ugc29tZXRoaW5nIGNvb2wgaGFwcGVucy4ifTsKPC9zY3JpcHQ+CgoKIDxzY3JpcHQgc3JjPSJodHRwczovL2YudmltZW9jZG4uY29tL2pzX29wdC9yZWFjdF9wcm9kX2NvbWJpbmVkLm1pbi5qcz9iNmVlN2E0ZSI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvZXhjZXB0aW9uX2NvbWJpbmVkLm1pbi5qcz8wYzdhYWU4NCI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvYWN0aXZpdHlfdG9wbmF2X2NvbWJpbmVkLm1pbi5qcz81MzliNmM4MyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9mLnZpbWVvY2RuLmNvbS9qc19vcHQvbW9kdWxlcy9nbG9iYWwvYWJsaW5jb2xuL2hvc3RfdmlkZW9zLm1pbi5qcz82NWRjNDUxYSI+PC9zY3JpcHQ+CgogPHNjcmlwdCBhc3luYyBzcmM9Ii8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0bS5qcz9pZD1HVE0tUkJLSyZsPV9ndG0iPjwvc2NyaXB0PgogPHNjcmlwdD4KIGZ1bmN0aW9uIG9uVmltZW9Eb21SZWFkeShlKSB7CiAgIAogKGZ1bmN0aW9uKCkgewogaWYgKHR5cGVvZiB2aW1lbyAhPT0gJ3VuZGVmaW5lZCcgJiYgdmltZW8uY3VyX3VzZXIpIHsKIHZpbWVvLmNvbmZpZy5hcGkgPSB7fTsKIHZpbWVvLmNvbmZpZy5hcGkudXJsID0gJ2FwaS52aW1lby5jb20nOwogdmltZW8uY29uZmlnLmFwaS5qd3QgPSAgJ2V5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKOS5leUowSWpveE9UUTVNek0yT1RFc0ltVjRjQ0k2TVRRNU1EY3pORGcyTkgwLkJIMnpfYjV1VG1NbFFYOG1STjVsdHVvZS0taFdwSUhzcGdvODBVLVRrN2MnOwogdmltZW8uY29uZmlnLmFwaS52ZXJzaW9uID0gJzMuMyc7CiB9CiB9KCkpOwoKIHdpbmRvdy52aW1lbyA9IHdpbmRvdy52aW1lbyB8fCB7fTsKIHdpbmRvdy52aW1lby5leGNlcHRpb25fZGF0YSA9IHsidGl0bGUiOiJTb3JyeSwgd2UgY291bGRuXHUyMDE5dCBmaW5kIHRoYXQgcGFnZSIsIm1lc3NhZ2UiOiIiLCJub3RpZmljYXRpb24iOiI8ZGl2IGNsYXNzPVwiZXhjZXB0aW9uX25vdGlmaWNhdGlvbiBpcmlzX25vdGlmaWNhdGlvbiBpcmlzX25vdGlmaWNhdGlvbi0tdXBzZWxsXCI+XG4gPGRpdiBjbGFzcz1cImlyaXNfbm90aWZpY2F0aW9uLS11cHNlbGwtaWNvblwiPlxuIDxzcGFuIGNsYXNzPVwiaXJpc19pYyBpcy0tMTZcIj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNOCAxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOC04IDMuNTgyLTggOCAzLjU4MiA4IDggOHpNNyA0aDJ2Mkg3VjR6bTAgM2gydjVIN1Y3elwiXC8+PFwvc3ZnPjxcL3NwYW4+XG4gPFwvZGl2PlxuXG4gPGRpdiBjbGFzcz1cImlyaXNfbm90aWZpY2F0aW9uLWhlYWRlclwiPlxuIDxzdHJvbmc+UmVhc29ucyB5b3UgbWlnaHQgYmUgc2VlaW5nIHRoaXMgcGFnZTxcL3N0cm9uZz5cbiA8XC9kaXY+XG5cbiA8dWwgY2xhc3M9XCJpcmlzX25vdGlmaWNhdGlvbi1saXN0XCI+XG4gIDxsaT5JdCBleGlzdHMsIGJ1dCB5b3UgZG9uXHUyMDE5dCBoYXZlIHBlcm1pc3Npb24gdG8gc2VlIGl0LCBvciB5b3UgbmVlZCB0byA8YSBvbmNsaWNrPVwidmltZW8uU2Vzc2lvbi5jcmVhdGUoKVwiPmxvZyBpbjxcL2E+LjxcL2xpPlxuICA8bGk+Tm90aGluZyBoYXMgZXZlciBleGlzdGVkIGhlcmUuIFNwb29reS48XC9saT5cbiA8bGk+U29tZXRoaW5nIG9uY2UgbGl2ZWQgaGVyZSwgYnV0IGhhcyBiZWVuIGRlbGV0ZWQuPFwvbGk+XG4gPFwvdWw+XG48XC9kaXY+XG4iLCJzZWFyY2giOnRydWUsInZpZGVvcyI6W3sic2V0dGluZ3MiOnsidGl0bGUiOnsidGV4dCI6IkRpc2NvdmVyIHZpZGVvcyBmcm9tIHRoZSB3b3JsZFx1MjAxOXMgYmVzdCBjcmVhdG9ycyIsInNob3J0X3RleHQiOiJEaXNjb3ZlciBhbWF6aW5nIHZpZGVvcyJ9LCJ2aWRlb3MiOlt7ImNsaXBfaWQiOjIxMDIxMTgwMCwiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTk5MzMyM18zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTk5MzMyM183ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTk5MzMyM18xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU5OTMzMjNfMzEyMHgxNzU2LmpwZyIsImFsdCI6Ik1PVEhFUiAtIG1vdGhlciJ9LCJ1cGxvYWRlZF9vbiI6IjE0IGhvdXJzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6MTg2LCJmb3JtYXR0ZWQiOiIwMzowNiJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6MTQsImZvcm1hdHRlZCI6IjE0In0sInRvdGFsX2xpa2VzIjp7InJhdyI6MTU4LCJmb3JtYXR0ZWQiOiIxNTgifSwidG90YWxfcGxheXMiOnsicmF3IjowLCJmb3JtYXR0ZWQiOiIwIn19LCJ0aXRsZSI6Ik1PVEhFUiIsInVybCI6IlwvMjEwMjExODAwIiwidXNlciI6eyJpZCI6MjI2NTIxOSwibmFtZSI6Ik1vcmdhbiBKb3VxdWFuZCIsInVybCI6IlwvbW9yZ2Fuam91cXVhbmQiLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NDM4NTcyXzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NDM4NTcyXzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NDM4NTcyXzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2NDM4NTcyXzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJjbGlwX2lkIjoyMDc3NjMyNTMsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjI5NDA0ODdfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjI5NDA0ODdfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjI5NDA0ODdfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIyOTQwNDg3XzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJUaGUgQmlydGggT2YgQSBEdWdvdXQgQ2Fub2UgYnkgTm9ydGhtZW4gLSB3b29kIGNhcnZpbmcifSwidXBsb2FkZWRfb24iOiIyIHdlZWtzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6MTEyNCwiZm9ybWF0dGVkIjoiMTg6NDQifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjE0LCJmb3JtYXR0ZWQiOiIxNCJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjIwNCwiZm9ybWF0dGVkIjoiMjA0In0sInRvdGFsX3BsYXlzIjp7InJhdyI6MzU4NiwiZm9ybWF0dGVkIjoiMzU4NiJ9fSwidGl0bGUiOiJUaGUgQmlydGggT2YgQSBEdWdvdXQgQ2Fub2UgYnkgTm9ydGhtZW4iLCJ1cmwiOiJcLzIwNzc2MzI1MyIsInVzZXIiOnsiaWQiOjEwNTY1NjA1LCJuYW1lIjoiTm9ydGhtZW4iLCJ1cmwiOiJcL25vcnRobWVuIiwiYWNjb3VudF90eXBlIjoicHJvIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3NzIwNTg4XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3NzIwNTg4XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3NzIwNTg4XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE3NzIwNTg4XzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJjbGlwX2lkIjoyMDQ3NzY2MzYsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MTkzNjg5NjNfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MTkzNjg5NjNfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MTkzNjg5NjNfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjE5MzY4OTYzXzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJOYWNodGhleGVuIC0gTmlnaHQgV2l0Y2hlcyJ9LCJ1cGxvYWRlZF9vbiI6IjEgbW9udGggYWdvIiwiZHVyYXRpb24iOnsicmF3Ijo0OTIsImZvcm1hdHRlZCI6IjA4OjEyIn0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3IjoxMSwiZm9ybWF0dGVkIjoiMTEifSwidG90YWxfbGlrZXMiOnsicmF3IjoyMjAsImZvcm1hdHRlZCI6IjIyMCJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjY4MDMsImZvcm1hdHRlZCI6IjY4MDMifX0sInRpdGxlIjoiTmFjaHRoZXhlbiIsInVybCI6IlwvMjA0Nzc2NjM2IiwidXNlciI6eyJpZCI6MzE5NDMyNCwibmFtZSI6IlRoZSBBbmltYXRpb24gV29ya3Nob3AiLCJ1cmwiOiJcL3RoZWFuaW1hdGlvbndvcmtzaG9wIiwiYWNjb3VudF90eXBlIjoicGx1cyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjY1MzUyM18xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjY1MzUyM18zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjY1MzUyM182NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNjY1MzUyM18xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsiY2xpcF9pZCI6MTcxNzQ2MzgxLCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNTc3MjkyMjAxXzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNTc3MjkyMjAxXzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNTc3MjkyMjAxXzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzU3NzI5MjIwMV8zMTIweDE3NTYuanBnIiwiYWx0IjoiQmF5YSAtIEdhdGUgMjEyIFwvIEdpbW1lIFRoYXQgRGl2ZSAtIGlzYXdqb2huZmlyc3QifSwidXBsb2FkZWRfb24iOiI5IG1vbnRocyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjM2MSwiZm9ybWF0dGVkIjoiMDY6MDEifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjE5LCJmb3JtYXR0ZWQiOiIxOSJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjUzMiwiZm9ybWF0dGVkIjoiNTMyIn0sInRvdGFsX3BsYXlzIjp7InJhdyI6NjIxOSwiZm9ybWF0dGVkIjoiNjIxOSJ9fSwidGl0bGUiOiJCYXlhIC0gR2F0ZSAyMTIgXC8gR2ltbWUgVGhhdCBEaXZlIiwidXJsIjoiXC8xNzE3NDYzODEiLCJ1c2VyIjp7ImlkIjozMzM4NzA3LCJuYW1lIjoiSm9obiBDaHJpc3RpYW4gRmVybmVyIEFwYWxuZXMiLCJ1cmwiOiJcL2lzYXdqb2huZmlyc3QiLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzc3OTA1NDlfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzc5MDU0OV8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83NzkwNTQ5XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzc3OTA1NDlfMTI4eDEyOC5qcGcifX0sImF1dG9wbGF5IjpmYWxzZSwic2Vla3RpbWUiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfV19fSx7InNldHRpbmdzIjp7InRpdGxlIjp7InRleHQiOiJQdXJjaGFzZSBoaWdoLXF1YWxpdHkgZmlsbXMgYW5kIHNlcmllcyIsInNob3J0X3RleHQiOiJQdXJjaGFzZSBmaWxtcyBhbmQgc2VyaWVzIn0sInZpZGVvcyI6W3sidm9kX2lkIjoxMDM3MDEsInRyYWlsZXJfaWQiOjE3Njk1NDM3MiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQ2Njc3OF8zOTB4MjE5LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQ2Njc3OF83ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQ2Njc3OF8xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0NjY3NzhfMzEyMHgxNzU2LmpwZyIsImFsdCI6IkNvbWUgRG93biBNb2xseSAtIHRyaWJlY2EgZmlsbSBmZXN0aXZhbCJ9LCJ1cGxvYWRlZF9vbiI6IjQgZGF5cyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjQ4MzcsImZvcm1hdHRlZCI6IjAxOjIwOjM3In0sInRpdGxlIjoiQ29tZSBEb3duIE1vbGx5IiwidXJsIjoiXC9vbmRlbWFuZFwvY29tZWRvd25tb2xseSIsInVzZXIiOnsiaWQiOjEyMjkzNTAsIm5hbWUiOiJGYWN0b3J5IDI1IiwidXJsIjoiXC9mYWN0b3J5MjUiLCJhY2NvdW50X3R5cGUiOiJwcm8iLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfMzJ4MzIuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvMTgwMDVfMTI4eDEyOC5qcGcifX0sInByaWNlIjoiJDQuMjUiLCJhdXRvcGxheSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsidm9kX2lkIjoxMDM3MzQsInRyYWlsZXJfaWQiOjIwNTQyMjcwNSwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQyNDI0M18zOTB4MjE5LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQyNDI0M183ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTQyNDI0M18xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MjQyNDNfMzEyMHgxNzU2LmpwZyIsImFsdCI6IkJsb29taW4gTXVkIFNodWZmbGUgLSBKYW1lcyBSYW5zb25lIn0sInVwbG9hZGVkX29uIjoiNCBkYXlzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6NDUxMCwiZm9ybWF0dGVkIjoiMDE6MTU6MTAifSwidGl0bGUiOiJCbG9vbWluIE11ZCBTaHVmZmxlIiwidXJsIjoiXC9vbmRlbWFuZFwvYmxvb21pbm11ZHNodWZmbGUiLCJ1c2VyIjp7ImlkIjoxMjI5MzUwLCJuYW1lIjoiRmFjdG9yeSAyNSIsInVybCI6IlwvZmFjdG9yeTI1IiwiYWNjb3VudF90eXBlIjoicHJvIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE4MDA1XzEyOHgxMjguanBnIn19LCJwcmljZSI6IiQ0LjI1IiwiYXV0b3BsYXkiOmZhbHNlLCJ3YXRjaF9sYXRlciI6ZmFsc2UsImlzX3NwYXRpYWwiOmZhbHNlfSx7InZvZF9pZCI6MTAzNzQ3LCJ0cmFpbGVyX2lkIjoyMDc2ODYxNDQsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MzMyOTRfMzkweDIxOS5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MzMyOTRfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU0MzMyOTRfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1NDMzMjk0XzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJUaGV5IExvb2sgTGlrZSBQZW9wbGUgLSBwZW9wbGUifSwidXBsb2FkZWRfb24iOiI0IGRheXMgYWdvIiwiZHVyYXRpb24iOnsicmF3Ijo0NzcxLCJmb3JtYXR0ZWQiOiIwMToxOTozMSJ9LCJ0aXRsZSI6IlRoZXkgTG9vayBMaWtlIFBlb3BsZSIsInVybCI6Ilwvb25kZW1hbmRcL3RoZXlsb29rbGlrZXBlb3BsZSIsInVzZXIiOnsiaWQiOjQ1OTUwNjIsIm5hbWUiOiJHcmF2aXRhcyBWZW50dXJlcyIsInVybCI6IlwvZ3Jhdml0YXN2ZW50dXJlcyIsImFjY291bnRfdHlwZSI6ImJ1c2luZXNzIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzcxMTMxNjdfMTZ4MTYuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvNzExMzE2N18zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC83MTEzMTY3XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzcxMTMxNjdfMTI4eDEyOC5qcGcifX0sInByaWNlIjoiJDMuOTkiLCJhdXRvcGxheSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsidm9kX2lkIjoxMDI5NTIsInRyYWlsZXJfaWQiOjIwNzg3MzQzOSwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdm9kX3BhZ2VfdGh1bWJuYWlsXC8yNDg3OF8zOTB4MjE5Iiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92b2RfcGFnZV90aHVtYm5haWxcLzI0ODc4Xzc4MHg0MzkiLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZvZF9wYWdlX3RodW1ibmFpbFwvMjQ4NzhfMTU2MHg4NzgiLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZvZF9wYWdlX3RodW1ibmFpbFwvMjQ4NzhfMzEyMHgxNzU1IiwiYWx0IjoiTUVNT1JZIn0sInVwbG9hZGVkX29uIjoiNSBkYXlzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6NTM2NywiZm9ybWF0dGVkIjoiMDE6Mjk6MjcifSwidGl0bGUiOiJNRU1PUlkgcHJlc2VudHM6IFByb2dyYW0gTm8uIDIiLCJ1cmwiOiJcL29uZGVtYW5kXC9wcm9ncmFtMiIsInVzZXIiOnsiaWQiOjMwNDMzNTQwLCJuYW1lIjoiTUVNT1JZIiwidXJsIjoiXC9tZW1vcnlpcyIsImFjY291bnRfdHlwZSI6InBybyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNTU4NTc0M18xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNTU4NTc0M18zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNTU4NTc0M182NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNTU4NTc0M18xMjh4MTI4LmpwZyJ9fSwicHJpY2UiOiIkOC45OSIsImF1dG9wbGF5IjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX1dfX0seyJzZXR0aW5ncyI6eyJ0aXRsZSI6eyJ0ZXh0IjoiV2F0Y2ggaHVtYW4tY3VyYXRlZCBTdGFmZiBQaWNrcyIsInNob3J0X3RleHQiOiJXYXRjaCBTdGFmZiBQaWNrcyJ9LCJ2aWRlb3MiOlt7ImNsaXBfaWQiOjIwOTI1NzU2NCwiaXNfc3RhZmZwaWNrIjp0cnVlLCJpc19mZWF0dXJlZCI6ZmFsc2UsInZvZF9pZCI6bnVsbCwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTc3ODI0N18zOTB4MjIwLmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTc3ODI0N183ODB4NDM5LmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTc3ODI0N18xNTYweDg3OC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjU3NzgyNDdfMzEyMHgxNzU2LmpwZyIsImFsdCI6IkVsdXZpdW0gLSBSZWdlbmVyYXRpdmUgQmVpbmcgKE9mZmljaWFsIFZpZGVvKSAtIEVsdXZpdW0ifSwidXBsb2FkZWRfb24iOiIxIHdlZWsgYWdvIiwiZHVyYXRpb24iOnsicmF3Ijo0NDEsImZvcm1hdHRlZCI6IjA3OjIxIn0sInF1aWNrc3RhdHMiOnsidG90YWxfY29tbWVudHMiOnsicmF3Ijo3LCJmb3JtYXR0ZWQiOiI3In0sInRvdGFsX2xpa2VzIjp7InJhdyI6MTQ2LCJmb3JtYXR0ZWQiOiIxNDYifSwidG90YWxfcGxheXMiOnsicmF3IjoyOTgzLCJmb3JtYXR0ZWQiOiIyOTgzIn19LCJ0aXRsZSI6IkVsdXZpdW0gLSBSZWdlbmVyYXRpdmUgQmVpbmcgKE9mZmljaWFsIFZpZGVvKSIsInVybCI6IlwvMjA5MjU3NTY0IiwidXNlciI6eyJpZCI6MTI4ODEwMDgsIm5hbWUiOiJTdGFzIFNhbnRpbW92IiwidXJsIjoiXC9zYW50aW1vdiIsImFjY291bnRfdHlwZSI6InBsdXMiLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvODg0OTE0OV8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC84ODQ5MTQ5XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzg4NDkxNDlfNjR4NjQuanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC9wb3J0cmFpdFwvODg0OTE0OV8xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsiY2xpcF9pZCI6MjA5Njk0MzAwLCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1MzAzNzY2XzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1MzAzNzY2Xzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI1MzAzNzY2XzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNTMwMzc2Nl8zMTIweDE3NTYuanBnIiwiYWx0IjoiQnVsbGRvemVyIC0gbm93bmVzcyJ9LCJ1cGxvYWRlZF9vbiI6IjQgZGF5cyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjI2NiwiZm9ybWF0dGVkIjoiMDQ6MjYifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjM0LCJmb3JtYXR0ZWQiOiIzNCJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjI2MiwiZm9ybWF0dGVkIjoiMjYyIn0sInRvdGFsX3BsYXlzIjp7InJhdyI6NTk5NywiZm9ybWF0dGVkIjoiNTk5NyJ9fSwidGl0bGUiOiJCdWxsZG96ZXIiLCJ1cmwiOiJcLzIwOTY5NDMwMCIsInVzZXIiOnsiaWQiOjEwOTkwODIsIm5hbWUiOiJJdHNib25nb2JveSIsInVybCI6IlwvaXRzYm9uZ29ib3kiLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2MTg1MDE3XzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2MTg1MDE3XzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2MTg1MDE3XzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzE2MTg1MDE3XzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX0seyJjbGlwX2lkIjoyMDg0NjQ5NjYsImlzX3N0YWZmcGljayI6dHJ1ZSwiaXNfZmVhdHVyZWQiOmZhbHNlLCJ2b2RfaWQiOm51bGwsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjM3ODk5MzdfMzkweDIyMC5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjM3ODk5MzdfNzgweDQzOS5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3ZpZGVvXC82MjM3ODk5MzdfMTU2MHg4NzguanBnIiwic3JjXzh4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjIzNzg5OTM3XzMxMjB4MTc1Ni5qcGciLCJhbHQiOiJUb20gTWNDYXJ0ZW4ifSwidXBsb2FkZWRfb24iOiIyIHdlZWtzIGFnbyIsImR1cmF0aW9uIjp7InJhdyI6MjM4LCJmb3JtYXR0ZWQiOiIwMzo1OCJ9LCJxdWlja3N0YXRzIjp7InRvdGFsX2NvbW1lbnRzIjp7InJhdyI6NDAsImZvcm1hdHRlZCI6IjQwIn0sInRvdGFsX2xpa2VzIjp7InJhdyI6MjA1MSwiZm9ybWF0dGVkIjoiMjA1MSJ9LCJ0b3RhbF9wbGF5cyI6eyJyYXciOjEzMjMzOCwiZm9ybWF0dGVkIjoiMTMySyJ9fSwidGl0bGUiOiJTcGFjZSBTZXggaXMgU2VyaW91cyBCdXNpbmVzcyIsInVybCI6IlwvMjA4NDY0OTY2IiwidXNlciI6eyJpZCI6MjQ3MTA5NCwibmFtZSI6IlRvbSBNY0NhcnRlbiIsInVybCI6IlwvbWNjYXJ0ZW4iLCJhY2NvdW50X3R5cGUiOiJiYXNpYyIsInRodW1ibmFpbCI6eyJzcmMiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzc4NzY4NV8xNngxNi5qcGciLCJzcmNfMngiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzc4NzY4NV8zMngzMi5qcGciLCJzcmNfNHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzc4NzY4NV82NHg2NC5qcGciLCJzcmNfOHgiOiJodHRwczpcL1wvaS52aW1lb2Nkbi5jb21cL3BvcnRyYWl0XC8xNzc4NzY4NV8xMjh4MTI4LmpwZyJ9fSwiYXV0b3BsYXkiOmZhbHNlLCJzZWVrdGltZSI6ZmFsc2UsIndhdGNoX2xhdGVyIjpmYWxzZSwiaXNfc3BhdGlhbCI6ZmFsc2V9LHsiY2xpcF9pZCI6MjA3NTM1MzAyLCJpc19zdGFmZnBpY2siOnRydWUsImlzX2ZlYXR1cmVkIjpmYWxzZSwidm9kX2lkIjpudWxsLCJ0aHVtYm5haWwiOnsic3JjIjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI0NDc2NjYyXzM5MHgyMjAuanBnIiwic3JjXzJ4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI0NDc2NjYyXzc4MHg0MzkuanBnIiwic3JjXzR4IjoiaHR0cHM6XC9cL2kudmltZW9jZG4uY29tXC92aWRlb1wvNjI0NDc2NjYyXzE1NjB4ODc4LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvdmlkZW9cLzYyNDQ3NjY2Ml8zMTIweDE3NTYuanBnIiwiYWx0IjoiQnkgVGhlIE5hbWUgb2YgQm9zdG9uIC0gYW5pbWF0aW9uIn0sInVwbG9hZGVkX29uIjoiMiB3ZWVrcyBhZ28iLCJkdXJhdGlvbiI6eyJyYXciOjE0NCwiZm9ybWF0dGVkIjoiMDI6MjQifSwicXVpY2tzdGF0cyI6eyJ0b3RhbF9jb21tZW50cyI6eyJyYXciOjE2LCJmb3JtYXR0ZWQiOiIxNiJ9LCJ0b3RhbF9saWtlcyI6eyJyYXciOjU3NywiZm9ybWF0dGVkIjoiNTc3In0sInRvdGFsX3BsYXlzIjp7InJhdyI6MTEzOTkwLCJmb3JtYXR0ZWQiOiIxMTRLIn19LCJ0aXRsZSI6IkJ5IFRoZSBOYW1lIG9mIEJvc3RvbiIsInVybCI6IlwvMjA3NTM1MzAyIiwidXNlciI6eyJpZCI6OTMwNzkyMywibmFtZSI6IkdyYW50IEtvbHRvbiIsInVybCI6IlwvZ3JhbnRrb2x0b24iLCJhY2NvdW50X3R5cGUiOiJwbHVzIiwidGh1bWJuYWlsIjp7InNyYyI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzEwMTUxNzEyXzE2eDE2LmpwZyIsInNyY18yeCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzEwMTUxNzEyXzMyeDMyLmpwZyIsInNyY180eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzEwMTUxNzEyXzY0eDY0LmpwZyIsInNyY184eCI6Imh0dHBzOlwvXC9pLnZpbWVvY2RuLmNvbVwvcG9ydHJhaXRcLzEwMTUxNzEyXzEyOHgxMjguanBnIn19LCJhdXRvcGxheSI6ZmFsc2UsInNlZWt0aW1lIjpmYWxzZSwid2F0Y2hfbGF0ZXIiOmZhbHNlLCJpc19zcGF0aWFsIjpmYWxzZX1dfX1dLCJhZF9jb25maWciOnsibmV0d29ya19pZCI6IjU0NTQ5NTQ0IiwidW5pdF9uYW1lIjoiZXJyb3JwYWdlIiwic2l6ZXMiOlszMDAsMjUwXX0sIndhdGNoX2xhdGVyX2NsaXBfaWRzIjpbXX07CgogbmV3IHdpbmRvdy5FeGNlcHRpb24oKTsKICAKIAogIH0KCiAgJChkb2N1bWVudCkucmVhZHkob25WaW1lb0RvbVJlYWR5KTsKICA8L3NjcmlwdD4KCgogPC9ib2R5Pgo8L2h0bWw+Cg==
126
- http_version:
127
- recorded_at: Mon, 27 Mar 2017 21:01:04 GMT
128
- recorded_with: VCR 3.0.3