filmaffinity 1.0.0 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +34 -0
  3. data/.rubocop.yml +6 -3
  4. data/Gemfile +10 -2
  5. data/Gemfile.lock +55 -20
  6. data/README.md +3 -1
  7. data/Rakefile +2 -0
  8. data/filmaffinity.gemspec +25 -19
  9. data/lib/constants/constants.rb +55 -50
  10. data/lib/filmaffinity/configuration.rb +1 -0
  11. data/lib/filmaffinity/{json-movie-parser.rb → json_movie_parser.rb} +7 -3
  12. data/lib/filmaffinity/{json-movies-parser.rb → json_movies_parser.rb} +5 -7
  13. data/lib/filmaffinity/movie.rb +30 -34
  14. data/lib/filmaffinity/{poster-manager.rb → poster_manager.rb} +7 -4
  15. data/lib/filmaffinity/search.rb +17 -12
  16. data/lib/filmaffinity/top.rb +22 -14
  17. data/lib/filmaffinity/version.rb +5 -0
  18. data/lib/filmaffinity.rb +14 -11
  19. data/spec/filmaffinity/{json-movie-parser_spec.rb → json_movie_parser_spec.rb} +6 -3
  20. data/spec/filmaffinity/{json-movies-parser_spec.rb → json_movies_parser_spec.rb} +6 -3
  21. data/spec/filmaffinity/movie_spec.rb +65 -130
  22. data/spec/filmaffinity/search_spec.rb +13 -20
  23. data/spec/filmaffinity/top_spec.rb +65 -72
  24. data/spec/filmaffinity/version_spec.rb +15 -0
  25. data/spec/{filmaffinity/matchers/include-movie.rb → matchers/include_movie.rb} +3 -1
  26. data/spec/spec_helper.rb +8 -1
  27. data/spec/vcr/FilmAffinity_Movie/english_version/_cast/includes_the_passed_cast.yml +59 -0
  28. data/spec/vcr/FilmAffinity_Movie/english_version/_cast/returns_an_Array.yml +59 -0
  29. data/spec/vcr/FilmAffinity_Movie/english_version/_company/returns_Paramount_Pictures_Scott_Rudin_Productions_.yml +59 -0
  30. data/spec/vcr/FilmAffinity_Movie/english_version/_company/returns_a_String.yml +59 -0
  31. data/spec/vcr/FilmAffinity_Movie/english_version/_country/returns_United_States_.yml +59 -0
  32. data/spec/vcr/FilmAffinity_Movie/english_version/_country/returns_a_String.yml +59 -0
  33. data/spec/vcr/FilmAffinity_Movie/english_version/_director/returns_Peter_Weir_.yml +59 -0
  34. data/spec/vcr/FilmAffinity_Movie/english_version/_director/returns_a_String.yml +59 -0
  35. data/spec/vcr/FilmAffinity_Movie/english_version/_duration/returns_103.yml +59 -0
  36. data/spec/vcr/FilmAffinity_Movie/english_version/_duration/returns_an_Integer.yml +59 -0
  37. data/spec/vcr/FilmAffinity_Movie/english_version/_genres/includes_the_passed_genres.yml +59 -0
  38. data/spec/vcr/FilmAffinity_Movie/english_version/_genres/returns_an_Array.yml +59 -0
  39. data/spec/vcr/FilmAffinity_Movie/english_version/_poster/returns_a_String.yml +59 -0
  40. data/spec/vcr/FilmAffinity_Movie/english_version/_poster/returns_a_jpg_address.yml +59 -0
  41. data/spec/vcr/FilmAffinity_Movie/english_version/_rating/returns_an_Float.yml +59 -0
  42. data/spec/vcr/FilmAffinity_Movie/english_version/_script/returns_Andrew_Niccol_.yml +59 -0
  43. data/spec/vcr/FilmAffinity_Movie/english_version/_script/returns_a_String.yml +59 -0
  44. data/spec/vcr/FilmAffinity_Movie/english_version/_title/returns_an_valid_title_when_initializes_with_no_title.yml +59 -0
  45. data/spec/vcr/FilmAffinity_Movie/english_version/_year/returns_1998.yml +59 -0
  46. data/spec/vcr/FilmAffinity_Movie/english_version/_year/returns_an_Integer.yml +59 -0
  47. data/spec/vcr/FilmAffinity_Movie/spanish_version/_cast/includes_the_passed_cast.yml +59 -0
  48. data/spec/vcr/FilmAffinity_Movie/spanish_version/_cast/returns_an_Array.yml +59 -0
  49. data/spec/vcr/FilmAffinity_Movie/spanish_version/_company/returns_Paramount_Pictures_Scott_Rudin_Productions_.yml +59 -0
  50. data/spec/vcr/FilmAffinity_Movie/spanish_version/_company/returns_a_String.yml +59 -0
  51. data/spec/vcr/FilmAffinity_Movie/spanish_version/_country/returns_Estados_Unidos_.yml +59 -0
  52. data/spec/vcr/FilmAffinity_Movie/spanish_version/_country/returns_a_String.yml +59 -0
  53. data/spec/vcr/FilmAffinity_Movie/spanish_version/_director/returns_Peter_Weir_.yml +59 -0
  54. data/spec/vcr/FilmAffinity_Movie/spanish_version/_director/returns_a_String.yml +59 -0
  55. data/spec/vcr/FilmAffinity_Movie/spanish_version/_duration/returns_103.yml +59 -0
  56. data/spec/vcr/FilmAffinity_Movie/spanish_version/_duration/returns_an_Integer.yml +59 -0
  57. data/spec/vcr/FilmAffinity_Movie/spanish_version/_genres/includes_the_passed_genres.yml +59 -0
  58. data/spec/vcr/FilmAffinity_Movie/spanish_version/_genres/returns_an_Array.yml +59 -0
  59. data/spec/vcr/FilmAffinity_Movie/spanish_version/_poster/returns_a_String.yml +59 -0
  60. data/spec/vcr/FilmAffinity_Movie/spanish_version/_poster/returns_a_jpg_address.yml +59 -0
  61. data/spec/vcr/FilmAffinity_Movie/spanish_version/_rating/returns_an_Float.yml +59 -0
  62. data/spec/vcr/FilmAffinity_Movie/spanish_version/_script/returns_Andrew_Niccol_.yml +59 -0
  63. data/spec/vcr/FilmAffinity_Movie/spanish_version/_script/returns_a_String.yml +59 -0
  64. data/spec/vcr/FilmAffinity_Movie/spanish_version/_title/returns_an_valid_title_when_initializes_with_no_title.yml +59 -0
  65. data/spec/vcr/FilmAffinity_Movie/spanish_version/_year/returns_1998.yml +59 -0
  66. data/spec/vcr/FilmAffinity_Movie/spanish_version/_year/returns_an_Integer.yml +59 -0
  67. data/spec/vcr/FilmAffinity_Search/_movies/includes_the_The_Truman_Show_.yml +63 -0
  68. data/spec/vcr/FilmAffinity_Search/_movies/includes_the_Truman_Show_.yml +63 -0
  69. data/spec/vcr/FilmAffinity_Search/_movies/returns_FilmAffinity_Movie_objects_only.yml +63 -0
  70. data/spec/vcr/FilmAffinity_Search/_movies/returns_an_array.yml +63 -0
  71. data/spec/vcr/FilmAffinity_Search/_parse_movie/parses_the_id.yml +114 -0
  72. data/spec/vcr/FilmAffinity_Search/_parse_movie/parses_the_title.yml +114 -0
  73. data/spec/vcr/FilmAffinity_Top/_movies/no_options/includes_El_Padrino_.yml +63 -0
  74. data/spec/vcr/FilmAffinity_Top/_movies/no_options/includes_The_Godfather_.yml +63 -0
  75. data/spec/vcr/FilmAffinity_Top/_movies/no_options/returns_30_movies.yml +63 -0
  76. data/spec/vcr/FilmAffinity_Top/_movies/no_options/returns_FilmAffinity_Movie_objects_only.yml +63 -0
  77. data/spec/vcr/FilmAffinity_Top/_movies/no_options/returns_an_array.yml +63 -0
  78. data/spec/vcr/FilmAffinity_Top/_movies/with_options/only_with_limit/set_to_10/returns_10_movies.yml +63 -0
  79. data/spec/vcr/FilmAffinity_Top/_movies/with_options/only_with_limit/set_to_132/returns_132_movies.yml +303 -0
  80. data/spec/vcr/FilmAffinity_Top/_movies/with_options/only_with_limit/set_to_60/does_not_include_Con_la_muerte_en_los_talones_.yml +123 -0
  81. data/spec/vcr/FilmAffinity_Top/_movies/with_options/only_with_limit/set_to_60/includes_American_History_X_.yml +123 -0
  82. data/spec/vcr/FilmAffinity_Top/_movies/with_options/only_with_limit/set_to_60/returns_60_movies.yml +123 -0
  83. data/spec/vcr/FilmAffinity_Top/_movies/with_options/with_genre_BE_and_country_code_DE_/includes_Generation_War_TV_Miniseries_.yml +125 -0
  84. data/spec/vcr/FilmAffinity_Top/_movies/with_options/with_genre_BE_and_country_code_DE_/includes_Hijos_del_Tercer_Reich_Miniserie_de_TV_.yml +125 -0
  85. data/spec/vcr/FilmAffinity_Top/_movies/with_options/with_genre_BE_and_country_code_DE_/returns_FilmAffinity_Movie_objects_only.yml +125 -0
  86. data/spec/vcr/FilmAffinity_Top/_movies/with_options/with_genre_BE_and_country_code_DE_/returns_an_array.yml +125 -0
  87. data/spec/vcr/JsonMovieParser/_to_hash/returns_the_right_director_for_the_given_movie.yml +59 -0
  88. data/spec/vcr/JsonMoviesParser/_to_hashes/returns_some_valid_ids_for_a_given_search.yml +63 -0
  89. metadata +163 -32
  90. data/.rubocop_todo.yml +0 -48
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.filmaffinity.com/en/search.php?stext=truman&stype=title
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Wed, 14 Oct 2020 19:47:51 GMT
23
+ Server:
24
+ - Apache
25
+ Expires:
26
+ - Thu, 19 Nov 1981 08:52:00 GMT
27
+ Pragma:
28
+ - no-cache
29
+ Cache-Control:
30
+ - public, max-age=0, must-revalidate
31
+ Set-Cookie:
32
+ - FCD=Fgy-7QgIwyWuT9AY3D9YtzB5UXpDHYSNbKGU-Bx5YFYAHFE5b3sqMapNeusVuYOd3zyXoRNJgMEixe35g57hMRHpt-lbIkKnrbvnxN7rcexDQfwWMg1iOw4shSI0qnfSZQLz9fytC3Hxtj4RwF20QodAB_iOTBFL;
33
+ expires=Tue, 11-Jul-2023 19:47:51 GMT; Max-Age=86400000; path=/; domain=.filmaffinity.com;
34
+ secure; HttpOnly
35
+ - FSID=34oc7h6vbo68411rm0o0a0psqtd8t5viu80g1rcbbdh1kom6t553oc273dio3r4i; path=/;
36
+ domain=.filmaffinity.com; secure; HttpOnly
37
+ - client-data=%7B%22ism%22%3Afalse%2C%22showm%22%3Afalse%2C%22ts%22%3A1602704871%7D;
38
+ expires=Thu, 29-Oct-2020 19:47:51 GMT; Max-Age=1296000
39
+ - client-data=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
40
+ X-Frame-Options:
41
+ - SAMEORIGIN
42
+ Upgrade:
43
+ - h2,h2c
44
+ Connection:
45
+ - Upgrade
46
+ Last-Modified:
47
+ - Wed, 14 Oct 2020 19:47:51 GMT
48
+ Etag:
49
+ - '"4d9b0e60a5a929cfd53153bb15716b3d-gzip"'
50
+ Vary:
51
+ - Accept-Encoding
52
+ X-Xss-Protection:
53
+ - 1; mode=block
54
+ Content-Length:
55
+ - '10133'
56
+ Content-Type:
57
+ - text/html; charset=utf-8
58
+ body:
59
+ encoding: ASCII-8BIT
60
+ string: !binary |-
61
+ PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+Cjx0aXRsZT5TZWFyY2ggZm9yICZxdW90O3RydW1hbiZxdW90OyAtIEZpbG1BZmZpbml0eTwvdGl0bGU+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkZpbG1hZmZpbml0eTogUmF0ZSBNb3ZpZXMgYW5kIFRWIFNob3dzICZhbXA7IEZpbmQgTW92aWUgUmVjb21tZW5kYXRpb25zIj4KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iRmlsbUFmZmluaXR5Ij4KPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiB2YWx1ZT0iQEZpbG1hZmZpbml0eSIgPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkZpbG1BZmZpbml0eSIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSIiIC8+CjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iIiAvPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL3d3dy5maWxtYWZmaW5pdHkuY29tL3VzL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIiBocmVmPSJodHRwczovL20uZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSIvZmF2aWNvbi5wbmciPgo8bGluayBocmVmPSIvc3R5bGUvanF1ZXJ5L2ZhLXVpLXRoZW1lL2pxdWVyeS11aS5taW4uMTUzOTA5NjMwNi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvanF1ZXJ5L2ZhLXVpLXRoZW1lL2pxdWVyeS11aS5zdHJ1Y3R1cmUubWluLjE1MzkwOTYzMDYuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2pxdWVyeS9mYS11aS10aGVtZS9qcXVlcnktdWkudGhlbWUubWluLjE1MzkwOTYzMDYuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2pxdWVyeS9qcXZtYXAvanF2bWFwLm1pbi4xNTYxNDUwODYxLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9tYWluMy4xNjAxNjQxMTQxLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9tb3ZpZWNhcmRzMy4xNTg1NzM0MzQzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9mYS1hd2Vzb21lLjE1MzkwOTYyOTEuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2ZvbnQtYXdlc29tZS41LjExLjEubWluLjE1NzkxNzQ2OTEuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2ZhLWljb25zLjE1ODIyODg0NzcuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL21hZ2ljLWNoZWNrLm1pbi4xNTM5MDk2MjkxLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9sb2NhbF9lbi4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9qcXVlcnktMy4xLjAubWluLjE1MzkwOTYzMDIuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLTEuNC4xLm1pbi4xNTM5MDk2MzAyLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS91aS9qcXVlcnktdWktMS4xMi4xLm1pbi4xNTM5MDk2MzA4LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9wbHVnaW4vanF2bWFwL2pxdWVyeS52bWFwLm1pbi4xNTYxNDUwODM0LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9wbHVnaW4vanF2bWFwL2pxdWVyeS52bWFwLndvcmxkLjE1NjE0NTA4MzYuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvY3JjMzIuMTUzOTA5NjI5My5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy90cmFuc2xhdGUtY29udGV4dC4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2xvY2FsZS90ZXh0cy1lbl9VUy4xNjAxOTA3MDcxLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9wbHVnaW4vanF1ZXJ5LmNvb2tpZS4xNTM5MDk2MzA4LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2Fkcy4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL21haW4uMTYwMDcwMjA0Ny5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9wYWdldG9wLjE1ODEzNDQ4MzQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvei1pbmRleC1maXguMTUzOTA5NjI5Mi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvcGx1Z2luL2xhenlzaXplcy9sYXp5c2l6ZXMubWluLjE2MDIwNjgzNzUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvZmEtbGlzdHMtdGlwLjE1MzkwOTYyOTIuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvaGlkZS1xdC4xNTg0NDU2NDEyLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL29sZC1hdXRvY29tcGxldGUuMTU4NTY2NzMwNy5qcyI+PC9zY3JpcHQ+Cgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlbiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL214L3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtTVgiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9hci9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzLUFSIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vY2wvc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlcy1DTCI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2NvL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtQ08iPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS91eS9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzLVVZIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vcGUvc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlcy1QRSI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VjL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtRUMiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS92ZS9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzLVZFIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vY3Ivc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlcy1DUiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2JvL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtQk8iPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS91cy9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVuLVVTIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vdWsvc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlbi1HQiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2llL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZW4tSUUiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9hdS9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVuLUFVIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vY2Evc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlbi1DQSI+CgoKPHNjcmlwdD4KICAgICQoZnVuY3Rpb24oKXsKICAgICAgICBzZXNzUGluZygiMDE1Zjg3NTVlNzE5Mjc4OWYyZTViYWQ1YzgyMDAyMzlmODRjOTYzMTYyIiwgMjQwMCk7CiAgICAgICAgdmFyIHRjVGV4dHMgPSBUcmFuc2xhdGVDb250ZXh0LmdldEluc3RhbmNlKGNvbW1vblRleHRzSnMpOwogICAgfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IGFzeW5jPSdhc3luYycgc3JjPSdodHRwczovL3NjLWRldmVsLnMzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLXRhZ21hbmFnZXIvc2NfZ3B0X2xzdGFwYy5qcyc+PC9zY3JpcHQ+DQoNCiA8c2NyaXB0Pg0KDQogICAgICAgIHZhciBnb29nbGV0YWcgPSBnb29nbGV0YWcgfHwge307DQoNCiAgICAgICAgZ29vZ2xldGFnLmNtZCA9IGdvb2dsZXRhZy5jbWQgfHwgW107DQoNCiA8L3NjcmlwdD4NCg0KIDxzY3JpcHQgc3JjPSJodHRwczovL3MzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLWRldmVsL1NraW5zL1NNQ1NlcnZpY2UuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc2MtZGV2ZWwvc2MtdGFnbWFuYWdlci9maWxtYWZmaW5pdHkuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnNtYXJ0Y2xpcC1zZXJ2aWNlcy5jb20vdjEvU3RvcmFnZS1hNDgyMzIzL3NtYXJ0Y2xpcC1zZXJ2aWNlcy9IZWFkZXJCaWRkaW5nL2pzL1NtYXJ0Y2xpcENvbmZpZy5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4NCjwhLS0gUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz10cnVlPgooZnVuY3Rpb24oKSB7CiAgdmFyIGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICB2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgdmFyIHVybCA9ICdodHRwczovL3F1YW50Y2FzdC5tZ3IuY29uc2Vuc3Uub3JnJwogICAgLmNvbmNhdCgnL2Nob2ljZS8nLCAnTEJCckYtYmRBdGt1RicsICcvJywgaG9zdCwgJy9jaG9pY2UuanMnKQogIHZhciB1c3BUcmllcyA9IDA7CiAgdmFyIHVzcFRyaWVzTGltaXQgPSAzOwogIGVsZW1lbnQuYXN5bmMgPSB0cnVlOwogIGVsZW1lbnQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogIGVsZW1lbnQuc3JjID0gdXJsOwoKICBmaXJzdFNjcmlwdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBmaXJzdFNjcmlwdCk7CgogIGZ1bmN0aW9uIG1ha2VTdHViKCkgewogICAgdmFyIFRDRl9MT0NBVE9SX05BTUUgPSAnX190Y2ZhcGlMb2NhdG9yJzsKICAgIHZhciBxdWV1ZSA9IFtdOwogICAgdmFyIHdpbiA9IHdpbmRvdzsKICAgIHZhciBjbXBGcmFtZTsKCiAgICBmdW5jdGlvbiBhZGRGcmFtZSgpIHsKICAgICAgdmFyIGRvYyA9IHdpbi5kb2N1bWVudDsKICAgICAgdmFyIG90aGVyQ01QID0gISEod2luLmZyYW1lc1tUQ0ZfTE9DQVRPUl9OQU1FXSk7CgogICAgICBpZiAoIW90aGVyQ01QKSB7CiAgICAgICAgaWYgKGRvYy5ib2R5KSB7CiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwoKICAgICAgICAgIGlmcmFtZS5zdHlsZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6bm9uZSc7CiAgICAgICAgICBpZnJhbWUubmFtZSA9IFRDRl9MT0NBVE9SX05BTUU7CiAgICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzZXRUaW1lb3V0KGFkZEZyYW1lLCA1KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuICFvdGhlckNNUDsKICAgIH0KCiAgICBmdW5jdGlvbiB0Y2ZBUElIYW5kbGVyKCkgewogICAgICB2YXIgZ2RwckFwcGxpZXM7CiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzOwoKICAgICAgaWYgKCFhcmdzLmxlbmd0aCkgewogICAgICAgIHJldHVybiBxdWV1ZTsKICAgICAgfSBlbHNlIGlmIChhcmdzWzBdID09PSAnc2V0R2RwckFwcGxpZXMnKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgYXJncy5sZW5ndGggPiAzICYmCiAgICAgICAgICBhcmdzWzJdID09PSAyICYmCiAgICAgICAgICB0eXBlb2YgYXJnc1szXSA9PT0gJ2Jvb2xlYW4nCiAgICAgICAgKSB7CiAgICAgICAgICBnZHByQXBwbGllcyA9IGFyZ3NbM107CiAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMl0gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgYXJnc1syXSgnc2V0JywgdHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGFyZ3NbMF0gPT09ICdwaW5nJykgewogICAgICAgIHZhciByZXRyID0gewogICAgICAgICAgZ2RwckFwcGxpZXM6IGdkcHJBcHBsaWVzLAogICAgICAgICAgY21wTG9hZGVkOiBmYWxzZSwKICAgICAgICAgIGNtcFN0YXR1czogJ3N0dWInCiAgICAgICAgfTsKCiAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzJdID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICBhcmdzWzJdKHJldHIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBxdWV1ZS5wdXNoKGFyZ3MpOwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIoZXZlbnQpIHsKICAgICAgdmFyIG1zZ0lzU3RyaW5nID0gdHlwZW9mIGV2ZW50LmRhdGEgPT09ICdzdHJpbmcnOwogICAgICB2YXIganNvbiA9IHt9OwoKICAgICAgdHJ5IHsKICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBqc29uID0gZXZlbnQuZGF0YTsKICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge30KCiAgICAgIHZhciBwYXlsb2FkID0ganNvbi5fX3RjZmFwaUNhbGw7CgogICAgICBpZiAocGF5bG9hZCkgewogICAgICAgIHdpbmRvdy5fX3RjZmFwaSgKICAgICAgICAgIHBheWxvYWQuY29tbWFuZCwKICAgICAgICAgIHBheWxvYWQudmVyc2lvbiwKICAgICAgICAgIGZ1bmN0aW9uKHJldFZhbHVlLCBzdWNjZXNzKSB7CiAgICAgICAgICAgIHZhciByZXR1cm5Nc2cgPSB7CiAgICAgICAgICAgICAgX190Y2ZhcGlSZXR1cm46IHsKICAgICAgICAgICAgICAgIHJldHVyblZhbHVlOiByZXRWYWx1ZSwKICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3MsCiAgICAgICAgICAgICAgICBjYWxsSWQ6IHBheWxvYWQuY2FsbElkCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgICAgICByZXR1cm5Nc2cgPSBKU09OLnN0cmluZ2lmeShyZXR1cm5Nc2cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXR1cm5Nc2csICcqJyk7CiAgICAgICAgICB9LAogICAgICAgICAgcGF5bG9hZC5wYXJhbWV0ZXIKICAgICAgICApOwogICAgICB9CiAgICB9CgogICAgd2hpbGUgKHdpbikgewogICAgICB0cnkgewogICAgICAgIGlmICh3aW4uZnJhbWVzW1RDRl9MT0NBVE9SX05BTUVdKSB7CiAgICAgICAgICBjbXBGcmFtZSA9IHdpbjsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoaWdub3JlKSB7fQoKICAgICAgaWYgKHdpbiA9PT0gd2luZG93LnRvcCkgewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIHdpbiA9IHdpbi5wYXJlbnQ7CiAgICB9CiAgICBpZiAoIWNtcEZyYW1lKSB7CiAgICAgIGFkZEZyYW1lKCk7CiAgICAgIHdpbi5fX3RjZmFwaSA9IHRjZkFQSUhhbmRsZXI7CiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIsIGZhbHNlKTsKICAgIH0KICB9OwoKICBtYWtlU3R1YigpOwoKICB2YXIgdXNwU3R1YkZ1bmN0aW9uID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYXJnID0gYXJndW1lbnRzOwogICAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgIT09IHVzcFN0dWJGdW5jdGlvbikgewogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0eXBlb2Ygd2luZG93Ll9fdXNwYXBpICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgd2luZG93Ll9fdXNwYXBpLmFwcGx5KHdpbmRvdy5fX3VzcGFwaSwgYXJnKTsKICAgICAgICB9CiAgICAgIH0sIDUwMCk7CiAgICB9CiAgfTsKCiAgdmFyIGNoZWNrSWZVc3BJc1JlYWR5ID0gZnVuY3Rpb24oKSB7CiAgICB1c3BUcmllcysrOwogICAgaWYgKHdpbmRvdy5fX3VzcGFwaSA9PT0gdXNwU3R1YkZ1bmN0aW9uICYmIHVzcFRyaWVzIDwgdXNwVHJpZXNMaW1pdCkgewogICAgICBjb25zb2xlLndhcm4oJ1VTUCBpcyBub3QgYWNjZXNzaWJsZScpOwogICAgfSBlbHNlIHsKICAgICAgY2xlYXJJbnRlcnZhbCh1c3BJbnRlcnZhbCk7CiAgICB9CiAgfTsKCiAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgPT09ICd1bmRlZmluZWQnKSB7CiAgICB3aW5kb3cuX191c3BhcGkgPSB1c3BTdHViRnVuY3Rpb247CiAgICB2YXIgdXNwSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChjaGVja0lmVXNwSXNSZWFkeSwgNjAwMCk7CiAgfQp9KSgpOwo8L3NjcmlwdD4KPCEtLSBFbmQgUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQ+CiAgdmFyIF9jb21zY29yZSA9IF9jb21zY29yZSB8fCBbXTsKICBfY29tc2NvcmUucHVzaCh7IGMxOiAiMiIsIGMyOiAiMTMxODExMjEiIH0pOwogIChmdW5jdGlvbigpIHsKICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyBzLmFzeW5jID0gdHJ1ZTsKICAgIHMuc3JjID0gKGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID09ICJodHRwczoiID8gImh0dHBzOi8vc2IiIDogImh0dHA6Ly9iIikgKyAiLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9iZWFjb24uanMiOwogICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocywgZWwpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+CiAgPGltZyBzcmM9Imh0dHA6Ly9iLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9wP2MxPTImYzI9MTMxODExMjEmY3Y9Mi4wJmNqPTEiIC8+Cjwvbm9zY3JpcHQ+CjxzY3JpcHQ+JChmdW5jdGlvbigpe3NlbmRwdigiYmMxOWIyOTY1ZTE5Yzg5MGM1YTYxOWE2Zjg1YTNiMTIiKTt9KTs8L3NjcmlwdD4NCjwvaGVhZD4KPGJvZHk+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgIChmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsKICAgICAgICAgIChpW3JdLnE9aVtyXS5xfHxbXSkucHVzaChhcmd1bWVudHMpfSxpW3JdLmw9MSpuZXcgRGF0ZSgpO2E9cy5jcmVhdGVFbGVtZW50KG8pLAogICAgICAgICAgbT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKG8pWzBdO2EuYXN5bmM9MTthLnNyYz1nO20ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxtKQogICAgICAgICAgfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCcvL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMnLCdnYScpOwogICAgICAgICAgZ2EoJ2NyZWF0ZScsICdVQS03NDE1NTUwNC0xJywgJ2F1dG8nKTsKICAgICAgICAgIGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7CiAgICAgICAgPC9zY3JpcHQ+CjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KICAgIDxkaXYgaWQ9ImhlYWRlci10b3AiID4KICAgICAgICA8ZGl2IGNsYXNzPSJjcGFuZWwgdG9wLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGl2IGlkPSJsb2dvLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL21haW4uaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9ImxvZ28iIHNyYz0iL2ltYWdlcy9sb2dvNC5wbmciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28tc2l0ZWxvYyI+VVNBIHwgVUs8L2Rpdj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+PCEtLSBsb2dvLWNvbnRhaW5lciAtLT4KCiAgICAgICAgICAgIDxkaXYgaWQ9InRvcHNlYXJjaCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocCIgbWV0aG9kPSJnZXQiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJ0b3Atc2VhcmNoLWlucHV0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJzdGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSJ0cnVtYW4iIHRhYmluZGV4PSIxIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS10aW1lcyBjbGVhci1zZWFyY2giPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iYnV0dG9uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXNlYXJjaCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iYnV0dG9uLXNlYXJjaCIgdmFsdWU9IiZuYnNwOyI+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZHZzZWFyY2giPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYWR2c2VhcmNoLnBocCI+QWR2YW5jZWQgc2VhcmNoIDxpIGNsYXNzPSJmYXMgZmEtYW5nbGUtZG91YmxlLXJpZ2h0Ij48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj48IS0tIHRvcHNlYXJjaCAtLT4KICAgICAgICAgICAgPGRpdiBpZD0idXNlci1sb2dpbi1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGRpdiBpZD0ibG9naW4tcmVnaXN0ZXIiPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJzaWduLWluIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2xvZ2luLnBocCI+PHN0cm9uZz5TaWduIGluPC9zdHJvbmc+PC9hPiAvIDxhIGNsYXNzPSJyZWdpc3RlciIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9yZWdpc3Rlci5waHAiPlJlZ2lzdGVyPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1tZW51LXdyIj4KPHVsPgogICAgPGxpPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdXNlcnJhdGluZ3MucGhwP3VzZXJfaWQ9Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1yYXRpbmdzLWZhIj48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgTXkgUmF0aW5ncyAgICAgICAgPC9hPgogICAgPC9saT4KICAgIDxsaT4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL215cmV2aWV3cy5waHAiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWMtdyI+PGkgY2xhc3M9ImZhIGZhLXJldmlld3MtZmEiPjwvaT48L3NwYW4+CiAgICAgICAgICAgIFJldmlld3MgICAgICAgIDwvYT4KICAgIDwvbGk+CiAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9teWxpc3RzLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtbGlzdCI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgTGlzdHMgPHNwYW4gY2xhc3M9Im5ici13Ij5OZXc8L3NwYW4+CiAgICAgICAgPC9hPgogICAgPC9saT4KICAgIDxsaT4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL215ZnJpZW5kcy5waHAiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWMtdyI+PGkgY2xhc3M9ImZhIGZhIGZhLWZyaWVuZHMtZmEiPjwvaT48L3NwYW4+CiAgICAgICAgICAgIEZyaWVuZHMgLyBHcm91cHMgICAgICAgIDwvYT4KICAgIDwvbGk+CiAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zb3VsbWF0ZXMucGhwIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1zb3VsbWF0ZXMtZmEiPjwvaT48L3NwYW4+CiAgICAgICAgICAgIE1vdmllIFNvdWxtYXRlcyYjODQ4MjsgICAgICAgIDwvYT4KICAgIDwvbGk+CiAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zbXNyZWMucGhwIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1oZWFydCI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgIFJlY29tbWVuZGVkIE1vdmllcyAgICAgICAgPC9hPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0idXNlci1wcm9mLWxpbmsiPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vbXlkYXRhLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtYWRkcmVzcy1jYXJkLW8iPjwvaT48L3NwYW4+CiAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICA8L2E+CiAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3Vycy5waHAiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1yYXRpbmdzLWZhIj48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgU3RhcnQgUmF0aW5nISAgICAgICAgICAgIDwvYT4KICAgICAgICA8L2xpPgogICAgICAgIDxsaSBjbGFzcz0ibGctb3V0LWxpIj4KICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InNpZ24tb3V0Ij4KICAgICAgICAgICAgICAgIFNpZ24gb3V0ICAgICAgICAgICAgPC9hPgogICAgICAgIDwvbGk+CjwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+PCEtLSB1c2VyLWxvZ2luIC1jb250YWluZXIgLS0+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImhlYWRlci1ib3R0b20iICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY3BhbmVsIG5ld3Mtd3JhcHBlciI+Cgo8dWwgaWQ9ImF3YXJkc21lbnUiPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0ZWdvcnkucGhwP2lkPWxhdGVzdF9yZXZpZXdzIj5SZXZpZXdzPC9hPjwvbGk+PGxpIGNsYXNzPSJzZXAiPnw8L2xpPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0ZWdvcnkucGhwP2lkPVRSQUlMRVJTIj5UcmFpbGVyczwvYT48L2xpPjxsaSBjbGFzcz0ic2VwIj58PC9saT4KICAgICAgICAgICAgPGxpID48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2Jlc3RfMjAxOS5waHAiPjIwMTk8L2E+PC9saT48bGkgY2xhc3M9InNlcCI+fDwvbGk+CiAgICAgICAgICAgIDxsaSA+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BnZW4ucGhwP2dlbnJlPSZmcm9teWVhcj0mdG95ZWFyPSZjb3VudHJ5PSZub2RvYyI+VG9wIEZBPC9hPjwvbGk+PGxpIGNsYXNzPSJzZXAiPnw8L2xpPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYWxsX2F3YXJkcy5waHAiPkF3YXJkczwvYT48L2xpPjxsaSBjbGFzcz0ic2VwIj58PC9saT4KICAgICAgICAgICAgPGxpID48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2F3YXJkcy5waHA/YXdhcmRfaWQ9ZW1teSZ5ZWFyPTIwMjAiPkVNTVkgQXdhcmRzIDIwMjA8L2E+PC9saT48bGkgY2xhc3M9InNlcCI+fDwvbGk+CjwvdWw+CgoKCiAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgICAgICAgIHZhciByZW1pbmRlclRleHQgPSAnRmlsbWFmZmluaXR5IGlzIGF2YWlsYWJsZSBpbiB5b3VyIGNvdW50cnkuIMKhVHJ5IG91dCB0aGlzIHZlcnNpb24hPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9tYWluLmh0bWwiIGNsYXNzPSJmYS1idXR0b24iIGRhdGEtdmVyc2lvbj0iZXMiPkdvIHRvIFNwYWluIHZlcnNpb248aSBjbGFzcz0iZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0Ij48L2k+PC9hPjxkaXYgY2xhc3M9ImRpc2Nsb3N1cmUiPk5vLCBJIHdhbnQgdG8gc3RheSBpbiBVU0EgfCBVSyB2ZXJzaW9uPC9kaXY+JzsKICAgICAgICAgICAgICAgICAgICByZW5kZXJWZXJzaW9uUmVtaW5kZXIocmVtaW5kZXJUZXh0KTsKICAgICAgICAgICAgICAgIDwvc2NyaXB0PgogICAgICAgICAgICA8dWwgY2xhc3M9InZlcnNpb24iPgogICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iZW4iIGNsYXNzPSJmaXhlZCIgdGl0bGU9IkNoYW5nZSBsYXlvdXQiPlVTQSB8IFVLIDxpIGNsYXNzPSJmYXMgZmEtY2hldnJvbi1kb3duIj48L2k+PC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgPC9kaXY+Cg0KICAgIDxkaXYgY2xhc3M9InBhZ2UtdmVyc2lvbnMtcG9wIGZhLXNoYWRvdyI+DQogICAgICAgIDxkaXYgaWQ9InZtYXAiIHN0eWxlPSJ3aWR0aDogNjMwcHg7IGhlaWdodDogNDAwcHg7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY291bnRyeS1uYW1lcyI+DQogICAgICAgICAgICA8dWwgY2xhc3M9ImNvbnRpbmVudHMiPg0KICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS1jb250aW5lbnQ9ImFtZXJpY2Etbm9ydGgiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5Ob3J0aCBBbWVyaWNhIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoLXBsdXMgbWFwLXpvb20iPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY291bnRyaWVzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0idXMiIGRhdGEtY291bnRyeS1pZD0idXMiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVVMucG5nIiBhbHQ9IlVuaXRlZCBTdGF0ZXMiIHRpdGxlPSJVbml0ZWQgU3RhdGVzIj4gVVNBIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNhIiBkYXRhLWNvdW50cnktaWQ9ImNhIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NBLnBuZyIgYWx0PSJDYW5hZGEiIHRpdGxlPSJDYW5hZGEiPiBDYW5hZGEgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0ibXgiIGRhdGEtY291bnRyeS1pZD0ibXgiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvTVgucG5nIiBhbHQ9Ik1leGljbyIgdGl0bGU9Ik1leGljbyI+IE3DqXhpY28gPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLWNvbnRpbmVudD0iZXVyb3BlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+RXVyb3BlIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoLXBsdXMgbWFwLXpvb20iPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY291bnRyaWVzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iZXMiIGRhdGEtY291bnRyeS1pZD0iZXMiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvRVMucG5nIiBhbHQ9IlNwYWluIiB0aXRsZT0iU3BhaW4iPiBTcGFpbiA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJ1ayIgZGF0YS1jb3VudHJ5LWlkPSJnYiI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9HQi5wbmciIGFsdD0iVW5pdGVkIEtpbmdkb20iIHRpdGxlPSJVbml0ZWQgS2luZ2RvbSI+IFVLIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImllIiBkYXRhLWNvdW50cnktaWQ9ImllIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0lFLnBuZyIgYWx0PSJJcmVsYW5kIiB0aXRsZT0iSXJlbGFuZCI+IElyZWxhbmQgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLWNvbnRpbmVudD0ib2NlYW5pYSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPk9jZWFuaWEgPGkgY2xhc3M9ImZhcyBmYS1zZWFyY2gtcGx1cyBtYXAtem9vbSI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjb3VudHJpZXMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJhdSIgZGF0YS1jb3VudHJ5LWlkPSJhdSI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9BVS5wbmciIGFsdD0iQXVzdHJhbGlhIiB0aXRsZT0iQXVzdHJhbGlhIj4gQXVzdHJhbGlhIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIDx1bCBjbGFzcz0iY29udGluZW50cyI+DQogICAgICAgICAgICAgICAgPGxpIGRhdGEtY29udGluZW50PSJhbWVyaWNhLXNvdXRoIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5Tb3V0aCBBbWVyaWNhIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoLXBsdXMgbWFwLXpvb20iPjwvaT4gPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY291bnRyaWVzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJhciIgZGF0YS1jb3VudHJ5LWlkPSJhciI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9BUi5wbmciIGFsdD0iQXJnZW50aW5hIiB0aXRsZT0iQXJnZW50aW5hIj4gQXJnZW50aW5hIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iY2wiIGRhdGEtY291bnRyeS1pZD0iY2wiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvQ0wucG5nIiBhbHQ9IkNoaWxlIiB0aXRsZT0iQ2hpbGUiPiBDaGlsZSA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNvIiBkYXRhLWNvdW50cnktaWQ9ImNvIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NPLnBuZyIgYWx0PSJDb2xvbWJpYSIgdGl0bGU9IkNvbG9tYmlhIj4gQ29sb21iaWEgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJ1eSIgZGF0YS1jb3VudHJ5LWlkPSJ1eSI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VWS5wbmciIGFsdD0iVXJ1Z3VheSIgdGl0bGU9IlVydWd1YXkiPiBVcnVndWF5IDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0icGUiIGRhdGEtY291bnRyeS1pZD0icGUiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvUEUucG5nIiBhbHQ9IlBlcnUiIHRpdGxlPSJQZXJ1Ij4gUGVyw7ogPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJlYyIgZGF0YS1jb3VudHJ5LWlkPSJlYyI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9FQy5wbmciIGFsdD0iRWN1YWRvciIgdGl0bGU9IkVjdWFkb3IiPiBFY3VhZG9yIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0idmUiIGRhdGEtY291bnRyeS1pZD0idmUiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVkUucG5nIiBhbHQ9IlZlbmV6dWVsYSIgdGl0bGU9IlZlbmV6dWVsYSI+IFZlbmV6dWVsYSA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNyIiBkYXRhLWNvdW50cnktaWQ9ImNyIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NSLnBuZyIgYWx0PSJDb3N0YSBSaWNhIiB0aXRsZT0iQ29zdGEgUmljYSI+IENvc3RhIFJpY2EgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJibyIgZGF0YS1jb3VudHJ5LWlkPSJibyI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9CTy5wbmciIGFsdD0iQm9saXZpYSIgdGl0bGU9IkJvbGl2aWEiPiBCb2xpdmlhIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmEtaW50ZXJuYXRpb25hbC5waHAiIGNsYXNzPSJtb3JlLWluZm8iPjxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUiPjwvaT4gTW9yZSBpbmZvcm1hdGlvbjwvYT4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQogICAgdmFyIG1hcFZlcnNpb25zID0geyJ1cyI6IiMzQzZFOTkiLCJjYSI6IiMzQzZFOTkiLCJteCI6IiMzQzZFOTkiLCJlcyI6IiMzQzZFOTkiLCJnYiI6IiMzQzZFOTkiLCJpZSI6IiMzQzZFOTkiLCJhdSI6IiMzQzZFOTkiLCJhciI6IiMzQzZFOTkiLCJjbCI6IiMzQzZFOTkiLCJjbyI6IiMzQzZFOTkiLCJ1eSI6IiMzQzZFOTkiLCJwZSI6IiMzQzZFOTkiLCJlYyI6IiMzQzZFOTkiLCJ2ZSI6IiMzQzZFOTkiLCJjciI6IiMzQzZFOTkiLCJibyI6IiMzQzZFOTkifTsNCiAgICANCi8qICAvL3BhcmEgc2FjYXIgdHJhemFzIGRlIGNvb3JkZW5hZGFzLg0KICAgIGpRdWVyeSgnI3ZtYXAnKS5vbignZHJhZycsIGZ1bmN0aW9uKGV2ZW50KQ0KICAgIHsNCiAgICAgICAgY29uc29sZS5sb2coanF2bWFwLnRyYW5zWCk7DQogICAgICAgIGNvbnNvbGUubG9nKGpxdm1hcC50cmFuc1kpOw0KICAgICAgICBjb25zb2xlLmxvZyhqcXZtYXAuc2NhbGUpOw0KICAgICAgICBjb25zb2xlLmxvZyhqcXZtYXAuem9vbUN1clN0ZXApOw0KICAgIH0pOw0KKi8gICAgDQogICAgDQoNCjwvc2NyaXB0Pg0KCiAgICA8L2Rpdj4KPC9kaXY+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0iY3BhbmVsIGFkdmVyLXdyYXBwZXIiPgo8ZGl2IGlkPSJ0b3AtYWQiIGNsYXNzPSJhZHZlci1maXgiPgogICAgPGRpdiBpZD0nc2MtdG9wJyBjbGFzcz0ic2MtdG9wIj4KCiAgICAgICAgICAgPHNjcmlwdD4KCiAgICAgICAgICAgICAgICAgIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGdvb2dsZXRhZy5kaXNwbGF5KCdzYy10b3AnKTsKCiAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgIDwvc2NyaXB0PgoKICAgIDwvZGl2PgoKICAgIDwhLS0gc2Mtb29wLS0+CgogICAgPGRpdiBpZD0nc2Mtb29wJyBjbGFzcz0ic2Mtb29wIj4KCiAgICAgICAgICAgPHNjcmlwdD4KCiAgICAgICAgICAgICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xldGFnLmRpc3BsYXkoJ3NjLW9vcCcpOwoKICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgPC9zY3JpcHQ+CgogICAgPC9kaXY+CjwvZGl2PgoNCg0KDQoNCg0KDQoNCg0KPC9kaXY+Cgo8ZGl2IGlkPSJ0b3AtYW5jaCI+CiAgICA8YSB0aXRsZT0iQmFjayB0byB0b3AiIGhyZWY9IiNoZWFkZXItdG9wIj4KICAgICAgICA8aW1nIGFsdD0iYXJyb3ciIHNyYz0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9pbWFnZXMvYXJyb3ctdXAyLnBuZyI+CiAgICA8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjcGFuZWwiPgogIDx0YWJsZSBpZD0ibWFpbi1jb250ZW50LXRhYmxlIj4KICAgIDx0cj4KICAgICAgPHRkIGlkPSJtdC1sZWZ0LWNlbGwiPgogICAgICAgIDxkaXYgaWQ9ImxzbWVudSI+CjxkaXYgY2xhc3M9ImNhdC1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJsc21oZWFkZXIiPlVzZXJzPC9kaXY+Cjx1bD4KPGxpID48YSBjbGFzcz0icmF0ZS10b3VycyIgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdG91cnMucGhwIj5TdGFydCBSYXRpbmchPC9hPjwvbGk+PGxpID48YSBjbGFzcz0ic2lnbi1pbiIgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vbG9naW4ucGhwIj5TaWduIGluPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9yZWdpc3Rlci5waHAiPlJlZ2lzdGVyPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+Tm93IFBsYXlpbmc8L2Rpdj4KPHVsPgo8bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2NhdF9uZXdfdGhfdXMuaHRtbCI+VVMgLSBOZXcgUmVsZWFzZXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3JkY2F0LnBocD9pZD11cGNfdGhfdXMiPlVTIC0gQ29taW5nIFNvb248L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2NhdF9uZXdfdGhfdWsuaHRtbCI+VUsgLSBOZXcgUmVsZWFzZXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3JkY2F0LnBocD9pZD11cGNfdGhfdWsiPlVLIC0gVXBjLiBSZWxlYXNlczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0X2VzdHJfZnIuaHRtbCI+RnJhbmNlIC0gTmV3IFJlbGVhc2VzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfbmV3X25ldGZsaXguaHRtbCI+TmV0ZmxpeDwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vcmRjYXQucGhwP2lkPXVwY19uZXRmbGl4Ij5OZXRmbGl4IChjb21pbmcgc29vbik8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2NhdF9uZXdfaGJvLmh0bWwiPkhCTzwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0X25ld19hbWF6b24uaHRtbCI+QW1hem9uPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfZGlzbmV5cGx1cy5odG1sIj5EaXNuZXkrPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfYXBwbGVfdHZfcGx1cy5odG1sIj5BcHBsZSBUVis8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5TZWUgTW9yZTwvZGl2Pgo8dWw+CjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYm94b2ZmaWNlLnBocCI+Qm94IE9mZmljZTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdHJhaWxlcnMucGhwIj5UcmFpbGVyczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vbGF0ZXN0ZXZpZGVvcy5waHAiPkxhdGVzdCBUcmFpbGVyczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0ZWdvcnkucGhwP2lkPWxhdGVzdF9yZXZpZXdzIj5XaGF0IENyaXRpY3MgU2F5PC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BpY3MucGhwIj5GaWxtcyBieSBLZXl3b3JkPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9tb3ZpZS1ncm91cHMtYWxsLnBocCI+U2FnYXMgJiBGcmFuY2hpc2VzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+VFYgU2VyaWVzPC9kaXY+Cjx1bD4KPGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfY3VycmVudF90di5odG1sIj5Qb3B1bGFyIFRWIFNob3dzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BnZW4ucGhwP2dlbnJlPVRWX1NFJmNvdW50cnk9JmZyb215ZWFyPSZ0b3llYXI9Jm5vZG9jIj5Ub3AgVFYgU2VyaWVzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3VyLnBocD9pZHRvdXI9MjYiPlJhdGUgVFYgU2VyaWVzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+VE9QczwvZGl2Pgo8dWw+CjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdG9wZ2VuLnBocCI+VG9wIEZpbG1hZmZpbml0eTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYmVzdF90b3BzLnBocCI+VG9wIG9mIHRoZSBUb3BzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BjYXRfbmV3X3RoX3VzLmh0bWwiPlRvcCBOZXcgUmVsZWFzZXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2xpc3RzcmFuay5waHAiPlRvcCBvZiB0aGUgTGlzdHM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5Bd2FyZHMgJiBGZXN0aXZhbHM8L2Rpdj4KPHVsPgo8bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2FsbF9hd2FyZHMucGhwIj5Bd2FyZHMgJiBGZXN0aXZhbHM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL29zY2FyX2RhdGEucGhwIj5BbGwgT3NjYXJzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9iZXN0XzIwMTkucGhwIj5CZXN0IG9mIDIwMTk8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5BYm91dCBGaWxtYWZmaW5pdHk8L2Rpdj4KPHVsPgo8bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NpdGUtZ3VpZGUucGhwIj5BYm91dCBGQTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY29udGFjdF91cy5waHAiPkNvbnRhY3QgVXM8L2E+PC9saT48L3VsPjwvZGl2Pgo8L2Rpdj4KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIDxkaXYgaWQ9Im10LWNvbnRlbnQtY2VsbCI+CiAgICAgICAgICAgIDxkaXYgaWQ9InNoLXBvcy1hYnMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2gtaGVhZGVyIiB0aXRsZT0iU2hhcmUiPjxpIGNsYXNzPSJmYXMgZmEtc2hhcmUtYWx0Ij48L2k+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3R5bGU+CiAgICAjaGlkZGVuLXVybCB7cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA2NXB4OyB0b3A6IDJweDsgZGlzcGxheTogbm9uZTsgcGFkZGluZzogMnB4IDZweCA0cHggNnB4OyBiYWNrZ3JvdW5kOiAjZmRjYzFhOyBtYXJnaW4tdG9wOiA1cHg7IHdpZHRoOiA0ODVweDsgYm9yZGVyLXJhZGl1czogNXB4OyBhbmltYXRpb24tZHVyYXRpb246IC4zczsgei1pbmRleDogMTAwO30KICAgICNoaWRkZW4tdXJsIGlucHV0eyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBvdXRsaW5lOiBub25lOyBib3JkZXI6IDFweCBzb2xpZCAjREREREREOyBib3JkZXItcmFkaXVzOiA1cHg7IHBhZGRpbmc6IDhweCA0cHg7IHdpZHRoOiA0MzVweDsgbWFyZ2luLWxlZnQ6IDVweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTt9CiAgICAjaGlkZGVuLXVybCAuaGlkZS11cmwge2N1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAyMnB4OyBtYXJnaW46IDAgNXB4OyBjb2xvcjogIzAwMDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTt9CiAgICAjY29weS1jbGlwYm9hcmQge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDMxcHg7IHBhZGRpbmc6IDJweCA2cHg7IGJhY2tncm91bmQ6ICNmZGNjMWE7IG1hcmdpbi10b3A6IDVweDsgYW5pbWF0aW9uLWR1cmF0aW9uOiAuM3M7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgd2lkdGg6IDIwMHB4OyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmctbGVmdDogMTVweDt9Cjwvc3R5bGU+Cgo8c2NyaXB0PgoKICAgIGZ1bmN0aW9uIGhpZGVPbkNsaWNrKCApewogICAgICAgICQoZG9jdW1lbnQpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgIGlmKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnLmhkLXNoLXdyYXBwZXInKS5sZW5ndGggJiYgISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcjaGlkZGVuLXVybCcpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgaWYoJCgnLmhkLXNoLXdyYXBwZXInKS5pcygiOnZpc2libGUiKSkgewogICAgICAgICAgICAgICAgICAgIC8vJCgnLmhpZGRlbi1zaGFyZS13cmFwcGVyJykuaGlkZSgpOwogICAgICAgICAgICAgICAgICAgICQoJy5zaC1oZWFkZXInKS50cmlnZ2VyKCdjbGljaycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9ICAgICAgICAKICAgICAgICB9KTsKICAgIH0gIAogCiAgICAkKGZ1bmN0aW9uKCkgewogICAgICAgICQoJy5oZC1zaC13cmFwcGVyJykuYmluZCgnYW5pbWF0aW9uRW5kIG9BbmltYXRpb25FbmQgbXNBbmltYXRpb25FbmQgbW96QW5pbWF0aW9uRW5kIHdlYmtpdEFuaW1hdGlvbkVuZCcsIGZ1bmN0aW9uKGV2ZW50KXsKICAgICAgICAgICAgaWYoICAkKGV2ZW50LnRhcmdldCkuaGFzQ2xhc3MoJ25rb291dCcpICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJCgnLmhkLXNoLXdyYXBwZXInKS5oaWRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgIH0pOyAgICAgICAgCgogICAgICAgICQoJyNzaC1wb3MtYWJzJykudG9nZ2xlKCBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgJCgnLnNoLWhlYWRlcicpLmFkZENsYXNzKCdjbGlja2VkJyk7CiAgICAgICAgICAgICAgICAkKCcuaGQtc2gtd3JhcHBlcicpLnJlbW92ZUNsYXNzKCdua29vdXQnKS5hZGRDbGFzcygnbmtvaW4nKS5zaG93KCk7CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAkKCcuaGQtc2gtd3JhcHBlcicpLnJlbW92ZUNsYXNzKCdua29pbicpLmFkZENsYXNzKCdua29vdXQnKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJCgnLm1haW4tc2gnKS5yZW1vdmVDbGFzcygnY2xpY2tlZCcpOwogICAgICAgICAgICAgICAgaWYoICQoJyNoaWRkZW4tdXJsJykuaXMoIjp2aXNpYmxlIikgKSB7CiAgICAgICAgICAgICAgICAgICAgJCgnI2NvcHktdG8tY2xpcCcpLmNsaWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy92YXIgcGF0aG5hbWUgPSAnaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbScgKyBsb2NhdGlvbi5wYXRobmFtZSArIGxvY2F0aW9uLnNlYXJjaDsKICAgICAgICB2YXIgcGF0aG5hbWUgPSBlbmNvZGVVUkkoJ2h0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUnKTsKICAgICAgICB2YXIgc2xpZGVPcHRpb25zID0geyBkaXJlY3Rpb246ICdsZWZ0JyB9OwoKICAgICAgICAkKCcjY29weS10by1jbGlwJykudG9nZ2xlKAogICAgICAgICAgICBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgJCgnI2hpZGRlbi11cmwnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAkKCcjaGlkZGVuLXVybCcpLmZpbmQoJzppbnB1dCcpLnZhbChwYXRobmFtZSk7CiAgICAgICAgICAgICAgICAgICAgLy8kKCcjaGlkZGVuLXVybCcpLmZpbmQoJzppbnB1dCcpLnNlbGVjdCgpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gJCgnI2hpZGRlbi11cmwnKS5maW5kKCc6aW5wdXQnKS50ZXh0KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCgnI2hpZGRlbi11cmwnKS5oaWRlKCk7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNoaWRkZW4tdXJsJykub24oJ2NsaWNrJywgJyNjb3B5LWNsaXBib2FyZCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQodGhpcykudGV4dCggJCgnI2NvcHktY2xpcGJvYXJkJykuYXR0cignZGF0YS10ZXh0JykgKTsKICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoIHBhdGhuYW1lICkKICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyggcGF0aG5hbWUgKTsKICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgY29weSB0ZXh0OiAnLCBlcnIpOwogICAgICAgICAgICB9KTsgIAogICAgICAgIH0pCgogICAgICAgICQoJyNoaWRkZW4tdXJsJykuZmluZCgnLmhpZGUtdXJsJykuY2xpY2soZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgJCgnI2NvcHktdG8tY2xpcCcpLnRyaWdnZXIoJ2NsaWNrJykKICAgICAgICB9KTsKCiAgICAgICAgaGlkZU9uQ2xpY2soKTsKICAgIH0pOwo8L3NjcmlwdD4KCjxkaXYgY2xhc3M9ImhkLXNoLW1haW4td3JhcHBlciI+CiAgICA8ZGl2IGNsYXNzPSJoZC1zaC13cmFwcGVyIj4KICAgICAgICA8YSBpZD0iY29weS10by1jbGlwIiB0aXRsZT0iQ29weSBVUkwiIGhyZWY9IiMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFyZS1pY29uIiBpZD0iY29weS10by1jbGlwLWNvbnRhaW5lciI+PGkgY2xhc3M9ImZhcyBmYS1saW5rIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogICAgICAgICAgICAKICAgICAgICA8YSBjbGFzcz0iZmItc2giIHRhcmdldD0iX0JMQU5LIiBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyLnBocD91PWh0dHBzJTNBJTJGJTJGd3d3LmZpbG1hZmZpbml0eS5jb20lMkZlbiUyRnNlYXJjaC5waHAlM0ZzdGV4dCUzRHRydW1hbiUyNnN0eXBlJTNEdGl0bGUmdD1TZWFyY2ggZm9yICZxdW90O3RydW1hbiZxdW90OyIgdGl0bGU9IlNoYXJlIG9uIEZhY2Vib29rIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiI+PGkgY2xhc3M9ImZhYiBmYS1mYWNlYm9vay1mIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogICAgCiAgICAgICAgPGEgY2xhc3M9InR3LXNoIiB0YXJnZXQ9Il9CTEFOSyIgdGl0bGU9IlNoYXJlIG9uIFR3aXR0ZXIiIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9U2VhcmNoJTIwZm9yJTIwJTI2cXVvdCUzQnRydW1hbiUyNnF1b3QlM0ImbmJzcDtpbiBAZmlsbWFmZmluaXR5IGh0dHBzJTNBJTJGJTJGd3d3LmZpbG1hZmZpbml0eS5jb20lMkZlbiUyRnNlYXJjaC5waHAlM0ZzdGV4dCUzRHRydW1hbiUyNnN0eXBlJTNEdGl0bGUiIHRpdGxlPSJTaGFyZSBvbiBUd2l0dGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiI+PGkgY2xhc3M9ImZhYiBmYS10d2l0dGVyIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJ3aC1zaCIgdGFyZ2V0PSJfQkxBTksiIHRpdGxlPSJTaGFyZSBvbiB3aGF0c2FwcCIgaHJlZj0iaHR0cHM6Ly9hcGkud2hhdHNhcHAuY29tL3NlbmQ/dGV4dD1TZWFyY2glMjBmb3IlMjAlMjZxdW90JTNCdHJ1bWFuJTI2cXVvdCUzQiZuYnNwO2luIEBmaWxtYWZmaW5pdHkgaHR0cHMlM0ElMkYlMkZ3d3cuZmlsbWFmZmluaXR5LmNvbSUyRmVuJTJGc2VhcmNoLnBocCUzRnN0ZXh0JTNEdHJ1bWFuJTI2c3R5cGUlM0R0aXRsZSIgdGl0bGU9IlNoYXJlIG9uIHdoYXRzYXBwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiI+PGkgY2xhc3M9ImZhYiBmYS13aGF0c2FwcCI+PC9pPjwvZGl2PgogICAgICAgIDwvYT4KIAo8L2Rpdj4KPC9kaXY+CgogICAgPGRpdiBpZD0iaGlkZGVuLXVybCI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjU1Ij48aSBjbGFzcz0iZmFzIGZhLXRpbWVzLWNpcmNsZSBoaWRlLXVybCI+PC9pPgogICAgICAgIDxkaXYgaWQ9ImNvcHktY2xpcGJvYXJkIiBkYXRhLXRleHQ9ImNvcGllZCI+Y29weSB0byBjbGlwYm9hcmQ8L2Rpdj4KICAgIDwvZGl2PgoKCiAgICAKCgo8aDEgaWQ9Im1haW4tdGl0bGUiPlNlYXJjaCBmb3IgJnF1b3Q7dHJ1bWFuJnF1b3Q7PC9oMT4KCgo8ZGl2IGNsYXNzPSJtYWluLXNlYXJjaC13cmFwcGVyIj4KCiAgICA8ZGl2IGNsYXNzPSJuYXYtaGVhZGVyIj4gICAgICAgIAogICAgICAgIDx1bCBjbGFzcz0ibnRhYnMiPgogICAgICAgICAgICA8bGkgY2xhc3M9ImZpbHRlciI+PGkgY2xhc3M9ImZhcyBmYS1maWx0ZXIiPjwvaT4gRmlsdGVyPC9saT4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iIGFjdGl2ZSAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9dGl0bGUmc3RleHQ9dHJ1bWFuIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudCI+CjggICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaSA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1kaXJlY3RvciZzdGV4dD10cnVtYW4iPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50Ij4KNiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc3RleHQ9dHJ1bWFuIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXN0IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50Ij4KODIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgPC9kaXY+Cg0KPGRpdiBjbGFzcz0iei1zZWFyY2giPg0KICAgIDxkaXYgY2xhc3M9InN1Yi1oZWFkZXItc2VhcmNoIj4NCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1kZXNjIj5PcmRlciBieTwvZGl2Pg0KICAgICAgICAgICAgICAgIDx1bD4gICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0iYmctaXRlbSBhY3RpdmUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT10aXRsZSZzdGV4dD10cnVtYW4iPlJlbGV2YW5jZTwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9ImJnLWl0ZW0gIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9dGl0bGUmc3RleHQ9dHJ1bWFuJmFtcDtvcmRlcmJ5PXllYXIiPlllYXI8L2E+PC9saT4NCiAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQogICAgPC9kaXY+DQoNCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InllLXciPjE5OTg8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhLXNoYWRvdy1uYiBpdGVtLXNlYXJjaCI+ICAgICAgICAgICAgICAgICAgICANCjxkaXYgY2xhc3M9Im1vdmllLWNhcmQgbW92aWUtY2FyZC0xIiBkYXRhLW1vdmllLWlkPSI1MDQ4ODkiPg0KICAgIDxkaXYgY2xhc3M9Im1jLXBvc3RlciI+DQogICAgICAgIDxhIHRpdGxlPSJUaGUgVHJ1bWFuIFNob3cgIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG01MDQ4ODkuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90aGVfdHJ1bWFuX3Nob3ctMTMwMDkxNTU3LW10aW55LmpwZyIgZGF0YS1zcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RoZV90cnVtYW5fc2hvdy0xMzAwOTE1NTctbXNtYWxsLmpwZyIgY2xhc3M9Imxhenlsb2FkIiBhbHQ9IlRoZSBUcnVtYW4gU2hvdyAiPjwvYT4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJtYy1pbmZvLWNvbnRhaW5lciI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWFjdGlvbnMiPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy10aXRsZSI+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTUwNDg4OS5odG1sIiB0aXRsZT0iVGhlIFRydW1hbiBTaG93ICI+VGhlIFRydW1hbiBTaG93IDwvYT4gIDxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVVMucG5nIiBhbHQ9IlVuaXRlZCBTdGF0ZXMiIHRpdGxlPSJVbml0ZWQgU3RhdGVzIj48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibXItcmF0aW5nIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF2Z3JhdC1ib3giPjcuNzwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0Y291bnQtYm94Ij4xMjAsMTM1IDxpIGNsYXNzPSJmYSBmYSBmYS1zaW1wbGUtdXNlci1vLWZhIj48L2k+PC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1kaXJlY3RvciI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1kaXJlY3RvciZzbiZzdGV4dD1QZXRlciUyMFdlaXIiIHRpdGxlPSJQZXRlciBXZWlyIj5QZXRlciBXZWlyPC9hPjwvc3Bhbj48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1jYXN0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SmltJTIwQ2FycmV5IiB0aXRsZT0iSmltIENhcnJleSI+SmltIENhcnJleTwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUxhdXJhJTIwTGlubmV5IiB0aXRsZT0iTGF1cmEgTGlubmV5Ij5MYXVyYSBMaW5uZXk8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Ob2FoJTIwRW1tZXJpY2giIHRpdGxlPSJOb2FoIEVtbWVyaWNoIj5Ob2FoIEVtbWVyaWNoPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9RWQlMjBIYXJyaXMiIHRpdGxlPSJFZCBIYXJyaXMiPkVkIEhhcnJpczwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PU5hdGFzY2hhJTIwTWNFbGhvbmUiIHRpdGxlPSJOYXRhc2NoYSBNY0VsaG9uZSI+TmF0YXNjaGEgTWNFbGhvbmU8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Ib2xsYW5kJTIwVGF5bG9yIiB0aXRsZT0iSG9sbGFuZCBUYXlsb3IiPkhvbGxhbmQgVGF5bG9yPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9UGF1bCUyMEdpYW1hdHRpIiB0aXRsZT0iUGF1bCBHaWFtYXR0aSI+UGF1bCBHaWFtYXR0aTwvYT48L3NwYW4+IC4uLjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJsaXN0cy1ib3giPjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZS1pdCBtdCAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ5ZS13Ij4yMDIwPC9kaXY+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYS1zaGFkb3ctbmIgaXRlbS1zZWFyY2giPiAgICAgICAgICAgICAgICAgICAgDQo8ZGl2IGNsYXNzPSJtb3ZpZS1jYXJkIG1vdmllLWNhcmQtMSIgZGF0YS1tb3ZpZS1pZD0iNDU4NDY0Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYy1wb3N0ZXIiPg0KICAgICAgICA8YSB0aXRsZT0iVHJ1bWFuICZhbXA7IFRlbm5lc3NlZTogQW4gSW50aW1hdGUgQ29udmVyc2F0aW9uICIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNDU4NDY0Lmh0bWwiPjxpbWcgd2lkdGg9IjEwMCIgaGVpZ2h0PSIiIHNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vdHJ1bWFuX3Rlbm5lc3NlZV9hbl9pbnRpbWF0ZV9jb252ZXJzYXRpb24tODA5Nzc2ODQ5LW10aW55LmpwZyIgZGF0YS1zcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RydW1hbl90ZW5uZXNzZWVfYW5faW50aW1hdGVfY29udmVyc2F0aW9uLTgwOTc3Njg0OS1tc21hbGwuanBnIiBjbGFzcz0ibGF6eWxvYWQiIGFsdD0iVHJ1bWFuICZhbXA7IFRlbm5lc3NlZTogQW4gSW50aW1hdGUgQ29udmVyc2F0aW9uICI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNDU4NDY0Lmh0bWwiIHRpdGxlPSJUcnVtYW4gJmFtcDsgVGVubmVzc2VlOiBBbiBJbnRpbWF0ZSBDb252ZXJzYXRpb24gIj5UcnVtYW4gJmFtcDsgVGVubmVzc2VlOiBBbiBJbnRpbWF0ZSBDb252ZXJzYXRpb24gPC9hPiAgPGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VUy5wbmciIGFsdD0iVW5pdGVkIFN0YXRlcyIgdGl0bGU9IlVuaXRlZCBTdGF0ZXMiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtci1yYXRpbmciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXZncmF0LWJveCI+LS08L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWRpcmVjdG9yIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWRpcmVjdG9yJnNuJnN0ZXh0PUxpc2ElMjBJbW1vcmRpbm8lMjBWcmVlbGFuZCIgdGl0bGU9Ikxpc2EgSW1tb3JkaW5vIFZyZWVsYW5kIj5MaXNhIEltbW9yZGlubyBWcmVlbGFuZDwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPkRvY3VtZW50YXJ5PHNwYW4+PC9zcGFuPjwvc3Bhbj4gKFZvaWNlOiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUppbSUyMFBhcnNvbnMiIHRpdGxlPSJKaW0gUGFyc29ucyI+SmltIFBhcnNvbnM8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1aYWNoYXJ5JTIwUXVpbnRvIiB0aXRsZT0iWmFjaGFyeSBRdWludG8iPlphY2hhcnkgUXVpbnRvPC9hPik8L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Imxpc3RzLWJveCI+PC9kaXY+DQo8L2Rpdj4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InllLXciPjIwMTU8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhLXNoYWRvdy1uYiBpdGVtLXNlYXJjaCI+ICAgICAgICAgICAgICAgICAgICANCjxkaXYgY2xhc3M9Im1vdmllLWNhcmQgbW92aWUtY2FyZC0xIiBkYXRhLW1vdmllLWlkPSIxOTMyMzIiPg0KICAgIDxkaXYgY2xhc3M9Im1jLXBvc3RlciI+DQogICAgICAgIDxhIHRpdGxlPSJUcnVtYW4gIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG0xOTMyMzIuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW4tOTg0MTk5NDIwLW10aW55LmpwZyIgZGF0YS1zcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RydW1hbi05ODQxOTk0MjAtbXNtYWxsLmpwZyIgY2xhc3M9Imxhenlsb2FkIiBhbHQ9IlRydW1hbiAiPjwvYT4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJtYy1pbmZvLWNvbnRhaW5lciI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWFjdGlvbnMiPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy10aXRsZSI+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTE5MzIzMi5odG1sIiB0aXRsZT0iVHJ1bWFuICI+VHJ1bWFuIDwvYT4gIDxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvRVMucG5nIiBhbHQ9IlNwYWluIiB0aXRsZT0iU3BhaW4iPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtci1yYXRpbmciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXZncmF0LWJveCI+Ny4wPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRjb3VudC1ib3giPjI2LDU0NiA8aSBjbGFzcz0iZmEgZmEgZmEtc2ltcGxlLXVzZXItby1mYSI+PC9pPjwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtZGlyZWN0b3IiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9ZGlyZWN0b3Imc24mc3RleHQ9Q2VzYyUyMEdheSIgdGl0bGU9IkNlc2MgR2F5Ij5DZXNjIEdheTwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUphdmllciUyMEMlQzMlQTFtYXJhIiB0aXRsZT0iSmF2aWVyIEPDoW1hcmEiPkphdmllciBDw6FtYXJhPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9UmljYXJkbyUyMERhciVDMyVBRG4iIHRpdGxlPSJSaWNhcmRvIERhcsOtbiI+UmljYXJkbyBEYXLDrW48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Eb2xvcmVzJTIwRm9uemkiIHRpdGxlPSJEb2xvcmVzIEZvbnppIj5Eb2xvcmVzIEZvbnppPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9JUMzJTgwbGV4JTIwQnJlbmRlbSVDMyVCQ2hsIiB0aXRsZT0iw4BsZXggQnJlbmRlbcO8aGwiPsOAbGV4IEJyZW5kZW3DvGhsPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SmF2aWVyJTIwR3V0aSVDMyVBOXJyZXoiIHRpdGxlPSJKYXZpZXIgR3V0acOpcnJleiI+SmF2aWVyIEd1dGnDqXJyZXo8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1FZHVhcmQlMjBGZXJuJUMzJUExbmRleiIgdGl0bGU9IkVkdWFyZCBGZXJuw6FuZGV6Ij5FZHVhcmQgRmVybsOhbmRlejwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUVsdmlyYSUyME0lQzMlQURuZ3VleiIgdGl0bGU9IkVsdmlyYSBNw61uZ3VleiI+RWx2aXJhIE3DrW5ndWV6PC9hPjwvc3Bhbj4gLi4uPC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Imxpc3RzLWJveCI+PC9kaXY+DQo8L2Rpdj4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InllLXciPjE5OTU8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhLXNoYWRvdy1uYiBpdGVtLXNlYXJjaCI+ICAgICAgICAgICAgICAgICAgICANCjxkaXYgY2xhc3M9Im1vdmllLWNhcmQgbW92aWUtY2FyZC0xIiBkYXRhLW1vdmllLWlkPSI3Njk4OTciPg0KICAgIDxkaXYgY2xhc3M9Im1jLXBvc3RlciI+DQogICAgICAgIDxhIHRpdGxlPSJUcnVtYW4gKFRWKSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNzY5ODk3Lmh0bWwiPjxpbWcgd2lkdGg9IjEwMCIgaGVpZ2h0PSIiIHNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vdHJ1bWFuX3R2LTkzOTU0NTk2MC1tdGlueS5qcGciIGRhdGEtc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW5fdHYtOTM5NTQ1OTYwLW1zbWFsbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJUcnVtYW4gKFRWKSI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNzY5ODk3Lmh0bWwiIHRpdGxlPSJUcnVtYW4gKFRWKSI+VHJ1bWFuIChUVik8L2E+ICA8aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL1VTLnBuZyIgYWx0PSJVbml0ZWQgU3RhdGVzIiB0aXRsZT0iVW5pdGVkIFN0YXRlcyI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1yLXJhdGluZyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdmdyYXQtYm94Ij40Ljk8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGNvdW50LWJveCI+MjggPGkgY2xhc3M9ImZhIGZhIGZhLXNpbXBsZS11c2VyLW8tZmEiPjwvaT48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWRpcmVjdG9yIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWRpcmVjdG9yJnNuJnN0ZXh0PUZyYW5rJTIwUGllcnNvbiIgdGl0bGU9IkZyYW5rIFBpZXJzb24iPkZyYW5rIFBpZXJzb248L2E+PC9zcGFuPjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWNhc3QiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1HYXJ5JTIwU2luaXNlIiB0aXRsZT0iR2FyeSBTaW5pc2UiPkdhcnkgU2luaXNlPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9RGlhbmElMjBTY2Fyd2lkIiB0aXRsZT0iRGlhbmEgU2NhcndpZCI+RGlhbmEgU2NhcndpZDwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PVRvbnklMjBHb2xkd3luIiB0aXRsZT0iVG9ueSBHb2xkd3luIj5Ub255IEdvbGR3eW48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Mb2lzJTIwU21pdGgiIHRpdGxlPSJMb2lzIFNtaXRoIj5Mb2lzIFNtaXRoPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SG9sbWVzJTIwT3Nib3JuZSIgdGl0bGU9IkhvbG1lcyBPc2Jvcm5lIj5Ib2xtZXMgT3Nib3JuZTwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PURhbmllbCUyMFZvbiUyMEJhcmdlbiIgdGl0bGU9IkRhbmllbCBWb24gQmFyZ2VuIj5EYW5pZWwgVm9uIEJhcmdlbjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUFtZWxpYSUyMENhbXBiZWxsIiB0aXRsZT0iQW1lbGlhIENhbXBiZWxsIj5BbWVsaWEgQ2FtcGJlbGw8L2E+PC9zcGFuPiAuLi48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0ibGlzdHMtYm94Ij48L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2UtaXQgbXQgIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ieWUtdyI+MTk5NzwvZGl2Pg0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmEtc2hhZG93LW5iIGl0ZW0tc2VhcmNoIj4gICAgICAgICAgICAgICAgICAgIA0KPGRpdiBjbGFzcz0ibW92aWUtY2FyZCBtb3ZpZS1jYXJkLTEiIGRhdGEtbW92aWUtaWQ9IjkzMTc4NiI+DQogICAgPGRpdiBjbGFzcz0ibWMtcG9zdGVyIj4NCiAgICAgICAgPGEgdGl0bGU9IlRydW1hbiAoQW1lcmljYW4gRXhwZXJpZW5jZSkgIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG05MzE3ODYuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW5fYW1lcmljYW5fZXhwZXJpZW5jZS0yNjUyMTE2OTAtbXRpbnkuanBnIiBkYXRhLXNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vdHJ1bWFuX2FtZXJpY2FuX2V4cGVyaWVuY2UtMjY1MjExNjkwLW1zbWFsbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJUcnVtYW4gKEFtZXJpY2FuIEV4cGVyaWVuY2UpICI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtOTMxNzg2Lmh0bWwiIHRpdGxlPSJUcnVtYW4gKEFtZXJpY2FuIEV4cGVyaWVuY2UpICI+VHJ1bWFuIChBbWVyaWNhbiBFeHBlcmllbmNlKSA8L2E+ICA8aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL1VTLnBuZyIgYWx0PSJVbml0ZWQgU3RhdGVzIiB0aXRsZT0iVW5pdGVkIFN0YXRlcyI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1yLXJhdGluZyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdmdyYXQtYm94Ij4tLTwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtZGlyZWN0b3IiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9ZGlyZWN0b3Imc24mc3RleHQ9RGF2aWQlMjBHcnViaW4iIHRpdGxlPSJEYXZpZCBHcnViaW4iPkRhdmlkIEdydWJpbjwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPkRvY3VtZW50YXJ5PHNwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0ibGlzdHMtYm94Ij48L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2UtaXQgbXQgIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ieWUtdyI+MTk3NjwvZGl2Pg0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmEtc2hhZG93LW5iIGl0ZW0tc2VhcmNoIj4gICAgICAgICAgICAgICAgICAgIA0KPGRpdiBjbGFzcz0ibW92aWUtY2FyZCBtb3ZpZS1jYXJkLTEiIGRhdGEtbW92aWUtaWQ9Ijk3NTU5MiI+DQogICAgPGRpdiBjbGFzcz0ibWMtcG9zdGVyIj4NCiAgICAgICAgPGEgdGl0bGU9IkNvbGxpc2lvbiBDb3Vyc2U6IFRydW1hbiB2cy4gTWFjQXJ0aHVyIChUVikiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTk3NTU5Mi5odG1sIj48aW1nIHdpZHRoPSIxMDAiIGhlaWdodD0iIiBzcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL2NvbGxpc2lvbl9jb3Vyc2VfdHJ1bWFuX3ZzX21hY2FydGh1cl90di0xNzQzNTM4OTMtbXRpbnkuanBnIiBkYXRhLXNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vY29sbGlzaW9uX2NvdXJzZV90cnVtYW5fdnNfbWFjYXJ0aHVyX3R2LTE3NDM1Mzg5My1tc21hbGwuanBnIiBjbGFzcz0ibGF6eWxvYWQiIGFsdD0iQ29sbGlzaW9uIENvdXJzZTogVHJ1bWFuIHZzLiBNYWNBcnRodXIgKFRWKSI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtOTc1NTkyLmh0bWwiIHRpdGxlPSJDb2xsaXNpb24gQ291cnNlOiBUcnVtYW4gdnMuIE1hY0FydGh1ciAoVFYpIj5Db2xsaXNpb24gQ291cnNlOiBUcnVtYW4gdnMuIE1hY0FydGh1ciAoVFYpPC9hPiAgPGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VUy5wbmciIGFsdD0iVW5pdGVkIFN0YXRlcyIgdGl0bGU9IlVuaXRlZCBTdGF0ZXMiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtci1yYXRpbmciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXZncmF0LWJveCI+LS08L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWRpcmVjdG9yIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWRpcmVjdG9yJnNuJnN0ZXh0PUFudGhvbnklMjBQYWdlIiB0aXRsZT0iQW50aG9ueSBQYWdlIj5BbnRob255IFBhZ2U8L2E+PC9zcGFuPjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWNhc3QiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1IZW5yeSUyMEZvbmRhIiB0aXRsZT0iSGVucnkgRm9uZGEiPkhlbnJ5IEZvbmRhPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9RS5HLiUyME1hcnNoYWxsIiB0aXRsZT0iRS5HLiBNYXJzaGFsbCI+RS5HLiBNYXJzaGFsbDwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUx1Y2lsbGUlMjBCZW5zb24iIHRpdGxlPSJMdWNpbGxlIEJlbnNvbiI+THVjaWxsZSBCZW5zb248L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1MbG95ZCUyMEJvY2huZXIiIHRpdGxlPSJMbG95ZCBCb2NobmVyIj5MbG95ZCBCb2NobmVyPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SXZhbiUyMEJvbmFyIiB0aXRsZT0iSXZhbiBCb25hciI+SXZhbiBCb25hcjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUJhcnQlMjBCdXJucyIgdGl0bGU9IkJhcnQgQnVybnMiPkJhcnQgQnVybnM8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1XYXJkJTIwQ29zdGVsbG8iIHRpdGxlPSJXYXJkIENvc3RlbGxvIj5XYXJkIENvc3RlbGxvPC9hPjwvc3Bhbj4gLi4uPC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Imxpc3RzLWJveCI+PC9kaXY+DQo8L2Rpdj4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ5ZS13Ij4xOTc2PC9kaXY+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYS1zaGFkb3ctbmIgaXRlbS1zZWFyY2giPiAgICAgICAgICAgICAgICAgICAgDQo8ZGl2IGNsYXNzPSJtb3ZpZS1jYXJkIG1vdmllLWNhcmQtMSIgZGF0YS1tb3ZpZS1pZD0iNDE1NjI5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYy1wb3N0ZXIiPg0KICAgICAgICA8YSB0aXRsZT0iSGFycnkgUy4gVHJ1bWFuOiBQbGFpbiBTcGVha2luZyAoVFYpIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG00MTU2MjkuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS9oYXJyeV9zX3RydW1hbl9wbGFpbl9zcGVha2luZ190di0xMTkyNTE5NjItbXRpbnkuanBnIiBkYXRhLXNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vaGFycnlfc190cnVtYW5fcGxhaW5fc3BlYWtpbmdfdHYtMTE5MjUxOTYyLW1zbWFsbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJIYXJyeSBTLiBUcnVtYW46IFBsYWluIFNwZWFraW5nIChUVikiPjwvYT4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJtYy1pbmZvLWNvbnRhaW5lciI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWFjdGlvbnMiPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy10aXRsZSI+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTQxNTYyOS5odG1sIiB0aXRsZT0iSGFycnkgUy4gVHJ1bWFuOiBQbGFpbiBTcGVha2luZyAoVFYpIj5IYXJyeSBTLiBUcnVtYW46IFBsYWluIFNwZWFraW5nIChUVik8L2E+ICA8aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL1VTLnBuZyIgYWx0PSJVbml0ZWQgU3RhdGVzIiB0aXRsZT0iVW5pdGVkIFN0YXRlcyI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1yLXJhdGluZyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdmdyYXQtYm94Ij4tLTwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtZGlyZWN0b3IiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9ZGlyZWN0b3Imc24mc3RleHQ9RGFuaWVsJTIwUGV0cmllIiB0aXRsZT0iRGFuaWVsIFBldHJpZSI+RGFuaWVsIFBldHJpZTwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUVkJTIwRmxhbmRlcnMiIHRpdGxlPSJFZCBGbGFuZGVycyI+RWQgRmxhbmRlcnM8L2E+PC9zcGFuPjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJsaXN0cy1ib3giPjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZS1pdCBtdCAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ5ZS13Ij4xOTY5PC9kaXY+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYS1zaGFkb3ctbmIgaXRlbS1zZWFyY2giPiAgICAgICAgICAgICAgICAgICAgDQo8ZGl2IGNsYXNzPSJtb3ZpZS1jYXJkIG1vdmllLWNhcmQtMSIgZGF0YS1tb3ZpZS1pZD0iOTQ0MTg0Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYy1wb3N0ZXIiPg0KICAgICAgICA8YSB0aXRsZT0iVHJpbG9neSAiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTk0NDE4NC5odG1sIj48aW1nIHdpZHRoPSIxMDAiIGhlaWdodD0iIiBzcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RydW1hbl9jYXBvdGVfc190cmlsb2d5LTExNjgyMzUzMy1tdGlueS5qcGciIGRhdGEtc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW5fY2Fwb3RlX3NfdHJpbG9neS0xMTY4MjM1MzMtbXNtYWxsLmpwZyIgY2xhc3M9Imxhenlsb2FkIiBhbHQ9IlRyaWxvZ3kgIj48L2E+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0ibWMtaW5mby1jb250YWluZXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtdGl0bGUiPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG05NDQxODQuaHRtbCIgdGl0bGU9IlRyaWxvZ3kgIj5Ucmlsb2d5IDwvYT4gIDxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVVMucG5nIiBhbHQ9IlVuaXRlZCBTdGF0ZXMiIHRpdGxlPSJVbml0ZWQgU3RhdGVzIj48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibXItcmF0aW5nIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF2Z3JhdC1ib3giPi0tPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1kaXJlY3RvciI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1kaXJlY3RvciZzbiZzdGV4dD1GcmFuayUyMFBlcnJ5IiB0aXRsZT0iRnJhbmsgUGVycnkiPkZyYW5rIFBlcnJ5PC9hPjwvc3Bhbj48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1jYXN0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9QmV2ZXJseSUyMEJhbGxhcmQiIHRpdGxlPSJCZXZlcmx5IEJhbGxhcmQiPkJldmVybHkgQmFsbGFyZDwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUdlcmFsZGluZSUyMFBhZ2UiIHRpdGxlPSJHZXJhbGRpbmUgUGFnZSI+R2VyYWxkaW5lIFBhZ2U8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1NYXJ0aW4lMjBCYWxzYW0iIHRpdGxlPSJNYXJ0aW4gQmFsc2FtIj5NYXJ0aW4gQmFsc2FtPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9VHJ1bWFuJTIwQ2Fwb3RlIiB0aXRsZT0iVHJ1bWFuIENhcG90ZSI+VHJ1bWFuIENhcG90ZTwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUxhdmluaWElMjBDYXNzZWxzIiB0aXRsZT0iTGF2aW5pYSBDYXNzZWxzIj5MYXZpbmlhIENhc3NlbHM8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1KYW5lJTIwQ29ubmVsbCIgdGl0bGU9IkphbmUgQ29ubmVsbCI+SmFuZSBDb25uZWxsPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9U3VzYW4lMjBEdW5mZWUiIHRpdGxlPSJTdXNhbiBEdW5mZWUiPlN1c2FuIER1bmZlZTwvYT48L3NwYW4+IC4uLjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJsaXN0cy1ib3giPjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCg0KPC9kaXY+DQo8L2Rpdj4KCgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLXJpZ2h0LWFkdmVyLXdyYXBwZXIiPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImFkdmVyLXNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgICAgPGRpdiBpZD0ic2MtbXB1LXRvcCIgY2xhc3M9InNjLW1wdS10b3AiPgoKICAgICAgIDxzY3JpcHQ+CgogICAgICAgICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgICAgICBnb29nbGV0YWcuZGlzcGxheSgnc2MtbXB1LXRvcCcpOwoKICAgICAgICAgICAgIH0pOwoKICAgICAgIDwvc2NyaXB0PgoKPC9kaXY+CgoKICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nLXRvcDogNTBweDsgY2xlYXI6IGJvdGg7Ij48ZGl2Pg0KICAgICAgICAgICAgICA8L3RkPg0KICAgIDwvdHI+DQo8L3RhYmxlPg0KPC9kaXY+DQo8ZGl2IGlkPSJicGFuZWwiPg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6IDEwcHgiPg0KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9mYXEucGhwIj5GQVFzPC9hPg0KICAgIHwgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9wcml2YXRlLnBocCIgPlByaXZhY3kgcG9saWN5IC8gdXNlIGNvbmRpdGlvbnM8L2E+DQogICAgfCA8YSBvbmNsaWNrPSJ3aW5kb3cuX190Y2ZhcGkoJ2Rpc3BsYXlDb25zZW50VWknLCAyLCBmdW5jdGlvbigpIHt9ICk7IiBpZD0icHJpdmFjeS1jb25maWctMiIgaHJlZj0iIyI+UHJpdmFjeSBjb25maWd1cmF0aW9uPC9hPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzogMTBweCAycHgiPg0KICAgIDxzcGFuIGNsYXNzPSJzdWJ0ZXh0Ij4mY29weTsgMjAwMi0yMDIwIEZpbG1hZmZpbml0eSAtIE1vdmllYWZmaW5pdHkgfCBGaWxtYWZmaW5pdHkgaXMgYSBtb3ZpZSByZWNvbW1lbmRhdGlvbiBzaXRlIGJhc2VkIG9uIHRoZSBjb25jZXB0IG9mIE1vdmllIFNvdWxtYXRlcy4gPGJyPldlIGFyZSBhbiBpbmRlcGVuZGVudCBtb3ZpZSBsb3ZlcnMgY2x1YiB3b3JsZHdpZGUgd2l0aCA2NDYuMDAwIHVzZXJzICsgMTMzLjAwMC4wMDAgcmF0aW5ncy4gTm90IHJlbGF0ZWQgdG8gYW55IE1lZGlhIG9yIENvcnBvcmF0aW9uLjxicj4gQWxsIFJpZ2h0cyBSZXNlcnZlZCB8IE1vdmllIFNvdWxtYXRlcyYjODQ4MjsgaXMgYSBSZWdpc3RlcmVkIFRyYWRlbWFyazwvc3Bhbj4NCjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQoNCg0KDQoNCgoKCgoKDQo8L2JvZHk+DQo8L2h0bWw+DQo=
62
+ recorded_at: Wed, 14 Oct 2020 19:47:51 GMT
63
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.filmaffinity.com/en/search.php?stext=truman&stype=title
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Wed, 14 Oct 2020 19:59:25 GMT
23
+ Server:
24
+ - Apache
25
+ Expires:
26
+ - Thu, 19 Nov 1981 08:52:00 GMT
27
+ Pragma:
28
+ - no-cache
29
+ Cache-Control:
30
+ - public, max-age=0, must-revalidate
31
+ Set-Cookie:
32
+ - FCD=tJXACroBmqXaNfUBbUepvlXU2x4LWIQkNAG2V618vh-mXwG6oFM7wF-JKk3e-AjBdOBsrVvVbFF_jkdE2DfnO9MkGilL5hwcX6rs3hw2HJLOzNyVmzfxgDZS-HOpBpkWqDavuD8tyiUCnzhgck4a6srk7uKDWJUh;
33
+ expires=Tue, 11-Jul-2023 19:59:25 GMT; Max-Age=86400000; path=/; domain=.filmaffinity.com;
34
+ secure; HttpOnly
35
+ - FSID=ncre9lbi7gnat48jer1u9bvsd3jbmjrsltbq1pt9buj4u9j7vqc66ulmdv70kki8; path=/;
36
+ domain=.filmaffinity.com; secure; HttpOnly
37
+ - client-data=%7B%22ism%22%3Afalse%2C%22showm%22%3Afalse%2C%22ts%22%3A1602705565%7D;
38
+ expires=Thu, 29-Oct-2020 19:59:25 GMT; Max-Age=1296000
39
+ - client-data=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
40
+ X-Frame-Options:
41
+ - SAMEORIGIN
42
+ Upgrade:
43
+ - h2,h2c
44
+ Connection:
45
+ - Upgrade
46
+ Last-Modified:
47
+ - Wed, 14 Oct 2020 19:59:25 GMT
48
+ Etag:
49
+ - '"4d9b0e60a5a929cfd53153bb15716b3d-gzip"'
50
+ Vary:
51
+ - Accept-Encoding
52
+ X-Xss-Protection:
53
+ - 1; mode=block
54
+ Content-Length:
55
+ - '10135'
56
+ Content-Type:
57
+ - text/html; charset=utf-8
58
+ body:
59
+ encoding: ASCII-8BIT
60
+ string: !binary |-
61
+ PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+Cjx0aXRsZT5TZWFyY2ggZm9yICZxdW90O3RydW1hbiZxdW90OyAtIEZpbG1BZmZpbml0eTwvdGl0bGU+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkZpbG1hZmZpbml0eTogUmF0ZSBNb3ZpZXMgYW5kIFRWIFNob3dzICZhbXA7IEZpbmQgTW92aWUgUmVjb21tZW5kYXRpb25zIj4KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iRmlsbUFmZmluaXR5Ij4KPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiB2YWx1ZT0iQEZpbG1hZmZpbml0eSIgPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkZpbG1BZmZpbml0eSIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSIiIC8+CjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iIiAvPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL3d3dy5maWxtYWZmaW5pdHkuY29tL3VzL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIiBocmVmPSJodHRwczovL20uZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSIvZmF2aWNvbi5wbmciPgo8bGluayBocmVmPSIvc3R5bGUvanF1ZXJ5L2ZhLXVpLXRoZW1lL2pxdWVyeS11aS5taW4uMTUzOTA5NjMwNi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvanF1ZXJ5L2ZhLXVpLXRoZW1lL2pxdWVyeS11aS5zdHJ1Y3R1cmUubWluLjE1MzkwOTYzMDYuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2pxdWVyeS9mYS11aS10aGVtZS9qcXVlcnktdWkudGhlbWUubWluLjE1MzkwOTYzMDYuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2pxdWVyeS9qcXZtYXAvanF2bWFwLm1pbi4xNTYxNDUwODYxLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9tYWluMy4xNjAxNjQxMTQxLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9tb3ZpZWNhcmRzMy4xNTg1NzM0MzQzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9mYS1hd2Vzb21lLjE1MzkwOTYyOTEuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2ZvbnQtYXdlc29tZS41LjExLjEubWluLjE1NzkxNzQ2OTEuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2ZhLWljb25zLjE1ODIyODg0NzcuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL21hZ2ljLWNoZWNrLm1pbi4xNTM5MDk2MjkxLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9sb2NhbF9lbi4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9qcXVlcnktMy4xLjAubWluLjE1MzkwOTYzMDIuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLTEuNC4xLm1pbi4xNTM5MDk2MzAyLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS91aS9qcXVlcnktdWktMS4xMi4xLm1pbi4xNTM5MDk2MzA4LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9wbHVnaW4vanF2bWFwL2pxdWVyeS52bWFwLm1pbi4xNTYxNDUwODM0LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9wbHVnaW4vanF2bWFwL2pxdWVyeS52bWFwLndvcmxkLjE1NjE0NTA4MzYuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvY3JjMzIuMTUzOTA5NjI5My5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy90cmFuc2xhdGUtY29udGV4dC4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2xvY2FsZS90ZXh0cy1lbl9VUy4xNjAxOTA3MDcxLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9wbHVnaW4vanF1ZXJ5LmNvb2tpZS4xNTM5MDk2MzA4LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2Fkcy4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL21haW4uMTYwMDcwMjA0Ny5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9wYWdldG9wLjE1ODEzNDQ4MzQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvei1pbmRleC1maXguMTUzOTA5NjI5Mi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvcGx1Z2luL2xhenlzaXplcy9sYXp5c2l6ZXMubWluLjE2MDIwNjgzNzUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvZmEtbGlzdHMtdGlwLjE1MzkwOTYyOTIuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvaGlkZS1xdC4xNTg0NDU2NDEyLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL29sZC1hdXRvY29tcGxldGUuMTU4NTY2NzMwNy5qcyI+PC9zY3JpcHQ+Cgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlbiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL214L3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtTVgiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9hci9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzLUFSIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vY2wvc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlcy1DTCI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2NvL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtQ08iPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS91eS9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzLVVZIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vcGUvc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlcy1QRSI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VjL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtRUMiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS92ZS9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVzLVZFIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vY3Ivc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlcy1DUiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2JvL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZXMtQk8iPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS91cy9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVuLVVTIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vdWsvc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlbi1HQiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2llL3NlYXJjaC5waHA/c3RleHQ9dHJ1bWFuJnN0eXBlPXRpdGxlIiBocmVmbGFuZz0iZW4tSUUiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9hdS9zZWFyY2gucGhwP3N0ZXh0PXRydW1hbiZzdHlwZT10aXRsZSIgaHJlZmxhbmc9ImVuLUFVIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vY2Evc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUiIGhyZWZsYW5nPSJlbi1DQSI+CgoKPHNjcmlwdD4KICAgICQoZnVuY3Rpb24oKXsKICAgICAgICBzZXNzUGluZygiMDE1Zjg3NTg5ZGZkZDAzOGY4MDMyMWQyNWE5NDkyYjlmZTMxMjc3MGM3IiwgMjQwMCk7CiAgICAgICAgdmFyIHRjVGV4dHMgPSBUcmFuc2xhdGVDb250ZXh0LmdldEluc3RhbmNlKGNvbW1vblRleHRzSnMpOwogICAgfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IGFzeW5jPSdhc3luYycgc3JjPSdodHRwczovL3NjLWRldmVsLnMzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLXRhZ21hbmFnZXIvc2NfZ3B0X2xzdGFwYy5qcyc+PC9zY3JpcHQ+DQoNCiA8c2NyaXB0Pg0KDQogICAgICAgIHZhciBnb29nbGV0YWcgPSBnb29nbGV0YWcgfHwge307DQoNCiAgICAgICAgZ29vZ2xldGFnLmNtZCA9IGdvb2dsZXRhZy5jbWQgfHwgW107DQoNCiA8L3NjcmlwdD4NCg0KIDxzY3JpcHQgc3JjPSJodHRwczovL3MzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLWRldmVsL1NraW5zL1NNQ1NlcnZpY2UuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc2MtZGV2ZWwvc2MtdGFnbWFuYWdlci9maWxtYWZmaW5pdHkuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnNtYXJ0Y2xpcC1zZXJ2aWNlcy5jb20vdjEvU3RvcmFnZS1hNDgyMzIzL3NtYXJ0Y2xpcC1zZXJ2aWNlcy9IZWFkZXJCaWRkaW5nL2pzL1NtYXJ0Y2xpcENvbmZpZy5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4NCjwhLS0gUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz10cnVlPgooZnVuY3Rpb24oKSB7CiAgdmFyIGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICB2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgdmFyIHVybCA9ICdodHRwczovL3F1YW50Y2FzdC5tZ3IuY29uc2Vuc3Uub3JnJwogICAgLmNvbmNhdCgnL2Nob2ljZS8nLCAnTEJCckYtYmRBdGt1RicsICcvJywgaG9zdCwgJy9jaG9pY2UuanMnKQogIHZhciB1c3BUcmllcyA9IDA7CiAgdmFyIHVzcFRyaWVzTGltaXQgPSAzOwogIGVsZW1lbnQuYXN5bmMgPSB0cnVlOwogIGVsZW1lbnQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogIGVsZW1lbnQuc3JjID0gdXJsOwoKICBmaXJzdFNjcmlwdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBmaXJzdFNjcmlwdCk7CgogIGZ1bmN0aW9uIG1ha2VTdHViKCkgewogICAgdmFyIFRDRl9MT0NBVE9SX05BTUUgPSAnX190Y2ZhcGlMb2NhdG9yJzsKICAgIHZhciBxdWV1ZSA9IFtdOwogICAgdmFyIHdpbiA9IHdpbmRvdzsKICAgIHZhciBjbXBGcmFtZTsKCiAgICBmdW5jdGlvbiBhZGRGcmFtZSgpIHsKICAgICAgdmFyIGRvYyA9IHdpbi5kb2N1bWVudDsKICAgICAgdmFyIG90aGVyQ01QID0gISEod2luLmZyYW1lc1tUQ0ZfTE9DQVRPUl9OQU1FXSk7CgogICAgICBpZiAoIW90aGVyQ01QKSB7CiAgICAgICAgaWYgKGRvYy5ib2R5KSB7CiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwoKICAgICAgICAgIGlmcmFtZS5zdHlsZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6bm9uZSc7CiAgICAgICAgICBpZnJhbWUubmFtZSA9IFRDRl9MT0NBVE9SX05BTUU7CiAgICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzZXRUaW1lb3V0KGFkZEZyYW1lLCA1KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuICFvdGhlckNNUDsKICAgIH0KCiAgICBmdW5jdGlvbiB0Y2ZBUElIYW5kbGVyKCkgewogICAgICB2YXIgZ2RwckFwcGxpZXM7CiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzOwoKICAgICAgaWYgKCFhcmdzLmxlbmd0aCkgewogICAgICAgIHJldHVybiBxdWV1ZTsKICAgICAgfSBlbHNlIGlmIChhcmdzWzBdID09PSAnc2V0R2RwckFwcGxpZXMnKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgYXJncy5sZW5ndGggPiAzICYmCiAgICAgICAgICBhcmdzWzJdID09PSAyICYmCiAgICAgICAgICB0eXBlb2YgYXJnc1szXSA9PT0gJ2Jvb2xlYW4nCiAgICAgICAgKSB7CiAgICAgICAgICBnZHByQXBwbGllcyA9IGFyZ3NbM107CiAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMl0gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgYXJnc1syXSgnc2V0JywgdHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGFyZ3NbMF0gPT09ICdwaW5nJykgewogICAgICAgIHZhciByZXRyID0gewogICAgICAgICAgZ2RwckFwcGxpZXM6IGdkcHJBcHBsaWVzLAogICAgICAgICAgY21wTG9hZGVkOiBmYWxzZSwKICAgICAgICAgIGNtcFN0YXR1czogJ3N0dWInCiAgICAgICAgfTsKCiAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzJdID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICBhcmdzWzJdKHJldHIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBxdWV1ZS5wdXNoKGFyZ3MpOwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIoZXZlbnQpIHsKICAgICAgdmFyIG1zZ0lzU3RyaW5nID0gdHlwZW9mIGV2ZW50LmRhdGEgPT09ICdzdHJpbmcnOwogICAgICB2YXIganNvbiA9IHt9OwoKICAgICAgdHJ5IHsKICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBqc29uID0gZXZlbnQuZGF0YTsKICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge30KCiAgICAgIHZhciBwYXlsb2FkID0ganNvbi5fX3RjZmFwaUNhbGw7CgogICAgICBpZiAocGF5bG9hZCkgewogICAgICAgIHdpbmRvdy5fX3RjZmFwaSgKICAgICAgICAgIHBheWxvYWQuY29tbWFuZCwKICAgICAgICAgIHBheWxvYWQudmVyc2lvbiwKICAgICAgICAgIGZ1bmN0aW9uKHJldFZhbHVlLCBzdWNjZXNzKSB7CiAgICAgICAgICAgIHZhciByZXR1cm5Nc2cgPSB7CiAgICAgICAgICAgICAgX190Y2ZhcGlSZXR1cm46IHsKICAgICAgICAgICAgICAgIHJldHVyblZhbHVlOiByZXRWYWx1ZSwKICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3MsCiAgICAgICAgICAgICAgICBjYWxsSWQ6IHBheWxvYWQuY2FsbElkCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgICAgICByZXR1cm5Nc2cgPSBKU09OLnN0cmluZ2lmeShyZXR1cm5Nc2cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXR1cm5Nc2csICcqJyk7CiAgICAgICAgICB9LAogICAgICAgICAgcGF5bG9hZC5wYXJhbWV0ZXIKICAgICAgICApOwogICAgICB9CiAgICB9CgogICAgd2hpbGUgKHdpbikgewogICAgICB0cnkgewogICAgICAgIGlmICh3aW4uZnJhbWVzW1RDRl9MT0NBVE9SX05BTUVdKSB7CiAgICAgICAgICBjbXBGcmFtZSA9IHdpbjsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoaWdub3JlKSB7fQoKICAgICAgaWYgKHdpbiA9PT0gd2luZG93LnRvcCkgewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIHdpbiA9IHdpbi5wYXJlbnQ7CiAgICB9CiAgICBpZiAoIWNtcEZyYW1lKSB7CiAgICAgIGFkZEZyYW1lKCk7CiAgICAgIHdpbi5fX3RjZmFwaSA9IHRjZkFQSUhhbmRsZXI7CiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIsIGZhbHNlKTsKICAgIH0KICB9OwoKICBtYWtlU3R1YigpOwoKICB2YXIgdXNwU3R1YkZ1bmN0aW9uID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYXJnID0gYXJndW1lbnRzOwogICAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgIT09IHVzcFN0dWJGdW5jdGlvbikgewogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0eXBlb2Ygd2luZG93Ll9fdXNwYXBpICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgd2luZG93Ll9fdXNwYXBpLmFwcGx5KHdpbmRvdy5fX3VzcGFwaSwgYXJnKTsKICAgICAgICB9CiAgICAgIH0sIDUwMCk7CiAgICB9CiAgfTsKCiAgdmFyIGNoZWNrSWZVc3BJc1JlYWR5ID0gZnVuY3Rpb24oKSB7CiAgICB1c3BUcmllcysrOwogICAgaWYgKHdpbmRvdy5fX3VzcGFwaSA9PT0gdXNwU3R1YkZ1bmN0aW9uICYmIHVzcFRyaWVzIDwgdXNwVHJpZXNMaW1pdCkgewogICAgICBjb25zb2xlLndhcm4oJ1VTUCBpcyBub3QgYWNjZXNzaWJsZScpOwogICAgfSBlbHNlIHsKICAgICAgY2xlYXJJbnRlcnZhbCh1c3BJbnRlcnZhbCk7CiAgICB9CiAgfTsKCiAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgPT09ICd1bmRlZmluZWQnKSB7CiAgICB3aW5kb3cuX191c3BhcGkgPSB1c3BTdHViRnVuY3Rpb247CiAgICB2YXIgdXNwSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChjaGVja0lmVXNwSXNSZWFkeSwgNjAwMCk7CiAgfQp9KSgpOwo8L3NjcmlwdD4KPCEtLSBFbmQgUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQ+CiAgdmFyIF9jb21zY29yZSA9IF9jb21zY29yZSB8fCBbXTsKICBfY29tc2NvcmUucHVzaCh7IGMxOiAiMiIsIGMyOiAiMTMxODExMjEiIH0pOwogIChmdW5jdGlvbigpIHsKICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyBzLmFzeW5jID0gdHJ1ZTsKICAgIHMuc3JjID0gKGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID09ICJodHRwczoiID8gImh0dHBzOi8vc2IiIDogImh0dHA6Ly9iIikgKyAiLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9iZWFjb24uanMiOwogICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocywgZWwpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+CiAgPGltZyBzcmM9Imh0dHA6Ly9iLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9wP2MxPTImYzI9MTMxODExMjEmY3Y9Mi4wJmNqPTEiIC8+Cjwvbm9zY3JpcHQ+CjxzY3JpcHQ+JChmdW5jdGlvbigpe3NlbmRwdigiODA2ODAzN2I5NTg3ZjAxNzRjODU0NWNmYzY2ZmM1N2YiKTt9KTs8L3NjcmlwdD4NCjwvaGVhZD4KPGJvZHk+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgIChmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsKICAgICAgICAgIChpW3JdLnE9aVtyXS5xfHxbXSkucHVzaChhcmd1bWVudHMpfSxpW3JdLmw9MSpuZXcgRGF0ZSgpO2E9cy5jcmVhdGVFbGVtZW50KG8pLAogICAgICAgICAgbT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKG8pWzBdO2EuYXN5bmM9MTthLnNyYz1nO20ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxtKQogICAgICAgICAgfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCcvL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMnLCdnYScpOwogICAgICAgICAgZ2EoJ2NyZWF0ZScsICdVQS03NDE1NTUwNC0xJywgJ2F1dG8nKTsKICAgICAgICAgIGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7CiAgICAgICAgPC9zY3JpcHQ+CjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KICAgIDxkaXYgaWQ9ImhlYWRlci10b3AiID4KICAgICAgICA8ZGl2IGNsYXNzPSJjcGFuZWwgdG9wLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGl2IGlkPSJsb2dvLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL21haW4uaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9ImxvZ28iIHNyYz0iL2ltYWdlcy9sb2dvNC5wbmciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28tc2l0ZWxvYyI+VVNBIHwgVUs8L2Rpdj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+PCEtLSBsb2dvLWNvbnRhaW5lciAtLT4KCiAgICAgICAgICAgIDxkaXYgaWQ9InRvcHNlYXJjaCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocCIgbWV0aG9kPSJnZXQiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJ0b3Atc2VhcmNoLWlucHV0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJzdGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSJ0cnVtYW4iIHRhYmluZGV4PSIxIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS10aW1lcyBjbGVhci1zZWFyY2giPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iYnV0dG9uLXNlYXJjaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXNlYXJjaCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iYnV0dG9uLXNlYXJjaCIgdmFsdWU9IiZuYnNwOyI+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZHZzZWFyY2giPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYWR2c2VhcmNoLnBocCI+QWR2YW5jZWQgc2VhcmNoIDxpIGNsYXNzPSJmYXMgZmEtYW5nbGUtZG91YmxlLXJpZ2h0Ij48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj48IS0tIHRvcHNlYXJjaCAtLT4KICAgICAgICAgICAgPGRpdiBpZD0idXNlci1sb2dpbi1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGRpdiBpZD0ibG9naW4tcmVnaXN0ZXIiPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJzaWduLWluIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2xvZ2luLnBocCI+PHN0cm9uZz5TaWduIGluPC9zdHJvbmc+PC9hPiAvIDxhIGNsYXNzPSJyZWdpc3RlciIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9yZWdpc3Rlci5waHAiPlJlZ2lzdGVyPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1tZW51LXdyIj4KPHVsPgogICAgPGxpPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdXNlcnJhdGluZ3MucGhwP3VzZXJfaWQ9Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1yYXRpbmdzLWZhIj48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgTXkgUmF0aW5ncyAgICAgICAgPC9hPgogICAgPC9saT4KICAgIDxsaT4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL215cmV2aWV3cy5waHAiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWMtdyI+PGkgY2xhc3M9ImZhIGZhLXJldmlld3MtZmEiPjwvaT48L3NwYW4+CiAgICAgICAgICAgIFJldmlld3MgICAgICAgIDwvYT4KICAgIDwvbGk+CiAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9teWxpc3RzLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtbGlzdCI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgTGlzdHMgPHNwYW4gY2xhc3M9Im5ici13Ij5OZXc8L3NwYW4+CiAgICAgICAgPC9hPgogICAgPC9saT4KICAgIDxsaT4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL215ZnJpZW5kcy5waHAiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWMtdyI+PGkgY2xhc3M9ImZhIGZhIGZhLWZyaWVuZHMtZmEiPjwvaT48L3NwYW4+CiAgICAgICAgICAgIEZyaWVuZHMgLyBHcm91cHMgICAgICAgIDwvYT4KICAgIDwvbGk+CiAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zb3VsbWF0ZXMucGhwIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1zb3VsbWF0ZXMtZmEiPjwvaT48L3NwYW4+CiAgICAgICAgICAgIE1vdmllIFNvdWxtYXRlcyYjODQ4MjsgICAgICAgIDwvYT4KICAgIDwvbGk+CiAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zbXNyZWMucGhwIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1oZWFydCI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgIFJlY29tbWVuZGVkIE1vdmllcyAgICAgICAgPC9hPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0idXNlci1wcm9mLWxpbmsiPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vbXlkYXRhLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtYWRkcmVzcy1jYXJkLW8iPjwvaT48L3NwYW4+CiAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICA8L2E+CiAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3Vycy5waHAiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImljLXciPjxpIGNsYXNzPSJmYSBmYS1yYXRpbmdzLWZhIj48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgU3RhcnQgUmF0aW5nISAgICAgICAgICAgIDwvYT4KICAgICAgICA8L2xpPgogICAgICAgIDxsaSBjbGFzcz0ibGctb3V0LWxpIj4KICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InNpZ24tb3V0Ij4KICAgICAgICAgICAgICAgIFNpZ24gb3V0ICAgICAgICAgICAgPC9hPgogICAgICAgIDwvbGk+CjwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+PCEtLSB1c2VyLWxvZ2luIC1jb250YWluZXIgLS0+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImhlYWRlci1ib3R0b20iICA+CiAgICAgICAgPGRpdiBjbGFzcz0iY3BhbmVsIG5ld3Mtd3JhcHBlciI+Cgo8dWwgaWQ9ImF3YXJkc21lbnUiPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0ZWdvcnkucGhwP2lkPWxhdGVzdF9yZXZpZXdzIj5SZXZpZXdzPC9hPjwvbGk+PGxpIGNsYXNzPSJzZXAiPnw8L2xpPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0ZWdvcnkucGhwP2lkPVRSQUlMRVJTIj5UcmFpbGVyczwvYT48L2xpPjxsaSBjbGFzcz0ic2VwIj58PC9saT4KICAgICAgICAgICAgPGxpID48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2Jlc3RfMjAxOS5waHAiPjIwMTk8L2E+PC9saT48bGkgY2xhc3M9InNlcCI+fDwvbGk+CiAgICAgICAgICAgIDxsaSA+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BnZW4ucGhwP2dlbnJlPSZmcm9teWVhcj0mdG95ZWFyPSZjb3VudHJ5PSZub2RvYyI+VG9wIEZBPC9hPjwvbGk+PGxpIGNsYXNzPSJzZXAiPnw8L2xpPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYWxsX2F3YXJkcy5waHAiPkF3YXJkczwvYT48L2xpPjxsaSBjbGFzcz0ic2VwIj58PC9saT4KICAgICAgICAgICAgPGxpID48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2F3YXJkcy5waHA/YXdhcmRfaWQ9ZW1teSZ5ZWFyPTIwMjAiPkVNTVkgQXdhcmRzIDIwMjA8L2E+PC9saT48bGkgY2xhc3M9InNlcCI+fDwvbGk+CjwvdWw+CgoKCiAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgICAgICAgIHZhciByZW1pbmRlclRleHQgPSAnRmlsbWFmZmluaXR5IGlzIGF2YWlsYWJsZSBpbiB5b3VyIGNvdW50cnkuIMKhVHJ5IG91dCB0aGlzIHZlcnNpb24hPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9tYWluLmh0bWwiIGNsYXNzPSJmYS1idXR0b24iIGRhdGEtdmVyc2lvbj0iZXMiPkdvIHRvIFNwYWluIHZlcnNpb248aSBjbGFzcz0iZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0Ij48L2k+PC9hPjxkaXYgY2xhc3M9ImRpc2Nsb3N1cmUiPk5vLCBJIHdhbnQgdG8gc3RheSBpbiBVU0EgfCBVSyB2ZXJzaW9uPC9kaXY+JzsKICAgICAgICAgICAgICAgICAgICByZW5kZXJWZXJzaW9uUmVtaW5kZXIocmVtaW5kZXJUZXh0KTsKICAgICAgICAgICAgICAgIDwvc2NyaXB0PgogICAgICAgICAgICA8dWwgY2xhc3M9InZlcnNpb24iPgogICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iZW4iIGNsYXNzPSJmaXhlZCIgdGl0bGU9IkNoYW5nZSBsYXlvdXQiPlVTQSB8IFVLIDxpIGNsYXNzPSJmYXMgZmEtY2hldnJvbi1kb3duIj48L2k+PC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgPC9kaXY+Cg0KICAgIDxkaXYgY2xhc3M9InBhZ2UtdmVyc2lvbnMtcG9wIGZhLXNoYWRvdyI+DQogICAgICAgIDxkaXYgaWQ9InZtYXAiIHN0eWxlPSJ3aWR0aDogNjMwcHg7IGhlaWdodDogNDAwcHg7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY291bnRyeS1uYW1lcyI+DQogICAgICAgICAgICA8dWwgY2xhc3M9ImNvbnRpbmVudHMiPg0KICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS1jb250aW5lbnQ9ImFtZXJpY2Etbm9ydGgiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5Ob3J0aCBBbWVyaWNhIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoLXBsdXMgbWFwLXpvb20iPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY291bnRyaWVzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0idXMiIGRhdGEtY291bnRyeS1pZD0idXMiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVVMucG5nIiBhbHQ9IlVuaXRlZCBTdGF0ZXMiIHRpdGxlPSJVbml0ZWQgU3RhdGVzIj4gVVNBIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNhIiBkYXRhLWNvdW50cnktaWQ9ImNhIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NBLnBuZyIgYWx0PSJDYW5hZGEiIHRpdGxlPSJDYW5hZGEiPiBDYW5hZGEgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0ibXgiIGRhdGEtY291bnRyeS1pZD0ibXgiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvTVgucG5nIiBhbHQ9Ik1leGljbyIgdGl0bGU9Ik1leGljbyI+IE3DqXhpY28gPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLWNvbnRpbmVudD0iZXVyb3BlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+RXVyb3BlIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoLXBsdXMgbWFwLXpvb20iPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY291bnRyaWVzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iZXMiIGRhdGEtY291bnRyeS1pZD0iZXMiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvRVMucG5nIiBhbHQ9IlNwYWluIiB0aXRsZT0iU3BhaW4iPiBTcGFpbiA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJ1ayIgZGF0YS1jb3VudHJ5LWlkPSJnYiI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9HQi5wbmciIGFsdD0iVW5pdGVkIEtpbmdkb20iIHRpdGxlPSJVbml0ZWQgS2luZ2RvbSI+IFVLIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImllIiBkYXRhLWNvdW50cnktaWQ9ImllIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0lFLnBuZyIgYWx0PSJJcmVsYW5kIiB0aXRsZT0iSXJlbGFuZCI+IElyZWxhbmQgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLWNvbnRpbmVudD0ib2NlYW5pYSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPk9jZWFuaWEgPGkgY2xhc3M9ImZhcyBmYS1zZWFyY2gtcGx1cyBtYXAtem9vbSI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjb3VudHJpZXMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJhdSIgZGF0YS1jb3VudHJ5LWlkPSJhdSI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9BVS5wbmciIGFsdD0iQXVzdHJhbGlhIiB0aXRsZT0iQXVzdHJhbGlhIj4gQXVzdHJhbGlhIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIDx1bCBjbGFzcz0iY29udGluZW50cyI+DQogICAgICAgICAgICAgICAgPGxpIGRhdGEtY29udGluZW50PSJhbWVyaWNhLXNvdXRoIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5Tb3V0aCBBbWVyaWNhIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoLXBsdXMgbWFwLXpvb20iPjwvaT4gPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY291bnRyaWVzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJhciIgZGF0YS1jb3VudHJ5LWlkPSJhciI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9BUi5wbmciIGFsdD0iQXJnZW50aW5hIiB0aXRsZT0iQXJnZW50aW5hIj4gQXJnZW50aW5hIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iY2wiIGRhdGEtY291bnRyeS1pZD0iY2wiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvQ0wucG5nIiBhbHQ9IkNoaWxlIiB0aXRsZT0iQ2hpbGUiPiBDaGlsZSA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNvIiBkYXRhLWNvdW50cnktaWQ9ImNvIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NPLnBuZyIgYWx0PSJDb2xvbWJpYSIgdGl0bGU9IkNvbG9tYmlhIj4gQ29sb21iaWEgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJ1eSIgZGF0YS1jb3VudHJ5LWlkPSJ1eSI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VWS5wbmciIGFsdD0iVXJ1Z3VheSIgdGl0bGU9IlVydWd1YXkiPiBVcnVndWF5IDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0icGUiIGRhdGEtY291bnRyeS1pZD0icGUiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvUEUucG5nIiBhbHQ9IlBlcnUiIHRpdGxlPSJQZXJ1Ij4gUGVyw7ogPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJlYyIgZGF0YS1jb3VudHJ5LWlkPSJlYyI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9FQy5wbmciIGFsdD0iRWN1YWRvciIgdGl0bGU9IkVjdWFkb3IiPiBFY3VhZG9yIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0idmUiIGRhdGEtY291bnRyeS1pZD0idmUiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVkUucG5nIiBhbHQ9IlZlbmV6dWVsYSIgdGl0bGU9IlZlbmV6dWVsYSI+IFZlbmV6dWVsYSA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNyIiBkYXRhLWNvdW50cnktaWQ9ImNyIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NSLnBuZyIgYWx0PSJDb3N0YSBSaWNhIiB0aXRsZT0iQ29zdGEgUmljYSI+IENvc3RhIFJpY2EgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJibyIgZGF0YS1jb3VudHJ5LWlkPSJibyI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9CTy5wbmciIGFsdD0iQm9saXZpYSIgdGl0bGU9IkJvbGl2aWEiPiBCb2xpdmlhIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmEtaW50ZXJuYXRpb25hbC5waHAiIGNsYXNzPSJtb3JlLWluZm8iPjxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUiPjwvaT4gTW9yZSBpbmZvcm1hdGlvbjwvYT4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQogICAgdmFyIG1hcFZlcnNpb25zID0geyJ1cyI6IiMzQzZFOTkiLCJjYSI6IiMzQzZFOTkiLCJteCI6IiMzQzZFOTkiLCJlcyI6IiMzQzZFOTkiLCJnYiI6IiMzQzZFOTkiLCJpZSI6IiMzQzZFOTkiLCJhdSI6IiMzQzZFOTkiLCJhciI6IiMzQzZFOTkiLCJjbCI6IiMzQzZFOTkiLCJjbyI6IiMzQzZFOTkiLCJ1eSI6IiMzQzZFOTkiLCJwZSI6IiMzQzZFOTkiLCJlYyI6IiMzQzZFOTkiLCJ2ZSI6IiMzQzZFOTkiLCJjciI6IiMzQzZFOTkiLCJibyI6IiMzQzZFOTkifTsNCiAgICANCi8qICAvL3BhcmEgc2FjYXIgdHJhemFzIGRlIGNvb3JkZW5hZGFzLg0KICAgIGpRdWVyeSgnI3ZtYXAnKS5vbignZHJhZycsIGZ1bmN0aW9uKGV2ZW50KQ0KICAgIHsNCiAgICAgICAgY29uc29sZS5sb2coanF2bWFwLnRyYW5zWCk7DQogICAgICAgIGNvbnNvbGUubG9nKGpxdm1hcC50cmFuc1kpOw0KICAgICAgICBjb25zb2xlLmxvZyhqcXZtYXAuc2NhbGUpOw0KICAgICAgICBjb25zb2xlLmxvZyhqcXZtYXAuem9vbUN1clN0ZXApOw0KICAgIH0pOw0KKi8gICAgDQogICAgDQoNCjwvc2NyaXB0Pg0KCiAgICA8L2Rpdj4KPC9kaXY+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0iY3BhbmVsIGFkdmVyLXdyYXBwZXIiPgo8ZGl2IGlkPSJ0b3AtYWQiIGNsYXNzPSJhZHZlci1maXgiPgogICAgPGRpdiBpZD0nc2MtdG9wJyBjbGFzcz0ic2MtdG9wIj4KCiAgICAgICAgICAgPHNjcmlwdD4KCiAgICAgICAgICAgICAgICAgIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGdvb2dsZXRhZy5kaXNwbGF5KCdzYy10b3AnKTsKCiAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgIDwvc2NyaXB0PgoKICAgIDwvZGl2PgoKICAgIDwhLS0gc2Mtb29wLS0+CgogICAgPGRpdiBpZD0nc2Mtb29wJyBjbGFzcz0ic2Mtb29wIj4KCiAgICAgICAgICAgPHNjcmlwdD4KCiAgICAgICAgICAgICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xldGFnLmRpc3BsYXkoJ3NjLW9vcCcpOwoKICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgPC9zY3JpcHQ+CgogICAgPC9kaXY+CjwvZGl2PgoNCg0KDQoNCg0KDQoNCg0KPC9kaXY+Cgo8ZGl2IGlkPSJ0b3AtYW5jaCI+CiAgICA8YSB0aXRsZT0iQmFjayB0byB0b3AiIGhyZWY9IiNoZWFkZXItdG9wIj4KICAgICAgICA8aW1nIGFsdD0iYXJyb3ciIHNyYz0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9pbWFnZXMvYXJyb3ctdXAyLnBuZyI+CiAgICA8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjcGFuZWwiPgogIDx0YWJsZSBpZD0ibWFpbi1jb250ZW50LXRhYmxlIj4KICAgIDx0cj4KICAgICAgPHRkIGlkPSJtdC1sZWZ0LWNlbGwiPgogICAgICAgIDxkaXYgaWQ9ImxzbWVudSI+CjxkaXYgY2xhc3M9ImNhdC1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJsc21oZWFkZXIiPlVzZXJzPC9kaXY+Cjx1bD4KPGxpID48YSBjbGFzcz0icmF0ZS10b3VycyIgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdG91cnMucGhwIj5TdGFydCBSYXRpbmchPC9hPjwvbGk+PGxpID48YSBjbGFzcz0ic2lnbi1pbiIgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vbG9naW4ucGhwIj5TaWduIGluPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9yZWdpc3Rlci5waHAiPlJlZ2lzdGVyPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+Tm93IFBsYXlpbmc8L2Rpdj4KPHVsPgo8bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2NhdF9uZXdfdGhfdXMuaHRtbCI+VVMgLSBOZXcgUmVsZWFzZXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3JkY2F0LnBocD9pZD11cGNfdGhfdXMiPlVTIC0gQ29taW5nIFNvb248L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2NhdF9uZXdfdGhfdWsuaHRtbCI+VUsgLSBOZXcgUmVsZWFzZXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3JkY2F0LnBocD9pZD11cGNfdGhfdWsiPlVLIC0gVXBjLiBSZWxlYXNlczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0X2VzdHJfZnIuaHRtbCI+RnJhbmNlIC0gTmV3IFJlbGVhc2VzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfbmV3X25ldGZsaXguaHRtbCI+TmV0ZmxpeDwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vcmRjYXQucGhwP2lkPXVwY19uZXRmbGl4Ij5OZXRmbGl4IChjb21pbmcgc29vbik8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2NhdF9uZXdfaGJvLmh0bWwiPkhCTzwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0X25ld19hbWF6b24uaHRtbCI+QW1hem9uPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfZGlzbmV5cGx1cy5odG1sIj5EaXNuZXkrPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfYXBwbGVfdHZfcGx1cy5odG1sIj5BcHBsZSBUVis8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5TZWUgTW9yZTwvZGl2Pgo8dWw+CjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYm94b2ZmaWNlLnBocCI+Qm94IE9mZmljZTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdHJhaWxlcnMucGhwIj5UcmFpbGVyczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vbGF0ZXN0ZXZpZGVvcy5waHAiPkxhdGVzdCBUcmFpbGVyczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY2F0ZWdvcnkucGhwP2lkPWxhdGVzdF9yZXZpZXdzIj5XaGF0IENyaXRpY3MgU2F5PC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BpY3MucGhwIj5GaWxtcyBieSBLZXl3b3JkPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9tb3ZpZS1ncm91cHMtYWxsLnBocCI+U2FnYXMgJiBGcmFuY2hpc2VzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+VFYgU2VyaWVzPC9kaXY+Cjx1bD4KPGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9jYXRfY3VycmVudF90di5odG1sIj5Qb3B1bGFyIFRWIFNob3dzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BnZW4ucGhwP2dlbnJlPVRWX1NFJmNvdW50cnk9JmZyb215ZWFyPSZ0b3llYXI9Jm5vZG9jIj5Ub3AgVFYgU2VyaWVzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3VyLnBocD9pZHRvdXI9MjYiPlJhdGUgVFYgU2VyaWVzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+VE9QczwvZGl2Pgo8dWw+CjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vdG9wZ2VuLnBocCI+VG9wIEZpbG1hZmZpbml0eTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vYmVzdF90b3BzLnBocCI+VG9wIG9mIHRoZSBUb3BzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi90b3BjYXRfbmV3X3RoX3VzLmh0bWwiPlRvcCBOZXcgUmVsZWFzZXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2xpc3RzcmFuay5waHAiPlRvcCBvZiB0aGUgTGlzdHM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5Bd2FyZHMgJiBGZXN0aXZhbHM8L2Rpdj4KPHVsPgo8bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2FsbF9hd2FyZHMucGhwIj5Bd2FyZHMgJiBGZXN0aXZhbHM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL29zY2FyX2RhdGEucGhwIj5BbGwgT3NjYXJzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9iZXN0XzIwMTkucGhwIj5CZXN0IG9mIDIwMTk8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5BYm91dCBGaWxtYWZmaW5pdHk8L2Rpdj4KPHVsPgo8bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NpdGUtZ3VpZGUucGhwIj5BYm91dCBGQTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vY29udGFjdF91cy5waHAiPkNvbnRhY3QgVXM8L2E+PC9saT48L3VsPjwvZGl2Pgo8L2Rpdj4KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIDxkaXYgaWQ9Im10LWNvbnRlbnQtY2VsbCI+CiAgICAgICAgICAgIDxkaXYgaWQ9InNoLXBvcy1hYnMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2gtaGVhZGVyIiB0aXRsZT0iU2hhcmUiPjxpIGNsYXNzPSJmYXMgZmEtc2hhcmUtYWx0Ij48L2k+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3R5bGU+CiAgICAjaGlkZGVuLXVybCB7cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA2NXB4OyB0b3A6IDJweDsgZGlzcGxheTogbm9uZTsgcGFkZGluZzogMnB4IDZweCA0cHggNnB4OyBiYWNrZ3JvdW5kOiAjZmRjYzFhOyBtYXJnaW4tdG9wOiA1cHg7IHdpZHRoOiA0ODVweDsgYm9yZGVyLXJhZGl1czogNXB4OyBhbmltYXRpb24tZHVyYXRpb246IC4zczsgei1pbmRleDogMTAwO30KICAgICNoaWRkZW4tdXJsIGlucHV0eyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBvdXRsaW5lOiBub25lOyBib3JkZXI6IDFweCBzb2xpZCAjREREREREOyBib3JkZXItcmFkaXVzOiA1cHg7IHBhZGRpbmc6IDhweCA0cHg7IHdpZHRoOiA0MzVweDsgbWFyZ2luLWxlZnQ6IDVweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTt9CiAgICAjaGlkZGVuLXVybCAuaGlkZS11cmwge2N1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAyMnB4OyBtYXJnaW46IDAgNXB4OyBjb2xvcjogIzAwMDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTt9CiAgICAjY29weS1jbGlwYm9hcmQge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDMxcHg7IHBhZGRpbmc6IDJweCA2cHg7IGJhY2tncm91bmQ6ICNmZGNjMWE7IG1hcmdpbi10b3A6IDVweDsgYW5pbWF0aW9uLWR1cmF0aW9uOiAuM3M7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgd2lkdGg6IDIwMHB4OyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmctbGVmdDogMTVweDt9Cjwvc3R5bGU+Cgo8c2NyaXB0PgoKICAgIGZ1bmN0aW9uIGhpZGVPbkNsaWNrKCApewogICAgICAgICQoZG9jdW1lbnQpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgIGlmKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnLmhkLXNoLXdyYXBwZXInKS5sZW5ndGggJiYgISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcjaGlkZGVuLXVybCcpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgaWYoJCgnLmhkLXNoLXdyYXBwZXInKS5pcygiOnZpc2libGUiKSkgewogICAgICAgICAgICAgICAgICAgIC8vJCgnLmhpZGRlbi1zaGFyZS13cmFwcGVyJykuaGlkZSgpOwogICAgICAgICAgICAgICAgICAgICQoJy5zaC1oZWFkZXInKS50cmlnZ2VyKCdjbGljaycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9ICAgICAgICAKICAgICAgICB9KTsKICAgIH0gIAogCiAgICAkKGZ1bmN0aW9uKCkgewogICAgICAgICQoJy5oZC1zaC13cmFwcGVyJykuYmluZCgnYW5pbWF0aW9uRW5kIG9BbmltYXRpb25FbmQgbXNBbmltYXRpb25FbmQgbW96QW5pbWF0aW9uRW5kIHdlYmtpdEFuaW1hdGlvbkVuZCcsIGZ1bmN0aW9uKGV2ZW50KXsKICAgICAgICAgICAgaWYoICAkKGV2ZW50LnRhcmdldCkuaGFzQ2xhc3MoJ25rb291dCcpICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJCgnLmhkLXNoLXdyYXBwZXInKS5oaWRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgIH0pOyAgICAgICAgCgogICAgICAgICQoJyNzaC1wb3MtYWJzJykudG9nZ2xlKCBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgJCgnLnNoLWhlYWRlcicpLmFkZENsYXNzKCdjbGlja2VkJyk7CiAgICAgICAgICAgICAgICAkKCcuaGQtc2gtd3JhcHBlcicpLnJlbW92ZUNsYXNzKCdua29vdXQnKS5hZGRDbGFzcygnbmtvaW4nKS5zaG93KCk7CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAkKCcuaGQtc2gtd3JhcHBlcicpLnJlbW92ZUNsYXNzKCdua29pbicpLmFkZENsYXNzKCdua29vdXQnKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJCgnLm1haW4tc2gnKS5yZW1vdmVDbGFzcygnY2xpY2tlZCcpOwogICAgICAgICAgICAgICAgaWYoICQoJyNoaWRkZW4tdXJsJykuaXMoIjp2aXNpYmxlIikgKSB7CiAgICAgICAgICAgICAgICAgICAgJCgnI2NvcHktdG8tY2xpcCcpLmNsaWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy92YXIgcGF0aG5hbWUgPSAnaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbScgKyBsb2NhdGlvbi5wYXRobmFtZSArIGxvY2F0aW9uLnNlYXJjaDsKICAgICAgICB2YXIgcGF0aG5hbWUgPSBlbmNvZGVVUkkoJ2h0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdGV4dD10cnVtYW4mc3R5cGU9dGl0bGUnKTsKICAgICAgICB2YXIgc2xpZGVPcHRpb25zID0geyBkaXJlY3Rpb246ICdsZWZ0JyB9OwoKICAgICAgICAkKCcjY29weS10by1jbGlwJykudG9nZ2xlKAogICAgICAgICAgICBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgJCgnI2hpZGRlbi11cmwnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAkKCcjaGlkZGVuLXVybCcpLmZpbmQoJzppbnB1dCcpLnZhbChwYXRobmFtZSk7CiAgICAgICAgICAgICAgICAgICAgLy8kKCcjaGlkZGVuLXVybCcpLmZpbmQoJzppbnB1dCcpLnNlbGVjdCgpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gJCgnI2hpZGRlbi11cmwnKS5maW5kKCc6aW5wdXQnKS50ZXh0KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCgnI2hpZGRlbi11cmwnKS5oaWRlKCk7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNoaWRkZW4tdXJsJykub24oJ2NsaWNrJywgJyNjb3B5LWNsaXBib2FyZCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQodGhpcykudGV4dCggJCgnI2NvcHktY2xpcGJvYXJkJykuYXR0cignZGF0YS10ZXh0JykgKTsKICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoIHBhdGhuYW1lICkKICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyggcGF0aG5hbWUgKTsKICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgY29weSB0ZXh0OiAnLCBlcnIpOwogICAgICAgICAgICB9KTsgIAogICAgICAgIH0pCgogICAgICAgICQoJyNoaWRkZW4tdXJsJykuZmluZCgnLmhpZGUtdXJsJykuY2xpY2soZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgJCgnI2NvcHktdG8tY2xpcCcpLnRyaWdnZXIoJ2NsaWNrJykKICAgICAgICB9KTsKCiAgICAgICAgaGlkZU9uQ2xpY2soKTsKICAgIH0pOwo8L3NjcmlwdD4KCjxkaXYgY2xhc3M9ImhkLXNoLW1haW4td3JhcHBlciI+CiAgICA8ZGl2IGNsYXNzPSJoZC1zaC13cmFwcGVyIj4KICAgICAgICA8YSBpZD0iY29weS10by1jbGlwIiB0aXRsZT0iQ29weSBVUkwiIGhyZWY9IiMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFyZS1pY29uIiBpZD0iY29weS10by1jbGlwLWNvbnRhaW5lciI+PGkgY2xhc3M9ImZhcyBmYS1saW5rIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogICAgICAgICAgICAKICAgICAgICA8YSBjbGFzcz0iZmItc2giIHRhcmdldD0iX0JMQU5LIiBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyLnBocD91PWh0dHBzJTNBJTJGJTJGd3d3LmZpbG1hZmZpbml0eS5jb20lMkZlbiUyRnNlYXJjaC5waHAlM0ZzdGV4dCUzRHRydW1hbiUyNnN0eXBlJTNEdGl0bGUmdD1TZWFyY2ggZm9yICZxdW90O3RydW1hbiZxdW90OyIgdGl0bGU9IlNoYXJlIG9uIEZhY2Vib29rIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiI+PGkgY2xhc3M9ImZhYiBmYS1mYWNlYm9vay1mIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogICAgCiAgICAgICAgPGEgY2xhc3M9InR3LXNoIiB0YXJnZXQ9Il9CTEFOSyIgdGl0bGU9IlNoYXJlIG9uIFR3aXR0ZXIiIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9U2VhcmNoJTIwZm9yJTIwJTI2cXVvdCUzQnRydW1hbiUyNnF1b3QlM0ImbmJzcDtpbiBAZmlsbWFmZmluaXR5IGh0dHBzJTNBJTJGJTJGd3d3LmZpbG1hZmZpbml0eS5jb20lMkZlbiUyRnNlYXJjaC5waHAlM0ZzdGV4dCUzRHRydW1hbiUyNnN0eXBlJTNEdGl0bGUiIHRpdGxlPSJTaGFyZSBvbiBUd2l0dGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiI+PGkgY2xhc3M9ImZhYiBmYS10d2l0dGVyIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJ3aC1zaCIgdGFyZ2V0PSJfQkxBTksiIHRpdGxlPSJTaGFyZSBvbiB3aGF0c2FwcCIgaHJlZj0iaHR0cHM6Ly9hcGkud2hhdHNhcHAuY29tL3NlbmQ/dGV4dD1TZWFyY2glMjBmb3IlMjAlMjZxdW90JTNCdHJ1bWFuJTI2cXVvdCUzQiZuYnNwO2luIEBmaWxtYWZmaW5pdHkgaHR0cHMlM0ElMkYlMkZ3d3cuZmlsbWFmZmluaXR5LmNvbSUyRmVuJTJGc2VhcmNoLnBocCUzRnN0ZXh0JTNEdHJ1bWFuJTI2c3R5cGUlM0R0aXRsZSIgdGl0bGU9IlNoYXJlIG9uIHdoYXRzYXBwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiI+PGkgY2xhc3M9ImZhYiBmYS13aGF0c2FwcCI+PC9pPjwvZGl2PgogICAgICAgIDwvYT4KIAo8L2Rpdj4KPC9kaXY+CgogICAgPGRpdiBpZD0iaGlkZGVuLXVybCI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjU1Ij48aSBjbGFzcz0iZmFzIGZhLXRpbWVzLWNpcmNsZSBoaWRlLXVybCI+PC9pPgogICAgICAgIDxkaXYgaWQ9ImNvcHktY2xpcGJvYXJkIiBkYXRhLXRleHQ9ImNvcGllZCI+Y29weSB0byBjbGlwYm9hcmQ8L2Rpdj4KICAgIDwvZGl2PgoKCiAgICAKCgo8aDEgaWQ9Im1haW4tdGl0bGUiPlNlYXJjaCBmb3IgJnF1b3Q7dHJ1bWFuJnF1b3Q7PC9oMT4KCgo8ZGl2IGNsYXNzPSJtYWluLXNlYXJjaC13cmFwcGVyIj4KCiAgICA8ZGl2IGNsYXNzPSJuYXYtaGVhZGVyIj4gICAgICAgIAogICAgICAgIDx1bCBjbGFzcz0ibnRhYnMiPgogICAgICAgICAgICA8bGkgY2xhc3M9ImZpbHRlciI+PGkgY2xhc3M9ImZhcyBmYS1maWx0ZXIiPjwvaT4gRmlsdGVyPC9saT4KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iIGFjdGl2ZSAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9dGl0bGUmc3RleHQ9dHJ1bWFuIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudCI+CjggICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaSA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1kaXJlY3RvciZzdGV4dD10cnVtYW4iPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50Ij4KNiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc3RleHQ9dHJ1bWFuIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXN0IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50Ij4KODIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgPC9kaXY+Cg0KPGRpdiBjbGFzcz0iei1zZWFyY2giPg0KICAgIDxkaXYgY2xhc3M9InN1Yi1oZWFkZXItc2VhcmNoIj4NCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1kZXNjIj5PcmRlciBieTwvZGl2Pg0KICAgICAgICAgICAgICAgIDx1bD4gICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0iYmctaXRlbSBhY3RpdmUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT10aXRsZSZzdGV4dD10cnVtYW4iPlJlbGV2YW5jZTwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9ImJnLWl0ZW0gIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9dGl0bGUmc3RleHQ9dHJ1bWFuJmFtcDtvcmRlcmJ5PXllYXIiPlllYXI8L2E+PC9saT4NCiAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQogICAgPC9kaXY+DQoNCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InllLXciPjE5OTg8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhLXNoYWRvdy1uYiBpdGVtLXNlYXJjaCI+ICAgICAgICAgICAgICAgICAgICANCjxkaXYgY2xhc3M9Im1vdmllLWNhcmQgbW92aWUtY2FyZC0xIiBkYXRhLW1vdmllLWlkPSI1MDQ4ODkiPg0KICAgIDxkaXYgY2xhc3M9Im1jLXBvc3RlciI+DQogICAgICAgIDxhIHRpdGxlPSJUaGUgVHJ1bWFuIFNob3cgIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG01MDQ4ODkuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90aGVfdHJ1bWFuX3Nob3ctMTMwMDkxNTU3LW10aW55LmpwZyIgZGF0YS1zcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RoZV90cnVtYW5fc2hvdy0xMzAwOTE1NTctbXNtYWxsLmpwZyIgY2xhc3M9Imxhenlsb2FkIiBhbHQ9IlRoZSBUcnVtYW4gU2hvdyAiPjwvYT4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJtYy1pbmZvLWNvbnRhaW5lciI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWFjdGlvbnMiPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy10aXRsZSI+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTUwNDg4OS5odG1sIiB0aXRsZT0iVGhlIFRydW1hbiBTaG93ICI+VGhlIFRydW1hbiBTaG93IDwvYT4gIDxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVVMucG5nIiBhbHQ9IlVuaXRlZCBTdGF0ZXMiIHRpdGxlPSJVbml0ZWQgU3RhdGVzIj48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibXItcmF0aW5nIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF2Z3JhdC1ib3giPjcuNzwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0Y291bnQtYm94Ij4xMjAsMTM1IDxpIGNsYXNzPSJmYSBmYSBmYS1zaW1wbGUtdXNlci1vLWZhIj48L2k+PC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1kaXJlY3RvciI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1kaXJlY3RvciZzbiZzdGV4dD1QZXRlciUyMFdlaXIiIHRpdGxlPSJQZXRlciBXZWlyIj5QZXRlciBXZWlyPC9hPjwvc3Bhbj48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1jYXN0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SmltJTIwQ2FycmV5IiB0aXRsZT0iSmltIENhcnJleSI+SmltIENhcnJleTwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUxhdXJhJTIwTGlubmV5IiB0aXRsZT0iTGF1cmEgTGlubmV5Ij5MYXVyYSBMaW5uZXk8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Ob2FoJTIwRW1tZXJpY2giIHRpdGxlPSJOb2FoIEVtbWVyaWNoIj5Ob2FoIEVtbWVyaWNoPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9RWQlMjBIYXJyaXMiIHRpdGxlPSJFZCBIYXJyaXMiPkVkIEhhcnJpczwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PU5hdGFzY2hhJTIwTWNFbGhvbmUiIHRpdGxlPSJOYXRhc2NoYSBNY0VsaG9uZSI+TmF0YXNjaGEgTWNFbGhvbmU8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Ib2xsYW5kJTIwVGF5bG9yIiB0aXRsZT0iSG9sbGFuZCBUYXlsb3IiPkhvbGxhbmQgVGF5bG9yPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9UGF1bCUyMEdpYW1hdHRpIiB0aXRsZT0iUGF1bCBHaWFtYXR0aSI+UGF1bCBHaWFtYXR0aTwvYT48L3NwYW4+IC4uLjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJsaXN0cy1ib3giPjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZS1pdCBtdCAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ5ZS13Ij4yMDIwPC9kaXY+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYS1zaGFkb3ctbmIgaXRlbS1zZWFyY2giPiAgICAgICAgICAgICAgICAgICAgDQo8ZGl2IGNsYXNzPSJtb3ZpZS1jYXJkIG1vdmllLWNhcmQtMSIgZGF0YS1tb3ZpZS1pZD0iNDU4NDY0Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYy1wb3N0ZXIiPg0KICAgICAgICA8YSB0aXRsZT0iVHJ1bWFuICZhbXA7IFRlbm5lc3NlZTogQW4gSW50aW1hdGUgQ29udmVyc2F0aW9uICIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNDU4NDY0Lmh0bWwiPjxpbWcgd2lkdGg9IjEwMCIgaGVpZ2h0PSIiIHNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vdHJ1bWFuX3Rlbm5lc3NlZV9hbl9pbnRpbWF0ZV9jb252ZXJzYXRpb24tODA5Nzc2ODQ5LW10aW55LmpwZyIgZGF0YS1zcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RydW1hbl90ZW5uZXNzZWVfYW5faW50aW1hdGVfY29udmVyc2F0aW9uLTgwOTc3Njg0OS1tc21hbGwuanBnIiBjbGFzcz0ibGF6eWxvYWQiIGFsdD0iVHJ1bWFuICZhbXA7IFRlbm5lc3NlZTogQW4gSW50aW1hdGUgQ29udmVyc2F0aW9uICI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNDU4NDY0Lmh0bWwiIHRpdGxlPSJUcnVtYW4gJmFtcDsgVGVubmVzc2VlOiBBbiBJbnRpbWF0ZSBDb252ZXJzYXRpb24gIj5UcnVtYW4gJmFtcDsgVGVubmVzc2VlOiBBbiBJbnRpbWF0ZSBDb252ZXJzYXRpb24gPC9hPiAgPGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VUy5wbmciIGFsdD0iVW5pdGVkIFN0YXRlcyIgdGl0bGU9IlVuaXRlZCBTdGF0ZXMiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtci1yYXRpbmciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXZncmF0LWJveCI+LS08L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWRpcmVjdG9yIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWRpcmVjdG9yJnNuJnN0ZXh0PUxpc2ElMjBJbW1vcmRpbm8lMjBWcmVlbGFuZCIgdGl0bGU9Ikxpc2EgSW1tb3JkaW5vIFZyZWVsYW5kIj5MaXNhIEltbW9yZGlubyBWcmVlbGFuZDwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPkRvY3VtZW50YXJ5PHNwYW4+PC9zcGFuPjwvc3Bhbj4gKFZvaWNlOiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUppbSUyMFBhcnNvbnMiIHRpdGxlPSJKaW0gUGFyc29ucyI+SmltIFBhcnNvbnM8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1aYWNoYXJ5JTIwUXVpbnRvIiB0aXRsZT0iWmFjaGFyeSBRdWludG8iPlphY2hhcnkgUXVpbnRvPC9hPik8L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Imxpc3RzLWJveCI+PC9kaXY+DQo8L2Rpdj4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InllLXciPjIwMTU8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhLXNoYWRvdy1uYiBpdGVtLXNlYXJjaCI+ICAgICAgICAgICAgICAgICAgICANCjxkaXYgY2xhc3M9Im1vdmllLWNhcmQgbW92aWUtY2FyZC0xIiBkYXRhLW1vdmllLWlkPSIxOTMyMzIiPg0KICAgIDxkaXYgY2xhc3M9Im1jLXBvc3RlciI+DQogICAgICAgIDxhIHRpdGxlPSJUcnVtYW4gIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG0xOTMyMzIuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW4tOTg0MTk5NDIwLW10aW55LmpwZyIgZGF0YS1zcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RydW1hbi05ODQxOTk0MjAtbXNtYWxsLmpwZyIgY2xhc3M9Imxhenlsb2FkIiBhbHQ9IlRydW1hbiAiPjwvYT4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJtYy1pbmZvLWNvbnRhaW5lciI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWFjdGlvbnMiPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy10aXRsZSI+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTE5MzIzMi5odG1sIiB0aXRsZT0iVHJ1bWFuICI+VHJ1bWFuIDwvYT4gIDxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvRVMucG5nIiBhbHQ9IlNwYWluIiB0aXRsZT0iU3BhaW4iPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtci1yYXRpbmciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXZncmF0LWJveCI+Ny4wPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRjb3VudC1ib3giPjI2LDU0NiA8aSBjbGFzcz0iZmEgZmEgZmEtc2ltcGxlLXVzZXItby1mYSI+PC9pPjwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtZGlyZWN0b3IiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9ZGlyZWN0b3Imc24mc3RleHQ9Q2VzYyUyMEdheSIgdGl0bGU9IkNlc2MgR2F5Ij5DZXNjIEdheTwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUphdmllciUyMEMlQzMlQTFtYXJhIiB0aXRsZT0iSmF2aWVyIEPDoW1hcmEiPkphdmllciBDw6FtYXJhPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9UmljYXJkbyUyMERhciVDMyVBRG4iIHRpdGxlPSJSaWNhcmRvIERhcsOtbiI+UmljYXJkbyBEYXLDrW48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Eb2xvcmVzJTIwRm9uemkiIHRpdGxlPSJEb2xvcmVzIEZvbnppIj5Eb2xvcmVzIEZvbnppPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9JUMzJTgwbGV4JTIwQnJlbmRlbSVDMyVCQ2hsIiB0aXRsZT0iw4BsZXggQnJlbmRlbcO8aGwiPsOAbGV4IEJyZW5kZW3DvGhsPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SmF2aWVyJTIwR3V0aSVDMyVBOXJyZXoiIHRpdGxlPSJKYXZpZXIgR3V0acOpcnJleiI+SmF2aWVyIEd1dGnDqXJyZXo8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1FZHVhcmQlMjBGZXJuJUMzJUExbmRleiIgdGl0bGU9IkVkdWFyZCBGZXJuw6FuZGV6Ij5FZHVhcmQgRmVybsOhbmRlejwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUVsdmlyYSUyME0lQzMlQURuZ3VleiIgdGl0bGU9IkVsdmlyYSBNw61uZ3VleiI+RWx2aXJhIE3DrW5ndWV6PC9hPjwvc3Bhbj4gLi4uPC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Imxpc3RzLWJveCI+PC9kaXY+DQo8L2Rpdj4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InllLXciPjE5OTU8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZhLXNoYWRvdy1uYiBpdGVtLXNlYXJjaCI+ICAgICAgICAgICAgICAgICAgICANCjxkaXYgY2xhc3M9Im1vdmllLWNhcmQgbW92aWUtY2FyZC0xIiBkYXRhLW1vdmllLWlkPSI3Njk4OTciPg0KICAgIDxkaXYgY2xhc3M9Im1jLXBvc3RlciI+DQogICAgICAgIDxhIHRpdGxlPSJUcnVtYW4gKFRWKSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNzY5ODk3Lmh0bWwiPjxpbWcgd2lkdGg9IjEwMCIgaGVpZ2h0PSIiIHNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vdHJ1bWFuX3R2LTkzOTU0NTk2MC1tdGlueS5qcGciIGRhdGEtc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW5fdHYtOTM5NTQ1OTYwLW1zbWFsbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJUcnVtYW4gKFRWKSI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNzY5ODk3Lmh0bWwiIHRpdGxlPSJUcnVtYW4gKFRWKSI+VHJ1bWFuIChUVik8L2E+ICA8aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL1VTLnBuZyIgYWx0PSJVbml0ZWQgU3RhdGVzIiB0aXRsZT0iVW5pdGVkIFN0YXRlcyI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1yLXJhdGluZyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdmdyYXQtYm94Ij40Ljk8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGNvdW50LWJveCI+MjggPGkgY2xhc3M9ImZhIGZhIGZhLXNpbXBsZS11c2VyLW8tZmEiPjwvaT48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWRpcmVjdG9yIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWRpcmVjdG9yJnNuJnN0ZXh0PUZyYW5rJTIwUGllcnNvbiIgdGl0bGU9IkZyYW5rIFBpZXJzb24iPkZyYW5rIFBpZXJzb248L2E+PC9zcGFuPjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWNhc3QiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1HYXJ5JTIwU2luaXNlIiB0aXRsZT0iR2FyeSBTaW5pc2UiPkdhcnkgU2luaXNlPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9RGlhbmElMjBTY2Fyd2lkIiB0aXRsZT0iRGlhbmEgU2NhcndpZCI+RGlhbmEgU2NhcndpZDwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PVRvbnklMjBHb2xkd3luIiB0aXRsZT0iVG9ueSBHb2xkd3luIj5Ub255IEdvbGR3eW48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1Mb2lzJTIwU21pdGgiIHRpdGxlPSJMb2lzIFNtaXRoIj5Mb2lzIFNtaXRoPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SG9sbWVzJTIwT3Nib3JuZSIgdGl0bGU9IkhvbG1lcyBPc2Jvcm5lIj5Ib2xtZXMgT3Nib3JuZTwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PURhbmllbCUyMFZvbiUyMEJhcmdlbiIgdGl0bGU9IkRhbmllbCBWb24gQmFyZ2VuIj5EYW5pZWwgVm9uIEJhcmdlbjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUFtZWxpYSUyMENhbXBiZWxsIiB0aXRsZT0iQW1lbGlhIENhbXBiZWxsIj5BbWVsaWEgQ2FtcGJlbGw8L2E+PC9zcGFuPiAuLi48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0ibGlzdHMtYm94Ij48L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2UtaXQgbXQgIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ieWUtdyI+MTk5NzwvZGl2Pg0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmEtc2hhZG93LW5iIGl0ZW0tc2VhcmNoIj4gICAgICAgICAgICAgICAgICAgIA0KPGRpdiBjbGFzcz0ibW92aWUtY2FyZCBtb3ZpZS1jYXJkLTEiIGRhdGEtbW92aWUtaWQ9IjkzMTc4NiI+DQogICAgPGRpdiBjbGFzcz0ibWMtcG9zdGVyIj4NCiAgICAgICAgPGEgdGl0bGU9IlRydW1hbiAoQW1lcmljYW4gRXhwZXJpZW5jZSkgIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG05MzE3ODYuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW5fYW1lcmljYW5fZXhwZXJpZW5jZS0yNjUyMTE2OTAtbXRpbnkuanBnIiBkYXRhLXNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vdHJ1bWFuX2FtZXJpY2FuX2V4cGVyaWVuY2UtMjY1MjExNjkwLW1zbWFsbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJUcnVtYW4gKEFtZXJpY2FuIEV4cGVyaWVuY2UpICI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtOTMxNzg2Lmh0bWwiIHRpdGxlPSJUcnVtYW4gKEFtZXJpY2FuIEV4cGVyaWVuY2UpICI+VHJ1bWFuIChBbWVyaWNhbiBFeHBlcmllbmNlKSA8L2E+ICA8aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL1VTLnBuZyIgYWx0PSJVbml0ZWQgU3RhdGVzIiB0aXRsZT0iVW5pdGVkIFN0YXRlcyI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1yLXJhdGluZyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdmdyYXQtYm94Ij4tLTwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtZGlyZWN0b3IiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9ZGlyZWN0b3Imc24mc3RleHQ9RGF2aWQlMjBHcnViaW4iIHRpdGxlPSJEYXZpZCBHcnViaW4iPkRhdmlkIEdydWJpbjwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPkRvY3VtZW50YXJ5PHNwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0ibGlzdHMtYm94Ij48L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2UtaXQgbXQgIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ieWUtdyI+MTk3NjwvZGl2Pg0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmEtc2hhZG93LW5iIGl0ZW0tc2VhcmNoIj4gICAgICAgICAgICAgICAgICAgIA0KPGRpdiBjbGFzcz0ibW92aWUtY2FyZCBtb3ZpZS1jYXJkLTEiIGRhdGEtbW92aWUtaWQ9Ijk3NTU5MiI+DQogICAgPGRpdiBjbGFzcz0ibWMtcG9zdGVyIj4NCiAgICAgICAgPGEgdGl0bGU9IkNvbGxpc2lvbiBDb3Vyc2U6IFRydW1hbiB2cy4gTWFjQXJ0aHVyIChUVikiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTk3NTU5Mi5odG1sIj48aW1nIHdpZHRoPSIxMDAiIGhlaWdodD0iIiBzcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL2NvbGxpc2lvbl9jb3Vyc2VfdHJ1bWFuX3ZzX21hY2FydGh1cl90di0xNzQzNTM4OTMtbXRpbnkuanBnIiBkYXRhLXNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vY29sbGlzaW9uX2NvdXJzZV90cnVtYW5fdnNfbWFjYXJ0aHVyX3R2LTE3NDM1Mzg5My1tc21hbGwuanBnIiBjbGFzcz0ibGF6eWxvYWQiIGFsdD0iQ29sbGlzaW9uIENvdXJzZTogVHJ1bWFuIHZzLiBNYWNBcnRodXIgKFRWKSI+PC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9Im1jLWluZm8tY29udGFpbmVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtYWN0aW9ucyI+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLXRpdGxlIj48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtOTc1NTkyLmh0bWwiIHRpdGxlPSJDb2xsaXNpb24gQ291cnNlOiBUcnVtYW4gdnMuIE1hY0FydGh1ciAoVFYpIj5Db2xsaXNpb24gQ291cnNlOiBUcnVtYW4gdnMuIE1hY0FydGh1ciAoVFYpPC9hPiAgPGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VUy5wbmciIGFsdD0iVW5pdGVkIFN0YXRlcyIgdGl0bGU9IlVuaXRlZCBTdGF0ZXMiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtci1yYXRpbmciPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXZncmF0LWJveCI+LS08L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWRpcmVjdG9yIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWRpcmVjdG9yJnNuJnN0ZXh0PUFudGhvbnklMjBQYWdlIiB0aXRsZT0iQW50aG9ueSBQYWdlIj5BbnRob255IFBhZ2U8L2E+PC9zcGFuPjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWNhc3QiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1IZW5yeSUyMEZvbmRhIiB0aXRsZT0iSGVucnkgRm9uZGEiPkhlbnJ5IEZvbmRhPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9RS5HLiUyME1hcnNoYWxsIiB0aXRsZT0iRS5HLiBNYXJzaGFsbCI+RS5HLiBNYXJzaGFsbDwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUx1Y2lsbGUlMjBCZW5zb24iIHRpdGxlPSJMdWNpbGxlIEJlbnNvbiI+THVjaWxsZSBCZW5zb248L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1MbG95ZCUyMEJvY2huZXIiIHRpdGxlPSJMbG95ZCBCb2NobmVyIj5MbG95ZCBCb2NobmVyPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SXZhbiUyMEJvbmFyIiB0aXRsZT0iSXZhbiBCb25hciI+SXZhbiBCb25hcjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUJhcnQlMjBCdXJucyIgdGl0bGU9IkJhcnQgQnVybnMiPkJhcnQgQnVybnM8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1XYXJkJTIwQ29zdGVsbG8iIHRpdGxlPSJXYXJkIENvc3RlbGxvIj5XYXJkIENvc3RlbGxvPC9hPjwvc3Bhbj4gLi4uPC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Imxpc3RzLWJveCI+PC9kaXY+DQo8L2Rpdj4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlLWl0IG10ICI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ5ZS13Ij4xOTc2PC9kaXY+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYS1zaGFkb3ctbmIgaXRlbS1zZWFyY2giPiAgICAgICAgICAgICAgICAgICAgDQo8ZGl2IGNsYXNzPSJtb3ZpZS1jYXJkIG1vdmllLWNhcmQtMSIgZGF0YS1tb3ZpZS1pZD0iNDE1NjI5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYy1wb3N0ZXIiPg0KICAgICAgICA8YSB0aXRsZT0iSGFycnkgUy4gVHJ1bWFuOiBQbGFpbiBTcGVha2luZyAoVFYpIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG00MTU2MjkuaHRtbCI+PGltZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IiIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS9oYXJyeV9zX3RydW1hbl9wbGFpbl9zcGVha2luZ190di0xMTkyNTE5NjItbXRpbnkuanBnIiBkYXRhLXNyYz0iaHR0cHM6Ly9waWNzLmZpbG1hZmZpbml0eS5jb20vaGFycnlfc190cnVtYW5fcGxhaW5fc3BlYWtpbmdfdHYtMTE5MjUxOTYyLW1zbWFsbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJIYXJyeSBTLiBUcnVtYW46IFBsYWluIFNwZWFraW5nIChUVikiPjwvYT4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJtYy1pbmZvLWNvbnRhaW5lciI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1jLWFjdGlvbnMiPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy10aXRsZSI+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTQxNTYyOS5odG1sIiB0aXRsZT0iSGFycnkgUy4gVHJ1bWFuOiBQbGFpbiBTcGVha2luZyAoVFYpIj5IYXJyeSBTLiBUcnVtYW46IFBsYWluIFNwZWFraW5nIChUVik8L2E+ICA8aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL1VTLnBuZyIgYWx0PSJVbml0ZWQgU3RhdGVzIiB0aXRsZT0iVW5pdGVkIFN0YXRlcyI+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im1yLXJhdGluZyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdmdyYXQtYm94Ij4tLTwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtZGlyZWN0b3IiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9ZGlyZWN0b3Imc24mc3RleHQ9RGFuaWVsJTIwUGV0cmllIiB0aXRsZT0iRGFuaWVsIFBldHJpZSI+RGFuaWVsIFBldHJpZTwvYT48L3NwYW4+PC9kaXY+ICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtY2FzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUVkJTIwRmxhbmRlcnMiIHRpdGxlPSJFZCBGbGFuZGVycyI+RWQgRmxhbmRlcnM8L2E+PC9zcGFuPjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJsaXN0cy1ib3giPjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZS1pdCBtdCAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ5ZS13Ij4xOTY5PC9kaXY+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmYS1zaGFkb3ctbmIgaXRlbS1zZWFyY2giPiAgICAgICAgICAgICAgICAgICAgDQo8ZGl2IGNsYXNzPSJtb3ZpZS1jYXJkIG1vdmllLWNhcmQtMSIgZGF0YS1tb3ZpZS1pZD0iOTQ0MTg0Ij4NCiAgICA8ZGl2IGNsYXNzPSJtYy1wb3N0ZXIiPg0KICAgICAgICA8YSB0aXRsZT0iVHJpbG9neSAiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vZmlsbTk0NDE4NC5odG1sIj48aW1nIHdpZHRoPSIxMDAiIGhlaWdodD0iIiBzcmM9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RydW1hbl9jYXBvdGVfc190cmlsb2d5LTExNjgyMzUzMy1tdGlueS5qcGciIGRhdGEtc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90cnVtYW5fY2Fwb3RlX3NfdHJpbG9neS0xMTY4MjM1MzMtbXNtYWxsLmpwZyIgY2xhc3M9Imxhenlsb2FkIiBhbHQ9IlRyaWxvZ3kgIj48L2E+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0ibWMtaW5mby1jb250YWluZXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibWMtdGl0bGUiPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL2ZpbG05NDQxODQuaHRtbCIgdGl0bGU9IlRyaWxvZ3kgIj5Ucmlsb2d5IDwvYT4gIDxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvVVMucG5nIiBhbHQ9IlVuaXRlZCBTdGF0ZXMiIHRpdGxlPSJVbml0ZWQgU3RhdGVzIj48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibXItcmF0aW5nIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF2Z3JhdC1ib3giPi0tPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1kaXJlY3RvciI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1kaXJlY3RvciZzbiZzdGV4dD1GcmFuayUyMFBlcnJ5IiB0aXRsZT0iRnJhbmsgUGVycnkiPkZyYW5rIFBlcnJ5PC9hPjwvc3Bhbj48L2Rpdj4gICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtYy1jYXN0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9QmV2ZXJseSUyMEJhbGxhcmQiIHRpdGxlPSJCZXZlcmx5IEJhbGxhcmQiPkJldmVybHkgQmFsbGFyZDwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUdlcmFsZGluZSUyMFBhZ2UiIHRpdGxlPSJHZXJhbGRpbmUgUGFnZSI+R2VyYWxkaW5lIFBhZ2U8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1NYXJ0aW4lMjBCYWxzYW0iIHRpdGxlPSJNYXJ0aW4gQmFsc2FtIj5NYXJ0aW4gQmFsc2FtPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9VHJ1bWFuJTIwQ2Fwb3RlIiB0aXRsZT0iVHJ1bWFuIENhcG90ZSI+VHJ1bWFuIENhcG90ZTwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZW4vc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUxhdmluaWElMjBDYXNzZWxzIiB0aXRsZT0iTGF2aW5pYSBDYXNzZWxzIj5MYXZpbmlhIENhc3NlbHM8L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VuL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1KYW5lJTIwQ29ubmVsbCIgdGl0bGU9IkphbmUgQ29ubmVsbCI+SmFuZSBDb25uZWxsPC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9U3VzYW4lMjBEdW5mZWUiIHRpdGxlPSJTdXNhbiBEdW5mZWUiPlN1c2FuIER1bmZlZTwvYT48L3NwYW4+IC4uLjwvZGl2PiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJsaXN0cy1ib3giPjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCg0KPC9kaXY+DQo8L2Rpdj4KCgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLXJpZ2h0LWFkdmVyLXdyYXBwZXIiPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImFkdmVyLXNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgICAgPGRpdiBpZD0ic2MtbXB1LXRvcCIgY2xhc3M9InNjLW1wdS10b3AiPgoKICAgICAgIDxzY3JpcHQ+CgogICAgICAgICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgICAgICBnb29nbGV0YWcuZGlzcGxheSgnc2MtbXB1LXRvcCcpOwoKICAgICAgICAgICAgIH0pOwoKICAgICAgIDwvc2NyaXB0PgoKPC9kaXY+CgoKICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nLXRvcDogNTBweDsgY2xlYXI6IGJvdGg7Ij48ZGl2Pg0KICAgICAgICAgICAgICA8L3RkPg0KICAgIDwvdHI+DQo8L3RhYmxlPg0KPC9kaXY+DQo8ZGl2IGlkPSJicGFuZWwiPg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6IDEwcHgiPg0KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9mYXEucGhwIj5GQVFzPC9hPg0KICAgIHwgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9wcml2YXRlLnBocCIgPlByaXZhY3kgcG9saWN5IC8gdXNlIGNvbmRpdGlvbnM8L2E+DQogICAgfCA8YSBvbmNsaWNrPSJ3aW5kb3cuX190Y2ZhcGkoJ2Rpc3BsYXlDb25zZW50VWknLCAyLCBmdW5jdGlvbigpIHt9ICk7IiBpZD0icHJpdmFjeS1jb25maWctMiIgaHJlZj0iIyI+UHJpdmFjeSBjb25maWd1cmF0aW9uPC9hPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzogMTBweCAycHgiPg0KICAgIDxzcGFuIGNsYXNzPSJzdWJ0ZXh0Ij4mY29weTsgMjAwMi0yMDIwIEZpbG1hZmZpbml0eSAtIE1vdmllYWZmaW5pdHkgfCBGaWxtYWZmaW5pdHkgaXMgYSBtb3ZpZSByZWNvbW1lbmRhdGlvbiBzaXRlIGJhc2VkIG9uIHRoZSBjb25jZXB0IG9mIE1vdmllIFNvdWxtYXRlcy4gPGJyPldlIGFyZSBhbiBpbmRlcGVuZGVudCBtb3ZpZSBsb3ZlcnMgY2x1YiB3b3JsZHdpZGUgd2l0aCA2NDYuMDAwIHVzZXJzICsgMTMzLjAwMC4wMDAgcmF0aW5ncy4gTm90IHJlbGF0ZWQgdG8gYW55IE1lZGlhIG9yIENvcnBvcmF0aW9uLjxicj4gQWxsIFJpZ2h0cyBSZXNlcnZlZCB8IE1vdmllIFNvdWxtYXRlcyYjODQ4MjsgaXMgYSBSZWdpc3RlcmVkIFRyYWRlbWFyazwvc3Bhbj4NCjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQoNCg0KDQoNCgoKCgoKDQo8L2JvZHk+DQo8L2h0bWw+DQo=
62
+ recorded_at: Wed, 14 Oct 2020 19:59:25 GMT
63
+ recorded_with: VCR 6.0.0