1
|
<!DOCTYPE html>
|
2
|
<html lang="en-gb">
|
3
|
<head>
|
4
|
<meta charset="utf-8">
|
5
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
8
|
<meta name="description" content="OpenAIRE API documentation - Authentication, registered services, up to 5 services, basic authentication, advanced authentication"/>
|
9
|
<link href="assets/common-assets/logo-small-graph.png">
|
10
|
<link rel="apple-touch-icon" sizes="57x57" href="assets/common-assets/logo/apple-icon-57x57.png">
|
11
|
<link rel="apple-touch-icon" sizes="60x60" href="assets/common-assets/logo/apple-icon-60x60.png">
|
12
|
<link rel="apple-touch-icon" sizes="72x72" href="assets/common-assets/logo/apple-icon-72x72.png">
|
13
|
<link rel="apple-touch-icon" sizes="76x76" href="assets/common-assets/logo/apple-icon-76x76.png">
|
14
|
<link rel="apple-touch-icon" sizes="114x114" href="assets/common-assets/logo/apple-icon-114x114.png">
|
15
|
<link rel="apple-touch-icon" sizes="120x120" href="assets/common-assets/logo/apple-icon-120x120.png">
|
16
|
<link rel="apple-touch-icon" sizes="144x144" href="assets/common-assets/logo/apple-icon-144x144.png">
|
17
|
<link rel="apple-touch-icon" sizes="152x152" href="assets/common-assets/logo/apple-icon-152x152.png">
|
18
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/common-assets/logo/apple-icon-180x180.png">
|
19
|
<link rel="icon" type="image/png" sizes="192x192" href="assets/common-assets/logo/android-icon-192x192.png">
|
20
|
<link rel="icon" type="image/png" sizes="32x32" href="assets/common-assets/logo/favicon-32x32.png">
|
21
|
<link rel="icon" type="image/png" sizes="96x96" href="assets/common-assets/logo/favicon-96x96.png">
|
22
|
<link rel="icon" type="image/png" sizes="16x16" href="assets/common-assets/logo/favicon-16x16.png">
|
23
|
<link href="assets/common-assets/logo/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"/>
|
24
|
<title>OpenAIRE API documentation - Authentication Registered Services</title>
|
25
|
<script src="./assets/common-assets/jquery/jquery.js"></script>
|
26
|
<script src="./assets/uikit.js"></script>
|
27
|
<script src="./assets/uikit-icon-max.js"></script>
|
28
|
<script>
|
29
|
$(function(){
|
30
|
$("#headerMobile").load("headerMobile.html");
|
31
|
$("#header").load("header.html");
|
32
|
});
|
33
|
</script>
|
34
|
<!-- Matomo -->
|
35
|
<script type="text/javascript">
|
36
|
var _paq = window._paq || [];
|
37
|
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
38
|
_paq.push(['trackPageView']);
|
39
|
_paq.push(['enableLinkTracking']);
|
40
|
(function() {
|
41
|
var u="//analytics.openaire.eu/";
|
42
|
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
43
|
_paq.push(['setSiteId', '470']);
|
44
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
45
|
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
46
|
})();
|
47
|
</script>
|
48
|
<link rel="stylesheet" type="text/css" href="./assets/common-assets/common/theme.css">
|
49
|
<link rel="stylesheet" type="text/css" href="./assets/common-assets/common/custom.css">
|
50
|
<link rel="stylesheet" type="text/css" href="./assets/common-assets/library.css">
|
51
|
<link rel="stylesheet" type="text/css" href="./assets/develop-custom.css">
|
52
|
</head>
|
53
|
<body class="graphApp">
|
54
|
<div class="uk-offcanvas-content uk-height-viewport">
|
55
|
|
56
|
<!-- Header menu STARTS here-->
|
57
|
<div id="headerMobile" class="tm-header-mobile uk-hidden@m"></div>
|
58
|
<div id="header" class="tm-header uk-visible@m tm-header-transparent" uk-header=""></div>
|
59
|
<!-- Header menu ENDS here-->
|
60
|
|
61
|
<div class=" first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
62
|
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid=""></div>
|
63
|
</div>
|
64
|
|
65
|
<!-- Page content STARTS here -->
|
66
|
<div class=" uk-section tm-middle custom-main-content" id="tm-main">
|
67
|
<div class="uk-margin-large-left uk-margin-medium-bottom">
|
68
|
<ul class="uk-breadcrumb">
|
69
|
<li>
|
70
|
<a href="/">Home</a>
|
71
|
</li>
|
72
|
<li>
|
73
|
<a href="overview.html">API & Resources</a>
|
74
|
</li>
|
75
|
<li>
|
76
|
<a href="authentication.html">Authentication</a>
|
77
|
</li>
|
78
|
<li>
|
79
|
<span>Registered Services</span>
|
80
|
</li>
|
81
|
</ul>
|
82
|
</div>
|
83
|
<div class="uk-container">
|
84
|
<div class="uk-grid">
|
85
|
<div class="uk-width-1-3@s uk-width-1-4@m uk-width-1-4@l uk-visible@m" >
|
86
|
<ul class="uk-nav-default uk-nav-parent-icon" uk-nav="multiple: false" uk-sticky="offset: 115; media:@s" >
|
87
|
<li class="uk-parent uk-open">
|
88
|
<a href="#">Authentication</a>
|
89
|
<ul class="uk-nav-sub">
|
90
|
<li><a href="./authentication.html">General Information</a></li>
|
91
|
<li><a href="./personalToken.html">Personal Token</a></li>
|
92
|
<li class="uk-active"><b><a href="./registeredService.html">Registered Services</a></b></li>
|
93
|
<ul class="uk-nav-sub">
|
94
|
<li><a href="./basic.html">Basic</a></li>
|
95
|
<li><a href="./advanced.html">Advanced</a></li>
|
96
|
</ul>
|
97
|
</ul>
|
98
|
</li>
|
99
|
</ul>
|
100
|
</div>
|
101
|
|
102
|
|
103
|
<div class="tm-main uk-width-expand uk-row-first uk-first-column">
|
104
|
<h2 class="uk-text-center" id="service">Service registration</h2>
|
105
|
<p>If you have a service (client) that you want to interact with the OpenAIRE APIs you need to register it. </p>
|
106
|
<div class="uk-alert-primary" uk-alert>
|
107
|
You can register up to 5 services.
|
108
|
</div>
|
109
|
|
110
|
We offer two ways of authenticting your service: the Basic Authentication and the Advanced Authentication.
|
111
|
|
112
|
<h4>Which one is for me?</h4>
|
113
|
|
114
|
<table class="uk-table uk-table-divider uk-table-striped">
|
115
|
<thead>
|
116
|
<tr>
|
117
|
<th></th>
|
118
|
<th>How</th>
|
119
|
<th>Client Credential Issuer</th>
|
120
|
<th>Authentication Method</th>
|
121
|
</tr>
|
122
|
</thead>
|
123
|
<tbody>
|
124
|
<tr>
|
125
|
<td><b>Basic</b></td>
|
126
|
<td>Client ID & Client Secret</td>
|
127
|
<td>OpenAIRE AAI server</td>
|
128
|
<td>Client Secret (Basic)</td>
|
129
|
</tr>
|
130
|
<tr>
|
131
|
<td><b>Advanced</b></td>
|
132
|
<td>Private Key signed JWT</td>
|
133
|
<td>Service owner</td>
|
134
|
<td>Private Key JWT Client Authentication</td>
|
135
|
</tr>
|
136
|
</tbody>
|
137
|
</table>
|
138
|
|
139
|
<p>For the <b>Basic Authentication</b> method the OpenAIRE AAI server generates a pair of <em>Client ID</em> and <em>Client Secret</em>
|
140
|
credentials for your service upon its registration. The service sends the client id and client secret when authenticating to the
|
141
|
OpenAIRE AAI Server to obtain the access token for the OpenAIRE APIs. The OpenAIRE AAI server checks whether the client id and client
|
142
|
secret sent is valid.
|
143
|
<br>
|
144
|
<a class="uk-button uk-button-default uk-margin-small-top portal-button" href="./basic.html">Continue reading for the Basic Authentication</a>
|
145
|
</p>
|
146
|
|
147
|
<p class="uk-margin-medium-top">For the <b>Advanced Authentication</b> method your service does not send a client secret but it uses a <em>self signed
|
148
|
client assertion</em> to authenticate to the OpenAIRE AAI server in order to obtain the access token for the OpenAIRE APIs.
|
149
|
The client assertion is a JWT that must be signed with RSASSA using SHA-256 hash algorithm. The OpenAIRE AAI server validates
|
150
|
the client assertion using the public key that you have provided upon the service registration.
|
151
|
<br>
|
152
|
<a class="uk-button uk-button-default uk-margin-small-top portal-button" href="./advanced.html">Continue reading for the Advanced Authentication</a>
|
153
|
</p>
|
154
|
|
155
|
<div class="uk-alert-primary uk-margin-medium-top" uk-alert>
|
156
|
The Advanced Authentication method allows the OpenAIRE AAI server to verify that the client authentication request at the token endpoint
|
157
|
was signed by your service and not altered in any way. This is more computation intensive compared to the Basic Authentication but it
|
158
|
ensures non-repudiation. On the other hand, the Basic Authentication is more lightweight and easy to deploy but it does not provide
|
159
|
signature verification, and there is always a possibility of the Client ID/secret credentials being stolen. Note that tThe Advanced
|
160
|
authentication method gives a higher level of security to the process as long as it is used correctly, i.e. when the signed JWT has a
|
161
|
short duration. When the duration of the JWT is long, the process is no different from the basic one.
|
162
|
</div>
|
163
|
|
164
|
</div> <DO NOT REMOVE>
|
165
|
</div>
|
166
|
</div>
|
167
|
</div>
|
168
|
<!-- Page content STARTS here -->
|
169
|
|
170
|
<!-- Footer STARTS here -->
|
171
|
<bottom class="footer">
|
172
|
<div class="footer-light-background uk-padding-remove-bottom uk-section uk-section-small">
|
173
|
<div class="uk-container uk-container-small">
|
174
|
<div>
|
175
|
<div id="footer#3" class="uk-first-column uk-flex uk-flex-middle uk-grid uk-margin-remove-right">
|
176
|
<div class="uk-text-center uk-width-1-1 uk-width-1-4@m">
|
177
|
<img width="126px" height="30px" alt="OpenAIRE" loading="lazy" class="el-image" src="assets/common-assets/common/Logo_Horizontal_dark_small.png">
|
178
|
</div>
|
179
|
<div id="footer#5" class="uk-margin uk-text-left uk-width-expand">
|
180
|
<div class="uk-flex uk-flex-middle">
|
181
|
<div>
|
182
|
<img alt="flag black white low" width="50px" height="33px" loading="lazy" style="margin-right: 8px; float: left;" src="assets/common-assets/common/commission.jpg">
|
183
|
</div>
|
184
|
<div class="uk-margin-left">
|
185
|
<div>
|
186
|
<span style="font-size: 8pt; line-height: 0.7!important;">OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452</span>
|
187
|
</div>
|
188
|
</div>
|
189
|
</div>
|
190
|
</div>
|
191
|
</div>
|
192
|
<div>
|
193
|
<div class="uk-width-expand@m">
|
194
|
<div id="footer#7" class="uk-text-right@m uk-text-center">
|
195
|
<ul uk-margin="" class="uk-flex-center uk-margin-remove-bottom uk-subnav uk-subnav-divider"></ul>
|
196
|
</div>
|
197
|
</div>
|
198
|
</div>
|
199
|
<div class="uk-margin uk-text-center uk-width-1-1">
|
200
|
<div uk-grid="" class="uk-child-width-auto uk-flex-center uk-grid uk-grid-small">
|
201
|
<div class="uk-first-column">
|
202
|
<a href="https://www.facebook.com/groups/openaire/" target="_blank" class="el-link uk-icon-button uk-icon">
|
203
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
204
|
<path d="M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z"></path>
|
205
|
</svg>
|
206
|
</a>
|
207
|
</div>
|
208
|
<div>
|
209
|
<a href="https://www.twitter.com/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
|
210
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
211
|
<path d="M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74"></path>
|
212
|
</svg>
|
213
|
</a>
|
214
|
</div>
|
215
|
<div>
|
216
|
<a href="https://www.linkedin.com/groups/3893548/" target="_blank" class="el-link uk-icon-button uk-icon">
|
217
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
218
|
<path d="M5.77,17.89 L5.77,7.17 L2.21,7.17 L2.21,17.89 L5.77,17.89 L5.77,17.89 Z M3.99,5.71 C5.23,5.71 6.01,4.89 6.01,3.86 C5.99,2.8 5.24,2 4.02,2 C2.8,2 2,2.8 2,3.85 C2,4.88 2.77,5.7 3.97,5.7 L3.99,5.7 L3.99,5.71 L3.99,5.71 Z"></path>
|
219
|
<path d="M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z"></path>
|
220
|
</svg>
|
221
|
</a>
|
222
|
</div>
|
223
|
<div>
|
224
|
<a href="https://www.slideshare.net/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
|
225
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
226
|
<line fill="none" stroke="#000" stroke-width="1.1" x1="13.4" y1="14" x2="6.3" y2="10.7"></line>
|
227
|
<line fill="none" stroke="#000" stroke-width="1.1" x1="13.5" y1="5.5" x2="6.5" y2="8.8"></line>
|
228
|
<circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="4.6" r="2.3"></circle>
|
229
|
<circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="14.8" r="2.3"></circle>
|
230
|
<circle fill="none" stroke="#000" stroke-width="1.1" cx="4.5" cy="9.8" r="2.3"></circle>
|
231
|
</svg>
|
232
|
</a>
|
233
|
</div>
|
234
|
<div>
|
235
|
<a href="https://www.youtube.com/channel/UChFYqizc-S6asNjQSoWuwjw" target="_blank" class="el-link uk-icon-button uk-icon">
|
236
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
237
|
<path d="M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z"></path>
|
238
|
</svg>
|
239
|
</a>
|
240
|
</div>
|
241
|
<div>
|
242
|
<a target="_blank" href="https://www.openaire.eu/newsletter" class="el-link newsletter">
|
243
|
<span class="el-title uk-margin uk-text-large"> Newsletter
|
244
|
<span class="el-image uk-icon">
|
245
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
246
|
<circle cx="3.12" cy="16.8" r="1.85"></circle>
|
247
|
<path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,8.2 C1.78,8.18 2.06,8.16 2.35,8.16 C7.57,8.16 11.81,12.37 11.81,17.57 C11.81,17.89 11.79,18.19 11.76,18.5"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,2.52 C1.78,2.51 2.06,2.5 2.35,2.5 C10.72,2.5 17.5,9.24 17.5,17.57 C17.5,17.89 17.49,18.19 17.47,18.5"></path>
|
248
|
</svg>
|
249
|
</span>
|
250
|
</span>
|
251
|
</a>
|
252
|
</div>
|
253
|
</div>
|
254
|
</div>
|
255
|
</div>
|
256
|
</div>
|
257
|
</div>
|
258
|
<div class="footer-light-background uk-section uk-section-xsmall">
|
259
|
<div class="uk-container uk-container-expand">
|
260
|
<div uk-grid="" class="uk-grid-margin uk-grid">
|
261
|
<div class="uk-width-small@m uk-first-column"></div>
|
262
|
<div class="uk-width-expand@m">
|
263
|
<div id="footer#22" class="uk-text-small uk-margin uk-margin-remove-bottom uk-text-center@m uk-text-center">
|
264
|
<a href="http://creativecommons.org/licenses/by/4.0/" rel="license" class="license">
|
265
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
266
|
<path id="creative-commons" d="M9.7,14.675a1.311,1.311,0,0,1-1.15-.557,2.511,2.511,0,0,1-.391-1.477q0-2.032,1.541-2.034a1.36,1.36,0,0,1,.666.205,1.569,1.569,0,0,1,.605.718l1.541-.8A3.222,3.222,0,0,0,9.457,9.067a3.249,3.249,0,0,0-2.412.964,3.548,3.548,0,0,0-.957,2.61,3.562,3.562,0,0,0,.945,2.63,3.362,3.362,0,0,0,2.485.942,3.367,3.367,0,0,0,1.766-.481,3.408,3.408,0,0,0,1.254-1.326l-1.419-.718a1.44,1.44,0,0,1-1.416.987Zm6.634,0a1.312,1.312,0,0,1-1.15-.557,2.511,2.511,0,0,1-.391-1.477q0-2.032,1.541-2.034a1.389,1.389,0,0,1,.686.205,1.577,1.577,0,0,1,.608.718l1.519-.8a3.181,3.181,0,0,0-3.04-1.663,3.253,3.253,0,0,0-2.412.964,3.546,3.546,0,0,0-.955,2.61,3.576,3.576,0,0,0,.934,2.63,3.349,3.349,0,0,0,2.5.942,3.328,3.328,0,0,0,1.745-.481,3.54,3.54,0,0,0,1.274-1.326l-1.438-.718a1.441,1.441,0,0,1-1.416.987ZM21.156,4.12A11.61,11.61,0,0,0,12.624.64a11.436,11.436,0,0,0-8.44,3.48A11.738,11.738,0,0,0,.641,12.64,11.537,11.537,0,0,0,4.185,21.1a11.532,11.532,0,0,0,8.44,3.541,11.856,11.856,0,0,0,8.592-3.57,11.389,11.389,0,0,0,3.424-8.431,11.583,11.583,0,0,0-3.484-8.52Zm-1.5,15.391a9.631,9.631,0,0,1-7,2.94,9.479,9.479,0,0,1-6.938-2.911A9.422,9.422,0,0,1,2.8,12.64,9.57,9.57,0,0,1,5.747,5.68,9.3,9.3,0,0,1,12.655,2.8a9.4,9.4,0,0,1,6.94,2.88,9.411,9.411,0,0,1,2.884,6.96,9.157,9.157,0,0,1-2.823,6.87Z" transform="translate(-0.641 -0.64)"></path>
|
267
|
</svg>
|
268
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
269
|
<g id="Group_756" data-name="Group 756" transform="translate(0)">
|
270
|
<path id="Path_2324" data-name="Path 2324" d="M18.325,11.98a.775.775,0,0,0-.775-.775H12.641a.775.775,0,0,0-.775.775v4.909h1.369V22.7h3.719V16.889h1.37V11.98Z" transform="translate(-3.095 -2.951)"></path>
|
271
|
<path id="Path_2325" data-name="Path 2325" d="M17.209,7.759A1.679,1.679,0,1,1,15.53,6.08,1.679,1.679,0,0,1,17.209,7.759Z" transform="translate(-3.529 -1.83)"></path>
|
272
|
<path id="Path_2326" data-name="Path 2326" d="M12.624.64A11.439,11.439,0,0,0,4.183,4.12,11.736,11.736,0,0,0,.639,12.64,11.537,11.537,0,0,0,4.183,21.1a11.531,11.531,0,0,0,8.441,3.54,11.851,11.851,0,0,0,8.591-3.57,11.383,11.383,0,0,0,3.424-8.43,11.582,11.582,0,0,0-3.484-8.52,11.612,11.612,0,0,0-8.53-3.48Zm.03,2.159a9.4,9.4,0,0,1,6.939,2.88,9.414,9.414,0,0,1,2.883,6.96,9.156,9.156,0,0,1-2.823,6.87,9.63,9.63,0,0,1-7,2.94,9.48,9.48,0,0,1-6.939-2.91A9.425,9.425,0,0,1,2.8,12.64,9.573,9.573,0,0,1,5.746,5.68,9.3,9.3,0,0,1,12.654,2.8Z" transform="translate(-0.639 -0.64)"></path>
|
273
|
</g>
|
274
|
</svg>
|
275
|
</a> Unless otherwise indicated, all materials created by OpenAIRE are licenced under
|
276
|
<a href="http://creativecommons.org/licenses/by/4.0/" rel="license">
|
277
|
CC ATTRIBUTION 4.0 INTERNATIONAL LICENSE
|
278
|
</a>.
|
279
|
</div>
|
280
|
</div>
|
281
|
<div class="uk-width-small@m">
|
282
|
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right@m uk-text-center">
|
283
|
<a href="#" uk-scroll="" class="uk-totop uk-icon">
|
284
|
<svg width="18" height="10" viewBox="0 0 18 10" xmlns="http://www.w3.org/2000/svg" data-svg="totop">
|
285
|
<polyline fill="none" stroke="#000" stroke-width="1.2" points="1 9 9 1 17 9 "></polyline>
|
286
|
</svg>
|
287
|
</a>
|
288
|
</div>
|
289
|
</div>
|
290
|
</div>
|
291
|
</div>
|
292
|
</div>
|
293
|
</bottom>
|
294
|
<!-- Footer ENDS here -->
|
295
|
|
296
|
</div>
|
297
|
</body>
|
298
|
</html>
|