##// END OF EJS Templates
Updating RMT parallel example.
Brian E. Granger -
Show More
This diff has been collapsed as it changes many lines, (1270 lines changed) Show them Hide them
@@ -0,0 +1,1270 b''
1 <?xml version="1.0" encoding="utf-8"?>
2 <notebook>
3 <name>rmt</name>
4 <nbformat>2</nbformat>
5 <worksheets>
6 <worksheet>
7 <cells>
8 <markdowncell>
9 <source># Eigenvalue distribution of Gaussian orthogonal random matrices</source>
10 </markdowncell>
11 <markdowncell>
12 <source>The eigenvalues of random matrices obey certain statistical laws. Here we construct random matrices
13 from the Gaussian Orthogonal Ensemble (GOE), find their eigenvalues and then investigate the nearest
14 neighbor eigenvalue distribution $\rho(s)$.</source>
15 </markdowncell>
16 <codecell>
17 <input>from rmtkernel import ensemble_diffs, normalize_diffs, GOE
18 import numpy as np
19 from IPython.parallel import Client</input>
20 <language>python</language>
21 <prompt_number>1</prompt_number>
22 <collapsed>0</collapsed>
23 <outputs />
24 </codecell>
25 <markdowncell>
26 <source>## Wigner's nearest neighbor eigenvalue distribution</source>
27 </markdowncell>
28 <markdowncell>
29 <source>The Wigner distribution gives the theoretical result for the nearest neighbor eigenvalue distribution
30 for the GOE:
31
32 $$\rho(s) = \frac{\pi s}{2} \exp(-\pi s^2/4)$$</source>
33 </markdowncell>
34 <codecell>
35 <input>def wigner_dist(s):
36 """Returns (s, rho(s)) for the Wigner GOE distribution."""
37 return (np.pi*s/2.0) * np.exp(-np.pi*s**2/4.)</input>
38 <language>python</language>
39 <prompt_number>2</prompt_number>
40 <collapsed>1</collapsed>
41 <outputs />
42 </codecell>
43 <codecell>
44 <input>def generate_wigner_data():
45 s = np.linspace(0.0,4.0,400)
46 rhos = wigner_dist(s)
47 return s, rhos</input>
48 <language>python</language>
49 <prompt_number>3</prompt_number>
50 <collapsed>1</collapsed>
51 <outputs />
52 </codecell>
53 <codecell>
54 <input>s, rhos = generate_wigner_data()</input>
55 <language>python</language>
56 <prompt_number>4</prompt_number>
57 <collapsed>0</collapsed>
58 <outputs />
59 </codecell>
60 <codecell>
61 <input>plot(s, rhos)
62 xlabel('Normalized level spacing s')
63 ylabel('Probability $\rho(s)$')</input>
64 <language>python</language>
65 <prompt_number>17</prompt_number>
66 <collapsed>0</collapsed>
67 <outputs>
68 <output>
69 <output_type>pyout</output_type>
70 <text>&amp;lt;matplotlib.text.Text at 0x3828790&amp;gt;</text>
71 <prompt_number>17</prompt_number>
72 </output>
73 <output>
74 <output_type>display_data</output_type>
75 <png>aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVl3QUFBRU1DQVlBQUFEWGlZR1NBQUFBQkhOQ1NWUUlD
76 QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNW
77 UFgreC9IWHFMaW1tS0pwcVNCSkFTSXdLcUJwT3FVQ1NtWm1wZGF2ClRLM3dkaE8xckt4cmliYWJG
78 cVpvWkxmRjFKdG1wVWxkRVV0RU14Q0ZjczhWbHpTdml1REM0aWpuOThlSkNRUmtCbWJtekF5ZjUr
79 UEIKUTRZNW52UG05R2crbnUrcVV4UkZRUWdoaEtoQ0hhMERDQ0dFY0E1U01JUVFRcGhGQ29ZUVFn
80 aXpTTUVRUWdoaEZpa1lRZ2doekNJRgpRd2doaEZrMEtSaXBxYW40K2ZuaDQrUEQzTGx6eTcxZlVG
81 REFxRkdqME92MTlPM2JsMVdyVm1tUVVnZ2hSR2s2TGVaaDZQVjY1c3laCmc2ZW5KeEVSRVd6YXRB
82 a1BEdy9UK3g5KytDSGJ0MjluL3Z6NUhEbHloTHZ2dnBzREJ3NmcwK25zSFZVSUljUmY3UDZFa1pl
83 WEIwQ2YKUG4zdzlQUWtQRHljOVBUME1zZTR1N3R6NGNJRmpFWWpPVGs1Tkc3Y1dJcUZFRUpvek80
84 Rkl5TWpBMTlmWDlOcmYzOS8wdExTeWh3egpjdVJJcmw2OWlvZUhCNzE3OTJiSmtpWDJqaW1FRU9J
85 YTliUU9VSkY1OCtaUnIxNDlUcDQ4eVk0ZE80aUtpdUxJa1NQVXFWTzJ2c2xUCmh4QkNWRTkxZWlQ
86 cy9vUVJFaExDM3IxN1RhOTM3ZHBGang0OXloeVRtcHJLSTQ4OFF1UEdqUWtMQytQbW0yOW0zNzU5
87 Rlo1UFVSU0gKLzVvMmJacm1HU1NuWkpTY2tyUGtxN3JzWGpEYzNkMEJ0U2hrWjJlVG5KeE1XRmhZ
88 bVdQNjlldkg2dFdyS1M0dTV0Q2hRK1RrNUpScAp4aEpDQ0dGL21qUkp4Y1hGRVIwZGpkRm9KQ1lt
89 Qmc4UER4SVNFZ0NJam81bXhJZ1I3TjY5bSs3ZHU5T3FWU3ZtekptalJVd2hoQkNsCmFGSXcrdmJ0
90 eTU0OWU4cjhMRG82MnZTOXU3dTdTeFVKZzhHZ2RRU3pTRTdyY1lhTUlEbXR6Vmx5VnBjbTh6Q3NS
91 YWZUMWFnOVRnZ2gKYXFQcWZuYkswaUJDQ0NITUlnVkRDQ0dFV2FSZ0NDR0VNSXNVRENHRUVHWnh5
92 Sm5lNHZxS2lpQTlIZGF2aDh4TXVId1ppb3VoUXdlNAo0dzdvMnhlOHZiVk9LWVJ3TlRKS3lva1VG
93 RUJDQXN5Y0NiZmNBbmZkQldGaDBMZ3g2SFJ3NEFEOC9EUDg5QlBvOVRCNU12VHJwNzRuCmhCQWxx
94 dnZaS1FYRFNheGJCNk5HUVdnb1RKc0d3Y0dWSDF0VUJFdVd3T3paY1BQTjhPbW4wSzZkL2JJS0lS
95 eWJES3QxVVlvQzc3MEgKano0S2l4ZkR0OTlldjFnQU5HZ0FZOGJBYjcrcHpWUGR1c0h5NWZiSks0
96 UndYZktFNGNBS0N1REpKMkgzYnJWUWVIcFc3enhidHNELwovUi8wN3EwMmFibTVXVGVuRU1LNXlC
97 T0dpekVhNGI3NzFEODNiYXArc1FDMUdTc3JDLzczUDNqb0liWEpTZ2doTENVRnd3RXBDano5Ck5O
98 U3JwL1pGTkc1YzgzTTJhUUxmZkFOMTZxaUZxS0NnNXVjVVF0UXVVakFjME15WnNIVXJmUG1sV2pT
99 c3BYNTlXTFlNYnJ3Ujdya0gKOHZPdGQyNGhoT3VUUGd3SDg5Vlg4Tnh6OE1zdjZ0QlpXN2g2RlI1
100 NUJPcldWVHZTWmRpdEVMV0xES3QxQVljT3FmTXFrcE9ySGdsVgpVL241Y09lZE1IS2tPbDlEQ0ZG
101 N1NNRndjb3FpVHJJYk5NaCtIK0JIajZvRjZyUFBJQ0xDUHRjVVFtaFBSa2s1dVlVTDRkSWxtRFRK
102 CmZ0ZnMwRUdkbi9IWVkrb3NjU0dFdUI1NXduQUFSNCtxayt0U1VxQnpaL3RmZjhFQ21EY1AwdEtn
103 YVZQN1gxOElZVi9TSk9Xa0ZFVnQKaHVyZEcvNzFMKzB5UFBHRTJ2bjk4Y2ZhWkJCQzJJOVROVW1s
104 cHFiaTUrZUhqNDhQYytmT0xmZityRm16ME92MTZQVjZ1blRwUXIxNgo5Y2pOemRVZ3FlMTkvVFdj
105 T0FFdnZLQmRCcDBPNHVMZ3h4OWh6UnJ0Y2dnaEhKc21UeGg2dlo0NWMrYmc2ZWxKUkVRRW16WnR3
106 c1BECm84SmpFeE1UaVl1TFk5MjZkZVhlYy9ZbmpDdFgxQ2FvdVhNaFBGenJOR3JCR0QwYWR1d0Fk
107 M2V0MHdnaGJNVnBuakR5OHZJQTZOT24KRDU2ZW5vU0hoNU9lbmw3cDhVdVhMbVhreUpIMmltZFhu
108 MzJtenJVWU1FRHJKQ3A3ajlJU1FqZ1h1eGVNakl3TWZIMTlUYS85L2YxSgpTMHVyOE5qOC9IeVNr
109 cElZTm15WXZlTFpUVUVCVEo4T2I3M2xXQlBuWnM1VTU0R3NYYXQxRWlHRW8zSG9IZmRXcjE1Tjc5
110 NjlhZDY4CmVhWEh4TWJHbXI0M0dBd1lEQWJiQjdPQytIZ0lDVkhuUVRpU1pzM1VJYjVQUEFIYnQw
111 dlRsQkN1SUNVbGhaU1VsQnFmeCs1OUdIbDUKZVJnTUJyS3lzZ0FZUDM0OGtaR1JSRVZGbFR0MjZO
112 Q2hEQjgrbkJFalJsUjRMbWZ0dzhqTmhkdHVVNGZSK3Z0cm5hWmlUejJsTG9NZQpINjkxRWlHRXRU
113 bE5INGI3WC85a1RVMU5KVHM3bStUa1pNSXErR2QyWGw0ZXFhbXBEQmt5eE40UmJlNzk5eUVxeW5H
114 TEJjRGJiNnZyCld1M2NxWFVTSVlTajBLUkpLaTR1anVqb2FJeEdJekV4TVhoNGVKQ1FrQUJBZEhR
115 MEFDdFhyaVFpSW9KR2pScHBFZEZtQ2dyVWlYS2IKTm1tZDVQcGF0SUJYWGxGbm5xOWQ2MWo5TEVJ
116 SWJjakVQVHY3K0dOWXVSSVNFN1ZPVWpXakVRSUQ0ZDEzMWVYUWhSQ3V3V21hcEdvegpSWUU1YzJE
117 aVJLMlRtTWZOVGQxUC9Mbm40UEpscmRNSUliUW1CY09PZnZycDcxVnBuY1hBZ2VEdERmUG5hNTFF
118 Q0tFMWFaS3lvOEdECjRkNTc0Y2tudFU1aW1kMjdvVzlmMkxNSEtwbVFMNFJ3SXJMNG9JUGJ2eDk2
119 OVlJalI4QVorL0hIajFlZmp1Yk4wenFKRUtLbXBHQTQKdUpnWWRlbndOOTdRT2tuMW5EMEx2cjdh
120 TGNFdWhMQWVLUmdPTERkWDdRZllzY04yKzNUYlE4bUt0cXRYYTUxRUNGRVRNa3JLZ1gzeQppZHA1
121 N016RkFtRGNPTWpLZ293TXJaTUlJYlFnVHhnMnBpanFNaUJmZkFFOWVtaWRwdWJpNCtHSEgrRDc3
122 N1ZPSW9Tb0xubkNjRkJwCmFWQ3ZudU10TWxoZEpZc1NYbWRGZWlHRWk1S0NZV05mZkFHUFB1bzZT
123 MnMwYUFBdnZ3eWxGZ2tXUXRRUzBpUmxRMFZGYXI5RlppWjAKNktCMUd1c3BLbEtiMlpZdGM0MW1O
124 aUZxRzJtU2NrRGZmdzlkdXJoV3NRQjV5aENpdHBLQ1lVT0xGc0ZqajJtZHdqWkdqMVpuZnYveQpp
125 OVpKaEJEMklrMVNObkxtREhUcUJFZVBxcnZZdWFLUFBvSVZLMlE3VnlHY2pUUkpPWmhseTJEUUlO
126 Y3RGZ0NQUDY0dWVmTHp6MW9uCkVVTFlneFFNRzNIbDVxZ1M5ZXZEdi80RjA2WnBuVVFJWVE5U01H
127 emc5OS9WcHFqKy9iVk9ZbnVqUnNHaFE3QnhvOVpKaEJDMkpnWEQKQnI3NEFoNStXSjJ3NStyYzNP
128 Q2xsK0N0dDdST0lvU3dOZW4wdGpKRmdZNGQxVzFZZzRPMVRtTWZoWVhxNzV5Y0RBRUJXcWNSUWxU
129 RgpxVHE5VTFOVDhmUHp3OGZIaDdsejUxWjRURVpHQmlFaElmajUrV0V3R093YnNBWXlNOVY1Q2tG
130 QldpZXhuNFlONFpsbllOWXNyWk1JCklXeEpreWNNdlY3UG5EbHo4UFQwSkNJaWdrMmJOdUZSYWlz
131 M1JWRUlEQXprL2ZmZnAzLy8vcHc1YzZiTSt5VWM4UW5qbFZmVS9hL2YKZVVmckpQYVZrNk1PSTNi
132 MkpkeUZxQTJjNWdrakx5OFBnRDU5K3VEcDZVbDRlRGpwMTZ4a3QzWHJWZ0lEQStuL1Y2OXhSY1hD
133 VWExYwpDZmZkcDNVSysydlJRbDB6YTg0Y3JaTUlJV3pGN3QyeUdSa1orUHI2bWw3NysvdVRscFpH
134 VkZTVTZXZEpTVW5vZERydXZQTk9tamR2CnpqUFBQRU5FUkVTRjU0c3R0VDZGd1dEUXRQbnF3QUYx
135 d3A2cnJFeHJxVW1Ub0ZzM21EclZ0ZWVmQ09Gc1VsSlNTRWxKcWZGNUhISWMKVDJGaEliLysraXZy
136 MXEwalB6K2ZBUU1Hc0hQblRocFZzQmwyckFNdGFMUnFGUXdlREhWcTZkZ3pMeThJRDFkbmdFK2Vy
137 SFVhSVVTSgphLzh4UFgzNjlHcWR4KzRmYlNFaEllemR1OWYwZXRldVhmUzRac25UbmoxN01uRGdR
138 TnEwYVlPM3R6ZmR1M2NuTlRYVjNsRXRWbHViCm8wcDcvbm0xV2VyeVphMlRDQ0dzemU0Rnc5M2RI
139 VkJIU21Wblo1T2NuRXpZTlcwNFBYcjBZTU9HRGVUbjU1T1RrME5XVmhhOWV2V3kKZDFTTC9POS9h
140 b2Z2M1hkcm5VUmJYYnVxUzU5LythWFdTWVFRMXFaSmsxUmNYQnpSMGRFWWpVWmlZbUx3OFBBZ0lT
141 RUJnT2pvYUZxMgpiTW5vMGFQcDNyMDdyVnExWXNhTUdkeHd3dzFhUkRYYjZ0VnFjMHpEaGxvbjBk
142 N3p6OE1MTDdqV3hsRkNDSm00WnpXREI4UElrZW9NCjc5cE9VZFI1S0ROblFtU2sxbW1FRU5lcTdt
143 ZW5GQXdydUhnUmJyNVpYVCtxZVhPdDB6aUdSWXZnODgvaHh4KzFUaUtFdUpiVHpNTncKUld2WHFs
144 dVZTckg0MjRnUnNHK2ZPdk5kQ09FYXBHQllnWXlPS3E5K2ZaZ3dBZDU5Vitza1FnaHJrU2FwR2pJ
145 YW9VMGIrTzAzYU5kTwoweWdPNS94NWRWSENiZHZVT1JwQ0NNY2dUVklhMmJnUmJyMVZpa1ZGbWpX
146 RHNXUGgvZmUxVGlLRXNBWXBHRFVrelZIWE4yR0N1ajlJClRvN1dTWVFRTlNVRm93WVVSUzBZUTRa
147 b25jUngzWEtMT3VSNDRVS3Rrd2doYWtvS1JnM3MyYU91RytYdnIzVVN4elpwRXN5ZEs4dUYKQ09I
148 c3BHRFVRSEl5REJnZ3M1bXJFaHlzTGhmeTFWZGFKeEZDMUlRVWpCb29LUmlpYXM4K0MrKzlwemJq
149 Q1NHY2t4U01hcnA4R1ZKVApaYkZCY3cwYXBNNklkNEpGaDRVUWxaQ0NVVTFwYWVEakEwNjBHYUNt
150 NnRSUit6TGVlMC9ySkVLSTZwS0NVVTNyMWtsemxLVWVld3cyCmI0YjkrN1ZPSW9Tb0Rvc0x4b1VM
151 RjlpMWF4Y3BLU244OXR0dkZCUVUyQ0tYdzVQK0M4czFiZ3pSMGJMdnR4RE95dXlsUVZhc1dNSHUK
152 M2JzNWNlSUVYbDVldEduVGh1UEhqM1AwNkZHYU5XdkdnQUVES3QxMzIxYTBXaG9rTnhmYXQ0ZlRw
153 MlgvQzB1ZFBBbWRPNnY3bjdkbwpvWFVhSVdvbm15MXZmdm55WlQ3NTVCT0NnNFBMYmFWYVdtSmlJ
154 c2VQSDJmY3VIRVdoNmd1clFyR3Q5L0NoeDlDVXBMZEwrMFNSbzBDClB6K1lNa1hySkVMVVRnNnhI
155 NGFpS09qc09DbEJxNEx4OU5QZzdRMlRKOXY5MGk3aDExOGhLZ29PSDFaWHRSVkMySmZkRmgrOGNP
156 RUMKZS9mdUJkU25qMnREMUFiU2YxRXp3Y0hnNnd2TGwydWRSQWhoQ1lzTHhyZmZmc3Zldlh2cDBh
157 TUhFeVpNWU9YS2xSWmZORFUxRlQ4LwpQM3g4ZkpnN2QyNjU5MU5TVW5CM2QwZXYxNlBYNjNuOTlk
158 Y3R2b2F0WkdkRFhoNTA2YUoxRXVjbUUvbUVjRDRXRjR5aW9pTGMzTnhvCjFxd1pDeFlzNElZYmJy
159 RDRvaE1tVENBaElZRjE2OVlSSHgvUG1UTm55aDNUdDI5ZnNyS3l5TXJLWXVyVXFSWmZ3MWJXcllQ
160 Ky9kVjUKQmFMNkJnNkUvSHpZc0VIckpFSUljMVg1c1ZkVVZNUzVjK2RNcnlNaUl0aTVjeWZ4OGZI
161 TW1qV0xyS3dzMDN0SGpoeXA4b0o1ZVhrQQo5T25UQjA5UFQ4TER3MGxQVHk5M25OWWJJMVZHbXFP
162 c1F5YnlDZUY4cWl3WURSbzBZTU9HRGF4WXNRS2owVWlIRGgxNDhjVVg4Zkh4Cm9WKy9mb3dkTzVi
163 YzNGeGlZMlBadFd0WGxSZk15TWpBMTlmWDlOcmYzNSswdExReXgraDBPalp2M2t4d2NERFBQdnNz
164 Qnc4ZXJNYXYKWm4zRnhmRGpqMUl3ck9YUlI5VVo4L3YyYVoxRUNHR09ldVljZE45OTkzSGt5Qkhl
165 ZnZ0dHpwNDlTMkZoSVVhamtYUG56dEd3WVVQOAovZjE1NXBsbjhMRFNPaGxkdTNibDJMRmp1TG01
166 OGZubm56Tmh3Z1FTRXhNclBEWTJOdGIwdmNGZ3dHQXdXQ1ZEUmJLeW9GVXIyVjNQCldrcFA1SXVQ
167 MXpxTkVLNHJKU1dGbEpTVUdwK24yc05xaTR1THFWT05odnk4dkR3TUJvT3BLV3Y4K1BGRVJrWVNG
168 UlZWNGZHS290Q20KVFJ1T0hqMUtnd1lOeXJ4bjcyRzFiNzhOSjA3QUJ4L1k3Wkl1NytSSmRUK1Jn
169 d2RsSXA4UTltSzNZYlY1ZVhuOCs5Ly9adVhLbGVUbgo1MXQ4UVhkM2QwQWRLWldkblUxeWNqSmhZ
170 V0ZsampsMTZwVHBsMW05ZWpXQmdZSGxpb1VXWlAwbzYydmJWdDJ4TUNGQjZ5UkNpS3BZClhERGVl
171 dXN0R2pWcXhPKy8vODZERHo1b1ZyL0Z0ZUxpNG9pT2pxWi8vLzQ4L2ZUVGVIaDRrSkNRUU1KZm54
172 b3JWcXlnUzVjdUJBY0gKczJMRkNtYlBubTN4TmF5dG9BRFMwNkZ2WDYyVHVKNUprMkRlUE5tUlR3
173 aEhaM0dUMUpJbFMzamtrVWNBdFZscTNyeDV4TVRFMkNSYwpWZXpaSkxWMkxjeVlBWnMyMmVWeXRV
174 Ny8vdXFTSVk4K3FuVVNJVnlmM1pxazZ0YXR5MnV2dmNheFk4Y0FxRmZQckg1enB5ZkRhVzFMCkp2
175 SUo0ZmdzTGhnalJvd2dORFNVRjE5OGtZRURCOUt4WTBkYjVISTQwbjloVzVHUlVGZ0lWaGpJSVlT
176 d0Vhc3VQbWh2OW1xU0tsbk8KUENjSDNOeHNmcmxhNjZPUElERVJ2dnRPNnlSQ3VEYTdOVWxkdkhp
177 UkF3Y09VRnhjek1hTkcxbS9mcjNGRjNVMm16ZERhS2dVQzF1VAppWHhDT0RhTE95QmVmLzExR2pk
178 dXpPN2R1d0h3OFBEZ3JydnVzbm93UjdKeEkvVHVyWFVLMTllb2tUcVJMeTRPNXMvWE9vMFE0bHBt
179 Ck5Vbjk1ei8vSVRRMGxGdHZ2WldNakF4Q1FrSUE5V21qVHAwNk5HN2MyT1pCSzJLdkpxbmV2U0Uy
180 VmgzSkkyenJ6ei9WelpVT0hJQ1cKTGJWT0k0UnJzdWtHU2dNSERzVGIyNXZmZi8rZG5Kd2NRa0pD
181 R0Rac0dEMTc5cVJwMDZiVkNtd045aWdZaFlYZzRhRitrRlZqWVY1UgpEYU5IZzQ4UHZQeXkxa21F
182 Y0UwMkxSaVhMbDJpU1pNbUFPVG41N04xNjFhMmJObENSa1lHRFJvMFlOR2lSWlludGdKN0ZJeU5H
183 K0c1CjUyRExGcHRlUnBTeWZiczZhdXJ3WVhDQUNmNUN1QnlIMktMVjN1eFJNTjU4RTg2Y2tXVzQ3
184 VzNBQUxVVC9MSEh0RTRpaE91eDJ5aXAKMm1ialJyanpUcTFUMUQ0eWtVOEl4eU1GNHpxdVhvVmZm
185 cEVSVWxxSWlGRFhscEtKZkVJNERvc0t4aDkvL0dHckhBNXArM1oxTmRWVwpyYlJPVXZ2SWpueENP
186 QjZMQ3NhQUFRTVlPSEFneTVjdngyZzAyaXFUdzlpMFNacWp0UFIvLzZldUVQejc3MW9uRVVLQWhR
187 Vmo5KzdkCnZQTEtLNnhkdXhZZkh4L0dqeDlQWm1hbXJiSnBUaWJzYWF0Ukl4ZzNUcDNJSjRUUVhy
188 VkhTYTFaczRZeFk4Wnc5ZXBWT25YcXhPeloKcytuUm80ZTE4MTJYTFVkSktRcmNmTE82TEVndFdW
189 L1JJWlZNNU51L1g1MFBJNFNvT2J1TWtqcCsvRGh2dlBFR0FRRUJmUExKSjN6MgoyV2VjUEhtUytm
190 UG5NMmJNR0lzdjdzZ09Ib1M2ZGNITFMrc2t0VnViTmpCMHFPeklKNFFqc0toZ0RCdzRrRWFOR3BH
191 U2tzTHk1Y3NKCkR3K25UcDA2QkFVRk1XN2NPRnRsMUVUSmNGcWRUdXNrWXRJa2lJK0hvaUt0a3do
192 UnUxblVKTFZseXhaQ1EwT3IvSm05MkxKSmF1eFkKNk5vVi92bFBtNXhlV0NnOFhPMEVsNGw4UXRT
193 Y1hacWtLbnFLaUk2T3R2aWl6a0FtN0RrV21jZ25oUGJNS2hnWkdSbkV4OGR6K3ZScAo1cytmVDN4
194 OFBQSHg4Y1RHeG5MampUZGFmTkhVMUZUOC9Qenc4ZkZoN3R5NTE3MXV2WHIxK09hYmJ5eStSazM4
195 K1NlY1BnMEJBWGE5CnJMaU9pQWd3R3FFV2JMOGloTU15cTJEazVlVng3Tmd4akVZang0NGQ0L2p4
196 NHh3L2ZwdzJiZHJ3NmFlZlduelJDUk1ta0pDUXdMcDEKNjRpUGorZk1tVFBsanJsNjlTb3Z2dmdp
197 a1pHUmRsbkN2TFJObTZCWEwzWHltSEFNT2gxTW5DZ1QrWVRRa2tWOUdQdjI3ZU8yMjI2cgowUVh6
198 OHZJd0dBeGtaV1VCRUJNVFEwUkVCRkZSVVdXT2k0dUxvMzc5K21Sa1pIRFBQZmN3Yk5pdzh1RnQx
199 SWN4Y2FJNk9tZktGS3VmCld0UkFRWUU2YW0zREJ2RDExVHFORU03THBuMFlKUi9tNGVIaGRPellz
200 Y3lYdDdlM1JSZk15TWpBdDlULzdmNysvcVNscFpVNTVvOC8KL21EVnFsWDg0eC8vQU5SZnpwNmsv
201 OEl4eVVRK0liUmwxaGF0UzVZc0FXRHIxcTAyRFZOaTRzU0p2UDMyMjZZcWVMMUtHQnNiYS9yZQpZ
202 REJnTUJocWRPM3o1OVdsS0xwM3I5RnBoSTA4L2JUNmRQSDY2ektSVHdoenBhU2trR0tGbFR6dHZo
203 L0d0VTFTNDhlUEp6SXlza3lUCmxMZTN0NmxJbkRsemhzYU5HN053NFVMdXZmZmVNdWV5UlpOVVVw
204 SzZCOGFHRFZZOXJiQ2lzV1BWMmZkVHAycWRSQWpuWk5NTmxFNmQKT2xWaHM1Q2lLT2gwT2xxM2Jt
205 M1JSZlY2UFhQbXpLRkRodzVFUmtheWFkTW1QQ3I1NStMbzBhTVpQSGd3OTk5L2YvbndOaWdZVTZl
206 cQpRemZmZU1PcXB4Vld0SE9uT2k5RGR1UVRvbnFxKzlscFZwTlU3NzlXNEx1MmFKUVVqSDM3OWxs
207 MDBiaTRPS0tqb3pFYWpjVEV4T0RoCjRVSENYMnMvYUQydjQrZWY0WVVYTkkwZ3FoQVFBRjI2d0pk
208 ZndxaFJXcWNSb3ZZdzZ3a2pLaXFLNzcvL0hpOHZyM0tWU2FmVGNmancKWVp1R3JJeTFuekN1WG9Y
209 bXplSElFV2pSd21xbkZUYVFsS1FXOWw5L2xlVmJoTENVVFp1azh2THljSGQzcjNDK2hFNm5vMlhM
210 bGhaZgoyQnFzWFRCMjdJQmh3OERDQnlhaEFVVlJuelErK0FENjlkTTZqUkRPeGFaTlV1N3U3Z0NW
211 OWpPNGl2UjBDQXZUT29Vd2gwNzM5NDU4ClVqQ0VzQStMNXpLZk9YT0dKVXVXc0hUcFVzNmVQV3VM
212 VEpxUmd1RmNIbmtFdG02RlBYdTBUaUpFN1dCUndWaXlaQWs5ZS9ia2wxOSsKWWZQbXpmVHMyZE0w
213 UjhNVmJOa2lCY09aTkdvRS8vaUhUT1FUd2w0c21vY1JIQnpNbWpWcmFOT21EYUFPdDQySWlPRFhY
214 MysxV2NEcgpzV1lmeHNXTGNOTk5jTzRjMUs5dmxWTUtPemgxU3AzSUp6dnlDV0UrdXl4djNxSkZD
215 d29LQ2t5dkN3b0thT0VpdzRtMmJWT0hha3F4CmNDNDMzYVFPVlBqd1E2MlRDT0g2ek9yMEhqOStQ
216 QUN0V3JXaVc3ZHUzSG5ublNpS3dxWk5teGd3WUlCTkE5cUw5Rjg0cjBtVG9IOS8KZVA1NW1jZ25o
217 QzJaVlRDNmRldG1tclEzY09CQTA4L3Z2LzkrdXk4TWFDdGJ0a0FGazhtRkUramNHWUtDNEQvL2dj
218 Y2YxenFORUs3TAo3bXRKV1pNMSt6RGF0NGVVRkxqMVZxdWNUdGhaVXBMNmhQSGJiektSVDRpcTJI
219 VGlYb21DZ2dMV3JsMUxVbElTNTg2ZE16MWRMRjI2CjFPSUxXNE8xQ3NhSkV4QVlxTzZ5Sng4Mnpx
220 bGtJdCtjT1dyemxCQ2ljbmJwOUo0NmRTb2JOMjRrS1NrSmc4SEE4ZVBIOGZMeXN2aWkKamlZOUhV
221 SkRwVmc0TTUzdTczMi9oUkMyWWRFVFJ0ZXVYY25NektSejU4N3MycldMdkx3OCt2ZnZUMFpHaGkw
222 elZzcGFUeGhUcHFoagorcWROczBJb29abkNRblZIdnA5K0FuOS9yZE1JNGJqczhvVGg1dVlHUVBm
223 dTNVbE1UT1RVcVZNVUZoWmFmRkZISXhQMlhFUERoaktSClR3aGJzdWdKWTlHaVJRd2VQSmdqUjQ0
224 d1pjb1UvdmpqRDJiTW1NSFFvVU50bWJGUzFuakN1SG9WYnJ3UnNyTmxoVnBYOEwvL3dlMjMKcXd0
225 SXRtcWxkUm9oSEpOZE9yMUJYVXNxS1NrSmdJaUlDRTBYSkxSR3dkaTVVeDFPS3l2VXVvNG5uNFFP
226 SGVDVlY3Uk9Jb1Jqc2t1VApWT20xcE5MUzByampqanVjZmkycGtnNXY0VG9tVG9UNTg5VStEU0dF
227 OWRUNnRhU2lvOVhobUg5TlpoY3VZdUJBZU9naEdEMWE2eVJDCk9CNVpTNnFhWkVrUTExU3lWNGJ6
228 VGtzVnd2RlVheTJwa2oyK25YMHRxVXVYMUZWT2c0SzBUaUtzYmNBQXRWaXNXNmQrTDRTb3VXcXQK
229 SlZYeWZYWFhra3BOVFNVNk9wb3JWNjRRRXhOaktrZ2xWcTFheGF1dnZvcE9wK09XVzI0aE5qYVdr
230 SkFRaTY5VGxXM2IxT1lvV2JETwo5WlNleUNjRlF3anJxTlphVXR1MmJVT24wOUcxYTlkcVhWU3Yx
231 ek5uemh3OFBUMkppSWhnMDZaTlpVWmJYYnAwaVNaTm1nQ3dZY01HClhubmxGVkpUVTh1SHIyRWZ4
232 cXhaY1BTb3VpKzBjRDB5a1UrSWl0bWxEeU0xTlpYYmJydU5sMTkrbVpkZWVvbmJicnVOalJzM1du
233 VEIKdkx3OEFQcjA2WU9ucHlmaDRlR2twNmVYT2Fha1dKUWMzN0JoUTR1dVlTN3B2M0J0RFJ2QzAw
234 L0xSRDRock1XaWdqRno1a3krKys0NwprcEtTU0VwS1l2WHExYnp6empzV1hUQWpJd05mWDEvVGEz
235 OS9mOUxTMHNvZDkrMjMzK0xsNWNXWU1XTll1SENoUmRjd2x4UU0xL2VQCmY4RFhYNnRQa2tLSW1q
236 R3JENk5FVGs0T045OThzK2wxMjdadHljbkpzWG9vZ0tGRGh6SjA2RkNXTFZ2R2ZmZmRSMVpXVm9Y
237 SHhjYkcKbXI0M0dBd1lEQWF6em4veXBOcnBMY3VadTdaV3JkU2gwNis5QmpiNmQ0Y1FEaThsSllX
238 VWxKUWFuOGVpUG93RkN4YXdkT2xTSG56dwpRUlJGNFp0dnZtSGt5SkdNR3pmTzdBdm01ZVZoTUJo
239 TUJXRDgrUEZFUmtZU0ZSVlY2ZCs1NmFhYnlNN09wbEdqUm1YRDE2QVBZOVVxCmRWdlAvLzYzV245
240 ZE9KRno1K0MyMjJEelp2RHgwVHFORU5xemVSK0dvaWdNR1RLRU9YUG1rSnVieS9uejU0bUxpN09v
241 V0FDNHU3c0QKYW45SWRuWTJ5Y25KaEYzVExuVHc0RUhUTC9QRER6L1FyVnUzY3NXaXBxUTVxdmE0
242 OFVaMTlyZXNSaXhFelZqVUpCVWVIczdPblR1cgpQVHFxUkZ4Y0hOSFIwUmlOUm1KaVl2RHc4Q0Fo
243 SVFHQTZPaG92djc2YXhZdFdvU2JteHQ2dlo2Wk0yZlc2SG9WU1UrSHlaT3RmbHJoCm9DWk1nRTZk
244 WVB0MmRiTXNJWVRsTEdxU0dqdDJMUGZmZi85MW00L3NxYnFQVlZldnFpdlRIam9FTFZ2YUlKaHdT
245 SEZ4c0g2OTJod3AKUkcxbWw5VnFBd0lDMkwxN042MWJ0Nlp0MjdhbUMyZG1abHA4WVd1bzdpKzll
246 emNNR2FMTzhoYTFSMkdoMnBleGZEbjA2S0YxR2lHMApVOTNQVG91YXBGYXRXbVdWSGU2MEppdlUx
247 azRORzhLcnI4Sy8vZ1UvL3FoMUdpR2NqMW1kM2thamtjVEVSQll1WE1peFk4Znc5dmFtClU2ZE9w
248 aTluSXgzZXRkZW9VZXFjRENrWVFsak9ySUx4OHNzdnMyREJBbHExYXNXTUdUT0ljL0twczFJd2Fp
249 ODNONWd4UTMzS2NJR0gKWlNIc3lxdytqRzdkdXBHV2xvYWJteHU1dWJrTUdUS0VEUnMyMkNQZmRW
250 V25IUzQvWDUzTWxaTWppdzdXVnNYRkVCd01yNzhPOTk2cgpkUm9oN00rbTh6Q0tpNHR4YzNNRG9I
251 bno1cHcvZjk3aUN6bUt6RXpvM0ZtS1JXMVdwNDVhTEtaT1ZZdUhFTUk4WmhXTTdkdTMwN1JwClU5
252 UFhqaDA3VE44M2E5Yk0xaG10YXRzMnNNRks2Y0xKREI0TWpSdkRzbVZhSnhIQ2VaZzFTdXJxMWF1
253 MnptRTNtWm5RcDQvV0tZVFcKZERwNDR3MFlOdzRlZUVEdDJ4QkNYSjlGcTlXNmdzeE1xT0ZFZGVF
254 aSt2V0REaDNnazArMFRpS0VjNmpXQmtxT3d0S09tL3g4OFBDQQozRnlvWDkrR3dZVFR5TXlFUVlO
255 ZzcxNW8zbHpyTkVMWWgxMDJVSEoyTzNhQW41OFVDL0czcmwzVi9venAwN1ZPSW9UanExVUZRNXFq
256 ClJFWGVlQU1XTDRZOWU3Uk9Jb1JqazRJaGFyM1dyZFdKZkJNbnltUStJYTVIQ29ZUXdELy9DY2VP
257 UVdLaTFrbUVjRnkxcHRQNzhtVzEKVS9Qc1diRHlYa3pDUmF4ZHF4YU9uVHRsWXFkd2JkTHBYWVZk
258 dTlUOXU2VllpTXFFaDRPL3Y3cHZoaENpdkZwVE1LUTVTcGpqdmZmZwozWGZoNUVtdGt3amhlS1Jn
259 Q0ZIS3JiZkNrMC9DbENsYUp4SEM4VWpCRU9JYUw3K3M3cGVSbnE1MUVpRWNpeVlGSXpVMUZUOC9Q
260 M3g4CmZKZzdkMjY1OTVjc1dVSlFVQkJCUVVFOC9QREQ3TnUzcjBiWHUzSkZuYlFYSEZ5ajA0aGFv
261 bWxUZU9zdEdEOWVWck1Wb2pSTkNzYUUKQ1JOSVNFaGczYnAxeE1mSGMrYk1tVEx2ZTN0N2s1cWF5
262 bSsvL1VaRVJBU3Z2ZlphamE3MysrOXd5eTNxQjRFUTVuamtFWFZCd2c4LwoxRHFKRUk3RDdnVWpM
263 eThQZ0Q1OSt1RHA2VWw0ZURqcDF6ejc5K3paRTNkM2R3Q2lvcUpxdkZtVE5FY0pTOVdwQS8vK04w
264 eWJCa2VPCmFKMUdDTWRnOTRLUmtaR0JyNit2NmJXL3Z6OXBhV21WSHYvUlJ4OHhlUERnR2wxVENv
265 YW9EbDlmZU80NXRSUGNlV2NyQ1dFOVp1MkgKb1pWMTY5YXhlUEZpTm0vZVhPa3hzYkd4cHU4TkJn
266 TUdnNkhjTVptWmNNODlOZ2dvWE43a3liQmlCWHo2S1l3Wm8zVWFJYW9uSlNXRgpsSlNVR3AvSDdq
267 Tzk4L0x5TUJnTVpHVmxBVEIrL0hnaUl5T0ppb29xYzl6MjdkdTUvLzc3V2JObURaMDZkYXJ3WE9i
268 TVZpd3VoaHR2CmhNT0hvVVVMNi93T29uYlp2aDM2OTRlc0xMVXZUQWhuNXpRenZVdjZKbEpUVThu
269 T3ppWTVPWm13c0xBeXh4dzllcFJodzRheFpNbVMKU291RnVRNGVWQXVGRkF0UlhZR0I4UFRUNnU1
270 ODBqUWxhak5ObXFUaTR1S0lqbzdHYURRU0V4T0RoNGNIQ1FrSkFFUkhSek5qeGd4eQpjbklZTjI1
271 WEd1S3RBQUFWUjBsRVFWUWNBRzV1Ym16WnNxVmExNUwrQzJFTkw3OE0zYnJCMHFYcUNDb2hhaU9Y
272 WDN6d3hSZWhXVE4xCitXb2hhbUxyVm9pS1VwdW9icnBKNnpSQ1ZKL1RORW5abXp4aENHdnAzbDN0
273 K0g3bUdhMlRDS0VObHk0WWlpSUZRMWpYdEducXFnRXIKVm1pZFJBajdjK21DY2ZRb05Hd296UWZD
274 ZWhvMmhFOCtVWmNOT1hGQzZ6UkMySmRMRnd4NXVoQzJjTWNkOEk5L3dNaVI2anBsUXRRVwpVakNF
275 cUlaLy9RdnExMWVicUlTb0xhUmdDRkVOZGV2Q2tpWHcrZWV3Wm8zV2FZU3dENWN0R0lvQzI3Wkp3
276 UkMyMDdxMVdqUWVmeHlPCkg5YzZqUkMyNTdJRjQrUkp1SG9WMnJYVE9vbHdaWDM3UWt3TWpCZ0JS
277 cVBXYVlTd0xaY3RHQ1hOVVRxZDFrbUVxNXN5UmQxclplcFUKclpNSVlWc3VYVEM2ZGRNNmhhZ042
278 dFNCTDc2QS8vd0hFaE8xVGlPRTdiaDB3WkQrQzJFdkhoNXF3Umc3VnAzL0k0UXJrb0loaEpYMAo2
279 Z1hQUHc5RGg4TEZpMXFuRWNMNlhITHh3ZE9uNGJiYklDZEgrakNFZlNtS3VrUGZuMy9DeXBWUXo2
280 RzNLQk8xbFN3K1dFcFdGdWoxClVpeUUvZWwwc0dDQk9tSXFKa2IyenhDdXhTVUxoalJIQ1MyNXVj
281 RlhYOEdtVFRCcmx0WnBoTEFlS1JoQzJFQ3padkRERC9EQkIycngKRU1JVlNNRVF3a2JhdFlQVnEr
282 R2YvNFNmZjlZNmpSQTE1M0tkM3JtNTBMNjkrbWZkdWhvRkU2S1VwQ1FZTlFwU1U5WEJHRUpvVFRx
283 OQovL0xycnhBVUpNVkNPSTZJQ0hqckxlamZIL2J2MXpxTkVOV25TY0ZJVFUzRno4OFBIeDhmNXM2
284 ZFcrNzl2WHYzMHJOblR4bzJiTWpzCjJiTXRPcmMwUndsSE5IbzB2UG9xM0gyM0ZBM2h2RFFaSlQ1
285 aHdnUVNFaEx3OVBRa0lpS0NrU05INHVIaFlYcS9aY3VXekowN2w1VXIKVjFwODdzeE05Vjl5UWpp
286 YUo1NVFoOTNlZFJmODlKTTBUd25uWS9jbmpMeThQQUQ2OU9tRHA2Y240ZUhocEtlbmx6bW1WYXRX
287 ZE8vZQpIVGMzTjR2UEwwOFl3cEdOSFFzelpxaFBHci8vcm5VYUlTeGo5NEtSa1pHQnI2K3Y2Ylcv
288 dno5cGFXbFdPZmVsUzNEa0NQajVXZVYwClF0akVtREh3K3V0cTBkaTdWK3MwUXBqUDZSY3VpSTJO
289 TlgzdjRXR2djMmNEMVhnd0VjS3VIbjljYlo3cTEwOGRSUlVRb0hVaTRjcFMKVWxKSVNVbXA4WG5z
290 WGpCQ1FrSjQvdm5uVGE5MzdkcEZaR1JrdGM5WHVtRE1teWZOVWNKNWpCb0ZEUnFvVHhxTEZrRU4v
291 amNRNHJvTQpCZ01HZzhIMGV2cjA2ZFU2ajkyYnBOemQzUUYxcEZSMmRqYkp5Y21FaFlWVmVLeWw0
292 NFNsLzBJNG14RWo0SnR2MUZGVThmRmFweEhpCitqU1p1TGRod3diR2pSdUgwV2drSmlhR21KZ1lF
293 aElTQUlpT2p1YlBQLzhrSkNTRTgrZlBVNmRPSFpvMmJjcnUzYnU1NFlZYnlvYS8KWnZKSmNEQjgv
294 REYwNzI3WFgwZUlHanQwQ0tLaVlNQUFlTzg5V2VWVzJGWjFKKzY1ekV6dndrSm8wVUpkMHJ4aFE0
295 MkRDVkVOdWJudwo0SU5Rdno1OCthVzY3YXNRdGxEclozcnYzS21PYTVkaUlaeFY4K2JxZ29YdDI2
296 dWJNUjA0b0hVaUljcHltWUloL1JmQ0ZiaTVxZnRwClJFZER6NTVxWjdqenRnRUlWeU1GUXdnSG85
297 T3BLOXorK0NPODh3NDg4Z2o4TmQ5VkNFMUp3UkRDUVFVR3d0YXRhdDljY0xBc2tTNjAKNXhLZDNr
298 YWoydjc3di85Qmt5WmFweExDK2xhdlZ2Y0tIemNPWG41WjdSZ1hvcnBxZGFmM25qM2c2U25GUXJp
299 dXdZUFZ2ZXEzYmxXWAo3MDlPMWpxUnFJMWNvbUJJYzVTb0RkcTJWWjgwWnM1VU84V0hEVlBYVGhQ
300 Q1hxUmdDT0ZFZERyMWFXUDNiclZmbzFzM2RmWGJnZ0t0Cms0bmFRQXFHRUU2b1lVTjQ1UlhZdGcy
301 MmI0Zk9uZFVsUm9xTHRVNG1YSm5UZDNwZnVhTFF2RGtjTzZaMmZBdFJHNjFiQnkrOEFFWWoKdlBR
302 U1BQU1FMQzhpS2xkck83MzM3NGViYnBKaUlXcTMvdjNWcDQxMzM0VVBQNFRiYjRlUFBvS2lJcTJU
303 Q1ZmaTlBVkRtcU9FVU9sMAo2aExwcWFudytlZXdhaFY0ZThQczJYRGhndGJwaEN1UWdpR0VDK3Jk
304 Rzc3L0hoSVRZY3NXZFgycVVhUFV2Y1NsbjBOVWx4UU1JVnlZClhnL0xscW43aHdjSHc3UFBRc2VP
305 YW9lNUxHNG9MT1gwbmQ3dTdncjc5ME9yVmxxbkVjSTUvUHFyMm1TMWRDbjQrS2hQSHZmY284N3oK
306 RUxWRHJkMFBvMzE3aGFOSHRVNGloUE14R21ITkdsaThXSjA1M3I0OVJFU28vU0M5ZXFuYnh3clhW
307 R3NMeHBBaENpdFhhcDFFQ09kMgo1UXBrWkVCU2tscEVkdStHUG4zK0xpQ2RPcW1kNnNJMTFOcUNN
308 WDI2d3F1dmFwMUVDTmVTazZQTzdTZ3BJTVhGYWw5aHQyNS8vOW11Cm5SUVJaMVZyQzhicTFRcjMz
309 S04xRWlGY2w2S29FMk8zYlZNSG1XemJwbjRwaWxvOFNncElseTdnNVNVcjZUb0RwNXE0bDVxYWlw
310 K2YKSHo0K1BzeWRPN2ZDWTE1NjZTVzh2YjNwMXEwYmUvZnVyZlJjempCQ0tpVWxSZXNJWnBHYzF1
311 TU1HY0c4bkRvZGRPZ0FRNGZDYTYrcAoyOGorK2FlNmV1NC8vNmtXaU04L1Y1dXVtalpWaiszYkYw
312 YVBWdGU1K3VJTGRTK1BFeWVxUDZUWGxlNm5NOU5rOFlBSkV5YVFrSkNBCnA2Y25FUkVSakJ3NUVn
313 OFBEOVA3Vzdac1llUEdqV3pkdXBXa3BDUW1UNTVNWW1KaWhlZHlocEVkS1NrcEdBd0dyV05VU1hK
314 YWp6TmsKaE9ybjFPbmdsbHZVcjhHRC8vNzVsU3ZxMDhqaHczRG9rUHJuZi8vNzkvZm56NnRQSWUz
315 YWdZY0h0R3haL3MvUzN6ZHBvbDdMMWUrbgpzN0I3d2NqN2E2L0pQbjM2QUJBZUhrNTZlanBSVVZH
316 bVk5TFQwM25nZ1FkbzBhSUZJMGVPWk9yVXFaV2VUOXBRaFhBYzllcXA4enc2CmRvUzc3eTcvL3NX
317 TGtKME5mL3dCWjgrcVgyZk9xUE5FZnY3NTc5Y2w3MTI5cWhhT3ExZGh3d2ExZ0RScVZQRlg0OGFW
318 djNmdGNmWHIKUTUwNlVMZnUzMytXL2w0K1Z5cG05NEtSa1pHQnI2K3Y2Ylcvdno5cGFXbGxDc2FX
319 TFZ0NDlORkhUYTlidFdyRndZTUh1ZlhXVysyYQpWUWhoWFRmY0FBRUI2cGM1Q2dyVXd2SDY2K3FD
320 aXZuNTZzOEtDc3ArWDFDZ05wTlY5bDdwci94OGRVangxYXZxVjNGeCtUOTF1b29MClNlbnZLL3Ba
321 YnE0NlVmSjZmMCtuKzdzZ2xTNU05dnhaZFRua2VwYUtvcFRya05GVjhwdFc5bk5ITTMzNmRLMGpt
322 RVZ5V284elpBVG4KeVptUVlMK2NpdkozUWJIVTJiUE9jVCtydys0Rkl5UWtoT2VmZjk3MGV0ZXVY
323 VVJHUnBZNUppd3NqTjI3ZHhNUkVRSEE2ZE9uOGZiMgpMbmN1Sng3Z0pZUVFUc2Z1bzZUYzNkMEJk
324 YVJVZG5ZMnljbkpoSVdGbFRrbUxDeU1yNy8rbXJObno3SjA2Vkw4L1B6c0hWTUlJY1ExCk5HbVNp
325 b3VMSXpvNkdxUFJTRXhNREI0ZUhpUWtKQUFRSFIxTmFHZ292WHYzcG52MzdyUm8wWUxGaXhkckVW
326 TUlJVVJwaW9QYnNHR0QKNHV2cnEzVHExRW41NElNUEtqeG15cFFwU3NlT0haV3VYYnNxZS9ic3NY
327 TkNWVlU1MTY5ZnJ6UnIxa3dKRGc1V2dvT0RsZGRlZTgzdQpHVWVQSHEyMGJ0MWFDUWdJcVBRWVI3
328 aVhWZVYwaEh1cEtJcHk5T2hSeFdBd0tQNysva3Jmdm4yVkpVdVdWSGljMXZmVW5KeGEzOU9DCmdn
329 SWxORFJVQ1FvS1VzTEN3cFQzM251dnd1TzB2cGZtNU5UNlhwWjI1Y29WSlRnNFdMbm5ubnNxZk4v
330 UysrbndCU000T0ZqWnNHR0QKa3AyZHJkeCsrKzNLNmRPbnk3eWZucDZ1OU9yVlN6bDc5cXl5ZE9s
331 U0pTb3F5aUZ6cmwrL1hoazhlTEFtMlVxa3BxWXFtWm1abFg0UQpPOHE5ckNxbkk5eExSVkdVa3lk
332 UEtsbFpXWXFpS01ycDA2ZVZqaDA3S3VmUG55OXpqQ1BjVTNOeU9zSTl2WFRwa3FJb2lsSllXS2gw
333 Cjd0eFoyYjkvZjVuM0hlRmVLa3JWT1IzaFhwYVlQWHUyOHZEREQxZVlwenIzMDZIM3d5ZzlaOFBU
334 MDlNMFo2TzBhK2RzN05tenh5RnoKZ3ZhZDlIZmVlU2MzM25oanBlODd3cjJFcW5PQzl2Y1NvRTJi
335 TmdRSEJ3UGc0ZUZCNTg2ZDJicDFhNWxqSE9HZW1wTVR0TCtualJzMwpCdURpeFl0Y3VYS0ZCdGNz
336 bCtzSTl4S3F6Z25hMzB1QTQ4ZVA4OE1QUC9ERUUwOVVtS2M2OTlPaEMwWmxjelpLMjdKbEMvNysv
337 cWJYCkpYTTI3TW1jbkRxZGpzMmJOeE1jSE15enp6NXI5NHptY0lSN2FRNUh2SmNIRGh4ZzE2NWRo
338 SWFHbHZtNW85M1R5bkk2d2owdExpNG0KS0NpSW0yNjZpV2VlZVliMjdkdVhlZDlSN21WVk9SM2hY
339 Z0pNbWpTSmQ5OTlsenAxS3Y2WXI4NzlkT2lDWVE3Rmdqa2JXdXJhdFN2SApqaDBqSXlNRGYzOS9K
340 a3lZb0hXa2N1UmVWcytGQ3hjWVBudzQ3Ny8vUGsyYU5DbnpuaVBkMCt2bGRJUjdXcWRPSFg3NzdU
341 Y09IRGpBCi9Qbnp5Y3JLS3ZPK285ekxxbkk2d3IxTVRFeWtkZXZXNlBYNlNwOTJxbk0vSGJwZ2hJ
342 U0VsRmw0Y05ldVhmVG8wYVBNTVNWek5rcFUKTm1mRGxzekoyYlJwVXhvM2JveWJteHRqeDQ0bEl5
343 T0RvcUlpdSthc2lpUGNTM000MHIwMEdvME1HemFNUng5OWxDRkRocFI3MzFIdQphVlU1SGVtZWVu
344 bDVNV2pRb0hMTnVvNXlMMHRVbHRNUjd1WG16WnY1N3J2djZOaXhJeU5IanVTbm4zN2lzY2NlSzNO
345 TWRlNm5ReGNNClo1bXpZVTdPVTZkT21hcjU2dFdyQ1F3TXJMRHRVMHVPY0MvTjRTajNVbEVVeG80
346 ZFMwQkFBQk1uVHF6d0dFZTRwK2JrMVBxZW5qbHoKaHR6Y1hBRE9uajNMMnJWcnl4VTJSN2lYNXVU
347 VStsNEN2UG5tbXh3N2RvekRody96NVpkZmN2ZmRkN05vMGFJeXgxVG5manJrMGlDbApPY3VjamFw
348 eXJsaXhnZ1VMRmxDdlhqMENBd09aUFh1MjNUT09IRG1TRFJzMmNPYk1HZHEzYjgvMDZkTXhHbzJt
349 akk1eUw2dks2UWozCkV1RG5uMzltOGVMRkJBWUdvdGZyQWZWLzFLTi83Um5zS1BmVW5KeGEzOU9U
350 SjA4eWF0UW9ybDY5U3BzMmJaZzhlVEp0MjdaMXVQL1gKemNtcDliMnNTRWxUVTAzdnAxTnZvQ1NF
351 RU1KK0hMcEpTZ2doaE9PUWdpR0VFTUlzVWpDRUVFS1lSUXFHRUVJSXMwakJFRlpWcDA0ZApKaytl
352 YkhvOWE5WXN1Mi9RWXpBWXlNek1CQ0FxS29yejU4L1g2SHdwS1NrTUxyMXhkUlUvdDhXMWJPbkVp
353 Uk04K09DRGRyMm1jRTVTCk1JUlYxYTlmbjIrLy9aYXpaODhDbHMvRXZWcWRMYzZ1VWZxYTMzLy9Q
354 YzJhTmF2eE9WM1p6VGZmekZkZmZhVjFET0VFcEdBSXEzSnoKYytPcHA1N2kvZmZmTC9mZWlSTW5t
355 REJoQWtGQlFVeWFOSWxUcDA0QjhQampqL1Bzczg4U0ZoYkdpeSsreU9qUm8zbnV1ZWNJRFEzbAo5
356 dHR2Snlzcmk2ZWVlb3JPblRzVEd4dHJPdC9UVHo5TlNFZ0lkOXh4QndzWExxd3dqNWVYRjJmUG51
357 WEREejlFcjllajErdnAyTEVqCmQ5OTlONkN1QS9iWVk0OFJGaGJHbENsVFRETnlNekl5Nk5ldkgz
358 cTlucVNrcENwLzc0S0NBdDU3N3ozNjl1MUxWRlFVS1NrcEFQVHMKMmJQTWJOcVNwNS9Dd3NJS2o2
359 L01zV1BIR0Rod0lNSEJ3UVFGQlhIdzRFR3lzN1B4OS9kbjdOaXgrUG41TVgzNmRGUCsxMTU3amRE
360 UQpVRUpDUW5qenpUZkxuT2U1NTU1RHI5ZlRyVnMzRGg4K1RIWjJObDI2ZEFIZ3M4OCtZOFNJRVF3
361 YU5JaUFnQUErK09BRDA5OWRzMllOClBYdjJKRFEwbElrVEp6SisvUGh5T1gvOTlWZjY5ZXRIY0hB
362 d1hidDI1ZUxGaTFYZU8rRkVhckowcmhEWHV1R0dHNVR6NTg4clhsNWUKU2w1ZW5qSnIxaXdsTmpa
363 V1VSUkZtVFJwa2pKejVreEZVUlRselRmZlZGNTQ0UVZGVVJSbDFLaFJTdCsrZlUxTGJqLysrT1BL
364 d0lFRApsYUtpSXVXenp6NVRicmpoQmlVbEpVVXBLaXBTL1B6OFRFdkg1K1RrS0lxaUtFVkZSVXBZ
365 V0poeThlSkZSVkVVeFdBd0tOdTJiVk1VClJWRzh2THlVczJmUG12SVpqVWJsemp2dlZCSVRFMDNI
366 NXVibUtvcWlLQys4OElMeTVaZGZLb3FpS0lHQmdVcDZlcnB5OGVKRkpUSXkKc3NMbG9kZXZYMi9h
367 WitEVFR6OVY1c3lab3lpS292ejU1NTlLYUdpb29paUs4djc3N3l2VHBrMVRGRVZSVHB3NG9keCsr
368 KzNYUGI3MApPVXViTm0yYTh2SEhINXQraDRLQ0F1WHc0Y09LVHFkVHZ2bm1HNld3c0ZDNS8vNzds
369 UlVyVnBTNU4xZXVYRkVHRHg2czdOMjcxM1N2CjQrUGpUZmN0UHo5Zk9YejRzR2twK1U4Ly9WUnAz
370 YnExY3VMRUNlWDgrZk5LdTNidGxNdVhMeXRHbzFIeDh2SlNEaDgrckp3OWUxYnAKMnJXck1uNzgr
371 SEk1UjQwYXBheGJ0MDVSRkhVWjhDdFhycFE3UmpndmVjSVFWdGUwYVZNZWUreXhNdjg2QmZqdmYv
372 L0xtREZqQUJnNwpkaXlyVjY4RzFDYWtCeDU0Z0taTm01cU9mZUNCQjZoZnZ6NDllL2FrZWZQbTlP
373 M2JsL3IxNjZQWDYwMHJBU2NuSnhNVkZZVmVyK2ZRCm9VUDg5Tk5QVldhTGlZbWhYNzkrUkVWRnNX
374 M2JObmJ1M0luQllFQ3YxNU9ZbUVocWFpcC8vUEVIaXFJUUdocEtreVpOR0Q1OGVKWEwKVlgvOTlk
375 Y3NYTGdRdlY1UFpHUWtwMDZkNHZEaHd6ejAwRU9zV0xFQ2dPWExsNXY2Q2lvNi90Q2hRNVdlUHlR
376 a2hMaTRPTjU1NXgxeQpjbkpvMkxBaG9DNUxNM1RvVUJvMGFNRElrU05aczJZTkFGdTNibVhZc0dF
377 RUJnYVNtWm5KMnJWcnVYejVNdXZYcitmSko1OEUxT2JEClJvMGFsYnRXZUhnNGJkdTJwV25UcHZq
378 Nys1T1ptVWxhV2hwZHVuVEJ5OHVMRmkxYWNPKzk5MVo0VDNyMjdNbVVLVk9ZTjI4ZVY2NWMKb1c3
379 ZHVsWCtOeEhPdytHWEJoSE9hZUxFaVhUdDJwWFJvMGVYK1hsbEg3eHQyN1l0ODdwa2ZhNzY5ZXZU
380 dkhsejA4L3IxNi9QNWN1WAp1WERoQWxPbVRHSGp4bzNjY3NzdERCMDZsSFBuemwwMzAyZWZmY2F4
381 WThlWVAzOCtvQzVUSFJBUXdQcjE2OHNjZC96NGNmTit5VktLCmk0dUpqNCtuVDU4KzVkNXIyYkls
382 TzNic1lQbnk1YWFsR1NvN3ZtUzVqbXRGUlVYUnJWczNGaTllVEs5ZXZmanFxNi9LM0pjU0pmMDMK
383 NDhlUFo4V0tGUVFFQkRCcDBpVE9uVHVIVHFlcmNJWFNhMTE3dndzTEM2bFhyMTZadnFIS3poRWRI
384 YzJBQVFOTVM1R2twNmR6MDAwMwpYZmQ2d25uSUU0YXdpUnR2dkpHSEhucUlmLy83MzZZUG1rR0RC
385 dkg1NTU5VFhGek1KNTk4d3IzMzNsdXRjeXVLUW01dUxtNXViclJwCjA0WjkrL2J4NDQ4L1h2ZnZi
386 TnUyamRtelovUEZGMStZZmhZU0VzS3BVNmRNVHl5WExsMWkvLzc5dEd2WGpycDE2NUtSa2NHbFM1
387 ZFkKdm54NWxaa2VmdmhoRWhJU3VIRGhBa0NaSmErSER4L09PKys4dy9uejV3a0lDS2p5K0lvY1Bu
388 ell0SFpSdjM3OVRQMGllWGw1ckZ5NQprcUtpSXBZdFcwWmtaQ1NGaFlWY3VIQUJMeTh2L3ZqakQx
389 YXRXZ1dvL1V0MzNYVVhDeGN1UkZFVWlvcUtLQ2dvcVBKMzArbDA5T2pSCmd4MDdkcENkblUxT1Rn
390 NkppWWtWRG1nNGVQQWczdDdldlBycXEvajYranJFWGlYQ2VxUmdDS3NxL1NIeTNIUFBjZWJNR2RQ
391 cnlaTW4KYy9Ub1VmUjZQYWRPbmVMWlo1K3Q4TzlkKzdxaTk5cTNiOCt3WWNNSUNBamdtV2VlcVhR
392 b2FzbS9xdVBqNHpsMzdoeDMzWFVYZXIyZQpwNTU2Q29BdnZ2aUNCUXNXRUJnWXlCMTMzTUh2di84
393 T3dFY2ZmY1JMTDcxRTc5NjlDUW9LcXZERFVhZlRtWDcrd0FNUEVCb2FTa1JFCkJBRUJBVXliTnMx
394 MDNBTVBQTUN5WmN0NDZLR0h5dnlzb3VOTG43TzA1Y3VYRXhBUVFFaElDUG41K2FaeitmcjY4dDEz
395 M3hFY0hFeEEKUUFCUlVWRTBiTmlRS1ZPbUVCb2F5dkRod3hrMGFKRHBQRys4OFFZSERod2dLQ2lJ
396 WHIxNm1RWWVsRnl6c3V2WHJWdVhlZlBtTVh6NApjQ0lqSStuU3BRc2RPM1lzZDl5Y09YUG8wcVVM
397 b2FHaCtQcjZjc2NkZDFUNDMwVTRKMWw4VUFnbmxaMmR6ZURCZzlteFk0ZGRybmZwCjBpV2FOR2xD
398 WGw0ZTk5eHpEeDkvL0RHMzMzNjdYYTR0SElQMFlRamh4T3k1NDF4c2JDenIxcTNEemMyTi8vdS8v
399 NU5pVVF2SkU0WVEKUWdpelNCK0dFRUlJczBqQkVFSUlZUllwR0VJSUljd2lCVU1JSVlSWnBHQUlJ
400 WVF3aXhRTUlZUVFadmwvQ0hyZjBuUWF1Ym9BQUFBQQpTVVZPUks1Q1lJST0K
401 </png>
402 </output>
403 </outputs>
404 </codecell>
405 <markdowncell>
406 <source>## Serial calculation of nearest neighbor eigenvalue distribution</source>
407 </markdowncell>
408 <markdowncell>
409 <source>In this section we numerically construct and diagonalize a large number of GOE random matrices
410 and compute the nerest neighbor eigenvalue distribution. This comptation is done on a single core.</source>
411 </markdowncell>
412 <codecell>
413 <input>def serial_diffs(num, N):
414 """Compute the nearest neighbor distribution for num NxX matrices."""
415 diffs = ensemble_diffs(num, N)
416 normalized_diffs = normalize_diffs(diffs)
417 return normalized_diffs</input>
418 <language>python</language>
419 <prompt_number>6</prompt_number>
420 <collapsed>1</collapsed>
421 <outputs />
422 </codecell>
423 <codecell>
424 <input>serial_nmats = 1000
425 serial_matsize = 50</input>
426 <language>python</language>
427 <prompt_number>7</prompt_number>
428 <collapsed>1</collapsed>
429 <outputs />
430 </codecell>
431 <codecell>
432 <input>%timeit -r1 -n1 serial_diffs(serial_nmats, serial_matsize)</input>
433 <language>python</language>
434 <prompt_number>8</prompt_number>
435 <collapsed>0</collapsed>
436 <outputs>
437 <output>
438 <output_type>stream</output_type>
439 <text>1 loops, best of 1: 1.19 s per loop</text>
440 </output>
441 </outputs>
442 </codecell>
443 <codecell>
444 <input>serial_diffs = serial_diffs(serial_nmats, serial_matsize)</input>
445 <language>python</language>
446 <prompt_number>9</prompt_number>
447 <collapsed>0</collapsed>
448 <outputs />
449 </codecell>
450 <markdowncell>
451 <source>The numerical computation agrees with the predictions of Wigner, but it would be nice to get more
452 statistics. For that we will do a parallel computation.</source>
453 </markdowncell>
454 <codecell>
455 <input>hist_data = hist(serial_diffs, bins=30, normed=True)
456 plot(s, rhos)
457 xlabel('Normalized level spacing s')
458 ylabel('Probability $P(s)$')</input>
459 <language>python</language>
460 <prompt_number>10</prompt_number>
461 <collapsed>0</collapsed>
462 <outputs>
463 <output>
464 <output_type>pyout</output_type>
465 <text>&amp;lt;matplotlib.text.Text at 0x3475bd0&amp;gt;</text>
466 <prompt_number>10</prompt_number>
467 </output>
468 <output>
469 <output_type>display_data</output_type>
470 <png>aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVl3QUFBRU1DQVlBQUFEWGlZR1NBQUFBQkhOQ1NWUUlD
471 QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNW
472 UFgreC9IWGdHaHVxQWh1cFNKcEFxS0FKcmhEdWFDaWxXbHV2M0xOCjhONWNzcmhtM2ZxcDljdmJj
473 czFkSTF0dmFxbFptVmd1bUlBYmkxdmxsaXNxYnJFb0lMTHovZjJCekpVQW1XR1pNek44bnZjeGo4
474 dk0KK2M0NTcva1M4L0djN3puZm8xTktLWVFRUW9neTJHZ2RRQWdoaEdXUWdpR0VFTUlnVWpDRUVF
475 SVlSQXFHRUVJSWcwakJFRUlJWVJBcApHRUlJSVF4aThvSXhhZElrbWpadFNzZU9IVXR0ODlwcnIr
476 SGk0a0tYTGwwNGRlcVVDZE1KSVlRb2pja0x4c1NKRTltMmJWdXB5Mk5pCll0aXpadzhIRHg0a09E
477 aVk0T0JnRTZZVFFnaFJHcE1Yak42OWU5T29VYU5TbDBkSFJ6Tml4QWdjSEJ3WU0yWU1KMCtlTkdF
478 NklZUVEKcFRHN01ZeVltQmpjM2QzMXo1MmNuRGgzN3B5R2lZUVFRZ0RVMERyQVh5bWwrT3RzSlRx
479 ZHJzUzJwYjB1aEJEaS9zb3pLNVRaN1dINAordnB5NHNRSi9mT0VoQVJjWEZ4S2JWOVlZTXo1TVhm
480 dVhNMHpTRTdKS0RrbForR2p2TXl5WUd6YXRJbWtwQ1RXclZ1SG01dWIxcEdFCkVFS2d3U0dwTVdQ
481 R0VCRVJRV0ppSWkxYnRtVCsvUG5rNU9RQUVCUVVoSStQRDcxNjllTFJSeC9Gd2NHQk5XdldtRHFp
482 RUVLSUVwaTgKWUh6OTlkZGx0bm4zM1hkNTk5MTNUWkRHTlB6OS9iV09ZQkRKV1hrc0lTTkl6c3Bt
483 S1RuTFM2Y3Fja0JMWXpxZHJrTEg0NFFRb2pvcQo3M2VuMlkxaENDR0VNRTlTTUlRUVFoaEVDb1lR
484 UWdpRFNNRVFRZ2hoRUNrWVFnZ2hEQ0lGUXdnaGhFR2tZQWdoaERDSUZBd2hoQkFHCmtZSWhoQkRD
485 SUZJd2hCQkNHRVFLaGhCQ0NJTkl3YkJ3OXZZTzZIUzZNaDQxeTJ4amIrK2c5VWNSUXBnNW1YelF3
486 aFhjZGJDc1BqQ3MKVFhYdlN5R3FDNWw4VUFnaFJKV1NnaUdFRU1JZ1VqQ0VFRUlZUkFxR0VFSUln
487 MGpCRUVJSVlSQXBHRUlJSVF3aUJVTUlJWVJCcEdBSQpJWVF3aUJRTUlZUVFCcEdDSVlRUXdpQlNN
488 SVFRUWhoRUNvWVFRZ2lEU01FUVFnaGhFQ2tZNHE0YU12MjVFT0srWkhwekMxZVowNXZmCnY0MzB0
489 UkRXUXFZM0YwSUlVYVdrWUFnaGhEQ0lGQXdoaEJBR2tZSWhoQkRDSUZJd2hCQkNHRVFLaGhCQ0NJ
490 Tm9VakFpSXlOeGMzT2oKWGJ0MkxGdTJyTmp5akl3TXhvOGZqN2UzTjM1K2ZtemV2Rm1EbEVJSUll
491 Nmx5WFVZM3Q3ZUxGbXloTmF0V3hNUUVNRGV2WHR4ZEhUVQpMLy9vbzQvNDdiZmZXTGx5SlJjdlh1
492 VHh4eC9uN05temQ2ODV1Q2U4WEljaDEyRUlJWXhtTWRkaHBLU2tBTkNuVHg5YXQyN05nQUVECmlJ
493 Nk9MdEttUVlNR3BLV2xrWk9UUTNKeU1uWHExQ2xXTElRUVFwaVd5UXRHYkd3c3JxNnUrdWZ1N3U1
494 RVJVVVZhVE5tekJqeTh2SncKZEhTa1Y2OWVyRjI3MXRReGhSQkMvRVVOclFPVVpQbnk1ZFNvVVlO
495 cjE2N3grKysvRXhnWXlNV0xGN0d4S1Y3ZjVzMmJwLy9aMzk4ZgpmMzkvMHdVVlFnZ0xFQjRlVG5o
496 NGVJWFhZL0l4akpTVUZQejkvVGx5NUFnQTA2ZFBaK0RBZ1FRR0J1cmJqQnc1a3NtVEp4TVFFQUNB
497 CnI2OHZYMzc1WlpFOUU1QXhESkF4RENHRThTeG1ES05CZ3daQXdabFNjWEZ4N055NUUxOWYzeUp0
498 K3ZidHk1WXRXOGpQeitmOCtmTWsKSnljWEt4WkNDQ0ZNUzVORFVvc1hMeVlvS0lpY25CeG16SmlC
499 bzZNaklTRWhBQVFGQlRGNjlHaE9uRGpCbzQ4K2lwT1RFMHVXTE5FaQpwaEJDaUh2STlPWVdUZzVK
500 Q1NHTVpUR0hwSVFRUWxnbUtSaENDQ0VNSWdWRENDR0VRY3p5T2d4aG1QalVlR2dMcU8yUVZ3dHlh
501 MEZDCkI4aXkxenFhRU1JS1NjR3dJRW9wUWsrSHN2NzRldlplMmt0NlRqcDBCMWdJdHRsZ2R3Y2NU
502 OEoxTHpnM0FFNE9od1IzcldNTElheUUKbkNWbEFaUlNiRDJ6bFhuaDg4ak56K1h2WGYrT1gycy9I
503 bW44eU4ycjMrL3BBN3M3MEdvUFBMd0RPcTJGT0QrSTJBQUpjcGFVRUtKQQplYjg3cFdDWXVmalVl
504 TVpzR3NPdHpGdk04NXZITUxkaDJPaitPL1IwMzlOcTdkTEJad1gwZUJYT2pZVnRpK0dPVXlsYmtv
505 SWhSSFVoCnA5VmFvZDBYZHROMWRWZUd0QnZDcjFOL1piajc4Q0xGb2t3NWRXSGZiRmdDcExXQXFW
506 N2dFbFpsZVlVUTFrMzJNTXlRVW9xRkJ4YXkKOE1CQzFneGJRMStYdnFXMk5lckNQWmN3ZUdvQy9E
507 NFdmdmsveUt0WnZNMTkxbUdOZlMxRWRTU0hwS3pJYTd0ZVk5dlpiV3dldlpsVwpEVnJkdDYzUlYz
508 clhTWUJoNHd0KzN2QXQ1TlFwM3FhVWRWaGpYd3RSSGNraEtTdngvcjczK2ZHUEg5bjUzTTR5aTBX
509 NTNIR0NyMytFCk80N3c3RUNvbFZyNTJ4QkNXQ1VwR0daazlhSFZyRHE0aWgzUDdzQ3hqbVBaYnlp
510 di9Ccnd3eGR3b3lPTWZ4enFKRmJkdG9RUVZrTUsKaHBuNDd1UjN6SXVZeDg3bmR2S2cvWU5WdjBG
511 bEF6OHRoM1A5WVlJZjFLLzZUUW9oTEpzVURETnc0ZVlGZ2tLRDJEeDZNMjBkMnBwdwp5enJZOWEr
512 Q1FmQm5rY05UUW9qN2trRnZqZVhtNStMM2hSL0RYSWNSM0NQWTZQZFh6dlRtQ2diYmdNTUFXQmNL
513 K1hZbHJzUFMrMW9JClVVQUd2UzNVTzVIdlVNZXVEaTkzZjduWU1udDdCM1E2M1gwZmxVTUgyd0Js
514 QzRPblVYWUJFa0pVUjFJd05MVHYwajVXSFZ6RmwwOTkKV2VJRmVXbHBOeW40OHI3Zm81TGtBeHZY
515 dzBQUjBPUGZsYmRlSVlUVmtJS2hrWlRNRko3OS9sbENob1RRb240THJlTVV5SzVmY0VqSwpkeW00
516 ZjZ0MUdpR0VtWkV4REkxTStHRUN0ZTFxc3lwd1ZhbHRUSGY3MWIrMGFYNFluZzJBVC9kRGNqdjlj
517 a3Z0YXlGRVVUS0dZVUdpCjRxUFllWDRuSC9UL1FPc29KYnZXR2NMbndZalJZSnVsZFJvaGhKbVFn
518 bUZpU2lsbWJaL0Znc2NYVUs5bVBhM2psQzcyNzVEU0N2cTkKcG5VU0lZU1prSUpoWXQ4Yys0YWN2
519 QnllODN4TzZ5aGwwTUdQbjRMYkptajNrOVpoaEJCbVFBcUdDZDNKdWNPcllhK3lLR0NSY2RPVQph
520 eVhEQWI1YkEwOU1saXZCaFJCU01FenB3d01mNHZ1UUw3MWI5OVk2aXVFdTlZYURmNE5oa0plZnAz
521 VWFJWVNHcEdDWXlOVzBxeXlLCldzUjcvZDdUdjFiV2hYbG1JL0tmWUFQdjdYdXY3TFpDQ0tzbEJj
522 TkUvdm5MUDVuU2VRb3VqVnowcjVWOVlaNlpVTGJ3SFN5S1dzVHgKUDQ5cm5VWUlvUkVwR0Nad0p1
523 a01vYWREZWIzMzYxcEhLYjlVZVB1eHQ1bXlaUXI1S2wvck5FSUlEUmgxNFY1K2ZqNEhEaHdnTGk2
524 TwpoSVFFR2pac1NJY09IZWpTcFFzMk5xYXZQWlp5NGQ2VUxWTm9VYjhGOC8zbkYzbTk3QXZ6Tkxw
525 d3I1VGxlZmw1K0gzaHgrZ09vM25SCjU4VXkxaWVFTUZkVmVvdlc3T3hzRmkxYVJGNWVIZzBiTnNU
526 RnhZVm16Wm9SSHgvUHVYUG51SGJ0R2syYU5HSG16Sm5ZMnRxVzZ3T1UKaHlVVWpDdXBWK2k0cWlO
527 bnBwK2hjWjNHUlpaWldzRlFTbkV5NFNSOXZ1akQ0UmNPMDdKQnl6TFdLWVF3UjFWV01MS3lzbGkz
528 YmgxRApoZ3pCeWNtcDFIYm56NTluMTY1ZFRKa3l4ZWdRNVdVSkJlT1ZIYStRci9KWkZMQ28yREpM
529 TEJnQWIwZThUY3pWR0g0Yy9hTjVEYzRMCklReFNwWHNZNXNyY0MwYlNuU1RhTFd2SGIzLzdqWWZz
530 SHlxMjNMSUtoaDJRVy9DakxSQUVSQUQzaklIWHI5K0kxTlRrTXJZamhOQ2EKeWVhU09uWHFGRC85
531 OUJQSnljbWNQSG5TNkExV0o4dGpsalBNYlZpSnhjTHk1S0kvZXl0UHdZLzdZV0F6cUoya2Y3M2dy
532 QzhoaExVcQpWOEZvMXF3WjNicDFZK3ZXclh6MTFWZFZrY3ZpM2M2K3pZcllGY3p1TVZ2cktGVWp2
533 anVjR0FFRGpMOUxvQkRDTWhsZE1LNWV2Y3J1CjNidng5dlltT0RpWXBrMmJWa1V1aTdmNjBHcjhu
534 UDFvNzloZTZ5aFZaOWNDY0FtRE5ydTBUaUtFTUFHakM4YjQ4ZU54ZFhWbDFhcFYKdlBqaWl4dzll
535 clFxY2xtMDdMeHNGaDVZeUd1OXJIeW0xK3o2OE5OeUNId1JiSEswVGlPRXFHSVZHdlMrZWZNbURS
536 czIxT3hNR1hNZAo5RjUvYkQwZkhmcUkzZU4zMzdlZFpRMTZsN1pjd2JPRDRPeEFpSnBsbHI4UElV
537 UlJWVGJvblpXVnhSOS8vRkhpc2thTkdoVXBGbnYyCjdERm9vNUdSa2JpNXVkR3VYVHVXTFZ0V1lw
538 dlkyRmk2ZHUyS201c2IvdjcrQnEzWFhJUWNDbUZxbDZsYXh6QVJIV3hiQkwzZmdUcGEKWnhGQ1ZL
539 VXlDMGF0V3JWSVNrcGkrZkxsSlo0VmxacWF5cDQ5ZTVneFl3YU5HalV5YUtNelo4NGtKQ1NFc0xB
540 d1ZxeFlRV0ppWXBIbApTaWttVFpyRXYvNzFMMDZlUE1tMzMxck8vYVZQSjUzbTJKL0hlTDczMVB0
541 T0xHaFYxeThrdXNIdlkrRXhyWU1JSWFxU1FXTVlwMDZkCjRzMDMzOFRUMDVONjllb3hkZXBVSmt5
542 WXdOTlBQODJjT1hOSVRrNW15WklsZUhoNGxMbXVsSlFVQVByMDZVUHIxcTBaTUdBQTBkSFIKUmRv
543 Y1BIaVFUcDA2MGE5ZlB3QWNIUjJOL1Z5YVdYMTROUk84Sm5ENzFpM3VQN0dnbFIyNkNaOEhidkRi
544 amQrMFRpS0VxQ0kxREdsMAo5T2hSYnR5NFFWcGFHa3VYTHFWZnYzNzA3bDIrZXpyRXhzYmk2dXFx
545 Zis3dTdrNVVWQlNCZ1lINjE3WnYzNDVPcDZOMzc5NDBiTmlRCmFkT21FUkFRVUs3dG1WSldiaFpm
546 SHYyU2ZaUDI4UUZtZXIvdXFwTFpDQ0xnSlkrWDJEVnVsM1h0UVFraEFBTUxScWRPbmFoWnN5YU4K
547 R3pkbTd0eTVMRisrdk53Rnd4Q1ptWmtjUFhxVXNMQXc3dHk1US8vKy9UbDI3QmkxYTljdTFuYmV2
548 SG42bi8zOS9UVWQ3L2orMVBkMApiTnFSZG8zYmFaWkJVNGNnNFU0QzM1LzZucWZkbnRZNmpSRGly
549 dkR3Y01MRHd5dStJbVdBU1pNbXFaTW5UK3FmLy9EREQ0YThyVVMzCmJ0MVNYbDVlK3VmVHBrMVRv
550 YUdoUmRxRWhvYXE0T0JnL2ZPUkkwZXFiZHUyRlZ1WGdmRk54djhMZjdYKzJIcWxsTHA3ekVtVjhT
551 aXIKVFdXc3c3Ulp3czZGcVRhTDI2aU1uQXlOZnh0Q2lOS1U5N3ZUb0RHTWMrZk9FUndjVEpzMmJl
552 alpzeWNmZi93eGE5ZXU1Y0tGQzJ6Ywp1TkdvQXRXZ1FRT2c0RXlwdUxnNGR1N2NpYSt2YjVFMjNi
553 cDFJeUlpZ2p0MzdwQ2NuTXlSSTBmbzJiT25VZHN4dGROSnB6bVJjSUtuClhKL1NPb3FtK3JyMHhi
554 T1pKNHNPRko5c1VRaGgyUXk2RHVQNDhlTjA2TkFCS0ppVk5qbzZtdGpZV0tLam8vbjk5OTlKVFUw
555 MWFxTVIKRVJGTW5UcVZuSndjWnN5WXdZd1pNd2dKQ1FFZ0tDZ0lnRldyVnJGczJUS2NuSno0Mjkv
556 K3h1alJvNHVITjZQck1JSjNCR05yWTZ1LwpCV3ZaMTFoQSthOTkwS0tOWWV0UVNuRXUrUnkrbi9q
557 eTI5OStvMFg5Rm1XOFJ3aGhhcHJOVnJ0bzBTSm16WnBWa1ZXVW03a1VqTXpjClRGb3Rhc1greWZ0
558 cDY5QVdxTjRGQStDMVhhOXhOZTBxWHo3MVpSbnZFVUtZbXNsbXEvMnJHVE5tVkhRVkZ1LzdrOS9q
559 MmN4VFh5d0UKdk43cmRYYWUyMG5NbFJpdG93Z2hLa21GQzRZcDc3Qm5ya0lPaGZCQzV4ZTBqbUZX
560 NnRlcXo0SytDNWp4OHd5NUI3Z1FWc0wwTitLMgpNbWVTem5BeThTUlB1ajZwZFJTek04NXpITG41
561 dVd3NHZrSHJLRUtJU21CVXdiaHk1VXBWNWJCWTN4ejdobEVkUmxIVHRxYldVY3lPCmpjNkc5L3Uv
562 enh1L3ZFRjJYcmJXY1lRUUZXUlV3ZWpmdnorREJnMWl3NFlONU9USWROWktLYjQrOWpXalBZcWZ3
563 VlU5MVNnMlgxWmYKbDc2Y2l6bEhyUjYxME9sMDJOczdhQjFTQ0ZGT1JoV01FeWRPOE9hYmI3Smp4
564 dzdhdFd2SDlPblRPWHo0Y0ZWbE0zdkgvanhHZWs0NgozUjdxcG5VVU0zSFBiVnp2ZllRZGhUNU5v
565 V2FxM01aVkNBdFc3dE5xdDIzYnhxUkprOGpMeTZOdDI3WXNYTGlRYnQxTSs4V3A5V20xCmhZZGEz
566 dS8vZnJGbDFmVzAybExiREhzT2JqNE00ZlBONGxSb0lhb3prNXhXR3g4Znp6dnZ2SU9IaHdlZmZm
567 WVpYM3p4QmRldVhXUGwKeXBWTW1qVEo2STFiTXFXVWZ2eENHR0QzMitDekRPcHFIVVFJVVY0R1RU
568 NVlhTkNnUVV5Y09KSHc4UEFpVTQ1N2Vub3lkV3AxdVdGUQpnVVBYRHFIVDZlamN2TFBXVVN6RExX
569 ZjRkUno0TGRZNmlSQ2luSXc2SkJVVEU0T1BqMCtacjVtS2xvZWtnbmNFVTl1dU5tOC85bmFKCnkr
570 V1FWQW5xSk1JMEowN1BQbDE5Wi9RVndneVk1SkJVU1hzUmhYTS9WU2Y1S3AvMXg5Y3p1b09jSFdX
571 VU80NXdBTjdZL1liV1NZUVEKNVdEUUlhblkyRmhpWW1KSVNFaGc1Y3FWK3NxVWtKQmc4RzFacmNt
572 Qnl3ZG9VS3NCSFpwMDBEcUs1WW1DdlUvdEpmWktMRjBmN0twMQpHaUdFRVF6YXcwaEpTZUh5NWN2
573 azVPUncrZkpsNHVQamlZK1BwMW16Wm56KytlZFZuZEhzZkhQOEc3bjJvcnh5WUs3ZlhGNE5lMVhP
574 CmxoTEN3aGcxaG5INjlHa2VlZVNScXN4akZDM0dNSEx6YzNub3c0ZllNM0hQZlkvRHl4aEc2VzF5
575 OG5Mb3NMSURTd2N1SmFDdCtkOTYKVndoclU2VmpHSVgzMng0d1lBQnQyclFwOG5CeGNURjZvNVlz
576 SWk2Q2grd2Zra0hiQ3FoaFU0Ti85ZjBYcjRhOUtoTVRDbUZCRE5yRAp1SFhyRmcwYk5pUXhNYkhF
577 NWZlZVltdEtXdXhoVE5reWhmYU4yeFBjSS9pKzdXUVBvL1EyU2ltVVVuVC90RHZUZktieGJLZG55
578 M2lQCkVLSXlhWFlESlMyWnVtQms1MlhUWW1FTERnY2RwbFdEVnZkdEt3V2o5RGFGdjdQSWk1R00r
579 MzRjZjB6N2cxbzFhcFh4UGlGRVpTbnYKZDZkQlowbmR1SEhqN2hkZ1VVb3BkRG9kVFpvME1YckRs
580 aWpzZkJqdEhkdmowZEpMNWtRcXR4cEYvMXNhQXcvMGZnQ2lDcDdXcjkrSQoxTlJrYmFJSkllN0xv
581 SUxScTFjdmdHSkZvN0JnbkQ1OXV2S1RtYUZ2am4zRDZBNmoyWjgyQThQK3RTMktLNXlnOEs1ZHgy
582 QmNYemh5CkdySWFrSlltL1NhRXVUSm8wUHVSUng3aHpKa3paR2RuazVPVFEzWjJ0djduNmpMTmVW
583 WnVGbHRPYjJHRSt3aXRvMWlYUHozZ3pHRG8KK1lIV1NZUVFaVEJvRDJQZHVuVUFIRHg0c05peWtn
584 NVZXYVB3dUhEY25keHBYcis1MWxHc1QvaDhDUEtHbUJmaHR0WmhoQkNsTWFoZwpOR2pRQU5EdWJD
585 aHpzT1gwRm9ZK01sVHJHTllwcFJVY21RVCs4eUJVNnpCQ2lOSVlOVnN0UUdKaUl0dTNiMGVuMHhF
586 UUVFRGp4bzJyCklwZFpVVW9SZWpxVXJXTzNhaDNGZXUxOURhYTExdzkrQ3lITWoxR1RENjVkdTVi
587 dTNidHo0TUFCOXUvZlQvZnUzVm03ZG0xVlpUTWIKeC80OGhrNm53OTNKWGVzbzFpdkRBZllIdytO
588 YUJ4RkNsTWFvNnpDOHZMell0bTBielpvMUF3cE90dzBJQ09EbzBhTlZGdkIrVEhVZAp4b0k5Qzdo
589 Kyt6cExCeTNWYjlmU3JuMndpQ3cxTW1CNkhRNjhmRUJ1ZXl0RUZUTEo5T1lPRGc1a1pHVG9uMmRr
590 Wk9EZzRHRDBSaTFOCjZPbFFoand5Uk9zWTFpKzNOb1REN0oyelpXSkNJY3lRUVdNWTA2ZFBCOERK
591 eVlrdVhiclF1M2R2bEZMczNidVgvdjM3VjJsQXJmMloKL2ljbkVrN2cxOXBQNnlqVnc2K1FsSkhF
592 VDJkK0l2Q1JRSzNUQ0NIdVlWREI2TktsaS83MDJVR0RCdWxmZi9ycHA2Myt0TnFmei94TQpQNWQr
593 TW5XRnFlVER2L3IraXptNzVqQ3c3VUJzYld5MVRpU0V1RXZta2lyRGlBMGpHUExJRUNaNFRTaXlY
594 YXNaTnpDN0xEcnk4L1BwCi9YbHZudS84ZkpGK0YwSlVEcE5NUHBpUmtjR09IVHZZdm4wN04yL2Ux
595 TzlkRkY3WVoycFZYVEN5ODdKcDhrRVRUazgvVFpPNi81MHYKU3dwRzFXNUhLY1crUy9zWXMya01m
596 MHo3ZzlwMnRjdFlweERDR0NZWjlIN2pqVGZZczJjUDI3ZHZ4OS9mbi9qNGVKeWRuWTNlcUtXSQpp
597 SXZBemNtdFNMRVFwdEd6VlUrNnRPakMwdWlsV2tjUlF0eGwxQjVHNTg2ZE9YejRNQjA2ZE9ENDhl
598 T2twS1RRcjE4L1ltTmpxekpqCnFhcDZEMlBHenpOb1ZxOFpyL2QrdmRoMnJldGY5ZWFVNWIrLzA5
599 TkpwK254YVE5T3ZuZ1NwN3BPWmF4WENHRW9rK3hoMk5uWkFmRG8KbzQ4U0docktqUnMzeU16TU5I
600 cWpscUR3Nm02WkRzVFVDcVkvMStsMHRIZHNUMUo0RWsyZWFhSi9UYWZUWVc5di9hZHlDMkdPakNv
601 WQpMNzc0SWpkdjNtVFdyRmtzWDc2YzRjT0g4OVpiYjFWVk5rMmRTRGhCbnNyRG80bUgxbEdxbWNM
602 cHorOCtJaEtnWTJOb2ZFci9tdHlMClJBaHRHSDJXVk9GY1VnQUJBUUdhVGtoWWxZZWszdHY3SHBk
603 VEw3Tjg4UElTdDJ0ZGg0SE1LVXNKeTN1K0R5MzN3VGViOVcwcytPUSsKSVRSbmtrTlM5ODRsRlJV
604 VlJZOGVQYXgyTHFrdHA3ZkkxZDNtSW5vR05QME5uTU8xVGlKRTlhYU00T25wcWE1ZHU2Wi9mdjM2
605 ZGVYcAo2V25NS3BSU1NrVkVSQ2hYVjFmVnRtMWJ0WFRwMGxMYnhjVEVLRnRiVzdWcDA2WVNseHNa
606 MzJBSjZRbksvbC8yS2lNbm85VHRnaXJqClVSbHRUTFVkYzhwU3luS1ByeFV2ZEZibzhxcnM5eTVF
607 ZFZIZXZ5Rk41cEthT1hNbUlTRWhoSVdGc1dMRkNoSVRFNHUxeWN2TDQ5VlgKWDJYZ3dJRW1QL3p3
608 ODVtZmViek40enhRNHdHVGJsZmN4N0ZSa0Y4RE9tcHp6WThRb3B4elNSWGU0N3M4YzBtbHBLUUEw
609 S2RQSHdBRwpEQmhBZEhRMGdZRkY1dzFhdG13WkkwYU0wT1NVWGJsWmtqblN3WTZGTUh3c25OQTZp
610 eERWVTdubWtpcjh1VHh6U2NYR3h1THE2cXAvCjd1N3VUbFJVVkpHQ2NlWEtGVFp2M3N3dnYveENi
611 R3lzU2VlcnlzN0xadVBoYjlrNGNTT1QweWViYkx2Q0FKZDZ3Wld1MFAyeTFrbUUKcUpZTUtoZ1RK
612 a3dvOHZ6UW9VUG9kRG82ZCs1Y0ZabDQ2YVdYZVBmZGQvVWorZmM3SkRWdjNqejl6LzcrL3ZqNysx
613 ZG8yM3N1N29GRQpCZWxsbmNrak5CSDJIanovSFRkdTM2QnB2YVphcHhIQ0lvU0hoeE1lSGw3eEZS
614 a3o0QkVSRWFIYXRXdW5CZ3dZb0FZTUdLRGF0V3VuCklpTWpqUm8wdVhYcmx2THk4dEkvbnpadG1n
615 b05EUzNTcGsyYk5zcloyVms1T3p1cmV2WHFxU1pObXFqTm16Y1hXNWVSOFEzeTByYVgKRkgzTWZB
616 RFlxck1Zc0k0QTFOVFFxWlgrdXhlaXVpanZkNmRSN3dvTURGUW5UNTdVUHo5MTZwUUtEQXcwZXFO
617 ZVhsNHFJaUpDWGJodwpRYlZ2MzE0bEpDU1UybmJDaEFrbVBVdXEvYkwyaXVZVzlPVnBkVmtNV0Vk
618 dGxPUDdqdXI0bjhjci9mY3ZSSFZRM3U5T284NlNTazVPCnBrV0xGdnJuelpzM0p6azUyZWk5bXNX
619 TEZ4TVVGRVMvZnYzNCs5Ly9qcU9qSXlFaElZU0VoQmk5cnNwME9lVXlTUmxKY0YzVEdLSXMKR2ZC
620 YXI5ZVl2WE8yMWttRXFGYU11dEo3MWFwVnJGdTNqbWVlZVFhbEZOOTk5eDFqeG94aDZ0U3BWWm14
621 VkpWOXBmZm5SejVuKzdudApySDltUFpqclZjOVduOFd3ZFdUbVpPSyswcDJQaDN4TVg1ZStaYlFY
622 UXR5cnl1K0hvWlRpMnJWclhMOStuZERRVUhRNkhVT0dETUhiCjI5dm9qVmFXeWk0WVl6ZU41ZkUy
623 anpPbHl4UXM2Y3ZUdXJJWXRnNmxGQnVQYitTZFBlOXc2SVZEY21jK0lZeGdrb0xSc1dOSGpoMDcK
624 WnZSR3FrcGxGb3g4bFUvemhjMkplVDRHNTBiT1dOS1hwM1ZsTWJ4Z0tLWG8rVmxQWHVqeWd0eVpU
625 d2dqVlBsY1VqcWREbDlmWDdadQozV3IwUml6QnNUK1BZVi9MbnRZTlcyc2RSUmhJcDlPeGNNQkMz
626 dmpsRGRLejA3V09JNFRWTTJyUU96bzZtcUZEaDlLc1dUTzh2YjN4Cjl2YXVzbXN4VEczbnVaMzBk
627 ekh1cW5XaHZlNHR1OU96VlU4K1BQQ2gxbEdFc0hwR0RYcWZPM2V1eE4yWXRtM2JWbW9vUTFYbUlh
628 bEIKYXdjeHBmTVVublo3Mm9EcHk4M3I4SXgxWlRGa0hYWVUzRGZqcmtiQUZHQWxjTHZncGZyMUc1
629 R2FhdndaZkVKVUIxVTZocEdUazhQMgo3ZHZadTNjdkFRRUIrUG41WVdOajFNNUpsYWlzZ3BHVm00
630 WFRCMDVjZk9raWpXbzNrb0poaWRzWkVBeTFVbUhMeC9vMmxYbENoQkRXCnBFckhNRjUvL1hWV3JW
631 cUZrNU1UYjczMUZvc1hMelo2UStic1FQd0IzSnpjYUZTN2tkWlJSSGxGL2hQYWI0Ym1oN1ZPSW9U
632 Vk1tZ1AKbzB1WExrUkZSV0ZuWjhldFc3ZDQ4c2tuaVlpSU1FVysrNnFzUFl4Ly92SlBkT2o0djhm
633 L1Q3OWVpLzdYdGtWbnFjQTZ2RCtGTHF2aAowLzJnYkdVUFE0aFNWT2tlUm41K1BuWjJkZ0EwYk5p
634 UTFOUlVvemRrenNMT2g5SFBwWi9XTVVSRkhaMEl5cWFnY0FnaEtwMUJleGkyCnRyYlVxVk5IL3p3
635 akk0UGF0V3NYckVDbjA2eUFWTVlleHMyTW03UmUzSnFFZnlSUXEwWXQvWG90L2wvYkZwdWxndXRv
636 K2l1TTZ3OHIKa3VGTzNuM1hJZ1Bqb3JvcTczZW5RZE9iNStYZC93L1BrdTJPMjAzUFZqMzF4VUpZ
637 dUJ1ZThOdi9RTC9GOE9QOS95RFMwbVNhZWlHTQpvZjJwVGhyYmVYNG4vZHJJNFNpckVqNGYyZ0l0
638 OTJtZFJBaXJVdTBMUnRqNU1Qby9MQmZzV1pVc2U5Z09EUGtiMk9TVzJWd0lZWmhxClhURGlic1dS
639 bXBXS1J4TVByYU9JeW5ZY3VOMFVmSlpwblVRSXExR3RDMGJoMlZFMnVtcmREZGJycHhYUTV4Mm9m
640 MFhySkVKWWhXcjkKVFNuakYxWXU2UkU0T0JVQ1h0WTZpUkJXb2RvV2pIeVZ6Njd6dStUNkMydTM1
641 M1Y0TUFZZTNxRjFFaUVzWHJVdEdMOWUveFhIT282MApiTkJTNnlpaUt1WFVnWitYd2VBWG9VYW0x
642 bW1Fc0dqVnRtRHNQTDlUem82cUxrNFBnWVFPME9NRHJaTUlZZEdxYmNFSU94OG00eGZWCnljOUxv
643 TnNTYUhSZTZ5UkNXS3hxV1RBeWN6TTVFSDhBZjJkL3JhTUlVMGxwRFh0ZmhTZWVCMTIrMW1tRXNF
644 alZzbURzdTdTUGprMDYKMHVDQkJscEhFYVowNEdXb2tRRmRWMnFkUkFpTFZDMExob3hmVkZQS0Zu
645 NzRBdnpuZ2NNWnJkTUlZWEdxWmNHUThZdHFMS2s5Ukw0QgpUMDBvbVBSV0NHR3dhbGN3a3U0a2NT
646 YjVETDRQK1dvZFJXZ2xlZ2JrMTREdVdnY1J3ckpVdTRLeE8yNDN2VnIxb3FadFRhMmpDSzBvCkc5
647 ajhPZlNDRXdrbnRFNGpoTVdvZGdVajhtSWsvcTM5dFk0aHRIYlRCWDZ4b2NNL082Q3oxYUhURlgv
648 WTJ6dG9uVklJczFMdENrYkUKeFFqNnRPNmpkUXhoRGc3bVEyWi82UGwvRk56QnIrZ2pMZTJtcHZH
649 RU1EZlZxbUFrWnlSejRlWUZPamZ2ckhVVVlTNDJmd3JkRmhmYwoybFVJY1YvVnFtRHN2YlNYYmc5
650 MXc4N1dUdXNvd2x5a3RvU2Q3OE93OFdDYnJYVWFJY3hhdFNvWUVSY2o4R3Z0cDNVTVlXNk9Ub0NV
651 Cmx0RG5iYTJUQ0dIV3FsWEJpTHdZS2VNWG9nUTYyUEl4ZEZrTnJTTzFEaU9FMmFvMkJTTTFLNVdU
652 Q1NmeGVkQkg2eWpDSE4xdURqOTgKRHNQSFF0MGJXcWNSd2l4Vm00S3gvL0orSG0zeEtMVnExTkk2
653 aWpCWFp3Y1ZISjRhL2orZ3k5TTZqUkJtcDlvVWpJaUxFZmc1KzJGdgo3MURpT2ZmM1BrUTF0bnQr
654 d1d5MmZtOXBuVVFJczZOSndZaU1qTVROelkxMjdkcXhiTm15WXN2WHJsMkxwNmNubnA2ZWpCMDds
655 dE9uClQxZDhteGNqNmRPcXo5MXo2NHVmYzEvMElhb3RaUXViMWtIblQrQmhyY01JWVY0MEtSZ3pa
656 ODRrSkNTRXNMQXdWcXhZUVdKaVlwSGwKTGk0dVJFWkc4dXV2dnhJUUVNRGJiMWZzN0pVN09YZjQ5
657 ZnF2ZEc4cGt3Y0pBOXh1QnQrdGhhY2dQalZlNnpSQ21BMlRGNHlVbEJRQQordlRwUSt2V3JSa3dZ
658 QURSMGRGRjJuVHYzcDBHRFFydVZSRVlHRWhFUkVTRnRoa1ZIMFducHAyb1kxZW5RdXNSMVVpY1A4
659 VFkwSEpXCnkxS25EcEhwUTBSMVkvS0NFUnNiaTZ1cnEvNjV1N3M3VVZGUnBiYi8rT09QR1RwMGFJ
660 VzJXVGgrSVlSUjl1WkQxaURvRzB4cGh5OWwKK2hCUm5kVFFPc0Q5aElXRnNXYk5HdmJ2MzE5cW0z
661 bno1dWwvOXZmM3g5L2Z2MWlieUl1UnpPNHh1d29TQ3F1bWdPKytncURPY0trWAovUEdrMW9tRUtK
662 Znc4SERDdzhNcnZCNmRVc3Frbzd3cEtTbjQrL3R6NU1nUkFLWlBuODdBZ1FNSkRBd3MwdTYzMzM3
663 ajZhZWZadHUyCmJiUnQyN2JFZGVsME9zcUtuNVdiaGVNSGpseDUrUXIydGV6dm5nVlYxa2N1cTAx
664 bHJNT2N0bU5PV2N6d016OFlEV09Id245MndnM1AKWW0xTS9DY2tSSVVaOHQxWkVwTWZraW9jbTRp
665 TWpDUXVMbzZkTzNmaTYxdjBaa2FYTGwxaStQRGhyRjI3dHRSaVlhaVlLekc0T3JwaQpYOHUrUXVz
666 Ylh5WTFBQUFXSjBsRVFWUVIxZGdWWC9ocGVVSFJxSDlGNnpSQ2FFYVRRMUtMRnk4bUtDaUluSndj
667 WnN5WWdhT2pJeUVoCklRQUVCUVh4MWx0dmtaeWN6TlNwVXdHd3M3TWpKaWFtWE51UzZVQkVwVGcr
668 RWhxZGg3RkQ0UE5JeUs2dmRTSWhUTTdraDZRcWt5RzcKVlFPK0dzQTBuMms4MGY0Si9Yc3M1N0NK
669 R1I2ZXNacnRsQ2VMZ3FFdlFQMnI4TTNtZ3R1OHlpRXBZWUVzNXBDVUtlWGs1UkFWSDBXdgpWcjIw
670 amlLc2dnNjJyZ1NiWEJnNEU3bklVMVEzVmwwd0RsODdUSnRHYlhDb0xlZktpMHFTYndjYk54VE1h
671 dHQ5a2RacGhEQXBzejZ0CnRxSmsvRUpVaWF3R3NHNHJUTzRCY2htR3FFYXNlZzlEYnBna3FreEtL
672 L2g2TXd5RkE1Y1BhSjFHQ0pPdzJvS1JsNS9IdnN2NzZOMnEKdDlaUmhMVzYxZ1craHllL2VaTG8r
673 T2l5Mnd0aDRheTJZUHgyNHplYTFXdEcwM3BOdFk0aXJObForUHpKenhuNjlWQmlycFR2MUc4aApM
674 SVhWRmd3WnZ4Q21FdmhJSUo4OStSbER2eDVLN0pWWXJlTUlVV1dzdG1ESStJVXdwU0dQRE9IVEp6
675 NWx5TmREcEdnSXEyVlZGKzdaCjJ6djhkL2JRZndBaFFHcEo3N1NVaTh2TStTSTJTOTlPNVdXNTk3
676 L0JMWDlzWWZLUGs5azZkaXRkSCt4YXhudUYwSVpjdUFmL3ZadWUKMHpISWNvRlV1WnVlTUsyaDdZ
677 Znl5Uk9mTU9UcklSeThlbERyT0VKVUt1dThEcU4xSkZ5VThRdWhqU2ZhUDRGU2lzQjFnV3g4WnFP
678 TQpwUW1yWVZWN0dIck9FWEJSeGkrRWRwNTBmWkkxdzlZd1lzTUkxdnkyUnVzNFFsUUtLeXdZQ2xw
679 SFFKd1VES0d0L2cvM1ovZjQzYnk1CiswM21oYytUU1FxRnhiTytndUZ3dG1BVzBWdk9XaWNSZ2c1
680 Tk9oQTFPWXFmei83TXVCL0drWldicFhVa0ljck5xczZTMHVsMDBIazEKT0lmRGQ2VWRCckNrTTNr
681 czc0d2h5OWxPNVdVcDYwL0kzdDZCdE15Yk1BeW9DM3dEWlB4M2VmMzZqVWhOVFM1ak8wSlVIamxM
682 cXBBTQplQXN6azVaMkUzSVViTXlEeTYvQzgyMmg4UjhVbnJtblB4VmNDRE5uaFFWRHhpK0VtVkky
683 RVBZdTdIc1ZKdldDRGh1MFRpU0VVYXpyCnROb0dRSTBzU0hwRTZ5UkNsTzd3ODNEZEM0YVBoYmJi
684 NEdldEF3bGhHT3ZhdzNEbTd1RW9uY1pCUlBWUkE1MU9kOTlIaWE0K0NpR0gKUWVrZ0NMbklUMWdF
685 NnlvWXJaSHhDMkZpdVJTZlRjREEyUVd5NjhHUG44SXZNSGp0WU43Zjl6NzVLci9xSXd0UlR0WlhN
686 R1Q4UWxpYQo0eEE3SlpZdHA3Y3c0S3NCWEVtOW9uVWlJVXBrTlFYamF0cFZxQTBrZE5BNmloQkdh
687 OTJ3TmJ2SDc4YXZ0UitlSDNueTcvMy9KaWN2ClIrdFlRaFJoTlFVajhtSWtYS0xnVEJRaExGQU5t
688 eHE4NmZjbSt5ZnZKK3g4R0o0ZmViTHIvQzZ0WXdtaFp6WGZycEVYSStHaTFpbUUKcUxoSEdqL0N6
689 Ly96TXd2NkxtRHlqNU1adVhFa2wxTXVheDFMQ09zcEdCRVhJeUJPNnhSQ1ZBNmRUc2RUcms5eDRz
690 VVR1RG01NFJYaQp4WUk5QzhqSXlTajd6VUpVRWFzb0dBbnBDY1NueHNNTnJaTUlVYm5xMk5WaHZ2
691 OThZcWZFRW5zMWxvZVhQc3pDL1F0SnowN1hPcHFvCmhxeWlZT3k1dEllZUxYdUNuSkVvckpSTEl4
692 ZStIL1U5UC8zUFQwUmRpY0pscVFzTDlpd2dOYXZFVzBvS1VTV3NvbURJL2J1RlpTdjcKNGo5N2V3
693 Y0F2SnA1c2ZHWmpld2V2NXVUaVNkeFdlTEMzUEM1SkdmSTVJV2k2bGxGd1lpOEdDbDNOUk1Xck95
694 TC8vNDZRYUc3a3p0ZgpEZnVLcU9lanVKSjZoWWVYUHN5a3paUFlkMm1mM0hkRFZCbUxuOTQ4K1U0
695 eXJSYTNJbWwyRXJWcTFNS2NwcjIybk8yWVV4YjV6S1cxCnVkK2Y2dlhiMS9uUHIvL2gweU9mWXFP
696 ellaTFhKTVo1anFOcHZhWmxyRmRVUjlWMmV2TjlsL2ZoKzZBdk5XMXJhaDFGQ00wMHE5ZU0KMlQx
697 bmMrckZVNndldXBvVGlTZG92N3c5dzlZUEkvUjBLTG41dVZwSEZGYkE0dmN3Z25jRVkxL1RuamY5
698 M3J3NzBadjUvSXZRY3JaagpUbG5rTTVmV3h0Zy8xYlNzTk5ZZlg4K25SejdsVE5JWkF0b0dFTmd1
699 a0lGdEIrSlEyOEdvZFFuclV0NDlESXN2R0Q2cmZYaS8zL3Y0Ck9mdEp3YkNLTFBLWlMydFRrVC9W
700 K05SNGZqcnpFMXZQYkNVOExweE9UVHNSMkM2UXdIYUJlRFR4S0gxV1hXR1ZxbTNCcVB0T1hSSm4K
701 Si9KQWpRZWtZRmhGRnZuTUpiT2pZSEM4ZEliZTZqVXpONVB3dUhDMm50bksxdE5ieVZONURHdzdr
702 TzRQZGNmM1FWL2FPN2JIUm1meApSNnZGZlZUYmd0SDdzOTVFVG96VVB6ZWZQM0JMMm80NVpaSFBY
703 SkUyeHY0NUs2VTRsWGlLSGVkMkVIMGxtcGdyTVNUZVNlVFJGby9pCjg2QVBQZy82NFB1Z0w4M3JO
704 emRxdmNLOGxiZGdXUHdkOS95Yy9iU09JSVRGMHVsMHVEbTU0ZWJrcG44dDhVNGlzVmRpaWI0U3pj
705 ZUgKUHViNUg1K250bDF0ZkI3MHdjM1JqYllPYldubjBJNTJqZHZoVk1kSkRtZFZJNXJzWVVSR1Jo
706 SVVGRVJ1Ymk0elpzeGcrdlRweGRxOAo5dHByckYrL25rYU5HckYyN1ZwY1hWMkx0ZEhwZE93NHU0
707 UCtEL2ZYUHpmUGZ4R0dBLzRtMkU1RjIreW01SnltekdJdGV4amgvTGN2CnpYY1BJenc4SEg5Ly8v
708 dTJVVXB4L3VaNVlxL0c4a2ZpSDV5OWVaWXpTV2M0bTN5V25Qd2MyanEwL1c4UmNXaW5mKzVVMTZu
709 U0RtMFoKa3RNY1dFcE9pOXJEbURsekppRWhJYlJ1M1pxQWdBREdqQm1EbzZPamZubE1UQXg3OXV6
710 aDRNR0RiTisrbmVEZ1lFSkRRMHRjVjQrVwpQVXdWdXdMQ0tmMkwySnlFWXhrNUxVRTRsdENYaG56
711 QjZYUTZIblo0bUljZEhpNjI3R2JHVGM0a0Z4U1BNMGxuQ0xzUXhxcURxemgzCjh4eTNNbS9SdUha
712 am10UnRRcE82VFdoYXIybkJ6M1h1K2Jsd1dkMm0xTGFyWGFHYzVzQlNjcGFYeVF0R1Nrb0tBSDM2
713 RkZ5WlBXREEKQUtLam93a01ETlMzaVk2T1pzU0lFVGc0T0RCbXpCamVlT09OVXRkWHQyYmRxZzBz
714 aE1Xb1ljRGhJVHVnNkkyWjVzK2ZmOS9saHF6agpyK3JYYjhTZG0zZEl2SlBJbitsLzZoODMwbS93
715 Wi9xZm5FaytvLy81ei9RL3VYSDdCanFkam5vMTYxSFhyaTUxYTliVi8xeXZaajB1Cm5MekFsUzFY
716 OU04TC8zLzJyRGxrcHQ2QjdMdVJjaW1ZVSs2ZVI5M2E5aHo3N1ZkcTJOUW85V0dyczVWRGF3WXdl
717 Y0dJalkwdGNuakoKM2QyZHFLaW9JZ1VqSmlhRzU1NTdUdi9jeWNtSmMrZk84ZkREeGYrRkk0UW9W
718 RGpGeVAzODlkRFd2THVQMHBZYnNvN2kwdEowMk5uYQowYngrYzRNR3pKVlNaT1Jta0o2ZFRucE9P
719 cmV6YjVPZWZmZi9jOUw1ejU3LzROUENSNzhzTlR1VnE3ZXZrdG5rRGp3NEVtcmVMbmpZClpvTk5i
720 cEZIdXMwcEh2dnlNWEx5Y3NqTnp5M3hrYWZ5c05YWkZpa2lkcloycFJhWXdrTnRPZ3FLakU2blE0
721 ZU9hNGV1c2VYakxmcGwKaFVYb3IrMEtmOWF5WFhtWTVhQzNVcXJZOGJYU1BtVHgxdzNwak1wb1kr
722 dzY1aHZRcGpLMlU1RTI4eWs5cHltem1QSXpWMldXK1FhMApxWXp0VkxUTlgzL25sYk9keXY0WCs2
723 WlZtMHBac3FITTk4WVpjTE9jdkx2L3l5TEx1R0IvY1QzMGVvWGViODVNWGpDNmR1M0tQLzd4CkQv
724 M3o0OGVQTTNEZ3dDSnRmSDE5T1hIaUJBRUJBUUFrSkNUZzR1SlNiRjBXZkVhd0VFSllISk5mbmRP
725 Z1FRT2c0RXlwdUxnNGR1N2MKaWErdmI1RTJ2cjYrYk5xMGlhU2tKTmF0VzRlYm0xdEpxeEpDQ0dG
726 Q21oeVNXcng0TVVGQlFlVGs1REJqeGd3Y0hSMEpDUWtCSUNnbwpDQjhmSDNyMTZzV2pqejZLZzRN
727 RGE5YXMwU0ttRUVLSWV5a3pGeEVSb1Z4ZFhWWGJ0bTNWMHFWTFMyd3paODRjMWFaTkc5VzVjMmQx
728 Cjh1UkpFeWNzVUZiTzNidDNLM3Q3ZStYbDVhVzh2THpVMjIrL2JmS01FeWRPVkUyYU5GRWVIaDZs
729 dGpHSHZpd3Jwem4wcFZKS1hicDAKU2ZuNyt5dDNkM2ZsNStlbjFxNWRXMkk3cmZ2VWtKeGE5MmxH
730 Um9ieThmRlJucDZleXRmWFYzMzQ0WWNsdHRPNkx3M0pxWFZmM2lzMwpOMWQ1ZVhtcElVT0dsTGpj
731 MlA0MCs0TGg1ZVdsSWlJaVZGeGNuR3JmdnIxS1NFZ29zanc2T2xyMTdObFRKU1VscVhYcjFxbkF3
732 RUN6CnpMbDc5MjQxZE9oUVRiSVZpb3lNVkljUEh5NzFpOWhjK3JLc25PYlFsMG9wZGUzYU5YWGt5
733 QkdsbEZJSkNRbXFUWnMyS2pVMXRVZ2IKYytoVFEzS2FRNSttcDZjcnBaVEt6TXhVSFRwMFVHZk9u
734 Q215M0J6NlVxbXljNXBEWHhaYXVIQ2hHanQyYklsNXl0T2ZaajNEMkwzWApiTFJ1M1ZwL3pjYTkv
735 bnJOeHNtVEo4MHlKMmcvU04rN2QyOGFOV3BVNm5KejZFc29PeWRvMzVjQXpabzF3OHZMQ3dCSFIw
736 YzZkT2pBCndZTUhpN1F4aHo0MUpDZG8zNmQxNnRRQjRQYnQyK1RtNWxLclZxMGl5ODJoTDZIc25L
737 QjlYd0xFeDhmejAwOC84Znp6ejVlWXB6ejkKYWRZRm83UnJOdTRWRXhPRHU3dTcvbm5oTlJ1bVpF
738 aE9uVTdIL3YzNzhmTHk0dVdYWHpaNVJrT1lRMThhd2h6Nzh1elpzeHcvZmh3ZgpINThpcjV0Ym41
739 YVcweHo2TkQ4L0gwOVBUNW8yYmNxMGFkTm8yYkpsa2VYbTBwZGw1VFNIdmdTWU5Xc1dIM3p3QVRZ
740 MkpYL05sNmMvCnpicGdHRUlaY2MyR2xqcDM3c3pseTVlSmpZM0YzZDJkbVRObmFoMnBHT25MOGts
741 TFMyUFVxRkVzV3JTSXVuV0x6anhnVG4xNnY1em0KMEtjMk5qYjgrdXV2bkQxN2xwVXJWM0xreUpF
742 aXk4MmxMOHZLYVE1OUdSb2FTcE1tVGZEMjlpNTFiNmM4L1duV0JhTnIxNjZjT25WSwovL3o0OGVO
743 MDY5YXRTSnZDYXpZS2xYYk5SbFV5SkdmOSt2V3BVNmNPZG5aMlRKNDhtZGpZV0xLeUtuYUJVR1V6
744 aDc0MGhEbjFaVTVPCkRzT0hEK2U1NTU3anlTZWZMTGJjWFBxMHJKem0xS2ZPenM0TUhqeTQyR0Zk
745 YytuTFFxWGxOSWUrM0w5L1B6LysrQ050MnJSaHpKZ3gKL1BMTEw0d2JONjVJbS9MMHAxa1hERXU1
746 WnNPUW5EZHUzTkJYOHkxYnR0Q3BVNmNTajMxcXlSejYwaERtMHBkS0tTWlBub3lIaHdjdgp2ZlJT
747 aVczTW9VOE55YWwxbnlZbUpuTHIxaTBBa3BLUzJMRmpSN0hDWmc1OWFVaE9yZnNTWU1HQ0JWeStm
748 SmtMRnk3d3pUZmY4UGpqCmovT2YvL3luU0p2eTlLZFpUZzF5TDB1NVpxT3NuTjkrK3kyclZxMmlS
749 bzBhZE9yVWlZVUxGNW84NDVneFk0aUlpQ0F4TVpHV0xWc3kKZi81OGNuSnk5Qm5OcFMvTHlta09m
750 UW13Yjk4KzFxeFpRNmRPbmZEMjlnWUsvbEF2WGJxa3oyb09mV3BJVHEzNzlOcTFhNHdmUDU2OAp2
751 RHlhTld0R2NIQXd6WnMzTjd1L2RVTnlhdDJYSlNrODFGVFIvclRvTys0SklZUXdIYk0rSkNXRUVN
752 SjhTTUVRUWdoaEVDa1lRZ2doCkRDSUZRd2doaEVHa1lJaEtaV05qUTNCd3NQNzV2Ly85NzcvY0Fy
753 VHErZnY3Yy9qd1lRQUNBd05KVFUydDBQckN3OE1aT25Tb3dhOVgKeGJhcTB0V3JWM25tbVdkTXVr
754 MWhtYVJnaUVwVnMyWk52di8rZTVLU2tnRGpyOFROeTh1cmNJWjd0N2wxNjFiczdlMHJ2RTVyMXFK
755 RgpDelp1M0toMURHRUJwR0NJU21Wblo4Y0xMN3pBb2tXTGlpMjdldlVxTTJmT3hOUFRrMW16Wm5I
756 anhnMEFKa3lZd01zdnY0eXZyeSt2CnZ2b3FFeWRPNUpWWFhzSEh4NGYyN2R0ejVNZ1JYbmpoQlRw
757 MDZNQzhlZlAwNi92NzMvOU8xNjVkNmRHakI2dFhyeTR4ajdPek0wbEoKU1h6MDBVZDRlM3ZqN2Ux
758 Tm16WnRlUHp4eDRHQ2VjREdqUnVIcjY4dmMrYk0wVitSR3hzYlM5KytmZkgyOW1iNzl1MWxmdTZN
759 akF3KwovUEJEL1B6OENBd01KRHc4SElEdTNic1h1WnEyY084bk16T3p4UGFsdVh6NU1vTUdEY0xM
760 eXd0UFQwL09uVHRIWEZ3Yzd1N3VUSjQ4CkdUYzNOK2JQbjYvUC8vYmJiK1BqNDBQWHJsMVpzR0JC
761 a2ZXODhzb3JlSHQ3MDZWTEZ5NWN1RUJjWEJ3ZE8zWUU0SXN2dm1EMDZORU0KSGp3WUR3OFBsaTVk
762 cW4vdnRtM2I2TjY5T3o0K1ByejAwa3RNbno2OVdNNmpSNC9TdDI5ZnZMeTg2Tnk1TTdkdjN5Nno3
763 NFFGcWNqVQp1VUw4VmIxNjlWUnFhcXB5ZG5aV0tTa3A2dC8vL3JlYU4yK2VVa3FwV2JObXFmZmZm
764 MThwcGRTQ0JRdlU3Tm16bFZKS2pSOC9Ydm41CitlbW4zSjR3WVlJYU5HaVF5c3JLVWw5ODhZV3FW
765 NitlQ2c4UFYxbFpXY3JOelUwL2RYeHljckpTU3Ftc3JDemw2K3VyYnQrK3JaUlMKeXQvZlh4MDZk
766 RWdwcFpTenM3TktTa3JTNTh2SnlWRzllL2RXb2FHaCtyYTNidDFTU2lrMWUvWnM5YzAzM3lpbGxP
767 clVxWk9Lam81Vwp0Mi9mVmdNSERpeHhldWpkdTNmcjd6UHcrZWVmcXlWTGxpaWxsTHArL2JyeThm
768 RlJTaW0xYU5FaU5YZnVYS1dVVWxldlhsWHQyN2UvCmIvdDcxM212dVhQbnFrOCsrVVQvR1RJeU10
769 U0ZDeGVVVHFkVDMzMzNuY3JNekZSUFAvMjArdmJiYjR2MFRXNXVyaG82ZEtnNmRlcVUKdnE5WHJG
770 aWg3N2M3ZCs2b0N4Y3U2S2VTLy96enoxV1RKazNVMWF0WFZXcHFxbnJvb1lkVWRuYTJ5c25KVWM3
771 T3p1ckNoUXNxS1NsSgpkZTdjV1UyZlByMVl6dkhqeDZ1d3NEQ2xWTUUwNExtNXVjWGFDTXNsZXhp
772 aTB0V3ZYNTl4NDhZVitkY3B3TTgvLzh5a1NaTUFtRHg1Ck1sdTJiQUVLRGlHTkdER0MrdlhyNjl1
773 T0dER0NtalZyMHIxN2R4bzJiSWlmbng4MWE5YkUyOXRiUHhQd3pwMDdDUXdNeE52Ym0vUG4Kei9Q
774 TEw3K1VtVzNHakJuMDdkdVh3TUJBRGgwNnhMRmp4L0QzOThmYjI1dlEwRkFpSXlPNWN1VUtTaWw4
775 Zkh5b1c3Y3VvMGFOS25PNgo2azJiTnJGNjlXcTh2YjBaT0hBZ04yN2M0TUtGQzR3Y09aSnZ2LzBX
776 Z0EwYk51akhDa3BxZi83OCtWTFgzN1ZyVnhZdlhzeDc3NzFICmNuSXlEenp3QUZBd0xjMndZY09v
777 VmFzV1k4YU1ZZHUyYlFBY1BIaVE0Y09IMDZsVEp3NGZQc3lPSFR2SXpzNW05KzdkVEpreUJTZzQK
778 ZkZpN2R1MWkyeG93WUFETm16ZW5mdjM2dUx1N2MvandZYUtpb3VqWXNTUE96czQ0T0Rqd3hCTlBs
779 TmduM2J0M1o4NmNPU3hmdnB6YwozRnhzYlczTC9KMEl5MkgyVTRNSXkvVFNTeS9SdVhObkprNmNX
780 T1QxMHI1NG16ZHZYdVI1NGZ4Y05XdldwR0hEaHZyWGE5YXNTWFoyCk5tbHBhY3laTTRjOWUvYnc0
781 SU1QTW16WU1HN2V2SG5mVEY5ODhRV1hMMTltNWNxVlFNRTAxUjRlSHV6ZXZidEl1L2o0ZU1NKzVE
782 M3kKOC9OWnNXSUZmZnIwS2Jhc2NlUEcvUDc3NzJ6WXNFRS9OVU5wN1F1bjYvaXJ3TUJBdW5UcHdw
783 bzFhK2pac3ljYk4yNHMwaStGQ3NkdgpwaytmenJmZmZvdUhod2V6WnMzaTVzMmI2SFM2RW1jby9h
784 dS85bmRtWmlZMWF0UW9NalpVMmpxQ2dvTG8zNysvZmlxUzZPaG9talp0CmV0L3RDY3NoZXhpaVNq
785 UnExSWlSSTBmeTZhZWY2cjlvQmc4ZXpKZGZma2wrZmo2ZmZmWVpUenp4UkxuV3JaVGkxcTFiMk5u
786 WjBheFoKTTA2ZlBzMnVYYnZ1KzU1RGh3NnhjT0ZDdnZycUsvMXJYYnQyNWNhTkcvbzlsdlQwZE02
787 Y09jTkREejJFcmEwdHNiR3hwS2VuczJIRApoakl6alIwN2xwQ1FFTkxTMGdDS1RIazlhdFFvM252
788 dlBWSlRVL0h3OENpemZVa3VYTGlnbjd1b2I5KysrbkdSbEpRVWZ2amhCN0t5CnNsaS9majBEQnc0
789 a016T1R0TFEwbkoyZHVYTGxDcHMzYndZS3hwY2VlK3d4VnE5ZWpWS0tyS3dzTWpJeXl2eHNPcDJP
790 YnQyNjhmdnYKdnhNWEYwZHljaktob2FFbG50Qnc3dHc1WEZ4YytOLy8vVjljWFYzTjRsNGxvdkpJ
791 d1JDVjZ0NHZrVmRlZVlYRXhFVDk4K0RnWUM1ZAp1b1MzdHpjM2J0emc1WmRmTHZGOWYzMWUwcktX
792 TFZzeWZQaHdQRHc4bURadFdxbW5vaGIrcTNyRmloWGN2SG1UeHg1N0RHOXZiMTU0CjRRVUF2dnJx
793 SzFhdFdrV25UcDNvMGFNSGYvenhCd0FmZi93eHI3MzJHcjE2OWNMVDA3UEVMMGVkVHFkL2ZjU0lF
794 Zmo0K0JBUUVJQ0gKaHdkejU4N1Z0eHN4WWdUcjE2OW41TWlSUlY0cnFmMjk2N3pYaGcwYjhQRHdv
795 R3ZYcnR5NWMwZS9MbGRYVjM3ODhVZTh2THp3OFBBZwpNRENRQng1NGdEbHo1dURqNDhPb1VhTVlQ
796 SGl3ZmozdnZQTU9aOCtleGRQVGs1NDllK3BQUENqY1ptbmJ0N1cxWmZueTVZd2FOWXFCCkF3ZlNz
797 V05IMnJScFU2emRraVZMNk5peEl6NCtQcmk2dXRLalI0OFNmeS9DTXNua2cwSllxTGk0T0lZT0hj
798 cnZ2Lzl1a3UybHA2ZFQKdDI1ZFVsSlNHREprQ0o5ODhnbnQyN2MzeWJhRmVaQXhEQ0VzbUNudk9E
799 ZHYzanpDd3NLd3M3UGoyV2VmbFdKUkRja2VoaEJDQ0lQSQpHSVlRUWdpRFNNRVFRZ2hoRUNrWVFn
800 Z2hEQ0lGUXdnaGhFR2tZQWdoaERDSUZBd2hoQkFHK1g4TEF4UDFCZTVmQkFBQUFBQkpSVTVFCnJr
801 SmdnZz09Cg==
802 </png>
803 </output>
804 </outputs>
805 </codecell>
806 <markdowncell>
807 <source>## Parallel calculation of nearest neighbor eigenvalue distribution</source>
808 </markdowncell>
809 <markdowncell>
810 <source>Here we perform a parallel computation, where each process constructs and diagonalizes a subset of
811 the overall set of random matrices.</source>
812 </markdowncell>
813 <codecell>
814 <input>def parallel_diffs(rc, num, N):
815 nengines = len(rc.targets)
816 num_per_engine = num/nengines
817 print "Running with", num_per_engine, "per engine."
818 ar = rc.apply_async(ensemble_diffs, num_per_engine, N)
819 diffs = np.array(ar.get()).flatten()
820 normalized_diffs = normalize_diffs(diffs)
821 return normalized_diffs</input>
822 <language>python</language>
823 <prompt_number>11</prompt_number>
824 <collapsed>1</collapsed>
825 <outputs />
826 </codecell>
827 <codecell>
828 <input>client = Client()
829 view = client[:]
830 view.run('rmtkernel.py')
831 view.block = False</input>
832 <language>python</language>
833 <prompt_number>12</prompt_number>
834 <collapsed>1</collapsed>
835 <outputs />
836 </codecell>
837 <codecell>
838 <input>parallel_nmats = 40*serial_nmats
839 parallel_matsize = 50</input>
840 <language>python</language>
841 <prompt_number>13</prompt_number>
842 <collapsed>1</collapsed>
843 <outputs />
844 </codecell>
845 <codecell>
846 <input>%timeit -r1 -n1 parallel_diffs(view, parallel_nmats, parallel_matsize)</input>
847 <language>python</language>
848 <prompt_number>14</prompt_number>
849 <collapsed>0</collapsed>
850 <outputs>
851 <output>
852 <output_type>stream</output_type>
853 <text>Running with 10000 per engine.
854 1 loops, best of 1: 14 s per loop</text>
855 </output>
856 <output>
857 <output_type>stream</output_type>
858 <text />
859 </output>
860 </outputs>
861 </codecell>
862 <codecell>
863 <input>pdiffs = parallel_diffs(view, parallel_nmats, parallel_matsize)</input>
864 <language>python</language>
865 <prompt_number>15</prompt_number>
866 <collapsed>0</collapsed>
867 <outputs>
868 <output>
869 <output_type>stream</output_type>
870 <text>Running with 10000 per engine.</text>
871 </output>
872 </outputs>
873 </codecell>
874 <markdowncell>
875 <source>Again, the agreement with the Wigner distribution is excellent, but now we have better
876 statistics.</source>
877 </markdowncell>
878 <codecell>
879 <input>hist_data = hist(pdiffs, bins=30, normed=True)
880 plot(s, rhos)
881 xlabel('Normalized level spacing s')
882 ylabel('Probability $P(s)$')</input>
883 <language>python</language>
884 <prompt_number>16</prompt_number>
885 <collapsed>0</collapsed>
886 <outputs>
887 <output>
888 <output_type>pyout</output_type>
889 <text>&amp;lt;matplotlib.text.Text at 0x376c950&amp;gt;</text>
890 <prompt_number>16</prompt_number>
891 </output>
892 <output>
893 <output_type>display_data</output_type>
894 <png>aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVl3QUFBRU1DQVlBQUFEWGlZR1NBQUFBQkhOQ1NWUUlD
895 QWdJZkFoa2lBQUFBQWx3U0ZsegpBQUFMRWdBQUN4SUIwdDErL0FBQUlBQkpSRUZVZUp6dDNYbGNW
896 UFgreC9IWElMZ2pMcWhvRm1xaGdDZ01Db2dtVG01Z3FOMVNNNjFjCjZoWmxpcmxVMXErdVdyZHVk
897 YStwbVJyWnRWVXJ5OHF0TWt6SDBRVEVMWGROQlJPM0ZCVlEyVG0vUDRpNWptd3pNTXlaWVQ3UCs1
898 aEgKek16WDcvZk40VElmenZtZTh6MGFSVkVVaEJCQ2lFcTRxQjFBQ0NHRVk1Q0NJWVFRd2l4U01J
899 UVFRcGhGQ29ZUVFnaXpTTUVRUWdoaApGaWtZUWdnaHpLSkt3VEFZRFBqNStlSGo0OFBDaFF0THZa
900 K1ZsY1gwNmRNSkNnb2lQRHljRXlkT3FKQlNDQ0hFelZRcEdGT21UQ0V1CkxvNk5HemV5YU5FaUxs
901 MjZaUEwrRjE5OFFYNStQbnYzN3VXZGQ5N2grZWVmVnlPbUVFS0ltOWk4WUdSa1pBQVFFUkdCdDdj
902 M2d3WU4KSWlrcHlhVE5wazJiaUk2T0JpQThQSnpqeDQvYk9xWVFRb2hiMkx4Z0pDY240K3ZyYTN6
903 dTcrOVBZbUtpU1p2SXlFaSsrT0lMc3JPegpXYk5tRGZ2Mzd5Y2xKY1hXVVlVUVF0ekVWZTBBWlJr
904 MWFoUnBhV24wN2R1WHpwMDc0K1BqUTcxNjlVcTEwMmcwS3FRVFFnakhWNlZWCm9SUWJ1M3IxcWhJ
905 VUZHUjhQbW5TSkdYZHVuWGx0cy9LeWxJQ0F3UExmRStGK0ZVeWE5WXN0U09ZUlhKYWp5TmtWQlRK
906 YVcyT2tyT3EKbjUwMlB5VGw0ZUVCRko4cGxacWFTbng4UEdGaFlTWnRNakl5eU12TDQ4YU5HL3py
907 WC85aTRNQ0J0bzRwaEJEaUZxb2NrcG8vZno0eApNVEhrNStjVEd4dUxwNmNuY1hGeEFNVEV4SERv
908 MENIR2p4OVBVVkVSNGVIaHZQLysrMnJFRkVJSWNSTlZDa2Jmdm4wNWZQaXd5V3N4Ck1USEdyOFBE
909 d3psNjlLaXRZOVVZblU2bmRnU3pTRTdyY1lTTUlEbXR6VkZ5VnBYbXIrTlpEa21qMFZSdDRrWUlJ
910 WnhZVlQ4N1pXa1EKSVlRUVpwR0NJWVFRd2l4U01JUVFRcGhGQ29ZUVFnaXpTTUVRUWdoaEZpa1lR
911 Z2doekNJRlF3Z2hoRm1rWUFnaGhEQ0xGQXdoaEJCbQprWUloaEJEQ0xGSXdoQkJDbUVVS2hnTnEw
912 cVE1R28ybTBrZVRKczNWamlxRXFFVms4VUVIVkh5blFYTytiK2ZjUGtLSWlzbmlnMElJCklXcVVG
913 QXdoaEJCbVVhVmdHQXdHL1B6ODhQSHhZZUhDaGFYZXo4N09adHk0Y1dpMVd2cjI3Y3ZxMWF0VlND
914 bUVFT0ptcXN4aGFMVmEKRml4WWdMZTNONUdSa1d6YnRnMVBUMC9qKysrLy96Nzc5dTFqOGVMRm5E
915 cDFpbjc5K25IOCtQRy9qdDNmRkY3bU1DcHI2WlRiUndoUgpNWWVadzhqSXlBQWdJaUlDYjI5dkJn
916 MGFSRkpTa2trYkR3OFBzckt5eU0vUDUvTGx5elJzMkxCVXNSQkNDR0ZiTnIrbmQzSnlNcjYrCnZz
917 Ym4vdjcrSkNZbUVoMGRiWHh0OU9qUnJGMjdGazlQVHdvS0NraElTQ2kzdjltelp4dS8xdWwwdGY2
918 ZXVrSUlZU205WG85ZXI2OTIKUHpZdkdPWjQ3NzMzY0hWMTVkeTVjK3pmdjUvbzZHaE9uVHFGaTB2
919 cEhhS2JDNFlRUW9qU2J2MWplczZjT1ZYcXgrYUhwRUpDUWpoeQo1SWp4K2NHREIrblpzNmRKRzRQ
920 QndNTVBQMHpEaGcwSkN3dWpiZHUySER0MnpOWlJhd0ZYdWNCUENHRTFOaThZSGg0ZVFIRlJTRTFO
921 CkpUNCtuckN3TUpNMi9mdjNaKzNhdFJRVkZYSHk1RWt1WDc1c2NoaExtS3VBNHNueGloOVpXVmRV
922 U3lpRWNCeXFISkthUDM4K01URXgKNU9mbkV4c2JpNmVuSjNGeGNRREV4TVR3MEVNUGNlalFJWHIw
923 NkVITGxpMVpzR0NCR2pHRkVFTGNSSllHc1JOTm1qUzM4Qzk5ODA2cgpsZE52aFJDM3F1cG5weFFN
924 TzJIK3RSVmdTU0dRZ2lHRXVKWERYSWNoaEJEQ01VbkJFRUlJWVJhN3ZBNURtRXVCSm1lZzBaK1E0
925 d0U1CnpTQzdHY1dIb29RUXdycWtZRGlhQnVrUUFIVHREVjYvUWE0N1hHOE45VEtoNFNXNDVnVkho
926 OEhSb1hBYUtES25VMWV6bGw1eGQyOUcKWnVibGFuNERRZ2hISlpQZWRxTFNTVyszNjNEUExBaitF
927 SDdQZ045K2dOTzlJTmZqcGtZS3ROa0RuZGRBNTlWUWJ5OXMvQm9PRGFmaQp2UTZaSEJmQ21jaFpV
928 ZzZ1d29KeDU4OHc1Q2s0SFE0YjVoWHZVWmp6QWQ5QkE1R0JrTmNZTnJ3RFowTExHOTI4L3FSZ0NG
929 RXJTTUZ3CmNHVVdERTBoREk2RlR1dGgzUkk0UHJqa2pkSnR5KzRWTkFVUStDbjBmd2tTbjRWZm42
930 ZjAzb1lVRENHY2lSUU1CMWVxWUxqa3d3T1AKUXNPTDhPWDNrT2QrYzJzc3ZnNmp5V2tZTlJ5dWRJ
931 RFZ5eUMvVVpYNnF5M2JXd2huSnRkaDFDYXVPY1VmN203WFljWDZXNHBGRldYZQpEaDhaSUw4aC9E
932 MGNQUDZvZnA5Q0NLY2lCY1BlMU1tRjBjTWd2d0Y4OVMwVTFMZGUzd1gxaS9jdWZoc0w0L3BCNDNQ
933 VzYxc0lVZXZKCmFiWDJKdXJaNHIyQVZTdEFxVk1EQTJoZys0emlRMTVqQjhESGVyaFJBOE1JSVdv
934 ZEtSajJKT2dqNkxBSmxpYlhVTEc0eWJZWG9lNDEKZURRU1BnRnlhblk0SVlUamswTlM5cUlOTVBC
935 NStPbzd5RzFpbXpFMy9STk85WUdIS1M0ZVFnaFJBU2tZZGlEOVJqbzhDS3hmQWhmOQpiVGl5cHZp
936 NmpvdkE4REdnTWV1eWNDR0VrMUtsWUJnTUJ2ejgvUER4OFdIaHdvV2wzdi9QZi82RFZxdEZxOVhT
937 dFd0WFhGMWR1WHIxCnFncEpiU1AycDFnNEFod2FZZnZCRlJkWVQvR1NJM2UvYWZ2eGhSQU9RNVhy
938 TUxSYUxRc1dMTURiMjV2SXlFaTJiZHVHcDZkbm1XM1gKclZ2SC9QbnoyYmh4WTZuM2FzTjFHQnVP
939 YitEcDlVK1Q4bHdLNUt0M1B3emMwK0RKSHZEZFozQnlRTG50SEgxN0N5RWM2RHFNakl3TQpBQ0lp
940 SXZEMjltYlFvRUVrSlNXVjIzN0ZpaFdNSGozYVZ2RnM2a2IrRFNiK01KRkY5eTZDZkpYRFpOMEcz
941 eTZIK3g4dHZzaFBDQ0Z1CllmT0NrWnljaksrdnIvRzV2NzgvaVltSlpiYTljZU1HR3pac1lQanc0
942 YmFLWjFPdkdWNGpwRzBJZzMwR1Y5N1lGbEw2UWRJVWVIQWsKMU1sVE80MFF3czdZOVdtMWE5ZXU1
943 ZTY3NzZacDA2Ymx0cGs5ZTdieGE1MU9oMDZucS9sZ1ZyRC93bjcrdS91LzdIdDZuOXBSVEcxNwpB
944 ZG9sd3NEbjRLY0ZhcWNSUWxpQlhxOUhyOWRYdXgrYnoyRmtaR1NnMCtuWXMyY1BBSk1uVHlZcUtv
945 cm82T2hTYmUrLy8zNUdqUnJGClF3ODlWR1pmampxSG9TZ0t1azkwakFrWVEweVBHRUQ5ZTNxYnRL
946 dC9CU1oyaFc4L2gxU2RTVHRIM041Q0NGTU9NNGZoNFZGOC93YUQKd1VCcWFpcng4ZkdFaFlXVmFw
947 ZVJrWUhCWU9DKysrNnpkY1FhRjM4eW5ndlhMdkQzNEwrckhhVnNPYzFnL1dJWTl2Zmk5YXlNaW0r
948 MApaTTZqU1pQbXFzVVhRdFFNVlU2cm5UOS9QakV4TVF3WU1JQ0pFeWZpNmVsSlhGd2NjWEZ4eGpi
949 ZmYvODlrWkdSTkdqUVFJMklOVVpSCkZGN1ovQXF6ZGJPcDQxTERWM05YeDlGaGtCWUcvVjY1NmNV
950 Q2l2ZEVLbjlrWlYyeGNXQWhSRTJUNWMxdGJQMng5Y3o4WlNhL1BmVWIKTHByLzFXdTdPaVJWb3VF
951 bGVMb3JyRnhWZkhjL3Mvc3I3dFBSZmpaQ09BdUhPU1RsekJSRjRSLzZmekJITjhla1dOaXRHNTd3
952 NDBLNAo3N0hpSmRlRkVFN05BVDYxYW8vdmozeVBvaWpjNzN1LzJsSE1kMmdFL0JrQWZlZW9uVVFJ
953 b1RJcEdEWlNwQlR4RC8wL2VQV2VWLzg2Ci9PUkExaThDN1RKb3EzWVFJWVNhcEdEWXlOY0h2NmFS
954 V3lPaWZVcWZQbXozcnJlR24rZkNNSXJ2TXk2RWNFb3k2VjNEbWpScFR0YTEKS3pBUitBazRVVkZy
955 TzV2ME5xSEFCQmZZRndlN25qU3JUM3YvMlFqaHJHVFMyMDVsWlYyQk8zK0VnaUE0VVVUNXA2TGFP
956 dzM4Q056egpENmhmZTFjT0ZrS1VUd3FHTFlRdWhCMlRLZjVMM29HZEI0NE9oWWpYMUU0aWhGQ0JG
957 SXlhMWh5NExSbjIxNUlWZHpmOUU0SStnUmJICjFFNGloTEF4S1JnMUxRVFk4eGdVMUpJcjFxKzNM
958 bDZnY05CMHRaTUlJV3hNQ2tZTnVwWjNEUUtCNUtmVmptSmRTYkhnZVFUdTNLQjIKRWlHRURVbkJx
959 RUdmNy9zY1RnRVozbXBIc2E3Q2VzV24yVVpOQlJlMTcvd2toTEFWS1JnMVJGRVUzdHZ4SHBSL00w
960 SEhkblFvWkxhRApIdStyblVRSVlTTlNNR3JJNXRUTnhWK2txaHFqQm1uZ3AzblE5elZva0s1MkdD
961 R0VEVWpCcUNFTGR5eGtVdWdrdFdQVXJJdGQ0T0NECm9KTjFwb1J3QmxJd2FrQmFaaHFHVXdZZTZm
962 YUkybEZxbm40V2RGME9IcWZVVGlLRXFHRlNNR3JBOG4zTEdlRS9nc1oxRzZzZHBlYmQKYUFuSkU2
963 SHZxMm9uRVVMVU1GVUtoc0Znd00vUER4OGZIeFl1WEZobW0rVGtaRUpDUXZEejgwT24wOWsyWURV
964 b2lzSm4rejdqa2E1TwpzSGRSSW1FNmRGNGpGL01KVWN1cHN2aWdWcXRsd1lJRmVIdDdFeGtaeWJa
965 dDIvRDA5RFMrcnlnSzNicDFZOTY4ZVF3WU1JQkxseTZaCnZGL0NIaGNmL08zOGI5ejM1WDJjbkhJ
966 U0Y0MkxCWGZTczhNNzdsblNyczhiMEdvL3JQckMyTmJlZmpaQ2lHSU9zL2hnUmtZR0FCRVIKRVho
967 N2V6Tm8wQ0NTa2t6UFBkMjVjeWZkdW5WandJQUJBR1VXQzN2MTJiN1BlS1RiSTQ1eFJ6MXJTb3FG
968 RHB1aDlUNjFrd2doYW9qTgpQOVdTazVQeDlmVTFQdmYzOXljeE1kR2t6WVlORzlCb05QVHAwNGVo
969 UTRleVlZTmpYRkZjV0ZUSWl2MHJlTGpydzJwSHNiMjh4ckJ0Ckp0enppdHBKaEJBMXhGWHRBR1hK
970 eWNsaDc5NjliTnk0a1JzM2JqQnc0RUFPSERoQWd3YWwxMk9hUFh1MjhXdWRUcWZxZk1lbWxFMjAK
971 ZFcrTFgwcy8xVEtvYXVkVEVENFhia3VDTTJxSEVVS1UwT3YxNlBYNmF2ZGo4NElSRWhMQ2M4ODla
972 M3grOE9CQm9xS2lUTnFFaDRlVAptNXVMbDVjWEFEMTY5TUJnTUJBWkdWbXF2NXNMaHRvKzMvKzVj
973 NXhLVzU2QyttQjRCZnE5REorcEhVWUlVZUxXUDZibnpLbmF0Vk1XClRYb1hGUldSa0pCQWFtb3FG
974 eTllcEduVHBuVHAwb1h1M2J2ajRtTCswYTJTU2U4NzdyaURxS2lvVXBQZTZlbnBEQjQ4R0wxZVQw
975 NU8KRGoxNzltVDM3dDAwYm14Nm1xbzlUWHBmejd0T3UzbnRPUExNRVZvM2JtMTgzV2ttdlV1NDVN
976 TWtYMWh6Q2xJcnY1MnJ1M3N6TWpNdgptekcyRU1KYXF2clphZFllUmw1ZUh2UG16YU93c0pDbVRa
977 dlNzV05IdW5UcFFscGFHdHUzYjJmVnFsVzBhdFdLS1ZPbVVLZE9uVXI3Cm16OS9QakV4TWVUbjV4
978 TWJHNHVucHlkeGNYRUF4TVRFMEtKRkN5Wk1tRUNQSGoxbzJiSWxyNzc2YXFsaVlXOVdIMTFOejNZ
979 OVRZcUYKVXlweUEvMXM2RGNXbGhWUjJVMmpzckljL0taU1FqaVJTdmN3Y25OeldiRmlCVU9HREtG
980 bHk1Ymx0anQ1OGlTLy9QSUxUenp4aE5WRApsc2VlOWpEdVhYNHZEM2Q5bUllN21VNTRPOTBlQm9D
981 bUVKNTJoZmoxOFB1OWxmWnBMejlESVp4RlZUODdWYmtPdzFyc3BXQmN1SGFCCnp1OTE1c3kwTXpT
982 cTI4amtQYWNzR0FCK0dvalFRdHd1S3Q3THNJK2ZvUkRPeEdiWFlSdzVjb1FmZnZpQnk1Y3ZjL2p3
983 WVlzSHJJMisKUFBBbHd6b1BLMVVzbk5waFFOR0EzN2RxSnhGQ1dFbVZDb2FYbHhjOWUvWmsvZnIx
984 ZlBhWm5BN2o5R2RIbFdmVFA2SGZLOFdIcUlRUQpEcy9pZ25IMjdGazJiOTZNVnF0bHhvd1p0Rzd0
985 M0pPOHY2Zi9UbHBtR3YwNjlGTTdpdjA1SGdYWnpTRGdLN1dUQ0NHc3dPS0NNVzdjCk9IeDlmVm15
986 WkFuUFBQTU1lL2Z1cllsY0R1UDdJOTl6WCtmN2NIV3h5MnNnVmFZcHZpNmp6eHVnS1ZJN2pCQ2lt
987 cW8xNlgzbHloV2EKTm0zNjE4U3U3ZG5EcEhmdlpiMTV1Yy9MRFBZWlhPYjdUanZwYld5cndCT2hz
988 TzFGT1B4QW1lM1UvaGtLNFd4cWJOSTdOemVYbzBlUApsdmxlczJiTlRJckYxcTFiTFE3Z3lDNWN1
989 OENCUHcvSTRhZ0thY0R3TWtUOEUvT0xqUkRDSGxWYU1PclZxMGQ2ZWpydnZmZGVtV2RGClpXWm1z
990 blhyVm1KalkybldyRm1OaExSWDY0NnRZOUNkZzZqbldrL3RLUGJ0MkZCd0tRQ2ZIOVZPSW9Tb0Jy
991 TU92Qjg1Y29SWFhubUYKYWRPbVViZHVYUjU1NUJGeWNuTEl6TXpFeTh1THlNaElGaXhZb05xaEti
992 V3NQcnFhQjdzOHFIWU0rNmU0Z09IL0lPSTErSDB3bFYzOQpMWVN3VDJZVmpMMTc5M0xod2dXeXNy
993 SjQ5OTEzR1RCZ0FIMzY5S25wYkhidGV0NTE5S2w2UHZuYkoycEhjUXlIUnNBOXM2RERKa2pwCnIz
994 WWFJVVFWbUhXV1ZMZHUzYWhidHk0dFdyUmcxcXhaN05tenA2WnoyYjM0ay9HRTNCWkNzd2JPZFJp
995 dXlwUTZzUFdsditZeWhCQ08KeUt5Q2taQ1F3SkVqUjRyL2dZc0wzdDdlTlJyS0Vhdyt1cHI3T3Qr
996 bmRnekhzbjgwTkQwRmQyeFRPNGtRb2dyTU9xMVdwOVBSdUhGagpEaDQ4U051MmJXbmF0Q2xqeG95
997 aFY2OWU3Tnk1azVFalI5b2lheWxxblZaYldGU0kxMXd2ZGo2eEUrK21GUmRQT2EzMkZzRkx3WDhW
998 CmZQNlRzWjJjVml1RWJkWG80b01IRHg2a1M1Y3VRUEdxdEVsSlNTUW5KNU9VbE1UKy9mdkp6TXkw
999 UExFVnFGVXd0cDdheXVRZko3UDMKcWNvdldwU0NjWXM2dVJEckExK3Rnck1oU01FUXd2WlVXNjEy
1000 M3J4NVRKMDZ0VHBkVkpsYUJXUEd6ek5ZT0hjUmVUL25tUGt2cEdDWQpDSDBQT3NiRGw2dVJnaUdF
1001 N2FsV01Bb0xDODI2YVZKTlVLTmdLSXBDcC9jNmNmeGZ4K0djSFg0WTIwVzdTdHE2WnNPVWpzV0hw
1002 UzRFClNjRVF3c1pzdHJ6NXJhcFNMQXdHQTM1K2Z2ajQrTEJ3NGNKUzcrdjFlanc4UE5CcXRXaTFX
1003 djc1VC9zNXMrYndwY1BrRnVUQ09iV1QKT0xDQ0JwQXd2WGlOS1NHRXcxQmx4YndwVTZZUUZ4ZUh0
1004 N2Mza1pHUmpCNDkydVNlM2dCOSsvWmx6Wm8xYXNTcjBPb2pxeG5XZVJpTApXS1IyRk1lMjh5bVk4
1005 alo0VnQ1VUNHRWZMTnJET0hQbVRMVUh6TWpJQUNBaUlnSnZiMjhHRFJwRVVsSlNxWGIyZXBoQ1Rx
1006 ZTFrcnpHCmtEZ0ZuUHY2VHlFY2lrVUZZK0RBZ1F3ZVBKaVZLMWVTbjU5ZnBRR1RrNVB4OWZVMVB2
1007 ZjM5eWN4TWRHa2pVYWpZZnYyN1FRRkJURnQKMmpST25EaFJwYkdzN1Z6V09ZNm1INlZ2Kzc1cVI2
1008 a2Rka3dDSHpoeDJUNSt2a0tJaWxsMFNPclFvVU5zMzc2ZFpjdVc4Znp6enpOMAo2RkFtVEpoQWNI
1009 Q3dWVU1GQndkeit2UnAzTnpjK09TVFQ1Z3laUXJyMXEwcnMrM3MyYk9OWCt0ME9uUTZuVld6M0d6
1010 dHNiVkUzUlZGCjNUcDFhMndNcDVMckFjbnc1cTl2c25Ub1VyWFRDRkZyNmZWNjlIcDk5VHRTcXVq
1011 SEgzOVUyclJwbzdScTFVcnAxYXVYa3BDUVlOYS8KdTNyMXFoSVVGR1I4UG1uU0pHWGR1blhsdGk4
1012 cUtsSmF0V3FsNU9Ua2xIcXZHdkdyNU43bDl5cGY3UC9DT0RZb1pqeXMzVTdOc1dzZwpZNE02Q2kr
1013 ZzRGRnk4NHl5SCs3dXpXejZzeGFpTnF2cVo2ZEZoNlRTMHRKNC9mWFhDUWdJWU5teVpYejg4Y2Vj
1014 TzNlT3hZc1g4OWhqCmo1blZoNGVIQjFCOHBsUnFhaXJ4OGZHRWhZV1p0TGx3NFlKeERtUHQyclYw
1015 NjlhTmV2WFVYVUw4ZXQ1MXRwN2F5dUM3eXI1UmtxaWkKN0VMWS9SejBta1FGOVlLc3JDc3FoaFJD
1016 Z0lXSHBBWVBIc3lFQ1JQUTYvVW1aelVGQmdieTFGTlBtZDNQL1BuemlZbUpJVDgvbjlqWQpXRHc5
1017 UFltTGl3TWdKaWFHYjc3NWhpVkxsdURxNmtxM2J0MllPM2V1SlRGcmhPR1VBVzBiTFI3MVBkU09V
1018 dnRzbnc2VC9Jb1hKN3pXClJ1MDBRb2h5V0hUaDNvNGRPd2dORGEzME5WdXg1WVY3MHpaTW8xbjla
1019 cnpTOXhYajJIWjVVWnhkdEt0Q24xRlRvTWdOZnY1UHVlMXMKOWJNV29yYXp5WVY3WmUxRnhNVEVX
1020 RHlvSTlwNGNpTUQ3eHlvZG96YWEvdHpvRjBHRFMrcG5VUUlVUTZ6RGtrbEp5ZXpZOGNPTGw2OAp5
1021 T0xGaTQyVjZlTEZpMDV4VzliejE4NXpPdk0wUGRyMlVEdEs3WlhaRGc0K0NEM253YWJYMVU0amhD
1022 aURXWHNZR1JrWm5ENTltdno4CmZFNmZQazFhV2hwcGFXbDRlWG54MFVjZjFYUkcxVzA4dVpGNzJ0
1023 K0RxNHNxRjhZN2oyMHZRSS8zb2I1TWNBdGhqeXlhd3poMjdCaWQKT25XcXlUd1dzZFVjeHJqdng5
1024 SHp0cDQ4SGZLMHlkZ09NejlnODNiVjZQTnY0K0h5bldCNHBWUTdtY01Rd2pwcWRMWGE2T2hvMXE5
1025 ZgpUL3YyN2YvNm9EUWQrT1RKa3hZUGJBMjJLQmlLb25EYk83ZGhtR0RncnVaM21ZenRjQi9HTm10
1026 WGpUNWJISVBIZXNPQ2s1RG5idEpPCkNvWVExbEhWejA2empyRXNYNzRjZ0owN2QxbzhnS003ZFBF
1027 UTlWenJjV2V6TzlXTzRoelNPOEhKQVJDeUJINTlYdTAwUW9pYm1GVXcKbWpadENsQnFSVmxuRUg4
1028 eW5vRWRCNWJhc3hJMWFPdExNSFpnOFZwVCtRM1ZUaU9FK0l0WkJlUENoUXRsZm1BcWlvSkdvNkZW
1029 cTFaVwpEMll2NGsvR016NXd2Tm94bk11ZlhlRjBMK2orQVNRK3EzWWFJY1JmekpyRDhQSHhLVzU4
1030 UzlFb0tSakhqaDJybVhTVnFPazVqTHpDClBEemY5aVJsU2dvdEdyWW9OYmJEelEvWXJKMFYrdlRh
1031 QXc5SHc0SVR4VGRja2prTUlheW1SaS9jNjlTcEU3Ly8vanQ1ZVhuazUrZVQKbDVkbi9McXF5NXc3
1032 Z29UVENYVDI3RnlxV0FnYk9LK0ZNNkhRWFZheEZjSmVtTFdIa1pHUmdZZUhCNWN1bGI0S1Y2UFIw
1033 S0tGT2grbwpOYjJIOGZLbWx5bFNpbmlqZitsYmljb2VoZzM2YkxNYlJnK0ZkNDlEUVVQWnd4RENT
1034 bXIwTEttU0ZXYWRiZEk3L21ROGIvWi9VKzBZCnp1dGNNSnp0VWJ5WFVmcW1qRUlJRzdQNDB1Vkxs
1035 eTZ4WWNNR05Cb05rWkdScXUxZDFMUXIyVmM0ZlBFd3ZXN3ZwWFlVNTdabFZ2RmUKeGk2MWd3Z2hM
1036 RnA4Y1BueTVZU0hoNU9Ra01EMjdkc0pEdzgzWHFOUjIyeEsyVVR2TzNwVHoxWGQrM0E0dlpLOURP
1037 dmUxRkVJVVFVVwo3V0g4KzkvL1p1dldyWGg1ZVFIRnA5dEdSa2J5OE1NUDEwZzROVzFNMmNqQWpy
1038 STZyVjNZOGc4WXZZYWNnaHpxdTlaWE80MFFUc3VpClBZem16WnVUbloxdGZKNmRuVTN6NXMydEhz
1039 b2V4SitJWjBESEFXckhFQURudXNNNVdMcEx6cGdTUWsxbUZZekpreWN6ZWZKa1dyWnMKU2ZmdTNi
1040 bnZ2dnNZTm13WXdjSEJ0R3paMHVKQkRRWURmbjUrK1BqNHNIRGh3bkxiSlNjbjQrcnF5cmZmZm12
1041 eEdOV1JjaVdGYTNuWAo2TnFxcTAzSEZSWFF3MXUvdmtWT1FZN2FTWVJ3V21ZZGt1cmV2YnZ4b3Iz
1042 QmcvOTNUK3NISG5pZ1NrdG1USmt5aGJpNE9MeTl2WW1NCmpHVDA2TkdsenNBcUxDemtoUmRlSUNv
1043 cXl1YW5VOGFmTE42N2tPVkE3TWc1MExiUjh1SHVENWtVT2tudE5FSTRKYk1LeHZqeDQ2MDIKWUVa
1044 R0JnQVJFUkVBREJvMGlLU2tKS0tqbzAzYUxWeTRrQkVqUnBDY25HeTFzYzBWZnpLZUlUNURiRDZ1
1045 cU5pc3ZyUDQyNWQvNCsvQgpmNWU1RENGVVlORWNSbloyTnF0WHIyYml4SW1NSGoyYU1XUEdNR2JN
1046 R0lzR1RFNU94dGZYMS9qYzM5K2Z4TVJFa3pabnpweGg5ZXJWClBQMTA4ZjBuYlBtWGZtRlJJWnRT
1047 TnNuOGhSM3EwYllIMmpaYS9ydjd2MnBIRWNJcFdYU1cxTXN2djR4R28ySERoZzA4Ly96ekxGKysK
1048 bkx2dnZ0dnFvWjU5OWxuZWZQTk40OVdJRlIyU21qMTd0dkZyblU2SFRxZXIxdGk3eiszR3E3RVh0
1049 elc1clZyOWlKcFJzcGZ4ZVBEagpzcGNoaEpuMGVqMTZ2YjdhL1ZoMHg3M2c0R0IyNzk1Tmx5NWRP
1050 SGp3SUJrWkdRd1lNTUNpdzBZWkdSbm9kRHIyN05rREZFK29SMFZGCm1SeVM2dGl4bzdGSVhMcDBp
1051 WVlORzdKMDZWS0dEUnRtR3I0R2xnWjVZK3NiL0huOVQrWkh6YSt3blN3Tll2dXhTMzdXUTFZTVlm
1052 QmQKZzNrbTlCa3pzd2doYmxhaml3K1djSE56QTZCSGp4NnNXN2VPQ3hjdWtKTmoyVmtySmN1TUdB
1053 d0dVbE5UaVkrUEp5d3N6S1ROeVpNbgpTVWxKSVNVbGhSRWpSckJreVpKU3hhS21iRHk1VVE1SDJT
1054 VlhOQm9OR28yRzljK3RaOUtYazlDNGFveXZsVHlhTkttZHAza0xZUThzCk9pVDF6RFBQY09YS0Zh
1055 Wk9uY3JNbVRNNWMrWU1yNzc2cXNXRHpwOC9uNWlZR1BMejg0bU5qY1hUMDVPNHVEZ0FZbUppTE83
1056 UFd2SUsKODloeFpnZDk3dWlqV2daUm5nS01leUpuZ1F2UkVCd055Uk5OV21WbHlabHRRdFFVaXc1
1057 SndmL1drZ0tJakl4VWRVRkNheCtTU2ppZAp3RE0vUE1QdW1OMW1qVjJiRHZjNFhNYmJkc0NEdzR0
1058 WHNpMnNaOUpPVnJVVm9tSTJPU1IxODFwU2lZbUo5T3JWcTFhdEpXVTRaYUNQCnQreGRPSVF6b1hD
1059 aEcyaVhxWjFFQ0tkaDBSNUdVRkFRUC8zMFU2bTFwUGJ1M1Z0akFTdGk3VDJNNkJYUlBCYjBHTVA5
1060 aDVzMWRxMzkKNjczYTdXdzBkcGw3R2JLSElVUmxiTEtIVVp2WGtpb3NLdVRYUDM3bDdqdXNmNXF3
1061 cUNGblFvdnYveTE3R1VMWWhGbVQzcE1uVHdZdwpyaVZWY3UzRnRtM2JHRGl3ZHF6b3V2L1AvWGcx
1062 OXFKMTQ5WnFSeEdXME0rQ0IwZkNuc2R1bWNzUVFsaGJsZGFTS3ZtNnFtdEoyYU90CnA3WVM0UjFC
1063 a3liTnljcTZvblljWWE0ellmQm5GOUIrQkR1ZlVqdU5FTFdheFdkSkFlemF0UXVOUmtOd3NMcDN0
1064 YkhtSE1iSXIwY3kKck5Nd3hnYU5SZVlIcXR2T3htTzNTNFNSRDhLN3YwTmhmWm5ERUtJU05wbkRN
1065 QmdNZE9yVWlaZGVlb2tYWDN5UlRwMDZzWFhyVm9zSAp0VGVLb21BNFpTRENPMEx0S0tJcTBuckNu
1066 d0hRSTA3dEpFTFVhaFpkdVBmMjIyK3paczBhNCtLQlI0OGVaZnIwNmZUcDQ5aW5vdjUrCitYZnF1
1067 OWJIdTZtMzJsRkVWVzE4RXg0ZENPcWNzQ2VFVTdCb0QrUHk1Y3UwYmR2VytMeE5telpjdm56WjZx
1068 RnN6WERLSUZkM083b0wKM2VCNEZQUldPNGdRdFpkRmV4aVBQdm9vMGRIUmpCdzVFa1ZSK1BiYmJ4
1069 azdkbXhOWmJNWk9SeFZTMngrRFdJKzVXeldXZHE2dDYyOAp2UkRDSW1aUGVpdUt3cmx6NXpoLy9q
1070 enIxcTFEbzlFd1pNZ1F0RnB0VFdjc2w3VW12VHNzNk1BUFkzN0FyNldmaWhmazJlbUVjcFhhCnFU
1071 ajJRQTFQVEg2Q0Q0WitZRWFmUWppbnFuNTJXbFF3dW5idHlvRURCeXdlcEtaWW8yQ2N6amhOOEFm
1072 Qi9EbmpUK09LcC9KaFhOMTIKS281ZFgwUExWMXV5WmZ3Vy9GcjZtZEd2RU02bnhzK1MwbWcwaElX
1073 RnNYNzllb3NIc1dkYi95aSsvcUsyWEUvaTlITGcrZDdQOCtJdgpMNnFkUkloYXg2Sko3NlNrSklZ
1074 T0hZcVhseGRhclJhdFZxdjZ0UmpWSlJQZXRjK2swRW5zT2IrSFgvLzRWZTBvUXRRcUZrMTZyMTY5
1075 CnV0WmRGR1U0WmVESjdrK3FIVU5ZVVgzWCtyeDJ6MnM4Ri84Y3Z6NzJxK3c5Q21FbFp1MWg1T2Zu
1076 czI3ZE9wWXVYY3JwMDZmcDJMRWoKZDkxMWwvSGhxQzVldjhpWnJETUV0ZzVVTzRxd3NvZTdQc3ox
1077 L090OGYrUjd0YU1JVVd1WVZUQmVldWtsbGl4WlFzdVdMWG4xMVZlWgpQNy9pKzExWHhtQXc0T2Zu
1078 aDQrUER3c1hMaXoxL3VyVnF3a01EQ1FvS0lqbzZHaUw3aGx1aVcxL2JLUFg3YjJvNDFLblJ2b1g2
1079 cW5qClVvZTNCcnpGaTcrOFNFRlJnZHB4aEtnZEZETUVCd2NyZVhsNWlxSW95cFVyVjVTSWlBaHov
1080 bG01Z29LQ2xDMWJ0aWlwcWFsSzU4NmQKbFlzWEw1cThmKzNhTmVQWGVyMWU2ZE9uVDVuOW1CbS9Y
1081 TS8rOUt6eWh1R05VbjJDWXNaRHJYYVNzYkoySllxS2lwUituL1JUM2s5Kwp2MXIvUHhHaXRxbnFa
1082 NmRaZXhoRlJVVzR1YmtCMExScFV6SXpNNnRjb0RJeU1nQ0lpSWpBMjl1YlFZTUdrWlNVWk5LbVVh
1083 TkdKdTNyCjE2OWY1ZkVxc3ZYVVZybkRYaTJtMFdoNGU4RGJ6Tmt5aCt0NTE5V09JNFRETTJ2U2U5
1084 KytmYmk3dXh1ZloyZG5HNTlyTkJxTENraHkKY3JKeExTb0FmMzkvRWhNVGlZNk9ObW4zM1hmZk1Y
1085 WHFWSzVkdThhdVhidks3Vy8yN05uR3IzVTZIVHFkenF3Y21ibVpITGwwaEpDMgpJV1puRjQ3QXRm
1086 UWs5M0JvdktZeEdFeGZkbmR2Um1hbTR5OXRJMFJsOUhvOWVyMisydjJZVlRBS0N3dXJQWkNsN3Iv
1087 L2Z1Ni8vMzYrCit1b3IvdmEzdjdGbno1NHkyOTFjTUN5eC9mUjJ1cmZ0VGoxWHVlbE83VkpBcVF2
1088 OE5wMkVKMEpoMXlHNDNzcjRjbGFXbkQwbG5NT3QKZjB6UG1UT25TdjFZZEIyR05ZU0VoSERreUJI
1089 ajg0TUhEOUt6Wjg5eTI0OGFOWXF6WjgrYTNCcldHa291MkJOTzRFcEgyUGN3NkdhcgpuVVFJaDJi
1090 aTNkZEpBQUFjV1VsRVFWVHpndUhoNFFFVW55bVZtcHBLZkh3OFlXRmhKbTFPbkRoaHZON2poeDkr
1091 b0h2MzdqUm8wTUNxCk9ReW5ERVRjSVFYRGFXeVpCWDdmUXB2ZGFpY1J3bUZaZE9HZXRjeWZQNStZ
1092 bUJqeTgvT0pqWTNGMDlPVHVMamltOS9FeE1Td2F0VXEKUHYzMFU5emMzTkJxdGJ6OTl0dFdIVCtu
1093 SUljOTUvWVFmbnU0VmZzVmRpeTdPZnp5QnR6N0RDejdGY3c3MzBNSWNaTXEzYUxWWGxSMQpBUzNE
1094 S1FNemZwN0JqaWQybE5tbkxPeFgzWFpxamwxQk8wMFJQTlliZGo4QmV4NERySGVMWHlFY2lVMXUw
1095 VnBiR0U0WjVIUmFaNlM0CndBK0xvUDlMMEVET2poTENVazVaTUxiK3NWWG1MNXpWdVdBNE5BTDZ2
1096 YXgyRWlFY2p0TVZqSUtpQWhKT0ozRDNIWGVySFVXb1pkTnIKNFBzZHRGRTdpQkNPeGVrS3hwNXpl
1097 N2pENHc1YU5HeWhkaFNobHB4bThNdS9JQnFLbENLMTB3amhNSnl1WUNTa0pkRDdqdDVxeHhCcQor
1098 MjBzRk1HeVBjdlVUaUtFdzNES2doSGVUazZuZFhxS0Mvd0EvN2ZwLzBpL2thNTJHaUVjZ3RNVmpN
1099 UzBSSHEySy8vS2N1RkV6c09vCkxxUDR2MDMvcDNZU0lSeUNVeFdNODlmT2s1R1RRYWNXbmRTT0l1
1100 ekVxL2U4eXVxanEwaytVelAzWEJHaU5uR3FncEdVbGtSWXV6QmMKTkU3MWJZc0tOSzNmbExjR3ZN
1101 WEVIeVpTV0dUN1JUYUZjQ1JPOWNtWmtKWkF6OXZrY0pRdzlXaTNSMm5vMXBCM2s5NVZPNG9RZHMy
1102 cApDb2JNWDRpeWFEUWFsZzFieHV0YlgrZm9wYU5xeHhIQ2JqbE53U2dvS21EWHVWMkUzaGFxZGhS
1103 aGgrNXNmaWR6ZEhNWXYzcThISm9TCm9oeE9VVENhTkdtTzIyMXVYRHR6amVZTm02UFJhTXA5Q09m
1104 MWRNalROSEJ0d055RXVXcEhFY0l1T1VYQnlNcTZBdTBXUTlvRWlsY3kKcmVnaG5KV0x4b1ZsOXkz
1105 ajM5di96Y0UvRDZvZFJ3aTc0eFFGQTRCMmlaQW04eGVpWXUyYnR1ZjFmcTh6N3Z0eDVCZm1xeDFI
1106 Q0x1aQpTc0V3R0F6NCtmbmg0K1BEd29VTFM3Mi9mUGx5QWdNRENRd01aTXlZTVJ3N2RxejZnMHJC
1107 RUdaNkl2Z0pXalJzd1Z1L3ZxVjJGQ0hzCmlpbzNVTkpxdFN4WXNBQnZiMjhpSXlQWnRtMGJucDZl
1108 eHZjVEVoTHc5L2ZIdzhPRFR6NzVoSTBiTi9MWlo1K1Y2c2ZjbTRCb0dtcmcKV1hkNDh3b29kU3By
1109 amQzZCtNZHV4cTV0R2QyQWdyTGZhZ0xFQUorQys0MW1aR2JLL1RORTdlRXdOMURLeU1nQUlDSWlB
1110 bTl2YndZTgpHa1JTVXBKSm0vRHdjT085djZPam85bXlaVXYxQm0wSG5Ba3hvMWdJNTFKQXVYTlpt
1111 UXJFZndUM0I1SjE0NHFhSVlXd0d6WXZHTW5KCnlmajYraHFmKy92N2s1aVlXRzc3RHo3NGdLRkRo
1112 MVp2MEhiSTRTaGh1YjNqSU9OMmtIdHRDUUdBcTlvQktySng0MFkrLy94enRtL2YKWG02YjJiTm5H
1113 Ny9XNlhUb2RMclNqZG9CU2JKQ3JiQ1VCdForQURGdDBhZnEwYlhYcVIxSWlDclI2L1hvOWZwcTky
1114 UHpPWXlNakF4MApPaDE3OXV3QllQTGt5VVJGUlJFZEhXM1NidCsrZlR6d3dBUDg5Tk5QM0hYWFhX
1115 WDJaYzV4dUNLbGlEb3YxWUYzLzRRYkxjMUk2QWpICjNpVmo5ZHRaMExhamhqWVQyN0RyeVYyMGNa
1116 ZmI5QW5INXpCekdDVnpFd2FEZ2RUVVZPTGo0d2tMQ3pOcDg4Y2ZmekI4K0hDV0wxOWUKYnJFdzEr
1117 R0xoK0VHWmhZTEljcHdFbUs2eHpCNjFXZ0tpc3FaSkJmQ0NhaHlXdTM4K2ZPSmlZbGh3SUFCVEp3
1118 NEVVOVBUK0xpNG9pTAppd1BnMVZkZjVmTGx5enoxMUZOb3RWcENRNnUrbkVkaVdpS2tXU3U1Y0ZZ
1119 dlI3eE0zVHAxZVdYeksycEhFVUkxcXB4V2F5M203Rlk5CnNmWUpQbnp0UTBoMndrTXBrdEZxZlNx
1120 S3dzWHJGK24rUVhjV1J5OW1TS2NoWm80aGhQMXhtRU5TdHBad09rSDJNSVJWdEd6VWtpOUgKZk1u
1121 amF4NG45V3FxMm5HRXNMbGFYVEF5Y2pLS2Y3RXZxSjFFMUJhOWJ1L0ZDNzFmWU9UWEk4a3R5RlU3
1122 amhBMlZhc0xSdkxaWklMYgpCRU9SMmtsRWJUSzE1MVJ1YjNJNzAzNmVwbllVSVd5cVZoZU1oTk1K
1123 Y3NNa1lRV3VKa3ZndTdpNDhOMjQ3MWk4WVRHYXdQKzkzcVJKCmM3V0RDbEdqYW5YQlNEd2pkOWdU
1124 MWxER0VpSzVDbnk1RHlKYmd2Y1dRQ2xlUmwrSVdxeldGZ3hGVWVTV3JLSm0vZGtWVmkySGtTT2gK
1125 NVNHMTB3aFI0MnB0d1RoKytUaU42emFtclh0YnRhT0kydXprUUloL0d4NitGeHFySFVhSW1sVnJD
1126 MFpDbXN4ZkNCdjViUnpzZmh3ZQpocXpjTExYVENGRmphbTNCU0V4THBPZHRVakNFalJoZWhyUHc0
1127 RGNQeXAzNlJLMVZ1d3VHN0dFSW05SEFldENnNGVuMVQxZnBLbG9oCjdGMnRMQmpYODY1ek5QMW84
1128 VFVZUXRoS0Vhd2N1Wkk5NS9md1Q4TS8xVTRqaE5YVnlvS3g4K3hPdXJicVNqM1hlbXBIRVU2bWNk
1129 M0cKckIrem5tVjdsN0ZveHlLMTR3aGhWWFo5QTZXcWtzTlJRazFlamIzWU5IWVQvVDd0UjE1aEhs
1130 UERwNm9kU1FpcnFKVjdHSWxuRWdsdgpKM2ZZRStycDBLd0RXOFp2WWZIT3hmeHI2Ny9VamlPRVZk
1131 UzZnaUVYN0FsN2NZZkhIV3dadjRWUDkzM0tMUDBzbVFnWERxL1dGWXhUCkdhZUE0bDlXSWRUVzFy
1132 MHQrbkY2dmozOExTLys4cUlVRGVIUVZDa1lCb01CUHo4L2ZIeDhXTGh3WWFuM2p4dzVRbmg0T1BY
1133 cjEyZnUKM0xrVzlWMnlkNkhSYUt3VlY0aHFhZDI0Tlp2SGJXYkRpUTFNKzNtYUZBM2hzRlFwR0ZP
1134 bVRDRXVMbzZOR3pleWFORWlMbDI2WlBKKwppeFl0V0xod0lUTm16TEM0NzhRMG1iOFE5c2V6b1Nl
1135 YnhtN2kxejkrWmVJUEV5a3NLbFE3a2hBV3MzbkJ5TWpJQUNBaUlnSnZiMjhHCkRScEVVbEtTU1p1
1136 V0xWdlNvMGNQM056Y0xPNWZsZ1FSNmpGZEJ2M1dSL09HelVtZW5NelNWUjh5NUlzaFhNMjVxblpn
1137 SVN4aTg0S1IKbkp5TXI2K3Y4Ym0vdnorSmlZbFc2VHVuSUljRGZ4NmdlNXZ1VnVsUENNdVVzUXg2
1138 R2N1aUYzNVN3RjNON3lMc3d6Q09YanFxWGx3aApMT1R3MTJITW5qM2IrSFZMLzViNGV2clNxRzRq
1139 OVFJSlVaa2lXRGg0SVV0M0xhWFBSMzM0NUcrZk1OaG5zTnFwUkMybTErdlI2L1hWCjdzZm1CU01r
1140 SklUbm5udk8rUHpnd1lORVJVVlZ1YitiQzhhOGhIbjBiQ3lIbzRSamVLTDdFL2kxOUdQazF5T1pI
1141 ajZkNmVIVDVXUU4KVVNOME9oMDZuYzc0Zk02Y09WWHF4K2FIcER3OFBJRGlNNlZTVTFPSmo0OG5M
1142 Q3lzekxhV25rMlNrSllnSzlRS2gzTDNIWGVUOVBjawpWdXhmd2Rqdng1SlRrS04ySkNIS3BWRlVP
1143 TWR2eTVZdFBQWFVVK1RuNXhNYkcwdHNiQ3h4Y1hFQXhNVEVjUDc4ZVVKQ1Fzak16TVRGCnhRVjNk
1144 M2NPSFRwRTQ4YW1kNmpSYURRbVJlV09lWGZ3eTloZjhHbmhVNnBkOFRGa2M1amJWcTEyYW80dEdh
1145 M1Y3dFpmdXh2NU4zaHMKOVdNY1N6L0dwL2QvU2tDckFEUDZFYUpxYnYzc05QdmZxVkV3ck9YbWIv
1146 cE01aGtDM3cvazRuTVhTKzNXUzhHd2RUczF4M2FNakdYOQoyaW1Ld29lN1ArU2xUUzh4STN3R00z
1147 ck5vSTVMSFRQNkU4SXlUbHN3alB3QUxiQ2l2TmIyL3lFaUdXM1pUczJ4Sy81bFRiMmF5b1RWCkU4
1148 Z3R5T1hqdjMxTXB4YWR6T2hUQ1BOVnRXRFVncVZCL2pwZHNkME1TSHZ0Zjg5TkhrSTRqdlpOMi9Q
1149 TDJGOTRLT0FoZXYyM0YrOG0KdlV1UlVxUjJMQ0ZxUThINFM3dEVTSk1KYjFFN3VHaGNpQTJMWmZ2
1150 ajIvbnl3SmYwLzdRL3h5OGZWenVXY0hLMW8yQzQ1RU9iUFhBbQpWTzBrUWxoVnB4YWQyRHBoSzlF
1151 KzBmVDhzQ2RUTjB6bGN2Wmx0V01KSjFVN0NrYnJmWENsQStRMlVUdUpFR2FvZUFtUm14OU5talNu
1152 Cmprc2RadlNhd2NHSkI4a3R5S1h6ZTUxNUorRWRjZ3R5MWY1R2hKT3BIUVhqOWdRNUhDVWNpQmxM
1153 aVB6MXlNcTZZdnhYclJ1M1puSDAKWWd6akRlaFQ5Zmd0OG1QbHdaV3krcTJ3bVZwd2xwUUNEendD
1154 S2YxZ3oyUGx0Y1FSenB5UmpMWnNwK2JZbG1VczcxZDBjOHBtWnNUUAp3TTNGamYvcjgzOUVkNHJH
1155 UlZNNy9nWVVOY3VKVDZ0VklQWXUrR0lOWFBRdnJ5VzE3VU5FTWxhM25acGpXNmRnQUJRcFJhdzh1
1156 SkovCmIvODMxL091TTdYblZCNE5mSlNHYmczTjdGODRvNm9XRElkZmZKQkdmMExEUzNESnQvSzJR
1157 amdjVjdQV2wycnMzcFIxKzc1bmJzSmMKWHRuOENrLzFlSXBuUXA2aGRlUFdOc2dvbklYajc3L2Vs
1158 bFI4ZHBUaStOK0tFS1daTjk5eExlc3FmZHYzWmMzb05XeWRzSldMTnk3aQp1OGlYOGQrUFoxUEtK
1159 cmxoazdBS3h6OGsxZThsS0hJRmZVV3JMOWErd3hTU3NicnQxQnk3WmpMZStxdDg2Y1lsUHQ3N01W
1160 OGMrSUp6CldlY1lGVENLTVFGajZORzJoNnlLNitTY2R3NWpiRC9ZUGdPT1YzUS9BZWY5RUpHTTlq
1161 aTJiUXJHelk1Y09zSVhCNzVneGY3aXRYUEcKZEIzRDZJRFIrSHJLb1Z4bjVMd0Y0MFYzbUo4SzJj
1162 MHJhb216Zm9oSVJuc2MyL1lGbzRTaUtPdzh1NU12RG56Qmx3ZStwRW05Smd6bwpPSUQrSGZxamE2
1163 K2pXWU5tWnVZU2pzeDVDOGFrenZEZWtjcGE0cXdmSXBMUkhzZXVpWXh1Rk05M1ZNemR2Um1abWNW
1164 WGloY3BSZngyCi9qYzJudHpJTHltLzhPdnBYL0h6OURNV2tONTM5S2ErYTMwemN3cEg0cndGNDIv
1165 ajRQdVBLMnVKYzM2SVNFYjdIRnZkak9YOXl1Y1cKNUpLWWxzakdsSTM4Y3ZJWDl2KzVuKzV0dWhQ
1166 Y0pwZ2dyeUNDdklMdzgvVERyWTZibWRtRnZYTGVndEZqQ2V4OHFyS1d5SWVJTGR1cApPYlprckt5
1167 ZHViL3ltYm1aSkp4T1lPLzV2ZXk5c0plOTUvZHk2dW9wZkQxOWpRVWt5Q3VJd05hQmVOVDNNS3RQ
1168 WVI4Y3FtQVlEQVppClltSW9LQ2dnTmphV3laTW5sMnJ6NG9zdjh0VlhYOUdzV1RPV0wxK09yMi9w
1169 eVRtTlJnTmVlK0I4VUNVanF2MGhzaG5RV2FrL1M4ZTIKcEoyZWluUGFRMGFvT0tka3JKamxoNjV1
1170 ZGozdk9nZitQR0JTUlBaZjJFOTkxL3A0Ti9XbWZkUDJ4UStQNHYrV3ZOYWtYdlhXZWRQcgo5U2Iz
1171 cExaWGpwTFRvUzdjbXpKbENuRnhjWGg3ZXhNWkdjbm8wYVB4OVBRMHZyOWp4dzYyYnQzS3pwMDcy
1172 YkJoQXpObXpHRGR1blZsCmQvYW5JOXpLVWsvbEJjTWU2SkdjMXFMSFBqT1dYTmRSWXZaZkQxTlpX
1173 V1dmZHR1b2JpUEMyb1VSMWk3TStKcWlLRnk4Y1pIVXE2bWMKdW5xSzFLdXBIRWsvd2s4bmZqSytW
1174 cmRPWGRvM2JjL3RIcmZqMmRDVEZnMWEwS0pCQzVvM2FFNkxocVcvcnVkYXoyUmNSL2tnZHBTYwpW
1175 V1h6Z3BHUmtRRkFSRVFFQUlNR0RTSXBLWW5vNkdoam02U2tKRWFNR0VIejVzMFpQWG8wTDcvOGN2
1176 a2RGam4reGVwQzJCL3pyakF2CjVnYmtWOWppZXNQcjVMWXQ0T1UxTDVOK0k1MzA3T0xIc2N2SFNM
1177 K1J6dVhzeThXdi9mVzFXeDIzNHFMU3NMaVFuRGx3aHFPcmpsTGYKdFQ0TlhCdlF3SzFCOFg5di92
1178 cXYvOVozclYvcXRaTC8xbk90UngxTkhlcTQxTUZGNDBJZHpWLy8vZXU1cUpqTlAyMlRrNU5ORGkv
1179 NQorL3VUbUpob1VqQjI3TmpCbzQ4K2FuemVzbVZMVHB3NHdaMTMzbW5UckVJNHIxdjNSQ3BpeHVH
1180 d0czRGp1QnZEL1lkWDJsdGo5NmFjCnZmZ0g2ZGwvRlpJYjZmeDN4MzhaMm1rbzJmblpaQmRrazUy
1181 ZlRVNUJEdGZ6cjNNcCs1TEo2emUvZit0cnVZVzVGQllWVXFRVVVhajgKOWQraVFncVY0aXZoeXlv
1182 aVpUMHY3NzMwNUhTK1hmSnRtVzFkTkM1b0tDN0NOeGRqdFY2ckNydjg4MXhSbEZMSDE4ci9SczNk
1183 QUpacwpLR3YzT2Vldmg3WDZzNlN0cGUwcXkya1BHYUhpbkpMUnNuYmw1YXlKakpXN2xuV1ZKdlZM
1184 ejNsOHRlZ3JxNDFSbnFLLy9sY2RGMys0CmFLVTA5c2ZtQlNNa0pJVG5ubnZPK1B6Z3dZTkVSVVda
1185 dEFrTEMrUFFvVU5FUmtZQ2NQSGlSVHAyN0ZpcUx3Yyt3VXNJSVJ5T3pRL2EKZVhnVW4zNW5NQmhJ
1186 VFUwbFBqNmVzTEF3a3paaFlXR3NXcldLOVBSMFZxeFlnWitmbjYxakNpR0V1SVVxaDZUbXo1OVBU
1187 RXdNK2ZuNQp4TWJHNHVucFNWeGNIQUF4TVRHRWhvWnk5OTEzMDZOSEQ1bzNiODdubjMrdVJrd2ho
1188 QkEzVSt6Y2xpMWJGRjlmWCtXdXUrNVMzbjMzCjNUTGJ6Snc1VStuUW9ZTVNIQnlzSEQ1ODJNWUpp
1189 MVdXYy9QbXpVcVRKazJVb0tBZ0pTZ29TSG50dGRkc25uSENoQWxLcTFhdGxJQ0EKZ0hMYjJNTzJy
1190 Q3luUFd4TFJWR1VQLzc0UTlIcGRJcS92Ny9TdDI5Zlpmbnk1V1cyVTN1Ym1wTlQ3VzJhbloydGhJ
1191 YUdLb0dCZ1VwWQpXSmp5emp2dmxObE83VzFwVGs2MXQrWE5DZ29LbEtDZ0lHWElrQ0Zsdm0vcDly
1192 VDdnaEVVRktSczJiSkZTVTFOVlRwMzdxeGN2SGpSCjVQMmtwQ1NsZCsvZVNucDZ1ckppeFFvbE9q
1193 cmFMbk51M3J4WkdUcDBxQ3JaU2hnTUJtWDM3dDNsZmhEYnk3YXNMS2M5YkV0RlVaUnoKNTg0cGUv
1194 YnNVUlJGVVM1ZXZLaDA2TkJCeWN6TU5HbGpEOXZVbkp6MnNFMnZYNyt1S0lxaTVPVGtLRjI2ZEZG
1195 Ky8vMTNrL2Z0WVZzcQpTdVU1N1dGYmxwZzdkNjR5WnN5WU12TlVaWHZhOVluSE4xK3o0ZTN0YmJ4
1196 bTQyYTNYck54K1BCaHU4d0o2ay9TOStuVGgyYk55bCtOCjFCNjJKVlNlRTlUZmxnQmVYbDRFQlJX
1197 dk11RHA2VW1YTGwzWXVYT25TUnQ3MktibTVBVDF0Mm5EaHNXM2xiMTI3Um9GQlFYVXEyZDYKOFo0
1198 OWJFdW9QQ2VvdnkwQjB0TFMrT0dISC9qNzMvOWVacDZxYkUrN0xoamxYYk54c3gwN2R1RHYvNzk3
1199 ZVpkY3MyRkw1dVRVYURScwozNzZkb0tBZ3BrMmJadk9NNXJDSGJXa09lOXlXeDQ4ZjUrREJnNFNH
1200 aHBxOGJtL2J0THljOXJCTmk0cUtDQXdNcEhYcjFreWFOSW5iCmI3L2Q1SDE3MlphVjViU0hiUWt3
1201 ZGVwVS92M3ZmK1BpVXZiSGZGVzJwMTBYREhNb0ZsMnpvWjdnNEdCT256NU5jbkl5L3Y3K1RKa3kK
1202 UmUxSXBjaTJySnFzckN4R2pSckZ2SG56YU5Tb2tjbDc5clJOSzhwcEQ5dlV4Y1dGMzM3N2plUEhq
1203 N040OFdMMjdObGo4cjY5Yk12SwpjdHJEdGx5M2JoMnRXclZDcTlXV3U3ZFRsZTFwMXdVakpDU0VJ
1204 MGYrZDYrTGd3Y1Awck5uVDVNMkpkZHNsQ2p2bW8yYVpFNU9kM2QzCkdqWnNpSnViRzQ4Ly9qakp5
1205 Y25rNXViYU5HZGw3R0ZibXNPZXRtVitmajdEaHcvbjBVY2Y1Yjc3N2l2MXZyMXMwOHB5MnRNMmJk
1206 KysKUGZmZWUyK3B3N3Iyc2kxTGxKZlRIcmJsOXUzYldiTm1EUjA2ZEdEMDZORnMyclNKc1dQSG1y
1207 U3B5dmEwNjRMaEtOZHNtSlB6d29VTAp4bXErZHUxYXVuWHJWdWF4VHpYWnc3WTBoNzFzUzBWUmVQ
1208 enh4d2tJQ09EWlo1OHRzNDA5YkZOemNxcTlUUzlkdXNUVnExY0JTRTlQCjUrZWZmeTVWMk94aFc1
1209 cVRVKzF0Q2ZER0cyOXcrdlJwVWxKUytQTExMK25YcngrZmZ2cXBTWnVxYkUrN1hCcmtabzV5elVa
1210 bE9iLzUKNWh1V0xGbUNxNnNyM2JwMVkrN2N1VGJQT0hyMGFMWnMyY0tsUzVlNC9mYmJtVE5uRHZu
1211 NStjYU05ckl0Szh0cEQ5c1M0TmRmZitYegp6eituVzdkdWFMVmFvUGdYOVk4Ly9qQm10WWR0YWs1
1212 T3RiZnB1WFBuR0RkdUhJV0ZoWGg1ZVRGanhnemF0R2xqZDcvcjV1UlVlMXVXCnBlUlFVM1czcDBQ
1213 ZlFFa0lJWVR0MlBVaEtTR0VFUFpEQ29ZUVFnaXpTTUVRUWdoaEZpa1lRZ2doekNJRlExaVZpNHNM
1214 TTJiTU1ENy8KejMvK3c1dzU1dHc4eW5wME9oMjdkKzhHSURvNm1zek16R3IxcDlmckdUcDBxTm12
1215 MThSWU5lbnMyYk9NSERuU3BtTUt4eVFGUTFoVgozYnAxK2U2NzcwaFBUd2NzdnhLM3NMQ3cyaGx1
1216 SG5QOSt2VTBhVkw2N20zaWY5cTJiY3ZYWDMrdGRnemhBS1JnQ0t0eWMzUGp5U2VmClpONjhlYVhl
1217 TzN2MkxGT21UQ0V3TUpDcFU2ZHk0Y0lGQU1hUEg4KzBhZE1JQ3d2amhSZGVZTUtFQ1V5ZlBwM1Ew
1218 RkE2ZCs3TW5qMTcKZVBMSkorblNwUXV6Wjg4MjlqZHg0a1JDUWtMbzFhc1hTNWN1TFROUCsvYnRT
1219 VTlQNS8zMzMwZXIxYUxWYXVuUW9RUDkrdlVEaXRjQgpHenQyTEdGaFljeWNPZE40Ulc1eWNqTDkr
1220 L2RIcTlXeVljT0dTci92N094czNubm5IZnIyN1V0MGREUjZ2UjZBOFBCd2s2dHBTL1orCmNuSnl5
1221 bXhmbnRPblR6TjQ4R0NDZ29JSURBemt4SWtUcEthbTR1L3Z6K09QUDQ2Zm54OXo1c3d4NW4vdHRk
1222 Y0lEUTBsSkNTRU45NTQKdzZTZjZkT25vOVZxNmQ2OU95a3BLYVNtcHRLMWExY0FQdjc0WXg1NjZD
1223 SHV2ZmRlQWdJQ2VQZmRkNDMvOXFlZmZpSThQSnpRMEZDZQpmZlpaSmsrZVhDcm4zcjE3NmQrL1Aw
1224 RkJRUVFIQjNQdDJyVkt0NTF3SU5WWk9sZUlXelZ1M0ZqSnpNeFUycmR2cjJSa1pDai8rYzkvCmxO
1225 bXpaeXVLb2loVHAwNVYzbjc3YlVWUkZPV05OOTVRbm4vK2VVVlJGR1hjdUhGSzM3NTlqVXR1ang4
1226 L1hoazhlTENTbTV1cmZQengKeDByanhvMFZ2VjZ2NU9ibUtuNStmc2FsNHk5ZnZxd29pcUxrNXVZ
1227 cVlXRmh5clZyMXhSRlVSU2RUcWZzMnJWTFVSUkZhZCsrdlpLZQpubTdNbDUrZnIvVHAwMGRadDI2
1228 ZHNlM1ZxMWNWUlZHVTU1OS9Ydm55eXk4VlJWR1VidDI2S1VsSlNjcTFhOWVVcUtpb01wZUgzcng1
1229 CnMvRStBeDk5OUpHeVlNRUNSVkVVNWZ6NTgwcG9hS2lpS0lveWI5NDhaZGFzV1lxaUtNclpzMmVW
1230 enAwN1Y5ais1ajV2Tm12V0xPWEQKRHo4MGZnL1oyZGxLU2txS290Rm9sRysvL1ZiSnljbFJIbmpn
1231 QWVXYmI3NHgyVFlGQlFYSzBLRkRsU05IamhpMzlhSkZpNHpiN2NhTgpHMHBLU29weEtmbVBQdnBJ
1232 YWRXcWxYTDI3RmtsTXpOVGFkZXVuWktYbDZmazUrY3I3ZHUzVjFKU1VwVDA5SFFsT0RoWW1UeDVj
1233 cW1jCjQ4YU5Velp1M0tnb1N2RXk0QVVGQmFYYUNNY2xleGpDNnR6ZDNSazdkcXpKWDZjQVAvNzRJ
1234 NDg5OWhnQWp6LytPR3ZYcmdXS0R5R04KR0RFQ2QzZDNZOXNSSTBaUXQyNWR3c1BEYWRxMEtYMzc5
1235 cVZ1M2Jwb3RWcmpTc0R4OGZGRVIwZWoxV281ZWZJa216WnRxalJiYkd3cwovZnYzSnpvNm1sMjdk
1236 bkhnd0FGME9oMWFyWloxNjlaaE1CZzRjK1lNaXFJUUdocEtvMGFOR0RWcVZLWExWYTlhdFlxbFM1
1237 ZWkxV3FKCmlvcml3b1VMcEtTazhPQ0REL0xOTjk4QXNITGxTdU5jUVZudFQ1NDhXVzcvSVNFaHpK
1238 OC9uN2ZlZW92TGx5OVR2MzU5b0hoWm12dnYKdjU5Njllb3hldlJvZnZycEp3QjI3dHpKOE9IRDZk
1239 YXRHN3QzNytibm4zOG1MeStQelpzMzg4UVRUd0RGaHc4Yk5HaFFhcXhCZ3diUgpwazBiM04zZDhm
1240 ZjNaL2Z1M1NRbUp0SzFhMWZhdDI5UDgrYk5HVFpzV0puYkpEdzhuSmt6Wi9MZWUrOVJVRkJBblRw
1241 MUt2MlpDTWRoCjkwdURDTWYwN0xQUEVod2N6SVFKRTB4ZUwrK0R0MDJiTmliUFM5Ym5xbHUzTGsy
1242 Yk5qVytYcmR1WGZMeThzakt5bUxtekpsczNicVYKMjI2N2pmdnZ2NThyVjY1VW1Pbmpqei9tOU9u
1243 VExGNjhHQ2hlcGpvZ0lJRE5temVidEV0TFN6UHZtN3hKVVZFUml4WXRJaUlpb3RSNwpMVnEwWVAv
1244 Ky9heGN1ZEs0TkVONTdVdVc2N2hWZEhRMDNidDM1L1BQUDZkMzc5NTgvZlhYSnR1bFJNbjh6ZVRK
1245 ay9ubW0yOElDQWhnCjZ0U3BYTGx5QlkxR1UrWUtwYmU2ZFh2bjVPVGc2dXBxTWpkVVhoOHhNVEVN
1246 SERqUXVCUkpVbElTclZ1M3JuQTg0VGhrRDBQVWlHYk4KbXZIZ2d3L3kzLy8rMS9oQmMrKzk5L0xK
1247 SjU5UVZGVEVzbVhMR0Rac1dKWDZWaFNGcTFldjR1Ym1ocGVYRjhlT0hlT1hYMzZwOE4vcwoycldM
1248 dVhQbjh0bG5ueGxmQ3drSjRjS0ZDOFk5bHV2WHIvUDc3Ny9UcmwwNzZ0U3BRM0p5TXRldlgyZmx5
1249 cFdWWmhvelpneHhjWEZrClpXVUJtQ3g1UFdyVUtONTY2eTB5TXpNSkNBaW90SDFaVWxKU2pHc1g5
1250 ZS9mM3pndmtwR1J3ZmZmZjA5dWJpNWZmZlVWVVZGUjVPVGsKa0pXVlJmdjI3VGx6NWd5clY2OEdp
1251 dWVYN3JubkhwWXVYWXFpS09UbTVwS2RuVjNwOTZiUmFPalpzeWY3OSs4bk5UV1Z5NWN2czI3ZAp1
1252 akpQYURoeDRnUWRPM2JrSC8vNEI3Nit2blp4cnhKaFBWSXdoRlhkL0NFeWZmcDBMbDI2Wkh3K1k4
1253 WU0vdmpqRDdSYUxSY3VYR0RhCnRHbGwvcnRibjVmMTN1MjMzODd3NGNNSkNBaGcwcVJKNVo2S1d2
1254 Slg5YUpGaTdoeTVRcjMzSE1QV3EyV0o1OThFb0RQUHZ1TUpVdVcKMEsxYk4zcjE2c1hSbzBjQitP
1255 Q0REM2p4eFJlNSsrNjdDUXdNTFBQRFVhUFJHRjhmTVdJRW9hR2hSRVpHRWhBUXdLeFpzNHp0Um93
1256 WQp3VmRmZmNXRER6NW84bHBaN1cvdTgyWXJWNjRrSUNDQWtKQVFidHk0WWV6TDE5ZVhOV3ZXRUJR
1257 VVJFQkFBTkhSMGRTdlg1K1pNMmNTCkdocktxRkdqdVBmZWU0Mzl2UDc2Nnh3L2ZwekF3RUI2OSs1
1258 dFBQR2daTXp5eHE5VHB3N3Z2ZmNlbzBhTklpb3FpcTVkdTlLaFE0ZFMKN1JZc1dFRFhybDBKRFEz
1259 RjE5ZVhYcjE2bGZsekVZNUpGaDhVd2tHbHBxWXlkT2hROXUvZmI1UHhybCsvVHFOR2pjakl5R0RJ
1260 a0NGOAorT0dIZE83YzJTWmpDL3NnY3hoQ09EQmIzbkZ1OXV6WmJOeTRFVGMzTng1NTVCRXBGazVJ
1261 OWpDRUVFS1lSZVl3aEJCQ21FVUtoaEJDCkNMTkl3UkJDQ0dFV0tSaENDQ0hNSWdWRENDR0VXYVJn
1262 Q0NHRU1Ndi9BMkdrMllXcWd3ZTFBQUFBQUVsRlRrU3VRbUNDCg==
1263 </png>
1264 </output>
1265 </outputs>
1266 </codecell>
1267 </cells>
1268 </worksheet>
1269 </worksheets>
1270 </notebook>
@@ -1,56 +1,146 b''
1 #-------------------------------------------------------------------------------
1 # <nbformat>2</nbformat>
2 # Driver code that the client runs.
2
3 #-------------------------------------------------------------------------------
3 # <markdowncell>
4 # To run this code start a controller and engines using:
4
5 # ipcluster -n 2
5 # # Eigenvalue distribution of Gaussian orthogonal random matrices
6 # Then run the scripts by doing irunner rmt.ipy or by starting ipython and
6
7 # doing run rmt.ipy.
7 # <markdowncell>
8
8
9 from rmtkernel import *
9 # The eigenvalues of random matrices obey certain statistical laws. Here we construct random matrices
10 import numpy
10 # from the Gaussian Orthogonal Ensemble (GOE), find their eigenvalues and then investigate the nearest
11 # neighbor eigenvalue distribution $\rho(s)$.
12
13 # <codecell>
14
15 from rmtkernel import ensemble_diffs, normalize_diffs, GOE
16 import numpy as np
11 from IPython.parallel import Client
17 from IPython.parallel import Client
12
18
19 # <markdowncell>
13
20
14 def wignerDistribution(s):
21 # ## Wigner's nearest neighbor eigenvalue distribution
22
23 # <markdowncell>
24
25 # The Wigner distribution gives the theoretical result for the nearest neighbor eigenvalue distribution
26 # for the GOE:
27 #
28 # $$\rho(s) = \frac{\pi s}{2} \exp(-\pi s^2/4)$$
29
30 # <codecell>
31
32 def wigner_dist(s):
15 """Returns (s, rho(s)) for the Wigner GOE distribution."""
33 """Returns (s, rho(s)) for the Wigner GOE distribution."""
16 return (numpy.pi*s/2.0) * numpy.exp(-numpy.pi*s**2/4.)
34 return (np.pi*s/2.0) * np.exp(-np.pi*s**2/4.)
17
35
36 # <codecell>
18
37
19 def generateWignerData():
38 def generate_wigner_data():
20 s = numpy.linspace(0.0,4.0,400)
39 s = np.linspace(0.0,4.0,400)
21 rhos = wignerDistribution(s)
40 rhos = wigner_dist(s)
22 return s, rhos
41 return s, rhos
23
24
42
25 def serialDiffs(num, N):
43 # <codecell>
26 diffs = ensembleDiffs(num, N)
44
27 normalizedDiffs = normalizeDiffs(diffs)
45 s, rhos = generate_wigner_data()
28 return normalizedDiffs
46
47 # <codecell>
48
49 plot(s, rhos)
50 xlabel('Normalized level spacing s')
51 ylabel('Probability $\rho(s)$')
52
53 # <markdowncell>
54
55 # ## Serial calculation of nearest neighbor eigenvalue distribution
56
57 # <markdowncell>
58
59 # In this section we numerically construct and diagonalize a large number of GOE random matrices
60 # and compute the nerest neighbor eigenvalue distribution. This comptation is done on a single core.
61
62 # <codecell>
63
64 def serial_diffs(num, N):
65 """Compute the nearest neighbor distribution for num NxX matrices."""
66 diffs = ensemble_diffs(num, N)
67 normalized_diffs = normalize_diffs(diffs)
68 return normalized_diffs
69
70 # <codecell>
71
72 serial_nmats = 1000
73 serial_matsize = 50
74
75 # <codecell>
76
77 %timeit -r1 -n1 serial_diffs(serial_nmats, serial_matsize)
29
78
79 # <codecell>
30
80
31 def parallelDiffs(rc, num, N):
81 serial_diffs = serial_diffs(serial_nmats, serial_matsize)
82
83 # <markdowncell>
84
85 # The numerical computation agrees with the predictions of Wigner, but it would be nice to get more
86 # statistics. For that we will do a parallel computation.
87
88 # <codecell>
89
90 hist_data = hist(serial_diffs, bins=30, normed=True)
91 plot(s, rhos)
92 xlabel('Normalized level spacing s')
93 ylabel('Probability $P(s)$')
94
95 # <markdowncell>
96
97 # ## Parallel calculation of nearest neighbor eigenvalue distribution
98
99 # <markdowncell>
100
101 # Here we perform a parallel computation, where each process constructs and diagonalizes a subset of
102 # the overall set of random matrices.
103
104 # <codecell>
105
106 def parallel_diffs(rc, num, N):
32 nengines = len(rc.targets)
107 nengines = len(rc.targets)
33 num_per_engine = num/nengines
108 num_per_engine = num/nengines
34 print "Running with", num_per_engine, "per engine."
109 print "Running with", num_per_engine, "per engine."
35 ar = rc.apply_async(ensembleDiffs, num_per_engine, N)
110 ar = rc.apply_async(ensemble_diffs, num_per_engine, N)
36 return numpy.array(ar.get()).flatten()
111 diffs = np.array(ar.get()).flatten()
37
112 normalized_diffs = normalize_diffs(diffs)
38
113 return normalized_diffs
39 # Main code
114
40 if __name__ == '__main__':
115 # <codecell>
41 rc = Client()
116
42 view = rc[:]
117 client = Client()
43 print "Distributing code to engines..."
118 view = client[:]
44 view.run('rmtkernel.py')
119 view.run('rmtkernel.py')
45 view.block = False
120 view.block = False
46
121
47 # Simulation parameters
122 # <codecell>
48 nmats = 100
123
49 matsize = 30
124 parallel_nmats = 40*serial_nmats
50 # tic = time.time()
125 parallel_matsize = 50
51 %timeit -r1 -n1 serialDiffs(nmats,matsize)
126
52 %timeit -r1 -n1 parallelDiffs(view, nmats, matsize)
127 # <codecell>
53
128
54 # Uncomment these to plot the histogram
129 %timeit -r1 -n1 parallel_diffs(view, parallel_nmats, parallel_matsize)
55 # import pylab
130
56 # pylab.hist(parallelDiffs(rc,matsize,matsize))
131 # <codecell>
132
133 pdiffs = parallel_diffs(view, parallel_nmats, parallel_matsize)
134
135 # <markdowncell>
136
137 # Again, the agreement with the Wigner distribution is excellent, but now we have better
138 # statistics.
139
140 # <codecell>
141
142 hist_data = hist(pdiffs, bins=30, normed=True)
143 plot(s, rhos)
144 xlabel('Normalized level spacing s')
145 ylabel('Probability $P(s)$')
146
@@ -2,43 +2,41 b''
2 # Core routines for computing properties of symmetric random matrices.
2 # Core routines for computing properties of symmetric random matrices.
3 #-------------------------------------------------------------------------------
3 #-------------------------------------------------------------------------------
4
4
5 import numpy
5 import numpy as np
6 ra = numpy.random
6 ra = np.random
7 la = numpy.linalg
7 la = np.linalg
8
8
9 def GOE(N):
9 def GOE(N):
10 """Creates an NxN element of the Gaussian Orthogonal Ensemble"""
10 """Creates an NxN element of the Gaussian Orthogonal Ensemble"""
11 m = ra.standard_normal((N,N))
11 m = ra.standard_normal((N,N))
12 m += m.T
12 m += m.T
13 return m
13 return m/2
14
14
15
15
16 def centerEigenvalueDiff(mat):
16 def center_eigenvalue_diff(mat):
17 """Compute the eigvals of mat and then find the center eigval difference."""
17 """Compute the eigvals of mat and then find the center eigval difference."""
18 N = len(mat)
18 N = len(mat)
19 evals = numpy.sort(la.eigvals(mat))
19 evals = np.sort(la.eigvals(mat))
20 diff = evals[N/2] - evals[N/2-1]
20 diff = np.abs(evals[N/2] - evals[N/2-1])
21 return diff.real
21 return diff
22
22
23
23
24 def ensembleDiffs(num, N):
24 def ensemble_diffs(num, N):
25 """Return an array of num eigenvalue differences for the NxN GOE
25 """Return num eigenvalue diffs for the NxN GOE ensemble."""
26 ensemble."""
26 diffs = np.empty(num)
27 diffs = numpy.empty(num)
28 for i in xrange(num):
27 for i in xrange(num):
29 mat = GOE(N)
28 mat = GOE(N)
30 diffs[i] = centerEigenvalueDiff(mat)
29 diffs[i] = center_eigenvalue_diff(mat)
31 return diffs
30 return diffs
32
31
33
32
34 def normalizeDiffs(diffs):
33 def normalize_diffs(diffs):
35 """Normalize an array of eigenvalue diffs."""
34 """Normalize an array of eigenvalue diffs."""
36 return diffs/diffs.mean()
35 return diffs/diffs.mean()
37
36
38
37
39 def normalizedEnsembleDiffs(num, N):
38 def normalized_ensemble_diffs(num, N):
40 """Return an array of num *normalized eigenvalue differences for the NxN
39 """Return num *normalized* eigenvalue diffs for the NxN GOE ensemble."""
41 GOE ensemble."""
40 diffs = ensemble_diffs(num, N)
42 diffs = ensembleDiffs(num, N)
41 return normalize_diffs(diffs)
43 return normalizeDiffs(diffs)
44
42
General Comments 0
You need to be logged in to leave comments. Login now