enju_biblio 0.3.9 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/content_types_controller.rb +1 -1
  3. data/app/controllers/item_custom_properties_controller.rb +69 -0
  4. data/app/controllers/items_controller.rb +3 -0
  5. data/app/controllers/manifestation_custom_properties_controller.rb +69 -0
  6. data/app/controllers/manifestations_controller.rb +9 -6
  7. data/app/controllers/resource_import_results_controller.rb +6 -2
  8. data/app/models/agent_type.rb +0 -1
  9. data/app/models/carrier_type.rb +0 -1
  10. data/app/models/content_type.rb +0 -1
  11. data/app/models/form_of_work.rb +1 -2
  12. data/app/models/frequency.rb +0 -1
  13. data/app/models/identifier_type.rb +0 -1
  14. data/app/models/item.rb +17 -6
  15. data/app/models/item_custom_property.rb +18 -0
  16. data/app/models/item_custom_value.rb +17 -0
  17. data/app/models/license.rb +0 -1
  18. data/app/models/manifestation.rb +55 -11
  19. data/app/models/manifestation_custom_property.rb +18 -0
  20. data/app/models/manifestation_custom_value.rb +17 -0
  21. data/app/models/medium_of_performance.rb +1 -2
  22. data/app/models/picture_file.rb +0 -2
  23. data/app/models/resource_export_file.rb +4 -2
  24. data/app/models/resource_import_file.rb +151 -61
  25. data/app/policies/item_custom_property_policy.rb +21 -0
  26. data/app/policies/manifestation_custom_property_policy.rb +21 -0
  27. data/app/views/item_custom_properties/_form.html.erb +32 -0
  28. data/app/views/item_custom_properties/edit.html.erb +13 -0
  29. data/app/views/item_custom_properties/index.html.erb +43 -0
  30. data/app/views/item_custom_properties/new.html.erb +12 -0
  31. data/app/views/item_custom_properties/show.html.erb +28 -0
  32. data/app/views/items/_form.html.erb +13 -0
  33. data/app/views/items/show.html.erb +6 -0
  34. data/app/views/manifestation_custom_properties/_form.html.erb +32 -0
  35. data/app/views/manifestation_custom_properties/edit.html.erb +13 -0
  36. data/app/views/manifestation_custom_properties/index.html.erb +43 -0
  37. data/app/views/manifestation_custom_properties/new.html.erb +12 -0
  38. data/app/views/manifestation_custom_properties/show.html.erb +28 -0
  39. data/app/views/manifestations/_export_detail.html.erb +1 -0
  40. data/app/views/manifestations/_export_list.html.erb +1 -0
  41. data/app/views/manifestations/_form.html.erb +18 -0
  42. data/app/views/manifestations/_show_detail_librarian.html.erb +14 -0
  43. data/app/views/manifestations/_show_detail_user.html.erb +8 -0
  44. data/app/views/manifestations/show.json.jbuilder +2 -0
  45. data/app/views/picture_files/edit.html.erb +4 -0
  46. data/config/locales/translation_en.yml +22 -8
  47. data/config/locales/translation_ja.yml +22 -8
  48. data/config/routes.rb +2 -0
  49. data/db/migrate/20081027150907_create_picture_files.rb +0 -2
  50. data/db/migrate/20200425072340_create_manifestation_custom_properties.rb +12 -0
  51. data/db/migrate/20200425072349_create_item_custom_properties.rb +12 -0
  52. data/db/migrate/20200425074758_create_manifestation_custom_values.rb +12 -0
  53. data/db/migrate/20200425074822_create_item_custom_values.rb +12 -0
  54. data/lib/enju_biblio/openurl.rb +5 -1
  55. data/lib/enju_biblio/sru.rb +2 -0
  56. data/lib/enju_biblio/version.rb +1 -1
  57. data/spec/cassette_library/ResourceImportFile/when_its_mode_is_create_/when_it_is_written_in_utf-8/should_import_custom_values.yml +121 -0
  58. data/spec/cassette_library/resource_import_results/index_txt_ruby/renders_a_list_of_resource_import_results.yml +121 -0
  59. data/spec/controllers/content_types_controller_spec.rb +1 -1
  60. data/spec/controllers/item_custom_properties_controller_spec.rb +449 -0
  61. data/spec/controllers/items_controller_spec.rb +22 -0
  62. data/spec/controllers/manifestation_custom_properties_controller_spec.rb +449 -0
  63. data/spec/controllers/manifestations_controller_spec.rb +22 -0
  64. data/spec/dummy/db/schema.rb +43 -23
  65. data/spec/factories/item_custom_property.rb +6 -0
  66. data/spec/factories/item_custom_value.rb +6 -0
  67. data/spec/factories/manifestation_custom_property.rb +6 -0
  68. data/spec/factories/manifestation_custom_value.rb +6 -0
  69. data/spec/fixtures/creates.yml +2 -0
  70. data/spec/fixtures/item_custom_properties.yml +24 -0
  71. data/spec/fixtures/library_groups.yml +0 -2
  72. data/spec/fixtures/manifestation_custom_properties.yml +24 -0
  73. data/spec/fixtures/picture_files.yml +0 -2
  74. data/spec/fixtures/produces.yml +2 -0
  75. data/spec/fixtures/realizes.yml +2 -0
  76. data/spec/models/item_custom_property_spec.rb +18 -0
  77. data/spec/models/item_custom_value_spec.rb +17 -0
  78. data/spec/models/manifestation_custom_property_spec.rb +18 -0
  79. data/spec/models/manifestation_custom_value_spec.rb +17 -0
  80. data/spec/models/manifestation_spec.rb +16 -1
  81. data/spec/models/picture_file_spec.rb +0 -2
  82. data/spec/models/resource_export_file_spec.rb +61 -8
  83. data/spec/models/resource_import_file_spec.rb +43 -13
  84. data/spec/requests/item_custom_properties_spec.rb +129 -0
  85. data/spec/requests/manifestation_custom_properties_spec.rb +129 -0
  86. data/spec/routing/item_custom_properties_routing_spec.rb +38 -0
  87. data/spec/routing/manifestation_custom_properties_routing_spec.rb +38 -0
  88. data/spec/system/items_spec.rb +12 -0
  89. data/spec/system/manifestations_spec.rb +12 -0
  90. data/spec/views/item_custom_properties/edit.html.erb_spec.rb +21 -0
  91. data/spec/views/item_custom_properties/index.html.erb_spec.rb +25 -0
  92. data/spec/views/item_custom_properties/new.html.erb_spec.rb +21 -0
  93. data/spec/views/item_custom_properties/show.html.erb_spec.rb +16 -0
  94. data/spec/views/manifestation_custom_properties/edit.html.erb_spec.rb +21 -0
  95. data/spec/views/manifestation_custom_properties/index.html.erb_spec.rb +25 -0
  96. data/spec/views/manifestation_custom_properties/new.html.erb_spec.rb +21 -0
  97. data/spec/views/manifestation_custom_properties/show.html.erb_spec.rb +16 -0
  98. data/spec/views/manifestations/show.json.jbuilder_spec.rb +16 -0
  99. data/spec/views/resource_import_results/index.txt.ruby_spec.rb +4 -4
  100. metadata +560 -481
  101. data/db/migrate/20200322053443_add_default_custom_label_to_library_group.rb +0 -6
  102. data/db/migrate/20200322083313_create_custom_labels.rb +0 -10
  103. data/db/migrate/20200322083458_create_custom_properties.rb +0 -12
@@ -1,4 +1,6 @@
1
1
  Rails.application.routes.draw do
2
+ resources :item_custom_properties
3
+ resources :manifestation_custom_properties
2
4
  resources :resource_export_files
3
5
 
4
6
  resources :identifier_types
@@ -3,9 +3,7 @@ class CreatePictureFiles < ActiveRecord::Migration[4.2]
3
3
  create_table :picture_files do |t|
4
4
  t.integer :picture_attachable_id
5
5
  t.string :picture_attachable_type
6
- t.string :content_type
7
6
  t.text :title
8
- t.string :thumbnail
9
7
  t.integer :position
10
8
 
11
9
  t.timestamps
@@ -0,0 +1,12 @@
1
+ class CreateManifestationCustomProperties < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :manifestation_custom_properties do |t|
4
+ t.string :name, null: false, comment: 'ラベル名', index: {unique: true}
5
+ t.text :display_name, null: false, comment: '表示名'
6
+ t.text :note, comment: '備考'
7
+ t.integer :position, default: 1, null: false
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateItemCustomProperties < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :item_custom_properties do |t|
4
+ t.string :name, null: false, comment: 'ラベル名', index: {unique: true}
5
+ t.text :display_name, null: false, comment: '表示名'
6
+ t.text :note, comment: '備考'
7
+ t.integer :position, default: 1, null: false
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateManifestationCustomValues < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :manifestation_custom_values do |t|
4
+ t.references :manifestation_custom_property, null: false, foreign_key: true, index: {name: 'index_manifestation_custom_values_on_custom_property_id'}
5
+ t.references :manifestation, null: false, foreign_key: true
6
+ t.text :value
7
+
8
+ t.timestamps
9
+ end
10
+ add_index :manifestation_custom_values, [:manifestation_custom_property_id, :manifestation_id], unique: true, name: 'index_manifestation_custom_values_on_property_manifestation'
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateItemCustomValues < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :item_custom_values do |t|
4
+ t.references :item_custom_property, null: false, foreign_key: true, index: {name: 'index_item_custom_values_on_custom_property_id'}
5
+ t.references :item, null: false, foreign_key: true
6
+ t.text :value
7
+
8
+ t.timestamps
9
+ end
10
+ add_index :item_custom_values, [:item_custom_property_id, :item_id], unique: true, name: 'index_item_custom_values_on_custom_item_property_and_item_id'
11
+ end
12
+ end
@@ -54,9 +54,13 @@ class Openurl
54
54
  # 検索
55
55
  def search
56
56
  search = Sunspot.new_search(Manifestation)
57
+ role = Role.default_role
57
58
  @query_text = build_query
58
59
  query = @query_text
59
- search.build{ fulltext query }
60
+ search.build do
61
+ fulltext query
62
+ with(:required_role_id).less_than_or_equal_to role.id
63
+ end
60
64
  search.execute!.results
61
65
  end
62
66
 
@@ -54,8 +54,10 @@ class Sru
54
54
  def search
55
55
  sunspot_query = @cql.to_sunspot
56
56
  search = Sunspot.new_search(Manifestation)
57
+ role = Role.default_role
57
58
  search.build do
58
59
  fulltext sunspot_query
60
+ with(:required_role_id).less_than_or_equal_to role.id
59
61
  paginate page: 1, per_page: 10000
60
62
  end
61
63
  @manifestations = search.execute!.results
@@ -1,3 +1,3 @@
1
1
  module EnjuBiblio
2
- VERSION = "0.3.9".freeze
2
+ VERSION = "0.3.11".freeze
3
3
  end
@@ -0,0 +1,121 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://iss.ndl.go.jp/api/opensearch?cnt=10&dpid=iss-ndl-opac&idx=1&isbn=9784798002064&mediatype=1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Sat, 09 May 2020 16:47:05 GMT
23
+ X-Ua-Compatible:
24
+ - IE=Edge,chrome=1
25
+ Cache-Control:
26
+ - max-age=0, private, must-revalidate
27
+ Etag:
28
+ - '"f21a0277740bc174de5e81a7e1d2ffa5"'
29
+ X-Runtime:
30
+ - '0.073862'
31
+ Content-Length:
32
+ - '4838'
33
+ Status:
34
+ - '200'
35
+ Content-Type:
36
+ - application/xml; charset=utf-8
37
+ Set-Cookie:
38
+ - HTTP_Z308_KEY_DATA_01=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970
39
+ 00:00:00 GMT
40
+ - ROUTEID=.ps24; path=/
41
+ - TS0162cc8a=011338590a9759cfdf71cde9936393aab0307520779c47d8876b33cc5061074ade321de6b20ddece94b3375c013de6c5c2cdcd6203ce009b2d4aba030ab325cc3af80ee039bf917eea3681f2c35bff211b344d8eff;
42
+ path=/; domain=.ndl.go.jp
43
+ - TS01f3cfdf=011338590a82d5a110217a6c3e5789b51853e4eed7cefd21a6991e4677ccdfb1f6312b884280178d492ac9bde1a670a9bb3537bfa504ca866c002348d12206510440c578e03a00fe0dbdfbfef2a26cdc4f42136194ecaed450fda1924fe053ebf52c0a193b;
44
+ Path=/
45
+ - _front_session_id=3fbadf04a6141cf776c1c2bb27626d5c;Secure; path=/; expires=Sat,
46
+ 09-May-2020 17:47:06 GMT; HttpOnly
47
+ - cookieId=;secure; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00
48
+ GMT
49
+ - ndl.go.jp=rd2o00000000000000000000ffff0a024f75o80; path=/
50
+ - serverid=1103; path=/
51
+ - sessionId=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
52
+ X-Content-Type-Options:
53
+ - nosniff
54
+ X-Frame-Options:
55
+ - SAMEORIGIN
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: !binary |-
59
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB4bWxuczpkY25kbD0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy8iIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHZlcnNpb249IjIuMCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmRjdGVybXM9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iIHhtbG5zOmRjbWl0eXBlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvIiB4bWxuczpyZGZzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzAxL3JkZi1zY2hlbWEjIiB4bWxuczpvcGVuU2VhcmNoPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNocnNzLzEuMC8iPgogIDxjaGFubmVsPgogICAgPHRpdGxlPjEgOTc4NDc5ODAwMjA2NCBpc3MtbmRsLW9wYWMgLSDlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4EgT3BlblNlYXJjaDwvdGl0bGU+CiAgICA8bGluaz5odHRwczovL2lzcy5uZGwuZ28uanAvYXBpL29wZW5zZWFyY2g/bWVkaWF0eXBlPTEmYW1wO2lkeD0xJmFtcDtpc2JuPTk3ODQ3OTgwMDIwNjQmYW1wO2RwaWQ9aXNzLW5kbC1vcGFjJmFtcDtjbnQ9MTA8L2xpbms+CiAgICA8ZGVzY3JpcHRpb24+U2VhcmNoIHJlc3VsdHMgZm9yIG1lZGlhdHlwZT0xIGlzYm49OTc4NDc5ODAwMjA2NCBkcGlkPWlzcy1uZGwtb3BhYyBjbnQ9MTAgPC9kZXNjcmlwdGlvbj4KICAgIDxsYW5ndWFnZT5qYTwvbGFuZ3VhZ2U+CiAgICA8b3BlblNlYXJjaDp0b3RhbFJlc3VsdHM+MTwvb3BlblNlYXJjaDp0b3RhbFJlc3VsdHM+CiAgICA8b3BlblNlYXJjaDpzdGFydEluZGV4PjE8L29wZW5TZWFyY2g6c3RhcnRJbmRleD4KICAgIDxvcGVuU2VhcmNoOml0ZW1zUGVyUGFnZT4xMDwvb3BlblNlYXJjaDppdGVtc1BlclBhZ2U+CiAgICA8aXRlbT4KICAgICAgPHRpdGxlPuOCiOOBj+OCj+OBi+OCi+acgOaWsFdlYuOCteODvOODk+OCueaKgOihk+OBruWfuuacrOOBqOS7lee1hOOBvyA6IOaomea6lldlYuOCt+OCueODhuODoOaKgOihk+OBqGXjgrPjg57jg7zjgrnln7rnm6TmioDooZPlhaXploA8L3RpdGxlPgogICAgICA8bGluaz5odHRwczovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMi1JMDAwMDAzMDQ2NTQ2LTAwPC9saW5rPgo8ZGVzY3JpcHRpb24+CjwhW0NEQVRBWzxwPuengOWSjOOCt+OCueODhuODoCw0Nzk4MDAyMDYyPC9wPgo8dWw+PGxpPuOCv+OCpOODiOODq++8miDjgojjgY/jgo/jgYvjgovmnIDmlrBXZWLjgrXjg7zjg5PjgrnmioDooZPjga7ln7rmnKzjgajku5XntYTjgb8gOiDmqJnmupZXZWLjgrfjgrnjg4bjg6DmioDooZPjgahl44Kz44Oe44O844K55Z+655uk5oqA6KGT5YWl6ZaAPC9saT4KPGxpPuOCv+OCpOODiOODq++8iOiqreOBv++8ie+8miDjg6jjgq8g44Ov44Kr44OrIOOCteOCpOOCt+ODsyBXZWIg44K144O844OT44K5IOOCruOCuOODpeODhCDjg44g44Kt44Ob44OzIOODiCDjgrfjgq/jg58gOiDjg5Ljg6fjgqbjgrjjg6Xjg7MgV2ViIOOCt+OCueODhuODoCDjgq7jgrjjg6Xjg4Qg44OIIGXjgrPjg57jg7zjgrkg44Kt44OQ44OzIOOCruOCuOODpeODhCDjg4vjg6Xjgqbjg6Ljg7M8L2xpPgo8bGk+6LKs5Lu76KGo56S677yaIOWwj+agl+S4gOWkqywg5pep5bed6IGW5Y+4IOWFseiRlyw8L2xpPgo8bGk+44K344Oq44O844K65ZCN77yaIOWbs+ino+WFpemWgDwvbGk+CjxsaT7jgrfjg6rjg7zjgrrlkI3vvIjoqq3jgb/vvInvvJog44K644Kr44KkIOODi+ODpeOCpuODouODszwvbGk+CjxsaT5OREMoOSnvvJogNTQ3LjQ4MzwvbGk+CjwvdWw+XV0+CjwvZGVzY3JpcHRpb24+CiAgICAgIDxhdXRob3I+5bCP5qCX5LiA5aSrLCDml6nlt53ogZblj7gg5YWx6JGXLOWwj+aglywg5LiA5aSrLCAxOTUwLSzml6nlt50sIOiBluWPuCwgMTk2NS0sPC9hdXRob3I+CiAgICAgIDxjYXRlZ29yeT7mnKw8L2NhdGVnb3J5PgogICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDItSTAwMDAwMzA0NjU0Ni0wMDwvZ3VpZD4KICAgICAgPHB1YkRhdGU+RnJpLCAxMCBTZXAgMjAwNCAwOTowMDowMCArMDkwMDwvcHViRGF0ZT4KICAgICAgPGRjOnRpdGxlPuOCiOOBj+OCj+OBi+OCi+acgOaWsFdlYuOCteODvOODk+OCueaKgOihk+OBruWfuuacrOOBqOS7lee1hOOBvyA6IOaomea6lldlYuOCt+OCueODhuODoOaKgOihk+OBqGXjgrPjg57jg7zjgrnln7rnm6TmioDooZPlhaXploA8L2RjOnRpdGxlPgogICAgICA8ZGNuZGw6dGl0bGVUcmFuc2NyaXB0aW9uPuODqOOCryDjg6/jgqvjg6sg44K144Kk44K344OzIFdlYiDjgrXjg7zjg5Pjgrkg44Ku44K444Ol44OEIOODjiDjgq3jg5vjg7Mg44OIIOOCt+OCr+ODnyA6IOODkuODp+OCpuOCuOODpeODsyBXZWIg44K344K544OG44OgIOOCruOCuOODpeODhCDjg4ggZeOCs+ODnuODvOOCuSDjgq3jg5Djg7Mg44Ku44K444Ol44OEIOODi+ODpeOCpuODouODszwvZGNuZGw6dGl0bGVUcmFuc2NyaXB0aW9uPgogICAgICA8ZGM6Y3JlYXRvcj7lsI/moJcsIOS4gOWkqywgMTk1MC08L2RjOmNyZWF0b3I+CiAgICAgIDxkYzpjcmVhdG9yPuaXqeW3nSwg6IGW5Y+4LCAxOTY1LTwvZGM6Y3JlYXRvcj4KICAgICAgPGRjbmRsOmNyZWF0b3JUcmFuc2NyaXB0aW9uPuOCquOCsOODqiwg44Kr44K644KqPC9kY25kbDpjcmVhdG9yVHJhbnNjcmlwdGlvbj4KICAgICAgPGRjbmRsOmNyZWF0b3JUcmFuc2NyaXB0aW9uPuODj+ODpOOCq+ODrywg44K744Kk44K4PC9kY25kbDpjcmVhdG9yVHJhbnNjcmlwdGlvbj4KICAgICAgPGRjbmRsOnNlcmllc1RpdGxlPuWbs+ino+WFpemWgDwvZGNuZGw6c2VyaWVzVGl0bGU+CiAgICAgIDxkY25kbDpzZXJpZXNUaXRsZVRyYW5zY3JpcHRpb24+44K644Kr44KkIOODi+ODpeOCpuODouODszwvZGNuZGw6c2VyaWVzVGl0bGVUcmFuc2NyaXB0aW9uPgogICAgICA8ZGM6cHVibGlzaGVyPuengOWSjOOCt+OCueODhuODoDwvZGM6cHVibGlzaGVyPgogICAgICA8ZGN0ZXJtczppc3N1ZWQgeHNpOnR5cGU9ImRjdGVybXM6VzNDRFRGIj4yMDAxPC9kY3Rlcm1zOmlzc3VlZD4KICAgICAgPGRjbmRsOnByaWNlPjE4MDDlhoY8L2RjbmRsOnByaWNlPgogICAgICA8ZGM6ZXh0ZW50PjI0N3AgOyAyMWNtPC9kYzpleHRlbnQ+CiAgICAgIDxkYzppZGVudGlmaWVyIHhzaTp0eXBlPSJkY25kbDpJU0JOIj40Nzk4MDAyMDYyPC9kYzppZGVudGlmaWVyPgogICAgICA8ZGM6aWRlbnRpZmllciB4c2k6dHlwZT0iZGNuZGw6TkRMQmliSUQiPjAwMDAwMzA0NjU0NjwvZGM6aWRlbnRpZmllcj4KICAgICAgPGRjOmlkZW50aWZpZXIgeHNpOnR5cGU9ImRjbmRsOkpQTk8iPjIwMjIyODE4PC9kYzppZGVudGlmaWVyPgogICAgICA8ZGM6c3ViamVjdD7jgqTjg7Pjgr/jg7zjg43jg4Pjg4g8L2RjOnN1YmplY3Q+CiAgICAgIDxkYzpzdWJqZWN0IHhzaTp0eXBlPSJkY25kbDpORExDIj5ORDYzMzwvZGM6c3ViamVjdD4KICAgICAgPGRjOnN1YmplY3QgeHNpOnR5cGU9ImRjbmRsOk5EQzkiPjU0Ny40ODM8L2RjOnN1YmplY3Q+CiAgICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwOi8vaWQubmRsLmdvLmpwL2JpYi8wMDAwMDMwNDY1NDYiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIub21sLmNpdHkub3Nha2EubGcuanAvd2Vib3BhY19pX2phLzAwMTAxOTY3NzkiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHBzOi8vd3d3LmxpYnJhcnkucHJlZi5vc2FrYS5qcC9saWNzeHAtb3BhYy9XT3BhY01zZ05ld0xpc3RUb1RpZlRpbERldGFpbEFjdGlvbi5kbz90aWxjb2Q9MTAwMDAwMDE3NzY3NTEiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWJzdi5haWNoaS1wcmVmLWxpYnJhcnkuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTE2MDI0NTg1NSIvPgogICAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL29wYWMxLmxpYnJhcnkucHJlZi5taWUubGcuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwMTg3MDkxMyIvPgogICAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5saWJyYXJ5LnByZWYuZ2lmdS5sZy5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTAwMDM3MTk5Ii8+CiAgICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL2NhdGFsb2cubGlicmFyeS5tZXRyby50b2t5by5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTA1NDkzOTE1Ii8+CiAgICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5saWItc2FrYWkuanAvbGljc3hwLW9wYWMvV09wYWNNc2dOZXdMaXN0VG9UaWZUaWxEZXRhaWxBY3Rpb24uZG8/dGlsY29kPTEwMDAwMDE0NDczNjkiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHBzOi8vYWxpc2xpYm9wYWMudG9rdXNoaW1hLWVjLmVkLmpwL3dpbmovb3BhYy9zd2l0Y2gtZGV0YWlsLWljY2FwLmRvP2JpYmlkPTExMDExMjMxNjciLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHBzOi8vd3d3Mi50b3Nob2thbi5jaXR5LnNoaXp1b2thLmpwL3dpbmovb3BhYy9zd2l0Y2gtZGV0YWlsLWljY2FwLmRvP2JpYmlkPTExMDAxNzA1ODgiLz4KICAgIDwvaXRlbT4KICA8L2NoYW5uZWw+CjwvcnNzPgo=
60
+ http_version: null
61
+ recorded_at: Sat, 09 May 2020 16:47:05 GMT
62
+ - request:
63
+ method: get
64
+ uri: https://iss.ndl.go.jp/books/R100000002-I000003046546-00.rdf
65
+ body:
66
+ encoding: US-ASCII
67
+ string: ''
68
+ headers:
69
+ User-Agent:
70
+ - Faraday v1.0.1
71
+ Accept-Encoding:
72
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
+ Accept:
74
+ - "*/*"
75
+ response:
76
+ status:
77
+ code: 200
78
+ message: OK
79
+ headers:
80
+ Date:
81
+ - Sat, 09 May 2020 16:47:06 GMT
82
+ X-Ua-Compatible:
83
+ - IE=Edge,chrome=1
84
+ Cache-Control:
85
+ - max-age=0, private, must-revalidate
86
+ Etag:
87
+ - '"50120def2cd86e22952b6bf411970fc7"'
88
+ X-Runtime:
89
+ - '0.497012'
90
+ Content-Length:
91
+ - '14593'
92
+ Status:
93
+ - '200'
94
+ Content-Type:
95
+ - application/rdf+xml; charset=utf-8
96
+ Set-Cookie:
97
+ - HTTP_Z308_KEY_DATA_01=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970
98
+ 00:00:00 GMT
99
+ - ROUTEID=.ps24; path=/
100
+ - TS0162cc8a=011338590a57e2aca1b6696d813dd699fe455e875732ed734d0d5ba19f69915cccb8e9bdb0116bf9703ce07e2c48775df704acc029828087a097b3654fd0a78ca0ed3fc04904d9697357669fdbea260ec99c4e7a2f;
101
+ path=/; domain=.ndl.go.jp
102
+ - TS01f3cfdf=011338590a1274bcb5b6cc33b327c2a24e870c074f3f10369f1bff4af24ec4c473842b9b75af67d203ab51cafa090a8bd0ecd6952979d8cb11d498165809ee972230e11192c0151865e0e959f9348aea1ff2d32499ce4173861841713860427b8d67a383ba;
103
+ Path=/
104
+ - _front_session_id=8d44292475dd14b1e85ee4855363ada4;Secure; path=/; expires=Sat,
105
+ 09-May-2020 17:47:06 GMT; HttpOnly
106
+ - cookieId=;secure; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00
107
+ GMT
108
+ - ndl.go.jp=rd2o00000000000000000000ffff0a024f76o80; path=/
109
+ - serverid=1103; path=/
110
+ - sessionId=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
111
+ X-Content-Type-Options:
112
+ - nosniff
113
+ X-Frame-Options:
114
+ - SAMEORIGIN
115
+ body:
116
+ encoding: ASCII-8BIT
117
+ string: !binary |-
118
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJkZjpSREYgeG1sbnM6ZGNuZGw9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6ZGN0ZXJtcz0iaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyIgeG1sbnM6b3dsPSJodHRwOi8vd3d3LnczLm9yZy8yMDAyLzA3L293bCMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmZvYWY9Imh0dHA6Ly94bWxucy5jb20vZm9hZi8wLjEvIj4KICA8ZGNuZGw6QmliQWRtaW5SZXNvdXJjZSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDItSTAwMDAwMzA0NjU0Ni0wMCI+CiAgICA8ZGNuZGw6Y2F0YWxvZ2luZ1N0YXR1cz5DNzwvZGNuZGw6Y2F0YWxvZ2luZ1N0YXR1cz4KICAgIDxkY25kbDpiaWJSZWNvcmRDYXRlZ29yeT5SMTAwMDAwMDAyPC9kY25kbDpiaWJSZWNvcmRDYXRlZ29yeT4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAyLUkwMDAwMDMwNDY1NDYtMDAjbWF0ZXJpYWwiLz4KICA8L2RjbmRsOkJpYkFkbWluUmVzb3VyY2U+CiAgPGRjbmRsOkJpYlJlc291cmNlIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMi1JMDAwMDAzMDQ2NTQ2LTAwI21hdGVyaWFsIj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL0pQTk8iPjIwMjIyODE4PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9JU0JOIj40LTc5ODAtMDIwNi0yPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lkLm5kbC5nby5qcC9qcG5vLzIwMjIyODE4Ii8+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvaXNibi80Nzk4MDAyMDYyIi8+CiAgICA8ZGN0ZXJtczp0aXRsZT7jgojjgY/jgo/jgYvjgovmnIDmlrBXZWLjgrXjg7zjg5PjgrnmioDooZPjga7ln7rmnKzjgajku5XntYTjgb8gOiDmqJnmupZXZWLjgrfjgrnjg4bjg6DmioDooZPjgahl44Kz44Oe44O844K55Z+655uk5oqA6KGT5YWl6ZaAPC9kY3Rlcm1zOnRpdGxlPgogICAgPGRjOnRpdGxlPgogICAgICA8cmRmOkRlc2NyaXB0aW9uPgogICAgICAgIDxyZGY6dmFsdWU+44KI44GP44KP44GL44KL5pyA5pawV2Vi44K144O844OT44K55oqA6KGT44Gu5Z+65pys44Go5LuV57WE44G/IDog5qiZ5rqWV2Vi44K344K544OG44Og5oqA6KGT44GoZeOCs+ODnuODvOOCueWfuuebpOaKgOihk+WFpemWgDwvcmRmOnZhbHVlPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuODqOOCryDjg6/jgqvjg6sg44K144Kk44K344OzIFdlYiDjgrXjg7zjg5Pjgrkg44Ku44K444Ol44OEIOODjiDjgq3jg5vjg7Mg44OIIOOCt+OCr+ODnyA6IOODkuODp+OCpuOCuOODpeODsyBXZWIg44K344K544OG44OgIOOCruOCuOODpeODhCDjg4ggZeOCs+ODnuODvOOCuSDjgq3jg5Djg7Mg44Ku44K444Ol44OEIOODi+ODpeOCpuODouODszwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICA8L2RjOnRpdGxlPgogICAgPGRjbmRsOnNlcmllc1RpdGxlPgogICAgICA8cmRmOkRlc2NyaXB0aW9uPgogICAgICAgIDxyZGY6dmFsdWU+5Zuz6Kej5YWl6ZaAPC9yZGY6dmFsdWU+CiAgICAgICAgPGRjbmRsOnRyYW5zY3JpcHRpb24+44K644Kr44KkIOODi+ODpeOCpuODouODszwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICA8L2RjbmRsOnNlcmllc1RpdGxlPgogICAgPGRjdGVybXM6Y3JlYXRvcj4KICAgICAgPGZvYWY6QWdlbnQgcmRmOmFib3V0PSJodHRwOi8vaWQubmRsLmdvLmpwL2F1dGgvZW50aXR5LzAwNzMzNTM4Ij4KICAgICAgICA8Zm9hZjpuYW1lPuWwj+aglywg5LiA5aSrLCAxOTUwLTwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOCquOCsOODqiwg44Kr44K644KqPC9kY25kbDp0cmFuc2NyaXB0aW9uPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjdGVybXM6Y3JlYXRvcj4KICAgIDxkY3Rlcm1zOmNyZWF0b3I+CiAgICAgIDxmb2FmOkFnZW50IHJkZjphYm91dD0iaHR0cDovL2lkLm5kbC5nby5qcC9hdXRoL2VudGl0eS8wMDUzODIwNCI+CiAgICAgICAgPGZvYWY6bmFtZT7ml6nlt50sIOiBluWPuCwgMTk2NS08L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jg4/jg6Tjgqvjg68sIOOCu+OCpOOCuDwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY3Rlcm1zOmNyZWF0b3I+CiAgICA8ZGM6Y3JlYXRvcj7lsI/moJfkuIDlpKssIOaXqeW3neiBluWPuCDlhbHokZc8L2RjOmNyZWF0b3I+CiAgICA8ZGN0ZXJtczpwdWJsaXNoZXI+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+56eA5ZKM44K344K544OG44OgPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjbmRsOmxvY2F0aW9uPuadseS6rDwvZGNuZGw6bG9jYXRpb24+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGN0ZXJtczpwdWJsaXNoZXI+CiAgICA8ZGNuZGw6cHVibGljYXRpb25QbGFjZSByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9JU08zMTY2Ij5KUDwvZGNuZGw6cHVibGljYXRpb25QbGFjZT4KICAgIDxkY3Rlcm1zOmRhdGU+MjAwMS4xMjwvZGN0ZXJtczpkYXRlPgogICAgPGRjdGVybXM6aXNzdWVkIHJkZjpkYXRhdHlwZT0iaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL1czQ0RURiI+MjAwMTwvZGN0ZXJtczppc3N1ZWQ+CiAgICA8ZGN0ZXJtczpzdWJqZWN0PgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iaHR0cDovL2lkLm5kbC5nby5qcC9hdXRoL25kbHNoLzAwODQxMDI0Ij4KICAgICAgICA8cmRmOnZhbHVlPuOCpOODs+OCv+ODvOODjeODg+ODiDwvcmRmOnZhbHVlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgIDwvZGN0ZXJtczpzdWJqZWN0PgogICAgPGRjdGVybXM6c3ViamVjdCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pZC5uZGwuZ28uanAvY2xhc3MvbmRsYy9ORDYzMyIvPgogICAgPGRjdGVybXM6c3ViamVjdCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pZC5uZGwuZ28uanAvY2xhc3MvbmRjOS81NDcuNDgzIi8+CiAgICA8ZGN0ZXJtczpsYW5ndWFnZSByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9JU082MzktMiI+anBuPC9kY3Rlcm1zOmxhbmd1YWdlPgogICAgPGRjdGVybXM6ZXh0ZW50PjI0N3AgOyAyMWNtPC9kY3Rlcm1zOmV4dGVudD4KICAgIDxkY25kbDpwcmljZT4xODAw5YaGPC9kY25kbDpwcmljZT4KICAgIDxkY3Rlcm1zOmF1ZGllbmNlPuS4gOiIrDwvZGN0ZXJtczphdWRpZW5jZT4KICAgIDxkY25kbDptYXRlcmlhbFR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vbmRsLmdvLmpwL25kbHR5cGUvQm9vayIgcmRmczpsYWJlbD0i5Zuz5pu4Ii8+CiAgICA8ZGN0ZXJtczphY2Nlc3NSaWdodHM+UzAxUDk5VTk5PC9kY3Rlcm1zOmFjY2Vzc1JpZ2h0cz4KICA8L2RjbmRsOkJpYlJlc291cmNlPgogIDxkY25kbDpCaWJSZXNvdXJjZSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDItSTAwMDAwMzA0NjU0Ni0wMCNtYXRlcmlhbCI+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMi1JMDAwMDAzMDQ2NTQ2LTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTI4OTM5ODQtMDAjaXRlbSIvPgogICAgPGRjbmRsOnJlY29yZCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA1NjQzMTA0NC0wMCNpdGVtIi8+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDU5NjIwOTUyLTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTk4Mjc2OTYtMDAjaXRlbSIvPgogICAgPGRjbmRsOnJlY29yZCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA2NDYxMzQ3NC0wMCNpdGVtIi8+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDcxMjM1NTI3LTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNzg2MzU0OTMtMDAjaXRlbSIvPgogICAgPGRjbmRsOnJlY29yZCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA4NDY3ODYwNy0wMCNpdGVtIi8+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDkwMzcxMzIxLTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwOTMwNjk0NjEtMDAjaXRlbSIvPgogIDwvZGNuZGw6QmliUmVzb3VyY2U+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAyLUkwMDAwMDMwNDY1NDYtMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuWbveeri+WbveS8muWbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL05ETExpYkNvZGUiPjAwMDA8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY25kbDpob2xkaW5nQWdlbnQ+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lkLm5kbC5nby5qcC9iaWIvMDAwMDAzMDQ2NTQ2Ii8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExCaWJJRCI+MDAwMDAzMDQ2NTQ2PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj5ORDYzMy1HMjMxMjwvZGNuZGw6Y2FsbE51bWJlcj4KICA8L2RjbmRsOkl0ZW0+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTI4OTM5ODQtMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuWkp+mYquW4gueri+Wbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOCquOCquOCteOCq+OCt+ODquODhOODiOOCt+ODp+OCq+ODszwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExMaWJDb2RlIj4yNzIxPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGNuZGw6aG9sZGluZ0FnZW50PgogICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIub21sLmNpdHkub3Nha2EubGcuanAvd2Vib3BhY19pX2phLzAwMTAxOTY3NzkiLz4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdUJpYklEIj4wMDEwMTk2Nzc5PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VTdWJJRCI+MDAxMDE5Njc3OTwvZGN0ZXJtczppZGVudGlmaWVyPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA1NjQzMTA0NC0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+5aSn6Ziq5bqc56uL5Lit5aSu5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MjcxMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5saWJyYXJ5LnByZWYub3Nha2EuanAvbGljc3hwLW9wYWMvV09wYWNNc2dOZXdMaXN0VG9UaWZUaWxEZXRhaWxBY3Rpb24uZG8/dGlsY29kPTEwMDAwMDAxNzc2NzUxIi8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VCaWJJRCI+MTAwMDAwMDE3NzY3NTE8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj4xMTE0Mzc4MTM0PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC85ODJOLzwvZGNuZGw6Y2FsbE51bWJlcj4KICA8L2RjbmRsOkl0ZW0+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTk2MjA5NTItMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuaEm+efpeecjOWbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOBguOBhOOBoeOBkeOCk+OBqOOBl+OCh+OBi+OCkzwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExMaWJDb2RlIj4yMzExPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGNuZGw6aG9sZGluZ0FnZW50PgogICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWJzdi5haWNoaS1wcmVmLWxpYnJhcnkuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTE2MDI0NTg1NSIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExNjAyNDU4NTU8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj4xMTA4MDY3NjI4PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNDgt77217724LTgwNjc2MjwvZGNuZGw6Y2FsbE51bWJlcj4KICAgIDxkY25kbDphdmFpbGFiaWxpdHk+6Zay5Y+v6LK45Y+v5Y2U5Y+vPC9kY25kbDphdmFpbGFiaWxpdHk+CiAgICA8ZGN0ZXJtczpkZXNjcmlwdGlvbj7miYDolLXloLTmiYAgOiDmm7jluqvvvK3vvKLvvJI8L2RjdGVybXM6ZGVzY3JpcHRpb24+CiAgPC9kY25kbDpJdGVtPgogIDxkY25kbDpJdGVtIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDU5ODI3Njk2LTAwI2l0ZW0iPgogICAgPGRjbmRsOmhvbGRpbmdBZ2VudD4KICAgICAgPGZvYWY6QWdlbnQ+CiAgICAgICAgPGZvYWY6bmFtZT7kuInph43nnIznq4vlm7Pmm7jppKg8L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jgb/jgYjjgZHjgpPjgorjgaTjgajjgZfjgofjgYvjgpM8L2RjbmRsOnRyYW5zY3JpcHRpb24+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MjQxMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwOi8vb3BhYzEubGlicmFyeS5wcmVmLm1pZS5sZy5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTAxODcwOTEzIi8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VCaWJJRCI+MTEwMTg3MDkxMzwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1U3ViSUQiPjExNTA1MzQyMzwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgPGRjbmRsOmNhbGxOdW1iZXI+NTQ3LjQt7721PC9kY25kbDpjYWxsTnVtYmVyPgogICAgPGRjbmRsOmF2YWlsYWJpbGl0eT7mjIHlh7rlj6/og708L2RjbmRsOmF2YWlsYWJpbGl0eT4KICAgIDxkY3Rlcm1zOmRlc2NyaXB0aW9uPuaJgOiUteWgtOaJgCA6IOmWieaetu+8iOS4gOiIrO+8iTwvZGN0ZXJtczpkZXNjcmlwdGlvbj4KICA8L2RjbmRsOkl0ZW0+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNjQ2MTM0NzQtMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuWykOmYnOecjOWbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOBjuOBteOBkeOCk+OBqOOBl+OCh+OBi+OCkzwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExMaWJDb2RlIj4yMTExPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGNuZGw6aG9sZGluZ0FnZW50PgogICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93d3cubGlicmFyeS5wcmVmLmdpZnUubGcuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwMDAzNzE5OSIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExMDAwMzcxOTk8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj44MTMyMDE0ODcyPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC3jgqo8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuaMgeWHuuWPr+iDvTwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+5omA6JS15aC05omAIDog77yZ54mI6ZaJ5p62PC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA3MTIzNTUyNy0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+5L2Q6LOA55yM56uL5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+NDExMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdUJpYklEIj4xMTAwNDY1MDE0PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VTdWJJRCI+MTEzMzkxODkwPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj7vvJXvvJTvvJfvvI7vvJTvvI/vvK/vvJLvvJY8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuWIqeeUqOWPrzwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+6YWN572u5aC05omAIDog5paw6aSo5pu45bqr77yS5bGkPC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA3ODYzNTQ5My0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+5p2x5Lqs6YO956uL5aSa5pGp5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjbmRsOnRyYW5zY3JpcHRpb24+44Go44GG44GN44KH44GG44Go44KK44Gk44Gf44G+44Go44GX44KH44GL44KTPC9kY25kbDp0cmFuc2NyaXB0aW9uPgogICAgICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL05ETExpYkNvZGUiPjEzMTM8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY25kbDpob2xkaW5nQWdlbnQ+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cHM6Ly9jYXRhbG9nLmxpYnJhcnkubWV0cm8udG9reW8uanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwNTQ5MzkxNSIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExMDU0OTM5MTU8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj41MDAzODMyMDAwPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC01NDI1LTIwMDE8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PumWsuWPry/lgIvlkKYv5Y2U5Y+vPC9kY25kbDphdmFpbGFiaWxpdHk+CiAgICA8ZGN0ZXJtczpkZXNjcmlwdGlvbj7miYDolLXloLTmiYAgOiBCMuabuOW6q008L2RjdGVybXM6ZGVzY3JpcHRpb24+CiAgPC9kY25kbDpJdGVtPgogIDxkY25kbDpJdGVtIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDg0Njc4NjA3LTAwI2l0ZW0iPgogICAgPGRjbmRsOmhvbGRpbmdBZ2VudD4KICAgICAgPGZvYWY6QWdlbnQ+CiAgICAgICAgPGZvYWY6bmFtZT7loLrluILnq4vkuK3lpK7lm7Pmm7jppKg8L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jgrXjgqvjgqTjgrfjg6rjg4Tjg4Hjg6Xjgqbjgqrjgqbjg4jjgrfjg6fjgqvjg7M8L2RjbmRsOnRyYW5zY3JpcHRpb24+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MjcyMjwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5saWItc2FrYWkuanAvbGljc3hwLW9wYWMvV09wYWNNc2dOZXdMaXN0VG9UaWZUaWxEZXRhaWxBY3Rpb24uZG8/dGlsY29kPTEwMDAwMDE0NDczNjkiLz4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdUJpYklEIj4xMDAwMDAxNDQ3MzY5PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VTdWJJRCI+MTEyNzM1Mjk1PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNDgv7721Lzg8L2RjbmRsOmNhbGxOdW1iZXI+CiAgPC9kY25kbDpJdGVtPgogIDxkY25kbDpJdGVtIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDkwMzcxMzIxLTAwI2l0ZW0iPgogICAgPGRjbmRsOmhvbGRpbmdBZ2VudD4KICAgICAgPGZvYWY6QWdlbnQ+CiAgICAgICAgPGZvYWY6bmFtZT7lvrPls7bnnIznq4vlm7Pmm7jppKg8L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jgajjgY/jgZfjgb7jgZHjgpPjgorjgaTjgajjgZfjgofjgYvjgpM8L2RjbmRsOnRyYW5zY3JpcHRpb24+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MzYxMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL2FsaXNsaWJvcGFjLnRva3VzaGltYS1lYy5lZC5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTAxMTIzMTY3Ii8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VCaWJJRCI+MTEwMTEyMzE2NzwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1U3ViSUQiPjAwMTA3OTQyODUyPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC3vvbXvvbg8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuiyuOWHuuWPr+iDvTwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+5omA6JS15aC05omAIDog5LiA6Iis6LOH5paZ44Kz44O844OK44O8PC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA5MzA2OTQ2MS0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+6Z2Z5bKh5biC56uL5Lit5aSu5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjbmRsOnRyYW5zY3JpcHRpb24+44K344K644Kq44Kr44K344Oq44OE44OB44Ol44Km44Kq44Km44OI44K344On44Kr44OzPC9kY25kbDp0cmFuc2NyaXB0aW9uPgogICAgICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL05ETExpYkNvZGUiPjIyMjE8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY25kbDpob2xkaW5nQWdlbnQ+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cHM6Ly93d3cyLnRvc2hva2FuLmNpdHkuc2hpenVva2EuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwMDE3MDU4OCIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExMDAxNzA1ODg8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj4xMjIzOTQwMTE8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY25kbDpjYWxsTnVtYmVyPjU0Ny40ODM8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuaMgeWHuuWPr+iDvTwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+5omA6JS15aC05omAIDog5pu45bqrPC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KPC9yZGY6UkRGPg==
119
+ http_version: null
120
+ recorded_at: Sat, 09 May 2020 16:47:05 GMT
121
+ recorded_with: VCR 5.1.0
@@ -0,0 +1,121 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://iss.ndl.go.jp/api/opensearch?cnt=10&dpid=iss-ndl-opac&idx=1&isbn=9784798002064&mediatype=1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Sun, 19 Apr 2020 10:32:19 GMT
23
+ Etag:
24
+ - '"b89075dfb9211a6e7a4cb5253a1ba52e"'
25
+ X-Ua-Compatible:
26
+ - IE=Edge,chrome=1
27
+ Cache-Control:
28
+ - max-age=0, private, must-revalidate
29
+ X-Runtime:
30
+ - '0.063600'
31
+ Content-Length:
32
+ - '4838'
33
+ Status:
34
+ - '200'
35
+ Content-Type:
36
+ - application/xml; charset=utf-8
37
+ Set-Cookie:
38
+ - HTTP_Z308_KEY_DATA_01=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970
39
+ 00:00:00 GMT
40
+ - ROUTEID=.ps25; path=/
41
+ - TS0162cc8a=011338590a5921d481b30b51d93e7516be497a46685921d3fdd85f3062c48ca616ddbd46fda09749dc020d5841d8dc7e79f6d75cfb98d5c433dc43ebc3be78e2c55eef63751afd11da82b6399494a3e67133e37f53;
42
+ path=/; domain=.ndl.go.jp
43
+ - TS01f3cfdf=011338590a76aba2f26c44c1693b51877c129086a78aba5ef38bce5abd5921f3f7d9ebb16a2f701b35da4b27163ee5bf6b45c8d55eac5238b0a5b004d9be97fe7118c69718000869d7a56f638de53465787bc49b2baa92f9ea6be11b8ca3ca39df2122cdd5;
44
+ Path=/
45
+ - _front_session_id=4c19d7437b10f4ff999b0878afac0305;Secure; path=/; expires=Sun,
46
+ 19-Apr-2020 11:32:19 GMT; HttpOnly
47
+ - cookieId=;secure; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00
48
+ GMT
49
+ - ndl.go.jp=rd2o00000000000000000000ffff0a024f75o80; path=/
50
+ - serverid=1103; path=/
51
+ - sessionId=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
52
+ X-Content-Type-Options:
53
+ - nosniff
54
+ X-Frame-Options:
55
+ - SAMEORIGIN
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: !binary |-
59
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpkY3Rlcm1zPSJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvIiB4bWxuczpyZGZzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzAxL3JkZi1zY2hlbWEjIiB4bWxuczpkY21pdHlwZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlLyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6ZGNuZGw9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvIiB4bWxuczpvcGVuU2VhcmNoPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNocnNzLzEuMC8iPgogIDxjaGFubmVsPgogICAgPHRpdGxlPjEgOTc4NDc5ODAwMjA2NCBpc3MtbmRsLW9wYWMgLSDlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4EgT3BlblNlYXJjaDwvdGl0bGU+CiAgICA8bGluaz5odHRwczovL2lzcy5uZGwuZ28uanAvYXBpL29wZW5zZWFyY2g/bWVkaWF0eXBlPTEmYW1wO2lkeD0xJmFtcDtpc2JuPTk3ODQ3OTgwMDIwNjQmYW1wO2RwaWQ9aXNzLW5kbC1vcGFjJmFtcDtjbnQ9MTA8L2xpbms+CiAgICA8ZGVzY3JpcHRpb24+U2VhcmNoIHJlc3VsdHMgZm9yIG1lZGlhdHlwZT0xIGlzYm49OTc4NDc5ODAwMjA2NCBjbnQ9MTAgZHBpZD1pc3MtbmRsLW9wYWMgPC9kZXNjcmlwdGlvbj4KICAgIDxsYW5ndWFnZT5qYTwvbGFuZ3VhZ2U+CiAgICA8b3BlblNlYXJjaDp0b3RhbFJlc3VsdHM+MTwvb3BlblNlYXJjaDp0b3RhbFJlc3VsdHM+CiAgICA8b3BlblNlYXJjaDpzdGFydEluZGV4PjE8L29wZW5TZWFyY2g6c3RhcnRJbmRleD4KICAgIDxvcGVuU2VhcmNoOml0ZW1zUGVyUGFnZT4xMDwvb3BlblNlYXJjaDppdGVtc1BlclBhZ2U+CiAgICA8aXRlbT4KICAgICAgPHRpdGxlPuOCiOOBj+OCj+OBi+OCi+acgOaWsFdlYuOCteODvOODk+OCueaKgOihk+OBruWfuuacrOOBqOS7lee1hOOBvyA6IOaomea6lldlYuOCt+OCueODhuODoOaKgOihk+OBqGXjgrPjg57jg7zjgrnln7rnm6TmioDooZPlhaXploA8L3RpdGxlPgogICAgICA8bGluaz5odHRwczovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMi1JMDAwMDAzMDQ2NTQ2LTAwPC9saW5rPgo8ZGVzY3JpcHRpb24+CjwhW0NEQVRBWzxwPuengOWSjOOCt+OCueODhuODoCw0Nzk4MDAyMDYyPC9wPgo8dWw+PGxpPuOCv+OCpOODiOODq++8miDjgojjgY/jgo/jgYvjgovmnIDmlrBXZWLjgrXjg7zjg5PjgrnmioDooZPjga7ln7rmnKzjgajku5XntYTjgb8gOiDmqJnmupZXZWLjgrfjgrnjg4bjg6DmioDooZPjgahl44Kz44Oe44O844K55Z+655uk5oqA6KGT5YWl6ZaAPC9saT4KPGxpPuOCv+OCpOODiOODq++8iOiqreOBv++8ie+8miDjg6jjgq8g44Ov44Kr44OrIOOCteOCpOOCt+ODsyBXZWIg44K144O844OT44K5IOOCruOCuOODpeODhCDjg44g44Kt44Ob44OzIOODiCDjgrfjgq/jg58gOiDjg5Ljg6fjgqbjgrjjg6Xjg7MgV2ViIOOCt+OCueODhuODoCDjgq7jgrjjg6Xjg4Qg44OIIGXjgrPjg57jg7zjgrkg44Kt44OQ44OzIOOCruOCuOODpeODhCDjg4vjg6Xjgqbjg6Ljg7M8L2xpPgo8bGk+6LKs5Lu76KGo56S677yaIOWwj+agl+S4gOWkqywg5pep5bed6IGW5Y+4IOWFseiRlyw8L2xpPgo8bGk+44K344Oq44O844K65ZCN77yaIOWbs+ino+WFpemWgDwvbGk+CjxsaT7jgrfjg6rjg7zjgrrlkI3vvIjoqq3jgb/vvInvvJog44K644Kr44KkIOODi+ODpeOCpuODouODszwvbGk+CjxsaT5OREMoOSnvvJogNTQ3LjQ4MzwvbGk+CjwvdWw+XV0+CjwvZGVzY3JpcHRpb24+CiAgICAgIDxhdXRob3I+5bCP5qCX5LiA5aSrLCDml6nlt53ogZblj7gg5YWx6JGXLOWwj+aglywg5LiA5aSrLCAxOTUwLSzml6nlt50sIOiBluWPuCwgMTk2NS0sPC9hdXRob3I+CiAgICAgIDxjYXRlZ29yeT7mnKw8L2NhdGVnb3J5PgogICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDItSTAwMDAwMzA0NjU0Ni0wMDwvZ3VpZD4KICAgICAgPHB1YkRhdGU+RnJpLCAxMCBTZXAgMjAwNCAwOTowMDowMCArMDkwMDwvcHViRGF0ZT4KICAgICAgPGRjOnRpdGxlPuOCiOOBj+OCj+OBi+OCi+acgOaWsFdlYuOCteODvOODk+OCueaKgOihk+OBruWfuuacrOOBqOS7lee1hOOBvyA6IOaomea6lldlYuOCt+OCueODhuODoOaKgOihk+OBqGXjgrPjg57jg7zjgrnln7rnm6TmioDooZPlhaXploA8L2RjOnRpdGxlPgogICAgICA8ZGNuZGw6dGl0bGVUcmFuc2NyaXB0aW9uPuODqOOCryDjg6/jgqvjg6sg44K144Kk44K344OzIFdlYiDjgrXjg7zjg5Pjgrkg44Ku44K444Ol44OEIOODjiDjgq3jg5vjg7Mg44OIIOOCt+OCr+ODnyA6IOODkuODp+OCpuOCuOODpeODsyBXZWIg44K344K544OG44OgIOOCruOCuOODpeODhCDjg4ggZeOCs+ODnuODvOOCuSDjgq3jg5Djg7Mg44Ku44K444Ol44OEIOODi+ODpeOCpuODouODszwvZGNuZGw6dGl0bGVUcmFuc2NyaXB0aW9uPgogICAgICA8ZGM6Y3JlYXRvcj7lsI/moJcsIOS4gOWkqywgMTk1MC08L2RjOmNyZWF0b3I+CiAgICAgIDxkYzpjcmVhdG9yPuaXqeW3nSwg6IGW5Y+4LCAxOTY1LTwvZGM6Y3JlYXRvcj4KICAgICAgPGRjbmRsOmNyZWF0b3JUcmFuc2NyaXB0aW9uPuOCquOCsOODqiwg44Kr44K644KqPC9kY25kbDpjcmVhdG9yVHJhbnNjcmlwdGlvbj4KICAgICAgPGRjbmRsOmNyZWF0b3JUcmFuc2NyaXB0aW9uPuODj+ODpOOCq+ODrywg44K744Kk44K4PC9kY25kbDpjcmVhdG9yVHJhbnNjcmlwdGlvbj4KICAgICAgPGRjbmRsOnNlcmllc1RpdGxlPuWbs+ino+WFpemWgDwvZGNuZGw6c2VyaWVzVGl0bGU+CiAgICAgIDxkY25kbDpzZXJpZXNUaXRsZVRyYW5zY3JpcHRpb24+44K644Kr44KkIOODi+ODpeOCpuODouODszwvZGNuZGw6c2VyaWVzVGl0bGVUcmFuc2NyaXB0aW9uPgogICAgICA8ZGM6cHVibGlzaGVyPuengOWSjOOCt+OCueODhuODoDwvZGM6cHVibGlzaGVyPgogICAgICA8ZGN0ZXJtczppc3N1ZWQgeHNpOnR5cGU9ImRjdGVybXM6VzNDRFRGIj4yMDAxPC9kY3Rlcm1zOmlzc3VlZD4KICAgICAgPGRjbmRsOnByaWNlPjE4MDDlhoY8L2RjbmRsOnByaWNlPgogICAgICA8ZGM6ZXh0ZW50PjI0N3AgOyAyMWNtPC9kYzpleHRlbnQ+CiAgICAgIDxkYzppZGVudGlmaWVyIHhzaTp0eXBlPSJkY25kbDpJU0JOIj40Nzk4MDAyMDYyPC9kYzppZGVudGlmaWVyPgogICAgICA8ZGM6aWRlbnRpZmllciB4c2k6dHlwZT0iZGNuZGw6TkRMQmliSUQiPjAwMDAwMzA0NjU0NjwvZGM6aWRlbnRpZmllcj4KICAgICAgPGRjOmlkZW50aWZpZXIgeHNpOnR5cGU9ImRjbmRsOkpQTk8iPjIwMjIyODE4PC9kYzppZGVudGlmaWVyPgogICAgICA8ZGM6c3ViamVjdD7jgqTjg7Pjgr/jg7zjg43jg4Pjg4g8L2RjOnN1YmplY3Q+CiAgICAgIDxkYzpzdWJqZWN0IHhzaTp0eXBlPSJkY25kbDpORExDIj5ORDYzMzwvZGM6c3ViamVjdD4KICAgICAgPGRjOnN1YmplY3QgeHNpOnR5cGU9ImRjbmRsOk5EQzkiPjU0Ny40ODM8L2RjOnN1YmplY3Q+CiAgICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwOi8vaWQubmRsLmdvLmpwL2JpYi8wMDAwMDMwNDY1NDYiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIub21sLmNpdHkub3Nha2EubGcuanAvd2Vib3BhY19pX2phLzAwMTAxOTY3NzkiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHBzOi8vd3d3LmxpYnJhcnkucHJlZi5vc2FrYS5qcC9saWNzeHAtb3BhYy9XT3BhY01zZ05ld0xpc3RUb1RpZlRpbERldGFpbEFjdGlvbi5kbz90aWxjb2Q9MTAwMDAwMDE3NzY3NTEiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWJzdi5haWNoaS1wcmVmLWxpYnJhcnkuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTE2MDI0NTg1NSIvPgogICAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL29wYWMxLmxpYnJhcnkucHJlZi5taWUubGcuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwMTg3MDkxMyIvPgogICAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5saWJyYXJ5LnByZWYuZ2lmdS5sZy5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTAwMDM3MTk5Ii8+CiAgICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL2NhdGFsb2cubGlicmFyeS5tZXRyby50b2t5by5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTA1NDkzOTE1Ii8+CiAgICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5saWItc2FrYWkuanAvbGljc3hwLW9wYWMvV09wYWNNc2dOZXdMaXN0VG9UaWZUaWxEZXRhaWxBY3Rpb24uZG8/dGlsY29kPTEwMDAwMDE0NDczNjkiLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHBzOi8vYWxpc2xpYm9wYWMudG9rdXNoaW1hLWVjLmVkLmpwL3dpbmovb3BhYy9zd2l0Y2gtZGV0YWlsLWljY2FwLmRvP2JpYmlkPTExMDExMjMxNjciLz4KICAgICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHBzOi8vd3d3Mi50b3Nob2thbi5jaXR5LnNoaXp1b2thLmpwL3dpbmovb3BhYy9zd2l0Y2gtZGV0YWlsLWljY2FwLmRvP2JpYmlkPTExMDAxNzA1ODgiLz4KICAgIDwvaXRlbT4KICA8L2NoYW5uZWw+CjwvcnNzPgo=
60
+ http_version: null
61
+ recorded_at: Sun, 19 Apr 2020 10:32:19 GMT
62
+ - request:
63
+ method: get
64
+ uri: https://iss.ndl.go.jp/books/R100000002-I000003046546-00.rdf
65
+ body:
66
+ encoding: US-ASCII
67
+ string: ''
68
+ headers:
69
+ User-Agent:
70
+ - Faraday v1.0.1
71
+ Accept-Encoding:
72
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
+ Accept:
74
+ - "*/*"
75
+ response:
76
+ status:
77
+ code: 200
78
+ message: OK
79
+ headers:
80
+ Date:
81
+ - Sun, 19 Apr 2020 10:32:19 GMT
82
+ Etag:
83
+ - '"00fa364fc2cde52aa9faeaef2d714432"'
84
+ X-Runtime:
85
+ - '0.330368'
86
+ X-Ua-Compatible:
87
+ - IE=Edge,chrome=1
88
+ Cache-Control:
89
+ - max-age=0, private, must-revalidate
90
+ Content-Length:
91
+ - '14593'
92
+ Status:
93
+ - '200'
94
+ Content-Type:
95
+ - application/rdf+xml; charset=utf-8
96
+ Set-Cookie:
97
+ - HTTP_Z308_KEY_DATA_01=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970
98
+ 00:00:00 GMT
99
+ - ROUTEID=.ps22; path=/
100
+ - TS0162cc8a=011338590a293b91206bc0790b3e4d5ff31ba446fb66273ea7bdbb6c712817c80065e4ac37751030723a973fc2295ddb523dae60c41b8c247b6c76e0a7cb3f7963a5c8e87b41692bfea1d3f86cafbe7f1ee6526f08;
101
+ path=/; domain=.ndl.go.jp
102
+ - TS01f3cfdf=011338590a5f24508108c5cdd5217f439f806e073f9e7d0b27d892a0e64265f53acd9492ec1686d58bc396850fb984f9ff6977aeb279f758582ce45123af235f5254ba9970120acd9bb3a7531f68e16843548645c68d3f6b3dfea94a4279e71663029f37d5;
103
+ Path=/
104
+ - _front_session_id=e910a3ecad4e9819c49a65a54fc9b631;Secure; path=/; expires=Sun,
105
+ 19-Apr-2020 11:32:19 GMT; HttpOnly
106
+ - cookieId=;secure; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00
107
+ GMT
108
+ - ndl.go.jp=rd2o00000000000000000000ffff0a024f76o80; path=/
109
+ - serverid=1103; path=/
110
+ - sessionId=; domain=.ndl.go.jp; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
111
+ X-Content-Type-Options:
112
+ - nosniff
113
+ X-Frame-Options:
114
+ - SAMEORIGIN
115
+ body:
116
+ encoding: ASCII-8BIT
117
+ string: !binary |-
118
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJkZjpSREYgeG1sbnM6ZGNuZGw9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOm93bD0iaHR0cDovL3d3dy53My5vcmcvMjAwMi8wNy9vd2wjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjdGVybXM9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iIHhtbG5zOmZvYWY9Imh0dHA6Ly94bWxucy5jb20vZm9hZi8wLjEvIj4KICA8ZGNuZGw6QmliQWRtaW5SZXNvdXJjZSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDItSTAwMDAwMzA0NjU0Ni0wMCI+CiAgICA8ZGNuZGw6Y2F0YWxvZ2luZ1N0YXR1cz5DNzwvZGNuZGw6Y2F0YWxvZ2luZ1N0YXR1cz4KICAgIDxkY25kbDpiaWJSZWNvcmRDYXRlZ29yeT5SMTAwMDAwMDAyPC9kY25kbDpiaWJSZWNvcmRDYXRlZ29yeT4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAyLUkwMDAwMDMwNDY1NDYtMDAjbWF0ZXJpYWwiLz4KICA8L2RjbmRsOkJpYkFkbWluUmVzb3VyY2U+CiAgPGRjbmRsOkJpYlJlc291cmNlIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMi1JMDAwMDAzMDQ2NTQ2LTAwI21hdGVyaWFsIj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL0pQTk8iPjIwMjIyODE4PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9JU0JOIj40LTc5ODAtMDIwNi0yPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lkLm5kbC5nby5qcC9qcG5vLzIwMjIyODE4Ii8+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvaXNibi80Nzk4MDAyMDYyIi8+CiAgICA8ZGN0ZXJtczp0aXRsZT7jgojjgY/jgo/jgYvjgovmnIDmlrBXZWLjgrXjg7zjg5PjgrnmioDooZPjga7ln7rmnKzjgajku5XntYTjgb8gOiDmqJnmupZXZWLjgrfjgrnjg4bjg6DmioDooZPjgahl44Kz44Oe44O844K55Z+655uk5oqA6KGT5YWl6ZaAPC9kY3Rlcm1zOnRpdGxlPgogICAgPGRjOnRpdGxlPgogICAgICA8cmRmOkRlc2NyaXB0aW9uPgogICAgICAgIDxyZGY6dmFsdWU+44KI44GP44KP44GL44KL5pyA5pawV2Vi44K144O844OT44K55oqA6KGT44Gu5Z+65pys44Go5LuV57WE44G/IDog5qiZ5rqWV2Vi44K344K544OG44Og5oqA6KGT44GoZeOCs+ODnuODvOOCueWfuuebpOaKgOihk+WFpemWgDwvcmRmOnZhbHVlPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuODqOOCryDjg6/jgqvjg6sg44K144Kk44K344OzIFdlYiDjgrXjg7zjg5Pjgrkg44Ku44K444Ol44OEIOODjiDjgq3jg5vjg7Mg44OIIOOCt+OCr+ODnyA6IOODkuODp+OCpuOCuOODpeODsyBXZWIg44K344K544OG44OgIOOCruOCuOODpeODhCDjg4ggZeOCs+ODnuODvOOCuSDjgq3jg5Djg7Mg44Ku44K444Ol44OEIOODi+ODpeOCpuODouODszwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICA8L2RjOnRpdGxlPgogICAgPGRjbmRsOnNlcmllc1RpdGxlPgogICAgICA8cmRmOkRlc2NyaXB0aW9uPgogICAgICAgIDxyZGY6dmFsdWU+5Zuz6Kej5YWl6ZaAPC9yZGY6dmFsdWU+CiAgICAgICAgPGRjbmRsOnRyYW5zY3JpcHRpb24+44K644Kr44KkIOODi+ODpeOCpuODouODszwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICA8L2RjbmRsOnNlcmllc1RpdGxlPgogICAgPGRjdGVybXM6Y3JlYXRvcj4KICAgICAgPGZvYWY6QWdlbnQgcmRmOmFib3V0PSJodHRwOi8vaWQubmRsLmdvLmpwL2F1dGgvZW50aXR5LzAwNzMzNTM4Ij4KICAgICAgICA8Zm9hZjpuYW1lPuWwj+aglywg5LiA5aSrLCAxOTUwLTwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOCquOCsOODqiwg44Kr44K644KqPC9kY25kbDp0cmFuc2NyaXB0aW9uPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjdGVybXM6Y3JlYXRvcj4KICAgIDxkY3Rlcm1zOmNyZWF0b3I+CiAgICAgIDxmb2FmOkFnZW50IHJkZjphYm91dD0iaHR0cDovL2lkLm5kbC5nby5qcC9hdXRoL2VudGl0eS8wMDUzODIwNCI+CiAgICAgICAgPGZvYWY6bmFtZT7ml6nlt50sIOiBluWPuCwgMTk2NS08L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jg4/jg6Tjgqvjg68sIOOCu+OCpOOCuDwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY3Rlcm1zOmNyZWF0b3I+CiAgICA8ZGM6Y3JlYXRvcj7lsI/moJfkuIDlpKssIOaXqeW3neiBluWPuCDlhbHokZc8L2RjOmNyZWF0b3I+CiAgICA8ZGN0ZXJtczpwdWJsaXNoZXI+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+56eA5ZKM44K344K544OG44OgPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjbmRsOmxvY2F0aW9uPuadseS6rDwvZGNuZGw6bG9jYXRpb24+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGN0ZXJtczpwdWJsaXNoZXI+CiAgICA8ZGNuZGw6cHVibGljYXRpb25QbGFjZSByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9JU08zMTY2Ij5KUDwvZGNuZGw6cHVibGljYXRpb25QbGFjZT4KICAgIDxkY3Rlcm1zOmRhdGU+MjAwMS4xMjwvZGN0ZXJtczpkYXRlPgogICAgPGRjdGVybXM6aXNzdWVkIHJkZjpkYXRhdHlwZT0iaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL1czQ0RURiI+MjAwMTwvZGN0ZXJtczppc3N1ZWQ+CiAgICA8ZGN0ZXJtczpzdWJqZWN0PgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iaHR0cDovL2lkLm5kbC5nby5qcC9hdXRoL25kbHNoLzAwODQxMDI0Ij4KICAgICAgICA8cmRmOnZhbHVlPuOCpOODs+OCv+ODvOODjeODg+ODiDwvcmRmOnZhbHVlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgIDwvZGN0ZXJtczpzdWJqZWN0PgogICAgPGRjdGVybXM6c3ViamVjdCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pZC5uZGwuZ28uanAvY2xhc3MvbmRsYy9ORDYzMyIvPgogICAgPGRjdGVybXM6c3ViamVjdCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pZC5uZGwuZ28uanAvY2xhc3MvbmRjOS81NDcuNDgzIi8+CiAgICA8ZGN0ZXJtczpsYW5ndWFnZSByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9JU082MzktMiI+anBuPC9kY3Rlcm1zOmxhbmd1YWdlPgogICAgPGRjdGVybXM6ZXh0ZW50PjI0N3AgOyAyMWNtPC9kY3Rlcm1zOmV4dGVudD4KICAgIDxkY25kbDpwcmljZT4xODAw5YaGPC9kY25kbDpwcmljZT4KICAgIDxkY3Rlcm1zOmF1ZGllbmNlPuS4gOiIrDwvZGN0ZXJtczphdWRpZW5jZT4KICAgIDxkY25kbDptYXRlcmlhbFR5cGUgcmRmczpsYWJlbD0i5Zuz5pu4IiByZGY6cmVzb3VyY2U9Imh0dHA6Ly9uZGwuZ28uanAvbmRsdHlwZS9Cb29rIi8+CiAgICA8ZGN0ZXJtczphY2Nlc3NSaWdodHM+UzAxUDk5VTk5PC9kY3Rlcm1zOmFjY2Vzc1JpZ2h0cz4KICA8L2RjbmRsOkJpYlJlc291cmNlPgogIDxkY25kbDpCaWJSZXNvdXJjZSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDItSTAwMDAwMzA0NjU0Ni0wMCNtYXRlcmlhbCI+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMi1JMDAwMDAzMDQ2NTQ2LTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTI4OTM5ODQtMDAjaXRlbSIvPgogICAgPGRjbmRsOnJlY29yZCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA1NjQzMTA0NC0wMCNpdGVtIi8+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDU5NjIwOTUyLTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTk4Mjc2OTYtMDAjaXRlbSIvPgogICAgPGRjbmRsOnJlY29yZCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA2NDYxMzQ3NC0wMCNpdGVtIi8+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDcxMjM1NTI3LTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNzg2MzU0OTMtMDAjaXRlbSIvPgogICAgPGRjbmRsOnJlY29yZCByZGY6cmVzb3VyY2U9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA4NDY3ODYwNy0wMCNpdGVtIi8+CiAgICA8ZGNuZGw6cmVjb3JkIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDkwMzcxMzIxLTAwI2l0ZW0iLz4KICAgIDxkY25kbDpyZWNvcmQgcmRmOnJlc291cmNlPSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwOTMwNjk0NjEtMDAjaXRlbSIvPgogIDwvZGNuZGw6QmliUmVzb3VyY2U+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAyLUkwMDAwMDMwNDY1NDYtMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuWbveeri+WbveS8muWbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL05ETExpYkNvZGUiPjAwMDA8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY25kbDpob2xkaW5nQWdlbnQ+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cDovL2lkLm5kbC5nby5qcC9iaWIvMDAwMDAzMDQ2NTQ2Ii8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExCaWJJRCI+MDAwMDAzMDQ2NTQ2PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj5ORDYzMy1HMjMxMjwvZGNuZGw6Y2FsbE51bWJlcj4KICA8L2RjbmRsOkl0ZW0+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTI4OTM5ODQtMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuWkp+mYquW4gueri+Wbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOCquOCquOCteOCq+OCt+ODquODhOODiOOCt+ODp+OCq+ODszwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExMaWJDb2RlIj4yNzIxPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGNuZGw6aG9sZGluZ0FnZW50PgogICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIub21sLmNpdHkub3Nha2EubGcuanAvd2Vib3BhY19pX2phLzAwMTAxOTY3NzkiLz4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdUJpYklEIj4wMDEwMTk2Nzc5PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VTdWJJRCI+MDAxMDE5Njc3OTwvZGN0ZXJtczppZGVudGlmaWVyPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA1NjQzMTA0NC0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+5aSn6Ziq5bqc56uL5Lit5aSu5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MjcxMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5saWJyYXJ5LnByZWYub3Nha2EuanAvbGljc3hwLW9wYWMvV09wYWNNc2dOZXdMaXN0VG9UaWZUaWxEZXRhaWxBY3Rpb24uZG8/dGlsY29kPTEwMDAwMDAxNzc2NzUxIi8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VCaWJJRCI+MTAwMDAwMDE3NzY3NTE8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj4xMTE0Mzc4MTM0PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC85ODJOLzwvZGNuZGw6Y2FsbE51bWJlcj4KICA8L2RjbmRsOkl0ZW0+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNTk2MjA5NTItMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuaEm+efpeecjOWbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOBguOBhOOBoeOBkeOCk+OBqOOBl+OCh+OBi+OCkzwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExMaWJDb2RlIj4yMzExPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGNuZGw6aG9sZGluZ0FnZW50PgogICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWJzdi5haWNoaS1wcmVmLWxpYnJhcnkuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTE2MDI0NTg1NSIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExNjAyNDU4NTU8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj4xMTA4MDY3NjI4PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNDgt77217724LTgwNjc2MjwvZGNuZGw6Y2FsbE51bWJlcj4KICAgIDxkY25kbDphdmFpbGFiaWxpdHk+6Zay5Y+v6LK45Y+v5Y2U5Y+vPC9kY25kbDphdmFpbGFiaWxpdHk+CiAgICA8ZGN0ZXJtczpkZXNjcmlwdGlvbj7miYDolLXloLTmiYAgOiDmm7jluqvvvK3vvKLvvJI8L2RjdGVybXM6ZGVzY3JpcHRpb24+CiAgPC9kY25kbDpJdGVtPgogIDxkY25kbDpJdGVtIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDU5ODI3Njk2LTAwI2l0ZW0iPgogICAgPGRjbmRsOmhvbGRpbmdBZ2VudD4KICAgICAgPGZvYWY6QWdlbnQ+CiAgICAgICAgPGZvYWY6bmFtZT7kuInph43nnIznq4vlm7Pmm7jppKg8L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jgb/jgYjjgZHjgpPjgorjgaTjgajjgZfjgofjgYvjgpM8L2RjbmRsOnRyYW5zY3JpcHRpb24+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MjQxMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwOi8vb3BhYzEubGlicmFyeS5wcmVmLm1pZS5sZy5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTAxODcwOTEzIi8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VCaWJJRCI+MTEwMTg3MDkxMzwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1U3ViSUQiPjExNTA1MzQyMzwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgPGRjbmRsOmNhbGxOdW1iZXI+NTQ3LjQt7721PC9kY25kbDpjYWxsTnVtYmVyPgogICAgPGRjbmRsOmF2YWlsYWJpbGl0eT7mjIHlh7rlj6/og708L2RjbmRsOmF2YWlsYWJpbGl0eT4KICAgIDxkY3Rlcm1zOmRlc2NyaXB0aW9uPuaJgOiUteWgtOaJgCA6IOmWieaetu+8iOS4gOiIrO+8iTwvZGN0ZXJtczpkZXNjcmlwdGlvbj4KICA8L2RjbmRsOkl0ZW0+CiAgPGRjbmRsOkl0ZW0gcmRmOmFib3V0PSJodHRwOi8vaXNzLm5kbC5nby5qcC9ib29rcy9SMTAwMDAwMDAxLUkwNjQ2MTM0NzQtMDAjaXRlbSI+CiAgICA8ZGNuZGw6aG9sZGluZ0FnZW50PgogICAgICA8Zm9hZjpBZ2VudD4KICAgICAgICA8Zm9hZjpuYW1lPuWykOmYnOecjOWbs+abuOmkqDwvZm9hZjpuYW1lPgogICAgICAgIDxkY25kbDp0cmFuc2NyaXB0aW9uPuOBjuOBteOBkeOCk+OBqOOBl+OCh+OBi+OCkzwvZGNuZGw6dHJhbnNjcmlwdGlvbj4KICAgICAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9ORExMaWJDb2RlIj4yMTExPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICAgIDwvZm9hZjpBZ2VudD4KICAgIDwvZGNuZGw6aG9sZGluZ0FnZW50PgogICAgPHJkZnM6c2VlQWxzbyByZGY6cmVzb3VyY2U9Imh0dHA6Ly93d3cubGlicmFyeS5wcmVmLmdpZnUubGcuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwMDAzNzE5OSIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExMDAwMzcxOTk8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj44MTMyMDE0ODcyPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC3jgqo8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuaMgeWHuuWPr+iDvTwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+5omA6JS15aC05omAIDog77yZ54mI6ZaJ5p62PC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA3MTIzNTUyNy0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+5L2Q6LOA55yM56uL5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+NDExMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdUJpYklEIj4xMTAwNDY1MDE0PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VTdWJJRCI+MTEzMzkxODkwPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj7vvJXvvJTvvJfvvI7vvJTvvI/vvK/vvJLvvJY8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuWIqeeUqOWPrzwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+6YWN572u5aC05omAIDog5paw6aSo5pu45bqr77yS5bGkPC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA3ODYzNTQ5My0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+5p2x5Lqs6YO956uL5aSa5pGp5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjbmRsOnRyYW5zY3JpcHRpb24+44Go44GG44GN44KH44GG44Go44KK44Gk44Gf44G+44Go44GX44KH44GL44KTPC9kY25kbDp0cmFuc2NyaXB0aW9uPgogICAgICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL05ETExpYkNvZGUiPjEzMTM8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY25kbDpob2xkaW5nQWdlbnQ+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cHM6Ly9jYXRhbG9nLmxpYnJhcnkubWV0cm8udG9reW8uanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwNTQ5MzkxNSIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExMDU0OTM5MTU8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj41MDAzODMyMDAwPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC01NDI1LTIwMDE8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PumWsuWPry/lgIvlkKYv5Y2U5Y+vPC9kY25kbDphdmFpbGFiaWxpdHk+CiAgICA8ZGN0ZXJtczpkZXNjcmlwdGlvbj7miYDolLXloLTmiYAgOiBCMuabuOW6q008L2RjdGVybXM6ZGVzY3JpcHRpb24+CiAgPC9kY25kbDpJdGVtPgogIDxkY25kbDpJdGVtIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDg0Njc4NjA3LTAwI2l0ZW0iPgogICAgPGRjbmRsOmhvbGRpbmdBZ2VudD4KICAgICAgPGZvYWY6QWdlbnQ+CiAgICAgICAgPGZvYWY6bmFtZT7loLrluILnq4vkuK3lpK7lm7Pmm7jppKg8L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jgrXjgqvjgqTjgrfjg6rjg4Tjg4Hjg6Xjgqbjgqrjgqbjg4jjgrfjg6fjgqvjg7M8L2RjbmRsOnRyYW5zY3JpcHRpb24+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MjcyMjwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5saWItc2FrYWkuanAvbGljc3hwLW9wYWMvV09wYWNNc2dOZXdMaXN0VG9UaWZUaWxEZXRhaWxBY3Rpb24uZG8/dGlsY29kPTEwMDAwMDE0NDczNjkiLz4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdUJpYklEIj4xMDAwMDAxNDQ3MzY5PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VTdWJJRCI+MTEyNzM1Mjk1PC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNDgv7721Lzg8L2RjbmRsOmNhbGxOdW1iZXI+CiAgPC9kY25kbDpJdGVtPgogIDxkY25kbDpJdGVtIHJkZjphYm91dD0iaHR0cDovL2lzcy5uZGwuZ28uanAvYm9va3MvUjEwMDAwMDAwMS1JMDkwMzcxMzIxLTAwI2l0ZW0iPgogICAgPGRjbmRsOmhvbGRpbmdBZ2VudD4KICAgICAgPGZvYWY6QWdlbnQ+CiAgICAgICAgPGZvYWY6bmFtZT7lvrPls7bnnIznq4vlm7Pmm7jppKg8L2ZvYWY6bmFtZT4KICAgICAgICA8ZGNuZGw6dHJhbnNjcmlwdGlvbj7jgajjgY/jgZfjgb7jgZHjgpPjgorjgaTjgajjgZfjgofjgYvjgpM8L2RjbmRsOnRyYW5zY3JpcHRpb24+CiAgICAgICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvTkRMTGliQ29kZSI+MzYxMTwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgICA8L2ZvYWY6QWdlbnQ+CiAgICA8L2RjbmRsOmhvbGRpbmdBZ2VudD4KICAgIDxyZGZzOnNlZUFsc28gcmRmOnJlc291cmNlPSJodHRwczovL2FsaXNsaWJvcGFjLnRva3VzaGltYS1lYy5lZC5qcC93aW5qL29wYWMvc3dpdGNoLWRldGFpbC1pY2NhcC5kbz9iaWJpZD0xMTAxMTIzMTY3Ii8+CiAgICA8ZGN0ZXJtczppZGVudGlmaWVyIHJkZjpkYXRhdHlwZT0iaHR0cDovL25kbC5nby5qcC9kY25kbC90ZXJtcy9zb21va3VCaWJJRCI+MTEwMTEyMzE2NzwvZGN0ZXJtczppZGVudGlmaWVyPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1U3ViSUQiPjAwMTA3OTQyODUyPC9kY3Rlcm1zOmlkZW50aWZpZXI+CiAgICA8ZGNuZGw6Y2FsbE51bWJlcj41NDcuNC3vvbXvvbg8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuiyuOWHuuWPr+iDvTwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+5omA6JS15aC05omAIDog5LiA6Iis6LOH5paZ44Kz44O844OK44O8PC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KICA8ZGNuZGw6SXRlbSByZGY6YWJvdXQ9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2Jvb2tzL1IxMDAwMDAwMDEtSTA5MzA2OTQ2MS0wMCNpdGVtIj4KICAgIDxkY25kbDpob2xkaW5nQWdlbnQ+CiAgICAgIDxmb2FmOkFnZW50PgogICAgICAgIDxmb2FmOm5hbWU+6Z2Z5bKh5biC56uL5Lit5aSu5Zuz5pu46aSoPC9mb2FmOm5hbWU+CiAgICAgICAgPGRjbmRsOnRyYW5zY3JpcHRpb24+44K344K644Kq44Kr44K344Oq44OE44OB44Ol44Km44Kq44Km44OI44K344On44Kr44OzPC9kY25kbDp0cmFuc2NyaXB0aW9uPgogICAgICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL05ETExpYkNvZGUiPjIyMjE8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgICAgPC9mb2FmOkFnZW50PgogICAgPC9kY25kbDpob2xkaW5nQWdlbnQ+CiAgICA8cmRmczpzZWVBbHNvIHJkZjpyZXNvdXJjZT0iaHR0cHM6Ly93d3cyLnRvc2hva2FuLmNpdHkuc2hpenVva2EuanAvd2luai9vcGFjL3N3aXRjaC1kZXRhaWwtaWNjYXAuZG8/YmliaWQ9MTEwMDE3MDU4OCIvPgogICAgPGRjdGVybXM6aWRlbnRpZmllciByZGY6ZGF0YXR5cGU9Imh0dHA6Ly9uZGwuZ28uanAvZGNuZGwvdGVybXMvc29tb2t1QmliSUQiPjExMDAxNzA1ODg8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY3Rlcm1zOmlkZW50aWZpZXIgcmRmOmRhdGF0eXBlPSJodHRwOi8vbmRsLmdvLmpwL2RjbmRsL3Rlcm1zL3NvbW9rdVN1YklEIj4xMjIzOTQwMTE8L2RjdGVybXM6aWRlbnRpZmllcj4KICAgIDxkY25kbDpjYWxsTnVtYmVyPjU0Ny40ODM8L2RjbmRsOmNhbGxOdW1iZXI+CiAgICA8ZGNuZGw6YXZhaWxhYmlsaXR5PuaMgeWHuuWPr+iDvTwvZGNuZGw6YXZhaWxhYmlsaXR5PgogICAgPGRjdGVybXM6ZGVzY3JpcHRpb24+5omA6JS15aC05omAIDog5pu45bqrPC9kY3Rlcm1zOmRlc2NyaXB0aW9uPgogIDwvZGNuZGw6SXRlbT4KPC9yZGY6UkRGPg==
119
+ http_version: null
120
+ recorded_at: Sun, 19 Apr 2020 10:32:19 GMT
121
+ recorded_with: VCR 5.1.0
@@ -33,7 +33,7 @@ describe ContentTypesController do
33
33
  it 'assigns all content_types as @content_types' do
34
34
  content_type = ContentType.create! valid_attributes
35
35
  get :index
36
- expect(assigns(:content_types)).to eq(ContentType.all)
36
+ expect(assigns(:content_types)).to eq(ContentType.order(:position))
37
37
  end
38
38
  end
39
39
 
@@ -0,0 +1,449 @@
1
+ require 'rails_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe ItemCustomPropertiesController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ def valid_attributes
9
+ @attrs = FactoryBot.attributes_for(:item_custom_property)
10
+ end
11
+
12
+ describe 'GET index' do
13
+ before(:each) do
14
+ FactoryBot.create(:item_custom_property)
15
+ end
16
+
17
+ describe 'When logged in as Administrator' do
18
+ login_fixture_admin
19
+
20
+ it 'assigns all item_custom_properties as @item_custom_properties' do
21
+ get :index
22
+ expect(assigns(:item_custom_properties)).to eq(ItemCustomProperty.order(:position))
23
+ end
24
+ end
25
+
26
+ describe 'When logged in as Librarian' do
27
+ login_fixture_librarian
28
+
29
+ it 'assigns all item_custom_properties as @item_custom_properties' do
30
+ get :index
31
+ expect(assigns(:item_custom_properties)).to eq(ItemCustomProperty.order(:position))
32
+ end
33
+ end
34
+
35
+ describe 'When logged in as User' do
36
+ login_fixture_user
37
+
38
+ it 'assigns all item_custom_properties as @item_custom_properties' do
39
+ get :index
40
+ expect(assigns(:item_custom_properties)).to eq nil
41
+ end
42
+ end
43
+
44
+ describe 'When not logged in' do
45
+ it 'assigns all item_custom_properties as @item_custom_properties' do
46
+ get :index
47
+ expect(assigns(:item_custom_properties)).to eq nil
48
+ end
49
+ end
50
+ end
51
+
52
+ describe 'GET show' do
53
+ describe 'When logged in as Administrator' do
54
+ login_fixture_admin
55
+
56
+ it 'assigns the requested item_custom_property as @item_custom_property' do
57
+ item_custom_property = FactoryBot.create(:item_custom_property)
58
+ get :show, params: { id: item_custom_property.id }
59
+ expect(assigns(:item_custom_property)).to eq(item_custom_property)
60
+ end
61
+ end
62
+
63
+ describe 'When logged in as Librarian' do
64
+ login_fixture_librarian
65
+
66
+ it 'assigns the requested item_custom_property as @item_custom_property' do
67
+ item_custom_property = FactoryBot.create(:item_custom_property)
68
+ get :show, params: { id: item_custom_property.id }
69
+ expect(assigns(:item_custom_property)).to eq(item_custom_property)
70
+ end
71
+ end
72
+
73
+ describe 'When logged in as User' do
74
+ login_fixture_user
75
+
76
+ it 'assigns the requested item_custom_property as @item_custom_property' do
77
+ item_custom_property = FactoryBot.create(:item_custom_property)
78
+ get :show, params: { id: item_custom_property.id }
79
+ expect(assigns(:item_custom_property)).to eq(item_custom_property)
80
+ end
81
+ end
82
+
83
+ describe 'When not logged in' do
84
+ it 'assigns the requested item_custom_property as @item_custom_property' do
85
+ item_custom_property = FactoryBot.create(:item_custom_property)
86
+ get :show, params: { id: item_custom_property.id }
87
+ expect(assigns(:item_custom_property)).to eq(item_custom_property)
88
+ end
89
+ end
90
+ end
91
+
92
+ describe 'GET new' do
93
+ describe 'When logged in as Administrator' do
94
+ login_fixture_admin
95
+
96
+ it 'assigns the requested item_custom_property as @item_custom_property' do
97
+ get :new
98
+ expect(assigns(:item_custom_property)).to be_a_new(ItemCustomProperty)
99
+ expect(response).to be_successful
100
+ end
101
+ end
102
+
103
+ describe 'When logged in as Librarian' do
104
+ login_fixture_librarian
105
+
106
+ it 'should not assign the requested item_custom_property as @item_custom_property' do
107
+ get :new
108
+ expect(assigns(:item_custom_property)).to be_nil
109
+ expect(response).to be_forbidden
110
+ end
111
+ end
112
+
113
+ describe 'When logged in as User' do
114
+ login_fixture_user
115
+
116
+ it 'should not assign the requested item_custom_property as @item_custom_property' do
117
+ get :new
118
+ expect(assigns(:item_custom_property)).to be_nil
119
+ expect(response).to be_forbidden
120
+ end
121
+ end
122
+
123
+ describe 'When not logged in' do
124
+ it 'should not assign the requested item_custom_property as @item_custom_property' do
125
+ get :new
126
+ expect(assigns(:item_custom_property)).to be_nil
127
+ expect(response).to redirect_to(new_user_session_url)
128
+ end
129
+ end
130
+ end
131
+
132
+ describe 'GET edit' do
133
+ describe 'When logged in as Administrator' do
134
+ login_fixture_admin
135
+
136
+ it 'assigns the requested item_custom_property as @item_custom_property' do
137
+ item_custom_property = FactoryBot.create(:item_custom_property)
138
+ get :edit, params: { id: item_custom_property.id }
139
+ expect(assigns(:item_custom_property)).to eq(item_custom_property)
140
+ end
141
+ end
142
+
143
+ describe 'When logged in as Librarian' do
144
+ login_fixture_librarian
145
+
146
+ it 'assigns the requested item_custom_property as @item_custom_property' do
147
+ item_custom_property = FactoryBot.create(:item_custom_property)
148
+ get :edit, params: { id: item_custom_property.id }
149
+ expect(assigns(:item_custom_property)).to eq(item_custom_property)
150
+ end
151
+ end
152
+
153
+ describe 'When logged in as User' do
154
+ login_fixture_user
155
+
156
+ it 'assigns the requested item_custom_property as @item_custom_property' do
157
+ item_custom_property = FactoryBot.create(:item_custom_property)
158
+ get :edit, params: { id: item_custom_property.id }
159
+ expect(response).to be_forbidden
160
+ end
161
+ end
162
+
163
+ describe 'When not logged in' do
164
+ it 'should not assign the requested item_custom_property as @item_custom_property' do
165
+ item_custom_property = FactoryBot.create(:item_custom_property)
166
+ get :edit, params: { id: item_custom_property.id }
167
+ expect(response).to redirect_to(new_user_session_url)
168
+ end
169
+ end
170
+ end
171
+
172
+ describe 'POST create' do
173
+ before(:each) do
174
+ @attrs = valid_attributes
175
+ @invalid_attrs = { name: '' }
176
+ end
177
+
178
+ describe 'When logged in as Administrator' do
179
+ login_fixture_admin
180
+
181
+ describe 'with valid params' do
182
+ it 'assigns a newly created item_custom_property as @item_custom_property' do
183
+ post :create, params: { item_custom_property: @attrs }
184
+ expect(assigns(:item_custom_property)).to be_valid
185
+ end
186
+
187
+ it 'redirects to the created item' do
188
+ post :create, params: { item_custom_property: @attrs }
189
+ expect(response).to redirect_to(assigns(:item_custom_property))
190
+ end
191
+ end
192
+
193
+ describe 'with invalid params' do
194
+ it 'assigns a newly created but unsaved item_custom_property as @item_custom_property' do
195
+ post :create, params: { item_custom_property: @invalid_attrs }
196
+ expect(assigns(:item_custom_property)).not_to be_valid
197
+ end
198
+
199
+ it "re-renders the 'new' template" do
200
+ post :create, params: { item_custom_property: @invalid_attrs }
201
+ expect(response).to render_template('new')
202
+ end
203
+ end
204
+ end
205
+
206
+ describe 'When logged in as Librarian' do
207
+ login_fixture_librarian
208
+
209
+ describe 'with valid params' do
210
+ it 'assigns a newly created item_custom_property as @item_custom_property' do
211
+ post :create, params: { item_custom_property: @attrs }
212
+ expect(assigns(:item_custom_property)).to be_nil
213
+ end
214
+
215
+ it 'redirects to the created item' do
216
+ post :create, params: { item_custom_property: @attrs }
217
+ expect(response).to be_forbidden
218
+ end
219
+ end
220
+
221
+ describe 'with invalid params' do
222
+ it 'assigns a newly created but unsaved item_custom_property as @item_custom_property' do
223
+ post :create, params: { item_custom_property: @invalid_attrs }
224
+ expect(assigns(:item_custom_property)).to be_nil
225
+ end
226
+
227
+ it "re-renders the 'new' template" do
228
+ post :create, params: { item_custom_property: @invalid_attrs }
229
+ expect(response).to be_forbidden
230
+ end
231
+ end
232
+ end
233
+
234
+ describe 'When logged in as User' do
235
+ login_fixture_user
236
+
237
+ describe 'with valid params' do
238
+ it 'assigns a newly created item_custom_property as @item_custom_property' do
239
+ post :create, params: { item_custom_property: @attrs }
240
+ expect(assigns(:item_custom_property)).to be_nil
241
+ end
242
+
243
+ it 'should be forbidden' do
244
+ post :create, params: { item_custom_property: @attrs }
245
+ expect(response).to be_forbidden
246
+ end
247
+ end
248
+
249
+ describe 'with invalid params' do
250
+ it 'assigns a newly created but unsaved item_custom_property as @item_custom_property' do
251
+ post :create, params: { item_custom_property: @invalid_attrs }
252
+ expect(assigns(:item_custom_property)).to be_nil
253
+ end
254
+
255
+ it 'should be forbidden' do
256
+ post :create, params: { item_custom_property: @invalid_attrs }
257
+ expect(response).to be_forbidden
258
+ end
259
+ end
260
+ end
261
+
262
+ describe 'When not logged in' do
263
+ describe 'with valid params' do
264
+ it 'assigns a newly created item_custom_property as @item_custom_property' do
265
+ post :create, params: { item_custom_property: @attrs }
266
+ expect(assigns(:item_custom_property)).to be_nil
267
+ end
268
+
269
+ it 'should be forbidden' do
270
+ post :create, params: { item_custom_property: @attrs }
271
+ expect(response).to redirect_to(new_user_session_url)
272
+ end
273
+ end
274
+
275
+ describe 'with invalid params' do
276
+ it 'assigns a newly created but unsaved item_custom_property as @item_custom_property' do
277
+ post :create, params: { item_custom_property: @invalid_attrs }
278
+ expect(assigns(:item_custom_property)).to be_nil
279
+ end
280
+
281
+ it 'should be forbidden' do
282
+ post :create, params: { item_custom_property: @invalid_attrs }
283
+ expect(response).to redirect_to(new_user_session_url)
284
+ end
285
+ end
286
+ end
287
+ end
288
+
289
+ describe 'PUT update' do
290
+ before(:each) do
291
+ @item_custom_property = FactoryBot.create(:item_custom_property)
292
+ @attrs = valid_attributes
293
+ @invalid_attrs = { name: '' }
294
+ end
295
+
296
+ describe 'When logged in as Administrator' do
297
+ login_fixture_admin
298
+
299
+ describe 'with valid params' do
300
+ it 'updates the requested item_custom_property' do
301
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
302
+ end
303
+
304
+ it 'assigns the requested item_custom_property as @item_custom_property' do
305
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
306
+ expect(assigns(:item_custom_property)).to eq(@item_custom_property)
307
+ expect(response).to redirect_to(@item_custom_property)
308
+ end
309
+ end
310
+
311
+ describe 'with invalid params' do
312
+ it 'assigns the requested item_custom_property as @item_custom_property' do
313
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @invalid_attrs }
314
+ expect(response).to render_template('edit')
315
+ end
316
+ end
317
+
318
+ it 'moves its position when specified' do
319
+ item_custom_property = ItemCustomProperty.create! valid_attributes
320
+ position = item_custom_property.position
321
+ put :update, params: { id: item_custom_property.id, move: 'higher' }
322
+ expect(response).to redirect_to item_custom_properties_url
323
+ assigns(:item_custom_property).reload.position.should eq position - 1
324
+ end
325
+ end
326
+
327
+ describe 'When logged in as Librarian' do
328
+ login_fixture_librarian
329
+
330
+ describe 'with valid params' do
331
+ it 'updates the requested item_custom_property' do
332
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
333
+ end
334
+
335
+ it 'assigns the requested item_custom_property as @item_custom_property' do
336
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
337
+ expect(assigns(:item_custom_property)).to eq @item_custom_property
338
+ expect(response).to be_forbidden
339
+ end
340
+ end
341
+
342
+ describe 'with invalid params' do
343
+ it 'assigns the requested item_custom_property as @item_custom_property' do
344
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @invalid_attrs }
345
+ expect(response).to be_forbidden
346
+ end
347
+ end
348
+ end
349
+
350
+ describe 'When logged in as User' do
351
+ login_fixture_user
352
+
353
+ describe 'with valid params' do
354
+ it 'updates the requested item_custom_property' do
355
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
356
+ end
357
+
358
+ it 'assigns the requested item_custom_property as @item_custom_property' do
359
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
360
+ expect(assigns(:item_custom_property)).to eq(@item_custom_property)
361
+ expect(response).to be_forbidden
362
+ end
363
+ end
364
+
365
+ describe 'with invalid params' do
366
+ it 'assigns the requested item_custom_property as @item_custom_property' do
367
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @invalid_attrs }
368
+ expect(response).to be_forbidden
369
+ end
370
+ end
371
+ end
372
+
373
+ describe 'When not logged in' do
374
+ describe 'with valid params' do
375
+ it 'updates the requested item_custom_property' do
376
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
377
+ end
378
+
379
+ it 'should be forbidden' do
380
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @attrs }
381
+ expect(response).to redirect_to(new_user_session_url)
382
+ end
383
+ end
384
+
385
+ describe 'with invalid params' do
386
+ it 'assigns the requested item_custom_property as @item_custom_property' do
387
+ put :update, params: { id: @item_custom_property.id, item_custom_property: @invalid_attrs }
388
+ expect(response).to redirect_to(new_user_session_url)
389
+ end
390
+ end
391
+ end
392
+ end
393
+
394
+ describe 'DELETE destroy' do
395
+ before(:each) do
396
+ @item_custom_property = FactoryBot.create(:item_custom_property)
397
+ end
398
+
399
+ describe 'When logged in as Administrator' do
400
+ login_fixture_admin
401
+
402
+ it 'destroys the requested item_custom_property' do
403
+ delete :destroy, params: { id: @item_custom_property.id }
404
+ end
405
+
406
+ it 'redirects to the item_custom_properties list' do
407
+ delete :destroy, params: { id: @item_custom_property.id }
408
+ expect(response).to redirect_to(item_custom_properties_url)
409
+ end
410
+ end
411
+
412
+ describe 'When logged in as Librarian' do
413
+ login_fixture_librarian
414
+
415
+ it 'destroys the requested item_custom_property' do
416
+ delete :destroy, params: { id: @item_custom_property.id }
417
+ end
418
+
419
+ it 'should be forbidden' do
420
+ delete :destroy, params: { id: @item_custom_property.id }
421
+ expect(response).to be_forbidden
422
+ end
423
+ end
424
+
425
+ describe 'When logged in as User' do
426
+ login_fixture_user
427
+
428
+ it 'destroys the requested item_custom_property' do
429
+ delete :destroy, params: { id: @item_custom_property.id }
430
+ end
431
+
432
+ it 'should be forbidden' do
433
+ delete :destroy, params: { id: @item_custom_property.id }
434
+ expect(response).to be_forbidden
435
+ end
436
+ end
437
+
438
+ describe 'When not logged in' do
439
+ it 'destroys the requested item_custom_property' do
440
+ delete :destroy, params: { id: @item_custom_property.id }
441
+ end
442
+
443
+ it 'should be forbidden' do
444
+ delete :destroy, params: { id: @item_custom_property.id }
445
+ expect(response).to redirect_to(new_user_session_url)
446
+ end
447
+ end
448
+ end
449
+ end