metanorma-standoc 1.4.4 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +4 -9
  3. data/.github/workflows/ubuntu.yml +1 -5
  4. data/.github/workflows/windows.yml +2 -12
  5. data/.rubocop.yml +1 -1
  6. data/lib/asciidoctor/standoc/base.rb +11 -5
  7. data/lib/asciidoctor/standoc/base_structured_text_preprocessor.rb +123 -0
  8. data/lib/asciidoctor/standoc/basicdoc.rng +23 -0
  9. data/lib/asciidoctor/standoc/cleanup.rb +32 -12
  10. data/lib/asciidoctor/standoc/cleanup_amend.rb +54 -0
  11. data/lib/asciidoctor/standoc/cleanup_block.rb +0 -2
  12. data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +11 -24
  13. data/lib/asciidoctor/standoc/cleanup_footnotes.rb +0 -3
  14. data/lib/asciidoctor/standoc/cleanup_inline.rb +62 -1
  15. data/lib/asciidoctor/standoc/cleanup_ref.rb +10 -7
  16. data/lib/asciidoctor/standoc/cleanup_section.rb +91 -8
  17. data/lib/asciidoctor/standoc/cleanup_terms.rb +12 -2
  18. data/lib/asciidoctor/standoc/converter.rb +3 -3
  19. data/lib/asciidoctor/standoc/front.rb +0 -12
  20. data/lib/asciidoctor/standoc/front_contributor.rb +51 -10
  21. data/lib/asciidoctor/standoc/inline.rb +21 -31
  22. data/lib/asciidoctor/standoc/isodoc.rng +137 -21
  23. data/lib/asciidoctor/standoc/json2_text_preprocessor.rb +44 -0
  24. data/lib/asciidoctor/standoc/log.rb +10 -1
  25. data/lib/asciidoctor/standoc/macros.rb +45 -33
  26. data/lib/asciidoctor/standoc/ref.rb +45 -45
  27. data/lib/asciidoctor/standoc/section.rb +39 -30
  28. data/lib/asciidoctor/standoc/table.rb +3 -2
  29. data/lib/asciidoctor/standoc/utils.rb +18 -1
  30. data/lib/asciidoctor/standoc/validate.rb +30 -18
  31. data/lib/asciidoctor/standoc/validate_section.rb +1 -1
  32. data/lib/asciidoctor/standoc/views/datamodel/model_representation.adoc.erb +10 -10
  33. data/lib/asciidoctor/standoc/yaml2_text_preprocessor.rb +46 -0
  34. data/lib/liquid/custom_blocks/key_iterator.rb +21 -0
  35. data/lib/liquid/custom_filters/values.rb +7 -0
  36. data/lib/metanorma/standoc.rb +0 -5
  37. data/lib/metanorma/standoc/version.rb +20 -1
  38. data/metanorma-standoc.gemspec +4 -5
  39. data/spec/asciidoctor-standoc/base_spec.rb +140 -7
  40. data/spec/asciidoctor-standoc/blocks_spec.rb +275 -149
  41. data/spec/asciidoctor-standoc/cleanup_spec.rb +1372 -56
  42. data/spec/asciidoctor-standoc/inline_spec.rb +133 -6
  43. data/spec/asciidoctor-standoc/isobib_cache_spec.rb +9 -7
  44. data/spec/asciidoctor-standoc/macros_json2text_spec.rb +10 -0
  45. data/spec/asciidoctor-standoc/macros_spec.rb +43 -23
  46. data/spec/asciidoctor-standoc/macros_yaml2text_spec.rb +5 -560
  47. data/spec/asciidoctor-standoc/refs_dl_spec.rb +9 -7
  48. data/spec/asciidoctor-standoc/refs_spec.rb +43 -34
  49. data/spec/asciidoctor-standoc/section_spec.rb +42 -39
  50. data/spec/asciidoctor-standoc/table_spec.rb +119 -113
  51. data/spec/asciidoctor-standoc/validate_spec.rb +45 -1
  52. data/spec/assets/i18n.yaml +17 -2
  53. data/spec/examples/codes_table.html +1365 -1365
  54. data/spec/fixtures/macros_datamodel/address_class_profile.xml +46 -46
  55. data/spec/fixtures/macros_datamodel/address_component_profile.xml +21 -21
  56. data/spec/fixtures/macros_datamodel/blank_definition_profile.xml +21 -21
  57. data/spec/metanorma/processor_spec.rb +1 -2
  58. data/spec/spec_helper.rb +110 -109
  59. data/spec/support/shared_examples/structured_data_2_text_preprocessor.rb +629 -0
  60. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +71 -71
  61. data/spec/vcr_cassettes/isobib_get_123.yml +16 -16
  62. data/spec/vcr_cassettes/isobib_get_123_1.yml +36 -36
  63. data/spec/vcr_cassettes/isobib_get_123_2001.yml +16 -16
  64. data/spec/vcr_cassettes/isobib_get_124.yml +17 -17
  65. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +8 -8
  66. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +39 -37
  67. metadata +29 -14
  68. data/lib/asciidoctor-yaml/i18n-en.yaml +0 -20
  69. data/lib/asciidoctor-yaml/i18n-fr.yaml +0 -13
  70. data/lib/asciidoctor-yaml/i18n-zh-Hans.yaml +0 -15
  71. data/lib/asciidoctor/standoc/i18n.rb +0 -39
  72. data/lib/asciidoctor/standoc/macros_yaml2text.rb +0 -165
  73. data/lib/metanorma/standoc/latexml_requirement.rb +0 -62
  74. data/lib/metanorma/standoc/requirement.rb +0 -13
@@ -27,15 +27,15 @@ http_interactions:
27
27
  Server:
28
28
  - Lotus-Domino
29
29
  Date:
30
- - Fri, 26 Jun 2020 14:15:56 GMT
30
+ - Sat, 26 Sep 2020 08:42:41 GMT
31
31
  X-Cache:
32
32
  - Miss from cloudfront
33
33
  Via:
34
- - 1.1 ce728907a201ee4bd45e0b0d29cebb4c.cloudfront.net (CloudFront)
34
+ - 1.1 647846f53eba457a8e4ba1d1d42a6336.cloudfront.net (CloudFront)
35
35
  X-Amz-Cf-Pop:
36
- - SYD1-C2
36
+ - SYD1-C1
37
37
  X-Amz-Cf-Id:
38
- - kBNHV5QaH7Cyf83-1ovI-rrE6VAvLVE9TT4wHV31GOQ0Djfufcw2jQ==
38
+ - es-P3kKli03kjxlXQiM_F1ddgmad3Z_rx800Ia9pK7TVLWmlZu6vBg==
39
39
  body:
40
40
  encoding: ASCII-8BIT
41
41
  string: "<html>\n<head>\n</head>\n<body text=\"#000000\">\n\n<style>\n\t.highlight
@@ -65,7 +65,7 @@ http_interactions:
65
65
  class=\"pagination pagination-centered\">\n\t\t\t\t<ul><li class=\"active\"><a
66
66
  href=\"#\" Title=\"Current page\">1</a></li></ul>\n\t\t </div>\n</body>\n</html>\n"
67
67
  http_version:
68
- recorded_at: Fri, 26 Jun 2020 14:15:54 GMT
68
+ recorded_at: Sat, 26 Sep 2020 08:42:37 GMT
69
69
  - request:
70
70
  method: get
71
71
  uri: https://webstore.iec.ch/publication/160
@@ -89,31 +89,31 @@ http_interactions:
89
89
  Content-Type:
90
90
  - text/html;charset=UTF-8
91
91
  Content-Length:
92
- - '6866'
92
+ - '6867'
93
93
  Connection:
94
94
  - keep-alive
95
95
  Server:
96
96
  - Lotus-Domino
97
97
  Date:
98
- - Fri, 26 Jun 2020 14:15:57 GMT
98
+ - Sat, 26 Sep 2020 08:42:42 GMT
99
99
  Set-Cookie:
100
- - SessionID=FOQH862P6U; path=/
100
+ - SessionID=FRJNO43RVI; path=/
101
101
  Expires:
102
102
  - "-1"
103
103
  X-Cache:
104
104
  - Miss from cloudfront
105
105
  Via:
106
- - 1.1 88f40be442aecae39e92819a37969961.cloudfront.net (CloudFront)
106
+ - 1.1 bc447bebac6752b9d1351a9e5ee7d13b.cloudfront.net (CloudFront)
107
107
  X-Amz-Cf-Pop:
108
- - SYD1-C2
108
+ - SYD1-C1
109
109
  X-Amz-Cf-Id:
110
- - iThRaoeQJBtt_9mwamogZW2vjhYT9uaksJ0-JA4iXTeqx4QmpCINeQ==
110
+ - "-riGw9IiaviBWINvubTTjjnieW2gN2B0iwZPUz7cyaw3A-QiSHAjuQ=="
111
111
  body:
112
112
  encoding: ASCII-8BIT
113
113
  string: !binary |-
114
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZighbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpd2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW5cdTAwMjZwdWJpZD0xNjBcdTAwMjZ0ZXN0XHUwMDI2U2Vzc2lvbklEPUZPUUg4NjJQNlUiOzwvc2NyaXB0Pgo8dGl0bGU+SUVDIDYwMDUwLTEwMjoyMDA3IHwgSUVDIFdlYnN0b3JlPC90aXRsZT4KPGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvZmF2aWNvbi5pY28iPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIveHNwLy5pYm14c3ByZXMvZG9qb3Jvb3QtMS42LjEvZG9qby9kb2pvLmpzIiBkakNvbmZpZz0ibG9jYWxlOiAnZW4tdXMnLCBwYXJzZU9uTG9hZDogdHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii94c3AvLmlibXhzcHJlcy9kb2pvcm9vdC0xLjYuMS9pYm0veHNwL3dpZGdldC9sYXlvdXQvbGF5ZXJzL3hzcENsaWVudERvam8uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9qby5yZXF1aXJlKCdkb2pvLnBhcnNlcicpPC9zY3JpcHQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9kb21qYXZhL3hzcC90aGVtZS93ZWJzdGFuZGFyZC94c3AuY3NzIj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL2RvbWphdmEveHNwL3RoZW1lL3dlYnN0YW5kYXJkL3hzcExUUi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvY3NzL2llYy13ZWJzdG9yZS5jc3MiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL1hTUExpYnJhcnkuanMiPjwvc2NyaXB0Pgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSUVDIDYwMDUwLTEwMjoyMDA3IFN0YW5kYXJkIHwgSW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIFZvY2FidWxhcnkgKElFVikgLSBQYXJ0IDEwMjogTWF0aGVtYXRpY3MgLSBHZW5lcmFsIGNvbmNlcHRzIGFuZCBsaW5lYXIgYWxnZWJyYSI+CjxtZXRhIG5hbWU9IkNvcHlyaWdodCIgY29udGVudD0iSUVDIC0gSW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIENvbW1pc3Npb24iPgo8bWV0YSBuYW1lPSJMYW5ndWFnZSIgY29udGVudD0iRW5nbGlzaCI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCIgcmVsPSJjYW5vbmljYWwiPgo8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iSUVDIDYwMDUwLTEwMjoyMDA3LCBTdGFuZGFyZCI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5kb2pvLnJlcXVpcmUoJ2Rvam8uY29va2llJyk8L3NjcmlwdD4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8bWV0YSBjb250ZW50PSJvbiIgaHR0cC1lcXVpdj0iY2xlYXJ0eXBlIj4KPG1ldGEgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSIgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi9IaXN0b3J5V29ya0luUHJvZ3Jlc3NMaWIiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+KGZ1bmN0aW9uKGkscyxvLGcscixhLG0pe2lbJ0dvb2dsZUFuYWx5dGljc09iamVjdCddPXI7aVtyXT1pW3JdfHxmdW5jdGlvbigpeyAoaVtyXS5xPWlbcl0ucXx8W10pLnB1c2goYXJndW1lbnRzKX0saVtyXS5sPTEqbmV3IERhdGUoKTthPXMuY3JlYXRlRWxlbWVudChvKSwgIG09cy5nZXRFbGVtZW50c0J5VGFnTmFtZShvKVswXTthLmFzeW5jPTE7YS5zcmM9ZzttLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsbSkgIH0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnLy93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20vYW5hbHl0aWNzLmpzJywnZ2EnKTsgIGdhKCdjcmVhdGUnLCAnVUEtMzQzOTgzMzEtMicsICdhdXRvJyk7IGdhKCdzZXQnLCAnZGltZW5zaW9uMScsICcnKTsgZ2EoJ3NlbmQnLCAncGFnZXZpZXcnKTs8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy92ZW5kb3IvbW9kZXJuaXpyLmN1c3RvbS40MjE5Ny5qcyI+PC9zY3JpcHQ+PHNjcmlwdD52YXIganNEQkNBVEFMT0c9Ii93ZWJzdG9yZS9JRUNDYXRhLm5zZiI7IHZhciBqc1BhdGhXZWJzdG9yZURCPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmIjsgdmFyIGpzQ29va2llTmFtZT0iaWVjd2Vic3RvcmUiOwoJCS8vY29uc29sZS5sb2coImNvb2tpZXZhbCA9ICIrcmV0dXJuQ29va2llVmFsKGpzQ29va2llTmFtZSkpOzwvc2NyaXB0PjxoZWFkZXIgY2xhc3M9ImJyYW5kaW5nIiByb2xlPSJiYW5uZXIiPjxkaXYgY2xhc3M9ImlubmVyIj48YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaCIgb25DbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnSUVDTG9nbycsICdDbGljaycsICd3d3cuaWVjLmNoJyk7IiB0aXRsZT0id3d3LmllYy5jaCI+PGRpdiBjbGFzcz0ibG9nbyI+PGltZyBhbHQ9IklFQyBsb2dvIiBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9pbWcvbG9nb19pZWNfMjc2LmpwZyI+PC9kaXY+PC9hPjxoMT48c3Ryb25nPldlYnN0b3JlPC9zdHJvbmc+Jm5ic3A7STxpPm50ZXJuYXRpb25hbCZuYnNwOzwvaT5FPGk+bGVjdHJvdGVjaG5pY2FsJm5ic3A7PC9pPkM8aT5vbW1pc3Npb248L2k+PC9oMT48ZGl2IGNsYXNzPSJjb25uZWN0Ij48YSBpZD0idmlldzpfaWQzOmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCZhbXA7bG9naW4iIGNsYXNzPSJsb2dvdXQiPlNpZ24gaW48L2E+PHNwYW4gaWQ9InZpZXc6X2lkMzpsYWJlbDIiIGNsYXNzPSJ4c3BUZXh0TGFiZWwiPiB8IDwvc3Bhbj48YSBpZD0idmlldzpfaWQzOmxpbmszIiBocmVmPSIvbmV3YWNjb3VudCIgY2xhc3M9InhzcExpbmsiPkNyZWF0ZSBhY2NvdW50PC9hPjxpPjxzcGFuIGlkPSJ2aWV3Ol9pZDM6Y29tcHV0ZWRGaWVsZDIiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSJzZWFyY2gtYm94LWFsdCI+PGZvcm0gaWQ9InZpZXc6X2lkMzpteUZvcm1zZWFyY2giIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCIgY2xhc3M9InNlYXJjaCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgb25zdWJtaXQ9IgoKCi8vd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9zZWFyY2hmb3JtJmFtcDtxPScrJCgmcXVvdDtbaWQkPXFdJnF1b3Q7KS52YWwoKTsKCi8vcmV0dXJuIGZhbHNlOwoKCnZhciBLRVlWQUwgPSAkKCZxdW90O1tpZCQ9cV0mcXVvdDspLnZhbCgpOwoJCQkJCQoJCQkJCUtFWVZBTCA9IEtFWVZBTC5yZXBsYWNlKC8lL2dpLCAmcXVvdDsgJnF1b3Q7KTsKCQkJCS8vCUtFWVZBTCA9IEtFWVZBTC5yZXBsYWNlKC8mcXVvdDsvZ2ksICZxdW90OyAmcXVvdDspOwoJCQkJCgkJCQkJCgkJCQkvLwkJS0VZVkFMPWVuY29kZVVSSUNvbXBvbmVudChLRVlWQUwudHJpbSgpKTsKCQkJCQl0cnkgewoJCQkJCQlLRVlWQUwgPSBlbmNvZGVVUklDb21wb25lbnQoS0VZVkFMLnRyaW0oKSk7CgkJCQkJfSBjYXRjaChlKXsKCQkJCQkJLy9JRTgKCQkJCQkJS0VZVkFMID0gZW5jb2RlVVJJQ29tcG9uZW50KCQudHJpbShLRVlWQUwpKTsKCQkJCQl9CgkJCQkKCQkJCQkKCQkJCQkKCQkJCQl3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvc2VhcmNoZm9ybSZhbXA7cT0nICsgS0VZVkFMOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkKCQkJCQkKCQkJCQkKIiByb2xlPSJzZWFyY2giPgo8cD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZpZXc6X2lkMzpteUZvcm1zZWFyY2g6cSIgbmFtZT0idmlldzpfaWQzOm15Rm9ybXNlYXJjaDpxIiBjbGFzcz0iaW5wdXQtNzUgc2VhcmNoLXF1ZXJ5IiBwbGFjZWhvbGRlcj0iU2VhcmNoIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWJsdWUgc3ltYm9sIj48c3BhbiBjbGFzcz0iaWNvbi1zZWFyY2giPjxiPkdvPC9iPjwvc3Bhbj48L2J1dHRvbj48L3A+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkdmlld2lkIiBpZD0idmlldzpfaWQzOm15Rm9ybXNlYXJjaF9fVlVJRCIgdmFsdWU9IiFmb3FoODYycDI1ISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkMzpteUZvcm1zZWFyY2giIHZhbHVlPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIj48L2Zvcm0+CjxwPjxhIGhyZWY9Ii9hZHZzZWFyY2hmb3JtIj5BZHZhbmNlZCBzZWFyY2g8L2E+PC9wPjwvZGl2PjwvZGl2PjwvaGVhZGVyPjxuYXYgaWQ9Im5hdmlnYXRpb24tdG9nZ2xlIiByb2xlPSJuYXZpZ2F0aW9uIj48dWw+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua0hvbWUiIGhyZWY9Ii9ob21lIiBjbGFzcz0icHVibGljYXRpb24iIHRhcmdldD0iX3NlbGYiPkhvbWU8L2E+PC9saT48bGk+PGEgaWQ9InZpZXc6X2lkMzpsaW5rU2lnbkluIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCZhbXA7bG9naW4iIGNsYXNzPSJ4c3BMaW5rIiB0eXBlPSJ0ZXh0L2h0bWwiPlNpZ24gaW48L2E+PC9saT48bGk+PGEgaWQ9InZpZXc6X2lkMzpsaW5rSGVscCIgaHJlZj0iL2hlbHAiIGNsYXNzPSJwdWJsaWNhdGlvbiI+SGVscDwvYT48L2xpPjxsaT48YSBpZD0idmlldzpfaWQzOmxpbmtCYXNrZXQiIGhyZWY9ImphdmFzY3JpcHQ6b3BlbkJhc2tldCgnQW5vbnltb3VzJyk7IiBjbGFzcz0icHVibGljYXRpb24iPkNhcnQgPHNwYW4gY2xhc3M9Im5iLWl0ZW1zIG5iLWl0ZW1zLWJ1eSI+PC9zcGFuPjwvYT48L2xpPjxsaSBjbGFzcz0ibGlua2FkdnNlYXJjaCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PGEgaWQ9InZpZXc6X2lkMzpsaW5rYWR2c2VhcmNoIiBocmVmPSIvYWR2c2VhcmNoZm9ybSIgY2xhc3M9InB1YmxpY2F0aW9uIj5BZHZhbmNlZCBTZWFyY2g8L2E+PC9saT48L3VsPjwvbmF2PjxkaXYgY2xhc3M9ImNvbnRhaW5lciIgcm9sZT0ibWFpbiI+PGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtLWJsb2NrIGFsZXJ0LXN1Y2Nlc3MgYWxlcnQtZGlzbWlzc2FibGUiIGlkPSJtZXNzYWdlYmFza2V0IiBzdHlsZT0iZGlzcGxheTpub25lIj48YnV0dG9uIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0iYWxlcnQiIHR5cGU9ImJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPjxwIGNsYXNzPSJzZWNvbmRhcnkiPjxzcGFuPjwvc3Bhbj48L3A+PC9kaXY+PHNlY3Rpb24gY2xhc3M9ImFydGljbGUiIGl0ZW1zY29wZT0iICIgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1Byb2R1Y3QiPjxkaXYgY2xhc3M9ImwtbWFpbiI+PHNwYW4gaXRlbXByb3A9ImJyYW5kIiBpdGVtc2NvcGU9IiAiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9Pcmdhbml6YXRpb24iPjxtZXRhIGNvbnRlbnQ9IklFQyIgaXRlbXByb3A9Im5hbWUiPjwvc3Bhbj48aDEgY2xhc3M9InJlZmVyZW5jZSI+PHNwYW4gaWQ9InZpZXc6ZE9DVU1FTlROQU1FMSIgaXRlbXByb3A9InByb2R1Y3RJRCI+SUVDIDYwMDUwLTEwMjoyMDA3PC9zcGFuPiZuYnNwOzxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ5IiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48L2gxPjxoMiBpZD0idmlldzpFbmdsaXNoX1RpdGxlIiBjbGFzcz0idGl0bGUiIGl0ZW1wcm9wPSJuYW1lIj5JbnRlcm5hdGlvbmFsIEVsZWN0cm90ZWNobmljYWwgVm9jYWJ1bGFyeSAoSUVWKSAtIFBhcnQgMTAyOiBNYXRoZW1hdGljcyAtIEdlbmVyYWwgY29uY2VwdHMgYW5kIGxpbmVhciBhbGdlYnJhPC9oMj48dWwgY2xhc3M9Im1ldGEgaW5saW5lIHNlcGFyYXRlZCI+PGxpPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ4IiB0aXRsZT0iVGVybWlub2xvZ3kiPlRDIDE8L3NwYW4+PC9saT48bGkgY2xhc3M9InByZXZpZXciPjxhIGhyZWY9IiNhZGRpdGlvbmFsaW5mbyI+Jm5ic3A7QWRkaXRpb25hbCBpbmZvcm1hdGlvbjwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ibC1hc2lkZSI+PGRpdiBjbGFzcz0ibC1ib3ggaXMtYWx3YXlzLXZpc2libGUiPjxkaXYgY2xhc3M9InRhYmJhYmxlIGJ1eWJveCI+PHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMiIGlkPSJidXlib3hiIj48bGkgaWQ9InZpZXc6X2lkNzU6X2lkNzg6cmVwZWF0MTowOmNvbXB1dGVkRmllbGQyIiBjbGFzcz0iYWN0aXZlIj48YSBocmVmPSIucGFuZUUiIGRhdGEtdG9nZ2xlPSJ0YWIiPiBEb3dubG9hZDwvYT48L2xpPjxsaSBpZD0idmlldzpfaWQ3NTpfaWQ3ODpyZXBlYXQxOjE6Y29tcHV0ZWRGaWVsZDIiPjxhIGhyZWY9Ii5wYW5lUCIgZGF0YS10b2dnbGU9InRhYiI+IEhhcmRjb3B5PC9hPjwvbGk+PC91bD48ZGl2IGNsYXNzPSJ0YWItY29udGVudCI+PHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6Y29tcHV0ZWRGaWVsZDEiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxkaXYgY2xhc3M9InRhYi1wYW5lIGZhZGUgYWN0aXZlIGluIHBhbmVFIj4KPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOmNvbXB1dGVkRmllbGQyIiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48Zm9ybSBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODIiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCIgY2xhc3M9IkUiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgo8ZmllbGRzZXQgY2xhc3M9InBhcmFtZXRlcnMiPjxkaXYgY2xhc3M9ImJveC1wYW5lIHNlZ21lbnQgc3R5bGVkLXNlbGVjdCI+PHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmNvbXB1dGVkRmllbGQ0IiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48ZGl2IGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4Mjpjb21wdXRlZEZpZWxkNSIgc3R5bGU9Im1hcmdpbi10b3A6NHB4IiBjbGFzcz0ibGFuZ3N3aXRjaGxhYmVsIj5FbmdsaXNoL0ZyZW5jaDwvZGl2PjxvcHRpb24gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmNvbXB1dGVkRmllbGQ2IiBzdHlsZT0iZGlzcGxheTpub25lIiBjbGFzcz0ibGFuZ3N3aXRjaCI+MTYwRU4tRlI8L29wdGlvbj48L2Rpdj48ZGl2IGNsYXNzPSJib3gtcGFuZSBzZWdtZW50Ij48c3BhbiBpdGVtcHJvcD0ib2ZmZXJzIiBpdGVtc2NvcGU9IiAiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9PZmZlciI+PGFiYnIgaXRlbXByb3A9InByaWNlQ3VycmVuY3kiIHRpdGxlPSJTd2lzcyBGcmFuY3MiPkNIRjwvYWJicj4mbmJzcDs8bGFiZWwgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmxhYmVsMSIgY2xhc3M9InByaWNlIiBjb250ZW50PSIzMTAiIGl0ZW1wcm9wPSJwcmljZSI+MzEwLi08c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODI6Y29tcHV0ZWRGaWVsZDMiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjwvbGFiZWw+PG1ldGEgY29udGVudD0iaHR0cDovL3NjaGVtYS5vcmcvSW5TdG9jayIgaXRlbXByb3A9ImF2YWlsYWJpbGl0eSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJveC1wYW5lIj4KPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1jb21taXQiIHR5cGU9InN1Ym1pdCI+QWRkIHRvIGNhcnQ8L2J1dHRvbj48L2Rpdj4KPC9maWVsZHNldD4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR2aWV3aWQiIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4Ml9fVlVJRCIgdmFsdWU9IiFmb3FoODYycDI1ISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyIiB2YWx1ZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODIiPjwvZm9ybT4KPHAgY2xhc3M9InNlY29uZGFyeSBib3gtb3B0Ij4KPGEgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9PcGVuJmFtcDtpZD1HRk9ULTdOUFA4SCIgY2xhc3M9InhzcExpbmsiPkRvIHlvdSBuZWVkIGEgbXVsdGktdXNlciBjb3B5PzwvYT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlICBwYW5lUCI+CjxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpjb21wdXRlZEZpZWxkMiIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGZvcm0gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QiIGNsYXNzPSJQIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGZpZWxkc2V0IGNsYXNzPSJwYXJhbWV0ZXJzIj48ZGl2IGNsYXNzPSJib3gtcGFuZSBzZWdtZW50IHN0eWxlZC1zZWxlY3QiPjxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4Mjpjb21wdXRlZEZpZWxkNCIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGRpdiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODI6Y29tcHV0ZWRGaWVsZDUiIHN0eWxlPSJtYXJnaW4tdG9wOjRweCIgY2xhc3M9Imxhbmdzd2l0Y2hsYWJlbCI+RW5nbGlzaC9GcmVuY2g8L2Rpdj48b3B0aW9uIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4Mjpjb21wdXRlZEZpZWxkNiIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgY2xhc3M9Imxhbmdzd2l0Y2giPjE2MEVOLUZSPC9vcHRpb24+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCI+PHNwYW4gaXRlbXByb3A9Im9mZmVycyIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT2ZmZXIiPjxhYmJyIGl0ZW1wcm9wPSJwcmljZUN1cnJlbmN5IiB0aXRsZT0iU3dpc3MgRnJhbmNzIj5DSEY8L2FiYnI+Jm5ic3A7PGxhYmVsIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjpsYWJlbDEiIGNsYXNzPSJwcmljZSIgY29udGVudD0iMzEwIiBpdGVtcHJvcD0icHJpY2UiPjMxMC4tPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmNvbXB1dGVkRmllbGQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPisgc2hpcHBpbmc8L3NwYW4+PC9sYWJlbD48bWV0YSBjb250ZW50PSJodHRwOi8vc2NoZW1hLm9yZy9JblN0b2NrIiBpdGVtcHJvcD0iYXZhaWxhYmlsaXR5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUiPgo8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWNvbW1pdCIgdHlwZT0ic3VibWl0Ij5BZGQgdG8gY2FydDwvYnV0dG9uPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyX19WVUlEIiB2YWx1ZT0iIWZvcWg4NjJwMjUhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwZXhlY2lkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXR2YWx1ZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0c2Nyb2xsIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODIiIHZhbHVlPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MiI+PC9mb3JtPgo8L2Rpdj4KPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGhyPgo8L2hyPgo8ZGl2IGNsYXNzPSJsLW1haW4tcHVsbGVkIj48ZGl2IGNsYXNzPSJhYnN0cmFjdCI+PHAgY2xhc3M9ImJ0biBidG4tcHJldmlldyI+CjxhIGlkPSJ2aWV3OmxpbmsyIiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMiU3QmVkMS4wJTdEYi5wZGYiIHRhcmdldD0iX2JsYW5rIj5QcmV2aWV3PC9hPjwvcD4KPGgzPgpBYnN0cmFjdDwvaDM+CjxkaXYgaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDMiIGNsYXNzPSJyZWFkbW9yZSIgaXRlbXByb3A9ImRlc2NyaXB0aW9uIj5UaGlzIHBhcnQgb2YgSUVDIDYwMDUwIGdpdmVzIHRoZSBnZW5lcmFsIG1hdGhlbWF0aWNhbCB0ZXJtaW5vbG9neSB1c2VkIGluIHRoZSBmaWVsZHMgb2YgZWxlY3RyaWNpdHksIGVsZWN0cm9uaWNzIGFuZCB0ZWxlY29tbXVuaWNhdGlvbnMsIHRvZ2V0aGVyIHdpdGggYmFzaWMgY29uY2VwdHMgaW4gbGluZWFyIGFsZ2VicmEuIEl0IG1haW50YWlucyBhIGNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gbWF0aGVtYXRpY2FsIGNvbmNlcHRzIGFuZCBwaHlzaWNhbCBjb25jZXB0cywgZXZlbiBpZiBzb21lIHRlcm1zIGFyZSB1c2VkIGluIGJvdGggY2FzZXMuIEFub3RoZXIgcGFydCB3aWxsIGRlYWwgd2l0aCBmdW5jdGlvbnMuPGJyIC8+DQpJdCBoYXMgdGhlIHN0YXR1cyBvZiBhIGhvcml6b250YWwgc3RhbmRhcmQgaW4gYWNjb3JkYW5jZSB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL0FydG51bV9QSy8zNjQzNT9vDQpwZW5kb2N1bWVudCI+SUVDIEd1aWRlIDEwODwvYT4uPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibC1hc2lkZSI+PGRpdiBjbGFzcz0idG9jIj48aDM+Ckxvb2sgaW5zaWRlPC9oMz4KPGEgaWQ9InZpZXc6bGluazE1IiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMiU3QmVkMS4wJTdEYi5wZGYiIHRpdGxlPSJGcmVlIHByZXZpZXciIHRhcmdldD0iX2JsYW5rIj48dWwgY2xhc3M9ImJ1bGxldGVkLWxpc3Qgc2Vjb25kYXJ5IHQtY29sdW1ucyI+CjxpbWcgaWQ9InZpZXc6aW1hZ2UxIiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvbG9va2luc2lkZS5wbmciIGFsdD0iIiBjbGFzcz0ieHNwSW1hZ2UiPjwvdWw+CjwvYT48L2Rpdj48L2Rpdj48aHI+PGRpdiBjbGFzcz0ibC1tYWluIj48aDMgaWQ9ImFkZGl0aW9uYWxpbmZvIj5BZGRpdGlvbmFsIGluZm9ybWF0aW9uPC9oMz48ZGl2IGNsYXNzPSJ0YWJiYWJsZSI+PHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMiPjxsaSBjbGFzcz0iYWN0aXZlIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48L2xpPjxsaSBpZD0iaGlzdG9yeXRhYiI+PGEgZGF0YS10b2dnbGU9InRhYiIgaHJlZj0iI2hpc3RvcnkiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ2hpc3RvcnknKTsiPkhpc3Rvcnk8L2E+PC9saT48bGkgaWQ9IndvcmtpbnByb2dyZXNzdGFiIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjd29ya2lucHJvZ3Jlc3MiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ3dvcmtpbnByb2dyZXNzJyk7Ij5Xb3JrIGluIHByb2dyZXNzPC9hPjwvbGk+PGxpIGlkPSJsaTEiPjwvbGk+PGxpIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjdGFnY2xvdWQiPlRhZ3M8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9ImRldGFpbHMiPjx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaW5mbyB2ZXJ0aWNhbC10aCI+PHRib2R5Pjx0cj48dGggc2NvcGU9InJvdyI+UHVibGljYXRpb24gdHlwZTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ3IiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkludGVybmF0aW9uYWwgU3RhbmRhcmQ8L3NwYW4+PC90ZD48L3RyPgo8dHI+PHRoIHNjb3BlPSJyb3ciPlB1YmxpY2F0aW9uIGRhdGU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzppbnB1dFRleHQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiIGl0ZW1wcm9wPSJyZWxlYXNlRGF0ZSI+MjAwNy0wOC0yNzwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBzY29wZT0icm93Ij5FZGl0aW9uPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6aW5wdXRUZXh0MSI+MS4wPC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPkF2YWlsYWJsZSBsYW5ndWFnZShzKTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkVuZ2xpc2gvRnJlbmNoPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij48YWJiciB0aXRsZT0iVGVjaG5pY2FsIENvbW1pdHRlZSI+VEM8L2FiYnI+LzxhYmJyIHRpdGxlPSJTdWItY29tbWl0dGVlIj5TQzwvYWJicj48L3RoPjx0ZD48YSBpZD0idmlldzpsaW5rNiIgaHJlZj0iLi4vc2VhcmNoZm9ybSZDb21OdW1iZXI9MSIgY2xhc3M9InhzcExpbmsiPlRDIDEgLSBUZXJtaW5vbG9neTwvYT48YSBpZD0idmlldzpsaW5rMSIgaHJlZj0iaHR0cHM6Ly93ZWJzdG9yZS5pZWMuY2gvcnNzJnRjPVRDJTIwMSIgc3R5bGU9ImZsb2F0OnJpZ2h0IiBjbGFzcz0ic3ltYm9sIHJzcyIgdGl0bGU9IlN1YnNjcmliZSB0byB0aGlzIFJTUyBmZWVkIj48c3BhbiBjbGFzcz0iaWNvbi1yc3MiPjwvc3Bhbj48Yj5yc3M8L2I+PC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPklDUzwvdGg+PHRkPjxhIGlkPSJ2aWV3Omxpbms3IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wMS4wNDAuMDciIGNsYXNzPSJ4c3BMaW5rIj4wMS4wNDAuMDcgLSBNYXRoZW1hdGljcy4gTmF0dXJhbCBzY2llbmNlcyAoVm9jYWJ1bGFyaWVzKTwvYT48YnI+CjxhIGlkPSJ2aWV3Omxpbms4IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wNy4wMjAiIGNsYXNzPSJ4c3BMaW5rIj4wNy4wMjAgLSBNYXRoZW1hdGljcw0KPC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPlBhZ2VzPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDQiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+MTYyPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij5GaWxlIHNpemU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkNSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4xNzc2PC9zcGFuPiZuYnNwOzxhYmJyIHRpdGxlPSJLaWxvYml0cyI+S0I8L2FiYnI+PC90ZD48L3RyPgo8L3Rib2R5PjwvdGFibGU+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9Imhpc3RvcnkiPjxzcGFuIGlkPSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9IndvcmtpbnByb2dyZXNzIj48c3BhbiBpZD0idmlldzpfaWQxODM6eG1sV29ya2lucHJvZ3Jlc3MiPjwvc3Bhbj48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBwdWJpZCAgID0gIjE2MCI7CnZhciBwdWJ0eXBlID0gIklTIjsKCnZhciBYTUx1cmw9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvQWpheFJlcXVlc3RYTUw/T3BlbmFnZW50JnVybD0iKyIiK3B1YmlkOwp2YXIgdGFyZ2V0SWRIaXN0b3J5PSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5IjsKdmFyIHRhcmdldElkV29ya2lucHJvZ3Jlc3M9InZpZXc6X2lkMTgzOnhtbFdvcmtpbnByb2dyZXNzIjsKdmFyIGFwSGlzdCA9IGRvam8uYnlJZCh0YXJnZXRJZEhpc3RvcnkpOwp2YXIgYXBXb3JrID0gZG9qby5ieUlkKHRhcmdldElkV29ya2lucHJvZ3Jlc3MpOwoKdHJ5IHsKCglkb2pvLnhockdldCh7CgkJdXJsOiBYTUx1cmwsCgkJbG9hZDogZnVuY3Rpb24oWE1McmVzdWx0KSB7CgkJCVhNTHBhcnNlSGlzdG9yeShYTUxyZXN1bHQsIHRhcmdldElkSGlzdG9yeSx0YXJnZXRJZFdvcmtpbnByb2dyZXNzKTsKCQl9LAogICAgZXJyb3I6IGZ1bmN0aW9uKGVycm9yLCBpb2FyZ3MpewoJICAgICAgYXBIaXN0LmlubmVySFRNTCA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkOiA8YnIgLz4iICsgZXJyb3I7CgkgICAgICBhcFdvcmsuaW5uZXJIVE1MID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQ6IDxiciAvPiIgKyBlcnJvcjsKCQkJfQoJCX0pOwoJCQoJICBpZiAocHVidHlwZT09J1RSRicpIHsJCQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoaXN0b3J5dGFiIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICB9CgkJCn0gY2F0Y2goZSkgewphbGVydCgiZXJyb3IgIiArIGUpfQo8L3NjcmlwdD4KPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRyZiI+PHA+VGhlIGZvbGxvd2luZyB0ZXN0IHJlcG9ydCBmb3JtcyBhcmUgcmVsYXRlZDo8L3A+PGRpdiBpZD0idmlldzpfaWQxODQ6cmVwZWF0cmVsYXRlZFRSRiI+CjwvZGl2Pgo8YnI+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRhZ2Nsb3VkIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsLWFzaWRlIj48Zm9ybSBpZD0idmlldzpfaWQyMDY6X2lkMzA0IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QiIGNsYXNzPSJ4c3BGb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGgzPlJlbGF0ZWQgcHVibGljYXRpb25zPC9oMz48ZGl2IGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiI+Cjx1bD48c3BhbiBpZD0idmlldzpfaWQyMDY6X2lkMzA0Om90aGVycGFydHMiPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vNjEzMTUib25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnUmVsYXRlZFB1YicsICdJRUMgNjAwNTAtMTAyOjIwMDcvQU1EMToyMDE3JywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMjoyMDA3L0FNRDE6MjAxNzwvYT48L2xpPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vNjY4NDQib25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnUmVsYXRlZFB1YicsICdJRUMgNjAwNTAtMTAyOjIwMDcvQU1EMjoyMDIwJywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMjoyMDA3L0FNRDI6MjAyMDwvYT48L2xpPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vMTYxIm9uY2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ1JlbGF0ZWRQdWInLCAnSUVDIDYwMDUwLTEwMzoyMDA5JywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMzoyMDA5PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82MTMxNyJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQxOjIwMTcnLCAnSUVDIDYwMDUwLTEwMjoyMDA3Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMToyMDE3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82NTc2OSJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQyOjIwMTknLCAnSUVDIDYwMDUwLTEwMjoyMDA3Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMjoyMDE5PC9hPjwvbGk+PC9zcGFuPjxsaSBjbGFzcz0ibW9yZSIgaWQ9IndyIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5TaG93IGFsbCAmcmFxdW87PC9hPjwvbGk+PC91bD48cD48L3A+PC9kaXY+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMjA2Ol9pZDMwNF9fVlVJRCIgdmFsdWU9IiFmb3FoODYycDI1ISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkMjA2Ol9pZDMwNCIgdmFsdWU9InZpZXc6X2lkMjA2Ol9pZDMwNCI+PC9mb3JtPgo8aDMgaWQ9InZpZXc6X2lkMjEyOmNvbXB1dGVkRmllbGQyIj5Nb3JlIGluZm9ybWF0aW9uPC9oMz48dWwgY2xhc3M9ImlubGluZSI+PGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlwdWIiPgo8L2Rpdj4KPGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQyI+CjxsaT48YSBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQzowOmxpbmsyIiBocmVmPSJodHRwczovL2llY2V0ZWNoLm9yZy9UZWNobmljYWwtQ29tbWl0dGVlcy8yMDE5LTAyL0luLXRoZS1iZWdpbm5pbmctdGhlcmUtd2FzLXRlcm1pbm9sb2d5IiB0YXJnZXQ9Il9ibGFuayI+QXJ0aWNsZTogYXZvaWRpbmcgYW1iaWd1aXR5PC9hPjwvbGk+PC9kaXY+CjwvdWw+PGJyPjxoMz5TaGFyZSB0aGlzIHBhZ2U8L2gzPjx1bCBjbGFzcz0iaW5saW5lIj48bGk+Jm5ic3A7PGEgaWQ9InZpZXc6X2lkMjE5OmxpbmsxIiBocmVmPSJtYWlsdG86P3N1YmplY3Q9Q2hlY2slMjBvdXQlMjBJRUMlMjA2MDA1MC0xMDIlM0EyMDA3JmFtcDtib2R5PUhlbGxvJTJDJTBBJTBBSSUyMHRob3VnaHQlMjB5b3UlMjBtaWdodCUyMGJlJTIwaW50ZXJlc3RlZCUyMGJ5JTIwdGhpcyUyMHB1YmxpY2F0aW9uJTNBJTBBJTBBJTA5aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCUwQSUwQS0tJTBBU2VudCUyMGZyb20lMjB0aGUlMjBJRUMlMjBXZWJzdG9yZSUyMHdlYnN0b3JlLmllYy5jaCUwQSIgY2xhc3M9InNzLWljb24gc3MtbWFpbC1yZWd1bGFyIiB0YXJnZXQ9Il9ibGFuayI+bWFpbDwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazEwIiBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYwJmFtcDt0ZXh0PUNoZWNrJTIwb3V0JTIwSUVDJTIwNjAwNTAtMTAyJTNBMjAwNyZhbXA7dmlhPUlFQ1N0YW5kYXJkcyIgY2xhc3M9InNzLWljb24gc3Mtc29jaWFsLXJlZ3VsYXIiIGNoYXJzZXQ9IlVURi04IiB0YXJnZXQ9Il9ibGFuayI+VHdpdHRlcjwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazExIiBocmVmPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIucGhwP3U9aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCZhbXA7dD1DaGVjayUyMG91dCUyMElFQyUyMDYwMDUwLTEwMiUzQTIwMDciIGNsYXNzPSJzcy1pY29uIHNzLXNvY2lhbC1yZWd1bGFyIiBjaGFyc2V0PSJVVEYtOCIgdGFyZ2V0PSJfYmxhbmsiPkZhY2Vib29rPC9hPiZuYnNwOzwvbGk+PGxpPiZuYnNwOzxhIGlkPSJ2aWV3Ol9pZDIxOTpsaW5rMTMiIGhyZWY9Imh0dHA6Ly93d3cubGlua2VkaW4uY29tL3NoYXJlQXJ0aWNsZT9taW5pPXRydWUmYW1wO3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYwJmFtcDt0aXRsZT1JRUMlMjA2MDA1MC0xMDIlM0EyMDA3JmFtcDtzdW1tYXJ5PSZhbXA7c291cmNlPUlFQyUyMFdlYnN0b3JlIiBjbGFzcz0ic3MtaWNvbiBzcy1zb2NpYWwtcmVndWxhciIgY2hhcnNldD0iVVRGLTgiIHRhcmdldD0iX2JsYW5rIj5MaW5rZWRJbjwvYT4mbmJzcDs8L2xpPjwvdWw+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIxIj48aDQ+U2hhcmUgeW91ciBwdWJsaWNhdGlvbnM8L2g0PjxwPkxlYXJuIGhvdyB0byBzaGFyZSB5b3VyIHB1YmxpY2F0aW9ucyB3aXRoIHlvdXIKCQkJY29sbGVhZ3VlcywmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazIiIGhyZWY9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBGQVEueHNwP2lkPUdGT1QtN05QUDhIIj51c2luZyBuZXR3b3JraW5nIG9wdGlvbnM8L2E+LjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIyIj48aDQ+UGF5bWVudCBpbmZvcm1hdGlvbjwvaDQ+PHA+T3VyIHByaWNlcyBhcmUgaW4gU3dpc3MgZnJhbmNzICg8YWJiciB0aXRsZT0iU3dpc3MgZnJhbmNzIj5DSEY8L2FiYnI+KS4gV2UgYWNjZXB0IGFsbCBtYWpvciBjcmVkaXQgY2FyZHMgKEFtZXJpY2FuIEV4cHJlc3MsIE1hc3RlcmNhcmQgYW5kCgkJCVZpc2EpLCBQYXlQYWwgYW5kIGJhbmsgdHJhbnNmZXJzIGFzIGZvcm0gb2YgcGF5bWVudC48L3A+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIzIj48aDQ+S2VlcCBpbiB0b3VjaDwvaDQ+PHA+S2VlcCB1cCB0byBkYXRlIHdpdGggbmV3IHB1YmxpY2F0aW9uIHJlbGVhc2VzIGFuZAoJCQlhbm5vdW5jZW1lbnRzIHdpdGgKCQkJb3VyIGZyZWUmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazEiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5JRUMgSnVzdCBQdWJsaXNoZWQgZW1haWwgbmV3c2xldHRlcjwvYT4uPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImwtcXVhcnRlcjQiPjxoNCBpZD0idmlldzpfaWQyMzQ6Y29tcHV0ZWRGaWVsZDYiPkNvbnRhY3QgY3VzdG9tZXIgc2VydmljZXM8L2g0PjxwIGlkPSJ2aWV3Ol9pZDIzNDpjb21wdXRlZEZpZWxkNyI+UGxlYXNlIDxhIGhyZWY9Im1haWx0bzpzYWxlc0BpZWMuY2giPnNlbmQgeW91ciBlbnF1aXJ5IGJ5IGVtYWlsPC9hPiBvciBjYWxsIHVzIG9uICs0MSAyMiA5MTkgMDIgMTEgYmV0d2VlbiAwOTowMCAmbmRhc2g7IDE3OjAwIENFVCBNb25kYXkgdG8gRnJpZGF5LjwvcD48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGZvb3RlciByb2xlPSJjb250ZW50aW5mbyI+PGRpdiBjbGFzcz0iaW5uZXIiPjxwIGNsYXNzPSJzb2NpYWwiPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL2ZhY2Vib29rIiB0aXRsZT0iRmFjZWJvb2siPjxzcGFuIGNsYXNzPSJpY29uLWZhY2Vib29rIj48L3NwYW4+PGI+RmFjZWJvb2s8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3R3aXR0ZXIiIHRpdGxlPSJUd2l0dGVyIj48c3BhbiBjbGFzcz0iaWNvbi10d2l0dGVyIj48L3NwYW4+PGI+VHdpdHRlcjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvbGlua2VkaW4iIHRpdGxlPSJMaW5rZWRJbiI+PHNwYW4gY2xhc3M9Imljb24tbGlua2VkaW4iPjwvc3Bhbj48Yj5MaW5rZWRJbjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvcGludGVyZXN0IiB0aXRsZT0iUGludGVyZXN0Ij48c3BhbiBjbGFzcz0iaWNvbi1waW50ZXJlc3QiPjwvc3Bhbj48Yj5QaW50ZXJlc3Q8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3lvdXR1YmUiIHRpdGxlPSJZb3VUdWJlIj48c3BhbiBjbGFzcz0iaWNvbi15b3V0dWJlIj48L3NwYW4+PGI+WW91VHViZTwvYj48L2E+PC9wPjx1bCBjbGFzcz0ibGlua3MgdGVydGlhcnkgaW5saW5lIj48bGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsyIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1DU0pOLTlWQ0JXSiI+VGVybXMgJmFtcDsgQ29uZGl0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaC9hYm91dC9wcml2YWN5LyI+UHJpdmFjeTwvYT48L2xpPjwvdWw+PHVsIGNsYXNzPSJjb3B5cmlnaHQgdGVydGlhcnkgaW5saW5lIj48bGk+PGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1HRk9ULTdOV042UCI+Q29weXJpZ2h0PC9hPjwvaT4mbmJzcDsmY29weTsmbmJzcDs8YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaCI+SUVDPC9hPiZuYnNwOzxzcGFuIGlkPSJ2aWV3Ol9pZDI1ODpjb21wdXRlZEZpZWxkMSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4yMDIwPC9zcGFuPi4mbmJzcDtBbGwgcmlnaHRzIHJlc2VydmVkLjwvbGk+PC91bD48cCBjbGFzcz0ic2VsZiI+PGEgaHJlZj0iI2llYy13ZWJzdG9yZSI+VG9wPHNwYW4gY2xhc3M9Imljb24tY2lyY2xlLWFycm93LXVwIj48L3NwYW4+PC9hPjwvcD48L2Rpdj48L2Zvb3Rlcj48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL3ZlbmRvci9qcXVlcnktMS44LjMtbWluLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL2NvbmZpZy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy9wbHVnaW5zLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL21haW4uanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAvL3ZhciBlbGxpcHNlc3RleHQgPSAiLi4uIjsKICAgIHZhciBlbGxpcHNlc3RleHQgPSAiIjsKICAgIHZhciBtb3JldGV4dCA9ICJTaG93IG1vcmUgwrsiOwogICAgdmFyIGxlc3N0ZXh0ID0gIlNob3cgbGVzcyI7CiAgICAKICAgIHZhciBjb250ZW50SGVpZ2h0OwogICAgdmFyIHNob3dIZWlnaHQ9MjAwOwogICAgCgogICAgJCgnLnJlYWRtb3JlJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgY29udGVudCA9ICQodGhpcykuaHRtbCgpOwoKICAgICAgICBjb250ZW50SGVpZ2h0ID0gJCgnLnJlYWRtb3JlJykuaGVpZ2h0KCk7IAogICAgICAgIGlmKGNvbnRlbnRIZWlnaHQgPiBzaG93SGVpZ2h0KSB7CiAgICAgICAgCSQoJy5yZWFkbW9yZScpLmNzcyh7CgkJCSAgICAgICAgIm1heC1oZWlnaHQiOnNob3dIZWlnaHQsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICJoaWRkZW4iCgkJCSAgICB9KTsKICAgICAgICAgICAgJCh0aGlzKS5hZnRlcignPHNwYW4gY2xhc3M9Im1vcmVlbGxpcHNlcyI+JyArIGVsbGlwc2VzdGV4dCsgJzwvc3Bhbj48c3Bhbj48YSBocmVmPSIiIGNsYXNzPSJtb3JlbGluayI+JyArIG1vcmV0ZXh0ICsgJzwvYT48L3NwYW4+Jyk7CiAgICAgICAgfSAKICAgIH0pOwogCiAgICAkKCIubW9yZWxpbmsiKS5jbGljayhmdW5jdGlvbigpewogICAgICAgIGlmKCQodGhpcykuaGFzQ2xhc3MoImxlc3MiKSkgewogICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChtb3JldGV4dCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkKCcucmVhZG1vcmUnKS5jc3MoewoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjpzaG93SGVpZ2h0LAoJCQkgICAgICAgICJvdmVyZmxvdyIgOiAiaGlkZGVuIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6c2hvd0hlaWdodAoJCQl9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChsZXNzdGV4dCk7CiAgICAKCQkJJCgnLnJlYWRtb3JlJykuY3NzKHsJCQkJCQoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjoiIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6IiIsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICIiCgkJCX0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkKHRoaXMpLnByZXYoKS50b2dnbGUoKTsgIC8vIHNob3cvaGlkZSAiLi4uIiAKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgpmdW5jdGlvbiB2aWV3X19pZDNfX2lkNDZfY2xpZW50U2lkZV9vbkNsaWVudExvYWQodGhpc0V2ZW50KSB7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyAKCXRyeXsJCgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJdmFyIGJhc2tldG5hbWU9cmV0dXJuQ29va2llVmFsKGpzQ29va2llTmFtZSk7CgkJCgkJY29tcHV0ZUJhc2tldEl0ZW1zKGJhc2tldG5hbWUpOwoJCWNvbXB1dGVEQUZpbGVzKCk7CgkJJCgiZGl2LmJ1eWJveCBmb3JtIikuc3VibWl0KAoJCQkJCQlmdW5jdGlvbigpIHsKCgkJCQkJCQl2YXIgbWVkaWEgPSAkKHRoaXMpLmF0dHIoJ2NsYXNzJyk7CgkJCQkJCQl2YXIgcHJpY2UgPSAkKHRoaXMpLmZpbmQoKCdpbnB1dFtuYW1lPWFydF9wcmljZV0nKSkKCQkJCQkJCQkJLnZhbCgpOwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtuYW1lPWFydF9sYW5nXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJCQkKCQkJCQkJCXZhciBsYW5nYXJ0bnVtID0gJCh0aGlzKS5maW5kKAoJCQkJCQkJCQkoJ1tjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwkJCgkJCQkJCQkJCQoJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJdmFyIGJhc2tldG5hbWUyID0gZ2V0Q29va2llKGpzQ29va2llTmFtZSk7CgkJCQkJCQlBZGRUb0Jhc2tldChtZWRpYSwgbGFuZ2FydG51bSwgYmFza2V0bmFtZTIpOwoKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfSk7CgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJfSBjYXRjaChlKSB7YWxlcnQoZS5tZXNzYWdlKTt9CgkJCn0pOwoKfQoKZnVuY3Rpb24gdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljayh0aGlzRXZlbnQpIHsKdmFyIG15V2luZG93ID0gd2luZG93Lm9wZW4oImh0dHA6Ly9lZXB1cmwuY29tL2JZM3Y3OSIsICJfYmxhbmsiLCAidG9vbGJhcj1ubywgc2Nyb2xsYmFycz1ubywgcmVzaXphYmxlPW5vLCB0b3A9MjAwLCBsZWZ0PTUwMCwgd2lkdGg9OTAwLCBoZWlnaHQ9NTU1Iik7CgoKfQoKWFNQLmFkZE9uTG9hZChmdW5jdGlvbigpIHsKWFNQLmF0dGFjaEV2ZW50KCJ2aWV3Ol9pZDM6X2lkNDYiLCAidmlldzpfaWQzIiwgIm9uQ2xpZW50TG9hZCIsIHZpZXdfX2lkM19faWQ0Nl9jbGllbnRTaWRlX29uQ2xpZW50TG9hZCwgZmFsc2UsIDIpOwpYU1AuYXR0YWNoUGFydGlhbCgidmlldzpfaWQyMDY6X2lkMzA0Ol9pZDIxMCIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiLCAidmlldzpfaWQyMDY6X2lkMzA0OmxpbmtzaG93YWxsIiwgIm9uY2xpY2siLCBmdW5jdGlvbigpe30sIDIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiIpOwpYU1AuYXR0YWNoRXZlbnQoInZpZXc6X2lkMjM0Ol9pZDI1NSIsICJ2aWV3Ol9pZDIzNDpsaW5rMSIsICJvbmNsaWNrIiwgdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljaywgZmFsc2UsIDIpOwp9KTsgCgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
114
+ PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZighbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpd2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW5cdTAwMjZwdWJpZD0xNjBcdTAwMjZ0ZXN0XHUwMDI2U2Vzc2lvbklEPUZSSk5PNDNSVkkiOzwvc2NyaXB0Pgo8dGl0bGU+SUVDIDYwMDUwLTEwMjoyMDA3IHwgSUVDIFdlYnN0b3JlPC90aXRsZT4KPGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvZmF2aWNvbi5pY28iPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIveHNwLy5pYm14c3ByZXMvZG9qb3Jvb3QtMS42LjEvZG9qby9kb2pvLmpzIiBkakNvbmZpZz0ibG9jYWxlOiAnZW4tdXMnLCBwYXJzZU9uTG9hZDogdHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii94c3AvLmlibXhzcHJlcy9kb2pvcm9vdC0xLjYuMS9pYm0veHNwL3dpZGdldC9sYXlvdXQvbGF5ZXJzL3hzcENsaWVudERvam8uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9qby5yZXF1aXJlKCdkb2pvLnBhcnNlcicpPC9zY3JpcHQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9kb21qYXZhL3hzcC90aGVtZS93ZWJzdGFuZGFyZC94c3AuY3NzIj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL2RvbWphdmEveHNwL3RoZW1lL3dlYnN0YW5kYXJkL3hzcExUUi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvY3NzL2llYy13ZWJzdG9yZS5jc3MiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL1hTUExpYnJhcnkuanMiPjwvc2NyaXB0Pgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSUVDIDYwMDUwLTEwMjoyMDA3IFN0YW5kYXJkIHwgSW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIFZvY2FidWxhcnkgKElFVikgLSBQYXJ0IDEwMjogTWF0aGVtYXRpY3MgLSBHZW5lcmFsIGNvbmNlcHRzIGFuZCBsaW5lYXIgYWxnZWJyYSI+CjxtZXRhIG5hbWU9IkNvcHlyaWdodCIgY29udGVudD0iSUVDIC0gSW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIENvbW1pc3Npb24iPgo8bWV0YSBuYW1lPSJMYW5ndWFnZSIgY29udGVudD0iRW5nbGlzaCI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCIgcmVsPSJjYW5vbmljYWwiPgo8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iSUVDIDYwMDUwLTEwMjoyMDA3LCBTdGFuZGFyZCI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5kb2pvLnJlcXVpcmUoJ2Rvam8uY29va2llJyk8L3NjcmlwdD4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8bWV0YSBjb250ZW50PSJvbiIgaHR0cC1lcXVpdj0iY2xlYXJ0eXBlIj4KPG1ldGEgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSIgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi9IaXN0b3J5V29ya0luUHJvZ3Jlc3NMaWIiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+KGZ1bmN0aW9uKGkscyxvLGcscixhLG0pe2lbJ0dvb2dsZUFuYWx5dGljc09iamVjdCddPXI7aVtyXT1pW3JdfHxmdW5jdGlvbigpeyAoaVtyXS5xPWlbcl0ucXx8W10pLnB1c2goYXJndW1lbnRzKX0saVtyXS5sPTEqbmV3IERhdGUoKTthPXMuY3JlYXRlRWxlbWVudChvKSwgIG09cy5nZXRFbGVtZW50c0J5VGFnTmFtZShvKVswXTthLmFzeW5jPTE7YS5zcmM9ZzttLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsbSkgIH0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnLy93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20vYW5hbHl0aWNzLmpzJywnZ2EnKTsgIGdhKCdjcmVhdGUnLCAnVUEtMzQzOTgzMzEtMicsICdhdXRvJyk7IGdhKCdzZXQnLCAnZGltZW5zaW9uMScsICcnKTsgZ2EoJ3NlbmQnLCAncGFnZXZpZXcnKTs8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy92ZW5kb3IvbW9kZXJuaXpyLmN1c3RvbS40MjE5Ny5qcyI+PC9zY3JpcHQ+PHNjcmlwdD52YXIganNEQkNBVEFMT0c9Ii93ZWJzdG9yZS9JRUNDYXRhLm5zZiI7IHZhciBqc1BhdGhXZWJzdG9yZURCPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmIjsgdmFyIGpzQ29va2llTmFtZT0iaWVjd2Vic3RvcmUiOwoJCS8vY29uc29sZS5sb2coImNvb2tpZXZhbCA9ICIrcmV0dXJuQ29va2llVmFsKGpzQ29va2llTmFtZSkpOzwvc2NyaXB0PjxoZWFkZXIgY2xhc3M9ImJyYW5kaW5nIiByb2xlPSJiYW5uZXIiPjxkaXYgY2xhc3M9ImlubmVyIj48YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaCIgb25DbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnSUVDTG9nbycsICdDbGljaycsICd3d3cuaWVjLmNoJyk7IiB0aXRsZT0id3d3LmllYy5jaCI+PGRpdiBjbGFzcz0ibG9nbyI+PGltZyBhbHQ9IklFQyBsb2dvIiBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9pbWcvbG9nb19pZWNfMjc2LmpwZyI+PC9kaXY+PC9hPjxoMT48c3Ryb25nPldlYnN0b3JlPC9zdHJvbmc+Jm5ic3A7STxpPm50ZXJuYXRpb25hbCZuYnNwOzwvaT5FPGk+bGVjdHJvdGVjaG5pY2FsJm5ic3A7PC9pPkM8aT5vbW1pc3Npb248L2k+PC9oMT48ZGl2IGNsYXNzPSJjb25uZWN0Ij48YSBpZD0idmlldzpfaWQzOmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCZhbXA7bG9naW4iIGNsYXNzPSJsb2dvdXQiPlNpZ24gaW48L2E+PHNwYW4gaWQ9InZpZXc6X2lkMzpsYWJlbDIiIGNsYXNzPSJ4c3BUZXh0TGFiZWwiPiB8IDwvc3Bhbj48YSBpZD0idmlldzpfaWQzOmxpbmszIiBocmVmPSIvbmV3YWNjb3VudCIgY2xhc3M9InhzcExpbmsiPkNyZWF0ZSBhY2NvdW50PC9hPjxpPjxzcGFuIGlkPSJ2aWV3Ol9pZDM6Y29tcHV0ZWRGaWVsZDIiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSJzZWFyY2gtYm94LWFsdCI+PGZvcm0gaWQ9InZpZXc6X2lkMzpteUZvcm1zZWFyY2giIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCIgY2xhc3M9InNlYXJjaCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgb25zdWJtaXQ9IgoKCi8vd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9zZWFyY2hmb3JtJmFtcDtxPScrJCgmcXVvdDtbaWQkPXFdJnF1b3Q7KS52YWwoKTsKCi8vcmV0dXJuIGZhbHNlOwoKCnZhciBLRVlWQUwgPSAkKCZxdW90O1tpZCQ9cV0mcXVvdDspLnZhbCgpOwoJCQkJCQoJCQkJCUtFWVZBTCA9IEtFWVZBTC5yZXBsYWNlKC8lL2dpLCAmcXVvdDsgJnF1b3Q7KTsKCQkJCS8vCUtFWVZBTCA9IEtFWVZBTC5yZXBsYWNlKC8mcXVvdDsvZ2ksICZxdW90OyAmcXVvdDspOwoJCQkJCgkJCQkJCgkJCQkvLwkJS0VZVkFMPWVuY29kZVVSSUNvbXBvbmVudChLRVlWQUwudHJpbSgpKTsKCQkJCQl0cnkgewoJCQkJCQlLRVlWQUwgPSBlbmNvZGVVUklDb21wb25lbnQoS0VZVkFMLnRyaW0oKSk7CgkJCQkJfSBjYXRjaChlKXsKCQkJCQkJLy9JRTgKCQkJCQkJS0VZVkFMID0gZW5jb2RlVVJJQ29tcG9uZW50KCQudHJpbShLRVlWQUwpKTsKCQkJCQl9CgkJCQkKCQkJCQkKCQkJCQkKCQkJCQl3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvc2VhcmNoZm9ybSZhbXA7cT0nICsgS0VZVkFMOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkKCQkJCQkKCQkJCQkKIiByb2xlPSJzZWFyY2giPgo8cD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZpZXc6X2lkMzpteUZvcm1zZWFyY2g6cSIgbmFtZT0idmlldzpfaWQzOm15Rm9ybXNlYXJjaDpxIiBjbGFzcz0iaW5wdXQtNzUgc2VhcmNoLXF1ZXJ5IiBwbGFjZWhvbGRlcj0iU2VhcmNoIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWJsdWUgc3ltYm9sIj48c3BhbiBjbGFzcz0iaWNvbi1zZWFyY2giPjxiPkdvPC9iPjwvc3Bhbj48L2J1dHRvbj48L3A+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkdmlld2lkIiBpZD0idmlldzpfaWQzOm15Rm9ybXNlYXJjaF9fVlVJRCIgdmFsdWU9IiFmcmpubzQzcjhxISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkMzpteUZvcm1zZWFyY2giIHZhbHVlPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIj48L2Zvcm0+CjxwPjxhIGhyZWY9Ii9hZHZzZWFyY2hmb3JtIj5BZHZhbmNlZCBzZWFyY2g8L2E+PC9wPjwvZGl2PjwvZGl2PjwvaGVhZGVyPjxuYXYgaWQ9Im5hdmlnYXRpb24tdG9nZ2xlIiByb2xlPSJuYXZpZ2F0aW9uIj48dWw+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua0hvbWUiIGhyZWY9Ii9ob21lIiBjbGFzcz0icHVibGljYXRpb24iIHRhcmdldD0iX3NlbGYiPkhvbWU8L2E+PC9saT48bGk+PGEgaWQ9InZpZXc6X2lkMzpsaW5rU2lnbkluIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCZhbXA7bG9naW4iIGNsYXNzPSJ4c3BMaW5rIiB0eXBlPSJ0ZXh0L2h0bWwiPlNpZ24gaW48L2E+PC9saT48bGk+PGEgaWQ9InZpZXc6X2lkMzpsaW5rSGVscCIgaHJlZj0iL2hlbHAiIGNsYXNzPSJwdWJsaWNhdGlvbiI+SGVscDwvYT48L2xpPjxsaT48YSBpZD0idmlldzpfaWQzOmxpbmtCYXNrZXQiIGhyZWY9ImphdmFzY3JpcHQ6b3BlbkJhc2tldCgnQW5vbnltb3VzJyk7IiBjbGFzcz0icHVibGljYXRpb24iPkNhcnQgPHNwYW4gY2xhc3M9Im5iLWl0ZW1zIG5iLWl0ZW1zLWJ1eSI+PC9zcGFuPjwvYT48L2xpPjxsaSBjbGFzcz0ibGlua2FkdnNlYXJjaCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PGEgaWQ9InZpZXc6X2lkMzpsaW5rYWR2c2VhcmNoIiBocmVmPSIvYWR2c2VhcmNoZm9ybSIgY2xhc3M9InB1YmxpY2F0aW9uIj5BZHZhbmNlZCBTZWFyY2g8L2E+PC9saT48L3VsPjwvbmF2PjxkaXYgY2xhc3M9ImNvbnRhaW5lciIgcm9sZT0ibWFpbiI+PGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtLWJsb2NrIGFsZXJ0LXN1Y2Nlc3MgYWxlcnQtZGlzbWlzc2FibGUiIGlkPSJtZXNzYWdlYmFza2V0IiBzdHlsZT0iZGlzcGxheTpub25lIj48YnV0dG9uIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0iYWxlcnQiIHR5cGU9ImJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPjxwIGNsYXNzPSJzZWNvbmRhcnkiPjxzcGFuPjwvc3Bhbj48L3A+PC9kaXY+PHNlY3Rpb24gY2xhc3M9ImFydGljbGUiIGl0ZW1zY29wZT0iICIgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1Byb2R1Y3QiPjxkaXYgY2xhc3M9ImwtbWFpbiI+PHNwYW4gaXRlbXByb3A9ImJyYW5kIiBpdGVtc2NvcGU9IiAiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9Pcmdhbml6YXRpb24iPjxtZXRhIGNvbnRlbnQ9IklFQyIgaXRlbXByb3A9Im5hbWUiPjwvc3Bhbj48aDEgY2xhc3M9InJlZmVyZW5jZSI+PHNwYW4gaWQ9InZpZXc6ZE9DVU1FTlROQU1FMSIgaXRlbXByb3A9InByb2R1Y3RJRCI+SUVDIDYwMDUwLTEwMjoyMDA3PC9zcGFuPiZuYnNwOzxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ5IiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48L2gxPjxoMiBpZD0idmlldzpFbmdsaXNoX1RpdGxlIiBjbGFzcz0idGl0bGUiIGl0ZW1wcm9wPSJuYW1lIj5JbnRlcm5hdGlvbmFsIEVsZWN0cm90ZWNobmljYWwgVm9jYWJ1bGFyeSAoSUVWKSAtIFBhcnQgMTAyOiBNYXRoZW1hdGljcyAtIEdlbmVyYWwgY29uY2VwdHMgYW5kIGxpbmVhciBhbGdlYnJhPC9oMj48dWwgY2xhc3M9Im1ldGEgaW5saW5lIHNlcGFyYXRlZCI+PGxpPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ4IiB0aXRsZT0iVGVybWlub2xvZ3kiPlRDIDE8L3NwYW4+PC9saT48bGkgY2xhc3M9InByZXZpZXciPjxhIGhyZWY9IiNhZGRpdGlvbmFsaW5mbyI+Jm5ic3A7QWRkaXRpb25hbCBpbmZvcm1hdGlvbjwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0ibC1hc2lkZSI+PGRpdiBjbGFzcz0ibC1ib3ggaXMtYWx3YXlzLXZpc2libGUiPjxkaXYgY2xhc3M9InRhYmJhYmxlIGJ1eWJveCI+PHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMiIGlkPSJidXlib3hiIj48bGkgaWQ9InZpZXc6X2lkNzU6X2lkNzg6cmVwZWF0MTowOmNvbXB1dGVkRmllbGQyIiBjbGFzcz0iYWN0aXZlIj48YSBocmVmPSIucGFuZUUiIGRhdGEtdG9nZ2xlPSJ0YWIiPiBEb3dubG9hZDwvYT48L2xpPjxsaSBpZD0idmlldzpfaWQ3NTpfaWQ3ODpyZXBlYXQxOjE6Y29tcHV0ZWRGaWVsZDIiPjxhIGhyZWY9Ii5wYW5lUCIgZGF0YS10b2dnbGU9InRhYiI+IEhhcmRjb3B5PC9hPjwvbGk+PC91bD48ZGl2IGNsYXNzPSJ0YWItY29udGVudCI+PHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6Y29tcHV0ZWRGaWVsZDEiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxkaXYgY2xhc3M9InRhYi1wYW5lIGZhZGUgYWN0aXZlIGluIHBhbmVFIj4KPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOmNvbXB1dGVkRmllbGQyIiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48Zm9ybSBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODIiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW4mYW1wO3B1YmlkPTE2MCZhbXA7dGVzdCIgY2xhc3M9IkUiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgo8ZmllbGRzZXQgY2xhc3M9InBhcmFtZXRlcnMiPjxkaXYgY2xhc3M9ImJveC1wYW5lIHNlZ21lbnQgc3R5bGVkLXNlbGVjdCI+PHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmNvbXB1dGVkRmllbGQ0IiBzdHlsZT0iY29sb3I6cmdiKDI1NSwwLDApIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48ZGl2IGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4Mjpjb21wdXRlZEZpZWxkNSIgc3R5bGU9Im1hcmdpbi10b3A6NHB4IiBjbGFzcz0ibGFuZ3N3aXRjaGxhYmVsIj5FbmdsaXNoL0ZyZW5jaDwvZGl2PjxvcHRpb24gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmNvbXB1dGVkRmllbGQ2IiBzdHlsZT0iZGlzcGxheTpub25lIiBjbGFzcz0ibGFuZ3N3aXRjaCI+MTYwRU4tRlI8L29wdGlvbj48L2Rpdj48ZGl2IGNsYXNzPSJib3gtcGFuZSBzZWdtZW50Ij48c3BhbiBpdGVtcHJvcD0ib2ZmZXJzIiBpdGVtc2NvcGU9IiAiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9PZmZlciI+PGFiYnIgaXRlbXByb3A9InByaWNlQ3VycmVuY3kiIHRpdGxlPSJTd2lzcyBGcmFuY3MiPkNIRjwvYWJicj4mbmJzcDs8bGFiZWwgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmxhYmVsMSIgY2xhc3M9InByaWNlIiBjb250ZW50PSIzMTAiIGl0ZW1wcm9wPSJwcmljZSI+MzEwLi08c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODI6Y29tcHV0ZWRGaWVsZDMiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjwvbGFiZWw+PG1ldGEgY29udGVudD0iaHR0cDovL3NjaGVtYS5vcmcvSW5TdG9jayIgaXRlbXByb3A9ImF2YWlsYWJpbGl0eSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJveC1wYW5lIj4KPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1jb21taXQiIHR5cGU9InN1Ym1pdCI+QWRkIHRvIGNhcnQ8L2J1dHRvbj48L2Rpdj4KPC9maWVsZHNldD4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR2aWV3aWQiIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4Ml9fVlVJRCIgdmFsdWU9IiFmcmpubzQzcjhxISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyIiB2YWx1ZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODIiPjwvZm9ybT4KPHAgY2xhc3M9InNlY29uZGFyeSBib3gtb3B0Ij4KPGEgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9PcGVuJmFtcDtpZD1HRk9ULTdOUFA4SCIgY2xhc3M9InhzcExpbmsiPkRvIHlvdSBuZWVkIGEgbXVsdGktdXNlciBjb3B5PzwvYT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlICBwYW5lUCI+CjxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpjb21wdXRlZEZpZWxkMiIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGZvcm0gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QiIGNsYXNzPSJQIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGZpZWxkc2V0IGNsYXNzPSJwYXJhbWV0ZXJzIj48ZGl2IGNsYXNzPSJib3gtcGFuZSBzZWdtZW50IHN0eWxlZC1zZWxlY3QiPjxzcGFuIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4Mjpjb21wdXRlZEZpZWxkNCIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGRpdiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODI6Y29tcHV0ZWRGaWVsZDUiIHN0eWxlPSJtYXJnaW4tdG9wOjRweCIgY2xhc3M9Imxhbmdzd2l0Y2hsYWJlbCI+RW5nbGlzaC9GcmVuY2g8L2Rpdj48b3B0aW9uIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4Mjpjb21wdXRlZEZpZWxkNiIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgY2xhc3M9Imxhbmdzd2l0Y2giPjE2MEVOLUZSPC9vcHRpb24+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCI+PHNwYW4gaXRlbXByb3A9Im9mZmVycyIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT2ZmZXIiPjxhYmJyIGl0ZW1wcm9wPSJwcmljZUN1cnJlbmN5IiB0aXRsZT0iU3dpc3MgRnJhbmNzIj5DSEY8L2FiYnI+Jm5ic3A7PGxhYmVsIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjpsYWJlbDEiIGNsYXNzPSJwcmljZSIgY29udGVudD0iMzEwIiBpdGVtcHJvcD0icHJpY2UiPjMxMC4tPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmNvbXB1dGVkRmllbGQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPisgc2hpcHBpbmc8L3NwYW4+PC9sYWJlbD48bWV0YSBjb250ZW50PSJodHRwOi8vc2NoZW1hLm9yZy9JblN0b2NrIiBpdGVtcHJvcD0iYXZhaWxhYmlsaXR5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUiPgo8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWNvbW1pdCIgdHlwZT0ic3VibWl0Ij5BZGQgdG8gY2FydDwvYnV0dG9uPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyX19WVUlEIiB2YWx1ZT0iIWZyam5vNDNyOHEhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwZXhlY2lkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXR2YWx1ZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0c2Nyb2xsIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODIiIHZhbHVlPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MiI+PC9mb3JtPgo8L2Rpdj4KPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGhyPgo8L2hyPgo8ZGl2IGNsYXNzPSJsLW1haW4tcHVsbGVkIj48ZGl2IGNsYXNzPSJhYnN0cmFjdCI+PHAgY2xhc3M9ImJ0biBidG4tcHJldmlldyI+CjxhIGlkPSJ2aWV3OmxpbmsyIiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMiU3QmVkMS4wJTdEYi5wZGYiIHRhcmdldD0iX2JsYW5rIj5QcmV2aWV3PC9hPjwvcD4KPGgzPgpBYnN0cmFjdDwvaDM+CjxkaXYgaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDMiIGNsYXNzPSJyZWFkbW9yZSIgaXRlbXByb3A9ImRlc2NyaXB0aW9uIj5UaGlzIHBhcnQgb2YgSUVDIDYwMDUwIGdpdmVzIHRoZSBnZW5lcmFsIG1hdGhlbWF0aWNhbCB0ZXJtaW5vbG9neSB1c2VkIGluIHRoZSBmaWVsZHMgb2YgZWxlY3RyaWNpdHksIGVsZWN0cm9uaWNzIGFuZCB0ZWxlY29tbXVuaWNhdGlvbnMsIHRvZ2V0aGVyIHdpdGggYmFzaWMgY29uY2VwdHMgaW4gbGluZWFyIGFsZ2VicmEuIEl0IG1haW50YWlucyBhIGNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gbWF0aGVtYXRpY2FsIGNvbmNlcHRzIGFuZCBwaHlzaWNhbCBjb25jZXB0cywgZXZlbiBpZiBzb21lIHRlcm1zIGFyZSB1c2VkIGluIGJvdGggY2FzZXMuIEFub3RoZXIgcGFydCB3aWxsIGRlYWwgd2l0aCBmdW5jdGlvbnMuPGJyIC8+DQpJdCBoYXMgdGhlIHN0YXR1cyBvZiBhIGhvcml6b250YWwgc3RhbmRhcmQgaW4gYWNjb3JkYW5jZSB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL0FydG51bV9QSy8zNjQzNT9vDQpwZW5kb2N1bWVudCI+SUVDIEd1aWRlIDEwODwvYT4uPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibC1hc2lkZSI+PGRpdiBjbGFzcz0idG9jIj48aDM+Ckxvb2sgaW5zaWRlPC9oMz4KPGEgaWQ9InZpZXc6bGluazE1IiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMiU3QmVkMS4wJTdEYi5wZGYiIHRpdGxlPSJGcmVlIHByZXZpZXciIHRhcmdldD0iX2JsYW5rIj48dWwgY2xhc3M9ImJ1bGxldGVkLWxpc3Qgc2Vjb25kYXJ5IHQtY29sdW1ucyI+CjxpbWcgaWQ9InZpZXc6aW1hZ2UxIiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvbG9va2luc2lkZS5wbmciIGFsdD0iIiBjbGFzcz0ieHNwSW1hZ2UiPjwvdWw+CjwvYT48L2Rpdj48L2Rpdj48aHI+PGRpdiBjbGFzcz0ibC1tYWluIj48aDMgaWQ9ImFkZGl0aW9uYWxpbmZvIj5BZGRpdGlvbmFsIGluZm9ybWF0aW9uPC9oMz48ZGl2IGNsYXNzPSJ0YWJiYWJsZSI+PHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMiPjxsaSBjbGFzcz0iYWN0aXZlIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48L2xpPjxsaSBpZD0iaGlzdG9yeXRhYiI+PGEgZGF0YS10b2dnbGU9InRhYiIgaHJlZj0iI2hpc3RvcnkiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ2hpc3RvcnknKTsiPkhpc3Rvcnk8L2E+PC9saT48bGkgaWQ9IndvcmtpbnByb2dyZXNzdGFiIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjd29ya2lucHJvZ3Jlc3MiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ3dvcmtpbnByb2dyZXNzJyk7Ij5Xb3JrIGluIHByb2dyZXNzPC9hPjwvbGk+PGxpIGlkPSJsaTEiPjwvbGk+PGxpIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjdGFnY2xvdWQiPlRhZ3M8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9ImRldGFpbHMiPjx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaW5mbyB2ZXJ0aWNhbC10aCI+PHRib2R5Pjx0cj48dGggc2NvcGU9InJvdyI+UHVibGljYXRpb24gdHlwZTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ3IiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkludGVybmF0aW9uYWwgU3RhbmRhcmQ8L3NwYW4+PC90ZD48L3RyPgo8dHI+PHRoIHNjb3BlPSJyb3ciPlB1YmxpY2F0aW9uIGRhdGU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzppbnB1dFRleHQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiIGl0ZW1wcm9wPSJyZWxlYXNlRGF0ZSI+MjAwNy0wOC0yNzwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBzY29wZT0icm93Ij5FZGl0aW9uPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6aW5wdXRUZXh0MSI+MS4wPC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPkF2YWlsYWJsZSBsYW5ndWFnZShzKTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkVuZ2xpc2gvRnJlbmNoPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij48YWJiciB0aXRsZT0iVGVjaG5pY2FsIENvbW1pdHRlZSI+VEM8L2FiYnI+LzxhYmJyIHRpdGxlPSJTdWItY29tbWl0dGVlIj5TQzwvYWJicj48L3RoPjx0ZD48YSBpZD0idmlldzpsaW5rNiIgaHJlZj0iLi4vc2VhcmNoZm9ybSZDb21OdW1iZXI9MSIgY2xhc3M9InhzcExpbmsiPlRDIDEgLSBUZXJtaW5vbG9neTwvYT48YSBpZD0idmlldzpsaW5rMSIgaHJlZj0iaHR0cHM6Ly93ZWJzdG9yZS5pZWMuY2gvcnNzJnRjPVRDJTIwMSIgc3R5bGU9ImZsb2F0OnJpZ2h0IiBjbGFzcz0ic3ltYm9sIHJzcyIgdGl0bGU9IlN1YnNjcmliZSB0byB0aGlzIFJTUyBmZWVkIj48c3BhbiBjbGFzcz0iaWNvbi1yc3MiPjwvc3Bhbj48Yj5yc3M8L2I+PC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPklDUzwvdGg+PHRkPjxhIGlkPSJ2aWV3Omxpbms3IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wMS4wNDAuMDciIGNsYXNzPSJ4c3BMaW5rIj4wMS4wNDAuMDcgLSBNYXRoZW1hdGljcy4gTmF0dXJhbCBzY2llbmNlcyAoVm9jYWJ1bGFyaWVzKTwvYT48YnI+CjxhIGlkPSJ2aWV3Omxpbms4IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wNy4wMjAiIGNsYXNzPSJ4c3BMaW5rIj4wNy4wMjAgLSBNYXRoZW1hdGljcw0KPC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPlBhZ2VzPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDQiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+MTYyPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij5GaWxlIHNpemU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkNSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4xNzc2PC9zcGFuPiZuYnNwOzxhYmJyIHRpdGxlPSJLaWxvYml0cyI+S0I8L2FiYnI+PC90ZD48L3RyPgo8L3Rib2R5PjwvdGFibGU+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9Imhpc3RvcnkiPjxzcGFuIGlkPSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9IndvcmtpbnByb2dyZXNzIj48c3BhbiBpZD0idmlldzpfaWQxODM6eG1sV29ya2lucHJvZ3Jlc3MiPjwvc3Bhbj48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBwdWJpZCAgID0gIjE2MCI7CnZhciBwdWJ0eXBlID0gIklTIjsKCnZhciBYTUx1cmw9Ii9XZWJzdG9yZS93ZWJzdG9yZS5uc2YvQWpheFJlcXVlc3RYTUw/T3BlbmFnZW50JnVybD0iKyIiK3B1YmlkOwp2YXIgdGFyZ2V0SWRIaXN0b3J5PSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5IjsKdmFyIHRhcmdldElkV29ya2lucHJvZ3Jlc3M9InZpZXc6X2lkMTgzOnhtbFdvcmtpbnByb2dyZXNzIjsKdmFyIGFwSGlzdCA9IGRvam8uYnlJZCh0YXJnZXRJZEhpc3RvcnkpOwp2YXIgYXBXb3JrID0gZG9qby5ieUlkKHRhcmdldElkV29ya2lucHJvZ3Jlc3MpOwoKdHJ5IHsKCglkb2pvLnhockdldCh7CgkJdXJsOiBYTUx1cmwsCgkJbG9hZDogZnVuY3Rpb24oWE1McmVzdWx0KSB7CgkJCVhNTHBhcnNlSGlzdG9yeShYTUxyZXN1bHQsIHRhcmdldElkSGlzdG9yeSx0YXJnZXRJZFdvcmtpbnByb2dyZXNzKTsKCQl9LAogICAgZXJyb3I6IGZ1bmN0aW9uKGVycm9yLCBpb2FyZ3MpewoJICAgICAgYXBIaXN0LmlubmVySFRNTCA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkOiA8YnIgLz4iICsgZXJyb3I7CgkgICAgICBhcFdvcmsuaW5uZXJIVE1MID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQ6IDxiciAvPiIgKyBlcnJvcjsKCQkJfQoJCX0pOwoJCQoJICBpZiAocHVidHlwZT09J1RSRicpIHsJCQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoaXN0b3J5dGFiIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICB9CgkJCn0gY2F0Y2goZSkgewphbGVydCgiZXJyb3IgIiArIGUpfQo8L3NjcmlwdD4KPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRyZiI+PHA+VGhlIGZvbGxvd2luZyB0ZXN0IHJlcG9ydCBmb3JtcyBhcmUgcmVsYXRlZDo8L3A+PGRpdiBpZD0idmlldzpfaWQxODQ6cmVwZWF0cmVsYXRlZFRSRiI+CjwvZGl2Pgo8YnI+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRhZ2Nsb3VkIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsLWFzaWRlIj48Zm9ybSBpZD0idmlldzpfaWQyMDY6X2lkMzA0IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjAmYW1wO3Rlc3QiIGNsYXNzPSJ4c3BGb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGgzPlJlbGF0ZWQgcHVibGljYXRpb25zPC9oMz48ZGl2IGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiI+Cjx1bD48c3BhbiBpZD0idmlldzpfaWQyMDY6X2lkMzA0Om90aGVycGFydHMiPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vNjEzMTUib25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnUmVsYXRlZFB1YicsICdJRUMgNjAwNTAtMTAyOjIwMDcvQU1EMToyMDE3JywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMjoyMDA3L0FNRDE6MjAxNzwvYT48L2xpPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vNjY4NDQib25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnUmVsYXRlZFB1YicsICdJRUMgNjAwNTAtMTAyOjIwMDcvQU1EMjoyMDIwJywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMjoyMDA3L0FNRDI6MjAyMDwvYT48L2xpPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vMTYxIm9uY2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ1JlbGF0ZWRQdWInLCAnSUVDIDYwMDUwLTEwMzoyMDA5JywgJ0lFQyA2MDA1MC0xMDI6MjAwNycpOyI+SUVDIDYwMDUwLTEwMzoyMDA5PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82MTMxNyJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQxOjIwMTcnLCAnSUVDIDYwMDUwLTEwMjoyMDA3Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMToyMDE3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82NTc2OSJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQyOjIwMTknLCAnSUVDIDYwMDUwLTEwMjoyMDA3Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMjoyMDE5PC9hPjwvbGk+PC9zcGFuPjxsaSBjbGFzcz0ibW9yZSIgaWQ9IndyIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5TaG93IGFsbCAmcmFxdW87PC9hPjwvbGk+PC91bD48cD48L3A+PC9kaXY+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMjA2Ol9pZDMwNF9fVlVJRCIgdmFsdWU9IiFmcmpubzQzcjhxISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkMjA2Ol9pZDMwNCIgdmFsdWU9InZpZXc6X2lkMjA2Ol9pZDMwNCI+PC9mb3JtPgo8aDMgaWQ9InZpZXc6X2lkMjEyOmNvbXB1dGVkRmllbGQyIj5Nb3JlIGluZm9ybWF0aW9uPC9oMz48dWwgY2xhc3M9ImlubGluZSI+PGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlwdWIiPgo8L2Rpdj4KPGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQyI+CjxsaT48YSBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQzowOmxpbmsyIiBocmVmPSJodHRwczovL2llY2V0ZWNoLm9yZy9UZWNobmljYWwtQ29tbWl0dGVlcy8yMDE5LTAyL0luLXRoZS1iZWdpbm5pbmctdGhlcmUtd2FzLXRlcm1pbm9sb2d5IiB0YXJnZXQ9Il9ibGFuayI+QXJ0aWNsZTogYXZvaWRpbmcgYW1iaWd1aXR5PC9hPjwvbGk+PC9kaXY+CjwvdWw+PGJyPjxoMz5TaGFyZSB0aGlzIHBhZ2U8L2gzPjx1bCBjbGFzcz0iaW5saW5lIj48bGk+Jm5ic3A7PGEgaWQ9InZpZXc6X2lkMjE5OmxpbmsxIiBocmVmPSJtYWlsdG86P3N1YmplY3Q9Q2hlY2slMjBvdXQlMjBJRUMlMjA2MDA1MC0xMDIlM0EyMDA3JmFtcDtib2R5PUhlbGxvJTJDJTBBJTBBSSUyMHRob3VnaHQlMjB5b3UlMjBtaWdodCUyMGJlJTIwaW50ZXJlc3RlZCUyMGJ5JTIwdGhpcyUyMHB1YmxpY2F0aW9uJTNBJTBBJTBBJTA5aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCUwQSUwQS0tJTBBU2VudCUyMGZyb20lMjB0aGUlMjBJRUMlMjBXZWJzdG9yZSUyMHdlYnN0b3JlLmllYy5jaCUwQSIgY2xhc3M9InNzLWljb24gc3MtbWFpbC1yZWd1bGFyIiB0YXJnZXQ9Il9ibGFuayI+bWFpbDwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazEwIiBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYwJmFtcDt0ZXh0PUNoZWNrJTIwb3V0JTIwSUVDJTIwNjAwNTAtMTAyJTNBMjAwNyZhbXA7dmlhPUlFQ1N0YW5kYXJkcyIgY2xhc3M9InNzLWljb24gc3Mtc29jaWFsLXJlZ3VsYXIiIGNoYXJzZXQ9IlVURi04IiB0YXJnZXQ9Il9ibGFuayI+VHdpdHRlcjwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazExIiBocmVmPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIucGhwP3U9aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MCZhbXA7dD1DaGVjayUyMG91dCUyMElFQyUyMDYwMDUwLTEwMiUzQTIwMDciIGNsYXNzPSJzcy1pY29uIHNzLXNvY2lhbC1yZWd1bGFyIiBjaGFyc2V0PSJVVEYtOCIgdGFyZ2V0PSJfYmxhbmsiPkZhY2Vib29rPC9hPiZuYnNwOzwvbGk+PGxpPiZuYnNwOzxhIGlkPSJ2aWV3Ol9pZDIxOTpsaW5rMTMiIGhyZWY9Imh0dHA6Ly93d3cubGlua2VkaW4uY29tL3NoYXJlQXJ0aWNsZT9taW5pPXRydWUmYW1wO3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYwJmFtcDt0aXRsZT1JRUMlMjA2MDA1MC0xMDIlM0EyMDA3JmFtcDtzdW1tYXJ5PSZhbXA7c291cmNlPUlFQyUyMFdlYnN0b3JlIiBjbGFzcz0ic3MtaWNvbiBzcy1zb2NpYWwtcmVndWxhciIgY2hhcnNldD0iVVRGLTgiIHRhcmdldD0iX2JsYW5rIj5MaW5rZWRJbjwvYT4mbmJzcDs8L2xpPjwvdWw+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIxIj48aDQ+U2hhcmUgeW91ciBwdWJsaWNhdGlvbnM8L2g0PjxwPkxlYXJuIGhvdyB0byBzaGFyZSB5b3VyIHB1YmxpY2F0aW9ucyB3aXRoIHlvdXIKCQkJY29sbGVhZ3VlcywmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazIiIGhyZWY9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBGQVEueHNwP2lkPUdGT1QtN05QUDhIIj51c2luZyBuZXR3b3JraW5nIG9wdGlvbnM8L2E+LjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIyIj48aDQ+UGF5bWVudCBpbmZvcm1hdGlvbjwvaDQ+PHA+T3VyIHByaWNlcyBhcmUgaW4gU3dpc3MgZnJhbmNzICg8YWJiciB0aXRsZT0iU3dpc3MgZnJhbmNzIj5DSEY8L2FiYnI+KS4gV2UgYWNjZXB0IGFsbCBtYWpvciBjcmVkaXQgY2FyZHMgKEFtZXJpY2FuIEV4cHJlc3MsIE1hc3RlcmNhcmQgYW5kCgkJCVZpc2EpLCBQYXlQYWwgYW5kIGJhbmsgdHJhbnNmZXJzIGFzIGZvcm0gb2YgcGF5bWVudC48L3A+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIzIj48aDQ+S2VlcCBpbiB0b3VjaDwvaDQ+PHA+S2VlcCB1cCB0byBkYXRlIHdpdGggbmV3IHB1YmxpY2F0aW9uIHJlbGVhc2VzIGFuZAoJCQlhbm5vdW5jZW1lbnRzIHdpdGgKCQkJb3VyIGZyZWUmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazEiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5JRUMgSnVzdCBQdWJsaXNoZWQgZW1haWwgbmV3c2xldHRlcjwvYT4uPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImwtcXVhcnRlcjQiPjxoNCBpZD0idmlldzpfaWQyMzQ6Y29tcHV0ZWRGaWVsZDYiPkNvbnRhY3QgY3VzdG9tZXIgc2VydmljZXM8L2g0PjxwIGlkPSJ2aWV3Ol9pZDIzNDpjb21wdXRlZEZpZWxkNyI+UGxlYXNlIDxhIGhyZWY9Im1haWx0bzpzYWxlc0BpZWMuY2giPnNlbmQgeW91ciBlbnF1aXJ5IGJ5IGVtYWlsPC9hPiBvciBjYWxsIHVzIG9uICs0MSAyMiA5MTkgMDIgMTEgYmV0d2VlbiAwOTowMCAmbmRhc2g7IDE3OjAwIENFVCBNb25kYXkgdG8gRnJpZGF5LjwvcD48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGZvb3RlciByb2xlPSJjb250ZW50aW5mbyI+PGRpdiBjbGFzcz0iaW5uZXIiPjxwIGNsYXNzPSJzb2NpYWwiPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL2ZhY2Vib29rIiB0aXRsZT0iRmFjZWJvb2siPjxzcGFuIGNsYXNzPSJpY29uLWZhY2Vib29rIj48L3NwYW4+PGI+RmFjZWJvb2s8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3R3aXR0ZXIiIHRpdGxlPSJUd2l0dGVyIj48c3BhbiBjbGFzcz0iaWNvbi10d2l0dGVyIj48L3NwYW4+PGI+VHdpdHRlcjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvbGlua2VkaW4iIHRpdGxlPSJMaW5rZWRJbiI+PHNwYW4gY2xhc3M9Imljb24tbGlua2VkaW4iPjwvc3Bhbj48Yj5MaW5rZWRJbjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvcGludGVyZXN0IiB0aXRsZT0iUGludGVyZXN0Ij48c3BhbiBjbGFzcz0iaWNvbi1waW50ZXJlc3QiPjwvc3Bhbj48Yj5QaW50ZXJlc3Q8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3lvdXR1YmUiIHRpdGxlPSJZb3VUdWJlIj48c3BhbiBjbGFzcz0iaWNvbi15b3V0dWJlIj48L3NwYW4+PGI+WW91VHViZTwvYj48L2E+PC9wPjx1bCBjbGFzcz0ibGlua3MgdGVydGlhcnkgaW5saW5lIj48bGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsyIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1DU0pOLTlWQ0JXSiI+VGVybXMgJmFtcDsgQ29uZGl0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaC9hYm91dC9wcml2YWN5LyI+UHJpdmFjeTwvYT48L2xpPjwvdWw+PHVsIGNsYXNzPSJjb3B5cmlnaHQgdGVydGlhcnkgaW5saW5lIj48bGk+PGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1HRk9ULTdOV042UCI+Q29weXJpZ2h0PC9hPjwvaT4mbmJzcDsmY29weTsmbmJzcDs8YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaCI+SUVDPC9hPiZuYnNwOzxzcGFuIGlkPSJ2aWV3Ol9pZDI1ODpjb21wdXRlZEZpZWxkMSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4yMDIwPC9zcGFuPi4mbmJzcDtBbGwgcmlnaHRzIHJlc2VydmVkLjwvbGk+PC91bD48cCBjbGFzcz0ic2VsZiI+PGEgaHJlZj0iI2llYy13ZWJzdG9yZSI+VG9wPHNwYW4gY2xhc3M9Imljb24tY2lyY2xlLWFycm93LXVwIj48L3NwYW4+PC9hPjwvcD48L2Rpdj48L2Zvb3Rlcj48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL3ZlbmRvci9qcXVlcnktMS44LjMtbWluLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL2NvbmZpZy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy9wbHVnaW5zLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL21haW4uanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAvL3ZhciBlbGxpcHNlc3RleHQgPSAiLi4uIjsKICAgIHZhciBlbGxpcHNlc3RleHQgPSAiIjsKICAgIHZhciBtb3JldGV4dCA9ICJTaG93IG1vcmUgwrsiOwogICAgdmFyIGxlc3N0ZXh0ID0gIlNob3cgbGVzcyI7CiAgICAKICAgIHZhciBjb250ZW50SGVpZ2h0OwogICAgdmFyIHNob3dIZWlnaHQ9MjAwOwogICAgCgogICAgJCgnLnJlYWRtb3JlJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgY29udGVudCA9ICQodGhpcykuaHRtbCgpOwoKICAgICAgICBjb250ZW50SGVpZ2h0ID0gJCgnLnJlYWRtb3JlJykuaGVpZ2h0KCk7IAogICAgICAgIGlmKGNvbnRlbnRIZWlnaHQgPiBzaG93SGVpZ2h0KSB7CiAgICAgICAgCSQoJy5yZWFkbW9yZScpLmNzcyh7CgkJCSAgICAgICAgIm1heC1oZWlnaHQiOnNob3dIZWlnaHQsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICJoaWRkZW4iCgkJCSAgICB9KTsKICAgICAgICAgICAgJCh0aGlzKS5hZnRlcignPHNwYW4gY2xhc3M9Im1vcmVlbGxpcHNlcyI+JyArIGVsbGlwc2VzdGV4dCsgJzwvc3Bhbj48c3Bhbj48YSBocmVmPSIiIGNsYXNzPSJtb3JlbGluayI+JyArIG1vcmV0ZXh0ICsgJzwvYT48L3NwYW4+Jyk7CiAgICAgICAgfSAKICAgIH0pOwogCiAgICAkKCIubW9yZWxpbmsiKS5jbGljayhmdW5jdGlvbigpewogICAgICAgIGlmKCQodGhpcykuaGFzQ2xhc3MoImxlc3MiKSkgewogICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChtb3JldGV4dCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkKCcucmVhZG1vcmUnKS5jc3MoewoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjpzaG93SGVpZ2h0LAoJCQkgICAgICAgICJvdmVyZmxvdyIgOiAiaGlkZGVuIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6c2hvd0hlaWdodAoJCQl9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChsZXNzdGV4dCk7CiAgICAKCQkJJCgnLnJlYWRtb3JlJykuY3NzKHsJCQkJCQoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjoiIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6IiIsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICIiCgkJCX0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkKHRoaXMpLnByZXYoKS50b2dnbGUoKTsgIC8vIHNob3cvaGlkZSAiLi4uIiAKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgpmdW5jdGlvbiB2aWV3X19pZDNfX2lkNDZfY2xpZW50U2lkZV9vbkNsaWVudExvYWQodGhpc0V2ZW50KSB7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyAKCXRyeXsJCgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJdmFyIGJhc2tldG5hbWU9cmV0dXJuQ29va2llVmFsKGpzQ29va2llTmFtZSk7CgkJCgkJY29tcHV0ZUJhc2tldEl0ZW1zKGJhc2tldG5hbWUpOwoJCWNvbXB1dGVEQUZpbGVzKCk7CgkJJCgiZGl2LmJ1eWJveCBmb3JtIikuc3VibWl0KAoJCQkJCQlmdW5jdGlvbigpIHsKCgkJCQkJCQl2YXIgbWVkaWEgPSAkKHRoaXMpLmF0dHIoJ2NsYXNzJyk7CgkJCQkJCQl2YXIgcHJpY2UgPSAkKHRoaXMpLmZpbmQoKCdpbnB1dFtuYW1lPWFydF9wcmljZV0nKSkKCQkJCQkJCQkJLnZhbCgpOwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtuYW1lPWFydF9sYW5nXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJCQkKCQkJCQkJCXZhciBsYW5nYXJ0bnVtID0gJCh0aGlzKS5maW5kKAoJCQkJCQkJCQkoJ1tjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwkJCgkJCQkJCQkJCQoJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJdmFyIGJhc2tldG5hbWUyID0gZ2V0Q29va2llKGpzQ29va2llTmFtZSk7CgkJCQkJCQlBZGRUb0Jhc2tldChtZWRpYSwgbGFuZ2FydG51bSwgYmFza2V0bmFtZTIpOwoKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfSk7CgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJfSBjYXRjaChlKSB7YWxlcnQoZS5tZXNzYWdlKTt9CgkJCn0pOwoKfQoKZnVuY3Rpb24gdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljayh0aGlzRXZlbnQpIHsKdmFyIG15V2luZG93ID0gd2luZG93Lm9wZW4oImh0dHA6Ly9lZXB1cmwuY29tL2JZM3Y3OSIsICJfYmxhbmsiLCAidG9vbGJhcj1ubywgc2Nyb2xsYmFycz1ubywgcmVzaXphYmxlPW5vLCB0b3A9MjAwLCBsZWZ0PTUwMCwgd2lkdGg9OTAwLCBoZWlnaHQ9NTU1Iik7CgoKfQoKWFNQLmFkZE9uTG9hZChmdW5jdGlvbigpIHsKWFNQLmF0dGFjaEV2ZW50KCJ2aWV3Ol9pZDM6X2lkNDYiLCAidmlldzpfaWQzIiwgIm9uQ2xpZW50TG9hZCIsIHZpZXdfX2lkM19faWQ0Nl9jbGllbnRTaWRlX29uQ2xpZW50TG9hZCwgZmFsc2UsIDIpOwpYU1AuYXR0YWNoUGFydGlhbCgidmlldzpfaWQyMDY6X2lkMzA0Ol9pZDIxMCIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiLCAidmlldzpfaWQyMDY6X2lkMzA0OmxpbmtzaG93YWxsIiwgIm9uY2xpY2siLCBmdW5jdGlvbigpe30sIDIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiIpOwpYU1AuYXR0YWNoRXZlbnQoInZpZXc6X2lkMjM0Ol9pZDI1NSIsICJ2aWV3Ol9pZDIzNDpsaW5rMSIsICJvbmNsaWNrIiwgdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljaywgZmFsc2UsIDIpOwp9KTsgCgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
115
115
  http_version:
116
- recorded_at: Fri, 26 Jun 2020 14:15:56 GMT
116
+ recorded_at: Sat, 26 Sep 2020 08:42:39 GMT
117
117
  - request:
118
118
  method: get
119
119
  uri: https://webstore.iec.ch/webstore/webstore.nsf/AjaxRequestXML?Openagent&url=http://www.iec.ch/dyn/www/f?p=103:390:::::P390_PUBLICATION_ID:160
@@ -143,17 +143,17 @@ http_interactions:
143
143
  Server:
144
144
  - Lotus-Domino
145
145
  Date:
146
- - Fri, 26 Jun 2020 14:15:58 GMT
146
+ - Sat, 26 Sep 2020 08:42:44 GMT
147
147
  Cache-Control:
148
148
  - NoCache
149
149
  X-Cache:
150
150
  - Miss from cloudfront
151
151
  Via:
152
- - 1.1 3fc090af5e840c09e1796cd1af76a002.cloudfront.net (CloudFront)
152
+ - 1.1 15e6f9c3ac6c2537f1ceab6be002a66c.cloudfront.net (CloudFront)
153
153
  X-Amz-Cf-Pop:
154
- - SYD1-C2
154
+ - SYD1-C1
155
155
  X-Amz-Cf-Id:
156
- - 5JO9NSgoO1DXixv3iURoIYVGyGkLgwqWm8dpqCwqi71aDT4ZwaPbyA==
156
+ - h0sjRtXjRGrT5lb_x2WUVAztxSGA9xy2Y1cziyCdu84eBZd5Vf-iTw==
157
157
  body:
158
158
  encoding: ASCII-8BIT
159
159
  string: "<!DOCTYPE html>\n<html>\n<style type=\"text/css\" media=\"screen\">\nhtml{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}header{display:block}a{background:0
@@ -216,7 +216,7 @@ http_interactions:
216
216
  class=\"alert alert-danger\">\n\t\t\t<span>404</span> <small>Not Found</small>\n\t\t</h2>\n\t</div>\n\t<div
217
217
  class=\"container\">\n\t\t<ul class=\"reasons\">\n\t\t</ul>\n\t\t<p>\n\t\t\n\t\t</p>\n\t\t\n\t</div>\n</body>\n</html>\n\n"
218
218
  http_version:
219
- recorded_at: Fri, 26 Jun 2020 14:15:57 GMT
219
+ recorded_at: Sat, 26 Sep 2020 08:42:40 GMT
220
220
  - request:
221
221
  method: get
222
222
  uri: https://webstore.iec.ch/searchkey&RefNbr=IEC%2060050-103&From=&To=&start=1
@@ -238,21 +238,21 @@ http_interactions:
238
238
  Content-Type:
239
239
  - text/html; charset=US-ASCII
240
240
  Content-Length:
241
- - '840'
241
+ - '856'
242
242
  Connection:
243
243
  - keep-alive
244
244
  Server:
245
245
  - Lotus-Domino
246
246
  Date:
247
- - Fri, 26 Jun 2020 14:16:00 GMT
247
+ - Sat, 26 Sep 2020 08:42:45 GMT
248
248
  X-Cache:
249
249
  - Miss from cloudfront
250
250
  Via:
251
- - 1.1 4715204d6158cc3d3c88ac56effd794a.cloudfront.net (CloudFront)
251
+ - 1.1 2d39749f0342007f9798eeb0800f8a0f.cloudfront.net (CloudFront)
252
252
  X-Amz-Cf-Pop:
253
- - SYD1-C2
253
+ - SYD1-C1
254
254
  X-Amz-Cf-Id:
255
- - Tq8rWOFcebtqjGbieH2e4HH_s40I3B17J-Fd7b_AsVq9PbIgcSviaQ==
255
+ - KjiGhP6KGlIkoaWMZK-5-UQhT1-OYwAVRIJzlqRGHVb2066ULN8jAA==
256
256
  body:
257
257
  encoding: ASCII-8BIT
258
258
  string: "<html>\n<head>\n</head>\n<body text=\"#000000\">\n\n<style>\n\t.highlight
@@ -277,11 +277,13 @@ http_interactions:
277
277
  1 - International Electrotechnical Vocabulary (IEV) - Part 103: Mathematics
278
278
  - Functions</li>\r\n\n<li>\r\n\n<a href=\"/publication/65769\">IEC 60050-103:2009/AMD2:2019</a>\r\n\n<br>Amendment
279
279
  2 - International Electrotechnical Vocabulary (IEV) - Part 103: Mathematics
280
+ - Functions</li>\r\n\n<li>\r\n\n<a href=\"/publication/67574\">IEC 60050-103:2009/AMD3:2020</a>\r\n\n<br>Amendment
281
+ 3 - International Electrotechnical Vocabulary (IEV) - Part 103: Mathematics
280
282
  - Functions</li>\r\n\n</ul>\r\n\n</li>\r\n\n</ul>\n<div class=\"pagination
281
283
  pagination-centered\">\n\t\t\t\t<ul><li class=\"active\"><a href=\"#\" Title=\"Current
282
284
  page\">1</a></li></ul>\n\t\t </div>\n</body>\n</html>\n"
283
285
  http_version:
284
- recorded_at: Fri, 26 Jun 2020 14:15:58 GMT
286
+ recorded_at: Sat, 26 Sep 2020 08:42:41 GMT
285
287
  - request:
286
288
  method: get
287
289
  uri: https://webstore.iec.ch/publication/161
@@ -305,31 +307,31 @@ http_interactions:
305
307
  Content-Type:
306
308
  - text/html;charset=UTF-8
307
309
  Content-Length:
308
- - '6944'
310
+ - '6946'
309
311
  Connection:
310
312
  - keep-alive
311
313
  Server:
312
314
  - Lotus-Domino
313
315
  Date:
314
- - Fri, 26 Jun 2020 14:16:01 GMT
316
+ - Sat, 26 Sep 2020 08:42:46 GMT
315
317
  Set-Cookie:
316
- - SessionID=FOQH88G0YC; path=/
318
+ - SessionID=FRJNO6G457; path=/
317
319
  Expires:
318
320
  - "-1"
319
321
  X-Cache:
320
322
  - Miss from cloudfront
321
323
  Via:
322
- - 1.1 da12738b8eacc0d543b2915c5e4262dd.cloudfront.net (CloudFront)
324
+ - 1.1 e677c49086c9d85b00b0230e47b36ec1.cloudfront.net (CloudFront)
323
325
  X-Amz-Cf-Pop:
324
- - SYD1-C2
326
+ - SYD1-C1
325
327
  X-Amz-Cf-Id:
326
- - YJb9MzZcCEQ8u92FtDdnfYQe-oOOtQJ0aCTtA6V679K9n26R393Qqg==
328
+ - gm61qZAaMk9Azgdj4XD5DRxFFhOIQARtMS5Y1rGE8enObVfPLipomg==
327
329
  body:
328
330
  encoding: ASCII-8BIT
329
331
  string: !binary |-
330
- PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZighbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpd2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW5cdTAwMjZwdWJpZD0xNjFcdTAwMjZ0ZXN0XHUwMDI2U2Vzc2lvbklEPUZPUUg4OEcwWUMiOzwvc2NyaXB0Pgo8dGl0bGU+SUVDIDYwMDUwLTEwMzoyMDA5IHwgSUVDIFdlYnN0b3JlPC90aXRsZT4KPGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvZmF2aWNvbi5pY28iPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIveHNwLy5pYm14c3ByZXMvZG9qb3Jvb3QtMS42LjEvZG9qby9kb2pvLmpzIiBkakNvbmZpZz0ibG9jYWxlOiAnZW4tdXMnLCBwYXJzZU9uTG9hZDogdHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii94c3AvLmlibXhzcHJlcy9kb2pvcm9vdC0xLjYuMS9pYm0veHNwL3dpZGdldC9sYXlvdXQvbGF5ZXJzL3hzcENsaWVudERvam8uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9qby5yZXF1aXJlKCdkb2pvLnBhcnNlcicpPC9zY3JpcHQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9kb21qYXZhL3hzcC90aGVtZS93ZWJzdGFuZGFyZC94c3AuY3NzIj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL2RvbWphdmEveHNwL3RoZW1lL3dlYnN0YW5kYXJkL3hzcExUUi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvY3NzL2llYy13ZWJzdG9yZS5jc3MiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL1hTUExpYnJhcnkuanMiPjwvc2NyaXB0Pgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSUVDIDYwMDUwLTEwMzoyMDA5IFN0YW5kYXJkIHwgSW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIFZvY2FidWxhcnkgKElFVikgLSBQYXJ0IDEwMzogTWF0aGVtYXRpY3MgLSBGdW5jdGlvbnMiPgo8bWV0YSBuYW1lPSJDb3B5cmlnaHQiIGNvbnRlbnQ9IklFQyAtIEludGVybmF0aW9uYWwgRWxlY3Ryb3RlY2huaWNhbCBDb21taXNzaW9uIj4KPG1ldGEgbmFtZT0iTGFuZ3VhZ2UiIGNvbnRlbnQ9IkVuZ2xpc2giPgo8bGluayBocmVmPSJodHRwczovL3dlYnN0b3JlLmllYy5jaC9wdWJsaWNhdGlvbi8xNjEiIHJlbD0iY2Fub25pY2FsIj4KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IklFQyA2MDA1MC0xMDM6MjAwOSwgU3RhbmRhcmQiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9qby5yZXF1aXJlKCdkb2pvLmNvb2tpZScpPC9zY3JpcHQ+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPG1ldGEgY29udGVudD0ib24iIGh0dHAtZXF1aXY9ImNsZWFydHlwZSI+CjxtZXRhIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvSGlzdG9yeVdvcmtJblByb2dyZXNzTGliIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPihmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsgKGlbcl0ucT1pW3JdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9LGlbcl0ubD0xKm5ldyBEYXRlKCk7YT1zLmNyZWF0ZUVsZW1lbnQobyksICBtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2FuYWx5dGljcy5qcycsJ2dhJyk7ICBnYSgnY3JlYXRlJywgJ1VBLTM0Mzk4MzMxLTInLCAnYXV0bycpOyBnYSgnc2V0JywgJ2RpbWVuc2lvbjEnLCAnJyk7IGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxzY3JpcHQgc3JjPSIvd2Vic3RvcmVfQnVpbGQvanMvdmVuZG9yL21vZGVybml6ci5jdXN0b20uNDIxOTcuanMiPjwvc2NyaXB0PjxzY3JpcHQ+dmFyIGpzREJDQVRBTE9HPSIvd2Vic3RvcmUvSUVDQ2F0YS5uc2YiOyB2YXIganNQYXRoV2Vic3RvcmVEQj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZiI7IHZhciBqc0Nvb2tpZU5hbWU9ImllY3dlYnN0b3JlIjsKCQkvL2NvbnNvbGUubG9nKCJjb29raWV2YWwgPSAiK3JldHVybkNvb2tpZVZhbChqc0Nvb2tpZU5hbWUpKTs8L3NjcmlwdD48aGVhZGVyIGNsYXNzPSJicmFuZGluZyIgcm9sZT0iYmFubmVyIj48ZGl2IGNsYXNzPSJpbm5lciI+PGEgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2giIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0lFQ0xvZ28nLCAnQ2xpY2snLCAnd3d3LmllYy5jaCcpOyIgdGl0bGU9Ind3dy5pZWMuY2giPjxkaXYgY2xhc3M9ImxvZ28iPjxpbWcgYWx0PSJJRUMgbG9nbyIgc3JjPSIvd2Vic3RvcmVfQnVpbGQvaW1nL2xvZ29faWVjXzI3Ni5qcGciPjwvZGl2PjwvYT48aDE+PHN0cm9uZz5XZWJzdG9yZTwvc3Ryb25nPiZuYnNwO0k8aT5udGVybmF0aW9uYWwmbmJzcDs8L2k+RTxpPmxlY3Ryb3RlY2huaWNhbCZuYnNwOzwvaT5DPGk+b21taXNzaW9uPC9pPjwvaDE+PGRpdiBjbGFzcz0iY29ubmVjdCI+PGEgaWQ9InZpZXc6X2lkMzpsaW5rMSIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QmYW1wO2xvZ2luIiBjbGFzcz0ibG9nb3V0Ij5TaWduIGluPC9hPjxzcGFuIGlkPSJ2aWV3Ol9pZDM6bGFiZWwyIiBjbGFzcz0ieHNwVGV4dExhYmVsIj4gfCA8L3NwYW4+PGEgaWQ9InZpZXc6X2lkMzpsaW5rMyIgaHJlZj0iL25ld2FjY291bnQiIGNsYXNzPSJ4c3BMaW5rIj5DcmVhdGUgYWNjb3VudDwvYT48aT48c3BhbiBpZD0idmlldzpfaWQzOmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48L2k+PC9kaXY+PGRpdiBjbGFzcz0ic2VhcmNoLWJveC1hbHQiPjxmb3JtIGlkPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QiIGNsYXNzPSJzZWFyY2giIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG9uc3VibWl0PSIKCgovL3dpbmRvdy5sb2NhdGlvbi5ocmVmPScvc2VhcmNoZm9ybSZhbXA7cT0nKyQoJnF1b3Q7W2lkJD1xXSZxdW90OykudmFsKCk7CgovL3JldHVybiBmYWxzZTsKCgp2YXIgS0VZVkFMID0gJCgmcXVvdDtbaWQkPXFdJnF1b3Q7KS52YWwoKTsKCQkJCQkKCQkJCQlLRVlWQUwgPSBLRVlWQUwucmVwbGFjZSgvJS9naSwgJnF1b3Q7ICZxdW90Oyk7CgkJCQkvLwlLRVlWQUwgPSBLRVlWQUwucmVwbGFjZSgvJnF1b3Q7L2dpLCAmcXVvdDsgJnF1b3Q7KTsKCQkJCQoJCQkJCQoJCQkJLy8JCUtFWVZBTD1lbmNvZGVVUklDb21wb25lbnQoS0VZVkFMLnRyaW0oKSk7CgkJCQkJdHJ5IHsKCQkJCQkJS0VZVkFMID0gZW5jb2RlVVJJQ29tcG9uZW50KEtFWVZBTC50cmltKCkpOwoJCQkJCX0gY2F0Y2goZSl7CgkJCQkJCS8vSUU4CgkJCQkJCUtFWVZBTCA9IGVuY29kZVVSSUNvbXBvbmVudCgkLnRyaW0oS0VZVkFMKSk7CgkJCQkJfQoJCQkJCgkJCQkJCgkJCQkJCgkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL3NlYXJjaGZvcm0mYW1wO3E9JyArIEtFWVZBTDsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJCgkJCQkJCgkJCQkJCiIgcm9sZT0ic2VhcmNoIj4KPHA+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoOnEiIG5hbWU9InZpZXc6X2lkMzpteUZvcm1zZWFyY2g6cSIgY2xhc3M9ImlucHV0LTc1IHNlYXJjaC1xdWVyeSIgcGxhY2Vob2xkZXI9IlNlYXJjaCI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1ibHVlIHN5bWJvbCI+PHNwYW4gY2xhc3M9Imljb24tc2VhcmNoIj48Yj5HbzwvYj48L3NwYW4+PC9idXR0b24+PC9wPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMzpteUZvcm1zZWFyY2hfX1ZVSUQiIHZhbHVlPSIhZm9xaDg4Z2NlYyEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdGlkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BleGVjaWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHZhbHVlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRzY3JvbGwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIiB2YWx1ZT0idmlldzpfaWQzOm15Rm9ybXNlYXJjaCI+PC9mb3JtPgo8cD48YSBocmVmPSIvYWR2c2VhcmNoZm9ybSI+QWR2YW5jZWQgc2VhcmNoPC9hPjwvcD48L2Rpdj48L2Rpdj48L2hlYWRlcj48bmF2IGlkPSJuYXZpZ2F0aW9uLXRvZ2dsZSIgcm9sZT0ibmF2aWdhdGlvbiI+PHVsPjxsaT48YSBpZD0idmlldzpfaWQzOmxpbmtIb21lIiBocmVmPSIvaG9tZSIgY2xhc3M9InB1YmxpY2F0aW9uIiB0YXJnZXQ9Il9zZWxmIj5Ib21lPC9hPjwvbGk+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua1NpZ25JbiIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QmYW1wO2xvZ2luIiBjbGFzcz0ieHNwTGluayIgdHlwZT0idGV4dC9odG1sIj5TaWduIGluPC9hPjwvbGk+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua0hlbHAiIGhyZWY9Ii9oZWxwIiBjbGFzcz0icHVibGljYXRpb24iPkhlbHA8L2E+PC9saT48bGk+PGEgaWQ9InZpZXc6X2lkMzpsaW5rQmFza2V0IiBocmVmPSJqYXZhc2NyaXB0Om9wZW5CYXNrZXQoJ0Fub255bW91cycpOyIgY2xhc3M9InB1YmxpY2F0aW9uIj5DYXJ0IDxzcGFuIGNsYXNzPSJuYi1pdGVtcyBuYi1pdGVtcy1idXkiPjwvc3Bhbj48L2E+PC9saT48bGkgY2xhc3M9ImxpbmthZHZzZWFyY2giIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua2FkdnNlYXJjaCIgaHJlZj0iL2FkdnNlYXJjaGZvcm0iIGNsYXNzPSJwdWJsaWNhdGlvbiI+QWR2YW5jZWQgU2VhcmNoPC9hPjwvbGk+PC91bD48L25hdj48ZGl2IGNsYXNzPSJjb250YWluZXIiIHJvbGU9Im1haW4iPjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LS1ibG9jayBhbGVydC1zdWNjZXNzIGFsZXJ0LWRpc21pc3NhYmxlIiBpZD0ibWVzc2FnZWJhc2tldCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PGJ1dHRvbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImNsb3NlIiBkYXRhLWRpc21pc3M9ImFsZXJ0IiB0eXBlPSJidXR0b24iPiZ0aW1lczs8L2J1dHRvbj48cCBjbGFzcz0ic2Vjb25kYXJ5Ij48c3Bhbj48L3NwYW4+PC9wPjwvZGl2PjxzZWN0aW9uIGNsYXNzPSJhcnRpY2xlIiBpdGVtc2NvcGU9IiAiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9Qcm9kdWN0Ij48ZGl2IGNsYXNzPSJsLW1haW4iPjxzcGFuIGl0ZW1wcm9wPSJicmFuZCIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT3JnYW5pemF0aW9uIj48bWV0YSBjb250ZW50PSJJRUMiIGl0ZW1wcm9wPSJuYW1lIj48L3NwYW4+PGgxIGNsYXNzPSJyZWZlcmVuY2UiPjxzcGFuIGlkPSJ2aWV3OmRPQ1VNRU5UTkFNRTEiIGl0ZW1wcm9wPSJwcm9kdWN0SUQiPklFQyA2MDA1MC0xMDM6MjAwOTwvc3Bhbj4mbmJzcDs8c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkOSIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PC9oMT48aDIgaWQ9InZpZXc6RW5nbGlzaF9UaXRsZSIgY2xhc3M9InRpdGxlIiBpdGVtcHJvcD0ibmFtZSI+SW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIFZvY2FidWxhcnkgKElFVikgLSBQYXJ0IDEwMzogTWF0aGVtYXRpY3MgLSBGdW5jdGlvbnM8L2gyPjx1bCBjbGFzcz0ibWV0YSBpbmxpbmUgc2VwYXJhdGVkIj48bGk+PHNwYW4gaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDgiIHRpdGxlPSJUZXJtaW5vbG9neSI+VEMgMTwvc3Bhbj48L2xpPjxsaSBjbGFzcz0icHJldmlldyI+PGEgaHJlZj0iI2FkZGl0aW9uYWxpbmZvIj4mbmJzcDtBZGRpdGlvbmFsIGluZm9ybWF0aW9uPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJsLWFzaWRlIj48ZGl2IGNsYXNzPSJsLWJveCBpcy1hbHdheXMtdmlzaWJsZSI+PGRpdiBjbGFzcz0idGFiYmFibGUgYnV5Ym94Ij48dWwgY2xhc3M9Im5hdiBuYXYtdGFicyIgaWQ9ImJ1eWJveGIiPjxsaSBpZD0idmlldzpfaWQ3NTpfaWQ3ODpyZXBlYXQxOjA6Y29tcHV0ZWRGaWVsZDIiIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9Ii5wYW5lRSIgZGF0YS10b2dnbGU9InRhYiI+IERvd25sb2FkPC9hPjwvbGk+PGxpIGlkPSJ2aWV3Ol9pZDc1Ol9pZDc4OnJlcGVhdDE6MTpjb21wdXRlZEZpZWxkMiI+PGEgaHJlZj0iLnBhbmVQIiBkYXRhLXRvZ2dsZT0idGFiIj4gSGFyZGNvcHk8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij48c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpjb21wdXRlZEZpZWxkMSIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSBhY3RpdmUgaW4gcGFuZUUiPgo8c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6Y29tcHV0ZWRGaWVsZDIiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxmb3JtIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MiIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBQdWJsaWNhdGlvbi54c3A/T3BlbiZhbXA7cHViaWQ9MTYxJmFtcDt0ZXN0IiBjbGFzcz0iRSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CjxmaWVsZHNldCBjbGFzcz0icGFyYW1ldGVycyI+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCBzdHlsZWQtc2VsZWN0Ij48c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODI6Y29tcHV0ZWRGaWVsZDQiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxzZWxlY3QgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmFydF9sYW5nIiBuYW1lPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MjphcnRfbGFuZyIgY2xhc3M9Imxhbmdzd2l0Y2giIHNpemU9IjEiIHN0eWxlPSJmb250LXNpemU6MTVweCI+CTxvcHRpb24gdmFsdWU9IjE2MUVOLUZSIj5FbmdsaXNoL0ZyZW5jaDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0iMTYxRVMiPlNwYW5pc2g8L29wdGlvbj4KPC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCI+PHNwYW4gaXRlbXByb3A9Im9mZmVycyIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT2ZmZXIiPjxhYmJyIGl0ZW1wcm9wPSJwcmljZUN1cnJlbmN5IiB0aXRsZT0iU3dpc3MgRnJhbmNzIj5DSEY8L2FiYnI+Jm5ic3A7PGxhYmVsIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MjpsYWJlbDEiIGNsYXNzPSJwcmljZSIgY29udGVudD0iMzEwIiBpdGVtcHJvcD0icHJpY2UiPjMxMC4tPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmNvbXB1dGVkRmllbGQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48L2xhYmVsPjxtZXRhIGNvbnRlbnQ9Imh0dHA6Ly9zY2hlbWEub3JnL0luU3RvY2siIGl0ZW1wcm9wPSJhdmFpbGFiaWxpdHkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJib3gtcGFuZSI+CjxidXR0b24gY2xhc3M9ImJ0biBidG4tY29tbWl0IiB0eXBlPSJzdWJtaXQiPkFkZCB0byBjYXJ0PC9idXR0b24+PC9kaXY+CjwvZmllbGRzZXQ+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkdmlld2lkIiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODJfX1ZVSUQiIHZhbHVlPSIhZm9xaDg4Z2NlYyEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdGlkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BleGVjaWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHZhbHVlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRzY3JvbGwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MiIgdmFsdWU9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyIj48L2Zvcm0+CjxwIGNsYXNzPSJzZWNvbmRhcnkgYm94LW9wdCI+CjxhIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpsaW5rMSIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cEZBUS54c3A/T3BlbiZhbXA7aWQ9R0ZPVC03TlBQOEgiIGNsYXNzPSJ4c3BMaW5rIj5EbyB5b3UgbmVlZCBhIG11bHRpLXVzZXIgY29weT88L2E+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSAgcGFuZVAiPgo8c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6Y29tcHV0ZWRGaWVsZDIiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxmb3JtIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MiIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBQdWJsaWNhdGlvbi54c3A/T3BlbiZhbXA7cHViaWQ9MTYxJmFtcDt0ZXN0IiBjbGFzcz0iUCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CjxmaWVsZHNldCBjbGFzcz0icGFyYW1ldGVycyI+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCBzdHlsZWQtc2VsZWN0Ij48c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODI6Y29tcHV0ZWRGaWVsZDQiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxzZWxlY3QgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmFydF9sYW5nIiBuYW1lPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjphcnRfbGFuZyIgY2xhc3M9Imxhbmdzd2l0Y2giIHNpemU9IjEiIHN0eWxlPSJmb250LXNpemU6MTVweCI+CTxvcHRpb24gdmFsdWU9IjE2MUVOLUZSIj5FbmdsaXNoL0ZyZW5jaDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0iMTYxRVMiPlNwYW5pc2g8L29wdGlvbj4KPC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCI+PHNwYW4gaXRlbXByb3A9Im9mZmVycyIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT2ZmZXIiPjxhYmJyIGl0ZW1wcm9wPSJwcmljZUN1cnJlbmN5IiB0aXRsZT0iU3dpc3MgRnJhbmNzIj5DSEY8L2FiYnI+Jm5ic3A7PGxhYmVsIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjpsYWJlbDEiIGNsYXNzPSJwcmljZSIgY29udGVudD0iMzEwIiBpdGVtcHJvcD0icHJpY2UiPjMxMC4tPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmNvbXB1dGVkRmllbGQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPisgc2hpcHBpbmc8L3NwYW4+PC9sYWJlbD48bWV0YSBjb250ZW50PSJodHRwOi8vc2NoZW1hLm9yZy9JblN0b2NrIiBpdGVtcHJvcD0iYXZhaWxhYmlsaXR5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUiPgo8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWNvbW1pdCIgdHlwZT0ic3VibWl0Ij5BZGQgdG8gY2FydDwvYnV0dG9uPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyX19WVUlEIiB2YWx1ZT0iIWZvcWg4OGdjZWMhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwZXhlY2lkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXR2YWx1ZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0c2Nyb2xsIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODIiIHZhbHVlPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MiI+PC9mb3JtPgo8L2Rpdj4KPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGhyPgo8L2hyPgo8ZGl2IGNsYXNzPSJsLW1haW4tcHVsbGVkIj48ZGl2IGNsYXNzPSJhYnN0cmFjdCI+PHAgY2xhc3M9ImJ0biBidG4tcHJldmlldyI+CjxhIGlkPSJ2aWV3OmxpbmsyIiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMyU3QmVkMS4wJTdEYi5wZGYiIHRhcmdldD0iX2JsYW5rIj5QcmV2aWV3PC9hPjwvcD4KPGgzPgpBYnN0cmFjdDwvaDM+CjxkaXYgaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDMiIGNsYXNzPSJyZWFkbW9yZSIgaXRlbXByb3A9ImRlc2NyaXB0aW9uIj5JRUMgNjAwNTAtMTAzOjIwMDkgZ2l2ZXMgdGhlIHRlcm1pbm9sb2d5IHJlbGF0aXZlIHRvIGZ1bmN0aW9ucyBvZiBvbmUgb3IgbW9yZSB2YXJpYWJsZXMuIFRvZ2V0aGVyIHdpdGggSUVDIDYwMDUwLTEwMiwgaXQgY292ZXJzIHRoZSBtYXRoZW1hdGljYWwgdGVybWlub2xvZ3kgdXNlZCBpbiB0aGUgZmllbGRzIG9mIGVsZWN0cmljaXR5LCBlbGVjdHJvbmljcyBhbmQgdGVsZWNvbW11bmljYXRpb25zLiBJdCBtYWludGFpbnMgYSBjbGVhciBkaXN0aW5jdGlvbiBiZXR3ZWVuIG1hdGhlbWF0aWNhbCBjb25jZXB0cyBhbmQgcGh5c2ljYWwgY29uY2VwdHMsIGV2ZW4gaWYgc29tZSB0ZXJtcyBhcmUgdXNlZCBpbiBib3RoIGNhc2VzLiBNYXRoZW1hdGljYWwgc3ltYm9scyBhcmUgZ2VuZXJhbGx5IGluIGFjY29yZGFuY2Ugd2l0aCBJRUMgNjAwMjctMSBhbmQgSVNPIDgwMDAwLTIuIFRoaXMgc3RhbmRhcmQgY2FuY2VscyBhbmQgcmVwbGFjZXMgU2VjdGlvbnMgMTAxLTEzLCAxMDEtMTQgYW5kIDEwMS0xNSBvZiBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkIElFQyA2MDA1MC0xMDE6MTk5OC48YnIgLz4NCkl0IGhhcyB0aGUgc3RhdHVzIG9mIGEgaG9yaXpvbnRhbCBzdGFuZGFyZCBpbiBhY2NvcmRhbmNlIHdpdGggPGEgaHJlZj0iaHR0cDovL3dlYnN0b3JlLmllYy5jaC93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvQXJ0bnVtX1BLLzM2NDM1P29wZW5kb2N1bWVudCI+SUVDIEd1aWRlIDEwODwvYT4uPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibC1hc2lkZSI+PGRpdiBjbGFzcz0idG9jIj48aDM+Ckxvb2sgaW5zaWRlPC9oMz4KPGEgaWQ9InZpZXc6bGluazE1IiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMyU3QmVkMS4wJTdEYi5wZGYiIHRpdGxlPSJGcmVlIHByZXZpZXciIHRhcmdldD0iX2JsYW5rIj48dWwgY2xhc3M9ImJ1bGxldGVkLWxpc3Qgc2Vjb25kYXJ5IHQtY29sdW1ucyI+CjxpbWcgaWQ9InZpZXc6aW1hZ2UxIiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvbG9va2luc2lkZS5wbmciIGFsdD0iIiBjbGFzcz0ieHNwSW1hZ2UiPjwvdWw+CjwvYT48L2Rpdj48L2Rpdj48aHI+PGRpdiBjbGFzcz0ibC1tYWluIj48aDMgaWQ9ImFkZGl0aW9uYWxpbmZvIj5BZGRpdGlvbmFsIGluZm9ybWF0aW9uPC9oMz48ZGl2IGNsYXNzPSJ0YWJiYWJsZSI+PHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMiPjxsaSBjbGFzcz0iYWN0aXZlIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48L2xpPjxsaSBpZD0iaGlzdG9yeXRhYiI+PGEgZGF0YS10b2dnbGU9InRhYiIgaHJlZj0iI2hpc3RvcnkiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ2hpc3RvcnknKTsiPkhpc3Rvcnk8L2E+PC9saT48bGkgaWQ9IndvcmtpbnByb2dyZXNzdGFiIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjd29ya2lucHJvZ3Jlc3MiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ3dvcmtpbnByb2dyZXNzJyk7Ij5Xb3JrIGluIHByb2dyZXNzPC9hPjwvbGk+PGxpIGlkPSJsaTEiPjwvbGk+PGxpIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjdGFnY2xvdWQiPlRhZ3M8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9ImRldGFpbHMiPjx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaW5mbyB2ZXJ0aWNhbC10aCI+PHRib2R5Pjx0cj48dGggc2NvcGU9InJvdyI+UHVibGljYXRpb24gdHlwZTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ3IiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkludGVybmF0aW9uYWwgU3RhbmRhcmQ8L3NwYW4+PC90ZD48L3RyPgo8dHI+PHRoIHNjb3BlPSJyb3ciPlB1YmxpY2F0aW9uIGRhdGU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzppbnB1dFRleHQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiIGl0ZW1wcm9wPSJyZWxlYXNlRGF0ZSI+MjAwOS0xMi0xNDwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBzY29wZT0icm93Ij5FZGl0aW9uPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6aW5wdXRUZXh0MSI+MS4wPC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPkF2YWlsYWJsZSBsYW5ndWFnZShzKTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkVuZ2xpc2gvRnJlbmNoLCBTcGFuaXNoPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij48YWJiciB0aXRsZT0iVGVjaG5pY2FsIENvbW1pdHRlZSI+VEM8L2FiYnI+LzxhYmJyIHRpdGxlPSJTdWItY29tbWl0dGVlIj5TQzwvYWJicj48L3RoPjx0ZD48YSBpZD0idmlldzpsaW5rNiIgaHJlZj0iLi4vc2VhcmNoZm9ybSZDb21OdW1iZXI9MSIgY2xhc3M9InhzcExpbmsiPlRDIDEgLSBUZXJtaW5vbG9neTwvYT48YSBpZD0idmlldzpsaW5rMSIgaHJlZj0iaHR0cHM6Ly93ZWJzdG9yZS5pZWMuY2gvcnNzJnRjPVRDJTIwMSIgc3R5bGU9ImZsb2F0OnJpZ2h0IiBjbGFzcz0ic3ltYm9sIHJzcyIgdGl0bGU9IlN1YnNjcmliZSB0byB0aGlzIFJTUyBmZWVkIj48c3BhbiBjbGFzcz0iaWNvbi1yc3MiPjwvc3Bhbj48Yj5yc3M8L2I+PC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPklDUzwvdGg+PHRkPjxhIGlkPSJ2aWV3Omxpbms3IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wMS4wNDAuMDciIGNsYXNzPSJ4c3BMaW5rIj4wMS4wNDAuMDcgLSBNYXRoZW1hdGljcy4gTmF0dXJhbCBzY2llbmNlcyAoVm9jYWJ1bGFyaWVzKTwvYT48YnI+CjxhIGlkPSJ2aWV3Omxpbms4IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wNy4wMjAiIGNsYXNzPSJ4c3BMaW5rIj4wNy4wMjAgLSBNYXRoZW1hdGljcw0KPC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPlBhZ2VzPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDQiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+MTQxPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij5GaWxlIHNpemU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkNSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4xOTkxPC9zcGFuPiZuYnNwOzxhYmJyIHRpdGxlPSJLaWxvYml0cyI+S0I8L2FiYnI+PC90ZD48L3RyPgo8L3Rib2R5PjwvdGFibGU+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9Imhpc3RvcnkiPjxzcGFuIGlkPSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9IndvcmtpbnByb2dyZXNzIj48c3BhbiBpZD0idmlldzpfaWQxODM6eG1sV29ya2lucHJvZ3Jlc3MiPjwvc3Bhbj48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBwdWJpZCAgID0gIjE2MSI7CnZhciBwdWJ0eXBlID0gIklTIjsKCnZhciBYTUx1cmw9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvQWpheFJlcXVlc3RYTUw/T3BlbmFnZW50JnVybD0iKyIiK3B1YmlkOwp2YXIgdGFyZ2V0SWRIaXN0b3J5PSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5IjsKdmFyIHRhcmdldElkV29ya2lucHJvZ3Jlc3M9InZpZXc6X2lkMTgzOnhtbFdvcmtpbnByb2dyZXNzIjsKdmFyIGFwSGlzdCA9IGRvam8uYnlJZCh0YXJnZXRJZEhpc3RvcnkpOwp2YXIgYXBXb3JrID0gZG9qby5ieUlkKHRhcmdldElkV29ya2lucHJvZ3Jlc3MpOwoKdHJ5IHsKCglkb2pvLnhockdldCh7CgkJdXJsOiBYTUx1cmwsCgkJbG9hZDogZnVuY3Rpb24oWE1McmVzdWx0KSB7CgkJCVhNTHBhcnNlSGlzdG9yeShYTUxyZXN1bHQsIHRhcmdldElkSGlzdG9yeSx0YXJnZXRJZFdvcmtpbnByb2dyZXNzKTsKCQl9LAogICAgZXJyb3I6IGZ1bmN0aW9uKGVycm9yLCBpb2FyZ3MpewoJICAgICAgYXBIaXN0LmlubmVySFRNTCA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkOiA8YnIgLz4iICsgZXJyb3I7CgkgICAgICBhcFdvcmsuaW5uZXJIVE1MID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQ6IDxiciAvPiIgKyBlcnJvcjsKCQkJfQoJCX0pOwoJCQoJICBpZiAocHVidHlwZT09J1RSRicpIHsJCQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoaXN0b3J5dGFiIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICB9CgkJCn0gY2F0Y2goZSkgewphbGVydCgiZXJyb3IgIiArIGUpfQo8L3NjcmlwdD4KPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRyZiI+PHA+VGhlIGZvbGxvd2luZyB0ZXN0IHJlcG9ydCBmb3JtcyBhcmUgcmVsYXRlZDo8L3A+PGRpdiBpZD0idmlldzpfaWQxODQ6cmVwZWF0cmVsYXRlZFRSRiI+CjwvZGl2Pgo8YnI+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRhZ2Nsb3VkIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsLWFzaWRlIj48Zm9ybSBpZD0idmlldzpfaWQyMDY6X2lkMzA0IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QiIGNsYXNzPSJ4c3BGb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGgzPlJlbGF0ZWQgcHVibGljYXRpb25zPC9oMz48ZGl2IGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiI+Cjx1bD48c3BhbiBpZD0idmlldzpfaWQyMDY6X2lkMzA0Om90aGVycGFydHMiPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vMTYwIm9uY2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ1JlbGF0ZWRQdWInLCAnSUVDIDYwMDUwLTEwMjoyMDA3JywgJ0lFQyA2MDA1MC0xMDM6MjAwOScpOyI+SUVDIDYwMDUwLTEwMjoyMDA3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82MTMxNSJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDI6MjAwNy9BTUQxOjIwMTcnLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAyOjIwMDcvQU1EMToyMDE3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82Njg0NCJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDI6MjAwNy9BTUQyOjIwMjAnLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAyOjIwMDcvQU1EMjoyMDIwPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82MTMxNyJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQxOjIwMTcnLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMToyMDE3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82NTc2OSJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQyOjIwMTknLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMjoyMDE5PC9hPjwvbGk+PC9zcGFuPjxsaSBjbGFzcz0ibW9yZSIgaWQ9IndyIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5TaG93IGFsbCAmcmFxdW87PC9hPjwvbGk+PC91bD48cD48L3A+PC9kaXY+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMjA2Ol9pZDMwNF9fVlVJRCIgdmFsdWU9IiFmb3FoODhnY2VjISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkMjA2Ol9pZDMwNCIgdmFsdWU9InZpZXc6X2lkMjA2Ol9pZDMwNCI+PC9mb3JtPgo8aDMgaWQ9InZpZXc6X2lkMjEyOmNvbXB1dGVkRmllbGQyIj5Nb3JlIGluZm9ybWF0aW9uPC9oMz48dWwgY2xhc3M9ImlubGluZSI+PGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlwdWIiPgo8L2Rpdj4KPGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQyI+CjxsaT48YSBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQzowOmxpbmsyIiBocmVmPSJodHRwczovL2llY2V0ZWNoLm9yZy9UZWNobmljYWwtQ29tbWl0dGVlcy8yMDE5LTAyL0luLXRoZS1iZWdpbm5pbmctdGhlcmUtd2FzLXRlcm1pbm9sb2d5IiB0YXJnZXQ9Il9ibGFuayI+QXJ0aWNsZTogYXZvaWRpbmcgYW1iaWd1aXR5PC9hPjwvbGk+PC9kaXY+CjwvdWw+PGJyPjxoMz5TaGFyZSB0aGlzIHBhZ2U8L2gzPjx1bCBjbGFzcz0iaW5saW5lIj48bGk+Jm5ic3A7PGEgaWQ9InZpZXc6X2lkMjE5OmxpbmsxIiBocmVmPSJtYWlsdG86P3N1YmplY3Q9Q2hlY2slMjBvdXQlMjBJRUMlMjA2MDA1MC0xMDMlM0EyMDA5JmFtcDtib2R5PUhlbGxvJTJDJTBBJTBBSSUyMHRob3VnaHQlMjB5b3UlMjBtaWdodCUyMGJlJTIwaW50ZXJlc3RlZCUyMGJ5JTIwdGhpcyUyMHB1YmxpY2F0aW9uJTNBJTBBJTBBJTA5aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MSUwQSUwQS0tJTBBU2VudCUyMGZyb20lMjB0aGUlMjBJRUMlMjBXZWJzdG9yZSUyMHdlYnN0b3JlLmllYy5jaCUwQSIgY2xhc3M9InNzLWljb24gc3MtbWFpbC1yZWd1bGFyIiB0YXJnZXQ9Il9ibGFuayI+bWFpbDwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazEwIiBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYxJmFtcDt0ZXh0PUNoZWNrJTIwb3V0JTIwSUVDJTIwNjAwNTAtMTAzJTNBMjAwOSZhbXA7dmlhPUlFQ1N0YW5kYXJkcyIgY2xhc3M9InNzLWljb24gc3Mtc29jaWFsLXJlZ3VsYXIiIGNoYXJzZXQ9IlVURi04IiB0YXJnZXQ9Il9ibGFuayI+VHdpdHRlcjwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazExIiBocmVmPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIucGhwP3U9aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MSZhbXA7dD1DaGVjayUyMG91dCUyMElFQyUyMDYwMDUwLTEwMyUzQTIwMDkiIGNsYXNzPSJzcy1pY29uIHNzLXNvY2lhbC1yZWd1bGFyIiBjaGFyc2V0PSJVVEYtOCIgdGFyZ2V0PSJfYmxhbmsiPkZhY2Vib29rPC9hPiZuYnNwOzwvbGk+PGxpPiZuYnNwOzxhIGlkPSJ2aWV3Ol9pZDIxOTpsaW5rMTMiIGhyZWY9Imh0dHA6Ly93d3cubGlua2VkaW4uY29tL3NoYXJlQXJ0aWNsZT9taW5pPXRydWUmYW1wO3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYxJmFtcDt0aXRsZT1JRUMlMjA2MDA1MC0xMDMlM0EyMDA5JmFtcDtzdW1tYXJ5PSZhbXA7c291cmNlPUlFQyUyMFdlYnN0b3JlIiBjbGFzcz0ic3MtaWNvbiBzcy1zb2NpYWwtcmVndWxhciIgY2hhcnNldD0iVVRGLTgiIHRhcmdldD0iX2JsYW5rIj5MaW5rZWRJbjwvYT4mbmJzcDs8L2xpPjwvdWw+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIxIj48aDQ+U2hhcmUgeW91ciBwdWJsaWNhdGlvbnM8L2g0PjxwPkxlYXJuIGhvdyB0byBzaGFyZSB5b3VyIHB1YmxpY2F0aW9ucyB3aXRoIHlvdXIKCQkJY29sbGVhZ3VlcywmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazIiIGhyZWY9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBGQVEueHNwP2lkPUdGT1QtN05QUDhIIj51c2luZyBuZXR3b3JraW5nIG9wdGlvbnM8L2E+LjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIyIj48aDQ+UGF5bWVudCBpbmZvcm1hdGlvbjwvaDQ+PHA+T3VyIHByaWNlcyBhcmUgaW4gU3dpc3MgZnJhbmNzICg8YWJiciB0aXRsZT0iU3dpc3MgZnJhbmNzIj5DSEY8L2FiYnI+KS4gV2UgYWNjZXB0IGFsbCBtYWpvciBjcmVkaXQgY2FyZHMgKEFtZXJpY2FuIEV4cHJlc3MsIE1hc3RlcmNhcmQgYW5kCgkJCVZpc2EpLCBQYXlQYWwgYW5kIGJhbmsgdHJhbnNmZXJzIGFzIGZvcm0gb2YgcGF5bWVudC48L3A+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIzIj48aDQ+S2VlcCBpbiB0b3VjaDwvaDQ+PHA+S2VlcCB1cCB0byBkYXRlIHdpdGggbmV3IHB1YmxpY2F0aW9uIHJlbGVhc2VzIGFuZAoJCQlhbm5vdW5jZW1lbnRzIHdpdGgKCQkJb3VyIGZyZWUmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazEiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5JRUMgSnVzdCBQdWJsaXNoZWQgZW1haWwgbmV3c2xldHRlcjwvYT4uPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImwtcXVhcnRlcjQiPjxoNCBpZD0idmlldzpfaWQyMzQ6Y29tcHV0ZWRGaWVsZDYiPkNvbnRhY3QgY3VzdG9tZXIgc2VydmljZXM8L2g0PjxwIGlkPSJ2aWV3Ol9pZDIzNDpjb21wdXRlZEZpZWxkNyI+UGxlYXNlIDxhIGhyZWY9Im1haWx0bzpzYWxlc0BpZWMuY2giPnNlbmQgeW91ciBlbnF1aXJ5IGJ5IGVtYWlsPC9hPiBvciBjYWxsIHVzIG9uICs0MSAyMiA5MTkgMDIgMTEgYmV0d2VlbiAwOTowMCAmbmRhc2g7IDE3OjAwIENFVCBNb25kYXkgdG8gRnJpZGF5LjwvcD48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGZvb3RlciByb2xlPSJjb250ZW50aW5mbyI+PGRpdiBjbGFzcz0iaW5uZXIiPjxwIGNsYXNzPSJzb2NpYWwiPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL2ZhY2Vib29rIiB0aXRsZT0iRmFjZWJvb2siPjxzcGFuIGNsYXNzPSJpY29uLWZhY2Vib29rIj48L3NwYW4+PGI+RmFjZWJvb2s8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3R3aXR0ZXIiIHRpdGxlPSJUd2l0dGVyIj48c3BhbiBjbGFzcz0iaWNvbi10d2l0dGVyIj48L3NwYW4+PGI+VHdpdHRlcjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvbGlua2VkaW4iIHRpdGxlPSJMaW5rZWRJbiI+PHNwYW4gY2xhc3M9Imljb24tbGlua2VkaW4iPjwvc3Bhbj48Yj5MaW5rZWRJbjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvcGludGVyZXN0IiB0aXRsZT0iUGludGVyZXN0Ij48c3BhbiBjbGFzcz0iaWNvbi1waW50ZXJlc3QiPjwvc3Bhbj48Yj5QaW50ZXJlc3Q8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3lvdXR1YmUiIHRpdGxlPSJZb3VUdWJlIj48c3BhbiBjbGFzcz0iaWNvbi15b3V0dWJlIj48L3NwYW4+PGI+WW91VHViZTwvYj48L2E+PC9wPjx1bCBjbGFzcz0ibGlua3MgdGVydGlhcnkgaW5saW5lIj48bGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsyIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1DU0pOLTlWQ0JXSiI+VGVybXMgJmFtcDsgQ29uZGl0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaC9hYm91dC9wcml2YWN5LyI+UHJpdmFjeTwvYT48L2xpPjwvdWw+PHVsIGNsYXNzPSJjb3B5cmlnaHQgdGVydGlhcnkgaW5saW5lIj48bGk+PGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1HRk9ULTdOV042UCI+Q29weXJpZ2h0PC9hPjwvaT4mbmJzcDsmY29weTsmbmJzcDs8YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaCI+SUVDPC9hPiZuYnNwOzxzcGFuIGlkPSJ2aWV3Ol9pZDI1ODpjb21wdXRlZEZpZWxkMSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4yMDIwPC9zcGFuPi4mbmJzcDtBbGwgcmlnaHRzIHJlc2VydmVkLjwvbGk+PC91bD48cCBjbGFzcz0ic2VsZiI+PGEgaHJlZj0iI2llYy13ZWJzdG9yZSI+VG9wPHNwYW4gY2xhc3M9Imljb24tY2lyY2xlLWFycm93LXVwIj48L3NwYW4+PC9hPjwvcD48L2Rpdj48L2Zvb3Rlcj48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL3ZlbmRvci9qcXVlcnktMS44LjMtbWluLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL2NvbmZpZy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy9wbHVnaW5zLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL21haW4uanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAvL3ZhciBlbGxpcHNlc3RleHQgPSAiLi4uIjsKICAgIHZhciBlbGxpcHNlc3RleHQgPSAiIjsKICAgIHZhciBtb3JldGV4dCA9ICJTaG93IG1vcmUgwrsiOwogICAgdmFyIGxlc3N0ZXh0ID0gIlNob3cgbGVzcyI7CiAgICAKICAgIHZhciBjb250ZW50SGVpZ2h0OwogICAgdmFyIHNob3dIZWlnaHQ9MjAwOwogICAgCgogICAgJCgnLnJlYWRtb3JlJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgY29udGVudCA9ICQodGhpcykuaHRtbCgpOwoKICAgICAgICBjb250ZW50SGVpZ2h0ID0gJCgnLnJlYWRtb3JlJykuaGVpZ2h0KCk7IAogICAgICAgIGlmKGNvbnRlbnRIZWlnaHQgPiBzaG93SGVpZ2h0KSB7CiAgICAgICAgCSQoJy5yZWFkbW9yZScpLmNzcyh7CgkJCSAgICAgICAgIm1heC1oZWlnaHQiOnNob3dIZWlnaHQsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICJoaWRkZW4iCgkJCSAgICB9KTsKICAgICAgICAgICAgJCh0aGlzKS5hZnRlcignPHNwYW4gY2xhc3M9Im1vcmVlbGxpcHNlcyI+JyArIGVsbGlwc2VzdGV4dCsgJzwvc3Bhbj48c3Bhbj48YSBocmVmPSIiIGNsYXNzPSJtb3JlbGluayI+JyArIG1vcmV0ZXh0ICsgJzwvYT48L3NwYW4+Jyk7CiAgICAgICAgfSAKICAgIH0pOwogCiAgICAkKCIubW9yZWxpbmsiKS5jbGljayhmdW5jdGlvbigpewogICAgICAgIGlmKCQodGhpcykuaGFzQ2xhc3MoImxlc3MiKSkgewogICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChtb3JldGV4dCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkKCcucmVhZG1vcmUnKS5jc3MoewoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjpzaG93SGVpZ2h0LAoJCQkgICAgICAgICJvdmVyZmxvdyIgOiAiaGlkZGVuIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6c2hvd0hlaWdodAoJCQl9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChsZXNzdGV4dCk7CiAgICAKCQkJJCgnLnJlYWRtb3JlJykuY3NzKHsJCQkJCQoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjoiIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6IiIsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICIiCgkJCX0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkKHRoaXMpLnByZXYoKS50b2dnbGUoKTsgIC8vIHNob3cvaGlkZSAiLi4uIiAKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgpmdW5jdGlvbiB2aWV3X19pZDNfX2lkNDZfY2xpZW50U2lkZV9vbkNsaWVudExvYWQodGhpc0V2ZW50KSB7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyAKCXRyeXsJCgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJdmFyIGJhc2tldG5hbWU9cmV0dXJuQ29va2llVmFsKGpzQ29va2llTmFtZSk7CgkJCgkJY29tcHV0ZUJhc2tldEl0ZW1zKGJhc2tldG5hbWUpOwoJCWNvbXB1dGVEQUZpbGVzKCk7CgkJJCgiZGl2LmJ1eWJveCBmb3JtIikuc3VibWl0KAoJCQkJCQlmdW5jdGlvbigpIHsKCgkJCQkJCQl2YXIgbWVkaWEgPSAkKHRoaXMpLmF0dHIoJ2NsYXNzJyk7CgkJCQkJCQl2YXIgcHJpY2UgPSAkKHRoaXMpLmZpbmQoKCdpbnB1dFtuYW1lPWFydF9wcmljZV0nKSkKCQkJCQkJCQkJLnZhbCgpOwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtuYW1lPWFydF9sYW5nXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJCQkKCQkJCQkJCXZhciBsYW5nYXJ0bnVtID0gJCh0aGlzKS5maW5kKAoJCQkJCQkJCQkoJ1tjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwkJCgkJCQkJCQkJCQoJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJdmFyIGJhc2tldG5hbWUyID0gZ2V0Q29va2llKGpzQ29va2llTmFtZSk7CgkJCQkJCQlBZGRUb0Jhc2tldChtZWRpYSwgbGFuZ2FydG51bSwgYmFza2V0bmFtZTIpOwoKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfSk7CgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJfSBjYXRjaChlKSB7YWxlcnQoZS5tZXNzYWdlKTt9CgkJCn0pOwoKfQoKZnVuY3Rpb24gdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljayh0aGlzRXZlbnQpIHsKdmFyIG15V2luZG93ID0gd2luZG93Lm9wZW4oImh0dHA6Ly9lZXB1cmwuY29tL2JZM3Y3OSIsICJfYmxhbmsiLCAidG9vbGJhcj1ubywgc2Nyb2xsYmFycz1ubywgcmVzaXphYmxlPW5vLCB0b3A9MjAwLCBsZWZ0PTUwMCwgd2lkdGg9OTAwLCBoZWlnaHQ9NTU1Iik7CgoKfQoKWFNQLmFkZE9uTG9hZChmdW5jdGlvbigpIHsKWFNQLmF0dGFjaEV2ZW50KCJ2aWV3Ol9pZDM6X2lkNDYiLCAidmlldzpfaWQzIiwgIm9uQ2xpZW50TG9hZCIsIHZpZXdfX2lkM19faWQ0Nl9jbGllbnRTaWRlX29uQ2xpZW50TG9hZCwgZmFsc2UsIDIpOwpYU1AuYXR0YWNoUGFydGlhbCgidmlldzpfaWQyMDY6X2lkMzA0Ol9pZDIxMCIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiLCAidmlldzpfaWQyMDY6X2lkMzA0OmxpbmtzaG93YWxsIiwgIm9uY2xpY2siLCBmdW5jdGlvbigpe30sIDIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiIpOwpYU1AuYXR0YWNoRXZlbnQoInZpZXc6X2lkMjM0Ol9pZDI1NSIsICJ2aWV3Ol9pZDIzNDpsaW5rMSIsICJvbmNsaWNrIiwgdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljaywgZmFsc2UsIDIpOwp9KTsgCgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
332
+ PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5pZighbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpd2luZG93LmxvY2F0aW9uLmhyZWY9Imh0dHA6Ly93ZWJzdG9yZS5pZWMuY2gvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwUHVibGljYXRpb24ueHNwP09wZW5cdTAwMjZwdWJpZD0xNjFcdTAwMjZ0ZXN0XHUwMDI2U2Vzc2lvbklEPUZSSk5PNkc0NTciOzwvc2NyaXB0Pgo8dGl0bGU+SUVDIDYwMDUwLTEwMzoyMDA5IHwgSUVDIFdlYnN0b3JlPC90aXRsZT4KPGxpbmsgcmVsPSJTSE9SVENVVCBJQ09OIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvZmF2aWNvbi5pY28iPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIveHNwLy5pYm14c3ByZXMvZG9qb3Jvb3QtMS42LjEvZG9qby9kb2pvLmpzIiBkakNvbmZpZz0ibG9jYWxlOiAnZW4tdXMnLCBwYXJzZU9uTG9hZDogdHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii94c3AvLmlibXhzcHJlcy9kb2pvcm9vdC0xLjYuMS9pYm0veHNwL3dpZGdldC9sYXlvdXQvbGF5ZXJzL3hzcENsaWVudERvam8uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9qby5yZXF1aXJlKCdkb2pvLnBhcnNlcicpPC9zY3JpcHQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9kb21qYXZhL3hzcC90aGVtZS93ZWJzdGFuZGFyZC94c3AuY3NzIj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL2RvbWphdmEveHNwL3RoZW1lL3dlYnN0YW5kYXJkL3hzcExUUi5jc3MiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvd2Vic3RvcmVfQnVpbGQvY3NzL2llYy13ZWJzdG9yZS5jc3MiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL1hTUExpYnJhcnkuanMiPjwvc2NyaXB0Pgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSUVDIDYwMDUwLTEwMzoyMDA5IFN0YW5kYXJkIHwgSW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIFZvY2FidWxhcnkgKElFVikgLSBQYXJ0IDEwMzogTWF0aGVtYXRpY3MgLSBGdW5jdGlvbnMiPgo8bWV0YSBuYW1lPSJDb3B5cmlnaHQiIGNvbnRlbnQ9IklFQyAtIEludGVybmF0aW9uYWwgRWxlY3Ryb3RlY2huaWNhbCBDb21taXNzaW9uIj4KPG1ldGEgbmFtZT0iTGFuZ3VhZ2UiIGNvbnRlbnQ9IkVuZ2xpc2giPgo8bGluayBocmVmPSJodHRwczovL3dlYnN0b3JlLmllYy5jaC9wdWJsaWNhdGlvbi8xNjEiIHJlbD0iY2Fub25pY2FsIj4KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IklFQyA2MDA1MC0xMDM6MjAwOSwgU3RhbmRhcmQiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9qby5yZXF1aXJlKCdkb2pvLmNvb2tpZScpPC9zY3JpcHQ+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPG1ldGEgY29udGVudD0ib24iIGh0dHAtZXF1aXY9ImNsZWFydHlwZSI+CjxtZXRhIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvSGlzdG9yeVdvcmtJblByb2dyZXNzTGliIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPihmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsgKGlbcl0ucT1pW3JdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9LGlbcl0ubD0xKm5ldyBEYXRlKCk7YT1zLmNyZWF0ZUVsZW1lbnQobyksICBtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2FuYWx5dGljcy5qcycsJ2dhJyk7ICBnYSgnY3JlYXRlJywgJ1VBLTM0Mzk4MzMxLTInLCAnYXV0bycpOyBnYSgnc2V0JywgJ2RpbWVuc2lvbjEnLCAnJyk7IGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxzY3JpcHQgc3JjPSIvd2Vic3RvcmVfQnVpbGQvanMvdmVuZG9yL21vZGVybml6ci5jdXN0b20uNDIxOTcuanMiPjwvc2NyaXB0PjxzY3JpcHQ+dmFyIGpzREJDQVRBTE9HPSIvd2Vic3RvcmUvSUVDQ2F0YS5uc2YiOyB2YXIganNQYXRoV2Vic3RvcmVEQj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZiI7IHZhciBqc0Nvb2tpZU5hbWU9ImllY3dlYnN0b3JlIjsKCQkvL2NvbnNvbGUubG9nKCJjb29raWV2YWwgPSAiK3JldHVybkNvb2tpZVZhbChqc0Nvb2tpZU5hbWUpKTs8L3NjcmlwdD48aGVhZGVyIGNsYXNzPSJicmFuZGluZyIgcm9sZT0iYmFubmVyIj48ZGl2IGNsYXNzPSJpbm5lciI+PGEgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2giIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0lFQ0xvZ28nLCAnQ2xpY2snLCAnd3d3LmllYy5jaCcpOyIgdGl0bGU9Ind3dy5pZWMuY2giPjxkaXYgY2xhc3M9ImxvZ28iPjxpbWcgYWx0PSJJRUMgbG9nbyIgc3JjPSIvd2Vic3RvcmVfQnVpbGQvaW1nL2xvZ29faWVjXzI3Ni5qcGciPjwvZGl2PjwvYT48aDE+PHN0cm9uZz5XZWJzdG9yZTwvc3Ryb25nPiZuYnNwO0k8aT5udGVybmF0aW9uYWwmbmJzcDs8L2k+RTxpPmxlY3Ryb3RlY2huaWNhbCZuYnNwOzwvaT5DPGk+b21taXNzaW9uPC9pPjwvaDE+PGRpdiBjbGFzcz0iY29ubmVjdCI+PGEgaWQ9InZpZXc6X2lkMzpsaW5rMSIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QmYW1wO2xvZ2luIiBjbGFzcz0ibG9nb3V0Ij5TaWduIGluPC9hPjxzcGFuIGlkPSJ2aWV3Ol9pZDM6bGFiZWwyIiBjbGFzcz0ieHNwVGV4dExhYmVsIj4gfCA8L3NwYW4+PGEgaWQ9InZpZXc6X2lkMzpsaW5rMyIgaHJlZj0iL25ld2FjY291bnQiIGNsYXNzPSJ4c3BMaW5rIj5DcmVhdGUgYWNjb3VudDwvYT48aT48c3BhbiBpZD0idmlldzpfaWQzOmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48L2k+PC9kaXY+PGRpdiBjbGFzcz0ic2VhcmNoLWJveC1hbHQiPjxmb3JtIGlkPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QiIGNsYXNzPSJzZWFyY2giIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG9uc3VibWl0PSIKCgovL3dpbmRvdy5sb2NhdGlvbi5ocmVmPScvc2VhcmNoZm9ybSZhbXA7cT0nKyQoJnF1b3Q7W2lkJD1xXSZxdW90OykudmFsKCk7CgovL3JldHVybiBmYWxzZTsKCgp2YXIgS0VZVkFMID0gJCgmcXVvdDtbaWQkPXFdJnF1b3Q7KS52YWwoKTsKCQkJCQkKCQkJCQlLRVlWQUwgPSBLRVlWQUwucmVwbGFjZSgvJS9naSwgJnF1b3Q7ICZxdW90Oyk7CgkJCQkvLwlLRVlWQUwgPSBLRVlWQUwucmVwbGFjZSgvJnF1b3Q7L2dpLCAmcXVvdDsgJnF1b3Q7KTsKCQkJCQoJCQkJCQoJCQkJLy8JCUtFWVZBTD1lbmNvZGVVUklDb21wb25lbnQoS0VZVkFMLnRyaW0oKSk7CgkJCQkJdHJ5IHsKCQkJCQkJS0VZVkFMID0gZW5jb2RlVVJJQ29tcG9uZW50KEtFWVZBTC50cmltKCkpOwoJCQkJCX0gY2F0Y2goZSl7CgkJCQkJCS8vSUU4CgkJCQkJCUtFWVZBTCA9IGVuY29kZVVSSUNvbXBvbmVudCgkLnRyaW0oS0VZVkFMKSk7CgkJCQkJfQoJCQkJCgkJCQkJCgkJCQkJCgkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL3NlYXJjaGZvcm0mYW1wO3E9JyArIEtFWVZBTDsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJCgkJCQkJCgkJCQkJCiIgcm9sZT0ic2VhcmNoIj4KPHA+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoOnEiIG5hbWU9InZpZXc6X2lkMzpteUZvcm1zZWFyY2g6cSIgY2xhc3M9ImlucHV0LTc1IHNlYXJjaC1xdWVyeSIgcGxhY2Vob2xkZXI9IlNlYXJjaCI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1ibHVlIHN5bWJvbCI+PHNwYW4gY2xhc3M9Imljb24tc2VhcmNoIj48Yj5HbzwvYj48L3NwYW4+PC9idXR0b24+PC9wPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMzpteUZvcm1zZWFyY2hfX1ZVSUQiIHZhbHVlPSIhZnJqbm82ZzNpZiEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdGlkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BleGVjaWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHZhbHVlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRzY3JvbGwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aWV3Ol9pZDM6bXlGb3Jtc2VhcmNoIiB2YWx1ZT0idmlldzpfaWQzOm15Rm9ybXNlYXJjaCI+PC9mb3JtPgo8cD48YSBocmVmPSIvYWR2c2VhcmNoZm9ybSI+QWR2YW5jZWQgc2VhcmNoPC9hPjwvcD48L2Rpdj48L2Rpdj48L2hlYWRlcj48bmF2IGlkPSJuYXZpZ2F0aW9uLXRvZ2dsZSIgcm9sZT0ibmF2aWdhdGlvbiI+PHVsPjxsaT48YSBpZD0idmlldzpfaWQzOmxpbmtIb21lIiBocmVmPSIvaG9tZSIgY2xhc3M9InB1YmxpY2F0aW9uIiB0YXJnZXQ9Il9zZWxmIj5Ib21lPC9hPjwvbGk+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua1NpZ25JbiIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QmYW1wO2xvZ2luIiBjbGFzcz0ieHNwTGluayIgdHlwZT0idGV4dC9odG1sIj5TaWduIGluPC9hPjwvbGk+PGxpPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua0hlbHAiIGhyZWY9Ii9oZWxwIiBjbGFzcz0icHVibGljYXRpb24iPkhlbHA8L2E+PC9saT48bGk+PGEgaWQ9InZpZXc6X2lkMzpsaW5rQmFza2V0IiBocmVmPSJqYXZhc2NyaXB0Om9wZW5CYXNrZXQoJ0Fub255bW91cycpOyIgY2xhc3M9InB1YmxpY2F0aW9uIj5DYXJ0IDxzcGFuIGNsYXNzPSJuYi1pdGVtcyBuYi1pdGVtcy1idXkiPjwvc3Bhbj48L2E+PC9saT48bGkgY2xhc3M9ImxpbmthZHZzZWFyY2giIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDM6bGlua2FkdnNlYXJjaCIgaHJlZj0iL2FkdnNlYXJjaGZvcm0iIGNsYXNzPSJwdWJsaWNhdGlvbiI+QWR2YW5jZWQgU2VhcmNoPC9hPjwvbGk+PC91bD48L25hdj48ZGl2IGNsYXNzPSJjb250YWluZXIiIHJvbGU9Im1haW4iPjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LS1ibG9jayBhbGVydC1zdWNjZXNzIGFsZXJ0LWRpc21pc3NhYmxlIiBpZD0ibWVzc2FnZWJhc2tldCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PGJ1dHRvbiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImNsb3NlIiBkYXRhLWRpc21pc3M9ImFsZXJ0IiB0eXBlPSJidXR0b24iPiZ0aW1lczs8L2J1dHRvbj48cCBjbGFzcz0ic2Vjb25kYXJ5Ij48c3Bhbj48L3NwYW4+PC9wPjwvZGl2PjxzZWN0aW9uIGNsYXNzPSJhcnRpY2xlIiBpdGVtc2NvcGU9IiAiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9Qcm9kdWN0Ij48ZGl2IGNsYXNzPSJsLW1haW4iPjxzcGFuIGl0ZW1wcm9wPSJicmFuZCIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT3JnYW5pemF0aW9uIj48bWV0YSBjb250ZW50PSJJRUMiIGl0ZW1wcm9wPSJuYW1lIj48L3NwYW4+PGgxIGNsYXNzPSJyZWZlcmVuY2UiPjxzcGFuIGlkPSJ2aWV3OmRPQ1VNRU5UTkFNRTEiIGl0ZW1wcm9wPSJwcm9kdWN0SUQiPklFQyA2MDA1MC0xMDM6MjAwOTwvc3Bhbj4mbmJzcDs8c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkOSIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PC9oMT48aDIgaWQ9InZpZXc6RW5nbGlzaF9UaXRsZSIgY2xhc3M9InRpdGxlIiBpdGVtcHJvcD0ibmFtZSI+SW50ZXJuYXRpb25hbCBFbGVjdHJvdGVjaG5pY2FsIFZvY2FidWxhcnkgKElFVikgLSBQYXJ0IDEwMzogTWF0aGVtYXRpY3MgLSBGdW5jdGlvbnM8L2gyPjx1bCBjbGFzcz0ibWV0YSBpbmxpbmUgc2VwYXJhdGVkIj48bGk+PHNwYW4gaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDgiIHRpdGxlPSJUZXJtaW5vbG9neSI+VEMgMTwvc3Bhbj48L2xpPjxsaSBjbGFzcz0icHJldmlldyI+PGEgaHJlZj0iI2FkZGl0aW9uYWxpbmZvIj4mbmJzcDtBZGRpdGlvbmFsIGluZm9ybWF0aW9uPC9hPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJsLWFzaWRlIj48ZGl2IGNsYXNzPSJsLWJveCBpcy1hbHdheXMtdmlzaWJsZSI+PGRpdiBjbGFzcz0idGFiYmFibGUgYnV5Ym94Ij48dWwgY2xhc3M9Im5hdiBuYXYtdGFicyIgaWQ9ImJ1eWJveGIiPjxsaSBpZD0idmlldzpfaWQ3NTpfaWQ3ODpyZXBlYXQxOjA6Y29tcHV0ZWRGaWVsZDIiIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9Ii5wYW5lRSIgZGF0YS10b2dnbGU9InRhYiI+IERvd25sb2FkPC9hPjwvbGk+PGxpIGlkPSJ2aWV3Ol9pZDc1Ol9pZDc4OnJlcGVhdDE6MTpjb21wdXRlZEZpZWxkMiI+PGEgaHJlZj0iLnBhbmVQIiBkYXRhLXRvZ2dsZT0idGFiIj4gSGFyZGNvcHk8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij48c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpjb21wdXRlZEZpZWxkMSIgc3R5bGU9ImNvbG9yOnJnYigyNTUsMCwwKSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj48L3NwYW4+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSBhY3RpdmUgaW4gcGFuZUUiPgo8c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6Y29tcHV0ZWRGaWVsZDIiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxmb3JtIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MiIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBQdWJsaWNhdGlvbi54c3A/T3BlbiZhbXA7cHViaWQ9MTYxJmFtcDt0ZXN0IiBjbGFzcz0iRSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CjxmaWVsZHNldCBjbGFzcz0icGFyYW1ldGVycyI+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCBzdHlsZWQtc2VsZWN0Ij48c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODI6Y29tcHV0ZWRGaWVsZDQiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxzZWxlY3QgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmFydF9sYW5nIiBuYW1lPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MjphcnRfbGFuZyIgY2xhc3M9Imxhbmdzd2l0Y2giIHNpemU9IjEiIHN0eWxlPSJmb250LXNpemU6MTVweCI+CTxvcHRpb24gdmFsdWU9IjE2MUVOLUZSIj5FbmdsaXNoL0ZyZW5jaDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0iMTYxRVMiPlNwYW5pc2g8L29wdGlvbj4KPC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCI+PHNwYW4gaXRlbXByb3A9Im9mZmVycyIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT2ZmZXIiPjxhYmJyIGl0ZW1wcm9wPSJwcmljZUN1cnJlbmN5IiB0aXRsZT0iU3dpc3MgRnJhbmNzIj5DSEY8L2FiYnI+Jm5ic3A7PGxhYmVsIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MjpsYWJlbDEiIGNsYXNzPSJwcmljZSIgY29udGVudD0iMzEwIiBpdGVtcHJvcD0icHJpY2UiPjMxMC4tPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyOmNvbXB1dGVkRmllbGQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPjwvc3Bhbj48L2xhYmVsPjxtZXRhIGNvbnRlbnQ9Imh0dHA6Ly9zY2hlbWEub3JnL0luU3RvY2siIGl0ZW1wcm9wPSJhdmFpbGFiaWxpdHkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJib3gtcGFuZSI+CjxidXR0b24gY2xhc3M9ImJ0biBidG4tY29tbWl0IiB0eXBlPSJzdWJtaXQiPkFkZCB0byBjYXJ0PC9idXR0b24+PC9kaXY+CjwvZmllbGRzZXQ+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkdmlld2lkIiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjA6X2lkODJfX1ZVSUQiIHZhbHVlPSIhZnJqbm82ZzNpZiEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdGlkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BleGVjaWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHZhbHVlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRzY3JvbGwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpfaWQ4MiIgdmFsdWU9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjowOl9pZDgyIj48L2Zvcm0+CjxwIGNsYXNzPSJzZWNvbmRhcnkgYm94LW9wdCI+CjxhIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MDpsaW5rMSIgaHJlZj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cEZBUS54c3A/T3BlbiZhbXA7aWQ9R0ZPVC03TlBQOEgiIGNsYXNzPSJ4c3BMaW5rIj5EbyB5b3UgbmVlZCBhIG11bHRpLXVzZXIgY29weT88L2E+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSAgcGFuZVAiPgo8c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6Y29tcHV0ZWRGaWVsZDIiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxmb3JtIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MiIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBQdWJsaWNhdGlvbi54c3A/T3BlbiZhbXA7cHViaWQ9MTYxJmFtcDt0ZXN0IiBjbGFzcz0iUCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CjxmaWVsZHNldCBjbGFzcz0icGFyYW1ldGVycyI+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCBzdHlsZWQtc2VsZWN0Ij48c3BhbiBpZD0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODI6Y29tcHV0ZWRGaWVsZDQiIHN0eWxlPSJjb2xvcjpyZ2IoMjU1LDAsMCkiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+PC9zcGFuPjxzZWxlY3QgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmFydF9sYW5nIiBuYW1lPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjphcnRfbGFuZyIgY2xhc3M9Imxhbmdzd2l0Y2giIHNpemU9IjEiIHN0eWxlPSJmb250LXNpemU6MTVweCI+CTxvcHRpb24gdmFsdWU9IjE2MUVOLUZSIj5FbmdsaXNoL0ZyZW5jaDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0iMTYxRVMiPlNwYW5pc2g8L29wdGlvbj4KPC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUgc2VnbWVudCI+PHNwYW4gaXRlbXByb3A9Im9mZmVycyIgaXRlbXNjb3BlPSIgIiBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvT2ZmZXIiPjxhYmJyIGl0ZW1wcm9wPSJwcmljZUN1cnJlbmN5IiB0aXRsZT0iU3dpc3MgRnJhbmNzIj5DSEY8L2FiYnI+Jm5ic3A7PGxhYmVsIGlkPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MjpsYWJlbDEiIGNsYXNzPSJwcmljZSIgY29udGVudD0iMzEwIiBpdGVtcHJvcD0icHJpY2UiPjMxMC4tPHNwYW4gaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyOmNvbXB1dGVkRmllbGQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPisgc2hpcHBpbmc8L3NwYW4+PC9sYWJlbD48bWV0YSBjb250ZW50PSJodHRwOi8vc2NoZW1hLm9yZy9JblN0b2NrIiBpdGVtcHJvcD0iYXZhaWxhYmlsaXR5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm94LXBhbmUiPgo8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWNvbW1pdCIgdHlwZT0ic3VibWl0Ij5BZGQgdG8gY2FydDwvYnV0dG9uPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkNzU6X2lkODA6cmVwZWF0MjoxOl9pZDgyX19WVUlEIiB2YWx1ZT0iIWZyam5vNmczaWYhIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXRpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwZXhlY2lkIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJCR4c3BzdWJtaXR2YWx1ZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0c2Nyb2xsIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmlldzpfaWQ3NTpfaWQ4MDpyZXBlYXQyOjE6X2lkODIiIHZhbHVlPSJ2aWV3Ol9pZDc1Ol9pZDgwOnJlcGVhdDI6MTpfaWQ4MiI+PC9mb3JtPgo8L2Rpdj4KPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGhyPgo8L2hyPgo8ZGl2IGNsYXNzPSJsLW1haW4tcHVsbGVkIj48ZGl2IGNsYXNzPSJhYnN0cmFjdCI+PHAgY2xhc3M9ImJ0biBidG4tcHJldmlldyI+CjxhIGlkPSJ2aWV3OmxpbmsyIiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMyU3QmVkMS4wJTdEYi5wZGYiIHRhcmdldD0iX2JsYW5rIj5QcmV2aWV3PC9hPjwvcD4KPGgzPgpBYnN0cmFjdDwvaDM+CjxkaXYgaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDMiIGNsYXNzPSJyZWFkbW9yZSIgaXRlbXByb3A9ImRlc2NyaXB0aW9uIj5JRUMgNjAwNTAtMTAzOjIwMDkgZ2l2ZXMgdGhlIHRlcm1pbm9sb2d5IHJlbGF0aXZlIHRvIGZ1bmN0aW9ucyBvZiBvbmUgb3IgbW9yZSB2YXJpYWJsZXMuIFRvZ2V0aGVyIHdpdGggSUVDIDYwMDUwLTEwMiwgaXQgY292ZXJzIHRoZSBtYXRoZW1hdGljYWwgdGVybWlub2xvZ3kgdXNlZCBpbiB0aGUgZmllbGRzIG9mIGVsZWN0cmljaXR5LCBlbGVjdHJvbmljcyBhbmQgdGVsZWNvbW11bmljYXRpb25zLiBJdCBtYWludGFpbnMgYSBjbGVhciBkaXN0aW5jdGlvbiBiZXR3ZWVuIG1hdGhlbWF0aWNhbCBjb25jZXB0cyBhbmQgcGh5c2ljYWwgY29uY2VwdHMsIGV2ZW4gaWYgc29tZSB0ZXJtcyBhcmUgdXNlZCBpbiBib3RoIGNhc2VzLiBNYXRoZW1hdGljYWwgc3ltYm9scyBhcmUgZ2VuZXJhbGx5IGluIGFjY29yZGFuY2Ugd2l0aCBJRUMgNjAwMjctMSBhbmQgSVNPIDgwMDAwLTIuIFRoaXMgc3RhbmRhcmQgY2FuY2VscyBhbmQgcmVwbGFjZXMgU2VjdGlvbnMgMTAxLTEzLCAxMDEtMTQgYW5kIDEwMS0xNSBvZiBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkIElFQyA2MDA1MC0xMDE6MTk5OC48YnIgLz4NCkl0IGhhcyB0aGUgc3RhdHVzIG9mIGEgaG9yaXpvbnRhbCBzdGFuZGFyZCBpbiBhY2NvcmRhbmNlIHdpdGggPGEgaHJlZj0iaHR0cDovL3dlYnN0b3JlLmllYy5jaC93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvQXJ0bnVtX1BLLzM2NDM1P29wZW5kb2N1bWVudCI+SUVDIEd1aWRlIDEwODwvYT4uPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibC1hc2lkZSI+PGRpdiBjbGFzcz0idG9jIj48aDM+Ckxvb2sgaW5zaWRlPC9oMz4KPGEgaWQ9InZpZXc6bGluazE1IiBocmVmPSIvcHJldmlldy9pbmZvX2llYzYwMDUwLTEwMyU3QmVkMS4wJTdEYi5wZGYiIHRpdGxlPSJGcmVlIHByZXZpZXciIHRhcmdldD0iX2JsYW5rIj48dWwgY2xhc3M9ImJ1bGxldGVkLWxpc3Qgc2Vjb25kYXJ5IHQtY29sdW1ucyI+CjxpbWcgaWQ9InZpZXc6aW1hZ2UxIiBzcmM9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YvbG9va2luc2lkZS5wbmciIGFsdD0iIiBjbGFzcz0ieHNwSW1hZ2UiPjwvdWw+CjwvYT48L2Rpdj48L2Rpdj48aHI+PGRpdiBjbGFzcz0ibC1tYWluIj48aDMgaWQ9ImFkZGl0aW9uYWxpbmZvIj5BZGRpdGlvbmFsIGluZm9ybWF0aW9uPC9oMz48ZGl2IGNsYXNzPSJ0YWJiYWJsZSI+PHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMiPjxsaSBjbGFzcz0iYWN0aXZlIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48L2xpPjxsaSBpZD0iaGlzdG9yeXRhYiI+PGEgZGF0YS10b2dnbGU9InRhYiIgaHJlZj0iI2hpc3RvcnkiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ2hpc3RvcnknKTsiPkhpc3Rvcnk8L2E+PC9saT48bGkgaWQ9IndvcmtpbnByb2dyZXNzdGFiIj48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjd29ya2lucHJvZ3Jlc3MiIG9uQ2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ0FkZGl0aW9uYWxJbmZvJywgJ0NsaWNrJywgJ3dvcmtpbnByb2dyZXNzJyk7Ij5Xb3JrIGluIHByb2dyZXNzPC9hPjwvbGk+PGxpIGlkPSJsaTEiPjwvbGk+PGxpIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YSBkYXRhLXRvZ2dsZT0idGFiIiBocmVmPSIjdGFnY2xvdWQiPlRhZ3M8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InRhYi1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIGFjdGl2ZSBpbiIgaWQ9ImRldGFpbHMiPjx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaW5mbyB2ZXJ0aWNhbC10aCI+PHRib2R5Pjx0cj48dGggc2NvcGU9InJvdyI+UHVibGljYXRpb24gdHlwZTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQ3IiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkludGVybmF0aW9uYWwgU3RhbmRhcmQ8L3NwYW4+PC90ZD48L3RyPgo8dHI+PHRoIHNjb3BlPSJyb3ciPlB1YmxpY2F0aW9uIGRhdGU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzppbnB1dFRleHQzIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiIGl0ZW1wcm9wPSJyZWxlYXNlRGF0ZSI+MjAwOS0xMi0xNDwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBzY29wZT0icm93Ij5FZGl0aW9uPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6aW5wdXRUZXh0MSI+MS4wPC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPkF2YWlsYWJsZSBsYW5ndWFnZShzKTwvdGg+PHRkPjxzcGFuIGlkPSJ2aWV3OmNvbXB1dGVkRmllbGQyIiBjbGFzcz0ieHNwVGV4dENvbXB1dGVkRmllbGQiPkVuZ2xpc2gvRnJlbmNoLCBTcGFuaXNoPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij48YWJiciB0aXRsZT0iVGVjaG5pY2FsIENvbW1pdHRlZSI+VEM8L2FiYnI+LzxhYmJyIHRpdGxlPSJTdWItY29tbWl0dGVlIj5TQzwvYWJicj48L3RoPjx0ZD48YSBpZD0idmlldzpsaW5rNiIgaHJlZj0iLi4vc2VhcmNoZm9ybSZDb21OdW1iZXI9MSIgY2xhc3M9InhzcExpbmsiPlRDIDEgLSBUZXJtaW5vbG9neTwvYT48YSBpZD0idmlldzpsaW5rMSIgaHJlZj0iaHR0cHM6Ly93ZWJzdG9yZS5pZWMuY2gvcnNzJnRjPVRDJTIwMSIgc3R5bGU9ImZsb2F0OnJpZ2h0IiBjbGFzcz0ic3ltYm9sIHJzcyIgdGl0bGU9IlN1YnNjcmliZSB0byB0aGlzIFJTUyBmZWVkIj48c3BhbiBjbGFzcz0iaWNvbi1yc3MiPjwvc3Bhbj48Yj5yc3M8L2I+PC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPklDUzwvdGg+PHRkPjxhIGlkPSJ2aWV3Omxpbms3IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wMS4wNDAuMDciIGNsYXNzPSJ4c3BMaW5rIj4wMS4wNDAuMDcgLSBNYXRoZW1hdGljcy4gTmF0dXJhbCBzY2llbmNlcyAoVm9jYWJ1bGFyaWVzKTwvYT48YnI+CjxhIGlkPSJ2aWV3Omxpbms4IiBocmVmPSIuLi9zZWFyY2hmb3JtJklDU051bWJlcj0wNy4wMjAiIGNsYXNzPSJ4c3BMaW5rIj4wNy4wMjAgLSBNYXRoZW1hdGljcw0KPC9hPjwvdGQ+PC90cj48dHI+PHRoIHNjb3BlPSJyb3ciPlBhZ2VzPC90aD48dGQ+PHNwYW4gaWQ9InZpZXc6Y29tcHV0ZWRGaWVsZDQiIGNsYXNzPSJ4c3BUZXh0Q29tcHV0ZWRGaWVsZCI+MTQxPC9zcGFuPjwvdGQ+PC90cj4KPHRyPjx0aCBzY29wZT0icm93Ij5GaWxlIHNpemU8L3RoPjx0ZD48c3BhbiBpZD0idmlldzpjb21wdXRlZEZpZWxkNSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4xOTkxPC9zcGFuPiZuYnNwOzxhYmJyIHRpdGxlPSJLaWxvYml0cyI+S0I8L2FiYnI+PC90ZD48L3RyPgo8L3Rib2R5PjwvdGFibGU+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9Imhpc3RvcnkiPjxzcGFuIGlkPSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9IndvcmtpbnByb2dyZXNzIj48c3BhbiBpZD0idmlldzpfaWQxODM6eG1sV29ya2lucHJvZ3Jlc3MiPjwvc3Bhbj48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBwdWJpZCAgID0gIjE2MSI7CnZhciBwdWJ0eXBlID0gIklTIjsKCnZhciBYTUx1cmw9Ii9XZWJzdG9yZS93ZWJzdG9yZS5uc2YvQWpheFJlcXVlc3RYTUw/T3BlbmFnZW50JnVybD0iKyIiK3B1YmlkOwp2YXIgdGFyZ2V0SWRIaXN0b3J5PSJ2aWV3Ol9pZDE4Mzp4bWxIaXN0b3J5IjsKdmFyIHRhcmdldElkV29ya2lucHJvZ3Jlc3M9InZpZXc6X2lkMTgzOnhtbFdvcmtpbnByb2dyZXNzIjsKdmFyIGFwSGlzdCA9IGRvam8uYnlJZCh0YXJnZXRJZEhpc3RvcnkpOwp2YXIgYXBXb3JrID0gZG9qby5ieUlkKHRhcmdldElkV29ya2lucHJvZ3Jlc3MpOwoKdHJ5IHsKCglkb2pvLnhockdldCh7CgkJdXJsOiBYTUx1cmwsCgkJbG9hZDogZnVuY3Rpb24oWE1McmVzdWx0KSB7CgkJCVhNTHBhcnNlSGlzdG9yeShYTUxyZXN1bHQsIHRhcmdldElkSGlzdG9yeSx0YXJnZXRJZFdvcmtpbnByb2dyZXNzKTsKCQl9LAogICAgZXJyb3I6IGZ1bmN0aW9uKGVycm9yLCBpb2FyZ3MpewoJICAgICAgYXBIaXN0LmlubmVySFRNTCA9ICJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkOiA8YnIgLz4iICsgZXJyb3I7CgkgICAgICBhcFdvcmsuaW5uZXJIVE1MID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQ6IDxiciAvPiIgKyBlcnJvcjsKCQkJfQoJCX0pOwoJCQoJICBpZiAocHVidHlwZT09J1RSRicpIHsJCQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoaXN0b3J5dGFiIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICB9CgkJCn0gY2F0Y2goZSkgewphbGVydCgiZXJyb3IgIiArIGUpfQo8L3NjcmlwdD4KPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRyZiI+PHA+VGhlIGZvbGxvd2luZyB0ZXN0IHJlcG9ydCBmb3JtcyBhcmUgcmVsYXRlZDo8L3A+PGRpdiBpZD0idmlldzpfaWQxODQ6cmVwZWF0cmVsYXRlZFRSRiI+CjwvZGl2Pgo8YnI+PC9kaXY+PGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InRhZ2Nsb3VkIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsLWFzaWRlIj48Zm9ybSBpZD0idmlldzpfaWQyMDY6X2lkMzA0IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3dlYnN0b3JlL3dlYnN0b3JlLm5zZi94cFB1YmxpY2F0aW9uLnhzcD9PcGVuJmFtcDtwdWJpZD0xNjEmYW1wO3Rlc3QiIGNsYXNzPSJ4c3BGb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KPGgzPlJlbGF0ZWQgcHVibGljYXRpb25zPC9oMz48ZGl2IGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiI+Cjx1bD48c3BhbiBpZD0idmlldzpfaWQyMDY6X2lkMzA0Om90aGVycGFydHMiPjxsaT48YSBocmVmPSIvcHVibGljYXRpb24vMTYwIm9uY2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ1JlbGF0ZWRQdWInLCAnSUVDIDYwMDUwLTEwMjoyMDA3JywgJ0lFQyA2MDA1MC0xMDM6MjAwOScpOyI+SUVDIDYwMDUwLTEwMjoyMDA3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82MTMxNSJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDI6MjAwNy9BTUQxOjIwMTcnLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAyOjIwMDcvQU1EMToyMDE3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82Njg0NCJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDI6MjAwNy9BTUQyOjIwMjAnLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAyOjIwMDcvQU1EMjoyMDIwPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82MTMxNyJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQxOjIwMTcnLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMToyMDE3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9wdWJsaWNhdGlvbi82NTc2OSJvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdSZWxhdGVkUHViJywgJ0lFQyA2MDA1MC0xMDM6MjAwOS9BTUQyOjIwMTknLCAnSUVDIDYwMDUwLTEwMzoyMDA5Jyk7Ij5JRUMgNjAwNTAtMTAzOjIwMDkvQU1EMjoyMDE5PC9hPjwvbGk+PC9zcGFuPjxsaSBjbGFzcz0ibW9yZSIgaWQ9IndyIiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOm5vbmUiPjxhIGlkPSJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5TaG93IGFsbCAmcmFxdW87PC9hPjwvbGk+PC91bD48cD48L3A+PC9kaXY+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHZpZXdpZCIgaWQ9InZpZXc6X2lkMjA2Ol9pZDMwNF9fVlVJRCIgdmFsdWU9IiFmcmpubzZnM2lmISI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0aWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcGV4ZWNpZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiQkeHNwc3VibWl0dmFsdWUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSIkJHhzcHN1Ym1pdHNjcm9sbCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpZXc6X2lkMjA2Ol9pZDMwNCIgdmFsdWU9InZpZXc6X2lkMjA2Ol9pZDMwNCI+PC9mb3JtPgo8aDMgaWQ9InZpZXc6X2lkMjEyOmNvbXB1dGVkRmllbGQyIj5Nb3JlIGluZm9ybWF0aW9uPC9oMz48dWwgY2xhc3M9ImlubGluZSI+PGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlwdWIiPgo8L2Rpdj4KPGRpdiBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQyI+CjxsaT48YSBpZD0idmlldzpfaWQyMTI6cmVwZWF0QmxvY2tMaW5rYnlUQzowOmxpbmsyIiBocmVmPSJodHRwczovL2llY2V0ZWNoLm9yZy9UZWNobmljYWwtQ29tbWl0dGVlcy8yMDE5LTAyL0luLXRoZS1iZWdpbm5pbmctdGhlcmUtd2FzLXRlcm1pbm9sb2d5IiB0YXJnZXQ9Il9ibGFuayI+QXJ0aWNsZTogYXZvaWRpbmcgYW1iaWd1aXR5PC9hPjwvbGk+PC9kaXY+CjwvdWw+PGJyPjxoMz5TaGFyZSB0aGlzIHBhZ2U8L2gzPjx1bCBjbGFzcz0iaW5saW5lIj48bGk+Jm5ic3A7PGEgaWQ9InZpZXc6X2lkMjE5OmxpbmsxIiBocmVmPSJtYWlsdG86P3N1YmplY3Q9Q2hlY2slMjBvdXQlMjBJRUMlMjA2MDA1MC0xMDMlM0EyMDA5JmFtcDtib2R5PUhlbGxvJTJDJTBBJTBBSSUyMHRob3VnaHQlMjB5b3UlMjBtaWdodCUyMGJlJTIwaW50ZXJlc3RlZCUyMGJ5JTIwdGhpcyUyMHB1YmxpY2F0aW9uJTNBJTBBJTBBJTA5aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MSUwQSUwQS0tJTBBU2VudCUyMGZyb20lMjB0aGUlMjBJRUMlMjBXZWJzdG9yZSUyMHdlYnN0b3JlLmllYy5jaCUwQSIgY2xhc3M9InNzLWljb24gc3MtbWFpbC1yZWd1bGFyIiB0YXJnZXQ9Il9ibGFuayI+bWFpbDwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazEwIiBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYxJmFtcDt0ZXh0PUNoZWNrJTIwb3V0JTIwSUVDJTIwNjAwNTAtMTAzJTNBMjAwOSZhbXA7dmlhPUlFQ1N0YW5kYXJkcyIgY2xhc3M9InNzLWljb24gc3Mtc29jaWFsLXJlZ3VsYXIiIGNoYXJzZXQ9IlVURi04IiB0YXJnZXQ9Il9ibGFuayI+VHdpdHRlcjwvYT4mbmJzcDs8L2xpPjxsaT4mbmJzcDs8YSBpZD0idmlldzpfaWQyMTk6bGluazExIiBocmVmPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIucGhwP3U9aHR0cCUzQS8vd2Vic3RvcmUuaWVjLmNoL3B1YmxpY2F0aW9uLzE2MSZhbXA7dD1DaGVjayUyMG91dCUyMElFQyUyMDYwMDUwLTEwMyUzQTIwMDkiIGNsYXNzPSJzcy1pY29uIHNzLXNvY2lhbC1yZWd1bGFyIiBjaGFyc2V0PSJVVEYtOCIgdGFyZ2V0PSJfYmxhbmsiPkZhY2Vib29rPC9hPiZuYnNwOzwvbGk+PGxpPiZuYnNwOzxhIGlkPSJ2aWV3Ol9pZDIxOTpsaW5rMTMiIGhyZWY9Imh0dHA6Ly93d3cubGlua2VkaW4uY29tL3NoYXJlQXJ0aWNsZT9taW5pPXRydWUmYW1wO3VybD1odHRwJTNBLy93ZWJzdG9yZS5pZWMuY2gvcHVibGljYXRpb24vMTYxJmFtcDt0aXRsZT1JRUMlMjA2MDA1MC0xMDMlM0EyMDA5JmFtcDtzdW1tYXJ5PSZhbXA7c291cmNlPUlFQyUyMFdlYnN0b3JlIiBjbGFzcz0ic3MtaWNvbiBzcy1zb2NpYWwtcmVndWxhciIgY2hhcnNldD0iVVRGLTgiIHRhcmdldD0iX2JsYW5rIj5MaW5rZWRJbjwvYT4mbmJzcDs8L2xpPjwvdWw+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIxIj48aDQ+U2hhcmUgeW91ciBwdWJsaWNhdGlvbnM8L2g0PjxwPkxlYXJuIGhvdyB0byBzaGFyZSB5b3VyIHB1YmxpY2F0aW9ucyB3aXRoIHlvdXIKCQkJY29sbGVhZ3VlcywmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazIiIGhyZWY9Ii93ZWJzdG9yZS93ZWJzdG9yZS5uc2YveHBGQVEueHNwP2lkPUdGT1QtN05QUDhIIj51c2luZyBuZXR3b3JraW5nIG9wdGlvbnM8L2E+LjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIyIj48aDQ+UGF5bWVudCBpbmZvcm1hdGlvbjwvaDQ+PHA+T3VyIHByaWNlcyBhcmUgaW4gU3dpc3MgZnJhbmNzICg8YWJiciB0aXRsZT0iU3dpc3MgZnJhbmNzIj5DSEY8L2FiYnI+KS4gV2UgYWNjZXB0IGFsbCBtYWpvciBjcmVkaXQgY2FyZHMgKEFtZXJpY2FuIEV4cHJlc3MsIE1hc3RlcmNhcmQgYW5kCgkJCVZpc2EpLCBQYXlQYWwgYW5kIGJhbmsgdHJhbnNmZXJzIGFzIGZvcm0gb2YgcGF5bWVudC48L3A+PC9kaXY+PGhyIGNsYXNzPSJ3aWRlIj48ZGl2IGNsYXNzPSJsLXF1YXJ0ZXIzIj48aDQ+S2VlcCBpbiB0b3VjaDwvaDQ+PHA+S2VlcCB1cCB0byBkYXRlIHdpdGggbmV3IHB1YmxpY2F0aW9uIHJlbGVhc2VzIGFuZAoJCQlhbm5vdW5jZW1lbnRzIHdpdGgKCQkJb3VyIGZyZWUmbmJzcDs8YSBpZD0idmlldzpfaWQyMzQ6bGluazEiIGhyZWY9IiMiIGNsYXNzPSJ4c3BMaW5rIj5JRUMgSnVzdCBQdWJsaXNoZWQgZW1haWwgbmV3c2xldHRlcjwvYT4uPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImwtcXVhcnRlcjQiPjxoNCBpZD0idmlldzpfaWQyMzQ6Y29tcHV0ZWRGaWVsZDYiPkNvbnRhY3QgY3VzdG9tZXIgc2VydmljZXM8L2g0PjxwIGlkPSJ2aWV3Ol9pZDIzNDpjb21wdXRlZEZpZWxkNyI+UGxlYXNlIDxhIGhyZWY9Im1haWx0bzpzYWxlc0BpZWMuY2giPnNlbmQgeW91ciBlbnF1aXJ5IGJ5IGVtYWlsPC9hPiBvciBjYWxsIHVzIG9uICs0MSAyMiA5MTkgMDIgMTEgYmV0d2VlbiAwOTowMCAmbmRhc2g7IDE3OjAwIENFVCBNb25kYXkgdG8gRnJpZGF5LjwvcD48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGZvb3RlciByb2xlPSJjb250ZW50aW5mbyI+PGRpdiBjbGFzcz0iaW5uZXIiPjxwIGNsYXNzPSJzb2NpYWwiPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL2ZhY2Vib29rIiB0aXRsZT0iRmFjZWJvb2siPjxzcGFuIGNsYXNzPSJpY29uLWZhY2Vib29rIj48L3NwYW4+PGI+RmFjZWJvb2s8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3R3aXR0ZXIiIHRpdGxlPSJUd2l0dGVyIj48c3BhbiBjbGFzcz0iaWNvbi10d2l0dGVyIj48L3NwYW4+PGI+VHdpdHRlcjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvbGlua2VkaW4iIHRpdGxlPSJMaW5rZWRJbiI+PHNwYW4gY2xhc3M9Imljb24tbGlua2VkaW4iPjwvc3Bhbj48Yj5MaW5rZWRJbjwvYj48L2E+PGEgY2xhc3M9InN5bWJvbCIgaHJlZj0iaHR0cDovL3d3dy5pZWMuY2gvcGludGVyZXN0IiB0aXRsZT0iUGludGVyZXN0Ij48c3BhbiBjbGFzcz0iaWNvbi1waW50ZXJlc3QiPjwvc3Bhbj48Yj5QaW50ZXJlc3Q8L2I+PC9hPjxhIGNsYXNzPSJzeW1ib2wiIGhyZWY9Imh0dHA6Ly93d3cuaWVjLmNoL3lvdXR1YmUiIHRpdGxlPSJZb3VUdWJlIj48c3BhbiBjbGFzcz0iaWNvbi15b3V0dWJlIj48L3NwYW4+PGI+WW91VHViZTwvYj48L2E+PC9wPjx1bCBjbGFzcz0ibGlua3MgdGVydGlhcnkgaW5saW5lIj48bGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsyIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1DU0pOLTlWQ0JXSiI+VGVybXMgJmFtcDsgQ29uZGl0aW9uczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaC9hYm91dC9wcml2YWN5LyI+UHJpdmFjeTwvYT48L2xpPjwvdWw+PHVsIGNsYXNzPSJjb3B5cmlnaHQgdGVydGlhcnkgaW5saW5lIj48bGk+PGk+PGEgaWQ9InZpZXc6X2lkMjU4OmxpbmsxIiBocmVmPSIvd2Vic3RvcmUvd2Vic3RvcmUubnNmL3hwRkFRLnhzcD9pZD1HRk9ULTdOV042UCI+Q29weXJpZ2h0PC9hPjwvaT4mbmJzcDsmY29weTsmbmJzcDs8YSBocmVmPSJodHRwOi8vd3d3LmllYy5jaCI+SUVDPC9hPiZuYnNwOzxzcGFuIGlkPSJ2aWV3Ol9pZDI1ODpjb21wdXRlZEZpZWxkMSIgY2xhc3M9InhzcFRleHRDb21wdXRlZEZpZWxkIj4yMDIwPC9zcGFuPi4mbmJzcDtBbGwgcmlnaHRzIHJlc2VydmVkLjwvbGk+PC91bD48cCBjbGFzcz0ic2VsZiI+PGEgaHJlZj0iI2llYy13ZWJzdG9yZSI+VG9wPHNwYW4gY2xhc3M9Imljb24tY2lyY2xlLWFycm93LXVwIj48L3NwYW4+PC9hPjwvcD48L2Rpdj48L2Zvb3Rlcj48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL3ZlbmRvci9qcXVlcnktMS44LjMtbWluLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL2NvbmZpZy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii93ZWJzdG9yZV9CdWlsZC9qcy9wbHVnaW5zLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3dlYnN0b3JlX0J1aWxkL2pzL21haW4uanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAvL3ZhciBlbGxpcHNlc3RleHQgPSAiLi4uIjsKICAgIHZhciBlbGxpcHNlc3RleHQgPSAiIjsKICAgIHZhciBtb3JldGV4dCA9ICJTaG93IG1vcmUgwrsiOwogICAgdmFyIGxlc3N0ZXh0ID0gIlNob3cgbGVzcyI7CiAgICAKICAgIHZhciBjb250ZW50SGVpZ2h0OwogICAgdmFyIHNob3dIZWlnaHQ9MjAwOwogICAgCgogICAgJCgnLnJlYWRtb3JlJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgY29udGVudCA9ICQodGhpcykuaHRtbCgpOwoKICAgICAgICBjb250ZW50SGVpZ2h0ID0gJCgnLnJlYWRtb3JlJykuaGVpZ2h0KCk7IAogICAgICAgIGlmKGNvbnRlbnRIZWlnaHQgPiBzaG93SGVpZ2h0KSB7CiAgICAgICAgCSQoJy5yZWFkbW9yZScpLmNzcyh7CgkJCSAgICAgICAgIm1heC1oZWlnaHQiOnNob3dIZWlnaHQsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICJoaWRkZW4iCgkJCSAgICB9KTsKICAgICAgICAgICAgJCh0aGlzKS5hZnRlcignPHNwYW4gY2xhc3M9Im1vcmVlbGxpcHNlcyI+JyArIGVsbGlwc2VzdGV4dCsgJzwvc3Bhbj48c3Bhbj48YSBocmVmPSIiIGNsYXNzPSJtb3JlbGluayI+JyArIG1vcmV0ZXh0ICsgJzwvYT48L3NwYW4+Jyk7CiAgICAgICAgfSAKICAgIH0pOwogCiAgICAkKCIubW9yZWxpbmsiKS5jbGljayhmdW5jdGlvbigpewogICAgICAgIGlmKCQodGhpcykuaGFzQ2xhc3MoImxlc3MiKSkgewogICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChtb3JldGV4dCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkKCcucmVhZG1vcmUnKS5jc3MoewoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjpzaG93SGVpZ2h0LAoJCQkgICAgICAgICJvdmVyZmxvdyIgOiAiaGlkZGVuIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6c2hvd0hlaWdodAoJCQl9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCJsZXNzIik7CiAgICAgICAgICAgICQodGhpcykuaHRtbChsZXNzdGV4dCk7CiAgICAKCQkJJCgnLnJlYWRtb3JlJykuY3NzKHsJCQkJCQoJCQkgICAgICAgICJtYXgtaGVpZ2h0IjoiIiwKCQkJICAgICAgICAibWluLWhlaWdodCI6IiIsCgkJCSAgICAgICAgIm92ZXJmbG93IiA6ICIiCgkJCX0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkKHRoaXMpLnByZXYoKS50b2dnbGUoKTsgIC8vIHNob3cvaGlkZSAiLi4uIiAKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKfSk7Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgpmdW5jdGlvbiB2aWV3X19pZDNfX2lkNDZfY2xpZW50U2lkZV9vbkNsaWVudExvYWQodGhpc0V2ZW50KSB7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyAKCXRyeXsJCgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJdmFyIGJhc2tldG5hbWU9cmV0dXJuQ29va2llVmFsKGpzQ29va2llTmFtZSk7CgkJCgkJY29tcHV0ZUJhc2tldEl0ZW1zKGJhc2tldG5hbWUpOwoJCWNvbXB1dGVEQUZpbGVzKCk7CgkJJCgiZGl2LmJ1eWJveCBmb3JtIikuc3VibWl0KAoJCQkJCQlmdW5jdGlvbigpIHsKCgkJCQkJCQl2YXIgbWVkaWEgPSAkKHRoaXMpLmF0dHIoJ2NsYXNzJyk7CgkJCQkJCQl2YXIgcHJpY2UgPSAkKHRoaXMpLmZpbmQoKCdpbnB1dFtuYW1lPWFydF9wcmljZV0nKSkKCQkJCQkJCQkJLnZhbCgpOwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtuYW1lPWFydF9sYW5nXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJLy92YXIgbGFuZ2FydG51bSA9ICQodGhpcykuZmluZCgKCQkJCQkJCS8vCQkoJ3NlbGVjdFtjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwoJCQkJCQkJCQkKCQkJCQkJCXZhciBsYW5nYXJ0bnVtID0gJCh0aGlzKS5maW5kKAoJCQkJCQkJCQkoJ1tjbGFzcz1sYW5nc3dpdGNoXScpKS52YWwoKTsgLy8gcHViaWQrbGFuZwkJCgkJCQkJCQkJCQoJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJdmFyIGJhc2tldG5hbWUyID0gZ2V0Q29va2llKGpzQ29va2llTmFtZSk7CgkJCQkJCQlBZGRUb0Jhc2tldChtZWRpYSwgbGFuZ2FydG51bSwgYmFza2V0bmFtZTIpOwoKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfSk7CgkJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgkJfSBjYXRjaChlKSB7YWxlcnQoZS5tZXNzYWdlKTt9CgkJCn0pOwoKfQoKZnVuY3Rpb24gdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljayh0aGlzRXZlbnQpIHsKdmFyIG15V2luZG93ID0gd2luZG93Lm9wZW4oImh0dHA6Ly9lZXB1cmwuY29tL2JZM3Y3OSIsICJfYmxhbmsiLCAidG9vbGJhcj1ubywgc2Nyb2xsYmFycz1ubywgcmVzaXphYmxlPW5vLCB0b3A9MjAwLCBsZWZ0PTUwMCwgd2lkdGg9OTAwLCBoZWlnaHQ9NTU1Iik7CgoKfQoKWFNQLmFkZE9uTG9hZChmdW5jdGlvbigpIHsKWFNQLmF0dGFjaEV2ZW50KCJ2aWV3Ol9pZDM6X2lkNDYiLCAidmlldzpfaWQzIiwgIm9uQ2xpZW50TG9hZCIsIHZpZXdfX2lkM19faWQ0Nl9jbGllbnRTaWRlX29uQ2xpZW50TG9hZCwgZmFsc2UsIDIpOwpYU1AuYXR0YWNoUGFydGlhbCgidmlldzpfaWQyMDY6X2lkMzA0Ol9pZDIxMCIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6bGlua3Nob3dhbGwiLCAidmlldzpfaWQyMDY6X2lkMzA0OmxpbmtzaG93YWxsIiwgIm9uY2xpY2siLCBmdW5jdGlvbigpe30sIDIsICJ2aWV3Ol9pZDIwNjpfaWQzMDQ6b3RoZXJwYXJ0c2RpdiIpOwpYU1AuYXR0YWNoRXZlbnQoInZpZXc6X2lkMjM0Ol9pZDI1NSIsICJ2aWV3Ol9pZDIzNDpsaW5rMSIsICJvbmNsaWNrIiwgdmlld19faWQyMzRfX2lkMjU1X2NsaWVudFNpZGVfb25jbGljaywgZmFsc2UsIDIpOwp9KTsgCgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
331
333
  http_version:
332
- recorded_at: Fri, 26 Jun 2020 14:16:00 GMT
334
+ recorded_at: Sat, 26 Sep 2020 08:42:43 GMT
333
335
  - request:
334
336
  method: get
335
337
  uri: https://webstore.iec.ch/webstore/webstore.nsf/AjaxRequestXML?Openagent&url=http://www.iec.ch/dyn/www/f?p=103:390:::::P390_PUBLICATION_ID:161
@@ -359,17 +361,17 @@ http_interactions:
359
361
  Server:
360
362
  - Lotus-Domino
361
363
  Date:
362
- - Fri, 26 Jun 2020 14:16:02 GMT
364
+ - Sat, 26 Sep 2020 08:42:48 GMT
363
365
  Cache-Control:
364
366
  - NoCache
365
367
  X-Cache:
366
368
  - Miss from cloudfront
367
369
  Via:
368
- - 1.1 fa9c6d18d126d08fab9acd98833b67f0.cloudfront.net (CloudFront)
370
+ - 1.1 2d37b2be0d6961b498e67a07b15886bd.cloudfront.net (CloudFront)
369
371
  X-Amz-Cf-Pop:
370
- - SYD1-C2
372
+ - SYD1-C1
371
373
  X-Amz-Cf-Id:
372
- - U9Goc9tlFBblp5RbpMX6eXrGMjkBKlXTxfmeA1P2W5DDH3kD1JWjBA==
374
+ - 61zkLfD7z8zz2gs4SaROZlE3t128WmS6sZUpi9FU3AKdUpB2-Q0coA==
373
375
  body:
374
376
  encoding: ASCII-8BIT
375
377
  string: "<!DOCTYPE html>\n<html>\n<style type=\"text/css\" media=\"screen\">\nhtml{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}header{display:block}a{background:0
@@ -432,5 +434,5 @@ http_interactions:
432
434
  class=\"alert alert-danger\">\n\t\t\t<span>404</span> <small>Not Found</small>\n\t\t</h2>\n\t</div>\n\t<div
433
435
  class=\"container\">\n\t\t<ul class=\"reasons\">\n\t\t</ul>\n\t\t<p>\n\t\t\n\t\t</p>\n\t\t\n\t</div>\n</body>\n</html>\n\n"
434
436
  http_version:
435
- recorded_at: Fri, 26 Jun 2020 14:16:01 GMT
437
+ recorded_at: Sat, 26 Sep 2020 08:42:44 GMT
436
438
  recorded_with: VCR 5.0.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-standoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.4
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-23 00:00:00.000000000 Z
11
+ date: 2020-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.1.0
47
+ version: 1.2.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.1.0
54
+ version: 1.2.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: iev
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -67,19 +67,19 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.2.1
69
69
  - !ruby/object:Gem::Dependency
70
- name: relaton
70
+ name: relaton-cli
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.2.0
75
+ version: 1.4.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.2.0
82
+ version: 1.4.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: relaton-iev
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: latexmath
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: byebug
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -361,15 +375,14 @@ files:
361
375
  - Rakefile
362
376
  - bin/rspec
363
377
  - docs/quickstart.adoc
364
- - lib/asciidoctor-yaml/i18n-en.yaml
365
- - lib/asciidoctor-yaml/i18n-fr.yaml
366
- - lib/asciidoctor-yaml/i18n-zh-Hans.yaml
367
378
  - lib/asciidoctor/standoc/base.rb
379
+ - lib/asciidoctor/standoc/base_structured_text_preprocessor.rb
368
380
  - lib/asciidoctor/standoc/basicdoc.rng
369
381
  - lib/asciidoctor/standoc/biblio.rng
370
382
  - lib/asciidoctor/standoc/blocks.rb
371
383
  - lib/asciidoctor/standoc/blocks_notes.rb
372
384
  - lib/asciidoctor/standoc/cleanup.rb
385
+ - lib/asciidoctor/standoc/cleanup_amend.rb
373
386
  - lib/asciidoctor/standoc/cleanup_block.rb
374
387
  - lib/asciidoctor/standoc/cleanup_boilerplate.rb
375
388
  - lib/asciidoctor/standoc/cleanup_footnotes.rb
@@ -383,14 +396,13 @@ files:
383
396
  - lib/asciidoctor/standoc/datamodel/plantuml_renderer.rb
384
397
  - lib/asciidoctor/standoc/front.rb
385
398
  - lib/asciidoctor/standoc/front_contributor.rb
386
- - lib/asciidoctor/standoc/i18n.rb
387
399
  - lib/asciidoctor/standoc/inline.rb
388
400
  - lib/asciidoctor/standoc/isodoc.rng
401
+ - lib/asciidoctor/standoc/json2_text_preprocessor.rb
389
402
  - lib/asciidoctor/standoc/lists.rb
390
403
  - lib/asciidoctor/standoc/log.rb
391
404
  - lib/asciidoctor/standoc/macros.rb
392
405
  - lib/asciidoctor/standoc/macros_plantuml.rb
393
- - lib/asciidoctor/standoc/macros_yaml2text.rb
394
406
  - lib/asciidoctor/standoc/ref.rb
395
407
  - lib/asciidoctor/standoc/ref_sect.rb
396
408
  - lib/asciidoctor/standoc/reqt.rb
@@ -402,11 +414,12 @@ files:
402
414
  - lib/asciidoctor/standoc/validate_section.rb
403
415
  - lib/asciidoctor/standoc/views/datamodel/model_representation.adoc.erb
404
416
  - lib/asciidoctor/standoc/views/datamodel/plantuml_representation.adoc.erb
417
+ - lib/asciidoctor/standoc/yaml2_text_preprocessor.rb
418
+ - lib/liquid/custom_blocks/key_iterator.rb
419
+ - lib/liquid/custom_filters/values.rb
405
420
  - lib/metanorma-standoc.rb
406
421
  - lib/metanorma/standoc.rb
407
- - lib/metanorma/standoc/latexml_requirement.rb
408
422
  - lib/metanorma/standoc/processor.rb
409
- - lib/metanorma/standoc/requirement.rb
410
423
  - lib/metanorma/standoc/version.rb
411
424
  - metanorma-standoc.gemspec
412
425
  - spec/asciidoctor-standoc/base_spec.rb
@@ -417,6 +430,7 @@ files:
417
430
  - spec/asciidoctor-standoc/inline_spec.rb
418
431
  - spec/asciidoctor-standoc/isobib_cache_spec.rb
419
432
  - spec/asciidoctor-standoc/lists_spec.rb
433
+ - spec/asciidoctor-standoc/macros_json2text_spec.rb
420
434
  - spec/asciidoctor-standoc/macros_spec.rb
421
435
  - spec/asciidoctor-standoc/macros_yaml2text_spec.rb
422
436
  - spec/asciidoctor-standoc/refs_dl_spec.rb
@@ -490,6 +504,7 @@ files:
490
504
  - spec/fixtures/macros_datamodel/top_down_diagram.xml
491
505
  - spec/metanorma/processor_spec.rb
492
506
  - spec/spec_helper.rb
507
+ - spec/support/shared_examples/structured_data_2_text_preprocessor.rb
493
508
  - spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml
494
509
  - spec/vcr_cassettes/isobib_get_123.yml
495
510
  - spec/vcr_cassettes/isobib_get_123_1.yml
@@ -1,20 +0,0 @@
1
- term_def_boilerplate:
2
- no_terms_boilerplate: |
3
- <p>No terms and definitions are listed in this document.</p>
4
- internal_terms_boilerplate: |
5
- <p>For the purposes of this document,
6
- the following terms and definitions apply.</p>
7
- norm_with_refs_pref:
8
- The following documents are referred to in the text in such a way
9
- that some or all of their content constitutes requirements of this
10
- document. For dated references, only the edition cited applies.
11
- For undated references, the latest edition of the referenced
12
- document (including any amendments) applies.
13
- norm_empty_pref:
14
- There are no normative references in this document.
15
- external_terms_boilerplate: |
16
- <p>For the purposes of this document,
17
- the terms and definitions given in % apply.</p>
18
- internal_external_terms_boilerplate: |
19
- <p>For the purposes of this document, the terms and definitions
20
- given in % and the following apply.</p>
@@ -1,13 +0,0 @@
1
- term_def_boilerplate:
2
- no_terms_boilerplate: |
3
- <p>Aucun terme n'est defini dans le présent document.</p>
4
- internal_terms_boilerplate: |
5
- <p>Pour les besoins du présent document, les termes et définitions suivants s'appliquent.</p>
6
- norm_with_refs_pref:
7
- Les documents suivants cités dans le texte constituent, pour tout ou partie de leur contenu, des exigences du présent document. Pour les références datées, seule l’édition citée s'applique. Pour les références non datées, la dernière édition du document de référence s'applique (y compris les éventuels amendements).
8
- norm_empty_pref:
9
- Le présent document ne contient aucune référence normative.
10
- external_terms_boilerplate: |
11
- <p>Pour les besoins du présent document, les termes et définitions de % s'appliquent.</p>
12
- internal_external_terms_boilerplate: |
13
- <p>Pour les besoins du présent document, les termes et définitions de % ainsi que les suivants, s'appliquent.</p>
@@ -1,15 +0,0 @@
1
- term_def_boilerplate:
2
- no_terms_boilerplate: |
3
- <p>本文件不提供术语和定义。</p>
4
- internal_terms_boilerplate: |
5
- <p>下列术语和定义适用于本文件。</p>
6
- norm_with_refs_pref:
7
- 下列文件对于本文件的应用是必不可少的。
8
- 凡是注日期的引用文件,仅注日期的版本适用于本文件。
9
- 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
10
- norm_empty_pref:
11
- 本文件并没有规范性引用文件。
12
- external_terms_boilerplate: |
13
- <p>% 界定的术语和定义适用于本文件。</p>
14
- internal_external_terms_boilerplate: |
15
- <p>% 界定的以及下列术语和定义适用于本文件。</p>
@@ -1,39 +0,0 @@
1
- require "yaml"
2
-
3
- module Asciidoctor
4
- module Standoc
5
- module I18n
6
- def load_yaml(lang, script)
7
- if @i18nyaml then YAML.load_file(@i18nyaml)
8
- elsif lang == "en"
9
- YAML.load_file(File.join(File.dirname(__FILE__),
10
- "../../asciidoctor-yaml/i18n-en.yaml"))
11
- elsif lang == "fr"
12
- YAML.load_file(File.join(File.dirname(__FILE__),
13
- "../../asciidoctor-yaml/i18n-fr.yaml"))
14
- elsif lang == "zh" && script == "Hans"
15
- YAML.load_file(File.join(File.dirname(__FILE__),
16
- "../../asciidoctor-yaml/i18n-zh-Hans.yaml"))
17
- else
18
- YAML.load_file(File.join(File.dirname(__FILE__),
19
- "../../asciidoctor-yaml/i18n-en.yaml"))
20
- end
21
- end
22
-
23
- def i18n_init(lang, script)
24
- @lang = lang
25
- @script = script
26
- y = load_yaml(lang, script)
27
- @term_def_boilerplate = y["term_def_boilerplate"] || ""
28
- @no_terms_boilerplate = y["no_terms_boilerplate"] || ""
29
- @internal_terms_boilerplate = y["internal_terms_boilerplate"] || ""
30
- @norm_with_refs_pref = y["norm_with_refs_pref"] || ""
31
- @norm_empty_pref = y["norm_empty_pref"] || ""
32
- @external_terms_boilerplate = y["external_terms_boilerplate"] || ""
33
- @internal_external_terms_boilerplate =
34
- y["internal_external_terms_boilerplate"] || ""
35
- @labels = y
36
- end
37
- end
38
- end
39
- end
@@ -1,165 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ostruct'
4
-
5
- module Asciidoctor
6
- module Standoc
7
- class YamlBlockStruct < OpenStruct
8
- def to_a
9
- @table.to_h.keys
10
- end
11
-
12
- def values
13
- @table.to_h.values
14
- end
15
-
16
- def each
17
- return to_a.each unless block_given?
18
-
19
- to_a.each do |key|
20
- yield(key)
21
- end
22
- end
23
- end
24
-
25
- class YamlContextRenderer
26
- attr_reader :context_object, :context_name
27
-
28
- def initialize(context_object:, context_name:)
29
- @context_object = context_object
30
- @context_name = context_name
31
- end
32
-
33
- def respond_to_missing?(name)
34
- respond_to?(name)
35
- end
36
-
37
- def method_missing(name, *_args)
38
- return context_object if name.to_s == context_name
39
-
40
- super
41
- end
42
-
43
- def render(template)
44
- ERB.new(template).result(binding)
45
- end
46
- end
47
-
48
- class Yaml2TextPreprocessor < Asciidoctor::Extensions::Preprocessor
49
- BLOCK_START_REGEXP = /\{(.+?)\.\*,(.+),(.+)\}/
50
- BLOCK_END_REGEXP = /\A\{[A-Z]+\}\z/
51
- # search document for block `yaml2text`
52
- # after that take template from block and read file into this template
53
- # example:
54
- # [yaml2text,foobar.yaml]
55
- # ----
56
- # === {item.name}
57
- # {item.desc}
58
- #
59
- # {item.symbol}:: {item.symbol_def}
60
- # ----
61
- #
62
- # with content of `foobar.yaml` file equal to:
63
- # - name: spaghetti
64
- # desc: wheat noodles of 9mm diameter
65
- # symbol: SPAG
66
- # symbol_def: the situation is message like spaghetti at a kid's
67
- #
68
- # will produce:
69
- # === spaghetti
70
- # wheat noodles of 9mm diameter
71
- #
72
- # SPAG:: the situation is message like spaghetti at a kid's meal
73
- def process(document, reader)
74
- input_lines = reader.readlines.to_enum
75
- Reader.new(processed_lines(document, input_lines))
76
- end
77
-
78
- private
79
-
80
- def processed_lines(document, input_lines)
81
- result = []
82
- current_macro_line_num = 0
83
- loop do
84
- line = input_lines.next
85
- current_macro_line_num += 1
86
- if yaml_block_match = line.match(/^\[yaml2text,(.+?),(.+?)\]/)
87
- mark = input_lines.next
88
- current_yaml_block = []
89
- while (yaml_block_line = input_lines.next) != mark
90
- current_yaml_block.push(yaml_block_line)
91
- end
92
- result.push(*read_yaml_and_parse_template(current_yaml_block,
93
- document,
94
- yaml_block_match,
95
- current_macro_line_num))
96
- else
97
- result.push(line)
98
- end
99
- end
100
- result
101
- end
102
-
103
- def read_yaml_and_parse_template(current_yaml_block, document, yaml_block_match, current_macro_line_num)
104
- content = nested_open_struct_from_yaml(yaml_block_match[1], document)
105
- parse_blocks_recursively(lines: current_yaml_block,
106
- attributes: content,
107
- context_name: yaml_block_match[2])
108
- rescue StandardError => exception
109
- document
110
- .logger
111
- .warn("Failed to parse yaml2text block on line #{current_macro_line_num}: #{exception.message}")
112
- []
113
- end
114
-
115
- def nested_open_struct_from_yaml(file_path, document)
116
- docfile_directory = File.dirname(document.attributes['docfile'] || '.')
117
- yaml_file_path = document
118
- .path_resolver
119
- .system_path(file_path, docfile_directory)
120
- content = YAML.safe_load(File.read(yaml_file_path))
121
- # Load content as json, then parse with JSON as nested open_struct
122
- JSON.parse(content.to_json, object_class: YamlBlockStruct)
123
- end
124
-
125
- def parse_blocks_recursively(lines:,
126
- attributes:,
127
- context_name:)
128
- lines = lines.to_enum
129
- result = []
130
- loop do
131
- line = lines.next
132
- if line.match?(BLOCK_START_REGEXP)
133
- line.gsub!(BLOCK_START_REGEXP,
134
- '<% \1.each&.with_index do |\2,index| %>')
135
- end
136
-
137
- if line.strip.match?(BLOCK_END_REGEXP)
138
- line.gsub!(BLOCK_END_REGEXP, '<% end %>')
139
- end
140
- line.gsub!(/{\s*if\s*([^}]+)}/, '<% if \1 %>')
141
- line.gsub!(/{\s*?end\s*?}/, '<% end %>')
142
- line = line
143
- .gsub(/{(.+?[^}]*)}/, '<%= \1 %>')
144
- .gsub(/[a-z\.]+\#/, 'index')
145
- result.push(line)
146
- end
147
- result = parse_context_block(context_lines: result,
148
- context_items: attributes,
149
- context_name: context_name)
150
- result
151
- end
152
-
153
- def parse_context_block(context_lines:,
154
- context_items:,
155
- context_name:)
156
- renderer = YamlContextRenderer
157
- .new(
158
- context_object: context_items,
159
- context_name: context_name
160
- )
161
- renderer.render(context_lines.join("\n")).split("\n")
162
- end
163
- end
164
- end
165
- end