bolognese 1.9.6 → 1.9.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (454) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -7
  3. data/Gemfile.lock +17 -17
  4. data/bolognese.gemspec +1 -1
  5. data/lib/bolognese/doi_utils.rb +8 -8
  6. data/lib/bolognese/readers/crossref_reader.rb +1 -1
  7. data/lib/bolognese/readers/datacite_reader.rb +1 -1
  8. data/lib/bolognese/readers/schema_org_reader.rb +2 -2
  9. data/lib/bolognese/utils.rb +9 -9
  10. data/lib/bolognese/version.rb +1 -1
  11. data/spec/author_utils_spec.rb +12 -6
  12. data/spec/cli_spec.rb +9 -8
  13. data/spec/datacite_utils_spec.rb +3 -3
  14. data/spec/doi_utils_spec.rb +17 -17
  15. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/default.yml +27 -20
  16. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_bibtex.yml +27 -20
  17. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_citation.yml +27 -20
  18. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_crossref.yml +27 -20
  19. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_datacite.yml +27 -20
  20. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_jats.yml +27 -20
  21. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_schema_org.yml +27 -20
  22. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/default.yml +33 -24
  23. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_bibtex.yml +33 -24
  24. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_citation.yml +34 -25
  25. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite.yml +34 -25
  26. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite_json.yml +34 -25
  27. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_jats.yml +34 -25
  28. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_schema_org.yml +33 -24
  29. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/default.yml +28 -22
  30. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_datacite.yml +28 -22
  31. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_schema_org.yml +29 -25
  32. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/crossref.yml +18 -15
  33. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/datacite.yml +18 -15
  34. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/jalc.yml +18 -15
  35. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/kisti.yml +18 -15
  36. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/medra.yml +18 -15
  37. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/op.yml +18 -15
  38. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/author.yml +9 -5
  39. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/no_author.yml +9 -5
  40. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/single_author.yml +9 -5
  41. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/with_organization.yml +9 -5
  42. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_state.yml +34 -25
  43. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_title.yml +33 -24
  44. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_description.yml +9 -5
  45. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_identifiers.yml +9 -5
  46. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license.yml +9 -5
  47. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_name.yml +9 -5
  48. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_url.yml +9 -5
  49. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_state.yml +9 -5
  50. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +9 -5
  51. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +9 -5
  52. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi.yml +9 -5
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi_with_protocol.yml +9 -5
  54. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/dx_doi_org_url.yml +9 -5
  55. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/force_test_resolver.yml +9 -5
  56. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/https_url.yml +9 -5
  57. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver.yml +9 -5
  58. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver_http.yml +9 -5
  59. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi.yml +9 -5
  60. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi_with_special_characters.yml +9 -5
  61. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/not_a_doi.yml +9 -5
  62. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/sandbox_url.yml +9 -5
  63. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/url.yml +9 -5
  64. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/crossref.yml +27 -20
  65. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/datacite.yml +27 -20
  66. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/jalc.yml +27 -20
  67. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/kisti.yml +27 -20
  68. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/medra.yml +27 -20
  69. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_a_valid_prefix.yml +9 -5
  70. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_found.yml +27 -20
  71. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/op.yml +27 -20
  72. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi.yml +9 -5
  73. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi_with_protocol.yml +9 -5
  74. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/dx_doi_org_url.yml +9 -5
  75. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/{test_resolver_http.yml → force_stage_resolver.yml} +9 -5
  76. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/https_url.yml +9 -5
  77. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/stage_resolver.yml +48 -0
  78. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/{force_test_resolver.yml → stage_resolver_http.yml} +9 -5
  79. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref.yml +53 -47
  80. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +53 -47
  81. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite.yml +52 -46
  82. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite_doi_http.yml +52 -46
  83. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/github.yml +35 -32
  84. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/orcid.yml +35 -32
  85. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/schema_org.yml +35 -32
  86. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +53 -47
  87. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/bibtex.yml +35 -32
  88. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/citeproc.yml +35 -32
  89. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/codemeta.yml +34 -31
  90. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crosscite.yml +34 -31
  91. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crossref.yml +35 -32
  92. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite.yml +34 -31
  93. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite_json.yml +35 -32
  94. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/ris.yml +35 -32
  95. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/schema_org.yml +34 -31
  96. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_string/crosscite.yml +35 -32
  97. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_for_match.yml +9 -5
  98. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +48 -0
  99. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_match.yml +9 -5
  100. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_no_match.yml +9 -5
  101. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_for_match.yml +9 -5
  102. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_match.yml +9 -5
  103. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_no_match.yml +9 -5
  104. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org/with_id.yml +9 -5
  105. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/with_affiliation.yml +9 -5
  106. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/without_affiliation.yml +9 -5
  107. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/maremma.yml +20 -16
  108. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/metadata_reports.yml +20 -37
  109. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +27 -20
  110. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +27 -20
  111. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +27 -20
  112. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/JaLC.yml +26 -19
  113. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/KISTI.yml +26 -19
  114. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/OP.yml +28 -21
  115. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/affiliation_is_space.yml +24 -23
  116. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book.yml +27 -20
  117. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml +26 -19
  118. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/article_id_as_page_number.yml +23 -22
  119. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/author_literal.yml +27 -20
  120. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book.yml +28 -21
  121. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter.yml +27 -20
  122. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +29 -22
  123. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_oup.yml +26 -19
  124. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/component.yml +28 -21
  125. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset.yml +28 -21
  126. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset_usda.yml +26 -19
  127. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/date_in_future.yml +28 -21
  128. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dissertation.yml +26 -19
  129. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/empty_given_name.yml +29 -21
  130. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/invalid_date.yml +27 -20
  131. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article.yml +27 -20
  132. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +30 -22
  133. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with.yml +27 -20
  134. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +27 -20
  135. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_funding.yml +27 -20
  136. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_issue.yml +26 -19
  137. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/mEDRA.yml +29 -60
  138. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/markup.yml +31 -23
  139. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/missing_creator.yml +27 -20
  140. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_issn.yml +25 -24
  141. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles.yml +28 -21
  142. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +23 -22
  143. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml +26 -19
  144. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/peer_review.yml +26 -19
  145. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml +27 -20
  146. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content_copernicus.yml +32 -24
  147. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/report_osti.yml +37 -31
  148. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/vor_with_url.yml +27 -20
  149. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book.yml +30 -22
  150. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +26 -19
  151. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_json_metadata/metadata_from_api.yml +34 -40
  152. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting.yml +35 -32
  153. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_staging_system.yml +106 -0
  154. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_staging_system_schema_3.yml +106 -0
  155. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_with_related_id_system.yml +34 -41
  156. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_not_found.yml +34 -25
  157. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Dataset.yml +33 -24
  158. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding.yml +34 -25
  159. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml +33 -24
  160. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +34 -25
  161. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Referee_report_in_staging_system.yml +106 -0
  162. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Schema_org_type.yml +34 -25
  163. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_only_full_name.yml +33 -24
  164. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_scheme.yml +34 -25
  165. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +34 -25
  166. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/cc-by_3_0_us.yml +34 -32
  167. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/content_url.yml +35 -33
  168. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/date.yml +34 -48
  169. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/dissertation.yml +33 -24
  170. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/doi_with_sign.yml +34 -28
  171. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/empty_subject.yml +35 -28
  172. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml +34 -25
  173. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_references.yml +34 -25
  174. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_schema_version_3.yml +34 -51
  175. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/is_identical_to.yml +34 -25
  176. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/keywords_with_attributes.yml +35 -40
  177. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +34 -53
  178. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml +35 -37
  179. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +34 -33
  180. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml +35 -52
  181. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml +34 -25
  182. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml +33 -24
  183. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme_FOR.yml +35 -46
  184. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml +9 -5
  185. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml +9 -5
  186. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year-month.yml +9 -5
  187. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year.yml +9 -5
  188. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/date.yml +9 -5
  189. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year-month.yml +9 -5
  190. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year.yml +9 -5
  191. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/date.yml +9 -5
  192. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year-month.yml +9 -5
  193. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year.yml +9 -5
  194. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/future.yml +9 -5
  195. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/invalid.yml +9 -5
  196. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/nil.yml +9 -5
  197. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/past.yml +9 -5
  198. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/present.yml +9 -5
  199. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_familyName.yml +16 -16
  200. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_Thai.yml +16 -10
  201. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order.yml +17 -37
  202. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +15 -9
  203. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_sort-order.yml +15 -9
  204. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/hyper-authorship.yml +17 -1203
  205. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/is_organization.yml +9 -5
  206. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_author_names_in_one_field.yml +16 -18
  207. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_name_identifier.yml +15 -9
  208. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation.yml +15 -9
  209. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation_and_country.yml +79 -40
  210. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_role.yml +15 -9
  211. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/only_familyName_and_givenName.yml +12 -8
  212. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting.yml +28 -22
  213. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +28 -22
  214. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse.yml +14 -12
  215. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/pangaea.yml +12 -8
  216. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/zenodo.yml +16 -542
  217. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/only_title.yml +9 -5
  218. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_and_pages.yml +9 -5
  219. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_and_pages.yml +9 -5
  220. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_issue_and_pages.yml +9 -5
  221. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_as_codemeta_url.yml +9 -5
  222. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url.yml +9 -5
  223. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url_file.yml +9 -5
  224. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +18 -15
  225. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/unknown_DOI_prefix.yml +18 -15
  226. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors/none.yml +16 -10
  227. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_creators/insert.yml +15 -9
  228. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates/insert.yml +16 -10
  229. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_descriptions/insert.yml +17 -17
  230. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_identifier/doi.yml +15 -9
  231. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_language/insert.yml +16 -10
  232. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_person/creator_only_name.yml +15 -9
  233. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publication_year/insert.yml +16 -10
  234. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publisher/insert.yml +15 -9
  235. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/insert.yml +16 -10
  236. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/related_identifier.yml +16 -10
  237. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type/insert.yml +15 -9
  238. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_rights_list/insert.yml +15 -9
  239. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_sizes/insert.yml +16 -10
  240. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +15 -9
  241. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_titles/insert.yml +15 -9
  242. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_version/insert.yml +16 -10
  243. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_comma.yml +9 -5
  244. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_family_name.yml +9 -5
  245. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_id.yml +9 -5
  246. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_known_given_name.yml +9 -5
  247. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_no_info.yml +9 -5
  248. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_orcid_id.yml +9 -5
  249. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_type_organization.yml +9 -5
  250. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/missing_comma.yml +35 -32
  251. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/nil.yml +34 -31
  252. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/overlapping_keys.yml +35 -32
  253. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/valid.yml +35 -32
  254. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/not_found.yml +9 -5
  255. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash.yml +9 -5
  256. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +9 -5
  257. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/SICI_doi.yml +9 -5
  258. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi.yml +9 -5
  259. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +9 -5
  260. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +9 -5
  261. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +9 -5
  262. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_too_long.yml +9 -5
  263. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_with_string.yml +9 -5
  264. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_with_protocol.yml +9 -5
  265. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/dx_doi_org_url.yml +9 -5
  266. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/https_url.yml +9 -5
  267. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/not_valid_doi_prefix.yml +9 -5
  268. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/url_with_one_slash.yml +9 -5
  269. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi.yml +9 -5
  270. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi_as_url.yml +9 -5
  271. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/ftp.yml +9 -5
  272. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/invalid_url.yml +9 -5
  273. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_options.yml +9 -5
  274. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_url.yml +9 -5
  275. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/string.yml +9 -5
  276. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url.yml +9 -5
  277. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url_with_utf-8.yml +9 -5
  278. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/doi.yml +9 -5
  279. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/url.yml +9 -5
  280. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_array.yml +9 -5
  281. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_empty_array.yml +9 -5
  282. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_hash.yml +9 -5
  283. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_string.yml +9 -5
  284. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/uri.yml +9 -5
  285. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash.yml +9 -5
  286. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +9 -5
  287. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array.yml +9 -5
  288. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array_of_strings.yml +9 -5
  289. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/first.yml +9 -5
  290. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/hash.yml +9 -5
  291. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/nil.yml +9 -5
  292. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/string.yml +9 -5
  293. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_only_keep_specific_tags.yml +9 -5
  294. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_remove_a_tags.yml +9 -5
  295. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_id.yml +9 -5
  296. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_not_found.yml +9 -5
  297. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_url.yml +9 -5
  298. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_exists.yml +9 -5
  299. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_id.yml +9 -5
  300. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org/with_id.yml +9 -5
  301. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org_identifiers/with_identifiers.yml +9 -5
  302. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_doi/doi.yml +9 -5
  303. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/{doi_resolver/test_resolver.yml → validate_funder_doi/1_7_10.yml} +9 -5
  304. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_11.yml +48 -0
  305. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_12.yml +48 -0
  306. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_13.yml +48 -0
  307. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_14.yml +48 -0
  308. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_4.yml +48 -0
  309. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_5.yml +48 -0
  310. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_6.yml +48 -0
  311. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_7.yml +48 -0
  312. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_8.yml +48 -0
  313. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_9.yml +48 -0
  314. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi.yml +9 -5
  315. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi_without_prefix.yml +9 -5
  316. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/non-funder_doi.yml +9 -5
  317. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid.yml +9 -5
  318. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_https.yml +9 -5
  319. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_id.yml +9 -5
  320. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_with_spaces.yml +9 -5
  321. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_wrong_id.yml +9 -5
  322. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_www.yml +9 -5
  323. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +9 -5
  324. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +9 -5
  325. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +9 -5
  326. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +9 -5
  327. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi.yml +9 -5
  328. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_as_url.yml +9 -5
  329. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_with_protocol.yml +9 -5
  330. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/only_prefix.yml +9 -5
  331. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/DOI.yml +9 -5
  332. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/ISSN.yml +9 -5
  333. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/URL.yml +9 -5
  334. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/string.yml +9 -5
  335. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/BlogPosting.yml +17 -17
  336. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/Dataset.yml +16 -10
  337. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +79 -40
  338. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/climate_data.yml +17 -13
  339. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/from_schema_org.yml +28 -24
  340. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +17 -88
  341. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/maremma.yml +20 -16
  342. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/text.yml +16 -10
  343. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_data_citation.yml +9 -5
  344. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_pages.yml +9 -5
  345. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Dataset.yml +16 -10
  346. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article.yml +9 -5
  347. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +9 -5
  348. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Missing_author.yml +9 -5
  349. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +17 -14
  350. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/software_w/version.yml +16 -24
  351. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Another_dataset.yml +16 -34
  352. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting.yml +17 -17
  353. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +29 -25
  354. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Dataset.yml +15 -9
  355. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/container_title.yml +16 -10
  356. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/interactive_resource_without_dates.yml +16 -13
  357. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/journal_article.yml +9 -5
  358. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/keywords_subject_scheme.yml +17 -88
  359. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/maremma.yml +20 -16
  360. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/missing_creator.yml +9 -5
  361. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +15 -9
  362. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/organization_author.yml +9 -5
  363. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software.yml +15 -9
  364. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software_w/version.yml +16 -24
  365. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_only_first_page.yml +9 -5
  366. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_pages.yml +9 -5
  367. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +16 -14
  368. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +16 -14
  369. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +16 -10
  370. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/maremma.yml +20 -16
  371. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +9 -5
  372. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation.yml +9 -5
  373. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml +28 -22
  374. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crossref/from_DataCite.yml +16 -10
  375. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/climate_data.yml +16 -12
  376. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/maremma.yml +19 -15
  377. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/text.yml +15 -9
  378. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_data_citation.yml +9 -5
  379. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_pages.yml +9 -5
  380. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/maremma.yml +20 -16
  381. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +9 -5
  382. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +9 -5
  383. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation_schema_org.yml +29 -23
  384. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/DOI_not_found.yml +16 -10
  385. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +16 -10
  386. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +16 -42
  387. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru_with_doi_in_options.yml +17 -43
  388. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/maremma.yml +20 -16
  389. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +9 -5
  390. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +9 -5
  391. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation_schema_org.yml +29 -25
  392. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_editor.yml +9 -5
  393. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_version.yml +17 -26
  394. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +16 -10
  395. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +17 -43
  396. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/book_chapter.yml +8 -4
  397. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +16 -13
  398. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/maremma.yml +20 -16
  399. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +9 -5
  400. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +9 -5
  401. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation_schema_org.yml +30 -22
  402. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_editor.yml +9 -5
  403. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +16 -16
  404. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +28 -22
  405. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/journal_article.yml +9 -5
  406. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/maremma.yml +20 -16
  407. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/with_pages.yml +9 -5
  408. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting.yml +16 -16
  409. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +28 -22
  410. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/Dataset.yml +16 -10
  411. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/alternate_name.yml +16 -10
  412. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/journal_article.yml +9 -5
  413. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +16 -87
  414. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/maremma.yml +20 -16
  415. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/with_pages.yml +9 -5
  416. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding.yml +33 -24
  417. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +35 -52
  418. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +16 -36
  419. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +34 -48
  420. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +33 -24
  421. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml +16 -10
  422. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +17 -18
  423. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/data_catalog.yml +16 -22
  424. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/geo_location_box.yml +17 -68
  425. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +17 -14
  426. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/journal_article.yml +9 -5
  427. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +20 -16
  428. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/series_information.yml +15 -9
  429. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme.yml +16 -10
  430. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +16 -87
  431. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting.yml +17 -17
  432. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +30 -24
  433. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/Dataset.yml +16 -10
  434. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/journal_article.yml +9 -5
  435. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/with_pages.yml +9 -5
  436. data/spec/readers/crossref_reader_spec.rb +284 -23
  437. data/spec/readers/datacite_reader_spec.rb +64 -27
  438. data/spec/readers/schema_org_reader_spec.rb +4 -6
  439. data/spec/utils_spec.rb +17 -4
  440. data/spec/writers/bibtex_writer_spec.rb +4 -6
  441. data/spec/writers/citeproc_writer_spec.rb +3 -3
  442. data/spec/writers/csv_writer_spec.rb +1 -1
  443. data/spec/writers/datacite_writer_spec.rb +1 -1
  444. data/spec/writers/jats_writer_spec.rb +1 -1
  445. data/spec/writers/rdf_xml_writer_spec.rb +1 -1
  446. data/spec/writers/ris_writer_spec.rb +10 -8
  447. data/spec/writers/schema_org_writer_spec.rb +4 -4
  448. data/spec/writers/turtle_writer_spec.rb +1 -1
  449. metadata +22 -12
  450. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_bibtex.yml +0 -111
  451. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_alternate_identifiers.yml +0 -51
  452. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system.yml +0 -104
  453. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system_schema_3.yml +0 -99
  454. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Referee_report_in_test_system.yml +0 -102
@@ -8,9 +8,11 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.4; mailto:info@datacite.org)
12
12
  Accept:
13
- - text/xml
13
+ - text/xml;charset=utf-8
14
+ Accept-Encoding:
15
+ - gzip,deflate
14
16
  response:
15
17
  status:
16
18
  code: 200
@@ -35,17 +37,19 @@ http_interactions:
35
37
  Server:
36
38
  - http-kit
37
39
  Date:
38
- - Sun, 12 Jul 2020 11:25:35 GMT
40
+ - Wed, 09 Jun 2021 12:58:44 GMT
39
41
  X-Rate-Limit-Limit:
40
42
  - '50'
41
43
  X-Rate-Limit-Interval:
42
44
  - 1s
45
+ Permissions-Policy:
46
+ - interest-cohort=()
43
47
  Connection:
44
48
  - close
45
49
  body:
46
50
  encoding: ASCII-8BIT
47
51
  string: !binary |-
48
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZC48L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibWVtYmVyLWlkIiB0eXBlPSJudW1iZXIiPjQzNzQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NjcxMjQ2MTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iam91cm5hbC1pZCIgdHlwZT0ibnVtYmVyIj4xODkzNjU8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxODA4MjMxMzM2NDY8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjc1NTQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTgtMDgtMjNUMDk6NDE6NDlaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTQtMDItMTFUMTE6Mjk6MDRaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icmVsYXRpb24iIHR5cGU9ImRvaSIgY2xhaW09ImlzUmV2aWV3T2YiPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InJlbGF0aW9uIiB0eXBlPSJkb2kiIGNsYWltPSJpc1Jldmlld09mIj4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNjwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgPGphdHM6YWJzdHJhY3QgeG1sbnM6amF0cz0iaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L0pBVFMxIj4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8amF0czphYnN0cmFjdCB4bWxuczpqYXRzPSJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvSkFUUzEiIGFic3RyYWN0LXR5cGU9ImV4ZWN1dGl2ZS1zdW1tYXJ5Ij4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+T3VyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxpdmluZyB3b3JsZCBoYXMgYmVlbiBhZHZhbmNlZCBncmVhdGx5IGJ5IHN0dWRpZXMgb2Yg4oCYbW9kZWwgb3JnYW5pc21z4oCZLCBzdWNoIGFzIG1pY2UsIHplYnJhZmlzaCwgYW5kIGZydWl0IGZsaWVzLiBTdHVkeWluZyB0aGVzZSBjcmVhdHVyZXMgaGFzIGJlZW4gY3J1Y2lhbCB0byB1bmNvdmVyaW5nIHRoZSBnZW5lcyB0aGF0IGNvbnRyb2wgaG93IG91ciBib2RpZXMgZGV2ZWxvcCBhbmQgZ3JvdywgYW5kIGFsc28gdG8gZGlzY292ZXIgdGhlIGdlbmV0aWMgYmFzaXMgb2YgZGlzZWFzZXMgc3VjaCBhcyBjYW5jZXIuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPlRoYWxlIGNyZXNz4oCUb3IgQXJhYmlkb3BzaXMgdGhhbGlhbmEgdG8gZ2l2ZSBpdHMgZm9ybWFsIG5hbWXigJRpcyB0aGUgbW9kZWwgb3JnYW5pc20gb2YgY2hvaWNlIGZvciBtYW55IHBsYW50IGJpb2xvZ2lzdHMuIFRoaXMgdGlueSB3ZWVkIGhhcyBiZWVuIHdpZGVseSBzdHVkaWVkIGJlY2F1c2UgaXQgY2FuIGNvbXBsZXRlIGl0cyBsaWZlY3ljbGUsIGZyb20gc2VlZCB0byBzZWVkLCBpbiBhYm91dCA2IHdlZWtzLCBhbmQgYmVjYXVzZSBpdHMgcmVsYXRpdmVseSBzbWFsbCBnZW5vbWUgc2ltcGxpZmllcyB0aGUgc2VhcmNoIGZvciBnZW5lcyB0aGF0IGNvbnRyb2wgc3BlY2lmaWMgdHJhaXRzLiBIb3dldmVyLCBhcyB3aXRoIG90aGVyIG11Y2gtc3R1ZGllZCBtb2RlbCBzeXN0ZW1zLCB1bmRlcnN0YW5kaW5nIHRoZSBjaGFuZ2VzIHRoYXQgdW5kZXJwaW4gdGhlIGRldmVsb3BtZW50IG9mIHNvbWUgb2YgdGhlIG1vcmUgY29tcGxleCB0aXNzdWVzIGluIEFyYWJpZG9wc2lzIGhhcyBiZWVuIHNldmVyZWx5IGhhbXBlcmVkIGJ5IHRoZSBzaGVhciBudW1iZXIgb2YgY2VsbHMgaW52b2x2ZWQuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvamF0czpwPg0KICAgICAgICAgICAgICAgICAgPGphdHM6cD5Ob3cgU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIGhhdmUgZGV2ZWxvcGVkIGEgbm92ZWwgYXBwcm9hY2gsIHRlcm1lZCDigJhhdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neeKAmSwgdG8gb3ZlcmNvbWUgdGhlc2UgcHJvYmxlbXMuIFRoaXMgc3RyYXRlZ3kgaW52b2x2ZXMg4oCYdGVhY2hpbmfigJkgYSBjb21wdXRlciB0byBhdXRvbWF0aWNhbGx5IHJlY29nbml6ZSBkaWZmZXJlbnQgcGxhbnQgY2VsbHMgYW5kIHRvIG1lYXN1cmUgdGhlaXIgaW1wb3J0YW50IGZlYXR1cmVzIGluIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgb2YgdGlzc3VlIHNlY3Rpb25zLiBUaGUgcmVzdWx0aW5nIOKAmG1hcOKAmSBvZiB0aGUgZGV2ZWxvcGluZyBzdGVt4oCUd2hpY2ggcmVxdWlyZWQgb3ZlciA4MDAgaHIgb2YgY29tcHV0aW5nIHRpbWUgdG8gY29tcGxldGXigJRyZXZlYWxzIHRoZSBjaGFuZ2VzIHRvIGNlbGxzIGFuZCB0aXNzdWVzIGFzIHRoZXkgZGV2ZWxvcCB0aGF0IGFsbG93IHRoZSB0cmFuc3BvcnQgb2Ygd2F0ZXIsIHN1Z2FycyBhbmQgbnV0cmllbnRzIGJldHdlZW4gdGhlIGFib3ZlLSBhbmQgYmVsb3ctZ3JvdW5kIG9yZ2Fucy4gU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIHN1Z2dlc3QgdGhhdCB0aGVpciBub3ZlbCBhcHByb2FjaCBjb3VsZCwgaW4gdGhlIGZ1dHVyZSwgYWxzbyBiZSBhcHBsaWVkIHRvIHN0dWR5IHRoZSBkZXZlbG9wbWVudCBvZiBvdGhlciB0aXNzdWVzIGFuZCBvcmdhbmlzbXMsIGluY2x1ZGluZyBhbmltYWxzLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJvbmxpbmUiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjAyPC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDxkYXk+MTE8L2RheT4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTQ8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICAgIDxpdGVtX251bWJlciBpdGVtX251bWJlcl90eXBlPSJhcnRpY2xlX251bWJlciI+ZTAxNTY3PC9pdGVtX251bWJlcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9ImRvaSI+MTAuNzU1NC9lTGlmZS4wMTU2NzwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICA8L3B1Ymxpc2hlcl9pdGVtPg0KICAgICAgICAgICAgICAgIDxmcjpwcm9ncmFtIHhtbG5zOmZyPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy9mdW5kcmVmLnhzZCIgbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+RU1CTyBsb25ndGVybSBwb3N0LWRvY3RvcmFsIGZlbGxvd3NoaXBzPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+TWFyaWUgSGVpbS1Wb2VndGxpbjwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPjUwMTEwMDAwNjM5MDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvZnI6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICA8YWk6bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPC9haTpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOnByb2dyYW0geG1sbnM6ZnI9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL2Z1bmRyZWYueHNkIiBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5TeXN0ZW1zWDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBFTUJPDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMzA0MzwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXNzIE5hdGlvbmFsIFNjaWVuY2UgRm91bmRhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDE3MTE8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBVbml2ZXJzaXR5IG9mIExhdXNhbm5lDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDA2MzkwPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9mcjpwcm9ncmFtPg0KICAgICAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgICAgICAgIDxyZWw6cHJvZ3JhbSB4bWxuczpyZWw9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3JlbGF0aW9ucy54c2QiPg0KICAgICAgICAgICAgICAgICAgPHJlbDpyZWxhdGVkX2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxyZWw6ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvcmVsOmRlc2NyaXB0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8cmVsOmludGVyX3dvcmtfcmVsYXRpb24gaWRlbnRpZmllci10eXBlPSJkb2kiIHJlbGF0aW9uc2hpcC10eXBlPSJpc1N1cHBsZW1lbnRlZEJ5Ij4xMC41MDYxL2RyeWFkLmI4MzVrPC9yZWw6aW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcmVsOnJlbGF0ZWRfaXRlbT4NCiAgICAgICAgICAgICAgICA8L3JlbDpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxhcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICAgIDxhcmNoaXZlIG5hbWU9IkNMT0NLU1MiIC8+DQogICAgICAgICAgICAgICAgPC9hcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cHM6Ly9jZG4uZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZWxpZmUtMDE1NjctdjEucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnhtbDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxjaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Cb25rZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQyNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QVBMIHJlZ3VsYXRlcyB2YXNjdWxhciB0aXNzdWUgaWRlbnRpdHkgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYXR1cmUwMjEwMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5HZW5ldGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5CcmVubmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTgyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQxMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbiB0aGUgYmVnaW5uaW5nIHdhcyB0aGUgd29ybTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlNlY29uZGFyeSB4eWxlbSBkZXZlbG9wbWVudCBpbiBBcmFiaWRvcHNpczogYSBtb2RlbCBmb3Igd29vZCBmb3JtYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlRyYWluaW5nIG51LXN1cHBvcnQgdmVjdG9yIGNsYXNzaWZpZXJzOiB0aGVvcnkgYW5kIGFsZ29yaXRobXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvQkYwMDk5NDAxODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdXBwb3J0LXZlY3RvciBOZXR3b3JrczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbHVsYXIgb3JnYW5pc2F0aW9uIG9mIHRoZSBBcmFiaWRvcHNpcyB0aGFsaWFuYSByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TZW1pbmFycyBpbiBDZWxsICZhbXA7IERldmVsb3BtZW50YWwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FbG88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMDk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlN0ZW0gY2VsbCBmdW5jdGlvbiBkdXJpbmcgcGxhbnQgdmFzY3VsYXIgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnNlbWNkYi4yMDA5LjA5LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EZXZlbG9wbWVudDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FdGNoZWxsczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE0MDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMjI0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPldPWDQgYW5kIFdPWDE0IGFjdCBkb3duc3RyZWFtIG9mIHRoZSBQWFkgcmVjZXB0b3Iga2luYXNlIHRvIHJlZ3VsYXRlIHBsYW50IHZhc2N1bGFyIHByb2xpZmVyYXRpb24gaW5kZXBlbmRlbnRseSBvZiBhbnkgcm9sZSBpbiB2YXNjdWxhciBvcmdhbmlzYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTI0Mi9kZXYuMDkxMzE0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBMT1MgR2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT44PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPmUxMDAyOTk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50IHZhc2N1bGFyIGNlbGwgZGl2aXNpb24gaXMgbWFpbnRhaW5lZCBieSBhbiBpbnRlcmFjdGlvbiBiZXR3ZWVuIFBYWSBhbmQgZXRoeWxlbmUgc2lnbmFsbGluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMzcxL2pvdXJuYWwucGdlbi4xMDAyOTk3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb2xlY3VsYXIgU3lzdGVtcyBCaW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkZ1Y2hzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Njwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zNzA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2x1c3RlcmluZyBwaGVub3R5cGUgcG9wdWxhdGlvbnMgYnkgZ2Vub21lLXdpZGUgUk5BaSBhbmQgbXVsdGlwYXJhbWV0cmljIGltYWdpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9tc2IuMjAxMC4yNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjExIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvIFN5c3RlbXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+R3JhbnF2aXN0PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTEwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkJhU0FSLUEgdG9vbCBpbiBSIGZvciBmcmVxdWVuY3kgZGV0ZWN0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EZXZlbG9wbWVudGFsIG1lY2hhbmlzbXMgcmVndWxhdGluZyBzZWNvbmRhcnkgZ3Jvd3RoIGluIHdvb2R5IHBsYW50czwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2oucGJpLjIwMDUuMTEuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYxODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5URElGIHBlcHRpZGUgc2lnbmFsaW5nIHJlZ3VsYXRlcyB2YXNjdWxhciBzdGVtIGNlbGwgcHJvbGlmZXJhdGlvbiB2aWEgdGhlIFdPWDQgaG9tZW9ib3ggZ2VuZSBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTAuMDc2MDgzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTA1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1MjA4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk5vbi1jZWxsLWF1dG9ub21vdXMgY29udHJvbCBvZiB2YXNjdWxhciBzdGVtIGNlbGwgZmF0ZSBieSBhIENMRSBwZXB0aWRlL3JlY2VwdG9yIHN5c3RlbTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuMDgwODQ0NDEwNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5NZXllcm93aXR6PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NTY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFyYWJpZG9wc2lzLCBhIHVzZWZ1bCB3ZWVkPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvMDA5Mi04Njc0KDg5KTkwOTAwLTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNjaWVuY2U8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjI5NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNDgyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50cyBjb21wYXJlZCB0byBhbmltYWxzOiB0aGUgYnJvYWRlc3QgY29tcGFyYXRpdmUgc3R1ZHkgb2YgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyNi9zY2llbmNlLjEwNjY2MDk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IFBoeXNpb2w8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TmllbWluZW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NjUzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgd2VlZCBmb3Igd29vZD8gQXJhYmlkb3BzaXMgYXMgYSBnZW5ldGljIG1vZGVsIGZvciB4eWxlbSBkZXZlbG9wbWVudDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA0L3BwLjEwNC4wNDAyMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBCaW90ZWNobm9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk5vYmxlPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTU2NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XaGF0IGlzIGEgc3VwcG9ydCB2ZWN0b3IgbWFjaGluZT88L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsYXNzaWZpY2F0aW9uIG9mIGN1bHR1cmVkIG1hbW1hbGlhbiBjZWxscyBieSBzaGFwZSBhbmFseXNpcyBhbmQgcGF0dGVybiByZWNvZ25pdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuNzcuMy4xNTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CaW9pbmZvcm1hdGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5QYXU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45Nzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RUJJbWFnZeKAk2FuIFIgcGFja2FnZSBmb3IgaW1hZ2UgcHJvY2Vzc2luZyB3aXRoIGFwcGxpY2F0aW9ucyB0byBjZWxsdWxhciBwaGVub3R5cGVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwOTMvYmlvaW5mb3JtYXRpY3MvYnRxMDQ2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlJhZ25pPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTMyMjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Nb2JpbGUgZ2liYmVyZWxsaW4gZGlyZWN0bHkgc3RpbXVsYXRlcyBBcmFiaWRvcHNpcyBoeXBvY290eWwgeHlsZW0gZXhwYW5zaW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDUvdHBjLjExMS4wODQwMjA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRyeWFkIERpZ2l0YWwgUmVwb3NpdG9yeTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EYXRhIGZyb206IEF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Rmxvd2VyaW5nIGFzIGEgY29uZGl0aW9uIGZvciB4eWxlbSBleHBhbnNpb24gaW4gQXJhYmlkb3BzaXMgaHlwb2NvdHlsIGFuZCByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5jdWIuMjAwOC4wMi4wNzA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlRoZSBOZXcgUGh5dG9sb2dpc3Q8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U3BpY2VyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTg2PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU3NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Fdm9sdXRpb24gb2YgZGV2ZWxvcG1lbnQgb2YgdmFzY3VsYXIgY2FtYmlhIGFuZCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMTEvai4xNDY5LTgxMzcuMjAxMC4wMzIzNi54PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5NYWNoaW5lIFZpc2lvbiBhbmQgQXBwbGljYXRpb25zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlRoZXJpYXVsdDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1OTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DZWxsIG1vcnBob2xvZ3kgY2xhc3NpZmljYXRpb24gYW5kIGNsdXR0ZXIgbWl0aWdhdGlvbiBpbiBwaGFzZS1jb250cmFzdCBtaWNyb3Njb3B5IGltYWdlcyB1c2luZyBtYWNoaW5lIGxlYXJuaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDcvczAwMTM4LTAxMS0wMzQ1LTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+VXl0dGV3YWFsPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTQ5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQzOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5NZWNoYW5pY2FsIHN0cmVzcyBhY3RzIHZpYSBrYXRhbmluIHRvIGFtcGxpZnkgZGlmZmVyZW5jZXMgaW4gZ3Jvd3RoIHJhdGUgYmV0d2VlbiBhZGphY2VudCBjZWxscyBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QSBzY3JlZW4gZm9yIG1vcnBob2xvZ2ljYWwgY29tcGxleGl0eSBpZGVudGlmaWVzIHJlZ3VsYXRvcnMgb2Ygc3dpdGNoLWxpa2UgdHJhbnNpdGlvbnMgYmV0d2VlbiBkaXNjcmV0ZSBjZWxsIHNoYXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkFic3RyYWN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2Fic3RyYWN0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+ZUxpZmUgZGlnZXN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2RpZ2VzdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAxLiBDZWxsdWxhciBsZXZlbCBhbmFseXNpcyBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aC48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgTGlnaHQgbWljcm9zY29weSBvZiBjcm9zcyBzZWN0aW9ucyBvYnRhaW5lZCBmcm9tIEFyYWJpZG9wc2lzIGh5cG9jb3R5bHMgKG9yZ2FuIHBvc2l0aW9uIGlsbHVzdHJhdGVkIGZvciBhIDktZGF5LW9sZCBzZWVkbGluZywgbG93ZXIgbGVmdCkgYXQgOSBkYWcgKHVwcGVyIGxlZnQpIGFuZCAzNSBkYWcgKHJpZ2h0KS4gU2l6ZSBiYXJzIGFyZSAxMDAgzrxtLiBCbHVlIEdVUyBzdGFpbmluZyBkdWUgdG8gdGhlIHByZXNlbmNlIG9mIGFuIEFQTDo6R1VTIHJlcG9ydGVyIGdlbmUgaW4gdGhpcyBDb2wtMCBiYWNrZ3JvdW5kIGxpbmUgbWFya3MgcGhsb2VtIGJ1bmRsZXMuIChCKSBPdmVydmlldyBvZiB0aGUgZGV2ZWxvcG1lbnRhbCBzZXJpZXMgKHRpbWUgcG9pbnRzIGFuZCBkaXN0aW5jdCBzYW1wbGVzIHBlciBnZW5vdHlwZSkgYW5hbHl6ZWQgaW4gdGhpcyBzdHVkeS4gKEMpIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuIChEKSBUaGUgc2FtZSBpbWFnZSBhZnRlciBwcmUtcHJvY2Vzc2luZyBhbmQgYmluYXJpemF0aW9uLCBhbmQgKEUpIHN1YnNlcXVlbnQgc2VnbWVudGF0aW9uIHVzaW5nIGEgd2F0ZXJzaGVkIGFsZ29yaXRobS4gKEYpIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMi4gVGhlIOKAmFF1YW50aXRhdGl2ZSBIaXN0b2xvZ3nigJkgYXBwcm9hY2guPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuIChCKSDigJhQaGVub3ByaW50c+KAmSBmb3IgdGhlIGRpZmZlcmVudCBnZW5vdHlwZXMgYW5kIGRldmVsb3BtZW50YWwgc3RhZ2VzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDLigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBleGFtcGxlIG9mIGNsYXNzaWZpZXIgc2VsZWN0aW9uIHRocm91Z2ggVi1mb2xkIGNyb3NzIHZhbGlkYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGdyZWVuIGFycm93IHBvaW50cyBvdXQgdGhlIHNlbGVjdGVkIGZlYXR1cmUgY29tYmluYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBjcml0ZXJpYSBvZiBtaW5pbXVtIG51bWJlciBvZiBmZWF0dXJlcyB3aXRoIHRoZSBoaWdoZXN0IHBlcmZvcm1hbmNlIGFuZCB0aGUgbG93ZXN0IHZhcmlhdGlvbiAodGhlIHJhZGl1c1YgZmVhdHVyZSB3YXMgZXhjbHVkZWQgZHVlIHRvIGl0cyBwdXRhdGl2ZSB2YXJpYXRpb24gaW4gdGlzc3VlIGxvY2F0aW9uKS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWcyczE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMy4gUHJvZ3Jlc3Npb24gb2YgdGlzc3VlIHByb2xpZmVyYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKELigJNFKSBDb21wYXJhdGl2ZSBwbG90cyBvZiBwYXJhbWV0ZXIgcHJvZ3Jlc3Npb24gaW4gdGhlIHR3byBnZW5vdHlwZXMuIEluIChEKSwgeHlsZW0gcmVwcmVzZW50cyBjb21iaW5lZCB2ZXNzZWwsIHBhcmVuY2h5bWEsIGFuZCBmaWJlciBjZWxscywgcGhsb2VtIHJlcHJlc2VudHMgY29tYmluZWQgcGhsb2VtIHBhcmVuY2h5bWEgYW5kIGJ1bmRsZSBjZWxscy4gRXJyb3IgYmFycyBpbmRpY2F0ZSBzdGFuZGFyZCBlcnJvci48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA2PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSBhbmQgQikgU3BhdGlhbCBkaXN0cmlidXRpb24gb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIGlsbHVzdHJhdGVzIHRoZSB2YXNjdWxhciBvcmdhbml6YXRpb24gaW4gTGVyIChCKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoQSkgYXQgbGF0ZXIgc3RhZ2VzIG9mIGRldmVsb3BtZW50LCBmb3IgZXhhbXBsZSAzMCBkYWcuIFRoZSBzaXplIG9mIHRoZSBkaXNjIGluY3JlYXNlcyB3aXRoIHRoZSBhcmVhIG9mIHRoZSBjZWxsLiBCbHVlIGNvbG9yIGluZGljYXRlcyByYWRpYWwgY2VsbCBvcmllbnRhdGlvbiwgcmVkIG9ydGhvcmFkaWFsLiAoQyBhbmQgRCkgVmlvbGluIHBsb3RzIG9mIGluY2xpbmUgYW5nbGUgZGlzdHJpYnV0aW9uLCBpbGx1c3RyYXRpbmcgaW5jcmVhc2luZ2x5IGJpbW9kYWwgZGlzdHJpYnV0aW9uIGNvaW5jaWRlbnQgd2l0aCByZWZpbmVkIHZhc2N1bGFyIG9yZ2FuaXphdGlvbiBhbmQgZGlmZmVyZW50IGR5bmFtaWNzIG9mIHRoZSBwcm9jZXNzIGluIHRoZSB0d28gZ2Vub3R5cGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNHMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDUuIERpc3RpbmN0IGxvY2FsIG9yZ2FuaXphdGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGR1cmluZyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aCBwcm9ncmVzc2lvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQeKAk0opIERlbnNpdHkgcGxvdHMgb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIHZzIHJhZGlhbCBwb3NpdGlvbiBmb3IgdGhlIHR3byBnZW5vdHlwZXMgYXQgdGhlIGluZGljYXRlZCBkZXZlbG9wbWVudGFsIHN0YWdlcywgcmVwcmVzZW50aW5nIGFsbCBjZWxscyBhY3Jvc3MgYWxsIHNlY3Rpb25zIGZvciBhIGdpdmVuIHRpbWUgcG9pbnQuIFRoZSByZWQgbGluZXMgcmVwcmVzZW50IHRoZSBmaXQgb2YgdGhlc2UgY2xvdWQgZGlzdHJpYnV0aW9ucyB3aXRoIGxvY2FsbHkgd2VpZ2h0ZWQgbGluZWFyIHJlZ3Jlc3Npb24gKGkuZS4sIGxvd2VzcyksIHJldmVhbGluZyB0aGUgZXNzZW50aWFsIGRhdGEgdHJlbmRzLiBBbGwgc2VjdGlvbnMgd2VyZSBub3JtYWxpemVkIGZyb20gMC4wICh0aGUgbWFudWFsbHkgZGVmaW5lZCBjZW50ZXIpIHRvIDEuMCAodGhlIGF2ZXJhZ2UgcmFkaXVzIGluIGEgc2V0IG9mIHNlY3Rpb25zIGFzIGRldGVybWluZWQgYnkgdGhlIGF2ZXJhZ2UgZGlzdGFuY2Ugb2YgdGhlIG91dGVybW9zdCBjZWxscyBmcm9tIHRoZSBjZW50ZXIgZm9yIGluZGl2aWR1YWwgc2VjdGlvbnMpLiBCb3ggcGxvdHMgaW5kaWNhdGUgdGhlIHF1YXJ0aWxlcyBvZiB0aGUgcmFkaWFuIGRpc3RyaWJ1dGlvbiBmb3IgZWFjaCBjZWxsLXR5cGUgY2xhc3MgYW5kIGFyZSBwbGFjZWQgYXQgdGhlIGF2ZXJhZ2UgcG9zaXRpb24gb2YgdGhlIGNlbGwgdHlwZSB3aXRoIHJlc3BlY3QgdG8gdGhlIHkgYXhpcy4gT3V0bGllcnMgYXJlIHNob3duIGFzIGNpcmNsZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWc1czE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNi4gTWFwcGluZyBvZiBwaGxvZW0gcG9sZSBwYXR0ZXJuaW5nLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBFeGFtcGxlIG9mIEdhdXNzaWFuIGtlcm5lbCBkZW5zaXR5IGVzdGltYXRlIG9mIHRoZSBsb2NhdGlvbiBvZiBwcmVkaWN0ZWQgcGhsb2VtIGJ1bmRsZXMgY2VsbHMgaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gSGlnaCBkZW5zaXR5IHJlcHJlc2VudHMgcGhsb2VtIHBvbGVzLiAoQikgRXhhbXBsZSBvZiBhbiBhbmFseXNpcyBvZiBlbWVyZ2luZyBwaGxvZW0gcG9sZSBwb3NpdGlvbiBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBUaGUgcGxvdCByZXByZXNlbnRzIGEgcGl4ZWwgaW50ZW5zaXR5IG1hcCBhZnRlciBub2lzZSByZWR1Y3Rpb24gYWxvbmcgYSBjaXJjdWxhciByZWdpb24gb2YgaW50ZXJlc3QgYWNyb3NzIHRoZSBlbWVyZ2luZyBwaGxvZW0gcG9sZXMuIEludGVuc2l0eSBwZWFrcyBhcmUgZHVlIHRvIEdVUyBzdGFpbmluZyBjb25mZXJyZWQgdG8gcGhsb2VtIGJ1bmRsZXMgYnkgYW4gQVBMOjpHVVMgcmVwb3J0ZXIgY29uc3RydWN0LiAoQykgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoQikgb2J0YWluZWQgZnJvbSBhbiBhdXRvbWF0ZWQgQmF5ZXNpYW4gbW9kZWwuIFRoZSBkb21pbmFudCBzaW5nbGUgcGVhayBpbmRpY2F0ZXMgYSBjb25zdGFudCBhcmMgZGlzdGFuY2Ugb2YgY2EuIDYyIHBpeGVsIGJldHdlZW4gdGhlIHBobG9lbSBwb2xlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDExPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAxLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuIChCKSBTdW1tYXJ5IGluZm9ybWF0aW9uIG9mIHRoZSBoYW5kLWxhYmVsZWQgdHJhaW5pbmcgc2V0IGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChDKSBEZWZpbml0aW9uIG9mIHRoZSBjbGFzc2lmaWVycyBzZWxlY3RlZCBmb3IgYW5hbHlzaXMuIChEKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKEUpIE92ZXJ2aWV3IG9mIHRoZSBjZWxsIHR5cGUgY2xhc3NlcyByZWNvZ25pemVkIGJ5IHRoZSBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcgYXBwcm9hY2ggYW5kIHRoZWlyIGFzc2lnbm1lbnQgY29kZXMgdXNlZCBpbiBEYXRhIEZpbGVzIDMgYW5kIDQuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMS1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDIuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgQ29sLTAgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTM8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMi1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDMuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgTGVyIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDMtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSA0LjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBub3JtYWxpemVkIHZhbHVlcyBvZiB0aGUgcGhlbm9wcmludHMgKEZpZ3VyZSAyQikgdXNlZCBmb3IgUENBLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDQtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlY2lzaW9uIGxldHRlcjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNTQTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRob3IgcmVzcG9uc2U8L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjU0EyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgIDwvY29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICAgIDwvam91cm5hbF9hcnRpY2xlPg0KICAgICAgICAgICAgPC9qb3VybmFsPg0KICAgICAgICAgIDwvY3Jvc3NyZWY+DQogICAgICAgIDwvZG9pX3JlY29yZD4NCiAgICAgIDwvcXVlcnk+DQogICAgPC9ib2R5Pg0KICA8L3F1ZXJ5X3Jlc3VsdD4NCjwvY3Jvc3NyZWZfcmVzdWx0Pg==
52
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZC48L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibWVtYmVyLWlkIiB0eXBlPSJudW1iZXIiPjQzNzQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NjcxMjQ2MTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iam91cm5hbC1pZCIgdHlwZT0ibnVtYmVyIj4xODkzNjU8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxODA4MjMxMzM2NDY8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjc1NTQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTgtMDgtMjNUMTM6NDE6NDlaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTQtMDItMTFUMTY6Mjk6MDRaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MjQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icmVsYXRpb24iIHR5cGU9ImRvaSIgY2xhaW09ImlzUmV2aWV3T2YiPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InJlbGF0aW9uIiB0eXBlPSJkb2kiIGNsYWltPSJpc1Jldmlld09mIj4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNjwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgPGphdHM6YWJzdHJhY3QgeG1sbnM6amF0cz0iaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L0pBVFMxIj4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8amF0czphYnN0cmFjdCB4bWxuczpqYXRzPSJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvSkFUUzEiIGFic3RyYWN0LXR5cGU9ImV4ZWN1dGl2ZS1zdW1tYXJ5Ij4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+T3VyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxpdmluZyB3b3JsZCBoYXMgYmVlbiBhZHZhbmNlZCBncmVhdGx5IGJ5IHN0dWRpZXMgb2Yg4oCYbW9kZWwgb3JnYW5pc21z4oCZLCBzdWNoIGFzIG1pY2UsIHplYnJhZmlzaCwgYW5kIGZydWl0IGZsaWVzLiBTdHVkeWluZyB0aGVzZSBjcmVhdHVyZXMgaGFzIGJlZW4gY3J1Y2lhbCB0byB1bmNvdmVyaW5nIHRoZSBnZW5lcyB0aGF0IGNvbnRyb2wgaG93IG91ciBib2RpZXMgZGV2ZWxvcCBhbmQgZ3JvdywgYW5kIGFsc28gdG8gZGlzY292ZXIgdGhlIGdlbmV0aWMgYmFzaXMgb2YgZGlzZWFzZXMgc3VjaCBhcyBjYW5jZXIuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPlRoYWxlIGNyZXNz4oCUb3IgQXJhYmlkb3BzaXMgdGhhbGlhbmEgdG8gZ2l2ZSBpdHMgZm9ybWFsIG5hbWXigJRpcyB0aGUgbW9kZWwgb3JnYW5pc20gb2YgY2hvaWNlIGZvciBtYW55IHBsYW50IGJpb2xvZ2lzdHMuIFRoaXMgdGlueSB3ZWVkIGhhcyBiZWVuIHdpZGVseSBzdHVkaWVkIGJlY2F1c2UgaXQgY2FuIGNvbXBsZXRlIGl0cyBsaWZlY3ljbGUsIGZyb20gc2VlZCB0byBzZWVkLCBpbiBhYm91dCA2IHdlZWtzLCBhbmQgYmVjYXVzZSBpdHMgcmVsYXRpdmVseSBzbWFsbCBnZW5vbWUgc2ltcGxpZmllcyB0aGUgc2VhcmNoIGZvciBnZW5lcyB0aGF0IGNvbnRyb2wgc3BlY2lmaWMgdHJhaXRzLiBIb3dldmVyLCBhcyB3aXRoIG90aGVyIG11Y2gtc3R1ZGllZCBtb2RlbCBzeXN0ZW1zLCB1bmRlcnN0YW5kaW5nIHRoZSBjaGFuZ2VzIHRoYXQgdW5kZXJwaW4gdGhlIGRldmVsb3BtZW50IG9mIHNvbWUgb2YgdGhlIG1vcmUgY29tcGxleCB0aXNzdWVzIGluIEFyYWJpZG9wc2lzIGhhcyBiZWVuIHNldmVyZWx5IGhhbXBlcmVkIGJ5IHRoZSBzaGVhciBudW1iZXIgb2YgY2VsbHMgaW52b2x2ZWQuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvamF0czpwPg0KICAgICAgICAgICAgICAgICAgPGphdHM6cD5Ob3cgU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIGhhdmUgZGV2ZWxvcGVkIGEgbm92ZWwgYXBwcm9hY2gsIHRlcm1lZCDigJhhdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neeKAmSwgdG8gb3ZlcmNvbWUgdGhlc2UgcHJvYmxlbXMuIFRoaXMgc3RyYXRlZ3kgaW52b2x2ZXMg4oCYdGVhY2hpbmfigJkgYSBjb21wdXRlciB0byBhdXRvbWF0aWNhbGx5IHJlY29nbml6ZSBkaWZmZXJlbnQgcGxhbnQgY2VsbHMgYW5kIHRvIG1lYXN1cmUgdGhlaXIgaW1wb3J0YW50IGZlYXR1cmVzIGluIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgb2YgdGlzc3VlIHNlY3Rpb25zLiBUaGUgcmVzdWx0aW5nIOKAmG1hcOKAmSBvZiB0aGUgZGV2ZWxvcGluZyBzdGVt4oCUd2hpY2ggcmVxdWlyZWQgb3ZlciA4MDAgaHIgb2YgY29tcHV0aW5nIHRpbWUgdG8gY29tcGxldGXigJRyZXZlYWxzIHRoZSBjaGFuZ2VzIHRvIGNlbGxzIGFuZCB0aXNzdWVzIGFzIHRoZXkgZGV2ZWxvcCB0aGF0IGFsbG93IHRoZSB0cmFuc3BvcnQgb2Ygd2F0ZXIsIHN1Z2FycyBhbmQgbnV0cmllbnRzIGJldHdlZW4gdGhlIGFib3ZlLSBhbmQgYmVsb3ctZ3JvdW5kIG9yZ2Fucy4gU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIHN1Z2dlc3QgdGhhdCB0aGVpciBub3ZlbCBhcHByb2FjaCBjb3VsZCwgaW4gdGhlIGZ1dHVyZSwgYWxzbyBiZSBhcHBsaWVkIHRvIHN0dWR5IHRoZSBkZXZlbG9wbWVudCBvZiBvdGhlciB0aXNzdWVzIGFuZCBvcmdhbmlzbXMsIGluY2x1ZGluZyBhbmltYWxzLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJvbmxpbmUiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjAyPC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDxkYXk+MTE8L2RheT4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTQ8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICAgIDxpdGVtX251bWJlciBpdGVtX251bWJlcl90eXBlPSJhcnRpY2xlX251bWJlciI+ZTAxNTY3PC9pdGVtX251bWJlcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9ImRvaSI+MTAuNzU1NC9lTGlmZS4wMTU2NzwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICA8L3B1Ymxpc2hlcl9pdGVtPg0KICAgICAgICAgICAgICAgIDxmcjpwcm9ncmFtIHhtbG5zOmZyPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy9mdW5kcmVmLnhzZCIgbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+RU1CTyBsb25ndGVybSBwb3N0LWRvY3RvcmFsIGZlbGxvd3NoaXBzPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+TWFyaWUgSGVpbS1Wb2VndGxpbjwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPjUwMTEwMDAwNjM5MDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvZnI6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICA8YWk6bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPC9haTpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOnByb2dyYW0geG1sbnM6ZnI9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL2Z1bmRyZWYueHNkIiBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5TeXN0ZW1zWDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBFTUJPDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMzA0MzwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXNzIE5hdGlvbmFsIFNjaWVuY2UgRm91bmRhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDE3MTE8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBVbml2ZXJzaXR5IG9mIExhdXNhbm5lDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDA2MzkwPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9mcjpwcm9ncmFtPg0KICAgICAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgICAgICAgIDxyZWw6cHJvZ3JhbSB4bWxuczpyZWw9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3JlbGF0aW9ucy54c2QiPg0KICAgICAgICAgICAgICAgICAgPHJlbDpyZWxhdGVkX2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxyZWw6ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvcmVsOmRlc2NyaXB0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8cmVsOmludGVyX3dvcmtfcmVsYXRpb24gaWRlbnRpZmllci10eXBlPSJkb2kiIHJlbGF0aW9uc2hpcC10eXBlPSJpc1N1cHBsZW1lbnRlZEJ5Ij4xMC41MDYxL2RyeWFkLmI4MzVrPC9yZWw6aW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcmVsOnJlbGF0ZWRfaXRlbT4NCiAgICAgICAgICAgICAgICA8L3JlbDpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxhcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICAgIDxhcmNoaXZlIG5hbWU9IkNMT0NLU1MiIC8+DQogICAgICAgICAgICAgICAgPC9hcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cHM6Ly9jZG4uZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZWxpZmUtMDE1NjctdjEucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnhtbDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxjaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Cb25rZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQyNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QVBMIHJlZ3VsYXRlcyB2YXNjdWxhciB0aXNzdWUgaWRlbnRpdHkgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYXR1cmUwMjEwMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5HZW5ldGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5CcmVubmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTgyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQxMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbiB0aGUgYmVnaW5uaW5nIHdhcyB0aGUgd29ybTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlNlY29uZGFyeSB4eWxlbSBkZXZlbG9wbWVudCBpbiBBcmFiaWRvcHNpczogYSBtb2RlbCBmb3Igd29vZCBmb3JtYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlRyYWluaW5nIG51LXN1cHBvcnQgdmVjdG9yIGNsYXNzaWZpZXJzOiB0aGVvcnkgYW5kIGFsZ29yaXRobXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvQkYwMDk5NDAxODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdXBwb3J0LXZlY3RvciBOZXR3b3JrczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbHVsYXIgb3JnYW5pc2F0aW9uIG9mIHRoZSBBcmFiaWRvcHNpcyB0aGFsaWFuYSByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TZW1pbmFycyBpbiBDZWxsICZhbXA7IERldmVsb3BtZW50YWwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FbG88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMDk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlN0ZW0gY2VsbCBmdW5jdGlvbiBkdXJpbmcgcGxhbnQgdmFzY3VsYXIgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnNlbWNkYi4yMDA5LjA5LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EZXZlbG9wbWVudDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FdGNoZWxsczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE0MDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMjI0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPldPWDQgYW5kIFdPWDE0IGFjdCBkb3duc3RyZWFtIG9mIHRoZSBQWFkgcmVjZXB0b3Iga2luYXNlIHRvIHJlZ3VsYXRlIHBsYW50IHZhc2N1bGFyIHByb2xpZmVyYXRpb24gaW5kZXBlbmRlbnRseSBvZiBhbnkgcm9sZSBpbiB2YXNjdWxhciBvcmdhbmlzYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTI0Mi9kZXYuMDkxMzE0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBMT1MgR2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT44PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPmUxMDAyOTk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50IHZhc2N1bGFyIGNlbGwgZGl2aXNpb24gaXMgbWFpbnRhaW5lZCBieSBhbiBpbnRlcmFjdGlvbiBiZXR3ZWVuIFBYWSBhbmQgZXRoeWxlbmUgc2lnbmFsbGluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMzcxL2pvdXJuYWwucGdlbi4xMDAyOTk3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb2xlY3VsYXIgU3lzdGVtcyBCaW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkZ1Y2hzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Njwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zNzA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2x1c3RlcmluZyBwaGVub3R5cGUgcG9wdWxhdGlvbnMgYnkgZ2Vub21lLXdpZGUgUk5BaSBhbmQgbXVsdGlwYXJhbWV0cmljIGltYWdpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9tc2IuMjAxMC4yNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjExIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvIFN5c3RlbXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+R3JhbnF2aXN0PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTEwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkJhU0FSLUEgdG9vbCBpbiBSIGZvciBmcmVxdWVuY3kgZGV0ZWN0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EZXZlbG9wbWVudGFsIG1lY2hhbmlzbXMgcmVndWxhdGluZyBzZWNvbmRhcnkgZ3Jvd3RoIGluIHdvb2R5IHBsYW50czwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2oucGJpLjIwMDUuMTEuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYxODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5URElGIHBlcHRpZGUgc2lnbmFsaW5nIHJlZ3VsYXRlcyB2YXNjdWxhciBzdGVtIGNlbGwgcHJvbGlmZXJhdGlvbiB2aWEgdGhlIFdPWDQgaG9tZW9ib3ggZ2VuZSBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTAuMDc2MDgzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTA1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1MjA4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk5vbi1jZWxsLWF1dG9ub21vdXMgY29udHJvbCBvZiB2YXNjdWxhciBzdGVtIGNlbGwgZmF0ZSBieSBhIENMRSBwZXB0aWRlL3JlY2VwdG9yIHN5c3RlbTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuMDgwODQ0NDEwNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5NZXllcm93aXR6PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NTY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFyYWJpZG9wc2lzLCBhIHVzZWZ1bCB3ZWVkPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvMDA5Mi04Njc0KDg5KTkwOTAwLTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNjaWVuY2U8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjI5NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNDgyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50cyBjb21wYXJlZCB0byBhbmltYWxzOiB0aGUgYnJvYWRlc3QgY29tcGFyYXRpdmUgc3R1ZHkgb2YgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyNi9zY2llbmNlLjEwNjY2MDk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IFBoeXNpb2w8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TmllbWluZW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NjUzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgd2VlZCBmb3Igd29vZD8gQXJhYmlkb3BzaXMgYXMgYSBnZW5ldGljIG1vZGVsIGZvciB4eWxlbSBkZXZlbG9wbWVudDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA0L3BwLjEwNC4wNDAyMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBCaW90ZWNobm9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk5vYmxlPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTU2NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XaGF0IGlzIGEgc3VwcG9ydCB2ZWN0b3IgbWFjaGluZT88L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsYXNzaWZpY2F0aW9uIG9mIGN1bHR1cmVkIG1hbW1hbGlhbiBjZWxscyBieSBzaGFwZSBhbmFseXNpcyBhbmQgcGF0dGVybiByZWNvZ25pdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuNzcuMy4xNTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CaW9pbmZvcm1hdGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5QYXU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45Nzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RUJJbWFnZeKAk2FuIFIgcGFja2FnZSBmb3IgaW1hZ2UgcHJvY2Vzc2luZyB3aXRoIGFwcGxpY2F0aW9ucyB0byBjZWxsdWxhciBwaGVub3R5cGVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwOTMvYmlvaW5mb3JtYXRpY3MvYnRxMDQ2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlJhZ25pPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTMyMjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Nb2JpbGUgZ2liYmVyZWxsaW4gZGlyZWN0bHkgc3RpbXVsYXRlcyBBcmFiaWRvcHNpcyBoeXBvY290eWwgeHlsZW0gZXhwYW5zaW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDUvdHBjLjExMS4wODQwMjA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRyeWFkIERpZ2l0YWwgUmVwb3NpdG9yeTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EYXRhIGZyb206IEF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Rmxvd2VyaW5nIGFzIGEgY29uZGl0aW9uIGZvciB4eWxlbSBleHBhbnNpb24gaW4gQXJhYmlkb3BzaXMgaHlwb2NvdHlsIGFuZCByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5jdWIuMjAwOC4wMi4wNzA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlRoZSBOZXcgUGh5dG9sb2dpc3Q8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U3BpY2VyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTg2PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU3NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Fdm9sdXRpb24gb2YgZGV2ZWxvcG1lbnQgb2YgdmFzY3VsYXIgY2FtYmlhIGFuZCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMTEvai4xNDY5LTgxMzcuMjAxMC4wMzIzNi54PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5NYWNoaW5lIFZpc2lvbiBhbmQgQXBwbGljYXRpb25zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlRoZXJpYXVsdDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1OTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DZWxsIG1vcnBob2xvZ3kgY2xhc3NpZmljYXRpb24gYW5kIGNsdXR0ZXIgbWl0aWdhdGlvbiBpbiBwaGFzZS1jb250cmFzdCBtaWNyb3Njb3B5IGltYWdlcyB1c2luZyBtYWNoaW5lIGxlYXJuaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDcvczAwMTM4LTAxMS0wMzQ1LTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+VXl0dGV3YWFsPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTQ5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQzOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5NZWNoYW5pY2FsIHN0cmVzcyBhY3RzIHZpYSBrYXRhbmluIHRvIGFtcGxpZnkgZGlmZmVyZW5jZXMgaW4gZ3Jvd3RoIHJhdGUgYmV0d2VlbiBhZGphY2VudCBjZWxscyBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QSBzY3JlZW4gZm9yIG1vcnBob2xvZ2ljYWwgY29tcGxleGl0eSBpZGVudGlmaWVzIHJlZ3VsYXRvcnMgb2Ygc3dpdGNoLWxpa2UgdHJhbnNpdGlvbnMgYmV0d2VlbiBkaXNjcmV0ZSBjZWxsIHNoYXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkFic3RyYWN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2Fic3RyYWN0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+ZUxpZmUgZGlnZXN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2RpZ2VzdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAxLiBDZWxsdWxhciBsZXZlbCBhbmFseXNpcyBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aC48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgTGlnaHQgbWljcm9zY29weSBvZiBjcm9zcyBzZWN0aW9ucyBvYnRhaW5lZCBmcm9tIEFyYWJpZG9wc2lzIGh5cG9jb3R5bHMgKG9yZ2FuIHBvc2l0aW9uIGlsbHVzdHJhdGVkIGZvciBhIDktZGF5LW9sZCBzZWVkbGluZywgbG93ZXIgbGVmdCkgYXQgOSBkYWcgKHVwcGVyIGxlZnQpIGFuZCAzNSBkYWcgKHJpZ2h0KS4gU2l6ZSBiYXJzIGFyZSAxMDAgzrxtLiBCbHVlIEdVUyBzdGFpbmluZyBkdWUgdG8gdGhlIHByZXNlbmNlIG9mIGFuIEFQTDo6R1VTIHJlcG9ydGVyIGdlbmUgaW4gdGhpcyBDb2wtMCBiYWNrZ3JvdW5kIGxpbmUgbWFya3MgcGhsb2VtIGJ1bmRsZXMuIChCKSBPdmVydmlldyBvZiB0aGUgZGV2ZWxvcG1lbnRhbCBzZXJpZXMgKHRpbWUgcG9pbnRzIGFuZCBkaXN0aW5jdCBzYW1wbGVzIHBlciBnZW5vdHlwZSkgYW5hbHl6ZWQgaW4gdGhpcyBzdHVkeS4gKEMpIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuIChEKSBUaGUgc2FtZSBpbWFnZSBhZnRlciBwcmUtcHJvY2Vzc2luZyBhbmQgYmluYXJpemF0aW9uLCBhbmQgKEUpIHN1YnNlcXVlbnQgc2VnbWVudGF0aW9uIHVzaW5nIGEgd2F0ZXJzaGVkIGFsZ29yaXRobS4gKEYpIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMi4gVGhlIOKAmFF1YW50aXRhdGl2ZSBIaXN0b2xvZ3nigJkgYXBwcm9hY2guPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuIChCKSDigJhQaGVub3ByaW50c+KAmSBmb3IgdGhlIGRpZmZlcmVudCBnZW5vdHlwZXMgYW5kIGRldmVsb3BtZW50YWwgc3RhZ2VzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDLigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBleGFtcGxlIG9mIGNsYXNzaWZpZXIgc2VsZWN0aW9uIHRocm91Z2ggVi1mb2xkIGNyb3NzIHZhbGlkYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGdyZWVuIGFycm93IHBvaW50cyBvdXQgdGhlIHNlbGVjdGVkIGZlYXR1cmUgY29tYmluYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBjcml0ZXJpYSBvZiBtaW5pbXVtIG51bWJlciBvZiBmZWF0dXJlcyB3aXRoIHRoZSBoaWdoZXN0IHBlcmZvcm1hbmNlIGFuZCB0aGUgbG93ZXN0IHZhcmlhdGlvbiAodGhlIHJhZGl1c1YgZmVhdHVyZSB3YXMgZXhjbHVkZWQgZHVlIHRvIGl0cyBwdXRhdGl2ZSB2YXJpYXRpb24gaW4gdGlzc3VlIGxvY2F0aW9uKS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWcyczE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMy4gUHJvZ3Jlc3Npb24gb2YgdGlzc3VlIHByb2xpZmVyYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKELigJNFKSBDb21wYXJhdGl2ZSBwbG90cyBvZiBwYXJhbWV0ZXIgcHJvZ3Jlc3Npb24gaW4gdGhlIHR3byBnZW5vdHlwZXMuIEluIChEKSwgeHlsZW0gcmVwcmVzZW50cyBjb21iaW5lZCB2ZXNzZWwsIHBhcmVuY2h5bWEsIGFuZCBmaWJlciBjZWxscywgcGhsb2VtIHJlcHJlc2VudHMgY29tYmluZWQgcGhsb2VtIHBhcmVuY2h5bWEgYW5kIGJ1bmRsZSBjZWxscy4gRXJyb3IgYmFycyBpbmRpY2F0ZSBzdGFuZGFyZCBlcnJvci48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA2PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSBhbmQgQikgU3BhdGlhbCBkaXN0cmlidXRpb24gb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIGlsbHVzdHJhdGVzIHRoZSB2YXNjdWxhciBvcmdhbml6YXRpb24gaW4gTGVyIChCKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoQSkgYXQgbGF0ZXIgc3RhZ2VzIG9mIGRldmVsb3BtZW50LCBmb3IgZXhhbXBsZSAzMCBkYWcuIFRoZSBzaXplIG9mIHRoZSBkaXNjIGluY3JlYXNlcyB3aXRoIHRoZSBhcmVhIG9mIHRoZSBjZWxsLiBCbHVlIGNvbG9yIGluZGljYXRlcyByYWRpYWwgY2VsbCBvcmllbnRhdGlvbiwgcmVkIG9ydGhvcmFkaWFsLiAoQyBhbmQgRCkgVmlvbGluIHBsb3RzIG9mIGluY2xpbmUgYW5nbGUgZGlzdHJpYnV0aW9uLCBpbGx1c3RyYXRpbmcgaW5jcmVhc2luZ2x5IGJpbW9kYWwgZGlzdHJpYnV0aW9uIGNvaW5jaWRlbnQgd2l0aCByZWZpbmVkIHZhc2N1bGFyIG9yZ2FuaXphdGlvbiBhbmQgZGlmZmVyZW50IGR5bmFtaWNzIG9mIHRoZSBwcm9jZXNzIGluIHRoZSB0d28gZ2Vub3R5cGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNHMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDUuIERpc3RpbmN0IGxvY2FsIG9yZ2FuaXphdGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGR1cmluZyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aCBwcm9ncmVzc2lvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQeKAk0opIERlbnNpdHkgcGxvdHMgb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIHZzIHJhZGlhbCBwb3NpdGlvbiBmb3IgdGhlIHR3byBnZW5vdHlwZXMgYXQgdGhlIGluZGljYXRlZCBkZXZlbG9wbWVudGFsIHN0YWdlcywgcmVwcmVzZW50aW5nIGFsbCBjZWxscyBhY3Jvc3MgYWxsIHNlY3Rpb25zIGZvciBhIGdpdmVuIHRpbWUgcG9pbnQuIFRoZSByZWQgbGluZXMgcmVwcmVzZW50IHRoZSBmaXQgb2YgdGhlc2UgY2xvdWQgZGlzdHJpYnV0aW9ucyB3aXRoIGxvY2FsbHkgd2VpZ2h0ZWQgbGluZWFyIHJlZ3Jlc3Npb24gKGkuZS4sIGxvd2VzcyksIHJldmVhbGluZyB0aGUgZXNzZW50aWFsIGRhdGEgdHJlbmRzLiBBbGwgc2VjdGlvbnMgd2VyZSBub3JtYWxpemVkIGZyb20gMC4wICh0aGUgbWFudWFsbHkgZGVmaW5lZCBjZW50ZXIpIHRvIDEuMCAodGhlIGF2ZXJhZ2UgcmFkaXVzIGluIGEgc2V0IG9mIHNlY3Rpb25zIGFzIGRldGVybWluZWQgYnkgdGhlIGF2ZXJhZ2UgZGlzdGFuY2Ugb2YgdGhlIG91dGVybW9zdCBjZWxscyBmcm9tIHRoZSBjZW50ZXIgZm9yIGluZGl2aWR1YWwgc2VjdGlvbnMpLiBCb3ggcGxvdHMgaW5kaWNhdGUgdGhlIHF1YXJ0aWxlcyBvZiB0aGUgcmFkaWFuIGRpc3RyaWJ1dGlvbiBmb3IgZWFjaCBjZWxsLXR5cGUgY2xhc3MgYW5kIGFyZSBwbGFjZWQgYXQgdGhlIGF2ZXJhZ2UgcG9zaXRpb24gb2YgdGhlIGNlbGwgdHlwZSB3aXRoIHJlc3BlY3QgdG8gdGhlIHkgYXhpcy4gT3V0bGllcnMgYXJlIHNob3duIGFzIGNpcmNsZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWc1czE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNi4gTWFwcGluZyBvZiBwaGxvZW0gcG9sZSBwYXR0ZXJuaW5nLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBFeGFtcGxlIG9mIEdhdXNzaWFuIGtlcm5lbCBkZW5zaXR5IGVzdGltYXRlIG9mIHRoZSBsb2NhdGlvbiBvZiBwcmVkaWN0ZWQgcGhsb2VtIGJ1bmRsZXMgY2VsbHMgaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gSGlnaCBkZW5zaXR5IHJlcHJlc2VudHMgcGhsb2VtIHBvbGVzLiAoQikgRXhhbXBsZSBvZiBhbiBhbmFseXNpcyBvZiBlbWVyZ2luZyBwaGxvZW0gcG9sZSBwb3NpdGlvbiBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBUaGUgcGxvdCByZXByZXNlbnRzIGEgcGl4ZWwgaW50ZW5zaXR5IG1hcCBhZnRlciBub2lzZSByZWR1Y3Rpb24gYWxvbmcgYSBjaXJjdWxhciByZWdpb24gb2YgaW50ZXJlc3QgYWNyb3NzIHRoZSBlbWVyZ2luZyBwaGxvZW0gcG9sZXMuIEludGVuc2l0eSBwZWFrcyBhcmUgZHVlIHRvIEdVUyBzdGFpbmluZyBjb25mZXJyZWQgdG8gcGhsb2VtIGJ1bmRsZXMgYnkgYW4gQVBMOjpHVVMgcmVwb3J0ZXIgY29uc3RydWN0LiAoQykgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoQikgb2J0YWluZWQgZnJvbSBhbiBhdXRvbWF0ZWQgQmF5ZXNpYW4gbW9kZWwuIFRoZSBkb21pbmFudCBzaW5nbGUgcGVhayBpbmRpY2F0ZXMgYSBjb25zdGFudCBhcmMgZGlzdGFuY2Ugb2YgY2EuIDYyIHBpeGVsIGJldHdlZW4gdGhlIHBobG9lbSBwb2xlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDExPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAxLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuIChCKSBTdW1tYXJ5IGluZm9ybWF0aW9uIG9mIHRoZSBoYW5kLWxhYmVsZWQgdHJhaW5pbmcgc2V0IGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChDKSBEZWZpbml0aW9uIG9mIHRoZSBjbGFzc2lmaWVycyBzZWxlY3RlZCBmb3IgYW5hbHlzaXMuIChEKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKEUpIE92ZXJ2aWV3IG9mIHRoZSBjZWxsIHR5cGUgY2xhc3NlcyByZWNvZ25pemVkIGJ5IHRoZSBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcgYXBwcm9hY2ggYW5kIHRoZWlyIGFzc2lnbm1lbnQgY29kZXMgdXNlZCBpbiBEYXRhIEZpbGVzIDMgYW5kIDQuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMS1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDIuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgQ29sLTAgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTM8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMi1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDMuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgTGVyIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDMtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSA0LjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBub3JtYWxpemVkIHZhbHVlcyBvZiB0aGUgcGhlbm9wcmludHMgKEZpZ3VyZSAyQikgdXNlZCBmb3IgUENBLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDQtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlY2lzaW9uIGxldHRlcjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNTQTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRob3IgcmVzcG9uc2U8L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjU0EyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgIDwvY29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICAgIDwvam91cm5hbF9hcnRpY2xlPg0KICAgICAgICAgICAgPC9qb3VybmFsPg0KICAgICAgICAgIDwvY3Jvc3NyZWY+DQogICAgICAgIDwvZG9pX3JlY29yZD4NCiAgICAgIDwvcXVlcnk+DQogICAgPC9ib2R5Pg0KICA8L3F1ZXJ5X3Jlc3VsdD4NCjwvY3Jvc3NyZWZfcmVzdWx0Pg==
49
53
  http_version:
50
- recorded_at: Sun, 12 Jul 2020 11:25:35 GMT
54
+ recorded_at: Wed, 09 Jun 2021 12:58:44 GMT
51
55
  recorded_with: VCR 3.0.3
@@ -8,9 +8,11 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.4; mailto:info@datacite.org)
12
12
  Accept:
13
- - text/xml
13
+ - text/xml;charset=utf-8
14
+ Accept-Encoding:
15
+ - gzip,deflate
14
16
  response:
15
17
  status:
16
18
  code: 200
@@ -32,17 +34,19 @@ http_interactions:
32
34
  Server:
33
35
  - http-kit
34
36
  Date:
35
- - Sun, 12 Jul 2020 11:25:34 GMT
37
+ - Wed, 09 Jun 2021 12:58:40 GMT
36
38
  X-Rate-Limit-Limit:
37
39
  - '50'
38
40
  X-Rate-Limit-Interval:
39
41
  - 1s
42
+ Permissions-Policy:
43
+ - interest-cohort=()
40
44
  Connection:
41
45
  - close
42
46
  body:
43
47
  encoding: ASCII-8BIT
44
48
  string: !binary |-
45
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4xMTU1LzIwMTIvMjkxMjk0PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5IaW5kYXdpIExpbWl0ZWQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHJlZml4LW5hbWUiIHR5cGU9InN0cmluZyI+SGluZGF3aSBMaW1pdGVkPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im1lbWJlci1pZCIgdHlwZT0ibnVtYmVyIj45ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRhdGlvbi1pZCIgdHlwZT0ibnVtYmVyIj41OTI5OTA2ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJqb3VybmFsLWlkIiB0eXBlPSJudW1iZXIiPjEwMzEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJkZXBvc2l0LXRpbWVzdGFtcCIgdHlwZT0ibnVtYmVyIj4yMDE2MDgwMjAzNDEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJvd25lci1wcmVmaXgiIHR5cGU9InN0cmluZyI+MTAuMTE1NTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJsYXN0LXVwZGF0ZSIgdHlwZT0iZGF0ZSI+MjAxNi0wOC0wMlQxODo0Mjo0MVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY3JlYXRlZCIgdHlwZT0iZGF0ZSI+MjAxMi0xMi0zMFQyMTowNTowMVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0ZWRieS1jb3VudCIgdHlwZT0ibnVtYmVyIj4yNjwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2Z1bGxfdGl0bGU+DQogICAgICAgICAgICAgICAgPGFiYnJldl90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2FiYnJldl90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJwcmludCI+MjA5MC0xODM2PC9pc3NuPg0KICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIwOTAtMTg0NDwvaXNzbj4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjIwMTI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlbGluZWF0aW5nIGEgUmV0ZXN0aW5nIFpvbmUgVXNpbmcgUmVjZWl2ZXIgT3BlcmF0aW5nIENoYXJhY3RlcmlzdGljIEFuYWx5c2lzIG9uIFNlcmlhbCBRdWFudGlGRVJPTiBUdWJlcmN1bG9zaXMgVGVzdCBSZXN1bHRzIGluIFVTIEhlYWx0aGNhcmUgV29ya2VyczwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPldlbmR5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5UaGFuYXNzaTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFZldGVyYW5zIEFmZmFpcnMgUGFsbyBBbHRvIEhlYWx0aCBDYXJlIFN5c3RlbSwgMzgwMSBNaXJhbmRhIEF2ZW51ZSBNQy0sIFBhbG8gQWx0bywgQ0EgOTQzMDQtMTIwNywgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPk9jY3VwYXRpb25hbCBIZWFsdGggU3RyYXRlZ2ljIEhlYWx0aCBDYXJlIEdyb3VwLCBPZmZpY2Ugb2YgUHVibGljIEhlYWx0aCwgVmV0ZXJhbnMgSGVhbHRoIEFkbWluaXN0cmF0aW9uLCBXYXNoaW5ndG9uLCBEQyAyMDAwNiwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRpdmlzaW9uIG9mIEVtZXJnZW5jeSBNZWRpY2luZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5BcnQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk5vZGE8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQc3ljaGlhdHJ5IGFuZCBCZWhhdmlvcmFsIFNjaWVuY2VzLCBTdGFuZm9yZCBVbml2ZXJzaXR5IFNjaG9vbCBvZiBNZWRpY2luZSwgU3RhbmZvcmQsIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QmVhdHJpejwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+SGVybmFuZGV6PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+V2FyIFJlbGF0ZWQgSWxsbmVzcyBhbmQgSW5qdXJ5IFN0dWR5IENlbnRlciAoV1JJSVNDKSBhbmQgTWVudGFsIElsbG5lc3MgUmVzZWFyY2ggRWR1Y2F0aW9uIGFuZCBDbGluaWNhbCBDZW50ZXIgKE1JUkVDQyksIERlcGFydG1lbnQgb2YgVmV0ZXJhbnMgQWZmYWlycywgUGFsbyBBbHRvLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUHN5Y2hpYXRyeSBhbmQgQmVoYXZpb3JhbCBTY2llbmNlcywgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPE9SQ0lEIGF1dGhlbnRpY2F0ZWQ9InRydWUiPmh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTIwNDMtNDkyNTwvT1JDSUQ+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KZWZmZXJ5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5OZXdlbGw8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+UGF1bDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+VGVycGVsdWs8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIE9jY3VwYXRpb25hbCBIZWFsdGgsIFRoZSBDbGV2ZWxhbmQgQ2xpbmljLCBDbGV2ZWxhbmQsIE9IIDQ0MTk1LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+RGF2aWQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk1hcmRlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgSGVhbHRoIFNlcnZpY2VzLCBVbml2ZXJzaXR5IG9mIElsbGlub2lzIENoaWNhZ28sIENoaWNhZ28sIElMIDYwNjEyLCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SmVyb21lIEEuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5ZZXNhdmFnZTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBzeWNoaWF0cnkgYW5kIEJlaGF2aW9yYWwgU2NpZW5jZXMsIFN0YW5mb3JkIFVuaXZlcnNpdHkgU2Nob29sIG9mIE1lZGljaW5lLCBTdGFuZm9yZCwgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDxqYXRzOmFic3RyYWN0IHhtbG5zOmphdHM9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9KQVRTMSI+DQogICAgICAgICAgICAgICAgICA8amF0czpwPg0KICAgICAgICAgICAgICAgICAgICA8amF0czppdGFsaWM+T2JqZWN0aXZlPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBUbyBmaW5kIGEgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50IGZvciB0aGUgUXVhbnRpRkVST04gR29sZCBJbi1UdWJlIChRRlQpIGludGVyZmVyb24gZ2FtbWEgcmVsZWFzZSBhc3NheSB0aGF0IGNvdWxkIGRlZmluZSBhbiBvcHRpbWFsIOKAnHJldGVzdGluZyB6b25l4oCdIGZvciB1c2UgaW4gc2VyaWFsbHkgdGVzdGVkIGxvdy1yaXNrIHBvcHVsYXRpb25zIHdobyBoYXZlIHRlc3Qg4oCccmV2ZXJzaW9uc+KAnSBmcm9tIGluaXRpYWxseSBwb3NpdGl2ZSB0byBzdWJzZXF1ZW50bHkgbmVnYXRpdmUgcmVzdWx0cy4NCiAgICAgICAgICAgICAgICAgICAgPGphdHM6aXRhbGljPk1ldGhvZDwvamF0czppdGFsaWM+DQogICAgICAgICAgICAgICAgICAgIC4gVXNpbmcgcmVjZWl2ZXIgb3BlcmF0aW5nIGNoYXJhY3RlcmlzdGljIGFuYWx5c2lzIChST0MpIHRvIGFuYWx5emUgcmV0cm9zcGVjdGl2ZSBkYXRhIGNvbGxlY3RlZCBmcm9tIDMgbWFqb3IgaG9zcGl0YWxzLCB3ZSBzZWFyY2hlZCBmb3IgcHJlZGljdG9ycyBvZiByZXZlcnNpb24gdW50aWwgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50cyB3ZXJlIHJldmVhbGVkLiBBIGNvbmZpcm1hdG9yeSByZWdyZXNzaW9uIGFuYWx5c2lzIHdhcyBwZXJmb3JtZWQgb24gYW4gYWRkaXRpb25hbCBzYW1wbGUuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5SZXN1bHRzPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBJbiA1NzUgaW5pdGlhbGx5IHBvc2l0aXZlIFVTIGhlYWx0aGNhcmUgd29ya2VycyAoSENXcyksIDMwMCAoNTIuMiUpIGhhZCByZXZlcnNpb25zLCB3aGlsZSAyNzUgKDQ3LjglKSBoYWQgdHdvIHNlcXVlbnRpYWwgcG9zaXRpdmUgdGVzdHMuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgKEthcHBh4oCJPeKAiTAuNDgsIGNoaS1zcXVhcmXigIk94oCJMTMxLjAsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMSI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMDE8L21tbDptbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L21tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICA8L21tbDptYXRoPg0KICAgICAgICAgICAgICAgICAgICApIHNlcGFyYXRpb24gcG9pbnQgaWRlbnRpZmllZCBieSB0aGUgUk9DIGZvciBwcmVkaWN0aW5nIHJldmVyc2lvbiB3YXMgdGhlIHR1YmVyY3Vsb3NpcyBhbnRpZ2VuIG1pbnVzLW5pbCAoVEJhZy1uaWwpIHZhbHVlIGF0IDEuMTEgSW50ZXJuYXRpb25hbCBVbml0cyBwZXIgbWlsbGlsaXRlciAoSVUvbUwpLiBUaGUgc2Vjb25kIHNlcGFyYXRpb24gcG9pbnQgd2FzIGZvdW5kIGF0IFRCYWctbmlsIGF0IDAuNzLigIlJVS9tTCAoS2FwcGHigIk94oCJMC4xNiwgY2hpLXNxdWFyZeKAiT3igIk4LjIsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMiI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMTwvbW1sOm1uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvbW1sOm1yb3c+DQogICAgICAgICAgICAgICAgICAgIDwvbW1sOm1hdGg+DQogICAgICAgICAgICAgICAgICAgICkuIFRoZSBtb2RlbCB3YXMgdmFsaWRhdGVkIGJ5IHRoZSByZWdyZXNzaW9uIGFuYWx5c2lzIG9mIDI4N+KAiUhDV3MuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5Db25jbHVzaW9uPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBSZXZlcnNpb24gbGlrZWxpaG9vZCBpbmNyZWFzZXMgYXMgdGhlIFRCYWctbmlsIGFwcHJvYWNoZXMgdGhlIG1hbnVmYWN0dXJlcidzIGN1dC1wb2ludCBvZiAwLjM14oCJSVUvbUwuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgc2VwYXJhdGlvbiBwb2ludCBiZXR3ZWVuIHRob3NlIHdobyB0ZXN0IHJlcGVhdGVkbHkgcG9zaXRpdmUgYW5kIHRob3NlIHdobyByZXZlcnQgaXMgMS4xMeKAiUlVL21MLiBDbGluaWNpYW5zIHNob3VsZCByZXRlc3QgbG93LXJpc2sgaW5kaXZpZHVhbHMgd2l0aCBpbml0aWFsIFFGVCByZXN1bHRz4oCJJmx0O+KAiTEuMTHigIlJVS9tTC4NCiAgICAgICAgICAgICAgICAgIDwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8cGFnZXM+DQogICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT43PC9sYXN0X3BhZ2U+DQogICAgICAgICAgICAgICAgPC9wYWdlcz4NCiAgICAgICAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJwaWkiPjI5MTI5NDwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9Im90aGVyIj4yOTEyOTQ8L2lkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNTUvMjAxMi8yOTEyOTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDx0aW1lc3RhbXA+MjAxNjA4MDIwMzQxMjU8L3RpbWVzdGFtcD4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQueG1sPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNvbGxlY3Rpb24gcHJvcGVydHk9ImNyYXdsZXItYmFzZWQiIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJnb29nbGUiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0ibXNuIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9ImFsdGF2aXN0YSI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJ5YWhvbyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJzY2lydXMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QW1lcmljYW4gSm91cm5hbCBvZiBSZXNwaXJhdG9yeSBhbmQgQ3JpdGljYWwgQ2FyZSBNZWRpY2luZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNzk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjAwMTY4LTA5PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMDYwNC00NzJPQzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjU1ODgvaWp0bGQuMTEuMDM2NDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjUiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjA1MDU4LTExPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy9zMDA0MjAtMDEwLTA1NzEteDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjciPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODYvNTkzOTY1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4wOS0yMzUwPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkludGVybmF0aW9uYWwgSm91cm5hbCBvZiBUdWJlcmN1bG9zaXMgYW5kIEx1bmcgRGlzZWFzZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMjM1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwNTYvTkVKTXNhMDMxNjY3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTEiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzgvY2hlc3QuMTI4LjEuMTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb3JiaWRpdHkgYW5kIE1vcnRhbGl0eSBXZWVrbHkgUmVwb3J0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT41PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4zMjA1L2Rna2gwMDAxNDg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMS0wOTkyPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExODYvMTQ3MS0yMzM0LTEwLTIyMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTg2LzE3NDUtNjY3My03LTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyNyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDAzOTgtMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMTAwNi0wOTc0T0M8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEzNi90aHguMjAxMC4xNDMxODA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMi0wMDQ1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX2FydGljbGU+DQogICAgICAgICAgICA8L2pvdXJuYWw+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
49
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4xMTU1LzIwMTIvMjkxMjk0PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5IaW5kYXdpIExpbWl0ZWQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHJlZml4LW5hbWUiIHR5cGU9InN0cmluZyI+SGluZGF3aSBMaW1pdGVkPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im1lbWJlci1pZCIgdHlwZT0ibnVtYmVyIj45ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRhdGlvbi1pZCIgdHlwZT0ibnVtYmVyIj41OTI5OTA2ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJqb3VybmFsLWlkIiB0eXBlPSJudW1iZXIiPjEwMzEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJkZXBvc2l0LXRpbWVzdGFtcCIgdHlwZT0ibnVtYmVyIj4yMDE2MDgwMjAzNDEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJvd25lci1wcmVmaXgiIHR5cGU9InN0cmluZyI+MTAuMTE1NTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJsYXN0LXVwZGF0ZSIgdHlwZT0iZGF0ZSI+MjAxNi0wOC0wMlQxODo0Mjo0MVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY3JlYXRlZCIgdHlwZT0iZGF0ZSI+MjAxMi0xMi0zMFQyMTowNTowMVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0ZWRieS1jb3VudCIgdHlwZT0ibnVtYmVyIj4yNzwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2Z1bGxfdGl0bGU+DQogICAgICAgICAgICAgICAgPGFiYnJldl90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2FiYnJldl90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJwcmludCI+MjA5MC0xODM2PC9pc3NuPg0KICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIwOTAtMTg0NDwvaXNzbj4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjIwMTI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlbGluZWF0aW5nIGEgUmV0ZXN0aW5nIFpvbmUgVXNpbmcgUmVjZWl2ZXIgT3BlcmF0aW5nIENoYXJhY3RlcmlzdGljIEFuYWx5c2lzIG9uIFNlcmlhbCBRdWFudGlGRVJPTiBUdWJlcmN1bG9zaXMgVGVzdCBSZXN1bHRzIGluIFVTIEhlYWx0aGNhcmUgV29ya2VyczwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPldlbmR5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5UaGFuYXNzaTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFZldGVyYW5zIEFmZmFpcnMgUGFsbyBBbHRvIEhlYWx0aCBDYXJlIFN5c3RlbSwgMzgwMSBNaXJhbmRhIEF2ZW51ZSBNQy0sIFBhbG8gQWx0bywgQ0EgOTQzMDQtMTIwNywgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPk9jY3VwYXRpb25hbCBIZWFsdGggU3RyYXRlZ2ljIEhlYWx0aCBDYXJlIEdyb3VwLCBPZmZpY2Ugb2YgUHVibGljIEhlYWx0aCwgVmV0ZXJhbnMgSGVhbHRoIEFkbWluaXN0cmF0aW9uLCBXYXNoaW5ndG9uLCBEQyAyMDAwNiwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRpdmlzaW9uIG9mIEVtZXJnZW5jeSBNZWRpY2luZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5BcnQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk5vZGE8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQc3ljaGlhdHJ5IGFuZCBCZWhhdmlvcmFsIFNjaWVuY2VzLCBTdGFuZm9yZCBVbml2ZXJzaXR5IFNjaG9vbCBvZiBNZWRpY2luZSwgU3RhbmZvcmQsIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QmVhdHJpejwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+SGVybmFuZGV6PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+V2FyIFJlbGF0ZWQgSWxsbmVzcyBhbmQgSW5qdXJ5IFN0dWR5IENlbnRlciAoV1JJSVNDKSBhbmQgTWVudGFsIElsbG5lc3MgUmVzZWFyY2ggRWR1Y2F0aW9uIGFuZCBDbGluaWNhbCBDZW50ZXIgKE1JUkVDQyksIERlcGFydG1lbnQgb2YgVmV0ZXJhbnMgQWZmYWlycywgUGFsbyBBbHRvLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUHN5Y2hpYXRyeSBhbmQgQmVoYXZpb3JhbCBTY2llbmNlcywgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPE9SQ0lEIGF1dGhlbnRpY2F0ZWQ9InRydWUiPmh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTIwNDMtNDkyNTwvT1JDSUQ+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KZWZmZXJ5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5OZXdlbGw8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+UGF1bDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+VGVycGVsdWs8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIE9jY3VwYXRpb25hbCBIZWFsdGgsIFRoZSBDbGV2ZWxhbmQgQ2xpbmljLCBDbGV2ZWxhbmQsIE9IIDQ0MTk1LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+RGF2aWQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk1hcmRlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgSGVhbHRoIFNlcnZpY2VzLCBVbml2ZXJzaXR5IG9mIElsbGlub2lzIENoaWNhZ28sIENoaWNhZ28sIElMIDYwNjEyLCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SmVyb21lIEEuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5ZZXNhdmFnZTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBzeWNoaWF0cnkgYW5kIEJlaGF2aW9yYWwgU2NpZW5jZXMsIFN0YW5mb3JkIFVuaXZlcnNpdHkgU2Nob29sIG9mIE1lZGljaW5lLCBTdGFuZm9yZCwgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDxqYXRzOmFic3RyYWN0IHhtbG5zOmphdHM9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9KQVRTMSI+DQogICAgICAgICAgICAgICAgICA8amF0czpwPg0KICAgICAgICAgICAgICAgICAgICA8amF0czppdGFsaWM+T2JqZWN0aXZlPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBUbyBmaW5kIGEgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50IGZvciB0aGUgUXVhbnRpRkVST04gR29sZCBJbi1UdWJlIChRRlQpIGludGVyZmVyb24gZ2FtbWEgcmVsZWFzZSBhc3NheSB0aGF0IGNvdWxkIGRlZmluZSBhbiBvcHRpbWFsIOKAnHJldGVzdGluZyB6b25l4oCdIGZvciB1c2UgaW4gc2VyaWFsbHkgdGVzdGVkIGxvdy1yaXNrIHBvcHVsYXRpb25zIHdobyBoYXZlIHRlc3Qg4oCccmV2ZXJzaW9uc+KAnSBmcm9tIGluaXRpYWxseSBwb3NpdGl2ZSB0byBzdWJzZXF1ZW50bHkgbmVnYXRpdmUgcmVzdWx0cy4NCiAgICAgICAgICAgICAgICAgICAgPGphdHM6aXRhbGljPk1ldGhvZDwvamF0czppdGFsaWM+DQogICAgICAgICAgICAgICAgICAgIC4gVXNpbmcgcmVjZWl2ZXIgb3BlcmF0aW5nIGNoYXJhY3RlcmlzdGljIGFuYWx5c2lzIChST0MpIHRvIGFuYWx5emUgcmV0cm9zcGVjdGl2ZSBkYXRhIGNvbGxlY3RlZCBmcm9tIDMgbWFqb3IgaG9zcGl0YWxzLCB3ZSBzZWFyY2hlZCBmb3IgcHJlZGljdG9ycyBvZiByZXZlcnNpb24gdW50aWwgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50cyB3ZXJlIHJldmVhbGVkLiBBIGNvbmZpcm1hdG9yeSByZWdyZXNzaW9uIGFuYWx5c2lzIHdhcyBwZXJmb3JtZWQgb24gYW4gYWRkaXRpb25hbCBzYW1wbGUuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5SZXN1bHRzPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBJbiA1NzUgaW5pdGlhbGx5IHBvc2l0aXZlIFVTIGhlYWx0aGNhcmUgd29ya2VycyAoSENXcyksIDMwMCAoNTIuMiUpIGhhZCByZXZlcnNpb25zLCB3aGlsZSAyNzUgKDQ3LjglKSBoYWQgdHdvIHNlcXVlbnRpYWwgcG9zaXRpdmUgdGVzdHMuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgKEthcHBh4oCJPeKAiTAuNDgsIGNoaS1zcXVhcmXigIk94oCJMTMxLjAsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMSI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMDE8L21tbDptbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L21tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICA8L21tbDptYXRoPg0KICAgICAgICAgICAgICAgICAgICApIHNlcGFyYXRpb24gcG9pbnQgaWRlbnRpZmllZCBieSB0aGUgUk9DIGZvciBwcmVkaWN0aW5nIHJldmVyc2lvbiB3YXMgdGhlIHR1YmVyY3Vsb3NpcyBhbnRpZ2VuIG1pbnVzLW5pbCAoVEJhZy1uaWwpIHZhbHVlIGF0IDEuMTEgSW50ZXJuYXRpb25hbCBVbml0cyBwZXIgbWlsbGlsaXRlciAoSVUvbUwpLiBUaGUgc2Vjb25kIHNlcGFyYXRpb24gcG9pbnQgd2FzIGZvdW5kIGF0IFRCYWctbmlsIGF0IDAuNzLigIlJVS9tTCAoS2FwcGHigIk94oCJMC4xNiwgY2hpLXNxdWFyZeKAiT3igIk4LjIsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMiI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMTwvbW1sOm1uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvbW1sOm1yb3c+DQogICAgICAgICAgICAgICAgICAgIDwvbW1sOm1hdGg+DQogICAgICAgICAgICAgICAgICAgICkuIFRoZSBtb2RlbCB3YXMgdmFsaWRhdGVkIGJ5IHRoZSByZWdyZXNzaW9uIGFuYWx5c2lzIG9mIDI4N+KAiUhDV3MuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5Db25jbHVzaW9uPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBSZXZlcnNpb24gbGlrZWxpaG9vZCBpbmNyZWFzZXMgYXMgdGhlIFRCYWctbmlsIGFwcHJvYWNoZXMgdGhlIG1hbnVmYWN0dXJlcidzIGN1dC1wb2ludCBvZiAwLjM14oCJSVUvbUwuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgc2VwYXJhdGlvbiBwb2ludCBiZXR3ZWVuIHRob3NlIHdobyB0ZXN0IHJlcGVhdGVkbHkgcG9zaXRpdmUgYW5kIHRob3NlIHdobyByZXZlcnQgaXMgMS4xMeKAiUlVL21MLiBDbGluaWNpYW5zIHNob3VsZCByZXRlc3QgbG93LXJpc2sgaW5kaXZpZHVhbHMgd2l0aCBpbml0aWFsIFFGVCByZXN1bHRz4oCJJmx0O+KAiTEuMTHigIlJVS9tTC4NCiAgICAgICAgICAgICAgICAgIDwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8cGFnZXM+DQogICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT43PC9sYXN0X3BhZ2U+DQogICAgICAgICAgICAgICAgPC9wYWdlcz4NCiAgICAgICAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJwaWkiPjI5MTI5NDwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9Im90aGVyIj4yOTEyOTQ8L2lkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNTUvMjAxMi8yOTEyOTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDx0aW1lc3RhbXA+MjAxNjA4MDIwMzQxMjU8L3RpbWVzdGFtcD4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQueG1sPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNvbGxlY3Rpb24gcHJvcGVydHk9ImNyYXdsZXItYmFzZWQiIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJnb29nbGUiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0ibXNuIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9ImFsdGF2aXN0YSI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJ5YWhvbyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJzY2lydXMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QW1lcmljYW4gSm91cm5hbCBvZiBSZXNwaXJhdG9yeSBhbmQgQ3JpdGljYWwgQ2FyZSBNZWRpY2luZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNzk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjAwMTY4LTA5PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMDYwNC00NzJPQzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjU1ODgvaWp0bGQuMTEuMDM2NDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjUiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjA1MDU4LTExPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy9zMDA0MjAtMDEwLTA1NzEteDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjciPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODYvNTkzOTY1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4wOS0yMzUwPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkludGVybmF0aW9uYWwgSm91cm5hbCBvZiBUdWJlcmN1bG9zaXMgYW5kIEx1bmcgRGlzZWFzZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMjM1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwNTYvTkVKTXNhMDMxNjY3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTEiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzgvY2hlc3QuMTI4LjEuMTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb3JiaWRpdHkgYW5kIE1vcnRhbGl0eSBXZWVrbHkgUmVwb3J0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT41PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4zMjA1L2Rna2gwMDAxNDg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMS0wOTkyPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExODYvMTQ3MS0yMzM0LTEwLTIyMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTg2LzE3NDUtNjY3My03LTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyNyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDAzOTgtMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMTAwNi0wOTc0T0M8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEzNi90aHguMjAxMC4xNDMxODA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMi0wMDQ1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX2FydGljbGU+DQogICAgICAgICAgICA8L2pvdXJuYWw+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
46
50
  http_version:
47
- recorded_at: Sun, 12 Jul 2020 11:25:34 GMT
51
+ recorded_at: Wed, 09 Jun 2021 12:58:40 GMT
48
52
  recorded_with: VCR 3.0.3
@@ -30,7 +30,7 @@ describe Bolognese::Metadata, vcr: true do
30
30
  "rightsUri"=>"https://creativecommons.org/licenses/by/3.0/legalcode",
31
31
  "schemeUri"=>"https://spdx.org/licenses/"}])
32
32
  expect(subject.titles).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
33
- expect(subject.dates).to eq([{"date"=>"2014-02-11", "dateType"=>"Issued"}, {"date"=>"2018-08-23T13:41:49Z", "dateType"=>"Updated"}])
33
+ expect(subject.dates).to eq([{"date"=>"2014-02-11", "dateType"=>"Issued"}, {"date"=>"2018-08-23T09:41:49Z", "dateType"=>"Updated"}])
34
34
  expect(subject.publication_year).to eq("2014")
35
35
  expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
36
36
  expect(subject.container).to eq("firstPage" => "e01567", "identifier"=>"2050-084X", "identifierType"=>"ISSN", "title"=>"eLife", "type"=>"Journal", "volume"=>"3")
@@ -61,7 +61,7 @@ describe Bolognese::Metadata, vcr: true do
61
61
  expect(subject.creators.length).to eq(5)
62
62
  expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Ralser, Markus", "givenName"=>"Markus", "familyName"=>"Ralser")
63
63
  expect(subject.contributors).to eq([{"contributorType"=>"Editor", "familyName"=>"Janbon", "givenName"=>"Guilhem", "name"=>"Janbon, Guilhem", "nameType"=>"Personal"}])
64
- expect(subject.titles).to eq([{"title"=>"Triose Phosphate Isomerase Deficiency Is Caused by Altered DimerizationNot Catalytic Inactivityof the Mutant Enzymes"}])
64
+ expect(subject.titles).to eq([{"title"=>"Triose Phosphate Isomerase Deficiency Is Caused by Altered Dimerization???Not Catalytic Inactivity???of the Mutant Enzymes"}])
65
65
  expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 4.0 International",
66
66
  "rightsIdentifier"=>"cc-by-4.0",
67
67
  "rightsIdentifierScheme"=>"SPDX",
@@ -109,10 +109,10 @@ describe Bolognese::Metadata, vcr: true do
109
109
  subject = Bolognese::Metadata.new(input: input)
110
110
  expect(subject.valid?).to be true
111
111
  expect(subject.id).to eq("https://doi.org/10.7600/jspfsm.56.60")
112
- expect(subject.url).to eq("http://jlc.jst.go.jp/JST.JSTAGE/jspfsm/56.60?lang=en&from=CrossRef&type=abstract")
112
+ expect(subject.url).to eq("https://www.jstage.jst.go.jp/article/jspfsm/56/1/56_1_60/_article/-char/ja/")
113
113
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
114
114
  expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
115
- expect(subject.titles).to eq([{"lang"=>"ja", "title"=>"自律神経・循環器応答"}])
115
+ expect(subject.titles).to eq([{"lang"=>"ja", "title"=>"??????????????????????????????"}])
116
116
  expect(subject.dates).to include({"date"=>"2007", "dateType"=>"Issued"})
117
117
  expect(subject.publication_year).to eq("2007")
118
118
  expect(subject.publisher).to eq("The Japanese Society of Physical Fitness and Sports Medicine")
@@ -131,7 +131,7 @@ describe Bolognese::Metadata, vcr: true do
131
131
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
132
132
  expect(subject.creators.length).to eq(8)
133
133
  expect(subject.creators.first).to eq("familyName"=>"Mesquita-Joanes", "givenName"=>"Francesc", "name"=>"Mesquita-Joanes, Francesc", "nameType"=>"Personal")
134
- expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an exotic invasive Ostracoda on the Iberian Peninsula?"}])
134
+ expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an??exotic??invasive Ostracoda on the Iberian Peninsula?"}])
135
135
  expect(subject.dates).to include({"date"=>"2012-01-01", "dateType"=>"Issued"})
136
136
  expect(subject.publication_year).to eq("2012")
137
137
  expect(subject.publisher).to eq("Oxford University Press (OUP)")
@@ -152,7 +152,7 @@ describe Bolognese::Metadata, vcr: true do
152
152
  expect(subject.creators.length).to eq(3)
153
153
  expect(subject.creators.first).to eq("familyName"=>"Chen", "givenName"=>"Lili", "name"=>"Chen, Lili", "nameType"=>"Personal")
154
154
  expect(subject.titles).to eq([{"title"=>"Human Body Orientation Estimation in Multiview Scenarios"}])
155
- expect(subject.dates).to eq([{"date"=>"2012", "dateType"=>"Issued"}, {"date"=>"2019-07-03T01:07:17Z", "dateType"=>"Updated"}])
155
+ expect(subject.dates).to eq([{"date"=>"2012", "dateType"=>"Issued"}, {"date"=>"2020-11-24T03:11:32Z", "dateType"=>"Updated"}])
156
156
  expect(subject.publication_year).to eq("2012")
157
157
  expect(subject.publisher).to eq("Springer Science and Business Media LLC")
158
158
  expect(subject.related_identifiers.length).to eq(7)
@@ -234,7 +234,7 @@ describe Bolognese::Metadata, vcr: true do
234
234
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
235
235
  expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Fenton, A.", "givenName"=>"A.", "familyName"=>"Fenton"}, {"nameType"=>"Personal", "name"=>"Rands, S. A.", "givenName"=>"S. A.", "familyName"=>"Rands"}])
236
236
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}])
237
- expect(subject.titles).to eq([{"title"=>"THE IMPACT OF PARASITE MANIPULATION AND PREDATOR FORAGING BEHAVIOR ON PREDATORPREY COMMUNITIES"}])
237
+ expect(subject.titles).to eq([{"title"=>"THE IMPACT OF PARASITE MANIPULATION AND PREDATOR FORAGING BEHAVIOR ON PREDATOR???PREY COMMUNITIES"}])
238
238
  expect(subject.dates).to eq([{"date"=>"2006-11", "dateType"=>"Issued"}, {"date"=>"2019-04-28T17:51:50Z", "dateType"=>"Updated"}])
239
239
  expect(subject.publication_year).to eq("2006")
240
240
  expect(subject.publisher).to eq("Wiley")
@@ -284,7 +284,268 @@ describe Bolognese::Metadata, vcr: true do
284
284
  expect(subject.dates).to include({"date"=>"2015-07", "dateType"=>"Issued"})
285
285
  expect(subject.publication_year).to eq("2015")
286
286
  expect(subject.publisher).to eq("Elsevier BV")
287
- expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"0014-2999", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection"}])
287
+ expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"0014-2999", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection"},
288
+ {"relatedIdentifier"=>"10.1212/01.wnl.0000287431.88658.8b",
289
+ "relatedIdentifierType"=>"DOI",
290
+ "relationType"=>"References"},
291
+ {"relatedIdentifier"=>"10.1182/blood-2010-09-308684",
292
+ "relatedIdentifierType"=>"DOI",
293
+ "relationType"=>"References"},
294
+ {"relatedIdentifier"=>"10.1007/s13365-015-0313-7",
295
+ "relatedIdentifierType"=>"DOI",
296
+ "relationType"=>"References"},
297
+ {"relatedIdentifier"=>"10.1016/j.jneuroim.2006.04.017",
298
+ "relatedIdentifierType"=>"DOI",
299
+ "relationType"=>"References"},
300
+ {"relatedIdentifier"=>"10.1086/514001",
301
+ "relatedIdentifierType"=>"DOI",
302
+ "relationType"=>"References"},
303
+ {"relatedIdentifier"=>"10.1002/ana.410310403",
304
+ "relatedIdentifierType"=>"DOI",
305
+ "relationType"=>"References"},
306
+ {"relatedIdentifier"=>"10.1093/infdis/jir214",
307
+ "relatedIdentifierType"=>"DOI",
308
+ "relationType"=>"References"},
309
+ {"relatedIdentifier"=>"10.1097/qad.0b013e32836010bd",
310
+ "relatedIdentifierType"=>"DOI",
311
+ "relationType"=>"References"},
312
+ {"relatedIdentifier"=>"10.1261/rna.036863.112",
313
+ "relatedIdentifierType"=>"DOI",
314
+ "relationType"=>"References"},
315
+ {"relatedIdentifier"=>"10.4103/0019-5359.107389",
316
+ "relatedIdentifierType"=>"DOI",
317
+ "relationType"=>"References"},
318
+ {"relatedIdentifier"=>"10.3233/jad-2008-14103",
319
+ "relatedIdentifierType"=>"DOI",
320
+ "relationType"=>"References"},
321
+ {"relatedIdentifier"=>"10.1126/science.287.5455.959",
322
+ "relatedIdentifierType"=>"DOI",
323
+ "relationType"=>"References"},
324
+ {"relatedIdentifier"=>"10.1097/01.qai.0000165799.59322.f5",
325
+ "relatedIdentifierType"=>"DOI",
326
+ "relationType"=>"References"},
327
+ {"relatedIdentifier"=>"10.1002/ana.410420503",
328
+ "relatedIdentifierType"=>"DOI",
329
+ "relationType"=>"References"},
330
+ {"relatedIdentifier"=>"10.1089/ars.2012.4834",
331
+ "relatedIdentifierType"=>"DOI",
332
+ "relationType"=>"References"},
333
+ {"relatedIdentifier"=>"10.1111/j.1600-0404.1987.tb05458.x",
334
+ "relatedIdentifierType"=>"DOI",
335
+ "relationType"=>"References"},
336
+ {"relatedIdentifier"=>"10.1097/00002030-198905000-00006",
337
+ "relatedIdentifierType"=>"DOI",
338
+ "relationType"=>"References"},
339
+ {"relatedIdentifier"=>"10.1002/ana.410200304",
340
+ "relatedIdentifierType"=>"DOI",
341
+ "relationType"=>"References"},
342
+ {"relatedIdentifier"=>"10.1186/1742-6405-2-6",
343
+ "relatedIdentifierType"=>"DOI",
344
+ "relationType"=>"References"},
345
+ {"relatedIdentifier"=>"10.1111/j.1600-0684.1993.tb00649.x",
346
+ "relatedIdentifierType"=>"DOI",
347
+ "relationType"=>"References"},
348
+ {"relatedIdentifier"=>"10.1186/1742-6405-7-15",
349
+ "relatedIdentifierType"=>"DOI",
350
+ "relationType"=>"References"},
351
+ {"relatedIdentifier"=>"10.1212/wnl.0b013e318200d727",
352
+ "relatedIdentifierType"=>"DOI",
353
+ "relationType"=>"References"},
354
+ {"relatedIdentifier"=>"10.1089/aid.2006.0292",
355
+ "relatedIdentifierType"=>"DOI",
356
+ "relationType"=>"References"},
357
+ {"relatedIdentifier"=>"10.1126/science.3646751",
358
+ "relatedIdentifierType"=>"DOI",
359
+ "relationType"=>"References"},
360
+ {"relatedIdentifier"=>"10.1002/ajmg.b.32071",
361
+ "relatedIdentifierType"=>"DOI",
362
+ "relationType"=>"References"},
363
+ {"relatedIdentifier"=>"10.1186/1756-6606-6-40",
364
+ "relatedIdentifierType"=>"DOI",
365
+ "relationType"=>"References"},
366
+ {"relatedIdentifier"=>"10.1086/344938",
367
+ "relatedIdentifierType"=>"DOI",
368
+ "relationType"=>"References"},
369
+ {"relatedIdentifier"=>"10.1128/jvi.71.8.6055-6060.1997",
370
+ "relatedIdentifierType"=>"DOI",
371
+ "relationType"=>"References"},
372
+ {"relatedIdentifier"=>"10.1016/j.jneuroim.2004.08.031",
373
+ "relatedIdentifierType"=>"DOI",
374
+ "relationType"=>"References"},
375
+ {"relatedIdentifier"=>"10.1371/journal.pone.0003603",
376
+ "relatedIdentifierType"=>"DOI",
377
+ "relationType"=>"References"},
378
+ {"relatedIdentifier"=>"10.1093/jnen/61.1.85",
379
+ "relatedIdentifierType"=>"DOI",
380
+ "relationType"=>"References"},
381
+ {"relatedIdentifier"=>"10.1097/qad.0b013e32832c4af0",
382
+ "relatedIdentifierType"=>"DOI",
383
+ "relationType"=>"References"},
384
+ {"relatedIdentifier"=>"10.3389/fgene.2013.00083",
385
+ "relatedIdentifierType"=>"DOI",
386
+ "relationType"=>"References"},
387
+ {"relatedIdentifier"=>"10.1080/13550280390194109",
388
+ "relatedIdentifierType"=>"DOI",
389
+ "relationType"=>"References"},
390
+ {"relatedIdentifier"=>"10.1002/ana.410420504",
391
+ "relatedIdentifierType"=>"DOI",
392
+ "relationType"=>"References"},
393
+ {"relatedIdentifier"=>"10.1001/archneur.61.11.1687",
394
+ "relatedIdentifierType"=>"DOI",
395
+ "relationType"=>"References"},
396
+ {"relatedIdentifier"=>"10.1212/01.wnl.0000277635.05973.55",
397
+ "relatedIdentifierType"=>"DOI",
398
+ "relationType"=>"References"},
399
+ {"relatedIdentifier"=>"10.1038/nmeth.3014",
400
+ "relatedIdentifierType"=>"DOI",
401
+ "relationType"=>"References"},
402
+ {"relatedIdentifier"=>"10.1097/qai.0000000000000048",
403
+ "relatedIdentifierType"=>"DOI",
404
+ "relationType"=>"References"},
405
+ {"relatedIdentifier"=>"10.1093/infdis/jit278",
406
+ "relatedIdentifierType"=>"DOI",
407
+ "relationType"=>"References"},
408
+ {"relatedIdentifier"=>"10.1007/s13365-014-0283-1",
409
+ "relatedIdentifierType"=>"DOI",
410
+ "relationType"=>"References"},
411
+ {"relatedIdentifier"=>"10.1097/00002030-199905280-00010",
412
+ "relatedIdentifierType"=>"DOI",
413
+ "relationType"=>"References"},
414
+ {"relatedIdentifier"=>"10.1097/qco.0b013e32834ef586",
415
+ "relatedIdentifierType"=>"DOI",
416
+ "relationType"=>"References"},
417
+ {"relatedIdentifier"=>"10.4049/jimmunol.169.6.3438",
418
+ "relatedIdentifierType"=>"DOI",
419
+ "relationType"=>"References"},
420
+ {"relatedIdentifier"=>"10.2174/1389200024605082",
421
+ "relatedIdentifierType"=>"DOI",
422
+ "relationType"=>"References"},
423
+ {"relatedIdentifier"=>"10.1126/science.1546323",
424
+ "relatedIdentifierType"=>"DOI",
425
+ "relationType"=>"References"},
426
+ {"relatedIdentifier"=>"10.1016/s1474-4422(14)70137-1",
427
+ "relatedIdentifierType"=>"DOI",
428
+ "relationType"=>"References"},
429
+ {"relatedIdentifier"=>"10.1016/j.jns.2009.06.043",
430
+ "relatedIdentifierType"=>"DOI",
431
+ "relationType"=>"References"},
432
+ {"relatedIdentifier"=>"10.1128/jvi.77.16.9029-9040.2003",
433
+ "relatedIdentifierType"=>"DOI",
434
+ "relationType"=>"References"},
435
+ {"relatedIdentifier"=>"10.1002/jcp.24254",
436
+ "relatedIdentifierType"=>"DOI",
437
+ "relationType"=>"References"},
438
+ {"relatedIdentifier"=>"10.1128/jvi.76.1.292-302.2002",
439
+ "relatedIdentifierType"=>"DOI",
440
+ "relationType"=>"References"},
441
+ {"relatedIdentifier"=>"10.1182/blood-2012-03-414706",
442
+ "relatedIdentifierType"=>"DOI",
443
+ "relationType"=>"References"},
444
+ {"relatedIdentifier"=>"10.1016/j.jneuroim.2013.11.004",
445
+ "relatedIdentifierType"=>"DOI",
446
+ "relationType"=>"References"},
447
+ {"relatedIdentifier"=>"10.1038/nrg3198",
448
+ "relatedIdentifierType"=>"DOI",
449
+ "relationType"=>"References"},
450
+ {"relatedIdentifier"=>"10.1016/s0140-6736(96)10178-1",
451
+ "relatedIdentifierType"=>"DOI",
452
+ "relationType"=>"References"},
453
+ {"relatedIdentifier"=>"10.1128/jvi.00366-11",
454
+ "relatedIdentifierType"=>"DOI",
455
+ "relationType"=>"References"},
456
+ {"relatedIdentifier"=>"10.1007/s13365-011-0053-2",
457
+ "relatedIdentifierType"=>"DOI",
458
+ "relationType"=>"References"},
459
+ {"relatedIdentifier"=>"10.1083/jcb.201211138",
460
+ "relatedIdentifierType"=>"DOI",
461
+ "relationType"=>"References"},
462
+ {"relatedIdentifier"=>"10.1111/j.1600-0684.2011.00475.x",
463
+ "relatedIdentifierType"=>"DOI",
464
+ "relationType"=>"References"},
465
+ {"relatedIdentifier"=>"10.1038/srep05915",
466
+ "relatedIdentifierType"=>"DOI",
467
+ "relationType"=>"References"},
468
+ {"relatedIdentifier"=>"10.1096/fj.09-143503",
469
+ "relatedIdentifierType"=>"DOI",
470
+ "relationType"=>"References"},
471
+ {"relatedIdentifier"=>"10.1542/peds.111.2.e168",
472
+ "relatedIdentifierType"=>"DOI",
473
+ "relationType"=>"References"},
474
+ {"relatedIdentifier"=>"10.2174/1566524013363555",
475
+ "relatedIdentifierType"=>"DOI",
476
+ "relationType"=>"References"},
477
+ {"relatedIdentifier"=>"10.1126/science.283.5403.857",
478
+ "relatedIdentifierType"=>"DOI",
479
+ "relationType"=>"References"},
480
+ {"relatedIdentifier"=>"10.1212/01.wnl.0000145763.68284.15",
481
+ "relatedIdentifierType"=>"DOI",
482
+ "relationType"=>"References"},
483
+ {"relatedIdentifier"=>"10.1002/ana.410230727",
484
+ "relatedIdentifierType"=>"DOI",
485
+ "relationType"=>"References"},
486
+ {"relatedIdentifier"=>"10.1186/1742-4690-10-95",
487
+ "relatedIdentifierType"=>"DOI",
488
+ "relationType"=>"References"},
489
+ {"relatedIdentifier"=>"10.1128/jvi.79.2.684-695.2005",
490
+ "relatedIdentifierType"=>"DOI",
491
+ "relationType"=>"References"},
492
+ {"relatedIdentifier"=>"10.1111/j.1600-0684.2005.00126.x",
493
+ "relatedIdentifierType"=>"DOI",
494
+ "relationType"=>"References"},
495
+ {"relatedIdentifier"=>"10.1186/1756-8722-6-6",
496
+ "relatedIdentifierType"=>"DOI",
497
+ "relationType"=>"References"},
498
+ {"relatedIdentifier"=>"10.1016/j.jmb.2013.12.017",
499
+ "relatedIdentifierType"=>"DOI",
500
+ "relationType"=>"References"},
501
+ {"relatedIdentifier"=>"10.1590/s0037-86822012000600002",
502
+ "relatedIdentifierType"=>"DOI",
503
+ "relationType"=>"References"},
504
+ {"relatedIdentifier"=>"10.1080/13550280390218715",
505
+ "relatedIdentifierType"=>"DOI",
506
+ "relationType"=>"References"},
507
+ {"relatedIdentifier"=>"10.1111/j.1468-1331.2012.03777.x",
508
+ "relatedIdentifierType"=>"DOI",
509
+ "relationType"=>"References"},
510
+ {"relatedIdentifier"=>"10.3233/jad-2010-090649",
511
+ "relatedIdentifierType"=>"DOI",
512
+ "relationType"=>"References"},
513
+ {"relatedIdentifier"=>"10.1080/13550280500516484",
514
+ "relatedIdentifierType"=>"DOI",
515
+ "relationType"=>"References"},
516
+ {"relatedIdentifier"=>"10.1080/13550280390218751",
517
+ "relatedIdentifierType"=>"DOI",
518
+ "relationType"=>"References"},
519
+ {"relatedIdentifier"=>"10.1189/jlb.0811394",
520
+ "relatedIdentifierType"=>"DOI",
521
+ "relationType"=>"References"},
522
+ {"relatedIdentifier"=>"10.1007/s11481-011-9330-3",
523
+ "relatedIdentifierType"=>"DOI",
524
+ "relationType"=>"References"},
525
+ {"relatedIdentifier"=>"10.1080/13550280802074539",
526
+ "relatedIdentifierType"=>"DOI",
527
+ "relationType"=>"References"},
528
+ {"relatedIdentifier"=>"10.1086/650743",
529
+ "relatedIdentifierType"=>"DOI",
530
+ "relationType"=>"References"},
531
+ {"relatedIdentifier"=>"10.1371/journal.pone.0008129",
532
+ "relatedIdentifierType"=>"DOI",
533
+ "relationType"=>"References"},
534
+ {"relatedIdentifier"=>"10.1128/jvi.80.10.5074-5077.2006",
535
+ "relatedIdentifierType"=>"DOI",
536
+ "relationType"=>"References"},
537
+ {"relatedIdentifier"=>"10.1186/1742-2094-10-62",
538
+ "relatedIdentifierType"=>"DOI",
539
+ "relationType"=>"References"},
540
+ {"relatedIdentifier"=>"10.1086/323478",
541
+ "relatedIdentifierType"=>"DOI",
542
+ "relationType"=>"References"},
543
+ {"relatedIdentifier"=>"10.1128/jvi.73.12.10480-10488.1999",
544
+ "relatedIdentifierType"=>"DOI",
545
+ "relationType"=>"References"},
546
+ {"relatedIdentifier"=>"10.1111/hiv.12134",
547
+ "relatedIdentifierType"=>"DOI",
548
+ "relationType"=>"References"}])
288
549
  expect(subject.container).to eq("firstPage"=>"303", "identifier"=>"0014-2999", "identifierType"=>"ISSN", "lastPage"=>"312", "title"=>"European Journal of Pharmacology", "type"=>"Journal", "volume"=>"759")
289
550
  expect(subject.agency).to eq("crossref")
290
551
  end
@@ -335,7 +596,7 @@ describe Bolognese::Metadata, vcr: true do
335
596
  expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
336
597
  expect(subject.titles).to eq([{"title"=>":(unav)"}])
337
598
  expect(subject.descriptions).to be_empty
338
- expect(subject.dates).to eq([{"date"=>"2015-10-20", "dateType"=>"Issued"}, {"date"=>"2018-10-19T17:13:42Z", "dateType"=>"Updated"}])
599
+ expect(subject.dates).to eq([{"date"=>"2015-10-20", "dateType"=>"Issued"}, {"date"=>"2018-10-19T21:13:42Z", "dateType"=>"Updated"}])
339
600
  expect(subject.publication_year).to eq("2015")
340
601
  expect(subject.publisher).to eq("Public Library of Science (PLoS)")
341
602
  expect(subject.agency).to eq("crossref")
@@ -405,7 +666,7 @@ describe Bolognese::Metadata, vcr: true do
405
666
  expect(subject.id).to eq("https://doi.org/10.4018/978-1-4666-1891-6.ch004")
406
667
  expect(subject.url).to eq("http://services.igi-global.com/resolvedoi/resolve.aspx?doi=10.4018/978-1-4666-1891-6.ch004")
407
668
  expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
408
- expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"Université de Lyon, France"}], "familyName"=>"Bichot", "givenName"=>"Charles-Edmond", "name"=>"Bichot, Charles-Edmond", "nameType"=>"Personal"}])
669
+ expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"Universit?? de Lyon, France"}], "familyName"=>"Bichot", "givenName"=>"Charles-Edmond", "name"=>"Bichot, Charles-Edmond", "nameType"=>"Personal"}])
409
670
  expect(subject.titles).to eq([{"title"=>"Unsupervised and Supervised Image Segmentation Using Graph Partitioning"}])
410
671
  expect(subject.dates).to eq([{"date"=>"2012-08-08", "dateType"=>"Issued"}, {"date"=>"2019-07-02T17:17:21Z", "dateType"=>"Updated"}])
411
672
  expect(subject.publication_year).to eq("2012")
@@ -443,7 +704,7 @@ describe Bolognese::Metadata, vcr: true do
443
704
  expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
444
705
  expect(subject.creators).to eq([{"familyName"=>"Leung", "givenName"=>"Vincent S.", "name"=>"Leung, Vincent S.", "nameType"=>"Personal"}])
445
706
  expect(subject.titles).to eq([{"title"=>"The Politics of the Past in Early China"}])
446
- expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2019-12-01T18:11:11Z", "dateType"=>"Updated"}])
707
+ expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2021-01-08T19:18:57Z", "dateType"=>"Updated"}])
447
708
  expect(subject.publication_year).to eq("2019")
448
709
  expect(subject.publisher).to eq("Cambridge University Press (CUP)")
449
710
  expect(subject.agency).to eq("crossref")
@@ -477,8 +738,8 @@ describe Bolognese::Metadata, vcr: true do
477
738
  expect(subject.url).to eq("http://doi.wiley.com/10.1029/AR035")
478
739
  expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
479
740
  expect(subject.creators).to eq([{"familyName"=>"McGinnis", "givenName"=>"Richard Frank", "name"=>"McGinnis, Richard Frank", "nameType"=>"Personal"}])
480
- expect(subject.titles).to eq([{"title"=>"Biogeography of Lanternfishes (Myctophidae) South of 30°S"}])
481
- expect(subject.dates).to eq([{"date"=>"1982", "dateType"=>"Issued"}, {"date"=>"2019-06-15T05:11:12Z", "dateType"=>"Updated"}])
741
+ expect(subject.titles).to eq([{"title"=>"Biogeography of Lanternfishes (Myctophidae) South of 30??S"}])
742
+ expect(subject.dates).to eq([{"date"=>"1982", "dateType"=>"Issued"}, {"date"=>"2021-02-23T21:58:36Z", "dateType"=>"Updated"}])
482
743
  expect(subject.publication_year).to eq("1982")
483
744
  expect(subject.publisher).to eq("Wiley")
484
745
  expect(subject.related_identifiers.length).to eq(44)
@@ -561,8 +822,8 @@ describe Bolognese::Metadata, vcr: true do
561
822
  expect(subject.url).to eq("http://journals.openedition.org/dms/865")
562
823
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
563
824
  expect(subject.creators).to eq([{"familyName"=>"Peraya", "givenName"=>"Daniel", "name"=>"Peraya, Daniel", "nameType"=>"Personal"}])
564
- expect(subject.titles).to eq([{"title"=>"Distances, absence, proximités et présences : des concepts en déplacement"}, {"title"=>"Distance(s), proximity and presence(s): evolving concepts"}])
565
- expect(subject.dates).to include({"date"=>"2014-12-23", "dateType"=>"Issued"})
825
+ expect(subject.titles).to eq([{"title"=>"Distances, absence, proximit??s et pr??sences??: des concepts en d??placement"}, {"title"=>"Distance(s), proximity and presence(s): evolving concepts"}])
826
+ expect(subject.dates).to include({"date"=>"2014-12-14", "dateType"=>"Issued"})
566
827
  expect(subject.publication_year).to eq("2014")
567
828
  expect(subject.publisher).to eq("OpenEdition")
568
829
  expect(subject.agency).to eq("crossref")
@@ -618,7 +879,7 @@ describe Bolognese::Metadata, vcr: true do
618
879
  expect(subject.publication_year).to eq("2017")
619
880
  expect(subject.publisher).to eq("The Royal Society")
620
881
  expect(subject.agency).to eq("crossref")
621
- expect(subject.date_registered).to eq("2019-07-18T04:43:12Z")
882
+ expect(subject.date_registered).to eq("2021-02-14T10:36:45Z")
622
883
  end
623
884
 
624
885
  it "empty given name" do
@@ -629,10 +890,10 @@ describe Bolognese::Metadata, vcr: true do
629
890
  expect(subject.url).to eq("http://doi.wiley.com/10.1111/j.1865-1682.2010.01171.x")
630
891
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
631
892
  expect(subject.creators.length).to eq(5)
632
- expect(subject.creators[3]).to eq("familyName"=>"Ehtisham-ul-Haq", "givenName"=>"", "name"=>"Ehtisham-ul-Haq,", "nameType"=>"Personal")
893
+ expect(subject.creators[3]).to eq("familyName"=>"Ehtisham-ul-Haq", "givenName"=>"???", "name"=>"Ehtisham-ul-Haq, ???", "nameType"=>"Personal")
633
894
  expect(subject.titles).to eq([{"title"=>"Serological Evidence of Brucella abortus Prevalence in Punjab Province, Pakistan - A Cross-Sectional Study"}])
634
895
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}])
635
- expect(subject.dates).to eq([{"date"=>"2010-12", "dateType"=>"Issued"}, {"date"=>"2019-03-05T09:22:24Z", "dateType"=>"Updated"}])
896
+ expect(subject.dates).to eq([{"date"=>"2010-12", "dateType"=>"Issued"}, {"date"=>"2021-02-04T22:37:42Z", "dateType"=>"Updated"}])
636
897
  expect(subject.publication_year).to eq("2010")
637
898
  expect(subject.publisher).to eq("Wiley")
638
899
  end
@@ -652,7 +913,7 @@ describe Bolognese::Metadata, vcr: true do
652
913
  "name" => "Ma, Jun-An",
653
914
  "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0002-3902-6799", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],
654
915
  "nameType" => "Personal")
655
- expect(subject.titles).to eq([{"title"=>"Silver-Catalyzed [3+3] Annulation of Glycine Imino Esters with SeyferthGilbert Reagent To Access Tetrahydro-1,2,4-triazinecarboxylate Esters"}])
916
+ expect(subject.titles).to eq([{"title"=>"Silver-Catalyzed [3+3] Annulation of Glycine Imino Esters with Seyferth???Gilbert Reagent To Access Tetrahydro-1,2,4-triazinecarboxylate Esters"}])
656
917
  expect(subject.dates).to eq([{"date"=>"2020-04-08", "dateType"=>"Issued"}, {"date"=>"2020-06-16T23:13:36Z", "dateType"=>"Updated"}])
657
918
  expect(subject.publication_year).to eq("2020")
658
919
  expect(subject.publisher).to eq("Georg Thieme Verlag KG")
@@ -705,13 +966,13 @@ describe Bolognese::Metadata, vcr: true do
705
966
  expect(subject.url).to eq("http://journals.sagepub.com/doi/10.1177/0042098011428175")
706
967
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
707
968
  expect(subject.creators.length).to eq(1)
708
- expect(subject.creators.first).to eq("familyName"=>"Petrovici", "givenName"=>"Norbert", "name"=>"Petrovici, Norbert", "nameType"=>"Personal")
969
+ expect(subject.creators.first).to eq("affiliation"=>[{"name"=>"??"}], "familyName"=>"Petrovici", "givenName"=>"Norbert", "name"=>"Petrovici, Norbert", "nameType"=>"Personal")
709
970
  expect(subject.titles).to eq([{"title"=>"Workers and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation"}])
710
971
  expect(subject.dates).to include({"date"=>"2011-12-22", "dateType"=>"Issued"})
711
972
  expect(subject.publication_year).to eq("2011")
712
973
  expect(subject.publisher).to eq("SAGE Publications")
713
974
  expect(subject.agency).to eq("crossref")
714
- expect(subject.date_registered).to eq("2017-12-17T00:37:32Z")
975
+ expect(subject.date_registered).to eq("2021-05-16T02:02:38Z")
715
976
  end
716
977
 
717
978
  it "multiple issn" do
@@ -761,7 +1022,7 @@ describe Bolognese::Metadata, vcr: true do
761
1022
  "givenName" => "Jun",
762
1023
  "name" => "Shao, Jun",
763
1024
  "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0001-6130-6474", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}])
764
- expect(subject.titles).to eq([{"title"=>"The Atmospheric Bridge Communicated the δ<sup>13</sup>C Declineduring the Last Deglaciation to the Global Upper Ocean"}])
1025
+ expect(subject.titles).to eq([{"title"=>"The Atmospheric Bridge Communicated the ??<sup>13</sup>C Decline during the Last Deglaciation to the Global Upper Ocean"}])
765
1026
  expect(subject.id).to eq("https://doi.org/10.5194/cp-2020-95")
766
1027
  expect(subject.identifiers).to be_empty
767
1028
  expect(subject.descriptions.first["description"]).to start_with("Abstract. During the early last glacial termination")
@@ -806,7 +1067,7 @@ describe Bolognese::Metadata, vcr: true do
806
1067
  expect(subject.descriptions).to be_empty
807
1068
  expect(subject.dates).to include({"date"=>"2010-01-01", "dateType"=>"Issued"})
808
1069
  expect(subject.publication_year).to eq("2010")
809
- expect(subject.publisher).to eq("Office of Scientific and Technical Information (OSTI)")
1070
+ expect(subject.publisher).to eq("Office of Scientific and Technical Information (OSTI)")
810
1071
  expect(subject.agency).to eq("crossref")
811
1072
  end
812
1073