summaryrefslogtreecommitdiffstats
path: root/baseline/source/rijndael_enc
diff options
context:
space:
mode:
authorJoshua Bakita <bakitajoshua@gmail.com>2019-10-07 19:13:39 -0400
committerJoshua Bakita <bakitajoshua@gmail.com>2019-10-07 19:13:39 -0400
commit386b7d3366f1359a265da207a9cafa3edf553b64 (patch)
treec76120c2c138faed822e4ae386be6ef22a738a78 /baseline/source/rijndael_enc
parent54a3f7091a2146b29c73a6fdc4b62a5c4ad7a3d8 (diff)
Reorganize and commit all the modified TACLeBench code and run scripts
Diffstat (limited to 'baseline/source/rijndael_enc')
-rw-r--r--baseline/source/rijndael_enc/ChangeLog.txt98
-rw-r--r--baseline/source/rijndael_enc/aes.c406
-rw-r--r--baseline/source/rijndael_enc/aes.h165
-rw-r--r--baseline/source/rijndael_enc/aestab.h261
-rw-r--r--baseline/source/rijndael_enc/input_small.c1963
-rw-r--r--baseline/source/rijndael_enc/rijndael_enc.c238
-rw-r--r--baseline/source/rijndael_enc/rijndael_enc_libc.c66
-rw-r--r--baseline/source/rijndael_enc/rijndael_enc_libc.h24
8 files changed, 3221 insertions, 0 deletions
diff --git a/baseline/source/rijndael_enc/ChangeLog.txt b/baseline/source/rijndael_enc/ChangeLog.txt
new file mode 100644
index 0000000..6ea9ed4
--- /dev/null
+++ b/baseline/source/rijndael_enc/ChangeLog.txt
@@ -0,0 +1,98 @@
1File: rijndael_encoder.c
2Source: security section of MiBench
3
42016-02-26:
5- Remove commented-out code
6- Prefix functions with "rijndael_enc"
7- Compute a checksum and return it from main
8- Change return type of rijndael_enc_encfile to void
9- Move functionality from function main into functions
10 rijndael_enc_init, rijndael_enc_main, and rijndael_enc_return
11- Reordered functions in source code: initialization- and
12 return-value-related functions first, followed by algorithm core
13 functions, followed by main functions
14- Added function prototypes
15- Applied code formatting with astyle as in the example
16- Added general TACLeBench header to beginning of source code
17- Rename to rijndael_enc.c
18
192016-03-15:
20- Return 0 if checksum is as expected, -1 otherwise
21- Add entrypoint pragma
22- Make inputs volatile (or touch them with a volatile) to rule out
23 optimizations
24
252016-04-20:
26- Cast "expected" return value to int for comparison
27- Make loop counter in rijndael_enc_init unsigned
28
29Files: aes.c, aes.h, aestab.h
30Source: security section of MiBench
31
322016-02-26:
33- Remove unused defines UNROLL, PARTIAL_UNROLL
34- Remove defines FIXED_TABLES, FF_TABLES, ARRAYS, FOUR_TABLES,
35 FOUR_LR_TABLES, FOUR_IM_TABLES
36- Remove (undefined) define ONE_TABLE, ONE_LR_TABLE , ONE_IM_TABLE
37- Assume BLOCK_SIZE is always 16
38- Remove unused define "unused"
39- Remove INTERNAL_BYTE_ORDER, EXTERNAL_BYTE_ORDER, AES_BIG_ENDIAN,
40 AES_LITTLE_ENDIAN (assume internal == external == little endian)
41- Remove defines AES_DLL and AES_IN_CPP
42- Remove "#if defined(__cplusplus)"
43- Replace macros c_name and cf_dec with their definition
44- Remove some stale comments
45- Remove defines no_table and one_table
46- Remove prototypes for unusedfunctions decrypt and set_blk
47- Prefix all functions and global variables with "rijndael_enc"
48- Break lines in overly long macros
49- Protect macros
50- Applied code formatting with astyle as in the example
51
522016-04-20:
53- Remove unused macros s, ff_poly, ff_hi, m1, m2, m3, FFmulX,
54 fwd_mcol, fwd_var, inv_var, si, so, fwd_rnd, inv_rnd, fwd_lrnd,
55 inv_lrnd, locals, l_copy, state_in, state_out, round, i_table,
56 li_table
57- Remove unused arrays rijndael_enc_s_box, rijndael_enc_inv_s_box,
58 rijndael_enc_it_tab, rijndael_enc_il_tab
59
602016-06-14:
61- Added cast to make C++ compiler happy
62
63Files: glibc_common.h, my_file.h
64Source: security section of MiBench
65
662016-02-26:
67- Merge into file rijndael_enc_libc.h
68
69File: rijndael_enc_libc.h
70
712016-02-26:
72- Replace size_x with unsigned long
73- Remove defines LITTLE_ENDIAN and NULL
74- Prefix all functions with "rijndael_enc" (instead of "my_")
75- Prefix definitions that clash with the standard library with
76 "rijndael_enc" (instead of "my_")
77- Applied code formatting with astyle as in the example
78
79Files: glibc_common.c, my_file.c
80Source: security section of MiBench
81
822016-02-26:
83- Merge into file rijndael_enc_libc.c
84
85File: rijndael_enc_libc.c
86
872016-02-26:
88- Replace size_x with unsigned long
89- Prefix all functions with "rijndael_enc" (instead of "my_")
90- Prefix definitions that clash with the standard library with
91 "rijndael_enc" (instead of "my_")
92- Applied code formatting with astyle as in the example
93
94File: input_small.c
95Source: security section of MiBench
96
972016-02-26:
98- Break long lines
diff --git a/baseline/source/rijndael_enc/aes.c b/baseline/source/rijndael_enc/aes.c
new file mode 100644
index 0000000..c1282a7
--- /dev/null
+++ b/baseline/source/rijndael_enc/aes.c
@@ -0,0 +1,406 @@
1/*
2 -----------------------------------------------------------------------
3 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
4
5 TERMS
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions
9 are met:
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16 This software is provided 'as is' with no guarantees of correctness or
17 fitness for purpose.
18 -----------------------------------------------------------------------
19
20 FUNCTION
21
22 The AES algorithm Rijndael implemented for block and key sizes of 128,
23 bits (16 bytes) by Brian Gladman.
24
25 This is an implementation of the AES encryption algorithm (Rijndael)
26 designed by Joan Daemen and Vincent Rijmen.
27*/
28
29#include "aes.h"
30
31#include "aestab.h"
32
33#define four_tables(x,tab,vf,rf,c) ( tab[0][bval(vf(x,0,c),rf(0,c))] ^ \
34 tab[1][bval(vf(x,1,c),rf(1,c))] ^ \
35 tab[2][bval(vf(x,2,c),rf(2,c))] ^ \
36 tab[3][bval(vf(x,3,c),rf(3,c))] )
37
38#define vf1(x,r,c) (x)
39#define rf1(r,c) (r)
40#define rf2(r,c) ((r-c)&3)
41
42#define ls_box(x,c) four_tables(x,rijndael_enc_fl_tab,vf1,rf2,c)
43
44#define inv_mcol(x) four_tables(x,rijndael_enc_im_tab,vf1,rf1,0)
45
46/*
47 Subroutine to set the block size (if variable) in bytes, legal
48 values being 16, 24 and 32.
49*/
50
51#define nc (Ncol)
52
53/*
54 Initialise the key schedule from the user supplied key. The key
55 length is now specified in bytes - 16, 24 or 32 as appropriate.
56 This corresponds to bit lengths of 128, 192 and 256 bits, and
57 to Nk values of 4, 6 and 8 respectively.
58*/
59
60#define mx(t,f) (*t++ = inv_mcol(*f),f++)
61#define cp(t,f) *t++ = *f++
62
63#define cpy(d,s) do { cp(d,s); cp(d,s); cp(d,s); cp(d,s); } while (0)
64#define mix(d,s) do { mx(d,s); mx(d,s); mx(d,s); mx(d,s); } while (0)
65
66aes_ret rijndael_enc_set_key( byte in_key[], const word n_bytes,
67 const enum aes_key f, struct aes *cx )
68{
69 word *kf, *kt, rci;
70
71 if ( ( n_bytes & 7 ) || n_bytes < 16 || n_bytes > 32 || ( !( f & 1 ) &&
72 !( f & 2 ) ) )
73 return ( n_bytes ? cx->mode &= ~0x03, aes_bad : ( aes_ret )( cx->Nkey << 2 ) );
74
75 cx->mode = ( cx->mode & ~0x03 ) | ( ( byte )f & 0x03 );
76 cx->Nkey = n_bytes >> 2;
77 cx->Nrnd = Nr( cx->Nkey, ( word )nc );
78
79 cx->e_key[0] = word_in( in_key );
80 cx->e_key[1] = word_in( in_key + 4 );
81 cx->e_key[2] = word_in( in_key + 8 );
82 cx->e_key[3] = word_in( in_key + 12 );
83
84 kf = cx->e_key;
85 kt = kf + nc * ( cx->Nrnd + 1 ) - cx->Nkey;
86 rci = 0;
87
88 switch ( cx->Nkey ) {
89 case 4:
90 _Pragma( "loopbound min 0 max 0" )
91 do {
92 kf[4] = kf[0] ^ ls_box( kf[3], 3 ) ^ rijndael_enc_rcon_tab[rci++];
93 kf[5] = kf[1] ^ kf[4];
94 kf[6] = kf[2] ^ kf[5];
95 kf[7] = kf[3] ^ kf[6];
96 kf += 4;
97 } while ( kf < kt );
98 break;
99
100 case 6:
101 cx->e_key[4] = word_in( in_key + 16 );
102 cx->e_key[5] = word_in( in_key + 20 );
103 _Pragma( "loopbound min 0 max 0" )
104 do {
105 kf[ 6] = kf[0] ^ ls_box( kf[5], 3 ) ^ rijndael_enc_rcon_tab[rci++];
106 kf[ 7] = kf[1] ^ kf[ 6];
107 kf[ 8] = kf[2] ^ kf[ 7];
108 kf[ 9] = kf[3] ^ kf[ 8];
109 kf[10] = kf[4] ^ kf[ 9];
110 kf[11] = kf[5] ^ kf[10];
111 kf += 6;
112 } while ( kf < kt );
113 break;
114
115 case 8:
116 cx->e_key[4] = word_in( in_key + 16 );
117 cx->e_key[5] = word_in( in_key + 20 );
118 cx->e_key[6] = word_in( in_key + 24 );
119 cx->e_key[7] = word_in( in_key + 28 );
120 _Pragma( "loopbound min 7 max 7" )
121 do {
122 kf[ 8] = kf[0] ^ ls_box( kf[7], 3 ) ^ rijndael_enc_rcon_tab[rci++];
123 kf[ 9] = kf[1] ^ kf[ 8];
124 kf[10] = kf[2] ^ kf[ 9];
125 kf[11] = kf[3] ^ kf[10];
126 kf[12] = kf[4] ^ ls_box( kf[11], 0 );
127 kf[13] = kf[5] ^ kf[12];
128 kf[14] = kf[6] ^ kf[13];
129 kf[15] = kf[7] ^ kf[14];
130 kf += 8;
131 } while ( kf < kt );
132 break;
133 }
134
135 if ( ( cx->mode & 3 ) != enc ) {
136 word i;
137
138 kt = cx->d_key + nc * cx->Nrnd;
139 kf = cx->e_key;
140
141 cpy( kt, kf );
142 kt -= 2 * nc;
143
144 _Pragma( "loopbound min 0 max 0" )
145 for ( i = 1; i < cx->Nrnd; ++i ) {
146 mix( kt, kf );
147 kt -= 2 * nc;
148 }
149
150 cpy( kt, kf );
151 }
152
153 return aes_good;
154}
155
156short rijndael_enc_encrypt( unsigned char in_blk[], unsigned char out_blk[],
157 const struct aes *cx )
158{
159 const unsigned long *kp = cx->e_key;
160 if ( !( cx->mode & 1 ) )
161 return 0;
162 unsigned long b0[4];
163 b0[0] = *( unsigned long * )in_blk ^ kp[0];
164 b0[1] = *( unsigned long * )( in_blk + 4 )^kp[1];
165 b0[2] = *( unsigned long * )( in_blk + 8 )^kp[2];
166 b0[3] = *( unsigned long * )( in_blk + 12 )^kp[3];
167 kp += 4;
168 unsigned long b1[4];
169 switch ( cx->Nrnd ) {
170 case 14:
171 b1[0] = kp[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^
172 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
173 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
174 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
175 b1[1] = kp[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^
176 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
177 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
178 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
179 b1[2] = kp[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^
180 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
181 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
182 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
183 b1[3] = kp[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^
184 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
185 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
186 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
187 b0[0] = ( kp + 4 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^
188 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
189 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
190 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
191 b0[1] = ( kp + 4 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^
192 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
193 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
194 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
195 b0[2] = ( kp + 4 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^
196 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
197 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
198 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
199 b0[3] = ( kp + 4 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^
200 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
201 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
202 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
203 kp += 8;
204 case 12:
205 b1[0] = kp[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^
206 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
207 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
208 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
209 b1[1] = kp[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^
210 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
211 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
212 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
213 b1[2] = kp[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^
214 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
215 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
216 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
217 b1[3] = kp[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^
218 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
219 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
220 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
221 b0[0] = ( kp + 4 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^
222 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
223 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
224 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
225 b0[1] = ( kp + 4 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^
226 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
227 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
228 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
229 b0[2] = ( kp + 4 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^
230 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
231 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
232 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
233 b0[3] = ( kp + 4 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^
234 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
235 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
236 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
237 kp += 8;
238 case 10:
239 b1[0] = kp[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^
240 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
241 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
242 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
243 b1[1] = kp[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^
244 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
245 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
246 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
247 b1[2] = kp[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^
248 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
249 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
250 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
251 b1[3] = kp[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^
252 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
253 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
254 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
255 b0[0] = ( kp + 4 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^
256 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
257 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
258 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
259 b0[1] = ( kp + 4 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^
260 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
261 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
262 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
263 b0[2] = ( kp + 4 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^
264 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
265 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
266 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
267 b0[3] = ( kp + 4 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^
268 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
269 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
270 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
271 b1[0] = ( kp + 8 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^
272 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
273 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
274 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
275 b1[1] = ( kp + 8 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^
276 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
277 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
278 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
279 b1[2] = ( kp + 8 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^
280 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
281 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
282 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
283 b1[3] = ( kp + 8 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^
284 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
285 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
286 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
287 b0[0] = ( kp + 12 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^
288 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
289 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
290 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
291 b0[1] = ( kp + 12 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^
292 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
293 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
294 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
295 b0[2] = ( kp + 12 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^
296 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
297 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
298 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
299 b0[3] = ( kp + 12 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^
300 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
301 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
302 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
303 b1[0] = ( kp + 16 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^
304 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
305 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
306 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
307 b1[1] = ( kp + 16 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^
308 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
309 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
310 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
311 b1[2] = ( kp + 16 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^
312 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
313 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
314 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
315 b1[3] = ( kp + 16 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^
316 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
317 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
318 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
319 b0[0] = ( kp + 20 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^
320 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
321 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
322 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
323 b0[1] = ( kp + 20 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^
324 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
325 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
326 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
327 b0[2] = ( kp + 20 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^
328 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
329 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
330 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
331 b0[3] = ( kp + 20 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^
332 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
333 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
334 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
335 b1[0] = ( kp + 24 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^
336 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
337 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
338 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
339 b1[1] = ( kp + 24 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^
340 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
341 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
342 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
343 b1[2] = ( kp + 24 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^
344 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
345 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
346 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
347 b1[3] = ( kp + 24 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^
348 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
349 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
350 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
351 b0[0] = ( kp + 28 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[0] )] ^
352 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
353 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
354 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
355 b0[1] = ( kp + 28 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[1] )] ^
356 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
357 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
358 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
359 b0[2] = ( kp + 28 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[2] )] ^
360 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
361 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
362 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
363 b0[3] = ( kp + 28 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b1[3] )] ^
364 rijndael_enc_ft_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
365 rijndael_enc_ft_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
366 rijndael_enc_ft_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
367 b1[0] = ( kp + 32 )[0] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[0] )] ^
368 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
369 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
370 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
371 b1[1] = ( kp + 32 )[1] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[1] )] ^
372 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
373 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
374 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
375 b1[2] = ( kp + 32 )[2] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[2] )] ^
376 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
377 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
378 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
379 b1[3] = ( kp + 32 )[3] ^ ( rijndael_enc_ft_tab[0][( ( unsigned char )b0[3] )] ^
380 rijndael_enc_ft_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
381 rijndael_enc_ft_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
382 rijndael_enc_ft_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
383 b0[0] = ( kp + 36 )[0] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[0] )] ^
384 rijndael_enc_fl_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
385 rijndael_enc_fl_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
386 rijndael_enc_fl_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
387 b0[1] = ( kp + 36 )[1] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[1] )] ^
388 rijndael_enc_fl_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
389 rijndael_enc_fl_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
390 rijndael_enc_fl_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
391 b0[2] = ( kp + 36 )[2] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[2] )] ^
392 rijndael_enc_fl_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
393 rijndael_enc_fl_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
394 rijndael_enc_fl_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
395 b0[3] = ( kp + 36 )[3] ^ ( rijndael_enc_fl_tab[0][( ( unsigned char )b1[3] )] ^
396 rijndael_enc_fl_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
397 rijndael_enc_fl_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
398 rijndael_enc_fl_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
399 }
400 *( unsigned long * )out_blk = ( b0[0] );
401 *( unsigned long * )( out_blk + 4 ) = ( b0[1] );
402 *( unsigned long * )( out_blk + 8 ) = ( b0[2] );
403 *( unsigned long * )( out_blk + 12 ) = ( b0[3] );
404 return aes_good;
405}
406
diff --git a/baseline/source/rijndael_enc/aes.h b/baseline/source/rijndael_enc/aes.h
new file mode 100644
index 0000000..908f95f
--- /dev/null
+++ b/baseline/source/rijndael_enc/aes.h
@@ -0,0 +1,165 @@
1/*
2 -----------------------------------------------------------------------
3 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
4
5 TERMS
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions
9 are met:
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16 This software is provided 'as is' with no guarantees of correctness or
17 fitness for purpose.
18 -----------------------------------------------------------------------
19
20 1. FUNCTION
21
22 The AES algorithm Rijndael implemented for block and key sizes of
23 128 bits (16 bytes) by Brian Gladman.
24
25 This is an implementation of the AES encryption algorithm (Rijndael)
26 designed by Joan Daemen and Vincent Rijmen.
27
28 2. THE CIPHER INTERFACE
29
30 byte (an unsigned 8-bit type)
31 word (an unsigned 32-bit type)
32 aes_ret: (a signed 16 bit type for function return values)
33 aes_good (value != 0, a good return)
34 aes_bad (value == 0, an error return)
35 enum aes_key: (encryption direction)
36 enc (set key for encryption)
37 dec (set key for decryption)
38 both (set key for both)
39 class or struct aes (structure for context)
40
41 C subroutine calls:
42
43 aes_ret set_blk(const word block_length, aes *cx) (variable block size)
44 aes_ret set_key(const byte key[], const word key_length,
45 const enum aes_key direction, aes *cx)
46 aes_ret encrypt(const byte input_blk[], byte output_blk[], const aes *cx)
47 aes_ret decrypt(const byte input_blk[], byte output_blk[], const aes *cx)
48
49 IMPORTANT NOTE: If you are using this C interface and your compiler does
50 not set the memory used for objects to zero before use, you will need to
51 ensure that cx.mode is set to zero before using the C subroutine calls.
52
53 The block length inputs to set_block and set_key are in numbers of
54 BYTES, not bits. The calls to subroutines must be made in the above
55 order but multiple calls can be made without repeating earlier calls
56 if their parameters have not changed. If the cipher block length is
57 variable but set_blk has not been called before cipher operations a
58 value of 16 is assumed (that is, the AES block size). In contrast to
59 earlier versions the block and key length parameters are now checked
60 for correctness and the encryption and decryption routines check to
61 ensure that an appropriate key has been set before they are called.
62
63*/
64
65#ifndef _AES_H
66#define _AES_H
67
68/* The only supported block size for the benchmark is 16 */
69#define BLOCK_SIZE 16
70
71/*
72 The number of key schedule words for different block and key lengths
73 (allowing for the method of computation which requires the length to
74 be a multiple of the key length):
75
76 Key Schedule key length (bytes)
77 Length 16 20 24 28 32
78 ---------------------
79 block 16 | 44 60 54 56 64
80 length 20 | 60 60 66 70 80
81 (bytes) 24 | 80 80 78 84 96
82 28 | 100 100 102 98 112
83 32 | 120 120 120 126 120
84
85 Rcon Table key length (bytes)
86 Length 16 20 24 28 32
87 ---------------------
88 block 16 | 10 9 8 7 7
89 length 20 | 14 11 10 9 9
90 (bytes) 24 | 19 15 12 11 11
91 28 | 24 19 16 13 13
92 32 | 29 23 19 17 14
93
94 The following values assume that the key length will be variable and may
95 be of maximum length (32 bytes).
96
97 Nk = number_of_key_bytes / 4
98 Nc = number_of_columns_in_state / 4
99 Nr = number of encryption/decryption rounds
100 Rc = number of elements in rcon table
101 Ks = number of 32-bit words in key schedule
102*/
103
104#define Nr(Nk,Nc) ((Nk > Nc ? Nk : Nc) + 6)
105#define Rc(Nk,Nc) ((Nb * (Nr(Nk,Nc) + 1) - 1) / Nk)
106#define Ks(Nk,Nc) (Nk * (Rc(Nk,Nc) + 1))
107
108#define RC_LENGTH 5 * BLOCK_SIZE / 4 - (BLOCK_SIZE == 16 ? 10 : 11)
109#define KS_LENGTH 4 * BLOCK_SIZE
110
111/* End of configuration options, but see also aes.c */
112
113typedef unsigned char byte; /* must be an 8-bit storage unit */
114typedef unsigned long word; /* must be a 32-bit storage unit */
115typedef short aes_ret; /* function return value */
116
117#define aes_bad 0
118#define aes_good 1
119
120/*
121 upr(x,n): rotates bytes within words by n positions, moving bytes
122 to higher index positions with wrap around into low positions
123 ups(x,n): moves bytes by n positions to higher index positions in
124 words but without wrap around
125 bval(x,n): extracts a byte from a word
126*/
127
128#define upr(x,n) (((x) << 8 * (n)) | ((x) >> (32 - 8 * (n))))
129#define ups(x,n) ((x) << 8 * (n))
130#define bval(x,n) ((byte)((x) >> 8 * (n)))
131#define byte_swap(x) (upr(x,1) & 0x00ff00ff | upr(x,3) & 0xff00ff00)
132#define bytes2word(b0, b1, b2, b3) ((word)(b3) << 24 | (word)(b2) << 16 | \
133 (word)(b1) << 8 | (b0))
134
135#define word_in(x) *(word*)(x)
136#define word_out(x,v) *(word*)(x) = (v)
137
138enum aes_const { Nrow = 4, /* the number of rows in the cipher state */
139 Mcol = 8, /* maximum number of columns in the state */
140 Ncol = BLOCK_SIZE / 4,
141 Shr0 = 0, /* the cyclic shift values for rows 0, 1, 2 & 3 */
142 Shr1 = 1,
143 Shr2 = BLOCK_SIZE == 32 ? 3 : 2,
144 Shr3 = BLOCK_SIZE == 32 ? 4 : 3
145 };
146
147enum aes_key { enc = 1, /* set if encryption is needed */
148 dec = 2, /* set if decryption is needed */
149 both = 3 /* set if both are needed */
150 };
151
152struct aes {
153 word Nkey; /* the number of words in the key input block */
154 word Nrnd; /* the number of cipher rounds */
155 word e_key[KS_LENGTH]; /* the encryption key schedule */
156 word d_key[KS_LENGTH]; /* the decryption key schedule */
157 byte mode; /* encrypt, decrypt or both */
158};
159
160aes_ret rijndael_enc_set_key( byte key[], const word n_bytes,
161 const enum aes_key f, struct aes *cx );
162aes_ret rijndael_enc_encrypt( byte in_blk[], byte out_blk[],
163 const struct aes *cx );
164
165#endif
diff --git a/baseline/source/rijndael_enc/aestab.h b/baseline/source/rijndael_enc/aestab.h
new file mode 100644
index 0000000..9d347bc
--- /dev/null
+++ b/baseline/source/rijndael_enc/aestab.h
@@ -0,0 +1,261 @@
1
2/*
3 -----------------------------------------------------------------------
4 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
5
6 TERMS
7
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions
10 are met:
11 1. Redistributions of source code must retain the above copyright
12 notice, this list of conditions and the following disclaimer.
13 2. Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
16
17 This software is provided 'as is' with no guarantees of correctness or
18 fitness for purpose.
19 -----------------------------------------------------------------------
20*/
21
22/*
23 Used to ensure table is generated in the right format
24 depending on the internal byte order required.
25*/
26
27#define w0(p) 0x000000##p
28
29/*
30 Number of elements required in this table for different
31 block and key lengths is:
32
33 Rcon Table key length (bytes)
34 Length 16 20 24 28 32
35 ---------------------
36 block 16 | 10 9 8 7 7
37 length 20 | 14 11 10 9 9
38 (bytes) 24 | 19 15 12 11 11
39 28 | 24 19 16 13 13
40 32 | 29 23 19 17 14
41
42 this table can be a table of bytes if the key schedule
43 code is adjusted accordingly
44*/
45
46const word rijndael_enc_rcon_tab[29] = {
47 w0( 01 ), w0( 02 ), w0( 04 ), w0( 08 ),
48 w0( 10 ), w0( 20 ), w0( 40 ), w0( 80 ),
49 w0( 1b ), w0( 36 ), w0( 6c ), w0( d8 ),
50 w0( ab ), w0( 4d ), w0( 9a ), w0( 2f ),
51 w0( 5e ), w0( bc ), w0( 63 ), w0( c6 ),
52 w0( 97 ), w0( 35 ), w0( 6a ), w0( d4 ),
53 w0( b3 ), w0( 7d ), w0( fa ), w0( ef ),
54 w0( c5 )
55};
56
57#undef w0
58
59/*
60 used to ensure table is generated in the right format
61 depending on the internal byte order required
62*/
63
64#define r0(p,q,r,s) 0x##p##q##r##s
65#define r1(p,q,r,s) 0x##q##r##s##p
66#define r2(p,q,r,s) 0x##r##s##p##q
67#define r3(p,q,r,s) 0x##s##p##q##r
68#define w0(p) 0x000000##p
69#define w1(p) 0x0000##p##00
70#define w2(p) 0x00##p##0000
71#define w3(p) 0x##p##000000
72
73/*
74 used to ensure table is generated in the right format
75 depending on the internal byte order required
76*/
77
78/* data for forward tables (other than last round) */
79
80#define f_table \
81 r(a5,63,63,c6), r(84,7c,7c,f8), r(99,77,77,ee), r(8d,7b,7b,f6), \
82 r(0d,f2,f2,ff), r(bd,6b,6b,d6), r(b1,6f,6f,de), r(54,c5,c5,91), \
83 r(50,30,30,60), r(03,01,01,02), r(a9,67,67,ce), r(7d,2b,2b,56), \
84 r(19,fe,fe,e7), r(62,d7,d7,b5), r(e6,ab,ab,4d), r(9a,76,76,ec), \
85 r(45,ca,ca,8f), r(9d,82,82,1f), r(40,c9,c9,89), r(87,7d,7d,fa), \
86 r(15,fa,fa,ef), r(eb,59,59,b2), r(c9,47,47,8e), r(0b,f0,f0,fb), \
87 r(ec,ad,ad,41), r(67,d4,d4,b3), r(fd,a2,a2,5f), r(ea,af,af,45), \
88 r(bf,9c,9c,23), r(f7,a4,a4,53), r(96,72,72,e4), r(5b,c0,c0,9b), \
89 r(c2,b7,b7,75), r(1c,fd,fd,e1), r(ae,93,93,3d), r(6a,26,26,4c), \
90 r(5a,36,36,6c), r(41,3f,3f,7e), r(02,f7,f7,f5), r(4f,cc,cc,83), \
91 r(5c,34,34,68), r(f4,a5,a5,51), r(34,e5,e5,d1), r(08,f1,f1,f9), \
92 r(93,71,71,e2), r(73,d8,d8,ab), r(53,31,31,62), r(3f,15,15,2a), \
93 r(0c,04,04,08), r(52,c7,c7,95), r(65,23,23,46), r(5e,c3,c3,9d), \
94 r(28,18,18,30), r(a1,96,96,37), r(0f,05,05,0a), r(b5,9a,9a,2f), \
95 r(09,07,07,0e), r(36,12,12,24), r(9b,80,80,1b), r(3d,e2,e2,df), \
96 r(26,eb,eb,cd), r(69,27,27,4e), r(cd,b2,b2,7f), r(9f,75,75,ea), \
97 r(1b,09,09,12), r(9e,83,83,1d), r(74,2c,2c,58), r(2e,1a,1a,34), \
98 r(2d,1b,1b,36), r(b2,6e,6e,dc), r(ee,5a,5a,b4), r(fb,a0,a0,5b), \
99 r(f6,52,52,a4), r(4d,3b,3b,76), r(61,d6,d6,b7), r(ce,b3,b3,7d), \
100 r(7b,29,29,52), r(3e,e3,e3,dd), r(71,2f,2f,5e), r(97,84,84,13), \
101 r(f5,53,53,a6), r(68,d1,d1,b9), r(00,00,00,00), r(2c,ed,ed,c1), \
102 r(60,20,20,40), r(1f,fc,fc,e3), r(c8,b1,b1,79), r(ed,5b,5b,b6), \
103 r(be,6a,6a,d4), r(46,cb,cb,8d), r(d9,be,be,67), r(4b,39,39,72), \
104 r(de,4a,4a,94), r(d4,4c,4c,98), r(e8,58,58,b0), r(4a,cf,cf,85), \
105 r(6b,d0,d0,bb), r(2a,ef,ef,c5), r(e5,aa,aa,4f), r(16,fb,fb,ed), \
106 r(c5,43,43,86), r(d7,4d,4d,9a), r(55,33,33,66), r(94,85,85,11), \
107 r(cf,45,45,8a), r(10,f9,f9,e9), r(06,02,02,04), r(81,7f,7f,fe), \
108 r(f0,50,50,a0), r(44,3c,3c,78), r(ba,9f,9f,25), r(e3,a8,a8,4b), \
109 r(f3,51,51,a2), r(fe,a3,a3,5d), r(c0,40,40,80), r(8a,8f,8f,05), \
110 r(ad,92,92,3f), r(bc,9d,9d,21), r(48,38,38,70), r(04,f5,f5,f1), \
111 r(df,bc,bc,63), r(c1,b6,b6,77), r(75,da,da,af), r(63,21,21,42), \
112 r(30,10,10,20), r(1a,ff,ff,e5), r(0e,f3,f3,fd), r(6d,d2,d2,bf), \
113 r(4c,cd,cd,81), r(14,0c,0c,18), r(35,13,13,26), r(2f,ec,ec,c3), \
114 r(e1,5f,5f,be), r(a2,97,97,35), r(cc,44,44,88), r(39,17,17,2e), \
115 r(57,c4,c4,93), r(f2,a7,a7,55), r(82,7e,7e,fc), r(47,3d,3d,7a), \
116 r(ac,64,64,c8), r(e7,5d,5d,ba), r(2b,19,19,32), r(95,73,73,e6), \
117 r(a0,60,60,c0), r(98,81,81,19), r(d1,4f,4f,9e), r(7f,dc,dc,a3), \
118 r(66,22,22,44), r(7e,2a,2a,54), r(ab,90,90,3b), r(83,88,88,0b), \
119 r(ca,46,46,8c), r(29,ee,ee,c7), r(d3,b8,b8,6b), r(3c,14,14,28), \
120 r(79,de,de,a7), r(e2,5e,5e,bc), r(1d,0b,0b,16), r(76,db,db,ad), \
121 r(3b,e0,e0,db), r(56,32,32,64), r(4e,3a,3a,74), r(1e,0a,0a,14), \
122 r(db,49,49,92), r(0a,06,06,0c), r(6c,24,24,48), r(e4,5c,5c,b8), \
123 r(5d,c2,c2,9f), r(6e,d3,d3,bd), r(ef,ac,ac,43), r(a6,62,62,c4), \
124 r(a8,91,91,39), r(a4,95,95,31), r(37,e4,e4,d3), r(8b,79,79,f2), \
125 r(32,e7,e7,d5), r(43,c8,c8,8b), r(59,37,37,6e), r(b7,6d,6d,da), \
126 r(8c,8d,8d,01), r(64,d5,d5,b1), r(d2,4e,4e,9c), r(e0,a9,a9,49), \
127 r(b4,6c,6c,d8), r(fa,56,56,ac), r(07,f4,f4,f3), r(25,ea,ea,cf), \
128 r(af,65,65,ca), r(8e,7a,7a,f4), r(e9,ae,ae,47), r(18,08,08,10), \
129 r(d5,ba,ba,6f), r(88,78,78,f0), r(6f,25,25,4a), r(72,2e,2e,5c), \
130 r(24,1c,1c,38), r(f1,a6,a6,57), r(c7,b4,b4,73), r(51,c6,c6,97), \
131 r(23,e8,e8,cb), r(7c,dd,dd,a1), r(9c,74,74,e8), r(21,1f,1f,3e), \
132 r(dd,4b,4b,96), r(dc,bd,bd,61), r(86,8b,8b,0d), r(85,8a,8a,0f), \
133 r(90,70,70,e0), r(42,3e,3e,7c), r(c4,b5,b5,71), r(aa,66,66,cc), \
134 r(d8,48,48,90), r(05,03,03,06), r(01,f6,f6,f7), r(12,0e,0e,1c), \
135 r(a3,61,61,c2), r(5f,35,35,6a), r(f9,57,57,ae), r(d0,b9,b9,69), \
136 r(91,86,86,17), r(58,c1,c1,99), r(27,1d,1d,3a), r(b9,9e,9e,27), \
137 r(38,e1,e1,d9), r(13,f8,f8,eb), r(b3,98,98,2b), r(33,11,11,22), \
138 r(bb,69,69,d2), r(70,d9,d9,a9), r(89,8e,8e,07), r(a7,94,94,33), \
139 r(b6,9b,9b,2d), r(22,1e,1e,3c), r(92,87,87,15), r(20,e9,e9,c9), \
140 r(49,ce,ce,87), r(ff,55,55,aa), r(78,28,28,50), r(7a,df,df,a5), \
141 r(8f,8c,8c,03), r(f8,a1,a1,59), r(80,89,89,09), r(17,0d,0d,1a), \
142 r(da,bf,bf,65), r(31,e6,e6,d7), r(c6,42,42,84), r(b8,68,68,d0), \
143 r(c3,41,41,82), r(b0,99,99,29), r(77,2d,2d,5a), r(11,0f,0f,1e), \
144 r(cb,b0,b0,7b), r(fc,54,54,a8), r(d6,bb,bb,6d), r(3a,16,16,2c)
145
146/* generate the required tables in the desired endian format */
147
148#undef r
149#define r r0
150
151const word rijndael_enc_ft_tab[4][256] = {
152 { f_table },
153#undef r
154#define r r1
155 { f_table },
156#undef r
157#define r r2
158 { f_table },
159#undef r
160#define r r3
161 { f_table }
162};
163
164/* generate the required tables in the desired endian format */
165
166#undef r
167#define r(p,q,r,s) w0(q)
168const word rijndael_enc_fl_tab[4][256] = {
169 { f_table },
170#undef r
171#define r(p,q,r,s) w1(q)
172 { f_table },
173#undef r
174#define r(p,q,r,s) w2(q)
175 { f_table },
176#undef r
177#define r(p,q,r,s) w3(q)
178 { f_table }
179};
180
181#define m_table \
182 r(00,00,00,00), r(0b,0d,09,0e), r(16,1a,12,1c), r(1d,17,1b,12), \
183 r(2c,34,24,38), r(27,39,2d,36), r(3a,2e,36,24), r(31,23,3f,2a), \
184 r(58,68,48,70), r(53,65,41,7e), r(4e,72,5a,6c), r(45,7f,53,62), \
185 r(74,5c,6c,48), r(7f,51,65,46), r(62,46,7e,54), r(69,4b,77,5a), \
186 r(b0,d0,90,e0), r(bb,dd,99,ee), r(a6,ca,82,fc), r(ad,c7,8b,f2), \
187 r(9c,e4,b4,d8), r(97,e9,bd,d6), r(8a,fe,a6,c4), r(81,f3,af,ca), \
188 r(e8,b8,d8,90), r(e3,b5,d1,9e), r(fe,a2,ca,8c), r(f5,af,c3,82), \
189 r(c4,8c,fc,a8), r(cf,81,f5,a6), r(d2,96,ee,b4), r(d9,9b,e7,ba), \
190 r(7b,bb,3b,db), r(70,b6,32,d5), r(6d,a1,29,c7), r(66,ac,20,c9), \
191 r(57,8f,1f,e3), r(5c,82,16,ed), r(41,95,0d,ff), r(4a,98,04,f1), \
192 r(23,d3,73,ab), r(28,de,7a,a5), r(35,c9,61,b7), r(3e,c4,68,b9), \
193 r(0f,e7,57,93), r(04,ea,5e,9d), r(19,fd,45,8f), r(12,f0,4c,81), \
194 r(cb,6b,ab,3b), r(c0,66,a2,35), r(dd,71,b9,27), r(d6,7c,b0,29), \
195 r(e7,5f,8f,03), r(ec,52,86,0d), r(f1,45,9d,1f), r(fa,48,94,11), \
196 r(93,03,e3,4b), r(98,0e,ea,45), r(85,19,f1,57), r(8e,14,f8,59), \
197 r(bf,37,c7,73), r(b4,3a,ce,7d), r(a9,2d,d5,6f), r(a2,20,dc,61), \
198 r(f6,6d,76,ad), r(fd,60,7f,a3), r(e0,77,64,b1), r(eb,7a,6d,bf), \
199 r(da,59,52,95), r(d1,54,5b,9b), r(cc,43,40,89), r(c7,4e,49,87), \
200 r(ae,05,3e,dd), r(a5,08,37,d3), r(b8,1f,2c,c1), r(b3,12,25,cf), \
201 r(82,31,1a,e5), r(89,3c,13,eb), r(94,2b,08,f9), r(9f,26,01,f7), \
202 r(46,bd,e6,4d), r(4d,b0,ef,43), r(50,a7,f4,51), r(5b,aa,fd,5f), \
203 r(6a,89,c2,75), r(61,84,cb,7b), r(7c,93,d0,69), r(77,9e,d9,67), \
204 r(1e,d5,ae,3d), r(15,d8,a7,33), r(08,cf,bc,21), r(03,c2,b5,2f), \
205 r(32,e1,8a,05), r(39,ec,83,0b), r(24,fb,98,19), r(2f,f6,91,17), \
206 r(8d,d6,4d,76), r(86,db,44,78), r(9b,cc,5f,6a), r(90,c1,56,64), \
207 r(a1,e2,69,4e), r(aa,ef,60,40), r(b7,f8,7b,52), r(bc,f5,72,5c), \
208 r(d5,be,05,06), r(de,b3,0c,08), r(c3,a4,17,1a), r(c8,a9,1e,14), \
209 r(f9,8a,21,3e), r(f2,87,28,30), r(ef,90,33,22), r(e4,9d,3a,2c), \
210 r(3d,06,dd,96), r(36,0b,d4,98), r(2b,1c,cf,8a), r(20,11,c6,84), \
211 r(11,32,f9,ae), r(1a,3f,f0,a0), r(07,28,eb,b2), r(0c,25,e2,bc), \
212 r(65,6e,95,e6), r(6e,63,9c,e8), r(73,74,87,fa), r(78,79,8e,f4), \
213 r(49,5a,b1,de), r(42,57,b8,d0), r(5f,40,a3,c2), r(54,4d,aa,cc), \
214 r(f7,da,ec,41), r(fc,d7,e5,4f), r(e1,c0,fe,5d), r(ea,cd,f7,53), \
215 r(db,ee,c8,79), r(d0,e3,c1,77), r(cd,f4,da,65), r(c6,f9,d3,6b), \
216 r(af,b2,a4,31), r(a4,bf,ad,3f), r(b9,a8,b6,2d), r(b2,a5,bf,23), \
217 r(83,86,80,09), r(88,8b,89,07), r(95,9c,92,15), r(9e,91,9b,1b), \
218 r(47,0a,7c,a1), r(4c,07,75,af), r(51,10,6e,bd), r(5a,1d,67,b3), \
219 r(6b,3e,58,99), r(60,33,51,97), r(7d,24,4a,85), r(76,29,43,8b), \
220 r(1f,62,34,d1), r(14,6f,3d,df), r(09,78,26,cd), r(02,75,2f,c3), \
221 r(33,56,10,e9), r(38,5b,19,e7), r(25,4c,02,f5), r(2e,41,0b,fb), \
222 r(8c,61,d7,9a), r(87,6c,de,94), r(9a,7b,c5,86), r(91,76,cc,88), \
223 r(a0,55,f3,a2), r(ab,58,fa,ac), r(b6,4f,e1,be), r(bd,42,e8,b0), \
224 r(d4,09,9f,ea), r(df,04,96,e4), r(c2,13,8d,f6), r(c9,1e,84,f8), \
225 r(f8,3d,bb,d2), r(f3,30,b2,dc), r(ee,27,a9,ce), r(e5,2a,a0,c0), \
226 r(3c,b1,47,7a), r(37,bc,4e,74), r(2a,ab,55,66), r(21,a6,5c,68), \
227 r(10,85,63,42), r(1b,88,6a,4c), r(06,9f,71,5e), r(0d,92,78,50), \
228 r(64,d9,0f,0a), r(6f,d4,06,04), r(72,c3,1d,16), r(79,ce,14,18), \
229 r(48,ed,2b,32), r(43,e0,22,3c), r(5e,f7,39,2e), r(55,fa,30,20), \
230 r(01,b7,9a,ec), r(0a,ba,93,e2), r(17,ad,88,f0), r(1c,a0,81,fe), \
231 r(2d,83,be,d4), r(26,8e,b7,da), r(3b,99,ac,c8), r(30,94,a5,c6), \
232 r(59,df,d2,9c), r(52,d2,db,92), r(4f,c5,c0,80), r(44,c8,c9,8e), \
233 r(75,eb,f6,a4), r(7e,e6,ff,aa), r(63,f1,e4,b8), r(68,fc,ed,b6), \
234 r(b1,67,0a,0c), r(ba,6a,03,02), r(a7,7d,18,10), r(ac,70,11,1e), \
235 r(9d,53,2e,34), r(96,5e,27,3a), r(8b,49,3c,28), r(80,44,35,26), \
236 r(e9,0f,42,7c), r(e2,02,4b,72), r(ff,15,50,60), r(f4,18,59,6e), \
237 r(c5,3b,66,44), r(ce,36,6f,4a), r(d3,21,74,58), r(d8,2c,7d,56), \
238 r(7a,0c,a1,37), r(71,01,a8,39), r(6c,16,b3,2b), r(67,1b,ba,25), \
239 r(56,38,85,0f), r(5d,35,8c,01), r(40,22,97,13), r(4b,2f,9e,1d), \
240 r(22,64,e9,47), r(29,69,e0,49), r(34,7e,fb,5b), r(3f,73,f2,55), \
241 r(0e,50,cd,7f), r(05,5d,c4,71), r(18,4a,df,63), r(13,47,d6,6d), \
242 r(ca,dc,31,d7), r(c1,d1,38,d9), r(dc,c6,23,cb), r(d7,cb,2a,c5), \
243 r(e6,e8,15,ef), r(ed,e5,1c,e1), r(f0,f2,07,f3), r(fb,ff,0e,fd), \
244 r(92,b4,79,a7), r(99,b9,70,a9), r(84,ae,6b,bb), r(8f,a3,62,b5), \
245 r(be,80,5d,9f), r(b5,8d,54,91), r(a8,9a,4f,83), r(a3,97,46,8d)
246
247#undef r
248#define r r0
249
250const word rijndael_enc_im_tab[4][256] = {
251 { m_table },
252#undef r
253#define r r1
254 { m_table },
255#undef r
256#define r r2
257 { m_table },
258#undef r
259#define r r3
260 { m_table }
261};
diff --git a/baseline/source/rijndael_enc/input_small.c b/baseline/source/rijndael_enc/input_small.c
new file mode 100644
index 0000000..b3eee55
--- /dev/null
+++ b/baseline/source/rijndael_enc/input_small.c
@@ -0,0 +1,1963 @@
1unsigned char rijndael_enc_data[] = {
2 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m',
3 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s',
4 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e',
5 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s',
6 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e',
7 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y',
8 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t',
9 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e',
10 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n',
11 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s',
12 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n',
13 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s',
14 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t',
15 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b',
16 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e',
17 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r',
18 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i',
19 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d',
20 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p',
21 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
22 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m',
23 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d',
24 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a',
25 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o',
26 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a',
27 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2',
28 '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b',
29 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u',
30 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n',
31 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p',
32 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b',
33 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o',
34 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y',
35 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o',
36 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o',
37 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r',
38 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O',
39 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a',
40 't','K','u','r','t','V','o','n','n','e','g','u','K','u','r','t',
41 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c',
42 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I',
43 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e',
44 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9',
45 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
46 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
47 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
48 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u',
49 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r',
50 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c',
51 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v',
52 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h',
53 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y',
54 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s',
55 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n',
56 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e',
57 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i',
58 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e',
59 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r',
60 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
61 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y',
62 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t',
63 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e',
64 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u',
65 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B',
66 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a',
67 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a',
68 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l',
69 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y',
70 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h',
71 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t',
72 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d',
73 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e',
74 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e',
75 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a',
76 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o',
77 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r',
78 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r',
79 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n',
80 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M',
81 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l',
82 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f',
83 '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I',
84 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o',
85 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f',
86 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o',
87 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e',
88 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s',
89 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o',
90 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w',
91 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m',
92 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i',
93 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a',
94 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g',
95 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d',
96 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c',
97 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e',
98 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
99 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d',
100 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s',
101 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b',
102 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h',
103 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d',
104 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e',
105 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k',
106 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e',
107 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a',
108 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w',
109 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i',
110 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n',
111 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r',
112 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r',
113 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m',
114 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b',
115 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o',
116 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u',
117 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
118 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
119 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
120 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
121 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
122 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
123 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
124 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
125 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
126 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
127 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
128 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
129 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
130 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
131 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
132 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
133 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
134 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
135 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
136 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
137 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
138 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
139 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
140 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
141 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
142 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
143 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
144 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
145 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
146 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
147 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
148 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
149 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
150 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
151 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
152 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
153 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
154 'o','r','r','y','K','u','r','t','V','o','n','n','e','g','u','t',
155 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d',
156 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a',
157 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e',
158 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
159 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
160 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
161 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s',
162 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h',
163 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t',
164 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e',
165 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e',
166 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e',
167 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a',
168 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i',
169 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a',
170 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c',
171 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h',
172 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y',
173 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t',
174 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e',
175 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o',
176 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o',
177 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
178 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y',
179 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m',
180 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l',
181 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o',
182 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a',
183 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g',
184 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o',
185 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o',
186 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l',
187 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k',
188 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t',
189 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t',
190 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t',
191 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o',
192 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u',
193 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m',
194 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s',
195 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e',
196 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s',
197 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e',
198 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y',
199 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t',
200 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e',
201 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n',
202 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s',
203 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n',
204 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s',
205 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t',
206 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b',
207 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e',
208 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r',
209 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i',
210 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d',
211 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p',
212 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
213 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m',
214 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d',
215 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a',
216 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o',
217 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a',
218 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2',
219 '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b',
220 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u',
221 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n',
222 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p',
223 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b',
224 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o',
225 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y',
226 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o',
227 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o',
228 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r',
229 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O',
230 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a',
231 't','K','u','r','t','V','o','n','n','e','g','u','t','s','C','o',
232 'm','m','e','n','c','e','m','e','n','t','A','d','d','r','e','s',
233 's','a','t','M','I','T','L','a','d','i','e','s','a','n','d','g',
234 'e','n','t','l','e','m','e','n','o','f','t','h','e','c','l','a',
235 's','s','o','f','9','7','W','e','a','r','s','u','n','s','c','r',
236 'e','e','n','I','f','I','c','o','u','l','d','o','f','f','e','r',
237 'y','o','u','o','n','l','y','o','n','e','t','i','p','f','o','r',
238 't','h','e','f','u','t','u','r','e','s','u','n','s','c','r','e',
239 'e','n','w','o','u','l','d','b','e','i','t','T','h','e','l','o',
240 'n','g','t','e','r','m','b','e','n','e','f','i','t','s','o','f',
241 's','u','n','s','c','r','e','e','n','h','a','v','e','b','e','e',
242 'n','p','r','o','v','e','d','b','y','s','c','i','e','n','t','i',
243 's','t','s','w','h','e','r','e','a','s','t','h','e','r','e','s',
244 't','o','f','m','y','a','d','v','i','c','e','h','a','s','n','o',
245 'b','a','s','i','s','m','o','r','e','r','e','l','i','a','b','l',
246 'e','t','h','a','n','m','y','o','w','n','m','e','a','n','d','e',
247 'r','i','n','g','e','x','p','e','r','i','e','n','c','e','I','w',
248 'i','l','l','d','i','s','p','e','n','s','e','t','h','i','s','a',
249 'd','v','i','c','e','n','o','w','E','n','j','o','y','t','h','e',
250 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f',
251 'y','o','u','r','y','o','u','t','h','O','h','n','e','v','e','r',
252 'm','i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n',
253 'd','e','r','s','t','a','n','d','t','h','e','p','o','w','e','r',
254 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
255 'o','u','t','h','u','n','t','i','l','t','h','e','y','v','e','f',
256 'a','d','e','d','B','u','t','t','r','u','s','t','m','e','i','n',
257 '2','0','y','e','a','r','s','y','o','u','l','l','l','o','o','k',
258 'b','a','c','k','a','t','p','h','o','t','o','s','o','f','y','o',
259 'u','r','s','e','l','f','a','n','d','r','e','c','a','l','l','i',
260 'n','a','w','a','y','y','o','u','c','a','n','t','g','r','a','s',
261 'p','n','o','w','h','o','w','m','u','c','h','p','o','s','s','i',
262 'b','i','l','i','t','y','l','a','y','b','e','f','o','r','e','y',
263 'o','u','a','n','d','h','o','w','f','a','b','u','l','o','u','s',
264 'y','o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y',
265 'o','u','a','r','e','n','o','t','a','s','f','a','t','a','s','y',
266 'o','u','i','m','a','g','i','n','e','D','o','n','t','w','o','r',
267 'r','y','a','b','o','u','t','t','h','e','f','u','t','u','r','e',
268 'O','r','w','o','r','r','y','b','u','t','k','n','o','w','t','h',
269 'a','t','K','u','r','t','V','o','n','n','e','g','u','t','s','C',
270 'o','m','m','e','n','c','e','m','e','n','t','A','d','d','r','e',
271 's','s','a','t','M','I','T','L','a','d','i','e','s','a','n','d',
272 'g','e','n','t','l','e','m','e','n','o','f','t','h','e','c','l',
273 'a','s','s','o','f','9','7','W','e','a','r','s','u','n','s','c',
274 'r','e','e','n','I','f','I','c','o','u','l','d','o','f','f','e',
275 'r','y','o','u','o','n','l','y','o','n','e','t','i','p','f','o',
276 'r','t','h','e','f','u','t','u','r','e','s','u','n','s','c','r',
277 'e','e','n','w','o','u','l','d','b','e','i','t','T','h','e','l',
278 'o','n','g','t','e','r','m','b','e','n','e','f','i','t','s','o',
279 'f','s','u','n','s','c','r','e','e','n','h','a','v','e','b','e',
280 'e','n','p','r','o','v','e','d','b','y','s','c','i','e','n','t',
281 'i','s','t','s','w','h','e','r','e','a','s','t','h','e','r','e',
282 's','t','o','f','m','y','a','d','v','i','c','e','h','a','s','n',
283 'o','b','a','s','i','s','m','o','r','e','r','e','l','i','a','b',
284 'l','e','t','h','a','n','m','y','o','w','n','m','e','a','n','d',
285 'e','r','i','n','g','e','x','p','e','r','i','e','n','c','e','I',
286 'w','i','l','l','d','i','s','p','e','n','s','e','t','h','i','s',
287 'a','d','v','i','c','e','n','o','w','E','n','j','o','y','t','h',
288 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o',
289 'f','y','o','u','r','y','o','u','t','h','O','h','n','e','v','e',
290 'r','m','i','n','d','Y','o','u','w','i','l','l','n','o','t','u',
291 'n','d','e','r','s','t','a','n','d','t','h','e','p','o','w','e',
292 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
293 'y','o','u','t','h','u','n','t','i','l','t','h','e','y','v','e',
294 'f','a','d','e','d','B','u','t','t','r','u','s','t','m','e','i',
295 'n','2','0','y','e','a','r','s','y','o','u','l','l','l','o','o',
296 'k','b','a','c','k','a','t','p','h','o','t','o','s','o','f','y',
297 'o','u','r','s','e','l','f','a','n','d','r','e','c','a','l','l',
298 'i','n','a','w','a','y','y','o','u','c','a','n','t','g','r','a',
299 's','p','n','o','w','h','o','w','m','u','c','h','p','o','s','s',
300 'i','b','i','l','i','t','y','l','a','y','b','e','f','o','r','e',
301 'y','o','u','a','n','d','h','o','w','f','a','b','u','l','o','u',
302 's','y','o','u','r','e','a','l','l','y','l','o','o','k','e','d',
303 'Y','o','u','a','r','e','n','o','t','a','s','f','a','t','a','s',
304 'y','o','u','i','m','a','g','i','n','e','D','o','n','t','w','o',
305 'r','r','y','a','b','o','u','t','t','h','e','f','u','t','u','r',
306 'e','O','r','w','o','r','r','y','b','u','t','k','n','o','w','t',
307 'h','a','t','t','s','C','o','m','m','e','n','c','e','m','e','n',
308 't','A','d','d','r','e','s','s','a','t','M','I','T','L','a','d',
309 'i','e','s','a','n','d','g','e','n','t','l','e','m','e','n','o',
310 'f','t','h','e','c','l','a','s','s','o','f','9','7','W','e','a',
311 'r','s','u','n','s','c','r','e','e','n','I','f','I','c','o','u',
312 'l','d','o','f','f','e','r','y','o','u','o','n','l','y','o','n',
313 'e','t','i','p','f','o','r','t','h','e','f','u','t','u','r','e',
314 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m',
315 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s',
316 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e',
317 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s',
318 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e',
319 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y',
320 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t',
321 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e',
322 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n',
323 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s',
324 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n',
325 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s',
326 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t',
327 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b',
328 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e',
329 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r',
330 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i',
331 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d',
332 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p',
333 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
334 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m',
335 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d',
336 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a',
337 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o',
338 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a',
339 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2',
340 '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b',
341 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u',
342 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n',
343 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p',
344 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b',
345 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o',
346 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y',
347 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o',
348 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o',
349 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r',
350 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O',
351 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a',
352 't','K','u','r','t','V','o','n','n','e','g','u','t','s','C','o',
353 'm','m','e','n','c','e','m','e','n','t','A','d','d','r','e','s',
354 's','a','t','M','I','T','L','a','d','i','e','s','a','n','d','g',
355 'e','n','t','l','e','m','e','n','o','f','t','h','e','c','l','a',
356 's','s','o','f','9','7','W','e','a','r','s','u','n','s','c','r',
357 'e','e','n','I','f','I','c','o','u','l','d','o','f','f','e','r',
358 'y','o','u','o','n','l','y','o','n','e','t','i','p','f','o','r',
359 't','h','e','f','u','t','u','r','e','s','u','n','s','c','r','e',
360 'e','n','w','o','u','l','d','b','e','i','t','T','h','e','l','o',
361 'n','g','t','e','r','m','b','e','n','e','f','i','t','s','o','f',
362 's','u','n','s','c','r','e','e','n','h','a','v','e','b','e','e',
363 'n','p','r','o','v','e','d','b','y','s','c','i','e','n','t','i',
364 's','t','s','w','h','e','r','e','a','s','t','h','e','r','e','s',
365 't','o','f','m','y','a','d','v','i','c','e','h','a','s','n','o',
366 'b','a','s','i','s','m','o','r','e','r','e','l','i','a','b','l',
367 'e','t','h','a','n','m','y','o','w','n','m','e','a','n','d','e',
368 'r','i','n','g','e','x','p','e','r','i','e','n','c','e','I','w',
369 'i','l','l','d','i','s','p','e','n','s','e','t','h','i','s','a',
370 'd','v','i','c','e','n','o','w','E','n','j','o','y','t','h','e',
371 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f',
372 'y','o','u','r','y','o','u','t','h','O','h','n','e','v','e','r',
373 'm','i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n',
374 'd','e','r','s','t','a','n','d','t','h','e','p','o','w','e','r',
375 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
376 'o','u','t','h','u','n','t','i','l','t','h','e','y','v','e','f',
377 'a','d','e','d','B','u','t','t','r','u','s','t','m','e','i','n',
378 '2','0','y','e','a','r','s','y','o','u','l','l','l','o','o','k',
379 'b','a','c','k','a','t','p','h','o','t','o','s','o','f','y','o',
380 'u','r','s','e','l','f','a','n','d','r','e','c','a','l','l','i',
381 'n','a','w','a','y','y','o','u','c','a','n','t','g','r','a','s',
382 'p','n','o','w','h','o','w','m','u','c','h','p','o','s','s','i',
383 'b','i','l','i','t','y','l','a','y','b','e','f','o','r','e','y',
384 'o','u','a','n','d','h','o','w','f','a','b','u','l','o','u','s',
385 'y','o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y',
386 'o','u','a','r','e','n','o','t','a','s','f','a','t','a','s','y',
387 'o','u','i','m','a','g','i','n','e','D','o','n','t','w','o','r',
388 'r','y','a','b','o','u','t','t','h','e','f','u','t','u','r','e',
389 'O','r','w','o','r','r','y','b','u','t','k','n','o','w','t','h',
390 'a','t','K','u','r','t','V','o','n','n','e','g','u','t','s','C',
391 'o','m','m','e','n','c','e','m','e','n','t','A','d','d','r','e',
392 's','s','a','t','M','I','T','L','a','d','i','e','s','a','n','d',
393 'g','e','n','t','l','e','m','e','n','o','f','t','h','e','c','l',
394 'a','s','s','o','f','9','7','W','e','a','r','s','u','n','s','c',
395 'r','e','e','n','I','f','I','c','o','u','l','d','o','f','f','e',
396 'r','y','o','u','o','n','l','y','o','n','e','t','i','p','f','o',
397 'r','t','h','e','f','u','t','u','r','e','s','u','n','s','c','r',
398 'e','e','n','w','o','u','l','d','b','e','i','t','T','h','e','l',
399 'o','n','g','t','e','r','m','b','e','n','e','f','i','t','s','o',
400 'f','s','u','n','s','c','r','e','e','n','h','a','v','e','b','e',
401 'e','n','p','r','o','v','e','d','b','y','s','c','i','e','n','t',
402 'i','s','t','s','w','h','e','r','e','a','s','t','h','e','r','e',
403 's','t','o','f','m','y','a','d','v','i','c','e','h','a','s','n',
404 'o','b','a','s','i','s','m','o','r','e','r','e','l','i','a','b',
405 'l','e','t','h','a','n','m','y','o','w','n','m','e','a','n','d',
406 'e','r','i','n','g','e','x','p','e','r','i','e','n','c','e','I',
407 'w','i','l','l','d','i','s','p','e','n','s','e','t','h','i','s',
408 'a','d','v','i','c','e','n','o','w','E','n','j','o','y','t','h',
409 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o',
410 'f','y','o','u','r','y','o','u','t','h','O','h','n','e','v','e',
411 'r','m','i','n','d','Y','o','u','w','i','l','l','n','o','t','u',
412 'n','d','e','r','s','t','a','n','d','t','h','e','p','o','w','e',
413 'r','a','K','u','r','t','V','o','n','n','e','g','u','t','s','C',
414 'o','m','m','e','n','c','e','m','e','n','t','A','d','d','r','e',
415 's','s','a','t','M','I','T','L','a','d','i','e','s','a','n','d',
416 'g','e','n','t','l','e','m','e','n','o','f','t','h','e','c','l',
417 'a','s','s','o','f','9','7','W','e','a','r','s','u','n','s','c',
418 'r','e','e','n','I','f','I','c','o','u','l','d','o','f','f','e',
419 'r','y','o','u','o','n','l','y','o','n','e','t','i','p','f','o',
420 'r','t','h','e','f','u','t','u','r','e','s','u','n','s','c','r',
421 'e','e','n','w','o','u','l','d','b','e','i','t','T','h','e','l',
422 'o','n','g','t','e','r','m','b','e','n','e','f','i','t','s','o',
423 'f','s','u','n','s','c','r','e','e','n','h','a','v','e','b','e',
424 'e','n','p','r','o','v','e','d','b','y','s','c','i','e','n','t',
425 'i','s','t','s','w','h','e','r','e','a','s','t','h','e','r','e',
426 's','t','o','f','m','y','a','d','v','i','c','e','h','a','s','n',
427 'o','b','a','s','i','s','m','o','r','e','r','e','l','i','a','b',
428 'l','e','t','h','a','n','m','y','o','w','n','m','e','a','n','d',
429 'e','r','i','n','g','e','x','p','e','r','i','e','n','c','e','I',
430 'w','i','l','l','d','i','s','p','e','n','s','e','t','h','i','s',
431 'a','d','v','i','c','e','n','o','w','E','n','j','o','y','t','h',
432 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o',
433 'f','y','o','u','r','y','o','u','t','h','O','h','n','e','v','e',
434 'r','m','i','n','d','Y','o','u','w','i','l','l','n','o','t','u',
435 'n','d','e','r','s','t','a','n','d','t','h','e','p','o','w','e',
436 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
437 'y','o','u','t','h','u','n','t','i','l','t','h','e','y','v','e',
438 'f','a','d','e','d','B','u','t','t','r','u','s','t','m','e','i',
439 'n','2','0','y','e','a','r','s','y','o','u','l','l','l','o','o',
440 'k','b','a','c','k','a','t','p','h','o','t','o','s','o','f','y',
441 'o','u','r','s','e','l','f','a','n','d','r','e','c','a','l','l',
442 'i','n','a','w','a','y','y','o','u','c','a','n','t','g','r','a',
443 's','p','n','o','w','h','o','w','m','u','c','h','p','o','s','s',
444 'i','b','i','l','i','t','y','l','a','y','b','e','f','o','r','e',
445 'y','o','u','a','n','d','h','o','w','f','a','b','u','l','o','u',
446 's','y','o','u','r','e','a','l','l','y','l','o','o','k','e','d',
447 'Y','o','u','a','r','e','n','o','t','a','s','f','a','t','a','s',
448 'y','o','u','i','m','a','g','i','n','e','D','o','n','t','w','o',
449 'r','r','y','a','b','o','u','t','t','h','e','f','u','t','u','r',
450 'e','O','r','w','o','r','r','y','b','u','t','k','n','o','w','t',
451 'h','a','t','K','u','r','t','V','o','n','n','e','g','u','K','u',
452 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
453 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
454 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
455 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
456 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
457 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
458 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
459 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
460 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
461 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
462 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
463 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
464 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
465 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
466 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
467 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
468 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
469 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
470 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
471 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
472 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
473 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
474 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
475 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
476 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
477 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
478 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
479 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
480 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
481 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
482 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
483 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
484 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
485 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
486 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
487 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
488 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
489 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','K',
490 'u','r','t','V','o','n','n','e','g','u','t','s','C','o','m','m',
491 'e','n','c','e','m','e','n','t','A','d','d','r','e','s','s','a',
492 't','M','I','T','L','a','d','i','e','s','a','n','d','g','e','n',
493 't','l','e','m','e','n','o','f','t','h','e','c','l','a','s','s',
494 'o','f','9','7','W','e','a','r','s','u','n','s','c','r','e','e',
495 'n','I','f','I','c','o','u','l','d','o','f','f','e','r','y','o',
496 'u','o','n','l','y','o','n','e','t','i','p','f','o','r','t','h',
497 'e','f','u','t','u','r','e','s','u','n','s','c','r','e','e','n',
498 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g',
499 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u',
500 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p',
501 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t',
502 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o',
503 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a',
504 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t',
505 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i',
506 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l',
507 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v',
508 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o',
509 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
510 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i',
511 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e',
512 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n',
513 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u',
514 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d',
515 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0',
516 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a',
517 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r',
518 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a',
519 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n',
520 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i',
521 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u',
522 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o',
523 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u',
524 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u',
525 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y',
526 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r',
527 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t',
528 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m',
529 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s',
530 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e',
531 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s',
532 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e',
533 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y',
534 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t',
535 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e',
536 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n',
537 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s',
538 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n',
539 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s',
540 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t',
541 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b',
542 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e',
543 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r',
544 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i',
545 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d',
546 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p',
547 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
548 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m',
549 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d',
550 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a',
551 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o',
552 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a',
553 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2',
554 '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b',
555 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u',
556 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n',
557 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p',
558 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b',
559 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o',
560 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y',
561 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o',
562 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o',
563 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r',
564 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O',
565 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a',
566 't','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A',
567 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e',
568 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t',
569 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s',
570 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d',
571 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t',
572 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','K','u',
573 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
574 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
575 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
576 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
577 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
578 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
579 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
580 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
581 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
582 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
583 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
584 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
585 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
586 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
587 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
588 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
589 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
590 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
591 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
592 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
593 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
594 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
595 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
596 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
597 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
598 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
599 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
600 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
601 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
602 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
603 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
604 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
605 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
606 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
607 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
608 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
609 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
610 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','K',
611 'u','r','t','V','o','n','n','e','g','u','t','s','C','o','m','m',
612 'e','n','c','e','m','e','n','t','A','d','d','r','e','s','s','a',
613 't','M','I','T','L','a','d','i','e','s','a','n','d','g','e','n',
614 't','l','e','m','e','n','o','f','t','h','e','c','l','a','s','s',
615 'o','f','9','7','W','e','a','r','s','u','n','s','c','r','e','e',
616 'n','I','f','I','c','o','u','l','d','o','f','f','e','r','y','o',
617 'u','o','n','l','y','o','n','e','t','i','p','f','o','r','t','h',
618 'e','f','u','t','u','r','e','s','u','n','s','c','r','e','e','n',
619 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g',
620 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u',
621 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p',
622 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t',
623 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o',
624 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a',
625 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t',
626 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i',
627 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l',
628 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v',
629 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o',
630 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
631 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i',
632 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e',
633 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n',
634 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u',
635 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d',
636 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0',
637 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a',
638 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r',
639 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a',
640 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n',
641 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i',
642 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u',
643 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o',
644 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u',
645 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u',
646 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y',
647 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r',
648 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t',
649 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m',
650 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s',
651 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e',
652 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s',
653 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e',
654 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y',
655 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t',
656 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e',
657 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n',
658 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s',
659 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n',
660 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s',
661 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t',
662 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b',
663 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e',
664 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r',
665 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i',
666 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d',
667 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p',
668 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
669 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m',
670 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d',
671 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a',
672 'K','u','r','t','V','o','n','n','e','g','u','t','s','C','o','m',
673 'm','e','n','c','e','m','e','n','t','A','d','d','r','e','s','s',
674 'a','t','M','I','T','L','a','d','i','e','s','a','n','d','g','e',
675 'n','t','l','e','m','e','n','o','f','t','h','e','c','l','a','s',
676 's','o','f','9','7','W','e','a','r','s','u','n','s','c','r','e',
677 'e','n','I','f','I','c','o','u','l','d','o','f','f','e','r','y',
678 'o','u','o','n','l','y','o','n','e','t','i','p','f','o','r','t',
679 'h','e','f','u','t','u','r','e','s','u','n','s','c','r','e','e',
680 'n','w','o','u','l','d','b','e','i','t','T','h','e','l','o','n',
681 'g','t','e','r','m','b','e','n','e','f','i','t','s','o','f','s',
682 'u','n','s','c','r','e','e','n','h','a','v','e','b','e','e','n',
683 'p','r','o','v','e','d','b','y','s','c','i','e','n','t','i','s',
684 't','s','w','h','e','r','e','a','s','t','h','e','r','e','s','t',
685 'o','f','m','y','a','d','v','i','c','e','h','a','s','n','o','b',
686 'a','s','i','s','m','o','r','e','r','e','l','i','a','b','l','e',
687 't','h','a','n','m','y','o','w','n','m','e','a','n','d','e','r',
688 'i','n','g','e','x','p','e','r','i','e','n','c','e','I','w','i',
689 'l','l','d','i','s','p','e','n','s','e','t','h','i','s','a','d',
690 'v','i','c','e','n','o','w','E','n','j','o','y','t','h','e','p',
691 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
692 'o','u','r','y','o','u','t','h','O','h','n','e','v','e','r','m',
693 'i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d',
694 'e','r','s','t','a','n','d','t','h','e','p','o','w','e','r','a',
695 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o',
696 'u','t','h','u','n','t','i','l','t','h','e','y','v','e','f','a',
697 'd','e','d','B','u','t','t','r','u','s','t','m','e','i','n','2',
698 '0','y','e','a','r','s','y','o','u','l','l','l','o','o','k','b',
699 'a','c','k','a','t','p','h','o','t','o','s','o','f','y','o','u',
700 'r','s','e','l','f','a','n','d','r','e','c','a','l','l','i','n',
701 'a','w','a','y','y','o','u','c','a','n','t','g','r','a','s','p',
702 'n','o','w','h','o','w','m','u','c','h','p','o','s','s','i','b',
703 'i','l','i','t','y','l','a','y','b','e','f','o','r','e','y','o',
704 'u','a','n','d','h','o','w','f','a','b','u','l','o','u','s','y',
705 'o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o',
706 'u','a','r','e','n','o','t','a','s','f','a','t','a','s','y','o',
707 'u','i','m','a','g','i','n','e','D','o','n','t','w','o','r','r',
708 'y','a','b','o','u','t','t','h','e','f','u','t','u','r','e','O',
709 'r','w','o','r','r','y','b','u','t','k','n','o','w','t','h','a',
710 't','K','u','r','t','V','o','n','n','e','g','u','K','u','r','t',
711 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c',
712 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I',
713 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e',
714 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9',
715 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
716 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
717 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
718 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u',
719 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r',
720 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c',
721 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v',
722 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h',
723 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y',
724 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s',
725 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n',
726 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e',
727 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i',
728 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e',
729 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r',
730 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
731 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y',
732 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t',
733 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e',
734 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u',
735 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B',
736 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a',
737 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a',
738 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l',
739 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y',
740 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h',
741 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t',
742 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d',
743 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e',
744 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e',
745 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a',
746 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o',
747 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r',
748 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r',
749 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n',
750 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M',
751 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l',
752 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f',
753 '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I',
754 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o',
755 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f',
756 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o',
757 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e',
758 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s',
759 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o',
760 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w',
761 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m',
762 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i',
763 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a',
764 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g',
765 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d',
766 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c',
767 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e',
768 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
769 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d',
770 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s',
771 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b',
772 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h',
773 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d',
774 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e',
775 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k',
776 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e',
777 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a',
778 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w',
779 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i',
780 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n',
781 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r',
782 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r',
783 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m',
784 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b',
785 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o',
786 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u',
787 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
788 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
789 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
790 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
791 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
792 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
793 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
794 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
795 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
796 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
797 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
798 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
799 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
800 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
801 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
802 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
803 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
804 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
805 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
806 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
807 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
808 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
809 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
810 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
811 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
812 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
813 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
814 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
815 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
816 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
817 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
818 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
819 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
820 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
821 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
822 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
823 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
824 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','t',
825 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d',
826 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a',
827 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e',
828 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
829 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
830 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
831 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t',
832 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c',
833 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I',
834 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e',
835 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9',
836 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
837 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
838 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
839 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u',
840 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r',
841 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c',
842 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v',
843 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h',
844 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y',
845 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s',
846 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n',
847 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e',
848 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i',
849 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e',
850 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r',
851 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
852 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y',
853 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t',
854 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e',
855 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u',
856 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B',
857 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a',
858 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a',
859 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l',
860 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y',
861 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h',
862 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t',
863 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d',
864 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e',
865 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e',
866 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a',
867 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o',
868 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r',
869 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r',
870 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n',
871 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M',
872 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l',
873 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f',
874 '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I',
875 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o',
876 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f',
877 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o',
878 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e',
879 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s',
880 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o',
881 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w',
882 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m',
883 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i',
884 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a',
885 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g',
886 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d',
887 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c',
888 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e',
889 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
890 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d',
891 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s',
892 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b',
893 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h',
894 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d',
895 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e',
896 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k',
897 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e',
898 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a',
899 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w',
900 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i',
901 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n',
902 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r',
903 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r',
904 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m',
905 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b',
906 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o',
907 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u',
908 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
909 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
910 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
911 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
912 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
913 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
914 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
915 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
916 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
917 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
918 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
919 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
920 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
921 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
922 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
923 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
924 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
925 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
926 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
927 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
928 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
929 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
930 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
931 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
932 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
933 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
934 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
935 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
936 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
937 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
938 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
939 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
940 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
941 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
942 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
943 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
944 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
945 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s',
946 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i',
947 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e',
948 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h',
949 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s',
950 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s',
951 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c',
952 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r',
953 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n',
954 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i',
955 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s',
956 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n',
957 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e',
958 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O',
959 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l',
960 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h',
961 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o',
962 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t',
963 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u',
964 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u',
965 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t',
966 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r',
967 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a',
968 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c',
969 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b',
970 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a',
971 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l',
972 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s',
973 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D',
974 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e',
975 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t',
976 'k','n','o','w','t','h','a','t','n','d','b','e','a','u','t','y',
977 'o','f','y','o','u','r','y','o','u','t','h','u','n','t','i','l',
978 't','h','e','y','v','e','f','a','d','e','d','B','u','t','t','r',
979 'u','s','t','m','e','i','n','2','0','y','e','a','r','s','y','o',
980 'u','l','l','l','o','o','k','b','a','c','k','a','t','p','h','o',
981 't','o','s','o','f','y','o','u','r','s','e','l','f','a','n','d',
982 'r','e','c','a','l','l','i','n','a','w','a','y','y','o','u','c',
983 'a','n','t','g','r','a','s','p','n','o','w','h','o','w','m','u',
984 'c','h','p','o','s','s','i','b','i','l','i','t','y','l','a','y',
985 'b','e','f','o','r','e','y','o','u','a','n','d','h','o','w','f',
986 'a','b','u','l','o','u','s','y','o','u','r','e','a','l','l','y',
987 'l','o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a',
988 's','f','a','t','a','s','y','o','u','i','m','a','g','i','n','e',
989 'D','o','n','t','w','o','r','r','y','a','b','o','u','t','t','h',
990 'e','f','u','t','u','r','e','O','r','w','o','r','r','y','b','u',
991 't','k','n','o','w','t','h','a','t','s','u','n','s','c','r','e',
992 'e','n','w','o','u','l','d','b','e','i','t','T','h','e','l','o',
993 'n','g','t','e','r','m','b','e','n','e','f','i','t','s','o','f',
994 's','u','n','s','c','r','e','e','n','h','a','v','e','b','e','e',
995 'n','p','r','o','v','e','d','b','y','s','c','i','e','n','t','i',
996 's','t','s','w','h','e','r','e','a','s','t','h','e','r','e','s',
997 't','o','f','m','y','a','d','v','i','c','e','h','a','s','n','o',
998 'b','a','s','i','s','m','o','r','e','r','e','l','i','a','b','l',
999 'e','t','h','a','n','m','y','o','w','n','m','e','a','n','d','e',
1000 'r','i','n','g','e','x','p','e','r','i','e','n','c','e','I','w',
1001 'i','l','l','d','i','s','p','e','n','s','e','t','h','i','s','a',
1002 'd','v','i','c','e','n','o','w','E','n','j','o','y','t','h','e',
1003 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f',
1004 'y','o','u','r','y','o','u','t','h','O','h','n','e','v','e','r',
1005 'm','i','n','d','Y','o','u','w','i','l','l','n','o','t','u','n',
1006 'd','e','r','s','t','a','n','d','t','h','e','p','o','w','e','r',
1007 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
1008 'o','u','t','h','u','n','t','i','l','t','h','e','y','v','e','f',
1009 'a','d','e','d','B','u','t','t','r','u','s','t','m','e','i','n',
1010 '2','0','y','e','a','r','s','y','o','u','l','l','l','o','o','k',
1011 'b','a','c','k','a','t','p','h','o','t','o','s','o','f','y','o',
1012 'u','r','s','e','l','f','a','n','d','r','e','c','a','l','l','i',
1013 'n','a','w','a','y','y','o','u','c','a','n','t','g','r','a','s',
1014 'p','n','o','w','h','o','w','m','u','c','h','p','o','s','s','i',
1015 'b','i','l','i','t','y','l','a','y','b','e','f','o','r','e','y',
1016 'o','u','a','n','d','h','o','w','f','a','b','u','l','o','u','s',
1017 'y','o','u','r','e','a','l','l','y','l','o','o','k','e','d','Y',
1018 'o','u','a','r','e','n','o','t','a','s','f','a','t','a','s','y',
1019 'o','u','i','m','a','g','i','n','e','D','o','n','t','w','o','r',
1020 'r','y','a','b','o','u','t','t','h','e','f','u','t','u','r','e',
1021 'O','r','w','o','r','r','y','b','u','t','k','n','o','w','t','h',
1022 'a','t','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
1023 'y','o','u','t','h','u','n','t','i','l','t','h','e','y','v','e',
1024 'f','a','d','e','d','B','u','t','t','r','u','s','t','m','e','i',
1025 'n','2','0','y','e','a','r','s','y','o','u','l','l','l','o','o',
1026 'k','b','a','c','k','a','t','p','h','o','t','o','s','o','f','y',
1027 'o','u','r','s','e','l','f','a','n','d','r','e','c','a','l','l',
1028 'i','n','a','w','a','y','y','o','u','c','a','n','t','g','r','a',
1029 's','p','n','o','w','h','o','w','m','u','c','h','p','o','s','s',
1030 'i','b','i','l','i','t','y','l','a','y','b','e','f','o','r','e',
1031 'y','o','u','a','n','d','h','o','w','f','a','b','u','l','o','u',
1032 's','y','o','u','r','e','a','l','l','y','l','o','o','k','e','d',
1033 'Y','o','u','a','r','e','n','o','t','a','s','f','a','t','a','s',
1034 'y','o','u','i','m','a','g','i','n','e','D','o','n','t','w','o',
1035 'r','r','y','a','b','o','u','t','t','h','e','f','u','t','u','r',
1036 'e','O','r','w','o','r','r','y','b','u','t','k','n','o','w','t',
1037 'h','a','t','s','u','n','s','c','r','e','e','n','w','o','u','l',
1038 'd','b','e','i','t','T','h','e','l','o','n','g','t','e','r','m',
1039 'b','e','n','e','f','i','t','s','o','f','s','u','n','s','c','r',
1040 'e','e','n','h','a','v','e','b','e','e','n','p','r','o','v','e',
1041 'd','b','y','s','c','i','e','n','t','i','s','t','s','w','h','e',
1042 'r','e','a','s','t','h','e','r','e','s','t','o','f','m','y','a',
1043 'd','v','i','c','e','h','a','s','n','o','b','a','s','i','s','m',
1044 'o','r','e','r','e','l','i','a','b','l','e','t','h','a','n','m',
1045 'y','o','w','n','m','e','a','n','d','e','r','i','n','g','e','x',
1046 'p','e','r','i','e','n','c','e','I','w','i','l','l','d','i','s',
1047 'p','e','n','s','e','t','h','i','s','a','d','v','i','c','e','n',
1048 'o','w','E','n','j','o','y','t','h','e','p','o','w','e','r','a',
1049 'n','d','b','e','a','u','t','y','o','f','y','o','u','r','y','o',
1050 'u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y','o',
1051 'u','w','i','l','l','n','o','t','u','n','d','e','r','s','t','a',
1052 'n','d','t','h','e','p','o','w','e','r','a','n','d','b','e','a',
1053 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','u','n',
1054 't','i','l','t','h','e','y','v','e','f','a','d','e','d','B','u',
1055 't','t','r','u','s','t','m','e','i','n','2','0','y','e','a','r',
1056 's','y','o','u','l','l','l','o','o','k','b','a','c','k','a','t',
1057 'p','h','o','t','o','s','o','f','y','o','u','r','s','e','l','f',
1058 'a','n','d','r','e','c','a','l','l','i','n','a','w','a','y','y',
1059 'o','u','c','a','n','t','g','r','a','s','p','n','o','w','h','o',
1060 'w','m','u','c','h','p','o','s','s','i','b','i','l','i','t','y',
1061 'l','a','y','b','e','f','o','r','e','y','o','u','a','n','d','h',
1062 'o','w','f','a','b','u','l','o','u','s','y','o','u','r','e','a',
1063 'l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e','n',
1064 'o','t','a','s','f','a','t','a','s','y','o','u','i','m','a','g',
1065 'i','n','e','D','o','n','t','w','o','r','r','y','a','b','o','u',
1066 't','t','h','e','f','u','t','u','r','e','O','r','w','o','r','r',
1067 'y','b','u','t','k','n','o','w','t','h','a','t','b','u','t','k',
1068 'n','o','w','t','h','a','t','t','s','C','o','m','m','e','n','c',
1069 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I',
1070 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e',
1071 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9',
1072 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
1073 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
1074 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
1075 't','u','r','e','K','u','r','t','V','o','n','n','e','g','u','t',
1076 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d',
1077 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a',
1078 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e',
1079 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
1080 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
1081 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
1082 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s',
1083 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h',
1084 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t',
1085 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e',
1086 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e',
1087 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e',
1088 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a',
1089 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i',
1090 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a',
1091 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c',
1092 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h',
1093 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y',
1094 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t',
1095 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e',
1096 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o',
1097 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o',
1098 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
1099 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y',
1100 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m',
1101 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l',
1102 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o',
1103 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a',
1104 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g',
1105 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o',
1106 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o',
1107 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l',
1108 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k',
1109 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t',
1110 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t',
1111 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t',
1112 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o',
1113 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u',
1114 't','s','C','o','m','m','e','n','c','e','m','e','n','t','A','d',
1115 'd','r','e','s','s','a','t','M','I','T','L','a','d','i','e','s',
1116 'a','n','d','g','e','n','t','l','e','m','e','n','o','f','t','h',
1117 'e','c','l','a','s','s','o','f','9','7','W','e','a','r','s','u',
1118 'n','s','c','r','e','e','n','I','f','I','c','o','u','l','d','o',
1119 'f','f','e','r','y','o','u','o','n','l','y','o','n','e','t','i',
1120 'p','f','o','r','t','h','e','f','u','t','u','r','e','s','u','n',
1121 's','c','r','e','e','n','w','o','u','l','d','b','e','i','t','T',
1122 'h','e','l','o','n','g','t','e','r','m','b','e','n','e','f','i',
1123 't','s','o','f','s','u','n','s','c','r','e','e','n','h','a','v',
1124 'e','b','e','e','n','p','r','o','v','e','d','b','y','s','c','i',
1125 'e','n','t','i','s','t','s','w','h','e','r','e','a','s','t','h',
1126 'e','r','e','s','t','o','f','m','y','a','d','v','i','c','e','h',
1127 'a','s','n','o','b','a','s','i','s','m','o','r','e','r','e','l',
1128 'i','a','b','l','e','t','h','a','n','m','y','o','w','n','m','e',
1129 'a','n','d','e','r','i','n','g','e','x','p','e','r','i','e','n',
1130 'c','e','I','w','i','l','l','d','i','s','p','e','n','s','e','t',
1131 'h','i','s','a','d','v','i','c','e','n','o','w','E','n','j','o',
1132 'y','t','h','e','p','o','w','e','r','a','n','d','b','e','a','u',
1133 't','y','o','f','y','o','u','r','y','o','u','t','h','O','h','n',
1134 'e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n',
1135 'o','t','u','n','d','e','r','s','t','a','n','d','t','h','e','p',
1136 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
1137 'o','u','r','y','o','u','t','h','u','n','t','i','l','t','h','e',
1138 'y','v','e','f','a','d','e','d','B','u','t','t','r','u','s','t',
1139 'm','e','i','n','2','0','y','e','a','r','s','y','o','u','l','l',
1140 'l','o','o','k','b','a','c','k','a','t','p','h','o','t','o','s',
1141 'o','f','y','o','u','r','s','e','l','f','a','n','d','r','e','c',
1142 'a','l','l','i','n','a','w','a','y','y','o','u','c','a','n','t',
1143 'g','r','a','s','p','n','o','w','h','o','w','m','u','c','h','p',
1144 'o','s','s','i','b','i','l','i','t','y','l','a','y','b','e','f',
1145 'o','r','e','y','o','u','a','n','d','h','o','w','f','a','b','u',
1146 'l','o','u','s','y','o','u','r','e','a','l','l','y','l','o','o',
1147 'k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a',
1148 't','a','s','y','o','u','i','m','a','g','i','n','e','D','o','n',
1149 't','w','o','r','r','y','a','b','o','u','t','t','h','e','f','u',
1150 't','u','r','e','O','r','w','o','r','r','y','b','u','t','k','n',
1151 'o','w','t','h','a','t','K','u','r','t','V','o','n','n','e','g',
1152 'u','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A',
1153 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e',
1154 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t',
1155 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s',
1156 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d',
1157 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t',
1158 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','s','u',
1159 'n','s','c','r','e','e','n','w','o','u','l','d','b','e','i','t',
1160 'T','h','e','l','o','n','g','t','e','r','m','b','e','n','e','f',
1161 'i','t','s','o','f','s','u','n','s','c','r','e','e','n','h','a',
1162 'v','e','b','e','e','n','p','r','o','v','e','d','b','y','s','c',
1163 'i','e','n','t','i','s','t','s','w','h','e','r','e','a','s','t',
1164 'h','e','r','e','s','t','o','f','m','y','a','d','v','i','c','e',
1165 'h','a','s','n','o','b','a','s','i','s','m','o','r','e','r','e',
1166 'l','i','a','b','l','e','t','h','a','n','m','y','o','w','n','m',
1167 'e','a','n','d','e','r','i','n','g','e','x','p','e','r','i','e',
1168 'n','c','e','I','w','i','l','l','d','i','s','p','e','n','s','e',
1169 't','h','i','s','a','d','v','i','c','e','n','o','w','E','n','j',
1170 'o','y','t','h','e','p','o','w','e','r','a','n','d','b','e','a',
1171 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','O','h',
1172 'n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l',
1173 'n','o','t','u','n','d','e','r','s','t','a','n','d','t','h','e',
1174 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f',
1175 'y','o','u','r','y','o','u','t','h','u','n','t','i','l','t','h',
1176 'e','y','v','e','f','a','d','e','d','B','u','t','t','r','u','s',
1177 't','m','e','i','n','2','0','y','e','a','r','s','y','o','u','l',
1178 'l','l','o','o','k','b','a','c','k','a','t','p','h','o','t','o',
1179 's','o','f','y','o','u','r','s','e','l','f','a','n','d','r','e',
1180 'c','a','l','l','i','n','a','w','a','y','y','o','u','c','a','n',
1181 't','g','r','a','s','p','n','o','w','h','o','w','m','u','c','h',
1182 'p','o','s','s','i','b','i','l','i','t','y','l','a','y','b','e',
1183 'f','o','r','e','y','o','u','a','n','d','h','o','w','f','a','b',
1184 'u','l','o','u','s','y','o','u','r','e','a','l','l','y','l','o',
1185 'o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f',
1186 'a','t','a','s','y','o','u','i','m','a','g','i','n','e','D','o',
1187 'n','t','w','o','r','r','y','a','b','o','u','t','t','h','e','f',
1188 'u','t','u','r','e','O','r','w','o','r','r','y','b','u','t','k',
1189 'n','o','w','t','h','a','t','s','u','n','s','c','r','e','e','n',
1190 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g',
1191 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u',
1192 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p',
1193 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t',
1194 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o',
1195 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a',
1196 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t',
1197 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i',
1198 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l',
1199 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v',
1200 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o',
1201 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
1202 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i',
1203 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e',
1204 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n',
1205 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u',
1206 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d',
1207 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0',
1208 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a',
1209 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r',
1210 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a',
1211 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n',
1212 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i',
1213 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u',
1214 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o',
1215 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u',
1216 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u',
1217 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y',
1218 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r',
1219 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t',
1220 '\n', 'l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
1221 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
1222 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
1223 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t',
1224 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c',
1225 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I',
1226 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e',
1227 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9',
1228 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
1229 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
1230 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
1231 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u',
1232 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r',
1233 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c',
1234 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v',
1235 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h',
1236 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y',
1237 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s',
1238 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n',
1239 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e',
1240 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i',
1241 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e',
1242 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r',
1243 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
1244 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y',
1245 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t',
1246 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e',
1247 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u',
1248 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B',
1249 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a',
1250 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a',
1251 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l',
1252 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y',
1253 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h',
1254 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t',
1255 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d',
1256 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e',
1257 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e',
1258 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a',
1259 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o',
1260 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r',
1261 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r',
1262 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n',
1263 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M',
1264 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l',
1265 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f',
1266 '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I',
1267 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o',
1268 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f',
1269 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o',
1270 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e',
1271 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s',
1272 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o',
1273 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w',
1274 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m',
1275 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i',
1276 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a',
1277 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g',
1278 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d',
1279 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c',
1280 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e',
1281 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
1282 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d',
1283 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s',
1284 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b',
1285 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h',
1286 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d',
1287 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e',
1288 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k',
1289 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e',
1290 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a',
1291 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w',
1292 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i',
1293 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n',
1294 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r',
1295 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r',
1296 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m',
1297 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b',
1298 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o',
1299 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u',
1300 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
1301 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
1302 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
1303 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
1304 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
1305 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
1306 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
1307 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
1308 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
1309 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
1310 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
1311 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
1312 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
1313 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
1314 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
1315 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
1316 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
1317 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
1318 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
1319 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
1320 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
1321 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
1322 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
1323 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
1324 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
1325 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
1326 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
1327 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
1328 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
1329 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
1330 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
1331 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
1332 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
1333 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
1334 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
1335 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
1336 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
1337 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s',
1338 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i',
1339 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e',
1340 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h',
1341 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s',
1342 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s',
1343 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c',
1344 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r',
1345 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n',
1346 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i',
1347 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s',
1348 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n',
1349 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e',
1350 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O',
1351 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l',
1352 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h',
1353 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o',
1354 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t',
1355 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u',
1356 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u',
1357 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t',
1358 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r',
1359 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a',
1360 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c',
1361 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b',
1362 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a',
1363 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l',
1364 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s',
1365 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D',
1366 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e',
1367 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t',
1368 'k','n','o','w','t','h','a','t','\n', 'l','a','s','s','o','f','9',
1369 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
1370 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
1371 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
1372 't','u','r','e','K','u','r','t','V','o','n','n','e','g','u','t',
1373 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d',
1374 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a',
1375 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e',
1376 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
1377 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
1378 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
1379 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s',
1380 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h',
1381 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t',
1382 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e',
1383 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e',
1384 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e',
1385 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a',
1386 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i',
1387 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a',
1388 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c',
1389 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h',
1390 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y',
1391 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t',
1392 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e',
1393 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o',
1394 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o',
1395 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
1396 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y',
1397 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m',
1398 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l',
1399 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o',
1400 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a',
1401 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g',
1402 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o',
1403 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o',
1404 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l',
1405 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k',
1406 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t',
1407 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t',
1408 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t',
1409 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o',
1410 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u',
1411 't','s','C','o','m','m','e','n','c','e','m','e','n','t','A','d',
1412 'd','r','e','s','s','a','t','M','I','T','L','a','d','i','e','s',
1413 'a','n','d','g','e','n','t','l','e','m','e','n','o','f','t','h',
1414 'e','c','l','a','s','s','o','f','9','7','W','e','a','r','s','u',
1415 'n','s','c','r','e','e','n','I','f','I','c','o','u','l','d','o',
1416 'f','f','e','r','y','o','u','o','n','l','y','o','n','e','t','i',
1417 'p','f','o','r','t','h','e','f','u','t','u','r','e','s','u','n',
1418 's','c','r','e','e','n','w','o','u','l','d','b','e','i','t','T',
1419 'h','e','l','o','n','g','t','e','r','m','b','e','n','e','f','i',
1420 't','s','o','f','s','u','n','s','c','r','e','e','n','h','a','v',
1421 'e','b','e','e','n','p','r','o','v','e','d','b','y','s','c','i',
1422 'e','n','t','i','s','t','s','w','h','e','r','e','a','s','t','h',
1423 'e','r','e','s','t','o','f','m','y','a','d','v','i','c','e','h',
1424 'a','s','n','o','b','a','s','i','s','m','o','r','e','r','e','l',
1425 'i','a','b','l','e','t','h','a','n','m','y','o','w','n','m','e',
1426 'a','n','d','e','r','i','n','g','e','x','p','e','r','i','e','n',
1427 'c','e','I','w','i','l','l','d','i','s','p','e','n','s','e','t',
1428 'h','i','s','a','d','v','i','c','e','n','o','w','E','n','j','o',
1429 'y','t','h','e','p','o','w','e','r','a','n','d','b','e','a','u',
1430 't','y','o','f','y','o','u','r','y','o','u','t','h','O','h','n',
1431 'e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n',
1432 'o','t','u','n','d','e','r','s','t','a','n','d','t','h','e','p',
1433 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
1434 'o','u','r','y','o','u','t','h','u','n','t','i','l','t','h','e',
1435 'y','v','e','f','a','d','e','d','B','u','t','t','r','u','s','t',
1436 'm','e','i','n','2','0','y','e','a','r','s','y','o','u','l','l',
1437 'l','o','o','k','b','a','c','k','a','t','p','h','o','t','o','s',
1438 'o','f','y','o','u','r','s','e','l','f','a','n','d','r','e','c',
1439 'a','l','l','i','n','a','w','a','y','y','o','u','c','a','n','t',
1440 'g','r','a','s','p','n','o','w','h','o','w','m','u','c','h','p',
1441 'o','s','s','i','b','i','l','i','t','y','l','a','y','b','e','f',
1442 'o','r','e','y','o','u','a','n','d','h','o','w','f','a','b','u',
1443 'l','o','u','s','y','o','u','r','e','a','l','l','y','l','o','o',
1444 'k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a',
1445 't','a','s','y','o','u','i','m','a','g','i','n','e','D','o','n',
1446 't','w','o','r','r','y','a','b','o','u','t','t','h','e','f','u',
1447 't','u','r','e','O','r','w','o','r','r','y','b','u','t','k','n',
1448 'o','w','t','h','a','t','K','u','r','t','V','o','n','n','e','g',
1449 'u','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A',
1450 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e',
1451 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t',
1452 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s',
1453 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d',
1454 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t',
1455 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','s','u',
1456 'n','s','c','r','e','e','n','w','o','u','l','d','b','e','i','t',
1457 'T','h','e','l','o','n','g','t','e','r','m','b','e','n','e','f',
1458 'i','t','s','o','f','s','u','n','s','c','r','e','e','n','h','a',
1459 'v','e','b','e','e','n','p','r','o','v','e','d','b','y','s','c',
1460 'i','e','n','t','i','s','t','s','w','h','e','r','e','a','s','t',
1461 'h','e','r','e','s','t','o','f','m','y','a','d','v','i','c','e',
1462 'h','a','s','n','o','b','a','s','i','s','m','o','r','e','r','e',
1463 'l','i','a','b','l','e','t','h','a','n','m','y','o','w','n','m',
1464 'e','a','n','d','e','r','i','n','g','e','x','p','e','r','i','e',
1465 'n','c','e','I','w','i','l','l','d','i','s','p','e','n','s','e',
1466 't','h','i','s','a','d','v','i','c','e','n','o','w','E','n','j',
1467 'o','y','t','h','e','p','o','w','e','r','a','n','d','b','e','a',
1468 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','O','h',
1469 'n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l',
1470 'n','o','t','u','n','d','e','r','s','t','a','n','d','t','h','e',
1471 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f',
1472 'y','o','u','r','y','o','u','t','h','u','n','t','i','l','t','h',
1473 'e','y','v','e','f','a','d','e','d','B','u','t','t','r','u','s',
1474 't','m','e','i','n','2','0','y','e','a','r','s','y','o','u','l',
1475 'l','l','o','o','k','b','a','c','k','a','t','p','h','o','t','o',
1476 's','o','f','y','o','u','r','s','e','l','f','a','n','d','r','e',
1477 'c','a','l','l','i','n','a','w','a','y','y','o','u','c','a','n',
1478 't','g','r','a','s','p','n','o','w','h','o','w','m','u','c','h',
1479 'p','o','s','s','i','b','i','l','i','t','y','l','a','y','b','e',
1480 'f','o','r','e','y','o','u','a','n','d','h','o','w','f','a','b',
1481 'u','l','o','u','s','y','o','u','r','e','a','l','l','y','l','o',
1482 'o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f',
1483 'a','t','a','s','y','o','u','i','m','a','g','i','n','e','D','o',
1484 'n','t','w','o','r','r','y','a','b','o','u','t','t','h','e','f',
1485 'u','t','u','r','e','O','r','w','o','r','r','y','b','u','t','k',
1486 'n','o','w','t','h','a','t','s','u','n','s','c','r','e','e','n',
1487 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g',
1488 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u',
1489 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p',
1490 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t',
1491 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o',
1492 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a',
1493 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t',
1494 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i',
1495 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l',
1496 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v',
1497 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o',
1498 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
1499 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i',
1500 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e',
1501 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n',
1502 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u',
1503 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d',
1504 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0',
1505 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a',
1506 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r',
1507 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a',
1508 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n',
1509 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i',
1510 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u',
1511 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o',
1512 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u',
1513 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u',
1514 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y',
1515 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r',
1516 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t',
1517 '\n', 'l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
1518 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
1519 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
1520 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t',
1521 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c',
1522 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I',
1523 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e',
1524 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9',
1525 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
1526 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
1527 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
1528 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u',
1529 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r',
1530 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c',
1531 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v',
1532 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h',
1533 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y',
1534 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s',
1535 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n',
1536 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e',
1537 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i',
1538 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e',
1539 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r',
1540 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
1541 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y',
1542 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t',
1543 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e',
1544 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u',
1545 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B',
1546 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a',
1547 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a',
1548 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l',
1549 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y',
1550 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h',
1551 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t',
1552 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d',
1553 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e',
1554 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e',
1555 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a',
1556 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o',
1557 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r',
1558 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r',
1559 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n',
1560 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M',
1561 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l',
1562 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f',
1563 '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I',
1564 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o',
1565 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f',
1566 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o',
1567 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e',
1568 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s',
1569 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o',
1570 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w',
1571 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m',
1572 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i',
1573 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a',
1574 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g',
1575 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d',
1576 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c',
1577 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e',
1578 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
1579 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d',
1580 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s',
1581 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b',
1582 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h',
1583 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d',
1584 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e',
1585 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k',
1586 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e',
1587 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a',
1588 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w',
1589 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i',
1590 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n',
1591 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r',
1592 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r',
1593 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m',
1594 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b',
1595 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o',
1596 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u',
1597 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
1598 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
1599 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
1600 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
1601 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
1602 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
1603 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
1604 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
1605 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
1606 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
1607 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
1608 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
1609 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
1610 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
1611 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
1612 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
1613 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
1614 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
1615 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
1616 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
1617 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
1618 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
1619 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
1620 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
1621 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
1622 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
1623 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
1624 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
1625 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
1626 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
1627 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
1628 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
1629 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
1630 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
1631 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
1632 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
1633 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
1634 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s',
1635 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i',
1636 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e',
1637 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h',
1638 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s',
1639 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s',
1640 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c',
1641 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r',
1642 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n',
1643 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i',
1644 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s',
1645 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n',
1646 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e',
1647 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O',
1648 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l',
1649 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h',
1650 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o',
1651 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t',
1652 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u',
1653 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u',
1654 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t',
1655 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r',
1656 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a',
1657 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c',
1658 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b',
1659 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a',
1660 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l',
1661 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s',
1662 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D',
1663 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e',
1664 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t',
1665 'k','n','o','w','t','h','a','t','\n', 'l','a','s','s','o','f','9',
1666 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
1667 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
1668 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
1669 't','u','r','e','K','u','r','t','V','o','n','n','e','g','u','t',
1670 's','C','o','m','m','e','n','c','e','m','e','n','t','A','d','d',
1671 'r','e','s','s','a','t','M','I','T','L','a','d','i','e','s','a',
1672 'n','d','g','e','n','t','l','e','m','e','n','o','f','t','h','e',
1673 'c','l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
1674 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
1675 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
1676 'f','o','r','t','h','e','f','u','t','u','r','e','s','u','n','s',
1677 'c','r','e','e','n','w','o','u','l','d','b','e','i','t','T','h',
1678 'e','l','o','n','g','t','e','r','m','b','e','n','e','f','i','t',
1679 's','o','f','s','u','n','s','c','r','e','e','n','h','a','v','e',
1680 'b','e','e','n','p','r','o','v','e','d','b','y','s','c','i','e',
1681 'n','t','i','s','t','s','w','h','e','r','e','a','s','t','h','e',
1682 'r','e','s','t','o','f','m','y','a','d','v','i','c','e','h','a',
1683 's','n','o','b','a','s','i','s','m','o','r','e','r','e','l','i',
1684 'a','b','l','e','t','h','a','n','m','y','o','w','n','m','e','a',
1685 'n','d','e','r','i','n','g','e','x','p','e','r','i','e','n','c',
1686 'e','I','w','i','l','l','d','i','s','p','e','n','s','e','t','h',
1687 'i','s','a','d','v','i','c','e','n','o','w','E','n','j','o','y',
1688 't','h','e','p','o','w','e','r','a','n','d','b','e','a','u','t',
1689 'y','o','f','y','o','u','r','y','o','u','t','h','O','h','n','e',
1690 'v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n','o',
1691 't','u','n','d','e','r','s','t','a','n','d','t','h','e','p','o',
1692 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
1693 'u','r','y','o','u','t','h','u','n','t','i','l','t','h','e','y',
1694 'v','e','f','a','d','e','d','B','u','t','t','r','u','s','t','m',
1695 'e','i','n','2','0','y','e','a','r','s','y','o','u','l','l','l',
1696 'o','o','k','b','a','c','k','a','t','p','h','o','t','o','s','o',
1697 'f','y','o','u','r','s','e','l','f','a','n','d','r','e','c','a',
1698 'l','l','i','n','a','w','a','y','y','o','u','c','a','n','t','g',
1699 'r','a','s','p','n','o','w','h','o','w','m','u','c','h','p','o',
1700 's','s','i','b','i','l','i','t','y','l','a','y','b','e','f','o',
1701 'r','e','y','o','u','a','n','d','h','o','w','f','a','b','u','l',
1702 'o','u','s','y','o','u','r','e','a','l','l','y','l','o','o','k',
1703 'e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a','t',
1704 'a','s','y','o','u','i','m','a','g','i','n','e','D','o','n','t',
1705 'w','o','r','r','y','a','b','o','u','t','t','h','e','f','u','t',
1706 'u','r','e','O','r','w','o','r','r','y','b','u','t','k','n','o',
1707 'w','t','h','a','t','K','u','r','t','V','o','n','n','e','g','u',
1708 't','s','C','o','m','m','e','n','c','e','m','e','n','t','A','d',
1709 'd','r','e','s','s','a','t','M','I','T','L','a','d','i','e','s',
1710 'a','n','d','g','e','n','t','l','e','m','e','n','o','f','t','h',
1711 'e','c','l','a','s','s','o','f','9','7','W','e','a','r','s','u',
1712 'n','s','c','r','e','e','n','I','f','I','c','o','u','l','d','o',
1713 'f','f','e','r','y','o','u','o','n','l','y','o','n','e','t','i',
1714 'p','f','o','r','t','h','e','f','u','t','u','r','e','s','u','n',
1715 's','c','r','e','e','n','w','o','u','l','d','b','e','i','t','T',
1716 'h','e','l','o','n','g','t','e','r','m','b','e','n','e','f','i',
1717 't','s','o','f','s','u','n','s','c','r','e','e','n','h','a','v',
1718 'e','b','e','e','n','p','r','o','v','e','d','b','y','s','c','i',
1719 'e','n','t','i','s','t','s','w','h','e','r','e','a','s','t','h',
1720 'e','r','e','s','t','o','f','m','y','a','d','v','i','c','e','h',
1721 'a','s','n','o','b','a','s','i','s','m','o','r','e','r','e','l',
1722 'i','a','b','l','e','t','h','a','n','m','y','o','w','n','m','e',
1723 'a','n','d','e','r','i','n','g','e','x','p','e','r','i','e','n',
1724 'c','e','I','w','i','l','l','d','i','s','p','e','n','s','e','t',
1725 'h','i','s','a','d','v','i','c','e','n','o','w','E','n','j','o',
1726 'y','t','h','e','p','o','w','e','r','a','n','d','b','e','a','u',
1727 't','y','o','f','y','o','u','r','y','o','u','t','h','O','h','n',
1728 'e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l','n',
1729 'o','t','u','n','d','e','r','s','t','a','n','d','t','h','e','p',
1730 'o','w','e','r','a','n','d','b','e','a','u','t','y','o','f','y',
1731 'o','u','r','y','o','u','t','h','u','n','t','i','l','t','h','e',
1732 'y','v','e','f','a','d','e','d','B','u','t','t','r','u','s','t',
1733 'm','e','i','n','2','0','y','e','a','r','s','y','o','u','l','l',
1734 'l','o','o','k','b','a','c','k','a','t','p','h','o','t','o','s',
1735 'o','f','y','o','u','r','s','e','l','f','a','n','d','r','e','c',
1736 'a','l','l','i','n','a','w','a','y','y','o','u','c','a','n','t',
1737 'g','r','a','s','p','n','o','w','h','o','w','m','u','c','h','p',
1738 'o','s','s','i','b','i','l','i','t','y','l','a','y','b','e','f',
1739 'o','r','e','y','o','u','a','n','d','h','o','w','f','a','b','u',
1740 'l','o','u','s','y','o','u','r','e','a','l','l','y','l','o','o',
1741 'k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f','a',
1742 't','a','s','y','o','u','i','m','a','g','i','n','e','D','o','n',
1743 't','w','o','r','r','y','a','b','o','u','t','t','h','e','f','u',
1744 't','u','r','e','O','r','w','o','r','r','y','b','u','t','k','n',
1745 'o','w','t','h','a','t','K','u','r','t','V','o','n','n','e','g',
1746 'u','t','s','C','o','m','m','e','n','c','e','m','e','n','t','A',
1747 'd','d','r','e','s','s','a','t','M','I','T','L','a','d','i','e',
1748 's','a','n','d','g','e','n','t','l','e','m','e','n','o','f','t',
1749 'h','e','c','l','a','s','s','o','f','9','7','W','e','a','r','s',
1750 'u','n','s','c','r','e','e','n','I','f','I','c','o','u','l','d',
1751 'o','f','f','e','r','y','o','u','o','n','l','y','o','n','e','t',
1752 'i','p','f','o','r','t','h','e','f','u','t','u','r','e','s','u',
1753 'n','s','c','r','e','e','n','w','o','u','l','d','b','e','i','t',
1754 'T','h','e','l','o','n','g','t','e','r','m','b','e','n','e','f',
1755 'i','t','s','o','f','s','u','n','s','c','r','e','e','n','h','a',
1756 'v','e','b','e','e','n','p','r','o','v','e','d','b','y','s','c',
1757 'i','e','n','t','i','s','t','s','w','h','e','r','e','a','s','t',
1758 'h','e','r','e','s','t','o','f','m','y','a','d','v','i','c','e',
1759 'h','a','s','n','o','b','a','s','i','s','m','o','r','e','r','e',
1760 'l','i','a','b','l','e','t','h','a','n','m','y','o','w','n','m',
1761 'e','a','n','d','e','r','i','n','g','e','x','p','e','r','i','e',
1762 'n','c','e','I','w','i','l','l','d','i','s','p','e','n','s','e',
1763 't','h','i','s','a','d','v','i','c','e','n','o','w','E','n','j',
1764 'o','y','t','h','e','p','o','w','e','r','a','n','d','b','e','a',
1765 'u','t','y','o','f','y','o','u','r','y','o','u','t','h','O','h',
1766 'n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l','l',
1767 'n','o','t','u','n','d','e','r','s','t','a','n','d','t','h','e',
1768 'p','o','w','e','r','a','n','d','b','e','a','u','t','y','o','f',
1769 'y','o','u','r','y','o','u','t','h','u','n','t','i','l','t','h',
1770 'e','y','v','e','f','a','d','e','d','B','u','t','t','r','u','s',
1771 't','m','e','i','n','2','0','y','e','a','r','s','y','o','u','l',
1772 'l','l','o','o','k','b','a','c','k','a','t','p','h','o','t','o',
1773 's','o','f','y','o','u','r','s','e','l','f','a','n','d','r','e',
1774 'c','a','l','l','i','n','a','w','a','y','y','o','u','c','a','n',
1775 't','g','r','a','s','p','n','o','w','h','o','w','m','u','c','h',
1776 'p','o','s','s','i','b','i','l','i','t','y','l','a','y','b','e',
1777 'f','o','r','e','y','o','u','a','n','d','h','o','w','f','a','b',
1778 'u','l','o','u','s','y','o','u','r','e','a','l','l','y','l','o',
1779 'o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s','f',
1780 'a','t','a','s','y','o','u','i','m','a','g','i','n','e','D','o',
1781 'n','t','w','o','r','r','y','a','b','o','u','t','t','h','e','f',
1782 'u','t','u','r','e','O','r','w','o','r','r','y','b','u','t','k',
1783 'n','o','w','t','h','a','t','s','u','n','s','c','r','e','e','n',
1784 'w','o','u','l','d','b','e','i','t','T','h','e','l','o','n','g',
1785 't','e','r','m','b','e','n','e','f','i','t','s','o','f','s','u',
1786 'n','s','c','r','e','e','n','h','a','v','e','b','e','e','n','p',
1787 'r','o','v','e','d','b','y','s','c','i','e','n','t','i','s','t',
1788 's','w','h','e','r','e','a','s','t','h','e','r','e','s','t','o',
1789 'f','m','y','a','d','v','i','c','e','h','a','s','n','o','b','a',
1790 's','i','s','m','o','r','e','r','e','l','i','a','b','l','e','t',
1791 'h','a','n','m','y','o','w','n','m','e','a','n','d','e','r','i',
1792 'n','g','e','x','p','e','r','i','e','n','c','e','I','w','i','l',
1793 'l','d','i','s','p','e','n','s','e','t','h','i','s','a','d','v',
1794 'i','c','e','n','o','w','E','n','j','o','y','t','h','e','p','o',
1795 'w','e','r','a','n','d','b','e','a','u','t','y','o','f','y','o',
1796 'u','r','y','o','u','t','h','O','h','n','e','v','e','r','m','i',
1797 'n','d','Y','o','u','w','i','l','l','n','o','t','u','n','d','e',
1798 'r','s','t','a','n','d','t','h','e','p','o','w','e','r','a','n',
1799 'd','b','e','a','u','t','y','o','f','y','o','u','r','y','o','u',
1800 't','h','u','n','t','i','l','t','h','e','y','v','e','f','a','d',
1801 'e','d','B','u','t','t','r','u','s','t','m','e','i','n','2','0',
1802 'y','e','a','r','s','y','o','u','l','l','l','o','o','k','b','a',
1803 'c','k','a','t','p','h','o','t','o','s','o','f','y','o','u','r',
1804 's','e','l','f','a','n','d','r','e','c','a','l','l','i','n','a',
1805 'w','a','y','y','o','u','c','a','n','t','g','r','a','s','p','n',
1806 'o','w','h','o','w','m','u','c','h','p','o','s','s','i','b','i',
1807 'l','i','t','y','l','a','y','b','e','f','o','r','e','y','o','u',
1808 'a','n','d','h','o','w','f','a','b','u','l','o','u','s','y','o',
1809 'u','r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u',
1810 'a','r','e','n','o','t','a','s','f','a','t','a','s','y','o','u',
1811 'i','m','a','g','i','n','e','D','o','n','t','w','o','r','r','y',
1812 'a','b','o','u','t','t','h','e','f','u','t','u','r','e','O','r',
1813 'w','o','r','r','y','b','u','t','k','n','o','w','t','h','a','t',
1814 '\n', 'l','a','s','s','o','f','9','7','W','e','a','r','s','u','n',
1815 's','c','r','e','e','n','I','f','I','c','o','u','l','d','o','f',
1816 'f','e','r','y','o','u','o','n','l','y','o','n','e','t','i','p',
1817 'f','o','r','t','h','e','f','u','t','u','r','e','K','u','r','t',
1818 'V','o','n','n','e','g','u','t','s','C','o','m','m','e','n','c',
1819 'e','m','e','n','t','A','d','d','r','e','s','s','a','t','M','I',
1820 'T','L','a','d','i','e','s','a','n','d','g','e','n','t','l','e',
1821 'm','e','n','o','f','t','h','e','c','l','a','s','s','o','f','9',
1822 '7','W','e','a','r','s','u','n','s','c','r','e','e','n','I','f',
1823 'I','c','o','u','l','d','o','f','f','e','r','y','o','u','o','n',
1824 'l','y','o','n','e','t','i','p','f','o','r','t','h','e','f','u',
1825 't','u','r','e','s','u','n','s','c','r','e','e','n','w','o','u',
1826 'l','d','b','e','i','t','T','h','e','l','o','n','g','t','e','r',
1827 'm','b','e','n','e','f','i','t','s','o','f','s','u','n','s','c',
1828 'r','e','e','n','h','a','v','e','b','e','e','n','p','r','o','v',
1829 'e','d','b','y','s','c','i','e','n','t','i','s','t','s','w','h',
1830 'e','r','e','a','s','t','h','e','r','e','s','t','o','f','m','y',
1831 'a','d','v','i','c','e','h','a','s','n','o','b','a','s','i','s',
1832 'm','o','r','e','r','e','l','i','a','b','l','e','t','h','a','n',
1833 'm','y','o','w','n','m','e','a','n','d','e','r','i','n','g','e',
1834 'x','p','e','r','i','e','n','c','e','I','w','i','l','l','d','i',
1835 's','p','e','n','s','e','t','h','i','s','a','d','v','i','c','e',
1836 'n','o','w','E','n','j','o','y','t','h','e','p','o','w','e','r',
1837 'a','n','d','b','e','a','u','t','y','o','f','y','o','u','r','y',
1838 'o','u','t','h','O','h','n','e','v','e','r','m','i','n','d','Y',
1839 'o','u','w','i','l','l','n','o','t','u','n','d','e','r','s','t',
1840 'a','n','d','t','h','e','p','o','w','e','r','a','n','d','b','e',
1841 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','u',
1842 'n','t','i','l','t','h','e','y','v','e','f','a','d','e','d','B',
1843 'u','t','t','r','u','s','t','m','e','i','n','2','0','y','e','a',
1844 'r','s','y','o','u','l','l','l','o','o','k','b','a','c','k','a',
1845 't','p','h','o','t','o','s','o','f','y','o','u','r','s','e','l',
1846 'f','a','n','d','r','e','c','a','l','l','i','n','a','w','a','y',
1847 'y','o','u','c','a','n','t','g','r','a','s','p','n','o','w','h',
1848 'o','w','m','u','c','h','p','o','s','s','i','b','i','l','i','t',
1849 'y','l','a','y','b','e','f','o','r','e','y','o','u','a','n','d',
1850 'h','o','w','f','a','b','u','l','o','u','s','y','o','u','r','e',
1851 'a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r','e',
1852 'n','o','t','a','s','f','a','t','a','s','y','o','u','i','m','a',
1853 'g','i','n','e','D','o','n','t','w','o','r','r','y','a','b','o',
1854 'u','t','t','h','e','f','u','t','u','r','e','O','r','w','o','r',
1855 'r','y','b','u','t','k','n','o','w','t','h','a','t','K','u','r',
1856 't','V','o','n','n','e','g','u','t','s','C','o','m','m','e','n',
1857 'c','e','m','e','n','t','A','d','d','r','e','s','s','a','t','M',
1858 'I','T','L','a','d','i','e','s','a','n','d','g','e','n','t','l',
1859 'e','m','e','n','o','f','t','h','e','c','l','a','s','s','o','f',
1860 '9','7','W','e','a','r','s','u','n','s','c','r','e','e','n','I',
1861 'f','I','c','o','u','l','d','o','f','f','e','r','y','o','u','o',
1862 'n','l','y','o','n','e','t','i','p','f','o','r','t','h','e','f',
1863 'u','t','u','r','e','s','u','n','s','c','r','e','e','n','w','o',
1864 'u','l','d','b','e','i','t','T','h','e','l','o','n','g','t','e',
1865 'r','m','b','e','n','e','f','i','t','s','o','f','s','u','n','s',
1866 'c','r','e','e','n','h','a','v','e','b','e','e','n','p','r','o',
1867 'v','e','d','b','y','s','c','i','e','n','t','i','s','t','s','w',
1868 'h','e','r','e','a','s','t','h','e','r','e','s','t','o','f','m',
1869 'y','a','d','v','i','c','e','h','a','s','n','o','b','a','s','i',
1870 's','m','o','r','e','r','e','l','i','a','b','l','e','t','h','a',
1871 'n','m','y','o','w','n','m','e','a','n','d','e','r','i','n','g',
1872 'e','x','p','e','r','i','e','n','c','e','I','w','i','l','l','d',
1873 'i','s','p','e','n','s','e','t','h','i','s','a','d','v','i','c',
1874 'e','n','o','w','E','n','j','o','y','t','h','e','p','o','w','e',
1875 'r','a','n','d','b','e','a','u','t','y','o','f','y','o','u','r',
1876 'y','o','u','t','h','O','h','n','e','v','e','r','m','i','n','d',
1877 'Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r','s',
1878 't','a','n','d','t','h','e','p','o','w','e','r','a','n','d','b',
1879 'e','a','u','t','y','o','f','y','o','u','r','y','o','u','t','h',
1880 'u','n','t','i','l','t','h','e','y','v','e','f','a','d','e','d',
1881 'B','u','t','t','r','u','s','t','m','e','i','n','2','0','y','e',
1882 'a','r','s','y','o','u','l','l','l','o','o','k','b','a','c','k',
1883 'a','t','p','h','o','t','o','s','o','f','y','o','u','r','s','e',
1884 'l','f','a','n','d','r','e','c','a','l','l','i','n','a','w','a',
1885 'y','y','o','u','c','a','n','t','g','r','a','s','p','n','o','w',
1886 'h','o','w','m','u','c','h','p','o','s','s','i','b','i','l','i',
1887 't','y','l','a','y','b','e','f','o','r','e','y','o','u','a','n',
1888 'd','h','o','w','f','a','b','u','l','o','u','s','y','o','u','r',
1889 'e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a','r',
1890 'e','n','o','t','a','s','f','a','t','a','s','y','o','u','i','m',
1891 'a','g','i','n','e','D','o','n','t','w','o','r','r','y','a','b',
1892 'o','u','t','t','h','e','f','u','t','u','r','e','O','r','w','o',
1893 'r','r','y','b','u','t','k','n','o','w','t','h','a','t','K','u',
1894 'r','t','V','o','n','n','e','g','u','t','s','C','o','m','m','e',
1895 'n','c','e','m','e','n','t','A','d','d','r','e','s','s','a','t',
1896 'M','I','T','L','a','d','i','e','s','a','n','d','g','e','n','t',
1897 'l','e','m','e','n','o','f','t','h','e','c','l','a','s','s','o',
1898 'f','9','7','W','e','a','r','s','u','n','s','c','r','e','e','n',
1899 'I','f','I','c','o','u','l','d','o','f','f','e','r','y','o','u',
1900 'o','n','l','y','o','n','e','t','i','p','f','o','r','t','h','e',
1901 'f','u','t','u','r','e','s','u','n','s','c','r','e','e','n','w',
1902 'o','u','l','d','b','e','i','t','T','h','e','l','o','n','g','t',
1903 'e','r','m','b','e','n','e','f','i','t','s','o','f','s','u','n',
1904 's','c','r','e','e','n','h','a','v','e','b','e','e','n','p','r',
1905 'o','v','e','d','b','y','s','c','i','e','n','t','i','s','t','s',
1906 'w','h','e','r','e','a','s','t','h','e','r','e','s','t','o','f',
1907 'm','y','a','d','v','i','c','e','h','a','s','n','o','b','a','s',
1908 'i','s','m','o','r','e','r','e','l','i','a','b','l','e','t','h',
1909 'a','n','m','y','o','w','n','m','e','a','n','d','e','r','i','n',
1910 'g','e','x','p','e','r','i','e','n','c','e','I','w','i','l','l',
1911 'd','i','s','p','e','n','s','e','t','h','i','s','a','d','v','i',
1912 'c','e','n','o','w','E','n','j','o','y','t','h','e','p','o','w',
1913 'e','r','a','n','d','b','e','a','u','t','y','o','f','y','o','u',
1914 'r','y','o','u','t','h','O','h','n','e','v','e','r','m','i','n',
1915 'd','Y','o','u','w','i','l','l','n','o','t','u','n','d','e','r',
1916 's','t','a','n','d','t','h','e','p','o','w','e','r','a','n','d',
1917 'b','e','a','u','t','y','o','f','y','o','u','r','y','o','u','t',
1918 'h','u','n','t','i','l','t','h','e','y','v','e','f','a','d','e',
1919 'd','B','u','t','t','r','u','s','t','m','e','i','n','2','0','y',
1920 'e','a','r','s','y','o','u','l','l','l','o','o','k','b','a','c',
1921 'k','a','t','p','h','o','t','o','s','o','f','y','o','u','r','s',
1922 'e','l','f','a','n','d','r','e','c','a','l','l','i','n','a','w',
1923 'a','y','y','o','u','c','a','n','t','g','r','a','s','p','n','o',
1924 'w','h','o','w','m','u','c','h','p','o','s','s','i','b','i','l',
1925 'i','t','y','l','a','y','b','e','f','o','r','e','y','o','u','a',
1926 'n','d','h','o','w','f','a','b','u','l','o','u','s','y','o','u',
1927 'r','e','a','l','l','y','l','o','o','k','e','d','Y','o','u','a',
1928 'r','e','n','o','t','a','s','f','a','t','a','s','y','o','u','i',
1929 'm','a','g','i','n','e','D','o','n','t','w','o','r','r','y','a',
1930 'b','o','u','t','t','h','e','f','u','t','u','r','e','O','r','w',
1931 'o','r','r','y','b','u','t','k','n','o','w','t','h','a','t','s',
1932 'u','n','s','c','r','e','e','n','w','o','u','l','d','b','e','i',
1933 't','T','h','e','l','o','n','g','t','e','r','m','b','e','n','e',
1934 'f','i','t','s','o','f','s','u','n','s','c','r','e','e','n','h',
1935 'a','v','e','b','e','e','n','p','r','o','v','e','d','b','y','s',
1936 'c','i','e','n','t','i','s','t','s','w','h','e','r','e','a','s',
1937 't','h','e','r','e','s','t','o','f','m','y','a','d','v','i','c',
1938 'e','h','a','s','n','o','b','a','s','i','s','m','o','r','e','r',
1939 'e','l','i','a','b','l','e','t','h','a','n','m','y','o','w','n',
1940 'm','e','a','n','d','e','r','i','n','g','e','x','p','e','r','i',
1941 'e','n','c','e','I','w','i','l','l','d','i','s','p','e','n','s',
1942 'e','t','h','i','s','a','d','v','i','c','e','n','o','w','E','n',
1943 'j','o','y','t','h','e','p','o','w','e','r','a','n','d','b','e',
1944 'a','u','t','y','o','f','y','o','u','r','y','o','u','t','h','O',
1945 'h','n','e','v','e','r','m','i','n','d','Y','o','u','w','i','l',
1946 'l','n','o','t','u','n','d','e','r','s','t','a','n','d','t','h',
1947 'e','p','o','w','e','r','a','n','d','b','e','a','u','t','y','o',
1948 'f','y','o','u','r','y','o','u','t','h','u','n','t','i','l','t',
1949 'h','e','y','v','e','f','a','d','e','d','B','u','t','t','r','u',
1950 's','t','m','e','i','n','2','0','y','e','a','r','s','y','o','u',
1951 'l','l','l','o','o','k','b','a','c','k','a','t','p','h','o','t',
1952 'o','s','o','f','y','o','u','r','s','e','l','f','a','n','d','r',
1953 'e','c','a','l','l','i','n','a','w','a','y','y','o','u','c','a',
1954 'n','t','g','r','a','s','p','n','o','w','h','o','w','m','u','c',
1955 'h','p','o','s','s','i','b','i','l','i','t','y','l','a','y','b',
1956 'e','f','o','r','e','y','o','u','a','n','d','h','o','w','f','a',
1957 'b','u','l','o','u','s','y','o','u','r','e','a','l','l','y','l',
1958 'o','o','k','e','d','Y','o','u','a','r','e','n','o','t','a','s',
1959 'f','a','t','a','s','y','o','u','i','m','a','g','i','n','e','D',
1960 'o','n','t','w','o','r','r','y','a','b','o','u','t','t','h','e',
1961 'f','u','t','u','r','e','O','r','w','o','r','r','y','b','u','t',
1962 'k','n','o','w','t','h','a','t','\n'
1963};
diff --git a/baseline/source/rijndael_enc/rijndael_enc.c b/baseline/source/rijndael_enc/rijndael_enc.c
new file mode 100644
index 0000000..f74d595
--- /dev/null
+++ b/baseline/source/rijndael_enc/rijndael_enc.c
@@ -0,0 +1,238 @@
1/*
2
3 This program is part of the TACLeBench benchmark suite.
4 Version V 2.0
5
6 Name: rijndael_enc
7
8 Author: Dr Brian Gladman
9
10 Function: rijndael_enc is an implementation of the AES encryption
11 algorithm (Rijndael).
12
13 Source: security section of MiBench
14
15 Changes: Add computation of a checksum, refactoring
16
17 License: see below
18
19*/
20
21/*
22 -----------------------------------------------------------------------
23 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
24
25 TERMS
26
27 Redistribution and use in source and binary forms, with or without
28 modification, are permitted provided that the following conditions
29 are met:
30 1. Redistributions of source code must retain the above copyright
31 notice, this list of conditions and the following disclaimer.
32 2. Redistributions in binary form must reproduce the above copyright
33 notice, this list of conditions and the following disclaimer in the
34 documentation and/or other materials provided with the distribution.
35
36 This software is provided 'as is' with no guarantees of correctness or
37 fitness for purpose.
38 -----------------------------------------------------------------------
39*/
40
41#include "../extra.h"
42#include "aes.h"
43#include "rijndael_enc_libc.h"
44
45/*
46 Global variable definitions
47*/
48unsigned char rijndael_enc_key[32];
49int rijndael_enc_key_len;
50
51extern unsigned char rijndael_enc_data[];
52struct rijndael_enc_FILE rijndael_enc_fin;
53
54int rijndael_enc_checksum = 0;
55
56/*
57 Forward declaration of functions
58*/
59void rijndael_enc_init( void );
60int rijndael_enc_return( void );
61void rijndael_enc_fillrand( unsigned char *buf, int len );
62void rijndael_enc_encfile( struct rijndael_enc_FILE *fin, struct aes *ctx );
63void rijndael_enc_main( void );
64
65void rijndael_enc_init( void )
66{
67 /* create a pseudo-file for the input*/
68 rijndael_enc_fin.data = rijndael_enc_data;
69 rijndael_enc_fin.size = 31369;
70 rijndael_enc_fin.cur_pos = 0;
71
72 unsigned i;
73 volatile int x = 0;
74 rijndael_enc_fin.size ^= x;
75 _Pragma( "loopbound min 31369 max 31369" )
76 for ( i = 0; i < rijndael_enc_fin.size; i++ )
77 rijndael_enc_fin.data[i] ^= x;
78
79 /* this is a pointer to the hexadecimal key digits */
80 const volatile char *cp =
81 "1234567890abcdeffedcba09876543211234567890abcdeffedcba0987654321";
82 char ch;
83 int by = 0;
84
85 i = 0; /* this is a count for the input digits processed */
86 _Pragma( "loopbound min 64 max 64" )
87 while ( i < 64 && *cp ) { /* the maximum key length is 32 bytes and */
88 /* hence at most 64 hexadecimal digits */
89 ch = rijndael_enc_toupper( *cp++ ); /* process a hexadecimal digit */
90 if ( ch >= '0' && ch <= '9' )
91 by = ( by << 4 ) + ch - '0';
92 else
93 if ( ch >= 'A' && ch <= 'F' )
94 by = ( by << 4 ) + ch - 'A' + 10;
95 else { /* error if not hexadecimal */
96 rijndael_enc_checksum = -2;
97 return;
98 }
99
100 /* store a key byte for each pair of hexadecimal digits */
101 if ( i++ & 1 )
102 rijndael_enc_key[i / 2 - 1] = by & 0xff;
103 }
104
105 if ( *cp ) {
106 rijndael_enc_checksum = -3;
107 return;
108 } else
109 if ( i < 32 || ( i & 15 ) ) {
110 rijndael_enc_checksum = -4;
111 return;
112 }
113
114 rijndael_enc_key_len = i / 2;
115}
116
117int rijndael_enc_return( void )
118{
119 return ( ( rijndael_enc_checksum == ( int )249509 ) ? 0 : -1 );
120}
121
122/* A Pseudo Random Number Generator (PRNG) used for the */
123/* Initialisation Vector. The PRNG is George Marsaglia's */
124/* Multiply-With-Carry (MWC) PRNG that concatenates two */
125/* 16-bit MWC generators: */
126/* x(n)=36969 * x(n-1) + carry mod 2^16 */
127/* y(n)=18000 * y(n-1) + carry mod 2^16 */
128/* to produce a combined PRNG with a period of about 2^60. */
129
130#define RAND(a,b) (((a = 36969 * (a & 65535) + (a >> 16)) << 16) + (b = 18000 * (b & 65535) + (b >> 16)) )
131
132void rijndael_enc_fillrand( unsigned char *buf, int len )
133{
134 static unsigned long a[2], mt = 1, count = 4;
135 static char r[4];
136 int i;
137
138 if ( mt ) {
139 mt = 0;
140 a[0] = 0xeaf3;
141 a[1] = 0x35fe;
142 }
143
144 _Pragma( "loopbound min 1 max 16" )
145 for ( i = 0; i < len; ++i ) {
146 if ( count == 4 ) {
147 *( unsigned long * )r = RAND( a[0], a[1] );
148 count = 0;
149 }
150
151 buf[i] = r[count++];
152 }
153}
154
155void rijndael_enc_encfile( struct rijndael_enc_FILE *fin, struct aes *ctx )
156{
157 unsigned char inbuf[16], outbuf[16];
158 long int flen;
159 unsigned long i = 0, l = 0;
160
161 rijndael_enc_fillrand( outbuf,
162 16 ); /* set an IV for CBC mode */
163 flen = fin->size;
164
165 rijndael_enc_fillrand( inbuf,
166 1 ); /* make top 4 bits of a byte random */
167 l = 15; /* and store the length of the last */
168 /* block in the lower 4 bits */
169 inbuf[0] = ( ( char )flen & 15 ) | ( inbuf[0] & ~15 );
170
171 /* TODO: this is necessarily an input-dependent loop bound */
172 _Pragma( "loopbound min 1961 max 1961" )
173 while ( !rijndael_enc_feof(
174 fin ) ) { /* loop to encrypt the input file */
175 /* input 1st 16 bytes to buf[1..16] */
176 i = rijndael_enc_fread( inbuf + 16 - l, 1, l, fin ); /* on 1st round byte[0] */
177 /* is the length code */
178 if ( i < l ) break; /* if end of the input file reached */
179
180 _Pragma( "loopbound min 16 max 16" )
181 for ( i = 0; i < 16; ++i ) /* xor in previous cipher text */
182 inbuf[i] ^= outbuf[i];
183
184 rijndael_enc_encrypt( inbuf, outbuf,
185 ctx ); /* and do the encryption */
186
187 rijndael_enc_checksum += outbuf[15];
188
189 /* in all but first round read 16 */
190 l = 16; /* bytes into the buffer */
191 }
192
193 /* except for files of length less than two blocks we now have one */
194 /* byte from the previous block and 'i' bytes from the current one */
195 /* to encrypt and 15 - i empty buffer positions. For files of less */
196 /* than two blocks (0 or 1) we have i + 1 bytes and 14 - i empty */
197 /* buffer position to set to zero since the 'count' byte is extra */
198
199 if ( l == 15 ) /* adjust for extra byte in the */
200 ++i; /* in the first block */
201
202 if ( i ) { /* if bytes remain to be output */
203 _Pragma( "loopbound min 6 max 6" )
204 while ( i < 16 ) /* clear empty buffer positions */
205 inbuf[i++] = 0;
206
207 _Pragma( "loopbound min 16 max 16" )
208 for ( i = 0; i < 16; ++i ) /* xor in previous cipher text */
209 inbuf[i] ^= outbuf[i];
210
211 rijndael_enc_encrypt( inbuf, outbuf, ctx ); /* encrypt and output it */
212
213 rijndael_enc_checksum += outbuf[15];
214 }
215}
216
217void _Pragma( "entrypoint" ) rijndael_enc_main( void )
218{
219 struct aes ctx[1];
220
221 /* encryption in Cipher Block Chaining mode */
222 rijndael_enc_set_key( rijndael_enc_key, rijndael_enc_key_len, enc, ctx );
223 rijndael_enc_encfile( &rijndael_enc_fin, ctx );
224}
225
226int main( int argc, char** argv )
227{
228 SET_UP
229 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){
230 START_LOOP
231 rijndael_enc_init();
232 rijndael_enc_main();
233 STOP_LOOP
234 }
235 WRITE_TO_FILE
236 return ( rijndael_enc_return() );
237}
238
diff --git a/baseline/source/rijndael_enc/rijndael_enc_libc.c b/baseline/source/rijndael_enc/rijndael_enc_libc.c
new file mode 100644
index 0000000..921af68
--- /dev/null
+++ b/baseline/source/rijndael_enc/rijndael_enc_libc.c
@@ -0,0 +1,66 @@
1#include "rijndael_enc_libc.h"
2
3int rijndael_enc_toupper( int c )
4{
5 if ( ( c >= 'a' ) && ( c <= 'z' ) )
6 return c - 'a' + 'A';
7 return c;
8}
9
10unsigned long rijndael_enc_fread( void *ptr, unsigned long size,
11 unsigned long count, struct rijndael_enc_FILE *stream )
12{
13 unsigned i = stream->cur_pos, i2 = 0;
14 unsigned long number_of_chars_to_read =
15 stream->size - stream->cur_pos >= size * count ?
16 size * count : stream->size - stream->cur_pos;
17 _Pragma( "loopbound min 10 max 16" )
18 while ( i < stream->cur_pos + number_of_chars_to_read )
19 ( ( unsigned char * )ptr )[i2++] = stream->data[i++];
20 stream->cur_pos += number_of_chars_to_read;
21 return number_of_chars_to_read;
22}
23
24unsigned long rijndael_enc_fwrite( const void *ptr, unsigned long size,
25 unsigned long count, struct rijndael_enc_FILE *stream )
26{
27 unsigned i = stream->cur_pos, i2 = 0;
28 unsigned long number_of_chars_to_write =
29 stream->size - stream->cur_pos >= size * count ?
30 size * count : stream->size - stream->cur_pos;
31 _Pragma( "loopbound min 0 max 0" )
32 while ( i < stream->cur_pos + number_of_chars_to_write )
33 stream->data[i++] = ( ( unsigned char * )ptr )[i2++];
34 stream->cur_pos += number_of_chars_to_write;
35 return number_of_chars_to_write;
36}
37
38int rijndael_enc_fseek( struct rijndael_enc_FILE *stream, long int offset,
39 Origin origin )
40{
41 if ( origin == RIJNDAEL_ENC_SEEK_SET ) {
42 stream->cur_pos = offset;
43 return 0;
44 } else
45 if ( origin == RIJNDAEL_ENC_SEEK_CUR ) {
46 stream->cur_pos += offset;
47 return 0;
48 } else
49 if ( origin == RIJNDAEL_ENC_SEEK_END ) {
50 stream->cur_pos = stream->size + offset;
51 return 0;
52 }
53 return -1;
54}
55
56int rijndael_enc_fgetpos( struct rijndael_enc_FILE *stream,
57 unsigned *position )
58{
59 *position = stream->cur_pos;
60 return 0;
61}
62
63int rijndael_enc_feof( struct rijndael_enc_FILE *stream )
64{
65 return stream->cur_pos == stream->size ? 1 : 0;
66}
diff --git a/baseline/source/rijndael_enc/rijndael_enc_libc.h b/baseline/source/rijndael_enc/rijndael_enc_libc.h
new file mode 100644
index 0000000..6a01397
--- /dev/null
+++ b/baseline/source/rijndael_enc/rijndael_enc_libc.h
@@ -0,0 +1,24 @@
1#ifndef RIJNDAEL_ENC_LIBC_H
2#define RIJNDAEL_ENC_LIBC_H
3
4int rijndael_enc_toupper ( int c );
5
6enum _Origin_ { RIJNDAEL_ENC_SEEK_SET, RIJNDAEL_ENC_SEEK_CUR, RIJNDAEL_ENC_SEEK_END };
7typedef enum _Origin_ Origin;
8struct rijndael_enc_FILE {
9 unsigned char *data;
10 unsigned long size;
11 unsigned cur_pos;
12};
13
14unsigned long rijndael_enc_fread ( void *ptr, unsigned long size,
15 unsigned long count, struct rijndael_enc_FILE *stream );
16unsigned long rijndael_enc_fwrite ( const void *ptr, unsigned long size,
17 unsigned long count, struct rijndael_enc_FILE *stream );
18int rijndael_enc_fseek ( struct rijndael_enc_FILE *stream, long int offset,
19 Origin origin );
20int rijndael_enc_fgetpos( struct rijndael_enc_FILE *stream,
21 unsigned *position );
22int rijndael_enc_feof ( struct rijndael_enc_FILE *stream );
23
24#endif // RIJNDAEL_ENC_LIBC_H