bolognese 1.3.1 → 2.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +9 -0
- data/.github/workflows/changelog.yml +36 -0
- data/.github/workflows/ci.yml +22 -0
- data/.github/workflows/pull-request.yml +9 -0
- data/.github/workflows/release.yml +32 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +658 -0
- data/CHANGELOG.md +1864 -0
- data/Gemfile.lock +163 -129
- data/README.md +3 -2
- data/bolognese.gemspec +22 -20
- data/lib/bolognese/author_utils.rb +49 -25
- data/lib/bolognese/cli.rb +6 -4
- data/lib/bolognese/datacite_utils.rb +143 -17
- data/lib/bolognese/doi_utils.rb +14 -9
- data/lib/bolognese/metadata.rb +27 -19
- data/lib/bolognese/metadata_utils.rb +25 -6
- data/lib/bolognese/readers/bibtex_reader.rb +29 -34
- data/lib/bolognese/readers/citeproc_reader.rb +27 -35
- data/lib/bolognese/readers/codemeta_reader.rb +12 -13
- data/lib/bolognese/readers/crosscite_reader.rb +4 -1
- data/lib/bolognese/readers/crossref_reader.rb +163 -67
- data/lib/bolognese/readers/datacite_json_reader.rb +4 -1
- data/lib/bolognese/readers/datacite_reader.rb +150 -38
- data/lib/bolognese/readers/npm_reader.rb +115 -0
- data/lib/bolognese/readers/ris_reader.rb +10 -14
- data/lib/bolognese/readers/schema_org_reader.rb +58 -25
- data/lib/bolognese/utils.rb +502 -63
- data/lib/bolognese/version.rb +1 -1
- data/lib/bolognese/writers/bibtex_writer.rb +4 -3
- data/lib/bolognese/writers/codemeta_writer.rb +6 -5
- data/lib/bolognese/writers/csv_writer.rb +1 -1
- data/lib/bolognese/writers/datacite_json_writer.rb +3 -1
- data/lib/bolognese/writers/jats_writer.rb +9 -4
- data/lib/bolognese/writers/ris_writer.rb +2 -2
- data/lib/bolognese/writers/schema_org_writer.rb +11 -7
- data/lib/bolognese.rb +2 -1
- data/package.json +12 -0
- data/resources/kernel-4/include/datacite-contributorType-v4.xsd +24 -22
- data/resources/kernel-4/include/datacite-dateType-v4.xsd +14 -12
- data/resources/kernel-4/include/datacite-descriptionType-v4.xsd +6 -6
- data/resources/kernel-4/include/datacite-funderIdentifierType-v4.xsd +5 -5
- data/resources/kernel-4/include/datacite-nameType-v4.xsd +2 -2
- data/resources/kernel-4/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +24 -21
- data/resources/kernel-4/include/datacite-relationType-v4.xsd +43 -35
- data/resources/kernel-4/include/datacite-resourceType-v4.xsd +38 -17
- data/resources/kernel-4/include/datacite-titleType-v4.xsd +5 -5
- data/resources/kernel-4/metadata.xsd +349 -146
- data/resources/kernel-4.3/metadata.xsd +39 -8
- data/resources/kernel-4.4/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.4/include/datacite-dateType-v4.xsd +25 -0
- data/resources/kernel-4.4/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.4/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.4/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.4/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4.4/include/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/kernel-4.4/include/datacite-relationType-v4.xsd +51 -0
- data/resources/kernel-4.4/include/datacite-resourceType-v4.xsd +43 -0
- data/resources/kernel-4.4/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.4/include/xml.xsd +286 -0
- data/resources/kernel-4.4/metadata.xsd +707 -0
- data/resources/kernel-4.5/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.5/include/datacite-dateType-v4.xsd +25 -0
- data/resources/kernel-4.5/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.5/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.5/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/kernel-4.5/include/datacite-relationType-v4.xsd +53 -0
- data/resources/kernel-4.5/include/datacite-resourceType-v4.xsd +45 -0
- data/resources/kernel-4.5/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.5/include/xml.xsd +286 -0
- data/resources/kernel-4.5/metadata.xsd +711 -0
- data/resources/kernel-4.6/include/datacite-contributorType-v4.xsd +37 -0
- data/resources/kernel-4.6/include/datacite-dateType-v4.xsd +27 -0
- data/resources/kernel-4.6/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.6/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.6/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd +37 -0
- data/resources/kernel-4.6/include/datacite-relationType-v4.xsd +57 -0
- data/resources/kernel-4.6/include/datacite-resourceType-v4.xsd +49 -0
- data/resources/kernel-4.6/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.6/include/xml.xsd +286 -0
- data/resources/kernel-4.6/metadata.xsd +712 -0
- data/resources/oecd/dfg-mappings.json +1866 -0
- data/resources/oecd/for-mappings.json +1101 -0
- data/resources/oecd/fos-mappings.json +198 -0
- data/resources/schema_org/jsonldcontext.json +1069 -232
- data/resources/spdx/licenses.json +5297 -0
- metadata +160 -510
- data/.travis.yml +0 -33
- data/spec/array_spec.rb +0 -22
- data/spec/author_utils_spec.rb +0 -188
- data/spec/cli_spec.rb +0 -219
- data/spec/datacite_utils_spec.rb +0 -148
- data/spec/doi_utils_spec.rb +0 -302
- data/spec/find_from_format_spec.rb +0 -98
- data/spec/fixtures/aida.json +0 -82
- data/spec/fixtures/citeproc-no-author.json +0 -26
- data/spec/fixtures/citeproc-no-categories.json +0 -21
- data/spec/fixtures/citeproc.json +0 -30
- data/spec/fixtures/codemeta.json +0 -86
- data/spec/fixtures/codemeta_v2.json +0 -86
- data/spec/fixtures/crosscite.json +0 -63
- data/spec/fixtures/crossref.bib +0 -14
- data/spec/fixtures/crossref.ris +0 -15
- data/spec/fixtures/crossref.xml +0 -606
- data/spec/fixtures/datacite-example-affiliation.xml +0 -114
- data/spec/fixtures/datacite-example-complicated-v3.0.xml +0 -48
- data/spec/fixtures/datacite-example-complicated-v4.0.xml +0 -54
- data/spec/fixtures/datacite-example-complicated-v4.1.xml +0 -57
- data/spec/fixtures/datacite-example-geolocation-2.xml +0 -141
- data/spec/fixtures/datacite-example-geolocation.xml +0 -66
- data/spec/fixtures/datacite-example-polygon-v4.1.xml +0 -163
- data/spec/fixtures/datacite-geolocation-empty.xml +0 -159
- data/spec/fixtures/datacite-metadata-sample-complicated-v2.2.xml +0 -52
- data/spec/fixtures/datacite-multiple-language.xml +0 -38
- data/spec/fixtures/datacite-multiple-rights.xml +0 -59
- data/spec/fixtures/datacite-seriesinformation.xml +0 -41
- data/spec/fixtures/datacite-xml-lang.xml +0 -51
- data/spec/fixtures/datacite.json +0 -83
- data/spec/fixtures/datacite.xml +0 -40
- data/spec/fixtures/datacite_dataset.xml +0 -58
- data/spec/fixtures/datacite_malformed_creator.xml +0 -52
- data/spec/fixtures/datacite_missing_creator.xml +0 -33
- data/spec/fixtures/datacite_schema_3.xml +0 -58
- data/spec/fixtures/datacite_software.json +0 -21
- data/spec/fixtures/datacite_software_missing_comma.json +0 -18
- data/spec/fixtures/datacite_software_overlapping_keys.json +0 -18
- data/spec/fixtures/funding_reference.xml +0 -53
- data/spec/fixtures/gtex.xml +0 -71
- data/spec/fixtures/maremma/codemeta.json +0 -36
- data/spec/fixtures/nist.xml +0 -35
- data/spec/fixtures/ns0.xml +0 -2
- data/spec/fixtures/pure.bib +0 -14
- data/spec/fixtures/pure.ris +0 -15
- data/spec/fixtures/ris_bug.ris +0 -9
- data/spec/fixtures/schema_4.0.xml +0 -140
- data/spec/fixtures/schema_org.json +0 -44
- data/spec/fixtures/schema_org_geolocation.json +0 -82
- data/spec/fixtures/schema_org_geoshape.json +0 -550
- data/spec/fixtures/schema_org_gtex.json +0 -76
- data/spec/fixtures/schema_org_list.json +0 -12628
- data/spec/fixtures/schema_org_tdl_iodp_invalid_authors.json +0 -25
- data/spec/fixtures/schema_org_topmed.json +0 -54
- data/spec/fixtures/schema_org_type_as_array.json +0 -41
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/default.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_bibtex.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_citation.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_crossref.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_datacite.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_jats.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_schema_org.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/default.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_bibtex.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_citation.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite_json.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_jats.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_schema_org.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/default.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_bibtex.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_datacite.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_schema_org.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/crossref.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/datacite.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/jalc.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/kisti.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/medra.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/op.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/author.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/no_author.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/single_author.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/with_organization.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_state.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_title.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_description.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_name.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_url.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_state.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi_with_protocol.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/dx_doi_org_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/force_test_resolver.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/https_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver_http.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi_with_special_characters.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/not_a_doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/sandbox_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/crossref.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/datacite.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/jalc.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/kisti.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/medra.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_a_valid_prefix.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_found.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/op.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi_with_protocol.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/dx_doi_org_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/force_test_resolver.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/https_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/test_resolver.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/test_resolver_http.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref.yml +0 -143
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +0 -143
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite.yml +0 -143
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite_doi_http.yml +0 -143
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/github.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/orcid.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/schema_org.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +0 -143
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/bibtex.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/citeproc.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/codemeta.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crosscite.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crossref.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite_json.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/ris.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/schema_org.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_string/crosscite.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org/with_id.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/metadata_reports.yml +0 -94
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +0 -92
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +0 -91
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/JaLC.yml +0 -126
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/KISTI.yml +0 -147
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/OP.yml +0 -89
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book.yml +0 -127
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml +0 -89
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter.yml +0 -159
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/component.yml +0 -109
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset.yml +0 -119
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset_usda.yml +0 -129
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/date_in_future.yml +0 -90
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/error_unknown.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/jj.yml +0 -87
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article.yml +0 -89
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +0 -87
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_funding.yml +0 -89
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_issue.yml +0 -116
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/mEDRA.yml +0 -125
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/markup.yml +0 -92
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/missing_creator.yml +0 -89
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_t.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles.yml +0 -87
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/vor_with_url.yml +0 -91
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book.yml +0 -87
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system_schema_3.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_with_related_id_system.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_not_found.yml +0 -89
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Dataset.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Referee_report_in_test_system.yml +0 -97
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_only_full_name.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_scheme.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/content_url.yml +0 -101
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/date.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/dissertation.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/doi_with_sign.yml +0 -97
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/empty_subject.yml +0 -95
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_schema_version_3.yml +0 -119
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/is_identical_to.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/keywords_with_attributes.yml +0 -108
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +0 -121
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +0 -102
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml +0 -119
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/xs_string_attributes.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year-month.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/date.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year-month.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/date.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year-month.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_familyName.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_Thai.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_sort-order.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/hyper-authorship.yml +0 -1222
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/is_organization.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_author_names_in_one_field.yml +0 -58
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_name_identifier.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation_and_country.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_role.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/only_familyName_and_givenName.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse.yml +0 -37
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse_via_identifiers_org.yml +0 -156
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/ornl.yml +0 -704
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/pangaea.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/zenodo.yml +0 -580
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/only_title.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_and_pages.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_and_pages.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_issue_and_pages.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_as_codemeta_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url_file.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/unknown_DOI_prefix.yml +0 -47
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_alternate_identifiers/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors/none.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_creators/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_descriptions/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_identifier/doi.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_person/creator_only_name.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publication_year/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publisher/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/related_identifier.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_rights_list/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_titles/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_version/insert.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_comma.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_family_name.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_id.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_known_given_name.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_no_info.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_orcid_id.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_type_organization.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/missing_comma.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/nil.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/overlapping_keys.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/valid.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/SICI_doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_too_long.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_with_string.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_with_protocol.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/dx_doi_org_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/https_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/not_valid_doi_prefix.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/url_with_one_slash.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi_as_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/ftp.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/invalid_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_options.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/string.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url_with_utf-8.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_array.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_empty_array.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_hash.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_string.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/uri.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array_of_strings.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/first.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/hash.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/nil.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/string.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_only_keep_specific_tags.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_remove_a_tags.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org/with_id.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org_identifiers/with_identifiers.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_doi/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi_without_prefix.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/non-funder_doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_https.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_id.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_with_spaces.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_wrong_id.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_www.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_as_url.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_with_protocol.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/only_prefix.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/DOI.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/ISSN.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/URL.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/string.yml +0 -44
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/Dataset.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/climate_data.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/from_schema_org.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +0 -119
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/text.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_data_citation.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_pages.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Dataset.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Missing_author.yml +0 -45
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +0 -109
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Dataset.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/container_title.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/journal_article.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/keywords_subject_scheme.yml +0 -119
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/missing_creator.yml +0 -45
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_first_page.yml +0 -46
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_only_first_page.yml +0 -46
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_pages.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crossref/from_DataCite.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/climate_data.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/text.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_data_citation.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_pages.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation_schema_org.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/DOI_not_found.yml +0 -45
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru_with_doi_in_options.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation_schema_org.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_editor.yml +0 -45
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/book_chapter.yml +0 -84
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation_schema_org.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_editor.yml +0 -45
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +0 -111
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/Dataset.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/alternate_name.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/journal_article.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +0 -119
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/maremma.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/with_pages.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +0 -57
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/data_catalog.yml +0 -62
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/geo_location_box.yml +0 -98
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/journal_article.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/series_information.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +0 -119
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/Dataset.yml +0 -49
- data/spec/fixtures/vivli.xml +0 -1
- data/spec/metadata_spec.rb +0 -165
- data/spec/readers/bibtex_reader_spec.rb +0 -59
- data/spec/readers/citeproc_reader_spec.rb +0 -61
- data/spec/readers/codemeta_reader_spec.rb +0 -117
- data/spec/readers/crosscite_reader_spec.rb +0 -41
- data/spec/readers/crossref_reader_spec.rb +0 -509
- data/spec/readers/datacite_json_reader_spec.rb +0 -61
- data/spec/readers/datacite_reader_spec.rb +0 -1041
- data/spec/readers/ris_reader_spec.rb +0 -73
- data/spec/readers/schema_org_reader_spec.rb +0 -325
- data/spec/spec_helper.rb +0 -94
- data/spec/utils_spec.rb +0 -417
- data/spec/writers/bibtex_writer_spec.rb +0 -163
- data/spec/writers/citation_writer_spec.rb +0 -35
- data/spec/writers/citeproc_writer_spec.rb +0 -223
- data/spec/writers/codemeta_writer_spec.rb +0 -46
- data/spec/writers/crosscite_writer_spec.rb +0 -118
- data/spec/writers/crossref_writer_spec.rb +0 -21
- data/spec/writers/csv_writer_spec.rb +0 -93
- data/spec/writers/datacite_json_writer_spec.rb +0 -86
- data/spec/writers/datacite_writer_spec.rb +0 -366
- data/spec/writers/jats_writer_spec.rb +0 -179
- data/spec/writers/rdf_xml_writer_spec.rb +0 -100
- data/spec/writers/ris_writer_spec.rb +0 -203
- data/spec/writers/schema_org_writer_spec.rb +0 -322
- data/spec/writers/turtle_writer_spec.rb +0 -84
data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse.yml
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
http_interactions:
|
|
3
|
-
- request:
|
|
4
|
-
method: get
|
|
5
|
-
uri: https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/NJ7XSO
|
|
6
|
-
body:
|
|
7
|
-
encoding: US-ASCII
|
|
8
|
-
string: ''
|
|
9
|
-
headers:
|
|
10
|
-
User-Agent:
|
|
11
|
-
- Mozilla/5.0 (compatible; Maremma/4.2.1; mailto:info@datacite.org)
|
|
12
|
-
Accept:
|
|
13
|
-
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
|
14
|
-
response:
|
|
15
|
-
status:
|
|
16
|
-
code: 200
|
|
17
|
-
message: OK
|
|
18
|
-
headers:
|
|
19
|
-
Cache-Control:
|
|
20
|
-
- no-cache="set-cookie"
|
|
21
|
-
Content-Type:
|
|
22
|
-
- text/html;charset=UTF-8
|
|
23
|
-
Date:
|
|
24
|
-
- Wed, 03 Jul 2019 19:24:47 GMT
|
|
25
|
-
Server:
|
|
26
|
-
- Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips
|
|
27
|
-
Set-Cookie:
|
|
28
|
-
- JSESSIONID=94be702ba353841c2d2c5e29ba12; Path=/; Secure; HttpOnly, AWSELB=EB1179591E49E298C6825A3028F74991071DEE12D3CF6A1B0A2CD5F2F144400DE0E06A10F0DBD3EC37C4E69D8B958E3FBF8CF81403222DF6AABE0F6509EF79AB1D548B7265;PATH=/;MAX-AGE=28800
|
|
29
|
-
Connection:
|
|
30
|
-
- keep-alive
|
|
31
|
-
body:
|
|
32
|
-
encoding: ASCII-8BIT
|
|
33
|
-
string: !binary |-
|
|
34
|
-
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnID8+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+PGhlYWQgaWQ9ImpfaWR0MTgiPjwhLS0gR2xvYmFsIFNpdGUgVGFnIChndGFnLmpzKSAtIEdvb2dsZSBBbmFseXRpY3MgLS0+CjxzY3JpcHQgYXN5bmM9ImFzeW5jIiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9VUEtNjE3NTMzMzQtMSI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgd2luZG93LmRhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107CiAgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7CgogIGd0YWcoJ2NvbmZpZycsICdVQS02MTc1MzMzNC0xJyk7Cjwvc2NyaXB0PgoKICAgICAgICAgICAgPHRpdGxlPlN1bW1hcnkgZGF0YSBhbmt5bG9zaW5nIHNwb25keWxpdGlzIEdXQVMgLSBIYXJ2YXJkIERhdGF2ZXJzZTwvdGl0bGU+CgkgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkgICAgPG1ldGEgbmFtZT0iREMuaWRlbnRpZmllciIgY29udGVudD0iZG9pOjEwLjc5MTAvRFZOL05KN1hTTyIgLz4KCSAgICA8bWV0YSBuYW1lPSJEQy50eXBlIiBjb250ZW50PSJEYXRhc2V0IiAvPgoJICAgIDxtZXRhIG5hbWU9IkRDLnRpdGxlIiBjb250ZW50PSJTdW1tYXJ5IGRhdGEgYW5reWxvc2luZyBzcG9uZHlsaXRpcyBHV0FTIiAvPgogICAgICAgICAgICA8bWV0YSBuYW1lPSJEQy5kYXRlIiBjb250ZW50PSIyMDE3LTA5LTMwIiAvPgoJICAgIDxtZXRhIG5hbWU9IkRDLnB1Ymxpc2hlciIgY29udGVudD0iSGFydmFyZCBEYXRhdmVyc2UiIC8+CiAgICAgICAgICAgIDxtZXRhIG5hbWU9IkRDLmRlc2NyaXB0aW9uIiBjb250ZW50PSJTdW1tYXJ5IG9mIGFzc29jaWF0aW9uIHRlc3RzIGZvciBOYXR1cmUgR2VuZXRpY3MgcHVibGljYXRpb24gJnF1b3Q7SWRlbnRpZmljYXRpb24gb2YgbXVsdGlwbGUgcmlzayB2YXJpYW50cyBmb3IgYW5reWxvc2luZyBzcG9uZHlsaXRpcyB0aHJvdWdoIGhpZ2gtZGVuc2l0eSBnZW5vdHlwaW5nIG9mIGltbXVuZS1yZWxhdGVkIGxvY2kmcXVvdDsuIiAvPgogICAgICAgICAgICA8bWV0YSBuYW1lPSJEQy5jcmVhdG9yIiBjb250ZW50PSJJbnRlcm5hdGlvbmFsIEdlbmV0aWNzIG9mIEFua3lsb3NpbmcgU3BvbmR5bGl0aXMgQ29uc29ydGl1bSAoSUdBUykiIC8+CiAgICAgICAgICAgIDxtZXRhIG5hbWU9IkRDLnN1YmplY3QiIGNvbnRlbnQ9Ik1lZGljaW5lLCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMiIC8+CiAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IlN1bW1hcnkgZGF0YSBhbmt5bG9zaW5nIHNwb25keWxpdGlzIEdXQVMiIC8+CiAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0iYXJ0aWNsZSIgLz4KICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2RhdGFzZXQueGh0bWw/cGVyc2lzdGVudElkPWRvaToxMC43OTEwL0RWTi9OSjdYU08iIC8+CiAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2phdmF4LmZhY2VzLnJlc291cmNlL2ltYWdlcy9kYXRhdmVyc2UtaWNvbi0xMjAwLnBuZy54aHRtbCIgLz4KICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9IkhhcnZhcmQgRGF0YXZlcnNlIiAvPgogICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJTdW1tYXJ5IG9mIGFzc29jaWF0aW9uIHRlc3RzIGZvciBOYXR1cmUgR2VuZXRpY3MgcHVibGljYXRpb24gJnF1b3Q7SWRlbnRpZmljYXRpb24gb2YgbXVsdGlwbGUgcmlzayB2YXJpYW50cyBmb3IgYW5reWxvc2luZyBzcG9uZHlsaXRpcyB0aHJvdWdoIGhpZ2gtZGVucy4uLiIgLz4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBwcm9wZXJ0eT0iYXJ0aWNsZTphdXRob3IiIGNvbnRlbnQ9IkludGVybmF0aW9uYWwgR2VuZXRpY3Mgb2YgQW5reWxvc2luZyBTcG9uZHlsaXRpcyBDb25zb3J0aXVtIChJR0FTKSIgLz4KICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJhcnRpY2xlOnB1Ymxpc2hlZF90aW1lIiBjb250ZW50PSIyMDE3LTA5LTMwIiAvPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj57IkBjb250ZXh0IjoiaHR0cDovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkRhdGFzZXQiLCJAaWQiOiJodHRwczovL2RvaS5vcmcvMTAuNzkxMC9EVk4vTko3WFNPIiwiaWRlbnRpZmllciI6Imh0dHBzOi8vZG9pLm9yZy8xMC43OTEwL0RWTi9OSjdYU08iLCJuYW1lIjoiU3VtbWFyeSBkYXRhIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgR1dBUyIsImNyZWF0b3IiOlt7Im5hbWUiOiJJbnRlcm5hdGlvbmFsIEdlbmV0aWNzIG9mIEFua3lsb3NpbmcgU3BvbmR5bGl0aXMgQ29uc29ydGl1bSAoSUdBUykifV0sImF1dGhvciI6W3sibmFtZSI6IkludGVybmF0aW9uYWwgR2VuZXRpY3Mgb2YgQW5reWxvc2luZyBTcG9uZHlsaXRpcyBDb25zb3J0aXVtIChJR0FTKSJ9XSwiZGF0ZVB1Ymxpc2hlZCI6IjIwMTctMDktMzAiLCJkYXRlTW9kaWZpZWQiOiIyMDE3LTA5LTMwIiwidmVyc2lvbiI6IjEiLCJkZXNjcmlwdGlvbiI6WyJTdW1tYXJ5IG9mIGFzc29jaWF0aW9uIHRlc3RzIGZvciBOYXR1cmUgR2VuZXRpY3MgcHVibGljYXRpb24gXCJJZGVudGlmaWNhdGlvbiBvZiBtdWx0aXBsZSByaXNrIHZhcmlhbnRzIGZvciBhbmt5bG9zaW5nIHNwb25keWxpdGlzIHRocm91Z2ggaGlnaC1kZW5zaXR5IGdlbm90eXBpbmcgb2YgaW1tdW5lLXJlbGF0ZWQgbG9jaVwiLiJdLCJrZXl3b3JkcyI6WyJNZWRpY2luZSwgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIiwiIEdlbm9tZS1XaWRlIEFzc29jaWF0aW9uIFN0dWRpZXMiLCJBbmt5bG9zaW5nIHNwb25keWxpdGlzIl0sImNpdGF0aW9uIjpbeyJAdHlwZSI6IkNyZWF0aXZlV29yayIsInRleHQiOiIxMC4xMDM4L25nLjI2NjcifV0sImxpY2Vuc2UiOnsiQHR5cGUiOiJEYXRhc2V0IiwidGV4dCI6IkNDMCIsInVybCI6Imh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvIn0sImluY2x1ZGVkSW5EYXRhQ2F0YWxvZyI6eyJAdHlwZSI6IkRhdGFDYXRhbG9nIiwibmFtZSI6IkhhcnZhcmQgRGF0YXZlcnNlIiwidXJsIjoiaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUifSwicHVibGlzaGVyIjp7IkB0eXBlIjoiT3JnYW5pemF0aW9uIiwibmFtZSI6IkhhcnZhcmQgRGF0YXZlcnNlIn0sInByb3ZpZGVyIjp7IkB0eXBlIjoiT3JnYW5pemF0aW9uIiwibmFtZSI6IkhhcnZhcmQgRGF0YXZlcnNlIn0sImRpc3RyaWJ1dGlvbiI6W3siQHR5cGUiOiJEYXRhRG93bmxvYWQiLCJuYW1lIjoiQXNpYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0IiwiZmlsZUZvcm1hdCI6InRleHQvcGxhaW4iLCJjb250ZW50U2l6ZSI6MTE1NzI0MTIsImRlc2NyaXB0aW9uIjoiU3VtbWFyeSBkYXRhIGZvciBBc2lhbiBjb2hvcnQiLCJAaWQiOiJodHRwczovL2RvaS5vcmcvMTAuNzkxMC9EVk4vTko3WFNPL0szTlJNTyIsImlkZW50aWZpZXIiOiJodHRwczovL2RvaS5vcmcvMTAuNzkxMC9EVk4vTko3WFNPL0szTlJNTyIsImNvbnRlbnRVcmwiOiJodHRwczovL2RhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9hcGkvYWNjZXNzL2RhdGFmaWxlLzMwNTU0MjQifSx7IkB0eXBlIjoiRGF0YURvd25sb2FkIiwibmFtZSI6IkV1cm9wZWFuX0FzaWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dCIsImZpbGVGb3JtYXQiOiJ0ZXh0L3BsYWluIiwiY29udGVudFNpemUiOjExMjQ1NDk2LCJkZXNjcmlwdGlvbiI6IlN1bW1hcnkgZGF0YSBmb3IgY29tYmluZWQgY29ob3J0IiwiQGlkIjoiaHR0cHM6Ly9kb2kub3JnLzEwLjc5MTAvRFZOL05KN1hTTy9IQTJTVlIiLCJpZGVudGlmaWVyIjoiaHR0cHM6Ly9kb2kub3JnLzEwLjc5MTAvRFZOL05KN1hTTy9IQTJTVlIiLCJjb250ZW50VXJsIjoiaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2FjY2Vzcy9kYXRhZmlsZS8zMDU1NDI1In0seyJAdHlwZSI6IkRhdGFEb3dubG9hZCIsIm5hbWUiOiJFdXJvcGVhbl9DYXNlX0NvbnRyb2xfUmVzdWx0cy50eHQiLCJmaWxlRm9ybWF0IjoidGV4dC9wbGFpbiIsImNvbnRlbnRTaXplIjoxMzMzNzE4MywiZGVzY3JpcHRpb24iOiJTdW1tYXJ5IGRhdGEgZm9yIEV1cm9wZWFuIGNvaG9ydCIsIkBpZCI6Imh0dHBzOi8vZG9pLm9yZy8xMC43OTEwL0RWTi9OSjdYU08vSU40NUdaIiwiaWRlbnRpZmllciI6Imh0dHBzOi8vZG9pLm9yZy8xMC43OTEwL0RWTi9OSjdYU08vSU40NUdaIiwiY29udGVudFVybCI6Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9hY2Nlc3MvZGF0YWZpbGUvMzA1NTQyNiJ9XX0KCiAgICAgICAgICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIiAvPgogICAgICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiIC8+CiAgICAgICAgICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiAvPjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS90aGVtZS5jc3MueGh0bWw/bG49cHJpbWVmYWNlcy1ib290c3RyYXAiIC8+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pxdWVyeS9qcXVlcnkuanMueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP2xuPXByaW1lZmFjZXMmYW1wO3Y9Ni4yIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvanF1ZXJ5L2pxdWVyeS1wbHVnaW5zLmpzLnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9sbj1wcmltZWZhY2VzJmFtcDt2PTYuMiI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2NvcmUuanMueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP2xuPXByaW1lZmFjZXMmYW1wO3Y9Ni4yIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvY29tcG9uZW50cy5qcy54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/bG49cHJpbWVmYWNlcyZhbXA7dj02LjIiPjwvc2NyaXB0PjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9jb21wb25lbnRzLmNzcy54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/bG49cHJpbWVmYWNlcyZhbXA7dj02LjIiIC8+PGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL3dhdGVybWFyay93YXRlcm1hcmsuY3NzLnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9sbj1wcmltZWZhY2VzJmFtcDt2PTYuMiIgLz48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2Uvd2F0ZXJtYXJrL3dhdGVybWFyay5qcy54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/bG49cHJpbWVmYWNlcyZhbXA7dj02LjIiPjwvc2NyaXB0PjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9maWxldXBsb2FkL2ZpbGV1cGxvYWQuY3NzLnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9sbj1wcmltZWZhY2VzJmFtcDt2PTYuMiIgLz48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvZmlsZXVwbG9hZC9maWxldXBsb2FkLmpzLnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9sbj1wcmltZWZhY2VzJmFtcDt2PTYuMiI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmlmKHdpbmRvdy5QcmltZUZhY2VzKXtQcmltZUZhY2VzLnNldHRpbmdzLmxvY2FsZT0nZW4nO308L3NjcmlwdD4KICAgICAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2Zhdi9hcHBsZS10b3VjaC1pY29uLnBuZy54aHRtbCIgLz4KICAgICAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgc2l6ZXM9IjMyeDMyIiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2Zhdi9mYXZpY29uLTMyeDMyLnBuZy54aHRtbCIgLz4KICAgICAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgc2l6ZXM9IjE2eDE2IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2Zhdi9mYXZpY29uLTE2eDE2LnBuZy54aHRtbCIgLz4KICAgICAgICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2Zhdi9zaXRlLndlYm1hbmlmZXN0LnhodG1sIiAvPgogICAgICAgIDxsaW5rIHJlbD0ibWFzay1pY29uIiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2Zhdi9zYWZhcmktcGlubmVkLXRhYi5zdmcueGh0bWwiIGNvbG9yPSIjZGE1MzJjIiAvPgogICAgICAgIDxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjZGE1MzJjIiAvPgogICAgICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIiAvPgogICAgICAgIDxsaW5rIHR5cGU9ImltYWdlL3BuZyIgcmVsPSJpbWFnZV9zcmMiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9pbWFnZXMvZGF0YXZlcnNlcHJvamVjdC5wbmcueGh0bWwiIC8+CiAgICAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL2JzL2Nzcy9ib290c3RyYXAubWluLmNzcy54aHRtbD92ZXJzaW9uPTQuMTUiIC8+CiAgICAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL2JzL2Nzcy9ib290c3RyYXAtdGhlbWUubWluLmNzcy54aHRtbD92ZXJzaW9uPTQuMTUiIC8+CiAgICAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL2Nzcy9pZS1jb21wYXQuY3NzLnhodG1sP3ZlcnNpb249NC4xNSIgLz4KICAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvY3NzL293bC5jYXJvdXNlbC5jc3MueGh0bWw/dmVyc2lvbj00LjE1IiAvPgogICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9jc3MvZm9udGN1c3RvbS5jc3MueGh0bWw/dmVyc2lvbj00LjE1IiAvPgogICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9jc3Mvc29jaWNvbi5jc3MueGh0bWw/dmVyc2lvbj00LjE1IiAvPgogICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9jc3Mvc3RydWN0dXJlLmNzcy54aHRtbD92ZXJzaW9uPTQuMTUiIC8+CiAgICAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICAgICAvLyBCcmVhayBvdXQgb2YgaWZyYW1lCiAgICAgICAgICAgICAgICBpZiAod2luZG93ICE9PSB0b3ApIHRvcC5sb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjsKICAgICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgIC8qIEN1c3RvbSBDU1MgKi8KICAgICAgICAgICAgICAgICNuYXZiYXJGaXhlZCBkaXYubmF2YmFyLWhlYWRlciBpbWcubmF2YmFyLWJyYW5kLmN1c3RvbS1sb2dvIHtoZWlnaHQ6NTBweCAhaW1wb3J0YW50O30KI2RhdGF2ZXJzZURlc2Mgc3BhbiA+IHNwYW4gPiBzcGFuID4gaDMge2ZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDt9CgpuYXYubmF2YmFyLm5hdmJhci1kZWZhdWx0IHtiYWNrZ3JvdW5kOiAjZWNlY2VjICFpbXBvcnRhbnQ7fQovKiAjZm9vdGVyIHtiYWNrZ3JvdW5kOiAjZWNlY2VjICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOjEuMjVlbTt9ICovCgogICAgICAgICAgICA8L3N0eWxlPjwvaGVhZD48Ym9keT4KCTxhIGhyZWY9IiNjb250ZW50IiBjbGFzcz0ic3Itb25seSI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2E+CiAgICAKICAgIDxkaXYgaWQ9ImRhdGF2ZXJzZS1oZWFkZXItYmxvY2siPjxuYXYgcm9sZT0ibmF2aWdhdGlvbiIgaWQ9Im5hdmJhckZpeGVkIiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IG5hdmJhci1maXhlZC10b3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2YmFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJuYXZiYXItdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjdG9wTmF2QmFyIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNyLW9ubHkiPlRvZ2dsZSBuYXZpZ2F0aW9uPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyI+PGltZyBzcmM9Ii9sb2dvcy9uYXZiYXIvbG9nby5wbmc7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyIiBjbGFzcz0ibmF2YmFyLWJyYW5kIGN1c3RvbS1sb2dvIiAvPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlIiBpZD0idG9wTmF2QmFyIj4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2IG5hdmJhci1yaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj5TZWFyY2ggPGIgY2xhc3M9ImNhcmV0Ij48L2I+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IiBzdHlsZT0icGFkZGluZzoxMnB4O21pbi13aWR0aDozNTBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPSJmb3JtLWlubGluZSIgcm9sZT0ic2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzci1vbmx5IiBmb3I9Im5hdmJhcnNlYXJjaCI+U2VhcmNoPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJuYXZiYXJzZWFyY2giIHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHNpemU9IjI4IiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iU2VhcmNoIGFsbCBkYXRhdmVyc2VzLi4uIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImlucHV0LWdyb3VwLWJ0biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbiA9ICcvZGF0YXZlcnNlL2hhcnZhcmQ/cT0nICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdmJhcnNlYXJjaCcpLnZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNlYXJjaCI+PC9zcGFuPiBGaW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPkFib3V0PC9hPjwvbGk+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2d1aWRlcy5kYXRhdmVyc2Uub3JnL2VuLzQuMTUvdXNlciIgdGFyZ2V0PSJfYmxhbmsiPlVzZXIgR3VpZGU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Cjxmb3JtIGlkPSJqX2lkdDY0IiBuYW1lPSJqX2lkdDY0IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPIiBjbGFzcz0ibmF2YmFyLWZvcm0gbmF2YmFyLWxlZnQgbmF2YmFyLWZvcm0tbGluayI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImpfaWR0NjQiIHZhbHVlPSJqX2lkdDY0IiAvPgo8YSBpZD0ial9pZHQ2NDpqX2lkdDY1IiBocmVmPSIjIiBjbGFzcz0idWktY29tbWFuZGxpbmsgdWktd2lkZ2V0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2pfaWR0NjQ6al9pZHQ2NSZxdW90Oyx1OiZxdW90O2NvbnRhY3REaWFsb2cmcXVvdDssb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3Mpe1BGKCdjb250YWN0Rm9ybScpLnNob3coKTt9fSk7cmV0dXJuIGZhbHNlOyI+U3VwcG9ydDwvYT48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJqYXZheC5mYWNlcy5WaWV3U3RhdGUiIGlkPSJqX2lkMTpqYXZheC5mYWNlcy5WaWV3U3RhdGU6MCIgdmFsdWU9Ii0zNDA3NzI4MjUwMTUzMDEzNDgxOi0yMTY4ODg2MzQ3NTYyMzM4MTU1IiBhdXRvY29tcGxldGU9Im9mZiIgLz4KPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhdmVyc2V1c2VyLnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9lZGl0TW9kZT1DUkVBVEUmYW1wO3JlZGlyZWN0UGFnZT0lMkZkYXRhc2V0LnhodG1sJTNGcGVyc2lzdGVudElkJTNEZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ24gVXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9sb2dpbnBhZ2UueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP3JlZGlyZWN0UGFnZT0lMkZkYXRhc2V0LnhodG1sJTNGcGVyc2lzdGVudElkJTNEZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZyBJbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj48L25hdj4KICAgICAgICAKICAgICAgICA8bm9zY3JpcHQ+CiAgICAgICAgICAgIDxkaXYgaWQ9Im5vc2NyaXB0LWFsZXJ0IiBjbGFzcz0iYmctZGFuZ2VyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGNvbnRhaW5lciB0ZXh0LWRhbmdlciBuby1tYXJnaW4tYm90dG9tIj5QbGVhc2UgZW5hYmxlIEphdmFTY3JpcHQgaW4geW91ciBicm93c2VyLiBJdCBpcyByZXF1aXJlZCB0byB1c2UgbW9zdCBvZiB0aGUgZmVhdHVyZXMgb2YgRGF0YXZlcnNlLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvbm9zY3JpcHQ+Cjxmb3JtIGlkPSJqX2lkdDExOCIgbmFtZT0ial9pZHQxMTgiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvZGF0YXNldC54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08iIGNsYXNzPSJmb3JtLWlubGluZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImpfaWR0MTE4IiB2YWx1ZT0ial9pZHQxMTgiIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImphdmF4LmZhY2VzLlZpZXdTdGF0ZSIgaWQ9ImpfaWQxOmphdmF4LmZhY2VzLlZpZXdTdGF0ZTowIiB2YWx1ZT0iLTM0MDc3MjgyNTAxNTMwMTM0ODE6LTIxNjg4ODYzNDc1NjIzMzgxNTUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgo8L2Zvcm0+PGRpdiBpZD0iYnJlYWRjcnVtYk5hdkJsb2NrIiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJCbG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iYnJlYWRjcnVtYkxuazAiIGhyZWY9Ii9kYXRhdmVyc2UvaGFydmFyZCI+SGFydmFyZCBEYXRhdmVyc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PjxzcGFuIGNsYXNzPSJicmVhZGNydW1iQ2Fycm90Ij4gJmd0OyA8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJicmVhZGNydW1iQmxvY2siPjxzcGFuIGNsYXNzPSJicmVhZGNydW1iQWN0aXZlIj5TdW1tYXJ5IGRhdGEgYW5reWxvc2luZyBzcG9uZHlsaXRpcyBHV0FTPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PGRpdiBpZD0ibWVzc2FnZVBhbmVsIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIG1lc3NhZ2VQYW5lbCI+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29udGVudCI+Cjxmb3JtIGlkPSJkYXRhc2V0Rm9ybSIgbmFtZT0iZGF0YXNldEZvcm0iIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvZGF0YXNldC54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08iIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGFzZXRGb3JtIiB2YWx1ZT0iZGF0YXNldEZvcm0iIC8+CjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRvcERhdGFzZXRCbG9ja0ZyYWdtZW50Ij48ZGl2IGlkPSJ0b3BEYXRhc2V0QmxvY2siPjxkaXYgaWQ9ImFjdGlvbkJ1dHRvbkJsb2NrIiBjbGFzcz0iYnV0dG9uLWJsb2NrIGNsZWFyZml4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCBwdWxsLXJpZ2h0IiByb2xlPSJncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAgcHVsbC1yaWdodCIgaWQ9ImRhdGFzZXRCdXR0b25CYXIiIHJvbGU9Imdyb3VwIj48YSBpZD0iZGF0YXNldEZvcm06al9pZHQyODkiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgdGV4dC1idXR0b24gYnRuLWNvbnRhY3QgYm9vdHN0cmFwLWJ1dHRvbi10b29sdGlwIiBhcmlhLWxhYmVsPSJFbWFpbCBEYXRhc2V0IENvbnRhY3QiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQyODkmcXVvdDssdTomcXVvdDtjb250YWN0RGlhbG9nJnF1b3Q7LG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzKXtQRignY29udGFjdEZvcm0nKS5zaG93KCk7fSxmaTomcXVvdDtkYXRhc2V0Rm9ybTp0b3BEYXRhc2V0QmxvY2tGcmFnbWVudCZxdW90O30pO3JldHVybiBmYWxzZTsiIHRpdGxlPSJFbWFpbCBEYXRhc2V0IENvbnRhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1lbnZlbG9wZSI+PC9zcGFuPiBDb250YWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjxhIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDI5MSIgaHJlZj0iIyIgY2xhc3M9InVpLWNvbW1hbmRsaW5rIHVpLXdpZGdldCB0ZXh0LWJ1dHRvbiBidG4tc2hhcmUgYm9vdHN0cmFwLWJ1dHRvbi10b29sdGlwIiBhcmlhLWxhYmVsPSJTaGFyZSBEYXRhc2V0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MjkxJnF1b3Q7LG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzKXtQRignc2hhcmVEaWFsb2cnKS5zaG93KCk7c2hhcnJyZSgpOzt9LGZpOiZxdW90O2RhdGFzZXRGb3JtOnRvcERhdGFzZXRCbG9ja0ZyYWdtZW50JnF1b3Q7fSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IlNoYXJlIERhdGFzZXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1zaGFyZSI+PC9zcGFuPiBTaGFyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnNoYXJlRGlhbG9nIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnNoYXJlRGlhbG9nX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5TaGFyZSBEYXRhc2V0PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPlNoYXJlIHRoaXMgZGF0YXNldCBvbiB5b3VyIGZhdm9yaXRlIHNvY2lhbCBtZWRpYSBuZXR3b3Jrcy48L3A+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNoYXJycmUtd2lkZ2V0IiBkYXRhLXVybD0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvZGF0YXNldC54aHRtbD9wZXJzaXN0ZW50SWQ9ZG9pOjEwLjc5MTAvRFZOL05KN1hTTyIgZGF0YS10ZXh0PSJWaWV3IHRoaXMgZGF0YXNldC4iPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdzaGFyZURpYWxvZycpLmhpZGUoKSIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNoYXJlRGlhbG9nX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsInNoYXJlRGlhbG9nIix7aWQ6ImRhdGFzZXRGb3JtOnNoYXJlRGlhbG9nIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0ibWV0cmljcy1ibG9jayIgY2xhc3M9ImNvbC14cy0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJtZXRyaWNzLWxhYmVsIiBjbGFzcz0iY29sLXhzLTQgc21hbGwgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1zdGF0cyI+PC9zcGFuPiBNZXRyaWNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibWV0cmljcy1jb250ZW50IiBjbGFzcz0iY29sLXhzLTggc21hbGwgdGV4dC1jZW50ZXIiPjxzcGFuIGNsYXNzPSJtZXRyaWNzLWRvd25sb2FkcyI+MTA2IERvd25sb2Fkczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRhdGFzZXRWZXJzaW9uQmxvY2siIGNsYXNzPSJjb250YWluZXItZmx1aWQiPjxkaXYgaWQ9InRpdGxlLWJsb2NrIiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtMSB2Y2VudGVyIHRpdGxlLXByZXZpZXctaWNvbi1ibG9jayI+PHNwYW4gY2xhc3M9Imljb24tZGF0YXNldCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0xMSB2Y2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9InRpdGxlIj4gU3VtbWFyeSBkYXRhIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgR1dBUzwvc3Bhbj48c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtZGVmYXVsdCI+VmVyc2lvbiAxLjA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InJvdyBjaXRhdGlvbi1ibG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTEyICBhbGVydCBhbGVydC1pbmZvIGJnLWNpdGF0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93ICI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNyBjb2wtbWQtOCBjaXRhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNpdGF0aW9uLXNlbGVjdCIgb25jbGljaz0iaWYgKGV2ZW50LnRhcmdldCkgeyBzZWxlY3RUZXh0KGV2ZW50LnRhcmdldCk7IH0gZWxzZXsgc2VsZWN0VGV4dCh0aGlzKTsgfSI+SW50ZXJuYXRpb25hbCBHZW5ldGljcyBvZiBBbmt5bG9zaW5nIFNwb25keWxpdGlzIENvbnNvcnRpdW0gKElHQVMpLCAyMDE3LCAiU3VtbWFyeSBkYXRhIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgR1dBUyIsIDxhIGhyZWY9Imh0dHBzOi8vZG9pLm9yZy8xMC43OTEwL0RWTi9OSjdYU08iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2RvaS5vcmcvMTAuNzkxMC9EVk4vTko3WFNPPC9hPiwgSGFydmFyZCBEYXRhdmVyc2UsIFYxCiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY29sLXhzLTUgY29sLW1kLTQgdGV4dC1yaWdodCBjaXRhdGlvbi1kb3dubG9hZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBkcm9wZG93bi10b2dnbGUgZG93bmxvYWRDaXRhdGlvbiIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxpc3QiPjwvc3Bhbj4gQ2l0ZSBEYXRhc2V0IDxzcGFuIGNsYXNzPSJjYXJldCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IHB1bGwtcmlnaHQgdGV4dC1sZWZ0IiByb2xlPSJtZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pzZi5qcy54aHRtbD9sbj1qYXZheC5mYWNlcyI+PC9zY3JpcHQ+DQo8YSBpZD0iZGF0YXNldEZvcm06ZW5kTm90ZUxpbmsiIGhyZWY9IiMiIG9uY2xpY2s9Im1vamFycmEuanNmY2xqcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0YXNldEZvcm0nKSx7J2RhdGFzZXRGb3JtOmVuZE5vdGVMaW5rJzonZGF0YXNldEZvcm06ZW5kTm90ZUxpbmsnfSwnJyk7cmV0dXJuIGZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kTm90ZSBYTUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGlkPSJkYXRhc2V0Rm9ybTpyaXNMaW5rIiBocmVmPSIjIiBvbmNsaWNrPSJtb2phcnJhLmpzZmNsanMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RhdGFzZXRGb3JtJykseydkYXRhc2V0Rm9ybTpyaXNMaW5rJzonZGF0YXNldEZvcm06cmlzTGluayd9LCcnKTtyZXR1cm4gZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSVMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGlkPSJkYXRhc2V0Rm9ybTpiaWJMaW5rIiBocmVmPSIjIiBvbmNsaWNrPSJtb2phcnJhLmpzZmNsanMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RhdGFzZXRGb3JtJykseydkYXRhc2V0Rm9ybTpiaWJMaW5rJzonZGF0YXNldEZvcm06YmliTGluayd9LCdfYmxhbmsnKTtyZXR1cm4gZmFsc2UiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmliVGVYCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbWFsbCB0ZXh0LW11dGVkIHRleHQtcmlnaHQgY2l0YXRpb24tc3RhbmRhcmRzIj5MZWFybiBhYm91dCA8YSBocmVmPSJodHRwczovL2RhdGF2ZXJzZS5vcmcvYmVzdC1wcmFjdGljZXMvZGF0YS1jaXRhdGlvbiIgdGl0bGU9IkRhdGEgQ2l0YXRpb24gLSBEYXRhdmVyc2Uub3JnIiB0YXJnZXQ9Il9ibGFuayI+RGF0YSBDaXRhdGlvbiBTdGFuZGFyZHM8L2E+LjwvZGl2PjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PjxkaXYgaWQ9ImRhdGFzZXQtc3VtbWFyeS1tZXRhZGF0YSIgY2xhc3M9InJvdyBwYW5lbCBwYW5lbC1kZWZhdWx0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5IG1ldGFkYXRhLXBhbmVsLWJvZHkiPjxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im1ldGFkYXRhX2RzRGVzY3JpcHRpb24iIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iQSBzdW1tYXJ5IGRlc2NyaWJpbmcgdGhlIHB1cnBvc2UsIG5hdHVyZSwgYW5kIHNjb3BlIG9mIHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5TdW1tYXJ5IG9mIGFzc29jaWF0aW9uIHRlc3RzIGZvciBOYXR1cmUgR2VuZXRpY3MgcHVibGljYXRpb24gIklkZW50aWZpY2F0aW9uIG9mIG11bHRpcGxlIHJpc2sgdmFyaWFudHMgZm9yIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgdGhyb3VnaCBoaWdoLWRlbnNpdHkgZ2Vub3R5cGluZyBvZiBpbW11bmUtcmVsYXRlZCBsb2NpIi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im1ldGFkYXRhX3N1YmplY3QiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJEb21haW4tc3BlY2lmaWMgU3ViamVjdCBDYXRlZ29yaWVzIHRoYXQgYXJlIHRvcGljYWxseSByZWxldmFudCB0byB0aGUgRGF0YXNldC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPjxkaXYgY2xhc3M9ImNvbC1zbS05Ij5NZWRpY2luZSwgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzPC9kaXY+PC9kaXY+PGRpdiBpZD0ia2V5d29yZHMiIGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXl3b3JkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IktleSB0ZXJtcyB0aGF0IGRlc2NyaWJlIGltcG9ydGFudCBhc3BlY3RzIG9mIHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPiBHZW5vbWUtV2lkZSBBc3NvY2lhdGlvbiBTdHVkaWVzLCBBbmt5bG9zaW5nIHNwb25keWxpdGlzPC9kaXY+PC9kaXY+PGRpdiBpZD0icHVibGljYXRpb24iIGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGVkIFB1YmxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlB1YmxpY2F0aW9ucyB0aGF0IHVzZSB0aGUgZGF0YSBmcm9tIHRoaXMgRGF0YXNldC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij4xMC4xMDM4L25nLjI2NjcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9ub3Rlc1RleHQiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iQWRkaXRpb25hbCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIERhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48ZGl2IGNsYXNzPSJjb2wtc20tOSI+RXVyb3BlYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0OiBzdW1tYXJ5IGRhdGEgZm9yIEV1cm9wZWFuIGNvaG9ydCBBc2lhbl9DYXNlX0NvbnRyb2xfUmVzdWx0cy50eHQ6IHN1bW1hcnkgZGF0YSBmb3IgQXNpYW4gY29ob3J0IEV1cm9wZWFuX0FzaWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dDogc3VtbWFyeSBkYXRhIGZvciBjb21iaW5lZCBjb2hvcnQ8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJjb250ZW50VGFicyI+PGRpdiBpZD0iZGF0YXNldEZvcm06cGFnZVJlZnJlc2hGcmFnbWVudCI+PGlucHV0IGlkPSJkYXRhc2V0Rm9ybTpkYXRhc2V0TG9ja2VkRm9yQW55UmVhc29uVmFyaWFibGUiIHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0YXNldEZvcm06ZGF0YXNldExvY2tlZEZvckFueVJlYXNvblZhcmlhYmxlIiB2YWx1ZT0iZmFsc2UiIC8+PGlucHV0IGlkPSJkYXRhc2V0Rm9ybTpkYXRhc2V0U3RhdGVDaGFuZ2VkVmFyaWFibGUiIHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0YXNldEZvcm06ZGF0YXNldFN0YXRlQ2hhbmdlZFZhcmlhYmxlIiB2YWx1ZT0iZmFsc2UiIC8+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQ0OTUiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+cmVmcmVzaEFsbExvY2tzQ29tbWFuZCA9IGZ1bmN0aW9uKCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOmpfaWR0NDk1IixmOiJkYXRhc2V0Rm9ybSIscDoiZGF0YXNldEZvcm06al9pZHQ0OTUiLHU6ImRhdGFzZXRGb3JtOnBhZ2VSZWZyZXNoRnJhZ21lbnQiLHBhOmFyZ3VtZW50c1swXSxmaToiZGF0YXNldEZvcm06cGFnZVJlZnJlc2hGcmFnbWVudCJ9KTt9PC9zY3JpcHQ+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQ0OTYiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+cmVmcmVzaEFsbENvbW1hbmQgPSBmdW5jdGlvbigpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTpqX2lkdDQ5NiIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOmpfaWR0NDk2Iix1OiJkYXRhc2V0Rm9ybTp0b3BEYXRhc2V0QmxvY2tGcmFnbWVudCBkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUgbWVzc2FnZVBhbmVsIixwYTphcmd1bWVudHNbMF0sZmk6ImRhdGFzZXRGb3JtOnBhZ2VSZWZyZXNoRnJhZ21lbnQifSk7fTwvc2NyaXB0PjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOnJlZnJlc2hCdXR0b24iIG5hbWU9ImRhdGFzZXRGb3JtOnJlZnJlc2hCdXR0b24iIGNsYXNzPSIiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06cmVmcmVzaEJ1dHRvbiZxdW90OyxwOiZxdW90O2RhdGFzZXRGb3JtOnJlZnJlc2hCdXR0b24mcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybTp0b3BEYXRhc2V0QmxvY2tGcmFnbWVudCBkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUmcXVvdDssZmk6JnF1b3Q7ZGF0YXNldEZvcm06cGFnZVJlZnJlc2hGcmFnbWVudCZxdW90O30pO3JldHVybiBmYWxzZTsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPnVpLWJ1dHRvbjwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpyZWZyZXNoQnV0dG9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsInJlZnJlc2hCdXR0b24iLHtpZDoiZGF0YXNldEZvcm06cmVmcmVzaEJ1dHRvbiJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoSWZTdGlsbExvY2tlZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiByZWZyZXNoSWZTdGlsbExvY2tlZCgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJ2lucHV0W2lkJD0iZGF0YXNldExvY2tlZEZvckFueVJlYXNvblZhcmlhYmxlIl0nKS52YWwoKSA9PT0gJ3RydWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBkYXRhc2V0IGlzIGxvY2tlZCwgaW5zdHJ1Y3QgdGhlIHBhZ2UgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhaXQgYW5kIGNoZWNrIGFnYWluOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdEFuZENoZWNrTG9ja0FnYWluKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBub3QgbG9ja2VkLCBoYXMgaXQganVzdCBiZWVuIHVubG9ja2VkPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJ2lucHV0W2lkJD0iZGF0YXNldFN0YXRlQ2hhbmdlZFZhcmlhYmxlIl0nKS52YWwoKSA9PT0gJ3RydWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIHdoYXRldmVyIHVua25vd24gUHJpbWVGYWNlcyByZWFzb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcGFnZSBuZWVkcyB0byBiZSByZWZyZXNoZWQgdHdpY2UsIGZvciBhbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHVsbCBkb3duIG1lbnVzIHRvIHVwZGF0ZSBwcm9wZXJseToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoQWxsQ29tbWFuZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFlvdSBjYW4ndCBqdXN0IHJ1biAyIHJlZnJlc2hBbGxDb21tYW5kKClzIGluIGEgcm93CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyOyBiZWNhdXNlIHRoZSBjb21tYW5kIGhhcyBhbiAidXBkYXRlPUBhbGwiIG9uIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIEkgZ3Vlc3MgaWYgeW91IHRyeSB0byBleGVjdXRlIHRoZSAybmQgb25lIHJpZ2h0IGFmdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG9uZSwgdGhpcyBmcmFnbWVudCBpcyBzdGlsbCBnb2luZyB0byBiZSBsb2FkaW5nIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGVyZSB3b3VsZCBub3QgeWV0IGJlIGEgY29tbWFuZCB0byBydW4hIChpdCBuZWVkcyB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIHJlbmRlcmVkLCBiZWZvcmUgeW91IGNhbiBleGVjdXRlIGl0LCB0aGF0IGlzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGJ1dHRvbiBkb2Vzbid0IGRvIGFueXRoaW5nLCBidXQgaXQgaGFzIGFuIHVwZGF0ZT0iQGFsbCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXR0cmlidXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdidXR0b25baWQkPSJyZWZyZXNoQnV0dG9uIl0nKS50cmlnZ2VyKCdjbGljaycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3JlZnJlc2hBbGxDb21tYW5kKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTUwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdhaXRBbmRDaGVja0xvY2tBZ2FpbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWZyZXNoIHRoZSBsb2NrIGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFja2luZyBiZWFuOyBpLmUuLCBjaGVjaywgaWYgdGhlIGluZ2VzdCBoYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgY29tcGxldGVkIGluIHRoZSBiYWNrZ3JvdW5kOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCdidXR0b25baWQkPSJyZWZyZXNoQnV0dG9uIl0nKS50cmlnZ2VyKCdjbGljaycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9yZWZyZXNoTG9ja0NvbW1hbmQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hBbGxMb2Nrc0NvbW1hbmQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwMDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXciIGNsYXNzPSJ1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLWhpZGRlbi1jb250YWluZXIgdWktdGFicy10b3AiIGRhdGEtd2lkZ2V0PSJjb250ZW50Ij48dWwgY2xhc3M9InVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiIHJvbGU9InRhYmxpc3QiPjxsaSBjbGFzcz0idWktdGFicy1oZWFkZXIgdWktc3RhdGUtZGVmYXVsdCB1aS10YWJzLXNlbGVjdGVkIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIiByb2xlPSJ0YWIiIGFyaWEtZXhwYW5kZWQ9InRydWUiIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGRhdGEtaW5kZXg9IjAiPjxhIGhyZWY9IiNkYXRhc2V0Rm9ybTp0YWJWaWV3OmRhdGFGaWxlc1RhYiIgdGFiaW5kZXg9Ii0xIj5GaWxlczwvYT48L2xpPjxsaSBjbGFzcz0idWktdGFicy1oZWFkZXIgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItdG9wIiByb2xlPSJ0YWIiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgZGF0YS1pbmRleD0iMSI+PGEgaHJlZj0iI2RhdGFzZXRGb3JtOnRhYlZpZXc6bWV0YWRhdGFNYXBUYWIiIHRhYmluZGV4PSItMSI+TWV0YWRhdGE8L2E+PC9saT48bGkgY2xhc3M9InVpLXRhYnMtaGVhZGVyIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCIgcm9sZT0idGFiIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGRhdGEtaW5kZXg9IjIiPjxhIGhyZWY9IiNkYXRhc2V0Rm9ybTp0YWJWaWV3OnRlcm1zVGFiIiB0YWJpbmRleD0iLTEiPlRlcm1zPC9hPjwvbGk+PGxpIGNsYXNzPSJ1aS10YWJzLWhlYWRlciB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiIHJvbGU9InRhYiIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBkYXRhLWluZGV4PSIzIj48YSBocmVmPSIjZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYiIgdGFiaW5kZXg9Ii0xIj5WZXJzaW9uczwvYT48L2xpPjwvdWw+PGRpdiBjbGFzcz0idWktdGFicy1wYW5lbHMiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZGF0YUZpbGVzVGFiIiBjbGFzcz0idWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIiByb2xlPSJ0YWJwYW5lbCIgYXJpYS1oaWRkZW49ImZhbHNlIiBkYXRhLWluZGV4PSIwIj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0ODYxIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnJlZnJlc2hQYWdpbmF0b3IgPSBmdW5jdGlvbigpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0ODYxIixmOiJkYXRhc2V0Rm9ybSIscDoiZGF0YXNldEZvcm06dGFiVmlldzpqX2lkdDg2MSIsdToiZGF0YXNldEZvcm0iLHBhOmFyZ3VtZW50c1swXX0pO308L3NjcmlwdD48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0ODY2IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnJlYmluZENvbW1hbmQgPSBmdW5jdGlvbigpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0ODY2IixmOiJkYXRhc2V0Rm9ybSIscDoiZGF0YXNldEZvcm06dGFiVmlldzpqX2lkdDg2NiIsdToiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7amF2YXNjcmlwdDpiaW5kX2JzdWlfY29tcG9uZW50cygpOzt9LHBhOmFyZ3VtZW50c1swXX0pO308L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiIGNsYXNzPSJ1aS1kYXRhdGFibGUgdWktd2lkZ2V0IiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjFweDsiPjxkaXYgY2xhc3M9InVpLWRhdGF0YWJsZS1oZWFkZXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItdG9wIj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6ZmlsZXNIZWFkZXJCbG9jayIgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNSI+PGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNlYXJjaEZpbGVzIiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6c2VhcmNoRmlsZXMiIHR5cGU9InRleHQiIG9ua2V5cHJlc3M9ImlmIChldmVudC5rZXlDb2RlID09IDEzKSB7IHN1Ym1pdHNlYXJjaCgpOyByZXR1cm4gZmFsc2U7IH0iIGNsYXNzPSJ1aS1pbnB1dGZpZWxkIHVpLWlucHV0dGV4dCB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIGZvcm0tY29udHJvbCIgLz48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6c2VhcmNoRmlsZXNfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJJbnB1dFRleHQiLCJpbnB1dFNlYXJjaFRlcm0iLHtpZDoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNlYXJjaEZpbGVzIn0pOzwvc2NyaXB0PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDg3NV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJXYXRlcm1hcmsiLCJ3aWRnZXRfZGF0YXNldEZvcm1fdGFiVmlld19maWxlc1RhYmxlX2pfaWR0ODc1Iix7aWQ6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDg3NSIsdmFsdWU6IlNlYXJjaCB0aGlzIGRhdGFzZXQuLi4iLHRhcmdldDoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNlYXJjaEZpbGVzIn0pO30pOzwvc2NyaXB0PjxpbnB1dCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNob3dBY2Nlc3NQb3B1cCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6c2hvd0FjY2Vzc1BvcHVwIiB2YWx1ZT0iZmFsc2UiIC8+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOmpfaWR0ODc2IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnN1Ym1pdHNlYXJjaCA9IGZ1bmN0aW9uKCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDg3NiIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDg3NiBAd2lkZ2V0VmFyKGlucHV0U2VhcmNoVGVybSkiLHU6ImRhdGFzZXRGb3JtIixwczp0cnVlLHBhOmFyZ3VtZW50c1swXX0pO308L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbnB1dC1ncm91cC1idG4iPjxhIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6al9pZHQ4NzgiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDg3OCZxdW90OyxwOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDg3OCBAd2lkZ2V0VmFyKGlucHV0U2VhcmNoVGVybSkmcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybSZxdW90Oyxwczp0cnVlfSk7cmV0dXJuIGZhbHNlOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2VhcmNoIj48L3NwYW4+IEZpbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNyB0ZXh0LXJpZ2h0Ij48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6ZmlsZXNCdXR0b25zIiBjbGFzcz0idWktb3V0cHV0cGFuZWwgdWktd2lkZ2V0Ij48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6dXBsb2FkQ29tcHV0ZUJsb2NrIiBjbGFzcz0iYnV0dG9uLWJsb2NrIHB1bGwtcmlnaHQgbm8tbWFyZ2luLXRvcCI+PC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEwcHg7IiBjbGFzcz0icm93Ij48ZGl2IGNsYXNzPSJjb2wteHMtOSB0ZXh0LWxlZnQiPjxkaXYgc3R5bGU9ImZvbnQtd2VpZ2h0Om5vcm1hbDsiIGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj5GaWx0ZXIgYnk8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tcmlnaHQ6MjBweDsiIGNsYXNzPSJidG4tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tbGluayBkcm9wZG93bi10b2dnbGUiIHN0eWxlPSJwYWRkaW5nOjA7IiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgVHlwZTogPHNwYW4gY2xhc3M9IiI+QWxsPC9zcGFuPiA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZGF0YXNldC54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08mYW1wO3ZlcnNpb249JmFtcDtxPSZhbXA7ZmlsZUFjY2Vzcz0mYW1wO2ZpbGVUYWc9JmFtcDtmaWxlU29ydEZpZWxkPSZhbXA7ZmlsZVNvcnRPcmRlcj0iPjxzcGFuIGNsYXNzPSJoaWdobGlnaHRCb2xkIj5BbGw8L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ic2VwYXJhdG9yIiBjbGFzcz0iZGl2aWRlciI+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVUeXBlR3JvdXBGYWNldD0lMjJUZXh0JTIyJmFtcDtmaWxlQWNjZXNzPSZhbXA7ZmlsZVRhZz0mYW1wO2ZpbGVTb3J0RmllbGQ9JmFtcDtmaWxlU29ydE9yZGVyPSI+PHNwYW4gY2xhc3M9IiI+VGV4dCAoMyk8L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjIwcHg7IiBjbGFzcz0iYnRuLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWxpbmsgZHJvcGRvd24tdG9nZ2xlIiBzdHlsZT0icGFkZGluZzowOyIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3M6IDxzcGFuIGNsYXNzPSIiPkFsbDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVUeXBlR3JvdXBGYWNldD0mYW1wO2ZpbGVUYWc9JmFtcDtmaWxlU29ydEZpZWxkPSZhbXA7ZmlsZVNvcnRPcmRlcj0iPjxzcGFuIGNsYXNzPSJoaWdobGlnaHRCb2xkIj5BbGw8L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT0ic2VwYXJhdG9yIiBjbGFzcz0iZGl2aWRlciI+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVUeXBlR3JvdXBGYWNldD0mYW1wO2ZpbGVBY2Nlc3M9JTIyUHVibGljJTIyJmFtcDtmaWxlVGFnPSZhbXA7ZmlsZVNvcnRGaWVsZD0mYW1wO2ZpbGVTb3J0T3JkZXI9Ij48c3BhbiBjbGFzcz0iIj5QdWJsaWMgKDMpPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtMyB0ZXh0LXJpZ2h0ICI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNvcnQiPjwvc3Bhbj4gU29ydCA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSBwdWxsLXJpZ2h0IHRleHQtbGVmdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVUeXBlR3JvdXBGYWNldD0mYW1wO2ZpbGVBY2Nlc3M9Ij48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Qm9sZCI+TmFtZSAoQS1aKTwvc3Bhbj48L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZGF0YXNldC54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08mYW1wO3ZlcnNpb249JmFtcDtxPSZhbXA7ZmlsZVR5cGVHcm91cEZhY2V0PSZhbXA7ZmlsZUFjY2Vzcz0mYW1wO2ZpbGVTb3J0RmllbGQ9bmFtZSZhbXA7ZmlsZVNvcnRPcmRlcj1kZXNjIj48c3BhbiBjbGFzcz0iIj5OYW1lIChaLUEpPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlQWNjZXNzPSZhbXA7ZmlsZVNvcnRGaWVsZD1kYXRlIj48c3BhbiBjbGFzcz0iIj5OZXdlc3Q8L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVUeXBlR3JvdXBGYWNldD0mYW1wO2ZpbGVBY2Nlc3M9JmFtcDtmaWxlU29ydEZpZWxkPWRhdGUmYW1wO2ZpbGVTb3J0T3JkZXI9ZGVzYyI+PHNwYW4gY2xhc3M9IiI+T2xkZXN0PC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlQWNjZXNzPSZhbXA7ZmlsZVNvcnRGaWVsZD1zaXplIj48c3BhbiBjbGFzcz0iIj5TaXplPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlQWNjZXNzPSZhbXA7ZmlsZVNvcnRGaWVsZD10eXBlIj48c3BhbiBjbGFzcz0iIj5UeXBlPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idWktZGF0YXRhYmxlLXRhYmxld3JhcHBlciI+PHRhYmxlIHJvbGU9ImdyaWQiPjx0aGVhZCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlX2hlYWQiPjx0ciByb2xlPSJyb3ciPjx0aCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOmpfaWR0MTA0NiIgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgdWktc2VsZWN0aW9uLWNvbHVtbiB0ZXh0LWNlbnRlciIgcm9sZT0iY29sdW1uaGVhZGVyIiBzY29wZT0iY29sIiBzdHlsZT0id2lkdGg6MjBweCAhaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9InVpLWNvbHVtbi10aXRsZSI+PC9zcGFuPjxkaXYgY2xhc3M9InVpLWNoa2JveCB1aS1jaGtib3gtYWxsIHVpLXdpZGdldCI+PGRpdiBjbGFzcz0idWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZV9jaGVja2JveCIgYXJpYS1sYWJlbD0iU2VsZWN0IEFsbCIgYXJpYS1jaGVja2VkPSJmYWxzZSIgLz48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1jaGtib3gtYm94IHVpLXdpZGdldCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRlZmF1bHQiPjxzcGFuIGNsYXNzPSJ1aS1jaGtib3gtaWNvbiB1aS1pY29uIHVpLWljb24tYmxhbmsgdWktYyI+PC9zcGFuPjwvZGl2PjwvZGl2PjwvdGg+PHRoIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6al9pZHQxMDQ3IiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCBjb2wtZmlsZS1tZXRhZGF0YSIgcm9sZT0iY29sdW1uaGVhZGVyIiBhcmlhLWxhYmVsPSJ7MH0gdG8gezF9IG9mIHsyfSB7MiwgY2hvaWNlLCAwI0ZpbGVzfDEjRmlsZXwyI0ZpbGVzfSIgc2NvcGU9ImNvbCI+PHNwYW4gY2xhc3M9InVpLWNvbHVtbi10aXRsZSI+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOmZpbGVzSGVhZGVyQ291bnQiPjxzcGFuIGNsYXNzPSJoaWdobGlnaHRCb2xkIj4xIHRvIDMgb2YgMyBGaWxlczwvc3Bhbj48L2Rpdj48L3NwYW4+PC90aD48dGggaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDEwODIiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IGNvbC1maWxlLWFjdGlvbiB0ZXh0LXJpZ2h0ICIgcm9sZT0iY29sdW1uaGVhZGVyIiBzY29wZT0iY29sIj48c3BhbiBjbGFzcz0idWktY29sdW1uLXRpdGxlIj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6ZG93bmxvYWRCdXR0b25CbG9ja05vcm1hbCIgY2xhc3M9ImJ0bi1ncm91cCI+PGEgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDExMDQiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgYnRuIGJ0bi1kZWZhdWx0IGJ0bi1kb3dubG9hZCIgb25jbGljaz0iUHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6al9pZHQxMTA0JnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDt9KTtyZXR1cm4gZmFsc2U7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZG93bmxvYWQtYWx0Ij48L3NwYW4+IERvd25sb2FkCiAgICAgICAgICAgICAgICAgICAgPC9hPjwvZGl2Pjwvc3Bhbj48L3RoPjwvdHI+PC90aGVhZD48dGJvZHkgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZV9kYXRhIiBjbGFzcz0idWktZGF0YXRhYmxlLWRhdGEgdWktd2lkZ2V0LWNvbnRlbnQiPjx0ciBkYXRhLXJpPSIwIiBkYXRhLXJrPSJzMzovL2R2bi1jbG91ZDoxNWVkNTdhNjUyZS02NzI4NGEzNzJjMjkiIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCB1aS1kYXRhdGFibGUtZXZlbiB1aS1kYXRhdGFibGUtc2VsZWN0YWJsZSIgcm9sZT0icm93IiBhcmlhLXNlbGVjdGVkPSJmYWxzZSI+PHRkIHJvbGU9ImdyaWRjZWxsIiBzdHlsZT0id2lkdGg6MjBweCAhaW1wb3J0YW50OyIgY2xhc3M9InVpLXNlbGVjdGlvbi1jb2x1bW4gdGV4dC1jZW50ZXIiPjxkaXYgY2xhc3M9InVpLWNoa2JveCB1aS13aWRnZXQiPjxkaXYgY2xhc3M9InVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGVfY2hlY2tib3giIGFyaWEtY2hlY2tlZD0iZmFsc2UiIC8+PC9kaXY+PGRpdiBjbGFzcz0idWktY2hrYm94LWJveCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1kZWZhdWx0Ij48c3BhbiBjbGFzcz0idWktY2hrYm94LWljb24gdWktaWNvbiB1aS1pY29uLWJsYW5rIHVpLWMiPjwvc3Bhbj48L2Rpdj48L2Rpdj48L3RkPjx0ZCByb2xlPSJncmlkY2VsbCIgY2xhc3M9ImNvbC1maWxlLW1ldGFkYXRhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWZpbGUtZmxleGJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtZmlsZS10aHVtYiBwdWxsLWxlZnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRodW1ibmFpbC1ibG9jayB0ZXh0LWNlbnRlciI+PHNwYW4gY2xhc3M9Imljb24tZG9jdW1lbnQgZmlsZS10aHVtYm5haWwtaWNvbiB0ZXh0LW11dGVkIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW1ldGFkYXRhLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9maWxlLnhodG1sP3BlcnNpc3RlbnRJZD1kb2k6MTAuNzkxMC9EVk4vTko3WFNPL0szTlJNTyZhbXA7dmVyc2lvbj0xLjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNpYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1tdXRlZCBzbWFsbCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmZpbGVUeXBlT3V0cHV0UmVndWxhciI+UGxhaW4gVGV4dDwvc3Bhbj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjA6ZmlsZVNpemUiPiAtIDExLjAgTUI8L3NwYW4+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmZpbGVDcmVhdGVQdWJsaXNoRGF0ZSI+IC0gU2VwIDMwLCAyMDE3PC9zcGFuPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MDpmaWxlRG93bmxvYWRDb3VudCI+IC0gMzMgRG93bmxvYWRzPC9zcGFuPjxkaXYgc3R5bGU9IndvcmQtYnJlYWs6IGJyZWFrLWFsbDsiIGNsYXNzPSJjaGVja3N1bS1ibG9jayI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmZpbGUtY2hlY2tzdW0iPk1ENTogYmNjMDZhZWJmOTZjOTU0MDk5NTE5MmM4OWM5MWZiMjM8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iZmlsZURlc2NyaXB0aW9uIHNtYWxsIj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjA6ZmlsZURlc2NOb25FbXB0eSI+U3VtbWFyeSBkYXRhIGZvciBBc2lhbiBjb2hvcnQ8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+PC90ZD48dGQgcm9sZT0iZ3JpZGNlbGwiIGNsYXNzPSJjb2wtZmlsZS1hY3Rpb24gdGV4dC1yaWdodCAiPjxkaXYgY2xhc3M9ImJ0bi1ncm91cCI+PGEgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTE3MSIgaHJlZj0iIyIgY2xhc3M9InVpLWNvbW1hbmRsaW5rIHVpLXdpZGdldCBidG4gYnRuLWRlZmF1bHQgYnRuLWRvd25sb2FkIiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTE3MSZxdW90OyxwOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTE3MSZxdW90O30pO3JldHVybiBmYWxzZTsiPgogICAgICAgIAogICAgICAgIAogICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWRvd25sb2FkLWFsdCI+PC9zcGFuPiBEb3dubG9hZAogICAgPC9hPjwvZGl2PjwvdGQ+PC90cj48dHIgZGF0YS1yaT0iMSIgZGF0YS1yaz0iczM6Ly9kdm4tY2xvdWQ6MTVlZDU3YTg3YjktOTlhYmMxNjJiNDU4IiBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQgdWktZGF0YXRhYmxlLW9kZCB1aS1kYXRhdGFibGUtc2VsZWN0YWJsZSIgcm9sZT0icm93IiBhcmlhLXNlbGVjdGVkPSJmYWxzZSI+PHRkIHJvbGU9ImdyaWRjZWxsIiBzdHlsZT0id2lkdGg6MjBweCAhaW1wb3J0YW50OyIgY2xhc3M9InVpLXNlbGVjdGlvbi1jb2x1bW4gdGV4dC1jZW50ZXIiPjxkaXYgY2xhc3M9InVpLWNoa2JveCB1aS13aWRnZXQiPjxkaXYgY2xhc3M9InVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGVfY2hlY2tib3giIGFyaWEtY2hlY2tlZD0iZmFsc2UiIC8+PC9kaXY+PGRpdiBjbGFzcz0idWktY2hrYm94LWJveCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1kZWZhdWx0Ij48c3BhbiBjbGFzcz0idWktY2hrYm94LWljb24gdWktaWNvbiB1aS1pY29uLWJsYW5rIHVpLWMiPjwvc3Bhbj48L2Rpdj48L2Rpdj48L3RkPjx0ZCByb2xlPSJncmlkY2VsbCIgY2xhc3M9ImNvbC1maWxlLW1ldGFkYXRhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWZpbGUtZmxleGJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtZmlsZS10aHVtYiBwdWxsLWxlZnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRodW1ibmFpbC1ibG9jayB0ZXh0LWNlbnRlciI+PHNwYW4gY2xhc3M9Imljb24tZG9jdW1lbnQgZmlsZS10aHVtYm5haWwtaWNvbiB0ZXh0LW11dGVkIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW1ldGFkYXRhLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9maWxlLnhodG1sP3BlcnNpc3RlbnRJZD1kb2k6MTAuNzkxMC9EVk4vTko3WFNPL0hBMlNWUiZhbXA7dmVyc2lvbj0xLjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRXVyb3BlYW5fQXNpYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1tdXRlZCBzbWFsbCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmZpbGVUeXBlT3V0cHV0UmVndWxhciI+UGxhaW4gVGV4dDwvc3Bhbj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6ZmlsZVNpemUiPiAtIDEwLjcgTUI8L3NwYW4+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmZpbGVDcmVhdGVQdWJsaXNoRGF0ZSI+IC0gU2VwIDMwLCAyMDE3PC9zcGFuPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MTpmaWxlRG93bmxvYWRDb3VudCI+IC0gMjggRG93bmxvYWRzPC9zcGFuPjxkaXYgc3R5bGU9IndvcmQtYnJlYWs6IGJyZWFrLWFsbDsiIGNsYXNzPSJjaGVja3N1bS1ibG9jayI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmZpbGUtY2hlY2tzdW0iPk1ENTogMGFlN2I0NjM5NjI2ZWJhZDZhYjc3ZjU0YmZjZmRkNmQ8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iZmlsZURlc2NyaXB0aW9uIHNtYWxsIj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6ZmlsZURlc2NOb25FbXB0eSI+U3VtbWFyeSBkYXRhIGZvciBjb21iaW5lZCBjb2hvcnQ8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+PC90ZD48dGQgcm9sZT0iZ3JpZGNlbGwiIGNsYXNzPSJjb2wtZmlsZS1hY3Rpb24gdGV4dC1yaWdodCAiPjxkaXYgY2xhc3M9ImJ0bi1ncm91cCI+PGEgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmpfaWR0MTE3MSIgaHJlZj0iIyIgY2xhc3M9InVpLWNvbW1hbmRsaW5rIHVpLXdpZGdldCBidG4gYnRuLWRlZmF1bHQgYnRuLWRvd25sb2FkIiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmpfaWR0MTE3MSZxdW90OyxwOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmpfaWR0MTE3MSZxdW90O30pO3JldHVybiBmYWxzZTsiPgogICAgICAgIAogICAgICAgIAogICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWRvd25sb2FkLWFsdCI+PC9zcGFuPiBEb3dubG9hZAogICAgPC9hPjwvZGl2PjwvdGQ+PC90cj48dHIgZGF0YS1yaT0iMiIgZGF0YS1yaz0iczM6Ly9kdm4tY2xvdWQ6MTVlZDU3YWFiN2UtOTBhMmI2YzExMmViIiBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQgdWktZGF0YXRhYmxlLWV2ZW4gdWktZGF0YXRhYmxlLXNlbGVjdGFibGUiIHJvbGU9InJvdyIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiPjx0ZCByb2xlPSJncmlkY2VsbCIgc3R5bGU9IndpZHRoOjIwcHggIWltcG9ydGFudDsiIGNsYXNzPSJ1aS1zZWxlY3Rpb24tY29sdW1uIHRleHQtY2VudGVyIj48ZGl2IGNsYXNzPSJ1aS1jaGtib3ggdWktd2lkZ2V0Ij48ZGl2IGNsYXNzPSJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlX2NoZWNrYm94IiBhcmlhLWNoZWNrZWQ9ImZhbHNlIiAvPjwvZGl2PjxkaXYgY2xhc3M9InVpLWNoa2JveC1ib3ggdWktd2lkZ2V0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGVmYXVsdCI+PHNwYW4gY2xhc3M9InVpLWNoa2JveC1pY29uIHVpLWljb24gdWktaWNvbi1ibGFuayB1aS1jIj48L3NwYW4+PC9kaXY+PC9kaXY+PC90ZD48dGQgcm9sZT0iZ3JpZGNlbGwiIGNsYXNzPSJjb2wtZmlsZS1tZXRhZGF0YSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1maWxlLWZsZXhib3giPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWZpbGUtdGh1bWIgcHVsbC1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwtYmxvY2sgdGV4dC1jZW50ZXIiPjxzcGFuIGNsYXNzPSJpY29uLWRvY3VtZW50IGZpbGUtdGh1bWJuYWlsLWljb24gdGV4dC1tdXRlZCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1tZXRhZGF0YS1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZmlsZS54aHRtbD9wZXJzaXN0ZW50SWQ9ZG9pOjEwLjc5MTAvRFZOL05KN1hTTy9JTjQ1R1omYW1wO3ZlcnNpb249MS4wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV1cm9wZWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpmaWxlVHlwZU91dHB1dFJlZ3VsYXIiPlBsYWluIFRleHQ8L3NwYW4+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmZpbGVTaXplIj4gLSAxMi43IE1CPC9zcGFuPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpmaWxlQ3JlYXRlUHVibGlzaERhdGUiPiAtIFNlcCAzMCwgMjAxNzwvc3Bhbj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6ZmlsZURvd25sb2FkQ291bnQiPiAtIDQ1IERvd25sb2Fkczwvc3Bhbj48ZGl2IHN0eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1hbGw7IiBjbGFzcz0iY2hlY2tzdW0tYmxvY2siPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpmaWxlLWNoZWNrc3VtIj5NRDU6IDg3NmJiM2I2MDA0NjBmZGJmYWJjMDFlYjA4YzQxNDk3PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImZpbGVEZXNjcmlwdGlvbiBzbWFsbCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmZpbGVEZXNjTm9uRW1wdHkiPlN1bW1hcnkgZGF0YSBmb3IgRXVyb3BlYW4gY29ob3J0PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PjwvdGQ+PHRkIHJvbGU9ImdyaWRjZWxsIiBjbGFzcz0iY29sLWZpbGUtYWN0aW9uIHRleHQtcmlnaHQgIj48ZGl2IGNsYXNzPSJidG4tZ3JvdXAiPjxhIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpqX2lkdDExNzEiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgYnRuIGJ0bi1kZWZhdWx0IGJ0bi1kb3dubG9hZCIgb25jbGljaz0iUHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpqX2lkdDExNzEmcXVvdDsscDomcXVvdDtkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpqX2lkdDExNzEmcXVvdDt9KTtyZXR1cm4gZmFsc2U7Ij4KICAgICAgICAKICAgICAgICAKICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1kb3dubG9hZC1hbHQiPjwvc3Bhbj4gRG93bmxvYWQKICAgIDwvYT48L2Rpdj48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGVfc2VsZWN0aW9uIiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGVfc2VsZWN0aW9uIiBhdXRvY29tcGxldGU9Im9mZiIgdmFsdWU9IiIgLz48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGVfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGF0YVRhYmxlIiwiZmlsZXNUYWJsZSIse2lkOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLHNlbGVjdGlvbk1vZGU6ImNoZWNrYm94Iixncm91cENvbHVtbkluZGV4ZXM6W10sYmVoYXZpb3JzOntyb3dVbnNlbGVjdDpmdW5jdGlvbihleHQsZXZlbnQpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLGU6InJvd1Vuc2VsZWN0IixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLHU6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3Mpe3JlYmluZENvbW1hbmQoKTt9fSxleHQpO30scm93VW5zZWxlY3RDaGVja2JveDpmdW5jdGlvbihleHQsZXZlbnQpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLGU6InJvd1Vuc2VsZWN0Q2hlY2tib3giLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7cmViaW5kQ29tbWFuZCgpO319LGV4dCk7fSxyb3dEYmxzZWxlY3Q6ZnVuY3Rpb24oZXh0LGV2ZW50KSB7UHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixlOiJyb3dEYmxzZWxlY3QiLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7cmViaW5kQ29tbWFuZCgpO319LGV4dCk7fSxwYWdlOmZ1bmN0aW9uKGV4dCxldmVudCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsZToicGFnZSIscDoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIix1OiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzKXtyZWZyZXNoUGFnaW5hdG9yKCkscmViaW5kQ29tbWFuZCgpO319LGV4dCk7fSxyb3dTZWxlY3Q6ZnVuY3Rpb24oZXh0LGV2ZW50KSB7UHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixlOiJyb3dTZWxlY3QiLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7cmViaW5kQ29tbWFuZCgpO319LGV4dCk7fSx0b2dnbGVTZWxlY3Q6ZnVuY3Rpb24oZXh0LGV2ZW50KSB7UHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixlOiJ0b2dnbGVTZWxlY3QiLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7cmViaW5kQ29tbWFuZCgpO319LGV4dCk7fSxyb3dTZWxlY3RDaGVja2JveDpmdW5jdGlvbihleHQsZXZlbnQpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLGU6InJvd1NlbGVjdENoZWNrYm94IixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLHU6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3Mpe3JlYmluZENvbW1hbmQoKTt9fSxleHQpO319fSk7fSk7PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzptZXRhZGF0YU1hcFRhYiIgY2xhc3M9InVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSB1aS1oZWxwZXItaGlkZGVuIiByb2xlPSJ0YWJwYW5lbCIgYXJpYS1oaWRkZW49InRydWUiIGRhdGEtaW5kZXg9IjEiPjxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayB0YWItaGVhZGVyIG1hcmdpbi1ib3R0b20gdGV4dC1yaWdodCI+PGRpdiBjbGFzcz0iYnRuLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tZXhwb3J0IGRyb3Bkb3duLXRvZ2dsZSIgdHlwZT0iYnV0dG9uIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4cG9ydCI+PC9zcGFuPiBFeHBvcnQgTWV0YWRhdGEgPHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiIHJvbGU9Im1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2RhdGFzZXRzL2V4cG9ydDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/ZXhwb3J0ZXI9ZGN0ZXJtcyZhbXA7cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAvRFZOL05KN1hTTyIgdGFyZ2V0PSJfYmxhbmsiPkR1YmxpbiBDb3JlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2RhdGFzZXRzL2V4cG9ydDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/ZXhwb3J0ZXI9ZGRpJmFtcDtwZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMC9EVk4vTko3WFNPIiB0YXJnZXQ9Il9ibGFuayI+RERJPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2RhdGFzZXRzL2V4cG9ydDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/ZXhwb3J0ZXI9RGF0YWNpdGUmYW1wO3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwL0RWTi9OSjdYU08iIHRhcmdldD0iX2JsYW5rIj5EYXRhQ2l0ZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9kYXRhc2V0cy9leHBvcnQ7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP2V4cG9ydGVyPWRhdGF2ZXJzZV9qc29uJmFtcDtwZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMC9EVk4vTko3WFNPIiB0YXJnZXQ9Il9ibGFuayI+SlNPTjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9kYXRhc2V0cy9leHBvcnQ7anNlc3Npb25pZD05NGJlNzAyYmEzNTM4NDFjMmQyYzVlMjliYTEyP2V4cG9ydGVyPU9BSV9PUkUmYW1wO3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwL0RWTi9OSjdYU08iIHRhcmdldD0iX2JsYW5rIj5PQUlfT1JFPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2RhdGFzZXRzL2V4cG9ydDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/ZXhwb3J0ZXI9b2FpX2RhdGFjaXRlJmFtcDtwZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMC9EVk4vTko3WFNPIiB0YXJnZXQ9Il9ibGFuayI+T3BlbkFJUkU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2RhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9hcGkvZGF0YXNldHMvZXhwb3J0O2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMj9leHBvcnRlcj1zY2hlbWEub3JnJmFtcDtwZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMC9EVk4vTko3WFNPIiB0YXJnZXQ9Il9ibGFuayI+U2NoZW1hLm9yZyBKU09OLUxEPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbC1ncm91cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiPgogICAgICAgICAgICAgICAgPGRpdiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjcGFuZWxDb2xsYXBzZTAiIGNsYXNzPSJwYW5lbC1oZWFkaW5nIHRleHQtaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgQ2l0YXRpb24gTWV0YWRhdGEgwqA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLXVwIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBhbmVsQ29sbGFwc2UwIiBjbGFzcz0iY29sbGFwc2UgaW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJvZHkgbWV0YWRhdGEtcGFuZWwtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9wZXJzaXN0ZW50SWQiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YXNldCBQZXJzaXN0ZW50IElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlRoZSB1bmlxdWUgcGVyc2lzdGVudCBpZGVudGlmaWVyIGZvciBhIGRhdGFzZXQsIHdoaWNoIGNhbiBiZSBhIEhhbmRsZSBvciBET0kgaW4gRGF0YXZlcnNlLiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2k6MTAuNzkxMC9EVk4vTko3WFNPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9wdWJsaWNhdGlvbkRhdGUiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gRGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJUaGUgcHVibGljYXRpb24gZGF0ZSBvZiBhIGRhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMTctMDktMzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im1ldGFkYXRhX3RpdGxlIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IkZ1bGwgdGl0bGUgYnkgd2hpY2ggdGhlIERhdGFzZXQgaXMga25vd24uIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48ZGl2IGNsYXNzPSJjb2wtc20tOSI+U3VtbWFyeSBkYXRhIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgR1dBUzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9hdXRob3IiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlRoZSBwZXJzb24ocyksIGNvcnBvcmF0ZSBib2R5KGllcyksIG9yIGFnZW5jeShpZXMpIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgd29yay4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPjxkaXYgY2xhc3M9ImNvbC1zbS05Ij5JbnRlcm5hdGlvbmFsIEdlbmV0aWNzIG9mIEFua3lsb3NpbmcgU3BvbmR5bGl0aXMgQ29uc29ydGl1bSAoSUdBUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9kYXRhc2V0Q29udGFjdCIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250YWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlRoZSBjb250YWN0KHMpIGZvciB0aGlzIERhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGVscC1ibG9jayI+VXNlIGVtYWlsIGJ1dHRvbiBhYm92ZSB0byBjb250YWN0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPkxpLCBaaGl4aXUgKFFVVCkgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWV0YWRhdGFfZHNEZXNjcmlwdGlvbiIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJBIHN1bW1hcnkgZGVzY3JpYmluZyB0aGUgcHVycG9zZSwgbmF0dXJlLCBhbmQgc2NvcGUgb2YgdGhlIERhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48ZGl2IGNsYXNzPSJjb2wtc20tOSI+U3VtbWFyeSBvZiBhc3NvY2lhdGlvbiB0ZXN0cyBmb3IgTmF0dXJlIEdlbmV0aWNzIHB1YmxpY2F0aW9uICJJZGVudGlmaWNhdGlvbiBvZiBtdWx0aXBsZSByaXNrIHZhcmlhbnRzIGZvciBhbmt5bG9zaW5nIHNwb25keWxpdGlzIHRocm91Z2ggaGlnaC1kZW5zaXR5IGdlbm90eXBpbmcgb2YgaW1tdW5lLXJlbGF0ZWQgbG9jaSIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWV0YWRhdGFfc3ViamVjdCIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IkRvbWFpbi1zcGVjaWZpYyBTdWJqZWN0IENhdGVnb3JpZXMgdGhhdCBhcmUgdG9waWNhbGx5IHJlbGV2YW50IHRvIHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGRpdiBjbGFzcz0iY29sLXNtLTkiPk1lZGljaW5lLCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWV0YWRhdGFfa2V5d29yZCIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXl3b3JkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IktleSB0ZXJtcyB0aGF0IGRlc2NyaWJlIGltcG9ydGFudCBhc3BlY3RzIG9mIHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGRpdiBjbGFzcz0iY29sLXNtLTkiPkdlbm9tZS1XaWRlIEFzc29jaWF0aW9uIFN0dWRpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPkFua3lsb3Npbmcgc3BvbmR5bGl0aXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9wdWJsaWNhdGlvbiIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGVkIFB1YmxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlB1YmxpY2F0aW9ucyB0aGF0IHVzZSB0aGUgZGF0YSBmcm9tIHRoaXMgRGF0YXNldC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPjxkaXYgY2xhc3M9ImNvbC1zbS05Ij4xMC4xMDM4L25nLjI2NjcgZG9pOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9ub3Rlc1RleHQiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iQWRkaXRpb25hbCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIERhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48ZGl2IGNsYXNzPSJjb2wtc20tOSI+RXVyb3BlYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0OiBzdW1tYXJ5IGRhdGEgZm9yIEV1cm9wZWFuIGNvaG9ydCBBc2lhbl9DYXNlX0NvbnRyb2xfUmVzdWx0cy50eHQ6IHN1bW1hcnkgZGF0YSBmb3IgQXNpYW4gY29ob3J0IEV1cm9wZWFuX0FzaWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dDogc3VtbWFyeSBkYXRhIGZvciBjb21iaW5lZCBjb2hvcnQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWV0YWRhdGFfZGVwb3NpdG9yIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcG9zaXRvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJUaGUgcGVyc29uIChGYW1pbHkgTmFtZSwgR2l2ZW4gTmFtZSkgb3IgdGhlIG5hbWUgb2YgdGhlIG9yZ2FuaXphdGlvbiB0aGF0IGRlcG9zaXRlZCB0aGlzIERhdGFzZXQgdG8gdGhlIHJlcG9zaXRvcnkuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD48ZGl2IGNsYXNzPSJjb2wtc20tOSI+TGksIFpoaXhpdTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9kYXRlT2ZEZXBvc2l0IiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcG9zaXQgRGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJEYXRlIHRoYXQgdGhlIERhdGFzZXQgd2FzIGRlcG9zaXRlZCBpbnRvIHRoZSByZXBvc2l0b3J5LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+PGRpdiBjbGFzcz0iY29sLXNtLTkiPjIwMTctMDktMzA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dGVybXNUYWIiIGNsYXNzPSJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20gdWktaGVscGVyLWhpZGRlbiIgcm9sZT0idGFicGFuZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIiBkYXRhLWluZGV4PSIyIj4KICAgIDxkaXYgY2xhc3M9InBhbmVsLWdyb3VwIj4KICAgICAgIDxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiPgogICAgICAgICAgIDxkaXYgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI3BhbmVsQ29sbGFwc2VUT1UiIGNsYXNzPSJwYW5lbC1oZWFkaW5nIHRleHQtaW5mbyI+CiAgICAgICAgICAgICAgIFRlcm1zIG9mIFVzZSDCoDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNoZXZyb24tdXAiPjwvc3Bhbj4KICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICA8ZGl2IGlkPSJwYW5lbENvbGxhcHNlVE9VIiBjbGFzcz0iY29sbGFwc2UgaW4iPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dG91RnJhZ21lbnQiPgogICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im1ldGFkYXRhX1Rlcm1zIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYWl2ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlRoZSB3YWl2ZXIgaW5mb3JtcyBkYXRhIGRvd25sb2FkZXJzIGhvdyB0aGV5IGNhbiB1c2UgdGhpcyBkYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPk91ciA8YSBocmVmPSJodHRwczovL2RhdGF2ZXJzZS5vcmcvYmVzdC1wcmFjdGljZXMvZGF0YXZlcnNlLWNvbW11bml0eS1ub3JtcyIgdGl0bGU9IkRhdGF2ZXJzZSBDb21tdW5pdHkgTm9ybXMgLSBEYXRhdmVyc2Uub3JnIiB0YXJnZXQ9Il9ibGFuayI+Q29tbXVuaXR5IE5vcm1zPC9hPiBhcyB3ZWxsIGFzIGdvb2Qgc2NpZW50aWZpYyBwcmFjdGljZXMgZXhwZWN0IHRoYXQgcHJvcGVyIGNyZWRpdCBpcyBnaXZlbiB2aWEgY2l0YXRpb24uIFBsZWFzZSB1c2UgdGhlIGRhdGEgY2l0YXRpb24gYWJvdmUsIGdlbmVyYXRlZCBieSB0aGUgRGF0YXZlcnNlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5DQzAgLSAiUHVibGljIERvbWFpbiBEZWRpY2F0aW9uIiA8aW1nIHNyYz0iL3Jlc291cmNlcy9pbWFnZXMvY2MwLnBuZyIgYWx0PSJDQzAiIGNsYXNzPSJ3YWl2ZXItQ0MwLWlubGluZSIgLz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgPC9kaXY+CiAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbCBwYW5lbC1kZWZhdWx0Ij4KICAgICAgICAgICA8ZGl2IGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNwYW5lbENvbGxhcHNlR3Vlc3Rib29rIiBjbGFzcz0icGFuZWwtaGVhZGluZyB0ZXh0LWluZm8iPgogICAgICAgICAgICAgICBHdWVzdGJvb2sgwqA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLXVwIj48L3NwYW4+CiAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgPGRpdiBpZD0icGFuZWxDb2xsYXBzZUd1ZXN0Ym9vayIgY2xhc3M9ImNvbGxhcHNlIGluIj4KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYm9keSI+CiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9HdWVzdGJvb2siIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Vlc3Rib29rCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlVzZXIgaW5mb3JtYXRpb24gKGkuZS4sIG5hbWUsIGVtYWlsLCBpbnN0aXR1dGlvbiwgYW5kIHBvc2l0aW9uKSB3aWxsIGJlIGNvbGxlY3RlZCB3aGVuIGZpbGVzIGFyZSBkb3dubG9hZGVkLiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk5vIGd1ZXN0Ym9vayBpcyBhc3NpZ25lZCB0byB0aGlzIGRhdGFzZXQsIHlvdSB3aWxsIG5vdCBiZSBwcm9tcHRlZCB0byBwcm92aWRlIGFueSBpbmZvcm1hdGlvbiBvbiBmaWxlIGRvd25sb2FkLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICA8L2Rpdj48L2Rpdj4gCiAgICA8L2Rpdj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OnByZXZpZXdHdWVzdGJvb2siIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgbGFyZ2VQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OnByZXZpZXdHdWVzdGJvb2tfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlByZXZpZXcgR3Vlc3Rib29rPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIj4KICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPgogICAgICAgICAgICAgICAgVXBvbiBkb3dubG9hZGluZyBmaWxlcyB0aGUgZ3Vlc3Rib29rIGFza3MgZm9yIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24uCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgIEd1ZXN0Ym9vayBOYW1lCiAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkIERhdGEKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJVc2VyIGRhdGEgY29sbGVjdGVkIGJ5IHRoZSBndWVzdGJvb2suIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj5BY2NvdW50IEluZm9ybWF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRigndmlld0d1ZXN0Ym9vaycpLmhpZGUoKSIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6cHJldmlld0d1ZXN0Ym9va19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJ2aWV3R3Vlc3Rib29rIix7aWQ6ImRhdGFzZXRGb3JtOnRhYlZpZXc6cHJldmlld0d1ZXN0Ym9vayIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWIiIGNsYXNzPSJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20gdWktaGVscGVyLWhpZGRlbiIgcm9sZT0idGFicGFuZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIiBkYXRhLWluZGV4PSIzIj4KCiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgIC8qIFZlcnNpb24gdGFiOiBSZXRyaWV2ZSBkYXRhIGFmdGVyIHBhZ2UgbG9hZCAqLwogICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcHJlbG9hZF9tZXNzYWdlID0gIihMb2FkaW5nIHZlcnNpb25zLi4uKSI7CiAgICAgICAgICAgICQoJyNkYXRhc2V0Rm9ybVxcOnRhYlZpZXdcXDp2ZXJzaW9uc1RhYmxlX2RhdGEgdHIudWktZGF0YXRhYmxlLWVtcHR5LW1lc3NhZ2UgdGQnKS50ZXh0KHByZWxvYWRfbWVzc2FnZSk7CiAgICAgICAgICAgIHBvc3RMb2FkVmVyc2lvblRhYkxpc3QoKTsKICAgICAgIH0pOwogICA8L3NjcmlwdD48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0MTU3OCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5wb3N0TG9hZFZlcnNpb25UYWJMaXN0ID0gZnVuY3Rpb24oKSB7UHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06dGFiVmlldzpqX2lkdDE1NzgiLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0MTU3OCIsdToiZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlIixwYTphcmd1bWVudHNbMF19KTt9PC9zY3JpcHQ+CiAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0IG1hcmdpbi1ib3R0b20iPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6Y29tcGFyZVZlcnNpb25zIiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmNvbXBhcmVWZXJzaW9ucyIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06dGFiVmlldzpjb21wYXJlVmVyc2lvbnMmcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybSZxdW90OyxvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7UEYoJ2RldGFpbHNCbG9ja3MnKS5zaG93KCk7cG9zdF9kaWZmZXJlbmNlcygpOzt9fSk7cmV0dXJuIGZhbHNlOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+RGlyZWN0PC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6Y29tcGFyZVZlcnNpb25zX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV90YWJWaWV3X2NvbXBhcmVWZXJzaW9ucyIse2lkOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmNvbXBhcmVWZXJzaW9ucyJ9KTs8L3NjcmlwdD4KICAgIDwvZGl2PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZSIgY2xhc3M9InVpLWRhdGF0YWJsZSB1aS13aWRnZXQiPjxkaXYgY2xhc3M9InVpLWRhdGF0YWJsZS10YWJsZXdyYXBwZXIiPjx0YWJsZSByb2xlPSJncmlkIj48dGhlYWQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZV9oZWFkIj48dHIgcm9sZT0icm93Ij48dGggaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZTpqX2lkdDE1ODQiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IGNvbC1zbS0xIHRleHQtY2VudGVyIiByb2xlPSJjb2x1bW5oZWFkZXIiIGFyaWEtbGFiZWw9IkRhdGFzZXQiIHNjb3BlPSJjb2wiPjxzcGFuIGNsYXNzPSJ1aS1jb2x1bW4tdGl0bGUiPkRhdGFzZXQ8L3NwYW4+PC90aD48dGggaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZTpqX2lkdDE1OTYiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IiByb2xlPSJjb2x1bW5oZWFkZXIiIGFyaWEtbGFiZWw9IlN1bW1hcnkiIHNjb3BlPSJjb2wiPjxzcGFuIGNsYXNzPSJ1aS1jb2x1bW4tdGl0bGUiPlN1bW1hcnk8L3NwYW4+PC90aD48dGggaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZTpqX2lkdDE2MzgiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IGNvbC1zbS0zIiByb2xlPSJjb2x1bW5oZWFkZXIiIGFyaWEtbGFiZWw9IkNvbnRyaWJ1dG9ycyIgc2NvcGU9ImNvbCI+PHNwYW4gY2xhc3M9InVpLWNvbHVtbi10aXRsZSI+Q29udHJpYnV0b3JzPC9zcGFuPjwvdGg+PHRoIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OnZlcnNpb25zVGFibGU6al9pZHQxNjQxIiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCBjb2wtc20tMiIgcm9sZT0iY29sdW1uaGVhZGVyIiBhcmlhLWxhYmVsPSJQdWJsaXNoZWQiIHNjb3BlPSJjb2wiPjxzcGFuIGNsYXNzPSJ1aS1jb2x1bW4tdGl0bGUiPlB1Ymxpc2hlZDwvc3Bhbj48L3RoPjwvdHI+PC90aGVhZD48dGJvZHkgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZV9kYXRhIiBjbGFzcz0idWktZGF0YXRhYmxlLWRhdGEgdWktd2lkZ2V0LWNvbnRlbnQiPjx0ciBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQgdWktZGF0YXRhYmxlLWVtcHR5LW1lc3NhZ2UiPjx0ZCBjb2xzcGFuPSI0Ij5ObyByZWNvcmRzIGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRhdGFUYWJsZSIsInZlcnNpb25zVGFibGUiLHtpZDoiZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlIixncm91cENvbHVtbkluZGV4ZXM6W119KTt9KTs8L3NjcmlwdD48L2Rpdj48L2Rpdj48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGF0YXNldEZvcm06dGFiVmlld19hY3RpdmVJbmRleCIgbmFtZT0iZGF0YXNldEZvcm06dGFiVmlld19hY3RpdmVJbmRleCIgdmFsdWU9IjAiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXdfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJUYWJWaWV3IiwiY29udGVudCIse2lkOiJkYXRhc2V0Rm9ybTp0YWJWaWV3IixlZmZlY3REdXJhdGlvbjoibm9ybWFsIixzY3JvbGxhYmxlOmZhbHNlLGJlaGF2aW9yczp7dGFiQ2hhbmdlOmZ1bmN0aW9uKGV4dCxldmVudCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXciLGU6InRhYkNoYW5nZSIscDoiZGF0YXNldEZvcm06dGFiVmlldyIsdToiZGF0YXNldEZvcm06dGFiVmlldyIsb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3Mpe2JpbmRfYnN1aV9jb21wb25lbnRzKCk7O319LGV4dCk7fX19KTs8L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE2NDYiIGNsYXNzPSJ1aS1ibG9ja3VpLWNvbnRlbnQgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktaGVscGVyLWhpZGRlbiB1aS1zaGFkb3ciPjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTY0Nl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJCbG9ja1VJIiwiYmxvY2tEYXRhc2V0Rm9ybSIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDE2NDYiLGJsb2NrOiJkYXRhc2V0Rm9ybSJ9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZEludmFsaWQiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZEludmFsaWRfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlJlc3RyaWN0ZWQgRmlsZXMgU2VsZWN0ZWQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFRoZSByZXN0cmljdGVkIGZpbGUocykgc2VsZWN0ZWQgbWF5IG5vdCBiZSBkb3dubG9hZGVkIGJlY2F1c2UgeW91IGhhdmUgbm90IGJlZW4gZ3JhbnRlZCBhY2Nlc3MuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignZG93bmxvYWRJbnZhbGlkJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkSW52YWxpZF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkb3dubG9hZEludmFsaWQiLHtpZDoiZGF0YXNldEZvcm06ZG93bmxvYWRJbnZhbGlkIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRNaXhlZCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkTWl4ZWRfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlJlc3RyaWN0ZWQgRmlsZXMgU2VsZWN0ZWQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFRoZSByZXN0cmljdGVkIGZpbGUocykgc2VsZWN0ZWQgbWF5IG5vdCBiZSBkb3dubG9hZGVkIGJlY2F1c2UgeW91IGhhdmUgbm90IGJlZW4gZ3JhbnRlZCBhY2Nlc3MuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGVscC1ibG9jayI+Q2xpY2sgQ29udGludWUgdG8gZG93bmxvYWQgdGhlIGZpbGVzIHlvdSBoYXZlIGFjY2VzcyB0byBkb3dubG9hZC48L3A+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQxNjU1IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDE2NTUiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdkb3dubG9hZE1peGVkJykuaGlkZSgpfSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE2NTUmcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q29udGludWU8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxNjU1X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE2NTUiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxNjU1In0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignZG93bmxvYWRNaXhlZCcpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRNaXhlZF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkb3dubG9hZE1peGVkIix7aWQ6ImRhdGFzZXRGb3JtOmRvd25sb2FkTWl4ZWQiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVDb25maXJtYXRpb24iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVDb25maXJtYXRpb25fdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkRlbGV0ZSBEYXRhc2V0PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZGF0YXNldCBhbmQgYWxsIG9mIGl0cyBmaWxlcz8gWW91IGNhbm5vdCB1bmRlbGV0ZSB0aGlzIGRhdGFzZXQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTY1OSIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxNjU5IiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZGVsZXRlQ29uZmlybWF0aW9uJykuaGlkZSgpfSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE2NTkmcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q29udGludWU8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxNjU5X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE2NTkiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxNjU5In0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignZGVsZXRlQ29uZmlybWF0aW9uJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVDb25maXJtYXRpb25fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZGVsZXRlQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlbGV0ZUNvbmZpcm1hdGlvbiIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZVZlcnNpb25Db25maXJtYXRpb24iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVWZXJzaW9uQ29uZmlybWF0aW9uX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5EZWxldGUgRHJhZnQgVmVyc2lvbjwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC13YXJuaW5nIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi13YXJuaW5nLXNpZ24iPjwvc3Bhbj4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGRyYWZ0IHZlcnNpb24/IEZpbGVzIHdpbGwgYmUgcmV2ZXJ0ZWQgdG8gdGhlIG1vc3QgcmVjZW50bHkgcHVibGlzaGVkIHZlcnNpb24uIFlvdSBjYW5ub3QgdW5kZWxldGUgdGhpcyBkcmFmdC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQxNjYyIiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDE2NjIiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdkZWxldGVWZXJzaW9uQ29uZmlybWF0aW9uJykuaGlkZSgpfSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE2NjImcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q29udGludWU8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxNjYyX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE2NjIiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxNjYyIn0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignZGVsZXRlVmVyc2lvbkNvbmZpcm1hdGlvbicpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZGVsZXRlVmVyc2lvbkNvbmZpcm1hdGlvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkZWxldGVWZXJzaW9uQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlbGV0ZVZlcnNpb25Db25maXJtYXRpb24iLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpwcml2YXRlVXJsSWQiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpwcml2YXRlVXJsSWRfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlVucHVibGlzaGVkIERhdGFzZXQgUHJpdmF0ZSBVUkw8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpwcml2YXRlVXJsUGFuZWxDYW5ub3RDcmVhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFByaXZhdGUgVVJMIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB1bnB1Ymxpc2hlZCB2ZXJzaW9ucyBvZiBkYXRhc2V0cy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ3ByaXZhdGVVcmxDb25maXJtYXRpb24nKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnByaXZhdGVVcmxJZF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJwcml2YXRlVXJsQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOnByaXZhdGVVcmxJZCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRpc2FibGVQcml2YXRlVXJsQ29uZmlybWF0aW9uIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZGlzYWJsZVByaXZhdGVVcmxDb25maXJtYXRpb25fdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlVucHVibGlzaGVkIERhdGFzZXQgUHJpdmF0ZSBVUkw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC13YXJuaW5nIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi13YXJuaW5nLXNpZ24iPjwvc3Bhbj4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2FibGUgdGhlIFByaXZhdGUgVVJMPyBJZiB5b3UgaGF2ZSBzaGFyZWQgdGhlIFByaXZhdGUgVVJMIHdpdGggb3RoZXJzIHRoZXkgd2lsbCBubyBsb25nZXIgYmUgYWJsZSB0byB1c2UgaXQgdG8gYWNjZXNzIHlvdXIgdW5wdWJsaXNoZWQgZGF0YXNldC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQxNjgxIiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDE2ODEiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbicpLmhpZGUoKTt9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MTY4MSZxdW90Oyx1OiZxdW90O2RhdGFzZXRGb3JtOnByaXZhdGVVcmxQYW5lbCBtZXNzYWdlUGFuZWwmcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+WWVzLCBEaXNhYmxlIFByaXZhdGUgVVJMPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTY4MV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPlByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQxNjgxIix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MTY4MSJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2Rpc2FibGVQcml2YXRlVXJsQ29uZmlybWF0aW9uJykuaGlkZSgpO1BGKCdwcml2YXRlVXJsQ29uZmlybWF0aW9uJykuc2hvdygpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbiIse2lkOiJkYXRhc2V0Rm9ybTpkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbiIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbiIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbl90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+RGVsZXRlIEZpbGVzPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBUaGUgZmlsZShzKSB3aWxsIGJlIGRlbGV0ZWQgYWZ0ZXIgeW91IGNsaWNrIG9uIHRoZSBEZWxldGUgYnV0dG9uLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBGaWxlcyB3aWxsIG5vdCBiZSByZW1vdmVkIGZyb20gcHJldmlvdXNseSBwdWJsaXNoZWQgdmVyc2lvbnMgb2YgdGhlIGRhdGFzZXQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTY4NyIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxNjg3IiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZGVsZXRlU2VsZWN0ZWRGaWxlQ29uZmlybWF0aW9uJykuaGlkZSgpfSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE2ODcmcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+RGVsZXRlPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTY4N19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPlByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQxNjg3Iix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MTY4NyJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2RlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbicpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZGVsZXRlU2VsZWN0ZWRGaWxlQ29uZmlybWF0aW9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImRlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbiIse2lkOiJkYXRhc2V0Rm9ybTpkZWxldGVTZWxlY3RlZEZpbGVDb25maXJtYXRpb24iLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpjb21wdXRlSW52YWxpZCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmNvbXB1dGVJbnZhbGlkX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5Db21wdXRlPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBUaGlzIGRhdGFzZXQgY29udGFpbnMgcmVzdHJpY3RlZCBmaWxlcyB5b3UgbWF5IG5vdCBjb21wdXRlIG9uIGJlY2F1c2UgeW91IGhhdmUgbm90IGJlZW4gZ3JhbnRlZCBhY2Nlc3MuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignY29tcHV0ZUludmFsaWQnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06Y29tcHV0ZUludmFsaWRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiY29tcHV0ZUludmFsaWQiLHtpZDoiZGF0YXNldEZvcm06Y29tcHV0ZUludmFsaWQiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE2OTAiIGNsYXNzPSJ1aS1vdXRwdXRwYW5lbCB1aS13aWRnZXQiPjwvZGl2PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQ29uZmlybWF0aW9uIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQ29uZmlybWF0aW9uX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5EZWFjY2Vzc2lvbiBEYXRhc2V0PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVhY2Nlc3Npb24/IFRoZSBzZWxlY3RlZCB2ZXJzaW9uKHMpIHdpbGwgbm8gbG9uZ2VyIGJlIHZpZXdhYmxlIGJ5IHRoZSBwdWJsaWMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MTcxNyIgdmFsdWU9IlllcyIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUEYoJ2RlYWNjZXNzaW9uQ29uZmlybWF0aW9uJykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignZGVhY2Nlc3Npb25CbG9jaycpLmhpZGUoKSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2RlYWNjZXNzaW9uQ29uZmlybWF0aW9uJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQ29uZmlybWF0aW9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImRlYWNjZXNzaW9uQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQ29uZmlybWF0aW9uIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25BbGxDb25maXJtYXRpb24iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25BbGxDb25maXJtYXRpb25fdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkRlYWNjZXNzaW9uIERhdGFzZXQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtd2FybmluZyI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIj48L3NwYW4+IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWFjY2Vzc2lvbiB0aGlzIGRhdGFzZXQ/IEl0IHdpbGwgbm8gbG9uZ2VyIGJlIHZpZXdhYmxlIGJ5IHRoZSBwdWJsaWMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MTcyMCIgdmFsdWU9IlllcyIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUEYoJ2RlYWNjZXNzaW9uQWxsQ29uZmlybWF0aW9uJykuaGlkZSgpO1BGKCdkZWFjY2Vzc2lvbkJsb2NrJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2RlYWNjZXNzaW9uQWxsQ29uZmlybWF0aW9uJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQWxsQ29uZmlybWF0aW9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImRlYWNjZXNzaW9uQWxsQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQWxsQ29uZmlybWF0aW9uIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGlucHV0IGlkPSJkYXRhc2V0Rm9ybTpoaWRkZW5SZWFzb25JbnB1dCIgbmFtZT0iZGF0YXNldEZvcm06aGlkZGVuUmVhc29uSW5wdXQiIHR5cGU9InRleHQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGNsYXNzPSJ1aS1pbnB1dGZpZWxkIHVpLWlucHV0dGV4dCB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIiAvPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmhpZGRlblJlYXNvbklucHV0X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0IiwiaGlkZGVuUmVhc29uSW5wdXQiLHtpZDoiZGF0YXNldEZvcm06aGlkZGVuUmVhc29uSW5wdXQifSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06Y29tcGFyZVR3byIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpjb21wYXJlVHdvX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5WZXJzaW9uIERpZmZlcmVuY2VzIERldGFpbHM8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24gdGV4dC1kYW5nZXIiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InRleHQtZGFuZ2VyIj5QbGVhc2Ugc2VsZWN0IHR3byB2ZXJzaW9ucyB0byB2aWV3IHRoZSBkaWZmZXJlbmNlcy48L3NwYW4+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignY29tcGFyZVR3bycpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpjb21wYXJlVHdvX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImNvbXBhcmVUd28iLHtpZDoiZGF0YXNldEZvcm06Y29tcGFyZVR3byIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRldGFpbHNCbG9ja3MiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgbGFyZ2VQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkZXRhaWxzQmxvY2tzX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5WZXJzaW9uIERpZmZlcmVuY2VzIERldGFpbHM8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idmVyc2lvbi10aXRsZSIgY2xhc3M9Im1hcmdpbi1ib3R0b20taGFsZiI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InZlcnNpb24tZGV0YWlscy1ibG9jayIgY2xhc3M9IiBjbGVhcmZpeCBtYXJnaW4tYm90dG9tLWhhbGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHVsbC1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDCoAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwdWxsLWxlZnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb246IDxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhc3QgVXBkYXRlZDogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InB1bGwtbGVmdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbjogPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFzdCBVcGRhdGVkOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIG1hcmdpbi1ib3R0b20iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignZGV0YWlsc0Jsb2NrcycpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRldGFpbHNCbG9ja3NfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZGV0YWlsc0Jsb2NrcyIse2lkOiJkYXRhc2V0Rm9ybTpkZXRhaWxzQmxvY2tzIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEb3dubG9hZCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yRG93bmxvYWRfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlNlbGVjdCBGaWxlKHMpPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBQbGVhc2Ugc2VsZWN0IGEgZmlsZSBvciBmaWxlcyB0byBiZSBkb3dubG9hZGVkLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUEYoJ3NlbGVjdEZpbGVzRm9yRG93bmxvYWQnKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEb3dubG9hZF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJzZWxlY3RGaWxlc0ZvckRvd25sb2FkIix7aWQ6ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yRG93bmxvYWQiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvclJlcXVlc3RBY2Nlc3MiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvclJlcXVlc3RBY2Nlc3NfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlNlbGVjdCBGaWxlKHMpPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBQbGVhc2Ugc2VsZWN0IGEgZmlsZSBvciBmaWxlcyBmb3IgYWNjZXNzIHJlcXVlc3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2VsZWN0RmlsZXNGb3JSZXF1ZXN0QWNjZXNzJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yUmVxdWVzdEFjY2Vzc19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJzZWxlY3RGaWxlc0ZvclJlcXVlc3RBY2Nlc3MiLHtpZDoiZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JSZXF1ZXN0QWNjZXNzIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEZWxldGUiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvckRlbGV0ZV90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+U2VsZWN0IEZpbGUocyk8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFBsZWFzZSBzZWxlY3QgYSBmaWxlIG9yIGZpbGVzIHRvIGJlIGRlbGV0ZWQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2VsZWN0RmlsZXNGb3JEZWxldGUnKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEZWxldGVfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwic2VsZWN0RmlsZXNGb3JEZWxldGUiLHtpZDoiZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEZWxldGUiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvclJlc3RyaWN0IiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JSZXN0cmljdF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+U2VsZWN0IEZpbGUocyk8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFBsZWFzZSBzZWxlY3QgdW5yZXN0cmljdGVkIGZpbGUocykgdG8gYmUgcmVzdHJpY3RlZC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdzZWxlY3RGaWxlc0ZvclJlc3RyaWN0JykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yUmVzdHJpY3RfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwic2VsZWN0RmlsZXNGb3JSZXN0cmljdCIse2lkOiJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvclJlc3RyaWN0Iixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JVblJlc3RyaWN0IiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JVblJlc3RyaWN0X3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5TZWxlY3QgRmlsZShzKTwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1kYW5nZXIiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24iPjwvc3Bhbj4gUGxlYXNlIHNlbGVjdCByZXN0cmljdGVkIGZpbGUocykgdG8gYmUgdW5yZXN0cmljdGVkLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUEYoJ3NlbGVjdEZpbGVzRm9yVW5SZXN0cmljdCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvclVuUmVzdHJpY3RfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwic2VsZWN0RmlsZXNGb3JVblJlc3RyaWN0Iix7aWQ6ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yVW5SZXN0cmljdCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yRWRpdE1ldGFkYXRhIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JFZGl0TWV0YWRhdGFfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlNlbGVjdCBGaWxlKHMpPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBQbGVhc2Ugc2VsZWN0IGEgZmlsZSBvciBmaWxlcyB0byBiZSBlZGl0ZWQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2VsZWN0RmlsZXNGb3JFZGl0TWV0YWRhdGEnKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JFZGl0TWV0YWRhdGFfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwic2VsZWN0RmlsZXNGb3JFZGl0TWV0YWRhdGEiLHtpZDoiZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JFZGl0TWV0YWRhdGEiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvckVkaXRUYWdzIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JFZGl0VGFnc190aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+U2VsZWN0IEZpbGUocyk8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFBsZWFzZSBzZWxlY3QgYSBmaWxlIG9yIGZpbGVzIHRvIGJlIGVkaXRlZC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdzZWxlY3RGaWxlc0ZvckVkaXRUYWdzJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yRWRpdFRhZ3NfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwic2VsZWN0RmlsZXNGb3JFZGl0VGFncyIse2lkOiJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvckVkaXRUYWdzIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxODA5IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnJlZnJlc2hUYWdzQ29tbWFuZCA9IGZ1bmN0aW9uKCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOmpfaWR0MTgwOSIsZjoiZGF0YXNldEZvcm0iLHU6ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXAiLG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzKXtQRignZmlsZVRhZ3NQb3B1cCcpLnNob3coKTs7fSxwYTphcmd1bWVudHNbMF19KTt9PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZmlsZVRhZ3NQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkVkaXQgVGFnczwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE4MTAiPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMoJ2RhdGFzZXRGb3JtOmZpbGVUYWdzTWVudURTJyk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj5TZWxlY3QgZXhpc3RpbmcgZmlsZSB0YWdzIG9yIGNyZWF0ZSBuZXcgdGFncyB0byBkZXNjcmliZSB5b3VyIGZpbGVzLiBFYWNoIGZpbGUgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSB0YWcuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBTYXZlQnV0dG9uIiBuYW1lPSJkYXRhc2V0Rm9ybTpmaWxlVGFnc1BvcHVwU2F2ZUJ1dHRvbiIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBTYXZlQnV0dG9uJnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIGRhdGFzZXRGb3JtJnF1b3Q7LG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzKXtQRignZmlsZVRhZ3NQb3B1cCcpLmhpZGUoKTt9fSk7cmV0dXJuIGZhbHNlOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+U2F2ZSBDaGFuZ2VzPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBTYXZlQnV0dG9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9maWxlVGFnc1BvcHVwU2F2ZUJ1dHRvbiIse2lkOiJkYXRhc2V0Rm9ybTpmaWxlVGFnc1BvcHVwU2F2ZUJ1dHRvbiJ9KTs8L3NjcmlwdD48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpmaWxlVGFnc1BvcHVwQ2FuY2VsQnV0dG9uIiBuYW1lPSJkYXRhc2V0Rm9ybTpmaWxlVGFnc1BvcHVwQ2FuY2VsQnV0dG9uIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZmlsZVRhZ3NQb3B1cCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTt9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBDYW5jZWxCdXR0b24mcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q2FuY2VsPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBDYW5jZWxCdXR0b25fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2ZpbGVUYWdzUG9wdXBDYW5jZWxCdXR0b24iLHtpZDoiZGF0YXNldEZvcm06ZmlsZVRhZ3NQb3B1cENhbmNlbEJ1dHRvbiJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZmlsZVRhZ3NQb3B1cF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJmaWxlVGFnc1BvcHVwIix7aWQ6ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXAiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTphY2Nlc3NTaWduVXBMb2dJbiIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTphY2Nlc3NTaWduVXBMb2dJbl90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UmVxdWVzdCBBY2Nlc3M8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIHRleHQtZGFuZ2VyIj48L3NwYW4+wqAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWRhbmdlciI+WW91IG5lZWQgdG8gPGEgaHJlZj0iL2RhdGF2ZXJzZXVzZXIueGh0bWw/ZWRpdE1vZGU9Q1JFQVRFJnJlZGlyZWN0UGFnZT0lMkZkYXRhc2V0LnhodG1sJTNGcGVyc2lzdGVudElkJTNEZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyIgdGFyZ2V0PSJfc2VsZiIgdGl0bGU9IlNpZ24gVXAgZm9yIGEgRGF0YXZlcnNlIEFjY291bnQiPlNpZ24gVXA8L2E+IG9yIDxhIGhyZWY9Ii9sb2dpbnBhZ2UueGh0bWw/cmVkaXJlY3RQYWdlPSUyRmRhdGFzZXQueGh0bWwlM0ZwZXJzaXN0ZW50SWQlM0Rkb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPIiB0YXJnZXQ9Il9zZWxmIiB0aXRsZT0iTG9nIGludG8geW91ciBEYXRhdmVyc2UgQWNjb3VudCI+TG9nIEluPC9hPiB0byByZXF1ZXN0IGFjY2VzcyB0byB0aGlzIGZpbGUuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdhY2Nlc3NTaWduVXBMb2dJbl9wb3B1cCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTphY2Nlc3NTaWduVXBMb2dJbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJhY2Nlc3NTaWduVXBMb2dJbl9wb3B1cCIse2lkOiJkYXRhc2V0Rm9ybTphY2Nlc3NTaWduVXBMb2dJbiIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmNvbmZpZ3VyZVRvb2xQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmNvbmZpZ3VyZVRvb2xQb3B1cF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CgogICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj48c3BhbiBjbGFzcz0idGV4dC1sZWZ0Ij4gPGJyLz48L3NwYW4+CiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQxODQ1IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDE4NDUiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdjb25maWd1cmVUb29sUG9wdXAnKS5oaWRlKCk7fSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE4NDUmcXVvdDssdTomcXVvdDttZXNzYWdlUGFuZWwmcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q29udGludWU8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxODQ1X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE4NDUiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxODQ1In0pOzwvc2NyaXB0PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdjb25maWd1cmVUb29sUG9wdXAnKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmNvbmZpZ3VyZVRvb2xQb3B1cF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJjb25maWd1cmVUb29sUG9wdXAiLHtpZDoiZGF0YXNldEZvcm06Y29uZmlndXJlVG9vbFBvcHVwIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBsYXJnZVBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkUG9wdXBfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkRhdGFzZXQgVGVybXM8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij48c3BhbiBpZD0iZGF0YXNldEZvcm06al9pZHQxODQ3Ij48L3NwYW4+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmZvY3VzKG51bGwsICdkYXRhc2V0Rm9ybTpkb3dubG9hZFBvcHVwJyk7fSk7PC9zY3JpcHQ+CiAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPgogICAgICAgICAgICBQbGVhc2UgY29uZmlybSBhbmQvb3IgY29tcGxldGUgdGhlIGluZm9ybWF0aW9uIG5lZWRlZCBiZWxvdyBpbiBvcmRlciB0byBjb250aW51ZS4KICAgICAgICA8L3A+PGRpdiBpZD0iZGF0YXNldEZvcm06Z3Vlc3Rib29rTWVzc2FnZXMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgbWVzc2FnZVBhbmVsIj4KICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTkyNCIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxOTI0IiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQxOTI0JnF1b3Q7LHA6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQxOTI0JnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm06Z3Vlc3Rib29rVUlGcmFnbWVudCZxdW90OyxwYTpbe25hbWU6JnF1b3Q7RE9fR0JfVkFMSURBVElPTiZxdW90Oyx2YWx1ZTomcXVvdDt0cnVlJnF1b3Q7fV19KTtyZXR1cm4gZmFsc2U7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5BY2NlcHQ8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxOTI0X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE5MjQiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxOTI0In0pOzwvc2NyaXB0PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdkb3dubG9hZFBvcHVwJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFBvcHVwX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImRvd25sb2FkUG9wdXAiLHtpZDoiZGF0YXNldEZvcm06ZG93bmxvYWRQb3B1cCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkUGFja2FnZVBvcHVwIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRQYWNrYWdlUG9wdXBfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlBhY2thZ2UgRmlsZSBEb3dubG9hZDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnBhY2thZ2VQb3B1cERvd25sb2FkSW5mbyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTEyIj4KICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2sgbm8tbWFyZ2luLXRvcCI+VXNlIHRoZSBEb3dubG9hZCBVUkwgaW4gYSBXZ2V0IGNvbW1hbmQgb3IgYSBkb3dubG9hZCBtYW5hZ2VyIHRvIGRvd25sb2FkIHRoaXMgcGFja2FnZSBmaWxlLiBEb3dubG9hZCB2aWEgd2ViIGJyb3dzZXIgaXMgbm90IHJlY29tbWVuZGVkLiA8YSBocmVmPSJodHRwOi8vZ3VpZGVzLmRhdGF2ZXJzZS5vcmcvZW4vNC4xNS91c2VyL2ZpbmQtdXNlLWRhdGEuaHRtbCNkb3dubG9hZGluZy1hLWRhdGF2ZXJzZS1wYWNrYWdlLXZpYS11cmwiIHRpdGxlPSJVc2VyIEd1aWRlIC0gRG93bmxvYWRpbmcgYSBEYXRhdmVyc2UgUGFja2FnZSB2aWEgVVJMIiB0YXJnZXQ9Il9ibGFuayI+VXNlciBHdWlkZSAtIERvd25sb2FkaW5nIGEgRGF0YXZlcnNlIFBhY2thZ2UgdmlhIFVSTDwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMiBtYXJnaW4tYm90dG9tIj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5NDAiIGNsYXNzPSJ1aS1vdXRwdXRwYW5lbCB1aS13aWRnZXQiPgogICAgICAgIDxkaXYgaWQ9ImZpbGVJbmZvSW5jbHVkZS1maWxlc1RhYmxlIiBjbGFzcz0iY29sLXNtLTEyIHJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InB1bGwtbGVmdCBjb2wtZmlsZS10aHVtYiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aHVtYm5haWwtYmxvY2sgdGV4dC1jZW50ZXIiPjxzcGFuIGNsYXNzPSJpY29uLW90aGVyIGZpbGUtdGh1bWJuYWlsLWljb24gdGV4dC1tdXRlZCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAgY29sLWZpbGUtbWV0YWRhdGEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWVPcmlnaW5hbCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0ic3RhdGljOmZpbGVUeXBlT3V0cHV0UmVndWxhciI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJzdGF0aWM6ZmlsZVNpemUiPiAtIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0ic3RhdGljOmZpbGVDcmVhdGVQdWJsaXNoRGF0ZSI+IC0gPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrc3VtLWJsb2NrIj48c3BhbiBpZD0ic3RhdGljOmZpbGUtY2hlY2tzdW0iPjogPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMiI+CiAgICAgICAgICAgIDxsYWJlbD5Eb3dubG9hZCBVUkw8L2xhYmVsPiAKICAgICAgICAgICAgPHA+PGNvZGU+aHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2FjY2Vzcy9kYXRhZmlsZS88L2NvZGU+PC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMiBidXR0b24tYmxvY2sgbWFyZ2luLXRvcCI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRQYWNrYWdlUG9wdXBDYW5jZWxCdXR0b24iIG5hbWU9ImRhdGFzZXRGb3JtOmRvd25sb2FkUGFja2FnZVBvcHVwQ2FuY2VsQnV0dG9uIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZG93bmxvYWRQYWNrYWdlUG9wdXAnKS5oaWRlKCk7fSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cENhbmNlbEJ1dHRvbiZxdW90Oyx1OiZxdW90O2RhdGFzZXRGb3JtOmRvd25sb2FkUGFja2FnZVBvcHVwJnF1b3Q7fSk7cmV0dXJuIGZhbHNlO31dKTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPkNsb3NlPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkUGFja2FnZVBvcHVwQ2FuY2VsQnV0dG9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9kb3dubG9hZFBhY2thZ2VQb3B1cENhbmNlbEJ1dHRvbiIse2lkOiJkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cENhbmNlbEJ1dHRvbiJ9KTs8L3NjcmlwdD4KICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkb3dubG9hZFBhY2thZ2VQb3B1cCIse2lkOiJkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnJlcXVlc3RBY2Nlc3NQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBsYXJnZVBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnJlcXVlc3RBY2Nlc3NQb3B1cF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UmVxdWVzdCBBY2Nlc3M8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICA8cCBjbGFzcz0iaGVscC1ibG9jayI+CiAgICAgICAgICAgIFBsZWFzZSBjb25maXJtIGFuZC9vciBjb21wbGV0ZSB0aGUgaW5mb3JtYXRpb24gbmVlZGVkIGJlbG93IGluIG9yZGVyIHRvIHJlcXVlc3QgYWNjZXNzIHRvIGZpbGVzIGluIHRoaXMgZGF0YXNldC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTk3MSIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxOTcxIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQxOTcxJnF1b3Q7LHU6JnF1b3Q7QChbaWQkPXJlcXVlc3RBY2Nlc3NQb3B1cEJ1dHRvbl0pJnF1b3Q7LG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzKXtQRigncmVxdWVzdEFjY2Vzc1BvcHVwJykuaGlkZSgpOzt9fSk7cmV0dXJuIGZhbHNlOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+QWNjZXB0PC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTk3MV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPlByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQxOTcxIix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MTk3MSJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRigncmVxdWVzdEFjY2Vzc1BvcHVwJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpyZXF1ZXN0QWNjZXNzUG9wdXBfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwicmVxdWVzdEFjY2Vzc1BvcHVwIix7aWQ6ImRhdGFzZXRGb3JtOnJlcXVlc3RBY2Nlc3NQb3B1cCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkRGF0YVN1YnNldFBvcHVwIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWREYXRhU3Vic2V0UG9wdXBfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkRvd25sb2FkIERhdGEgU3Vic2V0PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWREYXRhU3Vic2V0UG9wdXBfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZG93bmxvYWREYXRhU3Vic2V0UG9wdXAiLHtpZDoiZGF0YXNldEZvcm06ZG93bmxvYWREYXRhU3Vic2V0UG9wdXAiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpsaW5rRGF0YXNldEZvcm0iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgbGFyZ2VQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpsaW5rRGF0YXNldEZvcm1fdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkxpbmsgRGF0YXNldDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5NzciPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMoJ2RhdGFzZXRGb3JtOmRhdGF2ZXJzZUxpbmtOYW1lJyk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taG9yaXpvbnRhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGVscC1ibG9jayI+RW50ZXIgdGhlIG5hbWUgb2YgdGhlIGRhdGF2ZXJzZSB5b3Ugd291bGQgbGlrZSB0byBsaW5rIHRoaXMgZGF0YXNldCB0by4gSWYgeW91IG5lZWQgdG8gcmVtb3ZlIHRoaXMgbGluayBpbiB0aGUgZnV0dXJlLCBwbGVhc2UgY29udGFjdCA8YSBpZD0iZGF0YXNldEZvcm06al9pZHQxOTgxIiBocmVmPSIjIiBjbGFzcz0idWktY29tbWFuZGxpbmsgdWktd2lkZ2V0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MTk4MSZxdW90Oyx1OiZxdW90O2NvbnRhY3REaWFsb2cmcXVvdDssb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3Mpe1BGKCdsaW5rRGF0YXNldEZvcm0nKS5oaWRlKCk7UEYoJ2NvbnRhY3RGb3JtJykuc2hvdygpO319KTtyZXR1cm4gZmFsc2U7Ij5IYXJ2YXJkIERhdGF2ZXJzZSBTdXBwb3J0PC9hPi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXhzLTMgY29udHJvbC1sYWJlbCI+WW91ciBEYXRhdmVyc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy04Ij48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpsaW5rTmFtZUNvbnRlbnQiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkYXRhdmVyc2VMaW5rTmFtZSIgY2xhc3M9InVpLWF1dG9jb21wbGV0ZSBEcm9wZG93blBvcHVwIiBzdHlsZT0id2lkdGg6NzUlOyI+PGlucHV0IGlkPSJkYXRhc2V0Rm9ybTpkYXRhdmVyc2VMaW5rTmFtZV9pbnB1dCIgbmFtZT0iZGF0YXNldEZvcm06ZGF0YXZlcnNlTGlua05hbWVfaW5wdXQiIHR5cGU9InRleHQiIGNsYXNzPSJ1aS1hdXRvY29tcGxldGUtaW5wdXQgdWktaW5wdXRmaWVsZCB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIiBhdXRvY29tcGxldGU9Im9mZiIgcGxhY2Vob2xkZXI9IkVudGVyIERhdGF2ZXJzZSBOYW1lIiB2YWx1ZT0iIiAvPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06ZGF0YXZlcnNlTGlua05hbWVfaGlucHV0IiBuYW1lPSJkYXRhc2V0Rm9ybTpkYXRhdmVyc2VMaW5rTmFtZV9oaW5wdXQiIHR5cGU9ImhpZGRlbiIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRhdGF2ZXJzZUxpbmtOYW1lX3BhbmVsIiBjbGFzcz0idWktYXV0b2NvbXBsZXRlLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktaGVscGVyLWhpZGRlbiB1aS1zaGFkb3cgdWktaW5wdXQtb3ZlcmxheSBEcm9wZG93blBvcHVwUGFuZWwiIHJvbGU9Imxpc3Rib3giPjwvc3Bhbj48L3NwYW4+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZGF0YXZlcnNlTGlua05hbWVfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiQXV0b0NvbXBsZXRlIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2RhdGF2ZXJzZUxpbmtOYW1lIix7aWQ6ImRhdGFzZXRGb3JtOmRhdGF2ZXJzZUxpbmtOYW1lIixkZWxheToxMDAwLGZvcmNlU2VsZWN0aW9uOnRydWUsc2Nyb2xsSGVpZ2h0OjE4MCxlbXB0eU1lc3NhZ2U6Ik5vIGxpbmthYmxlIGRhdGF2ZXJzZXMgYXZhaWxhYmxlLiIsYmVoYXZpb3JzOntpdGVtU2VsZWN0OmZ1bmN0aW9uKGV4dCxldmVudCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOmRhdGF2ZXJzZUxpbmtOYW1lIixlOiJpdGVtU2VsZWN0IixwOiJkYXRhc2V0Rm9ybTpkYXRhdmVyc2VMaW5rTmFtZSIsZmk6ImRhdGFzZXRGb3JtOmxpbmtOYW1lQ29udGVudCJ9LGV4dCk7fSxpdGVtVW5zZWxlY3Q6ZnVuY3Rpb24oZXh0LGV2ZW50KSB7UHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06ZGF0YXZlcnNlTGlua05hbWUiLGU6Iml0ZW1VbnNlbGVjdCIscDoiZGF0YXNldEZvcm06ZGF0YXZlcnNlTGlua05hbWUiLGZpOiJkYXRhc2V0Rm9ybTpsaW5rTmFtZUNvbnRlbnQifSxleHQpO319fSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06al9pZHQxOTg5IiBhcmlhLWxpdmU9InBvbGl0ZSIgY2xhc3M9InVpLW1lc3NhZ2UiPjwvZGl2PjwvZGl2PiAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06c2F2ZUxpbmtCdXR0b24iIG5hbWU9ImRhdGFzZXRGb3JtOnNhdmVMaW5rQnV0dG9uIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06c2F2ZUxpbmtCdXR0b24mcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybTpsaW5rTmFtZUNvbnRlbnQgQChbaWQkPU1lc3NhZ2VzXSkmcXVvdDssb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3Mpe2lmIChhcmdzICZhbXA7JmFtcDsgIWFyZ3MudmFsaWRhdGlvbkZhaWxlZCkgbGlua0RhdGFzZXRDb21tYW5kKCk7O30scGE6W3tuYW1lOiZxdW90O0RPX0RTX0xJTktfVkFMSURBVElPTiZxdW90Oyx2YWx1ZTomcXVvdDt0cnVlJnF1b3Q7fV19KTtyZXR1cm4gZmFsc2U7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5TYXZlIExpbmtlZCBEYXRhc2V0PC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNhdmVMaW5rQnV0dG9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9zYXZlTGlua0J1dHRvbiIse2lkOiJkYXRhc2V0Rm9ybTpzYXZlTGlua0J1dHRvbiJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2xpbmtEYXRhc2V0Rm9ybScpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06bGlua0RhdGFzZXRGb3JtX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImxpbmtEYXRhc2V0Rm9ybSIse2lkOiJkYXRhc2V0Rm9ybTpsaW5rRGF0YXNldEZvcm0iLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5OTMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+bGlua0RhdGFzZXRDb21tYW5kID0gZnVuY3Rpb24oKSB7UHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06al9pZHQxOTkzIixmOiJkYXRhc2V0Rm9ybSIsdToibWVzc2FnZVBhbmVsIEAoW2lkJD1NZXNzYWdlc10pIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7UEYoJ2xpbmtEYXRhc2V0Rm9ybScpLmhpZGUoKTs7fSxwYTphcmd1bWVudHNbMF19KTt9PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06Y29tcHV0ZUJhdGNoTGlzdFBvcHVwIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmNvbXB1dGVCYXRjaExpc3RQb3B1cF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+Q29tcHV0ZSBCYXRjaDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZW1vdmUiPjwvc3Bhbj5DbGVhciBCYXRjaDxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTk5NSIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxOTk1IiBjbGFzcz0iIGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE5OTUmcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybSBtZXNzYWdlUGFuZWwmcXVvdDt9KTtyZXR1cm4gZmFsc2U7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj51aS1idXR0b248L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxOTk1X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE5OTUiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxOTk1In0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dGFibGUgaWQ9ImRhdGFzZXRGb3JtOmNvbXB1dGVCYXRjaCIgY2xhc3M9InRhYmxlIHRhYmxlLXN0cmlwZWQiPgo8dGhlYWQ+Cjx0cj4KPHRoIHNjb3BlPSJjb2wiPkRhdGFzZXQ8L3RoPgo8dGggc2NvcGU9ImNvbCI+RGF0YXNldCBQZXJzaXN0ZW50IElEPC90aD4KPHRoIHNjb3BlPSJjb2wiPjwvdGg+CjwvdHI+CjwvdGhlYWQ+Cjx0Ym9keT4KPHRyPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT4KPC90YWJsZT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMiIgb25jbGljaz0iUEYoJ2NvbXB1dGVCYXRjaExpc3RQb3B1cCcpLmhpZGUoKSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiPkNvbXB1dGUgQmF0Y2g8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdjb21wdXRlQmF0Y2hMaXN0UG9wdXAnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmNvbXB1dGVCYXRjaExpc3RQb3B1cF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJjb21wdXRlQmF0Y2hMaXN0UG9wdXAiLHtpZDoiZGF0YXNldEZvcm06Y29tcHV0ZUJhdGNoTGlzdFBvcHVwIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06YWNjZXNzUG9wdXAiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06YWNjZXNzUG9wdXBfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkZpbGUgUmVzdHJpY3Rpb25zPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjAxMiI+PC9zcGFuPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5mb2N1cygnZGF0YXNldEZvcm06dGVybXNBY2Nlc3NJbnB1dCcpO30pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWV0YWRhdGFfVGVybXNBY2Nlc3MiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1zIG9mIEFjY2VzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iSW5mb3JtYXRpb24gb24gaG93IGFuZCBpZiB1c2VycyBjYW4gZ2FpbiBhY2Nlc3MgdG8gdGhlIHJlc3RyaWN0ZWQgZmlsZXMgaW4gdGhpcyBkYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+PHRleHRhcmVhIGlkPSJkYXRhc2V0Rm9ybTp0ZXJtc0FjY2Vzc0lucHV0IiBuYW1lPSJkYXRhc2V0Rm9ybTp0ZXJtc0FjY2Vzc0lucHV0IiBjb2xzPSIyMCIgcm93cz0iNSIgbWF4bGVuZ3RoPSIyMTQ3NDgzNjQ3IiBjbGFzcz0idWktaW5wdXRmaWVsZCB1aS1pbnB1dHRleHRhcmVhIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgZm9ybS1jb250cm9sIj48L3RleHRhcmVhPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRlcm1zQWNjZXNzSW5wdXRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0YXJlYSIsImlucHV0dG9hIix7aWQ6ImRhdGFzZXRGb3JtOnRlcm1zQWNjZXNzSW5wdXQiLGF1dG9SZXNpemU6ZmFsc2V9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im1ldGFkYXRhX1JlcXVlc3RBY2Nlc3MiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QgQWNjZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJJZiBjaGVja2VkLCB1c2VycyBjYW4gcmVxdWVzdCBhY2Nlc3MgdG8gdGhlIHJlc3RyaWN0ZWQgZmlsZXMgaW4gdGhpcyBkYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+PGRpdiBpZD0iZGF0YXNldEZvcm06cmVxdWVzdEFjY2VzcyIgY2xhc3M9InVpLXNlbGVjdGJvb2xlYW5jaGVja2JveCB1aS1jaGtib3ggdWktd2lkZ2V0Ij48ZGl2IGNsYXNzPSJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06cmVxdWVzdEFjY2Vzc19pbnB1dCIgbmFtZT0iZGF0YXNldEZvcm06cmVxdWVzdEFjY2Vzc19pbnB1dCIgdHlwZT0iY2hlY2tib3giIGF1dG9jb21wbGV0ZT0ib2ZmIiBhcmlhLWhpZGRlbj0idHJ1ZSIgYXJpYS1jaGVja2VkPSJmYWxzZSIgLz48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1jaGtib3gtYm94IHVpLXdpZGdldCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRlZmF1bHQiPjxzcGFuIGNsYXNzPSJ1aS1jaGtib3gtaWNvbiB1aS1pY29uIHVpLWljb24tYmxhbmsgdWktYyI+PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJ1aS1jaGtib3gtbGFiZWwiPkVuYWJsZSBhY2Nlc3MgcmVxdWVzdDwvc3Bhbj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpyZXF1ZXN0QWNjZXNzX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiU2VsZWN0Qm9vbGVhbkNoZWNrYm94IiwiaW5wdXRmYXIiLHtpZDoiZGF0YXNldEZvcm06cmVxdWVzdEFjY2VzcyJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQyMDE2IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDIwMTYiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdhY2Nlc3NQb3B1cCcpLmhpZGUoKX0sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQyMDE2JnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm0gbWVzc2FnZVBhbmVsJnF1b3Q7fSk7cmV0dXJuIGZhbHNlO31dKTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPkNvbnRpbnVlPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjAxNl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPlByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQyMDE2Iix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MjAxNiJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdhY2Nlc3NQb3B1cCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06YWNjZXNzUG9wdXBfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiYWNjZXNzUG9wdXAiLHtpZDoiZGF0YXNldEZvcm06YWNjZXNzUG9wdXAiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTppbnJldmlldyIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTppbnJldmlld190aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+U3VibWl0IGZvciBSZXZpZXc8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtd2FybmluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi13YXJuaW5nLXNpZ24iPjwvc3Bhbj4gWW91IHdpbGwgbm90IGJlIGFibGUgdG8gbWFrZSBjaGFuZ2VzIHRvIHRoaXMgZGF0YXNldCB3aGlsZSBpdCBpcyBpbiByZXZpZXcuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIwMjAiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MjAyMCIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmJjbih0aGlzLGV2ZW50LFtmdW5jdGlvbihldmVudCl7UEYoJ2lucmV2aWV3JykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpO30sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQyMDIwJnF1b3Q7fSk7cmV0dXJuIGZhbHNlO31dKTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPlN1Ym1pdDwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIwMjBfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MjAyMCIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDIwMjAifSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdpbnJldmlldycpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06aW5yZXZpZXdfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiaW5yZXZpZXciLHtpZDoiZGF0YXNldEZvcm06aW5yZXZpZXciLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpwdWJsaXNoQ29uZmlybSIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpwdWJsaXNoQ29uZmlybV90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UHVibGlzaCBEYXRhc2V0PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIj48L3NwYW4+IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwdWJsaXNoIHRoaXMgZGF0YXNldD8gT25jZSB5b3UgZG8gc28gaXQgbXVzdCByZW1haW4gcHVibGlzaGVkLgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+PGRpdiBpZD0idGVybXMtYWdyZWVtZW50LWJsb2NrIiBjbGFzcz0id2VsbCI+QnkgZGVmYXVsdCBkYXRhc2V0cyBhcmUgcHVibGlzaGVkIHdpdGggdGhlIENDMC3igJxQdWJsaWMgRG9tYWluIERlZGljYXRpb27igJ0gd2FpdmVyLiBMZWFybiBtb3JlIGFib3V0IHRoZSBDQzAgd2FpdmVyIDxhIHRhcmdldD1fYmxhbmsgaHJlZj0naHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvY2hvb3NlL3plcm8vJz5oZXJlPC9hPi4gPGJyPjxicj4gVG8gcHVibGlzaCB3aXRoIGN1c3RvbSBUZXJtcyBvZiBVc2UsIGNsaWNrIHRoZSBDYW5jZWwgYnV0dG9uIGFuZCBnbyB0byB0aGUgVGVybXMgdGFiIGZvciB0aGlzIGRhdGFzZXQuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQyMDI2IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDIwMjYiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdwdWJsaXNoQ29uZmlybScpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTt9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MjAyNiZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5Db250aW51ZTwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIwMjZfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MjAyNiIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDIwMjYifSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdwdWJsaXNoQ29uZmlybScpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06cHVibGlzaENvbmZpcm1fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwicHVibGlzaENvbmZpcm0iLHtpZDoiZGF0YXNldEZvcm06cHVibGlzaENvbmZpcm0iLG1vZGFsOnRydWUsd2lkdGg6IjcwJSJ9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpwdWJsaXNoUGFyZW50IiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnB1Ymxpc2hQYXJlbnRfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlB1Ymxpc2ggRGF0YXNldDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC13YXJuaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPlRoaXMgZGF0YXNldCBjYW5ub3QgYmUgcHVibGlzaGVkIHVudGlsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZGF0YXZlcnNlL2hhcnZhcmQiIHRpdGxlPSJIYXJ2YXJkIERhdGF2ZXJzZSI+SGFydmFyZCBEYXRhdmVyc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiBpcyBwdWJsaXNoZWQuIFdvdWxkIHlvdSBsaWtlIHRvIHB1Ymxpc2ggYm90aCByaWdodCBub3c/CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD48ZGl2IGlkPSJ0ZXJtcy1hZ3JlZW1lbnQtYmxvY2siIGNsYXNzPSJ3ZWxsIj5CeSBkZWZhdWx0IGRhdGFzZXRzIGFyZSBwdWJsaXNoZWQgd2l0aCB0aGUgQ0MwLeKAnFB1YmxpYyBEb21haW4gRGVkaWNhdGlvbuKAnSB3YWl2ZXIuIExlYXJuIG1vcmUgYWJvdXQgdGhlIENDMCB3YWl2ZXIgCjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9jaG9vc2UvemVyby8iIHJlbD0ibm9mb2xsb3ciPmhlcmU8L2E+LiAKPGJyPgo8YnI+IFRvIHB1Ymxpc2ggd2l0aCBjdXN0b20gVGVybXMgb2YgVXNlLCBjbGljayB0aGUgQ2FuY2VsIGJ1dHRvbiBhbmQgZ28gdG8gdGhlIFRlcm1zIHRhYiBmb3IgdGhpcyBkYXRhc2V0LjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGVscC1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmNlIHlvdSBwdWJsaXNoIHRoaXMgZGF0YXNldCBpdCBtdXN0IHJlbWFpbiBwdWJsaXNoZWQuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIwMzgiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MjAzOCIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmJjbih0aGlzLGV2ZW50LFtmdW5jdGlvbihldmVudCl7UEYoJ3B1Ymxpc2hQYXJlbnQnKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7fSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDIwMzgmcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+WWVzLCBQdWJsaXNoIEJvdGg8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQyMDM4X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDIwMzgiLHtpZDoiZGF0YXNldEZvcm06al9pZHQyMDM4In0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRigncHVibGlzaFBhcmVudCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06cHVibGlzaFBhcmVudF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJwdWJsaXNoUGFyZW50Iix7aWQ6ImRhdGFzZXRGb3JtOnB1Ymxpc2hQYXJlbnQiLG1vZGFsOnRydWUsd2lkdGg6IjcwJSJ9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpyZWxlYXNlRHJhZnQiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06cmVsZWFzZURyYWZ0X3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5QdWJsaXNoIERhdGFzZXQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij48c3BhbiBpZD0iZGF0YXNldEZvcm06al9pZHQyMDQwIj48L3NwYW4+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmZvY3VzKCdkYXRhc2V0Rm9ybTpvcHRpb25zJyk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIj48L3NwYW4+IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXB1Ymxpc2ggdGhpcyBkYXRhc2V0PwogICAgICAgICAgICAgICAgICAgICAgICA8L3A+PGRpdiBpZD0idGVybXMtYWdyZWVtZW50LWJsb2NrIiBjbGFzcz0id2VsbCI+QnkgZGVmYXVsdCBkYXRhc2V0cyBhcmUgcHVibGlzaGVkIHdpdGggdGhlIENDMC3igJxQdWJsaWMgRG9tYWluIERlZGljYXRpb27igJ0gd2FpdmVyLiBMZWFybiBtb3JlIGFib3V0IHRoZSBDQzAgd2FpdmVyIAo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvY2hvb3NlL3plcm8vIiByZWw9Im5vZm9sbG93Ij5oZXJlPC9hPi4gCjxicj4KPGJyPiBUbyBwdWJsaXNoIHdpdGggY3VzdG9tIFRlcm1zIG9mIFVzZSwgY2xpY2sgdGhlIENhbmNlbCBidXR0b24gYW5kIGdvIHRvIHRoZSBUZXJtcyB0YWIgZm9yIHRoaXMgZGF0YXNldC48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgaWYgdGhpcyBpcyBhIG1pbm9yIG9yIG1ham9yIHZlcnNpb24gdXBkYXRlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPjx0YWJsZSBpZD0iZGF0YXNldEZvcm06b3B0aW9ucyIgcm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0idWktc2VsZWN0b25lcmFkaW8gdWktd2lkZ2V0Ij48dHI+PHRkPjxkaXYgY2xhc3M9InVpLXJhZGlvYnV0dG9uIHVpLXdpZGdldCI+PGRpdiBjbGFzcz0idWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIj48aW5wdXQgaWQ9ImRhdGFzZXRGb3JtOm9wdGlvbnM6MCIgbmFtZT0iZGF0YXNldEZvcm06b3B0aW9ucyIgdHlwZT0icmFkaW8iIHZhbHVlPSIxIiBjaGVja2VkPSJjaGVja2VkIiAvPjwvZGl2PjxkaXYgY2xhc3M9InVpLXJhZGlvYnV0dG9uLWJveCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1kZWZhdWx0IHVpLXN0YXRlLWFjdGl2ZSI+PHNwYW4gY2xhc3M9InVpLXJhZGlvYnV0dG9uLWljb24gdWktaWNvbiB1aS1pY29uLWJ1bGxldCB1aS1jIj48L3NwYW4+PC9kaXY+PC9kaXY+PGxhYmVsIGZvcj0iZGF0YXNldEZvcm06b3B0aW9uczowIj5NaW5vciBSZWxlYXNlICgxLjEpPC9sYWJlbD48L3RkPjx0ZD48ZGl2IGNsYXNzPSJ1aS1yYWRpb2J1dHRvbiB1aS13aWRnZXQiPjxkaXYgY2xhc3M9InVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSI+PGlucHV0IGlkPSJkYXRhc2V0Rm9ybTpvcHRpb25zOjEiIG5hbWU9ImRhdGFzZXRGb3JtOm9wdGlvbnMiIHR5cGU9InJhZGlvIiB2YWx1ZT0iMiIgLz48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1yYWRpb2J1dHRvbi1ib3ggdWktd2lkZ2V0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGVmYXVsdCI+PHNwYW4gY2xhc3M9InVpLXJhZGlvYnV0dG9uLWljb24gdWktaWNvbiB1aS1pY29uLWJsYW5rIHVpLWMiPjwvc3Bhbj48L2Rpdj48L2Rpdj48bGFiZWwgZm9yPSJkYXRhc2V0Rm9ybTpvcHRpb25zOjEiPk1ham9yIFJlbGVhc2UgKDIuMCk8L2xhYmVsPjwvdGQ+PC90cj48L3RhYmxlPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOm9wdGlvbnNfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiU2VsZWN0T25lUmFkaW8iLCJ3aWRnZXRfZGF0YXNldEZvcm1fb3B0aW9ucyIse2lkOiJkYXRhc2V0Rm9ybTpvcHRpb25zIn0pO30pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjA1MiIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQyMDUyIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRigncmVsZWFzZURyYWZ0JykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpO30sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQyMDUyJnF1b3Q7fSk7cmV0dXJuIGZhbHNlO31dKTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPkNvbnRpbnVlPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjA1Ml9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPlByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQyMDUyIix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MjA1MiJ9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ3JlbGVhc2VEcmFmdCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06cmVsZWFzZURyYWZ0X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsInJlbGVhc2VEcmFmdCIse2lkOiJkYXRhc2V0Rm9ybTpyZWxlYXNlRHJhZnQiLG1vZGFsOnRydWUsd2lkdGg6IjcwJSJ9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTptYXlOb3RSZWxlYXNlIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOm1heU5vdFJlbGVhc2VfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlB1Ymxpc2ggRGF0YXNldDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1kYW5nZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPlRoaXMgZGF0YXNldCBjYW5ub3QgYmUgcHVibGlzaGVkIHVudGlsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZGF0YXZlcnNlLnhodG1sP2FsaWFzPWhhcnZhcmQiIHRpdGxlPSJIYXJ2YXJkIERhdGF2ZXJzZSI+SGFydmFyZCBEYXRhdmVyc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiAgaXMgcHVibGlzaGVkIGJ5IGl0cyBhZG1pbmlzdHJhdG9yLgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdtYXlOb3RSZWxlYXNlJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOm1heU5vdFJlbGVhc2VfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwibWF5Tm90UmVsZWFzZSIse2lkOiJkYXRhc2V0Rm9ybTptYXlOb3RSZWxlYXNlIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06bWF5bm90UHVibGlzaFBhcmVudCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTptYXlub3RQdWJsaXNoUGFyZW50X3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5QdWJsaXNoIERhdGFzZXQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24iPjwvc3Bhbj5UaGlzIGRhdGFzZXQgY2Fubm90IGJlIHB1Ymxpc2hlZCB1bnRpbCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2RhdGF2ZXJzZS9oYXJ2YXJkIiB0aXRsZT0iSGFydmFyZCBEYXRhdmVyc2UiPkhhcnZhcmQgRGF0YXZlcnNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4gYW5kIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZGF0YXZlcnNlLyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4gIGFyZSBwdWJsaXNoZWQuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUEYoJ21heW5vdFB1Ymxpc2hQYXJlbnQnKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06bWF5bm90UHVibGlzaFBhcmVudF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJtYXlub3RQdWJsaXNoUGFyZW50Iix7aWQ6ImRhdGFzZXRGb3JtOm1heW5vdFB1Ymxpc2hQYXJlbnQiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpzZW5kQmFja1RvQ29udHJpYnV0b3IiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VuZEJhY2tUb0NvbnRyaWJ1dG9yX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5SZXR1cm4gdG8gQXV0aG9yPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIj48L3NwYW4+IFJldHVybiB0aGlzIGRhdGFzZXQgdG8gY29udHJpYnV0b3IgZm9yIG1vZGlmaWNhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQyMDc0IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDIwNzQiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdzZW5kQmFja1RvQ29udHJpYnV0b3InKS5oaWRlKCl9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MjA3NCZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5Db250aW51ZTwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIwNzRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MjA3NCIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDIwNzQifSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdzZW5kQmFja1RvQ29udHJpYnV0b3InKS5oaWRlKCk7UEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNlbmRCYWNrVG9Db250cmlidXRvcl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJzZW5kQmFja1RvQ29udHJpYnV0b3IiLHtpZDoiZGF0YXNldEZvcm06c2VuZEJhY2tUb0NvbnRyaWJ1dG9yIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQyMDc2IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnJldHVyblRvQXV0aG9yQ29tbWFuZCA9IGZ1bmN0aW9uKCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOmpfaWR0MjA3NiIsZjoiZGF0YXNldEZvcm0iLHBhOmFyZ3VtZW50c1swXX0pO308L3NjcmlwdD48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJqYXZheC5mYWNlcy5WaWV3U3RhdGUiIGlkPSJqX2lkMTpqYXZheC5mYWNlcy5WaWV3U3RhdGU6MCIgdmFsdWU9Ii0zNDA3NzI4MjUwMTUzMDEzNDgxOi0yMTY4ODg2MzQ3NTYyMzM4MTU1IiBhdXRvY29tcGxldGU9Im9mZiIgLz4KPC9mb3JtPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3ZlckhUTUwoJ0FsbG93ZWQgSFRNTCBUYWdzJyk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gb3BlbkRpYWxvZygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ2RldGFpbHMnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW5Db21wYXJlVHdvKCkgewogICAgICAgICAgICAgICAgICAgICAgICBQRignY29tcGFyZVR3bycpLnNob3coKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVzdENoZWNrQm94ZXMoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IFBGKCd2ZXJzaW9uc1RhYmxlJykuZ2V0U2VsZWN0ZWRSb3dzQ291bnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ICE9PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignY29tcGFyZVR3bycpLnNob3coKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2J1dHRvbltpZCQ9ImNvbXBhcmVWZXJzaW9ucyJdJykudHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0RmlsZXNTZWxlY3RlZEZvclJlc3RyaWN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY291bnQgPSBQRignZmlsZXNUYWJsZScpLmdldFNlbGVjdGVkUm93c0NvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ3NlbGVjdEZpbGVzRm9yUmVzdHJpY3QnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignYWNjZXNzUG9wdXAnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RGaWxlc1NlbGVjdGVkRm9yVGFncygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50ID0gUEYoJ2ZpbGVzVGFibGUnKS5nZXRTZWxlY3RlZFJvd3NDb3VudCgpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdzZWxlY3RGaWxlc0ZvckVkaXRUYWdzJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFRhZ3NDb21tYW5kKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEZpbGVzU2VsZWN0ZWRGb3JEZWxldGUoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IFBGKCdmaWxlc1RhYmxlJykuZ2V0U2VsZWN0ZWRSb3dzQ291bnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignc2VsZWN0RmlsZXNGb3JEZWxldGUnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignZGVsZXRlU2VsZWN0ZWRGaWxlQ29uZmlybWF0aW9uJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RGaWxlc1NlbGVjdGVkRm9yRWRpdE1ldGFkYXRhKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY291bnQgPSBQRignZmlsZXNUYWJsZScpLmdldFNlbGVjdGVkUm93c0NvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ3NlbGVjdEZpbGVzRm9yRWRpdE1ldGFkYXRhJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICB9IC8vZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEkgY29tbWVudGVkIG91dCB0aGUgY29kZSBiZWxvdzsgaWYgdGhlcmUncwogICAgICAgICAgICAgICAgICAgICAgICAvLyAxIG9yIG1vcmUgZmlsZSBzZWxlY3RlZCwgSSBkb24ndCB3YW50IHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWV0aG9kIHRvIGFjdGl2YXRlIHRoZSBwOnJlbW90ZUNvbW1hbmQgdGhhdAogICAgICAgICAgICAgICAgICAgICAgICAvLyBpc3N1ZXMgdGhlIHJlZGlyZWN0IHRvIHRoZSBlZGl0IHBhZ2UgKG9yCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvIGFueXRoaW5nIGVsc2UgZm9yIHRoYXQgbWF0dGVyKS4gRG9pbmcKICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgdGhpcyB3YXkgd2FzLCBmb3Igc29tZSByZWFzb24sIGNhdXNpbmcKICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwYWdlIHRvIHN0aWxsIHRyeSB0byByZW5kZXIgKD8/KSwgaW4KICAgICAgICAgICAgICAgICAgICAgICAgLy8gc29tZSBwYXJ0aWFsLCBoYWxmLWJha2VkIHN0YXRlIC0gd2l0aCBubwogICAgICAgICAgICAgICAgICAgICAgICAvLyB3b3JraW5nVmVyc2lvbiBwcmVzZW50LCBldGMuIC0gdGhhdCByZXN1bHRlZAogICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBzb21lIE5VTEwgcG9pbnRlcnMgaW4gdGhlIGxvZ3MuLi4gU28sCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc3RlYWQsIHRoZSByZWRpcmVjdCB3aWxsIGJlIGRvbmUgYnkgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpcmVjdCBhY3Rpb249IGF0dHJpYnV0ZSBpbiB0aGUgb3JpZ2luYWwKICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tbWFuZEJ1dHRvbi4gLS0gTC5BLiA0LjIuMQogICAgICAgICAgICAgICAgICAgICAgICAvL29wZW5FZGl0RmlsZXNQYWdlQ29tbWFuZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAvL30KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdXBkYXRlVGVtcGxhdGUoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2J1dHRvbltpZCQ9InVwZGF0ZVRlbXBsYXRlIl0nKS50cmlnZ2VyKCdjbGljaycpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGVja05ld2x5UmVzdHJpY3RlZCgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJ2lucHV0W2lkJD0ic2hvd0FjY2Vzc1BvcHVwIl0nKS52YWwoKSA9PT0gJ3RydWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignYWNjZXNzUG9wdXAnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdidXR0b25baWQkPSJkYXRhc2V0U2F2ZSJdJykudHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB1cGRhdGVIaWRkZW5SZWFzb24odGV4dEFyZWEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnaW5wdXRbaWQkPSJoaWRkZW5SZWFzb25JbnB1dCJdJykudmFsKHRleHRBcmVhLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICA8L3NjcmlwdD4KICAgICAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJmb290ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PGRpdiBjbGFzcz0iY29sLXNtLTggc21hbGwiPgogICAgICAgICAgICAgICAgICAgIDxwPkNvcHlyaWdodCAmIzE2OTsgMjAxOSwgVGhlIFByZXNpZGVudCAmIzM4OyBGZWxsb3dzIG9mIEhhcnZhcmQgQ29sbGVnZcKgfMKgIDxhIGhyZWY9Imh0dHA6Ly9iZXN0LXByYWN0aWNlcy5kYXRhdmVyc2Uub3JnL2hhcnZhcmQtcG9saWNpZXMvaGFydmFyZC1wcml2YWN5LXBvbGljeS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+UHJpdmFjeSBQb2xpY3k8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQgdGV4dC1yaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icG93ZXJlZGJ5bG9nbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlBvd2VyZWQgYnk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdmVyc2Uub3JnLyIgdGl0bGU9IlRoZSBEYXRhdmVyc2UgUHJvamVjdCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSIvcmVzb3VyY2VzL2ltYWdlcy9kYXRhdmVyc2VfcHJvamVjdF9sb2dvLnN2ZyIgd2lkdGg9IjExOCIgaGVpZ2h0PSI0MCIgb25lcnJvcj0idGhpcy5zcmM9Jy9yZXNvdXJjZXMvaW1hZ2VzL2RhdGF2ZXJzZXByb2plY3RfbG9nby5wbmcnIiBhbHQ9IlRoZSBEYXRhdmVyc2UgUHJvamVjdCIgLz48L2E+PHNwYW4gY2xhc3M9InZlcnNpb24iPnYuIDQuMTU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj48c3R5bGU+CiNmZWVkYmFja1RhYiB7CiAgICBwb3NpdGlvbjpmaXhlZDsKICAgIGJvdHRvbTowOwogICAgcmlnaHQ6NTBweDsKfQojZmVlZGJhY2tUYWIgYnV0dG9uLmJ0bi1mZWVkYmFjayB7CiAgICBtYXJnaW4tcmlnaHQ6ODlweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKfQouYnRuLWZlZWRiYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzU1QjI4OwogIGJvcmRlci1jb2xvcjogI0M1NUIyODsKICBjb2xvcjogI2ZmZjsKfQouYnRuLWZlZWRiYWNrOmhvdmVyLAouYnRuLWZlZWRiYWNrOmZvY3VzLAouYnRuLWZlZWRiYWNrOmFjdGl2ZSwKLmJ0bi1mZWVkYmFjay5hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6ICNiMDUxMjQ7CiAgYm9yZGVyLWNvbG9yOiAjOWI0NzFmOwogIGNvbG9yOiAjZmZmOwp9Ci5idG4tZmVlZGJhY2suZGlzYWJsZWQ6aG92ZXIsCi5idG4tZmVlZGJhY2suZGlzYWJsZWQ6Zm9jdXMsCi5idG4tZmVlZGJhY2suZGlzYWJsZWQ6YWN0aXZlLAouYnRuLWZlZWRiYWNrLmRpc2FibGVkLmFjdGl2ZSwKLmJ0bi1mZWVkYmFja1tkaXNhYmxlZF06aG92ZXIsCi5idG4tZmVlZGJhY2tbZGlzYWJsZWRdOmZvY3VzLAouYnRuLWZlZWRiYWNrW2Rpc2FibGVkXTphY3RpdmUsCi5idG4tZmVlZGJhY2tbZGlzYWJsZWRdLmFjdGl2ZSwKZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZmVlZGJhY2s6aG92ZXIsCmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWZlZWRiYWNrOmZvY3VzLApmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1mZWVkYmFjazphY3RpdmUsCmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWZlZWRiYWNrLmFjdGl2ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogI0M1NUIyODsKICBib3JkZXItY29sb3I6ICNDNTVCMjg7Cn0KI2ZlZWRiYWNrVGFiQm9keSBkaXYucGFuZWwgewogICAgd2lkdGg6MTkwcHg7CiAgICBtYXJnaW46MDsKICAgIGJhY2tncm91bmQ6I0Y4RjhGODsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7CiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Cn0KPC9zdHlsZT4KCjxkaXYgaWQ9ImZlZWRiYWNrVGFiIj4KICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1mZWVkYmFjayIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI2ZlZWRiYWNrVGFiQm9keSI+CiAgICAgICAgRmVlZGJhY2sKICAgIDwvYnV0dG9uPgogICAgPGRpdiBpZD0iZmVlZGJhY2tUYWJCb2R5IiBjbGFzcz0iY29sbGFwc2UiPgogICAgICAgIDxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5IHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgSGVscCBpbXByb3ZlIERhdGF2ZXJzZTogVm9sdW50ZWVyIGZvciBvbmxpbmUgdXNhYmlsaXR5IHJlc2VhcmNoIQogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1mZWVkYmFjayIgaHJlZj0iaHR0cHM6Ly9nb28uZ2wvZm9ybXMvcDd1dTNHZmlXWVNsSnJzaTEiIHJvbGU9ImJ1dHRvbiIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNmZWVkYmFja1RhYkJvZHkiPgogICAgICAgICAgICAgICAgICBMZWFybiBNb3JlCiAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBpZD0iYWpheFN0YXR1c1BhbmVsIj48ZGl2IGlkPSJhamF4U3RhdHVzUGFuZWxfc3RhcnQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxpbWcgc3JjPSIvcmVzb3VyY2VzL2ltYWdlcy9hamF4LWxvYWRpbmcuZ2lmO2pzZXNzaW9uaWQ9OTRiZTcwMmJhMzUzODQxYzJkMmM1ZTI5YmExMiIgYWx0PSJMb2FkaW5nIiAvPjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImFqYXhTdGF0dXNQYW5lbF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJBamF4U3RhdHVzIiwid2lkZ2V0X2FqYXhTdGF0dXNQYW5lbCIse2lkOiJhamF4U3RhdHVzUGFuZWwifSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iY29udGFjdERpYWxvZyIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJjb250YWN0RGlhbG9nX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5Db250YWN0IEhhcnZhcmQgRGF0YXZlcnNlIFN1cHBvcnQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50Ij48ZGl2IGlkPSJqX2lkdDIxMDIiPgo8Zm9ybSBpZD0iZW1haWxGb3JtIiBuYW1lPSJlbWFpbEZvcm0iIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvZGF0YXNldC54aHRtbDtqc2Vzc2lvbmlkPTk0YmU3MDJiYTM1Mzg0MWMyZDJjNWUyOWJhMTI/cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08iIGNsYXNzPSJmb3JtLWhvcml6b250YWwiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVtYWlsRm9ybSIgdmFsdWU9ImVtYWlsRm9ybSIgLz4KPHNwYW4gaWQ9ImVtYWlsRm9ybTpqX2lkdDIxMDMiPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMobnVsbCwgJ2NvbnRhY3REaWFsb2cnKTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWVzc2FnZVRvIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+VG88L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgaWQ9Im1lc3NhZ2VUbyIgY2xhc3M9ImZvcm0tY29udHJvbC1zdGF0aWMiPkhhcnZhcmQgRGF0YXZlcnNlIFN1cHBvcnQ8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ1c2VyRW1haWwiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj5Gcm9tIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWFzdGVyaXNrIHRleHQtZGFuZ2VyIiB0aXRsZT0iUmVxdWlyZWQgZmllbGQiPjwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+PGlucHV0IGlkPSJlbWFpbEZvcm06dXNlckVtYWlsIiBuYW1lPSJlbWFpbEZvcm06dXNlckVtYWlsIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBzaXplPSIzMCIgY2xhc3M9InVpLWlucHV0ZmllbGQgdWktaW5wdXR0ZXh0IHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgZm9ybS1jb250cm9sIiAvPjxzY3JpcHQgaWQ9ImVtYWlsRm9ybTp1c2VyRW1haWxfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJJbnB1dFRleHQiLCJ3aWRnZXRfZW1haWxGb3JtX3VzZXJFbWFpbCIse2lkOiJlbWFpbEZvcm06dXNlckVtYWlsIn0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWVzc2FnZVN1YmplY3QiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj5TdWJqZWN0IDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWFzdGVyaXNrIHRleHQtZGFuZ2VyIiB0aXRsZT0iUmVxdWlyZWQgZmllbGQiPjwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij48aW5wdXQgaWQ9ImVtYWlsRm9ybTptZXNzYWdlU3ViamVjdCIgbmFtZT0iZW1haWxGb3JtOm1lc3NhZ2VTdWJqZWN0IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBjbGFzcz0idWktaW5wdXRmaWVsZCB1aS1pbnB1dHRleHQgdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCBmb3JtLWNvbnRyb2wiIC8+PHNjcmlwdCBpZD0iZW1haWxGb3JtOm1lc3NhZ2VTdWJqZWN0X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0Iiwid2lkZ2V0X2VtYWlsRm9ybV9tZXNzYWdlU3ViamVjdCIse2lkOiJlbWFpbEZvcm06bWVzc2FnZVN1YmplY3QifSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4gICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0idXNlck1lc3NhZ2UiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj5NZXNzYWdlIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWFzdGVyaXNrIHRleHQtZGFuZ2VyIiB0aXRsZT0iUmVxdWlyZWQgZmllbGQiPjwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij48dGV4dGFyZWEgaWQ9ImVtYWlsRm9ybTp1c2VyTWVzc2FnZSIgbmFtZT0iZW1haWxGb3JtOnVzZXJNZXNzYWdlIiBjb2xzPSIyMCIgcm93cz0iMTAiIG1heGxlbmd0aD0iMjE0NzQ4MzY0NyIgY2xhc3M9InVpLWlucHV0ZmllbGQgdWktaW5wdXR0ZXh0YXJlYSB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIGZvcm0tY29udHJvbCI+PC90ZXh0YXJlYT48c2NyaXB0IGlkPSJlbWFpbEZvcm06dXNlck1lc3NhZ2VfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0YXJlYSIsIndpZGdldF9lbWFpbEZvcm1fdXNlck1lc3NhZ2UiLHtpZDoiZW1haWxGb3JtOnVzZXJNZXNzYWdlIixhdXRvUmVzaXplOmZhbHNlfSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLW9mZnNldC0zIGNvbC1zbS05Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImhpZ2hsaWdodEJvbGQiPlBsZWFzZSBmaWxsIHRoaXMgb3V0IHRvIHByb3ZlIHlvdSBhcmUgbm90IGEgcm9ib3QuPC9zcGFuPiA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1hc3RlcmlzayB0ZXh0LWRhbmdlciIgdGl0bGU9IlJlcXVpcmVkIGZpZWxkIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4gKyAgPSA8aW5wdXQgaWQ9ImVtYWlsRm9ybTptZXNzYWdlU3VtIiBuYW1lPSJlbWFpbEZvcm06bWVzc2FnZVN1bSIgdHlwZT0idGV4dCIgc2l6ZT0iNCIgY2xhc3M9InVpLWlucHV0ZmllbGQgdWktaW5wdXR0ZXh0IHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiIC8+PHNjcmlwdCBpZD0iZW1haWxGb3JtOm1lc3NhZ2VTdW1fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5QcmltZUZhY2VzLmN3KCJJbnB1dFRleHQiLCJ3aWRnZXRfZW1haWxGb3JtX21lc3NhZ2VTdW0iLHtpZDoiZW1haWxGb3JtOm1lc3NhZ2VTdW0ifSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48YnV0dG9uIGlkPSJlbWFpbEZvcm06al9pZHQyMTIxIiBuYW1lPSJlbWFpbEZvcm06al9pZHQyMTIxIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZW1haWxGb3JtOmpfaWR0MjEyMSZxdW90Oyx1OiZxdW90O2VtYWlsRm9ybSZxdW90OyxvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyl7aWYgKGFyZ3MgJmFtcDsmYW1wOyAhYXJncy52YWxpZGF0aW9uRmFpbGVkKSBQRignY29udGFjdEZvcm0nKS5oaWRlKCk7O30scGE6W3tuYW1lOiZxdW90O0RPX1ZBTElEQVRJT04mcXVvdDssdmFsdWU6JnF1b3Q7dHJ1ZSZxdW90O31dLGZpOiZxdW90O2pfaWR0MjEwMiZxdW90O30pO3JldHVybiBmYWxzZTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPlNlbmQgTWVzc2FnZTwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJlbWFpbEZvcm06al9pZHQyMTIxX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9lbWFpbEZvcm1fal9pZHQyMTIxIix7aWQ6ImVtYWlsRm9ybTpqX2lkdDIxMjEifSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignY29udGFjdEZvcm0nKS5oaWRlKCkiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iamF2YXguZmFjZXMuVmlld1N0YXRlIiBpZD0ial9pZDE6amF2YXguZmFjZXMuVmlld1N0YXRlOjAiIHZhbHVlPSItMzQwNzcyODI1MDE1MzAxMzQ4MTotMjE2ODg4NjM0NzU2MjMzODE1NSIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+CjwvZm9ybT48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJjb250YWN0RGlhbG9nX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImNvbnRhY3RGb3JtIix7aWQ6ImNvbnRhY3REaWFsb2ciLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD4KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9ImRlZmVyIiBzcmM9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9icy9qcy9ib290c3RyYXAubWluLmpzLnhodG1sP3ZlcnNpb249NC4xNSI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSJkZWZlciIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvanMvaWUtY29tcGF0LmpzLnhodG1sP3ZlcnNpb249NC4xNSI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSJkZWZlciIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvanMvZHZfcmViaW5kX2Jvb3RzdHJhcF91aS5qcy54aHRtbD92ZXJzaW9uPTQuMTUiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iZGVmZXIiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pzL293bC5jYXJvdXNlbC5qcy54aHRtbD92ZXJzaW9uPTQuMTUiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iZGVmZXIiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pzL2pxdWVyeS5tYXRjaEhlaWdodC5qcy54aHRtbD92ZXJzaW9uPTQuMTUiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iZGVmZXIiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pzL2pxdWVyeS5zaGFycnJlLmpzLnhodG1sP3ZlcnNpb249NC4xNSI+PC9zY3JpcHQ+ICAKICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9ImRlZmVyIiBzcmM9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9qcy9jbGlwYm9hcmQubWluLmpzLnhodG1sP3ZlcnNpb249NC4xNSI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgLy88IVtDREFUQVsKICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgLy8gTmF2YmFyIFNlYXJjaCBUb2dnbGUKICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcjbmF2YmFyLXNlYXJjaC10b2dnbGUnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgICQodGhpcykucGFyZW50KCJsaSIpLmhpZGUoKTsKICAgICAgICAgICAgICAgICAgICAkKCJmb3JtLm5hdmJhci1mb3JtW3JvbGU9J3NlYXJjaCddIikuc2hvdygpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKCdib2R5JykuY2xpY2soZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoISQoZS50YXJnZXQpLmNsb3Nlc3QoImZvcm0ubmF2YmFyLWZvcm1bcm9sZT0nc2VhcmNoJ10iKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgiZm9ybS5uYXZiYXItZm9ybVtyb2xlPSdzZWFyY2gnXSIpLmhpZGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgiI25hdmJhci1zZWFyY2gtdG9nZ2xlIikucGFyZW50KCJsaSIpLnNob3coKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy8gUmViaW5kIGJvb3RzdHJhcCBVSSBjb21wb25lbnRzCiAgICAgICAgICAgICAgICBiaW5kX2JzdWlfY29tcG9uZW50cygpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAvL11dPgogICAgICAgIDwvc2NyaXB0PjwvYm9keT4KPC9odG1sPg==
|
|
35
|
-
http_version:
|
|
36
|
-
recorded_at: Wed, 03 Jul 2019 19:24:49 GMT
|
|
37
|
-
recorded_with: VCR 3.0.3
|