filmaffinity 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) 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 +50 -21
  6. data/README.md +3 -2
  7. data/Rakefile +2 -0
  8. data/filmaffinity.gemspec +25 -19
  9. data/lib/constants/constants.rb +52 -47
  10. data/lib/filmaffinity/configuration.rb +1 -0
  11. data/lib/filmaffinity/{json-movie-parser.rb → json_movie_parser.rb} +5 -2
  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 +162 -31
  90. data/.rubocop_todo.yml +0 -48
  91. data/.travis.yml +0 -11
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.filmaffinity.com/es/film504889.html
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
+ - Mon, 12 Oct 2020 21:41:00 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=czuka5aIWByIRDlrkNlH-lJwiPZV7tEs6w-28oiFjL4fNm1iuha_3w2qCN5lEe97wmAYtW9L88P_e1GecJQLv5QeagWUuglfGx3OZ-qah36IRp7_zMnCSj9L9ENQMIIVtgrWKE9p8D6sER38iu5PQrXJ1AdCJkIj;
33
+ expires=Sun, 09-Jul-2023 21:41:00 GMT; Max-Age=86400000; path=/; domain=.filmaffinity.com;
34
+ secure; HttpOnly
35
+ - FSID=u83il4uq148nt988p4ra59eu7qqd8clcoqm25q2ao4puco6cnlkjb8145qf62mnq; path=/;
36
+ domain=.filmaffinity.com; secure; HttpOnly
37
+ - client-data=%7B%22ism%22%3Afalse%2C%22showm%22%3Afalse%2C%22ts%22%3A1602538860%7D;
38
+ expires=Tue, 27-Oct-2020 21:41:00 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
+ Vary:
47
+ - Accept-Encoding
48
+ X-Xss-Protection:
49
+ - 1; mode=block
50
+ Content-Length:
51
+ - '14938'
52
+ Content-Type:
53
+ - text/html; charset=utf-8
54
+ body:
55
+ encoding: ASCII-8BIT
56
+ string: !binary |-
57
+ PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+Cjx0aXRsZT5FbCBzaG93IGRlIFRydW1hbiAoVW5hIHZpZGEgZW4gZGlyZWN0bykgICgxOTk4KSAtIEZpbG1BZmZpbml0eTwvdGl0bGU+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkVsIHNob3cgZGUgVHJ1bWFuIChVbmEgdmlkYSBlbiBkaXJlY3RvKSBlcyB1bmEgcGVsw61jdWxhIGRpcmlnaWRhIHBvciBQZXRlciBXZWlyIGNvbiBKaW0gQ2FycmV5LCBMYXVyYSBMaW5uZXksIE5vYWggRW1tZXJpY2gsIEVkIEhhcnJpcywgTmF0YXNjaGEgTWNFbGhvbmUgLi4uLiBBw7FvOiAxOTk4LiBUw610dWxvIG9yaWdpbmFsOiBUaGUgVHJ1bWFuIFNob3cuIFNpbm9wc2lzOiBUcnVtYW4gQnVyYmFuayBlcyB1biBob21icmUgY29ycmllbnRlIHkgYWxnbyBpbmdlbnVvIHF1ZSBoYSB2aXZpZG8gdG9kYSBzdSB2aWRhIGVuIHVubyBkZSBlc29zIHB1ZWJsb3MgZG9uZGUgbnVuY2EgcGFzYSBuYWRhLiBTaW4gZW1iYXJnbywgZGUgcmVwZW50ZSwgdW5vcyBleHRyYcOxb3Mgc3VjZXNvcyBsZSBoYWNlbiBzb3NwZWNoYXIgcXVlIGFsZ28gLi4uIj4KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iRmlsbUFmZmluaXR5Ij4KPG1ldGEgbmFtZT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5IiA+CjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ2aWRlby5tb3ZpZSIgPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOnNpdGUiIHZhbHVlPSJARmlsbWFmZmluaXR5IiA+CjxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvZmlsbTUwNDg4OS5odG1sIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkVsIHNob3cgZGUgVHJ1bWFuIChVbmEgdmlkYSBlbiBkaXJlY3RvKSAgKDE5OTgpIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkRpcmVjdG9yOiBQZXRlciBXZWlyIHwgUmVwYXJ0bzogSmltIENhcnJleSwgTGF1cmEgTGlubmV5LCBOb2FoIEVtbWVyaWNoLCBFZCBIYXJyaXMgLi4uIHwgR8OpbmVybzogRHJhbWEgfCBTaW5vcHNpczogVHJ1bWFuIEJ1cmJhbmsgZXMgdW4gaG9tYnJlIGNvcnJpZW50ZSB5IGFsZ28gaW5nZW51byBxdWUgaGEgdml2aWRvIHRvZGEgc3UgdmlkYSBlbiB1bm8gZGUgZXNvcyBwdWVibG9zIGRvbmRlIG51bmNhIHBhc2EgbmFkYS4gU2luIGVtYmFyZ28sIGRlIHJlcGVudGUsIHVub3MgZXh0cmHDsW9zIHN1Y2Vzb3MgbGUgaGFjZW4gc29zcGVjaGFyIHF1ZSBhbGdvIC4uLiIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90aGVfdHJ1bWFuX3Nob3ctMTMwMDkxNTU3LW1tZWQuanBnIiAvPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2ZpbG01MDQ4ODkuaHRtbCI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBtZWRpYT0ib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSIgaHJlZj0iaHR0cHM6Ly9tLmZpbG1hZmZpbml0eS5jb20vZXMvbW92aWUucGhwP2lkPTUwNDg4OSI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSIvZmF2aWNvbi5wbmciPgo8bGluayBocmVmPSIvc3R5bGUvZmlsbS4xNTg5NDcwNDAzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9zaGFyZS4xNTM5MDk2MjkxLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9qcXVlcnkvZmEtdWktdGhlbWUvanF1ZXJ5LXVpLm1pbi4xNTM5MDk2MzA2LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9qcXVlcnkvZmEtdWktdGhlbWUvanF1ZXJ5LXVpLnN0cnVjdHVyZS5taW4uMTUzOTA5NjMwNi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvanF1ZXJ5L2ZhLXVpLXRoZW1lL2pxdWVyeS11aS50aGVtZS5taW4uMTUzOTA5NjMwNi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvanF1ZXJ5L2NvbG9yYm94L2NvbG9yYm94LTEuNi4xNTM5MDk2MzA1LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Ii9zdHlsZS9qcXVlcnkvY29sb3Jib3gvY29sb3Jib3gtZmEuMTUzOTA5NjMwNS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvanF1ZXJ5L2pxdm1hcC9qcXZtYXAubWluLjE1NjE0NTA4NjEuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL21haW4zLjE2MDE2NDExNDEuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL21vdmllY2FyZHMzLjE1ODU3MzQzNDMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL2ZhLWF3ZXNvbWUuMTUzOTA5NjI5MS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvZm9udC1hd2Vzb21lLjUuMTEuMS5taW4uMTU3OTE3NDY5MS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvZmEtaWNvbnMuMTU4MjI4ODQ3Ny5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bGluayBocmVmPSIvc3R5bGUvbWFnaWMtY2hlY2subWluLjE1MzkwOTYyOTEuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iL3N0eWxlL3JhdGluZzIuMTUzOTA5NjI5Mi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvbG9jYWxfZXMuMTUzOTA5NjI5My5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvanF1ZXJ5LTMuMS4wLm1pbi4xNTM5MDk2MzAyLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9qcXVlcnktbWlncmF0ZS0xLjQuMS5taW4uMTUzOTA5NjMwMi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvdWkvanF1ZXJ5LXVpLTEuMTIuMS5taW4uMTUzOTA5NjMwOC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvcGx1Z2luL2pxdWVyeS5jb2xvcmJveC0xLjYuMTUzOTA5NjMwOC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9mb3RvLjE1NTI2NTg1NjMuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvY3JjMzIuMTUzOTA5NjI5My5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy90cmFuc2xhdGUtY29udGV4dC4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2xvY2FsZS9mcmllbmRzLXRleHRzLWVzX0VTLjE1NTgwMTI1MjEuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvanF1ZXJ5L3BsdWdpbi9qcXVlcnkuY29va2llLjE1MzkwOTYzMDguanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvanF1ZXJ5L3BsdWdpbi9yYXRpbmctYmFycy4xNTM5MDk2MzA5LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2pxdWVyeS9wbHVnaW4vY2hhcnRqcy9jaGFydC5taW4uMTU2ODM2MzgyNS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvcGx1Z2luL2pxdm1hcC9qcXVlcnkudm1hcC5taW4uMTU2MTQ1MDgzNC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvcGx1Z2luL2pxdm1hcC9qcXVlcnkudm1hcC53b3JsZC4xNTYxNDUwODM2LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2xvY2FsZS90ZXh0cy1lc19FUy4xNjAxOTA3MDcxLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2Fkcy4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL21haW4uMTYwMDcwMjA0Ny5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9wYWdldG9wLjE1ODEzNDQ4MzQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvei1pbmRleC1maXguMTUzOTA5NjI5Mi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9qcXVlcnkvcGx1Z2luL2xhenlzaXplcy9sYXp5c2l6ZXMubWluLjE2MDIwNjgzNzUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvZmEtbGlzdHMtdGlwLjE1MzkwOTYyOTIuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvZmFfcmF0aW5nMi4xNTM5MDk2MjkzLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2pzL2hpZGUtcXQuMTU4NDQ1NjQxMi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy9vbGQtYXV0b2NvbXBsZXRlLjE1ODU2NjczMDcuanMiPjwvc2NyaXB0PgoKPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvZmlsbTUwNDg4OS5odG1sIiBocmVmbGFuZz0iZXMiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lbi9maWxtNTA0ODg5Lmh0bWwiIGhyZWZsYW5nPSJlbiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL214L2ZpbG01MDQ4ODkuaHRtbCIgaHJlZmxhbmc9ImVzLU1YIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vYXIvZmlsbTUwNDg4OS5odG1sIiBocmVmbGFuZz0iZXMtQVIiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9jbC9maWxtNTA0ODg5Lmh0bWwiIGhyZWZsYW5nPSJlcy1DTCI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2NvL2ZpbG01MDQ4ODkuaHRtbCIgaHJlZmxhbmc9ImVzLUNPIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vdXkvZmlsbTUwNDg4OS5odG1sIiBocmVmbGFuZz0iZXMtVVkiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9wZS9maWxtNTA0ODg5Lmh0bWwiIGhyZWZsYW5nPSJlcy1QRSI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VjL2ZpbG01MDQ4ODkuaHRtbCIgaHJlZmxhbmc9ImVzLUVDIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vdmUvZmlsbTUwNDg4OS5odG1sIiBocmVmbGFuZz0iZXMtVkUiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9jci9maWxtNTA0ODg5Lmh0bWwiIGhyZWZsYW5nPSJlcy1DUiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2JvL2ZpbG01MDQ4ODkuaHRtbCIgaHJlZmxhbmc9ImVzLUJPIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vdXMvZmlsbTUwNDg4OS5odG1sIiBocmVmbGFuZz0iZW4tVVMiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS91ay9maWxtNTA0ODg5Lmh0bWwiIGhyZWZsYW5nPSJlbi1HQiI+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2llL2ZpbG01MDQ4ODkuaHRtbCIgaHJlZmxhbmc9ImVuLUlFIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vYXUvZmlsbTUwNDg4OS5odG1sIiBocmVmbGFuZz0iZW4tQVUiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9jYS9maWxtNTA0ODg5Lmh0bWwiIGhyZWZsYW5nPSJlbi1DQSI+CgoKPHNjcmlwdD4KICAgICQoZnVuY3Rpb24oKXsKICAgICAgICBzZXNzUGluZygiMDE1Zjg0Y2Q2Y2Q3NDI4NmQ2ZjIzMmJkNzQ3ZjFlNDEyMjM4YTJmZjllIiwgMjQwMCk7CiAgICAgICAgdmFyIHRjVGV4dHMgPSBUcmFuc2xhdGVDb250ZXh0LmdldEluc3RhbmNlKGNvbW1vblRleHRzSnMpOwogICAgfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IGFzeW5jPSdhc3luYycgc3JjPSdodHRwczovL3NjLWRldmVsLnMzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLXRhZ21hbmFnZXIvc2NfZ3B0X2xzdGFwYy5qcyc+PC9zY3JpcHQ+DQoNCiA8c2NyaXB0Pg0KDQogICAgICAgIHZhciBnb29nbGV0YWcgPSBnb29nbGV0YWcgfHwge307DQoNCiAgICAgICAgZ29vZ2xldGFnLmNtZCA9IGdvb2dsZXRhZy5jbWQgfHwgW107DQoNCiA8L3NjcmlwdD4NCg0KIDxzY3JpcHQgc3JjPSJodHRwczovL3MzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLWRldmVsL1NraW5zL1NNQ1NlcnZpY2UuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc2MtZGV2ZWwvc2MtdGFnbWFuYWdlci9maWxtYWZmaW5pdHkuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnNtYXJ0Y2xpcC1zZXJ2aWNlcy5jb20vdjEvU3RvcmFnZS1hNDgyMzIzL3NtYXJ0Y2xpcC1zZXJ2aWNlcy9IZWFkZXJCaWRkaW5nL2pzL1NtYXJ0Y2xpcENvbmZpZy5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4NCjwhLS0gUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz10cnVlPgooZnVuY3Rpb24oKSB7CiAgdmFyIGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICB2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgdmFyIHVybCA9ICdodHRwczovL3F1YW50Y2FzdC5tZ3IuY29uc2Vuc3Uub3JnJwogICAgLmNvbmNhdCgnL2Nob2ljZS8nLCAnTEJCckYtYmRBdGt1RicsICcvJywgaG9zdCwgJy9jaG9pY2UuanMnKQogIHZhciB1c3BUcmllcyA9IDA7CiAgdmFyIHVzcFRyaWVzTGltaXQgPSAzOwogIGVsZW1lbnQuYXN5bmMgPSB0cnVlOwogIGVsZW1lbnQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogIGVsZW1lbnQuc3JjID0gdXJsOwoKICBmaXJzdFNjcmlwdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBmaXJzdFNjcmlwdCk7CgogIGZ1bmN0aW9uIG1ha2VTdHViKCkgewogICAgdmFyIFRDRl9MT0NBVE9SX05BTUUgPSAnX190Y2ZhcGlMb2NhdG9yJzsKICAgIHZhciBxdWV1ZSA9IFtdOwogICAgdmFyIHdpbiA9IHdpbmRvdzsKICAgIHZhciBjbXBGcmFtZTsKCiAgICBmdW5jdGlvbiBhZGRGcmFtZSgpIHsKICAgICAgdmFyIGRvYyA9IHdpbi5kb2N1bWVudDsKICAgICAgdmFyIG90aGVyQ01QID0gISEod2luLmZyYW1lc1tUQ0ZfTE9DQVRPUl9OQU1FXSk7CgogICAgICBpZiAoIW90aGVyQ01QKSB7CiAgICAgICAgaWYgKGRvYy5ib2R5KSB7CiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwoKICAgICAgICAgIGlmcmFtZS5zdHlsZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6bm9uZSc7CiAgICAgICAgICBpZnJhbWUubmFtZSA9IFRDRl9MT0NBVE9SX05BTUU7CiAgICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzZXRUaW1lb3V0KGFkZEZyYW1lLCA1KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuICFvdGhlckNNUDsKICAgIH0KCiAgICBmdW5jdGlvbiB0Y2ZBUElIYW5kbGVyKCkgewogICAgICB2YXIgZ2RwckFwcGxpZXM7CiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzOwoKICAgICAgaWYgKCFhcmdzLmxlbmd0aCkgewogICAgICAgIHJldHVybiBxdWV1ZTsKICAgICAgfSBlbHNlIGlmIChhcmdzWzBdID09PSAnc2V0R2RwckFwcGxpZXMnKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgYXJncy5sZW5ndGggPiAzICYmCiAgICAgICAgICBhcmdzWzJdID09PSAyICYmCiAgICAgICAgICB0eXBlb2YgYXJnc1szXSA9PT0gJ2Jvb2xlYW4nCiAgICAgICAgKSB7CiAgICAgICAgICBnZHByQXBwbGllcyA9IGFyZ3NbM107CiAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMl0gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgYXJnc1syXSgnc2V0JywgdHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGFyZ3NbMF0gPT09ICdwaW5nJykgewogICAgICAgIHZhciByZXRyID0gewogICAgICAgICAgZ2RwckFwcGxpZXM6IGdkcHJBcHBsaWVzLAogICAgICAgICAgY21wTG9hZGVkOiBmYWxzZSwKICAgICAgICAgIGNtcFN0YXR1czogJ3N0dWInCiAgICAgICAgfTsKCiAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzJdID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICBhcmdzWzJdKHJldHIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBxdWV1ZS5wdXNoKGFyZ3MpOwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIoZXZlbnQpIHsKICAgICAgdmFyIG1zZ0lzU3RyaW5nID0gdHlwZW9mIGV2ZW50LmRhdGEgPT09ICdzdHJpbmcnOwogICAgICB2YXIganNvbiA9IHt9OwoKICAgICAgdHJ5IHsKICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBqc29uID0gZXZlbnQuZGF0YTsKICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge30KCiAgICAgIHZhciBwYXlsb2FkID0ganNvbi5fX3RjZmFwaUNhbGw7CgogICAgICBpZiAocGF5bG9hZCkgewogICAgICAgIHdpbmRvdy5fX3RjZmFwaSgKICAgICAgICAgIHBheWxvYWQuY29tbWFuZCwKICAgICAgICAgIHBheWxvYWQudmVyc2lvbiwKICAgICAgICAgIGZ1bmN0aW9uKHJldFZhbHVlLCBzdWNjZXNzKSB7CiAgICAgICAgICAgIHZhciByZXR1cm5Nc2cgPSB7CiAgICAgICAgICAgICAgX190Y2ZhcGlSZXR1cm46IHsKICAgICAgICAgICAgICAgIHJldHVyblZhbHVlOiByZXRWYWx1ZSwKICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3MsCiAgICAgICAgICAgICAgICBjYWxsSWQ6IHBheWxvYWQuY2FsbElkCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgICAgICByZXR1cm5Nc2cgPSBKU09OLnN0cmluZ2lmeShyZXR1cm5Nc2cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXR1cm5Nc2csICcqJyk7CiAgICAgICAgICB9LAogICAgICAgICAgcGF5bG9hZC5wYXJhbWV0ZXIKICAgICAgICApOwogICAgICB9CiAgICB9CgogICAgd2hpbGUgKHdpbikgewogICAgICB0cnkgewogICAgICAgIGlmICh3aW4uZnJhbWVzW1RDRl9MT0NBVE9SX05BTUVdKSB7CiAgICAgICAgICBjbXBGcmFtZSA9IHdpbjsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoaWdub3JlKSB7fQoKICAgICAgaWYgKHdpbiA9PT0gd2luZG93LnRvcCkgewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIHdpbiA9IHdpbi5wYXJlbnQ7CiAgICB9CiAgICBpZiAoIWNtcEZyYW1lKSB7CiAgICAgIGFkZEZyYW1lKCk7CiAgICAgIHdpbi5fX3RjZmFwaSA9IHRjZkFQSUhhbmRsZXI7CiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIsIGZhbHNlKTsKICAgIH0KICB9OwoKICBtYWtlU3R1YigpOwoKICB2YXIgdXNwU3R1YkZ1bmN0aW9uID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYXJnID0gYXJndW1lbnRzOwogICAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgIT09IHVzcFN0dWJGdW5jdGlvbikgewogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0eXBlb2Ygd2luZG93Ll9fdXNwYXBpICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgd2luZG93Ll9fdXNwYXBpLmFwcGx5KHdpbmRvdy5fX3VzcGFwaSwgYXJnKTsKICAgICAgICB9CiAgICAgIH0sIDUwMCk7CiAgICB9CiAgfTsKCiAgdmFyIGNoZWNrSWZVc3BJc1JlYWR5ID0gZnVuY3Rpb24oKSB7CiAgICB1c3BUcmllcysrOwogICAgaWYgKHdpbmRvdy5fX3VzcGFwaSA9PT0gdXNwU3R1YkZ1bmN0aW9uICYmIHVzcFRyaWVzIDwgdXNwVHJpZXNMaW1pdCkgewogICAgICBjb25zb2xlLndhcm4oJ1VTUCBpcyBub3QgYWNjZXNzaWJsZScpOwogICAgfSBlbHNlIHsKICAgICAgY2xlYXJJbnRlcnZhbCh1c3BJbnRlcnZhbCk7CiAgICB9CiAgfTsKCiAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgPT09ICd1bmRlZmluZWQnKSB7CiAgICB3aW5kb3cuX191c3BhcGkgPSB1c3BTdHViRnVuY3Rpb247CiAgICB2YXIgdXNwSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChjaGVja0lmVXNwSXNSZWFkeSwgNjAwMCk7CiAgfQp9KSgpOwo8L3NjcmlwdD4KPCEtLSBFbmQgUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQ+CiAgdmFyIF9jb21zY29yZSA9IF9jb21zY29yZSB8fCBbXTsKICBfY29tc2NvcmUucHVzaCh7IGMxOiAiMiIsIGMyOiAiMTMxODExMjEiIH0pOwogIChmdW5jdGlvbigpIHsKICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyBzLmFzeW5jID0gdHJ1ZTsKICAgIHMuc3JjID0gKGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID09ICJodHRwczoiID8gImh0dHBzOi8vc2IiIDogImh0dHA6Ly9iIikgKyAiLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9iZWFjb24uanMiOwogICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocywgZWwpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+CiAgPGltZyBzcmM9Imh0dHA6Ly9iLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9wP2MxPTImYzI9MTMxODExMjEmY3Y9Mi4wJmNqPTEiIC8+Cjwvbm9zY3JpcHQ+CjxzY3JpcHQ+JChmdW5jdGlvbigpe3NlbmRwdigiNzJjM2I2NThkNWM3NGI1ZWY3M2UyZjg0ZDllYTUyMGMiKTt9KTs8L3NjcmlwdD4NCjwvaGVhZD4KPGJvZHk+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgIChmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsKICAgICAgICAgIChpW3JdLnE9aVtyXS5xfHxbXSkucHVzaChhcmd1bWVudHMpfSxpW3JdLmw9MSpuZXcgRGF0ZSgpO2E9cy5jcmVhdGVFbGVtZW50KG8pLAogICAgICAgICAgbT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKG8pWzBdO2EuYXN5bmM9MTthLnNyYz1nO20ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxtKQogICAgICAgICAgfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCcvL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMnLCdnYScpOwogICAgICAgICAgZ2EoJ2NyZWF0ZScsICdVQS03NDE1NTUwNC0xJywgJ2F1dG8nKTsKICAgICAgICAgIGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7CiAgICAgICAgPC9zY3JpcHQ+CjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KICAgIDxkaXYgaWQ9ImhlYWRlci10b3AiID4KICAgICAgICA8ZGl2IGNsYXNzPSJjcGFuZWwgdG9wLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGl2IGlkPSJsb2dvLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL21haW4uaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9ImxvZ28iIHNyYz0iL2ltYWdlcy9sb2dvNC5wbmciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28tc2l0ZWxvYyI+RXNwYcOxYTwvZGl2PgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj48IS0tIGxvZ28tY29udGFpbmVyIC0tPgoKICAgICAgICAgICAgPGRpdiBpZD0idG9wc2VhcmNoIj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9zZWFyY2gucGhwIiBtZXRob2Q9ImdldCIgYWNjZXB0LWNoYXJzZXQ9IlVURi04Ij4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9InRvcC1zZWFyY2gtaW5wdXQiIHR5cGU9InRleHQiIG5hbWU9InN0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IiIgdGFiaW5kZXg9IjEiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXRpbWVzIGNsZWFyLXNlYXJjaCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJidXR0b24tc2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJidXR0b24tc2VhcmNoIiB2YWx1ZT0iJm5ic3A7Ij4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkdnNlYXJjaCI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9hZHZzZWFyY2gucGhwIj5Cw7pzcXVlZGEgYXZhbnphZGEgPGkgY2xhc3M9ImZhcyBmYS1hbmdsZS1kb3VibGUtcmlnaHQiPjwvaT48L2E+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PjwhLS0gdG9wc2VhcmNoIC0tPgogICAgICAgICAgICA8ZGl2IGlkPSJ1c2VyLWxvZ2luLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJsb2dpbi1yZWdpc3RlciI+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InNpZ24taW4iIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbG9naW4ucGhwIj48c3Ryb25nPkluaWNpYXIgc2VzacOzbjwvc3Ryb25nPjwvYT4gLyA8YSBjbGFzcz0icmVnaXN0ZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvcmVnaXN0ZXIucGhwIj5SZWdpc3RyYXJzZTwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItbWVudS13ciI+Cjx1bD4KICAgIDxsaT4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3VzZXJyYXRpbmdzLnBocD91c2VyX2lkPSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtcmF0aW5ncy1mYSI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgIE1pcyBWb3RhY2lvbmVzICAgICAgICA8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbXlyZXZpZXdzLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtcmV2aWV3cy1mYSI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgQ3LDrXRpY2FzICAgICAgICA8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbXlsaXN0cy5waHAiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWMtdyI+PGkgY2xhc3M9ImZhIGZhLWxpc3QiPjwvaT48L3NwYW4+CiAgICAgICAgICAgIExpc3RhcyA8c3BhbiBjbGFzcz0ibmJyLXciPk5ldzwvc3Bhbj4KICAgICAgICA8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbXlmcmllbmRzLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEgZmEtZnJpZW5kcy1mYSI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgQW1pZ29zIC8gR3J1cG9zICAgICAgICA8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc291bG1hdGVzLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtc291bG1hdGVzLWZhIj48L2k+PC9zcGFuPgogICAgICAgICAgICBBbG1hcyBnZW1lbGFzICAgICAgICA8L2E+CiAgICA8L2xpPgogICAgPGxpPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc21zcmVjLnBocCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtaGVhcnQiPjwvaT48L3NwYW4+CiAgICAgICAgICAgICAgICBSZWNvbWVuZGFjaW9uZXMgICAgICAgIDwvYT4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9InVzZXItcHJvZi1saW5rIj4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL215ZGF0YS5waHAiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWMtdyI+PGkgY2xhc3M9ImZhIGZhLWFkZHJlc3MtY2FyZC1vIj48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgRGF0b3MgcGVyc29uYWxlcyAgICAgICAgPC9hPgogICAgPC9saT4KICAgICAgICA8bGk+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvdXNlci1mYXYtdGhlYXRlcnMucGhwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpYy13Ij48aSBjbGFzcz0iZmEgZmEtdGlja2V0Ij48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgQ2luZXMgZmF2b3JpdG9zICAgICAgICAgICAgPC9hPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3RvdXJzLnBocCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWMtdyI+PGkgY2xhc3M9ImZhIGZhLXJhdGluZ3MtZmEiPjwvaT48L3NwYW4+CiAgICAgICAgICAgICAgICBWb3RhciBsb3MgdG91cnMgICAgICAgICAgICA8L2E+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9ImxnLW91dC1saSI+CiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJzaWduLW91dCI+CiAgICAgICAgICAgICAgICBDZXJyYXIgc2VzacOzbiAgICAgICAgICAgIDwvYT4KICAgICAgICA8L2xpPgo8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PjwhLS0gdXNlci1sb2dpbiAtY29udGFpbmVyIC0tPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJoZWFkZXItYm90dG9tIiAgPgogICAgICAgIDxkaXYgY2xhc3M9ImNwYW5lbCBuZXdzLXdyYXBwZXIiPgoKPHVsIGlkPSJhd2FyZHNtZW51Ij4KICAgICAgICAgICAgPGxpID48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2NhdGVnb3J5LnBocD9pZD1sYXRlc3RfcmV2aWV3cyI+w5psdC4gY3LDrXRpY2FzPC9hPjwvbGk+PGxpIGNsYXNzPSJzZXAiPnw8L2xpPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvY2F0ZWdvcnkucGhwP2lkPVRSQUlMRVJTIj5UcsOhaWxlcnM8L2E+PC9saT48bGkgY2xhc3M9InNlcCI+fDwvbGk+CiAgICAgICAgICAgIDxsaSA+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy90b3BnZW4ucGhwP2dlbnJlPSZmcm9teWVhcj0mdG95ZWFyPSZjb3VudHJ5PSZub2RvYyI+VG9wIEZBPC9hPjwvbGk+PGxpIGNsYXNzPSJzZXAiPnw8L2xpPgogICAgICAgICAgICA8bGkgPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvYWxsX2F3YXJkcy5waHAiPlByZW1pb3M8L2E+PC9saT48bGkgY2xhc3M9InNlcCI+fDwvbGk+CiAgICAgICAgICAgIDxsaSA+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRlZ29yeS5waHA/aWQ9c2l0Z2VzMjAyMCI+RmVzdGl2YWwgZGUgU2l0Z2VzIDIwMjA8L2E+PC9saT48bGkgY2xhc3M9InNlcCI+fDwvbGk+CjwvdWw+CgoKICAgICAgICAgICAgPGRpdiBpZD0idHJtZW51Ij4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImZiLXRvcC1sb2dvIiBjbGFzcz0ic29jaWFsLWxvZ28iPjxhIHRhcmdldD0iX0JMQU5LIiB0aXRsZT0iU2lndWUgYSBGQSBlbiBGYWNlYm9vayAoMTY1LjAwMCBmb2xsb3dlcnMpIiBocmVmPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9GaWxtYWZmaW5pdHkiPjxpIGNsYXNzPSJmYWIgZmEtZmFjZWJvb2stZiI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InR3LXRvcC1sb2dvIiBjbGFzcz0ic29jaWFsLWxvZ28iPjxhIHRhcmdldD0iX0JMQU5LIiB0aXRsZT0iU2lndWUgYSBGQSBlbiBUd2l0dGVyICg0MC4wMDAgZm9sbG93ZXJzKSIgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL0ZpbG1hZmZpbml0eSI+PGkgY2xhc3M9ImZhYiBmYS10d2l0dGVyIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBpZD0iaW4tdG9wLWxvZ28iIGNsYXNzPSJzb2NpYWwtbG9nbyI+PGEgdGFyZ2V0PSJfQkxBTksiIHRpdGxlPSJTaWd1ZSBhIEZBIGVuIEluc3RhZ2FtICg3MS4wMDAgZm9sbG93ZXJzKSIgaHJlZj0iaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9maWxtYWZmaW5pdHkvIj48aSBjbGFzcz0iZmFiIGZhLWluc3RhZ3JhbSI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24tc2VsZWN0b3IiPgogICAgICAgICAgICA8dWwgY2xhc3M9InZlcnNpb24iPgogICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iZXMiIGNsYXNzPSJmaXhlZCIgdGl0bGU9IkNhbWJpYXIgZGUgdmVyc2nDs24iPkVzcGHDsWEgPGkgY2xhc3M9ImZhcyBmYS1jaGV2cm9uLWRvd24iPjwvaT48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICA8L2Rpdj4KDQogICAgPGRpdiBjbGFzcz0icGFnZS12ZXJzaW9ucy1wb3AgZmEtc2hhZG93Ij4NCiAgICAgICAgPGRpdiBpZD0idm1hcCIgc3R5bGU9IndpZHRoOiA2MzBweDsgaGVpZ2h0OiA0MDBweDsiPjwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb3VudHJ5LW5hbWVzIj4NCiAgICAgICAgICAgIDx1bCBjbGFzcz0iY29udGluZW50cyI+DQogICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLWNvbnRpbmVudD0iYW1lcmljYS1ub3J0aCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPk5vcnRlYW3DqXJpY2EgPGkgY2xhc3M9ImZhcyBmYS1zZWFyY2gtcGx1cyBtYXAtem9vbSI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjb3VudHJpZXMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJ1cyIgZGF0YS1jb3VudHJ5LWlkPSJ1cyI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VUy5wbmciIGFsdD0iRXN0YWRvcyBVbmlkb3MiIHRpdGxlPSJFc3RhZG9zIFVuaWRvcyI+IFVTIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNhIiBkYXRhLWNvdW50cnktaWQ9ImNhIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NBLnBuZyIgYWx0PSJDYW5hZMOhIiB0aXRsZT0iQ2FuYWTDoSI+IENhbmFkw6EgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0ibXgiIGRhdGEtY291bnRyeS1pZD0ibXgiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvTVgucG5nIiBhbHQ9Ik3DqXhpY28iIHRpdGxlPSJNw6l4aWNvIj4gTcOpeGljbyA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtY29udGluZW50PSJldXJvcGUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5FdXJvcGEgPGkgY2xhc3M9ImZhcyBmYS1zZWFyY2gtcGx1cyBtYXAtem9vbSI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjb3VudHJpZXMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJlcyIgZGF0YS1jb3VudHJ5LWlkPSJlcyI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9FUy5wbmciIGFsdD0iRXNwYcOxYSIgdGl0bGU9IkVzcGHDsWEiPiBFc3Bhw7FhIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249InVrIiBkYXRhLWNvdW50cnktaWQ9ImdiIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0dCLnBuZyIgYWx0PSJSZWlubyBVbmlkbyIgdGl0bGU9IlJlaW5vIFVuaWRvIj4gVUsgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iaWUiIGRhdGEtY291bnRyeS1pZD0iaWUiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvSUUucG5nIiBhbHQ9IklybGFuZGEiIHRpdGxlPSJJcmxhbmRhIj4gSXJsYW5kYSA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtY29udGluZW50PSJvY2VhbmlhIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+T2NlYW7DrWEgPGkgY2xhc3M9ImZhcyBmYS1zZWFyY2gtcGx1cyBtYXAtem9vbSI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjb3VudHJpZXMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJhdSIgZGF0YS1jb3VudHJ5LWlkPSJhdSI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9BVS5wbmciIGFsdD0iQXVzdHJhbGlhIiB0aXRsZT0iQXVzdHJhbGlhIj4gQXVzdHJhbGlhIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIDx1bCBjbGFzcz0iY29udGluZW50cyI+DQogICAgICAgICAgICAgICAgPGxpIGRhdGEtY29udGluZW50PSJhbWVyaWNhLXNvdXRoIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5BbcOpcmljYSBkZWwgc3VyIDxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoLXBsdXMgbWFwLXpvb20iPjwvaT4gPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY291bnRyaWVzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJhciIgZGF0YS1jb3VudHJ5LWlkPSJhciI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9BUi5wbmciIGFsdD0iQXJnZW50aW5hIiB0aXRsZT0iQXJnZW50aW5hIj4gQXJnZW50aW5hIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iY2wiIGRhdGEtY291bnRyeS1pZD0iY2wiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvQ0wucG5nIiBhbHQ9IkNoaWxlIiB0aXRsZT0iQ2hpbGUiPiBDaGlsZSA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImNvIiBkYXRhLWNvdW50cnktaWQ9ImNvIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0NPLnBuZyIgYWx0PSJDb2xvbWJpYSIgdGl0bGU9IkNvbG9tYmlhIj4gQ29sb21iaWEgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJ1eSIgZGF0YS1jb3VudHJ5LWlkPSJ1eSI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VWS5wbmciIGFsdD0iVXJ1Z3VheSIgdGl0bGU9IlVydWd1YXkiPiBVcnVndWF5IDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0icGUiIGRhdGEtY291bnRyeS1pZD0icGUiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvUEUucG5nIiBhbHQ9IlBlcsO6IiB0aXRsZT0iUGVyw7oiPiBQZXLDuiA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImVjIiBkYXRhLWNvdW50cnktaWQ9ImVjIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0VDLnBuZyIgYWx0PSJFY3VhZG9yIiB0aXRsZT0iRWN1YWRvciI+IEVjdWFkb3IgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12ZXJzaW9uPSJ2ZSIgZGF0YS1jb3VudHJ5LWlkPSJ2ZSI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9WRS5wbmciIGFsdD0iVmVuZXp1ZWxhIiB0aXRsZT0iVmVuZXp1ZWxhIj4gVmVuZXp1ZWxhIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgZ28tdG8tdmVyc2lvbiI+PC9pPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdmVyc2lvbj0iY3IiIGRhdGEtY291bnRyeS1pZD0iY3IiPjxpbWcgY2xhc3M9Im5mbGFnIiBzcmM9Ii9pbWdzL2NvdW50cmllczIvQ1IucG5nIiBhbHQ9IkNvc3RhIFJpY2EiIHRpdGxlPSJDb3N0YSBSaWNhIj4gQ29zdGEgUmljYSA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0IGdvLXRvLXZlcnNpb24iPjwvaT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXZlcnNpb249ImJvIiBkYXRhLWNvdW50cnktaWQ9ImJvIj48aW1nIGNsYXNzPSJuZmxhZyIgc3JjPSIvaW1ncy9jb3VudHJpZXMyL0JPLnBuZyIgYWx0PSJCb2xpdmlhIiB0aXRsZT0iQm9saXZpYSI+IEJvbGl2aWEgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1yaWdodCBnby10by12ZXJzaW9uIj48L2k+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9mYS1pbnRlcm5hdGlvbmFsLnBocCIgY2xhc3M9Im1vcmUtaW5mbyI+PGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSI+PC9pPiBNw6FzIGluZm9ybWFjacOzbjwvYT4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQogICAgdmFyIG1hcFZlcnNpb25zID0geyJ1cyI6IiMzQzZFOTkiLCJjYSI6IiMzQzZFOTkiLCJteCI6IiMzQzZFOTkiLCJlcyI6IiMzQzZFOTkiLCJnYiI6IiMzQzZFOTkiLCJpZSI6IiMzQzZFOTkiLCJhdSI6IiMzQzZFOTkiLCJhciI6IiMzQzZFOTkiLCJjbCI6IiMzQzZFOTkiLCJjbyI6IiMzQzZFOTkiLCJ1eSI6IiMzQzZFOTkiLCJwZSI6IiMzQzZFOTkiLCJlYyI6IiMzQzZFOTkiLCJ2ZSI6IiMzQzZFOTkiLCJjciI6IiMzQzZFOTkiLCJibyI6IiMzQzZFOTkifTsNCiAgICANCi8qICAvL3BhcmEgc2FjYXIgdHJhemFzIGRlIGNvb3JkZW5hZGFzLg0KICAgIGpRdWVyeSgnI3ZtYXAnKS5vbignZHJhZycsIGZ1bmN0aW9uKGV2ZW50KQ0KICAgIHsNCiAgICAgICAgY29uc29sZS5sb2coanF2bWFwLnRyYW5zWCk7DQogICAgICAgIGNvbnNvbGUubG9nKGpxdm1hcC50cmFuc1kpOw0KICAgICAgICBjb25zb2xlLmxvZyhqcXZtYXAuc2NhbGUpOw0KICAgICAgICBjb25zb2xlLmxvZyhqcXZtYXAuem9vbUN1clN0ZXApOw0KICAgIH0pOw0KKi8gICAgDQogICAgDQoNCjwvc2NyaXB0Pg0KCiAgICA8L2Rpdj4KPC9kaXY+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0iY3BhbmVsIGFkdmVyLXdyYXBwZXIiPgo8ZGl2IGlkPSJ0b3AtYWQiIGNsYXNzPSJhZHZlci1maXgiPgogICAgPGRpdiBpZD0nc2MtdG9wJyBjbGFzcz0ic2MtdG9wIj4KCiAgICAgICAgICAgPHNjcmlwdD4KCiAgICAgICAgICAgICAgICAgIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGdvb2dsZXRhZy5kaXNwbGF5KCdzYy10b3AnKTsKCiAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgIDwvc2NyaXB0PgoKICAgIDwvZGl2PgoKICAgIDwhLS0gc2Mtb29wLS0+CgogICAgPGRpdiBpZD0nc2Mtb29wJyBjbGFzcz0ic2Mtb29wIj4KCiAgICAgICAgICAgPHNjcmlwdD4KCiAgICAgICAgICAgICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xldGFnLmRpc3BsYXkoJ3NjLW9vcCcpOwoKICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgPC9zY3JpcHQ+CgogICAgPC9kaXY+CjwvZGl2PgoNCg0KDQoNCg0KDQoNCg0KPC9kaXY+Cgo8ZGl2IGlkPSJ0b3AtYW5jaCI+CiAgICA8YSB0aXRsZT0iSXIgYXJyaWJhIiBocmVmPSIjaGVhZGVyLXRvcCI+CiAgICAgICAgPGltZyBhbHQ9ImFycm93IiBzcmM9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vaW1hZ2VzL2Fycm93LXVwMi5wbmciPgogICAgPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY3BhbmVsIj4KICA8dGFibGUgaWQ9Im1haW4tY29udGVudC10YWJsZSI+CiAgICA8dHI+CiAgICAgIDx0ZCBpZD0ibXQtbGVmdC1jZWxsIj4KICAgICAgICA8ZGl2IGlkPSJsc21lbnUiPgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5Vc3VhcmlvczwvZGl2Pgo8dWw+CjxsaSA+PGEgY2xhc3M9InJhdGUtdG91cnMiICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3RvdXJzLnBocCI+Vm90YXIgbG9zIHRvdXJzPC9hPjwvbGk+PGxpID48YSBjbGFzcz0ic2lnbi1pbiIgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbG9naW4ucGhwIj5JbmljaWFyIHNlc2nDs248L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3JlZ2lzdGVyLnBocCI+UmVnaXN0cmFyc2U8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5Fc3Bhw7FhPC9kaXY+Cjx1bD4KPGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRfbmV3X3RoX2VzLmh0bWwiPlBlbMOtY3VsYXMgZW4gY2FydGVsZXJhPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jaXR5VGhlYXRlcnMucGhwIj5DaW5lcyBFc3Bhw7FhPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9yZGNhdC5waHA/aWQ9dXBjX3RoX2VzIj5QcsOzeGltb3MgZXN0cmVub3M8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2NhdF9uZXdfc2FfZXMuaHRtbCI+RXN0cmVub3MgQmx1LXJheSB2ZW50YTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvcmRjYXQucGhwP2lkPXVwY19zYV9lcyI+UHLDs3hpbW9zIEJsdS1yYXkgdmVudGE8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2NhdF9uZXdfcmVfZXMuaHRtbCI+WWEgcGFyYSBhbHF1aWxhcjwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvcmRjYXQucGhwP2lkPXVwY19yZV9lcyI+UHLDs3hpbWFtZW50ZSBhbHF1aWxlcjwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvdm9kX2R2ZC5waHAiPlZpZGVvIG9uIERlbWFuZDwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvY2F0X25ld19uZXRmbGl4Lmh0bWwiPk5ldGZsaXg8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3JkY2F0LnBocD9pZD11cGNfbmV0ZmxpeCI+TmV0ZmxpeCAocHLDs3gpPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRfbmV3X21vdmlzdGFyX2YuaHRtbCI+TW92aXN0YXIgKyA8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2NhdF91cGNfbW92aXN0YXJfZi5odG1sIj5Nb3Zpc3RhciArIChwcsOzeCk8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2NhdF9uZXdfaGJvX2VzLmh0bWwiPkhCTzwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvY2F0X25ld19maWxtaW4uaHRtbCI+RmlsbWluPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRfbmV3X3Jha3V0ZW4uaHRtbCI+UmFrdXRlbiBUVjwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvY2F0X25ld19hbWF6b25fZXMuaHRtbCI+QW1hem9uIFByaW1lPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRfZGlzbmV5cGx1cy5odG1sIj5EaXNuZXkrPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRfYXBwbGVfdHZfcGx1cy5odG1sIj5BcHBsZSBUVis8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXQtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibHNtaGVhZGVyIj5VU0EgLSBVSyAtIEZSPC9kaXY+Cjx1bD4KPGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRfbmV3X3RoX3VzLmh0bWwiPkVzdHJlbm9zIFVTQTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvY2F0X25ld190aF91ay5odG1sIj5Fc3RyZW5vcyBSZWlubyBVbmlkbzwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvY2F0X25ld190aF9mci5odG1sIj5Fc3RyZW5vcyBGcmFuY2lhPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+U2VjY2lvbmVzPC9kaXY+Cjx1bD4KPGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9ib3hvZmZpY2UucGhwIj5UYXF1aWxsYTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvdHJhaWxlcnMucGhwIj5UcmFpbGVyczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGF0ZXN0ZXZpZGVvcy5waHAiPsOabHRpbW9zIHRyYWlsZXJzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9sYXRlc3RyZXZpZXdzLnBocCI+w5psdGltYXMgY3LDrXRpY2FzIHVzZXJzPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRlZ29yeS5waHA/aWQ9bGF0ZXN0X3Jldmlld3MiPlF1w6kgZGljZSBsYSBjcsOtdGljYTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvdG9waWNzLnBocCI+UGVsw61jdWxhcyBwb3IgdGVtYXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL21vdmllLWdyb3Vwcy1hbGwucGhwIj5TYWdhcyAmIEZyYW5xdWljaWFzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0iY2F0LWNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImxzbWhlYWRlciI+U2VyaWVzIGRlIFRWPC9kaXY+Cjx1bD4KPGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9jYXRfY3VycmVudF90di5odG1sIj5TZXJpZXMgZGUgYWN0dWFsaWRhZDwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvdG9wZ2VuLnBocD9nZW5yZT1UVl9TRSZjb3VudHJ5PSZmcm9teWVhcj0mdG95ZWFyPSZub2RvYyI+VG9wIHNlcmllczwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvdG91ci5waHA/aWR0b3VyPTI2Ij5Wb3RhIFNlcmllcyBkZSBUVjwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9ImNhdC1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJsc21oZWFkZXIiPlRPUHM8L2Rpdj4KPHVsPgo8bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3RvcGdlbi5waHAiPlRvcCBGaWxtYWZmaW5pdHk8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2Jlc3RfdG9wcy5waHAiPkxvIG1lam9yIGRlbCBUT1A8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3RvcGNhdF9uZXdfdGhfZXMuaHRtbCI+VG9wIEVzdHJlbm9zPC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy90b3BjYXRfbmV3X3NhX2VzLmh0bWwiPlRvcCBFc3RyZW5vcyBCbHUtcmF5PC9hPjwvbGk+PGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0c3JhbmsucGhwIj5SYW5raW5nIGRlIGxpc3RhczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9ImNhdC1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJsc21oZWFkZXIiPlByZW1pb3MgfCBGZXN0aXZhbGVzPC9kaXY+Cjx1bD4KPGxpID48YSAgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9hbGxfYXdhcmRzLnBocCI+UHJlbWlvcyB5IEZlc3RpdmFsZXM8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL29zY2FyX2RhdGEucGhwIj5Ub2RvcyBsb3MgT3NjYXI8L2E+PC9saT48bGkgPjxhICBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2Jlc3RfMjAxOS5waHAiPlJlc3VtZW4gMjAxOTwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9ImNhdC1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJsc21oZWFkZXIiPkluZm9ybWFjacOzbjwvZGl2Pgo8dWw+CjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc2l0ZS1ndWlkZS5waHAiPkFjZXJjYSBkZSBGQTwvYT48L2xpPjxsaSA+PGEgIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvY29udGFjdF91cy5waHAiPkNvbnRhY3RvPC9hPjwvbGk+PC91bD48L2Rpdj4KPC9kaXY+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICA8ZGl2IGlkPSJtdC1jb250ZW50LWNlbGwiPgogICAgICAgICAgICA8ZGl2IGlkPSJzaC1wb3MtYWJzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoLWhlYWRlciIgdGl0bGU9ImNvbXBhcnRpciI+PGkgY2xhc3M9ImZhcyBmYS1zaGFyZS1hbHQiPjwvaT48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICNoaWRkZW4tdXJsIHtwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDY1cHg7IHRvcDogMnB4OyBkaXNwbGF5OiBub25lOyBwYWRkaW5nOiAycHggNnB4IDRweCA2cHg7IGJhY2tncm91bmQ6ICNmZGNjMWE7IG1hcmdpbi10b3A6IDVweDsgd2lkdGg6IDQ4NXB4OyBib3JkZXItcmFkaXVzOiA1cHg7IGFuaW1hdGlvbi1kdXJhdGlvbjogLjNzOyB6LWluZGV4OiAxMDA7fQogICAgI2hpZGRlbi11cmwgaW5wdXR7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IG91dGxpbmU6IG5vbmU7IGJvcmRlcjogMXB4IHNvbGlkICNEREREREQ7IGJvcmRlci1yYWRpdXM6IDVweDsgcGFkZGluZzogOHB4IDRweDsgd2lkdGg6IDQzNXB4OyBtYXJnaW4tbGVmdDogNXB4OyBmb250LWZhbWlseTogbW9ub3NwYWNlO30KICAgICNoaWRkZW4tdXJsIC5oaWRlLXVybCB7Y3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IDIycHg7IG1hcmdpbjogMCA1cHg7IGNvbG9yOiAjMDAwOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO30KICAgICNjb3B5LWNsaXBib2FyZCB7cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMzFweDsgcGFkZGluZzogMnB4IDZweDsgYmFja2dyb3VuZDogI2ZkY2MxYTsgbWFyZ2luLXRvcDogNXB4OyBhbmltYXRpb24tZHVyYXRpb246IC4zczsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyB3aWR0aDogMjAwcHg7IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZy1sZWZ0OiAxNXB4O30KPC9zdHlsZT4KCjxzY3JpcHQ+CgogICAgZnVuY3Rpb24gaGlkZU9uQ2xpY2soICl7CiAgICAgICAgJChkb2N1bWVudCkuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgaWYoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcuaGQtc2gtd3JhcHBlcicpLmxlbmd0aCAmJiAhJChldmVudC50YXJnZXQpLmNsb3Nlc3QoJyNoaWRkZW4tdXJsJykubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBpZigkKCcuaGQtc2gtd3JhcHBlcicpLmlzKCI6dmlzaWJsZSIpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8kKCcuaGlkZGVuLXNoYXJlLXdyYXBwZXInKS5oaWRlKCk7CiAgICAgICAgICAgICAgICAgICAgJCgnLnNoLWhlYWRlcicpLnRyaWdnZXIoJ2NsaWNrJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gICAgICAgIAogICAgICAgIH0pOwogICAgfSAgCiAKICAgICQoZnVuY3Rpb24oKSB7CiAgICAgICAgJCgnLmhkLXNoLXdyYXBwZXInKS5iaW5kKCdhbmltYXRpb25FbmQgb0FuaW1hdGlvbkVuZCBtc0FuaW1hdGlvbkVuZCBtb3pBbmltYXRpb25FbmQgd2Via2l0QW5pbWF0aW9uRW5kJywgZnVuY3Rpb24oZXZlbnQpewogICAgICAgICAgICBpZiggICQoZXZlbnQudGFyZ2V0KS5oYXNDbGFzcygnbmtvb3V0JykgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkKCcuaGQtc2gtd3JhcHBlcicpLmhpZGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgfSk7ICAgICAgICAKCiAgICAgICAgJCgnI3NoLXBvcy1hYnMnKS50b2dnbGUoIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAkKCcuc2gtaGVhZGVyJykuYWRkQ2xhc3MoJ2NsaWNrZWQnKTsKICAgICAgICAgICAgICAgICQoJy5oZC1zaC13cmFwcGVyJykucmVtb3ZlQ2xhc3MoJ25rb291dCcpLmFkZENsYXNzKCdua29pbicpLnNob3coKTsKICAgICAgICAgICAgfSwgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICQoJy5oZC1zaC13cmFwcGVyJykucmVtb3ZlQ2xhc3MoJ25rb2luJykuYWRkQ2xhc3MoJ25rb291dCcpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkKCcubWFpbi1zaCcpLnJlbW92ZUNsYXNzKCdjbGlja2VkJyk7CiAgICAgICAgICAgICAgICBpZiggJCgnI2hpZGRlbi11cmwnKS5pcygiOnZpc2libGUiKSApIHsKICAgICAgICAgICAgICAgICAgICAkKCcjY29weS10by1jbGlwJykuY2xpY2soKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAKICAgICAgICAvL3ZhciBwYXRobmFtZSA9ICdodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tJyArIGxvY2F0aW9uLnBhdGhuYW1lICsgbG9jYXRpb24uc2VhcmNoOwogICAgICAgIHZhciBwYXRobmFtZSA9IGVuY29kZVVSSSgnaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9maWxtNTA0ODg5Lmh0bWwnKTsKICAgICAgICB2YXIgc2xpZGVPcHRpb25zID0geyBkaXJlY3Rpb246ICdsZWZ0JyB9OwoKICAgICAgICAkKCcjY29weS10by1jbGlwJykudG9nZ2xlKAogICAgICAgICAgICBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgJCgnI2hpZGRlbi11cmwnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAkKCcjaGlkZGVuLXVybCcpLmZpbmQoJzppbnB1dCcpLnZhbChwYXRobmFtZSk7CiAgICAgICAgICAgICAgICAgICAgLy8kKCcjaGlkZGVuLXVybCcpLmZpbmQoJzppbnB1dCcpLnNlbGVjdCgpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gJCgnI2hpZGRlbi11cmwnKS5maW5kKCc6aW5wdXQnKS50ZXh0KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgJCgnI2hpZGRlbi11cmwnKS5oaWRlKCk7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNoaWRkZW4tdXJsJykub24oJ2NsaWNrJywgJyNjb3B5LWNsaXBib2FyZCcsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQodGhpcykudGV4dCggJCgnI2NvcHktY2xpcGJvYXJkJykuYXR0cignZGF0YS10ZXh0JykgKTsKICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoIHBhdGhuYW1lICkKICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyggcGF0aG5hbWUgKTsKICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgY29weSB0ZXh0OiAnLCBlcnIpOwogICAgICAgICAgICB9KTsgIAogICAgICAgIH0pCgogICAgICAgICQoJyNoaWRkZW4tdXJsJykuZmluZCgnLmhpZGUtdXJsJykuY2xpY2soZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgJCgnI2NvcHktdG8tY2xpcCcpLnRyaWdnZXIoJ2NsaWNrJykKICAgICAgICB9KTsKCiAgICAgICAgaGlkZU9uQ2xpY2soKTsKICAgIH0pOwo8L3NjcmlwdD4KCjxkaXYgY2xhc3M9ImhkLXNoLW1haW4td3JhcHBlciI+CiAgICA8ZGl2IGNsYXNzPSJoZC1zaC13cmFwcGVyIj4KICAgICAgICA8YSBpZD0iY29weS10by1jbGlwIiB0aXRsZT0iQ29waWEgbGEgVVJMIHBhcmEgY29tcGFydGlyIiBocmVmPSIjIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiIgaWQ9ImNvcHktdG8tY2xpcC1jb250YWluZXIiPjxpIGNsYXNzPSJmYXMgZmEtbGluayI+PC9pPjwvZGl2PgogICAgICAgIDwvYT4KICAgICAgICAgICAgCiAgICAgICAgPGEgY2xhc3M9ImZiLXNoIiB0YXJnZXQ9Il9CTEFOSyIgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci5waHA/dT1odHRwcyUzQSUyRiUyRnd3dy5maWxtYWZmaW5pdHkuY29tJTJGZXMlMkZmaWxtNTA0ODg5Lmh0bWwmdD1FbCBzaG93IGRlIFRydW1hbiAoVW5hIHZpZGEgZW4gZGlyZWN0bykgICgxOTk4KSIgdGl0bGU9IkNvbXBhcnRlIGVuIEZhY2Vib29rIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmUtaWNvbiI+PGkgY2xhc3M9ImZhYiBmYS1mYWNlYm9vay1mIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogICAgCiAgICAgICAgPGEgY2xhc3M9InR3LXNoIiB0YXJnZXQ9Il9CTEFOSyIgdGl0bGU9IkNvbXBhcnRlIGVuIFR3aXR0ZXIiIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9RWwlMjBzaG93JTIwZGUlMjBUcnVtYW4lMjAlMjhVbmElMjB2aWRhJTIwZW4lMjBkaXJlY3RvJTI5JTIwJTIwJTI4MTk5OCUyOSZuYnNwO2VuIEBmaWxtYWZmaW5pdHkgaHR0cHMlM0ElMkYlMkZ3d3cuZmlsbWFmZmluaXR5LmNvbSUyRmVzJTJGZmlsbTUwNDg4OS5odG1sIiB0aXRsZT0iQ29tcGFydGUgZW4gVHdpdHRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYXJlLWljb24iPjxpIGNsYXNzPSJmYWIgZmEtdHdpdHRlciI+PC9pPjwvZGl2PgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0id2gtc2giIHRhcmdldD0iX0JMQU5LIiB0aXRsZT0iQ29tcGFydGUgZW4gV2hhdHNBcHAiIGhyZWY9Imh0dHBzOi8vYXBpLndoYXRzYXBwLmNvbS9zZW5kP3RleHQ9RWwlMjBzaG93JTIwZGUlMjBUcnVtYW4lMjAlMjhVbmElMjB2aWRhJTIwZW4lMjBkaXJlY3RvJTI5JTIwJTIwJTI4MTk5OCUyOSZuYnNwO2VuIEBmaWxtYWZmaW5pdHkgaHR0cHMlM0ElMkYlMkZ3d3cuZmlsbWFmZmluaXR5LmNvbSUyRmVzJTJGZmlsbTUwNDg4OS5odG1sIiB0aXRsZT0iQ29tcGFydGUgZW4gV2hhdHNBcHAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFyZS1pY29uIj48aSBjbGFzcz0iZmFiIGZhLXdoYXRzYXBwIj48L2k+PC9kaXY+CiAgICAgICAgPC9hPgogCjwvZGl2Pgo8L2Rpdj4KCiAgICA8ZGl2IGlkPSJoaWRkZW4tdXJsIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNTUiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMtY2lyY2xlIGhpZGUtdXJsIj48L2k+CiAgICAgICAgPGRpdiBpZD0iY29weS1jbGlwYm9hcmQiIGRhdGEtdGV4dD0iQ29waWFkbyI+SGF6IGNsaWNrIGFxdcOtIHBhcmEgY29waWFyIGxhIFVSTDwvZGl2PgogICAgPC9kaXY+CgoKICAgIAoKCgo8ZGl2IGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvTW92aWUiPgogICAgPGgxIGlkPSJtYWluLXRpdGxlIj4KICAgICAgICA8c3BhbiBpdGVtcHJvcD0ibmFtZSI+RWwgc2hvdyBkZSBUcnVtYW4gKFVuYSB2aWRhIGVuIGRpcmVjdG8pIDwvc3Bhbj4KICAgIDwvaDE+CgoKCgo8c2NyaXB0PgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICAgJCgiI3Nob3ctYWxsLXBybyIpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KXsKICAgICAgICAkKHRoaXMpLnBhcmVudCgnbGknKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOwogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgJCgiLmhpZGRlbiIpLnNsaWRlRG93bignc2xvdycpOwogICAgfSk7CgogICAgJCgiI3Nob3ctYWxsLWF3YXJkcyIpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KXsKICAgICAgICAkKHRoaXMpLnBhcmVudCgnZGl2JykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICQoIi5oaWRkZW4tYXdhcmRzIikuc2xpZGVEb3duKCdzbG93Jyk7CiAgICB9KTsKCiAgICAkKCcuei1tb3ZpZSAuY3JlZGl0cycpLm9uKCdjbGljaycsICcuc2VlLW1vcmUtY3JlZGl0cycgLGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdkaXYnKS5maW5kKCcuaGlkZGVuLWNyZWRpdCcpLmNzcygnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTsKICAgICAgICB2YXIgJGxhc3QgPSAkKHRoaXMpLmNsb3Nlc3QoJ2RpdicpLmZpbmQoJy5uYjpsYXN0IGEnKTsKICAgICAgICBpZiggJGxhc3QubGVuZ3RoID09IDAgKXsKICAgICAgICAgICAgdmFyICRsYXN0ID0gJCh0aGlzKS5jbG9zZXN0KCdkaXYnKS5maW5kKCcubmI6bGFzdCBzcGFuJyk7CiAgICAgICAgfQoKICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ2RpdicpLmZpbmQoJy5uYjpsYXN0JykuaHRtbCgkbGFzdFswXS5vdXRlckhUTUwpOwogICAgICAgICQodGhpcykuY2xvc2VzdCgnZGl2JykuZmluZCgnLnQtcCcpLmhpZGUoKTsKCiAgICAgICAgJCh0aGlzKS5odG1sKCJWZXIgbWVub3MiKS5hZGRDbGFzcygnc2VlLWxlc3MtY3JlZGl0cycpLnJlbW92ZUNsYXNzKCdzZWUtbW9yZS1jcmVkaXRzJyk7CiAgICB9KQoKICAgICQoJy56LW1vdmllIC5jcmVkaXRzJykub24oJ2NsaWNrJywgJy5zZWUtbGVzcy1jcmVkaXRzJyAsIGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdkaXYnKS5maW5kKCcuaGlkZGVuLWNyZWRpdCcpLmNzcygnZGlzcGxheScsICdub25lJyk7CiAgICAgICAgJCh0aGlzKS5odG1sKCJWZXIgdG9kb3MiKS5hZGRDbGFzcygnc2VlLW1vcmUtY3JlZGl0cycpLnJlbW92ZUNsYXNzKCdzZWUtbGVzcy1jcmVkaXRzJyk7CiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdkaXYnKS5maW5kKCcudC1wJykuc2hvdygpOwogICAgfSkKCiAgICAkKCIjY2JveE92ZXJsYXkiKS5vbignY2xpY2snLCBmdW5jdGlvbigpewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwoKICAgICQoJy5zaG93LWFrYXMnKS5vbignY2xpY2snLCBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyIGljb24gPSAkKHRoaXMpLmZpbmQoJ2knKTsKICAgICAgICBpZihpY29uLmhhc0NsYXNzKCdmYS1jYXJldC1kb3duJykpCiAgICAgICAgewogICAgICAgICAgICAkKCcuYWthcycpLnNsaWRlRG93bigpOwogICAgICAgICAgICBpY29uLnJlbW92ZUNsYXNzKCdmYS1jYXJldC1kb3duJykuYWRkQ2xhc3MoJ2ZhLWNhcmV0LXVwJyk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICQoJy5ha2FzJykuc2xpZGVVcCgpOwogICAgICAgICAgICBpY29uLnJlbW92ZUNsYXNzKCdmYS1jYXJldC11cCcpLmFkZENsYXNzKCdmYS1jYXJldC1kb3duJyk7CiAgICAgICAgfQoKICAgIH0pOwp9KTsKPC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIG5ldyBSYXRpbmdCYXJzKCQoJyNyYXQtZGlzcCcpLCBbMTUsNTQsMTAwLDc2LDMxLDgsMywxLDEsMF0pOwogICAgICAgICAgICB9KTsKICAgICAgICA8L3NjcmlwdD4KCjxkaXYgY2xhc3M9InotbW92aWUiPgoKPHNjcmlwdD4NCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQogICAgJCgiI21vcmUtY2F0ZWdvcmllcyIpLmNsaWNrKGZ1bmN0aW9uKGUpew0KICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsNCiAgICAgICAgJCgiLmhpZGRlbi1tZW51IikudG9nZ2xlKCk7DQogICAgfSk7DQoNCiAgICAvL3BhcmEgcG9uZXIgZWwgbGV0cmVyaXRvIGRlIG5vdmVkYWQNCiAgICAvLyQoIi5uZXciKS5hcHBlbmQoJzxkaXYgaWQ9InRvb2x0aXAtbmV3Ij5ub3ZlZGFkPC9kaXY+Jyk7DQp9KTsNCg0KJChkb2N1bWVudCkuY2xpY2soZnVuY3Rpb24oKSB7DQogICAgJCgiLmhpZGRlbi1tZW51IikuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsNCn0pOw0KDQo8L3NjcmlwdD4NCg0KPGRpdiBjbGFzcz0ibWFyZ2luLW50YWJzIj4NCiAgICANCiAgICANCiAgICANCg0KPHVsIGNsYXNzPSJudGFicyI+DQogICAgPGxpIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvZmlsbTUwNDg4OS5odG1sIj5GaWNoYSZuYnNwOzwvYT48L2xpPg0KICAgIDxsaSA+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9yZXZpZXdzLzEvNTA0ODg5Lmh0bWwiPkNyw610aWNhcyZuYnNwOzxlbT5bMjAxXTwvZW0+PC9hPjwvbGk+DQogICAgPGxpID48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2V2aWRlb3MucGhwP21vdmllX2lkPTUwNDg4OSI+VHLDoWlsZXJzJm5ic3A7PGVtPlszXTwvZW0+PC9hPjwvbGk+DQogICAgPGxpID48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2ZpbG1pbWFnZXMucGhwP21vdmllX2lkPTUwNDg4OSI+SW3DoWdlbmVzJm5ic3A7PGVtPlsxNF08L2VtPjwvYT48L2xpPg0KICAgIDxsaSBjbGFzcz0ibmV3Ij48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2J1eW1vdmllLnBocD9tb3ZpZV9pZD01MDQ4ODkiPkRWRC9Wb0QmbmJzcDs8ZW0+WzJdPC9lbT48L2E+PC9saT4NCjwvdWw+DQo8L2Rpdj4NCgogICAgPGRpdiBpZD0icmlnaHQtY29sdW1uIj4KICAgICAgICA8ZGl2IGlkPSJtb3ZpZS1tYWluLWltYWdlLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibGlnaHRib3giIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiIGhyZWY9Imh0dHBzOi8vcGljcy5maWxtYWZmaW5pdHkuY29tL3RoZV90cnVtYW5fc2hvdy0xMzAwOTE1NTctbGFyZ2UuanBnIiB0aXRsZT0iRWwgc2hvdyBkZSBUcnVtYW4gKFVuYSB2aWRhIGVuIGRpcmVjdG8pICIgZGF0YS10PSI8cCBzdHlsZT1mb250LXNpemU6OXB4O2ZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOiM2NjY2NjY7PkVsIGNvcHlyaWdodCBkZSBsYXMgaW3DoWdlbmVzIHBlcnRlbmVjZSBhIHN1cyByZXNwZWN0aXZvcyBhdXRvcmVzIHkvbyBwcm9kdWN0b3Jhcy9kaXN0cmlidWlkb3Jhcy48L3A+IiBkYXRhLW1vdmllLWlkPSI1MDQ4ODkiPgogICAgICAgIDxpbWcgaXRlbXByb3A9ImltYWdlIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjIzOCIgc3JjPSJodHRwczovL3BpY3MuZmlsbWFmZmluaXR5LmNvbS90aGVfdHJ1bWFuX3Nob3ctMTMwMDkxNTU3LW1tZWQuanBnIiBhbHQ9IkVsIHNob3cgZGUgVHJ1bWFuIChVbmEgdmlkYSBlbiBkaXJlY3RvKSAiPiAgICAgICAgPHNwYW4gdGl0bGU9IlZlciB0cmFpbGVyIiBjbGFzcz0ic2VlLXRyYWlsZXIiPjxpIGNsYXNzPSJmYXMgZmEtcGxheS1jaXJjbGUiPjwvaT48L3NwYW4+CiAgICA8L2E+CiAgICAgICAgPC9kaXY+CgoKICAgICAgICA8ZGl2IGlkPSJyYXQtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBpZD0icmF0LWF2Zy1jb3VudCIgaXRlbXByb3A9ImFnZ3JlZ2F0ZVJhdGluZyIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9BZ2dyZWdhdGVSYXRpbmciPgogICAgICAgICAgICAgICAgPGRpdiBpZD0ibW92aWUtcmF0LWltYWdlIj48c3BhbiBpZD0ic3RhcnMiPjxpbWcgc3JjPSIvaW1ncy9yYXRpbmdzLzgucG5nIj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJyYXQtYXZnLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibW92aWUtcmF0LWF2ZyIgaXRlbXByb3A9InJhdGluZ1ZhbHVlIiBjb250ZW50PSI3LjciPgogICAgICAgICAgICAgICAgICAgICAgICA3LDcgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxtZXRhIGl0ZW1wcm9wPSJiZXN0UmF0aW5nIiBjb250ZW50PSIxMCIvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIGl0ZW1wcm9wPSJ3b3JzdFJhdGluZyIgY29udGVudD0iMSIvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIGl0ZW1wcm9wPSJyZXZpZXdDb3VudCIgY29udGVudD0iMjAxIi8+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibW92aWUtY291bnQtcmF0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaXRlbXByb3A9InJhdGluZ0NvdW50IiBjb250ZW50PSIxMjAxMjIiPjEyMC4xMjI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Im1vdmllLWNvdW50LXJhdC10ZXh0Ij52b3RvczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCgogICAgICAgICAgICA8ZGl2IGlkPSJyYXQtZ3JhcGgiPgogICAgICAgICAgICAgICAgPGNhbnZhcyBzdHlsZT0icGFkZGluZzogM3B4OyBiYWNrZ3JvdW5kOiAjZmZmOyBib3JkZXI6IDFweCBzb2xpZCAjQ0REQ0VCIiBoZWlnaHQ9IjgxIiB3aWR0aD0iMTIwIiBpZD0icmF0LWRpc3AiPgogICAgICAgICAgICAgICAgICAgIFBsdWdpbiBubyBzb3BvcnRhZG8gICAgICAgICAgICAgICAgPC9jYW52YXM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBpZD0icmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibW92aWUtcmV2aWV3cy1ib3giPgogICAgICAgICAgICAgICAgICAgICAgICAyMDEgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9yZXZpZXdzLzEvNTA0ODg5Lmh0bWwiPmNyw610aWNhczwvYT4gLSA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3Jldmlld3MyLzEvNTA0ODg5Lmh0bWwiPnBvciB0w610dWxvczwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KICAgIDwvZGl2Pgo8ZGl2IGNsYXNzPSJyYXRlLW1vdmllLWJveCIgZGF0YS1tb3ZpZS1pZD0iNTA0ODg5IiBkYXRhLXVzZXItcmF0aW5nPSIiPg0KICAgIDxkaXYgY2xhc3M9InJhdGUtd3JhcHBlciI+DQogICAgICA8ZGl2IGNsYXNzPSJydC1ib3giPjxhIGNsYXNzPSJzaWduLWluIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2xvZ2luLnBocCI+Vm90YSBlc3RhIHBlbMOtY3VsYTwvYT48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQo8L2Rpdj4NCgoKCgo8ZGl2IGNsYXNzPSJhZGQtbW92aWUtbGlzdC1jb250Ij4KICAgIDxkaXYgY2xhc3M9ImFkZC10ZXh0LWNvbnRlbnQiPgogICAgPGRpdiBjbGFzcz0iYWRkLW1vdmllLWxpc3QtaW5mbyBhZGQtdG8tbGlzdC1idXR0b24iPgo8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2VkdG1vdmllbGlzdHMucGhwP21vdmllX2lkPTUwNDg4OSI+QcOxYWRpciBhIGxpc3RhczwvYT4gICAgPC9kaXY+CiAgICA8L2Rpdj4KCjxkaXYgY2xhc3M9Imxpc3RzLWJveCI+PC9kaXY+Cgo8L2Rpdj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9wcm8tcmV2aWV3cy5waHA/bW92aWUtaWQ9NTA0ODg5Ij4KICAgIDxkaXYgY2xhc3M9ImZpbG0tcmlnaHQtYm94IHByby1yZXZpZXdzLWNoYXJ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+Q3LDrXRpY2FzIHByb2Zlc2lvbmFsZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvLXJldmlld3MtY2hhcnQtd3JhcHBlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3RhbC1hYnMiIHRpdGxlPSIxMiBjcsOtdGljYXMgcHJvZmVzaW9uYWxlcyI+CiAgICAgICAgICAgICAgICAgICAgMTIgPHNtYWxsPjxpIGNsYXNzPSJmYSBmYS1zaW1wbGUtdXNlci1vLWZhIj48L2k+PC9zbWFsbD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGNhbnZhcyBpZD0ibXlDaGFydCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgd2lkdGg6IDcwcHg7IGhlaWdodDogNzBweDsiPjwvY2FudmFzPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZyI+MTE8aSBjbGFzcz0iZmEgZmEtc2ltcGxlLXVzZXItby1mYSI+PC9pPiA8aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSAgcG9zIiB0aXRsZT0idGVuZGVuY2lhIGRlIGxhIGNyw610aWNhOiBwb3NpdGl2YSIgc3R5bGU9ImNvbG9yOiAjNENBRjUwIj48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnIj4xPGkgY2xhc3M9ImZhIGZhLXNpbXBsZS11c2VyLW8tZmEiPjwvaT4gPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUgIG5ldSIgdGl0bGU9InRlbmRlbmNpYSBkZSBsYSBjcsOtdGljYTogbmV1dHJhbCIgc3R5bGU9ImNvbG9yOiAjRkZCRjAwIj48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnIj4wPGkgY2xhc3M9ImZhIGZhLXNpbXBsZS11c2VyLW8tZmEiPjwvaT4gPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUgIG5lZyIgdGl0bGU9InRlbmRlbmNpYSBkZSBsYSBjcsOtdGljYTogbmVnYXRpdmEiIHN0eWxlPSJjb2xvcjogI0Y0NDMzNiI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PjwhLS0gYm9keSAtLT4KICAgIDwvZGl2Pgo8L2E+CjxzY3JpcHQ+CiAgICAgICAgdmFyIHJhbmRvbVNjYWxpbmdGYWN0b3IgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMCk7CiAgICAgICAgfTsKCiAgICB2YXIgY3R4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215Q2hhcnQnKTsKICAgICAgICB2YXIgY29uZmlnID0gewogICAgICAgICAgICB0eXBlOiAnZG91Z2hudXQnLAogICAgICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgICAgICBkYXRhc2V0czogW3sKICAgICAgICAgICAgICAgICAgICBkYXRhOiBbCiAgICAgICAgICAgICAgICAgICAgICAgIDM2OCwKICAgICAgICAgICAgICAgICAgICAgICAgMzIsCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFsKICAgICAgICAgICAgICAgICAgICAgICAgJyMwMDgwMDAnLAogICAgICAgICAgICAgICAgICAgICAgICAnI0ZGQTUwMCcsCiAgICAgICAgICAgICAgICAgICAgICAgICcjRkYwMDAwJywKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRGF0YXNldCAxJwogICAgICAgICAgICAgICAgfV0sCiAgICAgICAgICAgICAgICBsYWJlbHM6IFsKICAgICAgICAgICAgICAgICAgICAnUG9zaXRpdmFzJywKICAgICAgICAgICAgICAgICAgICAnTmV1dHJhcycsCiAgICAgICAgICAgICAgICAgICAgJ05lZ2F0aXZhcycsCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9wdGlvbnM6IHsKICAgICAgICAgICAgICAgIHJlc3BvbnNpdmU6IGZhbHNlLAogICAgICAgICAgICAgICAgbGVnZW5kOiB7CiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmFsc2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgdGl0bGU6IHsKICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmYWxzZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBhbmltYXRpb246IHsKICAgICAgICAgICAgICAgICAgICBhbmltYXRlU2NhbGU6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZVJvdGF0ZTogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGN1dG91dFBlcmNlbnRhZ2U6IDc1LAogICAgICAgICAgICAgICAgdG9vbHRpcHM6IHsKICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgdmFyIG15Q2hhcnQgPSBuZXcgQ2hhcnQoY3R4LCBjb25maWcpOwo8L3NjcmlwdD4KCgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0ibGVmdC1jb2x1bW4iPgogICAgICAgIDxkbCBjbGFzcz0ibW92aWUtaW5mbyI+CiAgICAgICAgICAgIDxkdD5Uw610dWxvIG9yaWdpbmFsPC9kdD4KICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgVGhlIFRydW1hbiBTaG93ICAgICAgICAgICAgIDwvZGQ+CgoKCgogICAgICAgICAgICA8ZHQ+QcOxbzwvZHQ+CiAgICAgICAgICAgIDxkZCBpdGVtcHJvcD0iZGF0ZVB1Ymxpc2hlZCI+MTk5ODwvZGQ+CgogICAgICAgICAgICA8ZHQ+RHVyYWNpw7NuPC9kdD4KICAgICAgICAgICAgPGRkIGl0ZW1wcm9wPSJkdXJhdGlvbiI+MTAzIG1pbi48L2RkPgoKICAgICAgICAgICAgPGR0PlBhw61zPC9kdD4KICAgICAgICAgICAgPGRkPjxzcGFuIGlkPSJjb3VudHJ5LWltZyI+PGltZyBjbGFzcz0ibmZsYWciIHNyYz0iL2ltZ3MvY291bnRyaWVzMi9VUy5wbmciIGFsdD0iRXN0YWRvcyBVbmlkb3MiIHRpdGxlPSJFc3RhZG9zIFVuaWRvcyI+PC9zcGFuPiZuYnNwO0VzdGFkb3MgVW5pZG9zPC9kZD4KICAgICAgICAgICAgPGR0PkRpcmVjY2nDs248L2R0PgogICAgICAgICAgICA8ZGQgY2xhc3M9ImRpcmVjdG9ycyI+CjxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiIgIGl0ZW1wcm9wPSJkaXJlY3RvciIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9QZXJzb24iPjxhIGl0ZW1wcm9wPSJ1cmwiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc2VhcmNoLnBocD9zdHlwZT1kaXJlY3RvciZzbiZzdGV4dD1QZXRlciUyMFdlaXIiIHRpdGxlPSJQZXRlciBXZWlyIj48c3BhbiBpdGVtcHJvcD0ibmFtZSI+UGV0ZXIgV2Vpcjwvc3Bhbj48L2E+PC9zcGFuPjwvZGl2PiAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgIDxkdD5HdWlvbjwvZHQ+CiAgICAgICAgICAgIDxkZD48ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxzcGFuPkFuZHJldyBOaWNjb2w8L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGQ+CiAgICAgICAgICAgIDxkdD5Nw7pzaWNhPC9kdD4KICAgICAgICAgICAgPGRkPjxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiI+PHNwYW4+QnVya2hhcmQgRGFsbHdpdHo8L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGQ+CiAgICAgICAgICAgIDxkdD5Gb3RvZ3JhZsOtYTwvZHQ+CiAgICAgICAgICAgIDxkZD48ZGl2IGNsYXNzPSJjcmVkaXRzIj48c3BhbiBjbGFzcz0ibmIiPjxzcGFuPlBldGVyIEJpemlvdTwvc3Bhbj48L3NwYW4+PC9kaXY+PC9kZD4KICAgICAgICAgICAgPGR0PlJlcGFydG88L2R0PgogICAgICAgICAgICA8ZGQgY2xhc3M9ImNhcmQtY2FzdCI+CjxkaXYgY2xhc3M9ImNyZWRpdHMiPjxzcGFuIGNsYXNzPSJuYiIgIGl0ZW1wcm9wPSJhY3RvciIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9QZXJzb24iPjxhIGl0ZW1wcm9wPSJ1cmwiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUppbSUyMENhcnJleSIgdGl0bGU9IkppbSBDYXJyZXkiPjxzcGFuIGl0ZW1wcm9wPSJuYW1lIj5KaW0gQ2FycmV5PC9zcGFuPjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiICBpdGVtcHJvcD0iYWN0b3IiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvUGVyc29uIj48YSBpdGVtcHJvcD0idXJsIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1MYXVyYSUyMExpbm5leSIgdGl0bGU9IkxhdXJhIExpbm5leSI+PHNwYW4gaXRlbXByb3A9Im5hbWUiPkxhdXJhIExpbm5leTwvc3Bhbj48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIiAgaXRlbXByb3A9ImFjdG9yIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1BlcnNvbiI+PGEgaXRlbXByb3A9InVybCIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9Tm9haCUyMEVtbWVyaWNoIiB0aXRsZT0iTm9haCBFbW1lcmljaCI+PHNwYW4gaXRlbXByb3A9Im5hbWUiPk5vYWggRW1tZXJpY2g8L3NwYW4+PC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiIgIGl0ZW1wcm9wPSJhY3RvciIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9QZXJzb24iPjxhIGl0ZW1wcm9wPSJ1cmwiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUVkJTIwSGFycmlzIiB0aXRsZT0iRWQgSGFycmlzIj48c3BhbiBpdGVtcHJvcD0ibmFtZSI+RWQgSGFycmlzPC9zcGFuPjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiICBpdGVtcHJvcD0iYWN0b3IiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvUGVyc29uIj48YSBpdGVtcHJvcD0idXJsIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1OYXRhc2NoYSUyME1jRWxob25lIiB0aXRsZT0iTmF0YXNjaGEgTWNFbGhvbmUiPjxzcGFuIGl0ZW1wcm9wPSJuYW1lIj5OYXRhc2NoYSBNY0VsaG9uZTwvc3Bhbj48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIiAgaXRlbXByb3A9ImFjdG9yIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1BlcnNvbiI+PGEgaXRlbXByb3A9InVybCIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SG9sbGFuZCUyMFRheWxvciIgdGl0bGU9IkhvbGxhbmQgVGF5bG9yIj48c3BhbiBpdGVtcHJvcD0ibmFtZSI+SG9sbGFuZCBUYXlsb3I8L3NwYW4+PC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiIgIGl0ZW1wcm9wPSJhY3RvciIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9QZXJzb24iPjxhIGl0ZW1wcm9wPSJ1cmwiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PVBhdWwlMjBHaWFtYXR0aSIgdGl0bGU9IlBhdWwgR2lhbWF0dGkiPjxzcGFuIGl0ZW1wcm9wPSJuYW1lIj5QYXVsIEdpYW1hdHRpPC9zcGFuPjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiICBpdGVtcHJvcD0iYWN0b3IiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvUGVyc29uIj48YSBpdGVtcHJvcD0idXJsIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1BZGFtJTIwVG9tZWkiIHRpdGxlPSJBZGFtIFRvbWVpIj48c3BhbiBpdGVtcHJvcD0ibmFtZSI+QWRhbSBUb21laTwvc3Bhbj48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIiAgaXRlbXByb3A9ImFjdG9yIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1BlcnNvbiI+PGEgaXRlbXByb3A9InVybCIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9SGFycnklMjBTaGVhcmVyIiB0aXRsZT0iSGFycnkgU2hlYXJlciI+PHNwYW4gaXRlbXByb3A9Im5hbWUiPkhhcnJ5IFNoZWFyZXI8L3NwYW4+PC9hPiw8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiIgIGl0ZW1wcm9wPSJhY3RvciIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9QZXJzb24iPjxhIGl0ZW1wcm9wPSJ1cmwiIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvc2VhcmNoLnBocD9zdHlwZT1jYXN0JnNuJnN0ZXh0PUJyaWFuJTIwRGVsYXRlIiB0aXRsZT0iQnJpYW4gRGVsYXRlIj48c3BhbiBpdGVtcHJvcD0ibmFtZSI+QnJpYW4gRGVsYXRlPC9zcGFuPjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiICBpdGVtcHJvcD0iYWN0b3IiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvUGVyc29uIj48YSBpdGVtcHJvcD0idXJsIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1QaGlsaXAlMjBCYWtlciUyMEhhbGwiIHRpdGxlPSJQaGlsaXAgQmFrZXIgSGFsbCI+PHNwYW4gaXRlbXByb3A9Im5hbWUiPlBoaWxpcCBCYWtlciBIYWxsPC9zcGFuPjwvYT4sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiICBpdGVtcHJvcD0iYWN0b3IiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvUGVyc29uIj48YSBpdGVtcHJvcD0idXJsIiBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3NlYXJjaC5waHA/c3R5cGU9Y2FzdCZzbiZzdGV4dD1QZXRlciUyMEtyYXVzZSIgdGl0bGU9IlBldGVyIEtyYXVzZSI+PHNwYW4gaXRlbXByb3A9Im5hbWUiPlBldGVyIEtyYXVzZTwvc3Bhbj48L2E+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIiAgaXRlbXByb3A9ImFjdG9yIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1BlcnNvbiI+PGEgaXRlbXByb3A9InVybCIgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9zZWFyY2gucGhwP3N0eXBlPWNhc3Qmc24mc3RleHQ9Ty1MYW4lMjBKb25lcyIgdGl0bGU9Ik8tTGFuIEpvbmVzIj48c3BhbiBpdGVtcHJvcD0ibmFtZSI+Ty1MYW4gSm9uZXM8L3NwYW4+PC9hPjwvc3Bhbj48L2Rpdj4gICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8ZHQ+UHJvZHVjdG9yYTwvZHQ+CiAgICAgICAgICAgIDxkZCBjbGFzcz0iY2FyZC1wcm9kdWNlciI+PGRpdiBjbGFzcz0iY3JlZGl0cyI+PHNwYW4gY2xhc3M9Im5iIj48c3Bhbj5QYXJhbW91bnQgUGljdHVyZXM8L3NwYW4+LDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj48c3Bhbj5TY290dCBSdWRpbiBQcm9kdWN0aW9uczwvc3Bhbj48L3NwYW4+PC9kaXY+PC9kZD4KCiAgICAgICAgICAgIDxkdD5Hw6luZXJvPC9kdD4KICAgICAgICAgICAgPGRkIGNsYXNzPSJjYXJkLWdlbnJlcyI+CiAgICAgICAgICAgICAgICA8c3BhbiBpdGVtcHJvcD0iZ2VucmUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbW92aWVnZW5yZS5waHA/Z2VucmU9RFImYXR0cj1yYXRfY291bnQmbm9kb2MiPkRyYW1hPC9hPjwvc3Bhbj4uICAgICAgICAgICAgICAgICA8c3BhbiBpdGVtcHJvcD0iZ2VucmUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbW92aWVnZW5yZS5waHA/Z2VucmU9Q08mYXR0cj1yYXRfY291bnQmbm9kb2MiPkNvbWVkaWE8L2E+PC9zcGFuPiB8ICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL21vdmlldG9waWMucGhwP3RvcGljPTg5OTc3NiZhdHRyPXJhdF9jb3VudCZub2RvYyI+Q29tZWRpYSBkcmFtw6F0aWNhPC9hPi4gICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbW92aWV0b3BpYy5waHA/dG9waWM9MzMzNjkyJmF0dHI9cmF0X2NvdW50Jm5vZG9jIj5Tw6F0aXJhPC9hPi4gICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbW92aWV0b3BpYy5waHA/dG9waWM9MTYyMDE3JmF0dHI9cmF0X2NvdW50Jm5vZG9jIj5UZWxldmlzacOzbjwvYT4uICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL21vdmlldG9waWMucGhwP3RvcGljPTQzNjQ0NyZhdHRyPXJhdF9jb3VudCZub2RvYyI+UGVsw61jdWxhIGRlIGN1bHRvPC9hPiAgICAgICAgICAgIDwvZGQ+CgoKICAgICAgICA8ZHQ+U2lub3BzaXM8L2R0PgogICAgICAgIDxkZCBjbGFzcz0iIiBpdGVtcHJvcD0iZGVzY3JpcHRpb24iPlRydW1hbiBCdXJiYW5rIGVzIHVuIGhvbWJyZSBjb3JyaWVudGUgeSBhbGdvIGluZ2VudW8gcXVlIGhhIHZpdmlkbyB0b2RhIHN1IHZpZGEgZW4gdW5vIGRlIGVzb3MgcHVlYmxvcyBkb25kZSBudW5jYSBwYXNhIG5hZGEuIFNpbiBlbWJhcmdvLCBkZSByZXBlbnRlLCB1bm9zIGV4dHJhw7FvcyBzdWNlc29zIGxlIGhhY2VuIHNvc3BlY2hhciBxdWUgYWxnbyBhbm9ybWFsIGVzdMOhIG9jdXJyaWVuZG8uIFRvZG9zIHN1cyBhbWlnb3Mgc29uIGFjdG9yZXMsIHRvZGEgc3UgY2l1ZGFkIGVzIHVuIHBsYXTDsywgdG9kYSBzdSB2aWRhIGVzdMOhIHNpZW5kbyBmaWxtYWRhIHkgZW1pdGlkYSBjb21vIGVsIHJlYWxpdHkgbcOhcyBhbWJpY2lvc28gZGUgbGEgaGlzdG9yaWEuIChGSUxNQUZGSU5JVFkpPC9kZD4KICAgIDwvZGw+CiAgICA8ZGwgY2xhc3M9Im1hcmdpbi10b3AgbW92aWUtaW5mbyI+CiAgICAgICAgPGR0PlByZW1pb3M8L2R0PgogICAgICAgIDxkZCBjbGFzcz0iYXdhcmQiPgogICAgICAgIDxkaXYgIGNsYXNzPSJtYXJnaW4tYm90dG9tIj48YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2F3YXJkcy5waHA/YXdhcmRfaWQ9YWNhZGVteV9hd2FyZHMmeWVhcj0xOTk5Ij4xOTk4PC9hPjogMyBub21pbmFjaW9uZXMgYWwgT3NjYXI6IE1lam9yIGRpcmVjdG9yLCBhY3RvciBzZWN1bmRhcmlvIChFZCBIYXJyaXMpLCBndWnDs248L2Rpdj4KICAgICAgICA8ZGl2ICBjbGFzcz0ibWFyZ2luLWJvdHRvbSI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvYXdhcmRzLnBocD9hd2FyZF9pZD1nb2xkZW5nbG9iZXMmeWVhcj0xOTk5Ij4xOTk4PC9hPjogMyBHbG9ib3MgZGUgT3JvOiBhY3RvciBkcmFtYSAoQ2FycmV5KSwgYWN0b3Igc2VjdW5kYXJpbyB5IG3DunNpY2EuIDYgbm9taW5hY2lvbmVzPC9kaXY+CiAgICAgICAgPGRpdiAgY2xhc3M9Im1hcmdpbi1ib3R0b20iPgo8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2F3YXJkcy5waHA/YXdhcmRfaWQ9YmFmdGEmeWVhcj0xOTk5Ij4xOTk4PC9hPjogMyBwcmVtaW9zIEJBRlRBOiBNZWpvciBkaXJlY3RvciwgZGlzZcOxbyBkZSBwcm9kdWNjacOzbiB5IGd1acOzbiBvcmlnaW5hbC4gNyBub20uPC9kaXY+CiAgICAgICAgPGRpdiAgY2xhc3M9Im1hcmdpbi1ib3R0b20iPgo8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2F3YXJkcy5waHA/YXdhcmRfaWQ9bmJyJnllYXI9MTk5OCI+MTk5ODwvYT46IE5hdGlvbmFsIEJvYXJkIG9mIFJldmlldzogQWN0b3Igc2VjdW5kYXJpbyAoRWQgSGFycmlzKTwvZGl2PgogICAgICAgIDxkaXYgIGNsYXNzPSJtYXJnaW4tYm90dG9tIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9hd2FyZHMucGhwP2F3YXJkX2lkPWxhZmNhJnllYXI9MTk5OCI+MTk5ODwvYT46IEFzb2NpYWNpw7NuIGRlIENyw610aWNvcyBkZSBMb3MgQW5nZWxlczogTm9taW5hZGEgTWVqb3IgZGlzZcOxbyBkZSBwcm9kdWNjacOzbjwvZGl2PgogICAgICAgIDxkaXYgIGNsYXNzPSJtYXJnaW4tYm90dG9tIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9hd2FyZHMucGhwP2F3YXJkX2lkPWNyaXRpY3NfY2hvaWNlX2F3YXJkcyZ5ZWFyPTE5OTgiPjE5OTg8L2E+OiBDcml0aWNzJyBDaG9pY2UgQXdhcmRzOiBOb21pbmFkYSBhIE1lam9yIHBlbMOtY3VsYTwvZGl2PgogICAgICAgIDxkaXY+PHNwYW4gaWQ9InNob3ctYWxsLWF3YXJkcyI+PGEgaHJlZj0iIyI+TW9zdHJhciA0IHByZW1pb3MgbcOhczwvYT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1jaGV2cm9uLWRvd24gc3RyaXAtZG93biI+PC9pPjwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoaWRkZW4tYXdhcmRzIG1hcmdpbi1ib3R0b20iIGNsYXNzPSJtYXJnaW4tYm90dG9tIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9hd2FyZHMucGhwP2F3YXJkX2lkPWNmY2EmeWVhcj0xOTk4Ij4xOTk4PC9hPjogQXNvY2lhY2nDs24gZGUgQ3LDrXRpY29zIGRlIENoaWNhZ286IE1lam9yIGJhbmRhIHNvbm9yYS4gNSBub21pbmFjaW9uZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoaWRkZW4tYXdhcmRzIG1hcmdpbi1ib3R0b20iIGNsYXNzPSJtYXJnaW4tYm90dG9tIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9hd2FyZHMucGhwP2F3YXJkX2lkPXBnYSZ5ZWFyPTE5OTkiPjE5OTg8L2E+OiBTaW5kaWNhdG8gZGUgUHJvZHVjdG9yZXMgKFBHQSk6IE5vbWluYWRhIGEgTWVqb3IgcGVsw61jdWxhPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGlkZGVuLWF3YXJkcyBtYXJnaW4tYm90dG9tIiBjbGFzcz0ibWFyZ2luLWJvdHRvbSI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvYXdhcmRzLnBocD9hd2FyZF9pZD1kZ2EmeWVhcj0xOTk5Ij4xOTk4PC9hPjogU2luZGljYXRvIGRlIERpcmVjdG9yZXMgKERHQSk6IE5vbWluYWRhIGEgTWVqb3IgZGlyZWN0b3I8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoaWRkZW4tYXdhcmRzIG1hcmdpbi1ib3R0b20iIGNsYXNzPSJtYXJnaW4tYm90dG9tIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9hd2FyZHMucGhwP2F3YXJkX2lkPXdnYSZ5ZWFyPTE5OTkiPjE5OTg8L2E+OiBTaW5kaWNhdG8gZGUgR3Vpb25pc3RhcyAoV0dBKTogTm9taW5hZGEgYSBNZWpvciBndWnDs24gb3JpZ2luYWw8L2Rpdj4KICAgICAgICA8L2RkPgogICAgPC9kbD4KCiAgICA8ZGwgY2xhc3M9Im1hcmdpbi10b3AgbW92aWUtaW5mbyI+CiAgICAgICAgPGR0PkNyw610aWNhczwvZHQ+CiAgICAgICAgPGRkPgogICAgICAgICAgICA8dWwgaWQ9InByby1yZXZpZXdzIj4KICAgICAgICAgICA8bGkgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvLXJldmlldyIgaXRlbXByb3A9InJldmlldyIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9SZXZpZXciPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGl0ZW1wcm9wPSJyZXZpZXdCb2R5Ij4mcXVvdDtNdXkgZGUgdmV6IGVuIGN1YW5kbywgc2UgZGEgZWwgbWlsYWdybyBkZSBxdWUgYSB1biBndWlvbmlzdGEgZGUgcmF6YSBzZSBsZSBvY3VycmEgdW4gYXJndW1lbnRvIGluc8OzbGl0bywgY2FlIGVuIG1hbm9zIGRlIHVuIGRpcmVjdG9yIGRlIGFsdHVyYSB5IGxvcyBlc3BlY3RhZG9yZXMgcG9kZW1vcyBkaXNmcnV0YXIgZGUgbG8gbnVuY2EgdmlzdG8geSBvaWRvJnF1b3Q7PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm8tY3JpdC1tZWQiIGl0ZW1wcm9wPSJhdXRob3IiPkNhcmxvcyBCb3llcm86IERpYXJpbyBFbCBNdW5kbyA8aSBhbHQ9InRlbmRlbmNpYSBkZSBsYSBjcsOtdGljYTogcG9zaXRpdmEiIHRpdGxlPSJ0ZW5kZW5jaWEgZGUgbGEgY3LDrXRpY2E6IHBvc2l0aXZhIiBjbGFzcz0iZmFzIGZhLWNpcmNsZSAgcG9zIj48L2k+PC9kaXY+CgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgIDxsaSA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm8tcmV2aWV3IiBpdGVtcHJvcD0icmV2aWV3IiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1JldmlldyI+CgogICAgICAgICAgICAgICAgICAgIDxhIHRpdGxlPSJMZWVyIGNyw610aWNhIGNvbXBsZXRhIiBocmVmPSJodHRwOi8vZWxwYWlzLmNvbS9kaWFyaW8vMTk5OC8wOS8wNy9jdWx0dXJhLzkwNTExOTIwOF84NTAyMTUuaHRtbCIgdGFyZ2V0PSJfQkxBTksiID4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGl0ZW1wcm9wPSJyZXZpZXdCb2R5Ij4mcXVvdDtEZXNjb25jZXJ0YW50ZSB5IHBlcnR1cmJhZG9yYSBwZWzDrWN1bGEgKC4uLikgdW4gbWF6YXpvIG1vbm9sw610aWNvLCBjb21wYWN0bywgdmlnb3Jvc28geSBkZSBncmFuIGVmaWNhY2lhJnF1b3Q7Jm5ic3A7PGkgY2xhc3M9J2ZhcyBmYS1leHRlcm5hbC1saW5rLWFsdCc+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByby1jcml0LW1lZCIgaXRlbXByb3A9ImF1dGhvciI+w4FuZ2VsIEZlcm7DoW5kZXogU2FudG9zOiBEaWFyaW8gRWwgUGHDrXMgPGkgYWx0PSJ0ZW5kZW5jaWEgZGUgbGEgY3LDrXRpY2E6IHBvc2l0aXZhIiB0aXRsZT0idGVuZGVuY2lhIGRlIGxhIGNyw610aWNhOiBwb3NpdGl2YSIgY2xhc3M9ImZhcyBmYS1jaXJjbGUgIHBvcyI+PC9pPjwvZGl2PgoKCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICA8bGkgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvLXJldmlldyIgaXRlbXByb3A9InJldmlldyIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9SZXZpZXciPgoKICAgICAgICAgICAgICAgICAgICA8YSB0aXRsZT0iTGVlciBjcsOtdGljYSBjb21wbGV0YSIgaHJlZj0iaHR0cHM6Ly93d3cucm9nZXJlYmVydC5jb20vcmV2aWV3cy90aGUtdHJ1bWFuLXNob3ctMTk5OCIgdGFyZ2V0PSJfQkxBTksiID4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGl0ZW1wcm9wPSJyZXZpZXdCb2R5Ij4mcXVvdDtMYXMgaWRlYXMgcXVlIHN1YnlhY2VuIGVuIGVsIHRyYXNmb25kbyBkZSBlc3RhIG9icmEgbGEgY29udmllcnRlbiBlbiBhbGdvIG3DoXMgcXVlIHVuIHNpbXBsZSBlbnRyZXRlbmltaWVudG8gKC4uLikgRXMgdW5hIHJlZmxleGnDs24gc29icmUgbG9zIG51ZXZvcyB2YWxvcmVzIHF1ZSBsYSB0ZWNub2xvZ8OtYSB0cmFlIGltcGzDrWNpdG9zIHBhcmEgbGEgaHVtYW5pZGFkICjigKYpIFB1bnR1YWNpw7NuOiAmIzk3MzM7JiM5NzMzOyYjOTczMzsmIzk3MzM7IChzb2JyZSA0KSZxdW90OyZuYnNwOzxpIGNsYXNzPSdmYXMgZmEtZXh0ZXJuYWwtbGluay1hbHQnPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm8tY3JpdC1tZWQiIGl0ZW1wcm9wPSJhdXRob3IiPlJvZ2VyIEViZXJ0OiByb2dlcmViZXJ0LmNvbSA8aSBhbHQ9InRlbmRlbmNpYSBkZSBsYSBjcsOtdGljYTogcG9zaXRpdmEiIHRpdGxlPSJ0ZW5kZW5jaWEgZGUgbGEgY3LDrXRpY2E6IHBvc2l0aXZhIiBjbGFzcz0iZmFzIGZhLWNpcmNsZSAgcG9zIj48L2k+PC9kaXY+CgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgIDxsaSA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm8tcmV2aWV3IiBpdGVtcHJvcD0icmV2aWV3IiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1JldmlldyI+CgogICAgICAgICAgICAgICAgICAgIDxhIHRpdGxlPSJMZWVyIGNyw610aWNhIGNvbXBsZXRhIiBocmVmPSJodHRwczovL3d3dy50aGVndWFyZGlhbi5jb20vZmlsbS8xOTk4L29jdC8wOS8xIiB0YXJnZXQ9Il9CTEFOSyIgPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaXRlbXByb3A9InJldmlld0JvZHkiPiZxdW90O0FsZ3VuYXMgdmVjZXMsIGF1bnF1ZSBubyBjb24gbGEgc3VmaWNpZW50ZSBmcmVjdWVuY2lhLCB1bmEgcGVsw61jdWxhIGRlIEhvbGx5d29vZCBsb2dyYSBwZXJzdWFkaXIgYSBsb3MgZXNwZWN0YWRvcmVzIGRlIHF1ZSByZWZsZXhpb25lbiBzb2JyZSBlbCBtdW5kbyBlbiBlbCBxdWUgdml2ZW4geSBkZSBjw7NtbyDDqXNvIGxlcyBhZmVjdGEgZW4gc3UgdmlkYSBwZXJzb25hbC4mcXVvdDsmbmJzcDs8aSBjbGFzcz0nZmFzIGZhLWV4dGVybmFsLWxpbmstYWx0Jz48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9hPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvLWNyaXQtbWVkIiBpdGVtcHJvcD0iYXV0aG9yIj5SaWNoYXJkIFdpbGxpYW1zOiBUaGUgR3VhcmRpYW4gPGkgYWx0PSJ0ZW5kZW5jaWEgZGUgbGEgY3LDrXRpY2E6IHBvc2l0aXZhIiB0aXRsZT0idGVuZGVuY2lhIGRlIGxhIGNyw610aWNhOiBwb3NpdGl2YSIgY2xhc3M9ImZhcyBmYS1jaXJjbGUgIHBvcyI+PC9pPjwvZGl2PgoKCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICA8bGkgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvLXJldmlldyIgaXRlbXByb3A9InJldmlldyIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9SZXZpZXciPgoKICAgICAgICAgICAgICAgICAgICA8YSB0aXRsZT0iTGVlciBjcsOtdGljYSBjb21wbGV0YSIgaHJlZj0iaHR0cHM6Ly93d3cuZW1waXJlb25saW5lLmNvbS9tb3ZpZXMvZW1waXJlLWVzc2F5LXRydW1hbi1zaG93L3Jldmlldy8iIHRhcmdldD0iX0JMQU5LIiA+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpdGVtcHJvcD0icmV2aWV3Qm9keSI+JnF1b3Q7VmFsaWVudGUgeSBjb24gY29uc2NpZW5jaWEgcHJvcGlhLiBBdGFjYSBzaW4gY29udGVtcGxhY2lvbmVzIGEgbG9zIG1lZGlvcyBkZSBjb211bmljYWNpw7NuIHkgYSBzdSBuZWNlc2lkYWQgZGUgY29udHJvbGFyIHkgZXRpcXVldGFyIHRvZG8gbG8gcXVlIHN1Y2VkZSBlbiBsYSB2aWRhIHJlYWwgKOKApikgUHVudHVhY2nDs246ICYjOTczMzsmIzk3MzM7JiM5NzMzOyYjOTczMzsmIzk3MzM7IChzb2JyZSA1KSZxdW90OyZuYnNwOzxpIGNsYXNzPSdmYXMgZmEtZXh0ZXJuYWwtbGluay1hbHQnPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm8tY3JpdC1tZWQiIGl0ZW1wcm9wPSJhdXRob3IiPkFkYW0gU21pdGg6IEVtcGlyZSA8aSBhbHQ9InRlbmRlbmNpYSBkZSBsYSBjcsOtdGljYTogcG9zaXRpdmEiIHRpdGxlPSJ0ZW5kZW5jaWEgZGUgbGEgY3LDrXRpY2E6IHBvc2l0aXZhIiBjbGFzcz0iZmFzIGZhLWNpcmNsZSAgcG9zIj48L2k+PC9kaXY+CgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgIDxsaSA+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm8tcmV2aWV3IiBpdGVtcHJvcD0icmV2aWV3IiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1JldmlldyI+CgogICAgICAgICAgICAgICAgICAgIDxhIHRpdGxlPSJMZWVyIGNyw610aWNhIGNvbXBsZXRhIiBocmVmPSJodHRwOi8vYXJ0aWNsZXMuY2hpY2Fnb3RyaWJ1bmUuY29tLzE5OTgtMDYtMDUvZW50ZXJ0YWlubWVudC85ODA2MDUwMDk4XzFfdHJ1bWFuLWJ1cmJhbmstdHJ1bWFuLXNob3ctc2VhaGF2ZW4iIHRhcmdldD0iX0JMQU5LIiA+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpdGVtcHJvcD0icmV2aWV3Qm9keSI+JnF1b3Q7RXMgYSBsYSB2ZXogc8OhdGlyYSwgY29tZWRpYSB5IGZhbnRhc8OtYSBzb2JyZSBlbCBmdXR1cm8gZGUgbGEgVFYgeSBkZSBjw7NtbyBsYSBnZW50ZSBzZSB2ZXLDoSBhdHJhcGFkYSBlbiBsYXMgcmVkZXMgZGUgbGEgb21uaXByZXNlbnRlIHRlY25vbG9nw61hICjigKYpIFB1bnR1YWNpw7NuOiAmIzk3MzM7JiM5NzMzOyYjOTczMzsmIzk3MzM7IChzb2JyZSA0KSZxdW90OyZuYnNwOzxpIGNsYXNzPSdmYXMgZmEtZXh0ZXJuYWwtbGluay1hbHQnPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm8tY3JpdC1tZWQiIGl0ZW1wcm9wPSJhdXRob3IiPk1pY2hhZWwgV2lsbWluZ3RvbjogQ2hpY2FnbyBUcmlidW5lIDxpIGFsdD0idGVuZGVuY2lhIGRlIGxhIGNyw610aWNhOiBwb3NpdGl2YSIgdGl0bGU9InRlbmRlbmNpYSBkZSBsYSBjcsOtdGljYTogcG9zaXRpdmEiIGNsYXNzPSJmYXMgZmEtY2lyY2xlICBwb3MiPjwvaT48L2Rpdj4KCgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgPGxpID4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByby1yZXZpZXciIGl0ZW1wcm9wPSJyZXZpZXciIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvUmV2aWV3Ij4KCiAgICAgICAgICAgICAgICAgICAgPGEgdGl0bGU9IkxlZXIgY3LDrXRpY2EgY29tcGxldGEiIGhyZWY9Imh0dHA6Ly9jb21tdW5pdHkuc2VhdHRsZXRpbWVzLm53c291cmNlLmNvbS9hcmNoaXZlLz9kYXRlPTE5OTgwNjA1JnNsdWc9Mjc1NDQ4OCIgdGFyZ2V0PSJfQkxBTksiID4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGl0ZW1wcm9wPSJyZXZpZXdCb2R5Ij4mcXVvdDtVbmEgZGUgZXNhcyBwZWzDrWN1bGFzIHF1ZSBzZSBxdWVkYSBlbiBsYSBtZW1vcmlhIGR1cmFudGUgbXVjaG8gdGllbXBvLCB5IGRlIGxhcyBwb2NhcyBxdWUgc29uIGNhcGFjZXMgZGUgY2FtYmlhciBudWVzdHJhIGZvcm1hIGRlIGVudGVuZGVyIGxhIHZpZGEgeSBlbCBtdW5kby4mcXVvdDsmbmJzcDs8aSBjbGFzcz0nZmFzIGZhLWV4dGVybmFsLWxpbmstYWx0Jz48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9hPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvLWNyaXQtbWVkIiBpdGVtcHJvcD0iYXV0aG9yIj5Ub20gS2VvZ2g6IFNlYXR0bGUgVGltZXMgPGkgYWx0PSJ0ZW5kZW5jaWEgZGUgbGEgY3LDrXRpY2E6IHBvc2l0aXZhIiB0aXRsZT0idGVuZGVuY2lhIGRlIGxhIGNyw610aWNhOiBwb3NpdGl2YSIgY2xhc3M9ImZhcyBmYS1jaXJjbGUgIHBvcyI+PC9pPjwvZGl2PgoKCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGVtPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvcHJvLXJldmlld3MucGhwP21vdmllLWlkPTUwNDg4OSI+TW9zdHJhciA1IGNyw610aWNhcyBtw6FzIDxpIGNsYXNzPSJmYXMgZmEtY2hldnJvbi1yaWdodCBzdHJpcC1kb3duIj48L2k+PC9hPjwvZW0+PC9saT4KCiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kZD4KICAgIDwvZGw+CgogICAgICAgIDxkbCBjbGFzcz0ibWFyZ2luLXRvcCBtb3ZpZS1pbmZvIj4KICAgICAgICAgICAgPGEgbmFtZT0ibXlyZXZpZXciPjwvYT4KICAgICAgICAgICAgPGR0IGlkPSJteXJldmlld3QiPlR1IGNyw610aWNhPC9kdD4KICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmdpbi1ib3R0b20gYWRkLXJldmlldy13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmV2dGV4dCIgZGF0YS1tb3ZpZS1pZD0iNTA0ODg5IiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+RXNjcmliZSB0dSBvcGluacOzbiBwYXJhIHF1ZSBlbCByZXN0byBkZSBsb3MgdXN1YXJpb3MgbGEgcHVlZGEgbGVlci48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvYWRkcmV2aWV3LnBocD9tb3ZpZV9pZD01MDQ4ODkiPjxzbWFsbD5Bw7FhZGUgdHUgY3LDrXRpY2E8L3NtYWxsPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgPC9kbD4KCgogICAgPGRsIGNsYXNzPSJtYXJnaW4tdG9wIG1vdmllLWluZm8iPgogICAgICAgIDxkdCBzdHlsZT0icGFkZGluZy1ib3R0b206IDUwcHg7Ij5Wb3RhY2lvbmVzIGRlIGFsbWFzIGdlbWVsYXM8L2R0PgogICAgICAgIDxkZCBzdHlsZT0icGFkZGluZy1ib3R0b206IDUwcHg7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFyZ2luLWJvdHRvbSIgaWQ9InNtLW0tcmF0Ij4KICAgICAgICAgICAgICAgIA0KICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvcmVnaXN0ZXIucGhwIj5SZWfDrXN0cmF0ZTwvYT4geSBwb2Ryw6FzIGFjY2VkZXIgYSByZWNvbWVuZGFjaW9uZXMgcGVyc29uYWxpemFkYXMgc2Vnw7puIHR1cyBndXN0b3MgZGUgY2luZSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGQ+CgogICAgICAgIDxkdD5Wb3RhY2lvbmVzIGRlIHR1cyBhbWlnb3M8L2R0PgogICAgICAgIDxkZD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFyZ2luLWJvdHRvbSIgaWQ9ImZyLW0tcmF0Ij4KICAgICAgICAgICAgICAgIDxkaXY+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9yZWdpc3Rlci5waHAiPlJlZ8Otc3RyYXRlPC9hPiB5IHBvZHLDoXMgYWNjZWRlciBhIHRvZGFzIGxhcyB2b3RhY2lvbmVzIGRlIHR1cyBhbWlnb3MsIGZhbWlsaWFyZXMsIGV0Yy48L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGQ+CiAgICA8L2RsPgoKICAgIDxzY3JpcHQ+CiAgICAgICAgJChmdW5jdGlvbigpewogICAgICAgICAgICAkKCcjbGlzdC10b3AtcmFuayAuc2hvdy1hbGwgYScpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICQoJyNsaXN0LXRvcC1yYW5rIC5zaG93LWFsbCcpLmhpZGUoKTsKICAgICAgICAgICAgICAgJCgnI2xpc3QtdG9wLXJhbmsgbGknKS5zaG93KCk7CiAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkKCcjbGlzdC10b3AtcmFuayBsaScpLmVhY2goZnVuY3Rpb24oaW5keCwgdmFsdWUpewogICAgICAgICAgICAgICAgJCh2YWx1ZSkuYXR0cigndGl0bGUnLCAkKHZhbHVlKS5maW5kKCdlbScpLnRleHQoKS5tYXRjaCgvXGQrLykgKyAnIGFwYXJpY2lvbmVzIGVuIGVzdGEgbGlzdGEnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KICAgIDxkbCBjbGFzcz0ibWFyZ2luLXRvcCBtb3ZpZS1pbmZvIj4KICAgICAgICA8ZHQ+UG9zaWNpw7NuIHJhbmtpbmdzIGxpc3RhczwvZHQ+CiAgICAgICAgPGRkIGlkPSJsaXN0LXRvcC1yYW5rIiBjbGFzcz0ibm8tcGFkZGluZyI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSA+PHN0cm9uZz4xMjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2xpc3R0b3Btb3ZpZXMucGhwP2xpc3RfaWQ9NTE5Ij5QZWzDrWN1bGFzIGluZnJhdmFsb3JhZGFzPC9hPiA8ZW0+KDExMyk8L2VtPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgPjxzdHJvbmc+MTU8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0dG9wbW92aWVzLnBocD9saXN0X2lkPTUwMCI+UGVsw61jdWxhcyBhcGFyZW50ZW1lbnRlIG5vcm1hbGVzIHF1ZSB0aWVuZW4gYWxnbyBlc3BlY2lhbCBwYXJhIG3DrTwvYT4gPGVtPigxMDcpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48c3Ryb25nPjE2PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGlzdHRvcG1vdmllcy5waHA/bGlzdF9pZD04MzAiPlBlbMOtY3VsYXMgY29uIGVsIHBvc3RlciBtw6FzIG9yaWdpbmFsL2N1cmlvc28gZGUgbGEgaGlzdG9yaWEgZGVsIGNpbmU8L2E+IDxlbT4oNyk8L2VtPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgPjxzdHJvbmc+MTk8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0dG9wbW92aWVzLnBocD9saXN0X2lkPTUwOSI+TWlzIHBlbMOtY3VsYXMgcHJlZmVyaWRhcyBkZSBsb3MgOTA8L2E+IDxlbT4oMzA4KTwvZW0+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSA+PHN0cm9uZz4yMTwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2xpc3R0b3Btb3ZpZXMucGhwP2xpc3RfaWQ9NTMwIj5QZWzDrWN1bGFzIGNvbiBtZWpvciBndWnDs248L2E+IDxlbT4oOTYpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48c3Ryb25nPjI3PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGlzdHRvcG1vdmllcy5waHA/bGlzdF9pZD01MTciPlBlbMOtY3VsYXMgcXVlIG1lIGd1c3Rhcm9uIG3DoXMgbGEgMsKqIHZleiBxdWUgbGFzIHZpPC9hPiA8ZW0+KDM2KTwvZW0+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSA+PHN0cm9uZz4zNDwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2xpc3R0b3Btb3ZpZXMucGhwP2xpc3RfaWQ9MzAwIj5NaXMgZHJhbWFzIGZhdm9yaXRvczwvYT4gPGVtPigyNjcpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48c3Ryb25nPjM4PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGlzdHRvcG1vdmllcy5waHA/bGlzdF9pZD02MDAiPlBlbMOtY3VsYXMgY29uIG1lam9yZXMgZmluYWxlczwvYT4gPGVtPigyMDQpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpID48c3Ryb25nPjQ0PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGlzdHRvcG1vdmllcy5waHA/bGlzdF9pZD01MjYiPlBlbMOtY3VsYXMgY29uIHVuYSBpbnRlcnByZXRhY2nDs24gbWFzY3VsaW5hIGlub2x2aWRhYmxlPC9hPiA8ZW0+KDg3KTwvZW0+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSA+PHN0cm9uZz41MTwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2xpc3R0b3Btb3ZpZXMucGhwP2xpc3RfaWQ9ODAwIj5QZWzDrWN1bGFzIGNvbiBtZWpvciBwb3N0ZXIgb3JpZ2luYWwgZGUgbGEgaGlzdG9yaWEgZGVsIGNpbmUgKE1pcyBwb3N0ZXJzIGZhdm9yaXRvcyk8L2E+IDxlbT4oMjkpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxzdHJvbmc+NTI8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0dG9wbW92aWVzLnBocD9saXN0X2lkPTg5MCI+UGVsw61jdWxhcyBxdWUgbWUgZW5jYW50YW4geSBxdWUgbm8gZ3VzdGFuIGEgdG9kb3M8L2E+IDxlbT4oMTApPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxzdHJvbmc+NjE8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0dG9wbW92aWVzLnBocD9saXN0X2lkPTMwMSI+TWlzIGNvbWVkaWFzIHByZWZlcmlkYXM8L2E+IDxlbT4oMjAzKTwvZW0+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0iZGlzcGxheTpub25lIj48c3Ryb25nPjYzPC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGlzdHRvcG1vdmllcy5waHA/bGlzdF9pZD02MjAiPlBlbMOtY3VsYXMgcXVlIG3DoXMgbWUgaGFuIGVtb2Npb25hZG88L2E+IDxlbT4oNjMpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxzdHJvbmc+Njk8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0dG9wbW92aWVzLnBocD9saXN0X2lkPTEwMCI+TWlzIHBlbMOtY3VsYXMgZmF2b3JpdGFzPC9hPiA8ZW0+KDI5MTgpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxzdHJvbmc+NzE8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0dG9wbW92aWVzLnBocD9saXN0X2lkPTcwMCI+UGVsw61jdWxhcyBxdWUgbcOhcyB2ZWNlcyBoZSB2aXN0bzwvYT4gPGVtPigxMDcpPC9lbT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxzdHJvbmc+NzE8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmlsbWFmZmluaXR5LmNvbS9lcy9saXN0dG9wbW92aWVzLnBocD9saXN0X2lkPTg4MCI+U2kgbm8gdGUgZ3VzdGFuIGVzdGFzIHBlbMOtY3VsYXMgYSBtw60gbmkgbWUgaGFibGVzPC9hPiA8ZW0+KDIxKTwvZW0+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0iZGlzcGxheTpub25lIj48c3Ryb25nPjgxPC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGlzdHRvcG1vdmllcy5waHA/bGlzdF9pZD0yMDIiPlBlbMOtY3VsYXMgcXVlIHF1aWVybyB0ZW5lci9jb21wcmFyPC9hPiA8ZW0+KDEwNik8L2VtPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PHN0cm9uZz44NTwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2xpc3R0b3Btb3ZpZXMucGhwP2xpc3RfaWQ9NTExIj5NaXMgcGVsw61jdWxhcyAmcXVvdDtwYXJhIHRvZGEgbGEgZmFtaWxpYSZxdW90OyBwcmVmZXJpZGFzPC9hPiA8ZW0+KDIwKTwvZW0+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0iZGlzcGxheTpub25lIj48c3Ryb25nPjkwPC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvbGlzdHRvcG1vdmllcy5waHA/bGlzdF9pZD0zNjUiPkxhcyBwZWzDrWN1bGFzIG3DoXMgcmFyYXMgcXVlIGhlIHZpc3RvPC9hPiA8ZW0+KDQyKTwvZW0+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvdy1hbGwiPjxhIGhyZWY9IiMiPk1vc3RyYXIgbGFzIDE5IGxpc3RhczwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RkPgogICAgPC9kbD4KCiAgICA8ZGl2IGNsYXNzPSJtb3ZpZS1kaXNjbGFpbWVyIiBzdHlsZT0ibWFyZ2luLXRvcDogNjBweDsgIj4KCgoKICAgICAgICA8cD5TaSBhbGd1bmEgc2lub3BzaXMgY3VlbnRhIGRlbWFzaWFkb3MgZGV0YWxsZXMgZGVsIGFyZ3VtZW50byAtbyBwYXJhIGNvcnJlZ2lyIGVycm9yZXMgbyBjb21wbGV0YXIgZGF0b3MgZGUgbGEgZmljaGEgbyBmZWNoYSBkZSBlc3RyZW5vLSBwdWVkZXMgbWFuZGFybm9zIHVuIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZpbG1hZmZpbml0eS5jb20vZXMvaW1zZW5kbXNnLnBocD90bz05ODU0NjIiPm1lbnNhamU8L2E+LiBTaSBubyBlc3TDoXMgcmVnaXN0cmFkQCBwdWVkZXMgY29udGFjdGFybm9zIHbDrWEgVHdpdHRlciwgRkIgbyBwb3IgZW1haWwgYSBpbmZvIC1hcnJvYmEtIGZpbG1hZmZpbml0eSAtcHVudG8tIGNvbS4NCjxwPkxvcyBkZXJlY2hvcyBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgZGUgbGFzIGNyw610aWNhcyBjb3JyZXNwb25kZW4gYSBsb3MgY29ycmVzcG9uZGllbnRlcyBjcsOtdGljb3MgeS9vIG1lZGlvcyBkZSBjb211bmljYWNpw7NuIGRlIGxvcyBxdWUgaGFuIHNpZG8gZXh0cmHDrWRvcy4gRmlsbWFmZmluaXR5IG5vIHRpZW5lIHJlbGFjacOzbiBhbGd1bmEgY29uIGVsIHByb2R1Y3RvciwgcHJvZHVjdG9yYSBvIGVsIGRpcmVjdG9yIGRlIGxhIHBlbMOtY3VsYS4gRWwgY29weXJpZ2h0IGRlbCBwb3N0ZXIsIGNhcsOhdHVsYSwgZm90b2dyYW1hcywgZm90b2dyYWbDrWFzIGUgaW3DoWdlbmVzIGRlIGNhZGEgRFZELCBWT0QsIEJsdS1yYXksIHRyw6FpbGVyIHkgYmFuZGEgc29ub3JhIG9yaWdpbmFsIChCU08pIHBlcnRlbmVjZW4gYSBsYXMgY29ycmVzcG9uZGllbnRlcyBwcm9kdWN0b3JhcyB5L28gZGlzdHJpYnVpZG9yYXMuPC9wPgogICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwvZGl2PgogICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmctdG9wOiA1MHB4OyBjbGVhcjogYm90aDsiPjxkaXY+DQogICAgICAgICAgICAgIDwvdGQ+DQogICAgPC90cj4NCjwvdGFibGU+DQo8L2Rpdj4NCjxkaXYgaWQ9ImJwYW5lbCI+DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzogMTBweCI+DQogICAgICA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL2ZhcS5waHAiPlByZWd1bnRhcyBtw6FzIGZyZWN1ZW50ZXM8L2E+DQogICAgfCA8YSBocmVmPSJodHRwczovL3d3dy5maWxtYWZmaW5pdHkuY29tL2VzL3ByaXZhdGUucGhwIiA+UG9sw610aWNhIGRlIHByaXZhY2lkYWQgLyBjb25kaWNpb25lcyBkZSB1c288L2E+DQogICAgfCA8YSBvbmNsaWNrPSJ3aW5kb3cuX190Y2ZhcGkoJ2Rpc3BsYXlDb25zZW50VWknLCAyLCBmdW5jdGlvbigpIHt9ICk7IiBpZD0icHJpdmFjeS1jb25maWctMiIgaHJlZj0iIyI+Q29uZmlndXJhY2nDs24gZGUgcHJpdmFjaWRhZDwvYT4NCiAgICB8IDxhIGhyZWY9Imh0dHBzOi8vbS5maWxtYWZmaW5pdHkuY29tL2VzL21vdmllLnBocD9pZD01MDQ4ODkiPjxzdHJvbmc+SXIgYSBWZXJzacOzbiBNw5NWSUw8L3N0cm9uZz48L2E+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOiAxMHB4IDJweCI+DQogICAgPHNwYW4gY2xhc3M9InN1YnRleHQiPsKpIDIwMDItMjAyMCBGaWxtYWZmaW5pdHkgLSBNb3ZpZWFmZmluaXR5IHwgRmlsbWFmZmluaXR5IGVzIHVuYSBww6FnaW5hIGRlIHJlY29tZW5kYWNpw7NuIGRlIHBlbMOtY3VsYXMgeSBzZXJpZXMsIHkgZXMgdW4gbWVkaW8gdG90YWxtZW50ZSBpbmRlcGVuZGllbnRlIGN1eWEgcHJpbmNpcGFsIHByaW9yaWRhZCBlcyBsYSBwcml2YWNpZGFkIHkgc2VndXJpZGFkIGRlIGxvcyBkYXRvcyBkZSBzdXMgdXN1YXJpb3MuPGJyPkFsbCBSaWdodHMgUmVzZXJ2ZWQgLSBUb2RvcyBsb3MgZGVyZWNob3MgcmVzZXJ2YWRvczwvc3Bhbj4NCjwvZGl2Pg0KPC9kaXY+DQoNCg0KDQoNCg0KDQoNCgoKCgoKDQo8L2JvZHk+DQo8L2h0bWw+DQo=
58
+ recorded_at: Mon, 12 Oct 2020 21:41:00 GMT
59
+ 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:52:53 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=9ZL7614217JS9FRf_P74oGlJDmXeKcLrHcWlGx4v9QEjlcVovh0H4kFRdGAkONg3qfsiuZpgNImBZU6v5Gz2eFzj-y1g5MgQZSiFQh-6x5e1iAChepZFVweSlTJaWx1al7Ci0Jym1g24tqDskPkLnuaRl6GE7kJg;
33
+ expires=Tue, 11-Jul-2023 19:52:53 GMT; Max-Age=86400000; path=/; domain=.filmaffinity.com;
34
+ secure; HttpOnly
35
+ - FSID=i9ec2itol8k65ese1o2g5qsn0d8tto15d1ankrr7a8vj9gv7o630mloh91kdl5dg; path=/;
36
+ domain=.filmaffinity.com; secure; HttpOnly
37
+ - client-data=%7B%22ism%22%3Afalse%2C%22showm%22%3Afalse%2C%22ts%22%3A1602705173%7D;
38
+ expires=Thu, 29-Oct-2020 19:52:53 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:52:53 GMT
48
+ Etag:
49
+ - '"4d9b0e60a5a929cfd53153bb15716b3d-gzip"'
50
+ Vary:
51
+ - Accept-Encoding
52
+ X-Xss-Protection:
53
+ - 1; mode=block
54
+ Content-Length:
55
+ - '10132'
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+CgoKPHNjcmlwdD4KICAgICQoZnVuY3Rpb24oKXsKICAgICAgICBzZXNzUGluZygiMDE1Zjg3NTcxNTQwNDhkM2NkYTM0MTljNGRmMDdiZTIyNGE4MzljNGI1IiwgMjQwMCk7CiAgICAgICAgdmFyIHRjVGV4dHMgPSBUcmFuc2xhdGVDb250ZXh0LmdldEluc3RhbmNlKGNvbW1vblRleHRzSnMpOwogICAgfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IGFzeW5jPSdhc3luYycgc3JjPSdodHRwczovL3NjLWRldmVsLnMzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLXRhZ21hbmFnZXIvc2NfZ3B0X2xzdGFwYy5qcyc+PC9zY3JpcHQ+DQoNCiA8c2NyaXB0Pg0KDQogICAgICAgIHZhciBnb29nbGV0YWcgPSBnb29nbGV0YWcgfHwge307DQoNCiAgICAgICAgZ29vZ2xldGFnLmNtZCA9IGdvb2dsZXRhZy5jbWQgfHwgW107DQoNCiA8L3NjcmlwdD4NCg0KIDxzY3JpcHQgc3JjPSJodHRwczovL3MzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL3NjLWRldmVsL1NraW5zL1NNQ1NlcnZpY2UuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20vc2MtZGV2ZWwvc2MtdGFnbWFuYWdlci9maWxtYWZmaW5pdHkuanMiPjwvc2NyaXB0Pg0KDQogPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnNtYXJ0Y2xpcC1zZXJ2aWNlcy5jb20vdjEvU3RvcmFnZS1hNDgyMzIzL3NtYXJ0Y2xpcC1zZXJ2aWNlcy9IZWFkZXJCaWRkaW5nL2pzL1NtYXJ0Y2xpcENvbmZpZy5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4NCjwhLS0gUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz10cnVlPgooZnVuY3Rpb24oKSB7CiAgdmFyIGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICB2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgdmFyIHVybCA9ICdodHRwczovL3F1YW50Y2FzdC5tZ3IuY29uc2Vuc3Uub3JnJwogICAgLmNvbmNhdCgnL2Nob2ljZS8nLCAnTEJCckYtYmRBdGt1RicsICcvJywgaG9zdCwgJy9jaG9pY2UuanMnKQogIHZhciB1c3BUcmllcyA9IDA7CiAgdmFyIHVzcFRyaWVzTGltaXQgPSAzOwogIGVsZW1lbnQuYXN5bmMgPSB0cnVlOwogIGVsZW1lbnQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogIGVsZW1lbnQuc3JjID0gdXJsOwoKICBmaXJzdFNjcmlwdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCBmaXJzdFNjcmlwdCk7CgogIGZ1bmN0aW9uIG1ha2VTdHViKCkgewogICAgdmFyIFRDRl9MT0NBVE9SX05BTUUgPSAnX190Y2ZhcGlMb2NhdG9yJzsKICAgIHZhciBxdWV1ZSA9IFtdOwogICAgdmFyIHdpbiA9IHdpbmRvdzsKICAgIHZhciBjbXBGcmFtZTsKCiAgICBmdW5jdGlvbiBhZGRGcmFtZSgpIHsKICAgICAgdmFyIGRvYyA9IHdpbi5kb2N1bWVudDsKICAgICAgdmFyIG90aGVyQ01QID0gISEod2luLmZyYW1lc1tUQ0ZfTE9DQVRPUl9OQU1FXSk7CgogICAgICBpZiAoIW90aGVyQ01QKSB7CiAgICAgICAgaWYgKGRvYy5ib2R5KSB7CiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwoKICAgICAgICAgIGlmcmFtZS5zdHlsZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6bm9uZSc7CiAgICAgICAgICBpZnJhbWUubmFtZSA9IFRDRl9MT0NBVE9SX05BTUU7CiAgICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzZXRUaW1lb3V0KGFkZEZyYW1lLCA1KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuICFvdGhlckNNUDsKICAgIH0KCiAgICBmdW5jdGlvbiB0Y2ZBUElIYW5kbGVyKCkgewogICAgICB2YXIgZ2RwckFwcGxpZXM7CiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzOwoKICAgICAgaWYgKCFhcmdzLmxlbmd0aCkgewogICAgICAgIHJldHVybiBxdWV1ZTsKICAgICAgfSBlbHNlIGlmIChhcmdzWzBdID09PSAnc2V0R2RwckFwcGxpZXMnKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgYXJncy5sZW5ndGggPiAzICYmCiAgICAgICAgICBhcmdzWzJdID09PSAyICYmCiAgICAgICAgICB0eXBlb2YgYXJnc1szXSA9PT0gJ2Jvb2xlYW4nCiAgICAgICAgKSB7CiAgICAgICAgICBnZHByQXBwbGllcyA9IGFyZ3NbM107CiAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMl0gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgYXJnc1syXSgnc2V0JywgdHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGFyZ3NbMF0gPT09ICdwaW5nJykgewogICAgICAgIHZhciByZXRyID0gewogICAgICAgICAgZ2RwckFwcGxpZXM6IGdkcHJBcHBsaWVzLAogICAgICAgICAgY21wTG9hZGVkOiBmYWxzZSwKICAgICAgICAgIGNtcFN0YXR1czogJ3N0dWInCiAgICAgICAgfTsKCiAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzJdID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICBhcmdzWzJdKHJldHIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBxdWV1ZS5wdXNoKGFyZ3MpOwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIoZXZlbnQpIHsKICAgICAgdmFyIG1zZ0lzU3RyaW5nID0gdHlwZW9mIGV2ZW50LmRhdGEgPT09ICdzdHJpbmcnOwogICAgICB2YXIganNvbiA9IHt9OwoKICAgICAgdHJ5IHsKICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBqc29uID0gZXZlbnQuZGF0YTsKICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge30KCiAgICAgIHZhciBwYXlsb2FkID0ganNvbi5fX3RjZmFwaUNhbGw7CgogICAgICBpZiAocGF5bG9hZCkgewogICAgICAgIHdpbmRvdy5fX3RjZmFwaSgKICAgICAgICAgIHBheWxvYWQuY29tbWFuZCwKICAgICAgICAgIHBheWxvYWQudmVyc2lvbiwKICAgICAgICAgIGZ1bmN0aW9uKHJldFZhbHVlLCBzdWNjZXNzKSB7CiAgICAgICAgICAgIHZhciByZXR1cm5Nc2cgPSB7CiAgICAgICAgICAgICAgX190Y2ZhcGlSZXR1cm46IHsKICAgICAgICAgICAgICAgIHJldHVyblZhbHVlOiByZXRWYWx1ZSwKICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3MsCiAgICAgICAgICAgICAgICBjYWxsSWQ6IHBheWxvYWQuY2FsbElkCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobXNnSXNTdHJpbmcpIHsKICAgICAgICAgICAgICByZXR1cm5Nc2cgPSBKU09OLnN0cmluZ2lmeShyZXR1cm5Nc2cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXR1cm5Nc2csICcqJyk7CiAgICAgICAgICB9LAogICAgICAgICAgcGF5bG9hZC5wYXJhbWV0ZXIKICAgICAgICApOwogICAgICB9CiAgICB9CgogICAgd2hpbGUgKHdpbikgewogICAgICB0cnkgewogICAgICAgIGlmICh3aW4uZnJhbWVzW1RDRl9MT0NBVE9SX05BTUVdKSB7CiAgICAgICAgICBjbXBGcmFtZSA9IHdpbjsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoaWdub3JlKSB7fQoKICAgICAgaWYgKHdpbiA9PT0gd2luZG93LnRvcCkgewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIHdpbiA9IHdpbi5wYXJlbnQ7CiAgICB9CiAgICBpZiAoIWNtcEZyYW1lKSB7CiAgICAgIGFkZEZyYW1lKCk7CiAgICAgIHdpbi5fX3RjZmFwaSA9IHRjZkFQSUhhbmRsZXI7CiAgICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcG9zdE1lc3NhZ2VFdmVudEhhbmRsZXIsIGZhbHNlKTsKICAgIH0KICB9OwoKICBtYWtlU3R1YigpOwoKICB2YXIgdXNwU3R1YkZ1bmN0aW9uID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYXJnID0gYXJndW1lbnRzOwogICAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgIT09IHVzcFN0dWJGdW5jdGlvbikgewogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0eXBlb2Ygd2luZG93Ll9fdXNwYXBpICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgd2luZG93Ll9fdXNwYXBpLmFwcGx5KHdpbmRvdy5fX3VzcGFwaSwgYXJnKTsKICAgICAgICB9CiAgICAgIH0sIDUwMCk7CiAgICB9CiAgfTsKCiAgdmFyIGNoZWNrSWZVc3BJc1JlYWR5ID0gZnVuY3Rpb24oKSB7CiAgICB1c3BUcmllcysrOwogICAgaWYgKHdpbmRvdy5fX3VzcGFwaSA9PT0gdXNwU3R1YkZ1bmN0aW9uICYmIHVzcFRyaWVzIDwgdXNwVHJpZXNMaW1pdCkgewogICAgICBjb25zb2xlLndhcm4oJ1VTUCBpcyBub3QgYWNjZXNzaWJsZScpOwogICAgfSBlbHNlIHsKICAgICAgY2xlYXJJbnRlcnZhbCh1c3BJbnRlcnZhbCk7CiAgICB9CiAgfTsKCiAgaWYgKHR5cGVvZiB3aW5kb3cuX191c3BhcGkgPT09ICd1bmRlZmluZWQnKSB7CiAgICB3aW5kb3cuX191c3BhcGkgPSB1c3BTdHViRnVuY3Rpb247CiAgICB2YXIgdXNwSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChjaGVja0lmVXNwSXNSZWFkeSwgNjAwMCk7CiAgfQp9KSgpOwo8L3NjcmlwdD4KPCEtLSBFbmQgUXVhbnRjYXN0IENob2ljZS4gQ29uc2VudCBNYW5hZ2VyIFRhZyB2Mi4wIChmb3IgVENGIDIuMCkgLS0+CjxzY3JpcHQ+CiAgdmFyIF9jb21zY29yZSA9IF9jb21zY29yZSB8fCBbXTsKICBfY29tc2NvcmUucHVzaCh7IGMxOiAiMiIsIGMyOiAiMTMxODExMjEiIH0pOwogIChmdW5jdGlvbigpIHsKICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyBzLmFzeW5jID0gdHJ1ZTsKICAgIHMuc3JjID0gKGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID09ICJodHRwczoiID8gImh0dHBzOi8vc2IiIDogImh0dHA6Ly9iIikgKyAiLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9iZWFjb24uanMiOwogICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocywgZWwpOwogIH0pKCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+CiAgPGltZyBzcmM9Imh0dHA6Ly9iLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9wP2MxPTImYzI9MTMxODExMjEmY3Y9Mi4wJmNqPTEiIC8+Cjwvbm9zY3JpcHQ+CjxzY3JpcHQ+JChmdW5jdGlvbigpe3NlbmRwdigiY2Q1MzVmODMzYmNmYjUwMWMzYjM3N2VhOGM0MzE2YjgiKTt9KTs8L3NjcmlwdD4NCjwvaGVhZD4KPGJvZHk+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:52:53 GMT
63
+ recorded_with: VCR 6.0.0