bolognese 1.2.8 → 1.2.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 +1 -1
- data/lib/bolognese/metadata.rb +0 -9
- data/lib/bolognese/metadata_utils.rb +10 -0
- data/lib/bolognese/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +88 -0
- data/spec/readers/crossref_reader_spec.rb +15 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 076626c5e9df7e3e16d1ca3154bc6231f2a1b3c28ab78b8c53834e31fe0ce6e9
|
4
|
+
data.tar.gz: a6f1df9d28b6cefda4afbd5a2874f27ac4118c9c1002b4309bebdc8627e085d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4027516433c153f0660fbe7b86cc495964ac0566e630d6c28a0d7d6e4c0ab7dbd69cfe78d350d351bfee97872a09445791015334da5c13844ae00cafbcde8367
|
7
|
+
data.tar.gz: 455d0d7e65036e994a5ec825577bcc967a00c65ec80c0bdca9b3e82e8a61830254417fa06d478a5f1a72f17e691cf5f06dc1c5ed5586aa662419b181d8407b2a
|
data/Gemfile.lock
CHANGED
data/lib/bolognese/metadata.rb
CHANGED
@@ -6,15 +6,6 @@ module Bolognese
|
|
6
6
|
class Metadata
|
7
7
|
include Bolognese::MetadataUtils
|
8
8
|
|
9
|
-
alias get_medra get_crossref
|
10
|
-
alias read_medra read_crossref
|
11
|
-
alias get_kisti get_crossref
|
12
|
-
alias read_kisti read_crossref
|
13
|
-
alias get_jalc get_crossref
|
14
|
-
alias read_jalc read_crossref
|
15
|
-
alias get_op get_crossref
|
16
|
-
alias read_op read_crossref
|
17
|
-
|
18
9
|
attr_accessor :string, :from, :sandbox, :meta, :regenerate, :issue
|
19
10
|
attr_reader :doc, :page_start, :page_end
|
20
11
|
attr_writer :id, :provider_id, :client_id, :doi, :identifiers, :creators, :contributors, :titles, :publisher,
|
@@ -65,6 +65,16 @@ module Bolognese
|
|
65
65
|
|
66
66
|
attr_reader :name_detector, :reverse
|
67
67
|
|
68
|
+
# some dois in the Crossref index are from other registration agencies
|
69
|
+
alias get_medra get_crossref
|
70
|
+
alias read_medra read_crossref
|
71
|
+
alias get_kisti get_crossref
|
72
|
+
alias read_kisti read_crossref
|
73
|
+
alias get_jalc get_crossref
|
74
|
+
alias read_jalc read_crossref
|
75
|
+
alias get_op get_crossref
|
76
|
+
alias read_op read_crossref
|
77
|
+
|
68
78
|
# replace DOI in XML if provided in options
|
69
79
|
def raw
|
70
80
|
r = string.present? ? string.strip : nil
|
data/lib/bolognese/version.rb
CHANGED
@@ -0,0 +1,88 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.4018
|
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, 06 Jul 2019 13:54:21 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=d347b3eaa144ff845e4d09e0e845ec33f1562421261; expires=Sun, 05-Jul-20
|
29
|
+
13:54:21 GMT; path=/; domain=.doi.org; HttpOnly
|
30
|
+
Expect-Ct:
|
31
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
32
|
+
Server:
|
33
|
+
- cloudflare
|
34
|
+
Cf-Ray:
|
35
|
+
- 4f2211f13cf52340-FRA
|
36
|
+
body:
|
37
|
+
encoding: ASCII-8BIT
|
38
|
+
string: |-
|
39
|
+
[
|
40
|
+
{
|
41
|
+
"DOI": "10.4018",
|
42
|
+
"RA": "Crossref"
|
43
|
+
}
|
44
|
+
]
|
45
|
+
http_version:
|
46
|
+
recorded_at: Sat, 06 Jul 2019 13:54:21 GMT
|
47
|
+
- request:
|
48
|
+
method: get
|
49
|
+
uri: https://api.crossref.org/works/10.4018/978-1-4666-1891-6.ch004/transform/application/vnd.crossref.unixsd+xml
|
50
|
+
body:
|
51
|
+
encoding: US-ASCII
|
52
|
+
string: ''
|
53
|
+
headers:
|
54
|
+
User-Agent:
|
55
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.6; mailto:info@datacite.org)
|
56
|
+
Accept:
|
57
|
+
- text/xml
|
58
|
+
response:
|
59
|
+
status:
|
60
|
+
code: 200
|
61
|
+
message: OK
|
62
|
+
headers:
|
63
|
+
Link:
|
64
|
+
- <http://dx.doi.org/10.4018/978-1-4666-1891-6.ch004>; rel="canonical", <https://www.igi-global.com/viewtitle.aspx?TitleId=69071>;
|
65
|
+
version="vor"; rel="item"
|
66
|
+
Access-Control-Allow-Origin:
|
67
|
+
- "*"
|
68
|
+
Access-Control-Allow-Headers:
|
69
|
+
- X-Requested-With
|
70
|
+
Content-Length:
|
71
|
+
- '15397'
|
72
|
+
Server:
|
73
|
+
- http-kit
|
74
|
+
Date:
|
75
|
+
- Sat, 06 Jul 2019 13:54:21 GMT
|
76
|
+
X-Rate-Limit-Limit:
|
77
|
+
- '50'
|
78
|
+
X-Rate-Limit-Interval:
|
79
|
+
- 1s
|
80
|
+
Connection:
|
81
|
+
- close
|
82
|
+
body:
|
83
|
+
encoding: ASCII-8BIT
|
84
|
+
string: !binary |-
|
85
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iYm9va19jb250ZW50Ij4xMC40MDE4Lzk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5JR0kgR2xvYmFsPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InByZWZpeC1uYW1lIiB0eXBlPSJzdHJpbmciPklHSSBHbG9iYWw8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibWVtYmVyLWlkIiB0eXBlPSJudW1iZXIiPjI0MzI8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NTY5ODcwMTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iYm9vay1pZCIgdHlwZT0ibnVtYmVyIj4xMTMxMTk4PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImRlcG9zaXQtdGltZXN0YW1wIiB0eXBlPSJudW1iZXIiPjIwMTgxMTE5MDExMjU5PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im93bmVyLXByZWZpeCIgdHlwZT0ic3RyaW5nIj4xMC40MDE4PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Imxhc3QtdXBkYXRlIiB0eXBlPSJkYXRlIj4yMDE5LTA3LTAyVDE3OjE3OjIxWjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjcmVhdGVkIiB0eXBlPSJkYXRlIj4yMDEyLTA4LTA4VDIwOjU0OjA3WjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRlZGJ5LWNvdW50IiB0eXBlPSJudW1iZXIiPjA8L2NybS1pdGVtPg0KICAgICAgICA8ZG9pX3JlY29yZD4NCiAgICAgICAgICA8Y3Jvc3NyZWYgeG1sbnM9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3hzY2hlbWEvMS4xIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3hzY2hlbWEvMS4xIGh0dHA6Ly9kb2kuY3Jvc3NyZWYub3JnL3NjaGVtYXMvdW5peHJlZjEuMS54c2QiPg0KICAgICAgICAgICAgPGJvb2sgYm9va190eXBlPSJtb25vZ3JhcGgiPg0KICAgICAgICAgICAgICA8Ym9va19tZXRhZGF0YT4NCiAgICAgICAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJmaXJzdCIgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+WGlhbzwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+QmFpPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+QmVpaGFuZyBVbml2ZXJzaXR5LCBDaGluYTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJlZGl0b3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KaWFuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5DaGVuZzwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkNoaW5lc2UgQWNhZGVteSBvZiBTY2llbmNlcywgQ2hpbmE8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+RWR3aW48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPkhhbmNvY2s8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5Vbml2ZXJzaXR5IG9mIFlvcmssIFVLPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDx0aXRsZT5HcmFwaC1CYXNlZCBNZXRob2RzIGluIENvbXB1dGVyIFZpc2lvbjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICA8c3VidGl0bGU+RGV2ZWxvcG1lbnRzIGFuZCBBcHBsaWNhdGlvbnM8L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDxwdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxMzwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPGlzYm4+OTc4MTQ2NjYxODkxNjwvaXNibj4NCiAgICAgICAgICAgICAgICA8aXNibiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj45NzgxNDY2NjE4OTIzPC9pc2JuPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXI+DQogICAgICAgICAgICAgICAgICA8cHVibGlzaGVyX25hbWU+SUdJIEdsb2JhbDwvcHVibGlzaGVyX25hbWU+DQogICAgICAgICAgICAgICAgPC9wdWJsaXNoZXI+DQogICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPGRvaT4xMC40MDE4Lzk3OC0xLTQ2NjYtMTg5MS02PC9kb2k+DQogICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL3NlcnZpY2VzLmlnaS1nbG9iYWwuY29tL3Jlc29sdmVkb2kvcmVzb2x2ZS5hc3B4P2RvaT0xMC40MDE4Lzk3OC0xLTQ2NjYtMTg5MS02PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICA8L2Jvb2tfbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxjb250ZW50X2l0ZW0gY29tcG9uZW50X3R5cGU9ImNoYXB0ZXIiPg0KICAgICAgICAgICAgICAgIDxjb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImZpcnN0IiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5DaGFybGVzLUVkbW9uZDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+QmljaG90PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+VW5pdmVyc2l0w6kgZGUgTHlvbiwgRnJhbmNlPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDx0aXRsZT5VbnN1cGVydmlzZWQgYW5kIFN1cGVydmlzZWQgSW1hZ2UgU2VnbWVudGF0aW9uIFVzaW5nIEdyYXBoIFBhcnRpdGlvbmluZzwvdGl0bGU+DQogICAgICAgICAgICAgICAgICA8c3VidGl0bGUgLz4NCiAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICA8amF0czphYnN0cmFjdCB4bWxuczpqYXRzPSJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvSkFUUzEiPg0KICAgICAgICAgICAgICAgICAgPGphdHM6cD5JbWFnZSBzZWdtZW50YXRpb24gaXMgYW4gaW1wb3J0YW50IHJlc2VhcmNoIGFyZWEgaW4gY29tcHV0ZXIgdmlzaW9uIGFuZCBpdHMgYXBwbGljYXRpb25zIGluIGRpZmZlcmVudCBkaXNjaXBsaW5lcywgc3VjaCBhcyBtZWRpY2luZSwgYXJlIG9mIGdyZWF0IGltcG9ydGFuY2UuIEl0IGlzIG9mdGVuIG9uZSBvZiB0aGUgdmVyeSBmaXJzdCBzdGVwcyBvZiBjb21wdXRlciB2aXNpb24gb3IgcGF0dGVybiByZWNvZ25pdGlvbiBtZXRob2RzLiBUaGlzIGlzIGJlY2F1c2Ugc2VnbWVudGF0aW9uIGhlbHBzIHRvIGxvY2F0ZSBvYmplY3RzIGFuZCBib3VuZGFyaWVzIGludG8gaW1hZ2VzLiBUaGUgb2JqZWN0aXZlIG9mIHNlZ21lbnRpbmcgYW4gaW1hZ2UgaXMgdG8gcGFydGl0aW9uIGl0IGludG8gZGlzam9pbnQgYW5kIGhvbW9nZW5lb3VzIHNldHMgb2YgcGl4ZWxzLiBXaGVuIHNlZ21lbnRpbmcgYW4gaW1hZ2UgaXQgaXMgbmF0dXJhbCB0byB0cnkgdG8gdXNlIGdyYXBoIHBhcnRpdGlvbmluZywgYmVjYXVzZSBzZWdtZW50YXRpb24gYW5kIHBhcnRpdGlvbmluZyBzaGFyZSB0aGUgc2FtZSBoaWdoLWxldmVsIG9iamVjdGl2ZSwgdG8gcGFydGl0aW9uIGEgc2V0IGludG8gZGlzam9pbnRzIHN1YnNldHMuIEhvd2V2ZXIsIHdoZW4gdXNpbmcgZ3JhcGggcGFydGl0aW9uaW5nIGZvciBzZWdtZW50aW5nIGFuIGltYWdlLCBzZXZlcmFsIGJpZyBxdWVzdGlvbnMgcmVtYWluOiBXaGF0IGlzIHRoZSBiZXN0IHdheSB0byBjb252ZXJ0IGFuIGltYWdlIGludG8gYSBncmFwaD8gT3IgdG8gY29udmVydCBpbWFnZSBzZWdtZW50YXRpb24gb2JqZWN0aXZlcyBpbnRvIGdyYXBoIHBhcnRpdGlvbmluZyBvYmplY3RpdmVzIChub3QgdG8gbWVudGlvbiB3aGF0IGFyZSBpbWFnZSBzZWdtZW50YXRpb24gb2JqZWN0aXZlcyk/IFdoYXQgYXJlIHRoZSBiZXN0IGdyYXBoIHBhcnRpdGlvbmluZyBtZXRob2RzIGFuZCBhbGdvcml0aG1zIGZvciBzZWdtZW50aW5nIGFuIGltYWdlPyBJbiB0aGlzIGNoYXB0ZXIsIHRoZSBhdXRob3IgdHJpZXMgdG8gYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucywgYm90aCBmb3IgdW5zdXBlcnZpc2VkIGFuZCBzdXBlcnZpc2VkIGltYWdlIHNlZ21lbnRhdGlvbiBhcHByb2FjaCwgYnkgcHJlc2VudGluZyBtZXRob2RzIGFuZCBhbGdvcml0aG1zIGFuZCBieSBjb21wYXJpbmcgdGhlbS48L2phdHM6cD4NCiAgICAgICAgICAgICAgICA8L2phdHM6YWJzdHJhY3Q+DQogICAgICAgICAgICAgICAgPGNvbXBvbmVudF9udW1iZXI+Y2hhcHRlciA0PC9jb21wb25lbnRfbnVtYmVyPg0KICAgICAgICAgICAgICAgIDxwYWdlcz4NCiAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjcyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT45NDwvbGFzdF9wYWdlPg0KICAgICAgICAgICAgICAgIDwvcGFnZXM+DQogICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPGRvaT4xMC40MDE4Lzk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL3NlcnZpY2VzLmlnaS1nbG9iYWwuY29tL3Jlc29sdmVkb2kvcmVzb2x2ZS5hc3B4P2RvaT0xMC40MDE4Lzk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIj4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vd3d3LmlnaS1nbG9iYWwuY29tL3ZpZXd0aXRsZS5hc3B4P1RpdGxlSWQ9NjkwNzE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0xIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2LzAwOTUtODk1Nig4NSk5MDA5Mi05PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BIGdlb2Rlc2ljIGZyYW1ld29yayBmb3IgZmFzdCBpbnRlcmFjdGl2ZSBpbWFnZSBhbmQgdmlkZW8gc2VnbWVudGF0aW9uIGFuZCBtYXR0aW5nPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlguQmFpPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA3PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5NzgtMS00NjY2LTE4OTEtNi5jaDAwNC4tMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwMi9jcGUuNDMzMDA2MDIwMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MxMDg1Mi0wMTAtOTEyNi0wPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTUiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkJpY2hvdCwgQy4tRS4sICZhbXA7IFNpYXJyeSwgUC4gKMOJZHMuKS4gKDIwMTEpLiBHcmFwaCBwYXJ0aXRpb25pbmcuIElTVEUgLSBXaWxleS48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5NzgtMS00NjY2LTE4OTEtNi5jaDAwNC4tNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDA3Lzk3OC0zLTU0MC0yNDY3MC0xXzMzPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+Qmxha2UsIEEuLCBSb3RoZXIsIEMuLCBCcm93biwgTS4sIFBlcmV6LCBQLiwgJmFtcDsgVG9yciwgUC4gKDIwMDQpLiBJbnRlcmFjdGl2ZSBpbWFnZSBzZWdtZW50YXRpb24gdXNpbmcgYW4gYWRhcHRpdmUgR01NUkYgbW9kZWwuIEluIFQuIFBhamRsYSwgJmFtcDsgSi4gTWF0YXMgKEVkcy4pLCBQcm9jZWVkaW5ncyBvZiB0aGUgRXVyb3BlYW4gQ29uZmVyZW5jZSBvbiBDb21wdXRlciBWaXNpb24gKEVDQ1YpIChWb2wuIDMwMjEsIHBwLiA0MjgtNDQxKS4gQmVybGluLCBHZXJtYW55IFNwcmluZ2VyLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li03Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvSUNDVi4yMDAzLjEyMzgzMTA8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5Cb3lrb3YsIFkuLCAmYW1wOyBLb2xtb2dvcm92LCBWLiAoMjAwMykuIENvbXB1dGluZyBnZW9kZXNpY3MgYW5kIG1pbmltYWwgc3VyZmFjZXMgdmlhIGdyYXBoIGN1dHMuIFByb2NlZWRpbmdzIG9mIHRoZSBOaW50aCBJRUVFIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBDb21wdXRlciBWaXNpb24sIFZvbC4gMiwgKHBwLiAyNi0zMykuIElFRUUgQ29tcHV0ZXIgU29jaWV0eS48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5NzgtMS00NjY2LTE4OTEtNi5jaDAwNC4tOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0lDQ1YuMjAwMS45Mzc1MDU8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5Cb3lrb3YsIFkuIFkuLCAmYW1wOyBKb2xseSwgTS4tUC4gKDIwMDEpLiBJbnRlcmFjdGl2ZSBncmFwaCBjdXRzIGZvciBvcHRpbWFsIGJvdW5kYXJ5ICZhbXA7IHJlZ2lvbiBzZWdtZW50YXRpb24gb2Ygb2JqZWN0cyBpbiBOLUQgaW1hZ2VzLiBQcm9jZWVkaW5ncyBvZiB0aGUgRWlnaHRoIElFRUUgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIENvbXB1dGVyIFZpc2lvbiwgVm9sLiAxLCAocHAuIDEwNS0xMTIpLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li05Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDIzL0E6MTAwNzk3OTgyNzA0MzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0xMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0lDQ1YuMjAwOS41NDU5Mjg0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+Q291cHJpZSwgQy4sIEdyYWR5LCBMLiwgTmFqbWFuLCBMLiwgJmFtcDsgVGFsYm90LCBILiAoMjAwOSkuIFBvd2VyIHdhdGVyc2hlZHM6IEEgbmV3IGltYWdlIHNlZ21lbnRhdGlvbiBmcmFtZXdvcmsgZXh0ZW5kaW5nIGdyYXBoIGN1dHMsIHJhbmRvbSB3YWxrZXIgYW5kIG9wdGltYWwgc3Bhbm5pbmcgZm9yZXN0LCAocHAuIDczMS03MzgpLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0xMSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0NWUFIuMjAwNS4zMzI8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5Db3VyLCBULiwgQmVuZXppdCwgRi4sICZhbXA7IFNoaSwgSi4gKDIwMDUpLiBTcGVjdHJhbCBzZWdtZW50YXRpb24gd2l0aCBtdWx0aXNjYWxlIGdyYXBoIGRlY29tcG9zaXRpb24uIFByb2NlZWRpbmdzIG9mIHRoZSAyMDA1IElFRUUgQ29tcHV0ZXIgU29jaWV0eSBDb25mZXJlbmNlIG9uIENvbXB1dGVyIFZpc2lvbiBhbmQgUGF0dGVybiBSZWNvZ25pdGlvbiAocHAuIDExMjQtMTEzMSkuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTEyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA5L1RQQU1JLjIwMDguMTczPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTEzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA5L1RQQU1JLjIwMDcuMTExNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0xNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPklCTSBUZWNobmljYWwgRGlzY2xvc3VyZSBCdWxsZXRpbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5XLkRvbmF0aDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjkzODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5NzI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5BbGdvcml0aG1zIGZvciBwYXJ0aXRpb25pbmcgZ3JhcGhzIGFuZCBjb21wdXRlciBsb2dpYyBiYXNlZCBvbiBlaWdlbnZlY3RvcnMgb2YgY29ubmVjdGlvbiBtYXRyaWNlcy48L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTQ3L3JkLjE3NS4wNDIwPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTE2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MwMDIyNC0wMDMtMTA4My05PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTE3Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5GaWR1Y2NpYSwgQy4gTS4sICZhbXA7IE1hdHRoZXlzZXMsIFIuIE0uICgxOTgyKS4gQSBsaW5lYXItdGltZSBoZXVyaXN0aWMgZm9yIGltcHJvdmluZyBuZXR3b3JrIHBhcnRpdGlvbnMuIFByb2NlZWRpbmdzIG9mIHRoZSAxOXRoIERlc2lnbiBBdXRvbWF0aW9uIENvbmZlcmVuY2UsIChwcC4gMTc1LTE4MSkuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTE4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvQ1ZQUi4yMDA1LjE0MzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkZyZWVkbWFuLCBELiwgJmFtcDsgRHJpbmVhcywgUC4gKDIwMDUpLiBFbmVyZ3kgbWluaW1pemF0aW9uIHZpYSBncmFwaCBjdXRzOiBTZXR0bGluZyB3aGF0IGlzIHBvc3NpYmxlLiBQcm9jZWVkaW5ncyBvZiB0aGUgMjAwNSBJRUVFIENvbXB1dGVyIFNvY2lldHkgQ29uZmVyZW5jZSBvbiBDb21wdXRlciBWaXNpb24gYW5kIFBhdHRlcm4gUmVjb2duaXRpb24sIChwcC4gOTM5LTk0NikuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTE5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWF0cml4IGNvbXB1dGF0aW9uczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HLkdvbHViPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5NzgtMS00NjY2LTE4OTEtNi5jaDAwNC4tMjAiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDkvVFBBTUkuMjAwNi4yMzM8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5NzgtMS00NjY2LTE4OTEtNi5jaDAwNC4tMjEiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMzcvUzA4OTU0Nzk4OTYzMTIyNjI8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5NzgtMS00NjY2LTE4OTEtNi5jaDAwNC4tMjIiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvUzA3MzQtMTg5WCg4NSk5MDE1My03PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTIzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExNDUvMjI0MTcwLjIyNDIyODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkhlbmRyaWNrc29uLCBCLiwgJmFtcDsgTGVsYW5kLCBSLiBXLiAoMTk5NSkuIEEgbXVsdGlsZXZlbCBhbGdvcml0aG0gZm9yIHBhcnRpdGlvbmluZyBncmFwaHMuIFByb2NlZWRpbmdzIG9mIFN1cGVyY29tcHV0aW5nLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0yNCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTQ1LzIyNDE3MC4yMjQyMjk8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5LYXJ5cGlzLCBHLiwgJmFtcDsgS3VtYXIsIFYuICgxOTk1KS4gQW5hbHlzaXMgb2YgbXVsdGlsZXZlbCBncmFwaCBwYXJ0aXRpb25pbmcuIFByb2NlZWRpbmdzIG9mIFN1cGVyY29tcHV0aW5nLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0yNSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEzNy9TMTA2NDgyNzU5NTI4Nzk5NzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0yNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNi9qcGRjLjE5OTcuMTQwNDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0yNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlRoZSBCZWxsIFN5c3RlbSBUZWNobmljYWwgSm91cm5hbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5CLiBXLktlcm5pZ2hhbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQ5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI5MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5NzA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAwMi9qLjE1MzgtNzMwNS4xOTcwLnRiMDE3NzAueDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5hbiBlZmZpY2llbnQgaGV1cmlzdGljIHByb2NlZHVyZSBmb3IgcGFydGl0aW9uaW5nIGdyYXBocy48L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTI4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QSBkYXRhYmFzZSBvZiBodW1hbiBzZWdtZW50ZWQgbmF0dXJhbCBpbWFnZXMgYW5kIGl0cyBhcHBsaWNhdGlvbiB0byBldmFsdWF0aW5nIHNlZ21lbnRhdGlvbiBhbGdvcml0aG1zIGFuZCBtZWFzdXJpbmcgZWNvbG9naWNhbCBzdGF0aXN0aWNzLiBUZWNobmljYWwgcmVwb3J0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkQuIFIuTWFydGluPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQxNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9Ijk3OC0xLTQ2NjYtMTg5MS02LmNoMDA0Li0yOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE0NS8xMDE1NzA2LjEwMTU3MjA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSI5NzgtMS00NjY2LTE4OTEtNi5jaDAwNC4tMzAiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDkvMzQuODY4Njg4PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTMxIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvSUNDVi4yMDA3LjQ0MDg5Mjc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5TaW5vcCwgQS4gSy4sICZhbXA7IEdyYWR5LCBMLiAoMjAwNykuIEEgc2VlZGVkIGltYWdlIHNlZ21lbnRhdGlvbiBmcmFtZXdvcmsgdW5pZnlpbmcgZ3JhcGggY3V0cyBhbmQgcmFuZG9tIHdhbGtlciB3aGljaCB5aWVsZHMgYSBuZXcgYWxnb3JpdGhtLiBQcm9jZWVkaW5ncyBvZiB0aGUgMjAwNyBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb24gQ29tcHV0ZXIgVmlzaW9uLCAocHAuIDEtOCkuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTMyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTM3L1MxMDY0ODI3NTk4MzM3MzczPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOTc4LTEtNDY2Ni0xODkxLTYuY2gwMDQuLTMzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY3ZpdS4yMDA3LjA4LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICA8L2NpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgIDwvY29udGVudF9pdGVtPg0KICAgICAgICAgICAgPC9ib29rPg0KICAgICAgICAgIDwvY3Jvc3NyZWY+DQogICAgICAgIDwvZG9pX3JlY29yZD4NCiAgICAgIDwvcXVlcnk+DQogICAgPC9ib2R5Pg0KICA8L3F1ZXJ5X3Jlc3VsdD4NCjwvY3Jvc3NyZWZfcmVzdWx0Pg==
|
86
|
+
http_version:
|
87
|
+
recorded_at: Sat, 06 Jul 2019 13:54:21 GMT
|
88
|
+
recorded_with: VCR 3.0.3
|
@@ -227,6 +227,21 @@ describe Bolognese::Metadata, vcr: true do
|
|
227
227
|
expect(subject.agency).to eq("Crossref")
|
228
228
|
end
|
229
229
|
|
230
|
+
it "yet another book chapter" do
|
231
|
+
input = "https://doi.org/10.4018/978-1-4666-1891-6.ch004"
|
232
|
+
subject = Bolognese::Metadata.new(input: input)
|
233
|
+
expect(subject.valid?).to be true
|
234
|
+
expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.4018/978-1-4666-1891-6.ch004", "identifierType"=>"DOI"}])
|
235
|
+
expect(subject.url).to eq("http://services.igi-global.com/resolvedoi/resolve.aspx?doi=10.4018/978-1-4666-1891-6.ch004")
|
236
|
+
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"Text", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
|
237
|
+
expect(subject.creators).to eq("familyName"=>"Bichot", "givenName"=>"Charles-Edmond", "name"=>"Bichot, Charles-Edmond", "nameType"=>"Personal")
|
238
|
+
expect(subject.titles).to eq([{"title"=>"Unsupervised and Supervised Image Segmentation Using Graph Partitioning"}])
|
239
|
+
expect(subject.dates).to eq([{"date"=>"2012-08-08", "dateType"=>"Issued"}, {"date"=>"2019-07-02T17:17:21Z", "dateType"=>"Updated"}])
|
240
|
+
expect(subject.publication_year).to eq("2012")
|
241
|
+
expect(subject.publisher).to eq("IGI Global")
|
242
|
+
expect(subject.agency).to eq("Crossref")
|
243
|
+
end
|
244
|
+
|
230
245
|
it "missing creator" do
|
231
246
|
input = "https://doi.org/10.3390/publications6020015"
|
232
247
|
subject = Bolognese::Metadata.new(input: input)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bolognese
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
@@ -844,6 +844,7 @@ files:
|
|
844
844
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml
|
845
845
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml
|
846
846
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/vor_with_url.yml
|
847
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book_chapter.yml
|
847
848
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting.yml
|
848
849
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system.yml
|
849
850
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system_schema_3.yml
|