From 1fd6a4fe2948eed55d06bbbe2b35f0263f4cbddf Mon Sep 17 00:00:00 2001 From: alexpdev Date: Fri, 2 Jun 2023 00:20:05 -0700 Subject: [PATCH 1/5] bump version v0.9.0 --- CHANGELOG.md | 11 +- Makefile | 2 +- docs/Source/cli/index.html | 20 +- docs/Source/commands/index.html | 2 +- docs/Source/utils/index.html | 531 +++++------ docs/api/index.html | 15 +- docs/changelog/index.html | 19 +- docs/coverage/covindex.html | 24 +- .../d_1bc82e0ab2fcb2ec___init___py.html | 60 +- .../d_1bc82e0ab2fcb2ec___main___py.html | 8 +- docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html | 733 ++++++++------- .../d_1bc82e0ab2fcb2ec_commands_py.html | 8 +- docs/coverage/d_1bc82e0ab2fcb2ec_edit_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_hasher_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_interactive_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_mixins_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_rebuild_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_recheck_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_torrent_py.html | 8 +- .../coverage/d_1bc82e0ab2fcb2ec_utils_py.html | 858 +++++++++--------- .../d_1bc82e0ab2fcb2ec_version_py.html | 10 +- .../d_a44f0ac069e85531___init___py.html | 8 +- .../d_a44f0ac069e85531_test_cli_py.html | 8 +- .../d_a44f0ac069e85531_test_commands_py.html | 8 +- .../d_a44f0ac069e85531_test_edit_py.html | 8 +- ..._a44f0ac069e85531_test_interactive_py.html | 8 +- .../d_a44f0ac069e85531_test_rebuild_py.html | 8 +- .../d_a44f0ac069e85531_test_recheck_py.html | 8 +- .../d_a44f0ac069e85531_test_torrent_py.html | 8 +- .../d_a44f0ac069e85531_test_utils_py.html | 462 +++++----- docs/coverage/status.json | 2 +- .../d_1bc82e0ab2fcb2ec___init___py.html | 60 +- .../d_1bc82e0ab2fcb2ec___main___py.html | 8 +- docs/htmlcov/d_1bc82e0ab2fcb2ec_cli_py.html | 733 ++++++++------- .../d_1bc82e0ab2fcb2ec_commands_py.html | 8 +- docs/htmlcov/d_1bc82e0ab2fcb2ec_edit_py.html | 8 +- .../htmlcov/d_1bc82e0ab2fcb2ec_hasher_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_interactive_py.html | 8 +- .../htmlcov/d_1bc82e0ab2fcb2ec_mixins_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_rebuild_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_recheck_py.html | 8 +- .../d_1bc82e0ab2fcb2ec_torrent_py.html | 8 +- docs/htmlcov/d_1bc82e0ab2fcb2ec_utils_py.html | 858 +++++++++--------- .../d_1bc82e0ab2fcb2ec_version_py.html | 10 +- .../d_a44f0ac069e85531___init___py.html | 8 +- .../d_a44f0ac069e85531_test_cli_py.html | 8 +- .../d_a44f0ac069e85531_test_commands_py.html | 8 +- .../d_a44f0ac069e85531_test_edit_py.html | 8 +- ..._a44f0ac069e85531_test_interactive_py.html | 8 +- .../d_a44f0ac069e85531_test_rebuild_py.html | 8 +- .../d_a44f0ac069e85531_test_recheck_py.html | 8 +- .../d_a44f0ac069e85531_test_torrent_py.html | 8 +- .../d_a44f0ac069e85531_test_utils_py.html | 462 +++++----- docs/htmlcov/index.html | 24 +- docs/htmlcov/status.json | 2 +- docs/search/search_index.json | 2 +- docs/sitemap.xml | 38 +- docs/sitemap.xml.gz | Bin 336 -> 335 bytes pyproject.toml | 2 +- site/changelog.md | 11 +- tests/test_utils.py | 12 + torrentfile/__init__.py | 12 +- torrentfile/cli.py | 5 +- torrentfile/utils.py | 44 +- torrentfile/version.py | 2 +- 65 files changed, 2618 insertions(+), 2680 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f614a3b..e79318e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,13 @@ -# TorrentFile +# CHANGELOG + +## Version 0.9.0 + +- Updates to Documentation. +- Updated the main Gif in the readme file +- Improved unittesting +- Added new tests for functions in utils module + +--- ## Version 0.8.14 diff --git a/Makefile b/Makefile index f40fdebc..b57bbbcc 100644 --- a/Makefile +++ b/Makefile @@ -68,6 +68,7 @@ clean-build: ## remove build artifacts rm -fv *.spec test: ## Get coverage report + pip install --pre --upgrade --force-reinstall --no-cache -rrequirements.txt tox docs: ## Regenerate docs from changes @@ -86,7 +87,6 @@ push: clean test docs ## Push to github git push setup: clean test ## setup and build repo - pip install --pre --upgrade --force-reinstall --no-cache -rrequirements.txt python setup.py sdist bdist_wheel bdist_egg pip install -e . twine upload dist/* diff --git a/docs/Source/cli/index.html b/docs/Source/cli/index.html index f5bb0147..12f72ff3 100644 --- a/docs/Source/cli/index.html +++ b/docs/Source/cli/index.html @@ -1529,10 +1529,7 @@

662 663 664 -665 -666 -667 -668
def execute(args: list = None) -> list:
+665
def execute(args: list = None) -> list:
     """
     Execute program with provided list of arguments.
 
@@ -1645,10 +1642,7 @@ 

help=""" Parse torrent information from a config file. Looks in the current working directory, or the directory named .torrentfile in the users - home directory for a torrentfile.ini file. You can also use this - option in combination with the --config-path to specify the path to - the config file. See documentation for details on properly formatting - config file. + home directory for a torrentfile.ini file. See --config-path option. """, ) @@ -2025,11 +2019,11 @@

Source code in torrentfile\cli.py -
674
-675
-676
-677
-678
def main() -> None:
+        
671
+672
+673
+674
+675
def main() -> None:
     """
     Initiate main function for CLI script.
     """
diff --git a/docs/Source/commands/index.html b/docs/Source/commands/index.html
index 56f018cd..12894f36 100644
--- a/docs/Source/commands/index.html
+++ b/docs/Source/commands/index.html
@@ -770,7 +770,7 @@ 

- torrentfile.MetaFile + torrentfile.MetaFile diff --git a/docs/Source/utils/index.html b/docs/Source/utils/index.html index 10923a94..c786d80a 100644 --- a/docs/Source/utils/index.html +++ b/docs/Source/utils/index.html @@ -750,17 +750,6 @@

Utility functions and classes used throughout package.

-

Functions: - get_piece_length: calculate ideal piece length for torrent file. - sortfiles: traverse directory in sorted order yielding paths encountered. - path_size: Sum the sizes of each file in path. - get_file_list: Return list of all files contained in directory. - path_stat: Get ideal piece length, total size, and file list for directory. - path_piece_length: Get ideal piece length based on size of directory.

-

Classes: - MissingPathError: Custom exception raised when no path was provided to CLI. - PieceLengthValueError: Custom exception raised when incorrect input value - used for piece length field.

@@ -840,13 +829,13 @@

Source code in torrentfile\utils.py -
52
-53
-54
-55
-56
-57
-58
def __init__(self, func):
+            
39
+40
+41
+42
+43
+44
+45
def __init__(self, func):
     """
     Construcor for cache.
     """
@@ -873,7 +862,7 @@ 

-__call__(path) +__call__(path: str) #

@@ -926,26 +915,26 @@

Source code in torrentfile\utils.py -
60
+        
47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
 61
 62
 63
 64
 65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
def __call__(self, path):
+66
def __call__(self, path: str):
     """
     Invoke each time memo function is called.
 
@@ -1030,14 +1019,14 @@ 

Source code in torrentfile\utils.py -
 94
- 95
- 96
- 97
- 98
- 99
-100
-101
def __init__(self, message: str = None):
+            
81
+82
+83
+84
+85
+86
+87
+88
def __init__(self, message: str = None):
     """
     Raise when creating a meta file without specifying target content.
 
@@ -1118,14 +1107,14 @@ 

Source code in torrentfile\utils.py -
114
-115
-116
-117
-118
-119
-120
-121
def __init__(self, message: str = None):
+            
101
+102
+103
+104
+105
+106
+107
+108
def __init__(self, message: str = None):
     """
     Raise when creating a meta file with incorrect piece length value.
 
@@ -1217,7 +1206,23 @@ 

Source code in torrentfile\utils.py -
434
+        
418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
 435
 436
 437
@@ -1225,23 +1230,7 @@ 

439 440 441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458

def check_path_writable(path: str) -> bool:
+442
def check_path_writable(path: str) -> bool:
     """
     Test if output path is writable.
 
@@ -1258,10 +1247,10 @@ 

try: if path.endswith("\\") or path.endswith("/"): path = os.path.join(path, ".torrent") - fd = open(path, "ab") - fd.close() + with open(path, "ab") as _: + pass os.remove(path) - except PermissionError as err: # pragma: nocover + except PermissionError as err: directory = os.path.dirname(path) message = f"Target directory is not writeable {directory}" raise PermissionError(message) from err @@ -1326,7 +1315,23 @@

Source code in torrentfile\utils.py -
377
+        
361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
 378
 379
 380
@@ -1340,23 +1345,7 @@ 

388 389 390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407

def copypath(source: str, dest: str) -> None:
+391
def copypath(source: str, dest: str) -> None:
     """
     Copy the file located at source to dest.
 
@@ -1430,16 +1419,16 @@ 

Source code in torrentfile\utils.py -
422
-423
-424
-425
-426
-427
-428
-429
-430
-431
def debug_is_on() -> bool:
+        
406
+407
+408
+409
+410
+411
+412
+413
+414
+415
def debug_is_on() -> bool:
     """
     Return True if debug mode is on in environment variables.
 
@@ -1536,7 +1525,20 @@ 

Source code in torrentfile\utils.py -
223
+        
210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
 224
 225
 226
@@ -1546,20 +1548,7 @@ 

230 231 232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246

@Memo
+233
@Memo
 def filelist_total(pathstring: str) -> os.PathLike:
     """
     Perform error checking and format conversion to os.PathLike.
@@ -1653,22 +1642,22 @@ 

Source code in torrentfile\utils.py -
296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
def get_file_list(path: str) -> list:
+        
282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
def get_file_list(path: str) -> list:
     """
     Return a sorted list of file paths contained in directory.
 
@@ -1750,24 +1739,24 @@ 

Source code in torrentfile\utils.py -
203
+        
190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
 204
 205
 206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
def get_piece_length(size: int) -> int:
+207
def get_piece_length(size: int) -> int:
     """
     Calculate the ideal piece length for bittorrent data.
 
@@ -1851,7 +1840,20 @@ 

Source code in torrentfile\utils.py -
133
+        
120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
 134
 135
 136
@@ -1864,20 +1866,7 @@ 

143 144 145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159

def humanize_bytes(amount: int) -> str:
+146
def humanize_bytes(amount: int) -> str:
     """
     Convert integer into human readable memory sized denomination.
 
@@ -1895,7 +1884,7 @@ 

amount = float(amount) value = abs(amount) if value == 1: - return f"{amount} Byte" # pragma: nocover + return f"{amount} Byte" if value < base: return f"{amount} Bytes" for i, s in enumerate(SUFFIXES): @@ -1970,26 +1959,26 @@

Source code in torrentfile\utils.py -
355
+        
339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
 356
 357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
def next_power_2(value: int) -> int:
+358
def next_power_2(value: int) -> int:
     """
     Calculate the next perfect power of 2 equal to or greater than value.
 
@@ -2096,7 +2085,20 @@ 

Source code in torrentfile\utils.py -
IR4RV&NTPI18hh)0csUQ zK0FZACO>3e>QE$$KG%OF2Hge8a!=Bv-M}lFiN>ftzIvap4~fSUJ3-J&*)rITw$T`Q z;Ef2o=D~Jgcu7;wXGs_$@ew@+x~xImc=*dCi-mzeCalC)FRednJsEGi0}*SsKG`1j z@!78J%0W!)lUpb`D_b}dWQj?I>Zg_`yO#Y-{p^S2{0=8-4j?>-IpMZf0)B*SG#$iJ z_jT2$n`@X766;8to0D5Zn^#bCPMcrc#YI<8 zKIuqTSiN3DSM>h;obFvCB2t9@+cCuvzBbg_O|gto*tt}6LuC@f2sPLQV@xR|(o(ce z(dX)=ts`oc%l?P)nVHNdvBD+u8t63}Io*ar+p%=$_E3{Lh}9?O-Llpjt@<*cIHU<< z*$*)&uViX>t}f8r)F#Ul18+SK81%e1uaV}sCA}Y0f~qTt*$(Z5Y!!Sfs^h63%!^Aa zect-V@e#<6Y=Wg2B+3?X+3a7HT5!FH*XgoD-(u|%qpQk_Q5E;Pm(Zno3NuWUM6)L( z<9fOqOH7RNbX=N}=U9-MOW53H(Z$qG$l&SybfeGGv@&Hjy@a$AFF)V2cgl$D?a;S$ zipdU+E0G|Y%W*EazZm!s^k6AOf)~7H>bVQ&N{n$m=cfcG5a(*jiLPEpYQGBolQ7yC z2H9LE9#x4eRIl?{zd~NI8Nr%*^UX}x3>vDEi@O_@i?IxZx*Hreb^L5^7(g<6Vbqqd zEDrASq8&8ToLugzh)lmPn3nD6lt6lePjGf}o4$TzDNDmee>EwE_f(bLNb9Opw8vah znLuv;C^pLr;H6OUq*7@ByrWRKGx9i+}V*jtUI zsRC3a&4U`gTn44?Zp^}DWyDJFgavU^{S9mc!&qX+F!E;xL@LoS-;!b<%LY# zYM5hh7<@+)gP@N2{5FR>TbAx?%(sphT3NwTdqj%U>b>tCGc!Qu+Q_~_)Wf!KBiq}e z@Dsy+!U2QcnvSZVkA^o-9pQ1GQ8egQiuRUjNt*yhN$_iKa#HY3MT8Yp5)$-^oSclN zQ>-u-yV@xZp8}x(ASd@wY6D|~Z5fY?i%t!y3_q4bxe6h{kcIbUB(=Ae|KPKI_P}#L zsl#-dZ4r!z@tZp4)80u-x{u`ZWKs7Y>!N99O1$ik3l>Z-6=ywyfG?pD28;@oUP{76 zL%Jv3=Q+DOFZ|(EErD7Hd_8_PA*SIU|F~+pxvLBU82$37#L4CfY>oohd9EC<=;42mNK0T&E;; z4tB<{R=q;7UC?m$1It`RT?J_hSjFT!w=t-o$%j^6S{H1n9n_51gV^7BGHhyM z)&eaOZFQ_nHg)gSPV~8Ol%+A4YFDb*w3|gb^jmFZQ9lHh$8%IQGnmE8*iEnS+LuR# zZ&fDOkRD%7)(opXczOR>qJkZ&-=681-J=tqHa}R}b-vdyv#`V0OgF2~6IB1C#ww^s zwHiI=rKb>vOyD9{OFhWEU=cHs65VH2Lr2cR7gNba7kB)S{eHjs)`8li8KB}vhoXld zNmr!94lYVg&(dC9P|f9iRag!ad37so7o6fOb&!)%(&RCy{&{nQ^h4l`wASm~tN5fD zZLgAUzsR~4Eahw=Tnji9Mt*~$lf4l^7|{oGk1vT!I$JUnr=lTW5XelC5lPM5pXpD6 zNPqoQt8moLsAF6(l4%}#Moz<_g)VUqzm_!pD0{M6mUk}F2YTf;&ZIXrRW~XeNRQFg zu!AWP1K;zCKPbrdh4IYnRN_UQXP#X!)cBZuqIhMi-3ASv<5acF_N;y7`y9$mDv$tEltaeqk!3p8$Gc;%Y zQ0M_P=rYn}0z{h;g$yyQgwVmeNic%LpFuEl09Hsn9e)T6WXR*&(k5>mnUnRLlbZmL z@Img#*utoHn;;Ug5h2@=rHLj-ldN76wX`I7k&qmFt92z1N=K-PKhVVJBkJ0VR8L10N@&ZmzHoho)IS(B4GwPsJ`t8w3plSFueUmDur}|tlrsJyQ8%THuVtQKY+hiR zq{OXF1YH>yB0*&45fSJ~^wrbIwH62t4N^psBlMK@?t%)WoY;y)h}LIh$?C8*yUKezq3$_`CM?cs*o3@eJ#V3O)MElO3A zd>EKWeNF;rbeD{uxNri&Hyo3A$?Mj{oJ~2|173JEwuIrpMI@CG_H!BH^CSWn2tt=M z?uyg`bOK}yWSZ?z8p&@@5nV-_OLcdHZ-Kj0BN|{_N zKFf7(dI|y7B{D^HDeH0mr-GPF{?)Ws*sF5&3v#4XdwA5IZK=+rQ|fHlUeeUwO4LR4 zDas$*UYi*dDP;S&7%qdGSutoC@fgXQ%&GV3q8(B z;-Z8p_nUT~F;dfaP}jlqAb-o)nkv{5xzfzn;mPNg6Rn346Pwe`?MbHt5U_wCOTq)x%Lw zFA|5z05$WjHiKXu8%6okMBCBu1n2M`dh#uKa#I`YZ9+w_3zdo*MV&+OI2f01H&>oR zRcI|Zrmw-&&7*FGW^-g>1(D;T>e-IXoJ*z@E*Renf(~rTZ2%cZ9;YTpt`|`*+KVr~ z+s>oU)oJ8_$q?l)A?1%Lgo~MkDmjOWIfsIMyv{oZ6}9eJaqL+_xltUtkulVfvCvL` zyN{zz5SBVXzD+(Ga*d@e{ajQ3(NNCG;K%XXw2iTfptb1`Ncuq#UBq1mf6{_Syldf< z3=F92g{Y?Xl$%FVnwom)Ij@B~*M*=hXsY}-Dl<)>O=v2&g?PR4qbcdCwfLbQuSW{f z+4ydqbAmi$IYtgG+@la$YV{OxAQ?Q5z`~7b4X(xP#Q6ccqybvZLB{PQ(4#t-4T)_n zjjlYMSj{C`qcM+`X37m1VcK$)jd8u#Kr(sUSr;Xt(FB{=(7BW z{J$bMxZ?$Rm?iomrT!LjMU7dP3c88nvBJz~^2W zB<#E3Cj~&8RWq0KEj36wu`aVCy`mRZItvxK`y9;PT#Q4|jP`cVBdqkr&r=ImNKZrZ z`0~k(+XRiLT=IAW82J>8^wPIsEZ()bSgcy@R?9^`_#n7tC#tv1*xQtc&PbWcx;w+8 zNAEvfOsoYZnyg{p7A@V#{5``JxQ*OWO9Be`eALir5hOFN(;s`%JX ziL~@D5m?ZpEZqfnZ~N@E)KOdHSm4N$-7#*#!8D{4*lyU5F)l`E5QyT5fiKD*c1M*(Hr<*Y}m@+=nZ6WWCqxVEe-&vfZy-{UNpdc8~_6q zfQSu%&J92k1;EGy0Kx#k0|0>GI#~nd+IkJ%3;s6`1Ox;mBqTI6G#nfpGBPqcIyw#x z4gmoH5fKqMM}vffgp`yNoTfoePEJ8V0nXH*qN1Xvrlz5x0f%eQ(b3V<(=#wIfKxV@ zn3$NEnORs^z;PS*?%iW!V`FD$=iuP@Z;9TpGB>ucu&}hWw6e0Ywzjshv9YzawX?Ic zx3_n2aCrIhrK6*xlate{SFfC%on2g9TwPt=+}zyV-90=!JUu+9?1=jZS5|K`n`fPjF&z`&rOpto<|1_uX+goK2KhK7ZOg@=bnL_|bJMn*+NMMp=+ z#KgqL#>U0P#mC1dMMV`s`}bmhC7GHy2gOr6TrSH;NaZ& z=;G+u%GlW2*!bo+a199j1e{ozm|UEkodeE)99x_jU7Q6j%uUbF&o3-2EG{lCEiElC zFR!eueERfhb#--ZZEbyhePd%|b8~ZRYioOFduL~7cXxMhZ*PBp|KQ-@@bK{H=;-+P z_~hi|^z`)X?Ckvf{PGfPg#W=8|HXza1fYN?aL7w;bcaU47N(Y&Zvu>CvDr{VqzWUT znhPAX4<=Ox+$NJ&z}+W({D$lntiuWAvLHg=1DEs;G##l}_
    *YO5eUvTx}8?NpE z05kvq_zg}exPHJP2fyzDg9`jWK|$T%%G})iFT_=FOoD%0vQK=PT~eWbM6tC?al+Gg zzY$mM*cIK_72x-GfcG6xfx-6MaMe@M)z{S9-`_tlFfcecI5adgJUl!yGBP?kIyE*h zK0OWu0w*RWCMPGSrlzK+r)OqnW@l$Ve*8E$H}_9*wY{~rv$L|ZySB5t{Tpy~c6D_M z0)fx@7hF98;QSI-g0E4{Sya(11*lv>=PiD-|t0%Lmzp81t`NL>$(@0GSbjg_q+@A0NjH_~%ol>RMvfr(9qD()YR0{($dz}*3r??)z#J0)6>`2H!v_TG&D3aGBP$czQNS5_ksWa zW9qsGwETuCaQ8?2Ll1}y0NlRLxB7j>>VLdWnHlTrnpkR?+G?0NyfAmvv~bk5d}(ZD z|5x3u{Nhp_<8uNdGk(|I>fc(Yz;`Qf57^(-_4hp>5IFn?>(tk~)%Mo<-uCM5&gRbE zKfPO>U0$7DfzH9_OAjdcojPUNc*hkNN|@Y&;RB@fwkqe67rJ&w$S9hbS0!ai(_4xJ zMXyzh1<43hD9E3#R`%au1pt6E-?*;d;7b)a2=2=@>vui>+ebQe_X+CO4X0Is=t;61Tz(hv2Ro3{PGhlGb01?onrnE*!2$F$}arM9)il= zyOn(;mHiZz{d86RtkwNIHGNWb?Z!<_ULEg~drND^id&{i`eqt?`#X9&hx(eP2I{8= z8>WYvCq}v^#s>Zf3;6R=wYRr>aIklDw10fOe{yngdU|+vc6fSze0p(ma(Q}kd46(r zaSFNuC((jwz_0B3->`s9Fc6nVrTRT7{QB|uDyqBmi;zB*@ke(i-r_%YCuFA;UfUyY zkGv!AGVME{D;0}y`{(Ss-#1*T0suMy066IP#dWwlct*u}jkCMgG4NnU5DEYb@g-dt z4*v2pEb4e2?=)#i+LHIXdRhq8kMOTo&PMhSSGGqJg!P4zE&`yjz6Iu zd<0_~#DW^-oSIdQTlCahtmK;AA2ovaXl2vZR*+QJ->GT_v*N$x(%XLd=`X+fZ)4ZN z4B*E<$N+AwZf$?s-d)|^Tie~=*xld$GPK%1JOo2)@8o3n>}>n|eDmUB{ql0{>S`5y zKv$nYpmh*v^$V^uhYaj$wmgT2QMcJGOcL@%hv9ms$CB<9LU9}1 z0?I9mMc#RMywSd+)fNeNZ*l~Wh4`o2)!T2-0sthgvDkYn$`y+jAQ`bDO(!TYGcc`*Yg|^E-zNyGKiV zM=SeBYx~EWhsQfd$A>3J;Hq_gesFPdaCv!fb-8zS1x`>u1fQ>@1$ZF5n)~BGShEqZ zb9wfhxG{y!9imXS%vV-h#E0;{M|iModQ&jblh8v0767*&=-5){0j6fJ7vj%Ji->Qq z0#g*=p%wUz2)N+_{}q1yh70^HI*b2YE>P$@q{XjufdFzAt~~g`dEr=E!XG-p+h68Z zao=zSmL!2MRN(i&{QM7gg5R54{a2T(U$%aKBe?jtb%LX#V`F3EXogaVj21Gy5 z6sl&b=FWe)pdu+QIwd|jEh6r>530aYiq3E6J9?$x3Zf3Osy@1^j%yKM%hUHQ79Se@ z+8Q&uE2@U`8Yil{$J_cwz>GRrtTZ|@GX6!WG%`CjvM}8A5jZ+CG5#+w>YJNOD_h%O zLB-1U?)uK&)|WZecSL~a=VxCa1Rhi!UxJRWK&M}?Q-4EK{2*2u#N%)tpFDC}9#H1f zJ%3PsZ)|Te&elvck~=0eT~MD=Hun`?X-2ajy5+3bD)Y~-Q(51j1?K#~>4zV132*E?8Z$_1&uVgLEA%1H8EUvgPf14lMo!T0dhdzYyl!L`f5J@otIPrnuN#@gKXiut=gKU;tFrxdnT0tqS3GV=X7g8-?X@DX z`WvRe{2%cR3-||Awl^%`e>V&Grz!#)zQO8OOpKBMXyxlK-#BzVy9I)_<;v zQRL_2;P06j5$VAuM%IN6Pf`{+`C(sw)voZd~^g6?L=nG3N5nogWy_Rel?MFdy0=&WwA?ZJF z`MSR$=%(fSgT|_xmhYzJBRPYHxV}jZeuEVb06+o&V1FV0u>J*O6}XPw6ee(CvNqLq zFw=ZxuKLnK+x{;yfq=|5z{kKbXx+5K7#!rZ_`DzX-QUuPvx?HFau+L5mk(T1J}*a z>JQeeAI-ovX1coOc7ORi_-1JJ&zSYE;T6AeXeHbsHYKW$d-c-h6gDvqhLEiO%h0Me z1aaoap_N%n&d-NdGvA=~`!7&``x7^H>xT=~jnv|9<&D&We(@)0fd^KiKlcTLJH+4h z+(1j;#Nt247YwdiLGdZSS84$kFLnLfVqw5`d+@+&u&HIZul?&hxOZr5aCH0^zTm|_ z>tv0KjR14{vNCzabyyzglPe$Hf-Ek`wqh z_pSdRTZr%%iv4F|i+^Yf!MbM#O(U@M$eV=6iauvZ6X1Yxwe{RDSWnO!`3XKU{7($~ z&NpCz`N11w$R7z_y5R@^yZOOC%@}e`5FUbYh4LlX7WSJJ___o9eUe-7k9=(fe>5>7 zAt8NDwIw7ZynFZV|5~u^e@?+lNJvObOiYPN$#|QV_cE(gEx$(OT|IkABTZQ|NqGxF zMJwL#%DMgiFuK++b3 zd0(aFfn55dFcLhB-S!e))^L2hAADAKzEFY}-^$cA$Nocv85mms!gF)E`cZ6aXRh;q zEVd1ZjPZ&}bcs%}jLkNPE6|L8C!bKs9aAqEQLW}#Wn@(2q);2eTa(IMQ$Wmfchb{fdwmW)VwW)vzZ2bqjc%y$J#FLk9cbr&-*;&WizC zM!>NZFaQALmylcVhu=-J_*$@TvZDWQEcZ8Q7Jrk$zP9!h0&UC<{_^4Qf9A#za3|RD zOGo2hez5|5?F8Arr@Xj!+^dX4%YwtrK(jJS@Nzn>L2$CX!ni*qEnT;LnBRc(E2{OI z)jPj8a{WfN{@p0I#Y0dQc$%D9|uS@W=>A7_cbVFc^5y)OR57Q$Pql0>}^ov=9MCFaT4?FPlxi z{;rk)z$*YC>iQQ=0s#K@Kmbw^0eN(QN_jxNDWKl$%V{wG*|7jL*#g>J07DUgu>`(VRo&Hoc3`A0KllQ2xioLpy zxxDdVQHM;%fN}JMpYLLZ<661(R-NT`y~R$0Ir!{0S|4?IoDD=?jwW1=CVoAju_O>M z`EsrDa{K+oR{i02{n2*)*>?T;PQ&4T^TJsl5HvOpK3CUo(AXGgy!U9jZF{a|VWDYy zv2o#3{pM!<*7p0YoyxWS^r`b?;8oH%_<)kfFEgh=Wpkj~1yKDasB!12}( zm)z(Hk4dZA@h(NkBj9+e7G^1>^$qSl)b#A)wDz~eLjD9|CFz}E)JUT7&sfmvTnQuy zf;svgcSI1VHRV%>W%h>idm<9X?(#E}-Ft$r=J?KQ*tI8|H9@>QcQo%=4892MRyeeY zB1rc9Q+Q~VIv zE7$E_#zb!Q4?Kv2C7@orQG3ReB9}$d@89Tf-msHT7Zu+nB*(;DeRy#USqE z)y22`ury1-!q|pOA&)6@mO>>t)|SF#L}`}86;?VPOCfA2W(4zSRxd{_&1Zd-RNq!? z634i@KgO3uY!?;nY!=N7{0Xabw11aFDLy?ibz%} z=&F_wUlWNepc=36$HEFCv0dyUm}Y;13}H-l!c+37-QDLLkPr7N?qOD>$Bgv%EYVqQ z>Whriv>W20x73h^fGgJSAccLNxtVa5R3A=hUtAL4eDn5Zl}-N z<@kqK^XYdJ&eZzZB%bU{d`jZLOR`8&-&lL4kwW?zv~E*hqV#k`$Ob4ci+6W1=J=ui zwC_>r9CEsAhZc06Domb74>JF3Y|;xC_6G<<(v*8bJw{#kgVU=&>DZIN!!VV{7WLB6 zpFqr)Qp*+?>%K9ZvXVp?zb$|?l%dWMPY96EyMKZpEDxG&oCYzUJ}5EhQs8Ncs@I`t z**_E0fcC^|V$OPZTtMezn}dq2Tv?olQfy4L^t_cEssyVmi;G?RjsO99ZltWRKWi9C zFRM}`gI0!{ooYfiW5nGNfkI=(1L6_XD%RJwL2A^bnoj4D<)T(n7CGH%6Md9oEfazC z7?9C*O%K>OuAt2Djr;h?g_~+}g5S<8q^(|JKZ=763fj-pk>Mu`=I+EWk+JSt8uO%R zC!sW#%-3yg8pz>s*{2BG8>W01#hkO+X?2@yhC%X#bfk4Z64;~nNEJ@h)bSv04ms;V zyI9{H<%9TD$trtlV?1wTPTaq7;c;o&w@YFe1d}585Y`>cHcW8H$3)zFl&TkhG4E} z`Z;}{DkjO(a$h0CuF*orqdewv8i9P}#*~VpbZMQO$00b4#tX(-2JC)Bi!Wu#+q_0@V+6j4zlQxrskBpSPbZCuC2`&b)t5XK|rCAU5Jb=S(05r?W> zkf@yqH#iF(s|-#Cl!>$kh+B#)aCxwlyAXm*jcRkA#`W1{JsDlsBI%x*JwGlEZDru~ zzEGMhxtEhhu|2>RH}GM7w6t5-Omkd(ic2rjlM}|owm?F;ab~poxnhK2TH4Lr22})AQlvNP{d_ zxK)|B^O4=MGIFYTt!=g*2PGQzTzx6y68s77{JV%0`->Str_5Tg0>h-G{&ijjrd;h@ z*wIoC5>PTvX(s(|yP&|ZV)6)2lyQy}8})9P8FOSa)^9#hq+fgt8lOgn-BS&S*=h&G z5x*%$NFvKgmBb*Q(9SE6`na_rxA(A!mW5cc7zNK%yJrf1ry`c;)o8!8Q;Vc+RRrGM z@tma+M|Qsv=CS5jZDgn?7mi|5AoATp2Ss;04CS{F^H(UgSFfW)JA#1JP`A1|YqR!5 zIsF3M_MMT1If!1|IqyK(tz9iyp$Nq}cT~p|H-WlanvBqSaXT``33bgnb!6#SlMmO! zXz}7hH^c#Ee1y*QqQj8G3a`FbP8@+TB%W5&C$n|$u-aBV=VG-Zo(b!uV_Lq8epr?5 z;uz>h9Iy3N1NetCLj>@aFPtJZ71&<36ATfXuPN9t!^SpuyjqZQA(O^owt&Nce4FtQDEBVW9` z_k7{Ch6THJzpWPUy~o7z&iz)-5+g4AC+4;`NbVm{%j|L8cM-|qpmm`&`%64DQNpisRpFcvnq$1qou#ORQ^JaI0Wf2tfc7siKgQ;>Wk7B2Cu)wVH z_Ed8B$JVN4x17UPixzpY2J7G%?gg@R9zVIIVM&7q#O_|9q6J#{>0?DFW0^v@!d2oD zEzy{1+Y)>7vSr$elA(c|vU!-{vG?>GL>#=VMqEnvU)x}tC!Bb-yS)Ul`h{VbYgzK3 zJfr7(VQGL;%U`?>Kjvq&d)Ewm>Mw5 zPQ2)b&;)#~RqSWqWV;ppMiCx;cmDS9DwSoF|LFrAJA1lfpbqM|?xQy4I7NM@ELop1 zqhcl6X)kmXPY+jY!!z6v>`bFi>=XejukeO~&t6lfW4hFMhro<$VsM78iG-wKKO~O{ z#e5n1AuW_qIh4K{^swYOl#NE7vRb5i%-p37?cJCR9D)j(pY-J8P$A_oNZYWskg&LU zNSj?)a}8L00327cJ|i)lo{TosAY5!RB+COASQ3W03e9a#Q_lsaHcV6J*ZNbUub<2Z z6C0u%Oh}I^QLmRpf^?!F%eiejrLEVjM3v<`;Ph3G4W4JJMnssIi{VT9!G2DLFhz@y zU(;5686nON@%9~5iI!K&DnBkpBu@n+aK!|EKDc8P&8O5P&?}Z)fc+JX{iavcC3GAl zMcmk-i>sK7dUW*Vsh<7QV4?_j8A?kw`5Zp;n=~s6CL8(I5*i5c~LzkLs`_MHED+jmDqS;SU~pY!o{xQ0X^rK`%kIuD z6_p}Km1b;B&+N}cni~~0pK4+icUU;REx<*DlrYwC4hkl#yDN5o~e=K)?W2~1aW7(|PSyt|ji^-1p z?GCPo_qVB>Cf)Cke8P3l_3nxGq8-jH5O*9_KnZMjITg%HsEJIb%`MQ+D{9ZqQjsd9 za#b47b;(Khur+?xmLJKUQJbUCPy1RaJ)BG+zD*fY>MVX%Ini7^MzR{#SOd-=I6+Q1 z-k=7SRt6Gp09FzqQHLZ;Ix~@P>9$XYyqqr{mW^Q6zFR|dY;!t=hM40D&iy@WH1ss* z=`@qFGEYKGr$nK0T}AWc%F zXc%wr25aM1u$Bus+gZ@-2TMU*B&?f-J&?RBO9@cn$1EwTJ(a*tbp~`l=6gizVUYHE zLEuHTL&K>j@)S}tTFNG=#anc*q!tee_|oUiPT_EsXIiCs{-rhWCC#KICeKQ&d`ddS zD;zPrE}A@qpB2aYd3nLPm-|)SjVtAnc-l9q!}~Cr&DY-Ic82d+7&%0YQBC1<2{=Qv z2$iWa)tYjvf%p}%^3I8bHpBAIAHv%^%e7cgGl$?}i0iZlStSh~xUc$9?N@!+za0n4 z^^8BIS6`!ngLBGSWw3gVW>uQa741u;BY}fq?bz+70!e5(=vzruRmkSedhp&+%P$9G5HAIB_2|0NLa#<)bqfXn&=`zLHI3~10~cT<$`Z(!=Q1d zmZ_#bH)mI1JACOHPLKi?&+`DL72lu*cub=1hDqzU#-VSV_KGPtT0I@!`j)hVCZDzS zIkcf%<}qTl&kVQu?zb`H;t$i+;JnhtGf|!$)gx*4JkjmsI#%=2#nSe?)XkyZdvC21tXbzcSo&>0%ziLa!Ch%3pN@qvWqVZvie>329Cy%8Q}8%w!` zBvh^!kB0^dAz6Au&R25aR(a=>CO)gOG3A#x#dPPXD`x~wh3XN82EA*8MWy`X_Un=2$5T)q9MVy@sG(sY1LORN<3Q9tNi9ysz{xnV znVN+62=fopT7qU7rVOjYy67hv9tHIZPp&$*(l#OAsc9PypI8*)jpKQ%lb^IF*nuq} zHALPTqm4#w9~5Z9lS4SWl}&)70vs#|NOzut*PKJ+9bA}EUgDV-3~}o<#n3dJ=N6nI zsK-hl=B5hiCqx(~>gx?~UZ71Bx?8`%7$n62T3}6l#G;O|#=ZD}mj#*@#Wa7C9Kx8r zZ({l(y&R%XG}(O3?WuR0^y$ixNYR4eO9fTP0;jZ*9!C8_o&IgmczKDb;2lAU!XjE8umvh{qh?zUT!J13Dfw|pF_wG+rtxAe#!S-AkJsBGT2c<%@!6X*(++)&C$s}3fmjs9maAa zp0SkM*=1B*Yf0^>Ss=gJ2;7C}!BQF?r#i?PW{pU`uLjhZ$4}|4j?@g4c z_j~HD#&M2r1QmH+ZGY@2(n0bW&ffauvJ;P@a8cN(u?pJxY$gEh_^z7$(8JA`^YzeEyE;qJ;0F?8QZe>qS-4 zMNPv+f$RB`CiXg_%O<|dmKT?8u9qE2mr`V$KJe1_L9=N6OjyxO1Rshn$6T*~Nmr8% zR~`MAQ9NXWe7NbTZCJ1SmflkLtt{z#P^=Jy@@~B#KbG+tq0D zMj-;zvwI7HkQ=a4wMxsC@$wY!c*Ja16};kMv_OFYoTkf9qwdHJ(T|jV7-g&U=41{S zpXgVY?QeCqS>}y*#Eq;n^on^x7GBX9M`0Qdtui3TYOA6}x)U!EwLN>X?pEducZ=W- z?B0l6h**p_des$?^cuxGQnl(?-=p;PlfZH6B+fEdWFPZa8D29MlS~<(L7k}7nLwld zn(S5U;CeWcR~yubRO!q@Yp}HN0>0c!63K1*7_v-W_)vSzSQ3|LOlVJ#iURwdOWK9p@ZI(=*eIQg%6dEBoF?I*oN0QeJ?WY-7o4Xe?-*Qfdx;8P|KawB!Biv`%_IikQ|wY35KE z<%g4a=xxT_%Y0P1#~-0db25ShjLPnxKuZsDenbkFA0ZFy791wE8EAqn2$dO?t1LMb ze8&Dtri0MEh5f0T{c`!!7kJkBLMi@Up$`v*Cxar3-Hc4j84*l3dbFR2*(pcKb;C~u zH$Bsfrj0c0kn(^P#3MkdGV9+?*rrLBxSOPZo0GD-ZXmKWoaxDY~tqhvdtD++R3lfw3P zp(m;~o^FhOCa3UopH`Dv`Qvoq+lEabU);2<0ip0!6LeZR{X}QjNtGQJmq`OJY6LPF z;tx{8y;D6`;vZFNQH1#I@N*Bs9X=(Pvx&Xev(0fsIr1OOzKk%NOG8wD_(A!0rkJ@; z+9Lge+a1{HVFpcxl96|lO5BA?ERN+$ZTIramtvXPxvhKee_{bzg|zjoyVnoG^GL;* z`pGdh(#su|i4$E}j4Dew8>PWvkLR^lajYxsi)$N~ZOyXBVZZ!%M{%g7yC#U$`*ch9 zNMHkh#4KaiWvArr;?P-g89~jmra?|VDUH9M;s8$op}y6R zCnuvW@l<(|r*%!py)sSYLT_SEKwcvCKvN?(7;fSbe@d*4`93<8VeB1_(h&0EEJ{UO zRIb+ob)|t4l$7C}5^ZED^8rwp8EXiS5@GT@fu^dE2rt-$bQ3+u7CR!iz}U9J*SN*O81NB6bpag@j4 z8ru!WeT3G35Ej#E8aW*QNqBI(rCQo<RzZo%E%-6cSR z26uO9+@W!Y#@*c|KyV8*8eBU!-@Wt9a#pjL#nexzRmpkJvF9jY?y{4yZk?NB0a4ik z4&{ewaDj1fbo4Icatb%^Wv3KBZA)c>*=R)dmKqxQMo+O>2tB;;>JhUTe z)NmD(xt_8AenXKtXif_~Q) zbRQIDt?c43Yy$+RuJD?@?AC0_R0&6x`I$?nFd^}o!I)<7$hQDr>tBDUfJ|_e=Sl*& zyA~Hic5~FL?NAhbAX8HRA^@<`d0+e8_;WJUeLT zN`{s_du5fwa)$VuAC9)6<%M5IS@ddRJ?gtXjR@BoG15!VnnTOEU+ygHfB;`t=i zaOb{9u<)`+du&<|oq4zGJ>2?b1@D#Kv}-(lY)ZkKk*EKd;hDJ32=d(%oSgnV6`XRH zPOE&%s$SbbGaD_)x^A_cDdQFG+8otJ&n9bW#XYxlfhryU+q%)9Usdy)J|mUb;vIoM z-|WpYlJQ9yxzECw4DYm^-dbvcBg77!CX4k9lW}`tkL}yymg6 zs75&ayBU&fCPWGfYo5S_s(@m8GAyLXx=Hpv-X%bYi<1rHca=fb)ETUQbr0H^?bnX!#0$GV8DSBX!2Go@e;rd`mXO$e8{sb!LL%wSAHlef5xj z?~H=ORW7~FF!$Eui~*pG*g0_YJ|~2H^|CTsasG0)ZKMr2pA%Vd z_<3it4F$S=_ZwU*E7qhTrgCRb!a=4O0m54$3A<+x5SFr_Se#u3b56(aZBroo#JAY9 z3}5B^X>OvYkXe>6TJmG^FvL}&gQmo=2e2px`dr$kmLQ5%%~m;B6#1XFmCK{)^cQH^ zXUYV#Tn7Ba$1VFd$ZDLsS}4)qd_PZA?2)1J%{k)jj(QV^aQg0GMg zU!!7f)M9SM0QY8zXVK_DUy)L^M04}cn6AM0B@9?F3mI}!vUh*M0CkZW`7}z_LJsKS zte1GXJn3Uhs6!KxLEhm(L%}!;Pe&~|OW!ATY;VCj4n~}Q2R2PuJbw9ZNGF?cBPVGU z6nFtkn6w)+-w|^{NZ#z#&u&kEmxVi=jawazsT57B&OyqBn#M$mr)5D3A4@$i**#KJ zY*0x{3?2|U2h~UxLIoRVX$Y*65v=tYZWSrTxtWXpd=V^8mvkpazQyNk{`^yjD@;9@ z^sQmvyZL#X99xnwbey1v1CL#6xB@8?fSU6VmDxfx@-ooa(v-pL*b|f4$T=(tqAYA( zkR$+S8s}0g?n{bt%kWJK!V30DlLBBNSp~_>#0sLjfMFXyg0gkSszzeP>F76Rx_Yb_ zF+!3csv=A`oR*0ZGZ2pE`QWox`e&8`MSE$qINU$xRi_7SwAi`0%dGz1(htz}620e< zsk5%0Mx1=D!-nPHaq}~hHGw>*XYegkr~G1m5r2!T zA6Ka!b!afY2QcC4nJUds7LqKhIFK)D-_mZ^SHxdXFPOH$&v9>$VlIVkD%Cqmgga_p zRpM7r&oCP9J~`c3YfOS|Q8}7w_qo)YQY}ScJ{lhxo0iR9luvy$3x`i_3iaI*4iXz> zu9k|uScC&XW}Z$A)T4Sy;>+K~j(v;Nal}AzPi%jSB)!2T-{8}Kn;HmdGyo<9r4k0O zWzjlh;F1CpN~e_0eL>|U^e4Do zbELBn+@=Mo+4JSui*vfOJC*Fc*=yXnKeTf<+;g{5b9Y*E_f~Tc?y60aA{m$>0U_Ow z;JMdf)z!7GCnHrn+T3uez87FA0*(YU3^XFaUy=ExX&rgWjV^I=4k=A-r9lFQ>@EpIZR&g{f#^5@80~FDs7VY%v8zvnuZW!VWi=hNbR}l6g zA1#n;rvP3xtB22V6Jekl4|hlrUYTV`i3pZr+`;{c zfAY}6F}#uzF<=uqAm|^ut6^wA2NR-qs?+VQdiL9~ujTXVjuEi6| zsM!iG2Y3aQ_%ZD`01wXCr$4J|%+-O{T#!^^T_>qLM;;Hn^$Qkh5G}}GzA;doB0^q+ zn-q7h0Z^4J+w6xL!m9UYQ*FtM{E!IecO?SuD`Mn5S=PBc5H6qTiTu8Ot=VeH8CAat zsJ_*tSx35Fbu?RgooAPd?$<+@rbk&wo2k6AftNdWrcV)^C5r-Bo7Tfy_^O&KxCkYr z3Om8E(M$BU?2ucbf@_QlF2W%@rSxrN!E#V^`?6XX)aFG)EafvZoJQx;vN3)nbpM0~ ztTEzd`JCDy=9gN8@PTbHJv z#43w%Q91oms_!893x0bSZ+nk!d!J|fKzjR7d;7?G``Baqclh>Mm;O60(@XB$$;kG( zwCZ0t$wcq&Zp)rZqUephg>skvdcAoZ54GYawF?hZc?Z*slLYf$=s8ttHUd9KL8eC) zaj$8c_<5-WbQ6R}BsaASk52&7_>E#c(Ndos#N%v)S@|O5KI8~e1x&>94}BIeTnv@F z=;^!YG83pORc5=pE47PEa%(K`sjN z0@9;iX6pmaTt)M-apASH%8^GsJ&N4bPnD}2y{mzYFfrE6Kqe}FLql%gCHRCDRXlrL1wRDBPj|ra?6b@nR4j?#PXTNm^HeAS0s=^I-lMEdz ze|3cyCC>jMgN5z8SL?t36hvgyYSm_0I*sbFNg-qGN@PEFT}`$9TP-2+uOv#07-n!t zLNq3px5MeZ*J*mPy|lA^n$78f`xeCbw20o}et64ZajW=dOLcXklnqiI0jWrbRF*-i zS|Qb=keXFUZJE#w-h9}rLmmEEqsrtLclC(UZS!EYKdh!rdJCvp^Z7|plZIL)9~k}V zzwTem`*!Tl_kie9#Hjx;1QCt&vQe~sIH%Up{eYkbW{V+PVf`4O1=p)Sk}q9S(c5jZ zT~(Y|c_KF)0E9B_JDy#i$HB+`@>R;5W&Z(LA{ah6${tJ40-6L zTly+%;3D|3S?iC9vVqBZpbs{&_fl9(xW2Ri*CP^38KdsjYZOGb1@WP|h&Xfs+*e+S zBqY}*bf_$KVm|g?o4j}Zd{)~+>EGi1dY&R1AgBIPW1gJu7Nu6(^7or8!%OlE2^}_7RD?}*86SsLOivneoU>Br=83zZB7*2<2G&A< z#C3{F(V(A^4BzcOnmxG>b(XIq2VR9jO7^pi0tJLn;DVM~Z?@ZM6B_skA0B%h*Fs_yB(tJs3}ckFQf0+YOW+)4$)KvyX3c zi0|_R?+c&a7x~_oWZ#!fw=i-!R|w|NJx*ZZ?!{c~-lP{1%Ya#kT?i&VU=q^DFgS->Ov`aJCnFYBlNFTfVxu6eZbBQ5v zWtwn`5U}{u>wIT6Ukl@Ie#N!u$prKHI@0#3{+D*Vlyzm`LtB?NLR26uA~uWNHRWI! zfPmBS-cao_}B zF_cs|1Xq5MRv}FQxigG0wM;peID^v(a>uw_fv>pcM|aP(T4T`WdI5!K@6HDD=_9<@ z98ze@=pb*r={7qSrqNmCudJ)rEdIkz>&Vs~F523~jvuOC@Bi8PV)8UDI{s6@PWj}P z=c~)UJ&-Pp4>Al{ug;T?d_jx#W?5;-LkUFRa^XJuhpj4-F<#?pZ*=~+z1&)970U&} zC2+ysP;@eNpv-PYHcL@@{f)^uF>)&WzCT(@rE8KWF!_6-oaFiP^~=j0 z)6MUt`fqgaw^vtxMT1}f{FK4)#9ovk$V}~&p=g3nlwnv3{8Zt125Y$*FEiT8 zuE+XMR8h$4Je#8JX`eSm=z=536e;n>=A+t1GKo5b3r9tjjs9PUjYo`0ls|(L6N4Qz>zT0W1)23qK<_glEQE$%^#e=vqRO!6MG_b*a$U#EusdHp<$rTB$o z1kccqW0dG?H^&&6?;FQBRqPke3A!9V&Pm3D$fDlI#v0CP+`K2%nD`^Yui^*qfQ4xu z423*#!8X!cSrNf9(?n719(PG43&!~jV2H=hG%SH0qh(KTEuJN34GH=H#eglIbwuw@ zP_BloJ{i}6oI9_!{m&=BFXxPRtLj(Qtj8^X!)&AKeEd5eIWQsW!j3i^I>T}~Zh+T% zE#4&Wmj9#h8EZX21(QzN=@Roen=1kIyM+DXZ2pcl+9xNSi&d{>T?B<3Y%LGh1=myp z$0}Y9wS3*$Mqe$suI-w=Gp-o$QA;aCu7;}J%&~q`yG=_aYe;x{j@5V=V;A0zg|B8^ z75RJqhWX^H+_(R{-St=G?a!2`===SzKvC%PS)b_N_t(FoA3ielbM;J%UXbh#nb32C z+wJ_Y)eGH$H(ZG1?Dn!#7{E*zUbvg75Gv%U?=n(!0FmKP>LTLwCY?Tx(;1uYgTmoa zQ2G__C#SiC^=K6i$&0n`;eJDfPBn-_QSve07e8tL7QBq=k=sWz{?tLG!9kO9 zwy9`AEl8(Ar=`a|iCt{v3IA5Wc@CgV;(N~0+yy_=Svt8zlwwJA0Kjg~=@ zaZ)`6J0R}FM7&T-fsp5W8fD5B@we3mu-%ye?VvIshrbJXc9EXJoHj+xg4%?X9sI_bG|Z*j~U5D~jhRO&Q}TBFEnaho%)P;v;G( zfyV80wMG_+Q@V!pa*Y~)^-{TLnrzN$jV9auaQW3*gR*bv678)NvOzaBW);6ovkBas z`D}CXSufo9U zf?HJ!($4h5zO7ayBfPxiF3x`A)}O4wK5yvMiWf|&#voq)ydo8iE?*^h0UOfz-G|#a zFRK3ZrJ5-VrnW$$x=cH!+^E1)RlaGo4yU++9HlyU8WWfNuVAbNoj#iRv3xz*zM}_b zS??7CzT$L4rJEyD53p*nsTGgl+{XLY)=g_$?>p=FQ0C1&?6&q%VKz6lQ+m6U8-53= z%fM_La>_LZ$>AF7W<91M1C1Y@J-|9QrR;JrAx;)H*@f-z7o~V~V8?to28XHnpvgmm zbH@UuHJWDHGjSq26mH;~^is#HXKyOcAEP>}7C<>%Uz?hhw1&JGU^du7%h9UIW~f)k zkj0!Z_m2cbg5+gBs<-6}@hYPZJJUA8V>y$zLWW9PCCGY1w=hRqG2{AS4|th0dSJ|~ zWUa7NRs3k^x^-sYB)i=25XZ7s@n=<8D*I^{Ej9z8 z#y0`^FInp$S~FUs_~E+N*vQB3X2**aZN)ecNA=I1e_(Vpl0SveYpf0X#+i+}X6+d;s&T4ucLFefxz_H&(MCP8$@Ds|%7Y&7BO*4HH zo!!D@b9WWmo(8B&lgg)V_we$bn-d+JnxF=9^;pU&{j*2Q-SqM??;Fv1#;1OkTk8e| zP|sgoWIwVseNTIU{2DD;7CpX(CpkVF1DZZ=k)q+PqUpR{%mH4wLc&*Grr(+|uIS51 zpc~P@y;lNF97oP{T1GYvTvTrK|C?|fPlmH=WazD8^k;0z@avGw6GoGiVI)JA&NF6v zZM~>)vh)Uta3y4=n6S-V%Kt3Y%$+M>xZ9xWIaRNJxr}0WolwUM3;xB^&DJ{!=w_;hTwTVS;@vhk4;lBk=?{wej#{+s=RCbcH)Tq`5 zVTfU}$AwnuhHnrBll1 zQhr6<8^18Q@1ZoWR6NU)){rw-GBamKEkb6(d($_8N62ftH+^>^+)plovJxERX)o(z z9U>baVj06}Y{OG$iIeRfP-%a>AtMvXhgUH}xG|kG-z9e?PY=q_$c4L73u*2i{5cE{ z12n@?vG9&Fr5(||?lAKe)}(A0!kC?|*)myAnl0yeGWkn*iCt!o9$?NhO$knmHN2akhCz5>wJIPCE)EmlsN8yWiRoUZard&& zK0FXT1RvrGTDFK=Qn8Uk8;cIjDTM?lVD~8oC#V|q z<3EVdkR#-W#aj|i(h7~zQaNv{_FAdQENE<4k?>A;g&E79jG(yEvK`0N!A+fIjmUkV z`3j^JKQ?KOj<5|H)!!hfItAG2;rvNH;-V^G2%y%sh|xEKma;-Db$TatdJ&vXM|1(8 z&vi#O!|`}NiVCd+x=pmYomOuXzdq9ISsl~PDVM?Wmd>s3S=;RLx|Zzb<;)8II@B*z zU)4W+-_tnWYo{V}$Uo+BPHjHH4lRSnw?va((rL{@ zsJD{FC&&)yU+5L9$}L682IGq~1j&`Ri@wU(*Z_(HI?Ei@@>cE-HINuauLvj^*YH=jW`~XRJFp=E{(vuIVok66T12EW96m}s1kcs=`f*2BdcUmQ(&4w#W zY8eA#G}%eo%U<_xrPQW9)lKGGEch@oge^>Pqvd}QNwmc!E$zh9T3i)f zER0UbDWa~bhgKBN9-_S$zyZ#d_m5tN!#}m`tBj5^ykj)G2ZQ z07;=Z0w@@u7Eb1MO6*vP{uT;0IqN86ZrKKnH3ATnEJIoJfPPr5V_>nJ-rcduob1L=?f>r%9dn#qe zw@4S}|0I^*)z)Fl{ZGgzmo_O=$9-TF_)siV)WWIzi1&nd< z#KH0pq7N(E5t`fk;o5j*YFj~zxIfb%-Vi$*P1J0B9n>i>d@i{I&GSc5BAei_Mua1H z6y+w2)L5)+Y5Wuj2hyNBWAB^TSZ(ZgQsbsrZM9n63m@WnvTbc#u%$Lw%y;n}4D`(0kX$h=g%URTYohf{Lq4}YWtD`f((itI3d&xV7guMkHCc+jKF$ zp|9=aICw%K04~`u`P?3#XwRoB4`fZhjq1UsmAds&cXbK5wO zUCu~ZkH3kN=WlH0J@*TPA86-XFy-D%pL}l8{F=&L4qXk*et(HQVUKhVZDN}@*|ui; zI)ru`=wR09S>Z$bO-m_=>QkxiGSgy*ZbHwLF75JeG+6bodx!RE&`nIU&n?vsn5va9 z)p=ZOd01~4C@JS6EY1|M70 zb`q7{pcVRaqlR1v=XEW{e_aj7#*7|iG|qBisvZ0XtrR4`HytxB0xawH(Fs|EWCpVXRT~? zMr}n7{8xX&5py|ATG_8&I{fA(6fw&hFc*}lvMp<|r{F6_X#N_=+b>MFMAfi`M%hF^ zs@@9Duj0_s;q}zC(aHPck3fAa|M>CXP!00Q*5*Ksrp@PXmFrN6=|^LD!AD=32gmXj zi{&3*P1;NOSJ)E^9yF*QKqzp7I4^RxPQ?w@{w$h`&b#4!{^op_C;iM z#CQtE;gwP1*Nov0zuJse^&}N>NdCp2^pnhn{A)tNQ#{3K%p8B(M>j%d{x8HGZ|2Y6 zo837z&5Q`z9AXSDKAtG33S=|4&u>3CL_C2sN!oqm z9)j5_6T2QOR_=2tUi^+*fH?OWk~~3n3?WMnAa=oGUBNJ>7yXi!(r+&bHl5{xf)$Z3 z^o*5bA6~LP2v#!ZXpLpNu0u5aW)T&ZDQg9nk#Ja&ReNjnX1&shS{A2p)js|KLk%dY zUllIjTT^;gD}Ue(*K$cU{k?Y2(!%UwWrxR!2LXE^i0eGDVbp(A#5vaMXQhv^-v zkn{p5S;sfcYQwG=$As>Imt47)38%4`BI4?AvRcwz+`~3KZGfq975VwjYGUkSOus6{ zrUA{cZlU?ACBdKWYgd`l)#zae_A_NvQp=h1epC}k$gcuKF2H4i312_+Tp3CAx3$l& zAp%mORq!@7-C{LcBh@R>acZLk)TSGHIkQ45pf~-)waF{E#(2NN1563Imab^OMct!< z0pBbhzd51#^}LYj94YxbBzmCK3Qod8SlIB7o&&$018{eB-%K^O+{89?dK}?>B;T>d zAAhVaT!0|V!k;`PZfNsND(!hL89zMiOcXQ+DeO1Fq3y}M0d9}ju>MQU_n2|B zGeu~DutE8q#KD!Od4HF~O7w6bwDf74f1Gl)WMq(hXam!6EdSgmxW+Zp?N{oyXr|+C zvx#*ji(I_y7*w+FBifYi0BSV(%=phK=$QjIbaU=~0(*z|5UK_*Az2IeHYFM+|Ms4W zu$TG1xkN5@{_6*Xf-CqS?oEhNd6yBnCyu2Xo))v)AL$>8xeC2Dl}!W?p}&ot6k;j- z+MP*>xVBWxU^gEH3f$6^x@7N03$_l?l;~nNXfvKP5Q{5_QYGX*eJ+yCQ5IrD<-)d? zC?jJAZ2mZ_nhURo3Io;db`}y;hf=J;+?8Y1mIK+WQ?4unEn+^s04bCW5qE8TK(1HY z?xMqMf54sm>9T|YW)@Z)6YKQKgeJS9wSn$wUm=-k8s>Kzu{e(jQVG=b`+420)$dRZ=t z!)~x|rxR>$x^sW}rCvE#FmXrt-GC2sp>!w$LwE-X3Qd%e+ej2$=*^z%uH9uqVVRo$ z8q?e&Ct*ucv`Ac6^O>`XdJx&Sab^#wAV?llA< zA*}6UEVq;aO^i_l`$aeQAg$R81qZyaG}W0<$uqYW`bHV~j>c1nW!Kor-#ai0UzU8y% z3y&U6ZfLyhUjyP)@u^;=6Iw65Vok--S&7Om(Uuzd?Xr`jg{fAE@YJjuhT{1~z(m;O zr+puylyque)Wy9>OO5t%u{Es8>QmR|)(JMOgp@Mth=J**kA0<8I~-HW4)t**N|-HOZ)X|w+G_-^3e2Sic1}tx%ovY!>qn;U>V(N0diNiE-#1G34UGdee~hV8XL@E zrI!iIMtHgZj582#rnS^b8;<+iCUkHHQ#55p8_PKDn-LqTmykiMRm{^%ZecOr;!m2n zJ?XsNLhZlh*Hs2^`0TkQF+IBtPQtn7QNb9!^gD?iFV)~K6ZS9r=>^q{3V8||49jK` zXmzPPBC&O#7sqYu+=b4nZj!#@0OgacD-OUCA|zhzt{sRl(Nc>2|z0z;!Pf20|lBIPrbV%hD=k zcq4qS&p26&S|7RWPjiCUqOu*O0X*lS>EK*9T-0>=&?kZPjH*To=f(*Q%j9^}k+f`x z^;OVw(fm6nIF2dEnW4}ZDu-L{1yE3{G}W`3#{YfSd3`q(am}@)kuKZN^hOs}-G%i| zTPCzOgC*xu6Cys(5vS`{VTE`Gv`PRHg267dEaq?|9~o);POyB97W1{yLrDUu%J}mq z^KY4G<-b7GJ@Lim=#a4qc|%f^W8q>`?Ib4?$m~dK+%Yq$=D z=sd2Q2Qn;R#eEKo=WGQ2dz8e~Ah*w4n6QHXt3K=iKFrALmIET}i>ih&r%c8jUBHDB z*wBaR62{T8?gkSX^v-8IQt8O53?PM79JA+iQ|*gT=YEH}1dU}|vod$!u_)hCoB(H% zH8P0DMy{-*Sx}%UOdTXV#&AH5KS*3^{3)>wO{PS2^31HRm^=t6W)FVH+L^&gq6y&4 zDVAumQ$o$G-kNBxmQ!VyY|XswyGWt?Q`O*@{_sVYC~+PK_4sV9QnveY7$+*tB4X{z zOK>@ty{&e6wswvM54|oKB+Uj}jnYp$k65>3Hm%OX*x}Q4 zwrgDDJ&-T-=f1LsV&2};h|093m%-s9Yo>UDK!pQp+wo<)VVT6@$ay*cmx z+}2ibUF8s5b{_02_6+>G zbv^k|f5cPkyMki;Je$#*l6T&?{cGcGpP=QWv^MbRm+7wSj~@8#Z#Ex|4F9&ab-s@< z1i%PT4>Dl03is;a81t7~d%YHMrj>gww2|IPa~G&VLiH8nLiH-o|8mX?;* z*4DPRw)Xb+j*gDb&d#o`uI}#co}QlG-rl~xzW)CHfq{X+!NH-Sq2b}-k&%(n(b2K7 zvGMWoiHV8H$;qjysp;wInVFgY*OHO{%u)YQMxpiL9t1=8LEZoJ`tg&7hUVqVmqhQW z<>lpdb#%cVKC0>H7NY$1nZge~{fik`+}} z5`HN!%F4v@02&4gitGXw7W?iu8Sa1k{?C9y07F3|5K5GO{^E;(MW@|Wn)Wpi{i#%v zL|OW`P`u|BGhJmFosp!%A%v3UncW{~l=8K^%d>jpSPXlTBrCG}6S?d*XSyqL22%xn zk%*)!bB8k|KG5m(ROXH5$Y)3;OI76q3)CwtW_zj%KqdNLLx`lS3pJn+NAh*ts*9#; zY?gYO>Z+|_BAw7ylY47Q=3Cx9@S4$z+86t3_K;rpMT{UUViXy&GP*a^Qg1u~IZiG2 z)9(YHghL1N1Yvx=(diz1w!BC)e3)TavxAIpI5&l~Qy$abaMlijCl!}(6=Z!KRN_Hj zlc&X~>sQO1ts~py`gN($S2#ci{}37qofItbPX3zR1_72PG!BXY>Ot2wv>E4(v%Brq zdBzA1H(!g_^@Iw}oKgO4T!Qg3E$I_ycyy>Q&{>ik3vTlYj;-%tD4piL2+6BRBx)RJ z$lpL??$4R;exde$M?*#P$rpuRo!lk&nTNjsE) z8$q37L8(})2|NERST}+on|57VEad|IlP?v|xGM$%O_K4RXzYsM-Z#mi=&f&^G(M+% zdFwf!1L*RlkBTOya&xouH}eatH#ZBwr5$uzg_YwLTSc|2`CG+}r<+?Pt#I_)rR_Mc zx68Vy3bxDpIJUMchQ#Q1D#uh`?^I2g6zo*bIBxCKECkT+)-K1s-mP2DF4(Q#uHM>h z*zcgKhP%sZgL=J`DC&ZR@5Z7$83XwiwIqai~EBpkDDu~|t5}$YfaPVe? z@TiNd7x}PTJTRQk@(hB{60=;hb zy$|isoQElRcV4UpFtq4TP<%cjCIDbxLU^)I1dVw7WX?@nZ=ig&vV!+$%5RAYeO)QE z|6(_j88ron_@2`VQ~@e}QSTpV%>!)2I(8aq#pQDamMP^MoI>e0U!Pr)M??>}Qlo({ z&J@u;oUPaF@n7wBGT&YwgWlZUoUfJKg0Ii^Zf~KGKSRMww8G%;zeAAu41?R%3dghW zjUM(HmRjNqlIFe-Uf*Xp&aN-0uKT{E$Y}`T5^b0X`+hVsX-H~aZ8-J&{w!f>$fgos z@u&6!xcbsiow~jfU+xEj1(DOy10~wY@ehI|WYRI?y4tCD4ua*w(y?y+qVO*jZMlgYpbb#-vmAB5Y4We~1Obn;9cL^$_l5TA8*@?RcA zzC+F=g_rCS!as}(lF1~;?d}reIeZ@#mPtV^*)64c7#-i2NyXXSE$e#t;WKg;jksiw zV#49aT$wC7weB9(`ooyguq*~s$zIK=!`RxsEGDP!Ufs*XxK`wBmO#lq1N@`-E}3lB zxb8j^o}*7gVcBdslKmE%M+p;s*&H?9{noBWi3`X%T%D2wZxfD^)@5>dK-~k5^+(D3 zVL30>BnMrmj#AFSeL4JR-GiQ&N2yRKxq|RgLq7P&pAi7LLbyFc0X)ZP=;65{)KbGC zn#bvQ{kdYCJ;M>M#~Gw3c@pAMBhd-RnKXbrDYc%F*!trvmhe0oQ>oE}spD*}{ybTy zp3#)c;~YVheEC4Bv2^^CTnRwFVqDKyHqS|(e0aWcjubFo^CVxrKVP+`2UzTSQlO7g zpx!ApUY>ALXa*?I1oezp*Pj&GgcoS9NrCF8PKurT3v|zVK+TsYCGSuQ_2H!_+VD?H zg8+pFxV;k{Jf~$*;e|%j(vv-!r{(eeg(jT6lLM}&6`xUx%*3UqMiNdda{)ybYQ0nA z^`}*(;f_U?rqa_>Q>WFn{YBPJz0-4-r!}o8#WsP`GmH3VwOxSXw{g8Qt2}3QL*d2t zInuM6nrHPB{l$(oy|cTnXAKJ|CC;7FbB76Mjq89CS5WWVY5iH#et3!dn)LkT)LHX+ ze~IT=?>zYOtOW|S^c}p+0vR0a{SbnJ3?ax6f(#+Z5P}RL$Pj`IA;^~y)=T0S$I8~Y^`s`<8HCkw&#GbnP9Hfwi+wZo!TR9^B zV2EwTYU!E-{BrRmDHiGw#fDl$HzUR&1d5GL9@ea2=e)*pI=m9-BGAt^<~*2GxokaM zkJksLa=iSy8h>8tu7nvzMVFE+Xt_6qX_B<=& zj=)#IDJ*R6(YdGnyyHEO{N7$XdZm2cQO)mNx#xjE7`H0l_B@J^#T)$^2OM?Sig33R zf*Zqw?1UgYp?_>ARQ4~}3BeGYw<5@v`r!60!111cL60c)qn7!Oq;=kgH&7bD+4mjQ z?ffe#YFUuD%pzvuc{`14S%_NSB2L5kx0i?rkaZFy)9|m&G=#4II={3r!a07-uffp2 znP22Z3{f4Z_6!vbBo9ar`zb&C2sX5q_XzkdvqG^9TH04~f$oMF$K4Pc{V~MkKQvZ$ ztLg3B4KY~2-4H`=`tuN@)|iT>f+CsPdMM}!D@tO;Ss^KHbqF4#02SJg$ugq|j(Kbq zJ)egSKC{z=>EdinMn~D<=-q=J$`!;=PpMmpRbqmMTJo;B7;>1mx-4@+8>k!)kV9by z`h#XFH{H-YoqtZZ2G0BGhSJ}u8l< zl(;PlEvY6FP0A8VyEBqyiW^5x>)Pa=PrYmMX?;x<7=yw={t@YDWheVFBCIh6VWJI! zGY7mBx=VBj2}srGCGu31M!9hCppD{Jf=hG_Fd3{gn%7;X0o5o-43cU1gJl}_|7XoF zmWZ-2Q<)|F>GKY*fwBmvz9r(T^G-q3@~A+WWpaXxE(zK4=(xURD&C83`H1q5IWjAB zS{FU)1Ld(beJf0X6r_;x2N{3=+VMBI`OEmjmC2CXd&u&>{gK-CK^20ZwjeYDHo8JL zny5vBFoqeSV(-H*Ikp`zz_mjmLf-v@fsp`YsBXbj%W@M;E~qd4$X~8mNARdJ*#-!Y z7#xaTUdfbq2?U0fkCQ)Tk?+<{bZ74|j4WdRfJq84AC{y4xDi4tlx+*UB`H>uiP(kQ z3Z6A@A@WXQ?*&ASxIEI8A5fwueht*kxUTBv*P5*wS9>tTz8sEr!}W5p?oXe2emTjD zb6$JluKjL<4EG~3u71Q5ZLE5PWmE=zG30E3ZYkE#%5hcC4uxZt-;}6vDfYE4Iy5|T z)Vt%);z-#-QqQC6H*4k#S&fPsIC)1wP9!yR4dOdjm$@*hCo8be-drE_x+Palm~uu& zLC<4E38sD@o)s#uX=?c-M><6>vD?vEcSvUCjr5)9it3#9vr4fuE_Tp$UkBHj`H*Md zgUAhg`2#^-lx1u3ngI_sQ*#rQ2s4jf%~&CGyBIF z;&vTucac5>^QVwV-~Y@=ANUV7{@gBl^-(M0J7rc`6EFJAWGfgFKz*wm4Hx}35fw>m zGHX237X!`%6)9(ZYy4LigYQr)Kf?pog$OQ(tWh8zj*u|?zc>s}UAW(d%y}1vXS+Ps zg+f!?W`e={8G&y?4YmH0J*h;%WbCYeqMU_ zA}3q24zWI^uouZgp@1G@;|#YL;CPdC(2wV(?a+aM+8kZFkH9yrwGJa0 z*BgXHDG+{fjc#HzhoOBydNyJqPD%~#wZfucoAqE8sp&D|wK~t0H@ztvCz>W?A6Jn^ zff^5|Z+^Z68?5&Bw~xsiz^R+#mX*^6!!&^FZfKg;54oWERS!{@G@|z{xVWD0`cm;< zjJ?t-J^^Z}Sw9E1F!NumJjAeRg+dgZcgfVJqhNcGoyyYm5O3&KIaiMxL*vXRi321y;OsY~aZvSMe2Vza*o3BU2zCwU`Qy2bYj8 zSA6fCi~T|z5bO*-?M%S5m%#Q=9Q`N3|)E`GgsMgmtSpRl1sm?SCW}{LHhW0yx_jabAuCbAvIrG z250namp`n=6T#l`ZYO+Y5yn0v&Zh{KPh6D(+1tp3>(o2&8P|;xw9_7`sY*|VAABb5 zN6W~R;Gm1$3pxFmzOg^~jX7H;%&5>{!6LYs@~wg*+3&;f7DPmXW9djIxl45U3h#Ty zEWUprm7=sz$_eQRTR|qL(w68Ve4+v`e^Lb;n8VMS3l)vyTJ#uFRzg%dXPGT zS|2Q42gTJcSuwc8(Z3Ez!ENd+4=+%tDztz;;xGMVQ}LD^Ja_YUwF-^Nk@V(4>n)5# ziio0PRcm-J+~_$k8f$Fv`_L_fM{e3pb#S)n zFFmDa4^0AUsWg_1vR==f8mxvhla;uwZP8tf{99r8|AhGbPkuQ5&Ey3ChbL!{Y-Kub z|GF6O<#1F)WhOOXLrUv%Bz~YWo3npI*6niiGip_?IABvT@p3Fzwklt(e^a&L5?C5h zRcH#>(wx2=uN|l=cIw~Ky}AUoqE?p%0=5kZt|q!-5#!`9MwcS^u8r z)zv%{T5T)5?7k1d^#X!iZ5!^uegNlK#Bx;|6cqlD?}Rj$Fh0jGhZl&kACLA3gzK-uGTf}3>- zx%!c~f#Yo6n+^HM`mr3@lYFh4P4&V0@tT2?Vz-+ueYA#&PTAA)#G7q1xrQmwz-e{E z&5liE!_1oOS^f0QuJd5S+}Xfc^VQAXJG90Hc)9a70`Pv2T;n3{;CTlx_#i5>ahY1~ zqDKpS7(dv!$~ky3;08YWjMlU+E_XSS2tLl0YuZ#Byc}-;pOi*6ZJWwnO-+MOYX_Tl zod&PwuE1xlXwCb9a@UIlx984i5afX%4+ME2$OAzh2=YLX2ZB5haAeIMWdHx^bZ4k=?u{;pV18I5spVsmOK^_S5K#&K5JP_o8EVdwvEl9EDAE4M0 zf;nq-FcAN6X~;9)omCXpOqIyHtULa zGjlNI#5Ba-jZdvOe|34r_-01Z>sDG{6{Yt7wYLGX*!usv*aH6n;>%rf&4+P=*Q>m@ z7ekTF$2oF0n_9P*6Z39@Kb|##G|EGsHTl;)YXY%95c~7TvOje4zoL-VcO{A+D72Z_ z_1h)a9SVj1L?N@^p%C+v_az}GMXwHsCKgQDi)Y`sXlE3l*TA)7@ef;iV;j%zuJ+Ys z^%dCw7}UbL8tcKRo@DmgH-w#yH?(i<5Z7mp1mmJ~vk@Go+=x)za8$k}aL|jv5~Ht) zH?|YKG3;&t&uBb9Zd^BxwbBl!W}&82Iww7?Y)$UDYBdoWp8`6c^?m~Jt513#qe0z1 zB6W!k7IZ!RP(%B;>y2-(PRVo_5e!(OX0s$ zVFf`U2nzj!8K1v{LW9kxHH3pVyKc8v3urCpopRvA#M|q2xt2@NAo%o(57HF_Isby3 ze?iW_Am?BI#PhFwdG5t`>G%%05-4#BkqKkjmk6mG8%u(*n#wtv4h-*mpNPoRMny>~ zB@#a|nn#-C%;#CiH#_NBs=P!mrt-7qFIcC1F4P@4K3Ztr|61N1p5t62{Pmd@G3c7E zy$JfiPmWECR8*s;f!oeHTt^N{HCRq~E+*f#-%{?5o?8ALdIA%nG)c(7M=OU;y?CO_ z-m8`Lt6#Fd_e*h_)gJ6Atx35u-@o>`2@So$p0;{Z!~5ahG_^e}{Arp>D}QgAwsY*2 z^5v#?8B?E)F*%)WMWbXNI1#fI=|4RKVR)*x1{s^$&Ls{VGh#QeCYhm_A^>Mha4W9+ zZKQn&xLc6+8byz{3E&IbVF}uU<+Zf{0Ho2th>tOhJL#V6GD|7fAd1(7Jz=l=mXaDV zn0R-~qSPKQll@<-(jXV_zh1omftArcC#nBkPHMQl*^g|wUX#1MoW2F054M2M25-Sv zcaL!5y@TO;2dn-L&iNfe{5z!DcgPd(P|x3?<9TCpd1I@40?k z(@ozWH;!Z3+&#y;5c0!jk-kPGsB4WVt;AAg;0;}xzqeUyDpMk_xrB4U)kfeGvmofw z1-OO@LvaSn2`WpW72=Xosj<>Oi7gh7bqS5h5vG9Q5QLY9!5H) zN0&Pnsd%XP(V-#n`5MmT39Nq1IhzsxD|1OnNgPH8VZCknVAYm{YBDjSIejnq7IdCs z&j>^C92mQ<4%U9x<+HQ|vyvarPE$mHE=BeO$$U|(kq8?Z22GZ$U~MTB+}bR@B6|!2 zkp*a5&vxmV1CH3n-Y@LJgP|!_lczvu7`t>l>1486hcH$3b41<(3o-e6Im%S%+5-Iz}b)y?TTuq^wI!_6V%{$Ss;32Cm;C;<@l#JPlXx#XxcS^M9il`F~}- z;~yNv^8R%o#)9X|%H_+Z?#toq%N6g-Q|tR;!k7QtR}jxnh|5nz-A~NfPa@t=s@6|t zf*)efm?0ZV$c7TKp@eKG|EU|w?q8ve>Ibwb{)D!t{|2;ak3>IaL{K5J0aj}++iH3s zs9_0lrm7ql;-xK%A8BAVN{x}dc6hDm@t0*KGW}mKD`S3JR<2^j#(w;0Jgmrh{0+78 z6R*jIB6mtFl4Guz5qR#^p8@Va!f%K=QjEBDLo+k$^%p##W{%una$z&t_pz{xSS!8X zVqq*tDd@)p-#aeUn%~-0>}%|L4NtXO68AUE-)!86#SY2Ge}=_!r+*(7Q&ejizj=*9 z`$^9O2fH1tvmo}+-2mGSF91Q-MvgPSW8TH4CM103mAHf!p>S;Sx9>JWqc!r_O4#k} zNo2~&TCAvUV_oQ!Mbk2YLe%tt29bbgD#nCk2Vw)IZ5cKgrdJ)`=ngvJY{|jcAXTLg zZO3U(jg6%n@WklJ+Xu{iX=haNMdPzsLaZD$!s=w!@e_^0!B5!I>aIJqXaGea``K(`>Q(ptH=9m*7|Et`0Jkg>*EC&a0M8t2beeq zn60})@D74^(h$6Z;2i|-{;7B;y!1-|tpoPn$*KRuJ7>bb3ZO~$zrV-3{-B}U&36Tw zC;ukiDO0@8%GY|i!CU%e&_cUm{;<|joy-~~h}u1U5{9;?ezyOUUB$L5OsSMRK5J@e zWo9N*Xl#8NvtwHS%(LFOp7HlMu}(|i?Prrb6LR?PU4s73*(1hg-%_AiaeYu zN#3?+WoBQta~x#Pac*=1~**i~$4k4w_jR~GF&4M%uEIuPj`%sbZ+?NnE1vhFhc zlxeydUrt|EIeY)rDj(T8XIuDDiTg^nWk!(T!;Grn$s|*068wp*e5a;5t3t&2MD?Xv zW>eiOQXBXY0jO){cgq?kzE7{`KWeE~E1b%~ElfZ!<)MU?nvBpQ@W<6@5oeqcaTA+>i)Izpa?Ci8MBs_|$)s>;ID#?Yg!#U#H ztg;mR%#kwi)^SpmTj@NWC%IV|eJFgUk}$_6H;-2&A9^{~%*y^h|&GPgo&*(*RH=znt zk8CwOx>SD{KIJ0Z-wfX+N)g_{YvGB_apFr<%l!&`&~D9(VoKE@tp|&Usb*4Fm3nM}?Fy*!BTIb->zavf$HwC2hOe|h>Z@yFADE9LzK2e7Lm#z-V4b67rJ zj3gR0y-iFb93cqH*)ECk{VvtVX>l*``My4CzMOJ$+Ix_Qc-HV67%tfU1q=gt8y7xq z9yQ5ll}3h-FL_vFH(XJ$2CirO~g z>F)S}txYP?42)umw@kP>kztm-9wlYLgWb&CpQMl*b#QISO~Baf8v8l8z>@1mjH#^c z!I9v;+lx**+j3(9Q=|;_KZ`*|Lr2zy8&|KR5z{|9}XH7v#egIMz8hK0Y{s%NK%*5LASqA_Ns7sQAxCMdOuUP|>G?%0pyC zF?3UzLyXB3{n>XRAu52Ct5K8(Jq5e?TS;kEwx`B15}K5BQF%O{^G)0dRY}r+Jlp(O zr$ChEV%R-aq{Q7UfN%;ef|M~!7asL^RBQQCMMVudQMvcQP_xyLO|c@3$4o`Y2xsd4Zy~UdYC9Il5;DR8_9%B&_XBvo+tOw6nrXg z6c~EJ3z}k(6;Nn^oTHq2_RW;*wYv`Wo?XVmY|b#!gb`XvToJo{8O(}?;Ui)0R;6#x zz~0=eU*@Zx`0+bFe;deYG@+{OFMXd9+%(PtR0cf%c<3x$Z4`O>DP5Q@Z$n<)Ou$Yo z%{TUYDsD39TIez@EQKu{+QyLmYOD4A>%#rb7f~=Ia^+HumXm^ny)@%vnZLjC_`*J= zk5m&QhLKHc&u*IRK7vxf28wod2p7lSGJcdZnv$)7FIV1S`I2|)xtn2SJ&o=MZG!2A zQ((>4|Dp$)A*lFwYCZlF=c@m)Q;L5i!S^3t2LDHF;qOpU_TNLr+Tf&#;FR;=&v+r} zTp^k2A=%C$x$zCK_d`Klz#r=3waX~@+KtYO~{+FaiVEL_Hh+y6sYlV`sU|Lu)%6?HDS6qTa(dm z0Hr*b}Qcmd(WQcO7Jb$QYeM@R&`$ za+O6JaU3wv^5?nkq{WYOUCQtD`U2z=@6&*!{#nY@d7Dsm&Aq=n7%BgogORDebcGroN@04_|WVTH;hB%bDBWIL!s^Vq>@#+fGLcKV9`e=0`mnE+H_b6i3B>F z{q*xk<+4JXfLD=1FE$qRf zv{9pJ)_=`-YekJ@yMfMgi7=46aJV!?5epBLjgj#a9IA@v9CPI!Z##4C+*WX zR-&+74T9?HfxYcnk0#w%DQ=(WU_~Su`RA;Ai<~>hsgRrYb}Xukm1R@;ZwQO`^u#(o z3sV)5s2qkN;Vnz>bq$gVQ^?K$ny78A* zcAbv4!iP7>-89nod@wWTPEnmpp_ul42(A|pG z!WBNI9zO0IJ`o>2RU0n&7{a2Eix)^F5)z4oL?ZvGk;p))v2^^CT)>wcz~uy8Ho3#A zzjNl&-=#*$sv0bn86fLH*G5bY43z%~puN8VXd1n)KsxBXKakWTOZg>`j`?@hG3|d- z9b^3a>KK2G$}tp=GAygr2#sdt>f*}MMzEHt2Jh5(_{hh6BP&bp*OSF>;rMTmwapP5 zn4YpS|AUgVMBgq?=ErLMH_7SE>3_ExciQQldv%B#ptoYgKYXRO=-KfmVBdp zC;xX_a?htTT>T+x)&qB2a<*sczuS_JCXQ@1;f1nb52_4@^hG}$Z=H3$^PRQ&-~QHj zD$OjS-22XlYtFXrI`n_?o$4#-C7?d`ure^rO7If0;YA{~Jw+tEwmzxvYhUy0Wcak+ zi7rYE8-&IR30Y!xl@5+(#7Arb)X}9HqqZEeRv-+t+-< zpxWl0rp&{ujUXuYMRgb_dKtz=AqDPTj6E@!lJ}B z?y0>#*oMEbs8&cU2^K?7tZH>$4DXz}o0cyrYpp+l^{#q{ zMs)q@es;0}Ewq;NWGwRQ?+MYZYHGCiyl~^dQe|2Kw zZbR8}ao@?O0>1X$_w*Uze6}%evBQQt2{Kp15uODZo8FzhcN&;fy(^$J&Cc+&QFX&M ze5t?sYLD}!o&&4>SMSg<#$$^({Vusby{+Uitjm~UP|%&^ban|@cX}RAcX*1K zfrkw}E^+F_ntUfY&0JE~ZDvP8?j)x$eCUSIz2u}e4P8zTuD@f^Ae)jd7G_hiX1seA z1#^VaDufwggdlTCDzDjcovGC>tFb#_JjHX#&kdV95AU6@6;tD4U!meuVO=p(r8nYz zi-$8LVK)*Vj$!LCF6o9B1r04y-ySdyrEiw&-U{XI3SWuQ^WCIHCkD(XW@@dn!2>wnq=W z1&7^oeW>IL^MA_9s>H_WB5jBbZMtNb4sw;NF`x8zJv?#MaOA&us8<2+c3G)c3GzXD zA9Wb#wqE;DVp4DN#0?5Zbv}mk(m1k>`~#atY=PN_GHO;gf1zO`w#aO^>GcSs4wEwk zFP2pglv+Pp4$nGePuPdv>z!;k2=S;i-j0(dOiOX}V$uqVej`G$CQm*E2F3bux*;Mc zY_f?hiW%Th258&9J6iS*dJ?Xd9cP{WPBJgvlp}u2*V{$IA_p;1CL`fZwW#kC#wglP z^&0*kY31M5`b(K=$}E2XAo%R%Vzbi_BRE^2W%;U4`o28(4TG~-W%o1sY9Yr(Q3XCr z>X}R$xiEj9{gK1iie^!W=<$cy+QiN7;EzvYA4x{-vnO>@#mtXJ>Awt!6SXp(2-v3* zejT4`RvY~W@AENkoFbbwT{<8#)(Wa8)wLpZpqk^Us&pI9bGRvny1EqnDfd(}OZF^f zVvEmsD>{f%5i{jc+aJ;h>eGwyqADof)~NGA?T}Ru?mb zdfWwh{5QBWC3swT5?BV}G1s_*#S=0W@g13_umGBmJL?<|XzUC$!XKqYk{o327-T4E zX49)>ahmemaQa}SXJ=BTOXDU*$3NDPGQh`BA6x(A*u!gNk?l!mn_4UO!YCEI7Q>%e z>AIK~tb#lBv~``04{pvoiW9EE;Vb0 zsY7!h-hFJ^7!+Hv3s{G ztEx%BWU;t#V!=lI##(&Vq{fPUyuum>ze!PN4P$t1yP=Zn2hay$nJPMFz!OAZ#ROi@h~T6Y4Omk2)f=RGf^&lLK8 zQD$sfA*r6zyI9ULT?K`hQJ*c0ME^u_LgBzXLWxuGRqo?+ZqZBb&!`EOw;R>4npSN% zfpGQ22ve^{LYhOx4i8F@d1I zm%cI8*(o9MZbK(OPtpOP<|&a}gNS z`MM*$@jNuMkBjtU#|N|55%dfnJ&!(&9{WvfVK?UM+#DCQ;}$+)<1vt)cWttX;uTu7zim>wQg&bp*ojga23TOdjOz{8_QOhBRgE(Vjf^a zkmh?*)AFPSJwfzgg1u|v;M`~pSfe=eAsdUspns_73YVpvYo@hfdh22TLSb51Xx-Lv znmTzMQx)lYs2|1DD`cydRzfUt@p2Vu2GpCO&B?~=WALz9c|Gly5k>DWC@1xl?k!Y+ zQkt8F9>vl0UOLpFQU35zrk9!8?L1P#W5PS4;yPmzfHCPE9jTi!Ng|*O3Q&m=C~E~2 z(*bIF0JV~V+BZO5qHzG@xH8JPp~tu}U|hX_lz(xK{qU+R2PtZo#1?-^J{JnQ*(qp&ZJb(Sn?Zet5&Zo6o1cXoSdV0*-K zZa{ZuSat{0ygk7`9&#?XmsGiC$dgGdoH4tIst<*>znJOhJ4(CB$Ze6dn!FIvS7wyl zPuMdUwx~!@`35y5^(yE?K-8J8Ins*%`le(sTUDw!E8DoN5)*E>u1$)po#au9F$L>V zbAR?O6bcJuHs>sv#qIdPs(Z-%dBp8`6v;)jz{N+si&(FV_|%JpmW!nMimibx5rLaAy_<2bn~Bt$sg|3W`J1`hn*|c^q5ybV54`FH zUQY#Ywt%~B8d1rVV@{2OGHxwQbax}u1Li)>NNX3QCgKrV7HoU|D?1g zo5JS-hQ(K2mroZBCl*am-cZa2B=h^@t86Ogs}$*eOHkQTE!JuBd`O_WtzK^2pCX#5 zx}#ZbHQVe@pth@B@31rXEm3Vxx7p(c{E$$6U%$;Cg+we#{lK6joJb&mP~*_3Cx%h4 zBT3`PWFVQ(3k*l3d2BY41xOW3);zHoFVblVAksRuoT{>#??~1FuKDSx? z7EU6bqJ8mpwLe)PkXYx^eiK-v*O{Vo<+wZB#(3O+y+VR`uw*QoR*Jc%ER5F&MEsn8?lb{1h2&gD{J zGy&LWA{gQnWg=K|BF{u0s~MGv;_CT56MJHsStdsCru~^Xk<)USIEfc5s{~mfMY+V& zND)>^$~dEPN$ONTRw>$?%yKFEl6F>U#+v1FY33H#=Q7VaDJo>14~jeou!D>$0G#uF z&t=g+RHVVYH?s`cg@yPA&EN|lV}b`92&-P#?>08ss0?A<~do_ny*W~acEi9tW;~gX?e)0ZQDs%qir`R%BkZ3 zGOp2an)m0_by>@*(RJJV#;NCVwo;?#b^DM@-y5E)R^Jy*jO&#@u1W2yK#~A1gJA0H zT7yvL4lcuR&edAONC7x*qxa%ebw(fL#JG)P)J*D(8NXd2YIp( zqWvM-AENys+8?6*A=)3J{UO>PqWvM-AENys+8?6*A=)3J{UO@_r}p=5k^0JW=lr!r z#>B10M2g1dRK{eJ$K;yE6lTZdb%2UiKxGf0=AH8oAJdwpovQR{Fvi> zvwxBN#{KEyjKVZ_Ajf2oa1qF%3FJ8odbb1gE*kR<2YKB&f51er4&E%GyzS1t)i+31 zdGlwhuQK_2s~@>TU`I4y$|(64tB*1HVHTrPvMK)0R{vh=PuST`<=y~gc7QrMGhKYZ zj;5LJaA052Og~^|2+TL@@$dM2$+@_Yxqratlh2?hPkmUi{EN>goBq2#-{||D&nNji zKEIU_7oj=DzaJF3vlK$K95A~S$ha)Xzbv4;EMdJoc%A=7xZr99+b=C ze#F9NMAP^7UjF+Jd%sT1esAyV|77n0DV3lXeVyRCNG@}PCp$6O^14CADIX=2u3RXD z4R<~+%>hPvch=}*+4eNV$Va!PE!R(mUZcF)*^-d^Nws5PAln@)~cDk}<&@M-t+xd=&ut#YSu_uxR6SO8I3xJ_6F;hIDz&(uML zb6*BAA8RY$<$*Tta@XaiNkgmxtj%+g@CzG+)XkfN_xVW6VneExf3zb~NN^t#+=m4B zA;En}a32!fhXnT_!F@<@9}?V$1o!_N2lvxP19I64g~xQ;MMcBM?y~!L!F{otF)0+F zWYeE~J>ysd7j{k}mCEd>)j?xn!N{spZD}-6Q|GP3ow6Stx4an_K>@uc0@-_vVv~)V z4v)g?12sg)N3HD#tOqQX&dQol0l--xP9UWUczC|U#qO{ebwGN1~d66Z*&4RjLS7O#%ts^cOgjx#X z<1@@G?8wYpvblB^m-aLul>bZ^?@(yQKT!PUMFNkaY?XPhj(s9pWzJ${_;+aAsWXn- zWD-*1MJ&$A7zf#`*vjA^PX1yCO7bpR-?(xgtsh^#kJcwG;NC^+8P@Ki_28e`dPUDb zC*3JepOv54dY#>scOlbNH|qeDjY^`8kFubBM%LI>A6+vZ6JlYVrpbFF|9Sr2$a9Yv zzPLB?Mt?H$gD>Xq^7Jf!%F~zqO`e{Z2{&|LJ-!nd-JW|V<>O^5zM$ap&HhQsXHBr` z4jx+8*wCc8&|6{|U1*p< z^qz|kQWv317WLhQSW?h;Z>hjpz+Si#un_(Tn*b{@Wu#l4Bu(V-dY$F|T8Z z)MKfZW10D5+1q1zk`qON6J@;Z5G4;$@(?8tQSuNa4^i?ECI8<~$%l?Eq>qO5 zj>1Tf@;BvkGP3-+0Ed!q%vfU#%XTa)ZVaDZb>Hnrm5nIy_n~*`B0|8<*z=1J@fy;f zRW_!>&3B1+b;iiIH^cWmHa}}@Y{$)ZA~9xrF&(0Qw$#8O|GA=OB93nIABeQWOn9S2 ze4K1c)vECPPyqcJhtu-kmgeo7)BcDvBU*_FU<&;nzhABS63C8hx?(51im_5Rck<4W zTk!$!a^-i;GtWE9ekq>8nRo81`L~N_ux2jE=9ZGfRv1l^Ye=~o2E4pGK4~XfoF>?~ ze?>0D_*uLh~0B$-_>|H8+BHjWYd~7NG548f6w3ae11TTGXfSGwE2%)7QB7 zl`-~rf%Nfpok8$l$DrN3C~4OyaBZmHhIh*HXa_bwCt?T z9j|-t%G@5ylAI``?JB)FQA|Bi5!h85Jb^>YAfUK*Dq{Yp#6h7uh+wQ+x`B=^ru6@<$UKHB?IJ{$C7~Br!sP}NrA}1~(dw5pm zdRC%^J|Z;(_jVt1{tCP0>ha)J%ia~9z;%b-brH_0`kSG^T@gHxTnn3EW4Il*F- z^IfRt760%Bs?DPLb;s>2kl^aOtM>fczK-76vhD=YiC~lE?5D=WP{dB7qT1WHE|9eaB0WtIp;1hi zj6r5hhaF-~>y4!`j((wTM<#-Ri6>)8i$y7uMD5fjBgnEU5r?k9%BYC};|Gf*O)L{7 z-!@((!1=o_okyQHUl#wqOD6{E*&AIyw-cC!N9s27Uwj^1QM%W%7<~15EZ|7UUAElu zfl;laPyNVXAd2}7ST)Rs@te1L%;}4IEGUa$a&gX;4TmaFntE{dw`2lC@ds!;R95kE zGzwX=b`cD+&tPDKTGbv2%sH99P3Tg2n#40)2b*2>v^mzgv2FxmRwX0TGx21sN=;3; zsYvTbmre#zxY~V}&e{CWE}ch>dmrh-*@yKN_bFD?JLV&mrgs2z-{qemrf&sl0tfG?RA0lv#%6bGS46J9!ax-lq&$t^Mua< zT)jqMJ6Y}}?NLFJIwaCO0P#}uAh+;!EL-?RI^(Dx}*h;*RrgWs==~i zP>k2A3S`n?RWl#JYhAaN-C*6Y*TMUy>1?&(P0KCZ3!5+S)QvV@(ZpZae#13wwCyAb zeDSuMI;Zh%FLUP$yME5KM!P`)cs~1Kaq1@fQ8{rw2cVj1lLJUEkk4__G^fdN`b{UF z)2!24lheExJiqhzK2j}wq-i^th~pn&JaT271S)n2E7*Ui~li`VTfygt-JE<{q z_X^pVOBjEAD1fv56{uK%L$*M0F1FoZ~lAfYsfh)B01 z-KA0jDj`S-NP~1sNlPkSD%~;U&<#U_lG5Fbhx@+QT6?dvzu(=DbMJH3`-k}h=BL;7 zc|WhXF&HE(Wk?cRCB?!&7_91NNR}li&8|5ZqSb16qr6I*({b?qbEpwzo1hGL++e7w zlo8cvl?;EyVAvZ!Bbp^aS>dt4aHm$ITZdJ$;zxrKo={^tOd&am8$*$SQpODA)p9cY zLmwjijG35)4*6}E}a`sV2Rv%pbq9h1Q>D3Zn{1Wba zsQ3B0mZsuF*zPB~Uc!t_IezxI?U19G^q)HuZTGX4LX8Uz=gor~nC;Xx=zH^2oVtcn z&kk~6`1xu8od7xkbOPuE&x6%EC(dSnOhi^HrhY?4pZ`S?T=noJ2?xu6a zKTGeohzqu=>ca)DAxAh#-iB><6O5heYyIeB3M<*Jk=R`#d&zT1`N%c*nV2154&V#;#=IMV&sbJ{Y zKXV>S^7?-V@}N@ha^2pqySeFs(H_0-{M>y34fZvU{~bovs#XLkRjQ)v#{6%SI7hQa zj0nrRY1*Vh9lsPa8EavUWiXn1}w+ZR$ecubm1&gw5@0;yT~H`pFzNc#}0 z{)+<+FU9SDKF(DRlKkrd2X5~WJ<9+6fCIT)aqeJ_^6v*6vYT+sUza#gYyHr!{_TK+ z+x{Kxza4P+V(7ap{Z9uRgzmijLgW8Y2OMy2M$U6xzdGQ+iGw>tbf?CkS&c3t z)cg)hjm*I{pHS_MPU+9aP>4*H<-s*sa>>GA?+OS!5=(!9yK7y^W_o3PBs_j}K2rDaU#P{(okc6lY+jIM zg%Vj=3#eJYX<0{Zd9x`_Qla^Mm(iW0S&0OE_Z>3S!yRAtm}w(@E_bl|!cA zV<0Uy6ZXMvZo|E1%6Irk1az%1zY@<_$i`O4Qz_z7PWi2vQ@*tFW!D&j?Z2Z`ieF}S zp7d^too5IhG^sHD6(w3ZPy92Hm&1l9?x$qLp5@)Fa9u|M{b;jPN<+F@RNI}Ucz;LY zTpXJUN7Yo5qlp*V2$ICb)cW$(rM#DhLTWiV?JgF19|L~secrz$G5?}PkZ)0t#b0g3 zcQ5t*W?|>$srg4P_lhrp`N}SGUh8qLn<=Qn4`w)_TW)K0PxC2e#0QU#Hd>Zb&8%qe zXbHXkT3fCsS=4r6Ygt?Dc*nehG3R`mXXe$VsOkEJ+E$C5fyhdNxcdbnT&^T#tC8_! zaHgELJdY#i{G!M#XtJxiaQf1{ST9h9hT=3*^-Yjt?|t*3-iQ~C9&S$M*mcMLjS+G) zc{)s~=Z!{)*>`FEoAnOoQ_o6=Pguil?Fe{V-;|X}ueIHcu=k*%Q$QUomLCl=G4B^l z$iz@Uf+%;qas5d5m7>zG8*=#+CQiS^6Rg8*hB9uVfBtntuzB;6kp0kYI3a&o$f;V* zlb&q&ntX1<`Qbod@`GDCeNypssDUeVVtB0?c%zCbJ6Qg2=p;k{H@xxXH*_Mtqw|}* zT%nVr8pDfLhMS{R?NEAn7$zG89rqKd5SA4kYa$L6EnG(YX!oHt6h?z7j}W?{ica7K zi8xr5mEkWD@r4@G%u&h-j1@<{k@AvSbnX;VC<#wJFlHw2V8j!G%e=QYW`8O~EBC4- zJTaM(jxo4XL4gF45Sn%O`ZYzUH3u3x1dfJorptPW+f@%qkt+n?N}afzZLw zx2nH}kM|`kU!ju~queuz(ogs=P1&9WtN1nVCvIv`Vo>3DdE#FEbt`4wxjU-rEcOiD zb;gpcr+w-H_oP|#*kqp8Xw0Y$OG+r*Q8W=A9{00<@F458ibEG|^43VsLriluf8i(T zH%4=1rOh>BYo28DkLIcRn?K1Cewwd2ny=Mnu3295^sD1&!E;Ot?KWY}lDN@AQ)vs` z(HhN)iqS7`{4MmBgtcnMM!!0>Sr{DFptKr}M!$JtTE4&((QdvmRum|0X-HnH-OfK& z9N}+i%q*hQr8!m--)8xWuU4neajY~A)5=U*M0Y4|tSm>`%KT}q?pVcG`8R(nOB0c2 zlVf8Qm2Fnm4zvoU1DaoZb@!`kPlBV^+* zOdBsu(HH0x<8W*l8z1tz7gz%0O@sk9e$1jTaka*qDcWrU`08E~IE}a5#yzPE~ZK#Q;(N`+uc)LKmZMZ|7(XHcg#6v8*NPkgd28xLeSsA;i z*g9htfr(Dl0K1qhQ4@Bpi7u^nySVZ?6Hcdz?&nx<6WT;yamP>en996O9IboBUpdkH zCg5%IlBlULa-z?v{cY-DovHZoM87AN{U=N@GYN{xfj}Aibn<#L8G*^chyeRcX0g`_ zT9ZTZ?e^Jx^{-W&CWq6o9CD?_%r)XCM{;Bw@}Jh5YgSHmoq52NfGGh}0;U8^378TvC7rAq9L8-C^zGf<%DiXy4E(CV3Qw@Y6RhwAD?Gsp z&#!IzT5lz=G#Qv#+0)0AME5=>Kq zX-Y6n38pED*fBm?o_;pM%rL6l#G^8roy6TNiS4aDZbf1PrficRh+1z$u=yN`<*nv? z3SiF%ObM70FePA0z?8*+DFIUgrUXn0m=Z80U`oK0fGGh}0;U8^378TreFaNjZ_B3Y zo!Tw;raTP1rGI9>Hu~i`B31v~acidD6Z^Koh4bE0Z<=hH!KLfb=1gPY?dQK=8k|F< zJ^$^};N>sClz=G#Qv#+0ObM70FePA0gK+BXJFAK^si#CAeOZLZT#0eml1;Xyr8!#ncN?w65^FIDJ z$-BLjo_Y@LIC!nQqqK^b#Yh9KUci(ZRZS^G-grznxQ(W;vEXlXi-0KsQv#+0ObM7$ z2QVdIO2CwWDFIUgrUXn0m=Z80U`oK0fGGh}0;U8^378TvC16Uxlz=G#Q^I}_BN?OF zZa94o-k1?!44E(QFtEc?o}i7B52)6Nq@j1rOfU;@fQ4hHV?BDk`RL9-B1JfBsyVYp zl`eGdK`>xSz?APOFNph?1VjmNjXho}PM?cAKV0(8vB9Q~Sf&C@xy(zk_;Q_uLD8b- zvC_CG9k~TyO2CwWDFIUgrZfah378TvC16Uxlz=G#Qv#+0ObM70FePA0z?6U~0aF5| z1WXB-5-=rTO2Cv9Y7lfxsn%V|4~ffaP_jTNyGJ|fqQ$VoSQ>SxwxQW>55f=+-Y)1i zUHpnf5aQj9mtx61z|F{HFO`SSgf;+}5-{bQUUj!Q!J2D_A3a{}iuASRsMxtDER;qr z-9It`Q)V$U`|FgA;J+&-wOS6>X?Rirm=Z80U`oK0fGN2FQv#+0ObM70FePA0z?6U~ z0aF5|1WXB-5-=rTO2CwWDFIUgrUXn0m=Z9hS~eML82|Q0#!r#a7}8A9-8R-VzES=6 z^`a73?y@lSceoLo)>_;fom*}t3kFBp*(EzB*6y%^8FW5UZ)o8+z?6U~TXAhIV4~ki zdvD08k8N7_B~O_kNxh!_7>+#k15BxZcl&L|{7lXuuJ#hqH)IcAC}2v!lz=G#Qv#;6 z0!#^*5-=rTO2CwWDFIUgrUXn0m=Z80U`oK0fGGh}0;U8^378TvC16Uxlvo0_u_PZd zEuU>vm{r1ENMf-DGiS`JBw|vsqf((+oa)RqqkQZRjU%&bx;gUWd2DV%h58JyPb#Xi zmV+Z~nE+D)rWD$r#7+~5M4`=lqA~SzKc4=9pYtT`7<0wh)*UeA56b?k_Gck+w@Ep^ zSo&2dq67d_0;U8^378TvS-(npNRO6$!-`A1uHYZl_;7w!xeAnP%I`V`6DBZiPCyz$i@6UPT zduT39UdAE#08;{{#8%nyp}v^MQLSpGxMky>*6l-PRMpC=vK#X30x+eJ$ofK*chY_9 zY}?>YRLXMoSHP5jDFIUgrUXpc3YZcwC16Uxlz=G#Qv#+0ObM70FePA0z?6U~0aN}d zOi2cqvd~vDK%Z(44MIeRlJio#;IqMjvb~RoP(v^}HqgujE}h+N*H1ErZU~7rdR~k_ zy)kQ?KNFv5vUrE?rZYAXqzNrco`2qLPTdjih0g3W=Sjm*ep{~6fsNq}8p+P=>#ZhM zZ!b0$wvWE};@S)@xesg%16t_IZuwmgUu9IjEiRyD@5(2;7$GP8G#xM{U`oK0fGGh} zE=!r<-hMSp>f^yUE!Z2PW!=Xgg2VejJ1L>prQ+aoyeO5}aMI9vJ>`2Yvi_%oAw5x; zWAGW*+v7@AFWRWKJpfYzru2w!fVNi{%N?I9Ma}9)HP-FL_q#8dicgGe)d8lwEgyLA zNsxbla}bI(*WWWp;00hxz?6U~0aF5|YyeCNm=Z80U`oK0fGGh}0;U8^37GOf!;~SN zwy+!J&eEKYgYP8a0j&>Qj`m>!c?a z>N*vT`tUZ?i1E8K;%PfE8p&s)yX!$+B12Je1yATAxE3KapYt{1sWKHfQI1hBi}SUc zB;vlt`13v8W!GtF9?grnrfg8}r_xBJRTPxRVS1}nyVIB~PfA|Ft_BhFt&Wjny`$rC zja_Um)ax!XxKA#h)SFt-3j(q6LbFk1fe**^tobuHorW7hp582nv6MJ8DQPpkq)ejh z;%xTsd8t(}ek2#5Mjf{F3HPa4E0u7$ZQO9?Pa#v$$1aMl%_XtL$*hb|^M>r(OH*0t zArDEpyxd(CB9xyYzsFIet4wUMLGJ(eT&JEnuV1wpeEu@ ztS0AFDm~I!qa>9zD?esM%KS_tVdx+>Kbe`+ii#A21_FV~dFlHmqGUd)5GlH?oBaHQ zJJQM*8!4Z~u0<~>TwwRqUiXmJ@LG3uQGi{cNn4>a%{A3{y9#=X`X!rY_z8WbxT!5M@aB}HR{LPBPyCoEh%|w^>*q; zzSy=go3Ta>X-4tKTKAfaYm_}zzxk!SsqAG^ok9UBrQ4t7$teEQT+SO`wR}HMF2kNv zHdtvoc&}lyyWGspiQ+~!?tI7#LOt8^8Vi7uU4Lnw+{UsEk`^^2i63uem9Y(ZT4#8pa=h(+fNiLWs1b?^Io>YNZX51UXLRd$ z9Ptp#F4AArn1N!VLsrHvDz?s;MPQ;+HNY+=OVos2Yobf5-7c=Y&V{!ugEynjMiH_&Q(s$YzH{iEs4ExMNZ8gw>vc) z*1z#Mo|^lG8zI;nJ8&q4ppfa zY>gVQLxuhlj4l%l^=IS;tP5Bdur6R-z`6>6bph)F)&;B!SQoG^U|qnvfOY>( zc%!`Pigk;{X?yw;>#kUL4T@&U0Yf8FgYcB>vP26H>c`1taSslL3ll%Pym%ES6gL=w zAM@p!Ol*%ocB!&Q%2L`v!quMUDgIPvrV!~Y(tcX_f?iRpt2r^>85PU%{QKIIMh=#5 z1`;{X!|rNVKN;h4(cyT`y{4Jan(fXjub>te73Mv?$o8C0eB#HqA!^OlSFS{fm1e1Y+N`-VFID+u zZu2nDY4hV6htAV>1JlSwygSASR}D?;{d^ZOg%Jkk(XMi@w@Tg{L*Q`CS8H=1mp=6Nm`^xKHrnSV%?ns4WBr4g8-$ruja2q zK0a^>;e4CLPQ5*p2!}><1v@MnYDQ}e@&;Q{uobwI7u4O=+bawaU1X(r>v}WWHX#K= z-FL9tfOtG-8Fj6af`UxfIG|LTIKOCALE$r_;_9Q9V*|D3Kfi^PzC}RmUy1ta^aKVF zbmMXl7f+Cx8on(Kz%S5BXFtjzC&#aARmTNrzmKirc4WjIKN&xH%2*{ZMf z6>XI|Q)k+An4hoMbIc-}Cr&Vpfvc#*;Q7QVmB7aC*+`zuky9?~<5i6TSDK%eM?OP2 zCwlqc^9@Yd0-isHdXUp5<-4-8>(dnw>$Ji%e|KssueiN2-(;*t3Sd z%vnob_vL2_yUu$N{0feV1w~8L6OVAK6PL6g7J!qkTJu{ zy|D!!1Ro|&{A?bQQF3w}&v4fJqEer%{e?rY*X1ZBI@bA` z%^lID>VuE(XSU=-tyy)hY4m7ZCNn+FkRQE98e378wZ)&V!bii7gTs%}4Iiw|tog=cgO+?Q29GzQ=F*w6Ylzp6TShD3NAl{dcIa+*7z z!}dIBd+4zjKXv=ZX=y6mzcex$td9n1+^9(tMI!1V+4jVmD$8*1aVZ$M0a5N@3 zIxieU3J!e&$25jx*~78@;5aexYngD|GWhjYINk^xe-Tb_04Ibt5s@_!Gc}R$Hjzp- zkv(Z5H*UIN-$dcpL>bd`GqZ`Rtckj{iDsmUcCqQ!LDOw$GaXqoJySCSZ!@D*Gt-l1 zX5(fS`({?ZX118-JDJVwWvJ%6t<4-G&G#0YIS-oeLtD7WS{^X9aPzkCNVV`jY2h<& z;kR!Q@M{r_X%Wh75iV;HX>Ac5X%Sm&5kF{o2yKOtwLW5MmEdialxmfF(kgA-Dr4U& z>(?q5(<-0Ys!-Od*xITz(yF}Js&de(3T;y(Yg1=x)8K7;EYxjuq8yMaslG^X|S>WtXvt)k&_J z>1FX4?Gz2)*i%J($XM9j2A&0Iu$G-JdWQf!h3HcG$jx!x%IPP^l(HaX!P~TEz=hDS zVu1Bq9Z}D`i|fgjFN^r;$jfJ64@aMAS@VoG-WNYz!X&nVL$1N*TryvI3)(@DJc0z(0WhmC;GzaaPsSu4e|{4ON3O(s-A4V036}q}FF! zYd1EctQ&HV?@yJApUmYqByc`{^-jyP4D$A)<2-qymAarc3cx>rf6{6vd!$nmne-=S zXYR+hTXLLOZ%9+SL|H6+@Br|yD#%ohI!^AINFF+U{UJMs-vq!vfPVo00R92|&ja`e z@DJc0z(0V00RI5~0sI5_2k;NzAHY9=e*pjg*TX+pD+h%OXSuAb=hX2mveUGQYWonyp5hsWkS;#t`(_Bqv3qq`g9_7JJI$DLb9{J zuR|t)wm8ftG=pYE4k0|b8}8hbaZ8LFE_Sx7N3qy(w)UzvP918)BNcXPgOj#)x%(j> zcTr|Qv&>g6ir!dJ_oa+L6Q#se+gyl#$25R{0RI5~0sI5_7dujBppeXa`FellC9Fz! z6yZo>@AqB9=Z?0&rnCQfg%4Y)kne%i3E2av;2Y})8j}@TGZj{B0aj7zR%Hj4T>$<8 z{QGR@lJT+K!f`ey%<|Qq@O^aR8;WJV%;#s^Vh-Rx4Yd+0o>}JlBQMf>15U5Fm8*WZ}09_<~_S-;8%4&TVJK#wFSUGfd69v{{a3AS;anQ2t>_v_(OGW!n(&g zov5Bj-Rm(HV8kiA>H0X3ubE!5TDzU<-l}n;-skIDnu-%)yPxQK2{SU~_}SyOLylt7 zf9_1Q-OpAEH7+!qHxF)Lwo})j@6A(j>KaZxJII0I=c@%OjHFW?<|;SkD4&h9XEQjw z{Lp<X_v5H=EuYit4!PPKXR>O30RI5~DUzcS z$aNG9sfe{lRzEs+i5Qz_d$8N4Rmq4N1Ng^0FF893p&B)Ry7#M66y zt(KFK`+jkw?{gelt%ryQZ#+Y$_0WZnMF*HOa^qgY zCC9fHZ}XJQtgY>57CBvOyM?cL3;2so<~nV5&%WHF2zb6^EIxRy^~0k(2#)dNA}GFU z!HUBr-pwK)m7@M<$!7j86u>`#e*pgg{sH{U7*a9^=-GPhFM0>v4AaVvx6byG&r2}n zPgwW$cF{4(ZQ^audRRSpob5_y_P0;2*$$ zJ%E1z{{a30`~&z0@DJc0z(0V00RI5~0sI5_2k<}bxV~9AA8>c8YBA1Yt9muNV5?@M zVtuQ2r~U4B-NBf}cKyk6!FI#N(fW2H1e;?A4yCZ%X~JPG+-b%W*w|^|Jv%Uf5Nd63 zqEk|+LC`U!T6ZNsBrdB#$pWS99_^@$7Q+r>Y1E4q9b{xFc-BDV_%VMN~R`22vcKr%`5Z9!} zFeFl)rpYy`{@!c!I~a5T{sH`>0Q>{^KTTq_XNthqdqL-G;rsd`1^aXNcn7niU*}S( z@q|wD9ai3V*ZE3^Sae%%vO9E>mCr^G1V~U|k@`Q5`|d`J|5G|+!u})wQY6{h%b>)X zk?z*4>urh#BBhE=A0!KR;`F2z8;Xk+Xv!WX4Jt>@Nm6B9azwS` zF56o}ov`blBW~|zZW?Ah*3G`Fl_g**ZX@7Bnx37>oURDqAHaWhA4zTVv+UM$l6DdD zr0b>>-Z}cZ-jOJ$FLVz8{7+|Ki#%Fmyt&?56f~_GqL;r4;2*$0fPVo00RF82`~&z0 z@DJc0z(0V00RI5~0sI5_2k;NzAHY9=e`P_)g12eSfD55t#Q^KKI-;I=7uS<5Ul#Gx zk(bZD9*#cKvgR3Wyf1#bgh^}zhg^frxn#azXX3@kP7|-~rkBjFar;K9e|cny)K|+U zV-4fq-pKeVG8#jgDZ1Onn#MP(|Gr*S0?S<%hW-vWV$)iSd!uv9tz^OANISb^$Hdwl zRxpFkN9qkN{PvFWg1C=KK$HO2*yE+*^trh6!zJ$=8*KWBWh#xTrW7J?JSH66MpM{W z@He`}((m1~aZR@X`~&#c0q_st|FlhLVK>BU`u;snxgG>fjW7lD%jY9f%_J7P*z=1O z7-7u-Pv2gMBe`UQGI9E-h+R^&$uhpT@Qaj&w*f&Py`HA&^au7Ges#NC*SlY1;2I|v z)#lJ8;JQ4bkBpyEJoZHRwCMo&$3LuLc5h@+E@Hc^?a~-de?JW1AHY9=e*pgg{=)$L1NaB<58xlb zKY)J#{{a30`~&z0@DJesKMVh!OYmkq)~kts?FZ9btz=qyWMNqHbwzD7P8`JObbrkL zOYL3F{>K%!->Tf;mY~Dn+UsG7FZ>84fDyqTQHkvA^*hhyibridhLUN6S5Tf zRkX%G!diH=j`YB32u>m9I$HcV-|z_XqT%BBj3GR#&y|%Bb$YBp7=652xh;Oag}DFg z;sE*P*X7B|w_m7>465r9vBD@={7Mf0$BiF{RyBnh2lYXPJqm9#b_x%gJ3`&Gt zJ9px4sF_j*6|$q9zh*bgCNzU)MGhf6xf|}>lX2^~10jC48{vhQNrx@pAwjhl8KjiS zK+)MDBfR$^GBlHkRlZX}cP}cTCzC~>vs1-&FZvT+7MrYmmqy}VOs-NEyH;nHX3bt~ zQD_#2seHHY1)Fcg(|kjbW;r=Zm}6jyVQ#TAyPWU4TnIC+pQ*qf)~)HR%Xc8~+Z&sPgn7)hr( z%#~Bl*NE>L$re7$Qwz&~lA|!1uX~uU-J7pj*){sr^|0Utet|YZVXP$au+U7oKo{9H zR#9{K#U`vkZ$$xFGkN&cxwpXJxC_~EcKFQ;zwiaN;&?OFQBja`p&>>0c)RdXab#Gb zF{|Q4m+nzXLT}+Kf$oVu*Q3%;_+QLq6(@%hkIHhDznE)vPma|bl^2CMez7!FoSK|G zs;KJyV(rvDHG6hc3CI6x6R0@-gX*}dL;0&+eE0OS@NxA(*jM`;#hEqT5k$ILpO=-a!ym3hzZ8TeJ*&(>F|cWqfH^pyGoLSl`c7voQF%o^v<#3!08-l4nc zj7tCvt^Vh%D9j&c@ zgJa#@C~Cc7u~FQ?Qm|3d!@s^!Iv{g*vus4uVzYewRl#Nj2q6$cAcQ~&{bxf6Jja1A zp+D{XGcX}wLcoN834ss-A@rw((E0z?m>^0TM)^l$LMR-8N#+GZBM!Sz%gm-HdjuhP zy#YgTNnSjFFd+4~I}_#SAyAHjX&y;V1jj)we?JFz2d}4P$q*eQ*Fc9-w0l|SW7RLb z(Igj218xL`?rPb0vvF>A6BlAX8j#HSVm+vmbiv!nLp@VAB#SY?J8iXa!H;_M<1jf6 zvWIVzBVmvc>ktCrWmkim6>K_JTTX?Qjk-MS$;!aDdx*3C+!vD-eueGaFpVg)tY(2Xt=zII4DqldvKhq#ssVpO3;`98Wa9wjS0nn zLSq6t^$8qDrO1b(XC6!Bq=_iJ$d6U&JMOcSX3D;z0D+$G1a2oSbOgmgvPwTll1^IL zREk5idVbufJ!zA@h68#U04IGJpUlnu)ADO!WIU*e$TI!_x~cl7`|{swiDQM z@YLVNpxf(Zj{d#74qnpr(07p=!qsniP%enP3Nikx5F7qI#MGke$~v{4Z(fBMRQW2z z@UC{%{3XO#bta=&Ah##iF=38S>DyM7W%7zvd#Dj6WTE|t%6)v;$h-9~Jaf?CMS`?rpSzTo|!-YV}gwV@|ZI6*`rt0}gXmuB9%7ePv?-s`z}P{>bUFH8(;J z=ReY|R^YdE!|#PJC%>N&%3}A}+S^I^rFZsofHBE+*pKwd`FhbXr^B%38!M5&tjh^F zPDNr|Q*~c%f8XoA6BDsj*FK2!-01bGO>KlBEmDpTE~X4N;lt&Ak+Qbfcj$C+*-{s> z`YmuRQ{DJ;;42f`K5*BRqngTc6fu*7+I70&G6dhjHK++OO_B|cGe5QhkxP{B>@uav zBfLp9-4e;*eq)Um>azhI6#a+-q32a&9f5I>3}~$T2Wza``M)c_xWbD=O_dg?rcT-g z`-;PzdKPY-pCDiaC6R$jiwxAK9darqQSm*CEF!0!YT+d@IZ8|H&rZ9v`%2;}dzLuU znCL+Kf%yA#<1b?E@8eI;NM##yAhPxPvkluS96vo68V(tedMBZ@Ih6#l8I49aW>b!B zJNoE~-6I;2o!!3a06a)1EX}gyx0`ZJy;w~b+(VQsnY?{8`y7Yg9-S+dbUX|UEg55A z9f@pP=(@a2W#+XGJUD9RbtA2JGGDiH0+#Kuk zUUtd$8n+UjtA%p5Ejc3FtB5tXvA92W$!$A~8K(Vhmt27C+o7wD-MJ1{q78DW)AzSi zCy@a#pXB@Rh>Xbx*aSpzaTnjcdNzH=DR{L-F7T}|I{}W-a!K85CDFM8+98<}F^mQk zcWmQN-7;5|^CZ#J*68P#eF2YrPQoovG_8pj1KAbm`ME)6zR$9kStNaOd#rgRX)_?l z!sJiYU#S*;$FIySSopkXrZC7rfiSyEhmsC8zUnK-_G#w>edYf*_m!jmq2kZ&wEG1? zX#zrNnLFvU$4sS^IT6{j%wK!jYZG3YyrQ%sJayXV+*g`<+_NHne%kLvQ1_argrnVZ|MdZ%^1ZLv})BosS!UEy3z zZAzg<>Fp!s7F5l)wCv@{uCGkPRf4+xmY_~o3EHjNaJuqGg4#TH{UbrY5=I;hvrDqn zx>fPeif@+|X&Lw;7k}!UInAm07EA(j0*We(3rMxhB(-J8egw`PG1wFVU+ITl; zsH0NkY_!K?sg~}XSDW!#>YGn%Ph3u|l<JwzNaU}!L3DuQ3@@#Zr0ZIk#4DD8 zmG$1Y4&cGbuw)ZFA(k?6#Gs#?=g(ux&vo3BWR#eXZs!@=4OZ{T$juIn$_U1caK+0^ zFH5)$!@U~Ck_w_H1*2I114ps`!6Q@k-;PXdJ0Ou92c0YyEZ!JI)0S#|bPw=Ta}@82MGfO_ZtRbu@bP&&8L(-&yPm(lnu2By zwBkmxWrQ6el@#d8VcSA5hp8RuNCsmn*`idGv8!UDR}bW1(=q#Qmk!S?bm>Ci2lgo9 zc-9Op^)YWE*A)9jgo%iEaN zPV+TLnv)(92-hv=+7-Q1n92$sPcP<6?YFy)InF#7ZF6;^%h1<-r$==z;jT!FZz_)C zCItj#$T{C|;q^aK7k=L@^99Qm_hE-@#Ki$SR-^mj*MjGJUODNN_>mfy8G1A3j*ZY8 zQf|}lUzpXcl#dWgy<5Ed{H%SsytLTr9nJ%|6HcU;xPPDvX6H?myA!Nx)7o3Rz0oc~YEIsb!)>%0HPa3v_ul~rETNIDzIRVmNc>Rr>UJsT|w zFE2DzUe}#E8>{Lo|LWAcZg75vgcDR0U84ryxnR(4|Idx$#=nnZ)<3>;V}FZc+k}53 zihW~vAisU=_A~zWu`BgY@57rHABHJe77yeezb$*)4>QHr9+ZgY*c+hFpsDD>5pI8OnY5OV|eC+Z$EiH z=bl0CoQ+22A+TU0AXUAvj_FlC_Nl+kVS+8ms$@VvnzjN7iF_ygQ#MH@(wQ@d`S*w8 zfgc|mSx;tsei@X`|M75)mR7oiA(X{r^DI5Iy&H4+C?My^Wp%NZ z&vpHIC4TLMQQBqAz>AFMuIt5rEIo<*wfVs(uc~{FI(6SVo4bRkUu-fdcg>H}Q$wr=*_rKe_OFcfc%zsAT3Ynvap`VeZ zu8I+P!3%B;JKlgV+ZMe-Db*$r{tATq!-|3=*Yq*ng3505hxy)uekN;_;2kUO4?%zM za!Q7^nIqrE!(rVZ%nZ9>(nLiRo8|}XE4CCm@~$9 zCnvZhD$gb9yGkcf!%}3>1Su1}=^cub&&IDGMls)W`WYvKt{7i;wQ}S-de2L+a^$~Z z<;XvH6sP`qQ5>keVMu*G-l0-a65qS=O5}WEAiSb1M|soy+4 zbgrH1`jfeC<~F>jK8#&FuYMwj4M>O7F*7%WnKf+hkM>+aYN)-exKYBu2$!sK`IxxT zOyq!cpjhmXY`iG<5JOJ#(N$_2?@h8MrIbwD;z1`rQfx}08b(oCKoAFfjSyI)4Eb9QLKs^F5dKx_5Vdx6=iA0NJ5lsHrS-aA@X z`7q_G0SLiXF@aesww$j8Aitz!SY+x{zmkU#Jf$KzOk8wdJd)M#;X1<4oh*sma;p z+KkV=o@EQPJGc^F7(A$J~M{b#hYr0zBr*1=cI+aEcJoK>aFq{r`jfM`5c$~kit=Ae?>Ti$T^LK;# zjM?f*bh!d<6@DPAmF1z-4SyfwL;s^DSAt#GICN__{UX;)8ZVt#l;f@(fs-5}jmgRh zy)^^oqb)FTXcHl=L`Q?f&ia0{)!mGY5XOn|;*p+W468Yx86`#omF$}{VEEo|-A#d{m2{jkyG<;>%sIWh4%k(*Mt3oXZ6be;H<9f-L!T)pPDDAtU@Sn z*(IG%uc}nmAbYnQYtLtP!Yk`ml($`{&Sy{hDjSY_w>{3!=OBbtaBP(wAL@&F9M!63 zioTryk&Ew*1fX>pe4zi?q2Kf2??Qj$_HUu@<@tN)>;F4LpX}voPOl)vNHGQ-YglXt zBxZxRi}m-Xb25FR0oqdz`)x#I_fBl?QIP&Ay1O{X3s|R%B5XD4z&%#?7*M{M##?63cF z8)+it75QrokSVmbeW`caKl!&BU}}9sc<^Hqz6bJ|z}mYWzU!^9Q^A&q8p-|J#?I!e z$D#Wt6Bv{G7xCiglZEaz3n}PEKSUPmzr5)#otoat7R_$z^@dB{+W$)_a69Iz6nFwV zwv2Ey$%qMQ#(sDv6ybMA@8*iacwnuY$W~0GNW=K*k z(;_4u{z@pBQF3cl#JR?Dsfh#CW8t$c~I3q z-+WrsK{wEOn0&9~LkCSKw6sIIQ9X(dKbe|kE>8NzEvbNHV>0>&fpXN`1QDJ*dhA+k z;^dewOj4?tprA!!lUx}455~p141Qm`9wflc(C+I(T=%fA-LZ2w2s+Cn`H{{vH z56b?kc7eX#aJP#EI>PFXo3bi1VDpk`RRQ%dGMkXNO`^PE+$v41KR!v9(- z{P?X@Sb+W%6UNP0-26dXfv;MAR*mgm`avCy!DZ2kyM0H^EuN~u&D}{~6ZQRfNE{ z^N7U+-B(NJgeEsVXB;xt5qhOCJlO623xseWbcZhFecGjKKr85ACIdEDyb~tv4qrA;EP!n8N5A?-vL9 zr0>RBStXX8Zz~x|OUMbV6KDFfO3`26m#J*H*605>%U|)7g3c4Pbd+)`6usALc}a-> zvz%rvk}kR+o%CjBq@4H=-J?1NN~2fub5`on^3V)sLOK4e2P9$UO3YH9WW-1-H0W&b zruW8i6oo4Wocw(?pe9G$iXnlK(sw^y)Ufr)3)y+MwJt_?1o0^DZNJ0s$uiJB?tzi; zBnZC$h#nZA*tf%h)|2_-Cl#W_B;DGmSt^Si*%?XNHyG~op81i4bER&dRk$ze?sQjF za3V_$XN;;}GE-ZScxb(>*u4|8Hv%(zBpGYf3|Af+#$_`H$yRu91eLZd>Z|)X6#vnX7bbmg(E+a zfOfUtH;4Zh26X?615W>Ka%t`baD_7kTrmIeE(`<(jrQ~z=@JW%Bzo%(WB zPPJwzzV9GgOJgtG*`9i&j8)PAmnqP_+koznt>yXFjt@3HA-Cd5iF(LN@EfHctn2Y2 z45?9xKixEV14o3>3?I`yAu|!+(~-Bi5f<{mcYeSFsg%n6BB_uj3vwIzaMyp>=Q=8L zK>*FGTaVi+KoCkZdts*JvugVZErm)VUj7dG%`GRw!f8HyoU{(*X!ZCf#FxBOUa>Cb zbmZ^SW$AGrg@(t_M>3kS?5~K23YU4nYw6lKJBL`a$&#C=D7R!nRDXRK%D6npQKK-F zjM2OI#DcLy^uDGcDeq7uy!1wa#WIZxnZVSJBjQ&s;Ir(w27#l)(6!G zs6PJm>O(2+@2U?`vfrzZir=db^8aAcMO+OOupGbRp1nh= zax$x=0CNl>uuu7I%Dv+EDfjCC#ok-R)s?7e-W!+T65QS0-Q6L0LU0HW+(~eEcXtgA z!GpWIyE{R{&g`V>RM+X>H~qCu*O@uFSeNU1{nzt8k`FiX?b;oTpU@|rQ%*5@EG3Mv zAwMZ9C~+^vxpHg2fNo9s_^rcP^L|=b`_=FkX2p$nQxRj%o=~1(^H#OeYq!%}s;H-l z4U0^7fWx%@r`3-|2={|3>!){Xt{`XR-J))rfJmD|qW5nVX!*mywehU)@*Sf>)AV3~ z(jrO6t&5U3K*>hV=NJWxh%awOEGbc-XQIqr#Ak@%yP^y{y!RI9PC43xskE@5kLx{M2@t0i!Zh~Tj`yu3LC)6@Lr z2f$zpgU1iFOZ&k2pP^>I2gw=(<6yeHrXl*$Q@`5qO#I=2 zVZJS^L=1l2N5exY&OX(!OOIV5rY_Wo|Aq$itpUbdXdE)Qv0}5>eikVr!{9S(S;M!z;6n8>-z&NDr*azTM zCZi`BzKP}-lI%s))6RZ$tXqePb9oBH^;>e95N=B}$RMw7(>2nRre5uswD8c(0~;Bd zd#$qs+KM;48g)Xc&_C`i!E#W|(?f&t;oKSe#_HO#03e1v?UI(Nocj<%ZeX}8zS6Vv zky0{0?$UK4Y?W}{AX z0)B`pi;QWb(MzCjsk5XU7eUpGQXD<&3`t&kBk*V3VvTY+qGrQ)A9Rf|1Q|E}bd8Dq z5quN`88^032ejFCAa^}^4&KP=Jh+;_%{<(rbr$5^LaYGR@1;9r@*L2%&=XF|Ae%oO zq8Xmm9>$OX-FM=~ksdD_ULX?g6_G{p-LSb3dac-Z$hoXjKUrT*J6&fqt^zKe1@6>6 zlqSypIL;h=>ezSK7hHc+I}S=^0FFvQL2%YO=_^^CI z;upk`FS5bhoY`g;&&^J@H^3yc*x=Sqd|#}j!>Q$WAfiEf&&g%KfRc`W@#W$pT4?9) zqnR+?9*PHW@!kCGkW1s2obmS{OV~qZAQ!1~mFFQHEEp2AH>CQdR}A zn<%>A{}hgLvW4JsD-HHo{Z2>Sh~fCYSLZA`jD2NS^aG7N%Nk2G-qY^&y{kOOT1@im z9h@iU5>5&D>68ifLJkv}K{;poI8l0>hiGm^AI}=w<>h=HsfV6@3M5&Q@RZ>XG@06H z6}}C?9wI@iuf2$8Y%xltJEI>4JHIM59*Bo{1}hk|uX#H2U!p}QR2aY}3@Ocs z$GXH!QeCb*%tVo*Bx^y@YS))4@C`*)G88PxLG+2o8!)K9$5WMn2t$ueg^crf#!^g^ zSQsYe1WmY}NE6cidna6f(aJwFt@Qq5(~2(eDtWwhk8Av4%ma9xjofx1rSv$J2D~X& zYCF;#f1GOpeg(q+W%;?U2?emN{u#kV^= zed>0Zc1?I~vAO7VSMT;B@@j)ps={UC!#Sex#$nofj>pcY%-85u0pQS~E=D)XDsOXE*VOYvN(M1JYY#@jWICS79jfYjb03xn;4rMHhb z1KWjhah9pkM+#PO+^Wl7;JQck4|~|ZP^zIqOeR4*RBK+`fuzTw-3 z#~NhiR2@ndLnr_*aHIZ?Qyb}(UI>x5*dlHjm+Th4N3D@8YPn|@onySm^;9IFsG}N@ z5l%%@RWi_L$CywG44<1>(UkZA51ANBM@08sMvn1TF+`cRNaSRm`_kKi_~XtFSV&;C z!`?|$f~V>@FSY`_B1SIk?C{kA&Uln>d;n>BrYHz`645IB7zj%C3AM(8Z4`3Sd#I%r zd4yf27*dg}S9Vq&$ivaZ)3uJZ1j|f%wU_Me02HtoU{cEMqp^0fb!4JA5^V&WXdeA} zl$!gl!k7sfrnK)eg*VV&$yO)0lI~dQ;Q8{z$~uAze+B! zt)#vopxT$^pVYvp%ni5FB+;E}WNjdp>)ux#O^}E;XHd7pQcEkUF7(E|Xfp@fR-1=Fb2 z+9i~>Q`QxP$&8pu=cvOvpa&`nM&=CC31a73iOTBbY?plo#~|rDP}fz|&#o&e8`f=V zqsWJCdHC0$IfD3~r>WCx_gD#UULCbEq^}2FN;FOLo zI|YEJ^Uvd+Ew18J0>oEk$mb4c@_Y>Sho3!k94_AJj4M4QW5s|(VL4!ATIR|?S z5n?JvU^o!~^n5`iqVuZz1t)y)MO^e_e2`#GL`4AMi7p01GAW9vN{DEA2ArLg&{UU_ z5rpdM_)VkGo3H2I5zFb|G+50;6wL1;#kRjAHFf%;Yycpng$YTpX_yfwO;~SIkiCjo z2eerHMz6`>UOcpmoQ21%p+~+Tv54L@f%p7~kW2PHk&U#Hp2TN{9A%vHi->HE;{{H> zh&s0r=4pkQPwNf|GR^=6bWDQ3BgL{hR}+<&t*wFls70S^6YK3!c%&Gy$lih^*N~lk zWDEZOK`;u0XAl7HK+V-4Sw>|^HH^MzhaSd_#kO5Jy=-T5R8&R+XOBJ}!Gemne^D%1 z1(iPwC~w9k<;Ld5i}vv%ACGRcS!QfzJdpwa0M;yISZXXz)uUzqrB6!kw6r?0G5cO+ zgQ+m5vpVs}ir)8VI92m8)GVtqRG_IjAG2(B_M4G>1V2qh^1bpHF%T{BOZAee-UQMF zjM43f3}=CBgmsK;$%1I95N*^!f#B#67~HY(Y*o!hva z-`W4k-^ijd3=A`K<>Ej zR{~z8egAf#)bTh!4!mvo{(KSD@oit}`{VL=;Qe?9@a}uL_phqYU%{lmI+#>m{%3aT z|E*u_QuYTsRsUDn31lU{xcu~AVyBXSAa+76XxK6WYa$Y!4Hiq-q6}gkN}+!j7PqpE z4Feb?i1vQXmc0&{^b%~q4B(Wn0~5w|>{+Qaz}fMUvy z9{l{O=?gZeaUe8_KAZ-1^lDqbKMapj%)U@0onX+>08t%gRRh`FVcP>XQZyBl=*=ydv?OUv(JQaWl|_m+DtugD!F`%|id;6~c?HNw9{@ zLy$U@lX@+m$pOqSVhC_$du53l#A8Gu1}qtOM?y8#fsCTPdr;I|3(rpJ$r3(vmh(xC zW&8S~P}1jc_^oA4cKnjAXm`^HMuurV(gPlcwwr<#t>rs}RwH?+tIK-BTPWYRAjFs z8Y1`EX&SVTT~CWjK@Wn(HlNA~6|!FTs;N%7-N?xI7GtcctD`$}6inq8zS2FK65nJ= z-`UYqfFtc6*sZhMJke7k(bkZp!SMJ-9z3L))Q-OPKD>^8&lDA$Xw0&qE{P$>L~0mi z=52j#QXB9Ml}0|xlI$x`ipq%U4NvAm&P&q~yb2vCF8Mhf&XUSgb2Bj7QB(}y-~1z(71gtw0!D*EtULo9R1~vBl^le6PDTUgr)q0u*&|cgf%8E_QQZw zg$ptux%|z5q=Ejs0claaL(gg4N({1b*p5xzMN)EIpb$8HCLyfss>;{N1@J7IyA{_o zJI$Kc1sRg&LG`cAKmACcvAoEdy;P~OoeikA{m#W7>F^oBDk^Qr(mW21W96i?yL^tk zF^3toDh8U9?dHhGshTIG&!TcwZLa|}Fyl`n&0$iGQxLT4?w5k+V|CN2d1Ea_97Ig~ zSF~eDYrefqS-eNIYy!3Gdz$MWx82Bf_EV?^gIo}`d_*dibb>Dd-!}ZB){F1BE+vTV zLc5W-X@gjYQ>@-a5Q2)$V*H4caPpb>zIVvAchk~Gr zgyQfFhEh@sA`mGMnkEmkF}XHzQiVi#CWp`^krVq?o|{*kg3zd0P_?uwY)fsI>NL1R zkM%l5m)(?}Vw!IzxXQMK2XU$pnje-t+vKa*F3THgahuFQey^KtdjK5I3pD?jK>i(4 zI+*4Wx5^k;;NN=Z`-74l3u&&kP_(x$4fS^3GHMt0P#xKYXFD#6;()6N+}b9*@?XU6 zs;#N#z=+c=KcM`|HTgNgE*HXS^)azo-e>5l0I8Q^ozq?F3(Gk>yA$k2XUG)l+IVjI zpds(rxGWi}gP0 z%%;?{0wtX?*>}8xTvwkekryohBU&6t4VcC1P@T#lOL$^q)0vsNv?2hW<|09x%q%sa z5mnI;b)@BaUcB%4(JRa4Z`G)R{%R@!^}ewe0s0E*jK>5(1kt5EX`Q{Z)`LFihlnm zTH*fp>8yWp!V396Kv*wbeXx^#aGQMa7kmiseTcDrNx6N=wR|aEeW{auX`6iM7knA- zeVMWSSh@Y!wfs0;{oek9vR_d4mqQuCr$0m4x$JKzLk%1vc9w3u?V!#9C=735Fw~51 z%K3#P7(RU@ZF(r4xGo67Ud&14Y|?zlGuNX$n*KRi;LrFmlY}G!>WXrpGe~i{N;*OD$Jfv!AIswzK(z%$7i8 zmOI1sgUl-PG&oLFix}_oC2G&EXEZt(Xim2W$K0nIUMPJQRpXh3tUhQ+z79-rekxz0n+Yx6>k@`Y@tLjB(%>Gh)H5TD^6Xtk?&gUI zWrw8Ybl46_9u!4IVr=%`Oy}{e0U*;kNprEVJ~MxuAt$G+pdNiU#QL$~rjXky zMZvFAF|wHD&6cVIZh=OGD~fdI@TU?|Yj|}2b09yWo6VrKa3M>iM4AElvZ08NH)A|8 z`CCekLm9=;QHN~uw;~7^1mNV^N}FJY7-=*E8a56Iz4&?z5jaf&2A6s1i$vIR?$inG zh}l#Xn|PNcBP@HYVUZ`r0c1oKP5%(rJ1ix&#|5*oZRD&*14 z8a{=7rBAUs*k??dKtsyU9?@W2%%#&TyhTc$l3&*^DiKIzl~q(#N8LIaWW5OBauuRu z66~KAvM5a=sk}bb>}Xlzd{vQ|H%*d!&&xY25ZAWvrLPZ>{W{NwGxGeI@#A*d3^z0z zYX#!Pk#CUxT$h>1qUXlgfmrU1Q#fYUj|FFV)_r9|DhT4nhu!03n zj-?C$hZ6U{5{pR;qj~?ef)h8JHc#r99%_B9_`@=9k3S;b}7tSHERBU0dMpv^meDe!7EB z=$okGIEe2$xYqf$^=cW}ry+E*Ja4$yfsQjRY##)68`xe8ex(IRUh|!N^Zn+gF73VR zBg=eI%O!hOpChE!7s87kBQ64gLY18|?d#4U?z=84ufsU`TYJiAxG5$Q`!f7qMy`aB z5F3*`xy1!`EZ%WzBtQ=OCd}kZ(VqIh0Uk;wCZhy5#M&mVNnQ4)EkAH$^6f~f8GHNg zxM_vhN}Ovj8pz6zL05DOVA3)$Z80h>5^dSD9hOlz-zJ<5X|7w{nKn$3mzQ13y{du|m~%+7%Q7 ziK@t|VLbR2cPu56JeaY7Mn>QWEnUOPj45G}V+9NlTnw~(LjtBXcEExR4(E*nI6RcF zc%1&oscMQ{ErTL+JCOs^Whlb`AXDsL<3K|$O{Wwh`zo~3p-?x24%N{69EBLn3w|8K z;jq*4Ha4wOyf7Wtvd5ayKN)j}k}wT!I^e`HmD7pl(gv0=3G8d~Dt;`WOr|rNlp}Wk zghufr?YMP2TcO6N1?Oy1PukmY6LBx;Eyz*@W8e%i7^04LlIcvcV0>zbrzsVK=44U) zsefTlnJ{N5FY;^0Dk5tWl~c*g!iE^j$UI{OIBhj)UsNOM-4s2%&*C{0mx1!~TgEv? z?U|o3!)4M_#Mg@i#_s8}6K5AK`1p8IIWfbf*ns8aS#H{RH4UZ8tvRk|&DD$b*D`4u zugO+>v^XQ@NQ@A@394^J=Oi7)K3U^UnilHz^3Ddl&okH0u$PSrbae8hkfs)a(He8B ztE*I-T*lT=Ut@4i7j~rf@N-eJpQ<%ED0}Z25V(G87}NG_B7MeB_r|VaKJt|slRJsr z8*|_5ux&6xPlRR`@LR5iia2BM#o-Mwqpu%;;RyT`^d$f+a(8r_boW}Un4K?H-CH-d z;<_$xhbgt%F8#_>G38NCZCvO}#Y1+40|rPk8V0yUPCt2mGpdem)Rul7$qF-wN6Gat zqy-(4P&=~A_>1a(QQe=6V0-^>P#t%mu~wj|YoK{@pk-5_)k2`neV{FNkUe*hqgGJs z%ipa3=l}qK9`pb#Aws|aus{G9EWY%o>@Gi8bXvWEPdVK|C}gtf($%@WVc2YzD+ASe z{ZYhXq4+X2`GaxPYNdLEH3h>-%tk}$GPQ-HY1|G+D}%K~<5|Lf@C34T#glo`akTnF zbtTh9%6YOGvh}62Wm>hCt3&l=^Hm1jp#*Xb<=OzasZxE9hKl7z+wGyY<^~(^C>P|t zjN!(r^$u@{k1M*-7n0rPP;{^P6NDk*qDc_cQG5W~!^wE0FPnJCHpf!L!p2I3!To$t zXd$w#9&(JJ@{Af!5pa#xmf%lo5=L9@dgft>rIb5`S>FX$dC@hN=rX+aZ~CR<{pC7d z`6rpbBR>4U5g&hCKL*zb%PZJ;Jz+3d3>1|iWC=@LQB+W;!w6JYV|71ZhRQ*P-EZbv zSZKf10o3V0qdb91avC!wF&%#h^8XXF8M9Iu)Q*eA`PYgwn(3nskVIK&3<9#PZii@p zZgaRI)-B^ft=@>pjw858O2g>80H?(6T3y6GzRP#qpx5?tfP@S%tA|j1G2?2f^?k;9 zEYlRD2Ey>#krOnEspmXM?`Ojb4pBh=c_^bc-Tf$=ZLvw@oJZNEkgiagV>eb3wA}G( zy^?RXj!f`yvaw@yan^Caoli$oh=BjPm+6Lm^%x4}+jR%mTK%yYmjLnYuu_)8nX=rf z$M<q{sHYZdL9DC=TFttE~B+?=h%~$-%3Y?9H`>LKq;ij*9yBV^+)nrfeg5O-&?tX6@1Z-OO7-9l;y!a>HeCjl5neZJc0vW81Ko9XnzZ~w_C6O zxW0}fB;}^VA=?2XcvC0bxd|`6DVvV->8#(n)Xr0!$%u?BqBQn-li|L9hfuO5VhPhs zf;(=95$}zqvfaZHd1J@G%AS{ThuPYJDqg0t($>vt~t9XG*Ns! zwVj53gip>8Zt2F3Qrv#Q`{Ke@q%*CB5`N$8LJj5faJCnuSdLVJ4BVwr?IhVy0-34E ztaA3XV7jM5#vGZ*m-p4Rzr5`G9sWMa;YrfQzbVhh_}ajhBw`x+3Iu<_ZXE|+ERk61 zF*B?Q@o2ZDPrnxabtZMc@bM1 zHG6U>8vS`R=WNE6A98#+^>M@=Da3n~JzK5Ja?pjgzF2;CpZok!ts0jj{ltNEtnRL+ zSWw&!9+Qea#WLC-UZGMxtyGC=Xf%RQIS4PzlBSz-DyA?zpi;bCSb69(YOG^5eMN!# zxg=r5P_<>$aK17+&5Ud!s*%R&B1aNjZw^mPkc#7$Il8Y-!C8H{Vm>fMa=Tw(>>GVf z;p(FGBuvkgWqr7G?FmJd+Y-T5LwV44jw`UadTI7rrc5A{e6?qhdu)!x7O|7CRw?(8)EV8BT%O|{H z=9Ax%&a+N-iiT%`48W1Cy8vffA4x`{SDPC;k037ytLE09eQ!G##Hn!l$@uT-?Tw)Q zZEfGU$iRQU>wYPDri_S-akjep`B}NpKZAlZBu5FzVTA$V;XBhoc+3~lN-;JxG^y3i~Ish%fl!cDqH%# z{66pU!ZRXv`zTnftxHnQ=_W#S(m;dBC9`K)l_?%sXT$6*`n}R$Sf)C*jg@$w%Rz?YClx}Vu>YXKi3t>vRn)&xAv2pX8Z7tZ~oN*oyS_uQEAZF&Ng)0zW3A* z8{TZ994=_iRXgJ8OntucK3{4Z$#GV5xq|Q9T>rW5Vid1qV%oV1%ll#i;=Aj7mD%cz z_ad88+r(!vhWhiUcOTu(qVhhrg?9Tj5`SG1vwl83q#6_4i2eK#W#k7HHgNG@c3Qhf zS&wtiN`Hb!10*d|9P!dk==V_WISz_vOxGRHF& zFy;UtUWHd_;>2V`a<)MA_Jp>j>LNil1EQfUU0}=?=fNQc1F(@@1G(7_2pHZ8l;JFd zL)VcIvPke50nnp@B$9fgh#TToFq>g{23yU-i+xtnw;O7+Fi|6P;)(Ejse6grQ7vTS z^$2qI>T`NoqCz3aw^SW_g=D4ez#zB4h}eXe5y|ai7c(}eTuDi3(IVm>NwK!Iq)2e9 zZSnASaKLD|nFYi{cp%bA(HDDBL(BasF$my==6P{bZ5)fzau$WLy2s(j1E7BkOBfz8 zs}_*GhiVzjkUGj;AbZmavq(^co}|V1=qt zWS>G5OoYrMtAJA=`Yh$W1nk-2?bRM|wY19sBA9b(KsK&YT*?^AZ}oj46PEX7vq$h3 z1~(2=^39FOn#n_TJD^cWuD;9^J~k6Y(}@m$eVRV&xhIU{%7*skii`>a_ShSz8+VH} zscpq%N&RjZ_vIgT@HEco*~#Cu`6Or+)PRWjxA~@g653-0jQ*w0VS8%x+|n1WGsL>5 zl(^MHTo9s|X$A`E8jZ5Ao@G?LQ7{g5H@Ov^8k8c4mkCEcKce)hI93Sp(}_^J_Y|<6 zmN}Rd8oYPy44f%13rVolhuNA+a)z{KZZ$FWC>5O30ygX zL4{1eQ{h5z=ZD z7O0PV1qMJN21ngvM1@bRXmq)zce z6x1ShD`v4Z4D2SUBlLd}c|fK>B*>-g=*}Uv6D7^7kt@7~I!_iy{n8~TlW-(VF0_cnsR+$PDpn*_rX_`HlMduMOUUa;yh54- zImyfiloUTo-Z^(vSn70>bBV-V;qzXZiP+=bern%afs%uw>_FPme*isEP31j~PIUwu&7D1qZ3Q!MV|Icl#P17;o~7)*jmkTWzv}O z&cEPe@^AP!`gE?oKL*0b>mT^Iead(710OFZ=|K4C3c|dh6b1gj@IW`Y`zgAjZvxBwJ2@SiO<8E&$1? z0G$A!tSN@m5D^HB$kW$>B+dd`39%jNPJ#4y=I`S;G8a`N1@u8=QjUeYOAYIcTS9Z@ zfmMX4$WM-88}#mmOqzTp3qGU9l4O%rWIeYavoufYZ9WCn8pV_0oSI2-+S`S=iQ{6@ z+({L?S(|&{lW${`G+_j=#Go1Kfh9C`_TwwNK%}G_e`su8%oqrXk0&dbGVc=r#)K$~ z>x|;!NJ*d}$s^|&jzLNd%4A;pJ6V~K7d2I1IGzQ-g=`{8Vet`_o;j8slPpPdjo_SJ z1pOYqwM1i4{p7e!s8-U;QVJUlM5pLmNgjSrSeX{jYF0QjAapz$<8s`y%L%bBnG!;k z1_@j&6uzO6YUzTBx9r)0?+OvW!=6aboiXEYhE--gs?9-}B@=yd)j}f}646?h1t!76 z=PHT<4i~*BqG3GXQmNuzL^3Yi3&+NXi(wu`z64}F_lg=9+aYg^BW!-61*8wNIHv)M_4UQZ%vg;QN_r3Ljg;- zIH(j@u910yaZGFBGM=2HQOV~~wvI8NVgIGRBKIWa^>hD35I9G<5QLTBwv<$~7qV%D zfAF?AyjB;fGE=q{-Lww;OeO70e#h_uJ-gCHmeg6|w@xKA?{DRDamB59`GKZZP`NV; zy%WWCPNi%jEyC27v&5q5>59Fnld6PFb=%}N~jc~-ggh_9q7EYL^Uxd>y1-cCApQEA(%39c~yscdsRmO zSt1>lHb|a(MZBY}?2e^XH|g6@3-xd+-XPaiVu9Mx_VvgY5qHg}Zmu3m#8fSZwq*%T zJh^E2^dJ?t-LL#pV>tNf#o17YLLgh;K-!kl=tIrjVRER*adr42wh;*%r0aZJwJq=G zfwGvoUY^LBaIi;3&M*Cat(Z0L&rhmk{oKvcg5}>oVVR!D4h^6>*8uZB$a7ps7}tPB zrz9oen?k<37|QizRWe)Ad=}&(b*C(exeVX)UXvg8*O&|vDUUJ9-LcPJ(hKTHdz&f0 zq@95uBB;%+F6lttJ38d}zCC0RDMW{y*03{IVD#vfpYd#EWPQ1r!m-Zs<6P5NeWlCj zuQ=?#zs&yMQxE$eEmQk*mB>H2o@o9bAV;mxLf6pZ?rTm3Fp{yJg*5-a~gvGPLi&&WA~ z{wJ|g`Ui5N{C6U!-sHF}x;O`blux)uj1nUHYMH+3XT|RZhlt5L3`gKJ%|3&v@e!e;65Me;66fq(B$#J~>OL%VQ{F&z(3zFU|>#H>-{L zgHb_qvr0l8&o?gwR$Z>gJ+cJG=E9PkrXf;4^1IH>2l3CSGQD@Z&2;(D@H|!qE8zM9 zZT;cKtho{n(H@dN{i@uocAA|5T#J_YW(F%}ru={fY$NNgM>BeafWc3*o9Ob4O8^3i znZ(m!0ML8ewl-K5koQDvCc4my8rlC5PCochJn-}UV5JGLR#$sj9gA#8gata74=D3gLmmgfxj1Ev>rQnRK!@`%fDD*=HdwdQ_+#EMIab*TDdOw*} zKmsU5WF+4rU44XJBl_XcHBIY2vdF&*iB@jjyRutod*)bs`8ZjHJ`%DZx zCXy`6zA&B}Mh1k}zRl}BJW~7 zV+iEn9(zfMLfMy7XYfJOKY}kI+k_nO6B#1)Mci!^{5iOjLWJ?e2_ySTSh1QP*Xk=w zT1mgb!fUkv%d7nIHgu&16+eG*@F)*27ysTrnThLE1y!GJ;N`}1lVMtml%gj`pxc(Q zl@JrgA+0zny;wl#?~7gnOflHB)cpL&QST7Gq^w;gR&o_xO3Rna9)S0Xa%wDCu-x)h z1?{Va_6BaEXJd;^&4sZswFIKxWc@qrRTn`T^Q%@;(%r>X|6r_I+vj5bcY7l2UlI%W z{Hhk$u-BigFI%3M7o>uqmop`~T3^+jt1`JuTr$rlLwrzmGi#DzCtL_S^$IqJV3w&8 zQ0W}kpZFl9$-ZbfmQc65y^t!qShA|p6;81oh)lcwkT}^emtomexTvw*rI@CGA8h|# zZ~N03(uX`XGXxwCwPc$+lj|qCm^>=^f_98SSRbWW8VZwm_vis-(}By0r*R5&ZHY&P zH|KT3#%qZ0-^cj81|}@haZq1tCb^8V#tgRZf{{gMSvXrK)UI@uX*3UVu^B*VE=>Uj zvg3MFBqQaIkNxz5B9963p=i)#gM@Xik?HpoX-oS5=GElxx> z)Db*Wj+oJkm~)L-NRC)) zidb2QSi6tdz>eJFj@;3T+;fdQNRB)zX8x6{`Q@_w>s3)^r#~aA{Lj&>-&Iiq5Tbth z-?%JU2EGpJp^g5`)c^nrKXNtX?BY@`j(^M53?QV8z%8uQj#2o~#|&%f=6{vo(cE#E zf>apIpM{BGsDXejKl!50FHjMS{xO$$oveyVxRN}0n()Z`D zFL*MXZ>Gc6zwPS52tC9>l%BUe%tc|{Osfcee0a?AuxS8Jsi_=w))HS=oLfwatpQ2* zJBDYKSONS4!^tnf=&PgLkvyd>U)>}F0Lq>>X)6Gumm)wKl#fVO>tL8uTtVf`R@)B5 zcZS$aPj-ElbdHOzkPDr-ytcl;EOerIt$D`z)ku>jwUp)8W-W_dNPq^lE!6$Qo_aU$fhv&6uL*v*>!O1d4 z1mOigcT%%oHeE(9q#5DSeC?;|MTmAs*d~2PnZt5)Y2kOQLo`XvqxeAu-1Nkl0xr2x zuJF_(nJ<%=i<5Xa0Ewe8M~Q&NB3jTU%EuOx0>`hgPxS*+Z2AdlG9jxp4(VAe27AHL z5v;d?sf~yr-)me7ZeDf9>o{@aB-9-2mURVGm-^uhj8#fL8&cFzb^6}|*>!ATF}S9r zDtEQ7Z&ian1C6r<%D4t4w$R`EU+-4F_C>&Gah`Hay~oQ9q~?p2(^MEuG4(8%uq*{} zV}kOq2q)>xk1loLv+y?2HSLPZzlUx~6s-G~Px=q?FyWU{9nFBP8T zN=G{cs-^F>W}G;~@H_rdaG1%hc$I&9vnc+oJ%Ni!9_^uTDs=bQ+Yaqa5@2Hf=1Hb@ zxV=>XS}YMR(oLM1<)pcQri<_@qN zi>Vk(4%*pbj-HmuNjG{}F~7R6=fr@gY@uTd&Dv<1ibL&b*yMwTafRF>dKZtrPx4n6 zNsKb5S@$uHxoH0O3hi616s0$nQ%MagWI}wpvy8lG?{N568QFp-R!*XtBvy@}EjSfa z-ILe^mgx0p8wk zm)B|{G-F}FnD$UCP;$YNTGg$q1N8@nP)j-A<5X_)W8ycXhH=FN37k`XckUgTMf`jQ zZ>F;d-+GK@oL0YVb24?*t|O=+^(E&JeDs~N3}%9gy)1=i>VtZc6Q}RaG#~ebJDN>RUVgRfN-|l4ubEjo zt|+pGe&rK`PLTmIOXr1PKydEAFy>AnL&>`xce6BaZIW2y<)EzLY`#RMf@-XGWfkf6 zv@CGQ+0?IaW}o)7a-i7w`B#O_-;ZYfQbi5_v-kAYe?&xWiac3}JiCv)z>d1&j=Ir` zx^<1ZPmX$Qiu$$?1-y>};6#J-ME+7*e_`xD0LB*o8DmFK{-m^qgD|%B{}9GTfX@7_ zx~u@|{gjrXtd?4q|b2Cp0{)Zd*Ka2We-t4O2cbUXvHWU1U5cz<2IiA$UyTLqy8^I7z=yfIh7LS z3(O{4hwpL`1-qSan)TH`(<43TE1tg%AlB_m+Mk@AJCiHL(RIifujR>oD1bdz5mW=(4KF+cOj zwhG>y9QN(-!tK zzhE)AD!^7#?_g7(8}jjRbeXCxeQekQa#cS)9(j-%wLHT}88t2v2dnKOD4typHwCqoxYz zR>nkR4=3ntyOW3MX(j?LAcw&lTVsw}3?-Z3_ zWuzio&5F)n*j(z4GcI;Q{@6nSF38jw#^+#~9E(r|$QCi~d@3aypeA}$36yts#L}lG zRD;PZw5+X$`MPNGf{L)3@nsTC!qHo)G`T^XhWZ#pV6nPD2rr`Vh!@lL3A7LG%n;>O z4K!RSF5R*kJt>$uO>C-1W8^kH`uZH>%XEV8&VEE0t>?n-}}#kH~`3{07PG`ZeWJ`v8Bgf5M4 zuY;`s0Xy!a7ix?hz|i@S1Llz!Ig@=3!P+v7Wa9I;umdr3{e94{(+me6N4|>uF$WRX zLW5+MIGMJ_MEhcaj${&_$`+4u$k?D*sENX-XL{?fo-7$?*}8%@O;fitE=p^YpfLh8 zOgnb!?Y-pI{kAyQ>8G{(vBvhh(en>aPwN2WrcM~e3tzl%8?Z`EU$Dk50{Ome{%T_U z(^A^6wzBw9UF&gP18U-f?jVA^}JLctL#INkrFUb7| zfZVD-LGFv6V|c`u8aU%Km%$iZ;SB$}0}1zM2a?4%J1>?b_Mgp`Yycs(AI+9fh%u7{ zIDc!lWD$Gm0M2op?jS=XH*+=n(!>jO4D)L^yND{A_E!<3ck#EPBz(3EgMf7U#vz)Y zURGO$3E&d;b1VCj`!IgflHT_b7qP&8Pgl_}U1P^>Y8C4rURJ4k2;~>?ZkDgU$8&+a ztdPwjhRBg~t0{74guC8h?7Sk@PrO_!R7v<;gLK=kL3#O{a*v_c6;|g}`5OesML{Jm&cj$)p|wL3t_XpL6t)@mr8%RI?f0Bn3~RG; z$oGOb8yWg?bpDA#-Zop<3E zQ;yak*ymI#RV4fjLIKR}=x5;}_9uk!YWZ9UpH(8YjlA(3IN7Qg#G_%}W)f7*)m~P! zm|rjBk-^Cfh^U6zW4C5f5Lw8i${a*oI_PXR1rG44j>W%=2M{Yg3_{ArMk&k?Uqjb4 z9~AUC^0Fd&0pNt&NMapP>GNqfVe9zYSrZ(sD7HIqP^1dqn|*0ri_3jr?d@es+2ASY zW1f+gC!HWB@I+vHq!R;F7;mv-Pa>52`P60JRI z`0plI-$WMG?Un5#Pg8lLN84mntKwUX&;3D140iFVs57jyGGVyJUij9lOf03!$strZ zN#p}eG)G+b-mzA-p5|gc&Ad@Ss{#^+9XY7xsf@>&9Ne~Icx6gDO2Uns){@1 z=9(6v^8rW}ezB`oHo|h#F{;i{rNczB`<5e_6_*8qVZa?(8rmrYo5cL8)lx;O7Uc|H z^*WqcEz7qu{r4HBO-L4&0IT7}6~w2YrBbOiSu75M@PQH4apjSWzjr_*0b zwMhbN(krg5SoUdG&k7^TVZ%FLJ5e+;tWCFr!_i;nFU)^?IhXaoM&L#Yr+99So}0o@ zX~H2TWE#uflApFW%UjHA=#26u&neZsC2iH#<~j|Vl-bdN)38S6sumYIgPbfyUs{mO z7p3qMF4(o+9RcB2ZgXM+ZD6t8h6 zlY1*84_yw$qpF6Kjq1X>LkDCb+;d~+tRY2oERpyoCt7g+E5 z?$3Vh@}0gNc#*t5D4SZFI1U4h0@*2yay2>ZzUk2q9K;z~XXUnRe=mjhF?Yh~lykQJl8GpK37lYY1zSRz#2NvWu^aw17ky^07I zF$QLPc?t=?W*+$5NfqT`y}ycj8Qe)Ca}uI{xAq*ef%K;hr2pYBSV8}99=R^j&y%BH zG)BJ!M&n;c6XL`Wv&WFC#=LTgd7T_X*%(6wjG?)Xp~FFpWnhnGa&d<|Ux1v%{|!#! z+CQDdr9TTizfR&$rO#NOQvK^rVj*)3@ZwW@%+t^P4y9>7-!MRdW?*XX&!;4FhwF!Y zONY-#JsADo4+XbtT#1OVMxalz{CL9vUV*RWOD!}ymvw~(zhQ{MCB68TY%SC1n(%~1 zekX)iYivGen)XFo!!`%$I7n4I78TU&TTX@N&O5o)K-GkZWGr z9AM@68ZYfNr|@2z2Jb#a>teXMn@HnwoK7yUKJ*xO{2tEb?rexF| z_C({W#5?9k0@hy3u`AFR=xl*ps1|$B*$;MC4e3OcJ|Nnck&nECP*Iyc2JFVJf;6r= zuZvMEW8`xtCuh3$ztSky-7XGzB{DQFjyN}W;sM-dgsGRpLldEOf4N}dL_A?xFkaIf zgUlr+7*c3}p~5fe-1Lzv>bfCUbsZd=^yW{C^hb;~YyC-22}k$7O?@zGy9A&!6FxH_ zWEK~d;j#0bQ^>AHD7pQW?^4B|pu|y} z*4WV~ZB1)LQzCrA(nu%*Ril#o?IOyh5a7w>#qk(u;_EHeU&UTa98XpyKFP`3P(h(Pu3pU02KH(~PON%oZCDG$nq^h&^V|+fl!YIiX z2cG{!e@;`R$T}jW44H&vCbg0%we&X$_4m^JA+^TR!mFZ6HIv15RUd^778IT!^o1}? z#Bz6=&#k0PRv+${#Sd;3UKDdOps!~^VHWXw7B;UEp=AHDStXk4PW@5L(rh$#pg%uf zv(Lnwaxiu}j;PELluj?YCxtpP>B!n@Fsc{Ib{jpN%PYNZE{P**@B+Iihx?EOQBq;b z@KoQ9Yj{@x!5hZJv7!6^AWH69tyB-O0&B5|-))d3TpGJ2L+TAjbLbF=TD}D?I@d*^ zNxU7M)p);lN9QC}<6fSrtVZ!;&h{%2FRXWjQQTTsIH5WN_;H?*Bq%PXSZ!Kn&uY_B z*F_ZOzTO%=kC44leWfBgAT`d)3axmgs*uv393AW3|82-h_-=_P|D6NIxut}!$Wqm~ za~H5xU)8jc<7EG>{wVHgtc=As#irmyAGc3}RWH1(<=N6@6l@c)YQA+KmDOSKm_JUo z=+t_}Y!<6g1=?o<8cwSwno|cH#b>g!F*_Z8X|$}S?+??b`flCLJ^}tk{ISSOX1c0R zl8*lZ*bKL2RYlK&ApWHHHAq;t6C4G7uu$6(w~Z(#oN_?xXH~osd(A-LmQjSmz>WE> zb|PLGEoRSHozAggoY(xkaCl3vC^)5e+HI%g&Ei{4lw==m;q#DOlU?723ZQFTEewf( zVG@#SVUrUJf~PyPswi%$#gr8?@DkNJ@WtG)7V~i4;y#fp?u^}%qj-PWv~2)q{ley% z3=stdyj9KkwG3&tt*~62AF^VM>vyM_j~M>EPn?L0UuSMH*!XBCsG@F3i#P+b!vckb z(WM7^K(#H=A=dlruP=l96-G`In(sE~A{&Q{Wxl7(-)*vuHjX%te9ySO+u}oM8Vi&; z%fY?h7L#onPaHWb-~_Xd$fn6cne!6$``ve=P1E%w=jE>Vdpao1v%NAGRjK#;CbG?Q zGb0yu&G!d3k4{g``p>SNDn6J^9LbbzSMGb!n znU6YZt624ZVwn%DsBORor?aWKyLvRbCQC-JiN@z5-!4pVSb}foW$^9X{_}Q*&ty1y zLlSv+WJK_n+j$y%JD-DPHTV7BZs&u#JYZz+2cWcPd)wAi@a=rL+?@I2c6L4=ho18U z-_E5d7in;{2QD=31#dKgPq(=-yOFt`#4O)G+iom_Lb8A6mv%8ES~o!j*40V~uU0Oj ze(GvES-0ydQDd0Y{z`&`=g4e4Ph{wb{O$W-IxcvSN+P{Mh(H`v^4Y2rHacHK@618F zZ5~{ZY=B_iGTPTy6yy@a?r&Sx(5OvNp$Di98ljhtl|@?OfR@f*Zt;!)gj|dfw$_G| zFYkW;zKo^^O9rT!H3WZOZU%o}&f>v71f%$;FV~OZ8&GcEMyZCX6JzYu`iqSdPB5-d zeJE(VM39e2eM)xiw%MB|e(JmQW`hvwTD(epJ2K2-gOnn^QDFKszT*4(5UHso0wsfR zpsN%@AuH;bE-iEEM6~HPbU*Z?!%oT&wu8KfhL z)OJy=Oq*1U*L+f&Qc3(&1fZMeeP%4NQ5B%HeExt0X*VCy__#?U9`!~Rw6$`MCS3ia zgiDb%*oya7HK|9lvz*>hUw^IpSAOLXDM`)sOCL1=Ruju(_*Om5%-&t9{f8 z0A}MN%9aH&&Fhlnh>Ry*afD;fOvMx)6PRPgCcTQ^VAfSpP!+%^Y_2g{$fB4ksjDh3 zjt#q!`_8BDBUcPC&>m)iXGHCpG-dBBzB3WZ$U`47Y|o=4od*guR-xFgH!J-PoDkg?UFDM zp*K(L3D+H z^o=1c_|KU!igDF1X~fT+-?`H`mN+dIJLGcA%uB>HlTp)1eG>l?d2qrsL`?*PE;qfr zixnK4O-Ho$domUtFE^a+(&B+6u!R zO5O5nhw4vzRL{{us+c(@J3mtAo^&Co1qNJ|my)13F81S$r9Z3B#MmG^FCE|NVT)XE zd4Z_iD}lc2OvFV~?tU)$CAl%m1dygSI$Qe9d6TLyUxC!|9JdD3{<4?TgO`Rs}JT}IP9^;XQ zq8l{uWqlwr#y!3MHDTznp6)o?eYk^ad>7Tx*b&uie~#^!ZC1h=`6GgFQ(IP|St6jJ z%8JEX>y;`R2!*9y=6>0gdOm97C6Ioe$J0AgU1#y>xPw`W%&`?s=4b|qg2irFWJt9> zF6!DhQ^K5UuRg+fe0$Iy5T&`nB#92x9bTv*Au)Pd9={NcbWw&v%{b1Zte1>CM;veNVw!qL zKi!Ahu6~?v8%bcR1~E&~zZHK*mItl0p2S5uKkTuHvdf;{QsgAt^eU?v;KehYzD^3T*t}b#LKhC zE2_pTyTrdsj#q1p*8s+AUB~O-BXL~ z>%UPSe|gHff85EmcBTbDQD;7p!X`;QDME1gEnm?0D_W5gD$0)?>e8xD+WGDd+Ruw%>9zbl+s2(D-d>P#@r%qZcOs`^KKL$fRoHqe) zTNXWw5p5X-gr`UK=2P*UqX!W7a#!{JjFc*2__2VdCP{#b$FzQW>G?+m7G|%5bfD(!AgY%0rU)wj)~0Lrk;A zk{tK%^IR<*E;iIhqQ2^CXL8?sYkykz-W~iv`R=PPyp#JlLAt|v0&eCO#}+d{Pgc0N z6ZLjYlyC4YwQ;n$&RP+CTX}kb$&Y6nwS~Vu+wg+=+S}%1Fk(#XkOD}@{`~XV#tHb@ zMpEsWbd(#M6vD7wA75-Zyf^sSM$nDSE5Wl?I?p%j*|%QLS;X;dO}7<@pLt*L`2uV# znKg*4O=dV_u4N3YOYx5Ej5z_v$YGj!^Vo<2yd$K1fK!~$>CdVJ;Ux%-V>eMV~G4kcIVO8K=fg@M6TcQyn}+@KUA?hZi-(U9284bpk=cwDtdPe7bQyAG zw5=mW{v4&sCrxHY`2%wK(v<%C7k<%1-KBP@A}S3KMiQIq`CyF%%b zobevKt*~ZUXmQl6b;p4f7gbg^@K|c$stThzYU-o)nsQHo@;kyTYJ6<=P~CBPMbBIk zS=@%ifo~J)nBv3VEF~DI= z>`5mvz*W+yMaxu7#G|U>Ts2+nOF!&NFwbzzbkHA}eQU&3O3O!roK z(~Dn=%~Fw}^!UapwHVPDO}TkWXWC;hDSn;Elff8Vc-P02`flX%JXa3~xIyZAJr-Ac zlH(#JHJUz>7;d4d^O8et;stFd4FC2ahgKuYyz8zTC`r0=$Ex`=5tIDCe&877i_c%7xb)gIsiP%7|BJCXSy>;lYBHc zi~`Pq(N4tWGy65Rx6%1Zeqzak9G3RI9JA|M#|^el770~qV_G6CLc0eH7LmB~)Zipb zZR+m3+sg%-J#)8I=OZBn*UB!Lt@5MC=E*!QYdz&Unwr-t(p%&?Kc*@`&n~xkpLDMe zonDC&1GhuM4JL=>uT3OEOp*H+NGK)B-)c<0pS<+M1Re&-wya@~UNslG zJ1p8O&_)L~(vE&OGN#~SgNLu-!0u{su-KhOS-u+oq1e%KFF}d2YZiPwk89WY=COcH zQi2+M9jiAEgVScAW*s6_n+;=0;NqhZ?dl(|IO@~zc@OsOC3If)clYgUlW3mv+0nL( zdXV+`)EmF<4_fxgjETY+1Q*nfZiNx&&qp;5V`J!t3h|b$CoD z07}w_^&T#<(r1Mx^)NIuz3xwEy^#C7mdJ(5ob-tUSc!X$Uyx&eiq{$J7KqB$@nAKM zW>&yseP=SImFcXA79dajPE2mfQla~uL_C|9p~vGZCzPK-(qL?FKYtx+Xts5Fdh8$- z@=0vmAWghJ9XMFdmVCcg4LWR7@1z5KWM_S-UMm_XY0hD?!x|Y&S8I3oQa|bQ{gJNP zcI0`Fy6a~o5JZMnE&a^b&Q{mt=9``uoJw2(!zsM!n^%nPJtlz$rmA&5X=lbDs@NCo zEIzW+X8k>)>&AvD&Qyj;0Y4^dgB;A+Od_%U%;5rG69+o?U>}LtBD2~&pRxbuWZh|G zTQnPj!x}KuWBb8ST}R$#1DfFhmLhW2- zxQNCf2wkt!ZVH~d>wOq_1p;+8_$hsO)2TfTQ3M~6+;O)3OicI!Sg|Ymur%v*++ckG zR_yxTpS+L6c>6=Kvk!~}HK6YHMLuGWQcMg(>2!M7c83AKO;(LMLcl-}$BKQs6vLvfkcbBHZbQJf@jg%^q^>~05mU^=&PP+ zL;Gl!YomGeDAMcLC#F%Aq9)sCAMzOkzX(T9Bn5HzVs>HkHHh-J*Skthx`LctKa(po zVJnos4&Ct;Ud$Cn+-6*30pH$S>eq2z(1P=^R@2xqd^m|nrco~2qS%upLX1MrI4lG9 zf+7vk8qps4abjbWqL<_>T)DD=I3`IoNx>{8$x3pC&&1qKk}gOU!(EcSUkMe*aZl95 zeqM{UV^8@mmS`!Gpd(;?Z|KiDq4#_{o}R*Aj!m7xL?^de^8nkQRLQ5VSiB!rmrIE` z+Qt7UKNbJAG13Jy2e}Hk(PAx5pNEqUZJL6RWS}mr?q4g54sw>xdGDtm?bpbzu3(au zO0M4D??+{#8kghKAs!9W$BKy)_qZ?;k zzsc#(q%sSh1ZoEO+0k)iJ!_<21jcE;4H=yjUd^gN&HvI+f2l7Fxg`lKD53>Nb7e$gcg&@B3isL_&7>On-`3Ye%5q&4&(WA6v zGRsr^RGgv``^h&~1|hN_q@?YIlS4oI7-I-2hu9Z0*;mipiJvh^1!I~4`8r7B<&xu> z3t0`>%M@|kOvQx>T-;RScn1UBR1k&H;M^^O;++f%xLpd{=gMuj3jFF5Y_=&*Ua$~g zLb;14=)EdYAW9mY^zctk)(=REr>H#Ml7$cQL=W;mB@NLRH|e8LdNt*DXzJxHOw+ns z{({rdDuv%*!);4B&aV?dFwe~}#j~&zT1kPqq6$i@=}+xf%{T_8_9FTW1fzatPyP~| znJi2q_%0PI*%YC#Vkzbmu4|2|b1}e?1lL}mCZ1hto`0!0jKch5)6Fw#bwyY3CcvBO zYL^TR+-lZTpRS$COaD|3SZro}-}xY&ALL_BB_dg$C28NG zmM#4T#}lhK0lVDKAXnsltxR_Ahdm?i7x`NQdHlP%f&*y`!lirsp#&zOl9WUhl-6HG zj4?|EYSe1%aGQowYbFr*Bx3~+1IWg1c{e}>Zk4`^zZrD6dQ)_J+fD{-zY=Q)?3Z7L(j}Wc z%L@r#SO2`}`k6lZb8Sivl5HtRaw#chiB~auc0KBoJ1Us{&ut|oeNS+(CriG~3B1y< zU}Y&-j%%Tk?BKt3#=a}gNI^H6Xlz6OLhM%3@qwvPByPyzW3r!?ME}PcXUx$i0dc=_ zW1#(ArvRT+nR#_t$5sO4D~08d*5{Af*J52|s^jHf3MqEF>X;?qzwWI3(#b7VeEg!z z>AKQGp`yJe(KxoE?=n$swF2Ww<*I2V=vioXNO3azxh(u(u?t%oOi}goxymyG&pILN zt+V8yAt@|#-?-V&mQS1TTwjPW@)xsLSw9(Ydsi#p)LVs<0i&F%x0hjPUL7m!-xgfG z-`^(_&v#JkM}|3wW}rI5EN0TlFwazjJM_k)rQcs7T|v?#KsZgxM`7q=I+XFia0;es zXyDbW!Pn4!o_Fepz=5-1?GPz8rS1N1SVi5?!Obv^Xq+Kw%z(@=s@||6PqX@_XTD+- z9}1lY0hHRFu32uSJ^cI)K>_mNp$#8$8=~QY0z(^1)EkqG>OkV}>9KN>o@k$!u)Gdw zd_pzEThNwW+<)d)lZz{@e{NW~2O1^6moA+TP%g!+EFDc_Y96}Ct;20@kemQI4KNE6 z+^CLGIJ!_i>1`L8D0Y%36SBZVN+%m?ZDklG2`>}?DjymtOiE4-^v3i^6x0-y4?Y^_ zf@)jXAN%rX>TPQQ>b}z>>Q{$*_GBAPQc&#_uiBG`CXE+cOsPL3+0SeYQX(JEc$Lk# zc{{eRi~75ZChE@yhtCEK&rUkbMzzjHFV4o^&&Id|A@qM-pY*C+LMTyZNm2SCAiPtSwX-Xhs=4G@>(-uHjORSV7XJs^SYxEorPn zq-A`f;_s1S=M@AC4OT49o`>tnkBGA4;bTKDIZe!lyvFfJ%-7Qm?zjKC z;#nrUx78QLRY{~=2@25gJX%k}q|px<@=P_|^1JSJ$KNLYAORgO8ONpA5vcy&k-2+) z0`5x57#X|EeQAk%DNSoBJz^;be>V?#w?Jm82((jtxbu-`x3GM-GGl2FLkeBm`^y_6 zF77Sl<0VgSosF(R&F0cg3e}Gma;t9s-=ykDHuhYV_Ct6mG1ixi}(=r>qF z5z3EY^gTpx=CbZ3S!pA1C%m6;a_8Sd{=9F}ybWKMp}jYZmC}f!JeVvp@`$DS=z4f5 z!ubkbcl$1Ba8vJj`9ZG(c1K?d=wuaah9YaPp^UDf@}8h;pCHMeU|XLs;Gf_uAH%tj zKI$2IBK zY4YqFwvLTDwZgfX?3S4?J1XQwtB$gD(}CmG91njPE|fotFv5e^T$;= z)M#=%Sn5tyInru#zX!p-e0Qw##UF`4B<D-p6i8YnMiME+AWoKOP$f>D z>Bk^JQJ7aH@us4SL6W+Dy-Jd{9fnbgzL&IGig8qkQJQ(ipjw)B*^g0%eJc-CEyH=# z#VE^txn3>H`vAiv#}7|dBPWO=%=A_m+py-XD1kqdyf}G&jl3jnHqd=&EH5mx z;#*O&T15p}VP+*I6~kI36>WcJWmV(+T4i(tCEx>?jM>o@Aut=nN)HEesy>NV^~g;_NnXAJ8#otOPtwOqFH z>$O~ux>>c|FE{G7Js)7%biCogKmB}BMA&rwv5gwQS5p9+UNCtt=&~ zBrhDhLA2#y( z4bpQSNVA^Qv(~!Pj=eNs#87@e_Zwp9oG&AucS!t!7`nI@dNgNysTcZM7X}s=vJMu) zkiei}cwtm?@vG(H1odKn_~N|#;!^tJ!f>|vB5KnjmZv+w`yLI;t&@4C+3bbZ0* z9W@i~sP9&f_mX@W&$iyh<6*3mY@}woOxMWG>>vRc5sCcz`qhS8oc*e8^y*O)&0qL} z?O*u9FT8+4qYwJQ7Z88&1?RS{zvT-$$k=+w&U4a>%ZrOE={renI~nCWSxYvtKm*|qzOcH9 z%(ri%{`Y)g`cHfTo#uDG;C%obStB@Hqi#D!96csGJSJZ{Mt?ZQAUJvEc`~TENsf_~ zAtn`rap@WLWAwO2(bV1g&~}g1JAa@{9I@*o)g)& z`8K*WG_Q7+b>`UwMdmrVx&q}Bx2o^vYGoGh7Oj;mJ&dsS;=>5wj@}np?RqRJI>(M5iy*Xng<R{I);^jRx0~}^#6k}%Uc=?AU8F1>j`Ck* zrkW3!}pegCOb!iFvf@pFpAL;NJ!cG4uSu zxjzF1VC$kl^)yvbEUNC({KE3fY$pKz5-1$4IJ?tsb?N9Hn18>LKs|?A4#YTIL6e!o z)>=i+SbZt8ioKLC9wzV~rwKH_XhQJPFPd;V{5ws^U9s(0nLu3b>*W83tq{HZXItSH zO?Z^i7tql6_{k<1CK$JE9(EgRCK3OV6+nO33UbKU@-$Hsiwk4v+v9kPlV#iCZQBtM z+fh6_ky<-3R&M|B6c#s-vljo}QxM*Dt=)AvtbRwV@;9Es+wD7(HxtkCeg04tRyU9d z_e|d8#D~?91ijly%lMdF{fDa1^(T}7i@g7vs-U~yd$@XGwR+jMdL6NPTfTZ1aRjJ1 zf*Q^K#A?VP=pFNY-*xW>7 za6mn7BE12X!48H9jj|}v<2=mx6 zi@b;)xrl4KFg?0R@L2eZp#b&6PmiG7>5d*Ai4mC@X)TTJ zi~QW*`s#jZ75eBXt>XI8!}SC5O?u{aXZjUM)m5=(AWz!O$K{*yhnq@*+bZ7M8tvOU z&)bH~+oty0mgU>FhuhBtcVBq#y0jsb0irWNbcUZggYv(CGF&}+1VIWAq);|HS5yQ+ z3J|0KSxAB`BtaIEAPY&5g(S#A5@aC>vXBH>NP;XRK^BrA3rUcLr2mA4q>h=0EztmX z_CU*7XTRCdvf1{y*~zona6DibH84RFm~=3kEDa1U`yC@l&)P#xi=P7jzzAiFl)1w* zL12uaFkj<79~nMhoj%{vI^VVk{Jc2Z{*xS({v-!kea0qMm5{`Ry>mZvQ{xfwv>zH*57xZz z{8A=@Vma6%DD-2cv`mtx)W*9*Ew^cZ3W0t>Ot%Jq6%_?39!oFnsc$wX-$=L@>K5la zG`Aee=bg*9KwXPl?~xb&VIGvNBWErAJuc|pc4gkt{kL!d(bn0^^|i~*3;!|w;QF$8 zY{^4FN<Z3p z_+!xMAT@2v>2S*pv?a5ACdYd&Ywf1-{ZBha-g96|a9r-aPmL?F+=GJ>Wpjw7^OF)- zM`GCiqy*-)7g(Mra$5)MpaVDSLl4?RZ|y_3%o&pLi)_un4=7H-%U2N(S5XAlF}&At z+Sdu5*GZYzDec#3%hwqX*I5KNIlMP{+BXHBH$|B@CG8NT09ii;U8ix ze=Hi6FV0mC&sC+*DC^G|{d*;ZqV&0fUf>V60Q7qep`mOZzhfS}R@D7#t>|v?^Y3d# z!v_n8+p{qTOJVm*QFzN|t+U}Fzk`AQQ2Suz7Z~XM4Gb*)0S0#Pu=j?SLg5$xDikdK zuR_5p_0Rf2@Henfz{|7#x9ddY$k-I+YhiPn z<$P+n{2gg|AY*?hV*lj}SA_z`XRp~adBoE3ekKlVzWq6I@NMaj#K8eLaS--L;y`)> zoH%Gh4kjL4AlBUHNZJXF{b>&<9NggV{>2^`JO8EP;-Hw+BFf+90~v1nUD` zhet;rHY>R2nF!_$w4VQk2b=)GJYc5W+k6<8p7y&j{4t<$!;1gxN7{h@oK5%qN7?}D zTx9u3YPsNiaX<24Utjy8S7x4=_&iZFP}?)u{Ncie;L?uw(n0&u$@B7k=H-X>OSk1q zkB3Vyf-4{1D?jb40MDzS%&U<0t1t*TfV34LZH0ebTY>c7B?nOuwEz-dhQya4@nuMS z84_QH#FruQWk`G(5?_YImm%?GNPHO*Uxvh&A@OBMeEDAw0S1&l!dYti^>L7S>f zA+3yjP~_z-cW4EENEU4Q7rK$+Xw`T{E?j;*_Yd=Xa#L}HSsC!M zubZO}dN2tdU#>JZ?zV8=ZNG0%R5ro|*vT%}DD>C2{)Wpo-pkk0F}DXs&tA9a^-Meh z4KzKiM$nS^OR1Pyhb7}%dRg8)$v+l=%A~b^l!_I;U3;%l(8Rns95VP>D)zJ;mP{HE zwED*Qq;6U2(`wr9+drzCx*1M?WQwy7$c>CNted}pNCY;NMxs#hj80uMg`y-MTaK8J;T9KoP zGq|b&>j}}$Ad!9UtJi*F5dD(t~UvZ3wa!PP?Osow$ zCG|YTv_7SXJbh7dNk$_2P#a=p2>eF%sd7|C?Vc65$$79 z+B32CGl}Ih{)e-tM`v$Q&V@(M6f@6Mtj`tN&y{G;H8an(BF{Cf-OdhCxnwaPJOB(w zKX$Mh(mTLmjR?Ux9uy`=?HS(tazyBell_G98!iW=av3ETTB`ZC(HG`Nz$DF1RNJi; z2YZ_r3+tfC66BB6qo+iX*Cg$yX`a{MoubV4>kQtTEZLhJ?VBRco06kb!iu&_=q|yh zw{=r-ti)2l`FWW?!W!(0&5DcP+!vJ>;#oJ#bSbVbp@rVm@O6V!L=|?}2}qYmjadzk zDET7kc5jusIeKlRD)ogu0H8{B@2iJ$S>{|uu{KO1KMP> zfPPISnGw(d;PV3jp8j2Y*@O;?AArvFTYQ-qNkS|LJ$t~HO18kSk-=y%nbvSAFL=U8 zCWF)6=_8_I;aG-{XA@J(vz_rQsXz|u5C?t!0DKbCFv2lHQ9o69kEfMrKB6TEM08#N zBCokJMgD~0=ivA<0Qu$1$~~`+sWRwQJJ`>JdCQ;Opx(f=T&^fZgdoD>FU;BiKdE7I zINe>@td<+1M1pFYuB`bx2nlGVIOFN35Kv!D`2UJ8Q^*{=lfOJ%tos#TJ`QfcYvKu7 z&@u8Ih&7HUl%vxC7#CJgX^gSk9->Ag1AWg6N4K}RXXq*A91lW_=3;&q3|7_E zF%uzgBEo#>B$}VT|6C5L5v2GWFXB7e=dZ@OEkU%%SxiOSzaR9u<{7%eBfyCu!T?k7 zB*>%>VM*~wiY!nnJnN+HmR{mVe3>nRQmCe0032WbDzYJj^oVHC$Bybz$4dsWYASVx z=G|F)MYiS_blU);eh%uXandNos!aj)Z4z<*YK6}V6>7Cg>io^S)RSEDR16Iq(lj-r zTmn{=QIGnVr^HJc$3_?A@);G)D=g){2-P!-7Z9(V1K4|*pa5Bpqw<#b?hMQ+ECNzR`jAc@7YG5>jS5IDZ9 z7eF+}rXPk@_l7N+&(X#plECiDAYMhrWG$qzHCi-Tzkt0r#kdP?E7@{Wbt}~wbjNO- z<%<8pm;lj$-Smi0`B!|oE|DVQ|8RV{u*GhWwwKF(n02egev}uU+u^Gyd8@;OtSGnR zl!|eyIRrK<>9@KBOxgNE{^SYh%lDE5k9~I?wKc6vfcfVW?@?;}0Hcc_ z%qD=IFy==tr2AN@K>(|6%%9dz_o*S9;EU<80M;&DWXA?U{EM+bUKl-8e>Ndvtgk_$ zLVD=&4MMM2z6Q(s={?J56Q)%D8luvrhgI7kOyl%5R2xSBc{iH~L&DcEV1RMn z#x5?QJRXzSW$=o*QC!ApJT?=?@U<|zgnYtyT%nL5rBb7Wa@}}*g`XjnA-km7^msyj zmm!T~qomfwcw#$@5uHDXT}lsYBB@u%h#|gF%7|qmdDPE{DW6^1OnD+@rpt(>wo%&3 zX(DwQ#+a>}UB)h9B5g~^m}9C@#;I;1{m9RlYlB_(!}LVPWtTC}d84ey#YE-~0eg=BBq1PLsI=u%=?d9P%*LA zrV>g`@(Fd5`LzC~QidD~Dbte$tlg$Ej!g;~7n6m&ux4`p9Ev$uQ$?b}X7ce(iUllF z#j^fpiuoK$CCXDJD&1zvwM|OpPE)1Yu;%Z&Ih3msral@Ao2yMVDc99am0A0nYiw|+ zG)+&HJ9nFFoi}l*v|UV9c*0ufz;eF(f;C+kC~TpJ+5E1DW%^U3zl8xAr|N+6bX8)v zg%NYJ>WI^HbtbH(i7=;kRPok#iYpz%3~-viW+OZv(B3bykleol!Q^2kR@A+r6MY7u2JUMLJDj-)M2g^T8lS5j|Bz^#*(! zOu{9`YG5Z>9Z41p9VzB}t6zWc^o9P?+~b3)_~GWut{HejQMu22 z4CX-^~HbGS6^^Gwi5#LV&IWoGK?Q_AI2^wI2f8g!zgXJF2S`B%$Hqk0M#l19R*{$iKzw{zO&Xbp~M&L=!*)n5%#&`bHdp9S+qYC*` z1C)>S*=@QP-0$xyxhJyvIh5DoS8`-Al^>376j#e1WUy&GqMr02TO~h{*GmyQ}#th<4 zf$fz2bb}07cO_f@RbSck^l4WeG(G%QtF408YQp!%!=+6+kgE+`CHI=UHu#nfAR+<) z5YPaCAUae4v@bjgmctd@BWT2@SdYWRqM*6~sLx(;A)xDt#E?m62qnvJNW_34m(7k> zwxBPeDW%5jvC&8roA}&14*KfnWI+_HMb&59ogt*5#I=o++anps7&?Bt7^LGRuZZ}> zqAE8(!yu5QahpePsMT36w)x|NsaX@?3$jqE%8^!^`#lKu<-22@FaAgbB5ChV^lFgF z0Po$7Z4LV3$<)iGT&nbk;*K&veqLWsJ|ldfra?Mj+}bKeCMuem#U$Nps16Q3P2L z#+Bv8!D4%$_9dhK&H2G{Z>IKxNBarTEV8I2D1Tp(4d^^2v-_G#7W#^K{Wcu^fhR-4D{XAPY2#`pc#)pX@G-v``Uw|JM^UL zId>dD=rjgel8Rt-%|?JM(V(jTfp3jgf}$|5O5)9Rlf~z-*Ml*P)a_^El*PzRC8Dhj z-;wGVa0Shqm~)$>vq(l$Knfz{iD484oR>97d_2-GzRQBCnIg~Y3L&Pq!q|p!G6MH* zPsRnv%ihQ)k}iY_ku&Dk)bVk`GAl}Knb#;P$O=!$-Lih8PTjg4mQ};H zm#kjHepHxM({aYIUekHmpH<6cE5BaL_2^%x)qwt8t){Ggv&p=o9gfrDQ}3&0i|SDk zPRrUEqh`zc8eykvUVLGJDK`qk@XUnHJ)#4bhjHhKY_L^b$+Pa?KSqzQOf^nCaVX{Rt)b13#J`3G32@|#fX{*B zH$C8|7)!y9AkQ!(lW$OiS*8!xioh+P*p?K@xJFI(eZ?{T0S)1Gn&FXf!Uo?_xA<7h zUU%3+c_813V|_s5jc$8!AhKO`uk_b=`?i#8L9 zZRfxY203#m{00n=K;_(mr*2lKp=70>H0NaaPnf`R)j=^Ud|`+5p={YMk@al2L{}ZG zMleE`)$cl#7}V1GM3>P&xlpF3zqwFm=C>O-Poe~4G!h~4u{lt$oAR zN5q)Midz%+;wK-!=9s8ozJ#h8S)w2d*)4yTXw@*hY!b(5=pU+$sg{XAEtpQzh~jb$ zfFkq;Yg@!ZfG9eF4nH^?bc<~|VgLdvm={%|t_p-8;M%14Se!Msr1mdg3WmPwt^d`XQpg#)prT~!H(z2NpuA5=a!n=aFA_W&yHSj^R0F88FXUmj*j zDX_jYu|HMxj-W`Orn#e4_?8$gdtmXM-ePyEOuP5c^@CG=8hOda&^^Z43(0M|^~o5kyhb*| zotz;Z227H0Uwvx#iuW^aldsDnui#MM}o z15z{*)r|Zxi&fRM^Ao5|T{c*x)lo2ps9UiN7F zVat2ZIDTZ7UN4rnu3kO)D9?egf|RZ=H{2nikFo>+noyk$nT)rn%s6+i z&kZt352bfz9-IdHrA2%;@_SQNvYndgF0~hgDwwpFH*&(0S9!&E);$-4k4f;O1`aA2~UMsHZMivyjlXmmPW~V32t2l0C zvPGpo6enXjIbGR4+`8=o<5wmwADlJooSb=Ec4Qsv%(WhY(&5ocm4uvh_~-W6$YVlk ztZAPTj=&JiaCf{H(yn+jExy8-1V>!J1hw+?U8NqsQ*e*w@y=uW$7_6-%%nc>lUV{m z)if{GP$^lvw4c&e3nI%KTI+pVM!}K)0`EcX!9SG!DF68@b-a%O>1xOb^sLc+!#0f9 zluLG-wM~V(BB6tWX;(CtpD<`hnM{YU_1N^&ZNz6Wa8E_38AM12KdnL0cZ%}s z(I^txh8o0NCZX!Rio#vc$9l5UO99rlK;Elr45l%S7N;>kv@M*PvY8cQo`Pq8Xj>e1 zd{lgWwBYp}M}G#)|JZ%F0(L)*GQgzBZ@gF=-9Bv2`kWjr#X3k7RiBRfd| zIU|a8jQLpMA!L1pdAgE={G9;6^+G=5B2I+FkX(r5bUdzPGXKQD znEM=YBKr9X06@t1C_{}-o6Mk)2dr%=#YqR|)RZC;nejY%tXN5Wo-ap&s48HhWNHT1 zw#eQ}M3yMJ2QU+pxErg^xPT_zM|Pvo8YwkkIcKpyJ>y#0H&I6fYg+}cEA9|2^ugK| zg>b^(X$f-BwPu&6PeufvZ@xg4-fn%NRKnbw% zBjeJ2tTOuryT>MgxkVS*dA5@P&NfJxOAkG9wu@ZEHbkjK537E*n>N5U%#ceT^kQbV zhqcEx!m&jk|8lmM7tSuqpUZ$48`vi*ViyzNV(^L;*e@Gk7njdvNT~uGQ0cKtsBJN% zaRv@*!`UZwa~Uxt0*8!6>{F&%j9BV{!`1=zX&YR|95cWX=N|iv^A=;COW>#{oI@5Y zw}}Au+*qK9Lk?!Ei3sc5*T?{eJTh)m36;6=#2$wN=2lY~=edbYIL9JkZZrABxyeEi z#}cJhGv)fZsfqx{kA~dlYBO`w^*xT|j;-cemvb}ia88x}+!lJ+^RvAoPF3-(7DlY| zz|jDwntX0cGnM(dnI5OQ+Ez;|=lS_%IOm3LZY#UQ`GqYJ=ccLF|Bt=9{L8Y@7JYw% zq#)8Lp|nV-bayvMr$~p0bgD?)lprD9-H0?ucY}0;w6sc?czEWVYp%8Tob#-+_h+AT z_OsV`as3C^i|f9>zcI#RH>2A5#Y3cf!viRsxZE#ed%zp#Ew*0W!$ z*(t8J@dFCVUr-gM`qltdi*|}iYIb&t&&#`+cT1|KYpVWh~yS806XAs~nYK*{_<=w%f0su`J%NS#aCkuU$d19MrAH*&Wnx=M^6`?A7cZ zygTYsHB8J1+0uQ3u!Ru`%MR0rw{* zGP>kX1z0YIVklU|`0Bk^rESS22-GO=_oKJTI(DBF8WIjrzZZ%eLaZneAfH{%;gk|} zKjs|avQTh*N?3rK*pFRjSUJdGPZ`yxWgEL_Z7aPZ$_U!aOf zdDnx5OZ@qOc3!38sD104d*zTH-zASFZ`&1ZS01A&M_IJR7%`}L!*SSnd5~+yN>SjK zM~=6>%jt%}aOC@k57LFdueIRTcsv#5r~digAJgsW*v(XzlQ@d>ErBg=gsG}@VF&(? zRavnCbvCOgJCoG{%;vIGq%}cn^rh%00&#NTST9Z(fe z6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW6;KsW z6;KsW6+iSHCt*Mq-qUR<@1S=p*WYAevA4QoMf!>a0;&S40;&S40;&S40;&S40;&S4 z0;&S40;&S40;&S40;&S40;&S40;&S40;&S40;&S40;&S40;&S4rXF<0*`>LryO<5n zs9OpZ-xZ@HOrz_8cuf{Ls*y@}$hMb?rPZdxVP!&)WP!&)WP!&)WP!&)WP!&)WP!&)WP!&)WP!&)W zP!&)WP!&)WP!&)WP!&)WP!&)WP!&)WP&J?9auCg8_7k)dL&@W)2khrjkC6nvI#FM{ zqX1O_RRL82RRL82RRL82RRL82RRL82RRL82RRL82RRL82RRL82RRL82RRL82RRL82 zRRL82RRL82RWI2jVI`OwNE-xJs}i2OD`$BGm_-HD^BZVb1F8b50;&S40;&S40;&S4 z0;&S40;&S40;>MWQ1!l(7^}rM1^ub9IJT$_R)=~;W2b?LH+>eY-sk*Erg7LPJ*;9V z_-cqaRt<)<)ig!FkG`hb<4FbrjEL9uLzWyw43``cXgfjOkxE~Zwxp~g>JpVLXf=|1 zTo{F-LVS^|8fk-%@;SdGs(SdT(`!4nJ`=0q2oWDl`6y*A@t{h@OQ14saF9`O3wy*3 z)g%qyzJT{;l2jhO7y`l9ia^GdFleJ&J)KXKz$;RVtErO0tu7G!miXSQe?0Bl(59f- zj#`+l3oRO!4JyWpdeFD4ZfK2*3Puf@c`8_WhmF=!9=7Aj2d~o(JFP^$1qd%uA`obD zzB)LYEOO+kuMlds8j}rEzaLd*aX+<_$m>@{ifEPTY}}rZlQ@sV7f?qg*_cX<^=r42 zY76mH+iL&dpAK%-Omlb5*ZRd@EJ+*f>KQ<_MO};Zet(k5*40Q0>5Pa}` zYP$KX%i-C{y9ei|(=ETzpZKB+nV^!*v|`FU@gr$8!Qh=~yNY}gz##PSvd&C9S@#np zcjH4m_nD5H7>>cxLZ*cAGo80&97DAlO-XBKy6z$!Us?#6os&<`bn|vQMz}Vb-8h@+ z5yfzd3=}e_C7bP)m2rxWZ8T@(o$XUaI=#*nvS8Mk?bqpcimPt4xZ^%M@BrgakE$qt5wl@$d1gltKAl2}+}o_Kuxp&Q z3%zf%dtOmXhEmE`0Y=M<|tIO^F@?d#uRFyQXx$_Q_g*Q+>^2 z)K~6TH&X{{-z>NIUV6S@5P2liVU5mWEEFq-h8;@Cxt>@Cxt>@Cxt>@Cxt>@CxwyCxchp ze}q@m{s`Ruzricde+RF|uFo`LFwrU#raLzyBd`$`Zk36HQhj2Sh!@{89d%9QweC?x zD!bKiN-ZtqaYXeEnO(SQuauZ%oTsW~|9Im0v6XNe6Jar*i72%}VyFJp+xSctOB>C6 zK?VVJtTxW{;fY(EwbxaBrZmzJt@$!{FAu+DjJl1Dk3itv^UY+i3(;!RTXu`9X`kJ9 z_!!D0?b@Jmu1lQr1$SHS#B=0ns7vzk&)YKM3S%MoCb`(x5DHYAqB8_XZjFK_w$BnZ z(%dGC7e3t;2?rT97e zo?XMY_nCw|G!|D1q&vK3s+dV^>1h)uSSeDjA@oe_JprZ+wr&@Ykcqu6C)}enBaC?fZ`};B_)%O16#R0$y1d z*6#qkx@3_wS7Ph?~KR1yt<65NE zWUE~}H~9wXT4Et=r$0S6Rom@a=GtUud^R`Tg5g#kDE!EjY<{Lk#;qc@>5(Px{OkzQ zttwa8-d1ORZo1p8rn<@gvHSe|GKPCym+)h!`1yq`8TW?CrpImt|G&bktk+m3nl6Tk)IBp~Z;_WSbfvo2*a<^< zmMTsjS${v0lEy73!5Zl*7J-?CA#SrTetR^DEaFz0EyMjfeY9ov5aS4nyxZG~GHKuN z6a5(lro0HSz-Pf{!Dqo|!Dqo|!Dqo|!Dqo|!Dqo|KZcdxCRx!tPpRrl?$b*Pk8jTOq&dKbf4>o4agP+oD$z zB5P*;`#aeSOk9l|)xaV}xt;q@X}R)HPV&Vbk`F(842=uI1qs7Hw?2o14VHk}4f5B&0{}etOzqn^5 z>peHw>{e5|xbG0;y|5wT-Y~s*;NIiCbkgkJe71P_9Mfk7UDTtUZ0RUS)@PNZ#iN^d z=@ZUntiQ-EDNNpi>=x}5mDKF)6rY!OGw+sEP1)|2)@>H;mNlO4?7nHmVA(70B(>Xn z+sjzIS24)5yH`0X!?IsBp>4NcJ!4tCU$fx0yI;G4WI3o?kFz_d-_9#OXxOXSJ$QH2 z&2rdyJY{#-^mViNu=(fd?qLf8ll7<-jqK4;8`iCoqjp^0y`v7U)njACRRiu%N@R4& zp9-*C48>5ei1F2XuS(mJOAx40-tR|mlXdJqDKsP;pnfkDIfPhIB0xU7oWm(4>VC{Q z!eyc0_>`~!H?beP&aiTj!JaazPtAb7TAE$Q+!gdzmVN5*T2c`H~D`mySO8Nk=?9-|0&sR9emKPt}8CUIN}vI zk#nW~mRRO>H7g`h`tNls5tO5mxT1*^R%KcZLTUtp(gY!?I7L|OSJ}MJY9ClRzsx$- znay7D{8!}zT;*8J>Zs!!om49Yt0L8aIj)RzVr%7&`jOJIi_ykZEEJz4UzELxhv)uO zC=NaEF6C{;dkD_a^o*T%hmt!Xv)&JEmV|1xlWP?J$gzF-)g zZpdwgO9~l1SPWF|yUxZnmizdbvVitcfrjjKKO^F(_yOujp2cZ=t+`_h+m%%|JZqF!V1SC)?RWuNY7 zwRlY(^22m*9!&R^&de1Qb;}Wg}r1lZZBnO?~m#BbnIrT%SjwX`j)^JH^Nj^y08QP z$EvK@fI6F1l%2_H0cLYqD$<&uHTqI@esfTcrSvOoUzGPf&0xS_z+k{&z+k{&z+k{& zz+k{&z+k{&z~$$}VVR+YiTo$3m;;5Ld?{!JmDlFVkIkRgfB}O6g8_p9g8_p9g8_p9 zg8~1^4EPOk$R%@rMcs?Dx3x-rtTrKv#;2d9-CQEy$ergX>U|$e=<&IN`dZHyl{y2# z>X@e>)YY`}vzxDmP?z{^2eS&nI7%;?72ks_B?Q-a%BT;c0>&x=YvO8n2kO9l0soE1 zr~}EXomOlk^23&QDpUGjGK$4t9K+?)$QaqP;vz~?^ZgIUaH~tq?n>$mt|TZ68y|C^ z3StfZWS|Tr$uT2cd(clQ6Y0G2lSQ-|ahTQoPhY3}7TQ&E|2}@Px2OR7TB{n>=K0^Z zHv5LuW>Yz_+7A}cSTT_|<3z(gL#YNz2J2+?(geh{lhW#lZ-($6p2u$Eyi>X_73gmDs!u zNBaMLt8<;3?H^m6&3EUR;;sgg24ueH%UAY{J*sV!J{+8x(;MX>t|wqG7E9b685VHS zM*eLmSo=Q=1>bpl(4V*dQpRLZEz&iD-@%KavA@(5j%%3r^e z<9T14y=Bx0QHQg)|Gs_szqkRj|GNR#E}gsydb(#J>OD8TbXwc<^uV>nd+BWHtOfJg zQJ|>LD%tW^_P@;v!WiIBLfIPo|q zZfII^U20H5B3i_)}%Zd#-KHzFAd2jEQsvb%BaQ(s0VZyy$zo zG;{9SY|HuVU1VNGkv4&K+^%%2)qUZl52LgiNj25?dC+%6DFihA@s2Yj7;cHJg`R6< z5W3Q$>Dr=V_-Y1yyXuD4NOg#pKyI?SZyiLbNWpE}dp%Un(i=BkJwB^YS;ON5k=T`d4*CkA+c~ z_?A=-D?5qpT_`Mu)2FH%u*K~q?G^O*D&pR#(P8UJY)f6YMOJEf)0Rd~&3t%4AG#r# ziT==Ik*KSb^jwBySb6T?5URfEZ=-5VcM&8*zRixAFTp zoD;f)EIHz52d!kBlO`K2d1_~e9FWc_8$wnB)3d|w-OgzzjaDLOvm?(jTr$vwttH6j zMuTMj_qo#hU)+f`|HquTNA}t0*cP8n-sNv2LC=nJMW62IEPtQwd3IXe^7O!c`Ny)V zrx*eb3d6`Tj2u_=Cdsb=C5HngCs_)&Nh-*O#-wl1&to)gRX*!RhFLZmeHz<-xA+S$ z+@Zrr;^JsMH)#L@^O_hc*X16$w_jdI2{DS#=4A9&LNy$&@bKbB}-kb#aWYOHqLaP|u zZ)!0DCYDEOdxAI72qP^Lk^Gm!@<^6IRmMd9_9sOJ zMeBR!XarfxrFi90j;^G_r_C3T>hJp<2?Q} z`{r?mCHg$R6VC$Y=$OQQRx6Io+iDiH88k!m1)RUJhXU_tW|$C%Xi=8mj4V|$W!s$@ z7$xE4Gu3!?z3F8u9xCT^Y}tqC9}~L1#&ZNE?q;p`Z_8_uv%KWrO#adNG2^?9n)Qu| z#Pwq>A?1A4nBLcDScr>1U|UC{t2>KUN*n|g4LjG*q@=&H_{Pu^d!jkKNw4vgsYz8qHfAxZ(DMm@LgGwW1}m{IbK_Zz7pm-g zp~|EGOqF^6rpl6kRplg?ii3r;!TwI@BPOE&qjbFWHjs+V(P_(SHVKQWru z;4OZ%8}c@2mk6gf$Ic|OD7ZeRvL8|

    Gj{8U6S1azF20<*1Ynd{bEwN+w}a8QRT5} zRvLfZwMfKR-nW-eBCn9>9##FZ+IlnO2CF&aZ}|?hiV!n~fc_}f`aYd*j^vUQpyXAu z9*=JBX2%Hkg|(ZQp1sl{PSNoT>$hY*`?Z>#;%XN*?gn`dT8KC&O)qTn_IM7vHan-C zEo_NmdW{B(xMYznZp+Ggjm0)!Y(-!Es2b!okt^a_q_eoA)8jQ&-RxTCzPS4U(|e{% z#I53g{-E%GvUb|-e>EjzKL6S!`s{Q3^3N^V=iet=o}Jb%|2hnM{&Pe0`Sd9)gjMn2{&~ zK$-2QpQ?yx!Zl*|r{g)9c|U-)M}6;0{1amB$Oyfc&u=>?)bl8mMU+kCzHLvCQ4g(8 zN-IwPjaHO|TBK%uXCiTv*jnO>fEt4SxIoG%U;SUYbNqjB=kSw~Kis*ozw*uB+~ zgh60pdGo9;GH~uLdx7}hu(>pnbnZXSI9pVk$)nJX|!9amk^lDE+;o!7l8 z=z@4w%6UunXu2znKEcmu!xDKi8|6k@HoaHn_#-M;D?l!BK)~L)M_^{%_^8g&?NMBX z{;07GkJQdS$D>yi^K6o5jn&CJx1DBn>1DB>iV2Y1Zif zo}`gu5qO_TGF{GZ4;Yg=t73^+qFna%MJ*3VWd1~aR`i8pZAQUFy%Vok&NJFxp;XY? zP#+EX5n&cLuF{Lv$}#zI&@#)M8qZhkSL?^TvlS0RVprb zI1@igZE_MNU2N43NW`(v6HmXb9>Vy~wrbn$5aj%mt=gWi4XIsil*|I(MwAgd^DXKQ zO7KKQg==KUmJ*6nd{+wMAxcHJxX|g#2&8~(;r=6A!o+9<3StFu>6(5;oGwYqiM^E# zOUmLo={R{&c+{`m^k1gd%+(DfFD&bg^*k-lr?Rh?*-OknH2!s2p!&+G_rzGTdQ^ih z)9u(I%+hTws)o@ZeUenHr>q)W1IO|@D9dddV~2Rr{s0r0BvsCq})dqobze{G80+Jf8W6U z4jsqRMs%!memMNup8h`3$d-P1&Iq+<=c1QAh19}MRP!eK;kv-Vs{?cQU^cD}_4KN8RPey>MG z7**o$5R83YYOs}EV9b-wTOG^5-AKbpX22;neXok?szZMjVdVq*Q#mfPgTb&wvpzK* z6W{ZhVciB+kJZ9#yN6#Cgqxi+as$@cX9KDTB`kahuOP&5=H9X?otu1vbS<$Ew$q=Uo2u=0Epu(MGd`P} zZozOX4-|f6N;W^!BjZ*P+w{nicYbyR=~k61Y;UVGKR4a&R#V+%|JZ$gei_5Pu1ol_ z)5QeUmW+GDWYc4}|Kh8(d;fPO=~nEV*2`6`IGwGy6RlU)Tk(!tucEc#6Soo2w-Iu+ z5lOWXYqpV?w~@NEk)gHt!usw!SlsxNrpDeii+I#Zq-NKg2Swnm(r|n(6 zfp5|7f)1UIr5$@qm=kBuNoEg%RU22yM!vqwf9kU6tZ_FgsQ&JV*P+#IAwEpZDgm<2 zMwdrBQ&*S2jwPQT7u*$ILXqV+$}2f}-D0x#Y=Mlf2tVXojOiHK_2x(V4xv)jnP~Pm zJ^c)$yaQu3NBn@Vfvm4|m0(BLzxiSP zv=FD{eU`Ps871&F@HOx?@b#aKuPI~xd%nKYf5F$WnSSTkL`MA;@jZKl|2LPQ({hsU z@8XfilM31Uang6WAUGyN7%WgT5)T75In_DvF~u^Tt-8qDF3AjidP0=`!R$&!Np6_| z3Qp>-)ON(m?6BpX@znm8j8gF-zDPcetdU37T%1Yj!G7xW+K#Qy#A-M~s!Po7O6m-* zBq$4~9dn=xVh#RepbR9*F(X}j&`)Vu79G8t!`)?5a!=-dqUk|CMVMYMBL|27>krCQsOX>7k6{HGr))n+tsoGF2Ph0K~CHV{Bdg6AO&Xnrid7n_mI)>AzQ>*B$=n|;4?|C#qy8am>p9|@;h*y` zUtepud%NhNE0b)WzIuqhOUb?ulXWHeRE0_a;*oMIVr=K$@3siv+OvEI+a7)Oc}z8fYA_+ z2_+)??FZ*q{Wjt~I2DNpf+TR-N3B!F^BNO8q-i+nx(A&~q}O*kt~*3(6D{0&dApCd znVF!QWcEo=wNTbrmU|NwgQJuPi#o9&anp^|Ng9H_1|bQ;Fox81bo&CzkBtPaOt@w5 zDsJ;<&tB&wHs^e?*r>632bs~Kmu<4Dv_1DwW{6)a$3<3hQH+Rwz@XbDTn*=j_s+Kd zM$ULHr|{0TC{HDx!qNb>>*-n@G7~u$d_8|`s|S1?!y--h8%r z_#D$`1zpsmoowkSNY-bSq{X9~cj?oAvcCJr{|S5@(01*0+x46_@~Sq9&Nj-4Hmdcu z8^>)o(b}nr+iB?AX}Q|zq}u5<+ZoK;8C}|M1++8af_T^61@Zm@;tk>r;%!h79WD&w z9S`CS;tk?0O?2~=&DAGA;^f+h;XzC^`(QrRvV+>0jz;-%?IF*PKC3>~ia3Op@p(IRjR33H}0g{vl*90s>9gF7d6ivy%nu+?pVx z2sWbXHNij^Y|IT{tTW-8)Ky0Msm}PZGHIG?8O@RKqgz@jS3c;yv8=H}SrG^DpAf`u|kC zzi|IWys_#3bMgMA!LV&;B_WG8;>P2gc%W&?Mb~gKyWN>c^fXU0yHGt`=AX@OKiVP4 z{U@{AiLVWrs%=y*X1Ak_`Xq7%C5686 zmCn#BbJt1xaAJ+LOCEKr)9v+Bv5)%8Ykb75BFiAU1 z}F;?HCxtm5(bIC<*EVbDXI z-8<#Yxv@utcBE@sGro0-hhAC>>F#mW)pu0nd<6R^&riGSnyUiI<$DPwZuP5iDp!3V zvI*ouyLy#go%QBrHY~|(N0sEyrmG}@9uKchIaH9=7hm;nY@<=NN*BqaUq&sKx_O2l ztwH33cE8b-XP~G0xap0o1tr0R%0&0o+(TI_S2?MQJFl!ZZJf!R#VMF&1stTxWM1!< zJyIC94(`T9|Mk;EjEEyR3J;t5w^FgV!sjt0eS!)}{o;EU_c5o!CmFYDH+gCsB;TUH z5_WYdb>aw}EbDd+*b`z*{;Dle@bYRoh0Ctt#lW^b?de+>*!~|9@ALnn;{Ce)c1}BU z6=ge1XFKaeJKK8uo#XbqXdU;6JJ{(vIJhJaasIl(9Ik4w!3uL&VGb+IVTC!&fP;vG zh=YiOh$p$TS|lLjJVFwJUF`U*Uy%jaVFWSJ2Dx{W9m+W3@jkgW?Y!pZ&|&FVFcW&6 z7dhDN=w)GGa{tK+hQFP&qhu}@@hw3)f6wvzA&I&#yMvL*UlmW?!oKG{(m&A|D!Ahk zOlaESG>OU9>G5)|E*yU*1eZO$;j{A{ng}r(wWCbu>FDrNOOshtsmtCBb@)b1S(8&FZBeHo`RS zOG39)pBN?L#rLP2K4vtg)eEypHp86yrzumy22LW6^m~#%pcVKG@~fC$j!9{gVw4EH z82l#I$n0ii;-Di}5BMj8-&o4R&;HrqcSQ7VHe2Au;CHurtm#4Ce>3=P*sZ^*o`%%S zLkVOK!su5s=b1=Yqu-Vw&{spS9v5j!=WG4TTiXeLzqNfXsWEg?_Q$d9h5pLgza85~ z_tw3*wf%NEJMPR7Q$X%cO?iB5@dAQEYxvx%$cURsx@}G^P~futF!E7r`wgHLldOF?enZo zYnS^H6(Sl^(eL_;c&ojUF|W?$F15Yxr53FHx|)u?6$K&Yi`H9f(loei&tld}eK7U> zV9g3gHNH7ZCc(0z6k=oMJC}O2DNuCcex!bDdkc@c<3Pno2^in(3Obf(}=G4lZ8A-uuHl)DDDuY9d#y&ye1I&z4r4fnR$ZWu`s^w0Y-6huK!T zb|Jqc+lhT$Xk+3{B?Ahpni|mrH&m{rrKozH-28 ziA2WmjmqJ8M&SxqT@`4oQ+*#FOq5V@Pb!g!Z(X-@_#5soegO=wdI3Tl3rAdqwj{Bf zPWj_bvCfXz%TkkXlRen)k+V>=)0PYhP}bUT=t!|Pge2<-#q|nMS9-9#-VIZKe_his znU_n5A}O@u1ttG6o#dXFe{W|}a6=EiWK8i(qu2Gdj=_3{(rI7XpU$T$n03dF=k*A5 z)m%=kujpaPc*QvdRX^vvofoT8zQ2zxt*Sh#pzp1CTH>*6 z(0UI`d&Tm{;OEX{5r*$x{6Ws9h7dWKZp_mbM~-MFPW zAQ#F>)zDl0t~o5YdtQ;i16N4uk|Np<#;RV~&DN@?niXYsp**;Qo^6*g8bXr#Si06I zjwQuTKeE$*7CinT(KA72qB$6}ozz9&>b1bzrKuFs8*H>g-)uws{mbAv_JHE1Z|$T| z>t{vL=FE;>th97A8Si6xiZAzaeHz#2(ieqD@*B(O8d7IphZ*dpwd9nP7{>1qw!RO` zneUXu_2cjJQQ7ekv6fQN8tnTxAiczTrwI+Ouyr_EL+Fry;L?|&YBZ(cdES%C*cvZ! z))azwufu-FaNPY;fxmjWZe94{3#`h)kv*Z5d&CrSL=-PlG9wIG%j=s<-e2!_R&3kt z_(eT}r4?LZk`x(`{|cXV=(w`Ri^AeIPFqDuhqq!GE9IGZ7=bV;Ep6}><@c{5)xx9H z35KXK%E?gz%ZKMHZtZeV_p>vy(B7dK6JZ_1u8<*r$I+)0d#YH0CU}0IK6ex^T-;@r zW^A|DuJiu+%bV95gRgqwva``vepGE3y?o&R@{%&mP3iGF3>xH|8mB)6?}pOcU?aaq z5_ff9?PbY*>KC&4p$Z!*g^`NgS84IO9XZtKvJXm9O=yM#(AcB#ZvsoKelwGVXNs|!rd;s4I77^BVkGwEGq3wlnRh?BO+YdpaU z9K(~|A5Pay4245-u$_Nh;T-F~OQ>^KqCTR(qLrSDSZexszE9=~Rra~37XNn+_0kGo zqHHh2Zu%E;Uc0RBQZv!M)q%><`b1ZQsTdlhh(law!n$Te9DTz#W?r7?nyt-5{F;gC zs;06Fj$G7@)|$ON$Ly?+O~#3Bk%aZy)i<_UZ?lg%UJE;c0o#?MIx=H6nPg7vTS*A* zn*gtZ6VuWl0ewzqCXP#dcbwk+!kWvh))!H)oRZKVrF}!(QFPp1H0AY%n}MZLf~A@; zq^N1Gx`~JzhmAw<%~%ri1TEv_WtKGM;OS_#Sq_$W1#Hz8^R2NlpOTo!!sc^?OHVlR zg9X^%+6RA4dh@;ia>WW|E6KuueGCB|_bA8Piy!u-5_2SL`Xk}`=TiL>J>`ajT8msS z=1T?U-rFv4&ChYOaPk=3U5_clR#=?eSQMT$R6>bc++Y0AL^L;a^#jAw`Y-x*t))%Z zrLDlF?bxM{xl23MOS@f5dy`B18%qZ#ONZ#oMw`PuJOgK@#n1x)T{}1 zuL(`932&~6oUVyttc#JZi!-iE@T^P9tV?OHOIxnXxUI_~*X82Y<@44RYStCI*OjK$ zl{eQ_PS;g2Hq=Nr)EPJK^K59yY-nn4XjyJ(yKU$oH+17R^zt_JYc>qJHw>pXj5arn zPd6T5Y?_d6K4jc9<=Hfo*)-SQw6NT?blbE-Zd%7}+T?B8)@<5!Z$6sZwBOu(e7fm? zvGs&>%aL)*iD%1MX3Ir;%hhtr&27sax#bbJ<(aqTRkP)d-@WBCwe@s!>)Gkn^QCAw z0RjtA6k#EXFf2rYg($EPg-h|gL;)6}tU~?;`4{A0kbgzee~ZDfi7c13-ahuqq8aR+{iWclU0+rO`m9QN|SZ(O-HoTN-(&WX z2_ZbziCSv;#Bxuq6He(h!#xvUFiI7^79OvPX-1ORZ zEc@+1H9i9lYm@9sqkXbKdM&@2Lis-QheBH1QJ#T^xyd(}tgf7L3*6En;7oClXV1Bw z3i%i0Uyy%6{ss9Lqt5wl@$d1gltKAl2}+}o_Kuxp&Q3%zf%dtOmXhEmE`0Y=M<|tIO^F@?d#uRFyQXx$_Q_g*Q+>^2)K~6TH&X{{-z>NIUV6S@5P2liVU5mW zEEFq-h8;_* z@V{eF=BRgOa0{Z+O^v7u+UGQT#-|&d7nI)@)2$P{&rfflk$CGg$n{$W8MEiB-V`Q6 ztBh|fS$*lOwjmR)MoLH-5#7vx`%e?k5Q`4{A0kbgn`1^E}` zUyy(One#7V$iLwDBOHH($z9qUPP~KNuGGA z`iw_u#6-QJlcXUiJme^h^(wNIjn@j0BH^O>LMLL%Y|mwzqxrTlNhjv5f3^zNtGv*n zW^y-|KK@b8P`Y1To%{))oGrwi7%yBC(pf>Kw_U%vPJU2;Dp329WG8SpjB#cZv3rtKj zLng%DE1^E}`Uyy%6{ss9Lzfn#~q(Sd_)^ct~}3*_p-WMt1l{p z`|@*2+UlEfwXRIG4k(02OEw2>w_f-%F)}6kUlGxz^(6R}OFd{cy1 z&BcpbcKwx{fL4~+D#0{e3=^q)X2{+mFJ0(Lb+54#hVm>`oIJArek3K0TTX&C(p4-1 zGYdo9W?%gFXcAe(tu$MP`*r$g%j_Y>5fpj1w-sg5zTqeOGYU+35nwT;SR6{nZHOIq z$&W_wcJ(m%oeCFj=Vu_9Vfz;~Z2wY%?O(F6{R_5#!S*jvoUZjj*!~p{`4{A0kbgn` z1^HJpX`&5Q@0+FQw-nx0dhUe?S2_x3iKFi()>JkQrTtM2MT z-iJXq1zyDPWM!^p5_o66z{>1m&fKiZ6yYm*75C`TX2zF~Udp+_es-)finSSv&Taac z$}HEPlNQF2l?9k*%Xn0)WM+HqS_+frZuRGg?_^8%r*KFY?}~@rv<_2brg_8c@LtA> zq*$U#zsiZCVKBLB97{|wM)Cm30Qnc>Uyy%6{ss9L~apLl&JeL=LnaDg5y)d0^G!Y>^j5BK?Zxus6I6V`f6!*9dqYV zG`69faZJb3s2QRt`^Z^LcKjD&I?w0W5s-gjK>qa+@~za;XR+nTx6rH|brHb2*ID%Ng$7f9%|d>?T6%2M#-M+?Jj%U8J;#9rB1 z*u6ws;+)X%b%WMT?^gDx*6O6JD~`niiN*9JMZSgnnYH*hKUvZCTAPcCdU39kO%$!o zNiZ5d;^oO(e%;8b*e3qNo$O~}S`wkhy3_1c`SL`u4udR z7)?3KqAkXVLB$)6!^X>lTr*aR0>3hiF8qD11-HiIsVG17&-ebA zZcoQzP)2+y*Ldayd@%LjDQ|oPHnO>iZ2n71z_yw3AJD z(=6;NW26I{Ln`@RoQE8lGZ!TjL4cZN@Kx43v+F!FwQSe;jPT@*%eP*{DDL4AT{&AGe> zJ84z|&V!R89;VQG9M(b6yyncpzGI)NYzk$w6N~)a^AX6uApe5=3-T|>zaamD{0s6g z$iE=}g8U2eFUY?j|APDr@-N80Ape5=3-T|>zaamD{0s6g$iD=mzp0oz6jL2KSqUPJ z@Ln3_%#&eDhz`?>AwFMkO(m|7#8jZRitaGIL6bm>h&&A7lDv8OB#!Uf#ua~W^Vx3m zo*wZUHky}@X6F#t+{sag!r@ZNn4F1yr5oy&6&=*4BC|a*S1K$B+p}o+`xIt>IoiJw zqGBY$9?qy%n{{jmdJYeRYAb- zBTc;K%^{}{VZ$;f$KjkjwiliXqADD&7#~;6%KDVX`mVkb@wXa={3{Uhug{QwZ9)D8 z`4{A0Q9R!)=OO=Mh5QThFUY?j|APF>lNqO{MP|Iv?LLFlBdRN@41-Ng93yn$`4Y3* z2bLNWij)04(cKDpRe5CtsAEDX%?o>@?WmLLO?mixZm4XG2fNM;8x2Y*Ew>q45(g)& z78`BYTCX@yZxm0v_D_54Pk*wW@*PU|RK7>}vT&6`Fzo+g@2(%B(A&M=gCGskNGaXj zA&PX1G()FIsDL6MDhkpd-5^L03^lZhD4ilPbPh9g7?jGagSy3Z@u(bH=#CnnMBq0{jc`FTlS5{{s9A@Gro>0RIB~3-B+%zX1ON{0s0ez`p?h z0{jc`FTlS5{{s9A@Gro>0RO_mKdpE|f~ZrY>O*4OIj)Nng-_*&sxuQ@i!K;b_iH_@ z&c~-F)3DRhDRLsp!gb~y98VKdGVit@`*LkS&zHs1N;iMA7 zD0DKap%G_&()E)bMh1GH64Q(nN@8w6H9wS8#_~V9 z#FYkleFItyUD|NOrFg0fBdd(_yv18E$!A(+C3(wWliQ#)y}OByMqD$DhB)u@Gro> z0RIB~tI0yvQR(qp9xhZsBKx%G#p!m^L}ADUwLL#R+T_%zVB${|+ccFSOkM4AT{yj| z_-FJ>6B0icO$BUpt*c*(@tbIs)o)bkR;CGPcw}m7sB_*U(8g)*#)G*--T2R&&eS~5 z?K_4~V0xNJ-~`rsXkPO&cm0KcM@XGIc1c^QY-AQJe~R5yG}Zf{TdgqD6sBv9&0;WU zh&+6-$SV}jzt!icknB6vblUx0rB{ss6K;9r1$0saN}msQHtbb{8tvq|*4!+qB#GUvXSBH42MPKe2* zRCS|?5$DZQ-P%0^;`Ll3DCPW;{#P+IX(SISjQ6?4k9<6m7CnmGx1U*mk)utFg~57= zbfyogso=4rW!D!?Izmj$SaJl<(8)&H4H+2S&tt#DIDDuO5w6~-Kb3DO?Po!4qgOKf zWjpo+Pa|26G;5JK>V{k9A}0NG7Ln0eb0;ZBdhwKwEOtjmW6N5KCq^mE0@d;hS7*Ai zw%U^2vTr@P=`b*U+4)?lup&EUHfw9Os}kT})PR2l1ODX-_!r<`fPb;$35PcU{$&RE z7vNuje*yjl_!oW_N|Mqc#m71J^Q((T3t>}g>w8PFJk`a5L-(!UXz@GB4Lflgt`uSD zL}4p(%$~1$U+X3f>qCY`W*3@?M+8mQN&VMR9?vf@8&-dCgTUO)X0981-1D1_;=<70 zYhD|kD7Nm2q9=H9;b?uxZ1V^*Rpq%kKJa+|&I)`8!ToAWW?}2_0Kvh!b%KdDaXb1Kr&6t2$yt3FzMzZI zDQupTo^E4gPx_)iDcvN+lq)E|54iR|lCu=>FTlS5{{s9A@Gro>0RIB~3-B+%zX1ON z{0s0ez`y>c{7c<4Fd8);wQJ^p{KmgXi&GF49 zGMp02yv&mV&ExgC4eyAgtD0wWPD&q^g|k%z`xo!p!$P$n;@&)BI5I+B^3g<4{IZFs zqmz=C;RplBAX^1>EA-=QD8j!&l9L~<#9!OP-QrhTHZ$2ENhL`vC?;Pql+HK8#x+V* znyni)7B4s<#{Vo#GP8`NA!(|OG~r!358bn=0tMKvSW%dqDBL6LAid&K4^j0XOKTQ! zoALA@DxQK}5;G`P1^1YQ8BEgPSd3&rRC-1>MZ~z}r*mm$re-Lg%|P>+VLiI=3M;sn z1AJHM{Ay3GuDl5rmesV=tR%0MPVP9$V|G;`Vg87GwP1FGlyhTrc58Qb`{djX&D=ZA zx%ZNDA5`Z)8qe)I&F$Tq+kZ57kTiE#F!!l;?sNOxm(jT+)Es7a?zfZkShVxlT=OTS z=5f^KaZTn=I?v3PU7I~5vc?%c$>K6Gs76lNCg6Kt|y+vU>qzElilnW^)g%npqN|+!eosm*L zNa+xyOfpio5GhxO{2$N1csiB?5X*Pb%lGz{@8him(ylz{yh)iFFSq&aJ*P)}GCg`p^pH9I`tR=fhS$wo&8xIj+DsSR<`h&cnM?ZhXml zr@_<5J-He(XssrtvbHJa{+Mw}P?w+uJIJcPiWTmdm$^+|tfJ zU+gHiwX!-i)m`R(%Co>!i~%f+AFwb4U}4^Xg#i`@SlE*^Rd!{-!b$-P11t=%Fu=k9 z3rmz{)0vo>(!icw8g6rzoq1+7gSF01E>w46rc3!T<{cEbMQ} z!Y+CJ%EFHFnG+s=XJP05!NQ)~Xc8pe3QTG@m+R(BF(ypqB)lb7i=StXRXLF4epX^5{aH6f zUZAFWRO7!wG2-dMA5g6B8x+HQmttK`m8)?gPgTu(AI-4SiyGhvQn^hP&F~dkiNasZ zKvnZ~X2{sR#V}Muyxudh(KAb&lr1yR0%q8tF1-2|F@{)pCvl~~5_NKpH}@EgnbjT4 z?x@ajr_D0T&V9T!r|&wq4_KJq-qIyJls+x$G8f7~3T3EaV0HwbWfB2%y!v2eOJuwA5&d;>h!5Aud+Wq}$4Y7D3`pvHh218NMYF^x-2 zLn#9v3+0bi^&dBl6zT0kEsoaoxSJ3Ptzu<&j@E5YJsa=T+pEra0dr|=e0ipEclzeh z#*N3%rkC~hn^LmGU4_ki594pkUvKk-wQkJfkL=&4nb-=u^n8)-&B3#xyEkXN4Ta-E z8-?HaZ(rd(Cxee)BS+Wv{HFUF;?&&1PzL5>v9Q7{wz{lUVcBltOIzfRnb)EH1>K#c)4R!*IAt)YL;B~jk#QKStG zM-cuKD$Ne6r^G@h>M#5D*j7;W1wQ3ZDLQqz($*wB` z2Gkf(V?d1oH3rleP-8%i0W}8H7*JzCjR7_GH&tVSe^6t06PYby{W8M7!ZD`_k)Pq% z)tb5{8Bzmte3yxARD9V(^Q73{t6~|O!vRF$S-TU3M{#e`dERRkheCuA{yZg;;-PHf zfk?Lc;o=-3rNX8b!T`S66Bj>vk`&&WtR1D0bc2n%*BI~@ z)C!nPmp8pFo5)jq)h-( zdq)&gJ(~&%t2l&Kl(7(#zPH57I70}RfAV=?NMUBdD(*NyHYg_gymk_nK1ma4fkOT0 zk0CFxW>wFTDv;|EEO5?lD^PUK@RcwNPUwm^{E?N_TpJa)&T4zPW4$vv$0TcgjLR@x zb4N7u44QM?g!9;H^Oxl2aY0P%zg>-8`~O0X#Y?RwsI4ZNtR^|HCi|?Wgsi3}ucj5Q zrq``zbgX6~RekjuF_j&B>t!_v*L7F}8oFNo zd~a>Nq6LqCqq2?GZKJA-s}$fefXe_b1Go&}GJwkfE~~%im!SKx$fX`vXsq)t$#@`H zSKutS3e3lWEkv5F^9lnuT~(58Z@W@#uI)YPD{+#B%+h8qqt;Ju8&QN9u$gJ-k9ruk zn`tG<1UlU#I`BD_8YI^c6i)Xb_>rw3j?9v%C|#H-_Xr(hm=$xEE#67_=LNxB4Yo3) zX1XB{FO5GG;4yMEwwk1oJ?VT!7jDzuDM;KELf)Pkykd=A}a9JF{Wtjk%Q36~Ba2dd5 z%OBIi`T#Dw1#lU_WdN4}Tn2DiO5CMQ_Yb1(Yojom&aFHCK1nYd@8h4f{-QPUy#I;% z6YHZ-yOYKa%x7)x`DWhj9D8zU=FUCL(NU|wV+Cw{j!H$Gx8BS&6rD|>Am$>3OqMaOY z9q~6R;<}P!j&NP+xnOZU+2wo;Tu*+xP5hF={u2Dsh2L-`^e^HATn2C%z-0iJ0bB-f z8Ng)#mjPS`a2dd5e@|RyX5;;9lI%soS6t>D{T-Ka{1YzwWJ#EGD=>N2oUNNL)tE5t zdz%bCalXH3Y<}X&tx2k%^JM9Nk|!%#6eL$Udp)z6z&+-S`()803yR}Z+0#Eul|dlA z_U)Tc#{P5#qMB0Ss3a4TjC#MRhNNk-%kV)q_y;~%iISkb0j!d3GT2veB3=+)9f>h( z)ts5`CJM^4lMssUGsOy!hsN1E<*D8R)S)o706i{R?+iqFwXgMdV7- z96l|@dOLN5B*pP$CGi&j3CH_^fz5f?hhLufx;d z$->s)#ynn-o42QOfdnk8pzkW9-oknHA;y()#~%x%3a*XSQ7KtZ2~F+P1=Oha$~7BW2b%9C4HBd z<+5&5(91;0jK{Lc#-|^|Vi$=Kg|g1%-N4c`)tK%j2AVGqeqi1vj`Be z95{hPiH?s5$Fy%}4I^~x`N_spWQJV%i*E{svpZ@+q)bB6tq38`k7!EFAvOicf>-@e zQo0tWsQLt-x9RE$)t~4ZX|`o2B7r?VK|sdl5acmd7(LLhHJfOVq-A*Htv~<6()7Hr zh89=Ja+|xlx^#BBG-vk9y;_gT7F;>;#&WzFV^ZuNG7QM%`$`WPIfSd1c2@>>Kk~It zxKLMbk+z+Glcj<~q$@A_W^xxF6bmzKJ{~cW%q1&Q^tNO#0^l=%&j3CH z_zd7PfX@Iv1NaQ!Gl0+jrufY55BTgT{wqGSi2a7o%snZ&ydi{i;)G5;&uzYy%|1C2 zI;IhS^=Bs`wEyJK3P#Ui?M&n(K`69&LXHz>&`H?0#97(DN}RpxSdDB!uUw4vqUT8@ zco05WGCFmj4@W@%%%ZvevqfWc%TLdHHPq>u@_c4$@QCcVeufc~uNX?_8)4%bCF0Nf zll++)lC3+ySgc}$=`ohoTTbis(_b@a!*`3ztiEN?#Has}L971Rr3t?ywAl`ZBni%b zfW>_4p;fh_Ah07S4UXkLjfG0j$fk%G_qQI})^QKb0}^#pTQY)$Eus_awDm{h`B9M> z*z3u+4`(GlPf7BNOIZjnC6qHw);KVqxwLMgfE?A#Y*Jw~^J_nQNpc}gV(z4~9mdS& zIFfc&bDp+vVJBz)LfQfYVnM%Wfq8G?EZ!mu?IJ7JBAe7AyV@d$$s(uoB9{+lkvn9O zCwY;#aFMTWk-uY60I?{DUKH9}6vjh}&>}^-kYZ9uaW$lb2~yG-DdmHd4nfK!BV`Mb za&<`g4&*rmQUQ%TzlXelx1>nBbdhUGNoq-1ZArysN!58t&1XqHWJx1=NwaWCt8PiV zV@U_Gq>Enqzhw`z@&6utR=5VOTPy8YD?_Zo&}-#;YZZ9wm9*u|O88k6-} z=k+?D_4*LEL;|qD37i^mY6`%q^?P+GCPd>uz)wKVcqbMv}C>RG6tL)aB9G*0jCC>8gOdBsTnrW8J6=zt_G>jBPB+4?BCc|qUaH4iS*;Be`aZYR zxx7oE^e(A2so_#CX~z0R)EakPQujEFqW#hyaH*6eDh$^ov@9lg$)cKfRf|Wpmnbo}b)WhMJH!Py%32r#r$zys+H2s{G=WnCP7OG< z6lJrreBjh_fKvlb4LCL6)PPePG3vHvbZLs;OWVxpJW~R#Q55?;(zu{DmD3{KbaJ;<4mu@r9d}3Yh-z`U6*>(9irRv19H{!fqwqHzhrCF!L`@$Ko&xseh`ARu^ zyK>#a@%6T+Y&w&#jqFQVXe@PmxkI#YUZ=VC!CX(id_kX)> zRp)d2!t>Qjx9Z%iPhhg}DN2o1d~7dHuFG)8N7P&wCSe)CJv*iVoEmUyz^MVJ2Ampj zYQU)hrv{wb-_)ty{)1Cf`0mu=zDLps{yCC%?9|?hNPOGj%yEkS;|`}iq~Cio;lMn% z05W<|7S2`?>|eZV4-4)2k7{YSyeSWq!VfOyFSg)kPC|F5QjWFS(4T2FuYax8a=Uui zIx+QYQ!iDmlJtMgsLA~!qxOf28s~?efveqLAa6osW=3w!#(!mNqGK~Za%zS@v9+~d z*_ye{_RYx}N9&}!vxl7F-{o5S<|J%rl7`*#i1`<}_TgBrMMH$;hrLut*&@_!d2Qvh zBGCnNB+l?wry23Q83e>?Jn{(yY$!PT(o|Y+ECkwd=~vu?UBtR(I-PQ}s8H zJue#TuAO*%`xH8>x4vTTWgyP|X^Yq$wN{st{MP4^6mbb-SxJn@A7CMSQyJN48)VrR z2GW!x2TBxA1U(?Xc1vsqS5P3We$!#x?Z z_`=Yl?t~80uuWMG3&S+-z0g~SIdpt}kGnE?D6ixk@;~i?I{#{pGmZvx5jd=o21Z=T^K>k!}J0 z$)}K>pqqq-uA`EBdvW0!x`Vz26DMLIDFqfyg=898GRZl1N-+YgMTCAlH@XXbdkQe- zMVQp0d#)h?48_`?iZH>Gfe(9%Tp`5~lRxYAIVV)g9|Y%lJiNo*^mgsmB|d8uG=H$PSG2@#=j?c?_yu> ziGtHy7R+TKSr9S;QR%p@{u|okiK~5d_A(Bc`f(?n zZfK5EF}_z56jS5qty;tuZB@T$FJ#2(8R;0mpGt1e70Wp7Kuf&Z$!jtck9n{F5xW}S z=>9(b39b_leGP1E{>u46Y9~J9MlF-Np`?mnCjlo}Z3tp0`Eqq$P=Hgh)$CA;kCLJY zF-9K?mpYKM-6*`M!8B{`bf?LQNH!lc)t&@>Ls#I}fL{ZC4fr+S*MMIGehv7wzo%at zk1{64pC6AI9e>PO7qe>?%Q-?2kDTJKIYMCq>HIsA`tT-w7UQ4u0OSsGxwhu9^7UQomC=ED~+3Ttr>?Z&(=2uYa zEFPb(s8qv1Wf=tSGDVaLc#TYdT?k!Fd@X4iW&A5=Gx(1=8=3a(DK~@e`h!}$@I&+5w_-q-pk!crbRXr z3?i1mmL_@eL`NbtDS;>1o+f+2jo)-S+3@j`ECfGMFW1>Rlvup}SHLIuB~my_k5%Z0)9 z$v0Mb-!Vv?rNO?dnQYGmHDpbFGji`yTAD*hY7%ed&hjPvu=|u@kKS`cIB2?b@fvfD z25(&re4r}yVy&D({?@hhi;k#(Ws}6a&F_|^p8QtdDI};h5 zgb#bd$y;QBa}4VpEWFOULpswJaEk-_WcBQc5;9+@a49_s4-BC;%-O9dmqJ4$P@H^;beM5lkY%_wCQ1TE{};{&l7xfwM?Yra+3X4A!DR@ z7nhh=P-2-APpf4I1bsO>#HbMa5nm`?kG`YSNGg(JMTr8Uk0tOCYNT3ZoY0ksOMrF! zhukt4U)u(qFS{2)hZ7CHY-~3mu5x7&Z_W{xm#qoLQ$UyF7KXR@Q=(L zoxEWPM|}FTZd(s`OJkXdN@}NAWYZ8k=4KSp;1SX9Go#A^ zw;xFzua5paI$H4WjgDp}_f_m}h^!t}k_8F%Ojyls*1b#Tp(D1gRDkV@6@|%(_IiXJ zq*r|EA*vo^S#hddjT3qHp>ezK9ES2N_TIpNuJ*gECp(-Mwr^Fwmz?up6g9vRq#i%UyhXUM_0Ks_5_RwhdL z8WMNc_Bzh&v6*`tF(+|n`kz)wF~81|*4lG4GbNqVSt7UL&!v6;m_LnC)nzg zKvYGM;xW=}*El1M!;fc0<(fH<2Sxv9uZd#*hRO}G(U0C3*xPu6w|RPycJnRQ=8)9p zu-fK`$>yl@Cc?)f`S;cvHE6w+1u2JEF}%mdB4@#91nPg0yg`7=6Pbd=h=tR&f$buF zW)(mMhh-G5+$xn3&xuqC`{}k`y z)y<2%gXwfJ+}W<21`QD0Ini+I7{)^06>YWbL-MpBE;)oh1p!Z{)3$0dN^!egb1;6r zy_4tRo6LL)T`0gR)b!K83aV<}|CsRzdbp2xFS(iv{KGq7p>u=Sr(3C3GKx(`g zoBA?ph6xn46O^|?I0rvpKw%04DubMynyULB7P4M;bRn)^ZFt@f6kHupaFRg5bpizk z6dX`+1GBuG5kSEqfr0}H4k$RF;DCY~t<(#~a?x$U>RA){?Nv-*J#q%yFhTn{^JeVM zxhz9^<@D|XvPzsU8dOzX1~YZukN5NDym;Xk`bTI3Urz~mA&I)vv|^gFP6`K|zoTEF z=2%-G33H|Q*AFvEtYsH%!NyVy#O|K-teY5CylRMSXcA9ytIbVZc8e)df}w!{hn^)p?DeA<$@KX&O3{{<+QFG ztl9)wJj$4Up4+aM@@a;A<|Q_^tI;`{aA;jTEByejS8&ql^G~_APydPBTm9GETk~UbC`Yp*gK+_YU-yL-0NRsa93@&sb^}8<_f*tgE*Jp{zT*Gj%i%v0^@fYHzan? z$beveo{Uy%X$AwWU>3yaiue3SeK_%f#jkxh0i?JI;<;yyb9CO77w~IIF`UkeZa8+w zMviv~sZdwPcWmU2ViakYRGK+eOqSGqmefO*G?JGz3zxL&mb5#TbP!9r=q0_qrAv4y zeOlCIE|h^3%1{kuWP&nwMw$4aOhZs+$td$e6r>Ji(Sfo=psdg+>pheW9@>@`ZO4VS zmqI(Jp&d=oPR?j&AM}+Fv`aGjY9ZRS4(--~c1NH+(CBM>=<9gPH)xkVxt6`8mc7-M zZ<;LMa$ffFS-u^z?3=voSGeq7w|wVsuHa<;Ou=oAg=~%|Z%!0$PS$Nsb!<)}HfPYA zvwNF!cw6(dTMGjTpcMyNaX`rdB?pw;Do}Dj$zgz!yFlE&)c5{Coo!+zBHD4J-{8nsmma6`a}Tl{!Bn zddZ>%eWyhes%HlZMrWd+3A$d!;Q_9uh{~iulyw%)e`$|mZb$-Yju~^+@^Wcq@)>Ker3Y@ zORJKi4$KV>d$pV_&Sf|k@#6G}mx~E^^x#PbOe#jLcWhmg&+xQXzHU{}DcNCY^Es@% zXISyFCgn;(Mb~}`WTAqJxN_lYC5AdOH=-m>cJ~r~Z;78wCT=nO^kn5n$NNCZ^#CQO z0F+!9P;x-Y0VO9W^hMYZD7g`!9G%jjy;8c+GHN%Ijx{& zDpB*Agei|bOPWlyVUca(rt#SFIrjKlej8$}L1r#5H8$dW^`IPd9vTnZjpF*4NsXAo zS7!Mbh7zg0ixq+)JC%m&V<+In#xGnyG@0s1Rb30#r+;D&pG4Gm+$z8I!p(Yra_l9Z zPvs*8cYC_2@lG|L>ZBL$&eBs8Z$f-(3KTqCO{XTuI(+JCUwB-*JvB9lce|lo;hI;< z)bz62?WWNe*L*Pb783`z>Z9hFud~PT$qei|OSeirk7cTM6wZb#ox7dVTI?Q)0ZI-i zIiTc#k^@Ta@2ccbe^hcZ_OX8Q)V@?-7g4YLdrGd+@3jai$r>9JW$M|q^mfZ)IYAru~`hVRZzD=KfZ<{{3|3m`7v-M{@P#jamV#I#INiYGFqKP2)@+Ep|BmJo zkI|gL{ACd_+(7g#Yw~Y&ZdLFHouirw39C4SR+O<2lTzCJvZFd-yRBn&!1?kpZH^pc zl~ZP$yYz&(R5ve}=(i)A9foghImQ|I3}3aC=m2b??&r4LvtvN_cH|#`4nxcGH7>Wv z@ee^a#5Z+$v5bW7-oilqER135t--v+)IV3|evQnb9HhTR<`mElzenc$5%TMZx~M$u zjFDh0qzFcmz9X@8w?MPd(Z&#IQa!$XuoO4Aq|1e}U_coFC0A0o2CZ8w?N}>AtijN0 z<$G%tcs4Iq)l%zlwe=d4^;+lkI-m9WkoAV-^~S>Wrn>cK9qZ2#>o3sj&3o%F z@izX_BI-}AINSep`5qSK3mHnTPw+1tA$%@bzAElTN{Y2P4w2* z-j)a<0T$~aE*5CcAwhEvx&|$)TU#r|RCe&Km(?I#*I^B4=z96{y|wj<7Cioq$~IcJ zjjArL(v9jqsr3!`pc?;X&4`KHX6?9h>1N%u&-!Nld)`@FFHytj=oQqCge$!Kxb6neb@RX>L3kX|017WEIyn2cX9$s zJ1$;q2n#WYj%@JHYly=O3yo}qS~R9Q*I_h$MQNX=65H%TrFbG5i3R#D6gKCUbbkz} z$z#-Y*mWve$GqV_(k-0|F)5{~EPazH@vLtzua5CqgZA)*572buK+|~uO?MJ#I-u!* zrrXnA5m^G7E*)q(py`071DXzKI`tIqE_=~{!W=(n8|UneG`VvzfwB|c*B`w}8~%`i znB=PLYTvG1V>I2jzTsVS;^qkNuCU6L!`8M2*!{h8vJW+zEZZ7b_@#;*xlSgOqGxXU ztxc^PC`ZcCg8v z^__oS^v*Yg&XUH6K_mGE$-S4+DR&m0ooL0nos}k0AJA`Z;Pq?kjF50-ailtycFB$FK+^$D2Q(efbbnV( zS3vnobB?*5+2X6FOEe~qLz%_5*TVkg@@i5>1~*CGB}=>G{Z(^|-aqcIme4@-KAC5X zCYK(Ax-u>axyk&jf}dAd;eUOFwd|)AR(lfC;OQ$fF{dP;S&=0g&n(&qEUKb8CEZ}~ zZy`ENnU-*wD{LQPSS`k1V^A7!BD2?3^&cU+)L%n%i9bSga@NNox=AO!_*em}FCxuW zm$Oza-`wT=1FkFjCtN4Pp!RRLuHqZ6+t0FoZ*eI%KxXEx1kcGcC)t(9N9TeYtT#Lg zzD~BTTi5(P*;+O7(`4)3uam9RdwRGCVI0ez?2&J2I!;^lJ`rrb>?w#Xo^=5QyX2sl z=&11&Om2#X(TX+1LZxS9Q$&m#iMhao-o>ZZ121Pfb)y6shac~vo5|M|5i=6 zjkmo+yZw%9`@Pim2es{wCfmEt+j~CS`yty0$=fkt-xZYWK)DWBJ7DdAwFB1fJ+OAb z+O-2~*WIDMbj2zCwt!P=NV0EuYS>LT8JEX&!ESh=JZz!2JLtC6JjtYQoF4N=`dn{y z_5{`rSUX_tfVBhG4p=*2?aF&k44uPnp57RIePZe5D>S z)ko3b+A6_tUw}tq%vUmJnOqM?T#uQ8^&|UZ(uw@5=?=y5(aElJs8MIT(qyad3{$Zi z9=%NNl8sqqGHDbgxvgGtlTg7FLysISzr^6$xY2WT+Du6@OKr{=cUW^M?2|6d#*K3(chj9#*}H! z#YTn5Ld{;ayk@x=a7cGkmSBXO_>%>Jk5c3eWptVCMFz_kE9@x|L0oUiPy70{xbmLw z)S#nxe?{9v!vC5M&xmi-uH{4qQQ7D8FP{mP<}uHV@+ivQ@*lDay_`(vSYjG^_2dmd z-L{ufb{c;m4x^Uei_k#g*S-V~l2*@9Mc7K|)oB1_oH~k}Lw|tzlTl$`}Yd?iEP2<##hN)I_SR@Nt4eQRp z45r371?!Hz92?gt5r6T&tM4km>AR!RKj^#GDM{Nb4x=g7nRiKvUjd$c#ZWrmh*(jW zoap#Z0PoAM0FQA`kLWwVld%1|4g2VKfX7VMa^_4p3Bp!`9`mhp7im>L1Ff|Z9nG?D z`nhwLuyEYDoBBuRj#l_Mb4QF6|3l`EWI)BSRJvST7>?wmo#RTT7Q15+k#0|CD8BD+ zAw6tgmx)L<=tk<)IBx#lyVE{TuOnond6SiNvc`e=%%$F?d)_}bV}CF_6EYbNWhaYl z0xl^>?T7X{6c%nsly!N&r1$ZJESV!Z_IT^nnT-2*;uY+>{uj%2+5ZQv-C^POr@HOW z9ot_J+ehea%-;5Icsp2hJJ{SiC!}|9>Q}&uEUAfFI!{r?avUZQUyZF)cUk%9Umza(S~YGsHB6zCrj1UqLH**(`a3!!cQCi_v~UB9 z2P_`2c);QTiw7(ouy}G^IK8R(XY@-G5NS!)%Nn5FGWEL!c zirrK+)%&1ZtuWIRrfZGOVlZfkJbbXoD-_Sa)#s>?>^s$T-?LvkbwK$VQk=MMPN!-i z6P~6va6$^cZH~6f_Bp_}TltdOi?+|*O-phe9iYjIw~R+knx zx}Q!rx4vYMMegb2*)Cx5+JMEw1{NVNIRn z$_b@WR*8-Eo?+&es@Wf2-<`_Ra_C4JF6@+RuOrH8tnPRTRpiH&T#P3w7mqs|c`?mi zeW;O8u9RslNM-pwgCqkx)^n~M%tX%X(({H3L{w{$WfxB?)#So?RI}F!jPB4@DN1$| zUx*gX+;>R1Bg$ky!75q< zi!e`0HILWlHpH16Yq?kihvcI2pVXRryq)ZK>vmn76oo>P^dW^u2|shZy1&lxrhnyl zH9v8@^{*VSFKHSRO=Lw790*sPI)9AvT>lcvoBtK%&HX@mYsV;$+WOnZZ2KvyuPATz z80A@V^)lE5>CcSLQ2koPEB$v}Ugmd~hmB|RYZb3`_SUh>8$t4&IZBV*b(%XzUlHzA zb#Uv){4D&Z`Pmb;zs%1P+HWt}QjoP2Y-r;9h|F7>lK5cSNT_nivuz1ybFk0kku@_@ z3N6Ufe*=2YtQuyZbylL|qz=!1272pXf!^#-Ku_uz=-ole{Ta|Ze+=~49YZ{pE|!Z6 z&f42T;0*=EB0i$~s<4Jz;u6liSEG58&JCz&Bd(2#TW7VED5DZIQA$ZFbVE71@`#0Z z62@E7>TU>`pEhZ$-lGDQt1Ztv6Nw=VI~cW_msH=`>(E==4nn(_Bz~8A*9zm@I?y*T zoHuBfy`+}C)s}CXEZ=fo_VHQ19kT43yzE!F>|eKh2h*_}fLOkZUcR@td>?Nmkapz( z*UCewl_0g1V3UN~imJ14K~;N9NA58WY1*&!_2A*$aY?%W|6 z+aV1FQm+9>Js|af)B{ovNIf9+fYbw0FBnKYAoaX~)Z@13?hY1kF;9H@@Rep9ZpVX; z@a(euY}o>Z%l2V!!fy;UJ}I~wpY1Cuiw^0MaLNTz4@f;A^?=j^QV&QyAoWCHD{{=9 zuXm4{d+k@i_s};o|B$# zV`NYIqCY9!B*l~~D8CQ5_CAucw90By@8Ua&fYyf15^4ORSGrr5U~8<`$D_4?)MElt zj~7V2aUk`8)B{rQ(_QfZ2O#w(fz$(14@f;A^?=kXc~0t`c>EnJOQa*FymANHz zhe-M>ku%&zy&4hX%uQXj&zd8{I;ONKd`Zr!;ArE1=BnvZN4M16HL5Omi;yDe^Ls^v z*A$-K&EJk>{HUzBw<^l3!2TI`w7xNbtU)GisLYg0w8$YHH>KJV4yNlR7P|TZbOpTCeIjM;W zpP25M;Td|=!jo@F@EHvdz;5(Pvr;M(Fx7`lM8@K0a zm;Pkq)?i8QL$!vpnQn-qp0ndofK{!kgJ}00%zx_b^lWLJo%$L7i1;3&1C_T}gtdqDD%CI>>vLmrt za@pYC!maaHOdY;P_xz+NGkpWSFh0uxc*Wv~zp2!l|DP)LmUqbZcTVBIBd2>u!TpX> z`W=<}J8IK+G*{ly-hM|H`tEefJNlO~pt}b&AJBY2^8w8VG#}7>K=T332Q(i7Xg;9% zGJxh|#}f{3Do&hy9PLl_*p=pn|D}N8IKzav3U*~yijr-yk|ckqvwDhgunLU?>j(Dp zK=T332Q(khd_eO7%?C7}>{*VvH&>)TV)#g3e&{^th`vX-nB8Mc;TYRf6uR3H}qUH%h|*D z?H9f7CPkj2mx%kDUry*N1*eZr-+a;|G=-*xdb1>oJk{}uGP+;Np-sNMF3IGx zcf)cSVSHo7XP3Jr#AR=vx>)Q3%@+eSpE%Hb=Yi$}nh$6`G7xWgZdtZZDqFnrJ zLX1P_1^Ni9)fk?Mb?YSUX;@j za3ZtURW;a80A9?mpwwAxHd|4t29;$HxXTn#Cg5c>y9s6Nf7s6U$=V{n9qptSA1h$> zrLxuPvdPC;2uH6|wZJ~A@?EqIAC=8PLFQ!b4CfzYU;4i*`&hrpzKr?ZKgd3n*;D@} z`ySXCh_-y1u}R*v;rbfp6UEN{5#}SF4GF6_gjSTX5R*n=el7Dg+Hbor(0?uSb)WiL z<{P8-X(RbCNrUL;5n6EavYR$=AmY+o>9LEOvHMMsiwZ~ZoLUvjfWr)@Ap05qqOOrm z5ixG$vG1$qJ@$R7Klwgh$7A28;`3*|ullR+({na6L^~RFI37hs=t>Q#py%Y&;<09- z4a|ay*TQ~N6?}FJ{=zD~&XW1pP9Hi!6a90i&*>kXJ`?-qOzn&j#bzdl4qf*cw6~B+ z(SpRS@5qLifbSTzGE7D$GrUR%>KKx`0rWh-m`MQXOs4dBOt(HJ;cSL!otE5 zI6f>_oN#O`0t^;50h2~$&Z{5-Dn84u%G}maa(1mujjE^Zk*CF7r@N~1Iv=wrM=)tt z=XWRY7(y+(s|$KlL>ziDHQ|N*88Y5$)7|i*H%}CUh?uo%ir?mGB=A}F)RYVt>E~%> zY1KkUOU>Y}Gd;DXV->co5zN|kW#(9fLr|+bb+D=W8_1p)jdj;fJidJjoz+`kG50bM z=l--s?2cNi%SnFgb4iN0gt4q7M&u8$kiDslY_tus>&liYI~|kn`c>xF6;^ zoXm5m-y~shn4KirtWN5Gw%;~}&!Vp1qA2DTR&kfVzQjV%Iv8~Opg{To=?A1AkbXe= z0qF;%ACP`P`Z)pV2c#b*kbY0nRN0lyGHBDT5_DC}##b@ksWHD@f_00X(Oan|Nmgg- z;%rG2uUlEuCu%_pqdSs7`T^+&q#uxeK>7jc2c#c8rTdBq8x{dMtD;6F`GQge0i##u zX@ez=cuw7Hl{5pCR)?GPAlLTYI^S#AywX7%YSU@FT#T1m(d+NgNxZlHc-U+?VNVtlJk;y!$R*hm%2+Ha; z*>y$0tX|%mFj{q=to4}d$gKApL;!1JW;Vt1Qc&RaT3tMl(`b*REu_g{9OxD#kDGJaN(zy)5y~!Ru*F ztFK353}X_)Bd?PX+bqb)4H<1iVlp1G7&1pLkT=vtG#Xj8qE_IKKSg3R^Pk*|P}XkO zOQ^Zzrm6V4w_T*+QAWP(Cu!{j6Y($U&thMm%uhb=WpX}|Oum}fa<}WV*J)czh46er z?;}$2p&nsMQ(>jXn4anu4hd?Nv5!;TYNX707(Zj#Phyv0)qzxb{+1ma4>bJO1#YX1 z#|PFv(v62uoeE>-Y*L{Pzcn7&J|5LC`HS@1P552bjezo+|7Oo_fePWMe#(S#S?on-tO`=$RUu-~g+vERTC?1wqd_q{&GeuvY2Gdv^5 z*stvy_EWVQyhXp_-SXzfR6UI1nEW;U74jGMEBOolLH_t`j>+HZ5AxS`O#V3LzLURC zsLGEoZ1|LIK6?n5lgx*VTg_%s{5r(T57iADix->_<9`+=nK{y*RVE_CpoV1Y4low0 z*vPDwjI7xZA&dFL5U=vGs@?BHyh_OEE-zlx^DV+|*DZR}p!^=~~kEh^-Q>Oe==K52X zzEjrOQ#RGpKaTzp08_vcKgmENl2aHEHWgIvgW4V63uJh3NCJoy1lNBAV=Hj~>YdBs zb0hqCC!?vQl&kju z(>TN6ep|6S?qu}&0A>Iu`C*9a(!4I;nYxC;A1!>3R+&;%K+XLPpX^qIoRC(w z*aprlZ48+3WmeG9vH)%HT5Z3vE28o|dAxjJqedhdwP$XkZJ>u(I8rvExZPKArtxH= zaK?0ddW{Bs_*JeT<8V?4)1IPC`VDrHAA``$8ysYCs?~{f{I=LhkNkM_VNV~}_fn*A zFF!Mo8JGf60aHL=3J6RAfhiy`1q7ymz!VUe0s>RORA34SOaX&{Dc~*ybG@}#BA>al zjZaYL3_U4H8gy}$p=8X*FML{}jOH{o{j6oJUHLL7U(OsdG1%Ecwf=N?FSH@Z56L zAL**(Xd|S!<>?bFtK=Co{J9mF@^h;cSjxM(71`>ysuVfe;dzv}`sk{ac*dl7l=)^Y ztCa;-{drUbcXOfDDo;+jc~nKNwyIU1{)FdM6Gx)2QIo`y=2e#_vZ_&+r3~Pm6m5^L z(NJs*0j7Wfz!Y#Fm;(9$Q$Sz}2uuOVHP&$jfGMC9Fa-prfWQZs z_vaK40sj@AUO4?c`8>0mJ_->Jiq&9?iCs-y)8ku96w3+DV6O`8#>UrOoVS{D<%d&0d2MXNDBL(|WDIQ^%rKVzz|0=tkh9sm33ze@6)Qjf4a zzQqyA#lR2xh4+zT$>39kf{*$fGjG5xd^{g%cs^{>)PE_+M3sOvb)dXsUV#-q|K7VF z(y_BA9_dO9j{QU_#f&Lzm||bF{R3J3;?cS}ItKnS)Mhyxi?=8(q)<-LFf#VhBIZNjcksUy`2G6N!0*wYf#0i#!0*@f#1vD1HT6*m@y_GNY(ZIYHzeOg7uu?7HJyw%0?RYKgWT^#sBFzuz}AEQPS-G ze>n-*vQl$YL4r6&9R7qxh6;|(G*ilabsuWh{=;k_)D$H=@_RCvsM)mj&+_lyzm&6Ymn`E-s9EY1Y{M$tE*~3Io zaa-pHXfpG+`5^DBznu&8_;oH&Q@xGMvsd|j+iu`*=K??del8Gq zPg7I--Hx`XgIGY_jQ^aqlQoXU56n_NI~u0_IPEAtw_lCmB!1lFQOp#~pm@*yv`hN5 zo&5~NgG|DMEQW(@{(~HugIw){JnI99=RtnpK|%aMA>^Q_?x48$pk(HtbmyS#@}L~? zu!8WglHst5|FBx-utxi^*7~r{^RPbfup$1i5pvj6ci7x}*fMk2x^viedDxD4)IoUE z$#B%gfAm@As9XD}$NH$(^QbTIs6YN_0CF@~cQn*{G(2-OvU4`45k($7NW) z)=X(X|5`g|UHr9f$@B1Q{aPT)al=;p^W(-nNbzygQQhHj^S54>la}+D=O?Y#JH;n$ zcbA7J?I0x9ZyoSN4&OSF8B4x(p$i;+`^>v>ZVbXQ;QOvbM4R%x0NLG83;-|nAg~t%_JVT>k0`(UR|1oo7D2Mb0~P)Q0k6zsp4QbHB%S2CQF$uEi|!Sl2}iSX+B~* z>c4t1uw_1dL@<^Eb^rBs;F7^V)`2xk|27UhGf1L(G{?ln-b&o0Hmo=DPwmsNEJa!c@0tEuCG>2wo#);CA{au-N1*lfzSdx(!bpeWL|Gbp+KpAlJR47c$4Eh zip5E+8QE{mVB+7J!BoHP0!fX>Fc;0UST_Y3+Hb_ySKv)DOExh)Rj4oJY1lU~e?J{a zYuvD0RA*GVVr1F;_tSxgzfK2k|7{oezdaoYf~qV1xeL@<+5WW)%(Kd5vpg1CD>Yx7 z@ZI3uT;^lp;WyyeiYX&osIefYP(9QZ*_@V7ZIU9@eceN;%4g%yMiwWm;>vGhH9{); zeCF|+nJ0%cbz;J%th*8YQ-n}S>{pi0=2O3AkOyee4?yRao0*oBfo$N!urObL*tC}GefnJ6f
    }PS@Dq6V|Ir@!iMsj#IET9cGq2bCaWx#Sgojt%}}#jcn_p+3ib&-NGH8KuMG zqbru%@xlDK?t&}q6X}{FHVHqwDyJ;ZWo&X?lvk^s#0fne>MR{tB0c9=abLrnTIRQq zHFSE!bFnA7s41&oiJ$%0h=?bQ5l)L+)qGM2BlW24$!7aJGHl3R$1^=H$CvS4SdWckf0&OtvIsHjlh} z!MrhxOWFY^_CvN~#GMnwNhShku=z_pL}U~gklZKGnyJ4J2$w=Q@dI_24>k=QcEdQ8 zB;q3^d%6Nn^Ur?Rtn9H3I3IdHQc6}i?4QyPCvw|Nme`#!jHU{`oY9n5gB{P5_=wA9 ze-56^RY>4=JUC~XD$vN+DAk{)?oOcd3Z#P$;KKR^nu^E6b4D>P)Ywmlv)c0Sb(C0< zawDT=IrP;#87)jd=gJXpMLdLUMbo8I^OMjCMp$s!GmJ7LWuJL_`OT~g7oCTqu!4JM z@VRUZyW=hIL7Hf3mDAT-zN5J+n=ekmaa`Ly7H*&Kh31dOGCNx#>`r%&Pq%CvnVp#u ztc)W@@}HGEdF>o5EY!Q59N+)ATI5YK;c$lDiD&x^70YIv2`Xl_FMla_elINf?e^;I zF{hTEDF-;JC z@~aJ>d7lQF5VopERKZ+>uMCYEMqbf|L#GS(Xd*;z8z@8frV}@9zr|V8smitG(kZ>h zAjX4#x!;}Z#=kN}8l|UEzZqfl=Emx|c(1I6LAP`gMUrk+cccwCiY_^xPd#ZSRbYC4 zJdIjf_F4LK{l={f-ZWyytU(tPhU_5bH?fJB@@pTY30!K7(V#xE&`y(zMm8;-tNEYG$tp2-S%^W$qmnCFF_u3vIMi938;2zxrF7%!{5LsfHW zMz||or!?|*Gq&-y6C$%7ds2!W)ChjrL)()0=IskpJuW+S_Y?jSY$-U&7S0Zo)#opI zF_CUhq$+Tg$Xe;IVksM#ijQ&{V!e2e-nqU;IE!xf5;DwOl)!hfjIu+-H^%!MOEC6v z(;dRLwmh_F&+Bqz_0H0jb%%ITjNfeUz^BPRS?Dge!A~_4kr|m*YA2$ z>aEn0TtrlLOk~Q-r%S$?q(3VCIT-OYmAdvKQSFU253i4dPJK#-_2Za^n;`2qr$55( zD;UMUyO;YChAIyQ`WCOCtNG!S%pOsFX-A31W=LnIMrFxuMXRa^P{2t;F-hoxt?d)$ zOQptisgWQ$t@tSBW;E&w?xx0d`6Mb#gG;a3P0w8!B&bA#|8}pNNux4&als6~`W62p z{mKx2!Hl<%-5xS?^$=@#BBDb$nKuLDD&p?6WG)-Ihd0i~Jvf_>Y;=2hPPx?ChT@CX ztRT%GS8d-KoD>yVF`*4;K^VUaUFOCsysiQG=+`Zla+h;`%ASQ**pIbt5Bi0wKb$&c zmrSC3B`hXYF4mq=m@diGVzm=|Eq(*bFvwLbDW7T#;g_Vj%m)-Tv5Du~I43K-UC_-Gs^)sd z7`nhh3KexT2Dw(M`tbr1_nl?|yEOtj5sUk34dtiu~0Y6RuX$|a=ay7l(pc<$=%&;K zBMQwM(cHQV`YkZd-zD(n#qZcWZS1G_x#C$#MBN*N+Ze0=;if2i0V}rNZ}p*5@KHR( z#&D3UH~+o7lbxIU!jxN~_1SR7{_S>i5`xj-`^jibxEXsxA20ma3y z?A~@UGDo^qZP3S!>mDHCOosthaQxXx=yA#_Lc4W4vNxwc&hQ$_6=N4+8)sme{5l34 z_%j8RQ>IWb<>n`lOY&&FWXV>+DomqQ(d#+P)G#vcguQL> zU@l36g_6fvZw^#^nAT5k>CNAulZhXSCsD0IEGUCv;JH+nigFuN754~MQ|X&+%4oZM zX4)`P*Nay2WaX0D%EQ#y@th}R6i264Un_;7ESCm>Nuj!Ky7cvv5^nOkshQ8U2^(6X zr{0Tge*CpI&8j9q9*=Ou zUSe!zN*gLV%gmGq2GpN;>g!yzYIdLtf66XJuJ22Ik*7($+3E% z8P3F}`l({r?WO^jG_hyrcEA4l*L?gZdZPr+CH;P?{1aNu1vY6KD^sx-gOJ&A!gn;^ zmZ6PZrC-k)Nqb_v13LPJYHONzTNUaY(|Ut)4dAr--lGl=-Cb)u?V@dK_)g32Dsca_ z2fm{53}<9BAyn!9H3qM7i0Ouo!*YWz@o~<+;4;yj5e~_aH$Tsb8_uRSGghC;E`Muy zqA|ry8(C#Tx#zqF$GhzQ$ALntjUS3*?#OUn(VyP5x~M&UcT7lmJJa4404eu+XGRIa zycWG~=J3Yh`@{{;_4H~i!~1oarlPQm0N8)j}R3y>=C)7OdQl6fT2ozLo_Y zNb_zn(dqt(3ZX(vHbKkIMC+wOA6>hfFuk2$Lmf25I9|gzHO1UmL%TJ_zNEr|W?~eycvW}Fm2+tdjT9ndQi&KO3?}p)BVC|f2m(%B1S3Pzx zuBpj3sMtuGN6xM#;0oACnlfj;q+y$x)af9tT*_u8PIe~yVpEv)6J1e^egrC|7fi*C zL(Sbod=MGMn=XMqcJV>|(E>)7yc(Hz#?y&~%EqA5uX9X%@q)L>y(ODvwX{lN!@6Ie z=@nX(MCCLQpg(CcsPGD$1uL!kXlHykI4r^Wq8V;3McVLn{gLvf28bG$#0*zv3tJ&q zTANNrBUeU(PL{$ESO* zsG1$~22YRY(sLL4UoW*!d34Hy~RR_-e`7^sA9D+)_Jshdh? z&C})0Gmt=8q3@QD&88BW4$#}yGT)%)wx;2SFo;4dC1@V10hZd?RvJ52LJU^Hit2?q z`*X-$AL!*+saM`*zzBbM?4&IhWn?-zo2+ScVn}W&5;3z*G8-2*YZiaTV^97PzYk&l(K(sa}_Pd42%%?m{)Ok*Mj2O`+X#pcD2E0+&buVRnL9k3Sfh&=`8_PxS3<^WMnK2;4 zcfVBSWsfrNeI)O@|J*O&cqs;vfl$ z;UrmOve^>xfpc_iLRqOp7&L=v`c9Q)!zahpK5f6h0J}C65Omsxx-vYNNK1Q2G{t^2 zNns2FQ;f`h%yD?6@nqN_I6fQ6$cib!voOJ%DKW4xF`OwWzA!1BDH&3jT*j1ASD4bq zl-gUEI?9wbQ<%2Gl)h7#e$13{S(pK3%0w*6#AMDQEXtx_&SogeW@pafFUk>R&Xp<3 zRbkH4F3K}zhFBLtoS5@Hi}Jmh3j&J@!kG)>iwe`3iy%csWz5BOMa6B*CA~!@qs*l< zMWrjuWjjS>$IRuIMdeWD3dG_HOqNQ*;z|mZDu&|xDt4A?{^Dv;mKvGj8WomW?c!Qv zmOAU=IwzKT&*FM-mWIIMhH#d~_~OQNmL^DXQyEKhU2$_8OG|HY%P33hOmXW9OWRIy z+c8V~WpO){r30~~1CzCru%wfMwTq#oi=Fi|f5~T2)^3@SZWY!Z?UEj2)?Vw9UMJQ* z&yqfG*8aef{&3cT_>zJ2hZmue!7|pNx{{$b*5Tfg;ZfF+nUWD}c`*=(`UV~Z7{pD$ zAOZ#vUJK8kA3CFkNA9`80w?M@{rIF+ZJn7EdL{Ri#arVGNBLLlFPL;}k=unL_joIU zZxv!T5ggeb>w6ktHolF{5P2h$N!iwPfLpknwdCw~#I-~oliJ*ejE;YLOtYv`^{s0c z%C~kRi0uwxf$Vv}AIc-P<|;pJHwFzWQn-v7uMYFh*(eI#zsh~<=zh6vFd8{wW|ARt zyV;Ij_sZ+3Al2Q3ACjlnBxRcWMLcQ7uFx(Y$Xr#r@H6(04Oy`vbvB!*=cXG4NNr_l zfwnju(Qvi-Z69;3r6W*2z)bYD`C5+J(6}dq(ug{aMIwDrzNbh&N~}Fsj(i6g#4f-f z0tOKjMmpK^QF*JgI>yk93zc> zxV4pgj5aJ^VqW{$`q`A?^k83fuL7h70vJTVAOZ#vFo=Lb1Pmfz5Hp2BA?YXVD9=Yw zpBy*zN2M<`G=MYi@_GrL-_az|%o%d^bJpKE=kz%VS2yxwk$-Q0zTE5?Y5U%*Y{uro z_Iy#=3VbW%z;id3QsvJ()mitq?~0&evKy)kp{vGvxcr)VJ_|&)N2G7L^8l2o&yFk z5ip2=K?Dq9gX%=WC%_=~0R|B;h=4)NnL~OWmy*JWo}(IY-^BhF<0W7a0fPt_M8F^d z1`#lbfI$QdB47{!g9sQzz#sw!5ip2=K?DrqFN1gy^?zs(F*2`xOs>Ny;g~<2XQ{)v zh8)Mm!+KMqi*blZzqnxs?7wltLHHSrh<|XySvYS+BuIeiz+c=@4I4Ad4&N++ zd>v1FAUy7OZukhVN?NRT{gDwh;c*6tgo*-p4d!6|=ZzV~Wfs*jHPtCKHRc8-g(+eZ z{Gl!?d80BNf-wrcm>ii{&Im5+eMs&FE_7>jM;eW>sfS@DDU3?r00)mQ9fir9h9%sb z%?qIgCxmG*I_svF%ZrfccB}$kb5bcbkChs4em&cA-Sv_DCR6t}L##*2S<6(ZQ24O* zs~fyh@|2Xh1rkC73$2`TyHNgP5`ixG?$Bw`I4%C(1>PcqPKTUkghiWIVO{6swim?h zwWB0l%G+R>8Xr>fH&L9-3Yepr7>IP3$5djNxnc)v;)HY(By^JOxsuFV=n#!LoWGPI z4(~seq3kbZNc!Y2W$5#-mElDWB~Fh0Bl+09oIjLd9`&VzrR<-|P*LNTGE__dn=&+e zK!)%F56EySS9dE{`*&oh_8T%p*;ZqKZcy*g8y{Oy9ax#1=2631Q)4pFK&@``G}Ntr zBZi#xa_5;lzlfn2?{CD=;9n6#!(YTux;J+&3)Aj_81`6_x#D}IDXPj$$4_q~G2o~Z z=EaRCMT?m0K885KX2J1xi0f`Rk;kv!&oEy|yRk=Z660>ErxOjXxWa^Od&LTZ@Q@vtDGW^+eSLK_K0s={{(H~&eJE}(R$-rdNXW!^V3OP?n=V$y+2^| zS;#cKS3vsB7RsQiBRtqbaR~N=4bi+!!=1H?7{vc{%I}vg?E46Pz=e;u--m%+)d~po z_5x6?%@84GP2f;mh)J()$RIdm)b_$i_oF#DA{&YF0vw507>UUgMOYX`!4%C<7|qTU z!(SL9$`mV87^}h*r(GCl%oJ~381M9dhe7oE|I8qU%K);F17f7o`sOnr3n73k1Y{wS z4-{AF)2#}F>QIOI1rQ2fO4Nx+n3OUSPtri?wz_rIXR1rl`92wpDl6QsY-+&)h536I z$8uqE1_G2JP2XMl;H9k*70<>U40yLm#gRjFnsmHEZfV&e13Hu-A<76P&m zkcEIO1Y{u~3jtXO$ig;276P(R8jytvlDZ|iw@n6umJ$&YV215?v9wDr;!8aku^jqO zWiDSc6UHZo`lH>JpAb|8lJ)lhvJjAkfGh-LAs`C@SqR8N1M-r)uIrrUdYekk)F!1am&yRRc^p=eU=qB zXV;{539*d6O2js2h$LOIAVk~mW73|ChWf1QbK6BXI-Evlz*~WdYf5L=Y(ydWR?J$B z3fgs(apnG2tX6`G`ZJU9>Qy;@@2m=pRwffXCB!(Np*)NN4PWlp!JU?JeX@|E7^+f@h$DbwkN)3nsvQP++g)V?B^aEreAPWIm zSoA5hixZHA?0_r;WFa66X@I&RP&WkXhCtmAs2c)xL!fR5)D3~UAy792>V`nw5U3jh zbwi+T_#f5{9aouSsrzplBfKwuu-qT3V%@HfL9fey-d`lN-!De|ykBkqd7JPcaX*Xw@uug^jAPBYo2o_>J2ttqbN7QDxr>j5nsP7Bc?`qAUrPO3i)Fi#@q=Q*M zYcu2eRZ{f+6FwM1(T*K z;QY!Ij^qE8DReZe3W+UBV19K9x&KwCFe;0vb0a^G3ayG3 zxoqu8QKoPmt#G)hNK=l;Kh&T)$3NAe_-}1O{=d{9^}kkwg|x{=(V{9+L)*`urcWBd z7!#V0i4j_MyfbVz(>l@GQVCAo%G{D%F_z1UmQ2aU|8!Rn{NFTdq zB$4V*g*y4nC{dwoi+q8abS6u8lv;O^S}%NCC)kvkAdV|JJdA2s$=4s&e)NjC1MV8S zVI6=!uTJk(DnETOIxRkPW=me?Vl@AX+*&Y0LN~&=DRio5tH6B*tQBwGF>l?vt@(SB zFxFDjkyuB64S_p=6}n#Ckf-f0ZRl-{{wqlcPyJVtuz%-|B%$D6NkRlC-yQdDhToHf zf|EP3K6HO331e+8BUsqgb$k~@Ja>hAX+^yAMS>YcY&-9!6KzRd)~=14CLFO5{WH(Muo4duLaV-&SA9R#&1xPZS&=1HPZw z{dmKO-~{#!g=oG2e}V=UdeephE~~!P2>ff&xGbf&eWDXu)J_kxoek+2ELrZMsFo z*4=9F-oOy+7NhTzd(F%Dm|@PJjU-xaW%vmFK}e6pV0lsd=if zI)#i1Llz`Rri&Ir3vFW1Z`5LhOs&7AA3dRj$BnE)pPaH*!#G56)YMS9jZM-NDGYy6 zB!5;|5y=vu%8;br^`fYtXzR!l9w%G56tg1A#e*qtfmx^0h|fdgE2Bnn@<2U_e-w33 zu`70PGY_tRHm28})Z35EYsBT*$Xp#Skt08d0$NZ8(1LhgQa1pzGxXhA>=0$LEz zf>MAM1hilupamaWxCX6cBBgEf;aVhkT1Woq6u)2pv?z0UxfKbnDqx#@Z#<^JVkz{+ zit*WAK9mU1f`AqTv>>1b0WAnhihLr6pP`Wd*n{bEb3z@H6! z^>@_M12rKq0n8r}2h}Y3rxG{m_9Srh)j+K0MViw2S~2~x@W`Nt7ut^T=-Te0wG!ti ziU#XPmja11YL1~tCO?meppwr=0$LEzg8xDby8VY*@NNU?{dHgY zdj$FRJFKqp#mYxeuis*WkJfCd)}SuoOE($y9VR;6AK_)F5Ee2JB-RinO)kFs!~SXt zib2x?k1vAIp%;lt=)uQY19bn03hMk6q%t!4^tY(sI8tDyU8re7oGDsS<~sTxByhQ; zM=IA8Z#okL+V^8RjtbaEQ?*eP*WV@U` z$GYmVgK^DpmO=k|+B|Z0Edf{BdeYH4DP}gs%%n~SY2|qqD{-(NQlNch}Jo`W}E!>oAB1A%mL(;H|d4@(uZrq*lF2tYSZzR zDLT^8{dyz9jX7cnsjV2B;a}yO!czP07oVUiHQohIATO&~hW|7*oUw~6EbNw_8!Xj( z#HVfXYArKLN}gAL`T~8>2xbMxJVL0-;tvVoEj3CSQxb6?f;J%p=@$c( zBK?a2n*PZEzh@q?5smAv=rjh{knFg7{muZRdF*#$$^T-2_-2=5^z7>D3=q#3n*z8t z2qZR$o)!YAGv)4TvOYRrvvRO8GU4!}v{5IVJ=I^J=6kDeks2|os{dvHBN-nIpe&T= z4UMd){)DINu7lY2GtYI6QAUl0{9B*=k3qYzmyEt0jEUFzA27i_gatknU|)s;Uv{t` ze}SJU*k7i=Uj-bXT@YXl4zw-^bOL|$EcodCKVA#c{cp9P2LJ$pT%h6^0067{ljYX{ z02l@UKmY*B>!mtk<+)C0na>BR=qbdPH4=l5+?xzU(^cM6Zf~g!?Hg>@Mb%jvFdHQ- zF2yKZS!;)_S-iJz!n7U^&lfC1>eJU=;IC@b)}(jG8c-Y@<*8?w+Lp{M9O(?NNkaE2 z*Scclx%YI8+i=WxIB7P%6C#X_EG->GRa&~P!mEy)E^*$_?hVw|rOITZAQB8Qo7B*J zpF^uk`sGF>I7qfpZ86tS;I#q1iAv$h-AN=YxDj(ufI6RN`^EFr4QTSCG*nGWJu7}o zVxENFG+IkiEyG%z49x^`)~YA#cFX-~$KCPI(>*fWEk@_mt%Zv@#AtETsXtfQO8@{6 z9{_*=00aOa000312mn9;00ICI0Dyb|00aQwCjbB%1|fGlO~(q*D9tY}%E7E`ed)Fq zTyEA}-t=15UWyagDK)b@y@HcssS)eZk$tug06+i$0ss&IfB*ml03ZMWEBiH;>)ax) za#mfLs-KQb5q{`eWOdy{9Y|6LZ%RYp@DqKjRxV>%o5xpbPy9yhlXh$^EmsE&NbCcA zf4ynz@Twz=MF-XK%=_a_8#L8~wrtT*_k$uv5W-7osLabGal;pG1i}JHl90NZuCn49 zQnO?J#Hw`!m-mAMT9eU_sdw}CH2dCeT$B;o(@`rTr-3D*BjA_zs<{M{ubv1;N>#oC z*HEE{^)}iLh6L&0(*%g z=*ikoS2{QORs5@1{kP)ZqkmWY>ofsLOx(5lvqA|Lj}Ua?mRI1JsNj+V;XH}q%}wKu z6453z5|+Cow5SZ=V=>;~AP1V_=22c{nII;?AL{;Rfj@#KX@Wlkf4J#EL<(8No@Q)b z2rW2hkNyb!X`}oV_*0|8yQjjw9Y?N{+GOhfW{CC3C3Bf76~1!q>IScrJSAn01cT7P zLL|G~4xRounZ66YJ9Jt!Zkn!FpSH-LQ!~36VbSJQSl2nZ?FDgr?I;PC@-|qe#>W85 z6NmDW8Vkep)+|2E|8J6y=^v60D$Mj7*OUgILwqcHTpH(=Ktz|TpxkRuw zKy~?umK$-nua;E%f`b1xr(b?lNMW-zU}SJxxv$h<0EG?(VzG`)p7$w7HhZVY8>V8r0GuF$oM{_?7MJV8FmY5QP#s(tNbjpRk1NT!!YdM>BkC zg#5%{^!>)*jl<~5knhUQ=*FM#Cd%k8lkcv==%JnOVa(`ho$u+y_|h}~r8ncN!2DO? zjIZPKU#By^f#km_V|-he|F(_sU2p!oQAV$se6JNo@11<_W5)NF`R}2O9}o-v&j8@y ze~(KEUY#PH)7uUn~Z2dQiaW0ZuO_Q%8l_d-I9Xa(H7D^Uf)!U9aVo z{7r&rI!{pkT|aM%?&#G;jyduCHr?Bs@z~n$*{_w9#?nR;!W@iD$%OR3kZ^p47vDP; zde=Nb!Qsd{9i>F1Ye;yB)gBuCjN=0JSqwR$Xt{AoZgyYi&U_Pfi!m9kMQQs^p3pQ^ zd~H=bWV=lo(!24*9pqig!zlZ0wkMq~(bs6(I`CpX%9EyS_Nd0?M^v7czg*IgkfU3l z(A<{sw+0tahxjV}abp>Nse`ZF4iTh_Y?4KdzS851+qFd3hrB>}^H2%5K>S z>hmPgmW|#rQzN4r9pzodZ16f+0Tgh0EP&GkoF3rx0H+5yJ;3P!P7iQ;fYTEJoF3rx z5CEq)y23;sd{Bm;;M6d(Y8(5+Dj>v!KtBVSO)`zW5$p902!_hX9|WS20!4C4bowI# zP7iQ;fYSq<9^mubG|7VYR+vd9 zWAWVzMEv!?RXmfOg{>~oYPCOW(oy2Cbn;gt&d{q~n5pmeDD!B2ZhW;c+m7g25g_7V zPP91JC*xTa*Xm#`usA;!=vk8|;%Kk4xG>x6Sy$WY==5@NaTW1pLyw4)>%&>OU743n z)2&XP(0YUUYmfTSHF9U#DCWnb7uEuw`CB5%sw_Fut0jbACVVb%2!X~E@peL9AmX<) zzg{-?NgIyzz=>bj;aC(5#1Dqb<^Z=&^I6c7W0Z#94POtsPO2ouv{?GgGF+W>fv7UY|Hu2v1 zaxKQhF!E#e{oYy5&xM0k`MaQkAI#*1L)=G|O6Y^oX^e<}%k9bkXiPYtHjykGIU@d| zdM9rsEWfWj4kAp~KOgu>PW6*G+-~j>J#@M|0_OqaO?}^a^U3I4OLH=ZVq z#(E!;dw~nx8r_i&!D^Dm+M%jApNAdAtx65TX^X}^2xdVbc@YHv!0@ug*K_rPM(C*Z z`X_b%sOt?Pva6#tQ89Xr#YB<2gRle}lc7xhPbU^C8-q%Jb@k%OAG&%+>tz?ze{}Ws z%}OS+nh4M-|D&$nudH6_+M_gTlFKL(!j%ioby9X*#sl=ewAjA;KO=gT1}tTH zix%U(44cigPQp?LTsB#05C?8(t$41j zX#`Z=Pvi%&Vdfq4*7Kj-#L2x{d&Jji(_Bn>CRd;Gr$%>%C61fw;#>9_<-lXCydYR{ zXB)>dPkw=8v>B(cLr%Y~{8uBd$BE5Sjd@#9DFR8bmxGPsnfD0IJcZ#kp<+6k=;fF= zZq(CJI((~0Cqv_3UA*+$9<#1IXr4ZeI?435q4zdE^QzjnTrXBieQfKW%XvyW z+y2WYCj1bKq5yMW{VPF`mG+K>@y=^01}!y2@fQqN9y>O-AvWRGZ``fz0wH$340c63 zc4ZLTItGU-YkPAOD}4s*6-X8x#JV?;IDMObn!zes4O-aqVuK-IE$>^LwN5vZ8+*Q+ z>y8^Uqq|DJyY{Yw@ve=&ji)iA$)v0cE{YY!2gmflq9rc-?7aMNs5Ri;|Q$`Vec@Xi=w)o$%h$#O~)%FvaoIyhm=~ z`m$B*2Fl8(4;njUqxv*6cs$y4LTu)GOdFK^DpWf$60>9qz2>da(XBz9}XXGk zwD5~LX}_!DVlWhAf##zbbKkOg|5DfPVi#L8w6v+|unEzr1($tI8*Cw=yX?xkDFJDW z*WHvU+frfQ)-KyNX5X6z>Gyd{3QI2z&@^clA z3+?g?V~$Jf@=GUaWb{i=dJWCX=tq9f$!xD>59Y${R}Hv=~g4uZE1IJa#)+8mP`6 z%MkNJC0D2^n8=ZfVKy49Dg2VJmZOlSP+K%ztXplrJXl*iTWIMPM-&juV4NiKIr?#P$Jg4keP( z5H<+Xu8$^3hKv@9!TR}NGs9&%++MR14DJt97@KB9 zK6976y+1U?YM$#;xvWZQEwycIY^P|vSaQEVdJ)mQw5xK}l#s?_&!IPT6aDgubGJ+B z=c5&*sjK${^T(f5TQ-QsuAB3{+?U;+aYTJ=x`{ELgePuu(02}&s?CCTq&$EK#x_dyVs5PMvL5PuF%8gARe**9G!&qr01X9bC_qC28Vb-*fQC8( zG!&qrRR9fTW545gwwVy6`qkl#%i&fo40|s_Bf1K-Xqbafe4_XSO5(j0BGm{Ktll<3eeE6MWiFX01Y()XedBK z0UBBe&`^Me0yGq$p#Tj9XedBK0U8R>P=JO4G!&qr&-4Hq`u{^3x?rKgV8t(M*`;e` z4Y7_!G&Y8yaqU5i;HL0nmhOWOz|w+`QyLJ2f{PrfCUx@~z0arRVAo(~4~ zpr*7W{hZQM_ffb>gwNtNOYhNu7$v*Gud`yTSJ&9E5hqKd#$*%VG0|id9nBo2ec>4y zlEUw<=*}-IS#T-~@O0X}^w*bLC*do~?O59U1vax&$c&YQ9Bs?**Pm#m(LmqW>IK;L z;b&`a{d=*Q>c+4q$psFuGZ^X&kZO#R-ZqSoQMK`!WQ>wV?3EK@w&>`m;rWF#X<`tS z{=k{MDi-MUQOy0tAFdlHG*=v0oxGA})>@f^}4gR8>m|il9 z9Xpy{nkV73Y+Z)5-iv0XNmQP>6Yg}}-gctL7Oi1+DzSx0PU_11GHv^oZp4`?xSPT& zG$!eC5+w0p(TJHpC1%midf|h_G>bn=vfb~Fjrt`qX>;0gvn8057@_>^(U{ZM*9H01;`;cw3uS#fu4Fh((^7A!aUjN7Q8 zh*3qEsZ_DEq9ktv+1Qjf-a?7JE{PWilNUB@TF`Ccg(y~!sT>fF=UmygvXMW);?oq- z1}%J1^RX2{(fk;{S0-Z=$G@LLlUW>KHz(4!zp$$`wZFBHRT5@MZd{hAkxA`zTz-?a z3t=@6I8LuS4(W2DStvu6VgDX27cB~&`<8t?O2mp8ek#)&i)tSSm50!kAyD8qNDnY1 zFI-~Uo~sQ-l83Q7ZJu#&uo!EdYNrn%Fvqpo$1m^KUy{0&I)9%z`9xOkAG~?Q&2g(A zrw~Q!n!L%@+r2l~-Lqx6&8l_Lg#~+<_9fXgZN0qjejn;>aTZ*jPNH(oFnSIZwW**k z|2bKHAO0=CpBeeBrPPd4v4mw|(SfYQUY5}o2=Cis^s?eX5nPsy1hyRp521-AxQN}- zvi8NXaBczacWl+=nI2Ag^V~dzEtz0@Sq3iY=n4W=xoX0tY6hzsQFdpwVs%e04HDcf zD;5Q(!}bxWG~4lV{7KEu9$jo1Y$MzFDy(%!E@HH86I|>^M5(o|Ty=x=&&_D+HFU_I z%%hkTn;LS_3RKZP<)+I)?xN|VJJX~m?W32iVsPeWe92892m*hsVvOKsiZKC)xH9Ee zF;^$Lk#{rsoig`Tu|CIyopOc22f^ZlRJKluh;8Irs^EsJII-NarnsS?HE!;cD)xxJ zoM9$K5D%AZH7}MNHz^PM;wjfGH^=j8Hd-;sEpCCsQ@*p)#}U>1w1Ht$2)?3cEUMK{ z+N)n{Rtub+3LI8(8Mp~NKjVWF6IeVG=5P~9I4q+300MQupm)fX;PQUvkrd!{?dN%F zQ7!oMOu&uj@sDaQ8#k#hJWt_x6|pI#)^3QF>-1)EEj~?6MT8D_^1O01cIUKP{|k~Nvl!7;!|IR=RR?hro9mFs1Y3EQRLuLc01QKwz7!| zRU_ilwy9OrJy%*h7v%Af6XO+-?FnUfE>Nb2vu!N=2dwnNgkZ{rfBK`+jg;|HS9f>w0TgH9x46u-I2s zzn2p!)_BC%Dq*#7a{JSB-aTc}LPqveoOZq_;+^_dUrM zW$KF1qb-FVE%ays9RoTBbS$oetJVf|ybkCX(6Jgd>#5L-pt6J$`bo>Zlw=WX8OtYk zgELd3`cJLnr~hz2h>cR{YxwBQHr8gUQjsYdoqoKDHbYk{lzB zj68Jj(yYgZl#>dqUr9P5C5%`k&79^Qz4bMwj4 zrj@?x;HcO5cxXiE8amX$FT!d2g@PZ&k1z-2s9ThcdNiS)9#5PuHf(|kOj9F74+)(G zxW!%$J4M<#KWqufId;SerZ7q)LI52j0UZN626PPQ7|=1GV?f7%jsYFF06GSAoDS&t zRA*cG>umC~;&v(f?}b=vQCgFAO_TV!bjw_#`6R9@!PBXB;lv9%zPU5=daVNFfQ|tj z13CtD4ColpF`#4j4ep5^m(gU_HwN$57kj$+$&Ulsjt6qmMVrz$DxxlBzpbQ4F302s z(B~)f5%2O1Q&dK=@qZ7@8cd3dkghcA>+NS#3Oc9rmL{5|xOQPdkt)90T8YuJ zYnwA8CY1XF1-+ktuM3~Th$bC_Ti=aQQh|Ot0%QKUC%u=mNvi*#{{A8Q`Wg4$xQMd) zgTOia?Ve>6*H`A*zPFPCbo-vld07I%SD3W@yCQ?H_4^TpAn9b+vrkv@;-u(|Rhnno z6p~V;rZlhlBT40(03GuKI>rJz<^XgI=orxPqqdKgEr5>K038E526Q|L=orv3pkqMC zfQ|tj13CtD4ColpF`#2W$NyjUXaOAqItFwM=orv3pkqMCP&$_6jQQM*e&k7@x5SdJ z713^(#LVtfoaq$tLNS4`kU+`#rxM>3iY|dC&*he3n>qd`k?2PWOr?C=I_i1n6j`C% zGV=kHM7%ln`)cW%iu*%aQ^`9+BfKG}@)g@<`4Rk;P&$Uvu`UsyV?f7%j+IpZ+N1$G zJ_K|O=osZIXrCF8?iZaIrmN)XA*5$QWjx3BI&F8Q2(!E3|EeZaw^d@+VW zG6Fm75nyj&ZTS2%L8z;jhf0Y!4Uep5sQ-*%be37%a8yM0Z=F-0*o#s(^ApqY^4s1~ zR5k;ibA&>JesRlf@f3^Eq$2ShhhDeY6BOAE4hp;$lH*s~5_Zc2))svZ+T4FiB_5;w ze)%O*-%q?~OZ19N#I;fUKqp?7PBPAjyFTFa-}X!V_9W7WN&7_9L|Qje=w%i%A1~1R zX-N2OZOP>NQZh)zNi8OENGGFyCtWHNC5dGJSo9qK#8TxL`B(&pd=^0&Y>NCn4CvSi z&@rH6K*xZN0UZN626PPQ7|`)0K*xZN7Xcm1-pT2Eg_t*0!;lJ)mRzk zR%cODRl$zvY*V>(vY zRh(67d#gv(Lrb;1qyCpGx!ShFX)~oGGD9sSx$Ox%18;$99 zVwo!DAEByShl~=8oOqqw2e_sD{wf8dFC^4IVyl(tm75A0dDZfEh>Qboyi=6GT)P`D zl5=L85h%iJv&1gagboiSr*j#3rmSg8s@WnSFPB^tecTmEs>TH9*aXn=bwJ0lfQ|tj z13K&Gglv260KVkilVc2oI>BFz+jtI?*4 znKFYS?Og5V%DF1DMwgGH%~cC^)&nstIxW=?@rb7@tpZzWR$8BLjCQrRJiDCed;J@r zV?f8~>uN5H%9IAohND;eG(3h+DlDnS*gnW5jpKdRrHpt*QY@x=*Y{X#QruqK<0Vx& zY1Sxln`I;R)>CFA#=wHBSxv;$&T9%^XuNoa(4z*qNR51&v_vRE@kY_~^|A;a8=zxA z$KN#o9RoTBbbR;P&{r&=;|xH@fR2;6&Qq>AC)H~>Z661eh(-3RA!jn9E zlzLhNb!P){zJa|wMjdoUwY;(4L)AVOsS$6Bts~Mbm*gzYQ-iOltfV}fr%P63$RKl0 z^552=o8?p$Q}ty)jC!f4w;?T&uS!xir)D+Ico1?$_aYgbGMh4^5l&eq24yswFP$<^ zxs2oev)*v4R;0?$G^O;er+7-Ejx;l#s;65kyZ^Hfmz=So-%bTwlu|6mT}z~xA@_}I)h<9;VYq6O4x$SCG^~YjsYD5ItFwM=orv3 zpkvGTaest^vj(m+(boUY!7di&V|luSYd>D@duYirER5biM_*&dK#2>fG%v7(f%{y~S4# zJl0}55-thq{JQ-1qa1BnXDw$(?ow*3#cp0tadow2#t*9A53$87gDRvU(wHFqA3+LE zs``MAhXEZ|0Xkj-bPVVi(6QA`2QFqn$0>l00UZN6?gDfS=orv3pkqMCfQ|tj13CtD z4ColpF`#2W$AFFj9RoTBbPVX&it+Fg9t9gtGuYs-#B(Bi-q;L0CcG=?-AhiA|NMeH zc77L4-;kE?dHr|MDHt z>kD2E_e)d% z0~CMOH5AA03ppZPt=G#5yK8eJoG5#fuQZo+M;1G%B@zc;`Y_TRVmIN);f=z}rR&|3 zPkKZAD_ey=v-wyrDTn~jF`(luB%otJ$AFFl9(iSn0Xnt^bPVX&>0xSNNS_uGfB4OC zbY69Fo^*-)eVeGs=;zbzZ%dq$^ZZ1lzeS+M?F)>g-`~;`ZTGt66Ukzho6r>bQ_S|2 zlv#3VWEm!9*fi>=G?#@@7SCzqi}QRse*Z*t4lk8s{<%OQ=B=Ph^z4#VM3|?rOg>G! z$j7BrtNSsNGcI(5v6WIDvZ$C^^@s0n#5WS@bUx&~bf(d>==%P5jDF=?UOtBbf=FSE zpulpW`Dmy&v60K1#OWzAT2pVzuVm?Rf_X-XMMo*QX0B9v{uAW{LH06Yf8OVqQoqp> z+`}?lX4xy3h#P~S13D%FbbRqrEXbDKrg?P<DBTU1jNzL>ory#*nu)e*!`UAtT zmrmc#z(2N0B9o{FYgAHLSt5nt_;F)P0Fyo6wZ4Yxfk2&FLFO~1SW5XD92`+(dLI&# z4C0aZDaY9e>KQME*H5f8@a%}Pjf!v!aNK5^RuIGzH>fkd7scqNo$55;%i;{VN~Xx; zmAseOr+3h`R))@~>j9)9LL80X?{!R(?1jc%(PL*-o4I|*ol8y|%CEu6ym{(HK!--Aaec+iVa=XTIX z#8Z9HPb#^4Fd)8u{0Q&5g~TsiI?n80ASEj3pEpogh<$0CDFiPb0xUb;o4`Ph}p`;J#%vQRd`mGZA4}oU;V+>J;JEhR8irFTrsv%|-WA^cxoLU8NG z$4f>jI-M*(lMdu^jTlr=m=f~(D}Obq0UZN626PPQ7|=1GV?f6VDbca+q}LvQk&>A< z-ZxLk4q-E5iTy&+))LchY&EdC-I#b0i_m8$_Go+u=bk9{wv43nxxGg-pSo%Uz zC*^_IU)1}go~y;_3Z4%XQpsf-u34U-|9H|{Tgpcl6MOw56Pq5rLuGnLxjkXDp_faX zMs?wM1*1;JQiSt2k-iYUU(*mwT@+wB%=JbyU`Nnbbul@(Ib1KT_aj84G>3Z}EBXxw{aZMR z&->C8-lYPi+b{5Uv3j_vxm^MAC;RkKf8) zYydh2bZkJjbM>jQq5ef`ma%+A!t+Y4ql)?@f$)3WS?2xEE6Xdt?%Lr~7V6cI*CRb% z@Rcm{o4&J>cwzXH$FK^8X=MyUvJX{xQpCI$qY5h|f4Qw182SD)LtP<}NUtwZQm{fe zpkqMCXIp@d0UZN6Mk3A~RsbCf0y+kCoP8t9nFw9Cmi&$>u<4<11>OrzCNJftG-=%x zrL~GUKG*7w3mPE{<3Nc#ae>B0|2#{kM#=1u!SD5F;n@_b4=9eqnYA9HdEy*LYc*wC zO&w8Bx$I486(_-^^J;jy4oFlC9BVr5{Bq zqdB5#RXa+ttWL2y{Ooo7?jO`0X{(f*%$q!!IK zcQlNLl(OHqbGp|0y{&T`&~Xc(V?f7%jsYD5ItFwM=orv3pyTg=jsYE40Xpt6GCyf) zE#yr=JJOEYgjOyTHeUQ>S>UCY*ESVz>L+C`;>?vK7inAPSn@Vm*pdTu4ColpF`#2W z$AFFj9n+f6^P20AKFplEk@vAIy}GoTrKtP`S>fjL_>p$yY71T`D*K5Zyna z|6)T**0k#QG2yy+Wo~SR=8i>DDm^xB6&FupMHJVME>X<=F*h}Cnej$}FlYX&_}E0e zbkjcy3D=sIt3rp`BGuY=s$FW%%#9jE1)2=2f-dKbxu}Kt3pSPu$SaSOJFV5#t5-@h z3ch5HsTKruEClG-9MG{HpkqMCfR4=^k4zZ>9rpn`26PPQI2_P1pkqMCfQ|tj13CtD z4ColpF`#2W$AFFj9RoTBbPVVi&@rH6-KYzFZk6LM;nxCR3;qPtBeYmNoVSfQXx{u* z48?o?RKk+o-DyEK`CQ-5y^3Yu(@_@hfIQBsc!iEw`R)XlBHkfGZ!S%P3ZXWeWAcE_ zP4-L=?u{hI2XXm`p62Dc>4run0EDesTVY&fObKcg=h8*4uVs z@xFsx)g47nsyz0A1{Y;@K*xZN!-fDI13CtD%wvJUgaJA(2XqYRShY>AAJk^INkAZ@2a=RyfOrrZ^`4t3~g(z+Mq#Z!@Zp z%%e&stBQ-ZGPpvzpq1j|oyQJUb9jNagkk_p^U>x*0uYYA!*VB~Ym{Ny6%P{{^ zM}4jSi*r4WCbl4^B1`(@9^qJpzf=x>c_aOD{juF^K*ytijsYD5ItFwM=orv3pkqMC zfR6D19RoVf1a!<|_=QT+Oe4b!Z6gv?n(tpZcx&x>mW*6Nu=J9bd-!D5%u)9IGIu?C zXutUflj#|tV?f7%jsYD5ItFwM=s03rt=swWY8r*aH6c;ix@i>uEC=@-NmZ#{)Ize* zlBmG@D2bfe@!V=*DMs}T4or}VXx(m3T{+=#w3;&#RkO?JwTp`>f2E-|>pUl~XgVMMTw|SJqXt zT_fZF(w2RbxKZ})p9$>7onOSZ`>9Wu$$Lw7F$_M!pDh>IZt54&IfIDd6+p*xfR5(?9p3?T4ColpvCPu$WImu{B|yi3 zjsYEa13CtD4ColpF`#2W$AFFj9RoTBbPVVi&@rH6K*xZN0UZN626U{Vtr3&*c9Uy` zplhq~)o?_tL#NfR>FxI)|B=VL4_GO8IjKwB2*V?!SG+7vGNSqJC>1Hkt+Z5HC_CMd zlj2f#*Mw$VJEWnQkcM3IiMDQ;JxMOUJ=eNAs=V<4%$3?+|nD&ryi*zRDb*wbxUMg5mGtpY|j2+_UCN%_Ks^% zw(q{GQDFU`{#NZiiEEZZ=lXE1wUyPmsooY(A@3LFavTkyV?f9AE`W{!9RoV%B)AjZ z0qEEa&@rIn8?K?Li@i@tJ6Hl4HN})Fq#N9?jRu)D8+ME|Fy!Gs$hO(Zvv+MwQ48;m zZrsJ7_0tr8HizA!9iy~+xFDhFG$6Vn-o%6zaO=c`Yv&s2yoylE(G4-eR_9)F934l| zK8%h0%{|6@CG7QIi@l}M6?Fn4zo2Ph!Wu#mOKUuzIu+Z{q|<;;^q>T03Y$ zHTeR{e8%wjAHNRF52_kgQfiBeFpQ6F3n*$s5=2GDwpUuTXF9atwERSF6lPv~d{T+v zjcLCoh`n3dT~L8J4r(f5(z89WFWbRQ^8C}QT8Vg2MO$ArnIrxlds@`O^uA4JX2}Q8 z@gksOK*xZN0UZN626PPQ7|=1G<6}U_fQ~}}9V6q-bO}}Q$ip67ksc$jdaRge7JvIw zM)3K&NhI#!f5Y#nbpGh2QL;~}{+Vij{d*43F`#2W$AFFj9RoTBbR1(=EkZmk`pS5k zf93u<>4d6Xl~JwO9WQ%4+rV%X0JH&I9?4Ijx)yRVFk4A=Y~mj&9w|X>$6W2uJ&ICJonlsepOe zo%t4AT#-)p?7PCPU=>mKJx3DJc^~z8U);A>DO<*2j=_%{72FhGw#?giQ>qTr)TeF7 z?oqouyA}J7JOM$KI65&#KpyN+~jsYD5I{x3!c72ar0hc#iv-hPFD{R`Yc@37MZOM*WRul)Nu8CSw_iD@sPCFJbmOGjzr4Vc z%Xh;F@}?i{$L(c*y4vH=L-a~Gj1v2q_>8CjMz?T8uGSZ_E4%|Yal-d#v0o@x9Gclm z*BS4JjZlBm802~-V#qAWrA}4ZlNPkW>G5|Og%xp>H6c$cZ?d_uFft^pAZn*uU1r6w zcqc%pTp;_e(#b?imt=#7ZherL^!LT;AV9}}jsYD5ItFwM=orv3pkqMCfQ|tj13CtD z4ColpF`#2W$Ja|d=L&3=BJ>|>r`NVK@a}qdSSaM_zh>S1sz3JKVzUL=VrRi`m9es# zqJ8G@ApW!MYnKjk2W&!_bS>eC`GaLdL;C~cTi(|(I-?U}t=zMlD#aD!eF;rjq;Kj> z&UnQB`8-Wqe_H0Y|NhZmnH#A|H8rCox~sn%s2h{!s@>Ng3`aaLW6Kx1NhclqWZKa9 zbrI)1CP2r4j``%I2nm~H=mtBz-G0np|MYu08+TlOM}F;+hO|{_^+{@v^~S4JI?hUp z=<^htX?%umH*@zG)#d{Hr>y=VmdL>HG~>yTw%(nq_s^~r7aYCZK6gSYoGeaupSI%M zPv!&w9RoVH_X2bb=orxP+blIs6+p*TfQ|tj`}1EL=~17l@G-ol>c&ErdkfpuB|6C& zU#7hDV9&v5R%dQ>Bzai7w5haq?DDkSrS8?;ss77z_q$3dc6}}jaqsPT-P-KXz0||U z-IIl#b^O@rEYwTpwXj*W@M3hq@8`lVr}^OVxBhyZk>JxI0tP>RKaTE~Nmg9B+Ks&nrE9RoTB zbPVVi&@rH6K*tEjH+=Pu_mzU4S&ozS)p38EizgYq%9n88YH5ybLQiT^NM}Ues$O9y zD)fgB=ZD>{M^8GdyzG=TQ3C79T^2rT`(2N5o8zs{2EWww|NeV?LiX8_!8)n@Q&YvG z{B}UnU!^wZs%tvVUG15bf zMr2&CA{UR9=m#DZvXc+G+Vzb}`_dGBb5~DDj~C8Kx{fir8O%ph+N^rwc-qSfv?PD}VAZeaBUYZ%srFvF!bQ>k5gEcawf52x zxA#fCRc~rNoT>KrwEA5=i47u#1C~p~#|&$MmX9YIzBM(<9xaD$+@{zziXA`SE51XX zH%E+=^j&CNsFmvoPkbgb*GYZsJKaksA29dMsM6*X&$|2X*#$>J@)x;q{cW z?bdyTKYJs0{`-5p;Qrsg-&=M6;r^cO|MwprX+9pIX76RjgJ2@v{L6IcUILkeHxzOC z_&l0@B<2Sp^w@j?Npv51z(FV*X#tUjWSh#NK>Xc#Bcs9#td6{qZK`L zJK$HWHE9w3h~}^;>Q|hTZV}@GdKl61EB<+05%ZSjh|Kb@1V3!i%`^0f!o{z|VA5hX zLM^m1<6%;iZZQWP2CXi0h)jwr=Hk)9Xqz7;Pl zO~sXpmuZc=m>;1Qv89Ms%=oi_qwLS5Wl|$r6P~D}oNe7QnFY**PsdU2L0p;Kmeypz z@=@Mz9JWm13^V!a;^-|NS-B#i_EZStaXyh=xia18RD{fN0Y!YdDv$Pu81v&o`tfpg z$UD3T@NT>GY1{65;p?T}SO1)bequ)Odxy@90e4#c`P; zS*1aw_G}^JNx7z8rD4YCY^lsig+Y9!ahdj9rTIyv*?8rH*3r4zfRid~vMRF??fC}O zNwt$+mHEQxd`rhk&GYyw%PsANj^&eDzwxR^XQK<<7bkVWWYyM$I*a{`r}a^K)i!iv zi^DRf?~>xH?Ra#SM$JzfGRLbOB*&H}0!|zA$!eT5be5-4r%mO0H7=%O%kv$l&Gqp< zHExbNE6dBLEp6j9&wR&L)-Fz4d&z2_N9wGuGoH1f^=dsc##X<{oV8EI*Ls)feEea4 z*0DHV>(e^+aWCNP{b#Z|zY(3aL)2O4wq9Mp!r0nr$641wd|l9%&Zmpzv+m#Hb+69G zKH)CTdhp2Wg9&v%vlHOsv7h7P-T2=C3Bm}$2*C)!2*C)!2>o9lAsnsV6FYl0UuSP8 THX~b4d;4d`?i$Vxc(VToDIh)4 diff --git a/docs/coverage/covindex.html b/docs/coverage/covindex.html index 3fb4dfd7..c4657bac 100644 --- a/docs/coverage/covindex.html +++ b/docs/coverage/covindex.html @@ -45,7 +45,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 05:27 -0700 + created at 2023-06-02 06:44 -0700

    @@ -234,7 +234,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 05:27 -0700 + created at 2023-06-02 06:44 -0700

162
+        
- - - - + + + + @@ -219,10 +219,10 @@

Coverage report:

- - - - + + + +
149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
 163
 164
 165
@@ -2121,20 +2123,7 @@ 

184 185 186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200

def normalize_piece_length(piece_length: int) -> int:
+187
def normalize_piece_length(piece_length: int) -> int:
     """
     Verify input piece_length is valid and convert accordingly.
 
@@ -2239,22 +2228,22 @@ 

Source code in torrentfile\utils.py -
- - - - + + + + @@ -219,10 +219,10 @@

Coverage report:

- - - - + + + +
337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
def path_piece_length(path: str) -> int:
+        
- - + + - + @@ -204,9 +204,9 @@

Coverage report:

- + - + @@ -219,10 +219,10 @@

Coverage report:

- - + + - +
321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
def path_piece_length(path: str) -> int:
     """
     Calculate piece length for input path and contents.
 
@@ -2336,22 +2325,22 @@ 

Source code in torrentfile\utils.py -
- - + + - + @@ -204,9 +204,9 @@

Coverage report:

- + - + @@ -219,10 +219,10 @@

Coverage report:

- - + + - +
278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
def path_size(path: str) -> int:
+        
- - - - - - - - @@ -2453,27 +2424,25 @@

Source code in torrentfile\utils.py -

264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
def path_size(path: str) -> int:
     """
     Return the total size of all files in path recursively.
 
@@ -2421,31 +2410,13 @@ 

- list - - -

List of all files contained in Directory

-
- - int - - -

Total sum of bytes from all contents of dir

-
- - int + Tuple[list, int, int] -

The size of pieces of the torrent contents.

+

list - List of all files contained in Directory +int - Total sum of bytes from all contents of dir +int - The size of pieces of the torrent contents.

- - + + - + @@ -219,10 +219,10 @@

Coverage report:

- - + + - +
314
+        
- - + + - + @@ -219,10 +219,10 @@

Coverage report:

- - + + - +
300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
 315
 316
 317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
def path_stat(path: str) -> tuple:
+318
def path_stat(path: str) -> tuple:
     """
     Calculate directory statistics.
 
@@ -2484,12 +2453,10 @@ 

Returns ------- - list - List of all files contained in Directory - int - Total sum of bytes from all contents of dir - int - The size of pieces of the torrent contents. + Tuple[list, int, int] : + list - List of all files contained in Directory + int - Total sum of bytes from all contents of dir + int - The size of pieces of the torrent contents. """ total_size, filelist = filelist_total(path) piece_length = get_piece_length(total_size) @@ -2539,16 +2506,16 @@

Source code in torrentfile\utils.py -
- + - + @@ -203,10 +203,10 @@

Coverage report:

- + - - + + @@ -219,10 +219,10 @@

Coverage report:

- + - - + +
410
-411
-412
-413
-414
-415
-416
-417
-418
-419
def toggle_debug_mode(switch_on: bool):
+        
- + - + @@ -203,10 +203,10 @@

Coverage report:

- + - - + + @@ -219,10 +219,10 @@

Coverage report:

- + - - + +
394
+395
+396
+397
+398
+399
+400
+401
+402
+403
def toggle_debug_mode(switch_on: bool):
     """
     Switch the environment variable debug indicator on or off.
 
diff --git a/docs/api/index.html b/docs/api/index.html
index c5c40cfa..dcf0b555 100644
--- a/docs/api/index.html
+++ b/docs/api/index.html
@@ -1015,18 +1015,7 @@ 

Utils Module
-

Utility functions and classes used throughout package.

-

Functions: - get_piece_length: calculate ideal piece length for torrent file. - sortfiles: traverse directory in sorted order yielding paths encountered. - path_size: Sum the sizes of each file in path. - get_file_list: Return list of all files contained in directory. - path_stat: Get ideal piece length, total size, and file list for directory. - path_piece_length: Get ideal piece length based on size of directory.

-

Classes: - MissingPathError: Custom exception raised when no path was provided to CLI. - PieceLengthValueError: Custom exception raised when incorrect input value - used for piece length field.

+

Utility functions and classes used throughout package.

@@ -1098,7 +1087,7 @@

Utils ModuleReturn the total size of all files in path recursively.
  • path_stat(path) -(list) +(Tuple[list, int, int] :) Calculate directory statistics.
  • toggle_debug_mode(switch_on) diff --git a/docs/changelog/index.html b/docs/changelog/index.html index 8cc4fd2d..8d4cb2bf 100644 --- a/docs/changelog/index.html +++ b/docs/changelog/index.html @@ -85,7 +85,7 @@
    - + Skip to content @@ -326,6 +326,13 @@
      +
    • + + Version 0.9.0 + + +
    • +
    • Version 0.8.14 @@ -977,7 +984,15 @@ -

      TorrentFile#

      +

      CHANGELOG#

      +

      Version 0.9.0#

      +
        +
      • Updates to Documentation.
      • +
      • Updated the main Gif in the readme file
      • +
      • Improved unittesting
      • +
      • Added new tests for functions in utils module
      • +
      +

      Version 0.8.14#

      • Updates and improvements to documentation
      • diff --git a/docs/coverage/covindex.html b/docs/coverage/covindex.html index 49c8c26c..9fca995e 100644 --- a/docs/coverage/covindex.html +++ b/docs/coverage/covindex.html @@ -44,8 +44,8 @@

        Coverage report:

        - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    @@ -119,10 +119,10 @@

    Coverage report:

  • tests\test_utils.py8997 0 0100%100%
    torrentfile\__init__.py
    torrentfile\utils.py126131 06100%1100%
    torrentfile\version.py
    Total29622975 067100%62100%
    @@ -233,8 +233,8 @@

    Coverage report:

    - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html index 0680ab7d..6e87d47a 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html @@ -64,8 +64,8 @@

    ^ index     » next       - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec_edit_py.html b/docs/coverage/d_1bc82e0ab2fcb2ec_edit_py.html index a91186c6..12b03c4e 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec_edit_py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec_edit_py.html @@ -64,8 +64,8 @@

    ^ index     » next       - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    - 126 statements   - + 131 statements   + - +

    « prev     ^ index     » next       - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    - 89 statements   - + 97 statements   +

    @@ -64,8 +64,8 @@

    ^ index     » next       - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    - 126 statements   - + 131 statements   + - +

    « prev     ^ index     » next       - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    - 89 statements   - + 97 statements   +

    @@ -64,8 +64,8 @@

    ^ index     » next       - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    tests\test_utils.py8997 0 0100%100%
    torrentfile\__init__.py
    torrentfile\utils.py126131 06100%1100%
    torrentfile\version.py
    Total29622975 067100%62100%
    @@ -233,8 +233,8 @@

    Coverage report:

    - coverage.py v7.2.5, - created at 2023-05-02 17:50 -0700 + coverage.py v7.2.7, + created at 2023-06-02 00:20 -0700

    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    alexpdev/torrentfile @@ -230,7 +238,7 @@
    - +
    alexpdev/torrentfile @@ -1424,7 +1432,7 @@

    Coverage Map{"base": "..", "features": ["header.autohide", "toc.integrate", "navigation-expand", "navigation-tabs", "navigation-instant"], "search": "../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}} - + diff --git a/docs/assets/javascripts/bundle.2a6f1dda.min.js b/docs/assets/javascripts/bundle.2a6f1dda.min.js deleted file mode 100644 index 2f912a0b..00000000 --- a/docs/assets/javascripts/bundle.2a6f1dda.min.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict";(()=>{var Hi=Object.create;var xr=Object.defineProperty;var Pi=Object.getOwnPropertyDescriptor;var $i=Object.getOwnPropertyNames,Ht=Object.getOwnPropertySymbols,Ii=Object.getPrototypeOf,Er=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable;var on=(e,t,r)=>t in e?xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Er.call(t,r)&&on(e,r,t[r]);if(Ht)for(var r of Ht(t))an.call(t,r)&&on(e,r,t[r]);return e};var sn=(e,t)=>{var r={};for(var n in e)Er.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ht)for(var n of Ht(e))t.indexOf(n)<0&&an.call(e,n)&&(r[n]=e[n]);return r};var Pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Fi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $i(t))!Er.call(e,o)&&o!==r&&xr(e,o,{get:()=>t[o],enumerable:!(n=Pi(t,o))||n.enumerable});return e};var yt=(e,t,r)=>(r=e!=null?Hi(Ii(e)):{},Fi(t||!e||!e.__esModule?xr(r,"default",{value:e,enumerable:!0}):r,e));var fn=Pt((wr,cn)=>{(function(e,t){typeof wr=="object"&&typeof cn!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(wr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(O){return!!(O&&O!==document&&O.nodeName!=="HTML"&&O.nodeName!=="BODY"&&"classList"in O&&"contains"in O.classList)}function f(O){var Ke=O.type,De=O.tagName;return!!(De==="INPUT"&&s[Ke]&&!O.readOnly||De==="TEXTAREA"&&!O.readOnly||O.isContentEditable)}function c(O){O.classList.contains("focus-visible")||(O.classList.add("focus-visible"),O.setAttribute("data-focus-visible-added",""))}function u(O){O.hasAttribute("data-focus-visible-added")&&(O.classList.remove("focus-visible"),O.removeAttribute("data-focus-visible-added"))}function p(O){O.metaKey||O.altKey||O.ctrlKey||(a(r.activeElement)&&c(r.activeElement),n=!0)}function m(O){n=!1}function d(O){a(O.target)&&(n||f(O.target))&&c(O.target)}function h(O){a(O.target)&&(O.target.classList.contains("focus-visible")||O.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(O.target))}function v(O){document.visibilityState==="hidden"&&(o&&(n=!0),B())}function B(){document.addEventListener("mousemove",z),document.addEventListener("mousedown",z),document.addEventListener("mouseup",z),document.addEventListener("pointermove",z),document.addEventListener("pointerdown",z),document.addEventListener("pointerup",z),document.addEventListener("touchmove",z),document.addEventListener("touchstart",z),document.addEventListener("touchend",z)}function ne(){document.removeEventListener("mousemove",z),document.removeEventListener("mousedown",z),document.removeEventListener("mouseup",z),document.removeEventListener("pointermove",z),document.removeEventListener("pointerdown",z),document.removeEventListener("pointerup",z),document.removeEventListener("touchmove",z),document.removeEventListener("touchstart",z),document.removeEventListener("touchend",z)}function z(O){O.target.nodeName&&O.target.nodeName.toLowerCase()==="html"||(n=!1,ne())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",m,!0),document.addEventListener("pointerdown",m,!0),document.addEventListener("touchstart",m,!0),document.addEventListener("visibilitychange",v,!0),B(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var un=Pt(Sr=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(c){return!1}},r=t(),n=function(c){var u={next:function(){var p=c.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(c){return encodeURIComponent(c).replace(/%20/g,"+")},i=function(c){return decodeURIComponent(String(c).replace(/\+/g," "))},s=function(){var c=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var m=typeof p;if(m!=="undefined")if(m==="string")p!==""&&this._fromString(p);else if(p instanceof c){var d=this;p.forEach(function(ne,z){d.append(z,ne)})}else if(p!==null&&m==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),c._entries&&(c._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Sr);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(f,c){typeof f!="string"&&(f=String(f)),c&&typeof c!="string"&&(c=String(c));var u=document,p;if(c&&(e.location===void 0||c!==e.location.href)){c=c.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=c,u.head.appendChild(p);try{if(p.href.indexOf(c)!==0)throw new Error(p.href)}catch(O){throw new Error("URL unable to set base "+c+" due to "+O)}}var m=u.createElement("a");m.href=f,p&&(u.body.appendChild(m),m.href=m.href);var d=u.createElement("input");if(d.type="url",d.value=f,m.protocol===":"||!/:/.test(m.href)||!d.checkValidity()&&!c)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:m});var h=new e.URLSearchParams(this.search),v=!0,B=!0,ne=this;["append","delete","set"].forEach(function(O){var Ke=h[O];h[O]=function(){Ke.apply(h,arguments),v&&(B=!1,ne.search=h.toString(),B=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var z=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==z&&(z=this.search,B&&(v=!1,this.searchParams._fromString(this.search),v=!0))}})},s=i.prototype,a=function(f){Object.defineProperty(s,f,{get:function(){return this._anchorElement[f]},set:function(c){this._anchorElement[f]=c},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(f){a(f)}),Object.defineProperty(s,"search",{get:function(){return this._anchorElement.search},set:function(f){this._anchorElement.search=f,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(s,{toString:{get:function(){var f=this;return function(){return f.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(f){this._anchorElement.href=f,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(f){this._anchorElement.pathname=f},enumerable:!0},origin:{get:function(){var f={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],c=this._anchorElement.port!=f&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(c?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(f){},enumerable:!0},username:{get:function(){return""},set:function(f){},enumerable:!0}}),i.createObjectURL=function(f){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(f){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Sr)});var Qr=Pt((Lt,Kr)=>{/*! - * clipboard.js v2.0.11 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */(function(t,r){typeof Lt=="object"&&typeof Kr=="object"?Kr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Lt=="object"?Lt.ClipboardJS=r():t.ClipboardJS=r()})(Lt,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return ki}});var s=i(279),a=i.n(s),f=i(370),c=i.n(f),u=i(817),p=i.n(u);function m(j){try{return document.execCommand(j)}catch(T){return!1}}var d=function(T){var w=p()(T);return m("cut"),w},h=d;function v(j){var T=document.documentElement.getAttribute("dir")==="rtl",w=document.createElement("textarea");w.style.fontSize="12pt",w.style.border="0",w.style.padding="0",w.style.margin="0",w.style.position="absolute",w.style[T?"right":"left"]="-9999px";var k=window.pageYOffset||document.documentElement.scrollTop;return w.style.top="".concat(k,"px"),w.setAttribute("readonly",""),w.value=j,w}var B=function(T,w){var k=v(T);w.container.appendChild(k);var F=p()(k);return m("copy"),k.remove(),F},ne=function(T){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},k="";return typeof T=="string"?k=B(T,w):T instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(T==null?void 0:T.type)?k=B(T.value,w):(k=p()(T),m("copy")),k},z=ne;function O(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O=function(w){return typeof w}:O=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},O(j)}var Ke=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=T.action,k=w===void 0?"copy":w,F=T.container,q=T.target,Le=T.text;if(k!=="copy"&&k!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(q!==void 0)if(q&&O(q)==="object"&&q.nodeType===1){if(k==="copy"&&q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(k==="cut"&&(q.hasAttribute("readonly")||q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Le)return z(Le,{container:F});if(q)return k==="cut"?h(q):z(q,{container:F})},De=Ke;function Fe(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(w){return typeof w}:Fe=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},Fe(j)}function Oi(j,T){if(!(j instanceof T))throw new TypeError("Cannot call a class as a function")}function nn(j,T){for(var w=0;w0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof F.action=="function"?F.action:this.defaultAction,this.target=typeof F.target=="function"?F.target:this.defaultTarget,this.text=typeof F.text=="function"?F.text:this.defaultText,this.container=Fe(F.container)==="object"?F.container:document.body}},{key:"listenClick",value:function(F){var q=this;this.listener=c()(F,"click",function(Le){return q.onClick(Le)})}},{key:"onClick",value:function(F){var q=F.delegateTarget||F.currentTarget,Le=this.action(q)||"copy",kt=De({action:Le,container:this.container,target:this.target(q),text:this.text(q)});this.emit(kt?"success":"error",{action:Le,text:kt,trigger:q,clearSelection:function(){q&&q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(F){return yr("action",F)}},{key:"defaultTarget",value:function(F){var q=yr("target",F);if(q)return document.querySelector(q)}},{key:"defaultText",value:function(F){return yr("text",F)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(F){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return z(F,q)}},{key:"cut",value:function(F){return h(F)}},{key:"isSupported",value:function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],q=typeof F=="string"?[F]:F,Le=!!document.queryCommandSupported;return q.forEach(function(kt){Le=Le&&!!document.queryCommandSupported(kt)}),Le}}]),w}(a()),ki=Ri},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,f){for(;a&&a.nodeType!==o;){if(typeof a.matches=="function"&&a.matches(f))return a;a=a.parentNode}}n.exports=s},438:function(n,o,i){var s=i(828);function a(u,p,m,d,h){var v=c.apply(this,arguments);return u.addEventListener(m,v,h),{destroy:function(){u.removeEventListener(m,v,h)}}}function f(u,p,m,d,h){return typeof u.addEventListener=="function"?a.apply(null,arguments):typeof m=="function"?a.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(v){return a(v,p,m,d,h)}))}function c(u,p,m,d){return function(h){h.delegateTarget=s(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=f},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(n,o,i){var s=i(879),a=i(438);function f(m,d,h){if(!m&&!d&&!h)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(h))throw new TypeError("Third argument must be a Function");if(s.node(m))return c(m,d,h);if(s.nodeList(m))return u(m,d,h);if(s.string(m))return p(m,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(m,d,h){return m.addEventListener(d,h),{destroy:function(){m.removeEventListener(d,h)}}}function u(m,d,h){return Array.prototype.forEach.call(m,function(v){v.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(m,function(v){v.removeEventListener(d,h)})}}}function p(m,d,h){return a(document.body,m,d,h)}n.exports=f},817:function(n){function o(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var f=window.getSelection(),c=document.createRange();c.selectNodeContents(i),f.removeAllRanges(),f.addRange(c),s=f.toString()}return s}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,s,a){var f=this.e||(this.e={});return(f[i]||(f[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var f=this;function c(){f.off(i,c),s.apply(a,arguments)}return c._=s,this.on(i,c,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),f=0,c=a.length;for(f;f{"use strict";/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var is=/["'&<>]/;Jo.exports=as;function as(e){var t=""+e,r=is.exec(t);if(!r)return t;var n,o="",i=0,s=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function W(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],s;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return i}function D(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,i;n1||a(m,d)})})}function a(m,d){try{f(n[m](d))}catch(h){p(i[0][3],h)}}function f(m){m.value instanceof Ze?Promise.resolve(m.value.v).then(c,u):p(i[0][2],m)}function c(m){a("next",m)}function u(m){a("throw",m)}function p(m,d){m(d),i.shift(),i.length&&a(i[0][0],i[0][1])}}function mn(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof xe=="function"?xe(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(s){return new Promise(function(a,f){s=e[i](s),o(a,f,s.done,s.value)})}}function o(i,s,a,f){Promise.resolve(f).then(function(c){i({value:c,done:a})},s)}}function A(e){return typeof e=="function"}function at(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var It=at(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: -`+r.map(function(n,o){return o+1+") "+n.toString()}).join(` - `):"",this.name="UnsubscriptionError",this.errors=r}});function Ve(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var je=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,n,o,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=xe(s),f=a.next();!f.done;f=a.next()){var c=f.value;c.remove(this)}}catch(v){t={error:v}}finally{try{f&&!f.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var u=this.initialTeardown;if(A(u))try{u()}catch(v){i=v instanceof It?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var m=xe(p),d=m.next();!d.done;d=m.next()){var h=d.value;try{dn(h)}catch(v){i=i!=null?i:[],v instanceof It?i=D(D([],W(i)),W(v.errors)):i.push(v)}}}catch(v){n={error:v}}finally{try{d&&!d.done&&(o=m.return)&&o.call(m)}finally{if(n)throw n.error}}}if(i)throw new It(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)dn(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Ve(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Ve(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=je.EMPTY;function Ft(e){return e instanceof je||e&&"closed"in e&&A(e.remove)&&A(e.add)&&A(e.unsubscribe)}function dn(e){A(e)?e():e.unsubscribe()}var Ae={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var st={setTimeout:function(e,t){for(var r=[],n=2;n0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,s=o.isStopped,a=o.observers;return i||s?Tr:(this.currentObservers=null,a.push(r),new je(function(){n.currentObservers=null,Ve(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,s=n.isStopped;o?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new U;return r.source=this,r},t.create=function(r,n){return new wn(r,n)},t}(U);var wn=function(e){ie(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Tr},t}(E);var Et={now:function(){return(Et.delegate||Date).now()},delegate:void 0};var wt=function(e){ie(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=Et);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,s=n._infiniteTimeWindow,a=n._timestampProvider,f=n._windowTime;o||(i.push(r),!s&&i.push(a.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,s=o._buffer,a=s.slice(),f=0;f0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var s=r.actions;n!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==n&&(ut.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Wt);var Tn=function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(Dt);var we=new Tn(On);var R=new U(function(e){return e.complete()});function Vt(e){return e&&A(e.schedule)}function kr(e){return e[e.length-1]}function Qe(e){return A(kr(e))?e.pop():void 0}function Se(e){return Vt(kr(e))?e.pop():void 0}function zt(e,t){return typeof kr(e)=="number"?e.pop():t}var pt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Nt(e){return A(e==null?void 0:e.then)}function qt(e){return A(e[ft])}function Kt(e){return Symbol.asyncIterator&&A(e==null?void 0:e[Symbol.asyncIterator])}function Qt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ki(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Yt=Ki();function Gt(e){return A(e==null?void 0:e[Yt])}function Bt(e){return ln(this,arguments,function(){var r,n,o,i;return $t(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,Ze(r.read())];case 3:return n=s.sent(),o=n.value,i=n.done,i?[4,Ze(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,Ze(o)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Jt(e){return A(e==null?void 0:e.getReader)}function $(e){if(e instanceof U)return e;if(e!=null){if(qt(e))return Qi(e);if(pt(e))return Yi(e);if(Nt(e))return Gi(e);if(Kt(e))return _n(e);if(Gt(e))return Bi(e);if(Jt(e))return Ji(e)}throw Qt(e)}function Qi(e){return new U(function(t){var r=e[ft]();if(A(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Yi(e){return new U(function(t){for(var r=0;r=2;return function(n){return n.pipe(e?_(function(o,i){return e(o,i,n)}):de,Te(1),r?Pe(t):zn(function(){return new Zt}))}}function Nn(){for(var e=[],t=0;t=2,!0))}function ue(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new E}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,f=a===void 0?!0:a;return function(c){var u,p,m,d=0,h=!1,v=!1,B=function(){p==null||p.unsubscribe(),p=void 0},ne=function(){B(),u=m=void 0,h=v=!1},z=function(){var O=u;ne(),O==null||O.unsubscribe()};return g(function(O,Ke){d++,!v&&!h&&B();var De=m=m!=null?m:r();Ke.add(function(){d--,d===0&&!v&&!h&&(p=jr(z,f))}),De.subscribe(Ke),!u&&d>0&&(u=new tt({next:function(Fe){return De.next(Fe)},error:function(Fe){v=!0,B(),p=jr(ne,o,Fe),De.error(Fe)},complete:function(){h=!0,B(),p=jr(ne,s),De.complete()}}),$(O).subscribe(u))})(c)}}function jr(e,t){for(var r=[],n=2;ne.next(document)),e}function K(e,t=document){return Array.from(t.querySelectorAll(e))}function V(e,t=document){let r=ce(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ce(e,t=document){return t.querySelector(e)||void 0}function _e(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function rr(e){return L(b(document.body,"focusin"),b(document.body,"focusout")).pipe(He(1),l(()=>{let t=_e();return typeof t!="undefined"?e.contains(t):!1}),N(e===_e()),G())}function Je(e){return{x:e.offsetLeft,y:e.offsetTop}}function Yn(e){return L(b(window,"load"),b(window,"resize")).pipe(Re(0,we),l(()=>Je(e)),N(Je(e)))}function nr(e){return{x:e.scrollLeft,y:e.scrollTop}}function dt(e){return L(b(e,"scroll"),b(window,"resize")).pipe(Re(0,we),l(()=>nr(e)),N(nr(e)))}var Bn=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!zr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),xa?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!zr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=ya.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Jn=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),Zn=typeof WeakMap!="undefined"?new WeakMap:new Bn,eo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=Ea.getInstance(),n=new Ra(t,r,this);Zn.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){eo.prototype[e]=function(){var t;return(t=Zn.get(this))[e].apply(t,arguments)}});var ka=function(){return typeof or.ResizeObserver!="undefined"?or.ResizeObserver:eo}(),to=ka;var ro=new E,Ha=I(()=>H(new to(e=>{for(let t of e)ro.next(t)}))).pipe(x(e=>L(Oe,H(e)).pipe(C(()=>e.disconnect()))),J(1));function he(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){return Ha.pipe(S(t=>t.observe(e)),x(t=>ro.pipe(_(({target:r})=>r===e),C(()=>t.unobserve(e)),l(()=>he(e)))),N(he(e)))}function bt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function sr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var no=new E,Pa=I(()=>H(new IntersectionObserver(e=>{for(let t of e)no.next(t)},{threshold:0}))).pipe(x(e=>L(Oe,H(e)).pipe(C(()=>e.disconnect()))),J(1));function cr(e){return Pa.pipe(S(t=>t.observe(e)),x(t=>no.pipe(_(({target:r})=>r===e),C(()=>t.unobserve(e)),l(({isIntersecting:r})=>r))))}function oo(e,t=16){return dt(e).pipe(l(({y:r})=>{let n=he(e),o=bt(e);return r>=o.height-n.height-t}),G())}var fr={drawer:V("[data-md-toggle=drawer]"),search:V("[data-md-toggle=search]")};function io(e){return fr[e].checked}function qe(e,t){fr[e].checked!==t&&fr[e].click()}function Ue(e){let t=fr[e];return b(t,"change").pipe(l(()=>t.checked),N(t.checked))}function $a(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ia(){return L(b(window,"compositionstart").pipe(l(()=>!0)),b(window,"compositionend").pipe(l(()=>!1))).pipe(N(!1))}function ao(){let e=b(window,"keydown").pipe(_(t=>!(t.metaKey||t.ctrlKey)),l(t=>({mode:io("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),_(({mode:t,type:r})=>{if(t==="global"){let n=_e();if(typeof n!="undefined")return!$a(n,r)}return!0}),ue());return Ia().pipe(x(t=>t?R:e))}function Me(){return new URL(location.href)}function ot(e){location.href=e.href}function so(){return new E}function co(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)co(e,r)}function M(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)co(n,o);return n}function ur(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function fo(){return location.hash.substring(1)}function uo(e){let t=M("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Fa(){return b(window,"hashchange").pipe(l(fo),N(fo()),_(e=>e.length>0),J(1))}function po(){return Fa().pipe(l(e=>ce(`[id="${e}"]`)),_(e=>typeof e!="undefined"))}function Nr(e){let t=matchMedia(e);return er(r=>t.addListener(()=>r(t.matches))).pipe(N(t.matches))}function lo(){let e=matchMedia("print");return L(b(window,"beforeprint").pipe(l(()=>!0)),b(window,"afterprint").pipe(l(()=>!1))).pipe(N(e.matches))}function qr(e,t){return e.pipe(x(r=>r?t():R))}function pr(e,t={credentials:"same-origin"}){return pe(fetch(`${e}`,t)).pipe(fe(()=>R),x(r=>r.status!==200?Ot(()=>new Error(r.statusText)):H(r)))}function We(e,t){return pr(e,t).pipe(x(r=>r.json()),J(1))}function mo(e,t){let r=new DOMParser;return pr(e,t).pipe(x(n=>n.text()),l(n=>r.parseFromString(n,"text/xml")),J(1))}function lr(e){let t=M("script",{src:e});return I(()=>(document.head.appendChild(t),L(b(t,"load"),b(t,"error").pipe(x(()=>Ot(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(l(()=>{}),C(()=>document.head.removeChild(t)),Te(1))))}function ho(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function bo(){return L(b(window,"scroll",{passive:!0}),b(window,"resize",{passive:!0})).pipe(l(ho),N(ho()))}function vo(){return{width:innerWidth,height:innerHeight}}function go(){return b(window,"resize",{passive:!0}).pipe(l(vo),N(vo()))}function yo(){return Q([bo(),go()]).pipe(l(([e,t])=>({offset:e,size:t})),J(1))}function mr(e,{viewport$:t,header$:r}){let n=t.pipe(X("size")),o=Q([n,r]).pipe(l(()=>Je(e)));return Q([r,t,o]).pipe(l(([{height:i},{offset:s,size:a},{x:f,y:c}])=>({offset:{x:s.x-f,y:s.y-c+i},size:a})))}(()=>{function e(n,o){parent.postMessage(n,o||"*")}function t(...n){return n.reduce((o,i)=>o.then(()=>new Promise(s=>{let a=document.createElement("script");a.src=i,a.onload=s,document.body.appendChild(a)})),Promise.resolve())}var r=class extends EventTarget{constructor(n){super(),this.url=n,this.m=i=>{i.source===this.w&&(this.dispatchEvent(new MessageEvent("message",{data:i.data})),this.onmessage&&this.onmessage(i))},this.e=(i,s,a,f,c)=>{if(s===`${this.url}`){let u=new ErrorEvent("error",{message:i,filename:s,lineno:a,colno:f,error:c});this.dispatchEvent(u),this.onerror&&this.onerror(u)}};let o=document.createElement("iframe");o.hidden=!0,document.body.appendChild(this.iframe=o),this.w.document.open(),this.w.document.write(` - + diff --git a/docs/coverage/covindex.html b/docs/coverage/covindex.html index 9fca995e..24b0821b 100644 --- a/docs/coverage/covindex.html +++ b/docs/coverage/covindex.html @@ -11,7 +11,7 @@

    Coverage report: - 100% + 99%

    @@ -119,10 +119,10 @@

    Coverage report:

    tests\test_utils.py9701096 0100%94%
    torrentfile\__init__.py
    Total2975029876 62100%99%
    @@ -234,7 +234,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 00:20 -0700 + created at 2023-06-02 05:01 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html b/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html index 7f7a3e7e..bf06c51e 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 00:20 -0700 + created at 2023-06-02 05:01 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html index 6e87d47a..12aeda4b 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 00:20 -0700 + created at 2023-06-02 05:01 -0700

    - 97 statements   - - + 109 statements   + +

    @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 00:20 -0700 + created at 2023-06-02 05:01 -0700

    - 97 statements   - - + 109 statements   + +

    @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 00:20 -0700 + created at 2023-06-02 05:01 -0700

    tests\test_utils.py9701096 0100%94%
    torrentfile\__init__.py
    Total2975029876 62100%99%
    @@ -234,7 +234,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 00:20 -0700 + created at 2023-06-02 05:01 -0700

    - +
    alexpdev/torrentfile @@ -228,7 +236,7 @@
    - +
    alexpdev/torrentfile @@ -874,7 +882,7 @@

    GUI#{"base": ".", "features": ["header.autohide", "toc.integrate", "navigation-expand", "navigation-tabs", "navigation-instant"], "search": "assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}} - + diff --git a/docs/overview/index.html b/docs/overview/index.html index 7a9e06d4..98a79cb7 100644 --- a/docs/overview/index.html +++ b/docs/overview/index.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -73,7 +73,7 @@ - + @@ -97,7 +97,9 @@ -
    + + +

    - +
    - +
    alexpdev/torrentfile @@ -230,7 +238,7 @@
    - +
    alexpdev/torrentfile @@ -971,7 +979,7 @@

    Magnet{"base": "..", "features": ["header.autohide", "toc.integrate", "navigation-expand", "navigation-tabs", "navigation-instant"], "search": "../assets/javascripts/workers/search.208ed371.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}} - + diff --git a/pyproject.toml b/pyproject.toml index 80d5e176..24222ddb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -77,7 +77,8 @@ disable = [ "invalid-name", "not-callable", "consider-using-with", - "implicit-str-concat" + "implicit-str-concat", + "no-member" ] [tool.pylint. 'VARIABLES'] diff --git a/tests/test_utils.py b/tests/test_utils.py index 97955f24..798877bd 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -19,7 +19,10 @@ """ Unittest functions for testing torrentfile utils module. """ +import os +import sys import math +import stat from tempfile import NamedTemporaryFile import pytest @@ -260,7 +263,8 @@ def test_argument_error(): assert True -def test_check_path_writeable_fail(): +@pytest.mark.skipif(sys.platform != "win32", reason="Windows only.") +def test_check_path_writeable_windows_fail(): """Test error message when raised.""" with NamedTemporaryFile("wb", delete=False) as temp: try: @@ -268,3 +272,14 @@ def test_check_path_writeable_fail(): except PermissionError as err: assert err rmpath(temp.name) + + +@pytest.mark.skipif(sys.platform == "win32", reason="Unix Only.") +def test_check_path_writeable_unix_fail(): + """Test error message when raised on unix.""" + with NamedTemporaryFile("wb", delete=False) as temp: + try: + fno = os.fileno(temp) + os.fchmod(fno, stat.S_IREAD) + except PermissionError as err: + assert err From 26a6d94c8b41a42e1231f68c7de94d0d328afd05 Mon Sep 17 00:00:00 2001 From: alexpdev Date: Fri, 2 Jun 2023 05:19:53 -0700 Subject: [PATCH 3/5] added check for unix --- docs/coverage/covindex.html | 20 +- .../d_1bc82e0ab2fcb2ec___init___py.html | 4 +- .../d_1bc82e0ab2fcb2ec___main___py.html | 4 +- docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_commands_py.html | 4 +- docs/coverage/d_1bc82e0ab2fcb2ec_edit_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_hasher_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_interactive_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_mixins_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_rebuild_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_recheck_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_torrent_py.html | 4 +- .../coverage/d_1bc82e0ab2fcb2ec_utils_py.html | 20 +- .../d_1bc82e0ab2fcb2ec_version_py.html | 4 +- .../d_a44f0ac069e85531___init___py.html | 4 +- .../d_a44f0ac069e85531_test_cli_py.html | 4 +- .../d_a44f0ac069e85531_test_commands_py.html | 4 +- .../d_a44f0ac069e85531_test_edit_py.html | 4 +- ..._a44f0ac069e85531_test_interactive_py.html | 4 +- .../d_a44f0ac069e85531_test_rebuild_py.html | 4 +- .../d_a44f0ac069e85531_test_recheck_py.html | 4 +- .../d_a44f0ac069e85531_test_torrent_py.html | 4 +- .../d_a44f0ac069e85531_test_utils_py.html | 508 +++++++++--------- docs/coverage/status.json | 2 +- .../d_1bc82e0ab2fcb2ec___init___py.html | 4 +- .../d_1bc82e0ab2fcb2ec___main___py.html | 4 +- docs/htmlcov/d_1bc82e0ab2fcb2ec_cli_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_commands_py.html | 4 +- docs/htmlcov/d_1bc82e0ab2fcb2ec_edit_py.html | 4 +- .../htmlcov/d_1bc82e0ab2fcb2ec_hasher_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_interactive_py.html | 4 +- .../htmlcov/d_1bc82e0ab2fcb2ec_mixins_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_rebuild_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_recheck_py.html | 4 +- .../d_1bc82e0ab2fcb2ec_torrent_py.html | 4 +- docs/htmlcov/d_1bc82e0ab2fcb2ec_utils_py.html | 20 +- .../d_1bc82e0ab2fcb2ec_version_py.html | 4 +- .../d_a44f0ac069e85531___init___py.html | 4 +- .../d_a44f0ac069e85531_test_cli_py.html | 4 +- .../d_a44f0ac069e85531_test_commands_py.html | 4 +- .../d_a44f0ac069e85531_test_edit_py.html | 4 +- ..._a44f0ac069e85531_test_interactive_py.html | 4 +- .../d_a44f0ac069e85531_test_rebuild_py.html | 4 +- .../d_a44f0ac069e85531_test_recheck_py.html | 4 +- .../d_a44f0ac069e85531_test_torrent_py.html | 4 +- .../d_a44f0ac069e85531_test_utils_py.html | 508 +++++++++--------- docs/htmlcov/index.html | 20 +- docs/htmlcov/status.json | 2 +- docs/sitemap.xml.gz | Bin 335 -> 335 bytes tests/test_utils.py | 26 - 50 files changed, 604 insertions(+), 682 deletions(-) diff --git a/docs/coverage/covindex.html b/docs/coverage/covindex.html index 24b0821b..e7f979fe 100644 --- a/docs/coverage/covindex.html +++ b/docs/coverage/covindex.html @@ -45,7 +45,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    @@ -119,10 +119,10 @@

    Coverage report:

    tests\test_utils.py1096890 094%100%
    torrentfile\__init__.py
    torrentfile\utils.py 13104 1100%97%
    torrentfile\version.py
    Total2987629674 6299%99%
    @@ -234,7 +234,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html b/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html index bf06c51e..37ebb715 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html index 12aeda4b..203db1ba 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    - 109 statements   - - + 89 statements   + +

    @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    - 109 statements   - - + 89 statements   + +

    @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    tests\test_utils.py1096890 094%100%
    torrentfile\__init__.py
    torrentfile\utils.py 13104 1100%97%
    torrentfile\version.py
    Total2987629674 6299%99%
    @@ -234,7 +234,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 05:01 -0700 + created at 2023-06-02 05:19 -0700

    torrentfile\utils.py1314197%12705100%
    torrentfile\version.py
    Total296746299%2963066100%
    @@ -234,7 +234,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 05:19 -0700 + created at 2023-06-02 05:27 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html b/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html index 37ebb715..86c99a47 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec___main___py.html @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:19 -0700 + created at 2023-06-02 05:27 -0700

    diff --git a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html index 203db1ba..acff1979 100644 --- a/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html +++ b/docs/coverage/d_1bc82e0ab2fcb2ec_cli_py.html @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:19 -0700 + created at 2023-06-02 05:27 -0700

    - 131 statements   + 127 statements   - - + +

    « prev     @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:19 -0700 + created at 2023-06-02 05:27 -0700

    - 131 statements   + 127 statements   - - + +

    « prev     @@ -65,7 +65,7 @@

    » next       coverage.py v7.2.7, - created at 2023-06-02 05:19 -0700 + created at 2023-06-02 05:27 -0700

    torrentfile\utils.py1314197%12705100%
    torrentfile\version.py
    Total296746299%2963066100%
    @@ -234,7 +234,7 @@

    Coverage report:

    coverage.py v7.2.7, - created at 2023-06-02 05:19 -0700 + created at 2023-06-02 05:27 -0700