briard 2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/build.yml +37 -0
- data/.github/workflows/changelog.yml +37 -0
- data/.github/workflows/release.yml +47 -0
- data/.gitignore +59 -0
- data/.rubocop.yml +658 -0
- data/CHANGELOG.md +1 -0
- data/CITATION +16 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +226 -0
- data/LICENSE.md +21 -0
- data/README.md +1030 -0
- data/Rakefile +13 -0
- data/bin/briard +9 -0
- data/bolognese.gemspec +59 -0
- data/lib/briard/.env.example +3 -0
- data/lib/briard/array.rb +13 -0
- data/lib/briard/author_utils.rb +166 -0
- data/lib/briard/cli.rb +58 -0
- data/lib/briard/crossref_utils.rb +336 -0
- data/lib/briard/datacite_utils.rb +395 -0
- data/lib/briard/doi_utils.rb +65 -0
- data/lib/briard/metadata.rb +285 -0
- data/lib/briard/metadata_utils.rb +215 -0
- data/lib/briard/pubmed.rb +36 -0
- data/lib/briard/readers/bibtex_reader.rb +100 -0
- data/lib/briard/readers/citeproc_reader.rb +119 -0
- data/lib/briard/readers/codemeta_reader.rb +108 -0
- data/lib/briard/readers/crosscite_reader.rb +14 -0
- data/lib/briard/readers/crossref_reader.rb +368 -0
- data/lib/briard/readers/datacite_json_reader.rb +14 -0
- data/lib/briard/readers/datacite_reader.rb +341 -0
- data/lib/briard/readers/npm_reader.rb +115 -0
- data/lib/briard/readers/ris_reader.rb +114 -0
- data/lib/briard/readers/schema_org_reader.rb +263 -0
- data/lib/briard/string.rb +7 -0
- data/lib/briard/utils.rb +1369 -0
- data/lib/briard/version.rb +3 -0
- data/lib/briard/whitelist_scrubber.rb +47 -0
- data/lib/briard/writers/bibtex_writer.rb +32 -0
- data/lib/briard/writers/citation_writer.rb +14 -0
- data/lib/briard/writers/citeproc_writer.rb +11 -0
- data/lib/briard/writers/codemeta_writer.rb +29 -0
- data/lib/briard/writers/crosscite_writer.rb +11 -0
- data/lib/briard/writers/crossref_writer.rb +11 -0
- data/lib/briard/writers/csv_writer.rb +26 -0
- data/lib/briard/writers/datacite_json_writer.rb +11 -0
- data/lib/briard/writers/datacite_writer.rb +12 -0
- data/lib/briard/writers/jats_writer.rb +134 -0
- data/lib/briard/writers/rdf_xml_writer.rb +11 -0
- data/lib/briard/writers/ris_writer.rb +29 -0
- data/lib/briard/writers/schema_org_writer.rb +51 -0
- data/lib/briard/writers/turtle_writer.rb +11 -0
- data/lib/briard.rb +31 -0
- data/resources/2008/09/xsd.xsl +997 -0
- data/resources/crossref/AccessIndicators.xsd +47 -0
- data/resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd +10130 -0
- data/resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd +48 -0
- data/resources/crossref/JATS-journalpublishing1-elements.xsd +8705 -0
- data/resources/crossref/JATS-journalpublishing1-mathml3-elements.xsd +8608 -0
- data/resources/crossref/JATS-journalpublishing1-mathml3.xsd +49 -0
- data/resources/crossref/JATS-journalpublishing1.xsd +6176 -0
- data/resources/crossref/clinicaltrials.xsd +61 -0
- data/resources/crossref/common5.3.1.xsd +1530 -0
- data/resources/crossref/crossref5.3.1.xsd +1949 -0
- data/resources/crossref/crossref_query_output3.0.xsd +1097 -0
- data/resources/crossref/fundref.xsd +49 -0
- data/resources/crossref/module-ali.xsd +39 -0
- data/resources/crossref/relations.xsd +444 -0
- data/resources/datacite-contributorType-v4.xsd +35 -0
- data/resources/datacite-dateType-v4.xsd +25 -0
- data/resources/datacite-descriptionType-v4.xsd +19 -0
- data/resources/datacite-funderIdentifierType-v4.xsd +15 -0
- data/resources/datacite-nameType-v4.xsd +10 -0
- data/resources/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/datacite-relationType-v4.xsd +49 -0
- data/resources/datacite-resourceType-v4.xsd +28 -0
- data/resources/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-2.1/include/datacite-contributorType-v1.1.xsd +22 -0
- data/resources/kernel-2.1/include/datacite-contributorType-v2.xsd +3 -0
- data/resources/kernel-2.1/include/datacite-dateType-v1.1.xsd +31 -0
- data/resources/kernel-2.1/include/datacite-dateType-v2.xsd +3 -0
- data/resources/kernel-2.1/include/datacite-descriptionType-v1.1.xsd +14 -0
- data/resources/kernel-2.1/include/datacite-descriptionType-v2.xsd +3 -0
- data/resources/kernel-2.1/include/datacite-relatedIdentifierType-v1.1.xsd +24 -0
- data/resources/kernel-2.1/include/datacite-relatedIdentifierType-v2.xsd +3 -0
- data/resources/kernel-2.1/include/datacite-relationType-v1.1.xsd +29 -0
- data/resources/kernel-2.1/include/datacite-relationType-v2.xsd +3 -0
- data/resources/kernel-2.1/include/datacite-resourceType-v1.1.xsd +22 -0
- data/resources/kernel-2.1/include/datacite-resourceType-v2.xsd +3 -0
- data/resources/kernel-2.1/include/datacite-titleType-v1.1.xsd +11 -0
- data/resources/kernel-2.1/include/datacite-titleType-v2.xsd +3 -0
- data/resources/kernel-2.1/metadata.xsd +315 -0
- data/resources/kernel-2.2/include/datacite-contributorType-v2.xsd +29 -0
- data/resources/kernel-2.2/include/datacite-dateType-v2.xsd +21 -0
- data/resources/kernel-2.2/include/datacite-descriptionType-v2.xsd +15 -0
- data/resources/kernel-2.2/include/datacite-relatedIdentifierType-v2.xsd +25 -0
- data/resources/kernel-2.2/include/datacite-relationType-v2.xsd +29 -0
- data/resources/kernel-2.2/include/datacite-resourceType-v2.xsd +23 -0
- data/resources/kernel-2.2/include/datacite-titleType-v2.xsd +10 -0
- data/resources/kernel-2.2/metadata.xsd +316 -0
- data/resources/kernel-3/include/datacite-contributorType-v3.1.xsd +35 -0
- data/resources/kernel-3/include/datacite-dateType-v3.xsd +21 -0
- data/resources/kernel-3/include/datacite-descriptionType-v3.xsd +17 -0
- data/resources/kernel-3/include/datacite-relatedIdentifierType-v3.1.xsd +30 -0
- data/resources/kernel-3/include/datacite-relationType-v3.1.xsd +38 -0
- data/resources/kernel-3/include/datacite-resourceType-v3.xsd +26 -0
- data/resources/kernel-3/include/datacite-titleType-v3.xsd +12 -0
- data/resources/kernel-3/include/xml.xsd +286 -0
- data/resources/kernel-3/metadata.xsd +380 -0
- data/resources/kernel-3.0/include/datacite-contributorType-v3.xsd +33 -0
- data/resources/kernel-3.0/include/datacite-dateType-v3.xsd +21 -0
- data/resources/kernel-3.0/include/datacite-descriptionType-v3.xsd +17 -0
- data/resources/kernel-3.0/include/datacite-relatedIdentifierType-v3.xsd +27 -0
- data/resources/kernel-3.0/include/datacite-relationType-v3.xsd +33 -0
- data/resources/kernel-3.0/include/datacite-resourceType-v3.xsd +26 -0
- data/resources/kernel-3.0/include/datacite-titleType-v3.xsd +12 -0
- data/resources/kernel-3.0/include/xml.xsd +286 -0
- data/resources/kernel-3.0/metadata.xsd +377 -0
- data/resources/kernel-3.1/include/datacite-contributorType-v3.1.xsd +35 -0
- data/resources/kernel-3.1/include/datacite-dateType-v3.xsd +21 -0
- data/resources/kernel-3.1/include/datacite-descriptionType-v3.xsd +17 -0
- data/resources/kernel-3.1/include/datacite-relatedIdentifierType-v3.1.xsd +30 -0
- data/resources/kernel-3.1/include/datacite-relationType-v3.1.xsd +38 -0
- data/resources/kernel-3.1/include/datacite-resourceType-v3.xsd +26 -0
- data/resources/kernel-3.1/include/datacite-titleType-v3.xsd +12 -0
- data/resources/kernel-3.1/include/xml.xsd +286 -0
- data/resources/kernel-3.1/metadata.xsd +380 -0
- data/resources/kernel-4/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4/include/datacite-dateType-v4.xsd +25 -0
- data/resources/kernel-4/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/kernel-4/include/datacite-relationType-v4.xsd +51 -0
- data/resources/kernel-4/include/datacite-resourceType-v4.xsd +43 -0
- data/resources/kernel-4/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4/include/xml.xsd +286 -0
- data/resources/kernel-4/metadata.xsd +707 -0
- data/resources/kernel-4.0/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.0/include/datacite-dateType-v4.xsd +21 -0
- data/resources/kernel-4.0/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.0/include/datacite-funderIdentifierType-v4.xsd +15 -0
- data/resources/kernel-4.0/include/datacite-relatedIdentifierType-v4.xsd +32 -0
- data/resources/kernel-4.0/include/datacite-relationType-v4.xsd +39 -0
- data/resources/kernel-4.0/include/datacite-resourceType-v4.xsd +26 -0
- data/resources/kernel-4.0/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.0/include/xml.xsd +286 -0
- data/resources/kernel-4.0/metadata.xsd +470 -0
- data/resources/kernel-4.1/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.1/include/datacite-dateType-v4.1.xsd +23 -0
- data/resources/kernel-4.1/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.1/include/datacite-funderIdentifierType-v4.xsd +15 -0
- data/resources/kernel-4.1/include/datacite-nameType-v4.1.xsd +10 -0
- data/resources/kernel-4.1/include/datacite-relatedIdentifierType-v4.xsd +32 -0
- data/resources/kernel-4.1/include/datacite-relationType-v4.1.xsd +46 -0
- data/resources/kernel-4.1/include/datacite-resourceType-v4.1.xsd +28 -0
- data/resources/kernel-4.1/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.1/include/xml.xsd +286 -0
- data/resources/kernel-4.1/metadata.xsd +483 -0
- data/resources/kernel-4.2/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.2/include/datacite-dateType-v4.xsd +25 -0
- data/resources/kernel-4.2/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.2/include/datacite-funderIdentifierType-v4.xsd +15 -0
- data/resources/kernel-4.2/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.2/include/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/kernel-4.2/include/datacite-relationType-v4.xsd +49 -0
- data/resources/kernel-4.2/include/datacite-resourceType-v4.xsd +28 -0
- data/resources/kernel-4.2/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.2/include/xml.xsd +286 -0
- data/resources/kernel-4.2/metadata.xsd +479 -0
- data/resources/kernel-4.3/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.3/include/datacite-dateType-v4.xsd +25 -0
- data/resources/kernel-4.3/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.3/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.3/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.3/include/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/kernel-4.3/include/datacite-relationType-v4.xsd +49 -0
- data/resources/kernel-4.3/include/datacite-resourceType-v4.xsd +28 -0
- data/resources/kernel-4.3/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.3/include/xml.xsd +286 -0
- data/resources/kernel-4.3/metadata.xsd +515 -0
- 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/oecd/dfg-mappings.json +1866 -0
- data/resources/oecd/for-mappings.json +1099 -0
- data/resources/oecd/fos-mappings.json +198 -0
- data/resources/schema_org/jsonldcontext.json +7477 -0
- data/resources/spdx/licenses.json +5297 -0
- data/resources/xml.xsd +286 -0
- data/spec/array_spec.rb +22 -0
- data/spec/author_utils_spec.rb +193 -0
- data/spec/cli_spec.rb +226 -0
- data/spec/datacite_utils_spec.rb +178 -0
- data/spec/doi_utils_spec.rb +314 -0
- data/spec/find_from_format_spec.rb +114 -0
- data/spec/fixtures/aida.json +82 -0
- data/spec/fixtures/cgimp_package.json +18 -0
- data/spec/fixtures/cit_package.json +19 -0
- data/spec/fixtures/citeproc-no-author.json +26 -0
- data/spec/fixtures/citeproc-no-categories.json +21 -0
- data/spec/fixtures/citeproc.json +30 -0
- data/spec/fixtures/codemeta.json +86 -0
- data/spec/fixtures/codemeta_v2.json +86 -0
- data/spec/fixtures/crosscite.json +63 -0
- data/spec/fixtures/crossref.bib +14 -0
- data/spec/fixtures/crossref.ris +15 -0
- data/spec/fixtures/crossref.xml +606 -0
- data/spec/fixtures/datacite-empty-sizes.xml +57 -0
- data/spec/fixtures/datacite-example-affiliation.xml +114 -0
- data/spec/fixtures/datacite-example-ancientdates-v4.3.xml +29 -0
- data/spec/fixtures/datacite-example-complicated-tba.xml +56 -0
- data/spec/fixtures/datacite-example-complicated-v3.0.xml +48 -0
- data/spec/fixtures/datacite-example-complicated-v4.0.xml +54 -0
- data/spec/fixtures/datacite-example-complicated-v4.1.xml +57 -0
- data/spec/fixtures/datacite-example-dissertation-v4.4.xml +56 -0
- data/spec/fixtures/datacite-example-escaped-text.xml +56 -0
- data/spec/fixtures/datacite-example-full-v4.4.xml +114 -0
- data/spec/fixtures/datacite-example-geolocation-2.xml +141 -0
- data/spec/fixtures/datacite-example-geolocation.xml +66 -0
- data/spec/fixtures/datacite-example-polygon-v4.1.xml +163 -0
- data/spec/fixtures/datacite-example-relateditems.xml +61 -0
- data/spec/fixtures/datacite-example-xs-string.xml +28 -0
- data/spec/fixtures/datacite-formats-with-xs.xml +22 -0
- data/spec/fixtures/datacite-funderIdentifier.xml +78 -0
- data/spec/fixtures/datacite-geolocation-empty.xml +159 -0
- data/spec/fixtures/datacite-geolocationpolygons-multiple.xml +76 -0
- data/spec/fixtures/datacite-metadata-sample-complicated-v2.2.xml +52 -0
- data/spec/fixtures/datacite-multiple-language.xml +38 -0
- data/spec/fixtures/datacite-multiple-rights.xml +59 -0
- data/spec/fixtures/datacite-schema-2.2.xml +80 -0
- data/spec/fixtures/datacite-seriesinformation.xml +41 -0
- data/spec/fixtures/datacite-space-in-sizes.xml +52 -0
- data/spec/fixtures/datacite-xml-lang.xml +51 -0
- data/spec/fixtures/datacite.json +83 -0
- data/spec/fixtures/datacite.xml +40 -0
- data/spec/fixtures/datacite_dataset.xml +58 -0
- data/spec/fixtures/datacite_malformed_creator.xml +52 -0
- data/spec/fixtures/datacite_missing_creator.xml +33 -0
- data/spec/fixtures/datacite_schema_3.xml +58 -0
- data/spec/fixtures/datacite_software.json +21 -0
- data/spec/fixtures/datacite_software_missing_comma.json +18 -0
- data/spec/fixtures/datacite_software_overlapping_keys.json +18 -0
- data/spec/fixtures/datacite_software_version.json +74 -0
- data/spec/fixtures/edam_package.json +12 -0
- data/spec/fixtures/funding_reference.xml +53 -0
- data/spec/fixtures/gtex.xml +71 -0
- data/spec/fixtures/maremma/codemeta.json +36 -0
- data/spec/fixtures/nist.xml +35 -0
- data/spec/fixtures/ns0.xml +2 -0
- data/spec/fixtures/pure.bib +14 -0
- data/spec/fixtures/pure.ris +15 -0
- data/spec/fixtures/pure.xml +188 -0
- data/spec/fixtures/ris_bug.ris +9 -0
- data/spec/fixtures/schema_4.0.xml +140 -0
- data/spec/fixtures/schema_org.json +49 -0
- data/spec/fixtures/schema_org_front-matter.json +32 -0
- data/spec/fixtures/schema_org_geolocation.json +82 -0
- data/spec/fixtures/schema_org_geoshape.json +550 -0
- data/spec/fixtures/schema_org_gtex.json +75 -0
- data/spec/fixtures/schema_org_list.json +12623 -0
- data/spec/fixtures/schema_org_tdl_iodp_invalid_authors.json +25 -0
- data/spec/fixtures/schema_org_topmed.json +53 -0
- data/spec/fixtures/schema_org_type_as_array.json +41 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/default.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_bibtex.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_citation.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_crossref.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_datacite.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_jats.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_schema_org.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/default.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_bibtex.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_citation.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite_json.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_jats.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_schema_org.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/default.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_datacite.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/crossref.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/datacite.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/jalc.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/kisti.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/medra.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/op.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/author.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/no_author.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/single_author.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/with_organization.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_datacite_metadata/change_state.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_datacite_metadata/change_title.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_description.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_identifiers.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license_name.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license_url.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_state.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/doi_with_protocol.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/dx_doi_org_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/force_test_resolver.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/https_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/test_resolver.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/test_resolver_http.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/doi_with_special_characters.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/not_a_doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/sandbox_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/crossref.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/datacite.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/jalc.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/kisti.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/medra.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_a_valid_prefix.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_found.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/op.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/doi_with_protocol.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/dx_doi_org_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/force_stage_resolver.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/https_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/stage_resolver.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/stage_resolver_http.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref.yml +159 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +159 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite.yml +159 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite_doi_http.yml +159 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/github.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/orcid.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/schema_org.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +159 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/bibtex.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/citeproc.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/codemeta.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/crosscite.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/crossref.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/datacite.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/datacite_json.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/ris.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/schema_org.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_string/crosscite.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_match.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_match.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_no_match.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_for_match.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_match.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_no_match.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org/with_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/with_affiliation.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/without_affiliation.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/metadata_reports.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +118 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +121 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/JaLC.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/KISTI.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/OP.yml +115 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/affiliation_is_space.yml +116 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book_chapter.yml +115 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/article_id_as_page_number.yml +116 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/author_literal.yml +123 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_oup.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/component.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset_usda.yml +115 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/date_in_future.yml +116 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dissertation.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/empty_given_name.yml +116 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/invalid_date.yml +116 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article.yml +115 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with.yml +119 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_funding.yml +115 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_issue.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/mEDRA.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/markup.yml +120 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/missing_creator.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_issn.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/not_found_error.yml +108 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/peer_review.yml +118 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content_copernicus.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/report_osti.yml +113 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/vor_with_url.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_json_metadata/metadata_from_api.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/BlogPosting.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_staging_system.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_staging_system_schema_3.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_with_related_id_system.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_not_found.yml +106 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Dataset.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Referee_report_in_staging_system.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Schema_org_type.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_only_full_name.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_with_scheme.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/cc-by_3_0_us.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/content_url.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/date.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/dissertation.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/doi_with_sign.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/empty_subject.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_references.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_schema_version_3.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/is_identical_to.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/keywords_with_attributes.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/multiple_licenses.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/series-information.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme_FOR.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date/publication_date.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/date.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year-month.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/date.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year-month.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/date.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year-month.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/future.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/invalid.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/nil.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/past.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/present.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_familyName.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_Thai.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_sort-order.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/hyper-authorship.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/is_organization.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/multiple_author_names_in_one_field.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/multiple_name_identifier.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation_and_country.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_role.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/only_familyName_and_givenName.yml +57 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +55 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/harvard_dataverse.yml +40 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/pangaea.yml +57 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/zenodo.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/only_title.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_and_pages.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_and_pages.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_issue_and_pages.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_codemeta_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_file.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/unknown_DOI_prefix.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_contributors/none.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_creators/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_dates/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_descriptions/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_identifier/doi.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_language/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_person/creator_only_name.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_publication_year/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_publisher/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_related_identifiers/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_related_identifiers/related_identifier.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_resource_type/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_rights_list/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_sizes/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_subjects/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_titles/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_version/insert.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_comma.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_family_name.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_known_given_name.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_no_info.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_orcid_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_type_organization.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/missing_comma.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/nil.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/overlapping_keys.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/valid.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/not_found.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/SICI_doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_prefix_too_long.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_prefix_with_string.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_with_protocol.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/dx_doi_org_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/https_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/not_valid_doi_prefix.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/url_with_one_slash.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi_as_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/ftp.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/invalid_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_options.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/string.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url_with_utf-8.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_array.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_empty_array.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_hash.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_string.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/uri.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array_of_strings.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/first.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/nil.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/string.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/should_only_keep_specific_tags.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/should_remove_a_tags.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_not_found.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_exists.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org/with_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org_identifiers/with_identifiers.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_doi/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_10.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_11.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_12.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_13.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_14.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_4.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_5.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_6.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_7.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_8.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_9.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/funder_doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/funder_doi_without_prefix.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/non-funder_doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_https.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_with_spaces.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_wrong_id.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_www.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi_as_url.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi_with_protocol.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/only_prefix.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/DOI.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/ISSN.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/URL.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/string.yml +65 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/BlogPosting.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/Dataset.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/climate_data.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/from_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/text.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_data_citation.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_pages.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Dataset.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Missing_author.yml +68 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/software_w/version.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/Another_dataset.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/BlogPosting.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/Dataset.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/container_title.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/interactive_resource_without_dates.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/journal_article.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/keywords_subject_scheme.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/missing_creator.yml +68 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/organization_author.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/software.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/software_w/version.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/with_only_first_page.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/with_pages.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_data_citation.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/posted_content.yml +114 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_datacite.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +55 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/climate_data.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/text.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_data_citation.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_pages.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/DOI_not_found.yml +57 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Text_pass-thru_with_doi_in_options.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_data_citation_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_editor.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_version.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/book_chapter.yml +64 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_editor.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/journal_article.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/with_pages.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/Dataset.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/alternate_name.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/journal_article.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/maremma.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/with_pages.yml +69 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +110 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/data_catalog.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/geo_location_box.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/journal_article.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +75 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/series_information.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +117 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/Dataset.yml +61 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/journal_article.yml +72 -0
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/with_pages.yml +69 -0
- data/spec/fixtures/vivli.xml +1 -0
- data/spec/metadata_spec.rb +165 -0
- data/spec/readers/bibtex_reader_spec.rb +63 -0
- data/spec/readers/citeproc_reader_spec.rb +61 -0
- data/spec/readers/codemeta_reader_spec.rb +138 -0
- data/spec/readers/crosscite_reader_spec.rb +41 -0
- data/spec/readers/crossref_reader_spec.rb +1117 -0
- data/spec/readers/datacite_json_reader_spec.rb +80 -0
- data/spec/readers/datacite_reader_spec.rb +1655 -0
- data/spec/readers/npm_reader_spec.rb +66 -0
- data/spec/readers/ris_reader_spec.rb +75 -0
- data/spec/readers/schema_org_reader_spec.rb +376 -0
- data/spec/spec_helper.rb +94 -0
- data/spec/utils_spec.rb +617 -0
- data/spec/writers/bibtex_writer_spec.rb +195 -0
- data/spec/writers/citation_writer_spec.rb +52 -0
- data/spec/writers/citeproc_writer_spec.rb +296 -0
- data/spec/writers/codemeta_writer_spec.rb +45 -0
- data/spec/writers/crosscite_writer_spec.rb +122 -0
- data/spec/writers/crossref_writer_spec.rb +88 -0
- data/spec/writers/csv_writer_spec.rb +94 -0
- data/spec/writers/datacite_json_writer_spec.rb +90 -0
- data/spec/writers/datacite_writer_spec.rb +428 -0
- data/spec/writers/jats_writer_spec.rb +193 -0
- data/spec/writers/rdf_xml_writer_spec.rb +86 -0
- data/spec/writers/ris_writer_spec.rb +208 -0
- data/spec/writers/schema_org_writer_spec.rb +369 -0
- data/spec/writers/turtle_writer_spec.rb +84 -0
- metadata +1347 -0
data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/harvard_dataverse.yml
ADDED
@@ -0,0 +1,40 @@
|
|
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.9.6; mailto:info@front-matter.io)
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip,deflate
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Mon, 06 Dec 2021 07:18:59 GMT
|
23
|
+
Content-Type:
|
24
|
+
- text/html;charset=UTF-8
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Set-Cookie:
|
28
|
+
- AWSALB=wrOWbUuxoek4v2fH4o8oMa0w96fCzHGcrkhLEzk8VZ52rSTLV+2L3AC93XYEVsrKLQys4kqFd6d1fBxeBgTtuZJyP5HFCAfgOxQTxvccOo5VwaAl/pROUqsFGSa7;
|
29
|
+
Expires=Mon, 13 Dec 2021 07:18:58 GMT; Path=/, AWSALBCORS=wrOWbUuxoek4v2fH4o8oMa0w96fCzHGcrkhLEzk8VZ52rSTLV+2L3AC93XYEVsrKLQys4kqFd6d1fBxeBgTtuZJyP5HFCAfgOxQTxvccOo5VwaAl/pROUqsFGSa7;
|
30
|
+
Expires=Mon, 13 Dec 2021 07:18:58 GMT; Path=/; SameSite=None; Secure, JSESSIONID=e9c293f40508dd0d2486bd6c997f;
|
31
|
+
Path=/; Secure; HttpOnly
|
32
|
+
Server:
|
33
|
+
- Apache
|
34
|
+
body:
|
35
|
+
encoding: ASCII-8BIT
|
36
|
+
string: !binary |-
|
37
|
+
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnID8+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+PGhlYWQgaWQ9ImpfaWR0MTgiPjwhLS0gR2xvYmFsIFNpdGUgVGFnIChndGFnLmpzKSAtIEdvb2dsZSBBbmFseXRpY3MgLS0+CjxzY3JpcHQgYXN5bmM9ImFzeW5jIiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9VUEtNjE3NTMzMzQtMSI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgLy88IVtDREFUQVsKICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsKICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9CiAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTsgIGd0YWcoJ2NvbmZpZycsICdVQS02MTc1MzMzNC0xJyk7CgogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZW5hYmxlQW5hbHl0aWNzRXZlbnRDYXB0dXJlLCBmYWxzZSk7CgogIGZ1bmN0aW9uIGVuYWJsZUFuYWx5dGljc0V2ZW50Q2FwdHVyZSgpIHsKICAgIC8vIERvd25sb2FkIGJ1dHRvbgogICAgJChkb2N1bWVudCkub24oImNsaWNrIiwgIi5idG4tZG93bmxvYWQsIC5idG4tZG93bmxvYWQuZHJvcGRvd24tdG9nZ2xlICsgdWwuZHJvcGRvd24tbWVudSBsaSBhIiwgZnVuY3Rpb24oKSB7CiAgICAgIHZhciBjYXRlZ29yeSA9IHN0cmlwU2l6ZSgkKHRoaXMpLnRleHQoKSk7CiAgICAgIHZhciBsYWJlbCA9IGdldEZpbGVJZCgkKHRoaXMpKTsKICAgICAgZ3RhZygnZXZlbnQnLCAnRG93bmxvYWQnLHsnZXZlbnRfY2F0ZWdvcnknIDogY2F0ZWdvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50X2xhYmVsJyA6IGxhYmVsfSk7CiAgICB9KTsKCiAgICAvLyBSZXF1ZXN0IEFjY2VzcyBidXR0b24KICAgICQoZG9jdW1lbnQpLm9uKCJjbGljayIsICIuYnRuLXJlcXVlc3QiLCBmdW5jdGlvbigpIHsKICAgICAgdmFyIGNhdGVnb3J5ID0gJCh0aGlzKS50ZXh0KCk7CiAgICAgIHZhciBsYWJlbCA9IGdldEZpbGVJZCgkKHRoaXMpKTsKICAgICAgZ3RhZygnZXZlbnQnLCAnUmVxdWVzdCBBY2Nlc3MnLCB7J2V2ZW50X2NhdGVnb3J5JyA6IGNhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50X2xhYmVsJyA6IGxhYmVsfSk7CiAgICB9KTsKCiAgICAvLyBFeHBsb3JlIGJ1dHRvbgogICAgJChkb2N1bWVudCkub24oImNsaWNrIiwgIi5idG4tZXhwbG9yZSwgLmJ0bi1leHBsb3JlLmRyb3Bkb3duLXRvZ2dsZSArIHVsLmRyb3Bkb3duLW1lbnUgbGkgYSIsIGZ1bmN0aW9uKCkgewogICAgICB2YXIgY2F0ZWdvcnkgPSAkKHRoaXMpLnRleHQoKTsKICAgICAgdmFyIGxhYmVsID0gZ2V0RmlsZUlkKCQodGhpcykpOwogICAgICBndGFnKCdldmVudCcsICdFeHBsb3JlJywgeydldmVudF9jYXRlZ29yeScgOiBjYXRlZ29yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXZlbnRfbGFiZWwnIDogbGFiZWx9KTsKICAgIH0pOwoKICAgIC8vIENvbXB1dGUgYnV0dG9uCiAgICAkKGRvY3VtZW50KS5vbigiY2xpY2siLCAiLmJ0bi1jb21wdXRlLCAuYnRuLWNvbXB1dGUuZHJvcGRvd24tdG9nZ2xlICsgdWwuZHJvcGRvd24tbWVudSBsaSBhIiwgZnVuY3Rpb24oKSB7CiAgICAgIHZhciBjYXRlZ29yeSA9ICQodGhpcykudGV4dCgpOwogICAgICB2YXIgbGFiZWwgPSBnZXRGaWxlSWQoJCh0aGlzKSk7CiAgICAgIGd0YWcoJ2V2ZW50JywgJ0NvbXB1dGUnLCB7J2V2ZW50X2NhdGVnb3J5JyA6IGNhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudF9sYWJlbCcgOiBsYWJlbH0pOwogICAgfSk7CgogICAgLy8gUHJldmlldyBidXR0b24KICAgICQoZG9jdW1lbnQpLm9uKCJjbGljayIsICIuYnRuLXByZXZpZXcsIC5idG4tcHJldmlldy5kcm9wZG93bi10b2dnbGUgKyB1bC5kcm9wZG93bi1tZW51IGxpIGEiLCBmdW5jdGlvbigpIHsKICAgICAgdmFyIGNhdGVnb3J5ID0gJCh0aGlzKS50ZXh0KCk7CiAgICAgIHZhciBsYWJlbCA9IGdldEZpbGVJZCgkKHRoaXMpKTsKICAgICAgZ3RhZygnZXZlbnQnLCAnUHJldmlldycsIHsnZXZlbnRfY2F0ZWdvcnknIDogY2F0ZWdvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50X2xhYmVsJyA6IGxhYmVsfSk7CiAgICB9KTsKCiAgICAvLyBDaXRlIGJ1dHRvbgogICAgJChkb2N1bWVudCkub24oImNsaWNrIiwgIi5kb3dubG9hZENpdGF0aW9uICsgdWwuZHJvcGRvd24tbWVudSBsaSBhIiwgZnVuY3Rpb24oKSB7CiAgICAgIHZhciBjYXRlZ29yeSA9ICQodGhpcykudGV4dCgpOwogICAgICB2YXIgbGFiZWwgPSAnVW5rbm93bic7CiAgICAgIGlmKCQoJyNmaWxlRm9ybScpLmxlbmd0aCA+IDApIHsKICAgICAgICBsYWJlbCA9IHN0cmlwSWQoJCgnI2ZpbGVGb3JtJykuYXR0cignYWN0aW9uJykpOwogICAgICB9IGVsc2UgaWYoJCgnI2RhdGFzZXRGb3JtJykubGVuZ3RoID4gMCkgewogICAgICAgIGxhYmVsID0gc3RyaXBJZCgkKCcjZGF0YXNldEZvcm0nKS5hdHRyKCdhY3Rpb24nKSk7CiAgICAgIH0KICAgICAgZ3RhZygnZXZlbnQnLCAnRG93bmxvYWQgQ2l0YXRpb24nLCB7J2V2ZW50X2NhdGVnb3J5JyA6IGNhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50X2xhYmVsJyA6IGxhYmVsfSk7CiAgICB9KTsKCiAgICAvLyBFeHBvcnQgTWV0YWRhdGEgYnV0dG9uCiAgICAkKGRvY3VtZW50KS5vbigiY2xpY2siLCAiLmJ0bi1leHBvcnQgKyB1bC5kcm9wZG93bi1tZW51IGxpIGEiLCBmdW5jdGlvbigpIHsKICAgICAgdmFyIGNhdGVnb3J5ID0gJCh0aGlzKS50ZXh0KCk7CiAgICAgIHZhciBsYWJlbCA9ICdVbmtub3duJzsKICAgICAgaWYoJCgnI2ZpbGVGb3JtJykubGVuZ3RoID4gMCkgewogICAgICAgIGxhYmVsID0gc3RyaXBJZCgkKCcjZmlsZUZvcm0nKS5hdHRyKCdhY3Rpb24nKSk7CiAgICAgIH0gZWxzZSBpZigkKCcjZGF0YXNldEZvcm0nKS5sZW5ndGggPiAwKSB7CiAgICAgICAgbGFiZWwgPSBzdHJpcElkKCQoJyNkYXRhc2V0Rm9ybScpLmF0dHIoJ2FjdGlvbicpKTsKICAgICAgfQogICAgICBndGFnKCdldmVudCcsICdFeHBvcnQgTWV0YWRhdGEnLCB7J2V2ZW50X2NhdGVnb3J5JyA6IGNhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50X2xhYmVsJyA6IGxhYmVsfSk7CiAgICB9KTsKCiAgICAvLyBDb250YWN0IGJ1dHRvbgogICAgJChkb2N1bWVudCkub24oImNsaWNrIiwgIi5idG4tY29udGFjdCIsIGZ1bmN0aW9uKCkgewogICAgICB2YXIgY2F0ZWdvcnkgPSAkKHRoaXMpLnRleHQoKTsKICAgICAgdmFyIGxhYmVsID0gJ1Vua25vd24nOwogICAgICBpZigkKCcjZmlsZUZvcm0nKS5sZW5ndGggPiAwKSB7CiAgICAgICAgbGFiZWwgPSBzdHJpcElkKCQoJyNmaWxlRm9ybScpLmF0dHIoJ2FjdGlvbicpKTsKICAgICAgfSBlbHNlIGlmKCQoJyNkYXRhc2V0Rm9ybScpLmxlbmd0aCA+IDApIHsKICAgICAgICBsYWJlbCA9IHN0cmlwSWQoJCgnI2RhdGFzZXRGb3JtJykuYXR0cignYWN0aW9uJykpOwogICAgICB9IGVsc2UgaWYoJCgnI2RhdGF2ZXJzZUZvcm0nKS5sZW5ndGggPiAwKSB7CiAgICAgICAgbGFiZWwgPSBzdHJpcEFsaWFzKCQoJyNkYXRhdmVyc2VGb3JtJykuYXR0cignYWN0aW9uJykpOwogICAgICB9CiAgICAgIGd0YWcoJ2V2ZW50JywgJ0NvbnRhY3QnLCB7J2V2ZW50X2NhdGVnb3J5JyA6IGNhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudF9sYWJlbCcgOiBsYWJlbH0pOwogICAgfSk7CgogICAgLy8gU2hhcmUgYnV0dG9uCiAgICAkKGRvY3VtZW50KS5vbigiY2xpY2siLCAnZGl2W2lkJD0ic2hhcmVEaWFsb2ciXSBhW2NsYXNzXj0ic2hhcnJyZSJdJywgZnVuY3Rpb24oKSB7CiAgICAgIHZhciBzaGFycnJlVmFsID0gJCh0aGlzKS5hdHRyKCdjbGFzcycpOwogICAgICB2YXIgY2F0ZWdvcnkgPSBzaGFycnJlVmFsLnN1YnN0cmluZyhzaGFycnJlVmFsLmluZGV4T2YoJy0nKSArIDEpIDsKICAgICAgdmFyIGxhYmVsID0gJ1Vua25vd24nOwogICAgICBpZigkKCcjZmlsZUZvcm0nKS5sZW5ndGggPiAwKSB7CiAgICAgICAgbGFiZWwgPSBzdHJpcElkKCQoJyNmaWxlRm9ybScpLmF0dHIoJ2FjdGlvbicpKTsKICAgICAgfSBlbHNlIGlmKCQoJyNkYXRhc2V0Rm9ybScpLmxlbmd0aCA+IDApIHsKICAgICAgICBsYWJlbCA9IHN0cmlwSWQoJCgnI2RhdGFzZXRGb3JtJykuYXR0cignYWN0aW9uJykpOwogICAgICB9IGVsc2UgaWYoJCgnI2RhdGF2ZXJzZUZvcm0nKS5sZW5ndGggPiAwKSB7CiAgICAgICAgbGFiZWwgPSBzdHJpcEFsaWFzKCQoJyNkYXRhdmVyc2VGb3JtJykuYXR0cignYWN0aW9uJykpOwogICAgICB9CiAgICAgIGd0YWcoJ2V2ZW50JywgJ1NoYXJlJywgeydldmVudF9jYXRlZ29yeScgOiBjYXRlZ29yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50X2xhYmVsJyA6IGxhYmVsfSk7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGdldEZpbGVJZCh0YXJnZXQpIHsKICAgIHZhciBsYWJlbCA9ICdVbmtub3duJzsKICAgIGlmKHRhcmdldC5wYXJlbnRzKCd0aCwgI2FjdGlvbkJ1dHRvbkJsb2NrIC5idG4tYWNjZXNzLWRhdGFzZXQgKyB1bC5kcm9wZG93bi1tZW51JykubGVuZ3RoPjApIHsKICAgICAgLy9TcGVjaWFsIGNhc2UgLSB0aGUgRG93bmxvYWQgYnV0dG9uIHRoYXQgZG93bmxvYWRzIGFsbCBzZWxlY3RlZCBmaWxlcyBpbiB0aGUgZGF0YXNldAogICAgICBsYWJlbCA9ICdmaWxlKHMpIGZyb20gJyArIHN0cmlwSWQoJCgnI2RhdGFzZXRGb3JtJykuYXR0cignYWN0aW9uJykpOwogICAgfSBlbHNlIHsKICAgICAgdmFyIHJvdyA9IHRhcmdldC5wYXJlbnRzKCd0cicpWzBdOwogICAgICBpZihyb3cgIT0gbnVsbCkgewogICAgICAgIC8vZmluZHMgdGhlIGZpbGUgaWQvRE9JIGluIHRoZSBEYXRhc2V0IHBhZ2UKICAgICAgICBsYWJlbCA9ICQocm93KS5maW5kKCdkaXYuZmlsZS1tZXRhZGF0YS1ibG9jayA+IGEnKS5hdHRyKCdocmVmJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy9maW5kcyB0aGUgZmlsZSBpZC9ET0kgaW4gdGhlIGZpbGUgcGFnZQogICAgICAgIGxhYmVsID0gJCgnI2ZpbGVGb3JtJykuYXR0cignYWN0aW9uJyk7CiAgICAgIH0KICAgICAgbGFiZWwgPSBzdHJpcElkKGxhYmVsKTsKICAgIH0KICAgIHJldHVybiBsYWJlbDsKICB9CgogIGZ1bmN0aW9uIHN0cmlwSWQobGFiZWwpIHsKICAgIHZhciBpbmRleCA9IGxhYmVsLmluZGV4T2YoJyYnKTsKICAgIGlmKGluZGV4ID09IC0xKSBpbmRleCA9IGxhYmVsLmxlbmd0aDsKICAgIGlmKGxhYmVsLmluZGV4T2YoJ3BlcnNpc3RlbnRJZD0nKSA+PSAwKSB7CiAgICAgIGxhYmVsID0gbGFiZWwuc3Vic3RyaW5nKGxhYmVsLmluZGV4T2YoJ3BlcnNpc3RlbnRJZD0nKSArIDEzLCBpbmRleCk7CiAgICB9CiAgICBpZihsYWJlbC5pbmRleE9mKCdmaWxlSWQ9JykgPj0gMCkgewogICAgICBsYWJlbCA9IGxhYmVsLnN1YnN0cmluZyhsYWJlbC5pbmRleE9mKCdmaWxlSWQ9JykgKyA3LCBpbmRleCk7CiAgICB9CiAgICByZXR1cm4obGFiZWwpOwogIH0KCiAgZnVuY3Rpb24gc3RyaXBBbGlhcyhsYWJlbCkgewogICAgdmFyIGluZGV4ID0gbGFiZWwubGVuZ3RoOwogICAgbGFiZWwgPSBsYWJlbC5zdWJzdHJpbmcobGFiZWwuaW5kZXhPZignL2RhdGF2ZXJzZS8nKSArIDExLCBpbmRleCkuc3BsaXQoL1s/I10vKVswXTsKICAgIHJldHVybihsYWJlbCk7CiAgfQoKICBmdW5jdGlvbiBzdHJpcFNpemUoY2F0ZWdvcnkpIHsKICAgIHZhciBpbmRleCA9IGNhdGVnb3J5LmluZGV4T2YoJ1pJUCAoJyk7CiAgICBpZihpbmRleCA+PSAwKSB7CiAgICAgIGNhdGVnb3J5ID0gY2F0ZWdvcnkuc3Vic3RyaW5nKDAsIGluZGV4ICsgMyk7CiAgICB9CiAgICByZXR1cm4oY2F0ZWdvcnkpOwogIH0KICAvL11dPgo8L3NjcmlwdD4KCiAgICAgICAgICAgIDx0aXRsZT5TdW1tYXJ5IGRhdGEgYW5reWxvc2luZyBzcG9uZHlsaXRpcyBHV0FTIC0gSGFydmFyZCBEYXRhdmVyc2U8L3RpdGxlPgoJICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgogICAgICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiIC8+CiAgICAgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIgLz4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iU3VtbWFyeSBvZiBhc3NvY2lhdGlvbiB0ZXN0cyBmb3IgTmF0dXJlIEdlbmV0aWNzIHB1YmxpY2F0aW9uICZxdW90O0lkZW50aWZpY2F0aW9uIG9mIG11bHRpcGxlIHJpc2sgdmFyaWFudHMgZm9yIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgdGhyb3VnaCBoaWdoLWRlbnNpdHkgZ2Vub3R5cGluZyBvZiBpbW11bmUtcmVsYXRlZCBsb2NpJnF1b3Q7LiIgLz4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJEQy5pZGVudGlmaWVyIiBjb250ZW50PSJkb2k6MTAuNzkxMC9EVk4vTko3WFNPIiAvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9IkRDLnR5cGUiIGNvbnRlbnQ9IkRhdGFzZXQiIC8+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0iREMudGl0bGUiIGNvbnRlbnQ9IlN1bW1hcnkgZGF0YSBhbmt5bG9zaW5nIHNwb25keWxpdGlzIEdXQVMiIC8+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0iREMuZGF0ZSIgY29udGVudD0iMjAxNy0wOS0zMCIgLz4KICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJEQy5wdWJsaXNoZXIiIGNvbnRlbnQ9IkhhcnZhcmQgRGF0YXZlcnNlIiAvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9IkRDLmRlc2NyaXB0aW9uIiBjb250ZW50PSJTdW1tYXJ5IG9mIGFzc29jaWF0aW9uIHRlc3RzIGZvciBOYXR1cmUgR2VuZXRpY3MgcHVibGljYXRpb24gJnF1b3Q7SWRlbnRpZmljYXRpb24gb2YgbXVsdGlwbGUgcmlzayB2YXJpYW50cyBmb3IgYW5reWxvc2luZyBzcG9uZHlsaXRpcyB0aHJvdWdoIGhpZ2gtZGVuc2l0eSBnZW5vdHlwaW5nIG9mIGltbXVuZS1yZWxhdGVkIGxvY2kmcXVvdDsuIiAvPgogICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJEQy5jcmVhdG9yIiBjb250ZW50PSJJbnRlcm5hdGlvbmFsIEdlbmV0aWNzIG9mIEFua3lsb3NpbmcgU3BvbmR5bGl0aXMgQ29uc29ydGl1bSAoSUdBUykiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9IkRDLnN1YmplY3QiIGNvbnRlbnQ9Ik1lZGljaW5lLCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMiIC8+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJTdW1tYXJ5IGRhdGEgYW5reWxvc2luZyBzcG9uZHlsaXRpcyBHV0FTIiAvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJhcnRpY2xlIiAvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2RhdGFzZXQueGh0bWw/cGVyc2lzdGVudElkPWRvaToxMC43OTEwL0RWTi9OSjdYU08iIC8+CiAgICAgICAgICAgICAgICAgICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL2RhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9qYXZheC5mYWNlcy5yZXNvdXJjZS9pbWFnZXMvZGF0YXZlcnNlLWljb24tMTIwMC5wbmcueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmIiAvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9IkhhcnZhcmQgRGF0YXZlcnNlIiAvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iU3VtbWFyeSBvZiBhc3NvY2lhdGlvbiB0ZXN0cyBmb3IgTmF0dXJlIEdlbmV0aWNzIHB1YmxpY2F0aW9uICZxdW90O0lkZW50aWZpY2F0aW9uIG9mIG11bHRpcGxlIHJpc2sgdmFyaWFudHMgZm9yIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgdGhyb3VnaCBoaWdoLWRlbnMuLi4iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJhcnRpY2xlOmF1dGhvciIgY29udGVudD0iSW50ZXJuYXRpb25hbCBHZW5ldGljcyBvZiBBbmt5bG9zaW5nIFNwb25keWxpdGlzIENvbnNvcnRpdW0gKElHQVMpIiAvPgogICAgICAgICAgICAgICAgICAgIDxtZXRhIHByb3BlcnR5PSJhcnRpY2xlOnB1Ymxpc2hlZF90aW1lIiBjb250ZW50PSIyMDE3LTA5LTMwIiAvPgogICAgICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+eyJAY29udGV4dCI6Imh0dHA6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJEYXRhc2V0IiwiQGlkIjoiaHR0cHM6Ly9kb2kub3JnLzEwLjc5MTAvRFZOL05KN1hTTyIsImlkZW50aWZpZXIiOiJodHRwczovL2RvaS5vcmcvMTAuNzkxMC9EVk4vTko3WFNPIiwibmFtZSI6IlN1bW1hcnkgZGF0YSBhbmt5bG9zaW5nIHNwb25keWxpdGlzIEdXQVMiLCJjcmVhdG9yIjpbeyJuYW1lIjoiSW50ZXJuYXRpb25hbCBHZW5ldGljcyBvZiBBbmt5bG9zaW5nIFNwb25keWxpdGlzIENvbnNvcnRpdW0gKElHQVMpIn1dLCJhdXRob3IiOlt7Im5hbWUiOiJJbnRlcm5hdGlvbmFsIEdlbmV0aWNzIG9mIEFua3lsb3NpbmcgU3BvbmR5bGl0aXMgQ29uc29ydGl1bSAoSUdBUykifV0sImRhdGVQdWJsaXNoZWQiOiIyMDE3LTA5LTMwIiwiZGF0ZU1vZGlmaWVkIjoiMjAxNy0wOS0zMCIsInZlcnNpb24iOiIxIiwiZGVzY3JpcHRpb24iOlsiU3VtbWFyeSBvZiBhc3NvY2lhdGlvbiB0ZXN0cyBmb3IgTmF0dXJlIEdlbmV0aWNzIHB1YmxpY2F0aW9uIFwiSWRlbnRpZmljYXRpb24gb2YgbXVsdGlwbGUgcmlzayB2YXJpYW50cyBmb3IgYW5reWxvc2luZyBzcG9uZHlsaXRpcyB0aHJvdWdoIGhpZ2gtZGVuc2l0eSBnZW5vdHlwaW5nIG9mIGltbXVuZS1yZWxhdGVkIGxvY2lcIi4iXSwia2V5d29yZHMiOlsiTWVkaWNpbmUsIEhlYWx0aCBhbmQgTGlmZSBTY2llbmNlcyIsIiBHZW5vbWUtV2lkZSBBc3NvY2lhdGlvbiBTdHVkaWVzIiwiQW5reWxvc2luZyBzcG9uZHlsaXRpcyJdLCJjaXRhdGlvbiI6W3siQHR5cGUiOiJDcmVhdGl2ZVdvcmsiLCJ0ZXh0IjoiMTAuMTAzOC9uZy4yNjY3In1dLCJsaWNlbnNlIjp7IkB0eXBlIjoiRGF0YXNldCIsInRleHQiOiJDQzAiLCJ1cmwiOiJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLyJ9LCJpbmNsdWRlZEluRGF0YUNhdGFsb2ciOnsiQHR5cGUiOiJEYXRhQ2F0YWxvZyIsIm5hbWUiOiJIYXJ2YXJkIERhdGF2ZXJzZSIsInVybCI6Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1In0sInB1Ymxpc2hlciI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsIm5hbWUiOiJIYXJ2YXJkIERhdGF2ZXJzZSJ9LCJwcm92aWRlciI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsIm5hbWUiOiJIYXJ2YXJkIERhdGF2ZXJzZSJ9LCJkaXN0cmlidXRpb24iOlt7IkB0eXBlIjoiRGF0YURvd25sb2FkIiwibmFtZSI6IkFzaWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dCIsImZpbGVGb3JtYXQiOiJ0ZXh0L3BsYWluIiwiY29udGVudFNpemUiOjExNTcyNDEyLCJkZXNjcmlwdGlvbiI6IlN1bW1hcnkgZGF0YSBmb3IgQXNpYW4gY29ob3J0IiwiQGlkIjoiaHR0cHM6Ly9kb2kub3JnLzEwLjc5MTAvRFZOL05KN1hTTy9LM05STU8iLCJpZGVudGlmaWVyIjoiaHR0cHM6Ly9kb2kub3JnLzEwLjc5MTAvRFZOL05KN1hTTy9LM05STU8iLCJjb250ZW50VXJsIjoiaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2FjY2Vzcy9kYXRhZmlsZS8zMDU1NDI0In0seyJAdHlwZSI6IkRhdGFEb3dubG9hZCIsIm5hbWUiOiJFdXJvcGVhbl9Bc2lhbl9DYXNlX0NvbnRyb2xfUmVzdWx0cy50eHQiLCJmaWxlRm9ybWF0IjoidGV4dC9wbGFpbiIsImNvbnRlbnRTaXplIjoxMTI0NTQ5NiwiZGVzY3JpcHRpb24iOiJTdW1tYXJ5IGRhdGEgZm9yIGNvbWJpbmVkIGNvaG9ydCIsIkBpZCI6Imh0dHBzOi8vZG9pLm9yZy8xMC43OTEwL0RWTi9OSjdYU08vSEEyU1ZSIiwiaWRlbnRpZmllciI6Imh0dHBzOi8vZG9pLm9yZy8xMC43OTEwL0RWTi9OSjdYU08vSEEyU1ZSIiwiY29udGVudFVybCI6Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9hY2Nlc3MvZGF0YWZpbGUvMzA1NTQyNSJ9LHsiQHR5cGUiOiJEYXRhRG93bmxvYWQiLCJuYW1lIjoiRXVyb3BlYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0IiwiZmlsZUZvcm1hdCI6InRleHQvcGxhaW4iLCJjb250ZW50U2l6ZSI6MTMzMzcxODMsImRlc2NyaXB0aW9uIjoiU3VtbWFyeSBkYXRhIGZvciBFdXJvcGVhbiBjb2hvcnQiLCJAaWQiOiJodHRwczovL2RvaS5vcmcvMTAuNzkxMC9EVk4vTko3WFNPL0lONDVHWiIsImlkZW50aWZpZXIiOiJodHRwczovL2RvaS5vcmcvMTAuNzkxMC9EVk4vTko3WFNPL0lONDVHWiIsImNvbnRlbnRVcmwiOiJodHRwczovL2RhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9hcGkvYWNjZXNzL2RhdGFmaWxlLzMwNTU0MjYifV19CgogICAgICAgICAgICAgICAgICAgIDwvc2NyaXB0PjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS90aGVtZS5jc3MueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2xuPXByaW1lZmFjZXMtYm9vdHN0cmFwJmFtcDt2PTEwLjAuMCIgLz48bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvcHJpbWVpY29ucy9wcmltZWljb25zLmNzcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/bG49cHJpbWVmYWNlcyZhbXA7dj0xMC4wLjAiIC8+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL29tbmlmYWNlcy5qcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/bG49b21uaWZhY2VzJmFtcDt2PTMuOCI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pxdWVyeS9qcXVlcnkuanMueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2xuPXByaW1lZmFjZXMmYW1wO3Y9MTAuMC4wIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvanF1ZXJ5L2pxdWVyeS1wbHVnaW5zLmpzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9sbj1wcmltZWZhY2VzJmFtcDt2PTEwLjAuMCI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2NvcmUuanMueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2xuPXByaW1lZmFjZXMmYW1wO3Y9MTAuMC4wIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvY29tcG9uZW50cy5qcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/bG49cHJpbWVmYWNlcyZhbXA7dj0xMC4wLjAiPjwvc2NyaXB0PjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9jb21wb25lbnRzLmNzcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/bG49cHJpbWVmYWNlcyZhbXA7dj0xMC4wLjAiIC8+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL3dhdGVybWFyay93YXRlcm1hcmsuanMueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2xuPXByaW1lZmFjZXMmYW1wO3Y9MTAuMC4wIj48L3NjcmlwdD48bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvZmlsZXVwbG9hZC9maWxldXBsb2FkLmNzcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/bG49cHJpbWVmYWNlcyZhbXA7dj0xMC4wLjAiIC8+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2ZpbGV1cGxvYWQvZmlsZXVwbG9hZC5qcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/bG49cHJpbWVmYWNlcyZhbXA7dj0xMC4wLjAiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS90b3VjaC90b3VjaHN3aXBlLmpzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9sbj1wcmltZWZhY2VzJmFtcDt2PTEwLjAuMCI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2lucHV0bWFzay9pbnB1dG1hc2suanMueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2xuPXByaW1lZmFjZXMmYW1wO3Y9MTAuMC4wIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmpzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9sbj1wcmltZWZhY2VzJmFtcDt2PTEwLjAuMCI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmlmKHdpbmRvdy5QcmltZUZhY2VzKXtQcmltZUZhY2VzLnNldHRpbmdzLmxvY2FsZT0nZW4nO1ByaW1lRmFjZXMuc2V0dGluZ3Mudmlld0lkPScvZGF0YXNldC54aHRtbCc7UHJpbWVGYWNlcy5zZXR0aW5ncy5jb250ZXh0UGF0aD0nJztQcmltZUZhY2VzLnNldHRpbmdzLmNvb2tpZXNTZWN1cmU9ZmFsc2U7fTwvc2NyaXB0PgogICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjE4MHgxODAiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9pbWFnZXMvZmF2L2FwcGxlLXRvdWNoLWljb24ucG5nLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3ZiIgLz4KICAgICAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgc2l6ZXM9IjE2eDE2IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2Zhdi9mYXZpY29uLTE2eDE2LnBuZy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2YiIC8+CiAgICAgICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIHNpemVzPSIzMngzMiIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL2ltYWdlcy9mYXYvZmF2aWNvbi0zMngzMi5wbmcueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmIiAvPgogICAgICAgIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9pbWFnZXMvZmF2L3NpdGUud2VibWFuaWZlc3QueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmIiAvPgogICAgICAgIDxsaW5rIHJlbD0ibWFzay1pY29uIiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2Zhdi9zYWZhcmktcGlubmVkLXRhYi5zdmcueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmIiBjb2xvcj0iI2RhNTMyYyIgLz4KICAgICAgICA8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLVRpbGVDb2xvciIgY29udGVudD0iI2RhNTMyYyIgLz4KICAgICAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI2ZmZmZmZiIgLz4KICAgICAgICA8bGluayB0eXBlPSJpbWFnZS9wbmciIHJlbD0iaW1hZ2Vfc3JjIiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvaW1hZ2VzL2RhdGF2ZXJzZXByb2plY3QucG5nLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3ZiIgLz4KICAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvYnMvY3NzL2Jvb3RzdHJhcC5taW4uY3NzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj92ZXJzaW9uPTUuOCIgLz4KICAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvYnMvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj92ZXJzaW9uPTUuOCIgLz4KICAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvamF2YXguZmFjZXMucmVzb3VyY2UvY3NzL2llLWNvbXBhdC5jc3MueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3ZlcnNpb249NS44IiAvPgogICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9jc3Mvb3dsLmNhcm91c2VsLmNzcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/dmVyc2lvbj01LjgiIC8+CiAgICAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL2Nzcy9mb250Y3VzdG9tLmNzcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/dmVyc2lvbj01LjgiIC8+CiAgICAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL2Nzcy9zb2NpY29uLmNzcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/dmVyc2lvbj01LjgiIC8+CiAgICAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2phdmF4LmZhY2VzLnJlc291cmNlL2Nzcy9zdHJ1Y3R1cmUuY3NzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj92ZXJzaW9uPTUuOCIgLz4KICAgICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgICAgIC8vIEJyZWFrIG91dCBvZiBpZnJhbWUKICAgICAgICAgICAgICAgIGlmICh3aW5kb3cgIT09IHRvcCkgdG9wLmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uOwogICAgICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgLyogQ3VzdG9tIENTUyAqLwogICAgICAgICAgICAgICAgI25hdmJhckZpeGVkIGRpdi5uYXZiYXItaGVhZGVyIGltZy5uYXZiYXItYnJhbmQuY3VzdG9tLWxvZ28ge2hlaWdodDo1MHB4ICFpbXBvcnRhbnQ7fQojZGF0YXZlcnNlRGVzYyBzcGFuID4gc3BhbiA+IHNwYW4gPiBoMyB7Zm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O30KCm5hdi5uYXZiYXIubmF2YmFyLWRlZmF1bHQge2JhY2tncm91bmQ6ICNlY2VjZWMgIWltcG9ydGFudDt9Ci8qICNmb290ZXIge2JhY2tncm91bmQ6ICNlY2VjZWMgIWltcG9ydGFudDsgcGFkZGluZy10b3A6MS4yNWVtO30gKi8KCiAgICAgICAgICAgIDwvc3R5bGU+PC9oZWFkPjxib2R5PgoJPGEgaHJlZj0iI2NvbnRlbnQiIGNsYXNzPSJzci1vbmx5Ij5Ta2lwIHRvIG1haW4gY29udGVudDwvYT4KCiAgICA8ZGl2IGlkPSJkYXRhdmVyc2UtaGVhZGVyLWJsb2NrIj48bmF2IGlkPSJuYXZiYXJGaXhlZCIgY2xhc3M9Im5hdmJhciBuYXZiYXItZGVmYXVsdCBuYXZiYXItZml4ZWQtdG9wIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibmF2YmFyLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI3RvcE5hdkJhciIgYXJpYS1wcmVzc2VkPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgbmF2aWdhdGlvbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIj48aW1nIHNyYz0iL2xvZ29zL25hdmJhci9sb2dvLnBuZztqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2YiIGFsdD0iSGFydmFyZCBEYXRhdmVyc2UgaG9tZXBhZ2UiIGNsYXNzPSJuYXZiYXItYnJhbmQgY3VzdG9tLWxvZ28iIC8+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2UiIGlkPSJ0b3BOYXZCYXIiPgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2IG5hdmJhci1uYXYgbmF2YmFyLXJpZ2h0Ij48bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+QWRkIERhdGEgPGIgY2xhc3M9ImNhcmV0Ij48L2I+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij48bGk+PGEgaHJlZj0iL2RhdGF2ZXJzZS54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/b3duZXJJZD0xIj5OZXcgRGF0YXZlcnNlPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9vd25lcklkPTEiPk5ldyBEYXRhc2V0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj5TZWFyY2ggPGIgY2xhc3M9ImNhcmV0Ij48L2I+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IG5hdmJhci1zZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPSJmb3JtLWlubGluZSIgcm9sZT0ic2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPSJzZWFyY2hOYXZMYWJlbCIgY2xhc3M9InNyLW9ubHkiIGZvcj0ibmF2YmFyc2VhcmNoIj5TZWFyY2g8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Im5hdmJhcnNlYXJjaCIgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgc2l6ZT0iMjgiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSJTZWFyY2ggYWxsIGRhdGF2ZXJzZXMuLi4iIGFyaWEtbGFiZWxsZWRieT0ic2VhcmNoTmF2TGFiZWwiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5wdXQtZ3JvdXAtYnRuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdGl0bGU9IkZpbmQiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYm9vdHN0cmFwLWJ1dHRvbi10b29sdGlwIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249Jy9kYXRhdmVyc2UvaGFydmFyZD9xPScgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2YmFyc2VhcmNoJykudmFsdWU7cmV0dXJuIGZhbHNlOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNlYXJjaCBuby10ZXh0Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5kYXRhdmVyc2UuaGFydmFyZC5lZHUvIiByZWw9Im5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+QWJvdXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ3VpZGVzLmRhdGF2ZXJzZS5vcmcvZW4vNS44L3VzZXIiIHJlbD0ibm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj5Vc2VyIEd1aWRlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgo8Zm9ybSBpZD0ial9pZHQ3OCIgbmFtZT0ial9pZHQ3OCIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyIgY2xhc3M9Im5hdmJhci1mb3JtIG5hdmJhci1sZWZ0IG5hdmJhci1mb3JtLWxpbmsiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZGF0YS1wYXJ0aWFsc3VibWl0PSJ0cnVlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ial9pZHQ3OCIgdmFsdWU9ImpfaWR0NzgiIC8+CjxhIGlkPSJqX2lkdDc4OmhlYWRlclN1cHBvcnRMaW5rIiBocmVmPSIjIiBjbGFzcz0idWktY29tbWFuZGxpbmsgdWktd2lkZ2V0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2pfaWR0Nzg6aGVhZGVyU3VwcG9ydExpbmsmcXVvdDssZjomcXVvdDtqX2lkdDc4JnF1b3Q7LHU6JnF1b3Q7Y29udGFjdERpYWxvZyZxdW90OyxvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtQRignY29udGFjdEZvcm0nKS5zaG93KCk7fX0pO3JldHVybiBmYWxzZTsiPlN1cHBvcnQ8L2E+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iamF2YXguZmFjZXMuVmlld1N0YXRlIiBpZD0ial9pZDE6amF2YXguZmFjZXMuVmlld1N0YXRlOjAiIHZhbHVlPSItNDM4MTE2NjkzNTA0NTcyNzAxNDotNTM3MjcyMDkzNjM4MDE1ODk4OCIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+CjwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZGF0YXZlcnNldXNlci54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/ZWRpdE1vZGU9Q1JFQVRFJmFtcDtyZWRpcmVjdFBhZ2U9JTJGZGF0YXNldC54aHRtbCUzRnBlcnNpc3RlbnRJZCUzRGRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWduIFVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvbG9naW5wYWdlLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9yZWRpcmVjdFBhZ2U9JTJGZGF0YXNldC54aHRtbCUzRnBlcnNpc3RlbnRJZCUzRGRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cgSW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+PC9uYXY+CiAgICAgICAgCiAgICAgICAgPG5vc2NyaXB0PgogICAgICAgICAgICA8ZGl2IGlkPSJub3NjcmlwdC1hbGVydCIgY2xhc3M9ImJnLWRhbmdlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydCBjb250YWluZXIgdGV4dC1kYW5nZXIgbm8tbWFyZ2luLWJvdHRvbSI+UGxlYXNlIGVuYWJsZSBKYXZhU2NyaXB0IGluIHlvdXIgYnJvd3Nlci4gSXQgaXMgcmVxdWlyZWQgdG8gdXNlIG1vc3Qgb2YgdGhlIGZlYXR1cmVzIG9mIERhdGF2ZXJzZS4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L25vc2NyaXB0Pgo8Zm9ybSBpZD0ial9pZHQxMzEiIG5hbWU9ImpfaWR0MTMxIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPIiBjbGFzcz0iZm9ybS1pbmxpbmUiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZGF0YS1wYXJ0aWFsc3VibWl0PSJ0cnVlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ial9pZHQxMzEiIHZhbHVlPSJqX2lkdDEzMSIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iamF2YXguZmFjZXMuVmlld1N0YXRlIiBpZD0ial9pZDE6amF2YXguZmFjZXMuVmlld1N0YXRlOjEiIHZhbHVlPSItNDM4MTE2NjkzNTA0NTcyNzAxNDotNTM3MjcyMDkzNjM4MDE1ODk4OCIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+CjwvZm9ybT48ZGl2IGlkPSJicmVhZENydW1iUGFuZWwiPjxkaXYgaWQ9ImJyZWFkY3J1bWJOYXZCbG9jayIgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJicmVhZGNydW1iQmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9ImJyZWFkY3J1bWJMbmswIiBocmVmPSIvZGF0YXZlcnNlL2hhcnZhcmQiPkhhcnZhcmQgRGF0YXZlcnNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj48c3BhbiBjbGFzcz0iYnJlYWRjcnVtYkNhcnJvdCI+ICZndDsgPC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYkJsb2NrIj4KICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im1lc3NhZ2VQYW5lbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciBtZXNzYWdlUGFuZWwiPgogICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRlbnQiPgo8Zm9ybSBpZD0iZGF0YXNldEZvcm0iIG5hbWU9ImRhdGFzZXRGb3JtIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPIiBlbmN0eXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYXRhc2V0Rm9ybSIgdmFsdWU9ImRhdGFzZXRGb3JtIiAvPgo8aW5wdXQgaWQ9ImRhdGFzZXRGb3JtOnZhbGlkYXRlRmlsZXNPdXRjb21lIiB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGFzZXRGb3JtOnZhbGlkYXRlRmlsZXNPdXRjb21lIiAvPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRvcERhdGFzZXRCbG9ja0ZyYWdtZW50Ij48ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkYXRhc2V0VmVyc2lvbkJsb2NrIiBjbGFzcz0icm93Ij48ZGl2IGlkPSJ0aXRsZS1ibG9jayIgY2xhc3M9ImNvbC14cy0xMiBtYXJnaW4tYm90dG9tLWhhbGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9InRpdGxlIj4gU3VtbWFyeSBkYXRhIGFua3lsb3Npbmcgc3BvbmR5bGl0aXMgR1dBUzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InRpdGxlLWxhYmVsLWJsb2NrIiBjbGFzcz0ibWFyZ2luLXRvcC1oYWxmIj48c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtZGVmYXVsdCI+VmVyc2lvbiAxLjA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0YXNldENpdGF0aW9uQWN0aW9uU3VtbWFyeUJsb2NrIiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtOCBjb2wtbGctOSI+CiAgICA8ZGl2IGNsYXNzPSJjaXRhdGlvbi1ibG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXJmaXggYWxlcnQgYWxlcnQtaW5mbyBiZy1jaXRhdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpdGF0aW9uIG1hcmdpbi1ib3R0b20iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHVsbC1sZWZ0IHByZXZpZXctaWNvbi1ibG9jayI+PHNwYW4gY2xhc3M9Imljb24tZGF0YXNldCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2l0YXRpb24tc2VsZWN0IiBvbmNsaWNrPSJpZiAoZXZlbnQudGFyZ2V0KSB7IHNlbGVjdFRleHQoZXZlbnQudGFyZ2V0KTsgfSBlbHNleyBzZWxlY3RUZXh0KHRoaXMpOyB9Ij5JbnRlcm5hdGlvbmFsIEdlbmV0aWNzIG9mIEFua3lsb3NpbmcgU3BvbmR5bGl0aXMgQ29uc29ydGl1bSAoSUdBUyksIDIwMTcsICJTdW1tYXJ5IGRhdGEgYW5reWxvc2luZyBzcG9uZHlsaXRpcyBHV0FTIiwgPGEgaHJlZj0iaHR0cHM6Ly9kb2kub3JnLzEwLjc5MTAvRFZOL05KN1hTTyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZG9pLm9yZy8xMC43OTEwL0RWTi9OSjdYU088L2E+LCBIYXJ2YXJkIERhdGF2ZXJzZSwgVjEKICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0icHVsbC1sZWZ0IHJvdyBjb2wtc20tOSBwYWRkaW5nLW5vbmUiPjxkaXYgY2xhc3M9ImNvbC1zbS0zIGNvbC1tZC00IGNvbC1sZy0zIGJ0bi1ncm91cCBtYXJnaW4tYm90dG9tIGNpdGF0aW9uLWRvd25sb2FkIj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tbGluayBkcm9wZG93bi10b2dnbGUgcGFkZGluZy1ub25lIGRvd25sb2FkQ2l0YXRpb24iIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgIENpdGUgRGF0YXNldCA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiIHJvbGU9Im1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pzZi5qcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/bG49amF2YXguZmFjZXMiPjwvc2NyaXB0PjxhIGlkPSJkYXRhc2V0Rm9ybTplbmROb3RlTGluayIgaHJlZj0iIyIgb25jbGljaz0ibW9qYXJyYS5qc2ZjbGpzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRhc2V0Rm9ybScpLHsnZGF0YXNldEZvcm06ZW5kTm90ZUxpbmsnOidkYXRhc2V0Rm9ybTplbmROb3RlTGluayd9LCcnKTtyZXR1cm4gZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZE5vdGUgWE1MCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBpZD0iZGF0YXNldEZvcm06cmlzTGluayIgaHJlZj0iIyIgb25jbGljaz0ibW9qYXJyYS5qc2ZjbGpzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRhc2V0Rm9ybScpLHsnZGF0YXNldEZvcm06cmlzTGluayc6J2RhdGFzZXRGb3JtOnJpc0xpbmsnfSwnJyk7cmV0dXJuIGZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSVMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGlkPSJkYXRhc2V0Rm9ybTpiaWJMaW5rIiBocmVmPSIjIiBvbmNsaWNrPSJtb2phcnJhLmpzZmNsanMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RhdGFzZXRGb3JtJykseydkYXRhc2V0Rm9ybTpiaWJMaW5rJzonZGF0YXNldEZvcm06YmliTGluayd9LCdfYmxhbmsnKTtyZXR1cm4gZmFsc2UiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWJUZVgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImNvbC1zbS05IGNvbC1tZC04IGNvbC1sZy05IHRleHQtbXV0ZWQgbWFyZ2luLWJvdHRvbSBjaXRhdGlvbi1zdGFuZGFyZHMiPkxlYXJuIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLm9yZy9iZXN0LXByYWN0aWNlcy9kYXRhLWNpdGF0aW9uIiB0aXRsZT0iRGF0YSBDaXRhdGlvbiAtIERhdGF2ZXJzZS5vcmciIHRhcmdldD0iX2JsYW5rIj5EYXRhIENpdGF0aW9uIFN0YW5kYXJkczwvYT4uPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTQgY29sLWxnLTMgcHVsbC1yaWdodCBtYXJnaW4tYm90dG9tIj48ZGl2IGlkPSJhY3Rpb25CdXR0b25CbG9jayI+PGRpdiBjbGFzcz0iYnRuLWdyb3VwIGJ0bi1ncm91cC1qdXN0aWZpZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWFjY2Vzcy1kYXRhc2V0IGRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzIERhdGFzZXQgPHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSBwdWxsLXJpZ2h0IHRleHQtbGVmdCIgc3R5bGU9InBhZGRpbmctbGVmdDoxZW07IHBhZGRpbmctcmlnaHQ6MWVtOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duLWhlYWRlciI+RG93bmxvYWQgT3B0aW9ucyA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1kb3dubG9hZC1hbHQiPjwvc3Bhbj48L2xpPjxsaT48YSBpZD0iZGF0YXNldEZvcm06al9pZHQyNjMiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgYnRuLWRvd25sb2FkIiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MjYzJnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybSZxdW90OyxvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtiaW5kX2JzdWlfY29tcG9uZW50cygpO3Nob3dQb3B1cCgpOzt9LGZpOiZxdW90O2RhdGFzZXRGb3JtOnRvcERhdGFzZXRCbG9ja0ZyYWdtZW50JnF1b3Q7fSk7cmV0dXJuIGZhbHNlOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxvYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWklQICgzNC41IE1CKTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCBidG4tZ3JvdXAtanVzdGlmaWVkIj48YSBpZD0iZGF0YXNldEZvcm06al9pZHQzODgiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgYnRuIGJ0bi1kZWZhdWx0IGJ0bi14cyBidG4tY29udGFjdCIgYXJpYS1sYWJlbD0iQ29udGFjdCBEYXRhc2V0IE93bmVyIiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0Mzg4JnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDssdTomcXVvdDtjb250YWN0RGlhbG9nJnF1b3Q7LG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzLGRhdGEpe1BGKCdjb250YWN0Rm9ybScpLnNob3coKTt9LGZpOiZxdW90O2RhdGFzZXRGb3JtOnRvcERhdGFzZXRCbG9ja0ZyYWdtZW50JnF1b3Q7fSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkNvbnRhY3QgRGF0YXNldCBPd25lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250YWN0IE93bmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT48YSBpZD0iZGF0YXNldEZvcm06al9pZHQzOTAiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgYnRuIGJ0bi1kZWZhdWx0IGJ0bi14cyBidG4tc2hhcmUiIGFyaWEtbGFiZWw9IlNoYXJlIERhdGFzZXQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQzOTAmcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90OyxvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtQRignc2hhcmVEaWFsb2cnKS5zaG93KCk7c2hhcnJyZSgpOzt9LGZpOiZxdW90O2RhdGFzZXRGb3JtOnRvcERhdGFzZXRCbG9ja0ZyYWdtZW50JnF1b3Q7fSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IlNoYXJlIERhdGFzZXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgc3R5bGU9ImNsZWFyOnJpZ2h0OyIgY2xhc3M9ImNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTQgY29sLWxnLTMgcHVsbC1yaWdodCBtYXJnaW4tYm90dG9tIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibWV0cmljcy1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibWV0cmljcy1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YXNldCBNZXRyaWNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byB0b3AiIGRhdGEtdHJpZ2dlcj0iaG92ZXIiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IkFnZ3JlZ2F0ZWQgbWV0cmljcyBmb3IgdGhpcyBkYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Im1ldHJpY3MtYm9keSI+PGRpdiBjbGFzcz0ibWV0cmljcy1jb3VudC1ibG9jayI+MTgxIERvd25sb2FkcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byB0b3AiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IlRvdGFsIGFnZ3JlZ2F0ZWQgZG93bmxvYWRzIG9mIGZpbGVzIGluIHRoaXMgZGF0YXNldC4iPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRhdGFzZXQtY29sb3JkZXItYmxvY2siIGNsYXNzPSJ2aXNpYmxlLW1kLWJsb2NrIHZpc2libGUtbGctYmxvY2sgY29sLW1kLTggY29sLWxnLTkiPjwvZGl2PjxkaXYgaWQ9ImRhdGFzZXQtc3VtbWFyeS1tZXRhZGF0YSIgY2xhc3M9ImNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTggY29sLWxnLTkgbWV0YWRhdGEtY29udGFpbmVyIHBhZGRpbmctbm9uZSBtYXJnaW4tYm90dG9tIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ibWV0YWRhdGEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT48dHIgaWQ9ImRzRGVzY3JpcHRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iQSBzdW1tYXJ5IGRlc2NyaWJpbmcgdGhlIHB1cnBvc2UsIG5hdHVyZSwgYW5kIHNjb3BlIG9mIHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+PHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+U3VtbWFyeSBvZiBhc3NvY2lhdGlvbiB0ZXN0cyBmb3IgTmF0dXJlIEdlbmV0aWNzIHB1YmxpY2F0aW9uICJJZGVudGlmaWNhdGlvbiBvZiBtdWx0aXBsZSByaXNrIHZhcmlhbnRzIGZvciBhbmt5bG9zaW5nIHNwb25keWxpdGlzIHRocm91Z2ggaGlnaC1kZW5zaXR5IGdlbm90eXBpbmcgb2YgaW1tdW5lLXJlbGF0ZWQgbG9jaSIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC90ZD48L3RyPjx0ciBpZD0ic3ViamVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IkRvbWFpbi1zcGVjaWZpYyBTdWJqZWN0IENhdGVnb3JpZXMgdGhhdCBhcmUgdG9waWNhbGx5IHJlbGV2YW50IHRvIHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+PHRkPk1lZGljaW5lLCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXM8L3RkPjwvdHI+PHRyIGlkPSJrZXl3b3JkcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXl3b3JkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IktleSB0ZXJtcyB0aGF0IGRlc2NyaWJlIGltcG9ydGFudCBhc3BlY3RzIG9mIHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiBHZW5vbWUtV2lkZSBBc3NvY2lhdGlvbiBTdHVkaWVzLCBBbmt5bG9zaW5nIHNwb25keWxpdGlzPC90ZD48L3RyPjx0ciBpZD0icHVibGljYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRlZCBQdWJsaWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJQdWJsaWNhdGlvbnMgdGhhdCB1c2UgdGhlIGRhdGEgZnJvbSB0aGlzIERhdGFzZXQuIFRoZSBmdWxsIGxpc3Qgb2YgUmVsYXRlZCBQdWJsaWNhdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQgb24gdGhlIG1ldGFkYXRhIHRhYi4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPjx0ZD4xMC4xMDM4L25nLjI2NjcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPjwvYT48L3RkPjwvdHI+PHRyIGlkPSJub3Rlc1RleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iQWRkaXRpb25hbCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIERhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD48dGQ+RXVyb3BlYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0OiBzdW1tYXJ5IGRhdGEgZm9yIEV1cm9wZWFuIGNvaG9ydCBBc2lhbl9DYXNlX0NvbnRyb2xfUmVzdWx0cy50eHQ6IHN1bW1hcnkgZGF0YSBmb3IgQXNpYW4gY29ob3J0IEV1cm9wZWFuX0FzaWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dDogc3VtbWFyeSBkYXRhIGZvciBjb21iaW5lZCBjb2hvcnQ8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0iY29udGVudFRhYnMiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnBhZ2VSZWZyZXNoRnJhZ21lbnQiPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06ZGF0YXNldExvY2tlZEZvckFueVJlYXNvblZhcmlhYmxlIiB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGFzZXRGb3JtOmRhdGFzZXRMb2NrZWRGb3JBbnlSZWFzb25WYXJpYWJsZSIgdmFsdWU9ImZhbHNlIiAvPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06ZGF0YXNldFN0YXRlQ2hhbmdlZFZhcmlhYmxlIiB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGFzZXRGb3JtOmRhdGFzZXRTdGF0ZUNoYW5nZWRWYXJpYWJsZSIgdmFsdWU9ImZhbHNlIiAvPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0NjMwIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnJlZnJlc2hBbGxMb2Nrc0NvbW1hbmQgPSBmdW5jdGlvbigpIHtyZXR1cm4gUHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06al9pZHQ2MzAiLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTpqX2lkdDYzMCIsdToiZGF0YXNldEZvcm06cGFnZVJlZnJlc2hGcmFnbWVudCBtZXNzYWdlUGFuZWwiLHBhOmFyZ3VtZW50c1swXSxmaToiZGF0YXNldEZvcm06cGFnZVJlZnJlc2hGcmFnbWVudCJ9KTt9PC9zY3JpcHQ+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQ2MzEiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+cmVmcmVzaEFsbENvbW1hbmQgPSBmdW5jdGlvbigpIHtyZXR1cm4gUHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06al9pZHQ2MzEiLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTpqX2lkdDYzMSIsdToiZGF0YXNldEZvcm06dG9wRGF0YXNldEJsb2NrRnJhZ21lbnQgZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIG1lc3NhZ2VQYW5lbCIscGE6YXJndW1lbnRzWzBdLGZpOiJkYXRhc2V0Rm9ybTpwYWdlUmVmcmVzaEZyYWdtZW50In0pO308L3NjcmlwdD48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpyZWZyZXNoQnV0dG9uIiBuYW1lPSJkYXRhc2V0Rm9ybTpyZWZyZXNoQnV0dG9uIiBjbGFzcz0iIiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOnJlZnJlc2hCdXR0b24mcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90OyxwOiZxdW90O2RhdGFzZXRGb3JtOnJlZnJlc2hCdXR0b24mcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybTp0b3BEYXRhc2V0QmxvY2tGcmFnbWVudCBkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUmcXVvdDssZmk6JnF1b3Q7ZGF0YXNldEZvcm06cGFnZVJlZnJlc2hGcmFnbWVudCZxdW90O30pO3JldHVybiBmYWxzZTsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPnVpLWJ1dHRvbjwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpyZWZyZXNoQnV0dG9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJyZWZyZXNoQnV0dG9uIix7aWQ6ImRhdGFzZXRGb3JtOnJlZnJlc2hCdXR0b24ifSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPCFbQ0RBVEFbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gamF2YXNjcmlwdCBmb3IgcmVmcmVzaGluZyBwYWdlIHdoZW4gbG9ja3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaElmU3RpbGxMb2NrZWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiByZWZyZXNoSWZTdGlsbExvY2tlZCgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJ2lucHV0W2lkJD0iZGF0YXNldExvY2tlZEZvckFueVJlYXNvblZhcmlhYmxlIl0nKS52YWwoKSA9PT0gJ3RydWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBkYXRhc2V0IGlzIGxvY2tlZCwgaW5zdHJ1Y3QgdGhlIHBhZ2UgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhaXQgYW5kIGNoZWNrIGFnYWluOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdEFuZENoZWNrTG9ja0FnYWluKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBub3QgbG9ja2VkLCBoYXMgaXQganVzdCBiZWVuIHVubG9ja2VkPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJ2lucHV0W2lkJD0iZGF0YXNldFN0YXRlQ2hhbmdlZFZhcmlhYmxlIl0nKS52YWwoKSA9PT0gJ3RydWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIHdoYXRldmVyIHVua25vd24gUHJpbWVGYWNlcyByZWFzb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcGFnZSBuZWVkcyB0byBiZSByZWZyZXNoZWQgdHdpY2UsIGZvciBhbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcHVsbCBkb3duIG1lbnVzIHRvIHVwZGF0ZSBwcm9wZXJseToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoQWxsQ29tbWFuZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFlvdSBjYW4ndCBqdXN0IHJ1biAyIHJlZnJlc2hBbGxDb21tYW5kKClzIGluIGEgcm93CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyOyBiZWNhdXNlIHRoZSBjb21tYW5kIGhhcyBhbiAidXBkYXRlPUBhbGwiIG9uIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIEkgZ3Vlc3MgaWYgeW91IHRyeSB0byBleGVjdXRlIHRoZSAybmQgb25lIHJpZ2h0IGFmdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG9uZSwgdGhpcyBmcmFnbWVudCBpcyBzdGlsbCBnb2luZyB0byBiZSBsb2FkaW5nIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGVyZSB3b3VsZCBub3QgeWV0IGJlIGEgY29tbWFuZCB0byBydW4hIChpdCBuZWVkcyB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIHJlbmRlcmVkLCBiZWZvcmUgeW91IGNhbiBleGVjdXRlIGl0LCB0aGF0IGlzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGJ1dHRvbiBkb2Vzbid0IGRvIGFueXRoaW5nLCBidXQgaXQgaGFzIGFuIHVwZGF0ZT0iQGFsbCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXR0cmlidXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdidXR0b25baWQkPSJyZWZyZXNoQnV0dG9uIl0nKS50cmlnZ2VyKCdjbGljaycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3JlZnJlc2hBbGxDb21tYW5kKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTUwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2FpdEFuZENoZWNrTG9ja0FnYWluKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZnJlc2ggdGhlIGxvY2sgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYWNraW5nIGJlYW47IGkuZS4sIGNoZWNrLCBpZiB0aGUgaW5nZXN0IGhhcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBjb21wbGV0ZWQgaW4gdGhlIGJhY2tncm91bmQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQoJ2J1dHRvbltpZCQ9InJlZnJlc2hCdXR0b24iXScpLnRyaWdnZXIoJ2NsaWNrJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3JlZnJlc2hMb2NrQ29tbWFuZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaEFsbExvY2tzQ29tbWFuZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDAwMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vXV0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3IiBjbGFzcz0idWktdGFicyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1oaWRkZW4tY29udGFpbmVyIHVpLXRhYnMtdG9wIiBkYXRhLXdpZGdldD0iY29udGVudCI+PHVsIGNsYXNzPSJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiByb2xlPSJ0YWJsaXN0Ij48bGkgY2xhc3M9InVpLXRhYnMtaGVhZGVyIHVpLXN0YXRlLWRlZmF1bHQgdWktdGFicy1zZWxlY3RlZCB1aS1zdGF0ZS1hY3RpdmUgdWktY29ybmVyLXRvcCIgcm9sZT0idGFiIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIiBkYXRhLWluZGV4PSIwIj48YSBocmVmPSIjZGF0YXNldEZvcm06dGFiVmlldzpkYXRhRmlsZXNUYWIiIHRhYmluZGV4PSItMSI+RmlsZXM8L2E+PC9saT48bGkgY2xhc3M9InVpLXRhYnMtaGVhZGVyIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCIgcm9sZT0idGFiIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGRhdGEtaW5kZXg9IjEiPjxhIGhyZWY9IiNkYXRhc2V0Rm9ybTp0YWJWaWV3Om1ldGFkYXRhTWFwVGFiIiB0YWJpbmRleD0iLTEiPk1ldGFkYXRhPC9hPjwvbGk+PGxpIGNsYXNzPSJ1aS10YWJzLWhlYWRlciB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiIHJvbGU9InRhYiIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBkYXRhLWluZGV4PSIyIj48YSBocmVmPSIjZGF0YXNldEZvcm06dGFiVmlldzp0ZXJtc1RhYiIgdGFiaW5kZXg9Ii0xIj5UZXJtczwvYT48L2xpPjxsaSBjbGFzcz0idWktdGFicy1oZWFkZXIgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItdG9wIiByb2xlPSJ0YWIiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgZGF0YS1pbmRleD0iMyI+PGEgaHJlZj0iI2RhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWIiIHRhYmluZGV4PSItMSI+VmVyc2lvbnM8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9InVpLXRhYnMtcGFuZWxzIj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmRhdGFGaWxlc1RhYiIgY2xhc3M9InVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIgcm9sZT0idGFicGFuZWwiIGFyaWEtaGlkZGVuPSJmYWxzZSIgZGF0YS1pbmRleD0iMCI+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpqX2lkdDEwMDUiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+cmVmcmVzaFBhZ2luYXRvciA9IGZ1bmN0aW9uKCkge3JldHVybiBQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0MTAwNSIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6al9pZHQxMDA1Iix1OiJkYXRhc2V0Rm9ybSIscGE6YXJndW1lbnRzWzBdfSk7fTwvc2NyaXB0PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6al9pZHQxMDEwIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnJlYmluZENvbW1hbmQgPSBmdW5jdGlvbigpIHtyZXR1cm4gUHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06dGFiVmlldzpqX2lkdDEwMTAiLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0MTAxMCIsdToiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtqYXZhc2NyaXB0OmJpbmRfYnN1aV9jb21wb25lbnRzKCk7O30scGE6YXJndW1lbnRzWzBdfSk7fTwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIgY2xhc3M9InVpLWRhdGF0YWJsZSB1aS13aWRnZXQiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MXB4OyI+PGRpdiBjbGFzcz0idWktZGF0YXRhYmxlLWhlYWRlciB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci10b3AiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpmaWxlc0hlYWRlckJsb2NrIiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy01Ij48ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+PGxhYmVsIGZvcj0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNlYXJjaEZpbGVzIiBpZD0ic2VhcmNoTGFiZWwiIGNsYXNzPSJzci1vbmx5Ij5TZWFyY2g8L2xhYmVsPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNlYXJjaEZpbGVzIiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6c2VhcmNoRmlsZXMiIHR5cGU9InRleHQiIHZhbHVlPSIiIGNsYXNzPSJ1aS1pbnB1dGZpZWxkIHVpLWlucHV0dGV4dCB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIGZvcm0tY29udHJvbCIgdGl0bGU9IlNlYXJjaCIgb25rZXlwcmVzcz0iaWYgKGV2ZW50LmtleUNvZGUgPT0gMTMpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdHNlYXJjaCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IiBhcmlhLWxhYmVsbGVkYnk9InNlYXJjaExhYmVsIiAvPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpzZWFyY2hGaWxlc19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJJbnB1dFRleHQiLCJpbnB1dFNlYXJjaFRlcm0iLHtpZDoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNlYXJjaEZpbGVzIn0pO30pOzwvc2NyaXB0PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDEwMjFfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiV2F0ZXJtYXJrIiwid2lkZ2V0X2RhdGFzZXRGb3JtX3RhYlZpZXdfZmlsZXNUYWJsZV9qX2lkdDEwMjEiLHtpZDoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOmpfaWR0MTAyMSIsdmFsdWU6IlNlYXJjaCB0aGlzIGRhdGFzZXQuLi4iLHRhcmdldDoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOnNlYXJjaEZpbGVzIn0pO30pOzwvc2NyaXB0PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDEwMjIiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+c3VibWl0c2VhcmNoID0gZnVuY3Rpb24oKSB7cmV0dXJuIFByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDEwMjIiLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6al9pZHQxMDIyIEB3aWRnZXRWYXIoaW5wdXRTZWFyY2hUZXJtKSIsdToiZGF0YXNldEZvcm0iLHBzOnRydWUsb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3MsZGF0YSl7YmluZF9ic3VpX2NvbXBvbmVudHMoKTs7fSxwYTphcmd1bWVudHNbMF19KTt9PC9zY3JpcHQ+CgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5wdXQtZ3JvdXAtYnRuIj48YSBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOmpfaWR0MTAyNCIgaHJlZj0iIyIgY2xhc3M9InVpLWNvbW1hbmRsaW5rIHVpLXdpZGdldCBidG4gYnRuLWRlZmF1bHQgYm9vdHN0cmFwLWJ1dHRvbi10b29sdGlwIiBhcmlhLWxhYmVsPSJGaW5kIiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDEwMjQmcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90OyxwOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDEwMjQgQHdpZGdldFZhcihpbnB1dFNlYXJjaFRlcm0pJnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDsscHM6dHJ1ZSxvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtiaW5kX2JzdWlfY29tcG9uZW50cygpOzt9fSk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9IkZpbmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNlYXJjaCBuby10ZXh0Ij48L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy03IHRleHQtcmlnaHQiPgogICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMHB4OyIgY2xhc3M9InJvdyI+PGRpdiBjbGFzcz0iY29sLXhzLTkgdGV4dC1sZWZ0Ij48ZGl2IHN0eWxlPSJmb250LXdlaWdodDpub3JtYWw7IiBjbGFzcz0idGV4dC1tdXRlZCBzbWFsbCI+RmlsdGVyIGJ5PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjIwcHg7IiBjbGFzcz0iYnRuLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWxpbmsgZHJvcGRvd24tdG9nZ2xlIiBzdHlsZT0icGFkZGluZzowOyIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFR5cGU6IDxzcGFuIGNsYXNzPSIiPkFsbDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVBY2Nlc3M9JmFtcDtmaWxlVGFnPSZhbXA7ZmlsZVNvcnRGaWVsZD0mYW1wO2ZpbGVTb3J0T3JkZXI9Ij48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Qm9sZCI+QWxsPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InNlcGFyYXRvciIgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JTIyVGV4dCUyMiZhbXA7ZmlsZUFjY2Vzcz0mYW1wO2ZpbGVUYWc9JmFtcDtmaWxlU29ydEZpZWxkPSZhbXA7ZmlsZVNvcnRPcmRlcj0iPjxzcGFuIGNsYXNzPSIiPlRleHQgKDMpPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1yaWdodDoyMHB4OyIgY2xhc3M9ImJ0bi1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1saW5rIGRyb3Bkb3duLXRvZ2dsZSIgc3R5bGU9InBhZGRpbmc6MDsiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzOiA8c3BhbiBjbGFzcz0iIj5BbGw8L3NwYW4+IDxzcGFuIGNsYXNzPSJjYXJldCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlVGFnPSZhbXA7ZmlsZVNvcnRGaWVsZD0mYW1wO2ZpbGVTb3J0T3JkZXI9Ij48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Qm9sZCI+QWxsPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9InNlcGFyYXRvciIgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlQWNjZXNzPVB1YmxpYyZhbXA7ZmlsZVRhZz0mYW1wO2ZpbGVTb3J0RmllbGQ9JmFtcDtmaWxlU29ydE9yZGVyPSI+PHNwYW4gY2xhc3M9IiI+UHVibGljICgzKTwvc3Bhbj48L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj48L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtMyB0ZXh0LXJpZ2h0ICI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNvcnQiPjwvc3Bhbj4gU29ydCA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSBwdWxsLXJpZ2h0IHRleHQtbGVmdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVUeXBlR3JvdXBGYWNldD0mYW1wO2ZpbGVBY2Nlc3M9Ij48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Qm9sZCI+TmFtZSAoQS1aKTwvc3Bhbj48L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZGF0YXNldC54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08mYW1wO3ZlcnNpb249JmFtcDtxPSZhbXA7ZmlsZVR5cGVHcm91cEZhY2V0PSZhbXA7ZmlsZUFjY2Vzcz0mYW1wO2ZpbGVTb3J0RmllbGQ9bmFtZSZhbXA7ZmlsZVNvcnRPcmRlcj1kZXNjIj48c3BhbiBjbGFzcz0iIj5OYW1lIChaLUEpPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlQWNjZXNzPSZhbXA7ZmlsZVNvcnRGaWVsZD1kYXRlIj48c3BhbiBjbGFzcz0iIj5OZXdlc3Q8L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RhdGFzZXQueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwJTJGRFZOJTJGTko3WFNPJmFtcDt2ZXJzaW9uPSZhbXA7cT0mYW1wO2ZpbGVUeXBlR3JvdXBGYWNldD0mYW1wO2ZpbGVBY2Nlc3M9JmFtcDtmaWxlU29ydEZpZWxkPWRhdGUmYW1wO2ZpbGVTb3J0T3JkZXI9ZGVzYyI+PHNwYW4gY2xhc3M9IiI+T2xkZXN0PC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlQWNjZXNzPSZhbXA7ZmlsZVNvcnRGaWVsZD1zaXplIj48c3BhbiBjbGFzcz0iIj5TaXplPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kYXRhc2V0LnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9wZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyZhbXA7dmVyc2lvbj0mYW1wO3E9JmFtcDtmaWxlVHlwZUdyb3VwRmFjZXQ9JmFtcDtmaWxlQWNjZXNzPSZhbXA7ZmlsZVNvcnRGaWVsZD10eXBlIj48c3BhbiBjbGFzcz0iIj5UeXBlPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idWktZGF0YXRhYmxlLXRhYmxld3JhcHBlciI+PHRhYmxlIHJvbGU9ImdyaWQiIHN0eWxlPSJtaW4td2lkdGg6MTAwJTt3aWR0aDphdXRvOyI+PHRoZWFkIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGVfaGVhZCI+PHRyIHJvbGU9InJvdyI+PHRoIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6al9pZHQxMTk4IiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCB1aS1zZWxlY3Rpb24tY29sdW1uIHRleHQtY2VudGVyIiByb2xlPSJjb2x1bW5oZWFkZXIiIGFyaWEtbGFiZWw9IlNlbGVjdCBGaWxlcyIgc2NvcGU9ImNvbCI+PHNwYW4gY2xhc3M9InVpLWNvbHVtbi10aXRsZSI+PC9zcGFuPjxkaXYgY2xhc3M9InVpLWNoa2JveCB1aS1jaGtib3gtYWxsIHVpLXdpZGdldCI+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlX2hlYWRfY2hlY2tib3giIHJvbGU9ImNoZWNrYm94IiB0YWJpbmRleD0iMCIgYXJpYS1sYWJlbD0iU2VsZWN0IEFsbCIgYXJpYS1jaGVja2VkPSJmYWxzZSIgY2xhc3M9InVpLWNoa2JveC1ib3ggdWktd2lkZ2V0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGVmYXVsdCI+PHNwYW4gY2xhc3M9InVpLWNoa2JveC1pY29uIHVpLWljb24gdWktaWNvbi1ibGFuayB1aS1jIj48L3NwYW4+PC9kaXY+PC9kaXY+PC90aD48dGggaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpqX2lkdDExOTkiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IGNvbC1maWxlLW1ldGFkYXRhIiByb2xlPSJjb2x1bW5oZWFkZXIiIHNjb3BlPSJjb2wiIGFyaWEtbGFiZWw9IkZpbGUgQ291bnQiPjxzcGFuIGNsYXNzPSJ1aS1jb2x1bW4tdGl0bGUiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpmaWxlc0hlYWRlckNvdW50Ij48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Qm9sZCI+MSB0byAzIG9mIDMgRmlsZXM8L3NwYW4+PC9kaXY+PC9zcGFuPjwvdGg+PHRoIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6al9pZHQxMjM1IiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCBjb2wtZmlsZS1hY3Rpb24gYnV0dG9uLWJsb2NrIHRleHQtcmlnaHQiIHJvbGU9ImNvbHVtbmhlYWRlciIgYXJpYS1sYWJlbD0iRmlsZSBBY3Rpb25zIiBzY29wZT0iY29sIiBzdHlsZT0id2lkdGg6NDAlOyI+PHNwYW4gY2xhc3M9InVpLWNvbHVtbi10aXRsZSI+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZG93bmxvYWRGaWxlcyh1cmwsIGZpbGVsaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVsaXN0ID0gZmlsZWxpc3QgKyAnLCc7IC8vUHJldmVudHMgbGFzdCBmaWxlIGZyb20gYmVpbmcgZHJvcHBlZCBvbiBzZXJ2ZXIKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZvcm0gPSAkKCc8Zm9ybT48L2Zvcm0+JykuYXR0cignYWN0aW9uJywgdXJsKS5hdHRyKCdtZXRob2QnLCAncG9zdCcpLmF0dHIoJ2VuY3R5cGUnLCAndGV4dC9wbGFpbicpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmFwcGVuZCgkKCI8aW5wdXQgLz4iKS5hdHRyKCd0eXBlJywgJ2hpZGRlbicpLmF0dHIoJ25hbWUnLCAnZmlsZUlkcycpLmF0dHIoJ3ZhbHVlJywgZmlsZWxpc3QpKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy9TdWJtaXQgYW5kIHRoZW4gcmVtb3ZlIGZvcm0KICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5hcHBlbmRUbygnYm9keScpLnN1Ym1pdCgpLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTpkb3dubG9hZEJ1dHRvbkJsb2NrTm9ybWFsIiBjbGFzcz0iYnRuLWdyb3VwIj48YSBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOmpfaWR0MTI4NiIgaHJlZj0iIyIgY2xhc3M9InVpLWNvbW1hbmRsaW5rIHVpLXdpZGdldCBidG4gYnRuLWRlZmF1bHQgYnRuLWRvd25sb2FkIiBvbmNsaWNrPSJpZiAoIXRlc3RGaWxlc1NlbGVjdGVkKCkpIHJldHVybiBmYWxzZTs7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6al9pZHQxMjg2JnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybSZxdW90OyxvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtiaW5kX2JzdWlfY29tcG9uZW50cygpO3Nob3dQb3B1cCgpOzt9fSk7cmV0dXJuIGZhbHNlOyIgb25jbGljaz0iaWYgKCF0ZXN0RmlsZXNTZWxlY3RlZCgpKSByZXR1cm4gZmFsc2U7IiBvbmNsaWNrPSJpZiAoIXRlc3RGaWxlc1NlbGVjdGVkKCkpIHJldHVybiBmYWxzZTsiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1kb3dubG9hZC1hbHQiPjwvc3Bhbj4gRG93bmxvYWQKICAgICAgICAgICAgICAgICAgICA8L2E+PC9kaXY+PC9zcGFuPjwvdGg+PC90cj48L3RoZWFkPjx0Ym9keSBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlX2RhdGEiIGNsYXNzPSJ1aS1kYXRhdGFibGUtZGF0YSB1aS13aWRnZXQtY29udGVudCI+PHRyIGRhdGEtcmk9IjAiIGRhdGEtcms9InMzOi8vZHZuLWNsb3VkOjE1ZWQ1N2E2NTJlLTY3Mjg0YTM3MmMyOSIgY2xhc3M9InVpLXdpZGdldC1jb250ZW50IHVpLWRhdGF0YWJsZS1ldmVuIHVpLWRhdGF0YWJsZS1zZWxlY3RhYmxlIiByb2xlPSJyb3ciIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIj48dGQgcm9sZT0iZ3JpZGNlbGwiIGNsYXNzPSJ1aS1zZWxlY3Rpb24tY29sdW1uIHRleHQtY2VudGVyIj48ZGl2IGNsYXNzPSJ1aS1jaGtib3ggdWktd2lkZ2V0Ij48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGVfczM6Ly9kdm4tY2xvdWQ6MTVlZDU3YTY1MmUtNjcyODRhMzcyYzI5X2NoZWNrYm94IiByb2xlPSJjaGVja2JveCIgdGFiaW5kZXg9IjAiIGFyaWEtY2hlY2tlZD0iZmFsc2UiIGNsYXNzPSJ1aS1jaGtib3gtYm94IHVpLXdpZGdldCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRlZmF1bHQiPjxzcGFuIGNsYXNzPSJ1aS1jaGtib3gtaWNvbiB1aS1pY29uIHVpLWljb24tYmxhbmsgdWktYyI+PC9zcGFuPjwvZGl2PjwvZGl2PjwvdGQ+PHRkIHJvbGU9ImdyaWRjZWxsIiBjbGFzcz0iY29sLWZpbGUtbWV0YWRhdGEiIGFyaWEtbGFiZWw9IkZpbGUgQ291bnQiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmZpbGVJbmZvSW5jbHVkZS1maWxlc1RhYmxlIiBjbGFzcz0idWktb3V0cHV0cGFuZWwgdWktd2lkZ2V0IG1lZGlhIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IGNvbC1maWxlLXRodW1iIiBzdHlsZT0icGFkZGluZy10b3A6NHB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLW9iamVjdCB0aHVtYm5haWwtYmxvY2sgdGV4dC1jZW50ZXIiPjxzcGFuIGNsYXNzPSJpY29uLWRvY3VtZW50IGZpbGUtdGh1bWJuYWlsLWljb24gdGV4dC1tdXRlZCI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5IGNvbC1maWxlLW1ldGFkYXRhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZU5hbWVPcmlnaW5hbCI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2ZpbGUueGh0bWw/cGVyc2lzdGVudElkPWRvaToxMC43OTEwL0RWTi9OSjdYU08vSzNOUk1PJmFtcDt2ZXJzaW9uPTEuMCI+CiAgICAgICAgICAgICAgICAgICAgICAgIEFzaWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dAogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LW11dGVkIHNtYWxsIj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjA6ZmlsZVR5cGUiPlBsYWluIFRleHQ8L3NwYW4+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmZpbGVTaXplIj4gLSAxMS4wIE1CPC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZUNyZWF0ZVB1Ymxpc2gtYmxvY2siPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MDpmaWxlQ3JlYXRlUHVibGlzaERhdGUiPlB1Ymxpc2hlZCBTZXAgMzAsIDIwMTc8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJkb3dubG9hZHMtYmxvY2siPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MDpmaWxlRG93bmxvYWRDb3VudCIgY2xhc3M9InZpc2libGUteHMtYmxvY2sgdmlzaWJsZS1zbS1ibG9jayB2aXNpYmxlLW1kLWlubGluZSB2aXNpYmxlLWxnLWlubGluZSI+NTYgRG93bmxvYWRzPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImNoZWNrc3VtLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSBjaGVja3N1bS10cnVuY2F0ZSBjaGVja3N1bS10b29sdGlwIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjNweDsiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0idG9wIiBkYXRhLWh0bWw9InRydWUiIGRhdGEtY2xpcGJvYXJkLWFjdGlvbj0iY29weSIgZGF0YS1jbGlwYm9hcmQtdGV4dD0iYmNjMDZhZWJmOTZjOTU0MDk5NTE5MmM4OWM5MWZiMjMiIHRpdGxlPSJDbGljayB0byBjb3B5Jmx0O2JyLyZndDtiY2MwNmFlYmY5NmM5NTQwOTk1MTkyYzg5YzkxZmIyMyI+TUQ1OiBiY2MwNmFlYmY5NmM5NTQwOTk1MTkyYzg5YzkxZmIyMzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jb3B5IGJ0bi1jb3B5IGNoZWNrc3VtLXRvb2x0aXAiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0idG9wIiBkYXRhLWh0bWw9InRydWUiIGRhdGEtY2xpcGJvYXJkLWFjdGlvbj0iY29weSIgZGF0YS1jbGlwYm9hcmQtdGV4dD0iYmNjMDZhZWJmOTZjOTU0MDk5NTE5MmM4OWM5MWZiMjMiIHRpdGxlPSJDbGljayB0byBjb3B5Jmx0O2JyLyZndDtiY2MwNmFlYmY5NmM5NTQwOTk1MTkyYzg5YzkxZmIyMyI+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJmaWxlRGVzY3JpcHRpb24gc21hbGwiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MDpmaWxlRGVzY05vbkVtcHR5Ij5TdW1tYXJ5IGRhdGEgZm9yIEFzaWFuIGNvaG9ydDwvc3Bhbj48L2Rpdj4KICAgICAgICA8L2Rpdj48L2Rpdj48L3RkPjx0ZCByb2xlPSJncmlkY2VsbCIgc3R5bGU9IndpZHRoOjQwJTsiIGNsYXNzPSJjb2wtZmlsZS1hY3Rpb24gYnV0dG9uLWJsb2NrIHRleHQtcmlnaHQiPjxkaXYgcm9sZT0iZ3JvdXAiIGNsYXNzPSJidG4tZ3JvdXAiIGFyaWEtbGFiZWw9IkZpbGUgQWN0aW9ucyI+PGRpdiBjbGFzcz0iYnRuLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJ0bi1wcmV2aWV3IGJ0biBidG4tbGluayBib290c3RyYXAtYnV0dG9uLXRvb2x0aXAiIHRpdGxlPSJQcmV2aWV3IiBocmVmPSIvZmlsZS54aHRtbD9wZXJzaXN0ZW50SWQ9ZG9pOjEwLjc5MTAvRFZOL05KN1hTTy9LM05STU8mYW1wO3ZlcnNpb249MS4wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV5ZS1vcGVuIj48L3NwYW4+PHNwYW4gY2xhc3M9InNyLW9ubHkiPlByZXZpZXc8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8YSB0eXBlPSJidXR0b24iIHN0eWxlPSJwYWRkaW5nOjZweCA4cHg7IiBjbGFzcz0iYnRuLWFjY2Vzcy1maWxlIGJ0biBidG4tbGluayBib290c3RyYXAtYnV0dG9uLXRvb2x0aXAgZHJvcGRvd24tdG9nZ2xlIiB0aXRsZT0iQWNjZXNzIEZpbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1kb3dubG9hZC1hbHQiPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3Itb25seSI+QWNjZXNzIEZpbGU8L3NwYW4+PHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSBwdWxsLXJpZ2h0IHRleHQtbGVmdCI+CiAgICAKICAgIAogICAgPGxpIGNsYXNzPSJkcm9wZG93bi1oZWFkZXIiPkZpbGUgQWNjZXNzIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWZpbGUiPjwvc3Bhbj48L2xpPgogICAgPGxpPjxzcGFuIGNsYXNzPSJkcm9wZG93bi1pdGVtLXRleHQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1nbG9iZSB0ZXh0LXN1Y2Nlc3MiPjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1zdWNjZXNzIj4gUHVibGljPC9zcGFuPgogICAgICAgIDwvc3Bhbj48L2xpPgogICAgICAgIAogICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24taGVhZGVyIj5Eb3dubG9hZCBPcHRpb25zIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWRvd25sb2FkLWFsdCI+PC9zcGFuPjwvbGk+PGxpPjxhIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MDpqX2lkdDEzMjgiIGhyZWY9IiMiIGNsYXNzPSJ1aS1jb21tYW5kbGluayB1aS13aWRnZXQgYnRuLWRvd25sb2FkIiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTMyOCZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7LHA6JnF1b3Q7ZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjA6al9pZHQxMzI4JnF1b3Q7fSk7cmV0dXJuIGZhbHNlOyI+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgUGxhaW4gVGV4dAogICAgICAgICAgICA8L2E+PC9saT4KICAgIAogICAgCiAgICAKICAgIDxsaSBjbGFzcz0iZHJvcGRvd24taGVhZGVyIj5Eb3dubG9hZCBNZXRhZGF0YSA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1kb3dubG9hZC1hbHQiPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iZHJvcGRvd24tc3VibWVudSBwdWxsLWxlZnQiPgogICAgICAgIDxhIHRhYmluZGV4PSItMSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyI+RGF0YSBGaWxlIENpdGF0aW9uPC9hPgogICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIiBvbmNsaWNrPSJtb2phcnJhLmpzZmNsanMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RhdGFzZXRGb3JtJykseydkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MDpqX2lkdDEzNjMnOidkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MDpqX2lkdDEzNjMnfSwnJyk7cmV0dXJuIGZhbHNlIiBjbGFzcz0iYnRuLWRvd25sb2FkIj5FbmROb3RlIFhNTDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIG9uY2xpY2s9Im1vamFycmEuanNmY2xqcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0YXNldEZvcm0nKSx7J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTM2Nic6J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTM2Nid9LCcnKTtyZXR1cm4gZmFsc2UiIGNsYXNzPSJidG4tZG93bmxvYWQiPlJJUzwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIG9uY2xpY2s9Im1vamFycmEuanNmY2xqcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0YXNldEZvcm0nKSx7J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTM2OSc6J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZTowOmpfaWR0MTM2OSd9LCcnKTtyZXR1cm4gZmFsc2UiIGNsYXNzPSJidG4tZG93bmxvYWQiPkJpYlRlWDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPjwvbGk+CiAgICAKICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJjbGVhcmZpeCI+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj48L2Rpdj48L3RkPjwvdHI+PHRyIGRhdGEtcmk9IjEiIGRhdGEtcms9InMzOi8vZHZuLWNsb3VkOjE1ZWQ1N2E4N2I5LTk5YWJjMTYyYjQ1OCIgY2xhc3M9InVpLXdpZGdldC1jb250ZW50IHVpLWRhdGF0YWJsZS1vZGQgdWktZGF0YXRhYmxlLXNlbGVjdGFibGUiIHJvbGU9InJvdyIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiPjx0ZCByb2xlPSJncmlkY2VsbCIgY2xhc3M9InVpLXNlbGVjdGlvbi1jb2x1bW4gdGV4dC1jZW50ZXIiPjxkaXYgY2xhc3M9InVpLWNoa2JveCB1aS13aWRnZXQiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZV9zMzovL2R2bi1jbG91ZDoxNWVkNTdhODdiOS05OWFiYzE2MmI0NThfY2hlY2tib3giIHJvbGU9ImNoZWNrYm94IiB0YWJpbmRleD0iMCIgYXJpYS1jaGVja2VkPSJmYWxzZSIgY2xhc3M9InVpLWNoa2JveC1ib3ggdWktd2lkZ2V0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGVmYXVsdCI+PHNwYW4gY2xhc3M9InVpLWNoa2JveC1pY29uIHVpLWljb24gdWktaWNvbi1ibGFuayB1aS1jIj48L3NwYW4+PC9kaXY+PC9kaXY+PC90ZD48dGQgcm9sZT0iZ3JpZGNlbGwiIGNsYXNzPSJjb2wtZmlsZS1tZXRhZGF0YSIgYXJpYS1sYWJlbD0iRmlsZSBDb3VudCI+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6ZmlsZUluZm9JbmNsdWRlLWZpbGVzVGFibGUiIGNsYXNzPSJ1aS1vdXRwdXRwYW5lbCB1aS13aWRnZXQgbWVkaWEiPgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgY29sLWZpbGUtdGh1bWIiIHN0eWxlPSJwYWRkaW5nLXRvcDo0cHg7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtb2JqZWN0IHRodW1ibmFpbC1ibG9jayB0ZXh0LWNlbnRlciI+PHNwYW4gY2xhc3M9Imljb24tZG9jdW1lbnQgZmlsZS10aHVtYm5haWwtaWNvbiB0ZXh0LW11dGVkIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLWJvZHkgY29sLWZpbGUtbWV0YWRhdGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlTmFtZU9yaWdpbmFsIj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZmlsZS54aHRtbD9wZXJzaXN0ZW50SWQ9ZG9pOjEwLjc5MTAvRFZOL05KN1hTTy9IQTJTVlImYW1wO3ZlcnNpb249MS4wIj4KICAgICAgICAgICAgICAgICAgICAgICAgRXVyb3BlYW5fQXNpYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MTpmaWxlVHlwZSI+UGxhaW4gVGV4dDwvc3Bhbj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6ZmlsZVNpemUiPiAtIDEwLjcgTUI8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlQ3JlYXRlUHVibGlzaC1ibG9jayI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmZpbGVDcmVhdGVQdWJsaXNoRGF0ZSI+UHVibGlzaGVkIFNlcCAzMCwgMjAxNzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImRvd25sb2Fkcy1ibG9jayI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmZpbGVEb3dubG9hZENvdW50IiBjbGFzcz0idmlzaWJsZS14cy1ibG9jayB2aXNpYmxlLXNtLWJsb2NrIHZpc2libGUtbWQtaW5saW5lIHZpc2libGUtbGctaW5saW5lIj40OSBEb3dubG9hZHM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY2hlY2tzdW0tYmxvY2siPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5IGNoZWNrc3VtLXRydW5jYXRlIGNoZWNrc3VtLXRvb2x0aXAiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6M3B4OyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJ0b3AiIGRhdGEtaHRtbD0idHJ1ZSIgZGF0YS1jbGlwYm9hcmQtYWN0aW9uPSJjb3B5IiBkYXRhLWNsaXBib2FyZC10ZXh0PSIwYWU3YjQ2Mzk2MjZlYmFkNmFiNzdmNTRiZmNmZGQ2ZCIgdGl0bGU9IkNsaWNrIHRvIGNvcHkmbHQ7YnIvJmd0OzBhZTdiNDYzOTYyNmViYWQ2YWI3N2Y1NGJmY2ZkZDZkIj5NRDU6IDBhZTdiNDYzOTYyNmViYWQ2YWI3N2Y1NGJmY2ZkZDZkPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNvcHkgYnRuLWNvcHkgY2hlY2tzdW0tdG9vbHRpcCIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJ0b3AiIGRhdGEtaHRtbD0idHJ1ZSIgZGF0YS1jbGlwYm9hcmQtYWN0aW9uPSJjb3B5IiBkYXRhLWNsaXBib2FyZC10ZXh0PSIwYWU3YjQ2Mzk2MjZlYmFkNmFiNzdmNTRiZmNmZGQ2ZCIgdGl0bGU9IkNsaWNrIHRvIGNvcHkmbHQ7YnIvJmd0OzBhZTdiNDYzOTYyNmViYWQ2YWI3N2Y1NGJmY2ZkZDZkIj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImZpbGVEZXNjcmlwdGlvbiBzbWFsbCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmZpbGVEZXNjTm9uRW1wdHkiPlN1bW1hcnkgZGF0YSBmb3IgY29tYmluZWQgY29ob3J0PC9zcGFuPjwvZGl2PgogICAgICAgIDwvZGl2PjwvZGl2PjwvdGQ+PHRkIHJvbGU9ImdyaWRjZWxsIiBzdHlsZT0id2lkdGg6NDAlOyIgY2xhc3M9ImNvbC1maWxlLWFjdGlvbiBidXR0b24tYmxvY2sgdGV4dC1yaWdodCI+PGRpdiByb2xlPSJncm91cCIgY2xhc3M9ImJ0bi1ncm91cCIgYXJpYS1sYWJlbD0iRmlsZSBBY3Rpb25zIj48ZGl2IGNsYXNzPSJidG4tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnRuLXByZXZpZXcgYnRuIGJ0bi1saW5rIGJvb3RzdHJhcC1idXR0b24tdG9vbHRpcCIgdGl0bGU9IlByZXZpZXciIGhyZWY9Ii9maWxlLnhodG1sP3BlcnNpc3RlbnRJZD1kb2k6MTAuNzkxMC9EVk4vTko3WFNPL0hBMlNWUiZhbXA7dmVyc2lvbj0xLjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXllLW9wZW4iPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3Itb25seSI+UHJldmlldzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIHR5cGU9ImJ1dHRvbiIgc3R5bGU9InBhZGRpbmc6NnB4IDhweDsiIGNsYXNzPSJidG4tYWNjZXNzLWZpbGUgYnRuIGJ0bi1saW5rIGJvb3RzdHJhcC1idXR0b24tdG9vbHRpcCBkcm9wZG93bi10b2dnbGUiIHRpdGxlPSJBY2Nlc3MgRmlsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWRvd25sb2FkLWFsdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzci1vbmx5Ij5BY2Nlc3MgRmlsZTwvc3Bhbj48c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IHB1bGwtcmlnaHQgdGV4dC1sZWZ0Ij4KICAgIAogICAgCiAgICA8bGkgY2xhc3M9ImRyb3Bkb3duLWhlYWRlciI+RmlsZSBBY2Nlc3MgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZmlsZSI+PC9zcGFuPjwvbGk+CiAgICA8bGk+PHNwYW4gY2xhc3M9ImRyb3Bkb3duLWl0ZW0tdGV4dCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWdsb2JlIHRleHQtc3VjY2VzcyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXN1Y2Nlc3MiPiBQdWJsaWM8L3NwYW4+CiAgICAgICAgPC9zcGFuPjwvbGk+CiAgICAgICAgCiAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93bi1oZWFkZXIiPkRvd25sb2FkIE9wdGlvbnMgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZG93bmxvYWQtYWx0Ij48L3NwYW4+PC9saT48bGk+PGEgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmpfaWR0MTMyOCIgaHJlZj0iIyIgY2xhc3M9InVpLWNvbW1hbmRsaW5rIHVpLXdpZGdldCBidG4tZG93bmxvYWQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6al9pZHQxMzI4JnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDsscDomcXVvdDtkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MTpqX2lkdDEzMjgmcXVvdDt9KTtyZXR1cm4gZmFsc2U7Ij4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBQbGFpbiBUZXh0CiAgICAgICAgICAgIDwvYT48L2xpPgogICAgCiAgICAKICAgIAogICAgPGxpIGNsYXNzPSJkcm9wZG93bi1oZWFkZXIiPkRvd25sb2FkIE1ldGFkYXRhIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWRvd25sb2FkLWFsdCI+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJkcm9wZG93bi1zdWJtZW51IHB1bGwtbGVmdCI+CiAgICAgICAgPGEgdGFiaW5kZXg9Ii0xIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7Ij5EYXRhIEZpbGUgQ2l0YXRpb248L2E+CiAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIG9uY2xpY2s9Im1vamFycmEuanNmY2xqcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0YXNldEZvcm0nKSx7J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmpfaWR0MTM2Myc6J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToxOmpfaWR0MTM2Myd9LCcnKTtyZXR1cm4gZmFsc2UiIGNsYXNzPSJidG4tZG93bmxvYWQiPkVuZE5vdGUgWE1MPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgb25jbGljaz0ibW9qYXJyYS5qc2ZjbGpzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRhc2V0Rm9ybScpLHsnZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6al9pZHQxMzY2JzonZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6al9pZHQxMzY2J30sJycpO3JldHVybiBmYWxzZSIgY2xhc3M9ImJ0bi1kb3dubG9hZCI+UklTPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgb25jbGljaz0ibW9qYXJyYS5qc2ZjbGpzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRhc2V0Rm9ybScpLHsnZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6al9pZHQxMzY5JzonZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjE6al9pZHQxMzY5J30sJycpO3JldHVybiBmYWxzZSIgY2xhc3M9ImJ0bi1kb3dubG9hZCI+QmliVGVYPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+PC9saT4KICAgIAogICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImNsZWFyZml4Ij48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PjwvZGl2PjwvdGQ+PC90cj48dHIgZGF0YS1yaT0iMiIgZGF0YS1yaz0iczM6Ly9kdm4tY2xvdWQ6MTVlZDU3YWFiN2UtOTBhMmI2YzExMmViIiBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQgdWktZGF0YXRhYmxlLWV2ZW4gdWktZGF0YXRhYmxlLXNlbGVjdGFibGUiIHJvbGU9InJvdyIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiPjx0ZCByb2xlPSJncmlkY2VsbCIgY2xhc3M9InVpLXNlbGVjdGlvbi1jb2x1bW4gdGV4dC1jZW50ZXIiPjxkaXYgY2xhc3M9InVpLWNoa2JveCB1aS13aWRnZXQiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZV9zMzovL2R2bi1jbG91ZDoxNWVkNTdhYWI3ZS05MGEyYjZjMTEyZWJfY2hlY2tib3giIHJvbGU9ImNoZWNrYm94IiB0YWJpbmRleD0iMCIgYXJpYS1jaGVja2VkPSJmYWxzZSIgY2xhc3M9InVpLWNoa2JveC1ib3ggdWktd2lkZ2V0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGVmYXVsdCI+PHNwYW4gY2xhc3M9InVpLWNoa2JveC1pY29uIHVpLWljb24gdWktaWNvbi1ibGFuayB1aS1jIj48L3NwYW4+PC9kaXY+PC9kaXY+PC90ZD48dGQgcm9sZT0iZ3JpZGNlbGwiIGNsYXNzPSJjb2wtZmlsZS1tZXRhZGF0YSIgYXJpYS1sYWJlbD0iRmlsZSBDb3VudCI+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6ZmlsZUluZm9JbmNsdWRlLWZpbGVzVGFibGUiIGNsYXNzPSJ1aS1vdXRwdXRwYW5lbCB1aS13aWRnZXQgbWVkaWEiPgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgY29sLWZpbGUtdGh1bWIiIHN0eWxlPSJwYWRkaW5nLXRvcDo0cHg7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtb2JqZWN0IHRodW1ibmFpbC1ibG9jayB0ZXh0LWNlbnRlciI+PHNwYW4gY2xhc3M9Imljb24tZG9jdW1lbnQgZmlsZS10aHVtYm5haWwtaWNvbiB0ZXh0LW11dGVkIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLWJvZHkgY29sLWZpbGUtbWV0YWRhdGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlTmFtZU9yaWdpbmFsIj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZmlsZS54aHRtbD9wZXJzaXN0ZW50SWQ9ZG9pOjEwLjc5MTAvRFZOL05KN1hTTy9JTjQ1R1omYW1wO3ZlcnNpb249MS4wIj4KICAgICAgICAgICAgICAgICAgICAgICAgRXVyb3BlYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpmaWxlVHlwZSI+UGxhaW4gVGV4dDwvc3Bhbj48c3BhbiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6ZmlsZVNpemUiPiAtIDEyLjcgTUI8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlQ3JlYXRlUHVibGlzaC1ibG9jayI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmZpbGVDcmVhdGVQdWJsaXNoRGF0ZSI+UHVibGlzaGVkIFNlcCAzMCwgMjAxNzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImRvd25sb2Fkcy1ibG9jayI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmZpbGVEb3dubG9hZENvdW50IiBjbGFzcz0idmlzaWJsZS14cy1ibG9jayB2aXNpYmxlLXNtLWJsb2NrIHZpc2libGUtbWQtaW5saW5lIHZpc2libGUtbGctaW5saW5lIj43NiBEb3dubG9hZHM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY2hlY2tzdW0tYmxvY2siPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5IGNoZWNrc3VtLXRydW5jYXRlIGNoZWNrc3VtLXRvb2x0aXAiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6M3B4OyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJ0b3AiIGRhdGEtaHRtbD0idHJ1ZSIgZGF0YS1jbGlwYm9hcmQtYWN0aW9uPSJjb3B5IiBkYXRhLWNsaXBib2FyZC10ZXh0PSI4NzZiYjNiNjAwNDYwZmRiZmFiYzAxZWIwOGM0MTQ5NyIgdGl0bGU9IkNsaWNrIHRvIGNvcHkmbHQ7YnIvJmd0Ozg3NmJiM2I2MDA0NjBmZGJmYWJjMDFlYjA4YzQxNDk3Ij5NRDU6IDg3NmJiM2I2MDA0NjBmZGJmYWJjMDFlYjA4YzQxNDk3PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNvcHkgYnRuLWNvcHkgY2hlY2tzdW0tdG9vbHRpcCIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJ0b3AiIGRhdGEtaHRtbD0idHJ1ZSIgZGF0YS1jbGlwYm9hcmQtYWN0aW9uPSJjb3B5IiBkYXRhLWNsaXBib2FyZC10ZXh0PSI4NzZiYjNiNjAwNDYwZmRiZmFiYzAxZWIwOGM0MTQ5NyIgdGl0bGU9IkNsaWNrIHRvIGNvcHkmbHQ7YnIvJmd0Ozg3NmJiM2I2MDA0NjBmZGJmYWJjMDFlYjA4YzQxNDk3Ij48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImZpbGVEZXNjcmlwdGlvbiBzbWFsbCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmZpbGVEZXNjTm9uRW1wdHkiPlN1bW1hcnkgZGF0YSBmb3IgRXVyb3BlYW4gY29ob3J0PC9zcGFuPjwvZGl2PgogICAgICAgIDwvZGl2PjwvZGl2PjwvdGQ+PHRkIHJvbGU9ImdyaWRjZWxsIiBzdHlsZT0id2lkdGg6NDAlOyIgY2xhc3M9ImNvbC1maWxlLWFjdGlvbiBidXR0b24tYmxvY2sgdGV4dC1yaWdodCI+PGRpdiByb2xlPSJncm91cCIgY2xhc3M9ImJ0bi1ncm91cCIgYXJpYS1sYWJlbD0iRmlsZSBBY3Rpb25zIj48ZGl2IGNsYXNzPSJidG4tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnRuLXByZXZpZXcgYnRuIGJ0bi1saW5rIGJvb3RzdHJhcC1idXR0b24tdG9vbHRpcCIgdGl0bGU9IlByZXZpZXciIGhyZWY9Ii9maWxlLnhodG1sP3BlcnNpc3RlbnRJZD1kb2k6MTAuNzkxMC9EVk4vTko3WFNPL0lONDVHWiZhbXA7dmVyc2lvbj0xLjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXllLW9wZW4iPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3Itb25seSI+UHJldmlldzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIHR5cGU9ImJ1dHRvbiIgc3R5bGU9InBhZGRpbmc6NnB4IDhweDsiIGNsYXNzPSJidG4tYWNjZXNzLWZpbGUgYnRuIGJ0bi1saW5rIGJvb3RzdHJhcC1idXR0b24tdG9vbHRpcCBkcm9wZG93bi10b2dnbGUiIHRpdGxlPSJBY2Nlc3MgRmlsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWRvd25sb2FkLWFsdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzci1vbmx5Ij5BY2Nlc3MgRmlsZTwvc3Bhbj48c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IHB1bGwtcmlnaHQgdGV4dC1sZWZ0Ij4KICAgIAogICAgCiAgICA8bGkgY2xhc3M9ImRyb3Bkb3duLWhlYWRlciI+RmlsZSBBY2Nlc3MgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZmlsZSI+PC9zcGFuPjwvbGk+CiAgICA8bGk+PHNwYW4gY2xhc3M9ImRyb3Bkb3duLWl0ZW0tdGV4dCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWdsb2JlIHRleHQtc3VjY2VzcyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXN1Y2Nlc3MiPiBQdWJsaWM8L3NwYW4+CiAgICAgICAgPC9zcGFuPjwvbGk+CiAgICAgICAgCiAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93bi1oZWFkZXIiPkRvd25sb2FkIE9wdGlvbnMgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZG93bmxvYWQtYWx0Ij48L3NwYW4+PC9saT48bGk+PGEgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmpfaWR0MTMyOCIgaHJlZj0iIyIgY2xhc3M9InVpLWNvbW1hbmRsaW5rIHVpLXdpZGdldCBidG4tZG93bmxvYWQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6al9pZHQxMzI4JnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDsscDomcXVvdDtkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGU6MjpqX2lkdDEzMjgmcXVvdDt9KTtyZXR1cm4gZmFsc2U7Ij4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBQbGFpbiBUZXh0CiAgICAgICAgICAgIDwvYT48L2xpPgogICAgCiAgICAKICAgIAogICAgPGxpIGNsYXNzPSJkcm9wZG93bi1oZWFkZXIiPkRvd25sb2FkIE1ldGFkYXRhIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWRvd25sb2FkLWFsdCI+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJkcm9wZG93bi1zdWJtZW51IHB1bGwtbGVmdCI+CiAgICAgICAgPGEgdGFiaW5kZXg9Ii0xIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7Ij5EYXRhIEZpbGUgQ2l0YXRpb248L2E+CiAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIG9uY2xpY2s9Im1vamFycmEuanNmY2xqcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0YXNldEZvcm0nKSx7J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmpfaWR0MTM2Myc6J2RhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZToyOmpfaWR0MTM2Myd9LCcnKTtyZXR1cm4gZmFsc2UiIGNsYXNzPSJidG4tZG93bmxvYWQiPkVuZE5vdGUgWE1MPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgb25jbGljaz0ibW9qYXJyYS5qc2ZjbGpzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRhc2V0Rm9ybScpLHsnZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6al9pZHQxMzY2JzonZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6al9pZHQxMzY2J30sJycpO3JldHVybiBmYWxzZSIgY2xhc3M9ImJ0bi1kb3dubG9hZCI+UklTPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgb25jbGljaz0ibW9qYXJyYS5qc2ZjbGpzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRhc2V0Rm9ybScpLHsnZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6al9pZHQxMzY5JzonZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlOjI6al9pZHQxMzY5J30sJycpO3JldHVybiBmYWxzZSIgY2xhc3M9ImJ0bi1kb3dubG9hZCI+QmliVGVYPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+PC9saT4KICAgIAogICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImNsZWFyZml4Ij48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L3VsPjwvZGl2PjwvZGl2PjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZV9zZWxlY3Rpb24iIG5hbWU9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZV9zZWxlY3Rpb24iIGF1dG9jb21wbGV0ZT0ib2ZmIiB2YWx1ZT0iIiAvPjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEYXRhVGFibGUiLCJmaWxlc1RhYmxlIix7aWQ6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsc2VsZWN0aW9uTW9kZToiY2hlY2tib3giLHJvd1NlbGVjdE1vZGU6ImNoZWNrYm94Iixncm91cENvbHVtbkluZGV4ZXM6W10sZGlzYWJsZUNvbnRleHRNZW51SWZFbXB0eTpmYWxzZSxiZWhhdmlvcnM6e3Jvd1Vuc2VsZWN0OmZ1bmN0aW9uKGV4dCxldmVudCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsZToicm93VW5zZWxlY3QiLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLHU6ImRhdGFzZXRGb3JtOnZhbGlkYXRlRmlsZXNPdXRjb21lIGRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3MsZGF0YSl7cmViaW5kQ29tbWFuZCgpO319LGV4dCk7fSxyb3dVbnNlbGVjdENoZWNrYm94OmZ1bmN0aW9uKGV4dCxldmVudCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsZToicm93VW5zZWxlY3RDaGVja2JveCIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dmFsaWRhdGVGaWxlc091dGNvbWUgZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtyZWJpbmRDb21tYW5kKCk7fX0sZXh0KTt9LHJvd0RibHNlbGVjdDpmdW5jdGlvbihleHQsZXZlbnQpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLGU6InJvd0RibHNlbGVjdCIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dmFsaWRhdGVGaWxlc091dGNvbWUgZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtyZWJpbmRDb21tYW5kKCk7fX0sZXh0KTt9LHBhZ2U6ZnVuY3Rpb24oZXh0LGV2ZW50KSB7UHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixlOiJwYWdlIixmOiJkYXRhc2V0Rm9ybSIscDoiZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIix1OiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzLGRhdGEpe3JlZnJlc2hQYWdpbmF0b3IoKSxyZWJpbmRDb21tYW5kKCk7fX0sZXh0KTt9LHJvd1NlbGVjdDpmdW5jdGlvbihleHQsZXZlbnQpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLGU6InJvd1NlbGVjdCIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dmFsaWRhdGVGaWxlc091dGNvbWUgZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtyZWJpbmRDb21tYW5kKCk7fX0sZXh0KTt9LHRvZ2dsZVNlbGVjdDpmdW5jdGlvbihleHQsZXZlbnQpIHtQcmltZUZhY2VzLmFiKHtzOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLGU6InRvZ2dsZVNlbGVjdCIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsdToiZGF0YXNldEZvcm06dmFsaWRhdGVGaWxlc091dGNvbWUgZGF0YXNldEZvcm06dGFiVmlldzpmaWxlc1RhYmxlIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtyZWJpbmRDb21tYW5kKCk7fX0sZXh0KTt9LHJvd1NlbGVjdENoZWNrYm94OmZ1bmN0aW9uKGV4dCxldmVudCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsZToicm93U2VsZWN0Q2hlY2tib3giLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUiLHU6ImRhdGFzZXRGb3JtOnZhbGlkYXRlRmlsZXNPdXRjb21lIGRhdGFzZXRGb3JtOnRhYlZpZXc6ZmlsZXNUYWJsZSIsb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3MsZGF0YSl7cmViaW5kQ29tbWFuZCgpO319LGV4dCk7fX19KTt9KTs8L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3Om1ldGFkYXRhTWFwVGFiIiBjbGFzcz0idWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWhlbHBlci1oaWRkZW4iIHJvbGU9InRhYnBhbmVsIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1pbmRleD0iMSI+PGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIHRhYi1oZWFkZXIgbWFyZ2luLWJvdHRvbSB0ZXh0LXJpZ2h0Ij48ZGl2IGNsYXNzPSJidG4tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGJ0bi1leHBvcnQgZHJvcGRvd24tdG9nZ2xlIiB0eXBlPSJidXR0b24iIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhwb3J0Ij48L3NwYW4+IEV4cG9ydCBNZXRhZGF0YSA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IHB1bGwtcmlnaHQgdGV4dC1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9kYXRhc2V0cy9leHBvcnQ7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2V4cG9ydGVyPWRjdGVybXMmYW1wO3BlcnNpc3RlbnRJZD1kb2klM0ExMC43OTEwL0RWTi9OSjdYU08iIHRhcmdldD0iX2JsYW5rIj5EdWJsaW4gQ29yZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9kYXRhc2V0cy9leHBvcnQ7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2V4cG9ydGVyPWRkaSZhbXA7cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAvRFZOL05KN1hTTyIgdGFyZ2V0PSJfYmxhbmsiPkRESTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9kYXRhc2V0cy9leHBvcnQ7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2V4cG9ydGVyPURhdGFjaXRlJmFtcDtwZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMC9EVk4vTko3WFNPIiB0YXJnZXQ9Il9ibGFuayI+RGF0YUNpdGU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2RhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9hcGkvZGF0YXNldHMvZXhwb3J0O2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9leHBvcnRlcj1odG1sJmFtcDtwZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMC9EVk4vTko3WFNPIiB0YXJnZXQ9Il9ibGFuayI+RERJIEhUTUwgQ29kZWJvb2s8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2RhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9hcGkvZGF0YXNldHMvZXhwb3J0O2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9leHBvcnRlcj1kYXRhdmVyc2VfanNvbiZhbXA7cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAvRFZOL05KN1hTTyIgdGFyZ2V0PSJfYmxhbmsiPkpTT048L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2RhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9hcGkvZGF0YXNldHMvZXhwb3J0O2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj9leHBvcnRlcj1PQUlfT1JFJmFtcDtwZXJzaXN0ZW50SWQ9ZG9pJTNBMTAuNzkxMC9EVk4vTko3WFNPIiB0YXJnZXQ9Il9ibGFuayI+T0FJX09SRTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1L2FwaS9kYXRhc2V0cy9leHBvcnQ7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP2V4cG9ydGVyPW9haV9kYXRhY2l0ZSZhbXA7cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAvRFZOL05KN1hTTyIgdGFyZ2V0PSJfYmxhbmsiPk9wZW5BSVJFPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2RhdGFzZXRzL2V4cG9ydDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/ZXhwb3J0ZXI9c2NoZW1hLm9yZyZhbXA7cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAvRFZOL05KN1hTTyIgdGFyZ2V0PSJfYmxhbmsiPlNjaGVtYS5vcmcgSlNPTi1MRDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzpqX2lkdDE0NzgiPjwvZGl2PjxkaXYgY2xhc3M9InBhbmVsLWdyb3VwIj4KICAgICAgICA8cD4KICAgICAgICA8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiPgogICAgICAgICAgICAgICAgPGRpdiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjcGFuZWxDb2xsYXBzZTAiIGNsYXNzPSJwYW5lbC1oZWFkaW5nIHRleHQtaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgQ2l0YXRpb24gTWV0YWRhdGEgwqA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLXVwIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBhbmVsQ29sbGFwc2UwIiBjbGFzcz0iY29sbGFwc2UgaW4iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJvZHkgbWV0YWRhdGEtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJtZXRhZGF0YSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0ibWV0YWRhdGFfcGVyc2lzdGVudElkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc2V0IFBlcnNpc3RlbnQgSUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJUaGUgdW5pcXVlIHBlcnNpc3RlbnQgaWRlbnRpZmllciBmb3IgYSBkYXRhc2V0LCB3aGljaCBjYW4gYmUgYSBIYW5kbGUgb3IgRE9JIGluIERhdGF2ZXJzZS4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZG9pOjEwLjc5MTAvRFZOL05KN1hTTzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PHRyIGlkPSJtZXRhZGF0YV9wdWJsaWNhdGlvbkRhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIERhdGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJUaGUgcHVibGljYXRpb24gZGF0ZSBvZiBhIGRhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjIwMTctMDktMzA8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0ibWV0YWRhdGFfdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iRnVsbCB0aXRsZSBieSB3aGljaCB0aGUgRGF0YXNldCBpcyBrbm93bi4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+PHRkPlN1bW1hcnkgZGF0YSBhbmt5bG9zaW5nIHNwb25keWxpdGlzIEdXQVM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgaWQ9Im1ldGFkYXRhX2F1dGhvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iVGhlIHBlcnNvbihzKSwgY29ycG9yYXRlIGJvZHkoaWVzKSwgb3IgYWdlbmN5KGllcykgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSB3b3JrLiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD48dGQ+SW50ZXJuYXRpb25hbCBHZW5ldGljcyBvZiBBbmt5bG9zaW5nIFNwb25keWxpdGlzIENvbnNvcnRpdW0gKElHQVMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgaWQ9Im1ldGFkYXRhX2RhdGFzZXRDb250YWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250YWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iVGhlIGNvbnRhY3QocykgZm9yIHRoaXMgRGF0YXNldC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+PHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPlVzZSBlbWFpbCBidXR0b24gYWJvdmUgdG8gY29udGFjdC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5MaSwgWmhpeGl1IChRVVQpIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGlkPSJtZXRhZGF0YV9kc0Rlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IkEgc3VtbWFyeSBkZXNjcmliaW5nIHRoZSBwdXJwb3NlLCBuYXR1cmUsIGFuZCBzY29wZSBvZiB0aGUgRGF0YXNldC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+PHRkPlN1bW1hcnkgb2YgYXNzb2NpYXRpb24gdGVzdHMgZm9yIE5hdHVyZSBHZW5ldGljcyBwdWJsaWNhdGlvbiAiSWRlbnRpZmljYXRpb24gb2YgbXVsdGlwbGUgcmlzayB2YXJpYW50cyBmb3IgYW5reWxvc2luZyBzcG9uZHlsaXRpcyB0aHJvdWdoIGhpZ2gtZGVuc2l0eSBnZW5vdHlwaW5nIG9mIGltbXVuZS1yZWxhdGVkIGxvY2kiLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGlkPSJtZXRhZGF0YV9zdWJqZWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iRG9tYWluLXNwZWNpZmljIFN1YmplY3QgQ2F0ZWdvcmllcyB0aGF0IGFyZSB0b3BpY2FsbHkgcmVsZXZhbnQgdG8gdGhlIERhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPjx0ZD5NZWRpY2luZSwgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGlkPSJtZXRhZGF0YV9rZXl3b3JkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXl3b3JkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iS2V5IHRlcm1zIHRoYXQgZGVzY3JpYmUgaW1wb3J0YW50IGFzcGVjdHMgb2YgdGhlIERhdGFzZXQuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPjx0ZD5HZW5vbWUtV2lkZSBBc3NvY2lhdGlvbiBTdHVkaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5Bbmt5bG9zaW5nIHNwb25keWxpdGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgaWQ9Im1ldGFkYXRhX3B1YmxpY2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGVkIFB1YmxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iUHVibGljYXRpb25zIHRoYXQgdXNlIHRoZSBkYXRhIGZyb20gdGhpcyBEYXRhc2V0LiBUaGUgZnVsbCBsaXN0IG9mIFJlbGF0ZWQgUHVibGljYXRpb25zIHdpbGwgYmUgZGlzcGxheWVkIG9uIHRoZSBtZXRhZGF0YSB0YWIuIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPjx0ZD4xMC4xMDM4L25nLjI2NjcgZG9pOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0ibWV0YWRhdGFfbm90ZXNUZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IkFkZGl0aW9uYWwgaW1wb3J0YW50IGluZm9ybWF0aW9uIGFib3V0IHRoZSBEYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD48dGQ+RXVyb3BlYW5fQ2FzZV9Db250cm9sX1Jlc3VsdHMudHh0OiBzdW1tYXJ5IGRhdGEgZm9yIEV1cm9wZWFuIGNvaG9ydCBBc2lhbl9DYXNlX0NvbnRyb2xfUmVzdWx0cy50eHQ6IHN1bW1hcnkgZGF0YSBmb3IgQXNpYW4gY29ob3J0IEV1cm9wZWFuX0FzaWFuX0Nhc2VfQ29udHJvbF9SZXN1bHRzLnR4dDogc3VtbWFyeSBkYXRhIGZvciBjb21iaW5lZCBjb2hvcnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgaWQ9Im1ldGFkYXRhX2RlcG9zaXRvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwb3NpdG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iVGhlIHBlcnNvbiAoRmFtaWx5IE5hbWUsIEdpdmVuIE5hbWUpIG9yIHRoZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24gdGhhdCBkZXBvc2l0ZWQgdGhpcyBEYXRhc2V0IHRvIHRoZSByZXBvc2l0b3J5LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD48dGQ+TGksIFpoaXhpdTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0ibWV0YWRhdGFfZGF0ZU9mRGVwb3NpdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwb3NpdCBEYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcXVlc3Rpb24tc2lnbiB0b29sdGlwLWljb24iIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0iYXV0byByaWdodCIgZGF0YS1vcmlnaW5hbC10aXRsZT0iRGF0ZSB0aGF0IHRoZSBEYXRhc2V0IHdhcyBkZXBvc2l0ZWQgaW50byB0aGUgcmVwb3NpdG9yeS4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+PHRkPjIwMTctMDktMzA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj48L2Rpdj4KIDxzY3JpcHQ+CiAgICAvLzwhW0NEQVRBWwogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAgIC8vVGhlIHNlbGVjdDIgd2lkZ2V0IHVzZWQgaW4gZXh0ZXJuYWwgdm9jYWIgc2NyaXB0cyBoYXMgdHJvdWJsZSBkZXRlcm1pbmluZyB0aGUgd2lkdGggb2YgYW4gaW5wdXQgZmllbGQgaWYgaXQgaXMgaW5pdGlhbGx5IGhpZGRlbgogICAgICAvL1N0YXJ0aW5nIHdpdGggdGhlIG1ldGFkYXRhYmxvY2tzIGRpc3BsYXllZCBhbmQgY29sbGFwc2luZyB0aGVtIGhlcmUgaXMgYSB3b3JrLWFyb3VuZCB0byBmaXggdGhhdC4KICAgICAgaWYoZmFsc2UpIHsKICAgICAgICBmb3IobGV0IGk9MTtpPCAxO2krKykgewogICAgICAgICAgJCgnI3BhbmVsQ29sbGFwc2UnK2kpLmNvbGxhcHNlKCdoaWRlJyk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICAgIC8vXV0+CiAgICA8L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OnRlcm1zVGFiIiBjbGFzcz0idWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWhlbHBlci1oaWRkZW4iIHJvbGU9InRhYnBhbmVsIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1pbmRleD0iMiI+CiAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ncm91cCI+CiAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbCBwYW5lbC1kZWZhdWx0Ij4KICAgICAgICAgICA8ZGl2IGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNwYW5lbENvbGxhcHNlVE9VIiBjbGFzcz0icGFuZWwtaGVhZGluZyB0ZXh0LWluZm8iPgogICAgICAgICAgICAgICBUZXJtcyBvZiBVc2UgwqA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLXVwIj48L3NwYW4+CiAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgPGRpdiBpZD0icGFuZWxDb2xsYXBzZVRPVSIgY2xhc3M9ImNvbGxhcHNlIGluIj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OnRvdUZyYWdtZW50Ij4KICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZXRhZGF0YV9UZXJtcyIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FpdmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJUaGUgd2FpdmVyIGluZm9ybXMgZGF0YSBkb3dubG9hZGVycyBob3cgdGhleSBjYW4gdXNlIHRoaXMgZGF0YXNldC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj5PdXIgPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdmVyc2Uub3JnL2Jlc3QtcHJhY3RpY2VzL2RhdGF2ZXJzZS1jb21tdW5pdHktbm9ybXMiIHRpdGxlPSJEYXRhdmVyc2UgQ29tbXVuaXR5IE5vcm1zIC0gRGF0YXZlcnNlLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPkNvbW11bml0eSBOb3JtczwvYT4gYXMgd2VsbCBhcyBnb29kIHNjaWVudGlmaWMgcHJhY3RpY2VzIGV4cGVjdCB0aGF0IHByb3BlciBjcmVkaXQgaXMgZ2l2ZW4gdmlhIGNpdGF0aW9uLiBQbGVhc2UgdXNlIHRoZSBkYXRhIGNpdGF0aW9uIGFib3ZlLCBnZW5lcmF0ZWQgYnkgdGhlIERhdGF2ZXJzZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+Q0MwIC0gIlB1YmxpYyBEb21haW4gRGVkaWNhdGlvbiIgPGltZyBzcmM9Ii9yZXNvdXJjZXMvaW1hZ2VzL2NjMC5wbmciIGFsdD0iQ3JlYXRpdmUgQ29tbW9ucyBDQzAgMS4wIFB1YmxpYyBEb21haW4gRGVkaWNhdGlvbiBpY29uIiBjbGFzcz0id2FpdmVyLUNDMC1pbmxpbmUiIC8+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgIDwvZGl2PgogICAgICAgPC9kaXY+PGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCI+CiAgICAgICAgICAgPGRpdiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjcGFuZWxDb2xsYXBzZUd1ZXN0Ym9vayIgY2xhc3M9InBhbmVsLWhlYWRpbmcgdGV4dC1pbmZvIj4KICAgICAgICAgICAgICAgR3Vlc3Rib29rIMKgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi11cCI+PC9zcGFuPgogICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIDxkaXYgaWQ9InBhbmVsQ29sbGFwc2VHdWVzdGJvb2siIGNsYXNzPSJjb2xsYXBzZSBpbiI+CiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJvZHkiPgogICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWV0YWRhdGFfR3Vlc3Rib29rIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEd1ZXN0Ym9vawogICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJVc2VyIGluZm9ybWF0aW9uIChpLmUuLCBuYW1lLCBlbWFpbCwgaW5zdGl0dXRpb24sIGFuZCBwb3NpdGlvbikgd2lsbCBiZSBjb2xsZWN0ZWQgd2hlbiBmaWxlcyBhcmUgZG93bmxvYWRlZC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5ObyBndWVzdGJvb2sgaXMgYXNzaWduZWQgdG8gdGhpcyBkYXRhc2V0LCB5b3Ugd2lsbCBub3QgYmUgcHJvbXB0ZWQgdG8gcHJvdmlkZSBhbnkgaW5mb3JtYXRpb24gb24gZmlsZSBkb3dubG9hZC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgPC9kaXY+PC9kaXY+IAogICAgPC9kaXY+PC9kaXY+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYiIgY2xhc3M9InVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSB1aS1oZWxwZXItaGlkZGVuIiByb2xlPSJ0YWJwYW5lbCIgYXJpYS1oaWRkZW49InRydWUiIGRhdGEtaW5kZXg9IjMiPgoKICAgPHNjcmlwdD4KICAgICAgIC8vPCFbQ0RBVEFbCiAgICAgICAvLyBWZXJzaW9uIHRhYjogUmV0cmlldmUgZGF0YSBhZnRlciBwYWdlIGxvYWQKICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHByZWxvYWRfbWVzc2FnZSA9ICIoTG9hZGluZyB2ZXJzaW9ucy4uLikiOwogICAgICAgICAgICAkKCcjZGF0YXNldEZvcm1cXDp0YWJWaWV3XFw6dmVyc2lvbnNUYWJsZV9kYXRhIHRyLnVpLWRhdGF0YWJsZS1lbXB0eS1tZXNzYWdlIHRkJykudGV4dChwcmVsb2FkX21lc3NhZ2UpOwogICAgICAgICAgICBwb3N0TG9hZFZlcnNpb25UYWJMaXN0KCk7CiAgICAgICB9KTsKICAgICAgIC8vXV0+CiAgIDwvc2NyaXB0PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6al9pZHQxODAyIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBvc3RMb2FkVmVyc2lvblRhYkxpc3QgPSBmdW5jdGlvbigpIHtyZXR1cm4gUHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06dGFiVmlldzpqX2lkdDE4MDIiLGY6ImRhdGFzZXRGb3JtIixwOiJkYXRhc2V0Rm9ybTp0YWJWaWV3OmpfaWR0MTgwMiIsdToiZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlIixwYTphcmd1bWVudHNbMF19KTt9PC9zY3JpcHQ+CiAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0IG1hcmdpbi1ib3R0b20iPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6Y29tcGFyZVZlcnNpb25zIiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmNvbXBhcmVWZXJzaW9ucyIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06dGFiVmlldzpjb21wYXJlVmVyc2lvbnMmcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90Oyx1OiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7LG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzLGRhdGEpe1BGKCdkZXRhaWxzQmxvY2tzJykuc2hvdygpO3Bvc3RfZGlmZmVyZW5jZXMoKTs7fX0pO3JldHVybiBmYWxzZTsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPkRpcmVjdDwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OmNvbXBhcmVWZXJzaW9uc19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX3RhYlZpZXdfY29tcGFyZVZlcnNpb25zIix7aWQ6ImRhdGFzZXRGb3JtOnRhYlZpZXc6Y29tcGFyZVZlcnNpb25zIn0pO30pOzwvc2NyaXB0PgogICAgPC9kaXY+PGRpdiBpZD0iZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlIiBjbGFzcz0idWktZGF0YXRhYmxlIHVpLXdpZGdldCI+PGRpdiBjbGFzcz0idWktZGF0YXRhYmxlLXRhYmxld3JhcHBlciI+PHRhYmxlIHJvbGU9ImdyaWQiPjx0aGVhZCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlX2hlYWQiPjx0ciByb2xlPSJyb3ciPjx0aCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlOmpfaWR0MTgwOCIgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgY29sLXNtLTEgdGV4dC1jZW50ZXIiIHJvbGU9ImNvbHVtbmhlYWRlciIgYXJpYS1sYWJlbD0iRGF0YXNldCBWZXJzaW9uIiBzY29wZT0iY29sIj48c3BhbiBjbGFzcz0idWktY29sdW1uLXRpdGxlIj5EYXRhc2V0IFZlcnNpb248L3NwYW4+PC90aD48dGggaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZTpqX2lkdDE4MjAiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IiByb2xlPSJjb2x1bW5oZWFkZXIiIGFyaWEtbGFiZWw9IlN1bW1hcnkiIHNjb3BlPSJjb2wiPjxzcGFuIGNsYXNzPSJ1aS1jb2x1bW4tdGl0bGUiPlN1bW1hcnk8L3NwYW4+PC90aD48dGggaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZTpqX2lkdDE4NjIiIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IGNvbC1zbS0zIiByb2xlPSJjb2x1bW5oZWFkZXIiIGFyaWEtbGFiZWw9IkNvbnRyaWJ1dG9ycyIgc2NvcGU9ImNvbCI+PHNwYW4gY2xhc3M9InVpLWNvbHVtbi10aXRsZSI+Q29udHJpYnV0b3JzPC9zcGFuPjwvdGg+PHRoIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3OnZlcnNpb25zVGFibGU6al9pZHQxODY3IiBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCBjb2wtc20tMiIgcm9sZT0iY29sdW1uaGVhZGVyIiBhcmlhLWxhYmVsPSJQdWJsaXNoZWQgb24iIHNjb3BlPSJjb2wiPjxzcGFuIGNsYXNzPSJ1aS1jb2x1bW4tdGl0bGUiPlB1Ymxpc2hlZCBvbjwvc3Bhbj48L3RoPjwvdHI+PC90aGVhZD48dGJvZHkgaWQ9ImRhdGFzZXRGb3JtOnRhYlZpZXc6dmVyc2lvbnNUYWJsZV9kYXRhIiBjbGFzcz0idWktZGF0YXRhYmxlLWRhdGEgdWktd2lkZ2V0LWNvbnRlbnQiPjx0ciBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQgdWktZGF0YXRhYmxlLWVtcHR5LW1lc3NhZ2UiPjx0ZCBjb2xzcGFuPSI0Ij5ObyByZWNvcmRzIGZvdW5kLjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRhdGFUYWJsZSIsInZlcnNpb25zVGFibGUiLHtpZDoiZGF0YXNldEZvcm06dGFiVmlldzp2ZXJzaW9uc1RhYmxlIixncm91cENvbHVtbkluZGV4ZXM6W10sZGlzYWJsZUNvbnRleHRNZW51SWZFbXB0eTpmYWxzZX0pO30pOzwvc2NyaXB0PjwvZGl2PjwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkYXRhc2V0Rm9ybTp0YWJWaWV3X2FjdGl2ZUluZGV4IiBuYW1lPSJkYXRhc2V0Rm9ybTp0YWJWaWV3X2FjdGl2ZUluZGV4IiB2YWx1ZT0iMCIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06dGFiVmlld19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJUYWJWaWV3IiwiY29udGVudCIse2lkOiJkYXRhc2V0Rm9ybTp0YWJWaWV3IixlZmZlY3REdXJhdGlvbjoibm9ybWFsIixzY3JvbGxhYmxlOmZhbHNlLGJlaGF2aW9yczp7dGFiQ2hhbmdlOmZ1bmN0aW9uKGV4dCxldmVudCkge1ByaW1lRmFjZXMuYWIoe3M6ImRhdGFzZXRGb3JtOnRhYlZpZXciLGU6InRhYkNoYW5nZSIsZjoiZGF0YXNldEZvcm0iLHA6ImRhdGFzZXRGb3JtOnRhYlZpZXciLHU6ImRhdGFzZXRGb3JtOnRhYlZpZXciLG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzLGRhdGEpe2JpbmRfYnN1aV9jb21wb25lbnRzKCk7O319LGV4dCk7fX19KTt9KTs8L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE4NzUiIGNsYXNzPSJ1aS1ibG9ja3VpLWNvbnRlbnQgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktaGVscGVyLWhpZGRlbiB1aS1zaGFkb3ciPjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTg3NV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJCbG9ja1VJIiwiYmxvY2tEYXRhc2V0Rm9ybSIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDE4NzUiLGJsb2NrOiJkYXRhc2V0Rm9ybSJ9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpmaWxlQWxyZWFkeURlbGV0ZWRQcmV2aW91cyIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmZpbGVBbHJlYWR5RGVsZXRlZFByZXZpb3VzX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5FZGl0IEZpbGU8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06ZmlsZUFscmVhZHlEZWxldGVkUHJldmlvdXNfY29udGVudCI+CiAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFRoaXMgZmlsZSBoYXMgYWxyZWFkeSBiZWVuIGRlbGV0ZWQgKG9yIHJlcGxhY2VkKSBpbiB0aGUgY3VycmVudCB2ZXJzaW9uLiBJdCBtYXkgbm90IGJlIGVkaXRlZC48L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignZmlsZUFscmVhZHlEZWxldGVkUHJldmlvdXMnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZmlsZUFscmVhZHlEZWxldGVkUHJldmlvdXNfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZmlsZUFscmVhZHlEZWxldGVkUHJldmlvdXMiLHtpZDoiZGF0YXNldEZvcm06ZmlsZUFscmVhZHlEZWxldGVkUHJldmlvdXMiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTphY2Nlc3NQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmFjY2Vzc1BvcHVwX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5SZXN0cmljdCBGaWxlcyBhbmQgQWRkIERhdGFzZXQgVGVybXMgb2YgQWNjZXNzPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmFjY2Vzc1BvcHVwX2NvbnRlbnQiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE4NzgiPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMobnVsbCwgJ2RhdGFzZXRGb3JtOmFjY2Vzc1BvcHVwJyk7fSk7PC9zY3JpcHQ+CiAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPgogICAgICAgICAgICBSZXN0cmljdGluZyBsaW1pdHMgYWNjZXNzIHRvIHB1Ymxpc2hlZCBmaWxlcy4gWW91IGNhbiBhZGQgb3IgZWRpdCBUZXJtcyBvZiBBY2Nlc3MgZm9yIHRoZSBkYXRhc2V0LCBhbmQgYWxsb3cgcGVvcGxlIHRvIFJlcXVlc3QgQWNjZXNzIHRvIHJlc3RyaWN0ZWQgZmlsZXMuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taG9yaXpvbnRhbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0idGVybXNBY2Nlc3NJbnB1dCIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgIFRlcm1zIG9mIEFjY2VzcwogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gdG9vbHRpcC1pY29uIiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImF1dG8gcmlnaHQiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IkluZm9ybWF0aW9uIG9uIGhvdyBhbmQgaWYgdXNlcnMgY2FuIGdhaW4gYWNjZXNzIHRvIHRoZSByZXN0cmljdGVkIGZpbGVzIGluIHRoaXMgZGF0YXNldC4iPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+PHRleHRhcmVhIGlkPSJkYXRhc2V0Rm9ybTp0ZXJtc0FjY2Vzc0lucHV0IiBuYW1lPSJkYXRhc2V0Rm9ybTp0ZXJtc0FjY2Vzc0lucHV0IiBjbGFzcz0idWktaW5wdXRmaWVsZCB1aS1pbnB1dHRleHRhcmVhIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgZm9ybS1jb250cm9sIiBjb2xzPSIyMCIgcm93cz0iNSIgbWF4bGVuZ3RoPSIyMTQ3NDgzNjQ3Ij48L3RleHRhcmVhPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnRlcm1zQWNjZXNzSW5wdXRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0YXJlYSIsImlucHV0dG9hIix7aWQ6ImRhdGFzZXRGb3JtOnRlcm1zQWNjZXNzSW5wdXQiLGF1dG9SZXNpemU6ZmFsc2V9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJyZXF1ZXN0QWNjZXNzIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgUmVxdWVzdCBBY2Nlc3MKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJJZiBjaGVja2VkLCB1c2VycyBjYW4gcmVxdWVzdCBhY2Nlc3MgdG8gdGhlIHJlc3RyaWN0ZWQgZmlsZXMgaW4gdGhpcyBkYXRhc2V0LiI+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpyZXF1ZXN0QWNjZXNzMiIgY2xhc3M9InVpLXNlbGVjdGJvb2xlYW5jaGVja2JveCB1aS1jaGtib3ggdWktd2lkZ2V0Ij48ZGl2IGNsYXNzPSJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06cmVxdWVzdEFjY2VzczJfaW5wdXQiIG5hbWU9ImRhdGFzZXRGb3JtOnJlcXVlc3RBY2Nlc3MyX2lucHV0IiB0eXBlPSJjaGVja2JveCIgYXV0b2NvbXBsZXRlPSJvZmYiIGFyaWEtbGFiZWw9IkVuYWJsZSBhY2Nlc3MgcmVxdWVzdCIgYXJpYS1jaGVja2VkPSJmYWxzZSIgLz48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1jaGtib3gtYm94IHVpLXdpZGdldCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRlZmF1bHQiPjxzcGFuIGNsYXNzPSJ1aS1jaGtib3gtaWNvbiB1aS1pY29uIHVpLWljb24tYmxhbmsgdWktYyI+PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJ1aS1jaGtib3gtbGFiZWwiPkVuYWJsZSBhY2Nlc3MgcmVxdWVzdDwvc3Bhbj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpyZXF1ZXN0QWNjZXNzMl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJTZWxlY3RCb29sZWFuQ2hlY2tib3giLCJpbnB1dGZhciIse2lkOiJkYXRhc2V0Rm9ybTpyZXF1ZXN0QWNjZXNzMiJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTg4MiIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxODgyIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignYWNjZXNzUG9wdXAnKS5oaWRlKCk7fSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE4ODImcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90Oyx1OiZxdW90O21lc3NhZ2VQYW5lbCZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5TYXZlIENoYW5nZXM8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxODgyX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQxODgyIix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MTg4MiJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignYWNjZXNzUG9wdXAnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvYnV0dG9uPiAgICAgICAgICAgICAgIAogICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmFjY2Vzc1BvcHVwX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImFjY2Vzc1BvcHVwIix7aWQ6ImRhdGFzZXRGb3JtOmFjY2Vzc1BvcHVwIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZmlsZUVtYmFyZ29Qb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmZpbGVFbWJhcmdvUG9wdXBfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkVkaXQgRW1iYXJnbzwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpmaWxlRW1iYXJnb1BvcHVwX2NvbnRlbnQiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE4ODQiPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMoJ2RhdGFzZXRGb3JtOmZpbGVFbWJhcmdvRGF0ZScpO30pOzwvc2NyaXB0PjxwIGNsYXNzPSJ0ZXh0LWRhbmdlciBlbWJhcmdvIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+VGhlIHNlbGVjdGVkIGZpbGUgb3IgZmlsZXMgaGF2ZSBhbHJlYWR5IGJlZW4gcHVibGlzaGVkLiBDb250YWN0IGFuIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIHRoZSBlbWJhcmdvIGRhdGUgb3IgcmVhc29uIG9mIHRoZSBmaWxlIG9yIGZpbGVzLjwvcD48c3BhbiBpZD0iZGF0YXNldEZvcm06ZW1iYXJnb0lucHV0cyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtYmFyZ28iPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1iYXJnbyI+CiAgICAgICAgICAgIDwvZGl2Pjwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmZpbGVFbWJhcmdvUG9wdXBDYW5jZWxCdXR0b24iIG5hbWU9ImRhdGFzZXRGb3JtOmZpbGVFbWJhcmdvUG9wdXBDYW5jZWxCdXR0b24iIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tbGluayIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdmaWxlRW1iYXJnb1BvcHVwJykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgIFBGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpO30sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06ZmlsZUVtYmFyZ29Qb3B1cENhbmNlbEJ1dHRvbiZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm06ZW1iYXJnb0lucHV0cyZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5DYW5jZWw8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZmlsZUVtYmFyZ29Qb3B1cENhbmNlbEJ1dHRvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2ZpbGVFbWJhcmdvUG9wdXBDYW5jZWxCdXR0b24iLHtpZDoiZGF0YXNldEZvcm06ZmlsZUVtYmFyZ29Qb3B1cENhbmNlbEJ1dHRvbiJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpmaWxlRW1iYXJnb1BvcHVwX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImZpbGVFbWJhcmdvUG9wdXAiLHtpZDoiZGF0YXNldEZvcm06ZmlsZUVtYmFyZ29Qb3B1cCIscmVzaXphYmxlOmZhbHNlLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVGaWxlQ29uZmlybSIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZUZpbGVDb25maXJtX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5EZWxldGUgRmlsZXM8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06ZGVsZXRlRmlsZUNvbmZpcm1fY29udGVudCI+CiAgICAgICAgPHAgY2xhc3M9InRleHQtd2FybmluZyI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIj48L3NwYW4+IFRoZSBmaWxlIHdpbGwgYmUgZGVsZXRlZCBhZnRlciB5b3UgY2xpY2sgb24gdGhlIERlbGV0ZSBidXR0b24uPC9wPgogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC13YXJuaW5nIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi13YXJuaW5nLXNpZ24iPjwvc3Bhbj4gRmlsZXMgd2lsbCBub3QgYmUgcmVtb3ZlZCBmcm9tIHByZXZpb3VzbHkgcHVibGlzaGVkIHZlcnNpb25zIG9mIHRoZSBkYXRhc2V0LjwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTkxNSIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxOTE1IiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZGVsZXRlRmlsZUNvbmZpcm1hdGlvbicpLmhpZGUoKX0sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQxOTE1JnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+RGVsZXRlPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTkxNV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MTkxNSIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDE5MTUifSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2RlbGV0ZUZpbGVDb25maXJtYXRpb24nKS5oaWRlKCkiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZGVsZXRlRmlsZUNvbmZpcm1fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZGVsZXRlRmlsZUNvbmZpcm1hdGlvbiIse2lkOiJkYXRhc2V0Rm9ybTpkZWxldGVGaWxlQ29uZmlybSIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmNvbmZpZ3VyZVRvb2xQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmNvbmZpZ3VyZVRvb2xQb3B1cF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmNvbmZpZ3VyZVRvb2xQb3B1cF9jb250ZW50Ij4KCiAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPjxzcGFuIGNsYXNzPSJ0ZXh0LWxlZnQiPiA8YnIvPjwvc3Bhbj4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5MjAiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MTkyMCIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmJjbih0aGlzLGV2ZW50LFtmdW5jdGlvbihldmVudCl7UEYoJ2NvbmZpZ3VyZVRvb2xQb3B1cCcpLmhpZGUoKTt9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MTkyMCZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7LHU6JnF1b3Q7bWVzc2FnZVBhbmVsJnF1b3Q7fSk7cmV0dXJuIGZhbHNlO31dKTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPkNvbnRpbnVlPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTkyMF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MTkyMCIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDE5MjAifSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2NvbmZpZ3VyZVRvb2xQb3B1cCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06Y29uZmlndXJlVG9vbFBvcHVwX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImNvbmZpZ3VyZVRvb2xQb3B1cCIse2lkOiJkYXRhc2V0Rm9ybTpjb25maWd1cmVUb29sUG9wdXAiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlcyIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5TZWxlY3QgRmlsZShzKTwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc19jb250ZW50Ij4KICAgICAgICA8cCBjbGFzcz0idGV4dC1kYW5nZXIiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24iPjwvc3Bhbj4gUGxlYXNlIHNlbGVjdCBvbmUgb3IgbW9yZSBmaWxlcy48L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2VsZWN0RmlsZXMnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwic2VsZWN0RmlsZXMiLHtpZDoiZGF0YXNldEZvcm06c2VsZWN0RmlsZXMiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpzaGFyZURpYWxvZyIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpzaGFyZURpYWxvZ190aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+U2hhcmUgRGF0YXNldDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpzaGFyZURpYWxvZ19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPlNoYXJlIHRoaXMgZGF0YXNldCBvbiB5b3VyIGZhdm9yaXRlIHNvY2lhbCBtZWRpYSBuZXR3b3Jrcy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNoYXJycmUtd2lkZ2V0IiBkYXRhLXVybD0iaHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvZGF0YXNldC54aHRtbD9wZXJzaXN0ZW50SWQ9ZG9pOjEwLjc5MTAvRFZOL05KN1hTTyIgZGF0YS10ZXh0PSJWaWV3IHRoaXMgZGF0YXNldC4iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2hhcmVEaWFsb2cnKS5oaWRlKCkiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpzaGFyZURpYWxvZ19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJzaGFyZURpYWxvZyIse2lkOiJkYXRhc2V0Rm9ybTpzaGFyZURpYWxvZyIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmNpdGF0aW9uc0RpYWxvZyIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmNpdGF0aW9uc0RpYWxvZ190aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+RGF0YXNldCBDaXRhdGlvbnM8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06Y2l0YXRpb25zRGlhbG9nX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGVscC1ibG9jayI+Q2l0YXRpb25zIGZvciB0aGlzIGRhdGFzZXQgYXJlIHJldHJpZXZlZCBmcm9tIENyb3NzcmVmIHZpYSBEYXRhQ2l0ZSB1c2luZyBNYWtlIERhdGEgQ291bnQgc3RhbmRhcmRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBkYXRhc2V0IG1ldHJpY3MsIHBsZWFzZSByZWZlciB0byB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9ndWlkZXMuZGF0YXZlcnNlLm9yZy9lbi81LjgvdXNlci9kYXRhc2V0LW1hbmFnZW1lbnQuaHRtbCNkYXRhc2V0LW1ldHJpY3MtYW5kLW1ha2UtZGF0YS1jb3VudCIgdGl0bGU9IkRhdGFzZXQgTWV0cmljcyBhbmQgTWFrZSBEYXRhIENvdW50IC0gRGF0YXZlcnNlIFVzZXIgR3VpZGUiIHRhcmdldD0iX2JsYW5rIj5Vc2VyIEd1aWRlPC9hPi4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjaXRhdGlvbnMtbGlzdC1ibG9jayI+PGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3JyeSwgbm8gY2l0YXRpb25zIHdlcmUgZm91bmQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdjaXRhdGlvbnNEaWFsb2cnKS5oaWRlKCkiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpjaXRhdGlvbnNEaWFsb2dfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiY2l0YXRpb25zRGlhbG9nIix7aWQ6ImRhdGFzZXRGb3JtOmNpdGF0aW9uc0RpYWxvZyIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkSW52YWxpZCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkSW52YWxpZF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UmVzdHJpY3RlZCBGaWxlcyBTZWxlY3RlZDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZEludmFsaWRfY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBUaGUgc2VsZWN0ZWQgZmlsZShzKSBtYXkgbm90IGJlIGRvd25sb2FkZWQgYmVjYXVzZSB5b3UgaGF2ZSBub3QgYmVlbiBncmFudGVkIGFjY2Vzcy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdkb3dubG9hZEludmFsaWQnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRJbnZhbGlkX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImRvd25sb2FkSW52YWxpZCIse2lkOiJkYXRhc2V0Rm9ybTpkb3dubG9hZEludmFsaWQiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFRvb0xhcmdlIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRUb29MYXJnZV90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+RG93bmxvYWQgT3B0aW9uczwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFRvb0xhcmdlX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1kYW5nZXIiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24iPjwvc3Bhbj4gIFRoZSBmaWxlcyBzZWxlY3RlZCBhcmUgdG9vIGxhcmdlIHRvIGRvd25sb2FkIGFzIGEgWklQLjwvcD4KICAKICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPllvdSBjYW4gc2VsZWN0IGluZGl2aWR1YWwgZmlsZXMgdGhhdCBhcmUgYmVsb3cgdGhlIDIwLjAgR0IgZG93bmxvYWQgbGltaXQgZnJvbSB0aGUgZmlsZXMgdGFibGUsIG9yIHVzZSB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9ndWlkZXMuZGF0YXZlcnNlLm9yZy9lbi81LjgvYXBpL2RhdGFhY2Nlc3MuaHRtbCIgdGl0bGU9IkRhdGEgQWNjZXNzIEFQSSIgdGFyZ2V0PSJfYmxhbmsiPkRhdGEgQWNjZXNzIEFQSTwvYT4gZm9yIHByb2dyYW1tYXRpYyBhY2Nlc3MgdG8gdGhlIGZpbGVzLgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRUb29MYXJnZV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkb3dubG9hZFRvb0xhcmdlIix7aWQ6ImRhdGFzZXRGb3JtOmRvd25sb2FkVG9vTGFyZ2UiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvckRvd25sb2FkIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEb3dubG9hZF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+U2VsZWN0IEZpbGUocyk8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEb3dubG9hZF9jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+IFBsZWFzZSBzZWxlY3QgYSBmaWxlIG9yIGZpbGVzIHRvIGJlIGRvd25sb2FkZWQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2VsZWN0RmlsZXNGb3JEb3dubG9hZCcpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvckRvd25sb2FkX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsInNlbGVjdEZpbGVzRm9yRG93bmxvYWQiLHtpZDoiZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JEb3dubG9hZCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkTWl4ZWQiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZE1peGVkX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5SZXN0cmljdGVkIEZpbGVzIFNlbGVjdGVkPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkTWl4ZWRfY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBUaGUgcmVzdHJpY3RlZCBmaWxlKHMpIHNlbGVjdGVkIG1heSBub3QgYmUgZG93bmxvYWRlZCBiZWNhdXNlIHlvdSBoYXZlIG5vdCBiZWVuIGdyYW50ZWQgYWNjZXNzLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPkNsaWNrIENvbnRpbnVlIHRvIGRvd25sb2FkIHRoZSBmaWxlcyB5b3UgaGF2ZSBhY2Nlc3MgdG8gZG93bmxvYWQuPC9wPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTk1MiIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxOTUyIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZG93bmxvYWRNaXhlZCcpLmhpZGUoKX0sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQxOTUyJnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q29udGludWU8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxOTUyX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQxOTUyIix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MTk1MiJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2Rvd25sb2FkTWl4ZWQnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkTWl4ZWRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZG93bmxvYWRNaXhlZCIse2lkOiJkYXRhc2V0Rm9ybTpkb3dubG9hZE1peGVkIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZGVsZXRlQ29uZmlybWF0aW9uIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZGVsZXRlQ29uZmlybWF0aW9uX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5EZWxldGUgRGF0YXNldDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVDb25maXJtYXRpb25fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZGF0YXNldCBhbmQgYWxsIG9mIGl0cyBmaWxlcz8gWW91IGNhbm5vdCB1bmRlbGV0ZSB0aGlzIGRhdGFzZXQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTk1NiIgbmFtZT0iZGF0YXNldEZvcm06al9pZHQxOTU2IiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZGVsZXRlQ29uZmlybWF0aW9uJykuaGlkZSgpfSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE5NTYmcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5Db250aW51ZTwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5NTZfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE5NTYiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxOTU2In0pO30pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignZGVsZXRlQ29uZmlybWF0aW9uJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVDb25maXJtYXRpb25fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZGVsZXRlQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlbGV0ZUNvbmZpcm1hdGlvbiIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZVZlcnNpb25Db25maXJtYXRpb24iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVWZXJzaW9uQ29uZmlybWF0aW9uX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5EZWxldGUgRHJhZnQgVmVyc2lvbjwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVWZXJzaW9uQ29uZmlybWF0aW9uX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC13YXJuaW5nIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi13YXJuaW5nLXNpZ24iPjwvc3Bhbj4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGRyYWZ0IHZlcnNpb24/IEZpbGVzIHdpbGwgYmUgcmV2ZXJ0ZWQgdG8gdGhlIG1vc3QgcmVjZW50bHkgcHVibGlzaGVkIHZlcnNpb24uIFlvdSBjYW5ub3QgdW5kZWxldGUgdGhpcyBkcmFmdC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQxOTU5IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDE5NTkiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdkZWxldGVWZXJzaW9uQ29uZmlybWF0aW9uJykuaGlkZSgpfSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDE5NTkmcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5Db250aW51ZTwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5NTlfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE5NTkiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxOTU5In0pO30pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignZGVsZXRlVmVyc2lvbkNvbmZpcm1hdGlvbicpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZGVsZXRlVmVyc2lvbkNvbmZpcm1hdGlvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkZWxldGVWZXJzaW9uQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlbGV0ZVZlcnNpb25Db25maXJtYXRpb24iLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpwcml2YXRlVXJsSWQiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpwcml2YXRlVXJsSWRfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlVucHVibGlzaGVkIERhdGFzZXQgUHJpdmF0ZSBVUkw8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06cHJpdmF0ZVVybElkX2NvbnRlbnQiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnByaXZhdGVVcmxQYW5lbENhbm5vdENyZWF0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1kYW5nZXIiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24iPjwvc3Bhbj4gUHJpdmF0ZSBVUkwgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHVucHVibGlzaGVkIHZlcnNpb25zIG9mIGRhdGFzZXRzLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRigncHJpdmF0ZVVybENvbmZpcm1hdGlvbicpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06cHJpdmF0ZVVybElkX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsInByaXZhdGVVcmxDb25maXJtYXRpb24iLHtpZDoiZGF0YXNldEZvcm06cHJpdmF0ZVVybElkIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZGlzYWJsZVByaXZhdGVVcmxDb25maXJtYXRpb24iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbl90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+VW5wdWJsaXNoZWQgRGF0YXNldCBQcml2YXRlIFVSTDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmRpc2FibGVQcml2YXRlVXJsQ29uZmlybWF0aW9uX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC13YXJuaW5nIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi13YXJuaW5nLXNpZ24iPjwvc3Bhbj4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2FibGUgdGhlIFByaXZhdGUgVVJMPyBJZiB5b3UgaGF2ZSBzaGFyZWQgdGhlIFByaXZhdGUgVVJMIHdpdGggb3RoZXJzIHRoZXkgd2lsbCBubyBsb25nZXIgYmUgYWJsZSB0byB1c2UgaXQgdG8gYWNjZXNzIHlvdXIgdW5wdWJsaXNoZWQgZGF0YXNldC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQxOTgzIiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDE5ODMiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbicpLmhpZGUoKTt9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MTk4MyZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm06cHJpdmF0ZVVybFBhbmVsIG1lc3NhZ2VQYW5lbCZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5ZZXMsIERpc2FibGUgUHJpdmF0ZSBVUkw8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQxOTgzX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQxOTgzIix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MTk4MyJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2Rpc2FibGVQcml2YXRlVXJsQ29uZmlybWF0aW9uJykuaGlkZSgpO1BGKCdwcml2YXRlVXJsQ29uZmlybWF0aW9uJykuc2hvdygpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbiIse2lkOiJkYXRhc2V0Rm9ybTpkaXNhYmxlUHJpdmF0ZVVybENvbmZpcm1hdGlvbiIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbiIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbl90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+RGVsZXRlIEZpbGVzPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmRlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbl9jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtd2FybmluZyI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIj48L3NwYW4+IFRoZSBmaWxlKHMpIHdpbGwgYmUgZGVsZXRlZCBhZnRlciB5b3UgY2xpY2sgb24gdGhlIERlbGV0ZSBidXR0b24uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtd2FybmluZyI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24td2FybmluZy1zaWduIj48L3NwYW4+IEZpbGVzIHdpbGwgbm90IGJlIHJlbW92ZWQgZnJvbSBwcmV2aW91c2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucyBvZiB0aGUgZGF0YXNldC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQxOTg5IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDE5ODkiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdkZWxldGVTZWxlY3RlZEZpbGVDb25maXJtYXRpb24nKS5oaWRlKCl9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MTk4OSZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7fSk7cmV0dXJuIGZhbHNlO31dKTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPkRlbGV0ZTwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5ODlfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9qX2lkdDE5ODkiLHtpZDoiZGF0YXNldEZvcm06al9pZHQxOTg5In0pO30pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignZGVsZXRlU2VsZWN0ZWRGaWxlQ29uZmlybWF0aW9uJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkZWxldGVTZWxlY3RlZEZpbGVDb25maXJtYXRpb25fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZGVsZXRlU2VsZWN0ZWRGaWxlQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlbGV0ZVNlbGVjdGVkRmlsZUNvbmZpcm1hdGlvbiIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmNvbXB1dGVJbnZhbGlkIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06Y29tcHV0ZUludmFsaWRfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkNvbXB1dGU8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06Y29tcHV0ZUludmFsaWRfY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBUaGlzIGRhdGFzZXQgY29udGFpbnMgcmVzdHJpY3RlZCBmaWxlcyB5b3UgbWF5IG5vdCBjb21wdXRlIG9uIGJlY2F1c2UgeW91IGhhdmUgbm90IGJlZW4gZ3JhbnRlZCBhY2Nlc3MuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignY29tcHV0ZUludmFsaWQnKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06Y29tcHV0ZUludmFsaWRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiY29tcHV0ZUludmFsaWQiLHtpZDoiZGF0YXNldEZvcm06Y29tcHV0ZUludmFsaWQiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDE5OTIiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MTk5MyIgY2xhc3M9InVpLW91dHB1dHBhbmVsIHVpLXdpZGdldCI+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25Db25maXJtYXRpb24iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25Db25maXJtYXRpb25fdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkRlYWNjZXNzaW9uIERhdGFzZXQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25Db25maXJtYXRpb25fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVhY2Nlc3Npb24/IFRoZSBzZWxlY3RlZCB2ZXJzaW9uKHMpIHdpbGwgbm8gbG9uZ2VyIGJlIHZpZXdhYmxlIGJ5IHRoZSBwdWJsaWMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MjAyMCIgdmFsdWU9IlllcyIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUEYoJ2RlYWNjZXNzaW9uQ29uZmlybWF0aW9uJykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignZGVhY2Nlc3Npb25CbG9jaycpLmhpZGUoKSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2RlYWNjZXNzaW9uQ29uZmlybWF0aW9uJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQ29uZmlybWF0aW9uX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImRlYWNjZXNzaW9uQ29uZmlybWF0aW9uIix7aWQ6ImRhdGFzZXRGb3JtOmRlYWNjZXNzaW9uQ29uZmlybWF0aW9uIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25BbGxDb25maXJtYXRpb24iIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25BbGxDb25maXJtYXRpb25fdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkRlYWNjZXNzaW9uIERhdGFzZXQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06ZGVhY2Nlc3Npb25BbGxDb25maXJtYXRpb25fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVhY2Nlc3Npb24gdGhpcyBkYXRhc2V0PyBJdCB3aWxsIG5vIGxvbmdlciBiZSB2aWV3YWJsZSBieSB0aGUgcHVibGljLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDIwMjMiIHZhbHVlPSJZZXMiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdkZWFjY2Vzc2lvbkFsbENvbmZpcm1hdGlvbicpLmhpZGUoKTtQRignZGVhY2Nlc3Npb25CbG9jaycpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdkZWFjY2Vzc2lvbkFsbENvbmZpcm1hdGlvbicpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkZWFjY2Vzc2lvbkFsbENvbmZpcm1hdGlvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkZWFjY2Vzc2lvbkFsbENvbmZpcm1hdGlvbiIse2lkOiJkYXRhc2V0Rm9ybTpkZWFjY2Vzc2lvbkFsbENvbmZpcm1hdGlvbiIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxpbnB1dCBpZD0iZGF0YXNldEZvcm06aGlkZGVuUmVhc29uSW5wdXQiIG5hbWU9ImRhdGFzZXRGb3JtOmhpZGRlblJlYXNvbklucHV0IiB0eXBlPSJ0ZXh0IiBzdHlsZT0iZGlzcGxheTpub25lIiBjbGFzcz0idWktaW5wdXRmaWVsZCB1aS1pbnB1dHRleHQgdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCAiIC8+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06aGlkZGVuUmVhc29uSW5wdXRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0IiwiaGlkZGVuUmVhc29uSW5wdXQiLHtpZDoiZGF0YXNldEZvcm06aGlkZGVuUmVhc29uSW5wdXQifSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06Y29tcGFyZVR3byIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpjb21wYXJlVHdvX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5WZXJzaW9uIERpZmZlcmVuY2VzIERldGFpbHM8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06Y29tcGFyZVR3b19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24gdGV4dC1kYW5nZXIiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InRleHQtZGFuZ2VyIj5QbGVhc2Ugc2VsZWN0IHR3byB2ZXJzaW9ucyB0byB2aWV3IHRoZSBkaWZmZXJlbmNlcy48L3NwYW4+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignY29tcGFyZVR3bycpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpjb21wYXJlVHdvX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImNvbXBhcmVUd28iLHtpZDoiZGF0YXNldEZvcm06Y29tcGFyZVR3byIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRldGFpbHNCbG9ja3MiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgbGFyZ2VQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkZXRhaWxzQmxvY2tzX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5WZXJzaW9uIERpZmZlcmVuY2VzIERldGFpbHM8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06ZGV0YWlsc0Jsb2Nrc19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idmVyc2lvbi10aXRsZSIgY2xhc3M9Im1hcmdpbi1ib3R0b20taGFsZiI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InZlcnNpb24tZGV0YWlscy1ibG9jayIgY2xhc3M9IiBjbGVhcmZpeCBtYXJnaW4tYm90dG9tLWhhbGYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHVsbC1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDCoAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwdWxsLWxlZnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb246IDxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhc3QgVXBkYXRlZDogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InB1bGwtbGVmdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbjogPGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFzdCBVcGRhdGVkOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIG1hcmdpbi1ib3R0b20iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignZGV0YWlsc0Jsb2NrcycpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmRldGFpbHNCbG9ja3NfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiZGV0YWlsc0Jsb2NrcyIse2lkOiJkYXRhc2V0Rm9ybTpkZXRhaWxzQmxvY2tzIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JSZXF1ZXN0QWNjZXNzIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JSZXF1ZXN0QWNjZXNzX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5TZWxlY3QgRmlsZShzKTwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RGaWxlc0ZvclJlcXVlc3RBY2Nlc3NfY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBQbGVhc2Ugc2VsZWN0IGEgZmlsZSBvciBmaWxlcyBmb3IgYWNjZXNzIHJlcXVlc3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2VsZWN0RmlsZXNGb3JSZXF1ZXN0QWNjZXNzJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEZpbGVzRm9yUmVxdWVzdEFjY2Vzc19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJzZWxlY3RGaWxlc0ZvclJlcXVlc3RBY2Nlc3MiLHtpZDoiZGF0YXNldEZvcm06c2VsZWN0RmlsZXNGb3JSZXF1ZXN0QWNjZXNzIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RW1iYXJnb2VkRmlsZXNGb3JSZXF1ZXN0QWNjZXNzIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIHNtYWxsUG9wVXAiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06c2VsZWN0RW1iYXJnb2VkRmlsZXNGb3JSZXF1ZXN0QWNjZXNzX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5TZWxlY3QgRmlsZShzKTwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpzZWxlY3RFbWJhcmdvZWRGaWxlc0ZvclJlcXVlc3RBY2Nlc3NfY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPiBFbWJhcmdvZWQgZmlsZXMgY2Fubm90IGJlIGFjY2Vzc2VkLiBQbGVhc2Ugc2VsZWN0IGFuIHVuZW1iYXJnb2VkIGZpbGUgb3IgZmlsZXMgZm9yIHlvdXIgYWNjZXNzIHJlcXVlc3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRignc2VsZWN0RW1iYXJnb2VkRmlsZXNGb3JSZXF1ZXN0QWNjZXNzJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnNlbGVjdEVtYmFyZ29lZEZpbGVzRm9yUmVxdWVzdEFjY2Vzc19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJzZWxlY3RFbWJhcmdvZWRGaWxlc0ZvclJlcXVlc3RBY2Nlc3MiLHtpZDoiZGF0YXNldEZvcm06c2VsZWN0RW1iYXJnb2VkRmlsZXNGb3JSZXF1ZXN0QWNjZXNzIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZmlsZVRhZ3NQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBzbWFsbFBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPkVkaXQgVGFnczwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpmaWxlVGFnc1BvcHVwX2NvbnRlbnQiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIxMDYiPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMoJ2RhdGFzZXRGb3JtOmZpbGVUYWdzTWVudURTJyk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj5TZWxlY3QgZXhpc3RpbmcgZmlsZSB0YWdzIG9yIGNyZWF0ZSBuZXcgdGFncyB0byBkZXNjcmliZSB5b3VyIGZpbGVzLiBFYWNoIGZpbGUgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSB0YWcuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBTYXZlQnV0dG9uIiBuYW1lPSJkYXRhc2V0Rm9ybTpmaWxlVGFnc1BvcHVwU2F2ZUJ1dHRvbiIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBTYXZlQnV0dG9uJnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybTp0YWJWaWV3OmZpbGVzVGFibGUgZGF0YXNldEZvcm0mcXVvdDssb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3MsZGF0YSl7UEYoJ2ZpbGVUYWdzUG9wdXAnKS5oaWRlKCk7fX0pO3JldHVybiBmYWxzZTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPlNhdmUgQ2hhbmdlczwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpmaWxlVGFnc1BvcHVwU2F2ZUJ1dHRvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2ZpbGVUYWdzUG9wdXBTYXZlQnV0dG9uIix7aWQ6ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBTYXZlQnV0dG9uIn0pO30pOzwvc2NyaXB0PjxidXR0b24gaWQ9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBDYW5jZWxCdXR0b24iIG5hbWU9ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBDYW5jZWxCdXR0b24iIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tbGluayIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdmaWxlVGFnc1BvcHVwJykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTt9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXBDYW5jZWxCdXR0b24mcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90O30pO3JldHVybiBmYWxzZTt9XSk7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5DYW5jZWw8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZmlsZVRhZ3NQb3B1cENhbmNlbEJ1dHRvbl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2ZpbGVUYWdzUG9wdXBDYW5jZWxCdXR0b24iLHtpZDoiZGF0YXNldEZvcm06ZmlsZVRhZ3NQb3B1cENhbmNlbEJ1dHRvbiJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZmlsZVRhZ3NQb3B1cF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJmaWxlVGFnc1BvcHVwIix7aWQ6ImRhdGFzZXRGb3JtOmZpbGVUYWdzUG9wdXAiLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTphY2Nlc3NTaWduVXBMb2dJbiIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTphY2Nlc3NTaWduVXBMb2dJbl90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UmVxdWVzdCBBY2Nlc3M8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06YWNjZXNzU2lnblVwTG9nSW5fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiB0ZXh0LWRhbmdlciI+PC9zcGFuPsKgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1kYW5nZXIiPllvdSBuZWVkIHRvIDxhIGhyZWY9Ii9kYXRhdmVyc2V1c2VyLnhodG1sP2VkaXRNb2RlPUNSRUFURSZyZWRpcmVjdFBhZ2U9JTJGZGF0YXNldC54aHRtbCUzRnBlcnNpc3RlbnRJZCUzRGRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08iIHRhcmdldD0iX3NlbGYiIHRpdGxlPSJTaWduIFVwIGZvciBhIERhdGF2ZXJzZSBBY2NvdW50Ij5TaWduIFVwPC9hPiBvciA8YSBocmVmPSIvbG9naW5wYWdlLnhodG1sP3JlZGlyZWN0UGFnZT0lMkZkYXRhc2V0LnhodG1sJTNGcGVyc2lzdGVudElkJTNEZG9pJTNBMTAuNzkxMCUyRkRWTiUyRk5KN1hTTyIgdGFyZ2V0PSJfc2VsZiIgdGl0bGU9IkxvZyBpbnRvIHlvdXIgRGF0YXZlcnNlIEFjY291bnQiPkxvZyBJbjwvYT4gdG8gcmVxdWVzdCBhY2Nlc3MuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdhY2Nlc3NTaWduVXBMb2dJbl9wb3B1cCcpLmhpZGUoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ2Jsb2NrRGF0YXNldEZvcm0nKS5oaWRlKCk7IiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06YWNjZXNzU2lnblVwTG9nSW5fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiYWNjZXNzU2lnblVwTG9nSW5fcG9wdXAiLHtpZDoiZGF0YXNldEZvcm06YWNjZXNzU2lnblVwTG9nSW4iLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTptYXBEYXRhRGlhbG9nIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOm1hcERhdGFEaWFsb2dfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPj8/P2ZpbGUubWFwRGF0YS51bnB1Ymxpc2hlZC5oZWFkZXI/Pz88L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06bWFwRGF0YURpYWxvZ19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZGFuZ2VyIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+ID8/P2ZpbGUubWFwRGF0YS51bnB1Ymxpc2hlZC5tZXNzYWdlPz8/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUEYoJ21hcERhdGFEaWFsb2cnKS5oaWRlKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTptYXBEYXRhRGlhbG9nX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsIm1hcERhdGFEaWFsb2ciLHtpZDoiZGF0YXNldEZvcm06bWFwRGF0YURpYWxvZyIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkUG9wdXAiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgbGFyZ2VQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFBvcHVwX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5EYXRhc2V0IFRlcm1zPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkUG9wdXBfY29udGVudCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjEzOSI+PC9zcGFuPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5mb2N1cyhudWxsLCAnZGF0YXNldEZvcm06Z3Vlc3Rib29rVUlGcmFnbWVudCcpO30pOzwvc2NyaXB0PgogICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj4KICAgICAgICAgICAgUGxlYXNlIGNvbmZpcm0gYW5kL29yIGNvbXBsZXRlIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgYmVsb3cgaW4gb3JkZXIgdG8gY29udGludWUuCiAgICAgICAgPC9wPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmd1ZXN0Ym9va01lc3NhZ2VzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIG1lc3NhZ2VQYW5lbCI+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taG9yaXpvbnRhbCI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIyMTIiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MjIxMiIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MjIxMiZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm06Z3Vlc3Rib29rVUlGcmFnbWVudCZxdW90OyxwYTpbe25hbWU6JnF1b3Q7RE9fR0JfVkFMSURBVElPTl9kb3dubG9hZERhdGFzZXQmcXVvdDssdmFsdWU6JnF1b3Q7dHJ1ZSZxdW90O31dfSk7cmV0dXJuIGZhbHNlOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+QWNjZXB0PC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjIxMl9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MjIxMiIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDIyMTIifSk7fSk7PC9zY3JpcHQ+PGJ1dHRvbiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDIyMjAiIHZhbHVlPSIiIG9uY2xpY2s9IlBGKCdkb3dubG9hZFBvcHVwJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1saW5rIj4KICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFBvcHVwX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsImRvd25sb2FkUG9wdXAiLHtpZDoiZGF0YXNldEZvcm06ZG93bmxvYWRQb3B1cCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnByZXZpZXdHdWVzdGJvb2siIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgbGFyZ2VQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpwcmV2aWV3R3Vlc3Rib29rX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5QcmV2aWV3IEd1ZXN0Ym9vazwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTpwcmV2aWV3R3Vlc3Rib29rX2NvbnRlbnQiPgogICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIj4KICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPgogICAgICAgICAgICAgICAgVXBvbiBkb3dubG9hZGluZyBmaWxlcyB0aGUgZ3Vlc3Rib29rIGFza3MgZm9yIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24uCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPgogICAgICAgICAgICAgICAgICAgIEd1ZXN0Ym9vayBOYW1lCiAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkIERhdGEKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1xdWVzdGlvbi1zaWduIHRvb2x0aXAtaWNvbiIgZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJhdXRvIHJpZ2h0IiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJVc2VyIGRhdGEgY29sbGVjdGVkIGJ5IHRoZSBndWVzdGJvb2suIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj5BY2NvdW50IEluZm9ybWF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQRigndmlld0d1ZXN0Ym9vaycpLmhpZGUoKSIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgIENsb3NlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOnByZXZpZXdHdWVzdGJvb2tfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwidmlld0d1ZXN0Ym9vayIse2lkOiJkYXRhc2V0Rm9ybTpwcmV2aWV3R3Vlc3Rib29rIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRQYWNrYWdlUG9wdXAiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIgc21hbGxQb3BVcCI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UGFja2FnZSBGaWxlIERvd25sb2FkPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmRvd25sb2FkUGFja2FnZVBvcHVwX2NvbnRlbnQiPjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnBhY2thZ2VQb3B1cERvd25sb2FkSW5mbyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTEyIj4KICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2sgbm8tbWFyZ2luLXRvcCI+VXNlIHRoZSBEb3dubG9hZCBVUkwgaW4gYSBXZ2V0IGNvbW1hbmQgb3IgYSBkb3dubG9hZCBtYW5hZ2VyIHRvIGRvd25sb2FkIHRoaXMgcGFja2FnZSBmaWxlLiBEb3dubG9hZCB2aWEgd2ViIGJyb3dzZXIgaXMgbm90IHJlY29tbWVuZGVkLiA8YSBocmVmPSJodHRwczovL2d1aWRlcy5kYXRhdmVyc2Uub3JnL2VuLzUuOC91c2VyL2ZpbmQtdXNlLWRhdGEuaHRtbCNkb3dubG9hZGluZy1hLWRhdGF2ZXJzZS1wYWNrYWdlLXZpYS11cmwiIHRpdGxlPSJVc2VyIEd1aWRlIC0gRG93bmxvYWRpbmcgYSBEYXRhdmVyc2UgUGFja2FnZSB2aWEgVVJMIiB0YXJnZXQ9Il9ibGFuayI+VXNlciBHdWlkZSAtIERvd25sb2FkaW5nIGEgRGF0YXZlcnNlIFBhY2thZ2UgdmlhIFVSTDwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMiBtYXJnaW4tYm90dG9tIj48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpmaWxlSW5mb0luY2x1ZGUtZmlsZXNUYWJsZSIgY2xhc3M9InVpLW91dHB1dHBhbmVsIHVpLXdpZGdldCBtZWRpYSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBjb2wtZmlsZS10aHVtYiIgc3R5bGU9InBhZGRpbmctdG9wOjRweDsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1vYmplY3QgdGh1bWJuYWlsLWJsb2NrIHRleHQtY2VudGVyIj48c3BhbiBjbGFzcz0iaWNvbi1vdGhlciBmaWxlLXRodW1ibmFpbC1pY29uIHRleHQtbXV0ZWQiPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtYm9keSBjb2wtZmlsZS1tZXRhZGF0YSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGVOYW1lT3JpZ2luYWwiPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9maWxlLnhodG1sP2ZpbGVJZD0mYW1wO3ZlcnNpb249Ij4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtbXV0ZWQgc21hbGwiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpmaWxlVHlwZSI+PC9zcGFuPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpmaWxlU2l6ZSI+IC0gPC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZUNyZWF0ZVB1Ymxpc2gtYmxvY2siPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMiI+CiAgICAgICAgICAgIDxsYWJlbD5Eb3dubG9hZCBVUkw8L2xhYmVsPiAKICAgICAgICAgICAgPHA+PGNvZGU+aHR0cHM6Ly9kYXRhdmVyc2UuaGFydmFyZC5lZHUvYXBpL2FjY2Vzcy9kYXRhZmlsZS88L2NvZGU+PC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMiBidXR0b24tYmxvY2sgbWFyZ2luLXRvcCI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRQYWNrYWdlUG9wdXBDYW5jZWxCdXR0b24iIG5hbWU9ImRhdGFzZXRGb3JtOmRvd25sb2FkUGFja2FnZVBvcHVwQ2FuY2VsQnV0dG9uIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtb25seSBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYmNuKHRoaXMsZXZlbnQsW2Z1bmN0aW9uKGV2ZW50KXtQRignZG93bmxvYWRQYWNrYWdlUG9wdXAnKS5oaWRlKCk7fSxmdW5jdGlvbihldmVudCl7UHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cENhbmNlbEJ1dHRvbiZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7LHU6JnF1b3Q7ZGF0YXNldEZvcm06ZG93bmxvYWRQYWNrYWdlUG9wdXAmcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q2xvc2U8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06ZG93bmxvYWRQYWNrYWdlUG9wdXBDYW5jZWxCdXR0b25fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiQ29tbWFuZEJ1dHRvbiIsIndpZGdldF9kYXRhc2V0Rm9ybV9kb3dubG9hZFBhY2thZ2VQb3B1cENhbmNlbEJ1dHRvbiIse2lkOiJkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cENhbmNlbEJ1dHRvbiJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJkb3dubG9hZFBhY2thZ2VQb3B1cCIse2lkOiJkYXRhc2V0Rm9ybTpkb3dubG9hZFBhY2thZ2VQb3B1cCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnJlcXVlc3RBY2Nlc3NQb3B1cCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciBsYXJnZVBvcFVwIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOnJlcXVlc3RBY2Nlc3NQb3B1cF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UmVxdWVzdCBBY2Nlc3M8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06cmVxdWVzdEFjY2Vzc1BvcHVwX2NvbnRlbnQiPgogICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj4KICAgICAgICAgICAgUGxlYXNlIGNvbmZpcm0gYW5kL29yIGNvbXBsZXRlIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgYmVsb3cgaW4gb3JkZXIgdG8gcmVxdWVzdCBhY2Nlc3MgdG8gZmlsZXMgaW4gdGhpcyBkYXRhc2V0LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWhvcml6b250YWwiPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQyMzI3IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDIzMjciIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5hYih7czomcXVvdDtkYXRhc2V0Rm9ybTpqX2lkdDIzMjcmcXVvdDssZjomcXVvdDtkYXRhc2V0Rm9ybSZxdW90Oyx1OiZxdW90O0AoW2lkJD1yZXF1ZXN0QWNjZXNzQ29uc29saWRhdGVkXSkgQChbaWQkPXJlcXVlc3RQYW5lbF0pJnF1b3Q7LG9uY286ZnVuY3Rpb24oeGhyLHN0YXR1cyxhcmdzLGRhdGEpe1BGKCdyZXF1ZXN0QWNjZXNzUG9wdXAnKS5oaWRlKCk7O319KTtyZXR1cm4gZmFsc2U7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj5BY2NlcHQ8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQyMzI3X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQyMzI3Iix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MjMyNyJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRigncmVxdWVzdEFjY2Vzc1BvcHVwJykuaGlkZSgpO1BGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgIENhbmNlbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpyZXF1ZXN0QWNjZXNzUG9wdXBfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwicmVxdWVzdEFjY2Vzc1BvcHVwIix7aWQ6ImRhdGFzZXRGb3JtOnJlcXVlc3RBY2Nlc3NQb3B1cCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjM0NSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5saW5rRGF0YXNldENvbW1hbmQgPSBmdW5jdGlvbigpIHtyZXR1cm4gUHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06al9pZHQyMzQ1IixmOiJkYXRhc2V0Rm9ybSIsdToibWVzc2FnZVBhbmVsIEAoW2lkJD1NZXNzYWdlc10pIixvbmNvOmZ1bmN0aW9uKHhocixzdGF0dXMsYXJncyxkYXRhKXtQRignbGlua0RhdGFzZXRGb3JtJykuaGlkZSgpOzt9LHBhOmFyZ3VtZW50c1swXX0pO308L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpjb21wdXRlQmF0Y2hMaXN0UG9wdXAiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06Y29tcHV0ZUJhdGNoTGlzdFBvcHVwX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5Db21wdXRlIEJhdGNoPC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOmNvbXB1dGVCYXRjaExpc3RQb3B1cF9jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcmVtb3ZlIj48L3NwYW4+Q2xlYXIgQmF0Y2g8YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIzNDciIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MjM0NyIgY2xhc3M9IiBidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQyMzQ3JnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDssdTomcXVvdDtkYXRhc2V0Rm9ybSBtZXNzYWdlUGFuZWwmcXVvdDt9KTtyZXR1cm4gZmFsc2U7IiB0eXBlPSJzdWJtaXQiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCB1aS1jIj51aS1idXR0b248L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQyMzQ3X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQyMzQ3Iix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MjM0NyJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHRhYmxlIGlkPSJkYXRhc2V0Rm9ybTpjb21wdXRlQmF0Y2giIGNsYXNzPSJ0YWJsZSB0YWJsZS1zdHJpcGVkIj4KPHRoZWFkPgo8dHI+Cjx0aCBzY29wZT0iY29sIj5EYXRhc2V0PC90aD4KPHRoIHNjb3BlPSJjb2wiPkRhdGFzZXQgUGVyc2lzdGVudCBJRDwvdGg+Cjx0aCBzY29wZT0iY29sIj48L3RoPgo8L3RyPgo8L3RoZWFkPgo8dGJvZHk+Cjx0cj48dGQ+PC90ZD48dGQ+PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+CjwvdGFibGU+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tYmxvY2siPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXZlcnNlLmhhcnZhcmQuZWR1Lztqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2YiIG9uY2xpY2s9IlBGKCdjb21wdXRlQmF0Y2hMaXN0UG9wdXAnKS5oaWRlKCkiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0Ij5Db21wdXRlIEJhdGNoPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5rIiBvbmNsaWNrPSJQRignY29tcHV0ZUJhdGNoTGlzdFBvcHVwJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpjb21wdXRlQmF0Y2hMaXN0UG9wdXBfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiY29tcHV0ZUJhdGNoTGlzdFBvcHVwIix7aWQ6ImRhdGFzZXRGb3JtOmNvbXB1dGVCYXRjaExpc3RQb3B1cCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOmlucmV2aWV3IiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOmlucmV2aWV3X3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5TdWJtaXQgZm9yIFJldmlldzwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTppbnJldmlld19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtd2FybmluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi13YXJuaW5nLXNpZ24iPjwvc3Bhbj4gWW91IHdpbGwgbm90IGJlIGFibGUgdG8gbWFrZSBjaGFuZ2VzIHRvIHRoaXMgZGF0YXNldCB3aGlsZSBpdCBpcyBpbiByZXZpZXcuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIzNjQiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MjM2NCIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmJjbih0aGlzLGV2ZW50LFtmdW5jdGlvbihldmVudCl7UEYoJ2lucmV2aWV3JykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpO30sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQyMzY0JnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+U3VibWl0PC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjM2NF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MjM2NCIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDIzNjQifSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdpbnJldmlldycpLmhpZGUoKTtQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06aW5yZXZpZXdfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwiaW5yZXZpZXciLHtpZDoiZGF0YXNldEZvcm06aW5yZXZpZXciLG1vZGFsOnRydWV9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTpwdWJsaXNoRGF0YXNldCIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpwdWJsaXNoRGF0YXNldF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UHVibGlzaCBEYXRhc2V0PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOnB1Ymxpc2hEYXRhc2V0X2NvbnRlbnQiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIzNzciPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMoJ2RhdGFzZXRGb3JtOm9wdGlvbnMnKTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXdhcm5pbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVwdWJsaXNoIHRoaXMgZGF0YXNldD8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD48ZGl2IGNsYXNzPSJ3ZWxsIHRlcm1zLWFncmVlbWVudC1ibG9jayI+QnkgZGVmYXVsdCBkYXRhc2V0cyBhcmUgcHVibGlzaGVkIHdpdGggdGhlIENDMC3igJxQdWJsaWMgRG9tYWluIERlZGljYXRpb27igJ0gd2FpdmVyLiBMZWFybiBtb3JlIGFib3V0IHRoZSBDQzAgd2FpdmVyIDxhIHRhcmdldD1fYmxhbmsgaHJlZj0naHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvY2hvb3NlL3plcm8vJz5oZXJlPC9hPi4gPGJyPjxicj4gVG8gcHVibGlzaCB3aXRoIGN1c3RvbSBUZXJtcyBvZiBVc2UsIGNsaWNrIHRoZSBDYW5jZWwgYnV0dG9uIGFuZCBnbyB0byB0aGUgVGVybXMgdGFiIGZvciB0aGlzIGRhdGFzZXQuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhlbHAtYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgaWYgdGhpcyBpcyBhIG1pbm9yIG9yIG1ham9yIHZlcnNpb24gdXBkYXRlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD48dGFibGUgaWQ9ImRhdGFzZXRGb3JtOm9wdGlvbnMiIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9InVpLXNlbGVjdG9uZXJhZGlvIHVpLXdpZGdldCI+PHRyPjx0ZD48ZGl2IGNsYXNzPSJ1aS1yYWRpb2J1dHRvbiB1aS13aWRnZXQiPjxkaXYgY2xhc3M9InVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSI+PGlucHV0IGlkPSJkYXRhc2V0Rm9ybTpvcHRpb25zOjAiIG5hbWU9ImRhdGFzZXRGb3JtOm9wdGlvbnMiIHR5cGU9InJhZGlvIiB2YWx1ZT0iMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1yYWRpb2J1dHRvbi1ib3ggdWktd2lkZ2V0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGVmYXVsdCB1aS1zdGF0ZS1hY3RpdmUiPjxzcGFuIGNsYXNzPSJ1aS1yYWRpb2J1dHRvbi1pY29uIHVpLWljb24gdWktaWNvbi1idWxsZXQgdWktYyI+PC9zcGFuPjwvZGl2PjwvZGl2PjxsYWJlbCBmb3I9ImRhdGFzZXRGb3JtOm9wdGlvbnM6MCI+TWlub3IgUmVsZWFzZSAoMS4xKTwvbGFiZWw+PC90ZD48dGQ+PGRpdiBjbGFzcz0idWktcmFkaW9idXR0b24gdWktd2lkZ2V0Ij48ZGl2IGNsYXNzPSJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiPjxpbnB1dCBpZD0iZGF0YXNldEZvcm06b3B0aW9uczoxIiBuYW1lPSJkYXRhc2V0Rm9ybTpvcHRpb25zIiB0eXBlPSJyYWRpbyIgdmFsdWU9IjIiIC8+PC9kaXY+PGRpdiBjbGFzcz0idWktcmFkaW9idXR0b24tYm94IHVpLXdpZGdldCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRlZmF1bHQiPjxzcGFuIGNsYXNzPSJ1aS1yYWRpb2J1dHRvbi1pY29uIHVpLWljb24gdWktaWNvbi1ibGFuayB1aS1jIj48L3NwYW4+PC9kaXY+PC9kaXY+PGxhYmVsIGZvcj0iZGF0YXNldEZvcm06b3B0aW9uczoxIj5NYWpvciBSZWxlYXNlICgyLjApPC9sYWJlbD48L3RkPjwvdHI+PC90YWJsZT48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpvcHRpb25zX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIlNlbGVjdE9uZVJhZGlvIiwid2lkZ2V0X2RhdGFzZXRGb3JtX29wdGlvbnMiLHtpZDoiZGF0YXNldEZvcm06b3B0aW9ucyIsdW5zZWxlY3RhYmxlOmZhbHNlfSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWJsb2NrIj48YnV0dG9uIGlkPSJkYXRhc2V0Rm9ybTpqX2lkdDIzOTMiIG5hbWU9ImRhdGFzZXRGb3JtOmpfaWR0MjM5MyIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmJjbih0aGlzLGV2ZW50LFtmdW5jdGlvbihldmVudCl7UEYoJ3B1Ymxpc2hEYXRhc2V0JykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpO30sZnVuY3Rpb24oZXZlbnQpe1ByaW1lRmFjZXMuYWIoe3M6JnF1b3Q7ZGF0YXNldEZvcm06al9pZHQyMzkzJnF1b3Q7LGY6JnF1b3Q7ZGF0YXNldEZvcm0mcXVvdDt9KTtyZXR1cm4gZmFsc2U7fV0pOyIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQgdWktYyI+Q29udGludWU8L3NwYW4+PC9idXR0b24+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06al9pZHQyMzkzX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZGF0YXNldEZvcm1fal9pZHQyMzkzIix7aWQ6ImRhdGFzZXRGb3JtOmpfaWR0MjM5MyJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ3B1Ymxpc2hEYXRhc2V0JykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iZGF0YXNldEZvcm06cHVibGlzaERhdGFzZXRfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwicHVibGlzaERhdGFzZXQiLHtpZDoiZGF0YXNldEZvcm06cHVibGlzaERhdGFzZXQiLG1vZGFsOnRydWUsd2lkdGg6IjcwJSJ9KTt9KTs8L3NjcmlwdD48ZGl2IGlkPSJkYXRhc2V0Rm9ybTptYXlOb3RSZWxlYXNlIiBjbGFzcz0idWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXNoYWRvdyB1aS1oaWRkZW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLXRvcCI+PHNwYW4gaWQ9ImRhdGFzZXRGb3JtOm1heU5vdFJlbGVhc2VfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlB1Ymxpc2ggRGF0YXNldDwvc3Bhbj48YSBocmVmPSIjIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyLWljb24gdWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHVpLWNvcm5lci1hbGwiIGFyaWEtbGFiZWw9IkNsb3NlIj48c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWNsb3NldGhpY2siPjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiIGlkPSJkYXRhc2V0Rm9ybTptYXlOb3RSZWxlYXNlX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1kYW5nZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiI+PC9zcGFuPlRoaXMgZGF0YXNldCBjYW5ub3QgYmUgcHVibGlzaGVkIHVudGlsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvZGF0YXZlcnNlLnhodG1sP2FsaWFzPWhhcnZhcmQiIHRpdGxlPSJIYXJ2YXJkIERhdGF2ZXJzZSI+SGFydmFyZCBEYXRhdmVyc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiAgaXMgcHVibGlzaGVkIGJ5IGl0cyBhZG1pbmlzdHJhdG9yLgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdtYXlOb3RSZWxlYXNlJykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTptYXlOb3RSZWxlYXNlX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsIm1heU5vdFJlbGVhc2UiLHtpZDoiZGF0YXNldEZvcm06bWF5Tm90UmVsZWFzZSIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOm1heW5vdFB1Ymxpc2hQYXJlbnQiIGNsYXNzPSJ1aS1kaWFsb2cgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwgdWktc2hhZG93IHVpLWhpZGRlbi1jb250YWluZXIiPjxkaXYgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItdG9wIj48c3BhbiBpZD0iZGF0YXNldEZvcm06bWF5bm90UHVibGlzaFBhcmVudF90aXRsZSIgY2xhc3M9InVpLWRpYWxvZy10aXRsZSI+UHVibGlzaCBEYXRhc2V0PC9zcGFuPjxhIGhyZWY9IiMiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXItaWNvbiB1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UgdWktY29ybmVyLWFsbCIgYXJpYS1sYWJlbD0iQ2xvc2UiPjxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2xvc2V0aGljayI+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIgaWQ9ImRhdGFzZXRGb3JtOm1heW5vdFB1Ymxpc2hQYXJlbnRfY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWRhbmdlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduIj48L3NwYW4+VGhpcyBkYXRhc2V0IGNhbm5vdCBiZSBwdWJsaXNoZWQgdW50aWwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9kYXRhdmVyc2UvaGFydmFyZCIgdGl0bGU9IkhhcnZhcmQgRGF0YXZlcnNlIj5IYXJ2YXJkIERhdGF2ZXJzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+IGFuZCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2RhdGF2ZXJzZS8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+ICBhcmUgcHVibGlzaGVkLgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG9uY2xpY2s9IlBGKCdtYXlub3RQdWJsaXNoUGFyZW50JykuaGlkZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignYmxvY2tEYXRhc2V0Rm9ybScpLmhpZGUoKTsiIHR5cGU9ImJ1dHRvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTptYXlub3RQdWJsaXNoUGFyZW50X3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkRpYWxvZyIsIm1heW5vdFB1Ymxpc2hQYXJlbnQiLHtpZDoiZGF0YXNldEZvcm06bWF5bm90UHVibGlzaFBhcmVudCIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxkaXYgaWQ9ImRhdGFzZXRGb3JtOnNlbmRCYWNrVG9Db250cmlidXRvciIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJkYXRhc2V0Rm9ybTpzZW5kQmFja1RvQ29udHJpYnV0b3JfdGl0bGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGUiPlJldHVybiB0byBBdXRob3I8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iZGF0YXNldEZvcm06c2VuZEJhY2tUb0NvbnRyaWJ1dG9yX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC13YXJuaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXdhcm5pbmctc2lnbiI+PC9zcGFuPiBSZXR1cm4gdGhpcyBkYXRhc2V0IHRvIGNvbnRyaWJ1dG9yIGZvciBtb2RpZmljYXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZGF0YXNldEZvcm06al9pZHQyNDE0IiBuYW1lPSJkYXRhc2V0Rm9ybTpqX2lkdDI0MTQiIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1vbmx5IGJ0biBidG4tZGVmYXVsdCIgb25jbGljaz0iUHJpbWVGYWNlcy5iY24odGhpcyxldmVudCxbZnVuY3Rpb24oZXZlbnQpe1BGKCdzZW5kQmFja1RvQ29udHJpYnV0b3InKS5oaWRlKCl9LGZ1bmN0aW9uKGV2ZW50KXtQcmltZUZhY2VzLmFiKHtzOiZxdW90O2RhdGFzZXRGb3JtOmpfaWR0MjQxNCZxdW90OyxmOiZxdW90O2RhdGFzZXRGb3JtJnF1b3Q7fSk7cmV0dXJuIGZhbHNlO31dKTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPkNvbnRpbnVlPC9zcGFuPjwvYnV0dG9uPjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjQxNF9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJDb21tYW5kQnV0dG9uIiwid2lkZ2V0X2RhdGFzZXRGb3JtX2pfaWR0MjQxNCIse2lkOiJkYXRhc2V0Rm9ybTpqX2lkdDI0MTQifSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWxpbmsiIG9uY2xpY2s9IlBGKCdzZW5kQmFja1RvQ29udHJpYnV0b3InKS5oaWRlKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdibG9ja0RhdGFzZXRGb3JtJykuaGlkZSgpOyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJkYXRhc2V0Rm9ybTpzZW5kQmFja1RvQ29udHJpYnV0b3JfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiRGlhbG9nIiwic2VuZEJhY2tUb0NvbnRyaWJ1dG9yIix7aWQ6ImRhdGFzZXRGb3JtOnNlbmRCYWNrVG9Db250cmlidXRvciIsbW9kYWw6dHJ1ZX0pO30pOzwvc2NyaXB0PjxzY3JpcHQgaWQ9ImRhdGFzZXRGb3JtOmpfaWR0MjQxNiIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5yZXR1cm5Ub0F1dGhvckNvbW1hbmQgPSBmdW5jdGlvbigpIHtyZXR1cm4gUHJpbWVGYWNlcy5hYih7czoiZGF0YXNldEZvcm06al9pZHQyNDE2IixmOiJkYXRhc2V0Rm9ybSIscGE6YXJndW1lbnRzWzBdfSk7fTwvc2NyaXB0PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImphdmF4LmZhY2VzLlZpZXdTdGF0ZSIgaWQ9ImpfaWQxOmphdmF4LmZhY2VzLlZpZXdTdGF0ZToyIiB2YWx1ZT0iLTQzODExNjY5MzUwNDU3MjcwMTQ6LTUzNzI3MjA5MzYzODAxNTg5ODgiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgo8L2Zvcm0+CiAgICAgICAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgICAgICAgIC8vPCFbQ0RBVEFbCiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBwb3BvdmVySFRNTCgnQWxsb3dlZCBIVE1MIFRhZ3MnLCAnJmx0O2EmZ3Q7LCAmbHQ7YiZndDssICZsdDtibG9ja3F1b3RlJmd0OywgJmx0O2JyJmd0OywgJmx0O2NvZGUmZ3Q7LCAmbHQ7ZGVsJmd0OywgJmx0O2RkJmd0OywgJmx0O2RsJmd0OywgJmx0O2R0Jmd0OywgJmx0O2VtJmd0OywgJmx0O2hyJmd0OywgJmx0O2gxJmd0Oy0mbHQ7aDMmZ3Q7LCAmbHQ7aSZndDssICZsdDtpbWcmZ3Q7LCAmbHQ7a2JkJmd0OywgJmx0O2xpJmd0OywgJmx0O29sJmd0OywgJmx0O3AmZ3Q7LCAmbHQ7cHJlJmd0OywgJmx0O3MmZ3Q7LCAmbHQ7c3VwJmd0OywgJmx0O3N1YiZndDssICZsdDtzdHJvbmcmZ3Q7LCAmbHQ7c3RyaWtlJmd0OywgJmx0O3UmZ3Q7LCAmbHQ7dWwmZ3Q7Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnlEZXNjVHJ1bmNhdGlvbigpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN1bW1hcnlEZXNjVHJ1bmNhdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJ1bmNhdGUgc3VtbWFyeSBkZXNjcmlwdGlvbiwgY29udGVudFRydW5jYXRlIGZ1bmN0aW9uIGluIGR2X3JlYmluZF9ib290c3RyYXBfdWkuanMKICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHN1bW1hcnkgZGVzYyByb3cgaWQgdG8gcGFzcyBhcyBzZWxlY3RvciBwYXJhbQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY0lkID0gJ2RzRGVzY3JpcHRpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbWV0YWRhdGEgZHluYW1pYyBsYWJlbCB0ZXh0LCB0b29sdGlwIHRleHQgZnJvbSBidW5kbGUgYXMgcGFyYW0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRydW5jTW9yZUJ0biA9ICdSZWFkIGZ1bGwgRGVzY3JpcHRpb24gWytdJzsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRydW5jTW9yZVRpcCA9ICdDbGljayB0byByZWFkIHRoZSBmdWxsIERlc2NyaXB0aW9uLic7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0cnVuY0xlc3NCdG4gPSAnQ29sbGFwc2UgRGVzY3JpcHRpb24gWytdJzsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRydW5jTGVzc1RpcCA9ICdDbGljayB0byBjb2xsYXBzZSB0aGUgRGVzY3JpcHRpb24uJzsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhc3MgYnVuZGxlIHRleHQgdmFyaWFibHMgYXMgcGFyYW1zIHRvIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUcnVuY2F0ZShkZXNjSWQsIHRydW5jTW9yZUJ0biwgdHJ1bmNNb3JlVGlwLCB0cnVuY0xlc3NCdG4sIHRydW5jTGVzc1RpcCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW5EaWFsb2coKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdkZXRhaWxzJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvcGVuQ29tcGFyZVR3bygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ2NvbXBhcmVUd28nKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RDaGVja0JveGVzKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY291bnQgPSBQRigndmVyc2lvbnNUYWJsZScpLmdldFNlbGVjdGVkUm93c0NvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCAhPT0gMikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ2NvbXBhcmVUd28nKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdidXR0b25baWQkPSJjb21wYXJlVmVyc2lvbnMiXScpLnRyaWdnZXIoJ2NsaWNrJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEZpbGVzU2VsZWN0ZWQoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IFBGKCdmaWxlc1RhYmxlJykuZ2V0U2VsZWN0ZWRSb3dzQ291bnQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdzZWxlY3RGaWxlcycpLnNob3coKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVRlbXBsYXRlKCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCdidXR0b25baWQkPSJ1cGRhdGVUZW1wbGF0ZSJdJykudHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdXBkYXRlSGlkZGVuUmVhc29uKHRleHRBcmVhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2lucHV0W2lkJD0iaGlkZGVuUmVhc29uSW5wdXQiXScpLnZhbCh0ZXh0QXJlYS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZU93bmVyRGF0YXZlcnNlKCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCdidXR0b25baWQkPSJ1cGRhdGVPd25lckRhdGF2ZXJzZSJdJykudHJpZ2dlcignY2xpY2snKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvd1BvcHVwKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgb3V0Y29tZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkYXRhc2V0Rm9ybTp2YWxpZGF0ZUZpbGVzT3V0Y29tZSIpLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAob3V0Y29tZSA9PT0nTWl4ZWQnKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdkb3dubG9hZE1peGVkJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdXRjb21lID09PSdGYWlsRW1wdHknKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGKCdzZWxlY3RGaWxlc0ZvckRvd25sb2FkJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdXRjb21lID09PSdGYWlsU2l6ZScpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ2Rvd25sb2FkVG9vTGFyZ2UnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG91dGNvbWUgPT09J0ZhaWxSZXN0cmljdGVkJyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRignZG93bmxvYWRJbnZhbGlkJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdXRjb21lID09PSdHdWVzdGJvb2tSZXF1aXJlZCcpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEYoJ2Rvd25sb2FkUG9wdXAnKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9ICAgIAogICAgICAgICAgICAgICAgICAgIC8vXV0+CiAgICAgICAgICAgICAgICA8L3NjcmlwdD4KICAgICAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImZvb3RlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij48ZGl2IGNsYXNzPSJjb2wtc20tOCBzbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPHA+Q29weXJpZ2h0ICYjMTY5OyAyMDIxLCBUaGUgUHJlc2lkZW50ICYjMzg7IEZlbGxvd3Mgb2YgSGFydmFyZCBDb2xsZWdlwqB8wqAgPGEgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0LmRhdGF2ZXJzZS5oYXJ2YXJkLmVkdS9oYXJ2YXJkLWRhdGF2ZXJzZS1wcml2YWN5LXBvbGljeSIgcmVsPSJub29wZW5lciIgdGFyZ2V0PSJfYmxhbmsiPlByaXZhY3kgUG9saWN5PC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00IHRleHQtcmlnaHQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBvd2VyZWRieWxvZ28iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Qb3dlcmVkIGJ5PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vZGF0YXZlcnNlLm9yZy8iIHRpdGxlPSJUaGUgRGF0YXZlcnNlIFByb2plY3QiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj48aW1nIHNyYz0iL3Jlc291cmNlcy9pbWFnZXMvZGF0YXZlcnNlX3Byb2plY3RfbG9nby5zdmciIHdpZHRoPSIxMTgiIGhlaWdodD0iNDAiIG9uZXJyb3I9InRoaXMuc3JjPScvcmVzb3VyY2VzL2ltYWdlcy9kYXRhdmVyc2Vwcm9qZWN0X2xvZ28ucG5nJyIgYWx0PSJUaGUgRGF0YXZlcnNlIFByb2plY3QgbG9nbyIgLz48L2E+PHNwYW4gY2xhc3M9InZlcnNpb24iPnYuIDUuODwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PjxzY3JpcHQ+CiAgLy88IVtDREFUQVsKICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAkKCIjZm9vdGVyID4gZGl2LmNvbnRhaW5lciA+IGRpdi5yb3cgPiBkaXYuY29sLXNtLTguc21hbGwgPiBwIikuYXBwZW5kKCImIzE2MDt8JiMxNjA7IDxhIGhyZWY9XCJodHRwczovL3d3dy5oYXJ2YXJkLmVkdS9jb3B5cmlnaHQtaXNzdWVcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlJlcG9ydCBDb3B5cmlnaHQgSW5mcmluZ2VtZW50PC9hPiAmIzE2MDt8JiMxNjA7IDxhIGhyZWY9XCJodHRwczovL2FjY2Vzc2liaWxpdHkuaHVpdC5oYXJ2YXJkLmVkdS9kaWdpdGFsLWFjY2Vzc2liaWxpdHktcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5BY2Nlc3NpYmlsaXR5PC9hPiIpOwogIH0pOwogIC8vXV0+Cjwvc2NyaXB0PgoKPHN0eWxlPgojZmVlZGJhY2tUYWIge3Bvc2l0aW9uOmZpeGVkOyBib3R0b206MDsgcmlnaHQ6NTBweDt9CiNmZWVkYmFja1RhYiBhLmJ0bi1mZWVkYmFjayB7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO30KLmJ0bi1mZWVkYmFjayB7YmFja2dyb3VuZC1jb2xvcjojQzU1QjI4OyBib3JkZXItY29sb3I6I0M1NUIyODsgY29sb3I6I2ZmZjt9Ci5idG4tZmVlZGJhY2s6aG92ZXIsIC5idG4tZmVlZGJhY2s6Zm9jdXMsCi5idG4tZmVlZGJhY2s6YWN0aXZlLCAuYnRuLWZlZWRiYWNrLmFjdGl2ZSB7YmFja2dyb3VuZC1jb2xvcjojYjA1MTI0OyBib3JkZXItY29sb3I6ICM5YjQ3MWY7IGNvbG9yOiNmZmY7fQo8L3N0eWxlPgoKPGRpdiBpZD0iZmVlZGJhY2tUYWIiPgogICAgPGEgY2xhc3M9ImJ0biBidG4tZmVlZGJhY2sgYm9vdHN0cmFwLWJ1dHRvbi10b29sdGlwIiBocmVmPSJodHRwczovL2dvby5nbC9mb3Jtcy9wN3V1M0dmaVdZU2xKcnNpMSIgcm9sZT0iYnV0dG9uIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgIGFyaWEtbGFiZWw9IkhlbHAgaW1wcm92ZSBEYXRhdmVyc2UhIiBkYXRhLW9yaWdpbmFsLXRpdGxlPSJIZWxwIGltcHJvdmUgRGF0YXZlcnNlISI+CiAgICAgICAgRmVlZGJhY2sKICAgIDwvYT4KPC9kaXY+CjxkaXYgaWQ9ImFqYXhTdGF0dXNQYW5lbCI+PGRpdiBpZD0iYWpheFN0YXR1c1BhbmVsX3N0YXJ0IiBzdHlsZT0iZGlzcGxheTpub25lIj48aW1nIHNyYz0iL3Jlc291cmNlcy9pbWFnZXMvYWpheC1sb2FkaW5nLmdpZjtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2YiIGFsdD0iTG9hZGluZy4uLiIgLz48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPSJhamF4U3RhdHVzUGFuZWxfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiQWpheFN0YXR1cyIsIndpZGdldF9hamF4U3RhdHVzUGFuZWwiLHtpZDoiYWpheFN0YXR1c1BhbmVsIixkZWxheTowfSk7fSk7PC9zY3JpcHQ+PGRpdiBpZD0iY29udGFjdERpYWxvZyIgY2xhc3M9InVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1zaGFkb3cgdWktaGlkZGVuLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0idWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci10b3AiPjxzcGFuIGlkPSJjb250YWN0RGlhbG9nX3RpdGxlIiBjbGFzcz0idWktZGlhbG9nLXRpdGxlIj5Db250YWN0IEhhcnZhcmQgRGF0YXZlcnNlIFN1cHBvcnQ8L3NwYW4+PGEgaHJlZj0iIyIgY2xhc3M9InVpLWRpYWxvZy10aXRsZWJhci1pY29uIHVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB1aS1jb3JuZXItYWxsIiBhcmlhLWxhYmVsPSJDbG9zZSI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jbG9zZXRoaWNrIj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiBpZD0iY29udGFjdERpYWxvZ19jb250ZW50Ij48ZGl2IGlkPSJqX2lkdDI0NDQiPgo8Zm9ybSBpZD0iZW1haWxGb3JtIiBuYW1lPSJlbWFpbEZvcm0iIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvZGF0YXNldC54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/cGVyc2lzdGVudElkPWRvaSUzQTEwLjc5MTAlMkZEVk4lMkZOSjdYU08iIGNsYXNzPSJmb3JtLWhvcml6b250YWwiIGVuY3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVtYWlsRm9ybSIgdmFsdWU9ImVtYWlsRm9ybSIgLz4KPHNwYW4gaWQ9ImVtYWlsRm9ybTpqX2lkdDI0NDUiPjwvc3Bhbj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuZm9jdXMobnVsbCwgJ2NvbnRhY3REaWFsb2cnKTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWVzc2FnZVRvIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+VG88L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgaWQ9Im1lc3NhZ2VUbyIgY2xhc3M9ImZvcm0tY29udHJvbC1zdGF0aWMiPkhhcnZhcmQgRGF0YXZlcnNlIFN1cHBvcnQ8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPjxsYWJlbCBmb3I9ImVtYWlsRm9ybTp1c2VyRW1haWwiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj5Gcm9tIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWFzdGVyaXNrIHRleHQtZGFuZ2VyIiB0aXRsZT0iUmVxdWlyZWQgZmllbGQiPjwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+PGlucHV0IGlkPSJlbWFpbEZvcm06dXNlckVtYWlsIiBuYW1lPSJlbWFpbEZvcm06dXNlckVtYWlsIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBjbGFzcz0idWktaW5wdXRmaWVsZCB1aS1pbnB1dHRleHQgdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCBmb3JtLWNvbnRyb2wiIHNpemU9IjMwIiAvPjxzY3JpcHQgaWQ9ImVtYWlsRm9ybTp1c2VyRW1haWxfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0Iiwid2lkZ2V0X2VtYWlsRm9ybV91c2VyRW1haWwiLHtpZDoiZW1haWxGb3JtOnVzZXJFbWFpbCJ9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPjxsYWJlbCBmb3I9ImVtYWlsRm9ybTptZXNzYWdlU3ViamVjdCIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwiPlN1YmplY3QgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tYXN0ZXJpc2sgdGV4dC1kYW5nZXIiIHRpdGxlPSJSZXF1aXJlZCBmaWVsZCI+PC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPjxpbnB1dCBpZD0iZW1haWxGb3JtOm1lc3NhZ2VTdWJqZWN0IiBuYW1lPSJlbWFpbEZvcm06bWVzc2FnZVN1YmplY3QiIHR5cGU9InRleHQiIHZhbHVlPSIiIGNsYXNzPSJ1aS1pbnB1dGZpZWxkIHVpLWlucHV0dGV4dCB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIGZvcm0tY29udHJvbCIgLz48c2NyaXB0IGlkPSJlbWFpbEZvcm06bWVzc2FnZVN1YmplY3RfcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0Iiwid2lkZ2V0X2VtYWlsRm9ybV9tZXNzYWdlU3ViamVjdCIse2lkOiJlbWFpbEZvcm06bWVzc2FnZVN1YmplY3QifSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4gICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+PGxhYmVsIGZvcj0iZW1haWxGb3JtOnVzZXJNZXNzYWdlIiBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+TWVzc2FnZSA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1hc3RlcmlzayB0ZXh0LWRhbmdlciIgdGl0bGU9IlJlcXVpcmVkIGZpZWxkIj48L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+PHRleHRhcmVhIGlkPSJlbWFpbEZvcm06dXNlck1lc3NhZ2UiIG5hbWU9ImVtYWlsRm9ybTp1c2VyTWVzc2FnZSIgY2xhc3M9InVpLWlucHV0ZmllbGQgdWktaW5wdXR0ZXh0YXJlYSB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIGZvcm0tY29udHJvbCIgY29scz0iMjAiIHJvd3M9IjEwIiB0aXRsZT0iTWVzc2FnZSIgbWF4bGVuZ3RoPSIyMTQ3NDgzNjQ3Ij48L3RleHRhcmVhPjxzY3JpcHQgaWQ9ImVtYWlsRm9ybTp1c2VyTWVzc2FnZV9zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJJbnB1dFRleHRhcmVhIiwid2lkZ2V0X2VtYWlsRm9ybV91c2VyTWVzc2FnZSIse2lkOiJlbWFpbEZvcm06dXNlck1lc3NhZ2UiLGF1dG9SZXNpemU6ZmFsc2V9KTt9KTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tb2Zmc2V0LTMgY29sLXNtLTkiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Qm9sZCI+UGxlYXNlIGZpbGwgdGhpcyBvdXQgdG8gcHJvdmUgeW91IGFyZSBub3QgYSByb2JvdC48L3NwYW4+IDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWFzdGVyaXNrIHRleHQtZGFuZ2VyIiB0aXRsZT0iUmVxdWlyZWQgZmllbGQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPiArICA9IDxpbnB1dCBpZD0iZW1haWxGb3JtOm1lc3NhZ2VTdW0iIG5hbWU9ImVtYWlsRm9ybTptZXNzYWdlU3VtIiB0eXBlPSJ0ZXh0IiBjbGFzcz0idWktaW5wdXRmaWVsZCB1aS1pbnB1dHRleHQgdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCAiIHNpemU9IjQiIHRpdGxlPSJIdW1hbiBBY2Nlc3MgVmFsaWRhdGlvbiBBbnN3ZXIiIC8+PHNjcmlwdCBpZD0iZW1haWxGb3JtOm1lc3NhZ2VTdW1fcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGZ1bmN0aW9uKCl7UHJpbWVGYWNlcy5jdygiSW5wdXRUZXh0Iiwid2lkZ2V0X2VtYWlsRm9ybV9tZXNzYWdlU3VtIix7aWQ6ImVtYWlsRm9ybTptZXNzYWdlU3VtIn0pO30pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ibG9jayI+PGJ1dHRvbiBpZD0iZW1haWxGb3JtOmpfaWR0MjQ3MiIgbmFtZT0iZW1haWxGb3JtOmpfaWR0MjQ3MiIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkgYnRuIGJ0bi1kZWZhdWx0IiBvbmNsaWNrPSJQcmltZUZhY2VzLmFiKHtzOiZxdW90O2VtYWlsRm9ybTpqX2lkdDI0NzImcXVvdDssZjomcXVvdDtlbWFpbEZvcm0mcXVvdDssdTomcXVvdDtlbWFpbEZvcm0mcXVvdDssb25jbzpmdW5jdGlvbih4aHIsc3RhdHVzLGFyZ3MsZGF0YSl7aWYgKGFyZ3MgJmFtcDsmYW1wOyAhYXJncy52YWxpZGF0aW9uRmFpbGVkKSBQRignY29udGFjdEZvcm0nKS5oaWRlKCk7O30scGE6W3tuYW1lOiZxdW90O0RPX1ZBTElEQVRJT04mcXVvdDssdmFsdWU6JnF1b3Q7dHJ1ZSZxdW90O31dLGZpOiZxdW90O2pfaWR0MjQ0NCZxdW90O30pO3JldHVybiBmYWxzZTsiIHR5cGU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0IHVpLWMiPlNlbmQgTWVzc2FnZTwvc3Bhbj48L2J1dHRvbj48c2NyaXB0IGlkPSJlbWFpbEZvcm06al9pZHQyNDcyX3MiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpe1ByaW1lRmFjZXMuY3coIkNvbW1hbmRCdXR0b24iLCJ3aWRnZXRfZW1haWxGb3JtX2pfaWR0MjQ3MiIse2lkOiJlbWFpbEZvcm06al9pZHQyNDcyIn0pO30pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluayIgb25jbGljaz0iUEYoJ2NvbnRhY3RGb3JtJykuaGlkZSgpIiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImphdmF4LmZhY2VzLlZpZXdTdGF0ZSIgaWQ9ImpfaWQxOmphdmF4LmZhY2VzLlZpZXdTdGF0ZTozIiB2YWx1ZT0iLTQzODExNjY5MzUwNDU3MjcwMTQ6LTUzNzI3MjA5MzYzODAxNTg5ODgiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgo8L2Zvcm0+PC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdCBpZD0iY29udGFjdERpYWxvZ19zIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXtQcmltZUZhY2VzLmN3KCJEaWFsb2ciLCJjb250YWN0Rm9ybSIse2lkOiJjb250YWN0RGlhbG9nIixtb2RhbDp0cnVlfSk7fSk7PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBzcmM9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9qcy9kdl9yZWJpbmRfYm9vdHN0cmFwX3VpLmpzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj92ZXJzaW9uPTUuOCI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBkZWZlcj0iZGVmZXIiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2JzL2pzL2Jvb3RzdHJhcC5taW4uanMueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3ZlcnNpb249NS44Ij48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0IGRlZmVyPSJkZWZlciIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvanMvaWUtY29tcGF0LmpzLnhodG1sO2pzZXNzaW9uaWQ9ZTljMjkzZjQwNTA4ZGQwZDI0ODZiZDZjOTk3Zj92ZXJzaW9uPTUuOCI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCBkZWZlcj0iZGVmZXIiIHNyYz0iL2phdmF4LmZhY2VzLnJlc291cmNlL2pzL293bC5jYXJvdXNlbC5qcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/dmVyc2lvbj01LjgiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgZGVmZXI9ImRlZmVyIiBzcmM9Ii9qYXZheC5mYWNlcy5yZXNvdXJjZS9qcy9qcXVlcnkubWF0Y2hIZWlnaHQuanMueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3ZlcnNpb249NS44Ij48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0IGRlZmVyPSJkZWZlciIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvanMvanF1ZXJ5LnNoYXJycmUuanMueGh0bWw7anNlc3Npb25pZD1lOWMyOTNmNDA1MDhkZDBkMjQ4NmJkNmM5OTdmP3ZlcnNpb249NS44Ij48L3NjcmlwdD4KICAgICAgICA8c2NyaXB0IGRlZmVyPSJkZWZlciIgc3JjPSIvamF2YXguZmFjZXMucmVzb3VyY2UvanMvY2xpcGJvYXJkLm1pbi5qcy54aHRtbDtqc2Vzc2lvbmlkPWU5YzI5M2Y0MDUwOGRkMGQyNDg2YmQ2Yzk5N2Y/dmVyc2lvbj01LjgiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIC8vPCFbQ0RBVEFbCiAgICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIC8vIE5hdmJhciBTZWFyY2ggVG9nZ2xlCiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnI25hdmJhci1zZWFyY2gtdG9nZ2xlJywgZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgibGkiKS5oaWRlKCk7CiAgICAgICAgICAgICAgICAgICAgJCgiZm9ybS5uYXZiYXItZm9ybVtyb2xlPSdzZWFyY2gnXSIpLnNob3coKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJCgnYm9keScpLmNsaWNrKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGUudGFyZ2V0KS5jbG9zZXN0KCJmb3JtLm5hdmJhci1mb3JtW3JvbGU9J3NlYXJjaCddIikubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoImZvcm0ubmF2YmFyLWZvcm1bcm9sZT0nc2VhcmNoJ10iKS5oaWRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNuYXZiYXItc2VhcmNoLXRvZ2dsZSIpLnBhcmVudCgibGkiKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBSZWJpbmQgYm9vdHN0cmFwIFVJIGNvbXBvbmVudHMKICAgICAgICAgICAgICAgIGJpbmRfYnN1aV9jb21wb25lbnRzKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmdW5jdGlvbiBjbGlja1N1cHBvcnRMaW5rKCkgewogICAgICAgICAgICAgICAgJCgiW2lkJD0naGVhZGVyU3VwcG9ydExpbmsnXSIpLmNsaWNrKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy9dXT4KICAgICAgICA8L3NjcmlwdD48L2JvZHk+CjwvaHRtbD4=
|
38
|
+
http_version:
|
39
|
+
recorded_at: Mon, 06 Dec 2021 07:18:59 GMT
|
40
|
+
recorded_with: VCR 3.0.3
|