bolognese 1.3.8 → 1.3.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/lib/bolognese/readers/crossref_reader.rb +3 -3
- data/lib/bolognese/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +90 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Schema_org_type.yml +95 -0
- data/spec/readers/crossref_reader_spec.rb +20 -0
- data/spec/readers/datacite_reader_spec.rb +17 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76b5306fb2cc570336bc55cfa1436cb42813fc31ba5544ba18e73d92081e5a08
|
4
|
+
data.tar.gz: bad7cfd38e2c4f5d027e2f80e4b35d468270788914702199e6afe4564b515a78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4eb28664727d0955a92ea219d5ff97e72bfcdee381ac9efb35d393b28ed927ff0008217bc7f9993395b4ca37de536db1e0da3268223913746ad66a957c2a8de9
|
7
|
+
data.tar.gz: 3f97ba6de19c84ed43f4bab2fa20076854b5a20f136be0b507175c18ceba590324190d383fa1b952931b6466a7b94aa9d36b8009c59eed51f752bba151361ef5
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bolognese (1.3.
|
4
|
+
bolognese (1.3.9)
|
5
5
|
activesupport (>= 4.2.5, < 6)
|
6
6
|
benchmark_methods (~> 0.7)
|
7
7
|
bibtex-ruby (~> 4.1)
|
@@ -124,7 +124,7 @@ GEM
|
|
124
124
|
rack (2.0.7)
|
125
125
|
rack-test (0.8.3)
|
126
126
|
rack (>= 1.0, < 3)
|
127
|
-
rake (12.3.
|
127
|
+
rake (12.3.3)
|
128
128
|
rdf (3.0.12)
|
129
129
|
hamster (~> 3.0)
|
130
130
|
link_header (~> 0.0, >= 0.0.8)
|
@@ -179,7 +179,7 @@ GEM
|
|
179
179
|
thread_safe (~> 0.1)
|
180
180
|
unicode_utils (1.4.0)
|
181
181
|
vcr (3.0.3)
|
182
|
-
webmock (3.6.
|
182
|
+
webmock (3.6.2)
|
183
183
|
addressable (>= 2.3.6)
|
184
184
|
crack (>= 0.3.2)
|
185
185
|
hashdiff (>= 0.4.0, < 2.0.0)
|
@@ -122,9 +122,9 @@ module Bolognese
|
|
122
122
|
{ "type" => "Journal",
|
123
123
|
"identifier" => issn,
|
124
124
|
"identifierType" => issn.present? ? "ISSN" : nil,
|
125
|
-
"title" => journal_metadata.to_h["full_title"],
|
126
|
-
"volume" => journal_issue.dig("journal_volume", "volume"),
|
127
|
-
"issue" => journal_issue.dig("issue"),
|
125
|
+
"title" => parse_attributes(journal_metadata.to_h["full_title"]),
|
126
|
+
"volume" => parse_attributes(journal_issue.dig("journal_volume", "volume")),
|
127
|
+
"issue" => parse_attributes(journal_issue.dig("issue")),
|
128
128
|
"firstPage" => bibliographic_metadata.dig("pages", "first_page"),
|
129
129
|
"lastPage" => bibliographic_metadata.dig("pages", "last_page") }.compact
|
130
130
|
elsif book_series_metadata.to_h.fetch("series_metadata", nil).present?
|
data/lib/bolognese/version.rb
CHANGED
@@ -0,0 +1,90 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.1163
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.6; mailto:info@datacite.org)
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: ''
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Sat, 03 Aug 2019 09:37:26 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Content-Length:
|
24
|
+
- '54'
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Set-Cookie:
|
28
|
+
- __cfduid=d5f04dfaf486d08758265fa7ea1a2b1fe1564825046; expires=Sun, 02-Aug-20
|
29
|
+
09:37:26 GMT; path=/; domain=.doi.org; HttpOnly
|
30
|
+
Strict-Transport-Security:
|
31
|
+
- max-age=86400; includeSubDomains
|
32
|
+
Expect-Ct:
|
33
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
34
|
+
Server:
|
35
|
+
- cloudflare
|
36
|
+
Cf-Ray:
|
37
|
+
- 5007501f88d1c2e0-FRA
|
38
|
+
body:
|
39
|
+
encoding: ASCII-8BIT
|
40
|
+
string: |-
|
41
|
+
[
|
42
|
+
{
|
43
|
+
"DOI": "10.1163",
|
44
|
+
"RA": "Crossref"
|
45
|
+
}
|
46
|
+
]
|
47
|
+
http_version:
|
48
|
+
recorded_at: Sat, 03 Aug 2019 09:37:27 GMT
|
49
|
+
- request:
|
50
|
+
method: get
|
51
|
+
uri: https://api.crossref.org/works/10.1163/1937240x-00002096/transform/application/vnd.crossref.unixsd+xml
|
52
|
+
body:
|
53
|
+
encoding: US-ASCII
|
54
|
+
string: ''
|
55
|
+
headers:
|
56
|
+
User-Agent:
|
57
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.6; mailto:info@datacite.org)
|
58
|
+
Accept:
|
59
|
+
- text/xml
|
60
|
+
response:
|
61
|
+
status:
|
62
|
+
code: 200
|
63
|
+
message: OK
|
64
|
+
headers:
|
65
|
+
Link:
|
66
|
+
- <http://dx.doi.org/10.1163/1937240x-00002096>; rel="canonical", <http://academic.oup.com/jcb/article-pdf/32/6/949/10336473/jcb0949.pdf>;
|
67
|
+
version="vor"; rel="item"
|
68
|
+
Access-Control-Allow-Origin:
|
69
|
+
- "*"
|
70
|
+
Access-Control-Allow-Headers:
|
71
|
+
- X-Requested-With
|
72
|
+
Content-Length:
|
73
|
+
- '59976'
|
74
|
+
Server:
|
75
|
+
- http-kit
|
76
|
+
Date:
|
77
|
+
- Sat, 03 Aug 2019 09:37:27 GMT
|
78
|
+
X-Rate-Limit-Limit:
|
79
|
+
- '50'
|
80
|
+
X-Rate-Limit-Interval:
|
81
|
+
- 1s
|
82
|
+
Connection:
|
83
|
+
- close
|
84
|
+
body:
|
85
|
+
encoding: ASCII-8BIT
|
86
|
+
string: !binary |-
|
87
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4xMTYzLzE5MzcyNDBYLTAwMDAyMDk2PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5PeGZvcmQgVW5pdmVyc2l0eSBQcmVzcyAoT1VQKTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5PeGZvcmQgVW5pdmVyc2l0eSBQcmVzczwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJtZW1iZXItaWQiIHR5cGU9Im51bWJlciI+Mjg2PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGF0aW9uLWlkIiB0eXBlPSJudW1iZXIiPjU4Njg0NDczPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImpvdXJuYWwtaWQiIHR5cGU9Im51bWJlciI+NTU3MDE8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxNTA5MjUxMTI0MzgwMDAwPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im93bmVyLXByZWZpeCIgdHlwZT0ic3RyaW5nIj4xMC4xMDkzPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Imxhc3QtdXBkYXRlIiB0eXBlPSJkYXRlIj4yMDE5LTA3LTA1VDIwOjUzOjEwWjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjcmVhdGVkIiB0eXBlPSJkYXRlIj4yMDEyLTExLTIwVDE4OjIyOjQ5WjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRlZGJ5LWNvdW50IiB0eXBlPSJudW1iZXIiPjE0PC9jcm0taXRlbT4NCiAgICAgICAgPGRvaV9yZWNvcmQ+DQogICAgICAgICAgPGNyb3NzcmVmIHhtbG5zPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSBodHRwOi8vZG9pLmNyb3NzcmVmLm9yZy9zY2hlbWFzL3VuaXhyZWYxLjEueHNkIj4NCiAgICAgICAgICAgIDxqb3VybmFsPg0KICAgICAgICAgICAgICA8am91cm5hbF9tZXRhZGF0YSBsYW5ndWFnZT0iZW4iPg0KICAgICAgICAgICAgICAgIDxmdWxsX3RpdGxlIHhtbG5zOmZvYWY9Imh0dHA6Ly94bWxucy5jb20vZm9hZi8wLjEvIiB4bWxuczpyZGZzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzAxL3JkZi1zY2hlbWEjIj5Kb3VybmFsIG9mIENydXN0YWNlYW4gQmlvbG9neTwvZnVsbF90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyIgbWVkaWFfdHlwZT0icHJpbnQiPjAyNzgtMDM3MjwvaXNzbj4NCiAgICAgICAgICAgICAgICA8aXNzbiB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyIgbWVkaWFfdHlwZT0iZWxlY3Ryb25pYyI+MTkzNy0yNDBYPC9pc3NuPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxqb3VybmFsX2lzc3VlPg0KICAgICAgICAgICAgICAgIDxwdWJsaWNhdGlvbl9kYXRlIHhtbG5zOmZvYWY9Imh0dHA6Ly94bWxucy5jb20vZm9hZi8wLjEvIiB4bWxuczpyZGZzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzAxL3JkZi1zY2hlbWEjIiBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8bW9udGg+MDE8L21vbnRoPg0KICAgICAgICAgICAgICAgICAgPGRheT4wMTwvZGF5Pg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxMjwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPGpvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgPHZvbHVtZSB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyI+MzI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICAgIDxpc3N1ZSB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyI+NjwvaXNzdWU+DQogICAgICAgICAgICAgIDwvam91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfYXJ0aWNsZSBwdWJsaWNhdGlvbl90eXBlPSJmdWxsX3RleHQiPg0KICAgICAgICAgICAgICAgIDx0aXRsZXMgeG1sbnM6Zm9hZj0iaHR0cDovL3htbG5zLmNvbS9mb2FmLzAuMS8iIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkdsb2JhbCBkaXN0cmlidXRpb24gb2YgRmFiYWVmb3JtaXNjYW5kb25hIHN1YmFjdXRhOiBhbsKgZXhvdGljwqBpbnZhc2l2ZSBPc3RyYWNvZGEgb24gdGhlIEliZXJpYW4gUGVuaW5zdWxhPzwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycyB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyI+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImFkZGl0aW9uYWwiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkZyYW5jZXNjPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5NZXNxdWl0YS1Kb2FuZXM8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5Kb3NlcCBBLjwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+QWd1aWxhci1BbGJlcm9sYTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImFkZGl0aW9uYWwiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkV1Z2VuZSBJLjwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+U2Nob3JuaWtvdjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImFkZGl0aW9uYWwiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkp1YW48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlJ1ZWRhPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+Um9iaW4gSi48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlNtaXRoPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkFuZHJldTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+RXNjcml2w6A8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5UYWthaGlybzwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+S2FtaXlhPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SXZhbmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPkthcmFub3ZpYzwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgeG1sbnM6Zm9hZj0iaHR0cDovL3htbG5zLmNvbS9mb2FmLzAuMS8iIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIG1lZGlhX3R5cGU9InByaW50Ij4NCiAgICAgICAgICAgICAgICAgIDxtb250aD4wMTwvbW9udGg+DQogICAgICAgICAgICAgICAgICA8ZGF5PjAxPC9kYXk+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8cGFnZXMgeG1sbnM6Zm9hZj0iaHR0cDovL3htbG5zLmNvbS9mb2FmLzAuMS8iIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiPg0KICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+OTQ5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT45NjE8L2xhc3RfcGFnZT4NCiAgICAgICAgICAgICAgICA8L3BhZ2VzPg0KICAgICAgICAgICAgICAgIDxkb2lfZGF0YSB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIgeG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyI+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNjMvMTkzNzI0MFgtMDAwMDIwOTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2FjYWRlbWljLm91cC5jb20vamNiL2FydGljbGUtbG9va3VwL2RvaS8xMC4xMTYzLzE5MzcyNDBYLTAwMDAyMDk2PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIj4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9hY2FkZW1pYy5vdXAuY29tL2pjYi9hcnRpY2xlLXBkZi8zMi82Lzk0OS8xMDMzNjQ3My9qY2IwOTQ5LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxjaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Sb3pwcmF2eSBDZXNrb3Nsb3ZlbnNrZSBBa2FkZW1pZSBWZWQsIFJhZGEgTWF0ZW1hdGlja3ljaCBBIFByaXJvZG5pY2ggVmVkPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkFic29sb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT44ODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+NTwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTc4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RGllIEdhdHR1bmcgQ2FuZG9uYWltIFF1YXJ0YXIgdm9uIEV1cm9wYTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk9lY29sb2dpYSBhcXVhdGljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Bcm1lbmdvbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5Nzg8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Mb3MgY3J1c3TDoWNlb3MgZGVsIHBsYW5jdG9uIGRlIGxvcyBlbWJhbHNlcyBlc3Bhw7FvbGVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QXJjaGl2IGbDvHIgSHlkcm9iaW9sb2dpZS9TdXBwbC48L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+QmFsdGFuw6FzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+OTA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk5MjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgY29udHJpYnV0aW9uIHRvIHRoZSBrbm93bGVkZ2Ugb2YgY3lwcmlkaWQgb3N0cmFjb2RlIGZhdW5hIChDcnVzdGFjZWEsIE9zdHJhY29kYSwgQ3lwcmlkaWRhZSkgb24gdGhlIEliZXJpYW4gcGVuaW5zdWxhLCBhbmQgYSBjb21wYXJpc29uIHdpdGggYWRqYWNlbnQgYXJlYXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjQiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPkxpc3RhIGZhdW7DrXN0aWNhIHkgQmlibGlvZ3LDoWZpY2EgZGUgbG9zIG9zdHLDoWNvZG9zIG5vIG1hcmlub3MgKENydXN0YWNlYSwgT3N0cmFjb2RhKSBkZSBsYSBQZW7DrW5zdWxhIEliw6lyaWNhLCBJc2xhcyBCYWxlYXJlcyBlIElzbGFzIENhbmFyaWFzPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+QmFsdGFuw6FzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHNlcmllc190aXRsZT5MaXN0YXMgZGUgbGEgRmxvcmEgeSBGYXVuYSBkZSBsYXMgQWd1YXMgQ29udGluZW50YWxlcyBkZSBsYSBQZW7DrW5zdWxhIEliw6lyaWNhLCBOwrDCoDEyPC9zZXJpZXNfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5FdGhvbG9neSBFY29sb2d5IGFuZCBFdm9sdXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+QmVpc2VsPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTkzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDgwLzA4OTI3MDE0LjIwMDEuOTUyMjc4NTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UaGUgZWx1c2l2ZSBtb2RlbCBvZiBhIGJpb2xvZ2ljYWwgaW52YXNpb24gcHJvY2VzczogdGltZSB0byB0YWtlIGRpZmZlcmVuY2VzIGFtb25nIGFxdWF0aWMgYW5kIHRlcnJlc3RyaWFsIGVjb3N5c3RlbXMgaW50byBhY2NvdW50PzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkFubnVhbCBSZXZpZXcgb2YgRWNvbG9neSBhbmQgU3lzdGVtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+QmlsdG9uPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MzI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTU5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTQ2L2FubnVyZXYuZWNvbHN5cy4zMi4wODE1MDEuMTE0MDE2PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkRpc3BlcnNhbCBpbiBmcmVzaHdhdGVyIGludmVydGVicmF0ZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjciPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPkZyZXNod2F0ZXIgT3N0cmFjb2RhLiBGYXVuYSBvZiB0aGUgVVNTUiwgQ3J1c3RhY2VhPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+QnJvbnNodGVpbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPlZvbC4gSUk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5NDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8c2VyaWVzX3RpdGxlPlJ1c3NpYW4gVHJhbnNsYXRpb25zIFNlcmllcyA2NDwvc2VyaWVzX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+T2Vjb2xvZ2lhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkPDoWNlcmVzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTMxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQwMjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAwNy9zMDA0NDItMDAyLTA4OTctNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5CbG93aW5nIGluIHRoZSB3aW5kOiBhIGZpZWxkIHRlc3Qgb2Ygb3ZlcmxhbmQgZGlzcGVyc2FsIGFuZCBjb2xvbml6YXRpb24gYnkgYXF1YXRpYyBpbnZlcnRlYnJhdGVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Wm9vdGF4YTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5DaGFuZzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjMxNjE8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTE2NDYvem9vdGF4YS4zMTYxLjEuMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Ob25tYXJpbmUgb3N0cmFjb2RzIChDcnVzdGFjZWEpIGZyb20gU291dGggS29yZWEsIGluY2x1ZGluZyBhIGRlc2NyaXB0aW9uIG9mIGEgbmV3IHNwZWNpZXMgb2YgVGFueWN5cHJpc1RyaWViZWwgKEN5cHJpZGlkYWUsIEN5cHJpY2VyY2luYWUpPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkh5ZHJvYmlvbG9naWE8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Q2hhcG1hbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjIyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTYzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvQkYwMDAzOTY3OTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BIHJldmlldyBvZiB0aGUgZnJlc2h3YXRlciBvc3RyYWNvZHMgb2YgTmV3IFplYWxhbmQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjExIj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5BdGxhcyBvZiBBbmltYWxzIGluIENoaW5hLCBDcnVzdGFjZWEsIFN1YmNsYXNzLCBPc3RyYWNvZGE8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5DaGVuPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQ4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4MjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjEyIj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5CaW8taW52YXNpw7NuIGRlbCBNZWppbGzDs24gRG9yYWRvIGVuIGVsIENvbnRpbmVudGUgQW1lcmljYW5vPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Q29zdGEgRmVybmFuZGVzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFndWEgZGUgbGFzdHJlIGNvbW8gdsOtYSBkZSBpbnRyb2R1Y2Npw7NuIGRlIGVzcGVjaWVzIGEgbml2ZWwgZ2xvYmFsPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMyI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+VW5pdGVkIFN0YXRlcyBFeHBsb3JpbmcgRXhwZWRpdGlvbiBEdXJpbmcgdGhlIFllYXJzIDE4MzgsIDE4MzksIDE4NDAsIDE4NDEsIDE4NDIsIFVuZGVyIHRoZSBDb21tYW5kIG9mIENoYXJsZXMgV2lsa2VzLCBVLlMuTi48L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5EYW5hPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Vm9sLsKgMTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE4NTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DcnVzdGFjZWEuIFBhcnQgSTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMTQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5ab29sb2dpc2NoZXIgQW56ZWlnZXI8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RHVib3dza3k8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT42NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNjk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTI2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QmVtZXJrdW5nZW4gw7xiZXIgZWluaWdlIE9zdHJhY29kZW4gZGVzIFNld2VybnktRG9uZXR6LUJhc3NpbnM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UHJvY2VlZGluZ3Mgb2YgdGhlIFpvb2xvZ2ljYWwgU29jaWV0eSBvZiBMb25kb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RHVua2VyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzU4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTg1NjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk15dGlsYWNlYSBub3ZhIGNvbGxlY3Rpb25pcyBDdW1pbmdpYW5hZTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMTYiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5GcmVzaHdhdGVyIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RWx2aXJhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MzM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTAzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk5NTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTExL2ouMTM2NS0yNDI3LjE5OTUudGIwMDM5MC54PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk5hdGl2ZSBhbmQgZXhvdGljIGZyZXNod2F0ZXIgZmlzaGVzIGluIFNwYW5pc2ggcml2ZXIgYmFzaW5zPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkpvdXJuYWwgb2YgRmlzaCBCaW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkVsdmlyYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjMyMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTExMS9qLjEwOTUtODY0OS4yMDAxLnRiMDEzOTMueDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5GcmVzaHdhdGVyIGZpc2ggaW50cm9kdWN0aW9ucyBpbiBTcGFpbjogZmFjdHMgYW5kIGZpZ3VyZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgMjFzdCBjZW50dXJ5PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxOCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+QmlvZGl2ZXJzaXRhdCBkZWwgWm9vcGzDoG5jdG9uIGkgTWljcm96b29iZW50b3MgYSBsZXMgQWlnw7xlcyBDb250aW5lbnRhbHMgZGUgVmluYXLDsnMgaSBlbCBCYWl4IE1hZXN0cmF0PC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RXNjcml2w6A8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkZhdW5hIEh1bmdhcmlhZSwgTWFneWFyb3JzesOhZyDDgWxsYXR2aWzDoWdhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkZhcmthczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT40LzM8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk1ODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkthZ3lsw7NzcsOha29rIChPc3RyYWNvZGEpPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIyMCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkZyZXNod2F0ZXIgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5GaWd1ZXJvbGE8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40ODM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAyPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwNDYvai4xMzY1LTI0MjcuMjAwMi4wMDgyOS54PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkRpc3BlcnNhbCBvZiBhcXVhdGljIG9yZ2FuaXNtcyBieSB3YXRlcmJpcmRzOiBhIHJldmlldyBvZiBwYXN0IHJlc2VhcmNoIGFuZCBwcmlvcml0aWVzIGZvciBmdXR1cmUgc3R1ZGllczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BcXVhdGljIFNjaWVuY2VzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkZyaXNjaDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjY5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU2ODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAwNy9zMDAwMjctMDA3LTA5MTUtMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5IaWdoIGRpc3BlcnNhbCBjYXBhY2l0eSBvZiBhIGJyb2FkIHNwZWN0cnVtIG9mIGFxdWF0aWMgaW52ZXJ0ZWJyYXRlcyB2aWEgd2F0ZXJiaXJkczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMjIiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPk5ldW1hcmstR3LDtmJlcm4uIEJlaXRyw6RnZSB6dXIgSmFnZCBkZXMgbWl0dGxlcGFsw6RvbGl0aGlzY2hlbiBNZW5zY2hlbjwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkZ1aHJtYW5uPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE2MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8c2VyaWVzX3RpdGxlPlZlcsO2ZmZlbnRsaWNodW5nZW4gZGVzIExhbmRlc211c2V1bXMgZsO8ciBWb3JnZXNjaGljaHRlIDQzPC9zZXJpZXNfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkRpZSBBdXNzYWdlIGRlciBPc3RyYWtvZGVuZmF1bmEgenVtIFNlZGltZW50YXRpb25zYWJsYXVmIGltIEludGVyZ2FsemlhbGJlY2tlbiwgenVyIGtsaW1hdGlzY2hlbiBFbnR3aWNrbHVuZyB1bmQgenVyIHN0cmF0aWdyYXBoaXNjaGVuIFN0ZWxsdW5nIGRlcyBJbnRlcmdsYXppYWxzIHZvbiBOZXVtYXJrLU5vcmQgKEdlaXNlbHRhbCk8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjIzIj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5CaW9sb2dpY2FsIEludmFkZXJzIGluIElubGFuZCBXYXRlcnM6IFByb2ZpbGVzLCBEaXN0cmlidXRpb24gYW5kIFRocmVhdHM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HYXJjw61hLUJlcnRob3U8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTIzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDA3Lzk3OC0xLTQwMjAtNjAyOS04XzY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Tm9uLWluZGlnZW5vdXMgYW5pbWFsIHNwZWNpZXMgbmF0dXJhbGl6ZWQgaW4gSWJlcmlhbiBpbmxhbmQgd2F0ZXJzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIyNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpb2xvZ2ljYWwgSW52YXNpb25zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkdlaWdlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA1PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvczEwNTMwLTAwNC05NjM1LTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW1wYWN0cyBvZiBhbiBpbnRyb2R1Y2VkIENydXN0YWNlYW4gb24gdGhlIHRyb3BoaWMgd2VicyBvZiBNZWRpdGVycmFuZWFuIHdldGxhbmRzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIyNSI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+QmlvbG9naWNhbCBJbnZhZGVycyBpbiBJbmxhbmQgV2F0ZXJzOiBQcm9maWxlcywgRGlzdHJpYnV0aW9uIGFuZCBUaHJlYXRzPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+R2hlcmFyZGk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAwNy85NzgtMS00MDIwLTYwMjktOF8xPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkJpb2xvZ2ljYWwgaW52YXNpb25zIGluIGlubGFuZCB3YXRlcnM6IGFuIG92ZXJ2aWV3PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIyNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBBY2FkZW15IG9mIE5hdHVyYWwgU2NpZW5jZXMgb2YgUGhpbGFkZWxwaGlhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkdpcmFyZDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+ODc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xODUyPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QSByZXZpc2lvbiBvZiB0aGUgTm9ydGggQW1lcmljYW4gQXN0YWNpLCB3aXRoIG9ic2VydmF0aW9ucyBvbiB0aGVpciBoYWJpdHMgYW5kIGdlb2dyYXBoaWMgZGlzdHJpYnV0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIyNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkFjdGEgT2Vjb2xvZ2ljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HcmVlbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE3NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAxNi9TMTE0Ni02MDlYKDAyKTAxMTQ5LTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW1wbGljYXRpb25zIG9mIHdhdGVyYmlyZCBlY29sb2d5IGZvciB0aGUgZGlzcGVyc2FsIG9mIGFxdWF0aWMgb3JnYW5pc21zPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIyOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkZyZXNod2F0ZXIgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HcmVlbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjUzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM4MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UaGUgcG90ZW50aWFsIHJvbGUgb2Ygd2F0ZXJiaXJkcyBpbiBkaXNwZXJzaW5nIGludmVydGVicmF0ZXMgYW5kIHBsYW50cyBpbiBhcmlkIEF1c3RyYWxpYTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMjkiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY29wb2xpYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HcmlmZml0aHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zNDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk5NTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkV1cm9wZWFuIHF1YXRlcm5hcnkgZnJlc2h3YXRlciBPc3RyYWNvZGE6IGEgYmlvc3RyYXRpZ3JhcGhpYyBhbmQgcGFsYWVvYmlvZ3JhcGhpYyBwcmltZXI8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjMwIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWlzY2VsbGFuZWEgWm9vbG9naWNhIEh1bmdhcmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HecO2cmU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4NTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlRocmVlIG9zdHJhY29kIHNwZWNpZXMgZnJvbSBMYWtlIFZlbGVuY2UgbmV3IHRvIHRoZSBmYXVuYSBvZiBIdW5nYXJ5PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIzMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNpdHp1bmdzYmVyaWNodGUgZGVyIEdlc2VsbHNjaGFmdCBOYXR1cmZvcnNjaGVuZGVyIEZyZXVuZGUgenUgQmVybGluPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhhcnR3aWc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xOTAwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT41PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTkwMDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPsOcYmVyIGVpbmUgbmV1ZSBDYW5kb25hZGVyIFByb3ZpbnogQnJhbmRlbmJ1cmc6IENhbmRvbmEgaG9semthbXBmaW5vdi4gc3BlYy48L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjMyIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2l0enVuZ3NiZXJpY2h0ZSBkZXIgR2VzZWxsc2NoYWZ0IE5hdHVyZm9yc2NoZW5kZXIgRnJldW5kZSB6dSBCZXJsaW48L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+SGFydHdpZzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE5MDE8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjQ8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5MDE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EaWUgQXJ0ZW4gZGVyIE9zdHJhY29kZW4uIFVudGVyZmFtaWxpZSBDYW5kb25pbmFlIGRlciBQcm92aW56IEJyYW5kZW5idXJnPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIzMyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJ1bGxldGluIEZyYW7Dp2FpcyBkZSBsYSBQw6pjaGUgZXQgZGUgbGEgUGlzY2ljdWx0dXJlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhvbGRpY2g8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zNjc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjQ8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42MTE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAyPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwNTEva21hZToyMDAyMDU1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkRpc3RyaWJ1dGlvbiBvZiBjcmF5ZmlzaCBpbiBFdXJvcGUgYW5kIHNvbWUgYWRqb2luaW5nIGNvdW50cmllczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMzQiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPkJpb2xvZ2ljYWwgSW52YWRlcnMgaW4gSW5sYW5kIFdhdGVyczogUHJvZmlsZXMsIERpc3RyaWJ1dGlvbiBhbmQgVGhyZWF0czwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhvbGRpY2g8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+Mjk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA3PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvOTc4LTEtNDAyMC02MDI5LThfMjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbnZhc2l2ZSBjcnVzdGFjZWFucyBpbiBFdXJvcGVhbiBpbmxhbmQgd2F0ZXJzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIzNSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJvbGxldHRpbm8gZGVsbGEgU29jaWV0YSBQYWxlb250b2xvZ2ljYSBJdGFsaWFuYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Ib3JuZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4xLTI8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yOTc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Rmlyc3QgQnJpdGlzaCByZWNvcmQgb2YgUG90YW1vY3lwcmlzIGh1bWlsaXMoU2FycywgMTkyNCksIGEgZnJlc2h3YXRlciBvc3RyYWNvZCB3aXRoIGEgZGlzanVuY3QgZGlzdHJpYnV0aW9uIGluIG5vcnRoZXJuIEV1cm9wZSBhbmQgc291dGhlcm4gQWZyaWNhPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIzNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlpvb2xvZ2ljYWwgSm91cm5hbCBvZiB0aGUgTGlubmVhbiBTb2NpZXR5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhvcm5lPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTQyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI1MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTExMS9qLjEwOTYtMzY0Mi4yMDA0LjAwMTM0Lng8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+VGhlIGZpcnN0IEJyaXRpc2ggcmVjb3JkIGFuZCBhIG5ldyBzcGVjaWVzIG9mIHRoZSBzdXBlcmZhbWlseSBUZXJyZXN0cmljeXRoZXJvaWRlYSAoQ3J1c3RhY2VhLCBPc3RyYWNvZGEpOiBtb3JwaG9sb2d5LCBvbnRvZ2VueSwgbGlmZXN0eWxlIGFuZCBwaHlsb2dlbnk8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjM3Ij4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5DcmV0YWNlb3VzLVF1YXRlcm5hcnkgT3N0cmFjb2RlIEZhdW5hIGZyb20gSmlhbmdzdTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhvdTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4MjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjM4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWVtb2lycyBJbnN0aXR1dGUgb2YgR2VvbG9neSBhbmQgUGFsZW9udG9sb2d5LCBBY2FkZW1pYSBTaW5pY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+SHVhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5ODU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5QbGVpc3RvY2VuZSBPc3RyYWNvZGEgZnJvbSBtaWRkbGUgYW5kIGxvd2VyIHJlYWNoZXMgb2YgU2FuZ2dhbiBSaXZlciBWYWxsZXkgYW5kIGl0cyBnZW9ncmFwaGljYWwgc2lnbmlmaWNhbmNlPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIzOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkFjdGEgUGFsYWVvbnRvbG9naWNhIFNpbmljYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5IdWFuZzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjMwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjcyODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Pc3RyYWNvZCBmcm9tIGxhdGUgUGxlaXN0b2NlbmUgZGVwb3NpdHMgaW4gU2FuZ2dhbiByaXZlciB2YWxsZXk8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjQwIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RWVzdGkgTlNWIFRlYWR1c3RlIEFrYWRlZW1pYSBUb2ltZXRpc2VkLCBCaW9sb29naWE8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+SsOkcnZla8O8bGc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT44PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTU5PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QW5kbWVpZCBFZXN0aSBtYWdldmV0ZSBrYXJwdsOkaGlsaXN0ZSAoT3N0cmFjb2RhKSBmYXVuYSBrb2h0YTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNDEiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlRoZSBCaW9kaXZlcnNpdHkgQ3Jpc2lzIGFuZCBDcnVzdGFjZWE8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5KYcW6ZMW6ZXdza2k8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHNlcmllc190aXRsZT5DcnVzdGFjZWFuIElzc3VlcyAxMjwvc2VyaWVzX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbW1pZ3JhdGlvbiBoaXN0b3J5IGFuZCBwcmVzZW50IGRpc3RyaWJ1dGlvbiBvZiBhbGllbiBjcnVzdGFjZWFucyBpbiBQb2xpc2ggd2F0ZXJzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI0MiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpb2xvZ2ljYWwgQ29uc2VydmF0aW9uPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkpvaG5zb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT43ODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAxNi8wMDA2LTMyMDcoOTYpMDAwMTUtODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5HZW9ncmFwaGljIHNwcmVhZCBvZiBleG90aWMgc3BlY2llczogZWNvbG9naWNhbCBsZXNzb25zIGFuZCBvcHBvcnR1bml0aWVzIGZyb20gdGhlIGludmFzaW9uIG9mIHRoZSB6ZWJyYSBtdXNzZWw8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjQzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QXF1YXRpYyBTY2llbmNlczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5KdWxpw6A8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT42MDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvczAwMDI3MDA1MDA0MjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5PcmlnaW4gYW5kIHJlY2VudCB0cm9waGljIGV2b2x1dGlvbiBpbiB0aGUgU3BhbmlzaCBtb3VudGFpbiBsYWtlIExhIENydXo8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjQ0Ij4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5IaXN0b2lyZWRlcyBNb25vY2xlcyBxdWkgc2UgVHJvdXZlbnQgYXV4IEVudmlyb25zIGRlIEdlbsOodmU8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5KdXJpbmU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE4MjA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuNTk2Mi9iaGwudGl0bGUuMTAxMzc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNDUiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPkNhbmRvbmluYWUgT3N0cmFjb2RlcyBmcm9tIHRoZSBQaWxiYXJhIFJlZ2lvbiBpbiBXZXN0ZXJuIEF1c3RyYWxpYTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkthcmFub3ZpYzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTE2My9lai45Nzg5MDA0MTU2OTM3LmktNDM0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxzZXJpZXNfdGl0bGU+Q3J1c3RhY2VhbmEgTW9ub2dyYXBoczwvc2VyaWVzX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI0NiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkFubmFsZXMgZGUgTGltbm9sb2dpZS1JbnRlcm5hdGlvbmFsIEpvdXJuYWwgb2YgTGltbm9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkthcmFub3ZpYzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQ4PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjYzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDUxL2xpbW4vMjAxMTA2MTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XaGVuIGFudGhyb3BvZ2VuaWMgdHJhbnNsb2NhdGlvbiBtZWV0cyBjcnlwdGljIHNwZWNpYXRpb24gZ2xvYmFsaXNlZCBib3VpbGxvbiBvcmlnaW5hdGVzOyBtb2xlY3VsYXIgdmFyaWFiaWxpdHkgb2YgdGhlIGNvc21vcG9saXRhbiBmcmVzaHdhdGVyIGN5Y2xvcG9pZCBNYWNyb2N5Y2xvcHMgYWxiaWR1cyhDcnVzdGFjZWE6IENvcGVwb2RhKTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNDciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CaW9sb2dpY2FsIEludmFzaW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LYXJhdGF5ZXY8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT45PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE2MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAwNy9zMTA1MzAtMDA2LTkwMTMtOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DaGFuZ2VzIGluIGdsb2JhbCBlY29ub21pZXMgYW5kIHRyYWRlOiB0aGUgcG90ZW50aWFsIHNwcmVhZCBvZiBleG90aWMgZnJlc2h3YXRlciBiaXZhbHZlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNDgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb2xlY3VsYXIgRWNvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LZWxseTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM2NDE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMTEvai4xMzY1LTI5NFguMjAwNi4wMzAxMi54PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNvbnRyYXN0aW5nIHBhdHRlcm5zIGluIGdlbmV0aWMgZGl2ZXJzaXR5IGZvbGxvd2luZyBtdWx0aXBsZSBpbnZhc2lvbnMgb2YgZnJlc2ggYW5kIGJyYWNraXNoIHdhdGVyczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNDkiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Tb25kZXJ2ZXLDtmZmZW50bGljaHVuZ2VuIGRlcyBHZW9sb2dpc2NoZW4gSW5zdGl0dXQgZGVyIFVuaXZlcnNpdMOkdCB6dSBLw7Zsbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LZW1wZjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM4PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTgwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW5kZXggYW5kIGJpYmxpb2dyYXBoeSBvZiBub25tYXJpbmUgT3N0cmFjb2RhLiBCaWJsaW9ncmFwaHkgQS4gUGFydCA0PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI1MCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNvbmRlcnZlcsO2ZmZlbnRsaWNodW5nZW4gZGVzIEdlb2xvZ2lzY2hlbiBJbnN0aXR1dCBkZXIgVW5pdmVyc2l0w6R0IHp1IEvDtmxuPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPktlbXBmPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MzU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5ODA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbmRleCBhbmQgYmlibGlvZ3JhcGh5IG9mIG5vbm1hcmluZSBPc3RyYWNvZGEuIEluZGV4wqBBLiBQYXJ0IDE8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjUxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U29uZGVydmVyw7ZmZmVudGxpY2h1bmdlbiBkZXMgR2VvbG9naXNjaGVuIEluc3RpdHV0IGRlciBVbml2ZXJzaXTDpHQgenUgS8O2bG48L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+S2VtcGY8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkluZGV4IGFuZCBiaWJsaW9ncmFwaHkgb2Ygbm9ubWFyaW5lIE9zdHJhY29kYS4gSW5kZXjCoEIuIFBhcnQgMjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Tb25kZXJ2ZXLDtmZmZW50bGljaHVuZ2VuIGRlcyBHZW9sb2dpc2NoZW4gSW5zdGl0dXQgZGVyIFVuaXZlcnNpdMOkdCB6dSBLw7Zsbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LZW1wZjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM3PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTgwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW5kZXggYW5kIGJpYmxpb2dyYXBoeSBvZiBub25tYXJpbmUgT3N0cmFjb2RhLiBJbmRleMKgQy4gUGFydCAzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI1MyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNvbmRlcnZlcsO2ZmZlbnRsaWNodW5nZW4gZGVzIEdlb2xvZ2lzY2hlbiBJbnN0aXR1dCBkZXIgVW5pdmVyc2l0w6R0IHp1IEvDtmxuPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPktlbXBmPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Nzc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbmRleCBhbmQgYmlibGlvZ3JhcGh5IG9mIG5vbm1hcmluZSBPc3RyYWNvZGEuIEJpYmxpb2dyYXBoeSBCLiBQYXJ0IDU8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjU0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U29uZGVydmVyw7ZmZmVudGxpY2h1bmdlbiBkZXMgR2VvbG9naXNjaGVuIEluc3RpdHV0IGRlciBVbml2ZXJzaXTDpHQgenUgS8O2bG48L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+S2VtcGY8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbmRleCBhbmQgYmlibGlvZ3JhcGh5IG9mIG5vbm1hcmluZSBPc3RyYWNvZGEuIEJpYmxpb2dyYXBoeSBDLiBQYXJ0IDk8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjU1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U29uZGVydmVyw7ZmZmVudGxpY2h1bmdlbiBkZXMgR2VvbG9naXNjaGVuIEluc3RpdHV0IGRlciBVbml2ZXJzaXTDpHQgenUgS8O2bG48L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+S2VtcGY8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMDk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbmRleCBhbmQgYmlibGlvZ3JhcGh5IG9mIG5vbm1hcmluZSBPc3RyYWNvZGEuIEluZGV4IEEgU3VwcGxlbWVudC4gUGFydCA2PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI1NiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNvbmRlcnZlcsO2ZmZlbnRsaWNodW5nZW4gZGVzIEdlb2xvZ2lzY2hlbiBJbnN0aXR1dCBkZXIgVW5pdmVyc2l0w6R0IHp1IEvDtmxuPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPktlbXBmPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTEwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk3PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+SW5kZXggYW5kIGJpYmxpb2dyYXBoeSBvZiBub25tYXJpbmUgT3N0cmFjb2RhLiBJbmRleMKgQiBTdXBwbGVtZW50IDEuIFBhcnQgNzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNTciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Tb25kZXJ2ZXLDtmZmZW50bGljaHVuZ2VuIGRlcyBHZW9sb2dpc2NoZW4gSW5zdGl0dXQgZGVyIFVuaXZlcnNpdMOkdCB6dSBLw7Zsbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LZW1wZjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjExMTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk5NzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkluZGV4IGFuZCBiaWJsaW9ncmFwaHkgb2Ygbm9ubWFyaW5lIE9zdHJhY29kYS4gSW5kZXjCoEMgU3VwcGxlbWVudCAxLiBQYXJ0IDg8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjU4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LZW1wZjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjU5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LZW1wZjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjYwIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QXJiZWl0ZW4gRGVyIEJpb2xpc2NoZW4gV29sZ2EgU3RhdGlvbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LbGllPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zNTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5MjY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5ad2VpdGVyIEJlaXRyYWcgenVyIEtlbm50bmlzIGRlciBTw7xzc3dhc3Nlci4gT3N0cmFjb2RlbiBSdXNzbGFuZHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjYxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGllIFRpZXJ3ZWx0IERldXRzY2hsYW5kcyB1bmQgZGVyIGFuZ3JlbnplbmRlbiBNZWVyc3RlaWxlIG5hY2ggaWhyZW4gTWVya21hbGVuIHVuZCBuYWNoIGlocmVyIExlYmVuc3dlaXNlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPktsaWU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zNDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MS00PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5Mzg8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5LcmVic3RpZXJlIG9kZXIgQ3J1c3RhY2VhLCBJSUk6IE9zdHJhY29kYSwgTXVzY2hlbGtyZWJzZTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNjIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Kb3VybmFsIG9mIFZlY3RvciBFY29sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPktsaW5nPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MzI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjA3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4zMzc2LzEwODEtMTcxMCgyMDA3KTMyWzIwNzpMTUNJRFZdMi4wLkNPOzI8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+TGFydmFsIG1vc3F1aXRvIGNvbW11bml0aWVzIGluIGRpc2NhcmRlZCB2ZWhpY2xlIHRpcmVzIGluIGEgZm9yZXN0ZWQgYW5kIHVuZm9yZXN0ZWQgc2l0ZTogZGV0cml0dXMgdHlwZSwgYW1vdW50LCBhbmQgd2F0ZXIgbnV0cmllbnQgZGlmZmVyZW5jZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjYzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UG9sc2tpZSBBcmNoaXd1bSBIeWRyb2Jpb2xvZ2lpPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPktvc21hbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjg3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk2ODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk9uIHRoZSBkaXN0cmlidXRpb24gb2YgT3N0cmFjb2RhIGluIHRoZSBsaXR0b3JhbCBvZiBMYWtlIEtpc2Fqbm8gKE1hc3VyaWFuIExha2UgRGlzdHJpY3QpPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI2NCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBvc2ViIEl6ZCwgU3JwIEFrYWQgTmF1a2EgVW1ldCwgT2RlbGVuZSBQcmlyLU1hdGggTmF1a2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+S3JzdGnEhzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTcyPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Um9kIENhbmRvbmEoT3N0cmFjb2RhKSBpeiBrb25nZXJpanNraWtoIHNsb2pldmEganV6aG5vZyBkZWxhIFBhbm9uc2tvZyBCYXNlbmE8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjY1Ij4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5IaXN0b2lyZSBuYXR1cmVsbGUgZGVzIGFuaW1hdXggc2FucyB2ZXJ0ZWJyZXM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5MYW1hcmNrPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Vm9sLsKgNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTgyMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjY2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Sm91cm5hbCBvZiB0aGUgR2VvbG9naWNhbCBTb2NpZXR5IG9mIEtvcmVhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkxlZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM2PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQzNTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Pc3RyYWNvZCBmYXVuYSBmcm9tIHRoZSBFYXN0IFNlYSBjb2FzdCBvZiBLb3JlYSBhbmQgdGhlaXIgZGlzdHJpYnV0aW9uLiBQcmVsaW1pbmFyeSBzdHVkeSBvbiBPc3RyYWNvZGEgYXMgYW4gaW5kaWNhdG9yIG9mIHdhdGVyIHBvbGx1dGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Kb3VybmFsIG9mIFZlY3RvciBFY29sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk1hZG9uPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Mjc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTQ5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkludHJvZHVjdGlvbiBvZiBBZWRlcyBhbGJvcGljdHVzKFNrdXNlKSBpbiBzb3V0aGVybiBDYWxpZm9ybmlhIGFuZCBwb3RlbnRpYWwgZm9yIGl0cyBlc3RhYmxpc2htZW50PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI2OCI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TWFyY28tQmFyYmE8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI2OSI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+RW5jeWNsb3BlZGlhIG9mIElubGFuZCBXYXRlcnM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5NYXJ0ZW5zPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQwNTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAxNi9COTc4LTAxMjM3MDYyNi0zLjAwMTg0LTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+T3N0cmFjb2RhPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI3MCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkh5ZHJvYmlvbG9naWE8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TWFydGVuczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU5NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvczEwNzUwLTAwNy05MjQ1LTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+R2xvYmFsIGRpdmVyc2l0eSBvZiBvc3RyYWNvZHMgKE9zdHJhY29kYSwgQ3J1c3RhY2VhKSBpbiBmcmVzaHdhdGVyPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI3MSI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TWF6ZXBvdmE8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI3MiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkpvdXJuYWwgb2YgQ3J1c3RhY2VhbiBCaW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk1jS2VuemllPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Njwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTg2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjIzMDcvMTU0Nzk3OTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5NYW4gYXMgYW4gYWdlbnQgb2YgY3J1c3RhY2VhbiBwYXNzaXZlIGRpc3BlcnNhbCB2aWEgdXNlZnVsIHBsYW50cyDigJMgZXhlbXBsaWZpZWQgYnkgT3N0cmFjb2RhIG9zcGl0aSBlc3RlcmlvZiB0aGUgSXRhbGlhbiByaWNlZmllbHMgZWNvc3lzdGVtIOKAkyBhbmQgaW1wbGljYXRpb25zIGFyaXNpbmcgdGhlcmVmcm9tPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI3MyI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+RnJlc2h3YXRlciBPc3RyYWNvZGEgb2YgV2VzdGVybiBhbmQgQ2VudHJhbCBFdXJvcGU8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5NZWlzY2g8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI3NCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNydXN0YWNlYW5hPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk1lenF1aXRhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NzA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTA0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk5NzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTYzLzE1Njg1NDA5N1gwMDA4NzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5OZXcgcmVjb3JkcyBvZiB0aGUgZ2VudXMgRmFiYWVmb3JtaXNjYW5kb25hS3JzdGnEhywgMTk3MiAoT3N0cmFjb2RhKSBmcm9tIHRoZSBJYmVyaWFuIFBlbmluc3VsYTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNzUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Kb3VybmFsIG9mIENydXN0YWNlYW4gQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5NZXpxdWl0YTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM0NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMjMwNy8xNTQ5MjQxPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkVjb2xvZ3kgYW5kIGRpc3RyaWJ1dGlvbiBvZiBvc3RyYWNvZHMgYXNzb2NpYXRlZCB3aXRoIGZsb3dpbmcgd2F0ZXJzIGluIGVhc3Rlcm4gSWJlcmlhbiBQZW5pbnN1bGE8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjc2Ij4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5EYXMgVGllcnJlaWNoPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TcO8bGxlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPlZvbC7CoDMxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTEyPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q3J1c3RhY2VhLiBPc3RyYWNvZGE8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjc3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Nw7xsbGVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xNzc0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNzgiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlpvb2xvZ2lhZSBkYW5pY2FlIHByb2RvbXVzIHNldSBhbmltYWxpdW0gZGFuaWFlIGV0IG5vcnZlZ2lhZSBpbmRpZ2VuYXJ1bSBjaGFyYWN0ZXJlLCBub21pbmEgZXQgc3lub255bWEgaW1wcmltaXMgcG9wdWxhcml1bTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk3DvGxsZXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE3NzY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuNTk2Mi9iaGwudGl0bGUuMTMyNjg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyNzkiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Kb3VybmFsIG9mIEFuaW1hbCBFY29sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk15ZXJzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Mzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNDY8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTM0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjIzMDcvMTEzODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5UaGUgYXJ0aHJvcG9kIGZhdW5hIG9mIGEgUmljZS1TaGlwLCB0cmFkaW5nIGZyb20gQnVybWEgdG8gdGhlIFdlc3QgSW5kaWVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI4MCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+VGhlIE1pZ3JhdGlvbiBFY29sb2d5IG9mIEJpcmRzPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TmV3dG9uPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyODEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CdWxsZXRpbiBvZiB0aGUgQmlvZ2VvZ3JhcGhpY2FsIFNvY2lldHkgb2YgSmFwYW48L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+T2t1Ym88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TaXh0ZWVuIHNwZWNpZXMgb2YgZnJlc2h3YXRlciBPc3RyYWNvZGEgZnJvbSBKYXBhbiAoZnJlc2h3YXRlciBPc3RyYWNvZGEgZnJvbSBKYXBhbiwgWFYpPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI4MiI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+T2t1Ym88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI4MyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJ1bGxldGluIG9mIHRoZSBCaW9nZW9ncmFwaGljYWwgU29jaWV0eSBvZiBKYXBhbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Pa3VibzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQ0PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEwNTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5ODk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5GcmVzaHdhdGVyIE9zdHJhY29kYSBmcm9tIEd1bm1hIFByZWZlY3R1cmUsIEphcGFuPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI4NCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+UmVpc2UgZHVyY2ggdmVyc2NoaWVkZW5lIFByb3ZpbnplbiBkZXMgUnVzc2lzY2hlbiBSZWljaHM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5QYWxsYXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT5Wb2wuIDE8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE3NzE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI4NSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlRyYXZhdXggU2NpZW50aWZpcXVlcyBkdSBNdXPDqWUgTmF0aW9uYWwgZOKAmUhpc3RvaXJlIE5hdHVyZWxsZSBkZSBMdXhlbWJvdXJnPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlBldGtvdnNraTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk5NjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlNwZWNpZXMgb2YgdGhlIGdlbnVzIFN0ZW5vY3lwcmlzU2FycywgMTg4OSBmcm9tIHRoZSByaWNlLWZpZWxkcyBvZiBNYWNlZG9uaWE8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjg2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QXF1YXRpYyBDb25zZXJ2YXRpb246IE1hcmluZSBhbmQgRnJlc2h3YXRlciBFY29zeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlBvcXVldDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE4PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI4MDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAwMi9hcWMuODMxPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkxvc3Mgb2YgT3N0cmFjb2RhIGJpb2RpdmVyc2l0eSBpbiBXZXN0ZXJuIE1lZGl0ZXJyYW5lYW4gd2V0bGFuZHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjg3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFnYXppbmUgR2VzZWxsc2NoYWZ0IE5hdHVyZm9yc2NoZW5kZXIgRnJldW5kZSB6dSBCZXJsaW4sIE5ldWVzdGVuIEVudGRlY2t1bmdlbiBHZXNhbW10ZXIgTmF0dXJrdW5kZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5SYW1kb2hyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Mjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE4MDg8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT7DnGJlciBkaWUgZ2F0dHVuZyBDeXByaXNNw7xsbGVyIHVuZCBkcmVpIHp1IGRlcnNlbGJlbiBnZWjDtnJpZ2VuIG5ldWUgYXJ0ZW48L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjg4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+VGhlIEhvbG9jZW5lPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlJlZWQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT43MDc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAxPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExOTEvMDk1OTY4MzAxOTU3MzU8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QSBtdWx0aS1wcm94eSByZWNvcmQgb2YgSG9sb2NlbmUgY2xpbWF0aWMgY2hhbmdlIGluIHNvdXRod2VzdGVybiBTcGFpbjogdGhlIExhZ3VuYSBkZSBNZWRpbmEsIEPDoWRpejwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyODkiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Kb3VybmFsIG9mIExpbW5vbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Sb3NzaTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjYyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjQwODEvamxpbW5vbC4yMDAzLjE8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+T3N0cmFjb2RhIG9mIHRoZSBJdGFsaWFuIHJpY2VmaWVsZHMgdGhpcnR5IHllYXJzIG9uOiBuZXcgc3ludGhlc2lzIGFuZCBoeXBvdGhlc2lzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI5MCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJvbGV0w61uIGRlIGxhIEFzb2NpYWNpw7NuIEVzcGHDsW9sYSBkZSBFbnRvbW9sb2fDrWE8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+UnVlZGE8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNvbnRyaWJ1Y2nDs24gYWwgY29ub2NpbWllbnRvIGRlIGxvcyBjcnVzdMOhY2VvcyAoQXJ0aHJvcG9kYSwgQ3J1c3RhY2VhKSBkZSBsYXMgTWFsbGFkYXMgZGUgbGEgRGV2ZXNhIGRlbCBQYXJxdWUgTmF0dXJhbCBkZSBsYSBBbGJ1ZmVyYSAoVmFsZW5jaWEpPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI5MSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkFubnVhbCBSZXZpZXcgb2YgRWNvbG9neSBhbmQgU3lzdGVtYXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U2FrYWk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zMDU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAxPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExNDYvYW5udXJldi5lY29sc3lzLjMyLjA4MTUwMS4xMTQwMzc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+VGhlIHBvcHVsYXRpb24gYmlvbG9neSBvZiBpbnZhc2l2ZSBzcGVjaWVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI5MiI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+VGhlIEZyZXNod2F0ZXIgRW50b21vc3RyYWNhIG9mIHRoZSBDYXBlIFByb3ZpbmNlIChVbmlvbiBvZiBTb3V0aCBBZnJpY2EpLiBPc3RyYWNvZGE8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TYXJzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTI0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHNlcmllc190aXRsZT5Bbm5hbHMgb2YgdGhlIFNvdXRoIEFmcmljYW4gTXVzZXVtIDIwPC9zZXJpZXNfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjkzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Sm91cm5hbCBvZiBOYXR1cmFsIEhpc3Rvcnk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U2F2YXRlbmFsaW50b248L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40Mzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwODAvMDAyMjI5MzA4MDI1OTA4ODU8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+T24gYSBmcmVzaHdhdGVyIHNwZWNpZXMgb2YgdGhlIGdlbnVzIFNhbnl1YW5pYVpoYW8gYW5kIEhhbiwgMTk4MCAoQ3J1c3RhY2VhLCBPc3RyYWNvZGEsIExveG9jb25jaGlkYWUpIGZyb20gVGhhaWxhbmQsIHdpdGggYSBkaXNjdXNzaW9uIG9uIG1vcnBob2xvZ2ljYWwgZXZvbHV0aW9uIG9mIHRoZSBmcmVzaHdhdGVyIExveG9jb25jaGlkYWU8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjk0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWVkaWNhbCBhbmQgVmV0ZXJpbmFyeSBFbnRvbW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlNjaG9sdGU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zNTI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMTEvai4xMzY1LTI5MTUuMjAwOC4wMDc2My54PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFjY2lkZW50YWwgaW1wb3J0YXRpb24gb2YgdGhlIG1vc3F1aXRvIEFlZGVzIGFsYm9waWN0dXNpbnRvIHRoZSBOZXRoZXJsYW5kczogYSBzdXJ2ZXkgb2YgbW9zcXVpdG8gZGlzdHJpYnV0aW9uIGFuZCB0aGUgcHJlc2VuY2Ugb2YgZGVuZ3VlIHZpcnVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnI5NSI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+RmFyLUVhc3Rlcm4gTWFyaW5lIEJpb3NwaGVyZSBSZXNlcnZlLiBCaW90YTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlNjaG9ybmlrb3Y8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT5Wb2wuwqAyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQ1ODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DbGFzc2lzIE9zdHJhY29kYSDigJMgc2hlbGxlZCBDcnVzdGFjZWEuIENoYXB0ZXIgSUlJLiBBbm5vdGF0ZWQgbGlzdCBvZiBiaW90YSBvZiB0aGUgaXNsYW5kczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyOTYiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlRoZSBTdGF0ZSBvZiBFbnZpcm9ubWVudCBhbmQgQmlvdGEgb2YgdGhlIFNvdXRod2VzdGVybiBQYXJ0IG9mIFBldGVyIFRoZSBHcmVhdCBCYXkgYW5kIHRoZSBUdW1lbiBSaXZlciBNb3V0aDwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlNjaG9ybmlrb3Y8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT5Wb2wuIDM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTY8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAxPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+T3N0cmFjb2RzIG9mIGJyYWNraXNoIGFuZCBmcmVzaCB3YXRlcnMgb2Ygc291dGh3ZXN0ZXJuIGNvYXN0IG9mIFBldGVyIFRoZSBHcmVhdCBCYXk8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjk3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SW5sYW5kIFdhdGVyIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U2VtZW5vdmE8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT41PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjYxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTM0L1MxOTk1MDgyOTExMDQwMTZYPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk9zdHJhY29kcyAoQ3J1c3RhY2VhIGFuZCBPc3RyYWNvZGEpIGluIHRoZSB6b29wZXJpcGh5dG9uIG9mIHdhdGVyYm9kaWVzIGFuZCB3YXRlcmNvdXJzZXMgb2YgVHl1bWVuIG9ibGFzdCAoV2VzdGVybiBTaWJlcmlhKTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyOTgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Kb3VybmFsIG9mIE5hdHVyYWwgSGlzdG9yeTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TbWl0aDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI4NjU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwODAvMDAyMjI5MzA4MDIzNjEwMzA8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+UmVjZW50IHNwZWNpZXMgb2YgdGhlIEZhbWlseSBDYW5kb25pZGFlIChPc3RyYWNvZGEsIENydXN0YWNlYSkgZnJvbSB0aGUgYW5jaWVudCBMYWtlIEJpd2EsIENlbnRyYWwgSmFwYW48L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjk5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SHlkcm9iaW9sb2dpYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TbWl0aDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU4NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMjU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA3PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvczEwNzUwLTAwNy0wNjQwLTc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q29wdWxhdG9yeSBiZWhhdmlvdXIgYW5kIHNleHVhbCBtb3JwaG9sb2d5IG9mIHRocmVlIEZhYmFlZm9ybWlzY2FuZG9uYUtyc3RpxIcsIDE5NzIgKENhbmRvbmluYWUsIE9zdHJhY29kYSwgQ3J1c3RhY2VhKSBzcGVjaWVzIGZyb20gSmFwYW4sIGluY2x1ZGluZyBkZXNjcmlwdGlvbnMgb2YgdHdvIG5ldyBzcGVjaWVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMDAiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPkZhdW5hIFNsb2Rrb3dvZG5hIFBvbHNraSwgV2FyemF3YSwgUG96bmHFhDwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlN5d3VsYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPlZvbC4gMjQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5NzQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5NYWx6b3JhY3praSAoT3N0cmFjb2RhKTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMTAxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UmV2aXN0YSBkZSBsYSBBY2FkZW1pYSBDb2xvbWJpYW5hIGRlIENpZW5jaWFzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlRvcnJlcyBTYWxkYXJyaWFnYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM0PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4xMzI8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zOTc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RWNvbG9neSBvZiBub24tbWFyaW5lIG9zdHJhY29kYSBmcm9tIExhIEZlIHJlc2Vydm9pciAoRWwgUmV0aXJvLCBBbnRpb3F1aWEpIGFuZCB0aGVpciBwb3RlbnRpYWwgYXBwbGljYXRpb24gaW4gcGFsZW9lbnZpcm9ubWVudGFsIHN0dWRpZXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjEwMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNvbnNlcnZhdGlvbiBCaW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlRyb21idWxhazwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE0PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDQ2L2ouMTUyMy0xNzM5LjIwMDAuOTkwODQueDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5SZXZpZXcgb2YgZWNvbG9naWNhbCBlZmZlY3RzIG9mIHJvYWRzIG9uIHRlcnJlc3RyaWFsIGFuZCBhcXVhdGljIGNvbW11bml0aWVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMDMiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlRoZSBCaW9kaXZlcnNpdHkgQ3Jpc2lzIGFuZCBDcnVzdGFjZWE8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj52YW7CoGRlcsKgVmVsZGU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8c2VyaWVzX3RpdGxlPkNydXN0YWNlYW4gSXNzdWVzIDEyPC9zZXJpZXNfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkVjb2xvZ2ljYWwgaW1wYWN0IG9mIGNydXN0YWNlYW4gaW52YWRlcnM6IGdlbmVyYWwgY29uc2lkZXJhdGlvbnMgYW5kIGV4YW1wbGVzIGZyb20gdGhlIFJoaW5lIFJpdmVyPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMDQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5GcmVzaHdhdGVyIEJpb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+VmFuc2Nob2Vud2lua2VsPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjI2NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDg8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EaXNwZXJzYWwgb2YgZnJlc2h3YXRlciBpbnZlcnRlYnJhdGVzIGJ5IGxhcmdlIHRlcnJlc3RyaWFsIG1hbW1hbHMsIGEgY2FzZSBzdHVkeSB3aXRoIHdpbGQgYm9hciAoIFN1cyBzY3JvZmEpIGluIE1lZGl0ZXJyYW5lYW4gd2V0bGFuZHM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjEwNSI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+RGllIFPDvHNzd2Fzc2VyZmF1bmEgRGV1dHNjaGxhbmRzLCBlaW5lIEV4a3Vyc2lvbnNmYXVuYTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlbDoXZyYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPlZvbC7CoDExKDIpPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+T3N0cmFjb2RhLCBNdXNjaGVsa3JlYnNlLCBwcC4gODUtMTM2PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMDYiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BbWVyaWNhbiBNaWRsYW5kIE5hdHVyYWxpc3Q8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+VmlueWFyZDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjEwMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMDg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTc5PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjIzMDcvMjQyNTA4NDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BbiBvc3RyYWNvZCAoIEN5cHJpZG9wc2lzIHZpZHVhKSBjYW4gcmVkdWNlIHByZWRhdGlvbiBmcm9tIGZpc2ggYnkgcmVzaXN0aW5nIGRpZ2VzdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMTA3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QW5uYWxlcyBkZSBsYSBTb2Npw6l0w6kgR8Opb2xvZ2lxdWUgZGUgQmVsZ2lxdWU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+V2Fuc2FyZDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjEyMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk3PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+UmVjb25zdHJ1Y3Rpb24gcGFsw6lvZW52aXJvbm5tZW50YWxlIGRlcyBkZXJuaWVycyAzMC4wMDAgYW5zIGRlIGxhIHPDqXF1ZW5jZSBkZSBMYSBEcmFnYSAoQmFueW9sZXMsIEVzcGFnbmUpLCBkw6lkdWl0ZSBkZXMgcmFwcG9ydHMgKFNyL0NhKSBldCAoTWcvQ2EpIGRlcyB2YWx2ZXMgZOKAmW9zdHJhY29kZXMgbGFjdXN0cmVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMDgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BcXVhdGljIENvbnNlcnZhdGlvbjogTWFyaW5lIGFuZCBGcmVzaHdhdGVyIEVjb3N5c3RlbXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+V2F0ZXJrZXluPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTgwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDAyL2FxYy4xMTIyPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlVuaW50ZW50aW9uYWwgZGlzcGVyc2FsIG9mIGFxdWF0aWMgaW52ZXJ0ZWJyYXRlcyB2aWEgZm9vdCB3ZWFyIGFuZCBtb3RvciB2ZWhpY2xlcyBpbiBhIE1lZGl0ZXJyYW5lYW4gd2V0bGFuZCBhcmVhPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYnIxMDkiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBTeW1wb3NpdW0g4oCcSW52ZXJ0ZWJyYXRlcyBvZiBCZWxnaXVt4oCdPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+V291dGVyczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTg5PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2hlY2stbGlzdCBvZiB0aGUgcmVjZW50IG5vbi1tYXJpbmUgT3N0cmFjb2RhIChDcnVzdGFjZWEpIG9mIEJlbGdpdW08L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmlicjExMCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+QmlvZGl2ZXJzaXRhdCBpIEVjb2xvZ2lhIGRlbHMgSW52ZXJ0ZWJyYXRzIEFxdcOgdGljcyBDb250aW5lbnRhbHMgZGUgbGEgTWFyaW5hIEFsdGEgaSBlbCBTZXUgVmFsb3IgY29tIGEgSW5kaWNhZG9ycyBkZSBsYSBRdWFsaXRhdCBkZSBsZXMgQWlnw7xlcyBkZSBsYSBDb21hcmNhPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+WmFtb3JhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA1PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWJyMTExIj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5FY29sb2dpY2FsIFN0dWRpZXMgYW5kIHRoZSBTdGF0ZSBvZiB0aGUgUmF6ZG9sbmF5YSBSaXZlciAoU2VhIG9mIEphcGFuKTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlplbmluYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPlZvbC4gMTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTY8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+T3N0cmFjb2QgYXNzZW1ibGFnZXMgb2YgdGhlIGZyZXNoZW5lZCBwYXJ0IG9mIEFtdXJza3kgQmF5IGFuZCBsb3dlciByZWFjaGVzIG9mIFJhemRvbG5heWEgUml2ZXIgKFNlYSBvZiBKYXBhbik8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX2FydGljbGU+DQogICAgICAgICAgICA8L2pvdXJuYWw+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
|
88
|
+
http_version:
|
89
|
+
recorded_at: Sat, 03 Aug 2019 09:37:27 GMT
|
90
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,95 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.25318
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.6; mailto:info@datacite.org)
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: ''
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Sat, 20 Jul 2019 07:48:06 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Content-Length:
|
24
|
+
- '55'
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Set-Cookie:
|
28
|
+
- __cfduid=d10de0d2cacb06ad68a10d028b7c863b11563608886; expires=Sun, 19-Jul-20
|
29
|
+
07:48:06 GMT; path=/; domain=.doi.org; HttpOnly
|
30
|
+
Strict-Transport-Security:
|
31
|
+
- max-age=3600; includeSubDomains
|
32
|
+
Expect-Ct:
|
33
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
34
|
+
Server:
|
35
|
+
- cloudflare
|
36
|
+
Cf-Ray:
|
37
|
+
- 4f9354b30f22d70d-FRA
|
38
|
+
body:
|
39
|
+
encoding: ASCII-8BIT
|
40
|
+
string: |-
|
41
|
+
[
|
42
|
+
{
|
43
|
+
"DOI": "10.25318",
|
44
|
+
"RA": "DataCite"
|
45
|
+
}
|
46
|
+
]
|
47
|
+
http_version:
|
48
|
+
recorded_at: Sat, 20 Jul 2019 07:48:06 GMT
|
49
|
+
- request:
|
50
|
+
method: get
|
51
|
+
uri: https://api.datacite.org/dois/10.25318/3410014001-fra
|
52
|
+
body:
|
53
|
+
encoding: US-ASCII
|
54
|
+
string: ''
|
55
|
+
headers:
|
56
|
+
User-Agent:
|
57
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.6; mailto:info@datacite.org)
|
58
|
+
Accept:
|
59
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
60
|
+
response:
|
61
|
+
status:
|
62
|
+
code: 200
|
63
|
+
message: OK
|
64
|
+
headers:
|
65
|
+
Date:
|
66
|
+
- Sat, 20 Jul 2019 07:48:06 GMT
|
67
|
+
Content-Type:
|
68
|
+
- application/json; charset=utf-8
|
69
|
+
Connection:
|
70
|
+
- keep-alive
|
71
|
+
Status:
|
72
|
+
- 200 OK
|
73
|
+
X-Anonymous-Consumer:
|
74
|
+
- 'true'
|
75
|
+
Cache-Control:
|
76
|
+
- max-age=0, private, must-revalidate
|
77
|
+
Vary:
|
78
|
+
- Accept-Encoding, Origin
|
79
|
+
Etag:
|
80
|
+
- W/"841ca0aeecf6a5c313ee9873528959ed"
|
81
|
+
X-Runtime:
|
82
|
+
- '0.099822'
|
83
|
+
X-Request-Id:
|
84
|
+
- 75617ae1-0ebb-4e73-a25d-9a1948eea645
|
85
|
+
X-Powered-By:
|
86
|
+
- Phusion Passenger 6.0.2
|
87
|
+
Server:
|
88
|
+
- nginx/1.15.8 + Phusion Passenger 6.0.2
|
89
|
+
body:
|
90
|
+
encoding: ASCII-8BIT
|
91
|
+
string: !binary |-
|
92
|
+
eyJkYXRhIjp7ImlkIjoiMTAuMjUzMTgvMzQxMDAxNDAwMS1mcmEiLCJ0eXBlIjoiZG9pcyIsImF0dHJpYnV0ZXMiOnsiZG9pIjoiMTAuMjUzMTgvMzQxMDAxNDAwMS1mcmEiLCJwcmVmaXgiOiIxMC4yNTMxOCIsInN1ZmZpeCI6IjM0MTAwMTQwMDEtZnJhIiwiaWRlbnRpZmllcnMiOm51bGwsImNyZWF0b3JzIjpbeyJuYW1lIjoiU3RhdGlzdGlxdWUgQ2FuYWRhIiwibmFtZVR5cGUiOiJPcmdhbml6YXRpb25hbCIsImdpdmVuTmFtZSI6bnVsbCwiZmFtaWx5TmFtZSI6bnVsbCwiYWZmaWxpYXRpb24iOlsiQ2FuYWRhIE1vcnRnYWdlIGFuZCBIb3VzaW5nIENvcnBvcmF0aW9uIl0sIm5hbWVJZGVudGlmaWVycyI6W119XSwidGl0bGVzIjpbeyJsYW5nIjoiZnIiLCJ0aXRsZSI6IlNvY2nDqXTDqSBjYW5hZGllbm5lIGQnaHlwb3Row6hxdWVzIGV0IGRlIGxvZ2VtZW50LCBsb2dlbWVudHMgbWlzIGVuIGNoYW50aWVyIGRhbnMgbGVzIGNlbnRyZXMgZGUgMTAgMDAwIGhhYml0YW50cyBldCBwbHVzLCBwb3VyIENhbmFkYSwgcHJvdmluY2VzLCBldCByw6lnaW9ucyBtw6l0cm9wb2xpdGFpbmVzIGRlIHJlY2Vuc2VtZW50LCBkw6lzYWlzb25uYWxpc8OpZXMgYXUgdGF1eCBhbm51ZWwsIHRyaW1lc3RyaWVsIiwidGl0bGVUeXBlIjpudWxsfV0sInB1Ymxpc2hlciI6IkdvdXZlcm5lbWVudCBkdSBDYW5hZGEiLCJjb250YWluZXIiOm51bGwsInB1YmxpY2F0aW9uWWVhciI6MjAxOCwic3ViamVjdHMiOm51bGwsImNvbnRyaWJ1dG9ycyI6W10sImRhdGVzIjpudWxsLCJsYW5ndWFnZSI6bnVsbCwidHlwZXMiOnsicmVzb3VyY2VUeXBlR2VuZXJhbCI6IkRhdGFzZXQifSwicmVsYXRlZElkZW50aWZpZXJzIjpudWxsLCJzaXplcyI6bnVsbCwiZm9ybWF0cyI6bnVsbCwidmVyc2lvbiI6bnVsbCwicmlnaHRzTGlzdCI6bnVsbCwiZGVzY3JpcHRpb25zIjpbeyJsYW5nIjoiZnIiLCJkZXNjcmlwdGlvbiI6IkNlIHRhYmxlYXUgY29udGllbnQgMTE4IHPDqXJpZXMsIGF2ZWMgZGVzIGRvbm7DqWVzIHBvdXIgbGVzIGFubsOpZXMgIDE5OTAgLSAyMDE1IChpbCBuJ3kgYSBwYXMgbsOpY2Vzc2FpcmVtZW50IGRlIGRvbm7DqWVzIHBvdXIgdG91dGVzIGxlcyBhbm7DqWVzIHBvdXIgbCdlbnNlbWJsZSBkZXMgY29tYmluYWlzb25zKSwgZXQgc2EgZGVybmnDqHJlIGRhdGUgZGUgZGlmZnVzaW9uIHJlbW9udGUgYXUgMjAxNi0wMS0xMS4gQ2UgdGFibGVhdSBjb250aWVudCBkZXMgZG9ubsOpZXMgdGVsbGVzIHF1ZSBkw6ljcml0ZXMgcGFyIGxlcyBkaW1lbnNpb25zIHN1aXZhbnRlcyAoTGVzIGNvbWJpbmFpc29ucyBuZSBzb250IHBhcyB0b3V0ZXMgZGlzcG9uaWJsZXMpIDogR8Opb2dyYXBoaWUgKDQ3IMOpbMOpbWVudHMgOiBDYW5hZGE7IFByb3ZpbmNlcyBkZSBsJ0F0bGFudGlxdWU7IFRlcnJlLU5ldXZlLWV0LUxhYnJhZG9yOyBTdC4gSm9obidzLCBUZXJyZS1OZXV2ZS1ldC1MYWJyYWRvcjsgLi4uKSwgVHlwZSBkJ3VuaXTDqSAoNiDDqWzDqW1lbnRzIDogVG90YWwgZCd1bml0w6lzOyBNYWlzb25zIGluZGl2aWR1ZWxsZXM7IExvZ2VtZW50cyBjb2xsZWN0aWZzOyBMb2dlbWVudHMganVtZWzDqXM7IC4uLikuIiwiZGVzY3JpcHRpb25UeXBlIjoiQWJzdHJhY3QifV0sImdlb0xvY2F0aW9ucyI6bnVsbCwiZnVuZGluZ1JlZmVyZW5jZXMiOm51bGwsInhtbCI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NEtQSEpsYzI5MWNtTmxJSGh0Ykc1ek9uaHphVDBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01TOVlUVXhUWTJobGJXRXRhVzV6ZEdGdVkyVWlJSGh0Ykc1elBTSm9kSFJ3T2k4dlpHRjBZV05wZEdVdWIzSm5MM05qYUdWdFlTOXJaWEp1Wld3dE5DSWdlSE5wT25OamFHVnRZVXh2WTJGMGFXOXVQU0pvZEhSd09pOHZaR0YwWVdOcGRHVXViM0puTDNOamFHVnRZUzlyWlhKdVpXd3ROQ0JvZEhSd09pOHZjMk5vWlcxaExtUmhkR0ZqYVhSbExtOXlaeTl0WlhSaEwydGxjbTVsYkMwMEwyMWxkR0ZrWVhSaExuaHpaQ0krQ2lBZ1BHbGtaVzUwYVdacFpYSWdhV1JsYm5ScFptbGxjbFI1Y0dVOUlrUlBTU0krTVRBdU1qVXpNVGd2TXpReE1EQXhOREF3TVMxR1VrRThMMmxrWlc1MGFXWnBaWEkrQ2lBZ1BHTnlaV0YwYjNKelBnb2dJQ0FnUEdOeVpXRjBiM0krQ2lBZ0lDQWdJRHhqY21WaGRHOXlUbUZ0WlNCdVlXMWxWSGx3WlQwaVQzSm5ZVzVwZW1GMGFXOXVZV3dpUGxOMFlYUnBjM1JwY1hWbElFTmhibUZrWVR3dlkzSmxZWFJ2Y2s1aGJXVStDaUFnSUNBZ0lEeGhabVpwYkdsaGRHbHZiaUJoWm1acGJHbGhkR2x2Ymtsa1pXNTBhV1pwWlhJOUltaDBkSEJ6T2k4dmNtOXlMbTl5Wnk4d05IcDBNM2Q0TXpVaUlHRm1abWxzYVdGMGFXOXVTV1JsYm5ScFptbGxjbE5qYUdWdFpUMGlVazlTSWlCelkyaGxiV1ZWVWtrOUltaDBkSEJ6T2k4dmNtOXlMbTl5WnlJK1EyRnVZV1JoSUUxdmNuUm5ZV2RsSUdGdVpDQkliM1Z6YVc1bklFTnZjbkJ2Y21GMGFXOXVQQzloWm1acGJHbGhkR2x2Ymo0S0lDQWdJRHd2WTNKbFlYUnZjajRLSUNBOEwyTnlaV0YwYjNKelBnb2dJRHgwYVhSc1pYTStDaUFnSUNBOGRHbDBiR1VnZUcxc09teGhibWM5SW1aeUlqNVRiMk5wdzZsMHc2a2dZMkZ1WVdScFpXNXVaU0JrSjJoNWNHOTBhTU9vY1hWbGN5QmxkQ0JrWlNCc2IyZGxiV1Z1ZEN3Z2JHOW5aVzFsYm5SeklHMXBjeUJsYmlCamFHRnVkR2xsY2lCa1lXNXpJR3hsY3lCalpXNTBjbVZ6SUdSbElERXdJREF3TUNCb1lXSnBkR0Z1ZEhNZ1pYUWdjR3gxY3l3Z2NHOTFjaUJEWVc1aFpHRXNJSEJ5YjNacGJtTmxjeXdnWlhRZ2NzT3BaMmx2Ym5NZ2JjT3BkSEp2Y0c5c2FYUmhhVzVsY3lCa1pTQnlaV05sYm5ObGJXVnVkQ3dnWk1PcGMyRnBjMjl1Ym1Gc2FYUERxV1Z6SUdGMUlIUmhkWGdnWVc1dWRXVnNMQ0IwY21sdFpYTjBjbWxsYkR3dmRHbDBiR1UrQ2lBZ1BDOTBhWFJzWlhNK0NpQWdQSEIxWW14cGMyaGxjajVIYjNWMlpYSnVaVzFsYm5RZ1pIVWdRMkZ1WVdSaFBDOXdkV0pzYVhOb1pYSStDaUFnUEhCMVlteHBZMkYwYVc5dVdXVmhjajR5TURFNFBDOXdkV0pzYVdOaGRHbHZibGxsWVhJK0NpQWdQSEpsYzI5MWNtTmxWSGx3WlNCeVpYTnZkWEpqWlZSNWNHVkhaVzVsY21Gc1BTSkVZWFJoYzJWMElpOCtDaUFnUEhabGNuTnBiMjR2UGdvZ0lEeGtaWE5qY21sd2RHbHZibk0rQ2lBZ0lDQThaR1Z6WTNKcGNIUnBiMjRnZUcxc09teGhibWM5SW1aeUlpQmtaWE5qY21sd2RHbHZibFI1Y0dVOUlrRmljM1J5WVdOMElqNURaU0IwWVdKc1pXRjFJR052Ym5ScFpXNTBJREV4T0NCenc2bHlhV1Z6TENCaGRtVmpJR1JsY3lCa2IyNXV3NmxsY3lCd2IzVnlJR3hsY3lCaGJtN0RxV1Z6SUNBeE9Ua3dJQzBnTWpBeE5TQW9hV3dnYmlkNUlHRWdjR0Z6SUc3RHFXTmxjM05oYVhKbGJXVnVkQ0JrWlNCa2IyNXV3NmxsY3lCd2IzVnlJSFJ2ZFhSbGN5QnNaWE1nWVc1dXc2bGxjeUJ3YjNWeUlHd25aVzV6WlcxaWJHVWdaR1Z6SUdOdmJXSnBibUZwYzI5dWN5a3NJR1YwSUhOaElHUmxjbTVwdzZoeVpTQmtZWFJsSUdSbElHUnBabVoxYzJsdmJpQnlaVzF2Ym5SbElHRjFJREl3TVRZdE1ERXRNVEV1SUVObElIUmhZbXhsWVhVZ1kyOXVkR2xsYm5RZ1pHVnpJR1J2Ym03RHFXVnpJSFJsYkd4bGN5QnhkV1VnWk1PcFkzSnBkR1Z6SUhCaGNpQnNaWE1nWkdsdFpXNXphVzl1Y3lCemRXbDJZVzUwWlhNZ0tFeGxjeUJqYjIxaWFXNWhhWE52Ym5NZ2JtVWdjMjl1ZENCd1lYTWdkRzkxZEdWeklHUnBjM0J2Ym1saWJHVnpLU0E2SUVmRHFXOW5jbUZ3YUdsbElDZzBOeUREcVd6RHFXMWxiblJ6SURvZ1EyRnVZV1JoT3lCUWNtOTJhVzVqWlhNZ1pHVWdiQ2RCZEd4aGJuUnBjWFZsT3lCVVpYSnlaUzFPWlhWMlpTMWxkQzFNWVdKeVlXUnZjanNnVTNRdUlFcHZhRzRuY3l3Z1ZHVnljbVV0VG1WMWRtVXRaWFF0VEdGaWNtRmtiM0k3SUM0dUxpa3NJRlI1Y0dVZ1pDZDFibWwwdzZrZ0tEWWd3NmxzdzZsdFpXNTBjeUE2SUZSdmRHRnNJR1FuZFc1cGRNT3BjenNnVFdGcGMyOXVjeUJwYm1ScGRtbGtkV1ZzYkdWek95Qk1iMmRsYldWdWRITWdZMjlzYkdWamRHbG1jenNnVEc5blpXMWxiblJ6SUdwMWJXVnN3Nmx6T3lBdUxpNHBMand2WkdWelkzSnBjSFJwYjI0K0NpQWdQQzlrWlhOamNtbHdkR2x2Ym5NK0Nqd3ZjbVZ6YjNWeVkyVStDZz09IiwidXJsIjoiaHR0cHM6Ly93d3cxNTAuc3RhdGNhbi5nYy5jYS90MS90YmwxL2ZyL3R2LmFjdGlvbj9waWQ9MzQxMDAxNDAwMSIsImNvbnRlbnRVcmwiOm51bGwsIm1ldGFkYXRhVmVyc2lvbiI6MCwic2NoZW1hVmVyc2lvbiI6bnVsbCwic291cmNlIjoiZmFicmljYUZvcm0iLCJpc0FjdGl2ZSI6dHJ1ZSwic3RhdGUiOiJmaW5kYWJsZSIsInJlYXNvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMTktMDctMTlUMTc6Mjg6MzUuMDAwWiIsInJlZ2lzdGVyZWQiOiIyMDE5LTA3LTE5VDE3OjI4OjM1LjAwMFoiLCJwdWJsaXNoZWQiOiIyMDE4IiwidXBkYXRlZCI6IjIwMTktMDctMTlUMTc6Mjg6MzUuMDAwWiJ9LCJyZWxhdGlvbnNoaXBzIjp7ImNsaWVudCI6eyJkYXRhIjp7ImlkIjoiY2lzdGkuc3RhdGNhbiIsInR5cGUiOiJjbGllbnRzIn19LCJtZWRpYSI6eyJkYXRhIjpbXX19fSwiaW5jbHVkZWQiOlt7ImlkIjoiY2lzdGkuc3RhdGNhbiIsInR5cGUiOiJjbGllbnRzIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiU3RhdGlzdGljcyBDYW5hZGEiLCJzeW1ib2wiOiJDSVNUSS5TVEFUQ0FOIiwieWVhciI6MjAxNywiY29udGFjdE5hbWUiOiJKYWNxdWVsaW5lIEx1ZmZtYW4iLCJjb250YWN0RW1haWwiOiJzdGF0Y2FuLmF1dGhvcmxpYWlzb24tbGlhaXNvbmF1dGV1ci5zdGF0Y2FuQGNhbmFkYS5jYSIsImRlc2NyaXB0aW9uIjpudWxsLCJkb21haW5zIjoic3RhdGNhbi5nYy5jYSIsInVybCI6bnVsbCwiY3JlYXRlZCI6IjIwMTctMDgtMDFUMTI6MDE6MjMuMDAwWiIsInVwZGF0ZWQiOiIyMDE5LTAzLTA0VDIwOjEyOjE5LjAwMFoiLCJpc0FjdGl2ZSI6dHJ1ZSwiaGFzUGFzc3dvcmQiOnRydWV9LCJyZWxhdGlvbnNoaXBzIjp7InByb3ZpZGVyIjp7ImRhdGEiOnsiaWQiOiJjaXN0aSIsInR5cGUiOiJwcm92aWRlcnMifX0sInByZWZpeGVzIjp7ImRhdGEiOlt7ImlkIjoiMTAuMjUzMTgiLCJ0eXBlIjoicHJlZml4ZXMifV19fX1dfQ==
|
93
|
+
http_version:
|
94
|
+
recorded_at: Sat, 20 Jul 2019 07:48:06 GMT
|
95
|
+
recorded_with: VCR 3.0.3
|
@@ -107,6 +107,26 @@ describe Bolognese::Metadata, vcr: true do
|
|
107
107
|
expect(subject.agency).to eq("Crossref")
|
108
108
|
end
|
109
109
|
|
110
|
+
it "journal article with RDF for container" do
|
111
|
+
input = "https://doi.org/10.1163/1937240X-00002096"
|
112
|
+
subject = Bolognese::Metadata.new(input: input)
|
113
|
+
expect(subject.valid?).to be true
|
114
|
+
expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1163/1937240x-00002096", "identifierType"=>"DOI"}])
|
115
|
+
expect(subject.url).to eq("https://academic.oup.com/jcb/article-lookup/doi/10.1163/1937240X-00002096")
|
116
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
117
|
+
expect(subject.creators.length).to eq(8)
|
118
|
+
expect(subject.creators.first).to eq("familyName"=>"Mesquita-Joanes", "givenName"=>"Francesc", "name"=>"Mesquita-Joanes, Francesc", "nameType"=>"Personal")
|
119
|
+
expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an exotic invasive Ostracoda on the Iberian Peninsula?"}])
|
120
|
+
expect(subject.dates).to eq([{"date"=>"2012-01-01", "dateType"=>"Issued"}, {"date"=>"2019-07-05T20:53:10Z", "dateType"=>"Updated"}])
|
121
|
+
expect(subject.publication_year).to eq("2012")
|
122
|
+
expect(subject.publisher).to eq("Oxford University Press (OUP)")
|
123
|
+
expect(subject.related_identifiers.length).to eq(44)
|
124
|
+
expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1937-240X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
|
125
|
+
expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1002/aqc.1122", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
|
126
|
+
expect(subject.container).to eq("firstPage"=>"949", "identifier"=>"1937-240X", "identifierType"=>"ISSN", "issue"=>"6", "lastPage"=>"961", "title"=>"Journal of Crustacean Biology", "type"=>"Journal", "volume"=>"32")
|
127
|
+
expect(subject.agency).to eq("Crossref")
|
128
|
+
end
|
129
|
+
|
110
130
|
it "posted_content" do
|
111
131
|
input = "https://doi.org/10.1101/097196"
|
112
132
|
subject = Bolognese::Metadata.new(input: input)
|
@@ -706,6 +706,23 @@ describe Bolognese::Metadata, vcr: true do
|
|
706
706
|
expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
|
707
707
|
end
|
708
708
|
|
709
|
+
it "Schema.org type" do
|
710
|
+
input = "https://doi.org/10.25318/3410014001-fra"
|
711
|
+
subject = Bolognese::Metadata.new(input: input)
|
712
|
+
expect(subject.valid?).to be true
|
713
|
+
expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.25318/3410014001-fra", "identifierType"=>"DOI"}])
|
714
|
+
expect(subject.types["schemaOrg"]).to eq("Dataset")
|
715
|
+
expect(subject.types["resourceType"]).to be_nil
|
716
|
+
expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
|
717
|
+
expect(subject.types["ris"]).to eq("DATA")
|
718
|
+
expect(subject.types["bibtex"]).to eq("misc")
|
719
|
+
expect(subject.creators.length).to eq(1)
|
720
|
+
expect(subject.creators.first).to eq("affiliation" => [{"affiliationIdentifier"=>"https://ror.org/04zt3wx35", "affiliationIdentifierScheme"=>"ROR", "name"=>"Canada Mortgage and Housing Corporation"}],
|
721
|
+
"name" => "Statistique Canada",
|
722
|
+
"nameIdentifiers" => [],
|
723
|
+
"nameType" => "Organizational")
|
724
|
+
end
|
725
|
+
|
709
726
|
it "doi with + sign" do
|
710
727
|
input = "10.5067/terra+aqua/ceres/cldtyphist_l3.004"
|
711
728
|
subject = Bolognese::Metadata.new(input: input)
|
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.3.
|
4
|
+
version: 1.3.9
|
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-
|
11
|
+
date: 2019-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -863,6 +863,7 @@ files:
|
|
863
863
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article.yml
|
864
864
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_original_language_title.yml
|
865
865
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with.yml
|
866
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml
|
866
867
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_funding.yml
|
867
868
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_issue.yml
|
868
869
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/mEDRA.yml
|
@@ -885,6 +886,7 @@ files:
|
|
885
886
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml
|
886
887
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_schema_version_4.yml
|
887
888
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Referee_report_in_test_system.yml
|
889
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Schema_org_type.yml
|
888
890
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_only_full_name.yml
|
889
891
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_scheme.yml
|
890
892
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml
|
@@ -1156,7 +1158,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1156
1158
|
- !ruby/object:Gem::Version
|
1157
1159
|
version: '0'
|
1158
1160
|
requirements: []
|
1159
|
-
|
1161
|
+
rubyforge_project:
|
1162
|
+
rubygems_version: 2.7.7
|
1160
1163
|
signing_key:
|
1161
1164
|
specification_version: 4
|
1162
1165
|
summary: Ruby client library for conversion of DOI Metadata
|