-
Notifications
You must be signed in to change notification settings - Fork 0
/
imagetransfer-imagelist.xml
483 lines (473 loc) · 25.1 KB
/
imagetransfer-imagelist.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % sharedents SYSTEM "shared-entities.xml" >
%sharedents;
]>
<chapter id="imagelist">
<title>&vmil; Format</title>
<para>This section of the document describes the format of the &vmil;.
The list image format takes attributes from 3 different applications and
builds them into a hierarchical structure.
The applications are &vmic;, &stratuslab;, and &repoman;</para>
<para>The format fields are based upon 3 main sources so these have been
placed into 3 separate name spaces. &dubcore; (dc), &stratuslab; (sl), and
&vwg; (hv). The <literal>hv</literal> name space is composed from elements
found in &repoman; and &vmic;.
</para>
<section id="imagelist-structure">
<title>Structure of message</title>
<programlisting>
hv:imagelist
dc:date:created
dc:date:expires
hv:endorser
hv:ca
hv:dn_x509
hv:email
dc:creator
dc:identifier
dc:description
dc:title
hv:images
hv:image
dc:description
dc:identifier
dc:title
hv:format
hv:hypervisor
hv:size
hv:uri
hv:version
sl:arch
sl:checksum:sha512
sl:comments
sl:os
sl:osversion
dc:source
hv:version
hv:uri
</programlisting>
</section>
<section id="imagelist-fields">
<title>&vmil; Fields</title>
<section>
<title>Required &vmil; Fields</title>
<section>
<title>hv:imagelist</title>
<para>container for metadata</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:imagelist>...
</hv:imagelist></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:imagelist" : { ... } }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/dc:date:created</title>
<para>date in format year-month-dayTHour:Minute:SecondTimezone</para>
<itemizedlist>
<listitem>
<para>XML Rendering:</para><programlisting><dc:date type="created">2011-04-07T17:09:12Z</dc:date></programlisting>
</listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "dc:date:created": "2011-03-10T17:09:12Z" }</programlisting></listitem>
</itemizedlist>
<note>Recomended to use the Zulu time zone.</note>
</section>
<section>
<title>hv:imagelist/dc:date:expires</title>
<para>date in format year-month-day when &vmil; will no longer be trusted</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><dc:date type="created">2011-05-07T17:09:12Z</dc:date></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "dc:date:expires": "2011-04-07T17:09:12Z" }</programlisting></listitem>
</itemizedlist>
<note>Recomended to use the Zulu time zone.</note>
</section>
<section>
<title>hv:imagelist/hv:endorser</title>
<para>container for endorser metadata</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:endorser>...
</hv:endorser></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:endorser": { "hv:x509": { ... } }</programlisting></listitem>
</itemizedlist>
<section>
<title>hv:imagelist/hv:endorser/hv:ca</title>
<para>standard hash id for the &ca;, corresponds with the "hv:ca" field.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:ca>/C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services</hv:ca></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:ca": "/C=DE/O=GermanGrid/CN=GridKa-CA" }</programlisting></listitem>
</itemizedlist>
<note>Message signers CA must equal this value to be valid.</note>
</section>
<section>
<title>hv:imagelist/hv:endorser/hv:dn_x509</title>
<para>&x509; DN of the endorser</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:dn_x509>/C=DE/O=GermanGrid/OU=DESY/CN=Owen Synge</hv:dn_x509></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:dn": "/C=DE/O=GermanGrid/OU=DESY/CN=Owen Synge" }</programlisting></listitem>
</itemizedlist>
<note>Message signers DN must equal this value to be valid.</note>
</section>
<section>
<title>hv:imagelist/hv:endorser/hv:email</title>
<para>email address of the endorser</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:email>[email protected]</hv:email></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:email": "[email protected]" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:endorser/dc:creator</title>
<para>Name of the endorser</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:email>Owen Synge</hv:email></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:email": "[email protected]" }</programlisting></listitem>
</itemizedlist>
</section>
</section>
<section>
<title>hv:imagelist/dc:identifier</title>
<para>&uuid; for &vmil; this allows updating the list, and uniqueness.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><dc:identifier>9ac60a74-c67f-457f-bd80-04c8ff6ecf3d</dc:identifier></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "dc:identifier": "488dcdc4-9ab1-4fc8-a7ba-b7a5428ecb3d" }</programlisting></listitem>
</itemizedlist>
<note>This &uuid; remains constant for a subscription, messages with different &uuid;'s will be ignored.</note>
</section>
<section>
<title>hv:imagelist/dc:description</title>
<para>description of the &vmil;</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><dc:description>Owens list of images from DESY quattor.</dc:description></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "dc:description": "a README example of an &vmil;" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/dc:title</title>
<para>title of &vmil;</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><dc:description>DISH service</dc:description></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>"dc:title": "README example",</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:images</title>
<para>container for images metadata</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:images>...
</hv:images></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:images": [ {...} ] }</programlisting></listitem>
</itemizedlist>
<section>
<title>hv:image</title>
<para>container for image metadata</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:image>...
</hv:image></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:image": { ... } }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/dc:title</title>
<para>Title of image</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><dc:title>generic:sl5</dc:title></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "dc:title": "README example VM" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/dc:description</title>
<para>Free text describing the image</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><dc:description>Desy generated generic sl5 image</dc:description></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "dc:description": "This is an README example VM" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/hv:format</title>
<para>Series of enumerated values.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:format>cpio.bz2</hv:format></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:format": "cpio.bz2" }</programlisting></listitem>
</itemizedlist>
<section>
<title>Enumerated values</title>
<itemizedlist>
<listitem><programlisting>QCOW2</programlisting></listitem>
<listitem><programlisting>vdi.gz</programlisting></listitem>
<listitem><programlisting>vhd.gz</programlisting></listitem>
<listitem><programlisting>tar.gz</programlisting></listitem>
<listitem><programlisting>cpio.bz2</programlisting></listitem>
<listitem><programlisting>vpc.gz</programlisting></listitem>
<listitem><programlisting>ext3.gz</programlisting></listitem>
<listitem><programlisting>raw.gz</programlisting></listitem>
</itemizedlist>
<para>This list is not exhaustive and other values may exist.</para>
</section>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/hv:size</title>
<para>size of the image in bytes</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:size>4619442176</hv:size></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:size": 2147483648 }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/sl:checksum:sha512</title>
<para>sha512 checksum of images.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><sl:checksum type="sha512">8b4c269a60da1061b434b696c4a89293bea847b66bd8ba486a914d4209df651193ee8d454f8231840b7500fab6740620c7111d9a17d08b743133dc393ba2c0d4</sl:checksum></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "sl:checksum:sha512": "8b4c269a60da1061b434b696c4a89293bea847b66bd8ba486a914d4209df651193ee8d454f8231840b7500fab6740620c7111d9a17d08b7" }</programlisting></listitem>
</itemizedlist>
<note>Images that dont match the sha512 hash will not be accepted.</note>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/sl:arch</title>
<para>architecture of the image typically 'i386' or 'x86_64'</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><sl:arch>x86_64</sl:checksum></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "sl:arch": "x86_64" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/hv:uri</title>
<para>URI pointing to the latest version of this image.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:uri>https://example.org/image.gz</hv:uri></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:uri": "http://example.org/example-image.img" }</programlisting></listitem>
</itemizedlist>
<note>Subscriber software will use this URI to download the image.</note>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/dc:identifier</title>
<para>&uuid; for image this allows updating the image, and uniqueness.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:uri>185c9f57-f838-4ac6-8246-85ccd6d6d3f4</hv:uri></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "dc:identifier": "488dcdc4-9ab1-4fc8-a7ba-b7a5428ecb3d" }</programlisting></listitem>
</itemizedlist>
<note>This &uuid; remains constant for a subscription to an image, messages with different &uuid;'s will be ignored.</note>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/sl:os</title>
<para>The operating system the image runs, examples include "Linux" "BSD" "FreeBSD"</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><sl:os>Linux</sl:os></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "sl:os": "Linux" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/sl:osversion</title>
<para>The operating system version the image runs, examples include "SL_6.0", maybe this
tag should be further broken downs so easier to process for computers.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><sl:osversion>SL_5.5</sl:osversion></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "sl:osversion": "SL 5.5" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/sl:comments</title>
<para>Stratus lab suggest comments on how the image is to be deployed.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><sl:comments></sl:comments></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "sl:comments": "Vanila install with contextulization scripts" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/hv:hypervisor</title>
<para>Typically set to reflect the Virtualization technology values such as &xen;, &kvm;.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:hypervisor></hv:hypervisor></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:hypervisor": "kvm" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/hv:version</title>
<para>The version of the image, so that updates can share the same metadata
(with exception of dc:identifier) in case of update. Typically a numeric value.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:version></hv:version></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:version": "1" }</programlisting></listitem>
</itemizedlist>
</section>
</section>
<section>
<title>hv:imagelist/dc:source</title>
<para>The URI where the latest version of this file can be found.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><dc:source type="uri">http://example.org/example.img.gz</dc:source></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:uri": "http://example.org/example.img.gz" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:version</title>
<para>The version of the &vmil;, so that updates can share the same metadata
(with exception of dc:identifier) in case of update. Typically a numeric value.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:version>4</hv:version></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:version": "1" }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:uri</title>
<para>The uri to retrive new versions of the &vmil;, that updates can be retrived.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:uri>https://example.org/imagelist.xml</hv:uri></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:uri": "http://example.org/example-image-list.image_list" }</programlisting></listitem>
</itemizedlist>
</section>
</section>
<section>
<title>Optional &vmil; Fields</title>
<section>
<title>hv:imagelist/hv:images/hv:image/hv:core_minimum</title>
<para>Minimum number of virtual cores required to run the virtual machine image expressed as an integer.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:core_minimum>2</hv:core_minimum></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:core_minimum": 2 }</programlisting></listitem>
</itemizedlist>
</section>
<section>
<title>hv:imagelist/hv:images/hv:image/hv:ram_minimum</title>
<para>Minimum number of RAM required to run the virtual machine image expressed as an integer in bytes.</para>
<itemizedlist>
<listitem><para>XML Rendering:</para><programlisting><hv:ram_minimum>2</hv:ram_minimum></programlisting></listitem>
<listitem><para>JSON Rendering:</para><programlisting>{ "hv:ram_minimum": 2 }</programlisting></listitem>
</itemizedlist>
</section>
</section>
</section>
<section id="imagelist-example">
<title>Example metadata files</title>
<para>A typical image JSON &vmil; looks like such:</para>
<programlisting>{
"hv:imagelist" : {
"dc:date:created": "2011-03-10T17:09:12Z",
"dc:date:expires": "2011-04-07T17:09:12Z",
"dc:description": "a README example of an image list",
"dc:identifier": "4e186b44-2c64-40ea-97d5-e9e5c0bce059",
"dc:source": "example.org",
"dc:title": "README example",
"hv:endorser": {
"hv:x509": {
"dc:creator": "Owen Synge",
"hv:ca": "/C=DE/O=GermanGrid/CN=GridKa-CA",
"hv:dn": "/C=DE/O=GermanGrid/OU=DESY/CN=Owen Synge",
"hv:email": "[email protected]"
}
},
"hv:images": [
{
"hv:image": {
"dc:description": "This is an README example VM",
"dc:identifier": "488dcdc4-9ab1-4fc8-a7ba-b7a5428ecb3d",
"dc:title": "README example VM",
"hv:hypervisor": "kvm",
"hv:size": 2147483648,
"hv:uri": "http://example.org/example-image.img",
"hv:version": "1",
"sl:arch": "x86_64",
"sl:checksum:sha512": "8b4c269a60da1061b434b696c4a89293bea847b66bd8ba486a914d4209df651193ee8d454f8231840b7500fab6740620c7111d9a17d08b743133dc393ba2c0d4",
"sl:comments": "Vanila install with contextulization scripts",
"sl:os": "Linux",
"sl:osversion": "SL 5.5"
}
}
],
"hv:uri": "http://example.org/example-image-list.image_list",
"hv:version": "1"
}
}</programlisting>
<para>
and when signed using SMIME like this:
</para>
<programlisting>MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha1"; boundary="----EAE3006C97F670EE450F46AC8DF4C070"
This is an S/MIME signed message
------EAE3006C97F670EE450F46AC8DF4C070
{
"hv:imagelist" : {
"dc:date:created": "2011-03-10T17:09:12Z",
"dc:date:expires": "2011-04-07T17:09:12Z",
"dc:description": "a README example of an image list",
"dc:identifier": "4e186b44-2c64-40ea-97d5-e9e5c0bce059",
"dc:source": "example.org",
"dc:title": "README example",
"hv:endorser": {
"hv:x509": {
"dc:creator": "Owen Synge",
"hv:ca": "/C=DE/O=GermanGrid/CN=GridKa-CA",
"hv:dn": "/C=DE/O=GermanGrid/OU=DESY/CN=Owen Synge",
"hv:email": "[email protected]"
}
},
"hv:images": [
{
"hv:image": {
"dc:description": "This is an README example VM",
"dc:identifier": "488dcdc4-9ab1-4fc8-a7ba-b7a5428ecb3d",
"dc:title": "README example VM",
"hv:hypervisor": "kvm",
"hv:size": 2147483648,
"hv:uri": "http://example.org/example-image.img",
"hv:version": "1",
"sl:arch": "x86_64",
"sl:checksum:sha512": "8b4c269a60da1061b434b696c4a89293bea847b66bd8ba486a914d4209df651193ee8d454f8231840b7500fab6740620c7111d9a17d08b743133dc393ba2c0d4",
"sl:comments": "Vanila install with contextulization scripts",
"sl:os": "Linux",
"sl:osversion": "SL 5.5"
}
}
],
"hv:uri": "http://example.org/example-image-list.image_list",
"hv:version": "1"
}
}
------EAE3006C97F670EE450F46AC8DF4C070
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
MIIHdAYJKoZIhvcNAQcCoIIHZTCCB2ECAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCBSUwggUhMIIECaADAgECAgIz7DANBgkqhkiG9w0BAQUFADA2MQswCQYD
VQQGEwJERTETMBEGA1UEChMKR2VybWFuR3JpZDESMBAGA1UEAxMJR3JpZEthLUNB
MB4XDTExMDExMDE1MDMxN1oXDTEyMDIwOTE1MDMxN1owRjELMAkGA1UEBhMCREUx
EzARBgNVBAoTCkdlcm1hbkdyaWQxDTALBgNVBAsTBERFU1kxEzARBgNVBAMTCk93
ZW4gU3luZ2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkgbPFZrVL
pmwf7GKBBFkwTK5V7RmlupsU3Z3FqdfMnJGn2NrrnHIhthUTCTq4WbLIZTbOEh0n
JqZgZBvYcwJV4V9pais4YlsEug+JLMbB9hZ6e2XgdjXWgLqz6vBSIf6KXi4KhCxe
a4FylvIk7OtY+bg0mg5IFHib6uP7fXhFKdBEapoi+B05wpluBMA+2DBdSt+rjzA8
SwiHUuan60VIyJAxammyOe3IKSpwyBXkQ10XjIhIpoSavqYXJboFOVzUcqxawdbX
Con2W8QfiwFKYupohG/VTusDXFT2MP4k+KxG3/rTTPWUDJme7VUPv3+CTcEO+z4v
X8/XhI44oAXlAgMBAAGjggInMIICIzAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQE
AwIE8DAdBgNVHQ4EFgQUGakUy66kgvulNBIf18WBXjGolqYwXgYDVR0jBFcwVYAU
xnXJKKzRC/w8/7m1HtNfO4BiEjShOqQ4MDYxCzAJBgNVBAYTAkRFMRMwEQYDVQQK
EwpHZXJtYW5HcmlkMRIwEAYDVQQDEwlHcmlkS2EtQ0GCAQAwHQYDVR0RBBYwFIES
b3dlbi5TeW5nZUBkZXN5LmRlMB8GA1UdEgQYMBaBFGdyaWRrYS1jYUBpd3IuZnpr
LmRlMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9ncmlkLmZ6ay5kZS9jYS9ncmlk
a2EtY3JsLmRlcjAaBgNVHSAEEzARMA8GDSsGAQQBlDarLAEBAQUwEQYJYIZIAYb4
QgEBBAQDAgWgME4GCWCGSAGG+EIBDQRBFj9DZXJ0aWZpY2F0ZSBpc3N1ZWQgdW5k
ZXIgQ1AvQ1BTIHYuIDEuNSBhdCBodHRwOi8vZ3JpZC5memsuZGUvY2EwJAYJYIZI
AYb4QgECBBcWFWh0dHA6Ly9ncmlkLmZ6ay5kZS9jYTAzBglghkgBhvhCAQgEJhYk
aHR0cDovL2dyaWQuZnprLmRlL2NhL2dyaWRrYS1jcHMucGRmMDMGCWCGSAGG+EIB
AwQmFiRodHRwOi8vZ3JpZC5memsuZGUvY2EvZ3JpZGthLWNybC5kZXIwDQYJKoZI
hvcNAQEFBQADggEBAMbn91TOQ6r4D/aKwgIFXiXe40B7iccz/P5pCFSi1R6IC3KH
Ui4s/f9iAGl9rA21h8QAaRaJ/h1OQNlgMZbc9jDCWcqxr8wQTYAQDiBkspLT68ZO
5xVFRiq3HjkkhwnFfFzsNSiLFYZTRjChPluclYG3TEvSg8dz9Lv/IEJxE5C5lZ2d
e3CSu0vcD0DESiu/sVqPOOHi8NL/59U2ine3z23Y+piCabQCxjT0inT2MmR8UNDF
ij2JJYxlt56U/SQCEe0304w3x1jIg8vcpm4dfh+L2IjJ9hVfEeLaCyhv9Wjbmu5O
vk0yLjcEZ7b4RKeo7djVYh+5kCWJYCr/W6uGW44xggIXMIICEwIBATA8MDYxCzAJ
BgNVBAYTAkRFMRMwEQYDVQQKEwpHZXJtYW5HcmlkMRIwEAYDVQQDEwlHcmlkS2Et
Q0ECAjPsMAkGBSsOAwIaBQCggbEwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc
BgkqhkiG9w0BCQUxDxcNMTEwMzEwMTczMzU1WjAjBgkqhkiG9w0BCQQxFgQUd43y
VT05Zk+7acFF+EeqExNI57cwUgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG9w0DBzAO
BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcN
AwICASgwDQYJKoZIhvcNAQEBBQAEggEAkA0RgB5AkGIYvFsFETzx7QHKWu9qas5k
vlHn2a+EpRE9K1p+qrFNzS53E2BGqubyRcePfgG/WyGqYOK2h20d6GZH+ENUFkvM
EAthbvQaHye6WEvF/0GUrr0QUBT1gQswkkryPHcqTVmJANQORakkNvCwynEBmfSC
vb2TEppRuOCmxx3zqrzMr7zPNPY4w2+YaXQ1fHfmEmOrlf0ImP20TyTKIoQWqzbq
WXwlRhZBUoD9zfiEM/jFvOvkuxLkQeiEcSzlLAGHXsHJ3anPMX9sobJFbJI0wYdN
sUOInHRhksokh2ow68KZK4vXLI173v5yZE7FZZ1Gl9T+YpkmOIW4iQ==
------EAE3006C97F670EE450F46AC8DF4C070--
</programlisting>
</section>
</chapter>