bolognese 1.0.36 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74569083d960bc53779f88ad8d7f12c8daa7f9e4478506c33c6044f26a861bda
4
- data.tar.gz: d6e1d157f2b9377071cbd4bc2e461d192dfa3837f18cc9939ddb00982d28eba1
3
+ metadata.gz: c62a598e109f6caf9fe34a1b9237eb1360f6cc3992a25c46cf56afe36d6bc7c9
4
+ data.tar.gz: f96ed6464ded442d7d87f1eb6e660b9c22435f89c78bfa7690e4573f53f2a409
5
5
  SHA512:
6
- metadata.gz: c91f16a942182e934880d8b69b7a575cc6e1efb220a9a8c36fb6e146423fe2fa5bf385055c9f2b3cf42eb22b7010b2e3ca4bddcf1eb2dc8a2bb4159809969007
7
- data.tar.gz: 495ede87e9082ca255b37a8339fdcb9a43aea9ad35e48ad541cf0782fd0e1f8b41e4633ec49c10117349750c1172feace5956a575394558f6ac9edcba1600d6f
6
+ metadata.gz: 39cc52b608b54aea3cf0e6716b718d7523a7648c28cb20ae04875286e25103f3cc0961a7f32ab4a9668fa79769b164aff5fb02b5c68af230003df5582d0bae20
7
+ data.tar.gz: e3279dc77b34a8978eda30de20f9ef9348833b866fe8241b36d8233e64c4f19bc8011047a7deb2388548067cdf0c0f9b0f96ffa8d9b4fde9060a3c0fb7ac5ea4
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (1.0.36)
4
+ bolognese (1.1)
5
5
  activesupport (>= 4.2.5, < 6)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (~> 4.1)
data/README.md CHANGED
@@ -93,6 +93,13 @@ Bolognese reads and/or writes these metadata formats:
93
93
  <td>No</td>
94
94
  <td>Yes</td>
95
95
  </tr>
96
+ <tr>
97
+ <td><a href='https://en.wikipedia.org/wiki/Comma-separated_values'>CSV</a></td>
98
+ <td>csv</td>
99
+ <td>text/csv</td>
100
+ <td>No</td>
101
+ <td>Yes</td>
102
+ </tr>
96
103
  <tr>
97
104
  <td><a href='http://en.wikipedia.org/wiki/BibTeX'>BibTeX</a></td>
98
105
  <td>bibtex</td>
@@ -21,6 +21,7 @@ require_relative 'writers/citeproc_writer'
21
21
  require_relative 'writers/codemeta_writer'
22
22
  require_relative 'writers/crosscite_writer'
23
23
  require_relative 'writers/crossref_writer'
24
+ require_relative 'writers/csv_writer'
24
25
  require_relative 'writers/datacite_writer'
25
26
  require_relative 'writers/datacite_json_writer'
26
27
  require_relative 'writers/jats_writer'
@@ -53,6 +54,7 @@ module Bolognese
53
54
  include Bolognese::Writers::CodemetaWriter
54
55
  include Bolognese::Writers::CrossciteWriter
55
56
  include Bolognese::Writers::CrossrefWriter
57
+ include Bolognese::Writers::CsvWriter
56
58
  include Bolognese::Writers::DataciteWriter
57
59
  include Bolognese::Writers::DataciteJsonWriter
58
60
  include Bolognese::Writers::JatsWriter
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "1.0.36"
2
+ VERSION = "1.1"
3
3
  end
@@ -0,0 +1,31 @@
1
+ module Bolognese
2
+ module Writers
3
+ module CsvWriter
4
+ require "csv"
5
+
6
+ def csv
7
+ return nil unless valid?
8
+
9
+ pages = container.to_h["firstPage"].present? ? [container["firstPage"], container["lastPage"]].join("-") : nil
10
+
11
+ bib = {
12
+ doi: doi,
13
+ url: url,
14
+ year: publication_year,
15
+ bibtex_type: types["bibtex"].presence || "misc",
16
+ title: parse_attributes(titles, content: "title", first: true),
17
+ author: authors_as_string(creators),
18
+ publisher: publisher,
19
+ journal: container && container["title"],
20
+ volume: container.to_h["volume"],
21
+ issue: container.to_h["issue"],
22
+ pages: pages,
23
+ language: language,
24
+ keywords: subjects.present? ? Array.wrap(subjects).map { |k| parse_attributes(k, content: "subject", first: true) }.join(", ") : nil
25
+ }.values
26
+
27
+ CSV.generate { |csv| csv << bib }
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.5067/altcy-tj122
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Thu, 10 Jan 2019 23:36:41 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Connection:
24
+ - keep-alive
25
+ Status:
26
+ - 200 OK
27
+ X-Anonymous-Consumer:
28
+ - 'true'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ Vary:
32
+ - Accept-Encoding, Origin
33
+ Etag:
34
+ - W/"dd42b7032f1f41028a1a3de89e4830f5"
35
+ X-Runtime:
36
+ - '0.022706'
37
+ X-Request-Id:
38
+ - 0a78f1b1-3edf-4ae1-8104-abc6e7ba440a
39
+ X-Powered-By:
40
+ - Phusion Passenger 6.0.1
41
+ Server:
42
+ - nginx/1.15.8 + Phusion Passenger 6.0.1
43
+ body:
44
+ encoding: ASCII-8BIT
45
+ string: '{"data":{"id":"10.5067/altcy-tj122","type":"dois","attributes":{"doi":"10.5067/altcy-tj122","prefix":"10.5067","suffix":"altcy-tj122","identifiers":[{"identifier":"https://doi.org/10.5067/altcy-tj122","identifierType":"DOI"}],"creators":[{"name":"GSFC"}],"titles":[{"title":"Integrated
46
+ Multi-Mission Ocean Altimeter Data for Climate Research Version 2"}],"publisher":"NASA
47
+ Physical Oceanography DAAC","container":{},"publicationYear":2012,"subjects":[],"contributors":[],"dates":[{"date":"2012","dateType":"Issued"}],"language":null,"types":{"ris":"DATA","bibtex":"misc","citeproc":"dataset","schemaOrg":"Dataset","resourceTypeGeneral":"Dataset"},"relatedIdentifiers":[],"sizes":[],"formats":[],"version":null,"rightsList":[],"descriptions":[],"geoLocations":[],"fundingReferences":[],"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCAgICAgaHR0cDovL3NjaGVtYS5kYXRhY2l0ZS5vcmcvbWV0YS9rZXJuZWwtNC9tZXRhZGF0YS54c2QiPgogIDxpZGVudGlmaWVyIGlkZW50aWZpZXJUeXBlPSJET0kiPjEwLjUwNjcvQUxUQ1ktVEoxMjI8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5HU0ZDPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICA8L2NyZWF0b3JzPgogIDx0aXRsZXM+CiAgICA8dGl0bGU+SW50ZWdyYXRlZCBNdWx0aS1NaXNzaW9uIE9jZWFuIEFsdGltZXRlciBEYXRhIGZvciBDbGltYXRlIFJlc2VhcmNoIFZlcnNpb24gMjwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5OQVNBIFBoeXNpY2FsIE9jZWFub2dyYXBoeSBEQUFDPC9wdWJsaXNoZXI+CiAgPHB1YmxpY2F0aW9uWWVhcj4yMDEyPC9wdWJsaWNhdGlvblllYXI+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ii8+CjwvcmVzb3VyY2U+","url":"http://podaac.jpl.nasa.gov/dataset/MERGED_TP_J1_OSTM_OST_CYCLES_V2","contentUrl":null,"metadataVersion":2,"schemaVersion":"http://datacite.org/schema/kernel-4","source":"mds","isActive":true,"state":"findable","reason":null,"created":"2014-01-15T16:06:19.000Z","registered":"2014-01-15T16:06:20.000Z","updated":"2018-09-17T16:09:30.000Z"},"relationships":{"client":{"data":{"id":"esdis.eosdis","type":"clients"}},"media":{"data":[]}}},"included":[{"id":"esdis.eosdis","type":"clients","attributes":{"name":"Earth
48
+ Observing System Data and Information System","symbol":"ESDIS.EOSDIS","year":2018,"contactName":"Lalit
49
+ Wanchoo","contactEmail":"lalit.wanchoo@nasa.gov","description":null,"domains":"*","url":null,"created":"2018-06-20T14:37:48.000Z","updated":"2018-12-26T10:03:16.000Z","isActive":true,"hasPassword":true},"relationships":{"provider":{"data":{"id":"esdis","type":"providers"}},"prefixes":{"data":[{"id":"10.5067","type":"prefixes"},{"id":"10.5072","type":"prefixes"},{"id":"10.7917","type":"prefixes"}]}}}]}'
50
+ http_version:
51
+ recorded_at: Thu, 10 Jan 2019 23:36:42 GMT
52
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,73 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://raw.githubusercontent.com/datacite/maremma/master/codemeta.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma)
12
+ Accept:
13
+ - application/json;charset=UTF-8
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Content-Security-Policy:
20
+ - default-src 'none'; style-src 'unsafe-inline'; sandbox
21
+ Strict-Transport-Security:
22
+ - max-age=31536000
23
+ X-Content-Type-Options:
24
+ - nosniff
25
+ X-Frame-Options:
26
+ - deny
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ Etag:
30
+ - '"196d90076a30d5604c5f5710dcce236a25ce60a7"'
31
+ Content-Type:
32
+ - text/plain; charset=utf-8
33
+ Cache-Control:
34
+ - max-age=300
35
+ X-Geo-Block-List:
36
+ - ''
37
+ X-Github-Request-Id:
38
+ - F3DA:2AC1:10397A:117B69:5C37D81F
39
+ Content-Length:
40
+ - '1260'
41
+ Accept-Ranges:
42
+ - bytes
43
+ Date:
44
+ - Thu, 10 Jan 2019 23:41:19 GMT
45
+ Via:
46
+ - 1.1 varnish
47
+ Connection:
48
+ - keep-alive
49
+ X-Served-By:
50
+ - cache-hhn1520-HHN
51
+ X-Cache:
52
+ - MISS
53
+ X-Cache-Hits:
54
+ - '0'
55
+ X-Timer:
56
+ - S1547163679.225312,VS0,VE143
57
+ Vary:
58
+ - Authorization,Accept-Encoding
59
+ Access-Control-Allow-Origin:
60
+ - "*"
61
+ X-Fastly-Request-Id:
62
+ - 19e813b2d7d7715d4d5b608630e2674616d51240
63
+ Expires:
64
+ - Thu, 10 Jan 2019 23:46:19 GMT
65
+ Source-Age:
66
+ - '0'
67
+ body:
68
+ encoding: ASCII-8BIT
69
+ string: !binary |-
70
+ ewoJIkBjb250ZXh0IjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jb2RlbWV0YS9jb2RlbWV0YS9tYXN0ZXIvY29kZW1ldGEuanNvbmxkIiwKCSJAdHlwZSI6ICJTb2Z0d2FyZVNvdXJjZUNvZGUiLAoJIkBpZCI6ICJodHRwczovL2RvaS5vcmcvMTAuNTQzOC9RRUcwLTNHTTMiLAoJImFnZW50cyI6IHsKCQkiQGlkIjogImh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTAwNzctNDczOCIsCgkJIkB0eXBlIjogInBlcnNvbiIsCgkJIm5hbWUiOiAiTWFydGluIEZlbm5lciIsCgkJImFmZmlsaWF0aW9uIjogIkRhdGFDaXRlIiwKCQkibXVzdEJlQ2l0ZWQiOiB0cnVlLAoJCSJpc01haW50YWluZXIiOiB0cnVlLAoJCSJpc1JpZ2h0c0hvbGRlciI6IHRydWUKCX0sCgkiaWRlbnRpZmllciI6ICJodHRwczovL2RvaS5vcmcvMTAuNTQzOC9RRUcwLTNHTTMiLAoJImNvZGVSZXBvc2l0b3J5IjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhY2l0ZS9tYXJlbW1hIiwKCSJjb250cm9sbGVkVGVtIjogInNvZnR3YXJlIiwKCSJkYXRlQ3JlYXRlZCI6ICIyMDE1LTExLTI4IiwKCSJkYXRlUHVibGlzaGVkIjogIjIwMTctMDItMjQiLAoJImRhdGVNb2RpZmllZCI6ICIyMDE3LTAyLTI0IiwKCSJkZXNjcmlwdGlvbiI6ICJSdWJ5IHV0aWxpdHkgbGlicmFyeSBmb3IgbmV0d29yayByZXF1ZXN0cy4gQmFzZWQgb24gRmFyYWRheSBhbmQgRXhjb24sIHByb3ZpZGVzIGEgd3JhcHBlciBmb3IgWE1ML0pTT04gcGFyc2luZyBhbmQgZXJyb3IgaGFuZGxpbmcuIEFsbCBzdWNjZXNzZnVsIHJlc3BvbnNlcyBhcmUgcmV0dXJuZWQgYXMgaGFzaCB3aXRoIGtleSBkYXRhLCBhbGwgZXJyb3JzIGluIGEgSlNPTkFQSS1mcmllbmRseSBoYXNoIHdpdGgga2V5IGVycm9ycy4iLAoJImlzQXV0b21hdGVkQnVpbGQiOiB0cnVlLAoJImxpY2Vuc2VJZCI6ICJNSVQiLAoJInB1Ymxpc2hlciI6ICJEYXRhQ2l0ZSIsCgkidGFncyI6IFsKCQkiZmFyYWRheSIsCgkJImV4Y29uIiwKCQkibmV0L2h0dHAiCgldLAoJInRpdGxlIjogIk1hcmVtbWE6IGEgUnVieSBsaWJyYXJ5IGZvciBzaW1wbGlmaWVkIG5ldHdvcmsgY2FsbHMiLAoJInByb2dyYW1taW5nTGFuZ3VhZ2UiOiB7CgkJIm5hbWUiOiAiUnVieSIsCgkJInZlcnNpb24iOiAi4omlIDIuMy4zIiwKCQkiVVJMIjogImh0dHBzOi8vd3d3LnJ1YnktbGFuZy5vcmciCgl9LAoJInJlYWRtZSI6ICJodHRwczovL2dpdGh1Yi5jb20vZGF0YWNpdGUvbWFyZW1tYS9ibG9iL21hc3Rlci9SRUFETUUubWQiCn0K
71
+ http_version:
72
+ recorded_at: Thu, 10 Jan 2019 23:41:19 GMT
73
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,84 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.17173/pretest8
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Thu, 10 Jan 2019 23:31:36 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Connection:
24
+ - keep-alive
25
+ Status:
26
+ - 200 OK
27
+ X-Anonymous-Consumer:
28
+ - 'true'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ Vary:
32
+ - Accept-Encoding, Origin
33
+ X-Request-Id:
34
+ - 2e7b213d-4a67-4715-8463-6b351ef5f60f
35
+ Etag:
36
+ - W/"4cd05352f280afe3fbb17599e9b4bdd6"
37
+ X-Runtime:
38
+ - '0.023442'
39
+ X-Powered-By:
40
+ - Phusion Passenger 6.0.1
41
+ Server:
42
+ - nginx/1.15.8 + Phusion Passenger 6.0.1
43
+ body:
44
+ encoding: ASCII-8BIT
45
+ string: !binary |-
46
+ eyJkYXRhIjp7ImlkIjoiMTAuMTcxNzMvcHJldGVzdDgiLCJ0eXBlIjoiZG9pcyIsImF0dHJpYnV0ZXMiOnsiZG9pIjoiMTAuMTcxNzMvcHJldGVzdDgiLCJwcmVmaXgiOiIxMC4xNzE3MyIsInN1ZmZpeCI6InByZXRlc3Q4IiwiaWRlbnRpZmllcnMiOlt7ImlkZW50aWZpZXIiOiJodHRwczovL2RvaS5vcmcvMTAuMTcxNzMvcHJldGVzdDgiLCJpZGVudGlmaWVyVHlwZSI6IkRPSSJ9XSwiY3JlYXRvcnMiOlt7Im5hbWUiOiJMZW56bmVyLCBULiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJULiIsImZhbWlseU5hbWUiOiJMZW56bmVyIn0seyJuYW1lIjoiTmV1ZXJ0LCBDLiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJDLiIsImZhbWlseU5hbWUiOiJOZXVlcnQifSx7Im5hbWUiOiJPdHRvLCBXLiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJXLiIsImZhbWlseU5hbWUiOiJPdHRvIn0seyJuYW1lIjoiTGFuZHJvY2ssIFUuIiwibmFtZVR5cGUiOiJQZXJzb25hbCIsImdpdmVuTmFtZSI6IlUuIiwiZmFtaWx5TmFtZSI6IkxhbmRyb2NrIn0seyJuYW1lIjoiTWVub2xkLCBOLiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJOLiIsImZhbWlseU5hbWUiOiJNZW5vbGQifV0sInRpdGxlcyI6W3sibGFuZyI6ImRlIiwidGl0bGUiOiJQSUFBQy1Mb25naXR1ZGluYWwgKFBJQUFDLUwpIDIwMTUifSx7ImxhbmciOiJkZSIsInRpdGxlIjoiS29nbml0aXZlciBQcmV0ZXN0IiwidGl0bGVUeXBlIjoiU3VidGl0bGUifV0sInB1Ymxpc2hlciI6IkdFU0lTIOKAkyBQcmV0ZXN0IExhYiIsImNvbnRhaW5lciI6eyJ0eXBlIjoiU2VyaWVzIiwidGl0bGUiOiJHRVNJUyBQcm9qZWt0YmVyaWNodCJ9LCJwdWJsaWNhdGlvblllYXIiOjIwMTQsInN1YmplY3RzIjpbXSwiY29udHJpYnV0b3JzIjpbeyJuYW1lIjoiR0VTSVMtTGVpYm5peiBJbnN0aXR1dCBGw7xyIFNvemlhbHdpc3NlbnNjaGFmdGVuIiwibmFtZVR5cGUiOiJPcmdhbml6YXRpb25hbCJ9XSwiZGF0ZXMiOlt7ImRhdGVUeXBlIjoiQXZhaWxhYmxlIn0seyJkYXRlIjoiMjAxNC0xMC0yNyIsImRhdGVUeXBlIjoiQ29sbGVjdGVkIn0seyJkYXRlIjoiMjAxNC0xMC0yNy8yMDE0LTExLTA3IiwiZGF0ZVR5cGUiOiJDb2xsZWN0ZWQifSx7ImRhdGUiOiIyMDE0IiwiZGF0ZVR5cGUiOiJJc3N1ZWQifV0sImxhbmd1YWdlIjoiZ2VyIiwidHlwZXMiOnsicmlzIjoiUlBSVCIsImJpYnRleCI6ImFydGljbGUiLCJjaXRlcHJvYyI6ImFydGljbGUtam91cm5hbCIsInNjaGVtYU9yZyI6IlNjaG9sYXJseUFydGljbGUiLCJyZXNvdXJjZVR5cGUiOiJQcmV0ZXN0YmVyaWNodCIsInJlc291cmNlVHlwZUdlbmVyYWwiOiJUZXh0In0sInJlbGF0ZWRJZGVudGlmaWVycyI6W10sInNpemVzIjpbXSwiZm9ybWF0cyI6W10sInZlcnNpb24iOm51bGwsInJpZ2h0c0xpc3QiOltdLCJkZXNjcmlwdGlvbnMiOlt7ImxhbmciOiJkZSIsImRlc2NyaXB0aW9uIjoiSW4gZGVtIEZvcnNjaHVuZ3Nwcm9qZWt0IOKAnlBJQUFDLUxvbmdpdHVkaW5hbCAoUElBQUMtTCnigJwgZsO8aHJlbiBHRVNJUywgTElmQmkgdW5kIERJVyBnZW1laW5zYW0gZWluZSBkZXIgd2VsdHdlaXQgZXJzdGVuIGludGVybmF0aW9uYWwgdmVyZ2xlaWNoYmFyZW4gTGFuZ3plaXRzdHVkaWVuIHp1IEtvbXBldGVuemVuIGltIEVyd2FjaHNlbmVuYWx0ZXIgdW5kIGRlcmVuIEJlZGV1dHVuZyBpbSBMZWJlbnNsYXVmIGR1cmNoLiBEYWJlaSBnZWh0IGRpZSBkZXV0c2NobGFuZHdlaXRlIExhbmd6ZWl0c3R1ZGllIFBJQUFDLUwgdS5hLiBGcmFnZW4gbmFjaCwgd2llIOKAnldpZSB3aXJrZW4gc2ljaCBpbmRpdmlkdWVsbGUgS29tcGV0ZW56ZW4gYXVmIGRlbiBFcndlcmJzdmVybGF1ZiBkZXIgTWVuc2NoZW4gaW4gRGV1dHNjaGxhbmQgYXVzP+KAnCwg4oCeSW4gd2VsY2hlbSBadXNhbW1lbmhhbmcgc3RlaGVuIHBlcnPDtm5saWNoZSBGw6RoaWdrZWl0ZW4genVyIGJlcnVmbGljaGVuIE1vYmlsaXTDpHQ/4oCcLCDigJ5XaWUgc2luZCBLb21wZXRlbnplbiBpbiBlaW56ZWxuZW4gRmFtaWxpZW4vendpc2NoZW4gUGFydG5lcm4gdmVydGVpbHQ/4oCcIHVuZCDigJ5XYXMgYmVkZXV0ZXQgZGFzIGbDvHIgZGllIEF1ZnN0aWVnc2NoYW5jZW4gaW4gdW5zZXJlciBHZXNlbGxzY2hhZnQ/4oCcLlxuPGJyPiBJbSBSYWhtZW4gdm9uIFBJQUFDLUwgd2lyZCBkaWUgZGV1dHNjaGUgUElBQUMtU3RpY2hwcm9iZSBpbiBkcmVpIHdlaXRlcmVuIEVyaGVidW5nZW4gYmVmcmFndCB1bmQgZ2V0ZXN0ZXQgd2VyZGVuLiBadXIgVm9yYmVyZWl0dW5nIGRlciBCZWZyYWd1bmcgc29sbHRlbiBhdXNnZXfDpGhsdGUgVGVpbGUgZGVzIEVyaGVidW5nc2luc3RydW1lbnRzIHVudGVyIG1ldGhvZGlzY2hlbiB1bmQgZnJhZ2Vib2dlbnRlY2huaXNjaGVuIEFzcGVrdGVuIGVpbmVtIGtvZ25pdGl2ZW4gKExhYm9yLSlQcmV0ZXN0IHVudGVyem9nZW4sIGF1ZmdydW5kIGRlciBUZXN0ZXJnZWJuaXNzZSDDvGJlcmFyYmVpdGV0IHVuZCDigJMgd28gbcO2Z2xpY2gg4oCTIHZlcmJlc3NlcnQgd2VyZGVuLiIsImRlc2NyaXB0aW9uVHlwZSI6IkFic3RyYWN0In0seyJsYW5nIjoiZGUiLCJkZXNjcmlwdGlvbiI6IkdFU0lTIFByb2pla3RiZXJpY2h0IiwiZGVzY3JpcHRpb25UeXBlIjoiU2VyaWVzSW5mb3JtYXRpb24ifSx7ImxhbmciOiJkZSIsImRlc2NyaXB0aW9uIjoiQ0FQSSIsImRlc2NyaXB0aW9uVHlwZSI6Ik1ldGhvZHMifSx7ImxhbmciOiJkZSIsImRlc2NyaXB0aW9uIjoiUXVvdGVuYXVzd2FobC4gRGllIEF1c3dhaGwgZGVyIFRlc3RwZXJzb25lbiBlcmZvbGd0ZSBuYWNoIGRlbiBRdW90ZW4gQWx0ZXIgKDE4IC0gNDAgSmFocmU7IDQxIEphaHJlIHVuZCDDpGx0ZXIpLCBTY2h1bGJpbGR1bmcgKEZhY2hob2Noc2NodWxyZWlmZS8gQWJpdHVyOyBrZWluIEFiaXR1cikgdW5kIEdlc2NobGVjaHQ6XG5cbjIgRnJhdWVuIHVuZCAzIE3DpG5uZXIsIDE4LTQwIEphaHJlLCB3ZW5pZ2VyIGFscyBBYml0dXJcbjMgRnJhdWVuIHVuZCAyIE3DpG5uZXIsIDE4LTQwIEphaHJlLCBGYWNoaG9jaHNjaHVscmVpZmUvIEFiaXR1clxuMyBGcmF1ZW4gdW5kIDIgTcOkbm5lciwgNDErIEphaHJlLCB3ZW5pZ2VyIGFscyBBYml0dXJcbjIgRnJhdWVuIHVuZCAzIE3DpG5uZXIsIDQxKyBKYWhyZSwgRmFjaGhvY2hzY2h1bHJlaWZlLyBBYml0dXIiLCJkZXNjcmlwdGlvblR5cGUiOiJNZXRob2RzIn1dLCJnZW9Mb2NhdGlvbnMiOltdLCJmdW5kaW5nUmVmZXJlbmNlcyI6W10sInhtbCI6IlBEOTRiV3dnZG1WeWMybHZiajBuTVM0d0p5QmxibU52WkdsdVp6MG5WVlJHTFRnblB6NEtQSEpsYzI5MWNtTmxJSGh0Ykc1elBTZG9kSFJ3T2k4dlpHRjBZV05wZEdVdWIzSm5MM05qYUdWdFlTOXJaWEp1Wld3dE5DY2dlRzFzYm5NNmVITnBQU2RvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBeEwxaE5URk5qYUdWdFlTMXBibk4wWVc1alpTY2dlSE5wT25OamFHVnRZVXh2WTJGMGFXOXVQU2RvZEhSd09pOHZaR0YwWVdOcGRHVXViM0puTDNOamFHVnRZUzlyWlhKdVpXd3ROQ0JvZEhSd09pOHZjMk5vWlcxaExtUmhkR0ZqYVhSbExtOXlaeTl0WlhSaEwydGxjbTVsYkMwMExqRXZiV1YwWVdSaGRHRXVlSE5rSno0S0lDQThhV1JsYm5ScFptbGxjaUJwWkdWdWRHbG1hV1Z5Vkhsd1pUMG5SRTlKSno0eE1DNHhOekUzTXk5d2NtVjBaWE4wT0R3dmFXUmxiblJwWm1sbGNqNEtJQ0E4WTNKbFlYUnZjbk0rQ2lBZ0lDQThZM0psWVhSdmNqNEtJQ0FnSUNBZ1BHTnlaV0YwYjNKT1lXMWxJRzVoYldWVWVYQmxQU2RRWlhKemIyNWhiQ2MrVEdWdWVtNWxjaXdnVkM0OEwyTnlaV0YwYjNKT1lXMWxQZ29nSUNBZ1BDOWpjbVZoZEc5eVBnb2dJQ0FnUEdOeVpXRjBiM0krQ2lBZ0lDQWdJRHhqY21WaGRHOXlUbUZ0WlNCdVlXMWxWSGx3WlQwblVHVnljMjl1WVd3blBrNWxkV1Z5ZEN3Z1F5NDhMMk55WldGMGIzSk9ZVzFsUGdvZ0lDQWdQQzlqY21WaGRHOXlQZ29nSUNBZ1BHTnlaV0YwYjNJK0NpQWdJQ0FnSUR4amNtVmhkRzl5VG1GdFpTQnVZVzFsVkhsd1pUMG5VR1Z5YzI5dVlXd25QazkwZEc4c0lGY3VQQzlqY21WaGRHOXlUbUZ0WlQ0S0lDQWdJRHd2WTNKbFlYUnZjajRLSUNBZ0lEeGpjbVZoZEc5eVBnb2dJQ0FnSUNBOFkzSmxZWFJ2Y2s1aGJXVWdibUZ0WlZSNWNHVTlKMUJsY25OdmJtRnNKejVNWVc1a2NtOWpheXdnVlM0OEwyTnlaV0YwYjNKT1lXMWxQZ29nSUNBZ1BDOWpjbVZoZEc5eVBnb2dJQ0FnUEdOeVpXRjBiM0krQ2lBZ0lDQWdJRHhqY21WaGRHOXlUbUZ0WlNCdVlXMWxWSGx3WlQwblVHVnljMjl1WVd3blBrMWxibTlzWkN3Z1RpNDhMMk55WldGMGIzSk9ZVzFsUGdvZ0lDQWdQQzlqY21WaGRHOXlQZ29nSUR3dlkzSmxZWFJ2Y25NK0NpQWdQSFJwZEd4bGN6NEtJQ0FnSUR4MGFYUnNaU0I0Yld3NmJHRnVaejBuWkdVblBsQkpRVUZETFV4dmJtZHBkSFZrYVc1aGJDQW9VRWxCUVVNdFRDa2dNakF4TlR3dmRHbDBiR1UrQ2lBZ0lDQThkR2wwYkdVZ2VHMXNPbXhoYm1jOUoyUmxKeUIwYVhSc1pWUjVjR1U5SjFOMVluUnBkR3hsSno1TGIyZHVhWFJwZG1WeUlGQnlaWFJsYzNROEwzUnBkR3hsUGdvZ0lEd3ZkR2wwYkdWelBnb2dJRHh3ZFdKc2FYTm9aWEkrUjBWVFNWTWc0b0NUSUZCeVpYUmxjM1FnVEdGaVBDOXdkV0pzYVhOb1pYSStDaUFnUEhCMVlteHBZMkYwYVc5dVdXVmhjajR5TURFMFBDOXdkV0pzYVdOaGRHbHZibGxsWVhJK0NpQWdQSEpsYzI5MWNtTmxWSGx3WlNCeVpYTnZkWEpqWlZSNWNHVkhaVzVsY21Gc1BTZFVaWGgwSno1UWNtVjBaWE4wWW1WeWFXTm9kRHd2Y21WemIzVnlZMlZVZVhCbFBnb2dJRHhqYjI1MGNtbGlkWFJ2Y25NK0NpQWdJQ0E4WTI5dWRISnBZblYwYjNJZ1kyOXVkSEpwWW5WMGIzSlVlWEJsUFNkRlpHbDBiM0luUGdvZ0lDQWdJQ0E4WTI5dWRISnBZblYwYjNKT1lXMWxJRzVoYldWVWVYQmxQU2RQY21kaGJtbDZZWFJwYjI1aGJDYytSMFZUU1ZNZ0xTQk1aV2xpYm1sNklFbHVjM1JwZEhWMElHYkR2SElnVTI5NmFXRnNkMmx6YzJWdWMyTm9ZV1owWlc0OEwyTnZiblJ5YVdKMWRHOXlUbUZ0WlQ0S0lDQWdJRHd2WTI5dWRISnBZblYwYjNJK0NpQWdQQzlqYjI1MGNtbGlkWFJ2Y25NK0NpQWdQR1JoZEdWelBnb2dJQ0FnUEdSaGRHVWdaR0YwWlZSNWNHVTlKMEYyWVdsc1lXSnNaU2NnTHo0S0lDQWdJRHhrWVhSbElHUmhkR1ZVZVhCbFBTZERiMnhzWldOMFpXUW5Qakl3TVRRdE1UQXRNamM4TDJSaGRHVStDaUFnSUNBOFpHRjBaU0JrWVhSbFZIbHdaVDBuUTI5c2JHVmpkR1ZrSno0eU1ERTBMVEV3TFRJM0x6SXdNVFF0TVRFdE1EYzhMMlJoZEdVK0NpQWdQQzlrWVhSbGN6NEtJQ0E4YkdGdVozVmhaMlUrWjJWeVBDOXNZVzVuZFdGblpUNEtJQ0E4ZG1WeWMybHZiajR4TGpBOEwzWmxjbk5wYjI0K0NpQWdQR1JsYzJOeWFYQjBhVzl1Y3o0S0lDQWdJRHhrWlhOamNtbHdkR2x2YmlCNGJXdzZiR0Z1WnowblpHVW5JR1JsYzJOeWFYQjBhVzl1Vkhsd1pUMG5RV0p6ZEhKaFkzUW5Qa2x1SUdSbGJTQkdiM0p6WTJoMWJtZHpjSEp2YW1WcmRDRGlnSjVRU1VGQlF5MU1iMjVuYVhSMVpHbHVZV3dnS0ZCSlFVRkRMVXdwNG9DY0lHYkR2R2h5Wlc0Z1IwVlRTVk1zSUV4SlprSnBJSFZ1WkNCRVNWY2daMlZ0WldsdWMyRnRJR1ZwYm1VZ1pHVnlJSGRsYkhSM1pXbDBJR1Z5YzNSbGJpQnBiblJsY201aGRHbHZibUZzSUhabGNtZHNaV2xqYUdKaGNtVnVJRXhoYm1kNlpXbDBjM1IxWkdsbGJpQjZkU0JMYjIxd1pYUmxibnBsYmlCcGJTQkZjbmRoWTJoelpXNWxibUZzZEdWeUlIVnVaQ0JrWlhKbGJpQkNaV1JsZFhSMWJtY2dhVzBnVEdWaVpXNXpiR0YxWmlCa2RYSmphQzRnUkdGaVpXa2daMlZvZENCa2FXVWdaR1YxZEhOamFHeGhibVIzWldsMFpTQk1ZVzVuZW1WcGRITjBkV1JwWlNCUVNVRkJReTFNSUhVdVlTNGdSbkpoWjJWdUlHNWhZMmdzSUhkcFpTRGlnSjVYYVdVZ2QybHlhMlZ1SUhOcFkyZ2dhVzVrYVhacFpIVmxiR3hsSUV0dmJYQmxkR1Z1ZW1WdUlHRjFaaUJrWlc0Z1JYSjNaWEppYzNabGNteGhkV1lnWkdWeUlFMWxibk5qYUdWdUlHbHVJRVJsZFhSelkyaHNZVzVrSUdGMWN6L2lnSndzSU9LQW5rbHVJSGRsYkdOb1pXMGdXblZ6WVcxdFpXNW9ZVzVuSUhOMFpXaGxiaUJ3WlhKenc3WnViR2xqYUdVZ1JzT2thR2xuYTJWcGRHVnVJSHAxY2lCaVpYSjFabXhwWTJobGJpQk5iMkpwYkdsMHc2UjBQK0tBbkN3ZzRvQ2VWMmxsSUhOcGJtUWdTMjl0Y0dWMFpXNTZaVzRnYVc0Z1pXbHVlbVZzYm1WdUlFWmhiV2xzYVdWdUwzcDNhWE5qYUdWdUlGQmhjblJ1WlhKdUlIWmxjblJsYVd4MFArS0FuQ0IxYm1RZzRvQ2VWMkZ6SUdKbFpHVjFkR1YwSUdSaGN5Qm13N3h5SUdScFpTQkJkV1p6ZEdsbFozTmphR0Z1WTJWdUlHbHVJSFZ1YzJWeVpYSWdSMlZ6Wld4c2MyTm9ZV1owUCtLQW5DNEtKbXgwTzJKeUx5Wm5kRHNnU1cwZ1VtRm9iV1Z1SUhadmJpQlFTVUZCUXkxTUlIZHBjbVFnWkdsbElHUmxkWFJ6WTJobElGQkpRVUZETFZOMGFXTm9jSEp2WW1VZ2FXNGdaSEpsYVNCM1pXbDBaWEpsYmlCRmNtaGxZblZ1WjJWdUlHSmxabkpoWjNRZ2RXNWtJR2RsZEdWemRHVjBJSGRsY21SbGJpNGdXblZ5SUZadmNtSmxjbVZwZEhWdVp5QmtaWElnUW1WbWNtRm5kVzVuSUhOdmJHeDBaVzRnWVhWeloyVjN3NlJvYkhSbElGUmxhV3hsSUdSbGN5QkZjbWhsWW5WdVozTnBibk4wY25WdFpXNTBjeUIxYm5SbGNpQnRaWFJvYjJScGMyTm9aVzRnZFc1a0lHWnlZV2RsWW05blpXNTBaV05vYm1selkyaGxiaUJCYzNCbGEzUmxiaUJsYVc1bGJTQnJiMmR1YVhScGRtVnVJQ2hNWVdKdmNpMHBVSEpsZEdWemRDQjFiblJsY25wdloyVnVMQ0JoZFdabmNuVnVaQ0JrWlhJZ1ZHVnpkR1Z5WjJWaWJtbHpjMlVndzd4aVpYSmhjbUpsYVhSbGRDQjFibVFnNG9DVElIZHZJRzNEdG1kc2FXTm9JT0tBa3lCMlpYSmlaWE56WlhKMElIZGxjbVJsYmk0OEwyUmxjMk55YVhCMGFXOXVQZ29nSUNBZ1BHUmxjMk55YVhCMGFXOXVJSGh0YkRwc1lXNW5QU2RrWlNjZ1pHVnpZM0pwY0hScGIyNVVlWEJsUFNkVFpYSnBaWE5KYm1admNtMWhkR2x2YmljK1IwVlRTVk1nVUhKdmFtVnJkR0psY21samFIUThMMlJsYzJOeWFYQjBhVzl1UGdvZ0lDQWdQR1JsYzJOeWFYQjBhVzl1SUhodGJEcHNZVzVuUFNka1pTY2daR1Z6WTNKcGNIUnBiMjVVZVhCbFBTZE5aWFJvYjJSekp6NG1iSFE3Y0NabmREdERRVkJKSm14ME95OXdKbWQwT3p3dlpHVnpZM0pwY0hScGIyNCtDaUFnSUNBOFpHVnpZM0pwY0hScGIyNGdlRzFzT214aGJtYzlKMlJsSnlCa1pYTmpjbWx3ZEdsdmJsUjVjR1U5SjAxbGRHaHZaSE1uUGlac2REdHdKbWQwTzFGMWIzUmxibUYxYzNkaGFHd3VJRVJwWlNCQmRYTjNZV2hzSUdSbGNpQlVaWE4wY0dWeWMyOXVaVzRnWlhKbWIyeG5kR1VnYm1GamFDQmtaVzRnVVhWdmRHVnVJRUZzZEdWeUlDZ3hPQ0F0SURRd0lFcGhhSEpsT3lBME1TQktZV2h5WlNCMWJtUWd3NlJzZEdWeUtTd2dVMk5vZFd4aWFXeGtkVzVuSUNoR1lXTm9hRzlqYUhOamFIVnNjbVZwWm1VdklFRmlhWFIxY2pzZ2EyVnBiaUJCWW1sMGRYSXBJSFZ1WkNCSFpYTmphR3hsWTJoME9pWnNkRHN2Y0NabmREc05DaVpzZER0MWJDWm5kRHNOQ2lac2REdHNhU1puZERzeUlFWnlZWFZsYmlCMWJtUWdNeUJOdzZSdWJtVnlMQ0F4T0MwME1DQktZV2h5WlN3Z2QyVnVhV2RsY2lCaGJITWdRV0pwZEhWeUpteDBPeTlzYVNabmREc05DaVpzZER0c2FTWm5kRHN6SUVaeVlYVmxiaUIxYm1RZ01pQk53NlJ1Ym1WeUxDQXhPQzAwTUNCS1lXaHlaU3dnUm1GamFHaHZZMmh6WTJoMWJISmxhV1psTHlCQlltbDBkWEltYkhRN0wyeHBKbWQwT3cwS0pteDBPMnhwSm1kME96TWdSbkpoZFdWdUlIVnVaQ0F5SUUzRHBHNXVaWElzSURReEt5QktZV2h5WlN3Z2QyVnVhV2RsY2lCaGJITWdRV0pwZEhWeUpteDBPeTlzYVNabmREc05DaVpzZER0c2FTWm5kRHN5SUVaeVlYVmxiaUIxYm1RZ015Qk53NlJ1Ym1WeUxDQTBNU3NnU21Gb2NtVXNJRVpoWTJob2IyTm9jMk5vZFd4eVpXbG1aUzhnUVdKcGRIVnlKbXgwT3k5c2FTWm5kRHNOQ2lac2REc3ZkV3dtWjNRN1BDOWtaWE5qY21sd2RHbHZiajRLSUNBOEwyUmxjMk55YVhCMGFXOXVjejRLUEM5eVpYTnZkWEpqWlQ0PSIsInVybCI6Imh0dHA6Ly9wcmV0ZXN0Lmdlc2lzLm9yZy9QcmV0ZXN0L0RvaUlkLzEwLjE3MTczL3ByZXRlc3Q4IiwiY29udGVudFVybCI6bnVsbCwibWV0YWRhdGFWZXJzaW9uIjozLCJzY2hlbWFWZXJzaW9uIjoiaHR0cDovL2RhdGFjaXRlLm9yZy9zY2hlbWEva2VybmVsLTQiLCJzb3VyY2UiOm51bGwsImlzQWN0aXZlIjp0cnVlLCJzdGF0ZSI6ImZpbmRhYmxlIiwicmVhc29uIjpudWxsLCJjcmVhdGVkIjoiMjAxNi0wNi0wMVQwODoxNjoxNC4wMDBaIiwicmVnaXN0ZXJlZCI6IjIwMTYtMDYtMDFUMDg6MTY6MTQuMDAwWiIsInVwZGF0ZWQiOiIyMDE4LTAxLTI2VDIzOjEzOjU1LjAwMFoifSwicmVsYXRpb25zaGlwcyI6eyJjbGllbnQiOnsiZGF0YSI6eyJpZCI6Imdlc2lzLmdlc2lzIiwidHlwZSI6ImNsaWVudHMifX0sIm1lZGlhIjp7ImRhdGEiOltdfX19LCJpbmNsdWRlZCI6W3siaWQiOiJnZXNpcy5nZXNpcyIsInR5cGUiOiJjbGllbnRzIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiR0VTSVMgTGVpYm5peiBJbnN0aXR1dGUgZm9yIHRoZSBTb2NpYWwgU2NpZW5jZXMiLCJzeW1ib2wiOiJHRVNJUy5HRVNJUyIsInllYXIiOjIwMTEsImNvbnRhY3ROYW1lIjoiZGFyYSIsImNvbnRhY3RFbWFpbCI6ImRhcmFAZ2VzaXMub3JnIiwiZGVzY3JpcHRpb24iOm51bGwsImRvbWFpbnMiOiJnZXNpcy5vcmcsc2Vhcy5hdCxjb21wYXJhdGl2ZXBvcHVsYXRpb25zdHVkaWVzLmRlLGRhLXJhLmRlLGF1ZmZpbmRlbi16aXRpZXJlbi1kb2t1bWVudGllcmVuLmRlLGNzZXMub3JnLHNzb2FyLmluZm8seC1lY29uLm9yZyxzb3dpZGF0YW5ldC5nZXNpcy5vcmcsYXNlYXMudW5pdmllLmFjLmF0IiwidXJsIjpudWxsLCJjcmVhdGVkIjoiMjAxMS0wNy0yMVQxMzowODo0MS4wMDBaIiwidXBkYXRlZCI6IjIwMTgtMDgtMjZUMDI6MzU6MDcuMDAwWiIsImlzQWN0aXZlIjp0cnVlLCJoYXNQYXNzd29yZCI6dHJ1ZX0sInJlbGF0aW9uc2hpcHMiOnsicHJvdmlkZXIiOnsiZGF0YSI6eyJpZCI6Imdlc2lzIiwidHlwZSI6InByb3ZpZGVycyJ9fSwicHJlZml4ZXMiOnsiZGF0YSI6W3siaWQiOiIxMC40MjMyIiwidHlwZSI6InByZWZpeGVzIn0seyJpZCI6IjEwLjUwNzIiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuNjEwMiIsInR5cGUiOiJwcmVmaXhlcyJ9LHsiaWQiOiIxMC43ODAyIiwidHlwZSI6InByZWZpeGVzIn0seyJpZCI6IjEwLjc4MDQiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMTI3NTgiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMTI3NTkiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMTMxNTAiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMTU0NjUiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMTU0NjQiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMTcxNzMiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMjM2NjMiLCJ0eXBlIjoicHJlZml4ZXMifV19fX1dfQ==
47
+ http_version:
48
+ recorded_at: Thu, 10 Jan 2019 23:31:36 GMT
49
+ - request:
50
+ method: get
51
+ uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.17173/pretest8&noredirect=true&pid=tech@datacite.org
52
+ body:
53
+ encoding: US-ASCII
54
+ string: ''
55
+ headers:
56
+ User-Agent:
57
+ - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma)
58
+ Accept:
59
+ - text/xml
60
+ response:
61
+ status:
62
+ code: 200
63
+ message: OK
64
+ headers:
65
+ Server:
66
+ - Apache-Coyote/1.1
67
+ Crossref-Deployment-Name:
68
+ - qs2-2
69
+ Content-Type:
70
+ - text/xml;charset=UTF-8
71
+ Content-Language:
72
+ - en-US
73
+ Date:
74
+ - Thu, 10 Jan 2019 23:31:36 GMT
75
+ Connection:
76
+ - close
77
+ body:
78
+ encoding: ASCII-8BIT
79
+ string: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doi_records>\r\n <doi_record>\r\n
80
+ \ <crossref>\r\n <error>doi:10.17173/pretest8</error>\r\n </crossref>\r\n
81
+ \ </doi_record>\r\n</doi_records>"
82
+ http_version:
83
+ recorded_at: Thu, 10 Jan 2019 23:31:37 GMT
84
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,37 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.7554/elife.01567&noredirect=true&pid=tech@datacite.org
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma)
12
+ Accept:
13
+ - text/xml
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - qs2-2
23
+ Content-Type:
24
+ - text/xml;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Date:
28
+ - Thu, 10 Jan 2019 23:03:06 GMT
29
+ Connection:
30
+ - close
31
+ body:
32
+ encoding: ASCII-8BIT
33
+ string: !binary |-
34
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuNzU1NCIgdGltZXN0YW1wPSIyMDE4LTA4LTIzIDA5OjQxOjQ5Ij4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgPGFic3RyYWN0Pg0KICAgICAgICAgICAgPHA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvcD4NCiAgICAgICAgICA8L2Fic3RyYWN0Pg0KICAgICAgICAgIDxhYnN0cmFjdCBhYnN0cmFjdC10eXBlPSJleGVjdXRpdmUtc3VtbWFyeSI+DQogICAgICAgICAgICA8cD5PdXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgbGl2aW5nIHdvcmxkIGhhcyBiZWVuIGFkdmFuY2VkIGdyZWF0bHkgYnkgc3R1ZGllcyBvZiDigJhtb2RlbCBvcmdhbmlzbXPigJksIHN1Y2ggYXMgbWljZSwgemVicmFmaXNoLCBhbmQgZnJ1aXQgZmxpZXMuIFN0dWR5aW5nIHRoZXNlIGNyZWF0dXJlcyBoYXMgYmVlbiBjcnVjaWFsIHRvIHVuY292ZXJpbmcgdGhlIGdlbmVzIHRoYXQgY29udHJvbCBob3cgb3VyIGJvZGllcyBkZXZlbG9wIGFuZCBncm93LCBhbmQgYWxzbyB0byBkaXNjb3ZlciB0aGUgZ2VuZXRpYyBiYXNpcyBvZiBkaXNlYXNlcyBzdWNoIGFzIGNhbmNlci48L3A+DQogICAgICAgICAgICA8cD5UaGFsZSBjcmVzc+KAlG9yIEFyYWJpZG9wc2lzIHRoYWxpYW5hIHRvIGdpdmUgaXRzIGZvcm1hbCBuYW1l4oCUaXMgdGhlIG1vZGVsIG9yZ2FuaXNtIG9mIGNob2ljZSBmb3IgbWFueSBwbGFudCBiaW9sb2dpc3RzLiBUaGlzIHRpbnkgd2VlZCBoYXMgYmVlbiB3aWRlbHkgc3R1ZGllZCBiZWNhdXNlIGl0IGNhbiBjb21wbGV0ZSBpdHMgbGlmZWN5Y2xlLCBmcm9tIHNlZWQgdG8gc2VlZCwgaW4gYWJvdXQgNiB3ZWVrcywgYW5kIGJlY2F1c2UgaXRzIHJlbGF0aXZlbHkgc21hbGwgZ2Vub21lIHNpbXBsaWZpZXMgdGhlIHNlYXJjaCBmb3IgZ2VuZXMgdGhhdCBjb250cm9sIHNwZWNpZmljIHRyYWl0cy4gSG93ZXZlciwgYXMgd2l0aCBvdGhlciBtdWNoLXN0dWRpZWQgbW9kZWwgc3lzdGVtcywgdW5kZXJzdGFuZGluZyB0aGUgY2hhbmdlcyB0aGF0IHVuZGVycGluIHRoZSBkZXZlbG9wbWVudCBvZiBzb21lIG9mIHRoZSBtb3JlIGNvbXBsZXggdGlzc3VlcyBpbiBBcmFiaWRvcHNpcyBoYXMgYmVlbiBzZXZlcmVseSBoYW1wZXJlZCBieSB0aGUgc2hlYXIgbnVtYmVyIG9mIGNlbGxzIGludm9sdmVkLjwvcD4NCiAgICAgICAgICAgIDxwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvcD4NCiAgICAgICAgICAgIDxwPk5vdyBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gaGF2ZSBkZXZlbG9wZWQgYSBub3ZlbCBhcHByb2FjaCwgdGVybWVkIOKAmGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d54oCZLCB0byBvdmVyY29tZSB0aGVzZSBwcm9ibGVtcy4gVGhpcyBzdHJhdGVneSBpbnZvbHZlcyDigJh0ZWFjaGluZ+KAmSBhIGNvbXB1dGVyIHRvIGF1dG9tYXRpY2FsbHkgcmVjb2duaXplIGRpZmZlcmVudCBwbGFudCBjZWxscyBhbmQgdG8gbWVhc3VyZSB0aGVpciBpbXBvcnRhbnQgZmVhdHVyZXMgaW4gaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBvZiB0aXNzdWUgc2VjdGlvbnMuIFRoZSByZXN1bHRpbmcg4oCYbWFw4oCZIG9mIHRoZSBkZXZlbG9waW5nIHN0ZW3igJR3aGljaCByZXF1aXJlZCBvdmVyIDgwMCBociBvZiBjb21wdXRpbmcgdGltZSB0byBjb21wbGV0ZeKAlHJldmVhbHMgdGhlIGNoYW5nZXMgdG8gY2VsbHMgYW5kIHRpc3N1ZXMgYXMgdGhleSBkZXZlbG9wIHRoYXQgYWxsb3cgdGhlIHRyYW5zcG9ydCBvZiB3YXRlciwgc3VnYXJzIGFuZCBudXRyaWVudHMgYmV0d2VlbiB0aGUgYWJvdmUtIGFuZCBiZWxvdy1ncm91bmQgb3JnYW5zLiBTYW5rYXIsIE5pZW1pbmVuLCBSYWduaSBldCBhbC4gc3VnZ2VzdCB0aGF0IHRoZWlyIG5vdmVsIGFwcHJvYWNoIGNvdWxkLCBpbiB0aGUgZnV0dXJlLCBhbHNvIGJlIGFwcGxpZWQgdG8gc3R1ZHkgdGhlIGRldmVsb3BtZW50IG9mIG90aGVyIHRpc3N1ZXMgYW5kIG9yZ2FuaXNtcywgaW5jbHVkaW5nIGFuaW1hbHMuPC9wPg0KICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICA8aXRlbV9udW1iZXIgaXRlbV9udW1iZXJfdHlwZT0iYXJ0aWNsZV9udW1iZXIiPmUwMTU2NzwvaXRlbV9udW1iZXI+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJkb2kiPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2lkZW50aWZpZXI+DQogICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICA8cHJvZ3JhbSBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5FTUJPIGxvbmd0ZXJtIHBvc3QtZG9jdG9yYWwgZmVsbG93c2hpcHM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5NYXJpZSBIZWltLVZvZWd0bGluPC9hc3NlcnRpb24+DQogICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+NTAxMTAwMDA2MzkwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxwcm9ncmFtIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2xpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+U3lzdGVtc1g8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgRU1CTw0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDMwNDM8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICBTd2lzcyBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb24NCiAgICAgICAgICAgICAgICAgICAgPGFzc2VydGlvbiBuYW1lPSJmdW5kZXJfaWRlbnRpZmllciI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDAxNzExPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZQ0KICAgICAgICAgICAgICAgICAgICA8YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwNjM5MDwvYXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICAgICAgPHByb2dyYW0gbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPGxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89ImFtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgICA8bGljZW5zZV9yZWYgYXBwbGllc190bz0idGRtIj5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvPC9saWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgICAgPC9jdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgPC9jcm9zc21hcms+DQogICAgICAgICAgPHByb2dyYW0+DQogICAgICAgICAgICA8cmVsYXRlZF9pdGVtPg0KICAgICAgICAgICAgICA8ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvZGVzY3JpcHRpb24+DQogICAgICAgICAgICAgIDxpbnRlcl93b3JrX3JlbGF0aW9uIGlkZW50aWZpZXItdHlwZT0iZG9pIiByZWxhdGlvbnNoaXAtdHlwZT0iaXNTdXBwbGVtZW50ZWRCeSI+MTAuNTA2MS9kcnlhZC5iODM1azwvaW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgIDwvcmVsYXRlZF9pdGVtPg0KICAgICAgICAgIDwvcHJvZ3JhbT4NCiAgICAgICAgICA8YXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgICA8YXJjaGl2ZSBuYW1lPSJDTE9DS1NTIiAvPg0KICAgICAgICAgIDwvYXJjaGl2ZV9sb2NhdGlvbnM+DQogICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NzwvcmVzb3VyY2U+DQogICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciPg0KICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgPGl0ZW0+DQogICAgICAgICAgICAgICAgPHJlc291cmNlIG1pbWVfdHlwZT0iYXBwbGljYXRpb24veG1sIj5odHRwczovL2Nkbi5lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9lbGlmZS0wMTU2Ny12MS54bWw8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Qm9ua2U8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT40MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTgxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFQTCByZWd1bGF0ZXMgdmFzY3VsYXIgdGlzc3VlIGlkZW50aXR5IGluIEFyYWJpZG9wc2lzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMDIxMDA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+QnJlbm5lcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW4gdGhlIGJlZ2lubmluZyB3YXMgdGhlIHdvcm08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTUzNC9nZW5ldGljcy4xMDkuMTA0OTc2PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBoeXNpb2xvZ2lhIFBsYW50YXJ1bTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5DaGFmZmV5PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU5NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TZWNvbmRhcnkgeHlsZW0gZGV2ZWxvcG1lbnQgaW4gQXJhYmlkb3BzaXM6IGEgbW9kZWwgZm9yIHdvb2QgZm9ybWF0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzQvai4xMzk5LTMwNTQuMjAwMi4xMTQwNDEzLng8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmV1cmFsIGNvbXB1dGF0aW9uPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkNoYW5nPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjExOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UcmFpbmluZyBudS1zdXBwb3J0IHZlY3RvciBjbGFzc2lmaWVyczogdGhlb3J5IGFuZCBhbGdvcml0aG1zPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExNjIvMDg5OTc2NjAxNzUwMzk5MzM1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1hY2hpbmUgTGVhcm5pbmc8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+Q29ydGVzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjczPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5NTwvY1llYXI+DQogICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDA3L0JGMDA5OTQwMTg8L2RvaT4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+U3VwcG9ydC12ZWN0b3IgTmV0d29ya3M8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliNiI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRldmVsb3BtZW50PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkRvbGFuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTE5PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjcxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5MzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNlbGx1bGFyIG9yZ2FuaXNhdGlvbiBvZiB0aGUgQXJhYmlkb3BzaXMgdGhhbGlhbmEgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI3Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2VtaW5hcnMgaW4gQ2VsbCAmYW1wOyBEZXZlbG9wbWVudGFsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RWxvPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTA5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdGVtIGNlbGwgZnVuY3Rpb24gZHVyaW5nIHBsYW50IHZhc2N1bGFyIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5zZW1jZGIuMjAwOS4wOS4wMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI4Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4xNDA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjIyNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XT1g0IGFuZCBXT1gxNCBhY3QgZG93bnN0cmVhbSBvZiB0aGUgUFhZIHJlY2VwdG9yIGtpbmFzZSB0byByZWd1bGF0ZSBwbGFudCB2YXNjdWxhciBwcm9saWZlcmF0aW9uIGluZGVwZW5kZW50bHkgb2YgYW55IHJvbGUgaW4gdmFzY3VsYXIgb3JnYW5pc2F0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEyNDIvZGV2LjA5MTMxNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTE9TIEdlbmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkV0Y2hlbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT5lMTAwMjk5NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudCB2YXNjdWxhciBjZWxsIGRpdmlzaW9uIGlzIG1haW50YWluZWQgYnkgYW4gaW50ZXJhY3Rpb24gYmV0d2VlbiBQWFkgYW5kIGV0aHlsZW5lIHNpZ25hbGxpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTM3MS9qb3VybmFsLnBnZW4uMTAwMjk5NzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TW9sZWN1bGFyIFN5c3RlbXMgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5GdWNoczwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzcwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsdXN0ZXJpbmcgcGhlbm90eXBlIHBvcHVsYXRpb25zIGJ5IGdlbm9tZS13aWRlIFJOQWkgYW5kIG11bHRpcGFyYW1ldHJpYyBpbWFnaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbXNiLjIwMTAuMjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxMSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpbyBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPkdyYW5xdmlzdDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjExMDwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5CYVNBUi1BIHRvb2wgaW4gUiBmb3IgZnJlcXVlbmN5IGRldGVjdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouYmlvc3lzdGVtcy4yMDEyLjA3LjAwNDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEyIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q3VycmVudCBPcGluaW9uIGluIFBsYW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+R3Jvb3ZlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGV2ZWxvcG1lbnRhbCBtZWNoYW5pc21zIHJlZ3VsYXRpbmcgc2Vjb25kYXJ5IGdyb3d0aCBpbiB3b29keSBwbGFudHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnBiaS4yMDA1LjExLjAxMzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjEzIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIyPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+VERJRiBwZXB0aWRlIHNpZ25hbGluZyByZWd1bGF0ZXMgdmFzY3VsYXIgc3RlbSBjZWxsIHByb2xpZmVyYXRpb24gdmlhIHRoZSBXT1g0IGhvbWVvYm94IGdlbmUgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNS90cGMuMTEwLjA3NjA4MzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE0Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIE5hdGlvbmFsIEFjYWRlbXkgb2YgU2NpZW5jZXMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5IaXJha2F3YTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTIwODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Ob24tY2VsbC1hdXRvbm9tb3VzIGNvbnRyb2wgb2YgdmFzY3VsYXIgc3RlbSBjZWxsIGZhdGUgYnkgYSBDTEUgcGVwdGlkZS9yZWNlcHRvciBzeXN0ZW08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjA4MDg0NDQxMDU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNSI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjU2PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODk8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BcmFiaWRvcHNpcywgYSB1c2VmdWwgd2VlZDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTItODY3NCg4OSk5MDkwMC04PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk1leWVyb3dpdHo8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yOTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ4MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGFudHMgY29tcGFyZWQgdG8gYW5pbWFsczogdGhlIGJyb2FkZXN0IGNvbXBhcmF0aXZlIHN0dWR5IG9mIGRldmVsb3BtZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDY2NjA5PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTciPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBQaHlzaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk5pZW1pbmVuPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTM1PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BIHdlZWQgZm9yIHdvb2Q/IEFyYWJpZG9wc2lzIGFzIGEgZ2VuZXRpYyBtb2RlbCBmb3IgeHlsZW0gZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEwNC9wcC4xMDQuMDQwMjEyPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTgiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmUgQmlvdGVjaG5vbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5Ob2JsZTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjI0PC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1NjU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+V2hhdCBpcyBhIHN1cHBvcnQgdmVjdG9yIG1hY2hpbmU/PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmJ0MTIwNi0xNTY1PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTkiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPk9sc29uPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+Nzc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTUxNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgPGNZZWFyPjE5ODA8L2NZZWFyPg0KICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DbGFzc2lmaWNhdGlvbiBvZiBjdWx0dXJlZCBtYW1tYWxpYW4gY2VsbHMgYnkgc2hhcGUgYW5hbHlzaXMgYW5kIHBhdHRlcm4gcmVjb2duaXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjc3LjMuMTUxNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIwIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvaW5mb3JtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+UGF1PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTc5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkVCSW1hZ2XigJNhbiBSIHBhY2thZ2UgZm9yIGltYWdlIHByb2Nlc3Npbmcgd2l0aCBhcHBsaWNhdGlvbnMgdG8gY2VsbHVsYXIgcGhlbm90eXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDkzL2Jpb2luZm9ybWF0aWNzL2J0cTA0NjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIxIj4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGxhbnQgQ2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5SYWduaTwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEzMjI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDExPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TW9iaWxlIGdpYmJlcmVsbGluIGRpcmVjdGx5IHN0aW11bGF0ZXMgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHh5bGVtIGV4cGFuc2lvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTEuMDg0MDIwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjIiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2Fua2FyPC9hdXRob3I+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDE0PC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC41MDYxL2RyeWFkLmI4MzVrPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjMiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+U2lib3V0PC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDU4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkZsb3dlcmluZyBhcyBhIGNvbmRpdGlvbiBmb3IgeHlsZW0gZXhwYW5zaW9uIGluIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBhbmQgcm9vdDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ViLjIwMDguMDIuMDcwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjQiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5UaGUgTmV3IFBoeXRvbG9naXN0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlNwaWNlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE4Njwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41Nzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RXZvbHV0aW9uIG9mIGRldmVsb3BtZW50IG9mIHZhc2N1bGFyIGNhbWJpYSBhbmQgc2Vjb25kYXJ5IGdyb3d0aDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTExL2ouMTQ2OS04MTM3LjIwMTAuMDMyMzYueDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI1Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBWaXNpb24gYW5kIEFwcGxpY2F0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgPGF1dGhvcj5UaGVyaWF1bHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgPHZvbHVtZT4yMzwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbCBtb3JwaG9sb2d5IGNsYXNzaWZpY2F0aW9uIGFuZCBjbHV0dGVyIG1pdGlnYXRpb24gaW4gcGhhc2UtY29udHJhc3QgbWljcm9zY29weSBpbWFnZXMgdXNpbmcgbWFjaGluZSBsZWFybmluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDEzOC0wMTEtMDM0NS05PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjYiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8YXV0aG9yPlV5dHRld2FhbDwvYXV0aG9yPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE0OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40Mzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TWVjaGFuaWNhbCBzdHJlc3MgYWN0cyB2aWEga2F0YW5pbiB0byBhbXBsaWZ5IGRpZmZlcmVuY2VzIGluIGdyb3d0aCByYXRlIGJldHdlZW4gYWRqYWNlbnQgY2VsbHMgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLmNlbGwuMjAxMi4wMi4wNDg8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBDZWxsIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDxhdXRob3I+WWluPC9hdXRob3I+DQogICAgICAgICAgICAgIDx2b2x1bWU+MTU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+ODYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgc2NyZWVuIGZvciBtb3JwaG9sb2dpY2FsIGNvbXBsZXhpdHkgaWRlbnRpZmllcyByZWd1bGF0b3JzIG9mIHN3aXRjaC1saWtlIHRyYW5zaXRpb25zIGJldHdlZW4gZGlzY3JldGUgY2VsbCBzaGFwZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uY2IyNzY0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICA8Y29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5BYnN0cmFjdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDE8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNhYnN0cmFjdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPmVMaWZlIGRpZ2VzdDwvdGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDI8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNkaWdlc3Q8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMS4gQ2VsbHVsYXIgbGV2ZWwgYW5hbHlzaXMgb2YgQXJhYmlkb3BzaXMgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGguPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIExpZ2h0IG1pY3Jvc2NvcHkgb2YgY3Jvc3Mgc2VjdGlvbnMgb2J0YWluZWQgZnJvbSBBcmFiaWRvcHNpcyBoeXBvY290eWxzIChvcmdhbiBwb3NpdGlvbiBpbGx1c3RyYXRlZCBmb3IgYSA5LWRheS1vbGQgc2VlZGxpbmcsIGxvd2VyIGxlZnQpIGF0IDkgZGFnICh1cHBlciBsZWZ0KSBhbmQgMzUgZGFnIChyaWdodCkuIFNpemUgYmFycyBhcmUgMTAwIM68bS4gQmx1ZSBHVVMgc3RhaW5pbmcgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBhbiBBUEw6OkdVUyByZXBvcnRlciBnZW5lIGluIHRoaXMgQ29sLTAgYmFja2dyb3VuZCBsaW5lIG1hcmtzIHBobG9lbSBidW5kbGVzLiAoQikgT3ZlcnZpZXcgb2YgdGhlIGRldmVsb3BtZW50YWwgc2VyaWVzICh0aW1lIHBvaW50cyBhbmQgZGlzdGluY3Qgc2FtcGxlcyBwZXIgZ2Vub3R5cGUpIGFuYWx5emVkIGluIHRoaXMgc3R1ZHkuIChDKSBFeGFtcGxlIG9mIGEgaGlnaC1yZXNvbHV0aW9uIGh5cG9jb3R5bCBzZWN0aW9uIGltYWdlIGFzc2VtYmxlZCBmcm9tIDExIMOXIDExIHRpbGVzLiAoRCkgVGhlIHNhbWUgaW1hZ2UgYWZ0ZXIgcHJlLXByb2Nlc3NpbmcgYW5kIGJpbmFyaXphdGlvbiwgYW5kIChFKSBzdWJzZXF1ZW50IHNlZ21lbnRhdGlvbiB1c2luZyBhIHdhdGVyc2hlZCBhbGdvcml0aG0uIChGKSBOdW1iZXIgb2YgbWlzLXNlZ21lbnRlZCBjZWxscyBhcyBkZXRlcm1pbmVkIGJ5IGNhcmVmdWwgdmlzdWFsIGluc3BlY3Rpb24gaW4gMTIgc2VjdGlvbnMsIHBsb3R0ZWQgYWdhaW5zdCB0aGUgdG90YWwgbnVtYmVyIG9mIGNlbGxzIHBlciBzZWN0aW9uIChsb2cgc2NhbGUpLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDM8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDIuIFRoZSDigJhRdWFudGl0YXRpdmUgSGlzdG9sb2d54oCZIGFwcHJvYWNoLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBPdmVydmlldyBvZiB0aGUgY29tcHV0YXRpb25hbCBwaXBlbGluZSBmcm9tIGltYWdlIGFjcXVpc2l0aW9uIHRvIGFuYWx5c2lzLiAoQikg4oCYUGhlbm9wcmludHPigJkgZm9yIHRoZSBkaWZmZXJlbnQgZ2Vub3R5cGVzIGFuZCBkZXZlbG9wbWVudGFsIHN0YWdlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAy4oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gZXhhbXBsZSBvZiBjbGFzc2lmaWVyIHNlbGVjdGlvbiB0aHJvdWdoIFYtZm9sZCBjcm9zcyB2YWxpZGF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBncmVlbiBhcnJvdyBwb2ludHMgb3V0IHRoZSBzZWxlY3RlZCBmZWF0dXJlIGNvbWJpbmF0aW9uIGFjY29yZGluZyB0byB0aGUgY3JpdGVyaWEgb2YgbWluaW11bSBudW1iZXIgb2YgZmVhdHVyZXMgd2l0aCB0aGUgaGlnaGVzdCBwZXJmb3JtYW5jZSBhbmQgdGhlIGxvd2VzdCB2YXJpYXRpb24gKHRoZSByYWRpdXNWIGZlYXR1cmUgd2FzIGV4Y2x1ZGVkIGR1ZSB0byBpdHMgcHV0YXRpdmUgdmFyaWF0aW9uIGluIHRpc3N1ZSBsb2NhdGlvbikuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnMnMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDMuIFByb2dyZXNzaW9uIG9mIHRpc3N1ZSBwcm9saWZlcmF0aW9uLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBQcmluY2lwYWwgY29tcG9uZW50IGFuYWx5c2lzIChQQ0EpIG9mIHRoZSBwaGVub3ByaW50cyBzaG93biBpbiBGaWd1cmUgMkIsIHBlcmZvcm1lZCB3aXRoIG5vcm1hbGl6ZWQgdmFsdWVzIChTdXBwbGVtZW50YXJ5IGZpbGUgNCkuIFRoZSBpbmxheSBzY3JlZXBsb3QgZGlzcGxheXMgdGhlIHByb3BvcnRpb24gb2YgdG90YWwgdmFyaWF0aW9uIGV4cGxhaW5lZCBieSBlYWNoIHByaW5jaXBhbCBjb21wb25lbnQuIChC4oCTRSkgQ29tcGFyYXRpdmUgcGxvdHMgb2YgcGFyYW1ldGVyIHByb2dyZXNzaW9uIGluIHRoZSB0d28gZ2Vub3R5cGVzLiBJbiAoRCksIHh5bGVtIHJlcHJlc2VudHMgY29tYmluZWQgdmVzc2VsLCBwYXJlbmNoeW1hLCBhbmQgZmliZXIgY2VsbHMsIHBobG9lbSByZXByZXNlbnRzIGNvbWJpbmVkIHBobG9lbSBwYXJlbmNoeW1hIGFuZCBidW5kbGUgY2VsbHMuIEVycm9yIGJhcnMgaW5kaWNhdGUgc3RhbmRhcmQgZXJyb3IuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwNjwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzM8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNC4gQmltb2RhbCBkaXN0cmlidXRpb24gb2YgaW5jbGluZSBhbmdsZSBhY2NvcmRpbmcgdG8gcG9zaXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEgYW5kIEIpIFNwYXRpYWwgZGlzdHJpYnV0aW9uIG9mIGNlbGwgaW5jbGluZSBhbmdsZSBpbGx1c3RyYXRlcyB0aGUgdmFzY3VsYXIgb3JnYW5pemF0aW9uIGluIExlciAoQikgYXMgY29tcGFyZWQgdG8gQ29sLTAgKEEpIGF0IGxhdGVyIHN0YWdlcyBvZiBkZXZlbG9wbWVudCwgZm9yIGV4YW1wbGUgMzAgZGFnLiBUaGUgc2l6ZSBvZiB0aGUgZGlzYyBpbmNyZWFzZXMgd2l0aCB0aGUgYXJlYSBvZiB0aGUgY2VsbC4gQmx1ZSBjb2xvciBpbmRpY2F0ZXMgcmFkaWFsIGNlbGwgb3JpZW50YXRpb24sIHJlZCBvcnRob3JhZGlhbC4gKEMgYW5kIEQpIFZpb2xpbiBwbG90cyBvZiBpbmNsaW5lIGFuZ2xlIGRpc3RyaWJ1dGlvbiwgaWxsdXN0cmF0aW5nIGluY3JlYXNpbmdseSBiaW1vZGFsIGRpc3RyaWJ1dGlvbiBjb2luY2lkZW50IHdpdGggcmVmaW5lZCB2YXNjdWxhciBvcmdhbml6YXRpb24gYW5kIGRpZmZlcmVudCBkeW5hbWljcyBvZiB0aGUgcHJvY2VzcyBpbiB0aGUgdHdvIGdlbm90eXBlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA3PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA04oCUZmlndXJlIHN1cHBsZW1lbnQgMS4gQW4gaWxsdXN0cmF0aW9uIG9mIHRoZSBpbmNsaW5lIGFuZ2xlLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBpbmNsaW5lIGlzIHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBzZWN0aW9uIHJhZGl1cyB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgYW4gZWxsaXBzZSBmaXQgdG8gYSBjZWxsIGFuZCB0aGUgbWFqb3IgYXhpcyBvZiB0aGF0IGVsbGlwc2UgZXh0ZW5kZWQgdG93YXJkcyB0aGUgeCBheGlzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDg8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI2ZpZzRzMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA1LiBEaXN0aW5jdCBsb2NhbCBvcmdhbml6YXRpb24gb2YgaW5jbGluZSBhbmdsZSBkdXJpbmcgaHlwb2NvdHlsIHNlY29uZGFyeSBncm93dGggcHJvZ3Jlc3Npb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEHigJNKKSBEZW5zaXR5IHBsb3RzIG9mIGNlbGwgaW5jbGluZSBhbmdsZSB2cyByYWRpYWwgcG9zaXRpb24gZm9yIHRoZSB0d28gZ2Vub3R5cGVzIGF0IHRoZSBpbmRpY2F0ZWQgZGV2ZWxvcG1lbnRhbCBzdGFnZXMsIHJlcHJlc2VudGluZyBhbGwgY2VsbHMgYWNyb3NzIGFsbCBzZWN0aW9ucyBmb3IgYSBnaXZlbiB0aW1lIHBvaW50LiBUaGUgcmVkIGxpbmVzIHJlcHJlc2VudCB0aGUgZml0IG9mIHRoZXNlIGNsb3VkIGRpc3RyaWJ1dGlvbnMgd2l0aCBsb2NhbGx5IHdlaWdodGVkIGxpbmVhciByZWdyZXNzaW9uIChpLmUuLCBsb3dlc3MpLCByZXZlYWxpbmcgdGhlIGVzc2VudGlhbCBkYXRhIHRyZW5kcy4gQWxsIHNlY3Rpb25zIHdlcmUgbm9ybWFsaXplZCBmcm9tIDAuMCAodGhlIG1hbnVhbGx5IGRlZmluZWQgY2VudGVyKSB0byAxLjAgKHRoZSBhdmVyYWdlIHJhZGl1cyBpbiBhIHNldCBvZiBzZWN0aW9ucyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBhdmVyYWdlIGRpc3RhbmNlIG9mIHRoZSBvdXRlcm1vc3QgY2VsbHMgZnJvbSB0aGUgY2VudGVyIGZvciBpbmRpdmlkdWFsIHNlY3Rpb25zKS4gQm94IHBsb3RzIGluZGljYXRlIHRoZSBxdWFydGlsZXMgb2YgdGhlIHJhZGlhbiBkaXN0cmlidXRpb24gZm9yIGVhY2ggY2VsbC10eXBlIGNsYXNzIGFuZCBhcmUgcGxhY2VkIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBjZWxsIHR5cGUgd2l0aCByZXNwZWN0IHRvIHRoZSB5IGF4aXMuIE91dGxpZXJzIGFyZSBzaG93biBhcyBjaXJjbGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDk8L2RvaT4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDXigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbmFseXNpcyBvZiBjZWxsIG51bWJlciBpbiBkZWZpbmVkIHh5bGVtIHJlZ2lvbnMgb2YgZGlmZmVyZW50IHNpemUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICA8c3VidGl0bGU+Q2VsbCBudW1iZXIgaW4gYSBjaXJjbGUgb2YgMjAw4oCTNTAwIHBpeGVscyBhcm91bmQgdGhlIHNlY3Rpb24gY2VudGVycyBmb3IgQ29sLTAuIENlbGwgY291bnQgaW4gYSBjb25zdGFudCBhcmVhIG9mIHh5bGVtIG92ZXIgdGltZSBhY3Jvc3MgYWxsIGF2ZXJhZ2VkIGFjcm9zcyBhbGwgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNXMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDYuIE1hcHBpbmcgb2YgcGhsb2VtIHBvbGUgcGF0dGVybmluZy48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgRXhhbXBsZSBvZiBHYXVzc2lhbiBrZXJuZWwgZGVuc2l0eSBlc3RpbWF0ZSBvZiB0aGUgbG9jYXRpb24gb2YgcHJlZGljdGVkIHBobG9lbSBidW5kbGVzIGNlbGxzIGluIGEgMzAgZGFnIENvbC0wIHNlY3Rpb24uIEhpZ2ggZGVuc2l0eSByZXByZXNlbnRzIHBobG9lbSBwb2xlcy4gKEIpIEV4YW1wbGUgb2YgYW4gYW5hbHlzaXMgb2YgZW1lcmdpbmcgcGhsb2VtIHBvbGUgcG9zaXRpb24gaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gVGhlIHBsb3QgcmVwcmVzZW50cyBhIHBpeGVsIGludGVuc2l0eSBtYXAgYWZ0ZXIgbm9pc2UgcmVkdWN0aW9uIGFsb25nIGEgY2lyY3VsYXIgcmVnaW9uIG9mIGludGVyZXN0IGFjcm9zcyB0aGUgZW1lcmdpbmcgcGhsb2VtIHBvbGVzLiBJbnRlbnNpdHkgcGVha3MgYXJlIGR1ZSB0byBHVVMgc3RhaW5pbmcgY29uZmVycmVkIHRvIHBobG9lbSBidW5kbGVzIGJ5IGFuIEFQTDo6R1VTIHJlcG9ydGVyIGNvbnN0cnVjdC4gKEMpIFByb2JhYmlsaXR5IGRlbnNpdHkgZnVuY3Rpb24gb2YgdGhlIGRhdGEgc2hvd24gaW4gKEIpIG9idGFpbmVkIGZyb20gYW4gYXV0b21hdGVkIEJheWVzaWFuIG1vZGVsLiBUaGUgZG9taW5hbnQgc2luZ2xlIHBlYWsgaW5kaWNhdGVzIGEgY29uc3RhbnQgYXJjIGRpc3RhbmNlIG9mIGNhLiA2MiBwaXhlbCBiZXR3ZWVuIHRoZSBwaGxvZW0gcG9sZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxMTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgMS48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgQW4gZXhwbGFuYXRpb24gb2YgdGhlIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIHRoYXQgZGVzY3JpYmUgdGhlIGNlbGx1bGFyIGZlYXR1cmVzLiAoQikgU3VtbWFyeSBpbmZvcm1hdGlvbiBvZiB0aGUgaGFuZC1sYWJlbGVkIHRyYWluaW5nIHNldCBmb3Igc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nLiAoQykgRGVmaW5pdGlvbiBvZiB0aGUgY2xhc3NpZmllcnMgc2VsZWN0ZWQgZm9yIGFuYWx5c2lzLiAoRCkgU3VtbWFyeSBvZiB0aGUgY2xhc3NpZmllciBwYXJhbWV0ZXJzIGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChFKSBPdmVydmlldyBvZiB0aGUgY2VsbCB0eXBlIGNsYXNzZXMgcmVjb2duaXplZCBieSB0aGUgc3VwZXJ2aXNlZCBtYWNoaW5lIGxlYXJuaW5nIGFwcHJvYWNoIGFuZCB0aGVpciBhc3NpZ25tZW50IGNvZGVzIHVzZWQgaW4gRGF0YSBGaWxlcyAzIGFuZCA0Ljwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEyPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDEtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAyLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIENvbC0wIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDItZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAzLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgPHN1YnRpdGxlPlF1YWxpdHkgY29udHJvbCBmaWxlcyBmb3IgdGhlIExlciBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNDwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0QzLWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5TdXBwbGVtZW50YXJ5IGZpbGUgNC48L3RpdGxlPg0KICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5UaGUgbm9ybWFsaXplZCB2YWx1ZXMgb2YgdGhlIHBoZW5vcHJpbnRzIChGaWd1cmUgMkIpIHVzZWQgZm9yIFBDQS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNTwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjU0Q0LWRhdGE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgIDx0aXRsZT5EZWNpc2lvbiBsZXR0ZXI8L3RpdGxlPg0KICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE2PC9kb2k+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjU0ExPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICA8dGl0bGU+QXV0aG9yIHJlc3BvbnNlPC90aXRsZT4NCiAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNzwvZG9pPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I1NBMjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICA8L2NvbXBvbmVudF9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
35
+ http_version:
36
+ recorded_at: Thu, 10 Jan 2019 23:03:06 GMT
37
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,71 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.1155/2012/291294&noredirect=true&pid=tech@datacite.org
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma)
12
+ Accept:
13
+ - text/xml
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - qs3-1
23
+ Content-Type:
24
+ - text/xml;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Date:
28
+ - Thu, 10 Jan 2019 23:28:23 GMT
29
+ Connection:
30
+ - close
31
+ body:
32
+ encoding: ASCII-8BIT
33
+ string: !binary |-
34
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuMTE1NSIgdGltZXN0YW1wPSIyMDE2LTA4LTAyIDE0OjQyOjQxIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2Z1bGxfdGl0bGU+DQogICAgICAgICAgPGFiYnJldl90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2FiYnJldl90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJwcmludCI+MjA5MC0xODM2PC9pc3NuPg0KICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIwOTAtMTg0NDwvaXNzbj4NCiAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjIwMTI8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgPHRpdGxlPkRlbGluZWF0aW5nIGEgUmV0ZXN0aW5nIFpvbmUgVXNpbmcgUmVjZWl2ZXIgT3BlcmF0aW5nIENoYXJhY3RlcmlzdGljIEFuYWx5c2lzIG9uIFNlcmlhbCBRdWFudGlGRVJPTiBUdWJlcmN1bG9zaXMgVGVzdCBSZXN1bHRzIGluIFVTIEhlYWx0aGNhcmUgV29ya2VyczwvdGl0bGU+DQogICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPldlbmR5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5UaGFuYXNzaTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFZldGVyYW5zIEFmZmFpcnMgUGFsbyBBbHRvIEhlYWx0aCBDYXJlIFN5c3RlbSwgMzgwMSBNaXJhbmRhIEF2ZW51ZSBNQy0sIFBhbG8gQWx0bywgQ0EgOTQzMDQtMTIwNywgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPk9jY3VwYXRpb25hbCBIZWFsdGggU3RyYXRlZ2ljIEhlYWx0aCBDYXJlIEdyb3VwLCBPZmZpY2Ugb2YgUHVibGljIEhlYWx0aCwgVmV0ZXJhbnMgSGVhbHRoIEFkbWluaXN0cmF0aW9uLCBXYXNoaW5ndG9uLCBEQyAyMDAwNiwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRpdmlzaW9uIG9mIEVtZXJnZW5jeSBNZWRpY2luZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5BcnQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk5vZGE8L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQc3ljaGlhdHJ5IGFuZCBCZWhhdmlvcmFsIFNjaWVuY2VzLCBTdGFuZm9yZCBVbml2ZXJzaXR5IFNjaG9vbCBvZiBNZWRpY2luZSwgU3RhbmZvcmQsIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QmVhdHJpejwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+SGVybmFuZGV6PC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+V2FyIFJlbGF0ZWQgSWxsbmVzcyBhbmQgSW5qdXJ5IFN0dWR5IENlbnRlciAoV1JJSVNDKSBhbmQgTWVudGFsIElsbG5lc3MgUmVzZWFyY2ggRWR1Y2F0aW9uIGFuZCBDbGluaWNhbCBDZW50ZXIgKE1JUkVDQyksIERlcGFydG1lbnQgb2YgVmV0ZXJhbnMgQWZmYWlycywgUGFsbyBBbHRvLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUHN5Y2hpYXRyeSBhbmQgQmVoYXZpb3JhbCBTY2llbmNlcywgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPE9SQ0lEIGF1dGhlbnRpY2F0ZWQ9InRydWUiPmh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTIwNDMtNDkyNTwvT1JDSUQ+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KZWZmZXJ5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5OZXdlbGw8L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+UGF1bDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+VGVycGVsdWs8L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIE9jY3VwYXRpb25hbCBIZWFsdGgsIFRoZSBDbGV2ZWxhbmQgQ2xpbmljLCBDbGV2ZWxhbmQsIE9IIDQ0MTk1LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+RGF2aWQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk1hcmRlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgSGVhbHRoIFNlcnZpY2VzLCBVbml2ZXJzaXR5IG9mIElsbGlub2lzIENoaWNhZ28sIENoaWNhZ28sIElMIDYwNjEyLCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SmVyb21lIEEuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5ZZXNhdmFnZTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBzeWNoaWF0cnkgYW5kIEJlaGF2aW9yYWwgU2NpZW5jZXMsIFN0YW5mb3JkIFVuaXZlcnNpdHkgU2Nob29sIG9mIE1lZGljaW5lLCBTdGFuZm9yZCwgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgIDxhYnN0cmFjdD4NCiAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICA8aXRhbGljPk9iamVjdGl2ZTwvaXRhbGljPg0KICAgICAgICAgICAgICAuIFRvIGZpbmQgYSBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50IHNlcGFyYXRpb24gcG9pbnQgZm9yIHRoZSBRdWFudGlGRVJPTiBHb2xkIEluLVR1YmUgKFFGVCkgaW50ZXJmZXJvbiBnYW1tYSByZWxlYXNlIGFzc2F5IHRoYXQgY291bGQgZGVmaW5lIGFuIG9wdGltYWwg4oCccmV0ZXN0aW5nIHpvbmXigJ0gZm9yIHVzZSBpbiBzZXJpYWxseSB0ZXN0ZWQgbG93LXJpc2sgcG9wdWxhdGlvbnMgd2hvIGhhdmUgdGVzdCDigJxyZXZlcnNpb25z4oCdIGZyb20gaW5pdGlhbGx5IHBvc2l0aXZlIHRvIHN1YnNlcXVlbnRseSBuZWdhdGl2ZSByZXN1bHRzLg0KICAgICAgICAgICAgICA8aXRhbGljPk1ldGhvZDwvaXRhbGljPg0KICAgICAgICAgICAgICAuIFVzaW5nIHJlY2VpdmVyIG9wZXJhdGluZyBjaGFyYWN0ZXJpc3RpYyBhbmFseXNpcyAoUk9DKSB0byBhbmFseXplIHJldHJvc3BlY3RpdmUgZGF0YSBjb2xsZWN0ZWQgZnJvbSAzIG1ham9yIGhvc3BpdGFscywgd2Ugc2VhcmNoZWQgZm9yIHByZWRpY3RvcnMgb2YgcmV2ZXJzaW9uIHVudGlsIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgc2VwYXJhdGlvbiBwb2ludHMgd2VyZSByZXZlYWxlZC4gQSBjb25maXJtYXRvcnkgcmVncmVzc2lvbiBhbmFseXNpcyB3YXMgcGVyZm9ybWVkIG9uIGFuIGFkZGl0aW9uYWwgc2FtcGxlLg0KICAgICAgICAgICAgICA8aXRhbGljPlJlc3VsdHM8L2l0YWxpYz4NCiAgICAgICAgICAgICAgLiBJbiA1NzUgaW5pdGlhbGx5IHBvc2l0aXZlIFVTIGhlYWx0aGNhcmUgd29ya2VycyAoSENXcyksIDMwMCAoNTIuMiUpIGhhZCByZXZlcnNpb25zLCB3aGlsZSAyNzUgKDQ3LjglKSBoYWQgdHdvIHNlcXVlbnRpYWwgcG9zaXRpdmUgdGVzdHMuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgKEthcHBh4oCJPeKAiTAuNDgsIGNoaS1zcXVhcmXigIk94oCJMTMxLjAsDQogICAgICAgICAgICAgIDxtYXRoIGlkPSJNMSI+DQogICAgICAgICAgICAgICAgPG1yb3c+DQogICAgICAgICAgICAgICAgICA8bWk+UDwvbWk+DQogICAgICAgICAgICAgICAgICA8bW8+Jmx0OzwvbW8+DQogICAgICAgICAgICAgICAgICA8bW4+MC4wMDE8L21uPg0KICAgICAgICAgICAgICAgIDwvbXJvdz4NCiAgICAgICAgICAgICAgPC9tYXRoPg0KICAgICAgICAgICAgICApIHNlcGFyYXRpb24gcG9pbnQgaWRlbnRpZmllZCBieSB0aGUgUk9DIGZvciBwcmVkaWN0aW5nIHJldmVyc2lvbiB3YXMgdGhlIHR1YmVyY3Vsb3NpcyBhbnRpZ2VuIG1pbnVzLW5pbCAoVEJhZy1uaWwpIHZhbHVlIGF0IDEuMTEgSW50ZXJuYXRpb25hbCBVbml0cyBwZXIgbWlsbGlsaXRlciAoSVUvbUwpLiBUaGUgc2Vjb25kIHNlcGFyYXRpb24gcG9pbnQgd2FzIGZvdW5kIGF0IFRCYWctbmlsIGF0IDAuNzLigIlJVS9tTCAoS2FwcGHigIk94oCJMC4xNiwgY2hpLXNxdWFyZeKAiT3igIk4LjIsDQogICAgICAgICAgICAgIDxtYXRoIGlkPSJNMiI+DQogICAgICAgICAgICAgICAgPG1yb3c+DQogICAgICAgICAgICAgICAgICA8bWk+UDwvbWk+DQogICAgICAgICAgICAgICAgICA8bW8+Jmx0OzwvbW8+DQogICAgICAgICAgICAgICAgICA8bW4+MC4wMTwvbW4+DQogICAgICAgICAgICAgICAgPC9tcm93Pg0KICAgICAgICAgICAgICA8L21hdGg+DQogICAgICAgICAgICAgICkuIFRoZSBtb2RlbCB3YXMgdmFsaWRhdGVkIGJ5IHRoZSByZWdyZXNzaW9uIGFuYWx5c2lzIG9mIDI4N+KAiUhDV3MuDQogICAgICAgICAgICAgIDxpdGFsaWM+Q29uY2x1c2lvbjwvaXRhbGljPg0KICAgICAgICAgICAgICAuIFJldmVyc2lvbiBsaWtlbGlob29kIGluY3JlYXNlcyBhcyB0aGUgVEJhZy1uaWwgYXBwcm9hY2hlcyB0aGUgbWFudWZhY3R1cmVyJ3MgY3V0LXBvaW50IG9mIDAuMzXigIlJVS9tTC4gVGhlIG1vc3Qgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50IGJldHdlZW4gdGhvc2Ugd2hvIHRlc3QgcmVwZWF0ZWRseSBwb3NpdGl2ZSBhbmQgdGhvc2Ugd2hvIHJldmVydCBpcyAxLjEx4oCJSVUvbUwuIENsaW5pY2lhbnMgc2hvdWxkIHJldGVzdCBsb3ctcmlzayBpbmRpdmlkdWFscyB3aXRoIGluaXRpYWwgUUZUIHJlc3VsdHPigIkmbHQ74oCJMS4xMeKAiUlVL21MLg0KICAgICAgICAgICAgPC9wPg0KICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgPHllYXI+MjAxMjwveWVhcj4NCiAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgPHBhZ2VzPg0KICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgIDxsYXN0X3BhZ2U+NzwvbGFzdF9wYWdlPg0KICAgICAgICAgIDwvcGFnZXM+DQogICAgICAgICAgPHB1Ymxpc2hlcl9pdGVtPg0KICAgICAgICAgICAgPGlkZW50aWZpZXIgaWRfdHlwZT0icGlpIj4yOTEyOTQ8L2lkZW50aWZpZXI+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJvdGhlciI+MjkxMjk0PC9pZGVudGlmaWVyPg0KICAgICAgICAgIDwvcHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgPHByb2dyYW0gbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICA8bGljZW5zZV9yZWY+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgIDxkb2k+MTAuMTE1NS8yMDEyLzI5MTI5NDwvZG9pPg0KICAgICAgICAgICAgPHRpbWVzdGFtcD4yMDE2MDgwMjAzNDEyNTwvdGltZXN0YW1wPg0KICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly93d3cuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQvPC9yZXNvdXJjZT4NCiAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyIgc2V0YnlJRD0iaGluZGF3aSI+DQogICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3htbCI+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC54bWw8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0iY3Jhd2xlci1iYXNlZCIgc2V0YnlJRD0iaGluZGF3aSI+DQogICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9Imdvb2dsZSI+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJtc24iPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iYWx0YXZpc3RhIj4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9InlhaG9vIj4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9InNjaXJ1cyI+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJpUGFyYWRpZ21zIj4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BbWVyaWNhbiBKb3VybmFsIG9mIFJlc3BpcmF0b3J5IGFuZCBDcml0aWNhbCBDYXJlIE1lZGljaW5lPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE3OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMiI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDAxNjgtMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzIj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTY0L3JjY20uMjAwNjA0LTQ3Mk9DPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNCI+DQogICAgICAgICAgICAgIDxkb2k+MTAuNTU4OC9panRsZC4xMS4wMzY0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNSI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDUwNTgtMTE8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI2Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDQyMC0wMTAtMDU3MS14PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNyI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA4Ni81OTM5NjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI4Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMzc4L2NoZXN0LjA5LTIzNTA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SW50ZXJuYXRpb25hbCBKb3VybmFsIG9mIFR1YmVyY3Vsb3NpcyBhbmQgTHVuZyBEaXNlYXNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEyPC92b2x1bWU+DQogICAgICAgICAgICAgIDxpc3N1ZT4xMTwvaXNzdWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEyMzU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMCI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA1Ni9ORUpNc2EwMzE2Njc8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMSI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMjguMS4xMTY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMiI+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1vcmJpZGl0eSBhbmQgTW9ydGFsaXR5IFdlZWtseSBSZXBvcnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDx2b2x1bWU+NTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGlzc3VlPjU8L2lzc3VlPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTQiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTUiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTYiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTciPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTgiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjAiPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5MjwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjIiPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjMyMDUvZGdraDAwMDE0ODwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIzIj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMzc4L2NoZXN0LjExLTA5OTI8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyNCI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTE4Ni8xNDcxLTIzMzQtMTAtMjIwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjUiPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExODYvMTc0NS02NjczLTctNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI3Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTI4L0NWSS4wMDM5OC0wNzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI4Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTY0L3JjY20uMjAxMDA2LTA5NzRPQzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI5Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTM2L3RoeC4yMDEwLjE0MzE4MDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjMwIj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMzc4L2NoZXN0LjEyLTAwNDU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
35
+ http_version:
36
+ recorded_at: Thu, 10 Jan 2019 23:28:23 GMT
37
+ - request:
38
+ method: get
39
+ uri: http://www.crossref.org/openurl/?format=unixref&id=doi:10.1155/2012/291294&noredirect=true&pid=tech@datacite.org
40
+ body:
41
+ encoding: US-ASCII
42
+ string: ''
43
+ headers:
44
+ User-Agent:
45
+ - Mozilla/5.0 (compatible; Maremma/4.2.1; +https://github.com/datacite/maremma)
46
+ Accept:
47
+ - text/xml
48
+ response:
49
+ status:
50
+ code: 200
51
+ message: OK
52
+ headers:
53
+ Server:
54
+ - Apache-Coyote/1.1
55
+ Crossref-Deployment-Name:
56
+ - qs2-2
57
+ Content-Type:
58
+ - text/xml;charset=UTF-8
59
+ Content-Language:
60
+ - en-US
61
+ Date:
62
+ - Thu, 10 Jan 2019 23:28:23 GMT
63
+ Connection:
64
+ - close
65
+ body:
66
+ encoding: ASCII-8BIT
67
+ string: !binary |-
68
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRvaV9yZWNvcmRzPg0KICA8ZG9pX3JlY29yZCBvd25lcj0iMTAuMTE1NSIgdGltZXN0YW1wPSIyMDE2LTA4LTAyIDE0OjQyOjQxIj4NCiAgICA8Y3Jvc3NyZWY+DQogICAgICA8am91cm5hbD4NCiAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICA8ZnVsbF90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2Z1bGxfdGl0bGU+DQogICAgICAgICAgPGFiYnJldl90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2FiYnJldl90aXRsZT4NCiAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJwcmludCI+MjA5MC0xODM2PC9pc3NuPg0KICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIwOTAtMTg0NDwvaXNzbj4NCiAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICA8dm9sdW1lPjIwMTI8L3ZvbHVtZT4NCiAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgPHRpdGxlPkRlbGluZWF0aW5nIGEgUmV0ZXN0aW5nIFpvbmUgVXNpbmcgUmVjZWl2ZXIgT3BlcmF0aW5nIENoYXJhY3RlcmlzdGljIEFuYWx5c2lzIG9uIFNlcmlhbCBRdWFudGlGRVJPTiBUdWJlcmN1bG9zaXMgVGVzdCBSZXN1bHRzIGluIFVTIEhlYWx0aGNhcmUgV29ya2VyczwvdGl0bGU+DQogICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgIDxnaXZlbl9uYW1lPldlbmR5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5UaGFuYXNzaTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFZldGVyYW5zIEFmZmFpcnMgUGFsbyBBbHRvIEhlYWx0aCBDYXJlIFN5c3RlbSwgMzgwMSBNaXJhbmRhIEF2ZW51ZSBNQy0sIFBhbG8gQWx0bywgQ0EgOTQzMDQtMTIwNywgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPk9jY3VwYXRpb25hbCBIZWFsdGggU3RyYXRlZ2ljIEhlYWx0aCBDYXJlIEdyb3VwLCBPZmZpY2Ugb2YgUHVibGljIEhlYWx0aCwgVmV0ZXJhbnMgSGVhbHRoIEFkbWluaXN0cmF0aW9uLCBXYXNoaW5ndG9uLCBEQyAyMDAwNiwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRpdmlzaW9uIG9mIEVtZXJnZW5jeSBNZWRpY2luZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5BcnQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk5vZGE8L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQc3ljaGlhdHJ5IGFuZCBCZWhhdmlvcmFsIFNjaWVuY2VzLCBTdGFuZm9yZCBVbml2ZXJzaXR5IFNjaG9vbCBvZiBNZWRpY2luZSwgU3RhbmZvcmQsIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QmVhdHJpejwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+SGVybmFuZGV6PC9zdXJuYW1lPg0KICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+V2FyIFJlbGF0ZWQgSWxsbmVzcyBhbmQgSW5qdXJ5IFN0dWR5IENlbnRlciAoV1JJSVNDKSBhbmQgTWVudGFsIElsbG5lc3MgUmVzZWFyY2ggRWR1Y2F0aW9uIGFuZCBDbGluaWNhbCBDZW50ZXIgKE1JUkVDQyksIERlcGFydG1lbnQgb2YgVmV0ZXJhbnMgQWZmYWlycywgUGFsbyBBbHRvLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUHN5Y2hpYXRyeSBhbmQgQmVoYXZpb3JhbCBTY2llbmNlcywgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgPE9SQ0lEIGF1dGhlbnRpY2F0ZWQ9InRydWUiPmh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTIwNDMtNDkyNTwvT1JDSUQ+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KZWZmZXJ5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5OZXdlbGw8L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+UGF1bDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgPHN1cm5hbWU+VGVycGVsdWs8L3N1cm5hbWU+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIE9jY3VwYXRpb25hbCBIZWFsdGgsIFRoZSBDbGV2ZWxhbmQgQ2xpbmljLCBDbGV2ZWxhbmQsIE9IIDQ0MTk1LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+RGF2aWQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgIDxzdXJuYW1lPk1hcmRlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgSGVhbHRoIFNlcnZpY2VzLCBVbml2ZXJzaXR5IG9mIElsbGlub2lzIENoaWNhZ28sIENoaWNhZ28sIElMIDYwNjEyLCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SmVyb21lIEEuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICA8c3VybmFtZT5ZZXNhdmFnZTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBzeWNoaWF0cnkgYW5kIEJlaGF2aW9yYWwgU2NpZW5jZXMsIFN0YW5mb3JkIFVuaXZlcnNpdHkgU2Nob29sIG9mIE1lZGljaW5lLCBTdGFuZm9yZCwgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgIDxhYnN0cmFjdD4NCiAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICA8aXRhbGljPk9iamVjdGl2ZTwvaXRhbGljPg0KICAgICAgICAgICAgICAuIFRvIGZpbmQgYSBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50IHNlcGFyYXRpb24gcG9pbnQgZm9yIHRoZSBRdWFudGlGRVJPTiBHb2xkIEluLVR1YmUgKFFGVCkgaW50ZXJmZXJvbiBnYW1tYSByZWxlYXNlIGFzc2F5IHRoYXQgY291bGQgZGVmaW5lIGFuIG9wdGltYWwg4oCccmV0ZXN0aW5nIHpvbmXigJ0gZm9yIHVzZSBpbiBzZXJpYWxseSB0ZXN0ZWQgbG93LXJpc2sgcG9wdWxhdGlvbnMgd2hvIGhhdmUgdGVzdCDigJxyZXZlcnNpb25z4oCdIGZyb20gaW5pdGlhbGx5IHBvc2l0aXZlIHRvIHN1YnNlcXVlbnRseSBuZWdhdGl2ZSByZXN1bHRzLg0KICAgICAgICAgICAgICA8aXRhbGljPk1ldGhvZDwvaXRhbGljPg0KICAgICAgICAgICAgICAuIFVzaW5nIHJlY2VpdmVyIG9wZXJhdGluZyBjaGFyYWN0ZXJpc3RpYyBhbmFseXNpcyAoUk9DKSB0byBhbmFseXplIHJldHJvc3BlY3RpdmUgZGF0YSBjb2xsZWN0ZWQgZnJvbSAzIG1ham9yIGhvc3BpdGFscywgd2Ugc2VhcmNoZWQgZm9yIHByZWRpY3RvcnMgb2YgcmV2ZXJzaW9uIHVudGlsIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgc2VwYXJhdGlvbiBwb2ludHMgd2VyZSByZXZlYWxlZC4gQSBjb25maXJtYXRvcnkgcmVncmVzc2lvbiBhbmFseXNpcyB3YXMgcGVyZm9ybWVkIG9uIGFuIGFkZGl0aW9uYWwgc2FtcGxlLg0KICAgICAgICAgICAgICA8aXRhbGljPlJlc3VsdHM8L2l0YWxpYz4NCiAgICAgICAgICAgICAgLiBJbiA1NzUgaW5pdGlhbGx5IHBvc2l0aXZlIFVTIGhlYWx0aGNhcmUgd29ya2VycyAoSENXcyksIDMwMCAoNTIuMiUpIGhhZCByZXZlcnNpb25zLCB3aGlsZSAyNzUgKDQ3LjglKSBoYWQgdHdvIHNlcXVlbnRpYWwgcG9zaXRpdmUgdGVzdHMuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgKEthcHBh4oCJPeKAiTAuNDgsIGNoaS1zcXVhcmXigIk94oCJMTMxLjAsDQogICAgICAgICAgICAgIDxtYXRoIGlkPSJNMSI+DQogICAgICAgICAgICAgICAgPG1yb3c+DQogICAgICAgICAgICAgICAgICA8bWk+UDwvbWk+DQogICAgICAgICAgICAgICAgICA8bW8+Jmx0OzwvbW8+DQogICAgICAgICAgICAgICAgICA8bW4+MC4wMDE8L21uPg0KICAgICAgICAgICAgICAgIDwvbXJvdz4NCiAgICAgICAgICAgICAgPC9tYXRoPg0KICAgICAgICAgICAgICApIHNlcGFyYXRpb24gcG9pbnQgaWRlbnRpZmllZCBieSB0aGUgUk9DIGZvciBwcmVkaWN0aW5nIHJldmVyc2lvbiB3YXMgdGhlIHR1YmVyY3Vsb3NpcyBhbnRpZ2VuIG1pbnVzLW5pbCAoVEJhZy1uaWwpIHZhbHVlIGF0IDEuMTEgSW50ZXJuYXRpb25hbCBVbml0cyBwZXIgbWlsbGlsaXRlciAoSVUvbUwpLiBUaGUgc2Vjb25kIHNlcGFyYXRpb24gcG9pbnQgd2FzIGZvdW5kIGF0IFRCYWctbmlsIGF0IDAuNzLigIlJVS9tTCAoS2FwcGHigIk94oCJMC4xNiwgY2hpLXNxdWFyZeKAiT3igIk4LjIsDQogICAgICAgICAgICAgIDxtYXRoIGlkPSJNMiI+DQogICAgICAgICAgICAgICAgPG1yb3c+DQogICAgICAgICAgICAgICAgICA8bWk+UDwvbWk+DQogICAgICAgICAgICAgICAgICA8bW8+Jmx0OzwvbW8+DQogICAgICAgICAgICAgICAgICA8bW4+MC4wMTwvbW4+DQogICAgICAgICAgICAgICAgPC9tcm93Pg0KICAgICAgICAgICAgICA8L21hdGg+DQogICAgICAgICAgICAgICkuIFRoZSBtb2RlbCB3YXMgdmFsaWRhdGVkIGJ5IHRoZSByZWdyZXNzaW9uIGFuYWx5c2lzIG9mIDI4N+KAiUhDV3MuDQogICAgICAgICAgICAgIDxpdGFsaWM+Q29uY2x1c2lvbjwvaXRhbGljPg0KICAgICAgICAgICAgICAuIFJldmVyc2lvbiBsaWtlbGlob29kIGluY3JlYXNlcyBhcyB0aGUgVEJhZy1uaWwgYXBwcm9hY2hlcyB0aGUgbWFudWZhY3R1cmVyJ3MgY3V0LXBvaW50IG9mIDAuMzXigIlJVS9tTC4gVGhlIG1vc3Qgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50IGJldHdlZW4gdGhvc2Ugd2hvIHRlc3QgcmVwZWF0ZWRseSBwb3NpdGl2ZSBhbmQgdGhvc2Ugd2hvIHJldmVydCBpcyAxLjEx4oCJSVUvbUwuIENsaW5pY2lhbnMgc2hvdWxkIHJldGVzdCBsb3ctcmlzayBpbmRpdmlkdWFscyB3aXRoIGluaXRpYWwgUUZUIHJlc3VsdHPigIkmbHQ74oCJMS4xMeKAiUlVL21MLg0KICAgICAgICAgICAgPC9wPg0KICAgICAgICAgIDwvYWJzdHJhY3Q+DQogICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgPHllYXI+MjAxMjwveWVhcj4NCiAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgPHBhZ2VzPg0KICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgIDxsYXN0X3BhZ2U+NzwvbGFzdF9wYWdlPg0KICAgICAgICAgIDwvcGFnZXM+DQogICAgICAgICAgPHB1Ymxpc2hlcl9pdGVtPg0KICAgICAgICAgICAgPGlkZW50aWZpZXIgaWRfdHlwZT0icGlpIj4yOTEyOTQ8L2lkZW50aWZpZXI+DQogICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJvdGhlciI+MjkxMjk0PC9pZGVudGlmaWVyPg0KICAgICAgICAgIDwvcHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgPHByb2dyYW0gbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICA8bGljZW5zZV9yZWY+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvbGljZW5zZV9yZWY+DQogICAgICAgICAgPC9wcm9ncmFtPg0KICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgIDxkb2k+MTAuMTE1NS8yMDEyLzI5MTI5NDwvZG9pPg0KICAgICAgICAgICAgPHRpbWVzdGFtcD4yMDE2MDgwMjAzNDEyNTwvdGltZXN0YW1wPg0KICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly93d3cuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQvPC9yZXNvdXJjZT4NCiAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyIgc2V0YnlJRD0iaGluZGF3aSI+DQogICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3htbCI+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC54bWw8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0iY3Jhd2xlci1iYXNlZCIgc2V0YnlJRD0iaGluZGF3aSI+DQogICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9Imdvb2dsZSI+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJtc24iPg0KICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iYWx0YXZpc3RhIj4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9InlhaG9vIj4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9InNjaXJ1cyI+DQogICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJpUGFyYWRpZ21zIj4NCiAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEiPg0KICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BbWVyaWNhbiBKb3VybmFsIG9mIFJlc3BpcmF0b3J5IGFuZCBDcml0aWNhbCBDYXJlIE1lZGljaW5lPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8dm9sdW1lPjE3OTwvdm9sdW1lPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMiI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDAxNjgtMDk8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzIj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTY0L3JjY20uMjAwNjA0LTQ3Mk9DPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNCI+DQogICAgICAgICAgICAgIDxkb2k+MTAuNTU4OC9panRsZC4xMS4wMzY0PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNSI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDUwNTgtMTE8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI2Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDQyMC0wMTAtMDU3MS14PC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNyI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA4Ni81OTM5NjU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI4Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMzc4L2NoZXN0LjA5LTIzNTA8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5Ij4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SW50ZXJuYXRpb25hbCBKb3VybmFsIG9mIFR1YmVyY3Vsb3NpcyBhbmQgTHVuZyBEaXNlYXNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICA8dm9sdW1lPjEyPC92b2x1bWU+DQogICAgICAgICAgICAgIDxpc3N1ZT4xMTwvaXNzdWU+DQogICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEyMzU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMCI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTA1Ni9ORUpNc2EwMzE2Njc8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMSI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMjguMS4xMTY8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMiI+DQogICAgICAgICAgICAgIDxjWWVhcj4yMDEyPC9jWWVhcj4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMyI+DQogICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1vcmJpZGl0eSBhbmQgTW9ydGFsaXR5IFdlZWtseSBSZXBvcnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgIDx2b2x1bWU+NTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgPGlzc3VlPjU8L2lzc3VlPg0KICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTQiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTUiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTYiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTciPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTgiPg0KICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjAiPg0KICAgICAgICAgICAgICA8Y1llYXI+MTk5MjwvY1llYXI+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjIiPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjMyMDUvZGdraDAwMDE0ODwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIzIj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMzc4L2NoZXN0LjExLTA5OTI8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyNCI+DQogICAgICAgICAgICAgIDxkb2k+MTAuMTE4Ni8xNDcxLTIzMzQtMTAtMjIwPC9kb2k+DQogICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjUiPg0KICAgICAgICAgICAgICA8ZG9pPjEwLjExODYvMTc0NS02NjczLTctNjwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI3Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTI4L0NWSS4wMDM5OC0wNzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI4Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTY0L3JjY20uMjAxMDA2LTA5NzRPQzwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI5Ij4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMTM2L3RoeC4yMDEwLjE0MzE4MDwvZG9pPg0KICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjMwIj4NCiAgICAgICAgICAgICAgPGRvaT4xMC4xMzc4L2NoZXN0LjEyLTAwNDU8L2RvaT4NCiAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgIDwvam91cm5hbD4NCiAgICA8L2Nyb3NzcmVmPg0KICA8L2RvaV9yZWNvcmQ+DQo8L2RvaV9yZWNvcmRzPg==
69
+ http_version:
70
+ recorded_at: Thu, 10 Jan 2019 23:28:23 GMT
71
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Bolognese::Metadata, vcr: true do
6
+ context "write metadata as csv" do
7
+ it "with data citation" do
8
+ input = "10.7554/eLife.01567"
9
+ subject = Bolognese::Metadata.new(input: input, from: "crossref")
10
+ csv = (subject.csv).parse_csv
11
+
12
+ expect(csv[0]).to eq("10.7554/elife.01567")
13
+ expect(csv[1]).to eq("https://elifesciences.org/articles/01567")
14
+ expect(csv[2]).to eq("2014")
15
+ expect(csv[3]).to eq("article")
16
+ expect(csv[4]).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
17
+ expect(csv[5]).to eq("Sankar, Martial and Nieminen, Kaisa and Ragni, Laura and Xenarios, Ioannis and Hardtke, Christian S")
18
+ expect(csv[6]).to eq("(:unav)")
19
+ expect(csv[7]).to eq("eLife")
20
+ end
21
+
22
+ it "with pages" do
23
+ input = "https://doi.org/10.1155/2012/291294"
24
+ subject = Bolognese::Metadata.new(input: input, from: "crossref")
25
+ csv = (subject.csv).parse_csv
26
+
27
+ expect(csv[0]).to eq("10.1155/2012/291294")
28
+ expect(csv[1]).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
29
+ expect(csv[2]).to eq("2012")
30
+ expect(csv[3]).to eq("article")
31
+ expect(csv[4]).to eq("Delineating a Retesting Zone Using Receiver Operating Characteristic Analysis on Serial QuantiFERON Tuberculosis Test Results in US Healthcare Workers")
32
+ expect(csv[5]).to eq("Thanassi, Wendy and Noda, Art and Hernandez, Beatriz and Newell, Jeffery and Terpeluk, Paul and Marder, David and Yesavage, Jerome A.")
33
+ expect(csv[6]).to eq("(:unav)")
34
+ expect(csv[7]).to eq("Pulmonary Medicine")
35
+ expect(csv[10]).to eq("1-7")
36
+ end
37
+
38
+ it "text" do
39
+ input = "https://doi.org/10.17173/PRETEST8"
40
+ subject = Bolognese::Metadata.new(input: input, from: "datacite")
41
+ expect(subject.valid?).to be true
42
+ csv = (subject.csv).parse_csv
43
+
44
+ expect(csv[0]).to eq("10.17173/pretest8")
45
+ expect(csv[1]).to eq("http://pretest.gesis.org/Pretest/DoiId/10.17173/pretest8")
46
+ expect(csv[2]).to eq("2014")
47
+ expect(csv[3]).to eq("article")
48
+ expect(csv[4]).to eq("PIAAC-Longitudinal (PIAAC-L) 2015")
49
+ expect(csv[5]).to eq("Lenzner, T. and Neuert, C. and Otto, W. and Landrock, U. and Menold, N.")
50
+ expect(csv[6]).to eq("GESIS – Pretest Lab")
51
+ end
52
+
53
+ it "climate data" do
54
+ input = "https://doi.org/10.5067/altcy-tj122"
55
+ subject = Bolognese::Metadata.new(input: input, from: "datacite")
56
+ expect(subject.valid?).to be true
57
+ csv = (subject.csv).parse_csv
58
+
59
+ expect(csv[0]).to eq("10.5067/altcy-tj122")
60
+ expect(csv[1]).to eq("http://podaac.jpl.nasa.gov/dataset/MERGED_TP_J1_OSTM_OST_CYCLES_V2")
61
+ expect(csv[2]).to eq("2012")
62
+ expect(csv[3]).to eq("misc")
63
+ expect(csv[4]).to eq("Integrated Multi-Mission Ocean Altimeter Data for Climate Research Version 2")
64
+ expect(csv[5]).to eq("{GSFC}")
65
+ expect(csv[6]).to eq("NASA Physical Oceanography DAAC")
66
+ end
67
+
68
+ it "maremma" do
69
+ input = "https://github.com/datacite/maremma"
70
+ subject = Bolognese::Metadata.new(input: input, from: "codemeta")
71
+ csv = (subject.csv).parse_csv
72
+
73
+ expect(csv[0]).to eq("10.5438/qeg0-3gm3")
74
+ expect(csv[1]).to eq("https://github.com/datacite/maremma")
75
+ expect(csv[2]).to eq("2017")
76
+ expect(csv[3]).to eq("misc")
77
+ expect(csv[4]).to eq("Maremma: a Ruby library for simplified network calls")
78
+ expect(csv[5]).to eq("Fenner, Martin")
79
+ expect(csv[6]).to eq("DataCite")
80
+ expect(csv[12]).to eq("faraday, excon, net/http")
81
+ end
82
+ end
83
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.36
4
+ version: '1.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-10 00:00:00.000000000 Z
11
+ date: 2019-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -563,6 +563,7 @@ files:
563
563
  - lib/bolognese/writers/codemeta_writer.rb
564
564
  - lib/bolognese/writers/crosscite_writer.rb
565
565
  - lib/bolognese/writers/crossref_writer.rb
566
+ - lib/bolognese/writers/csv_writer.rb
566
567
  - lib/bolognese/writers/datacite_json_writer.rb
567
568
  - lib/bolognese/writers/datacite_writer.rb
568
569
  - lib/bolognese/writers/jats_writer.rb
@@ -963,6 +964,11 @@ files:
963
964
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation.yml
964
965
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml
965
966
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crossref/from_DataCite.yml
967
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/climate_data.yml
968
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/maremma.yml
969
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/text.yml
970
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_data_citation.yml
971
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_pages.yml
966
972
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/maremma.yml
967
973
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml
968
974
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation.yml
@@ -1027,6 +1033,7 @@ files:
1027
1033
  - spec/writers/codemeta_writer_spec.rb
1028
1034
  - spec/writers/crosscite_writer_spec.rb
1029
1035
  - spec/writers/crossref_writer_spec.rb
1036
+ - spec/writers/csv_writer_spec.rb
1030
1037
  - spec/writers/datacite_json_writer_spec.rb
1031
1038
  - spec/writers/datacite_writer_spec.rb
1032
1039
  - spec/writers/jats_writer_spec.rb