phaxio 2.0.1 → 2.1.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +2 -1
  3. data/README.md +46 -13
  4. data/lib/phaxio.rb +2 -1
  5. data/lib/phaxio/client.rb +31 -10
  6. data/lib/phaxio/config.rb +1 -1
  7. data/lib/phaxio/resources/ata.rb +219 -0
  8. data/lib/phaxio/version.rb +1 -1
  9. data/phaxio.gemspec +1 -1
  10. data/spec/client_spec.rb +6 -6
  11. data/spec/resources/fax_spec.rb +40 -19
  12. data/spec/resources/phax_code_spec.rb +52 -24
  13. data/spec/support/vcr.rb +1 -2
  14. data/spec/support/vcr_cassettes/resources/account/status.yml +14 -13
  15. data/spec/support/vcr_cassettes/resources/fax/cancel.yml +16 -15
  16. data/spec/support/vcr_cassettes/resources/fax/create.yml +17 -197
  17. data/spec/support/vcr_cassettes/resources/fax/create_for_cancel.yml +50 -0
  18. data/spec/support/vcr_cassettes/resources/fax/create_for_delete.yml +50 -0
  19. data/spec/support/vcr_cassettes/resources/fax/create_for_delete_file.yml +50 -0
  20. data/spec/support/vcr_cassettes/resources/fax/create_for_download_file.yml +50 -0
  21. data/spec/support/vcr_cassettes/resources/fax/create_for_get.yml +50 -0
  22. data/spec/support/vcr_cassettes/resources/fax/create_for_reference.yml +50 -0
  23. data/spec/support/vcr_cassettes/resources/fax/create_for_resend.yml +50 -0
  24. data/spec/support/vcr_cassettes/resources/fax/delete.yml +11 -10
  25. data/spec/support/vcr_cassettes/resources/fax/delete_file.yml +11 -10
  26. data/spec/support/vcr_cassettes/resources/fax/file.yml +15 -216
  27. data/spec/support/vcr_cassettes/resources/fax/get.yml +14 -13
  28. data/spec/support/vcr_cassettes/resources/fax/list.yml +15 -20
  29. data/spec/support/vcr_cassettes/resources/fax/reference.yml +45 -0
  30. data/spec/support/vcr_cassettes/resources/fax/resend.yml +15 -14
  31. data/spec/support/vcr_cassettes/resources/fax/test_receive.yml +14 -194
  32. data/spec/support/vcr_cassettes/resources/phax_code/create.yml +12 -65
  33. data/spec/support/vcr_cassettes/resources/phax_code/create_png.yml +52 -0
  34. data/spec/support/vcr_cassettes/resources/phax_code/get.yml +13 -158
  35. data/spec/support/vcr_cassettes/resources/phax_code/get_id.yml +46 -0
  36. data/spec/support/vcr_cassettes/resources/phax_code/get_id_png.yml +50 -0
  37. data/spec/support/vcr_cassettes/resources/phax_code/get_png.yml +50 -0
  38. data/spec/support/vcr_cassettes/resources/phone_number/create.yml +16 -15
  39. data/spec/support/vcr_cassettes/resources/phone_number/get.yml +14 -13
  40. data/spec/support/vcr_cassettes/resources/phone_number/list.yml +24 -16
  41. data/spec/support/vcr_cassettes/resources/phone_number/release.yml +13 -12
  42. data/spec/support/vcr_cassettes/resources/public/area_codes/list.yml +23 -21
  43. data/spec/support/vcr_cassettes/resources/public/country/list.yml +15 -14
  44. metadata +26 -8
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  RSpec.describe Fax do
4
4
  let(:test_file) { File.open test_file_path }
5
5
  let(:test_file_path) { File.expand_path(File.join('..', '..', 'support', 'files', 'test.pdf'), __FILE__) }
6
- let(:test_recipient_number) { ENV.fetch 'TEST_RECIPIENT_NUMBER' }
6
+ let(:test_recipient_number) { ENV.fetch('TEST_RECIPIENT_NUMBER', '+15558675309') }
7
7
 
8
8
  describe 'creating a fax' do
9
9
  let(:action) { Fax.create params }
@@ -29,7 +29,11 @@ RSpec.describe Fax do
29
29
 
30
30
  describe 'retrieving a fax' do
31
31
  let(:action) { Fax.get fax_id, params }
32
- let(:fax_id) { 1234 }
32
+ let!(:fax_id) {
33
+ VCR.use_cassette('resources/fax/create_for_get') do
34
+ Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
35
+ end
36
+ }
33
37
  let(:params) { {} }
34
38
 
35
39
  around(:each) do |example|
@@ -50,17 +54,14 @@ RSpec.describe Fax do
50
54
  end
51
55
  end
52
56
 
53
- # TODO: Refactor this
54
- # This one's a little tricky, since it relies on having a fax to cancel.
55
57
  describe 'cancelling a fax' do
56
- let(:action) { Fax.cancel @fax_id, params }
58
+ let(:action) { Fax.cancel fax_id, params }
57
59
  let(:params) { {} }
58
-
59
- before do
60
- VCR.use_cassette('resources/fax/create') do
61
- @fax_id = Fax.create(to: test_recipient_number, file: test_file).id
60
+ let!(:fax_id) {
61
+ VCR.use_cassette('resources/fax/create_for_cancel') do
62
+ Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
62
63
  end
63
- end
64
+ }
64
65
 
65
66
  around(:each) do |example|
66
67
  VCR.use_cassette('resources/fax/cancel') do
@@ -69,14 +70,14 @@ RSpec.describe Fax do
69
70
  end
70
71
 
71
72
  it 'makes the request to Phaxio' do
72
- expect_api_request :post, "faxes/#{@fax_id}/cancel", params
73
+ expect_api_request :post, "faxes/#{fax_id}/cancel", params
73
74
  action
74
75
  end
75
76
 
76
77
  it 'returns a reference to the fax' do
77
78
  result = action
78
79
  expect(result).to be_a(Fax::Reference)
79
- expect(result.id).to eq(@fax_id)
80
+ expect(result.id).to eq(fax_id)
80
81
  end
81
82
  end
82
83
 
@@ -104,7 +105,11 @@ RSpec.describe Fax do
104
105
 
105
106
  describe 'resending a fax' do
106
107
  let(:action) { Fax.resend fax_id, params }
107
- let(:fax_id) { 1234 }
108
+ let!(:fax_id) {
109
+ VCR.use_cassette('resources/fax/create_for_resend') do
110
+ Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
111
+ end
112
+ }
108
113
  let(:params) { {} }
109
114
 
110
115
  around do |example|
@@ -127,7 +132,11 @@ RSpec.describe Fax do
127
132
 
128
133
  describe 'deleting a fax' do
129
134
  let(:action) { Fax.delete fax_id, params }
130
- let(:fax_id) { 1234 }
135
+ let!(:fax_id) {
136
+ VCR.use_cassette('resources/fax/create_for_delete') do
137
+ Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
138
+ end
139
+ }
131
140
  let(:params) { {} }
132
141
 
133
142
  around do |example|
@@ -149,7 +158,11 @@ RSpec.describe Fax do
149
158
 
150
159
  describe 'deleting a fax file' do
151
160
  let(:action) { Fax.delete_file fax_id, params }
152
- let(:fax_id) { 1234 }
161
+ let!(:fax_id) {
162
+ VCR.use_cassette('resources/fax/create_for_delete_file') do
163
+ Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
164
+ end
165
+ }
153
166
  let(:params) { {} }
154
167
 
155
168
  around do |example|
@@ -171,7 +184,11 @@ RSpec.describe Fax do
171
184
 
172
185
  describe 'downloading a fax file' do
173
186
  let(:action) { Fax.file fax_id, params }
174
- let(:fax_id) { 1234 }
187
+ let!(:fax_id) {
188
+ VCR.use_cassette('resources/fax/create_for_download_file') do
189
+ Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
190
+ end
191
+ }
175
192
  let(:params) { {} }
176
193
 
177
194
  around do |example|
@@ -213,14 +230,18 @@ RSpec.describe Fax do
213
230
  end
214
231
 
215
232
  describe Fax::Reference do
216
- let(:fax_id) { 1234 }
233
+ let!(:fax_id) {
234
+ VCR.use_cassette('resources/fax/create_for_reference') do
235
+ Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
236
+ end
237
+ }
217
238
 
218
239
  it 'gets the full fax' do
219
- VCR.use_cassette('resources/fax/get') do
240
+ VCR.use_cassette('resources/fax/reference') do
220
241
  reference = Fax::Reference.new fax_id
221
242
  result = reference.get
222
243
  expect(result).to be_a(Fax)
223
- expect(result.id).to eq(1234)
244
+ expect(result.id).to eq(fax_id)
224
245
  end
225
246
  end
226
247
  end
@@ -5,25 +5,33 @@ RSpec.describe PhaxCode do
5
5
  let(:action) { PhaxCode.create params }
6
6
  let(:params) { {metadata: 'This is a test PhaxCode'} }
7
7
 
8
- around do |example|
9
- VCR.use_cassette('resources/phax_code/create') do
10
- example.run
8
+ context 'default type' do
9
+ around do |example|
10
+ VCR.use_cassette('resources/phax_code/create') do
11
+ example.run
12
+ end
11
13
  end
12
- end
13
14
 
14
- it 'makes the request to phaxio' do
15
- expect_api_request :post, 'phax_codes', params
16
- action
17
- end
15
+ it 'makes the request to phaxio' do
16
+ expect_api_request :post, 'phax_codes', params
17
+ action
18
+ end
18
19
 
19
- it 'returns a PhaxCode instance by default' do
20
- result = action
21
- expect(result).to be_a(PhaxCode)
20
+ it 'returns a PhaxCode instance by default' do
21
+ result = action
22
+ expect(result).to be_a(PhaxCode)
23
+ end
22
24
  end
23
25
 
24
26
  context 'type is specified to be png' do
25
27
  let(:params) { {metadata: 'This is a test PhaxCode', type: 'png'} }
26
28
 
29
+ around do |example|
30
+ VCR.use_cassette('resources/phax_code/create_png') do
31
+ example.run
32
+ end
33
+ end
34
+
27
35
  it 'returns a png if type is specified to be png' do
28
36
  result = action
29
37
  expect(result).to be_a(File)
@@ -35,27 +43,35 @@ RSpec.describe PhaxCode do
35
43
  let(:action) { PhaxCode.get params }
36
44
  let(:params) { {} }
37
45
 
38
- around do |example|
39
- VCR.use_cassette('resources/phax_code/get') do
40
- example.run
46
+ context 'default' do
47
+ around do |example|
48
+ VCR.use_cassette('resources/phax_code/get') do
49
+ example.run
50
+ end
41
51
  end
42
- end
43
52
 
44
- it 'makes the request to Phaxio' do
45
- expect_api_request :get, 'phax_code', params
46
- action
47
- end
53
+ it 'makes the request to Phaxio' do
54
+ expect_api_request :get, 'phax_code', params
55
+ action
56
+ end
48
57
 
49
- context 'getting the default phax code with no type specified' do
50
- it 'returns a PhaxCode instance' do
51
- result = action
52
- expect(result).to be_a(PhaxCode)
58
+ context 'getting the default phax code with no type specified' do
59
+ it 'returns a PhaxCode instance' do
60
+ result = action
61
+ expect(result).to be_a(PhaxCode)
62
+ end
53
63
  end
54
64
  end
55
65
 
56
66
  context 'getting the default phax code with png type specified' do
57
67
  let(:params) { {type: 'png'} }
58
68
 
69
+ around do |example|
70
+ VCR.use_cassette('resources/phax_code/get_png') do
71
+ example.run
72
+ end
73
+ end
74
+
59
75
  it 'returns a file' do
60
76
  result = action
61
77
  expect(result).to be_a(File)
@@ -65,6 +81,12 @@ RSpec.describe PhaxCode do
65
81
  context 'getting a particular phax code with no type specified' do
66
82
  let(:params) { {identifier: '-Y3jxX'} }
67
83
 
84
+ around do |example|
85
+ VCR.use_cassette('resources/phax_code/get_id') do
86
+ example.run
87
+ end
88
+ end
89
+
68
90
  it 'returns a PhaxCode instance' do
69
91
  result = action
70
92
  expect(result).to be_a(PhaxCode)
@@ -74,10 +96,16 @@ RSpec.describe PhaxCode do
74
96
  context 'getting a particular phax code with png type specified' do
75
97
  let(:params) { {identifier: '-Y3jxX', type: 'png'} }
76
98
 
99
+ around do |example|
100
+ VCR.use_cassette('resources/phax_code/get_id_png') do
101
+ example.run
102
+ end
103
+ end
104
+
77
105
  it 'returns a file' do
78
106
  result = action
79
107
  expect(result).to be_a(File)
80
108
  end
81
109
  end
82
110
  end
83
- end
111
+ end
data/spec/support/vcr.rb CHANGED
@@ -1,5 +1,3 @@
1
- ENV['TEST_RECIPIENT_NUMBER'] ||= '+15558675309'
2
-
3
1
  VCR.configure do |config|
4
2
  config.cassette_library_dir = File.expand_path File.join('..', 'vcr_cassettes'), __FILE__
5
3
  config.hook_into :faraday
@@ -7,3 +5,4 @@ VCR.configure do |config|
7
5
  config.filter_sensitive_data('<API_SECRET>') { Phaxio.api_secret }
8
6
  config.filter_sensitive_data('+15558675309') { ENV['TEST_RECIPIENT_NUMBER'] }
9
7
  end
8
+
@@ -2,43 +2,44 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://api.phaxio.com/v2/account/status?api_key=<API_KEY>&api_secret=<API_SECRET>
5
+ uri: https://api.phaxio.com/v2.1/account/status
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
+ Authorization:
11
+ - Basic dGVzdC1hcGkta2V5OnRlc3QtYXBpLXNlY3JldA==
10
12
  User-Agent:
11
- - Faraday v0.13.1
13
+ - Faraday v1.3.0
12
14
  response:
13
15
  status:
14
16
  code: 200
15
- message:
17
+ message: OK
16
18
  headers:
17
19
  cache-control:
18
20
  - max-age=0, private, must-revalidate
19
21
  content-type:
20
22
  - application/json; charset=utf-8
21
23
  date:
22
- - Tue, 31 Oct 2017 03:07:02 GMT
24
+ - Wed, 24 Feb 2021 19:38:10 GMT
23
25
  etag:
24
- - W/"97e961f35ce919cc15be5de8e77175d7"
26
+ - W/"fdf78451cea62a6da8f7a06bb945480d"
25
27
  server:
26
28
  - nginx
27
29
  strict-transport-security:
28
30
  - max-age=15768000; preload
29
31
  x-request-id:
30
- - 87f6ebc0-8f82-4e7e-87c9-5d53d2e505cb
32
+ - a07420ca-8a4f-4a40-aeab-076a41813577
31
33
  x-robots-tag:
32
34
  - noindex, nofollow, nosnippet, noarchive
33
35
  x-runtime:
34
- - '0.036786'
36
+ - '0.022529'
35
37
  content-length:
36
- - '172'
38
+ - '171'
37
39
  connection:
38
- - Close
40
+ - keep-alive
39
41
  body:
40
42
  encoding: UTF-8
41
- string: '{"success":true,"message":"Account status retrieved successfully","data":{"balance":810,"faxes_today":{"sent":5,"received":5},"faxes_this_month":{"sent":13,"received":18}}}'
42
- http_version:
43
- recorded_at: Tue, 31 Oct 2017 03:07:02 GMT
44
- recorded_with: VCR 3.0.3
43
+ string: '{"success":true,"message":"Account status retrieved successfully","data":{"balance":8325,"faxes_today":{"sent":6,"received":8},"faxes_this_month":{"sent":6,"received":8}}}'
44
+ recorded_at: Wed, 24 Feb 2021 19:37:23 GMT
45
+ recorded_with: VCR 6.0.0
@@ -2,45 +2,46 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://api.phaxio.com/v2/faxes/55405187/cancel
5
+ uri: https://api.phaxio.com/v2.1/faxes/253964483/cancel
6
6
  body:
7
7
  encoding: UTF-8
8
- string: api_key=<API_KEY>&api_secret=<API_SECRET>
8
+ string: ''
9
9
  headers:
10
+ Authorization:
11
+ - Basic dGVzdC1hcGkta2V5OnRlc3QtYXBpLXNlY3JldA==
10
12
  User-Agent:
11
- - Faraday v0.13.1
13
+ - Faraday v1.3.0
12
14
  Content-Type:
13
15
  - application/x-www-form-urlencoded
14
16
  response:
15
17
  status:
16
18
  code: 200
17
- message:
19
+ message: OK
18
20
  headers:
19
21
  cache-control:
20
22
  - max-age=0, private, must-revalidate
21
23
  content-type:
22
24
  - application/json; charset=utf-8
23
25
  date:
24
- - Fri, 27 Oct 2017 19:41:31 GMT
26
+ - Wed, 24 Feb 2021 18:54:53 GMT
25
27
  etag:
26
- - W/"5f351f3a724adbfc0b22effe1c96a1ad"
28
+ - W/"99aa7cac517e112e0896adae6efb2a4f"
27
29
  server:
28
30
  - nginx
29
31
  strict-transport-security:
30
32
  - max-age=15768000; preload
31
33
  x-request-id:
32
- - 806f7432-f21b-459d-90fd-2a4c823e654a
34
+ - df874d52-449c-460b-8918-8acf889266e6
33
35
  x-robots-tag:
34
36
  - noindex, nofollow, nosnippet, noarchive
35
37
  x-runtime:
36
- - '0.026048'
37
- content-length:
38
- - '92'
38
+ - '0.021847'
39
+ transfer-encoding:
40
+ - chunked
39
41
  connection:
40
- - Close
42
+ - keep-alive
41
43
  body:
42
44
  encoding: UTF-8
43
- string: '{"success":true,"message":"Fax cancellation scheduled successfully.","data":{"id":55405187}}'
44
- http_version:
45
- recorded_at: Fri, 27 Oct 2017 19:41:31 GMT
46
- recorded_with: VCR 3.0.3
45
+ string: '{"success":true,"message":"Fax cancellation scheduled successfully.","data":{"id":253964483}}'
46
+ recorded_at: Wed, 24 Feb 2021 18:54:06 GMT
47
+ recorded_with: VCR 6.0.0
@@ -2,229 +2,49 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://api.phaxio.com/v2/faxes
5
+ uri: https://api.phaxio.com/v2.1/faxes
6
6
  body:
7
7
  encoding: ASCII-8BIT
8
8
  string: !binary |-
9
- LS0tLS0tLS0tLS0tLVJ1YnlNdWx0aXBhcnRQb3N0LTY5OTA3MTQxZjMyZTI4
10
- MjUxM2RkN2VhNWY5MmFhOWVlDQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3Jt
11
- LWRhdGE7IG5hbWU9InRvIg0KDQorMTU1NTg2NzUzMDkNCi0tLS0tLS0tLS0t
12
- LS1SdWJ5TXVsdGlwYXJ0UG9zdC02OTkwNzE0MWYzMmUyODI1MTNkZDdlYTVm
13
- OTJhYTllZQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1l
14
- PSJmaWxlIjsgZmlsZW5hbWU9InRlc3QucGRmIg0KQ29udGVudC1MZW5ndGg6
15
- IDc0NzINCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGRmOyBjaGFyc2V0
16
- PWJpbmFyeQ0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmluYXJ5DQoN
17
- CiVQREYtMS40CiXDpMO8w7bDnwoyIDAgb2JqCjw8L0xlbmd0aCAzIDAgUi9G
18
- aWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJw9i7sKAjEQRfv5ilsLbmZi
19
- HrsQUoirYBcMWIidup2ysfD3TVRkijvnPrgTvGgG13Oi4QeNcqXjAvefyygT
20
- rTNZ1/Xw2tRBvkBtBbWeb6fAEnVgzasmJi6FA9s/6QYuShPfvL793+DDQzzn
21
- PY2ZEiXMUOPuYDE9oXIx2DyQ6A08gCPGCmVuZHN0cmVhbQplbmRvYmoKCjMg
22
- MCBvYmoKMTMyCmVuZG9iagoKNCAwIG9iago8PC9UeXBlL1hPYmplY3QKL1N1
23
- YnR5cGUvRm9ybQovQkJveFsgLTc5IDM5NSA2OTIgMzk1LjEgXQovR3JvdXA8
24
- PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSyB0cnVlPj4KL0xlbmd0
25
- aCAyNQovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nCtUMFAwBOKi
26
- dC6nEC7XEK5ALgApxgQECmVuZHN0cmVhbQplbmRvYmoKCjUgMCBvYmoKPDwv
27
- Q0EgMC41CiAgIC9jYSAwLjUKPj4KZW5kb2JqCgo3IDAgb2JqCjw8L0xlbmd0
28
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- hemMP+LDeEtqVYfQEVc5HbCkUiOpRkqsFuaXSHULkQim2r93iQFlIU0rslZ/
46
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- U0ZgYpnJyrSbMgZlsqzMK8nohatUOo0Y4/nt52N0fR4bns5EhmmPgxERwQ8R
64
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- sFggFqwUyAqY8fwz+Zfzr+TL8g0jTCHkk/x8PRtRsQZmHIqhda0OPx73qIe4
73
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
85
- X/NW7K/L1DGPGZ4xMHuN+42PGDNGmdxj8Fg9bPP2nu2PbX9mu4xZ3vhX77b8
86
- wmB5aX5B0OrVGoJWa0kAGvgG0kCnVVtuCfY2jDdcbGCdgTK1uqzEKbeFLLsr
87
- fZVMZaVFqw3Jd6t96j9Xs7yaqNVyI7TifhrVrtFBu1bc1ETcHrd2bdT+kPbH
88
- ax63HTvCPgp0j2xOv6res62ceOr21O92KbJYGLcZcKMQ3DUGfbmC+X7V4Ikx
89
- 98EDewudu8yH2kfjNt/9B+/32VwDKb/vi81u2/YRT9+QzR9+IOy3EWVrortG
90
- rdHKf/pkWXXfUF2bY0d5ZfNIhzfmE0oK3pjZVhryufbVlPM13gdovwQ3rrEP
91
- sa+DDfbAc17L4Upi2mbfxhQZW4xMMa/WBHcUO4uZgmJSqCNERtjljVXvjnxd
92
- kLBEWaba06loXGwk443E20iQ2NWpr6LAmVVFwaqqXj3RV1butIfKymCPp0+l
93
- MSpC+YadIaB7CP9wC+ma3AiTm+Ap5LYjULiJtO/izqJnh53iRG9kc/dUFbG5
94
- lpG1EgSMyZ4s9S2kJK+INegRxgbytnc25Dy6vl6i8QTH9/pGG0vL93QNjdee
95
- LrI02moPWXc2tp36lyf33ddYdsY3Uce+Xrp3ovvmCc45pqkWSm3dU80tB1uq
96
- jEoi+7LNX1e23XD0jSLDermMKXGFWkRzKT2PsM+csieAg/u9TUyjUheUKchF
97
- E1kxkVZTr4lRFXWyIX1Ez+j1ecBqWZ5llaysIJTvzS8K5uepNQZdHxjpOdLq
98
- edO+VkfPEI/UMXWjo8ldtaN2+c7Kep1Q30qwYw2CTm+kMzMUseRAZPzRx+Ot
99
- P/jBvlprl1mza1+7PjnFfNlZ9c47gzePt7WrFG0qvUaV/T0P4doGcD+YcXXT
100
- Xucf6MlXS4i65FQJYzRVmpj8Uq60pvT5UpmyMmhWq80OcJCWRccFxw0H66C7
101
- u2N/kI7ebTZX0EqCJ43ECCGrVcGHOK2iT2eUVhFXDw/BUXoEPoSb/M067Hfp
102
- 5KcLhw2MDd3C0NqzK7eH7vUdhOARaLDgChKZoTU5Wt7e3rJ9W9uBsPPo12KO
103
- Ny93P3moaf25xr56jjyrswfJD4u7npq6R65UKRo1JmOh9/e+dezjD6vH/nSh
104
- n5x33/doT8+j97mzvxVPb7xPjsE7eP5VeTk4ByoCKq3qhorNDUqV5gV5CeQO
105
- 7iSWar3rICLHSngnt93Bl5Twju2cky95gHNYSkosDo4yqATp3RrRfdD510/M
106
- jGuaPwJz9r3OldM7v3Tr1cTG+/jUQ992KHEtshf65VnW/XD/lhG56w2IirkG
107
- Ptn7YKUv/5gmsLM7YJC6s6chiLwexxAD0tsRB+kh/85EmE+YT9ivsD+THZKd
108
- y0VUQUMuJ4ObzU3fDcnUiiZ8sqPSMnLfVt7IVg0ELSM5msEnwPkczYIJHs7R
109
- MrR5NkfLoQi+nqMVoAExR+fBI3A5RytBT5pydD4UkXtztBprOLj1htJFNuMX
110
- whz5ixxdBC2MHrMTGX1nucL052gCPFucoxkoYutyNAt7WG+OlqHNQo6WQxl7
111
- LkcroJy9lKPz4BfsWzlaCdWy7+TofCiTXcvRamiUK3N0ATwg34xfCD+Wn8/R
112
- RfCY4pGOufljycTUdJqvnqjh62prG/j+eIwPRtMOvmt2wsW3HTnCSwYpPhlP
113
- xZML8ZiL7+lq9/e3DXb1HuATKT7Kp5PRWHwmmjzMz03e6d+TOBRPRtOJuVl+
114
- IJ5MTPbHp44eiSbbUhPx2Vg8yTv5uy3u5u+LJ1OU2eWqbXDtvqW92/g3FILV
115
- TyVS6XgShYlZfsg14OJD0XR8Ns1HZ2P84JZj7+RkYiIuCSfiyXQUjefS01jq
116
- g0eTiVQsMUGzpVxbM+iYS87P5UpKxxfi/L3RdDqempudTqfn97rdDz/8sCua
117
- M55AW9fE3Iz71+nSx+bjsXgqMTWLM3dNp2eO9GBBsyks/KiUEau5HbXA3Cwu
118
- zpGsjYNPxeM8DZ/C+JPxGJY2n5x7MD6Rds0lp9wPJw4n3Nl4idkp960wNEou
119
- z+/mDR0wh3vwGCQhAVMwDWng8Ql4AmpwrINa/GtAqh/iEMMxCFG0cCDVBbNo
120
- 5UKKvik9guOtCCmJi+MYx3FB8qWWPejVDn6M1gaDSPfCAZQmJPsoftNoHUXb
121
- OMzgmITDKJuDyV+bvwf9D0l5qCaB9rOoHZAkCfSlnlNwFCukEdsw1wRKZqUs
122
- SbR0SnX9+hi/SX+fRKW2NLuwLoqbC3Z/pu9vivy7IZLFfkqKkpZiZy0TUuwh
123
- tBiQrEKSJ8UiLWWblawGPyNjL2acRH+K3C3LCSl2Gvls5Dmkp3OoPoiIJ6UK
124
- YpLf5txSmPlX14D2YBK7cO4ulGh1C1LOeyV5WuopqpuWuHnYi786bvzdoH8u
125
- tLkz8kQurkuiZtDyt/VL4w6Zl3CMS+s8hbbZNXdJMWewv3pyCM1KfU8ROnrb
126
- HLPYfF6vBaQxu3OO3BGHriwdqe9m9alc/ZNSnixq83ifQ9zjEtouSTolzTGB
127
- a5hA6vb66IpN5WR3V7NZy53z+b/MzeaedCwQg8+4lvIj3yZ5+IvdKt0vE5l3
128
- mKzeJFduEv4mOf4pCX1KFj88+yHz8xs15os3Lt9geq+PX794na29TjTXiRLW
129
- tGuhtcja/NqFNYVKc40UwAdE9/5qo/k9z9WhH3veHYKrpDl0dfGqeJWlT6oj
130
- V5XqwFXCDr3LGs3aFX6ldmV+ZXHlrZXVlRsrysVvn/028/evuc2a18yvMeZX
131
- el85/gobeYloXjK/xIReiLzAnD1PNOfN593n2T9+3mV+vrPc/Ny5KvPquRvn
132
- GBq+/lyhLjD+R+T4s2eeZeafWnzq7FPs4omzJ5iLC5cXmFSoxjw3azfPdtrM
133
- nKd0KM/DDinYDekfZN8ha3UgMu41j6PRwZFa80hnjbnEUzwkx2JlaKhhzWwr
134
- 28vOsWfYy2yesj9Ubu7D72roRojR9Jp73b3S/17RbgsG2j+/f3E/2xWoMQc7
135
- G82aTnOnu/NK53ud1zsV453kRfwELgYuB1hvoMYd8AbKLYGyoGnI6DEMaT2a
136
- IYbAEPHAkFuzoWE0mnHNcQ2rgVZgFo1ETpbJ2aXBAbu9ezlvo79bVIYOiuSk
137
- aB2gd2/fiKg4KcLQyMHwEiFfGj5x+jS07+gW6wbCYmTHcLcYQ8JLiUUktDuW
138
- jNA+nEql7fQidjuSR/EO9qMoGktlhWDfVIM9RVIpSKWIneokEiWQslMxlVAf
139
- gp5jKaA3qrVLVpRKpUrH/ge210j+CmVuZHN0cmVhbQplbmRvYmoKCjggMCBv
140
- YmoKNDk2NwplbmRvYmoKCjkgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRv
141
- ci9Gb250TmFtZS9CQUFBQUErTGliZXJhdGlvblNlcmlmCi9GbGFncyA0Ci9G
142
- b250QkJveFstMTc2IC0zMDMgMTAwNSA5ODFdL0l0YWxpY0FuZ2xlIDAKL0Fz
143
- Y2VudCA4OTEKL0Rlc2NlbnQgLTIxNgovQ2FwSGVpZ2h0IDk4MQovU3RlbVYg
144
- ODAKL0ZvbnRGaWxlMiA3IDAgUgo+PgplbmRvYmoKCjEwIDAgb2JqCjw8L0xl
145
- bmd0aCAyNjUvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicXZDLbsQg
146
- DEX3fAXL6WIEyTwjRZGqaUfKog817QcQcFKkBhAhi/x9wUxbqQvQMb7X2GaX
147
- 9qE1OrBXb2UHgQ7aKA+zXbwE2sOoDSlKqrQMtwhvOQlHWPR26xxgas1g65qw
148
- t5ibg1/p5l7ZHu4Ie/EKvDYj3Xxcuhh3i3NfMIEJlJOmoQqGWOdJuGcxAUPX
149
- tlUxrcO6jZY/wfvqgJYYF7kVaRXMTkjwwoxAas4bWl+vDQGj/uWq7OgH+Sl8
150
- VBZRyflh30QukY/nxLvMVeI98mmX+IBc8sTHrCkSn7IG65zz+yFxlfWP2Mvt
151
- 19RVWtvPtFQu3sdJcbc4YhpOG/hdv7MuufB8A53Cf/0KZW5kc3RyZWFtCmVu
152
- ZG9iagoKMTEgMCBvYmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUv
153
- QmFzZUZvbnQvQkFBQUFBK0xpYmVyYXRpb25TZXJpZgovRmlyc3RDaGFyIDAK
154
- L0xhc3RDaGFyIDkKL1dpZHRoc1szNjUgNjEwIDUwMCAyNzcgMzg5IDI1MCA0
155
- NDMgMjc3IDQ0MyAyNTAgXQovRm9udERlc2NyaXB0b3IgOSAwIFIKL1RvVW5p
156
- Y29kZSAxMCAwIFIKPj4KZW5kb2JqCgoxMiAwIG9iago8PC9GMSAxMSAwIFIK
157
- Pj4KZW5kb2JqCgoxMyAwIG9iago8PC9Gb250IDEyIDAgUgovWE9iamVjdDw8
158
- L1RyNCA0IDAgUj4+Ci9FeHRHU3RhdGU8PC9FR1M1IDUgMCBSPj4KL1Byb2NT
159
- ZXRbL1BERi9UZXh0L0ltYWdlQy9JbWFnZUkvSW1hZ2VCXQo+PgplbmRvYmoK
160
- CjEgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCA2IDAgUi9SZXNvdXJjZXMg
161
- MTMgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNw
162
- YXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAyIDAgUj4+
163
- CmVuZG9iagoKNiAwIG9iago8PC9UeXBlL1BhZ2VzCi9SZXNvdXJjZXMgMTMg
164
- MCBSCi9NZWRpYUJveFsgMCAwIDYxMiA3OTIgXQovS2lkc1sgMSAwIFIgXQov
165
- Q291bnQgMT4+CmVuZG9iagoKMTQgMCBvYmoKPDwvVHlwZS9DYXRhbG9nL1Bh
166
- Z2VzIDYgMCBSCi9PcGVuQWN0aW9uWzEgMCBSIC9YWVogbnVsbCBudWxsIDBd
167
- Ci9MYW5nKGVuLVVTKQo+PgplbmRvYmoKCjE1IDAgb2JqCjw8L0NyZWF0b3I8
168
- RkVGRjAwNTcwMDcyMDA2OTAwNzQwMDY1MDA3Mj4KL1Byb2R1Y2VyPEZFRkYw
169
- MDRDMDA2OTAwNjIwMDcyMDA2NTAwNEYwMDY2MDA2NjAwNjkwMDYzMDA2NTAw
170
- MjAwMDM0MDAyRTAwMzQ+Ci9DcmVhdGlvbkRhdGUoRDoyMDE1MTAwNzE3MjM1
171
- Ni0wNCcwMCcpPj4KZW5kb2JqCgp4cmVmCjAgMTYKMDAwMDAwMDAwMCA2NTUz
172
- NSBmIAowMDAwMDA2NDM1IDAwMDAwIG4gCjAwMDAwMDAwMTkgMDAwMDAgbiAK
173
- MDAwMDAwMDIyMiAwMDAwMCBuIAowMDAwMDAwMjQyIDAwMDAwIG4gCjAwMDAw
174
- MDA0MzggMDAwMDAgbiAKMDAwMDAwNjU3OCAwMDAwMCBuIAowMDAwMDAwNDc4
175
- IDAwMDAwIG4gCjAwMDAwMDU1MjkgMDAwMDAgbiAKMDAwMDAwNTU1MCAwMDAw
176
- MCBuIAowMDAwMDA1NzQ1IDAwMDAwIG4gCjAwMDAwMDYwODAgMDAwMDAgbiAK
177
- MDAwMDAwNjI3NyAwMDAwMCBuIAowMDAwMDA2MzEwIDAwMDAwIG4gCjAwMDAw
178
- MDY2NzcgMDAwMDAgbiAKMDAwMDAwNjc3NCAwMDAwMCBuIAp0cmFpbGVyCjw8
179
- L1NpemUgMTYvUm9vdCAxNCAwIFIKL0luZm8gMTUgMCBSCi9JRCBbIDw4RTM2
180
- MTE0MzlDMTgyQTE5NzJFRUY5NjBFMjg3N0MzMz4KPDhFMzYxMTQzOUMxODJB
181
- MTk3MkVFRjk2MEUyODc3QzMzPiBdCi9Eb2NDaGVja3N1bSAvNkI5OEY3RjY3
182
- MEUwMzBBNEFGNEM0QUYxM0U3NEU1NDMKPj4Kc3RhcnR4cmVmCjY5NDkKJSVF
183
- T0YKDQotLS0tLS0tLS0tLS0tUnVieU11bHRpcGFydFBvc3QtNjk5MDcxNDFm
184
- MzJlMjgyNTEzZGQ3ZWE1ZjkyYWE5ZWUNCkNvbnRlbnQtRGlzcG9zaXRpb246
185
- IGZvcm0tZGF0YTsgbmFtZT0iYXBpX2tleSINCg0KPEFQSV9LRVk+DQotLS0t
186
- LS0tLS0tLS0tUnVieU11bHRpcGFydFBvc3QtNjk5MDcxNDFmMzJlMjgyNTEz
187
- ZGQ3ZWE1ZjkyYWE5ZWUNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0
188
- YTsgbmFtZT0iYXBpX3NlY3JldCINCg0KPEFQSV9TRUNSRVQ+DQotLS0tLS0t
189
- LS0tLS0tUnVieU11bHRpcGFydFBvc3QtNjk5MDcxNDFmMzJlMjgyNTEzZGQ3
190
- ZWE1ZjkyYWE5ZWUtLQ0KDQo=
9
+ LS0tLS0tLS0tLS0tLVJ1YnlNdWx0aXBhcnRQb3N0LWIyMDE3YmMwNjJmMDA2OTdjM2EzZTJjNjM1ODI0ODhjDQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9InRvIg0KDQorMTU1NTEyMzEyMzQNCi0tLS0tLS0tLS0tLS1SdWJ5TXVsdGlwYXJ0UG9zdC1iMjAxN2JjMDYyZjAwNjk3YzNhM2UyYzYzNTgyNDg4Yw0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmaWxlIjsgZmlsZW5hbWU9InRlc3QucGRmIg0KQ29udGVudC1MZW5ndGg6IDc0NzINCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGRmDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiaW5hcnkNCg0KJVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nD2LuwoCMRBF+/mKWwtuZmIeuxBSiKtgFwxYiJ26nbKx8PdNVGSKO+c+uBO8aAbXc6LhB41ypeMC95/LKBOtM1nX9fDa1EG+QG0FtZ5vp8ASdWDNqyYmLoUD2z/pBi5KE9+8vv3f4MNDPOc9jZkSJcxQ4+5gMT2hcjHYPJDoDTyAI8YKZW5kc3RyZWFtCmVuZG9iagoKMyAwIG9iagoxMzIKZW5kb2JqCgo0IDAgb2JqCjw8L1R5cGUvWE9iamVjdAovU3VidHlwZS9Gb3JtCi9CQm94WyAtNzkgMzk1IDY5MiAzOTUuMSBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9LIHRydWU+PgovTGVuZ3RoIDI1Ci9GaWx0ZXIvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicK1QwUDAE4qJ0LqcQLtcQrkAuACnGBAQKZW5kc3RyZWFtCmVuZG9iagoKNSAwIG9iago8PC9DQSAwLjUKICAgL2NhIDAuNQo+PgplbmRvYmoKCjcgMCBvYmoKPDwvTGVuZ3RoIDggMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGgxIDgxMzY+PgpzdHJlYW0KeJzlWHtQW9eZ/869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uRVpFcxOSPDCjEBqzhtaX68NAaP+5ars6Af5KXxUFlHJ+WHfRC6Rj+fEu8xV4j3yaZf4gFzyxMesKRKfsgbrnPP7IXGV9Y/Yy+3X1FVa28+0VC7ex0lxtzhiGk4b+F2/sy658HwDncJ//QplbmRzdHJlYW0KZW5kb2JqCgoxMSAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9CYXNlRm9udC9CQUFBQUErTGliZXJhdGlvblNlcmlmCi9GaXJzdENoYXIgMAovTGFzdENoYXIgOQovV2lkdGhzWzM2NSA2MTAgNTAwIDI3NyAzODkgMjUwIDQ0MyAyNzcgNDQzIDI1MCBdCi9Gb250RGVzY3JpcHRvciA5IDAgUgovVG9Vbmljb2RlIDEwIDAgUgo+PgplbmRvYmoKCjEyIDAgb2JqCjw8L0YxIDExIDAgUgo+PgplbmRvYmoKCjEzIDAgb2JqCjw8L0ZvbnQgMTIgMCBSCi9YT2JqZWN0PDwvVHI0IDQgMCBSPj4KL0V4dEdTdGF0ZTw8L0VHUzUgNSAwIFI+PgovUHJvY1NldFsvUERGL1RleHQvSW1hZ2VDL0ltYWdlSS9JbWFnZUJdCj4+CmVuZG9iagoKMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDYgMCBSL1Jlc291cmNlcyAxMyAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDIgMCBSPj4KZW5kb2JqCgo2IDAgb2JqCjw8L1R5cGUvUGFnZXMKL1Jlc291cmNlcyAxMyAwIFIKL01lZGlhQm94WyAwIDAgNjEyIDc5MiBdCi9LaWRzWyAxIDAgUiBdCi9Db3VudCAxPj4KZW5kb2JqCgoxNCAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgNiAwIFIKL09wZW5BY3Rpb25bMSAwIFIgL1hZWiBudWxsIG51bGwgMF0KL0xhbmcoZW4tVVMpCj4+CmVuZG9iagoKMTUgMCBvYmoKPDwvQ3JlYXRvcjxGRUZGMDA1NzAwNzIwMDY5MDA3NDAwNjUwMDcyPgovUHJvZHVjZXI8RkVGRjAwNEMwMDY5MDA2MjAwNzIwMDY1MDA0RjAwNjYwMDY2MDA2OTAwNjMwMDY1MDAyMDAwMzQwMDJFMDAzND4KL0NyZWF0aW9uRGF0ZShEOjIwMTUxMDA3MTcyMzU2LTA0JzAwJyk+PgplbmRvYmoKCnhyZWYKMCAxNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDY0MzUgMDAwMDAgbiAKMDAwMDAwMDAxOSAwMDAwMCBuIAowMDAwMDAwMjIyIDAwMDAwIG4gCjAwMDAwMDAyNDIgMDAwMDAgbiAKMDAwMDAwMDQzOCAwMDAwMCBuIAowMDAwMDA2NTc4IDAwMDAwIG4gCjAwMDAwMDA0NzggMDAwMDAgbiAKMDAwMDAwNTUyOSAwMDAwMCBuIAowMDAwMDA1NTUwIDAwMDAwIG4gCjAwMDAwMDU3NDUgMDAwMDAgbiAKMDAwMDAwNjA4MCAwMDAwMCBuIAowMDAwMDA2Mjc3IDAwMDAwIG4gCjAwMDAwMDYzMTAgMDAwMDAgbiAKMDAwMDAwNjY3NyAwMDAwMCBuIAowMDAwMDA2Nzc0IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAxNi9Sb290IDE0IDAgUgovSW5mbyAxNSAwIFIKL0lEIFsgPDhFMzYxMTQzOUMxODJBMTk3MkVFRjk2MEUyODc3QzMzPgo8OEUzNjExNDM5QzE4MkExOTcyRUVGOTYwRTI4NzdDMzM+IF0KL0RvY0NoZWNrc3VtIC82Qjk4RjdGNjcwRTAzMEE0QUY0QzRBRjEzRTc0RTU0Mwo+PgpzdGFydHhyZWYKNjk0OQolJUVPRgoNCi0tLS0tLS0tLS0tLS1SdWJ5TXVsdGlwYXJ0UG9zdC1iMjAxN2JjMDYyZjAwNjk3YzNhM2UyYzYzNTgyNDg4Yy0tDQo=
191
10
  headers:
11
+ Authorization:
12
+ - Basic dGVzdC1hcGkta2V5OnRlc3QtYXBpLXNlY3JldA==
192
13
  User-Agent:
193
- - Faraday v0.13.1
14
+ - Faraday v1.3.0
194
15
  Content-Type:
195
- - multipart/form-data; boundary=-----------RubyMultipartPost-69907141f32e282513dd7ea5f92aa9ee
16
+ - multipart/form-data; boundary=-----------RubyMultipartPost-b2017bc062f00697c3a3e2c63582488c
196
17
  Content-Length:
197
- - '8221'
18
+ - '7886'
198
19
  response:
199
20
  status:
200
21
  code: 200
201
- message:
22
+ message: OK
202
23
  headers:
203
24
  cache-control:
204
25
  - max-age=0, private, must-revalidate
205
26
  content-type:
206
27
  - application/json; charset=utf-8
207
28
  date:
208
- - Fri, 27 Oct 2017 19:41:11 GMT
29
+ - Wed, 24 Feb 2021 18:51:00 GMT
209
30
  etag:
210
- - W/"ac443c2e0e631b7b9c8fdbe6f31f2b29"
31
+ - W/"8ea59df01634dfc7aaeeed33ae41c4dc"
211
32
  server:
212
33
  - nginx
213
34
  strict-transport-security:
214
35
  - max-age=15768000; preload
215
36
  x-request-id:
216
- - fd4c00f8-da14-4fc2-91e7-27cf4a90a00a
37
+ - 8db7cf5b-ba77-4d8e-b180-f2df6400f1d2
217
38
  x-robots-tag:
218
39
  - noindex, nofollow, nosnippet, noarchive
219
40
  x-runtime:
220
- - '0.123611'
41
+ - '0.090697'
221
42
  content-length:
222
- - '74'
43
+ - '75'
223
44
  connection:
224
- - Close
45
+ - keep-alive
225
46
  body:
226
47
  encoding: UTF-8
227
- string: '{"success":true,"message":"Fax queued for sending","data":{"id":55405187}}'
228
- http_version:
229
- recorded_at: Fri, 27 Oct 2017 19:41:11 GMT
230
- recorded_with: VCR 3.0.3
48
+ string: '{"success":true,"message":"Fax queued for sending","data":{"id":253962795}}'
49
+ recorded_at: Wed, 24 Feb 2021 18:50:13 GMT
50
+ recorded_with: VCR 6.0.0