yam 0.0.6 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/.travis.yml +5 -0
- data/.yardopts +10 -0
- data/AUTHORS +1 -0
- data/CHANGELOG.md +7 -0
- data/CONTRIBUTING.md +0 -7
- data/Gemfile +27 -1
- data/README.md +190 -67
- data/Rakefile +9 -3
- data/certs/public.pem +20 -0
- data/lib/yammer.rb +47 -0
- data/lib/yammer/api.rb +29 -0
- data/lib/yammer/api/autocomplete.rb +39 -0
- data/lib/yammer/api/group.rb +92 -0
- data/lib/yammer/api/group_membership.rb +46 -0
- data/lib/yammer/api/invitation.rb +39 -0
- data/lib/yammer/api/like.rb +57 -0
- data/lib/yammer/api/message.rb +227 -0
- data/lib/yammer/api/network.rb +35 -0
- data/lib/yammer/api/notification.rb +32 -0
- data/lib/yammer/api/open_graph_object.rb +92 -0
- data/lib/yammer/api/pending_attachment.rb +64 -0
- data/lib/yammer/api/search.rb +42 -0
- data/lib/yammer/api/subscription.rb +32 -0
- data/lib/yammer/api/thread.rb +37 -0
- data/lib/yammer/api/topic.rb +37 -0
- data/lib/yammer/api/user.rb +168 -0
- data/lib/yammer/api_handler.rb +27 -0
- data/lib/yammer/api_response.rb +57 -0
- data/lib/yammer/base.rb +208 -0
- data/lib/yammer/client.rb +100 -0
- data/lib/yammer/configurable.rb +81 -0
- data/lib/yammer/error.rb +75 -0
- data/lib/yammer/group.rb +27 -0
- data/lib/yammer/group_membership.rb +25 -0
- data/lib/yammer/http_adapter.rb +100 -0
- data/lib/yammer/identity_map.rb +56 -0
- data/lib/yammer/message.rb +32 -0
- data/lib/yammer/message_body.rb +27 -0
- data/lib/yammer/pending_attachment.rb +19 -0
- data/lib/yammer/thread.rb +58 -0
- data/lib/yammer/user.rb +66 -0
- data/lib/yammer/version.rb +32 -0
- data/{lib/yam/configuration.rb → spec/api/autocomplete_spec.rb} +18 -23
- data/spec/api/group_membership_spec.rb +48 -0
- data/spec/api/group_spec.rb +76 -0
- data/spec/api/invitation_spec.rb +60 -0
- data/spec/api/like_spec.rb +46 -0
- data/spec/api/message_spec.rb +136 -0
- data/spec/api/network_spec.rb +41 -0
- data/{lib/yam/client.rb → spec/api/notification_spec.rb} +22 -4
- data/spec/api/open_graph_object_spec.rb +67 -0
- data/spec/api/pending_attachment_spec.rb +56 -0
- data/{lib/yam/constants.rb → spec/api/search_spec.rb} +21 -8
- data/spec/api/subscription_spec.rb +41 -0
- data/{lib/yam.rb → spec/api/thread_spec.rb} +19 -12
- data/{lib/yam/request.rb → spec/api/topic_spec.rb} +19 -15
- data/spec/api/user_spec.rb +108 -0
- data/spec/api_response.rb +86 -0
- data/spec/client_spec.rb +364 -0
- data/spec/error_spec.rb +88 -0
- data/spec/fixtures/group.json +1 -0
- data/spec/fixtures/message.json +1 -0
- data/spec/fixtures/messages_in_thread.json +1 -0
- data/spec/fixtures/portal_thread.json +1 -0
- data/spec/fixtures/private_thread.json +1 -0
- data/spec/fixtures/public_thread.json +1 -0
- data/spec/fixtures/user.json +1 -0
- data/spec/fixtures/users_followed.json +1 -0
- data/spec/fixtures/users_following.json +1 -0
- data/spec/http_adapter_spec.rb +109 -0
- data/spec/identity_map_spec.rb +127 -0
- data/spec/mocks/attachment.txt +1 -0
- data/spec/model/base_spec.rb +196 -0
- data/spec/model/group_membership_spec.rb +57 -0
- data/spec/model/group_spec.rb +73 -0
- data/spec/model/message_spec.rb +74 -0
- data/spec/model/thread_spec.rb +91 -0
- data/spec/model/user_spec.rb +222 -0
- data/spec/spec_helper.rb +39 -14
- data/yam.gemspec +50 -28
- metadata +270 -187
- metadata.gz.sig +0 -0
- data/lib/yam/api.rb +0 -53
- data/lib/yam/connection.rb +0 -57
- data/lib/yam/version.rb +0 -20
- data/spec/yam/client_spec.rb +0 -50
- data/spec/yam_spec.rb +0 -87
data.tar.gz.sig
ADDED
Binary file
|
data/.travis.yml
CHANGED
data/.yardopts
ADDED
data/AUTHORS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* Kevin Mutyaba <kmutyaba@microsoft.com>
|
data/CHANGELOG.md
ADDED
data/CONTRIBUTING.md
CHANGED
@@ -81,10 +81,3 @@ Syntax
|
|
81
81
|
* Follow the conventions you see used in the source already.
|
82
82
|
|
83
83
|
And in case we didn't emphasize it enough: we love tests!
|
84
|
-
|
85
|
-
|
86
|
-
Development process
|
87
|
-
-------------------
|
88
|
-
|
89
|
-
For details and screenshots of the feature branch code review process,
|
90
|
-
read [this blog post](http://robots.thoughtbot.com/post/2831837714/feature-branch-code-reviews).
|
data/Gemfile
CHANGED
@@ -1,4 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
# Copyright (c) Microsoft Corporation
|
4
|
+
# All rights reserved.
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
13
|
+
# ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
|
14
|
+
# IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR
|
15
|
+
# PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
|
16
|
+
#
|
17
|
+
# See the Apache Version 2.0 License for specific language governing
|
18
|
+
# permissions and limitations under the License.
|
19
|
+
|
1
20
|
source 'https://rubygems.org'
|
2
21
|
|
3
|
-
|
22
|
+
group :test do
|
23
|
+
# gem 'json', :platforms => :ruby_18
|
24
|
+
gem 'rspec', '>= 2.11'
|
25
|
+
gem 'simplecov', :require => false
|
26
|
+
gem 'coveralls', :require => false
|
27
|
+
gem 'webmock', '>= 1.10.1'
|
28
|
+
end
|
29
|
+
|
4
30
|
gemspec
|
data/README.md
CHANGED
@@ -1,14 +1,25 @@
|
|
1
1
|
Yam
|
2
|
-
|
2
|
+
=============
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/yam.png)](http://badge.fury.io/rb/yam)
|
4
|
+
[![Build Status](https://travis-ci.org/yammer/yam.png?branch=master)][travis]
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/yammer/yam/badge.png)](https://coveralls.io/r/yammer/yam)
|
3
6
|
|
4
|
-
[
|
7
|
+
[gemversion]: (http://badge.fury.io/rb/yam)
|
8
|
+
[travis]: (https://travis-ci.org/yammer/yam)
|
9
|
+
[coveralls]: (https://coveralls.io/r/yammer/yam)
|
5
10
|
|
6
|
-
|
11
|
+
A Yammer Ruby gem
|
7
12
|
|
8
|
-
|
13
|
+
## Documentation
|
9
14
|
|
10
|
-
|
11
|
-
|
15
|
+
This README provides only a basic overview of how to use this gem.For more information about the API endpoints and helper methods available, look at the rdoc documentation.
|
16
|
+
|
17
|
+
[http://rdoc.info/github/yammer/yam][documentation]
|
18
|
+
|
19
|
+
[documentation]: http://rdoc.info/github/yammer/yam/index
|
20
|
+
|
21
|
+
|
22
|
+
## Installation
|
12
23
|
|
13
24
|
Add this line to your application's Gemfile:
|
14
25
|
|
@@ -28,119 +39,231 @@ Or install it yourself as:
|
|
28
39
|
$ gem install yam
|
29
40
|
```
|
30
41
|
|
31
|
-
|
32
|
-
---------------------
|
42
|
+
## Configuration
|
33
43
|
|
34
|
-
The Yammer API requires
|
44
|
+
The Yammer API requires authentication for access to certain endpoints. Below are the basic steps to get this done.
|
35
45
|
|
36
|
-
|
46
|
+
### Register your application
|
37
47
|
|
38
|
-
|
48
|
+
Setup a Yammer client application as described in [Build your first Yammer App](https://developer.yammer.com/introduction/)
|
39
49
|
|
40
|
-
|
50
|
+
### Obtaining an access token
|
41
51
|
|
42
|
-
|
52
|
+
1. Construct the following URL using the client_id you received `https://www.yammer.com/dialog/oauth?client_id=[:client_id]`
|
43
53
|
|
44
|
-
|
54
|
+
2. Have your users follow the URL you constructed above to allow your application to access their data
|
45
55
|
|
46
|
-
|
47
|
-
<https://www.yammer.com/oauth2/access_token.json?client_id=[:client_id]&client_secret=[:client_secret]&code=[:code]>
|
56
|
+
3. After allowing access, your users will be redirected to your callback URL `http://[:redirect_uri]?code=[:code]`
|
48
57
|
|
49
|
-
|
58
|
+
4. Exchange the code for an access token by making an HTTP GET request to `https://www.yammer.com/oauth2/access_token.json?client_id=[:client_id]&client_secret=[:client_secret]&code=[:code]`
|
50
59
|
|
51
|
-
|
60
|
+
5. The authorization server will respond with an access token
|
52
61
|
|
53
62
|
```
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
authorized_at
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
63
|
+
"access_token": {
|
64
|
+
"view_subscriptions": true,
|
65
|
+
"expires_at": null,
|
66
|
+
authorized_at": "2011/04/06 16:25:46 +0000",
|
67
|
+
"modify_subscriptions": true,
|
68
|
+
"modify_messages": true,
|
69
|
+
"network_permalink": "yammer-inc.com",
|
70
|
+
"view_members": true,
|
71
|
+
"view_tags": true,
|
72
|
+
"network_id": 155465488,
|
73
|
+
"user_id": 1014216,
|
74
|
+
"view_groups": true,
|
75
|
+
"token": "abcdefghijklmn",
|
76
|
+
"network_name": "Yammer",
|
77
|
+
"view_messages": true,
|
78
|
+
"created_at": "2011/04/06 16:25:46 +0000"
|
70
79
|
}
|
71
80
|
```
|
72
81
|
|
73
|
-
|
82
|
+
### Configuring yammer-client
|
83
|
+
|
84
|
+
To view the current state of the client use the `options` method
|
74
85
|
|
75
86
|
```ruby
|
76
|
-
|
77
|
-
|
87
|
+
require 'yammer'
|
88
|
+
|
89
|
+
Yammer.options
|
90
|
+
#> {:site_url=>"https://www.yammer.com", :client_id=>nil, :client_secret=>nil, :access_token=>nil, :http_adapter=>Yammer::Connection, :connection_options=>{:max_redirects=>5, :use_ssl=>true}}
|
91
|
+
```
|
92
|
+
|
93
|
+
You may change this configuration by using the `configure` method
|
94
|
+
|
95
|
+
```ruby
|
96
|
+
Yammer.configure do |c|
|
97
|
+
c.client_id = '[client_id]'
|
98
|
+
c.client_secret = '[client_secret]'
|
99
|
+
c.token = '[access_token]'
|
78
100
|
end
|
101
|
+
#> Yammer
|
102
|
+
```
|
103
|
+
|
104
|
+
At this point, your new settings will take effect
|
105
|
+
|
106
|
+
```ruby
|
107
|
+
Yammer.options
|
108
|
+
#> {:site_url=>"https://www.yammer.com", :client_id=>'[client_id]', :client_secret=>'[client_secret]', :access_token=>'[access_token]', :http_adapter=>Yammer::Connection, :connection_options=>{ :max_redirects=>5, :use_ssl=>true }}
|
109
|
+
```
|
110
|
+
|
111
|
+
## Usage
|
112
|
+
|
113
|
+
`yammer-client` provides two ways to access Yammer's API. One of these ways is by using HTTP helper methods on and instance of `Yammer::Client`. The other
|
114
|
+
way is using methods on the object models that come bundled with this gem.
|
115
|
+
|
116
|
+
### Using the client
|
117
|
+
|
118
|
+
1. Create an instance of the Yammer client
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
yamr = Yammer::Client.new(
|
122
|
+
:client_id => 'vAbMcg9qjgKsp4jjpm1pw',
|
123
|
+
:client_secret => 'Wn0kp7Lu0TCY4GtZWkmSsqGErg10DmMADyjWkf2U',
|
124
|
+
:access_token => 'HqsKG3ka9Uls2DxahNi78A'
|
125
|
+
)
|
79
126
|
```
|
80
127
|
|
81
|
-
|
82
|
-
-------------------
|
128
|
+
2. Call methods on the instance:
|
83
129
|
|
84
|
-
|
130
|
+
**User**
|
85
131
|
|
86
|
-
|
132
|
+
*find a user by email*
|
87
133
|
|
88
134
|
```ruby
|
89
|
-
|
90
|
-
|
91
|
-
|
135
|
+
yamr.get_user_by_email('user@example.com')
|
136
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
137
|
+
```
|
138
|
+
|
139
|
+
*find a user by user id*
|
140
|
+
|
141
|
+
```ruby
|
142
|
+
yamr.get_user('1588')
|
143
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
144
|
+
```
|
145
|
+
|
146
|
+
*get the current user*
|
147
|
+
|
148
|
+
```ruby
|
149
|
+
yamr.current_user
|
150
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
92
151
|
```
|
93
152
|
|
94
|
-
Set up Yammer OAuth 2.0
|
95
|
-
-----------------------
|
96
153
|
|
97
|
-
|
154
|
+
**Message**
|
98
155
|
|
99
|
-
|
100
|
-
--------------
|
156
|
+
*post a update as the current user*
|
101
157
|
|
102
|
-
|
103
|
-
|
158
|
+
```ruby
|
159
|
+
yamr.create_message('status update')
|
160
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
161
|
+
```
|
162
|
+
|
163
|
+
*send a private message to another Yammer user*
|
164
|
+
|
165
|
+
```ruby
|
166
|
+
yamr.create_message('private message', :direct_to_id => 24)
|
167
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
168
|
+
```
|
169
|
+
|
170
|
+
*send a message with an Open Graph Object as an attachment*
|
171
|
+
|
172
|
+
```ruby
|
173
|
+
yamr.create_message('here is my open graph object', :og_url => "https://www.yammer.com/example/graph/31415926")
|
174
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
175
|
+
```
|
176
|
+
|
177
|
+
|
178
|
+
**Search**
|
179
|
+
|
180
|
+
*search for a term within the context of current user*
|
181
|
+
|
182
|
+
```ruby
|
183
|
+
yamr.search(:search => 'thekev', :model_types => 'users;groups')
|
184
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
185
|
+
```
|
104
186
|
|
105
|
-
|
187
|
+
**Thread**
|
106
188
|
|
107
|
-
|
189
|
+
*fetch a thread with a given id*
|
108
190
|
|
109
191
|
```ruby
|
110
|
-
|
192
|
+
yamr.get_thread(42)
|
193
|
+
#<Yammer::ApiResponse:0x007fb949434ec8 @headers=#<Net::HTTPOK 200 OK readbody=true>, @body="[JSON Response]", @code=200>
|
111
194
|
```
|
112
195
|
|
113
|
-
|
196
|
+
|
197
|
+
### Using the object models (Experimental)
|
198
|
+
|
199
|
+
The object model is an abstraction that makes it easy to manipulate the JSON data return when accessing Yammer's API. Each model has accessor methods for all keys contained in the JSON response for a given model type.
|
200
|
+
|
201
|
+
|
202
|
+
**User**
|
203
|
+
|
204
|
+
*get the current user*
|
205
|
+
|
114
206
|
|
115
207
|
```ruby
|
116
|
-
|
208
|
+
u = Yammer::User.current
|
209
|
+
#> <Yammer::User:0x007f9f4b0c39c8>
|
210
|
+
|
211
|
+
u.full_name
|
212
|
+
#> 'Kevin Mutyaba'
|
213
|
+
|
214
|
+
u.update!(:job_title => 'k0dR')
|
117
215
|
```
|
118
216
|
|
119
|
-
|
217
|
+
|
218
|
+
**Thread**
|
219
|
+
|
220
|
+
*fetch a thread with a given id*
|
120
221
|
|
121
222
|
```ruby
|
122
|
-
|
223
|
+
t = Yammer::Thread.get(3)
|
123
224
|
```
|
124
225
|
|
125
|
-
|
226
|
+
View the participants in the thread
|
126
227
|
|
127
228
|
```ruby
|
128
|
-
|
229
|
+
parts = t.participants
|
230
|
+
#> [{:type=>"user", :id=>18}, {:type=>"user", :id=>64}]
|
129
231
|
```
|
130
232
|
|
131
|
-
|
233
|
+
View the participants in the thread as user object models
|
132
234
|
|
133
235
|
```ruby
|
134
|
-
|
236
|
+
peepl = t.people
|
237
|
+
#> [#<Yammer::User:0x007f9f4c086630 @modified_attributes={}, @attrs={}, @new_record=false, @id=18>, #<Yammer::User:0x007f9f4c086568 @modified_attributes={}, @attrs={}, @new_record=false, @id=64>]
|
135
238
|
```
|
136
239
|
|
137
|
-
|
240
|
+
Object models are lazyly loaded. Calling an accessor on a model will hydrate it
|
138
241
|
|
139
242
|
```ruby
|
140
|
-
|
243
|
+
peepl[0]
|
244
|
+
#> #<Yammer::User:0x007f9f4c086568 @modified_attributes={}, @attrs={}, @new_record=false, @id=18>
|
245
|
+
|
246
|
+
peepl[0].permalink
|
247
|
+
#> 'thekev'
|
248
|
+
|
249
|
+
peepl[0]
|
250
|
+
#=> #<Yammer::User:0x007f9f4c086568 @modified_attributes={}, @attrs={:last_name=>"Mutyaba", :network_id=>1, :first_name=>"Kevin", :id => 18, :permalink=>"thekev" }, @network_id=1, @first_name="Kev", @full_name="Tiaba", @permalink="thekev", @id=18 >
|
141
251
|
```
|
142
252
|
|
143
|
-
|
144
|
-
|
253
|
+
## Supported Ruby Versions
|
254
|
+
This library aims to support and is [tested against][travis] the following Ruby
|
255
|
+
version:
|
256
|
+
|
257
|
+
* Ruby 1.8.7
|
258
|
+
* Ruby 1.9.2
|
259
|
+
* Ruby 1.9.3
|
260
|
+
* Ruby 2.0.0
|
261
|
+
|
262
|
+
This library may inadvertently work (or seem to work) on other Ruby
|
263
|
+
implementations, however support will only be provided for the versions listed
|
264
|
+
above.
|
145
265
|
|
146
|
-
|
266
|
+
## Copyright
|
267
|
+
Copyright (c) 2013 Microsoft Corporation
|
268
|
+
See [LICENSE][license] for details.
|
269
|
+
[license]: https://github.com/tiabas/yammer-client/blob/master/LICENSE.md
|
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
1
3
|
# Copyright (c) Microsoft Corporation
|
2
4
|
# All rights reserved.
|
3
5
|
#
|
@@ -14,10 +16,14 @@
|
|
14
16
|
#
|
15
17
|
# See the Apache Version 2.0 License for specific language governing
|
16
18
|
# permissions and limitations under the License.
|
17
|
-
|
18
|
-
require '
|
19
|
+
|
20
|
+
require 'rake'
|
19
21
|
require 'rspec/core/rake_task'
|
20
22
|
|
21
|
-
RSpec::Core::RakeTask.new(:spec)
|
23
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
24
|
+
t.verbose = true
|
25
|
+
end
|
22
26
|
|
27
|
+
desc "Run spec"
|
23
28
|
task :default => :spec
|
29
|
+
task :test => :spec
|
data/certs/public.pem
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDMjCCAhqgAwIBAgIBADANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAh0aWFi
|
3
|
+
YXNuazEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
4
|
+
MB4XDTEzMDQyOTA0MTkwMFoXDTE0MDQyOTA0MTkwMFowPzERMA8GA1UEAwwIdGlh
|
5
|
+
YmFzbmsxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
6
|
+
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMWly4vv32/qfYWuiRJq
|
7
|
+
/x9CDRpdQ2JFwRiiKA6hjWjkpvYwgssfAVNJcwYSyVWkvRF8wp3UjpWqq+W3zGwR
|
8
|
+
XHtKysmt8CZl7Y+JdcltSuaRuZljwN37RPnFg7gGHUfhS4klm6s8csvawLzi50eH
|
9
|
+
6M/7AeKmYS7sRFQoVR0tfHxq+e5uqo47Qus+aLNFU/bgYJeAhZlYHeU0ANZIp3ig
|
10
|
+
HRfYE3zz3CA+LffxQ0UXwiySLgUUsdX1Gtv/7AjoLu6v3GS0lbN9o357b0n7fXym
|
11
|
+
A5iMUeygRZryvLab9kz1YuwgOgx6OpyQD8JfO9PZeBKYd9XFlZwp44W7Z1akxcu+
|
12
|
+
+E8CAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUt6oHkpfViE/jN5InJLzl
|
13
|
+
DUxUNR8wCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IBAQBunWeru+ZC1uVt
|
14
|
+
BZj6230whZIvdvGnvcWW6JGG6JZJljYwOHHnaG+u74qE16Voh3n7rT77obp/Wrmx
|
15
|
+
HUhp4nK+j1AHpdiZman0RxMZzS2fczev9gTyAs/cmaqgVb3YXXniwvZy4P7y07iT
|
16
|
+
MIbAh4p4NK72MJrOsepD3qhOgE23o8dyFB3+RTB0U7yv3ZW1sMNDxkliqCBqcrBF
|
17
|
+
bSEMaRUpbbsivejLXgRsxP5cXYy0Wd9GNSOtQ5932HDEoo0F9nXIMZGQSLqEXz3l
|
18
|
+
B+kZ9/4dAvmKkr2NPSoxBQtO7Rz0HDNLtjMxkXbQUWMDsGnB6Kk1WUBb/w3kQ9Ah
|
19
|
+
JgIHF4cG
|
20
|
+
-----END CERTIFICATE-----
|