From 5f94a5a5d1b0cf7feff8ad4938631d7648c52ba3 Mon Sep 17 00:00:00 2001
From: GitHub Action This is the list of opcodes supported by
rgbasm(1), including a short
description, the number of bytes needed to encode them and the number of CPU
- cycles at 1MHz (or 2MHz in GBC dual speed mode) needed to complete them.DESCRIP
Note: All arithmetic and logic instructions that use register A as a destination can omit the destination, since it is assumed to be register A by default. So the following two lines have the same effect:
OR A,B -OR B+
OR A,B + OR B
Furthermore, the CPL instruction can take an optional A destination, since it can only be register A. So the following two lines have the same effect:
CPL -CPL A+
CPL + CPL A
Bitwise AND between the value in r8 and - A.
+Set A to the bitwise AND between the value in + r8 and A.
Cycles: 1
Bytes: 1
Flags:
@@ -494,8 +499,8 @@Bitwise AND between the byte pointed to by HL - and A.
+Set A to the bitwise AND between the byte + pointed to by HL and A.
Cycles: 2
Bytes: 1
Flags: See AND A,r8
@@ -503,8 +508,8 @@Bitwise AND between the value in n8 and - A.
+Set A to the bitwise AND between the value + n8 and A.
Cycles: 2
Bytes: 2
Flags: See AND A,r8
@@ -538,11 +543,11 @@Call address n16. This pushes the address of - the instruction after the - CALL on - the stack, such that RET can pop it later; - then, it executes an implicit JP n16.
+Call address n16.
+This pushes the address of the instruction after the + CALL on the stack, + such that RET can pop it later; then, it + executes an implicit JP n16.
Cycles: 6
Bytes: 3
Flags: None affected.
@@ -574,9 +579,10 @@Subtract the value in r8 from - A and set flags accordingly, but don't store the result. - This is useful for ComParing values.
+ComPare the value in A with the value in + r8.
+This subtracts the value in r8 from + A and sets flags accordingly, but discards the result.
Cycles: 1
Bytes: 1
Flags:
@@ -595,9 +601,10 @@Subtract the byte pointed to by HL from - A and set flags accordingly, but don't store the - result.
+ComPare the value in A with the byte pointed to + by HL.
+This subtracts the byte pointed to by HL from + A and sets flags accordingly, but discards the result.
Cycles: 2
Bytes: 1
Flags: See CP A,r8
@@ -605,9 +612,10 @@Subtract the value n8 from - A and set flags accordingly, but don't store the - result.
+ComPare the value in A with the value + n8.
+This subtracts the value n8 from + A and sets flags accordingly, but discards the result.
Cycles: 2
Bytes: 2
Flags: See CP A,r8
@@ -615,7 +623,8 @@ComPLement accumulator (A = - ~A).
+ ~A); also + called bitwise NOT.Cycles: 1
Bytes: 1
Flags:
@@ -636,7 +645,8 @@The exact behavior of this instruction is as follows:
+The exact behavior of this instruction depends on the state of the + subtract flag N:
Decrement value in register r8 by 1.
+Decrement the value in register r8 by 1.
Cycles: 1
Bytes: 1
Flags:
@@ -709,14 +719,15 @@Decrement value in register r16 by 1.
+Decrement the value in register r16 by + 1.
Cycles: 2
Bytes: 1
Flags: None affected.
Decrement value in register SP by 1.
+Decrement the value in register SP by 1.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -730,49 +741,46 @@Enable Interrupts by setting the IME flag. The - flag is only set after the instruction following - EI.
+Enable Interrupts by setting the IME flag.
+The flag is only set after the instruction + following EI.
Cycles: 1
Bytes: 1
Flags: None affected.
Enter CPU low-power consumption mode until an interrupt occurs. - The exact behavior of this instruction depends on the state of the - IME flag.
+Enter CPU low-power consumption mode until an interrupt + occurs.
+The exact behavior of this instruction depends on the state of the
+ IME flag, and whether interrupts are pending (i.e. whether
+ ‘[IE] & [IF]
’ is non-zero):
HALT
when that
returns.[IE] & [IF]
’ is non-zero).
- HALT
,
- but the byte after it is read twice in a row (PC is
- not incremented, due to a hardware bug).HALT
, but
+ the byte after it is read twice in a row (PC is not
+ incremented, due to a hardware bug).Cycles: -
Bytes: 1
Flags: None affected.
Increment value in register r8 by 1.
+Increment the value in register r8 by 1.
Cycles: 1
Bytes: 1
Flags:
@@ -796,21 +804,22 @@Increment value in register r16 by 1.
+Increment the value in register r16 by + 1.
Cycles: 2
Bytes: 1
Flags: None affected.
Increment value in register SP by 1.
+Increment the value in register SP by 1.
Cycles: 2
Bytes: 1
Flags: None affected.
Jump to address n16; effectively, store +
Jump to address n16; effectively, copy n16 into PC.
Cycles: 4
Bytes: 3
@@ -827,19 +836,20 @@Jump to address in HL; effectively, load - PC with value in register HL.
+Jump to address in HL; effectively, copy the + value in register HL into PC.
Cycles: 1
Bytes: 1
Flags: None affected.
Relative Jump to address n16. The address is
- encoded as a signed 8-bit offset from the address immediately following the
- JR
instruction, so the target address
- n16 must be between -128 and
- 127 bytes away. For example:
Relative Jump to address n16.
+The address is encoded as a signed 8-bit offset from the address
+ immediately following the JR
instruction, so the
+ target address n16 must be between
+ -128 and 127 bytes away. For
+ example:
JR Label ; no-op; encoded offset of 0 Label: @@ -861,8 +871,12 @@JR
LD r8,r8
-Load (copy) value in register on the right into register on the - left.
+Copy (aka Load) the value in register on the right into the + register on the left.
+Storing a register into itself is a no-op; however, some Game Boy + emulators interpret LD B,B as a breakpoint, or + LD D,D as a debug message (such as + BGB).
Cycles: 1
Bytes: 1
Flags: None affected.
@@ -870,7 +884,7 @@LD
LD r8,n8
-Load value n8 into register +
Copy the value n8 into register r8.
Cycles: 2
Bytes: 2
@@ -879,7 +893,7 @@LD
LD r16,n16
-Load value n16 into register +
Copy the value n16 into register r16.
Cycles: 3
Bytes: 3
@@ -888,8 +902,8 @@LD
LD [HL],r8
-Store value in register r8 into the byte - pointed to by register HL.
+Copy the value in register r8 into the byte + pointed to by HL.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -897,8 +911,8 @@LD
LD [HL],n8
-Store value n8 into the byte pointed to by - register HL.
+Copy the value n8 into the byte pointed to + by HL.
Cycles: 3
Bytes: 2
Flags: None affected.
@@ -906,8 +920,8 @@LD
LD r8,[HL]
-Load value into register r8 from the byte - pointed to by register HL.
+Copy the value pointed to by HL into register + r8.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -915,8 +929,8 @@LD
LD [r16],A
-Store value in register A into the byte pointed - to by register r16.
+Copy the value in register A into the byte + pointed to by r16.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -924,7 +938,7 @@LD
LD [n16],A
-Store value in register A into the byte at +
Copy the value in register A into the byte at address n16.
Cycles: 4
Bytes: 3
@@ -933,7 +947,7 @@LD
LDH [n16],A
-Store value in register A into the byte at +
Copy the value in register A into the byte at address n16, provided the address is between $FF00 and $FFFF.
Cycles: 3
@@ -946,7 +960,7 @@LDH
LDH [C],A
-Store value in register A into the byte at +
Copy the value in register A into the byte at address $FF00+C.
Cycles: 2
Bytes: 1
@@ -958,8 +972,8 @@LDH
LD A,[r16]
-Load value in register A from the byte pointed - to by register r16.
+Copy the byte pointed to by r16 into + register A.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -967,8 +981,8 @@LD
LD A,[n16]
-Load value in register A from the byte at - address n16.
+Copy the byte at address n16 into register + A.
Cycles: 4
Bytes: 3
Flags: None affected.
@@ -976,8 +990,8 @@LD
LDH A,[n16]
-Load value in register A from the byte at - address n16, provided the address is between +
Copy the byte at address n16 into register + A, provided the address is between $FF00 and $FFFF.
Cycles: 3
Bytes: 2
@@ -989,8 +1003,8 @@LDH
LDH A,[C]
-Load value in register A from the byte at - address $FF00+c.
+Copy the byte at address $FF00+c into + register A.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -1001,8 +1015,9 @@LDH
LD [HLI],A
-Store value in register A into the byte pointed - by HL and increment HL afterwards.
+Copy the value in register A into the byte + pointed by HL and increment HL + afterwards.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -1013,8 +1028,9 @@LD
LD [HLD],A
-Store value in register A into the byte pointed - by HL and decrement HL afterwards.
+Copy the value in register A into the byte + pointed by HL and decrement HL + afterwards.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -1025,8 +1041,8 @@LD
LD A,[HLD]
-Load value into register A from the byte pointed - by HL and decrement HL afterwards.
+Copy the byte pointed to by HL into register + A, and decrement HL afterwards.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -1037,8 +1053,8 @@LD
LD A,[HLI]
-Load value into register A from the byte pointed - by HL and increment HL afterwards.
+Copy the byte pointed to by HL into register + A, and increment HL afterwards.
Cycles: 2
Bytes: 1
Flags: None affected.
@@ -1049,7 +1065,7 @@LD
LD SP,n16
-Load value n16 into register +
Copy the value n16 into register SP.
Cycles: 3
Bytes: 3
@@ -1058,7 +1074,7 @@LD
LD [n16],SP
-Store SP & $FF at +
Copy SP & $FF at address n16 and SP >> 8 at address n16 + 1.
Cycles: 5
@@ -1069,7 +1085,7 @@LD
LD HL,SP+e8
Add the signed value e8 to - SP and store the result in HL.
+ SP and copy the result in HL.Cycles: 3
Bytes: 2
Flags:
@@ -1087,7 +1103,7 @@LD
LD SP,HL
-Load register HL into register +
Copy register HL into register SP.
Cycles: 2
Bytes: 1
@@ -1103,7 +1119,7 @@NOP
OR A,r8
-Store into A the bitwise OR of the value in +
Set A to the bitwise OR between the value in r8 and A.
Cycles: 1
Bytes: 1
@@ -1122,7 +1138,7 @@OR
OR A,[HL]
-Store into A the bitwise OR of the byte pointed +
Set A to the bitwise OR between the byte pointed to by HL and A.
Cycles: 2
Bytes: 1
@@ -1131,7 +1147,7 @@OR
OR A,n8
-Store into A the bitwise OR of +
Set A to the bitwise OR between the value n8 and A.
Cycles: 2
Bytes: 2
@@ -1142,10 +1158,10 @@POP AF
Pop register AF from the stack. This is roughly equivalent to the following imaginary instructions:
-ld f, [sp] ; See below for individual flags -inc sp -ld a, [sp] -inc sp+LD F, [SP] ; See below for individual flags + INC SP + LD A, [SP] + INC SPCycles: 3
Bytes: 1
@@ -1168,10 +1184,10 @@POP roughly equivalent to the following imaginary instructions:
-ld LOW(r16), [sp] ; C, E or L -inc sp -ld HIGH(r16), [sp] ; B, D or H -inc sp+LD LOW(r16), [SP] ; C, E or L + INC SP + LD HIGH(r16), [SP] ; B, D or H + INC SPCycles: 3
Bytes: 1
@@ -1183,10 +1199,10 @@PUSH
Push register AF into the stack. This is roughly equivalent to the following imaginary instructions:
-dec sp -ld [sp], a -dec sp -ld [sp], flag_Z << 7 | flag_N << 6 | flag_H << 5 | flag_C << 4+DEC SP + LD [SP], A + DEC SP + LD [SP], F.Z << 7 | F.N << 6 | F.H << 5 | F.C << 4Cycles: 4
Bytes: 1
@@ -1199,10 +1215,10 @@PUSH roughly equivalent to the following imaginary instructions:
-dec sp -ld [sp], HIGH(r16) ; B, D or H -dec sp -ld [sp], LOW(r16) ; C, E or L+DEC SP + LD [SP], HIGH(r16) ; B, D or H + DEC SP + LD [SP], LOW(r16) ; C, E or LCycles: 4
Bytes: 1
@@ -1697,8 +1713,15 @@SRL
STOP
-Enter CPU very low power mode. Also used to switch between double - and normal speed CPU modes in GBC.
+Enter CPU very low power mode. Also used to switch between GBC + double speed and normal speed CPU modes.
+The exact behavior of this instruction is fragile and may + interpret its second byte as a separate instruction (see + the + Pan Docs), which is why rgbasm(1) + allows explicitly specifying the second byte (STOP + n8) to override the default of + $00 (a NOP instruction).
Cycles: -
Bytes: 2
Flags: None affected.
@@ -1772,8 +1795,8 @@SWAP
XOR A,r8
-Bitwise XOR between the value in r8 and - A.
+Set A to the bitwise XOR between the value in + r8 and A.
Cycles: 1
Bytes: 1
Flags:
@@ -1791,8 +1814,8 @@XOR
XOR A,[HL]
-Bitwise XOR between the byte pointed to by HL - and A.
+Set A to the bitwise XOR between the byte + pointed to by HL and A.
Cycles: 2
Bytes: 1
Flags: See XOR A,r8
@@ -1800,8 +1823,8 @@XOR
XOR A,n8
-Bitwise XOR between the value in n8 and - A.
+Set A to the bitwise XOR between the value + n8 and A.
Cycles: 2
Bytes: 2
Flags: See XOR A,r8
diff --git a/docs/gbz80.7.pdf b/docs/gbz80.7.pdf index 92d256080b3b35c75bb8a47ca1c8eb6c19c48725..4a8c60113da5675b455c9cc8d556ec5445c7c246 100644 GIT binary patch delta 25601 zcmZ6yQ7jdS!MZ$WPi@LH<^7Y42G0&xL7S}#`$mV N97sA%5n%K^w#|u_$T)N49!FbK@k>+L zHbyCxj8U8FU_PC wJv+98ltwV? 43ciBJG%Kf`$`#COMgm>rKH$n&oWnE7|h81w`88x~XtL5UXd6M(aX!#YRB zy9v@-sGohu?i=j{?Qm4+w04eRa0Fc^Jjx3?oF4&KVmfb))?p`=f`3O41w%x#<>f={ zfj=<2ok `-fZ%2 J$=krv~3j-D{t+i ~)7Jk03yGl`c4-(Z)?wZl`23Cc$b=!M5Uq>c@%{a_7}wj>O?P;C#5 zH!IAH59xhpg#9Xi0C?&LihH?UU|%KLrSTTwYP{ri9HyztQ}L;>=n)~nccbDini^^+ zc?*Fe806j^9RTon$WzfYD-E1KFPi1d#{YoAZB245C8Tm|BtK3(YssXVAj^<_NUO5X z`sS6JjJq&z`g_W|&kta=@0Ys`!jy>p6Bb86&Z!nqJTI772E@~*UW^(d*kYQZ4lM?k zl__i!_KvNd F043LepNu@9M#--mJE}W_BZO9y&O02mZ7f14ZNhx;DqM6R8G;sN*JJ zg6GgPJoPW!1K^#mMrXS)`iz1rt~?<(AA~^EZAH+p^%Eew;G*0nfSQARVqm;zoq|Bs z7* k1U#+=SfnzbsU7 zJ_35-H 6 zpT$ap0F*r^6%%tcr1K4OWFD{{*^I|@3mCgE0R_X?lS*2L9ri2o&^~eQLK(OfMt_ya z=@fCGrIjG4Ir(#Xy>F?C>(zLuuDCW=&Q-t#|1KrzscPAPjypEDklIa6w|gw5EhiYH zK(RlY{{-_e;!Z~4TB@xs_*-utoS1>=2;k=j0>~H=Wb_F&0D-#SV9v2&+YdsC?DwVf zSYz4}`O8&pA%znUA1BW{PwXp8^9}T!ZUFp81&jIE3UkOXXBANGu6}}K*gBi_?NGy) z^r?ybRPgA3EGKxChb0AFRCVcv%@wSdCwMe|1@_4~h2s}uX~3Eepeuoa&=ogOPK1Sg z0R8f*Lcfy%$oY+t6^+)eXL)6mDpgMf3aZwWVl+iN0x1^87aIr4aAY3>xn@Ix7XN$( z5eDssU_M?T_Z|`U=Jp79x933tdjDL8JeG)D|B!{hfiW`z6-!bGkZYgyq{b8x{m(pT zqE#uGesV3B)GzX7|5VOY&J1!C@EpzTn?)g55CAM}|LcL8TlU3_h<;}@r%Z`mHFmZl zAFC}}*_(A$cgs^Ca=El o2h-caGyW%|PmM@3cDjb41t{I{4NXxc#AwsJ0Wn^wMXiKzDcCh3UW6jN z^40q0U&x=6@>|T6S(RRAeYe*)JKV@CL`#SyPrdO29sNI25QrpbngQPBN{ln`pZk5| zu$(>eLMT%ZqQQTwjcNdq&f9R5rmUyRa95+IveC>qCb}Rz99T9*>Qb1IxPwrnYRINd zy4r@{XWkbAC(Fw(8P3`z1X5mLQ%~MgGSyZXj8e&1yrEp2?rg8*^|%U0D~%J? )cCVWxUt+C9czdtcxWsbgDLcCB)eh4+h}l zJziL=6J=7rPn3Y-pM^kqcDavo38P{r4T?5$t;J$)zG^H9EfRdW)((L_Z`O0LQfz)- zyuY4FIA-5(9>}Aep6ZB^(2SpM{;eKpg(aC&X;H4Me5h_0bLMDHJ@W6BC7|NMf;J4r z3Sm@{G}0)P?$&AC+x?5{noGDZrCe3@R@L6C`bNc7BcFhJ>$qkbf?RckX0um$aGwJb zC!TlCo;#x(+XYjkI+`MXEGe(*kS)LH@rNdetA9GDaZE#n!i}oSyN!Xdx~VElj8kIP zhH4wsm9Cn#FMpV|R>)!x^h%(7L6?e#F)rhidpgWLN)m1+v4!2u;1*M7uf2(`&Oazs z7?y=wy$jWe9Wx__HPwrlt+(97)>j%Qm(k9ZBsW&rPO>?wZJ6+LzlKPFhK_)PAlPXn zKU{Js6o|os5KQwRzZJ;&;f&;IM08KUt9`P>H{K40YTazU!Ab?D|0Y*q)dCo~nEq$B zS~a)Sw>VM#<}`A~OlxCoCe~#0CCgeGEW_dbsjq{JIEQOV%6kPf0T}>%t+rq~8A>zm zh5#~&t+Sk3Kl(!+!iIN`$Lt#lNc#7=wMe_pJI2O?>ti0;VySkT{xrKSL|WZ@j?G6p zk7SKAe8OJ9=7X9jm%8uEpZ2BpDTPA5;Jt)f9ex1kH!mFj-2M|o;4^LeD80i^z^jzd z5$k_>s|uKYoqg)HM3x!+7OGnEV^E{|JI62ZUy{Vxo1G^f+_=4$<2MEV#rS1K`K>vk z-*uw1DAxcB<#Lhu=wR68pCh8lhsL#ro}P#T=hJq;ZC$S`eY~v)K8cPI4{{q9M#V0k z-G>Aw23buqau)}Lf`lGGmn(<;itW#YXE&MAU%Dk{jMwzbG3N$;Qz)9F8ON#h;l$Fk z2b#!7{XZ_0hsYgTZ#=UsZ{gcQO=v`oH8ldwS@WhwqS)(Jj`<4lT)gts> z9k>wyHo>_ypg9%iu|N(dSQ4#G39Kipqp0yAELhl9?FYQtG<6FNjs64& yyYtH){+0CN%99HezcuC7l;A zHUEeA$#+qiTY$)c?^EFT+Rg>H%)9TJfN*A=yb{GRCV5w`@_j|@cjdFoy_)PQ%p6Nl zs<%}lh%N-J$m|Xpw_@Fi p28hOSo@;`+*kE=RZP&BUWf z{925Kdr!O;6iw1uyy9o|d2L*0J24z!ab3qvu(LfX0!QA>6t7XfqTio!+RHk{j+NYF zH91V0ZPHfOzBU$Kb~L3Tnj8(-hDr7KyMlo=GdaIN1y>UHC2E%~X9Xp$aNo$l?MAm| zZIJcU|NUs0!i!cs^z-yN&ZbbYk*4+nOJr+uHU{jPh{|J5cI?&8>xh;XwYd{u3*a Ty5xBrn z{dR~jcvO=?prfr%+s$v8Uj6b9TEK0H-7zpdw1m756vc!Ni@MY8&V_-v?~U9)IzBo! zFf0E?Pd>n}18}kakGQO8X*q0(Bl@q^XM`6N{PCIkbX@queX$;x%$e|^OoM>h+4N7j zM1;P!1K}Iudkzo3X`GBBC6!aq_D$238%IJU{8k{W z19-j>FTs_&7ImT-7Oez>|13wxiTfSkvJ(ipPQ4?`hf?Ru4u)ef``)09H$-KGH8K*R zG}M$X%<)Zv$Oe%w9dEAej$V=vJIr46h&FV}5{&{U9n1;zcAL^=h$Q}|&E*a1)M0^V zre=F SL=#}?Xy9;yhs}6iJImO&f=K4NM348!L%_(WP)P09AD`yHY_x&+S zSCixkG8GUg|8cE)4bMa2=l-B9vC)|TEG*UQV^P+Mkmf66OmbJH1g)kMbDFkxji=C? z)*HiVFj*c=RGHUa&^QIzW}5rBpc<=uevB UIT-o1Qk=og3gG7oWWV7Loqlz>w?+2Ct$=x AER_56(vA#f@GA2)ZOyhcyvUWIS=v#r5 zw5l#KSG9VxR91$4VSMwIWVwWit_2*~prX1 V~g;MA42eT zn({}A)eBQgua0y@O_blv6|kAMWahBF{z*i6C*2g>!H#SthOMI@_PdAHq+!ck)I}R= zbj2i4VzHH6G+I&ii@XH(wm2F~aYE@^b+<8VpikCuF?O1)BZ(u5trgBBFanRsWYRQ^ zc*mJ}Ict`DcNPF6O%HW70e!tFM^wrG>p&E*@ZZ(kePR(OXDr2`asiSUi+kyxwoA^^ zR+Li0uDJ#Vx6?Fob8Ve0R8Uh~QTqo^?nu9$R6SPOl6%uG%)9`d5HWv&PyQ4G6U;9? zG~6Mgic)-nmH;5D_$8*dlM!nz>O5I6Jh|l1YqL1@d1*kiH0$5m1DFTc PsE}iO^6ot7gDwWcx$;YX` ze(4Z4Jrim#Pep_$meW{kPA+-Mnx;^R8j| ZC`KQmg_UaUaeJ}a3p10MHEyk?wKU9WV(UGqNE>nv@YFWzSrT}LA zfzeNDFqpChrsWj_%@tU{H*d8EL!Nf1AUg4DQYe5hY9r81$SI`XUq(;S)~NGc$*r(g zboLQ1Y}5drlI%?4@0M*2@n7dR%<8#x2-J}DI*2H;nhyg8i-dSni6a1{^VuHcPV~xR z)$c=noK5qx?MDp2{OPM$L=D&Y7~JnpvqzM_j+#O<#?k*Pj{vNBMMliM84+`3etd=k zFb#chw12b@kiUZYP3|VG1F-*(8jomfDIW?V{ulM0Oe!{GSth1Q-^dSJm-S@wL RV8B6Q_xtnU~e=KRx5Y~nUJIi@*2QSinU0Q#w3}oe|9TKP04IDQ4(v4!-W6r zU>%{Hur`z3l=Y05rK$^7em1z!S}9ZN5%D|P1#$KRycHLQ@S0dH&hG{)4@dd*DREB< z9w>Y{dm9cN_e&9ZGQAYdu$vw0LPbEnBf({;gsWkEdiVK3F`a5HZT=x?!P+7+t`zW% zqm#2a8D`^zRyw)RxTm&keUV(>8D)I-M`K0t_mny+YjjXV2RW8 rmUIi|G?9SZH|Hj}IMtX2_hQXs zj2W6Km9K?8YGwNtl%{;lzgSbRGy>46b9_3Tx@@-L5m`!7j9Q8~YwQz>lF@o@zQAzt zVz;Dp>PxypSFPrzLX_uKanZU{RrMi)I$69=8ZNWPRPDN&<*0x?qzIQL?6I_4{ke3@ zz9IM0XIAgtGyN{vlzptYA$KXbA@@bsWKwPga=lmal1$8FTRrk(;(_Y;{?Cw93_02h zxg10beFE*=ithT)N<>#@pQVy)Is$GgMY@}KD_r^YzH*N1vIv_WF7GUjS!g%7T=rFZ zx+n>KNxwk9C^?sMgdE|tBz}cXnG6*5EFM`e28ib}erw-~wY^XB0A(F87h7^70R~{d zl4NF_)?uH_q0wY)a@d|(-N5)Wu!u04N{qWlQ~j6dcN+{c>5o)|`{*@m9w~SW46XZX z&dv&gDIuPJ6<}y*STKM8_BFC@!%|>jVQd1ywJT>?xvuiOD^7RM{FlLl@PYCD8<+${ z9Y>Q+WZo?Qdg1!%=$u0#zYt}}i4_3BUhbjtY9FTm6Mk+yQ`S|^K`^hD5>6Ty98zKy zhdx0*<1U0$3e^Rj#2f**|7XNw@oM>A>D68MIJPDK>G|GS9v*ajn^368%9na5hRYjp z=$3_uYD?{QWfdo;pjk&DYuiO+B(%B-OV<}XM;FfXw|A^M= 4=$h;CLU5FCCX z#OI@{V>X9e2g-+fLMdl#E^QM;k&S5E{||}8zWfeS$Q+x@D>0R5hQ`S!dDMx!I*w5n zGM+B%%)JW&@Km3ayNDp#S_^OlRzKa`Ac~16%{HM*zV=MxF8eVsrFzK?r2Xsrn|U4x zN1rCI7gxgYl5*}W|A?OJ_l_d;L|t4fe^vIGJl4{?v3ME3$@1bToI&o@>0@f!EVBlh zDupycDXFMR0#a(EY2L|xrG4dEY{jjgy;!oyELT8S-&T<52|oy2I}Tv4C?V__4Omu5 zF{j-5Lk)y0j9tv;MLLlM97e>>5EP^uRD9=#H={xf;mC;*QYO@NDw9tCssqendZ>O> zqq_~qOiW+dNWr$;Wj{Qrs3P2zEsni_*w^W$duG=j{pizyINm$>;&6EA?&KseiKRsE zERsY{0Z69(oBj7P%MRewOh=Z6!4Ng1WJ3s#94s{oB=l0_ygf T z=ZVSi$pEC_hX@w`C&Q_#ZJlWd0S;NHM2_5w1w&(in(i`QtC2z3sg?MUnqor*mHC5v zfO}8Zo-C8@*i)7c&%L6srudIkoD)c#GbymQIeZHn!s|qM2pNEpTH3N6Wi0#x5@K-w z$?U9O!X{0Q)fEe9lz66 hJ@TH}%Jrq#6p`FNBO0{5nw{><6|7iZVz-pQH!q=MpA`5IILhsSid?V{5TiM*o zveT@tjn04tXN;qo^P`#@A2&d*oI9+ymp^ROkNt|JeQAU-I{> 9{1L>&xc>cu zI`s_w!I~jEnfAh4gN2S?%J)URc~nEu{%}p@(sIaEjN>dZ0X9jkr9L0?SX~rUCMyoS zf6IqT^lwiwfLY%i&epQ`c9qak7e0uOmG|(N8~6P@oka~qk4K#^H%JZ9osnXCJkA~D zl1n>1pcjC8wFSQ6Z7?*n@&)AkXNPU~j?H#lMdh6kZkNSrr5d~ktOf2QL3vJ$Vu-J! z6yGI&PAttE-*2jOd~he7i+nC) 5bk7p%#uLz!Ss)u4%B12d-Bx8h3ra#66 zQn;GOc^|*X*Rjprj2kF<4Aa655vyNOY)3i1j0CXMQ2J}UJaeNtA*= YkgkK&=yv8bFyxxSGya{1qLkA z`69VtzD4>u0mH{Tgp+Z)KrZ892^M2hsW&d-aIq608PW6i%U2*w>PYgD+9*jacq}Dt zf=#`2ZAD0Hf M4@%~btJkH)#;$2+oLu5a!aNWraXYcf2;f1Mc{%l`%`O&ynF zc2xh@dd_%La`gm3;H37F8TPy#JNA2(Zohub4qKr~VEwh<-b3uV(IfAk* xul~S&eNH+t%h6xJHyA%y v8%NAI@&6=4EEza2ZPe1jnUoq4L^q z-G@kni*RVdB#mp-t51PNoOe*Nyy-^^8oth;K?R4Y7>j)7On-81viPK(oR-_mViYjY z)5ot+nwyxP`$B)1I&&u7{ol!?($9F4s#|iik}K y|?kx6d02a-p>3 =LI9s!_>Xd*t^^o2QqV!#UCWZJc?-ztVt8w03Z3L$Xm zu`a&9-0DZb7e7<2Z$pBYYE`HWN0xZ>u}q9YZUISQEGuOrd)p6J@Zv}1G=xz0gRCEH zI{-*W38kuZ$Q}b9Bbbx*8D+tA9YZL20KV|NJzhnU`QL)1@}rF>+)_#wNfrQ4y^ysw zfBAZs>Se}D4$~RDB*#hLqOsHSmDSrvq25}Yyd_Wp_j & zLrYUj-g=5g$bV4f&IIe^SrHH&L);6$t(uDU#tdsl6=MD@snIz>L^7OW|AJT6IiG^J%ObunsYr&7Z69b=cWWq}#Dz%G@|Vmq>>a31#< zsI*~+;39h^rB|n^ATv13eP~`F-Cu_37@*3ihK zZiB>^=|Mb(-3~T|?EzNRxa+fjLVwt5lI}W*pMoL5+JjO12DobQf_8uqojqLF)xn>i zS*G*<%e_%!mo7qZ3)S7W>lT*bX|N+Oks$mM1f>dBgx_MJP=SNdDR!*)ejkSp^2s)D zPxrX-Fmu5B M`={34#Uz=CwFbb%$ieYH!m*+$ hHoQYoOt{f$sxy$ zt2;GhX_E`q_|J$pqSWwx-`*++CKT0RO7!Lkn0d*~`5K2o`x`u}>{m7ax25O-{NA28 z`N178^MU&l9{JLO`lQh?tDGaR{!hL*WfQL6-}b;mfOTMXWqjAkUkgu0dy3zVQ!rg+ zqKN+J(c%MM{r>xUZ<{sVnRsX=5;FrOGXOB=yE2SAOb|n9v6oHVO>J@36{d(cJD@ zy!Odjz>wxtjG?>P=?%-<4`*3XQ-i{9VD+-?jnd|Cjj*hiRi2jUU6_l& Q6fZ&)H~vNI%ggscEsNi! z %6p7HDrJ9<4$=h)6!0&~E z!OJMm%|vnCVxXYGo5>RZQpqE~Lj(!E3O3*|(Ip*0*yfV4h~de4oE-8gI-5xUkQzjg zN;F1X#;KZcATER`Qbo-)b&je7u2rWj*hbkV8+<}7K{xEuS>yH}U||AB6>c5aa6umj z*qF^aYqE}K@Ja%|M?Rj#_JHzuTV0oLU{~kHIL?H|05ix8L63lEwj*l2b#l(E0j$y2 zByEbB9|>V_1Lvu!0ZDV>83sTPT6ygdt@aw`*{I#b5y=pPwId6Vx5^zLZ9Tz@8VHKv zkQR{6MBS-&$*c8}B;g^?&`mR9!X%plQt=FV7t(gZ4a~d3mNA-DC(5Vr=^OZ(ZzXF{ zTwP(MK5RHVVq92yv5qM>_9-hFPOaOX7mh>R1f7~gAkQ`E(O9$7dMDX`ppWy4=`>#Z zGq&X~mi8X5KIUJ|J4UJJ);6A3R&2Sd8AHAXWy^{~r-NF0HHekEPv)eQcT8FUGs#oc z6}CsFsS*bc7iV3_u3%2MdWc#aQw=(%+Wk9Tqx5wrCG|+_vxX!EJK;NR;gmfJ3*0cF zTdo0vM?%o;Gs%>?CU)czYgGmV>%o8V{cx_H#}hsdg!F4k?cz0iteS~efU3b?TH;)c z5@z9NcZBwzS{&)+ufD%{A1Q7D`2sNeicZsiCV3#{n+4A@kXjIU-ZUMF-Jz=`g2%Xx zzph3D*f=>~sPZfvTl~2=`F%Tny@&r<=CX6Y1fGps-J_lOQ+6Jv5{kS&oxo0&)=z1P z%-~>4sTef~06GA0kO*ZfCRj0@6m9(Ev%tcm5JH^WUyffNzpQ<~*lp{w19wie14_5U zH =S|iG7^*}1BM^2Jpz<~u!N?Lk?C5+yM6xM+=h>8^al*H00`#TVEaZcwM4)} zL&NrUeL{PyYin$c2}AmC7Os|ZVUi`T$L4`))m0ju#|8l$pLRg)A6~!t!Q6LvEar^& zrT*nx9(b0& $T0_$f zSIYyrsF#4QkmJZ9AN*{_Vhxj{nO)AF5dVZbC{iL`S|b`FD{m&`P81rCI^23zB%{Hg zMErYs`^ZMSg6Egc`(gqL-px2G43mq* 6d_n#9$&(2w}@- zelX$a>kvjuutGCGA;`ZaEm^X}_+xVGU_M3`nX&6iV0;}=JSqnf{9ruRxBWLobRH?K zC-49qb|SXzOyk`F*Qv5eJh8A)OFoYj#NeybI%DOzok>aOc75ra)ytUf8S5E6vt;rc z=neM+GH5b*_qqNEJLn*nWDh_RJW7$Hv&fx^=l(>{qalkP=gDv{TsY(e$xzgj8$(8o zrjx2&o1|Q}*wcX{0@K1pPb(dHD0zi9Xd=K^Ip<668MLV{qb;bq9QAc#4jVPxCGX7z ze~9=YS+r#`dTpo5k(;}_2mP +t&X`Pi+ z4ih-tEXJt@Zko1!`Q+hDs}J+Kh{5RqOOn^W7|}Q`5<9T=iSP>>M_acQ2wO6G;c5UL zrF>xd&XswIlwJvUZHtD+WX)mP3cW?%%r(SblQK*9^`1d`C9MukU`2R6I2q#eQ>zZt zy3(L`2Xe_D@5%Xd0+unalIJl#CeuiFz4+w2K#8IlJtaip_?FOZ@aRmYEpUyx7j!Xa zVEWR}sZgA2@lS*lZqa2kd(;09$V_hHDFtvb{;#KBXH5Oqs-lLydPV6^153|5@l9NT zf}25)HJP&gBTf=G5h{{OdAKfj0TNCo*VSOrwr0z7`Oy7gI6uZC{Bz>* WFhQe-W9SjoUWy{6^0BvnZLR |k<0n%yy7_?jgc^Ab_7BS7|+9u8nL>e2*CEo;`nwX^NDDj zZTNx)8#HkbMn9a|H9S7hO{Uw8L!V`wgue3ZKlox2{%|4;reH#%|0Q*0lf*7qfZxk9 zyt5{>XQpw(^gIFd`Uf711(er|{^0G$)c7qJ7m^q_X`Ygpv`D zm1K315iO7!=MCO|+lWU&svXmPqN+b&t`^*=GCFmu)DyI(!Dwyk6GuV%{lm(j@O&Is z`)E7yBPmhj)KWOx$m5h>dUVT}@QrtNGtK@kO@M8}Bpm{ nM8&n@#7@ZWPfY!uZz&c&cZhnUm>cXY_}0I4 l >&~5nIfdI_Ma30Ov;2-6m~@thIR_8qNNA1e-h|Z5ewsvRKTG5_!1Kf)pDVc6TyY7+z_E!1U* zZ|+WRJm_3zvUC4BQ;sCoylV%Xnq4LEDk=4lxsNXlss!UTwLIC5!ZXofeVS 8IKfZ*6yMM;QMo( zEWW_}q}LUaw*+bcT%7;wlz%n1oR|J1$mTSzK!!M%2x+yF?C>+JU<%EoVU~E2KK99_ znUdEHyG=ikzF2U!r0h1LqM=IKovQxk?6{Pu`TqgK>5JNHUI`fV`Fdw>fC_)^5Az5n zaAd}^)#!{_Z-c9wd+bX_qwmD&!G$S!1GMy)Pr%we{?-~<|K)kV+7R&+DkVkUYw6Xz zNhjj{PThhY 9U`5@dQbJ<+)m> zA8>hx?1lGuV3P&vTk ELXjI3^j^@C`Fgew)Ia+wS0vwLa zAWn{S5AuU!3FTzuvi)u4+@ft8M x@0apNRhQ261@5NGOy^gM~&We zqwxB-^yY(~BTc*=J7B6W_V#B(1FRh(Gw9X{)65!PD`t*oIS%~u3RsCnslyV4r*&RV zSId;FiWbJr_b}29dE~I0aYl9V37{2kgO`qGYp0AjLlk2ksa;8Vncs;<%b4n>L_bDS zS5syUHo;4WU8$k};r;18k;^}wM(qbyle@ooLOz9Z1%<5~T*ydm(gS-lf5#k$3K~7A z>nY03#tOqWWR7!3_y(ZqF78X%c^@#PsMP EKi>06D)_UybG63UK|^dXP{XOR=33t$p6UO$oEK;Pmj34vzjMhP$~+9^C-D zIF$6#TilOTvP!?Y_sw%Cu=2z>z*V^^UL?!gF(FXXw~(;Owgj-RYT3=OGtX&w^E>%2 zF$MPY7?^XuVuI)S?s`4MO<(u&G#$Au%rbs*Di`bJ=?`$Cq`J2i0qj=4ZMjqMJmOP# zu%@lHVi~%FTD9FEmMoHr()9+glc(#T)}W=D0y=W29cyaw?pEiv+19{aWXSpsgQ(WY z>ZJzRXp=m_+Ks^Btr!(0MtnDdE?Pj;hAsd_&NCI0aIu}A_I5s_V`0oVCrN+noH<9) zq)|ee_*J&|^llx?0d5~VH$Rr1raiZI(QIMO6uWI1e*If%nTpFcJC=1%7yr(c*4Rru zu!dG7Qjhbu65JhCT~}3TWF~wbYds$C7mW0AE)?@4;1=r4wS23Q4P8U _bB=BCvyKRbO*zMpMgf92KWAYSe-)J)mL5 zLZ<_#hv)OEn5f4IvpLg~^Nsng7xrMRkD9hsDv~c-zuzro&I=a;N`Zr`M`4gv2TUx5 z+!2p7o6!GY(OMw |=lrLmMBhe+D4It%k{q|hu8R0t3C~L#gp1=P@`gr;L+P&(Q65G%t z9GmwbTmreYd21e1=!-{7p4+7 z7#BPJ_@=YBtT _oYPKk>F+-c=K#jSwF9?2Q}&a1r{f&sfhvmF)l9A3Y91 z4wXex$)_|-2RE@!*}yb`Uhka9KrUrl?GTruAjs8r^6+wVs6t;>n?I Qn8 zN{Jw*AyURNgui^aSh0b019b6hR1<0HL61x7_{FUu9$G~!EX|eWh}@DErx}E6)ovn7 znqx;Hd*>8IHs&HdaG !Pqd|UJA~#__mPbjX#`rZ#h}tC7E@CLaP^lox31yEsYgvd>xUWr3amZxE z_ qBp#=buyDG88yiD+j#6@}*4*Hq`hQi;MZ9 zyzBL)P5aA$YW~>_t6;v}6i1DPuaJfjO|o^_!M5 )<@)pdhfNhdKiSQm@I_BK z|B=gCnyeeNpZzac2LD64$OAZNcX4()nxE?)NdiysbuOgs!DEh0%W2M-Wpi9|2^k!_ zHLL31nf>DDg%9|>RD7OfC&~Y;{r`c(Pc(HD{>$I~xBr##2@S1Fv$D}2#Ds_7XzBLs zO1_ku1@>00>1?E*M;_k6ZHy^mhtZgBWw|cDvm6vXK){jTqyP#SpaGAUPhv^pFb|<1 zngclPu7q4=Go>U_#ca->dWQAHOvgpCfOY#x_m2?3#OUqrL8JSM_k0PruSiN%3SUjE z^+g5zC%{;X_)xNq?W#ZaL_v0o9d`-Nufx5puALEh%58ttQFw@7@!4JAQlS7~u|UNN z#~>4&7E*8AB`<=@nJR_+wr~FjzbF%2SvjDDH4&QLO0(2{zc Dt_1L)lvn&KaYN$xMy61)ov*QK=rDrTRyx45ZHVr|GOJRPn z=W3qOM580Hozcc@WD|>pF_^9}@tlgXU7-bxA@n#R3(X3|s^z*)-3gKoghoxiX^yPi z3jW@#QC7`W>;{Y->_-Ycz;42IfUX7mBcFzeM@FY#Zn48cY>il|>>fzoepG2Z9K&kE z{S%FQ;>2dNB9M3+FHgBt_Tg%j`$bJjI+sOuahcZ!Pb55qoZNPHwKEw7b `xDaLjnq_~=hiLRI^_G6`vhGHE1 z3+^Uj`h{0}!AT6?3x0-q&Z0{MT+%=B*SJsTFuHM-+-ET&NiLl%whD&AdyAa)s`kM` z9haK3F;GKw;!GZbf+iDdJrBlC5QR$*tWq~NFxl1X;Aj4fs{eVuh9jW%dGY}i>dmyU zZ19yF4oQkvw`iGSRti$k(NOjrtH?xV^4hQ?pw}57T9DZuzaAC2yM^;_<=CrGm@lhQ zC)KD4YwpI0W~vKiP>lE8$3q!u)dk&|)c>l28DsfjN63WYHj|#d*3)+%O`jbmURZUl z{U&vY&xllFRYDwM+f6GI^t (Kp>q5D0$<|w3S4TrT*HhU!Z<7MLq13*lrMkSaN zvxHD7%oDU_$p)0U*)azHE+6Q3VEh2h6gu%GtI5>@nArap5}o 370GEHr+FP*lz$3Tpl7v&!~wiKBB z6|e1)p_IJxw4MT90mbhnS|`Y+TIe18biZ@$))U^&o)>@A0mZ4 v4 z>Q+smv<4+o0Qw=#f qNQPNWi8#h>(SsuAWEoauvEmoYFhPXfaj&Z(*4wzNocl7la{G6Z7Z~O z==|13TQW7x6(c3 }-!6_PUj3kmcVcBNM4800 z_rKHBOlABJ;Uk*7$3`Ow9jIP0|4@Ic%tqYw0mkCK-OND}#A$>mh-lmHi6<<0->SuY z<^P#4<&_?Wd#8V;FnB8$*KPgzapg9uS0kV}kVpQ=>5tC9kw+M5Bb`bTB{(66E;d8+ z<5V(0%RDpTgAr~mdll56vf={8d1+U$dr$WH!mzj~CW7ucHnq2JvBHLSp}mIn!Zq_R zAnF>dWH)0~**fOgjkpuF0kX6z4|9?GBr}%M=Io`*5^d3cn+Lk421_PZvgTNbXT55E zE&C;9J{(A4DVP7A!+^uf(R0%cr!F 2^JIi(8!lKo}A;hpxW1X{2Je$Kq`}PBJ$X$IQo$yLs(4 zxrn)5-S@idGs@mB97~88EEd;jXf4DD)U78cRk{eQlGtb1{Vg8(ZA`4SEiF=^q2dri zn^mT2>O~sey&ycQpd5=-vgMj0?u*N0jA<6jM7|?l8j>4}#~y(#5TgasaMU;i=&ES* z@j@g$Z|Y%8-dr#zShJSDx+yKJe!t!rS!3d(7{+|mo=f!|6gH#YrVtxyp`F&bioy8U z7`Y|c9JcO0!w}QSr}o>@Vb-1KSVH+4EsEuPWP8nzWOomrJYN&TdG*e1q_6v-pXNA> zx~<+lRU>72NmO||Q6WqYl?>b`0ZDBR>0Lm2X3AK&z`SbR;C5qJ>nvQhxS30yO9uQg zHGZs2#!#*SaI*aG)qm!{qHl}wzoO4Ss#(^&BGFXKy^F*uka-?{A1yu9B*$=cc*H4e zLgbFzuZmadL?(hv1_`c3#R7S>$v-!` j}BB~6$KW= zW@n0oT^O @nY}2D@U;F zucp0LR_gBg4mO+Qg<5XK8QnaB+dD(9^@E8n#U9-3*ao?T7q0%f(HFXZ%;p}GwNJGL z$`Hn*i+=ybf*70d#(iLfE#LXyc3rr7L%?mDywo%`LiHNo(OQxI>4zBe26&F~jEG{F zW?I94BJ#A9OS!_qLCkf)&_Y6II(E9w9I`!3Io!9u-ek?haN2cNKp7NjkEVH%Jd$c$ zi)-$fYaV&hw~g9rSIRh>avzf6Z2i2v&%|Y@dmQ3rQm{q2wH}c;iY~yf&B}BSe)C+> zy>0_BgE&btl$GUq+45H%0vH4MmL)qbGw^(Zc3xubwl*zHNV}_@S|{qMO{xMkE=14q zZDP0=(<;-Njcab!x6*l#g01LY7nr4| `jGM};+nIkc1Lz53ifH>}%vC6v z;V0gS>8{|1$fQ*a>Of;UY^LJ_hV%xDaiN}D*epGCeTbu{kekug&}y&AeY$c~G+>_< z1YyV*)#)esmbc=i)v^^64MHxMJ}>u@(ztc3lf&}5liR35QYv0X?OjVBh)QHMW{@WC zJ$QAvWJB}Y7gn6q0IW<4t;NWV39{Ijg3J&l6ob_$an!%$7gcKFh}@cL(Xz{G)iI;v zf@)#1%hwgV3VMeVgcub*e!ku|hxA69QVtzc3gwKaGHCwh6EzXH(!ZlJ*OfnSPb7pg z6_^`7L|gV%i;L$)yP=|0Q@>26P`k?MKj@}V%66eUgwZ?}Y7y|JmE5jZRv7p0 Zdl=| ?(UEl>6RA#c<;U6y+7gnwfEYyXFcngwPwzqnKjyUsA<)k$b!KCTE`lQoma{L zkag|51lY|C)|ivDN;a0yt4@u~6T7Z;JroasR~86&ZHk_=Ua7c8;D>2GkY1Hc3YT|~ zI$r-ZBz^R9R 8k}{R$n%>mheNYw$jqQH4;)L^gYklf4T?@UYffJ zRoq9G*FUYN@t4(dKSft-%vjF!zdXR_57{i~TyPj_+-ut|mU*90F;2ka(X0{SKVnYN zpJ5-~R(!!bK<~vYy>3m>Pua4Q6dHZCv)Fv@V`PF5Xmp@%;B$}RO8`ZFj*&k5H8vu` z(0LYIR^UK&c&VX6X36m*Tl|$+n7D&=AMi6$HK3~+W1pDKh1jT{v-JI&xhMNh!@K%0 z*Pq5C6@c0?M?W6<(%AHJn>x+Xdj;yMFZZn}+Fi=^DjytHHN{(CjuJ#og%Gm54jT3g z2PxKh4Cc^E6km)Z3rk4VKFu`%<&-aG&?|R)3;EE}xo2cv`$rWJ^fu|gs^<1tW$IBu zMhfJ6EKJU9!o?u`l6}?`YgeA+xyow|^xT0KFPOEYClY7ZE%^fv!~+FBpDIOtS+i7R zdINA}%s;l01Juee^gkh)Ddmn;$s{yZ{%rmQck;D`#4lzJMyxj8dbuA!vZn@`O|ifg z)0}r&h5B&>r3hO0?gkHB<0P???6RL8$eKE4t+>ElYoj+2=S9=+?YGIDH0nO>w`b+J z&|qj(nL`CIfoLRz!_ _gAuF~~6a~>-b944&G5J4RIA^M|GMpt(Yyz}u8iBk|JsjLVWUSWs zMj8wv1~;%tp~}lv@%@1tRTVIe7hR9k=u$kGOi2|A6ewrqvQ$pCQcW<2S@$N}wkW-z zHskf*vPBYJ&DdVTE2P(h#y&z-k?_`D)l#}y=Tw2*iSK@a>`Fy+i&ldNM_5eg%P8vl zvf!38heiL=Yi!A?Y7d5m>n*G6cj*gly>Fq8c2V*N%@r@%kgd!~V$=yBS7D+wew>yz zUB~3yRw5R8cmlHrC;8|#!q0B?+c}|qX0+X3Gh 5>QAa#1be8@}|}`-27%& @M~BySbT%l$?ahYSl6HJAqgf;P=u_a${8)GIpO!{ikX;j{ **82N zS-{qjBce&N#a h=J0Bp?fGY1BvuCd zKoP0~FMzBJj!dN7>viLkQDNuSM6Kbp=7*V>7KgO^w$H`^Jvx$%1KE^^uZT3ibz@Kao+eC+R+qVOXvy*elO!?;1Mrjz1?< zi_6I3%u;=~W27f)!2BuXxxG RZ 6L`kSWdy?T=ik%0XLsCrQ`Tz(Y~>o;=@u^vtOD_-@I0KbX_ zqgp=eLt{lG;nFz5;Wt`nW3xR#)e-<6nc GwKE>FBxW3#PHn3Oy2ufMiFttJA_nOh(VOx7XB*gjjCT z`}OxF@RBj8 4kXR5g&JaBT4L;nAczo}-AF~MmphmBY&G`sor`D! zKGp5VVQg$k&$_-oYTYY_L_e--4at_YPL3><8e=EDDDzR6VdmM(;OGIvL(7aJ_i8H_ zhL#~dDabDQ5}ah0xuv;f`Q%lV$o-F0VY~pQuAzyS!d`RD e{N>V4Wd>l%OKrGXQNZ-~ZPpjE z!3`m!Wa$^$b?U91B1o-c+pDgH-(-jQ^dim)k!4Nn#ZE|v*^C?nyVY?ziTL)F`2sDs zN|ZDAqu>%8+ieRK8TcoEBc);#!Wv gQG@lFgj|`eNgWz8#gni3z^dILCqx zi$gB?7$`SggCpK<^fMn`D{&T|WOTZZTj}w~sbf>YIXP~^x`NHm6l3oR&w^~v%1mvH zzk3vFTZbb}9xzAA(K8NN7@0Ax$n=Njf>gy4A8qULB{wgN5aaP9wp?U_`ct?~REawx zh^qCKwGtmwZXZ9C&Qh4ld^}$go+WB$R)z@5NO!iB{}p7ZsjB$>%$?NYl+V9-36Dkt zVIU=VeD)o0l`m?(a0Hn3KB7uuO0<%kPlNr9-xqYGImP;-{Hr&M6%b*;0QJY6bxmgP zJq1;GRy1_TT }`mhOHeFuedcUE|tf3Y1T@Y309M#PI;Gi z`=~#$$nUj97X)8eLbsy&cHi_lMhftOMzt$@a)~-0M_*Xbch}8{^o6Woop90i6j(%j zs0WHou~u`Hr4-B082x#Z@x}b@ (>x5oHr>ExDBv#Pi(hHsiY zCVvQ6DS7G)SR%7`R9#f(m+h!2{XOx8N%ER;#`)#416N82QJ9vJq1d91B~)f5F%N!J zE9#VB`kMDodzvD3*C~uYL?&qnLrM&2z+5;9vAzTEepK%)gH~WgG{}VJPJVU&;C J{n4`mVrx V{%^^{2HpIhb^w2KywY1Dn>0Tlrlei;|r-zhWGi%3k1TNl~3)-1zj7!-|*JC)x zs_PU<>+^EogMo{UL5lY0*A On!}Qx>@{lwBnNBQPZWP{trms zLfisdB}f~;gIqR!W?tQn>g;axv0=Sbp#>*l&Y0F=w}HceRWSfwJrO~~(W96v?=(lN zHm{gt&S4k#5Jw@-`ppy^Cd#E~L_%%Y*>7G~ILJ7M+%pJdwbBh@?YqC?+etQ`VoE=D zqG0u&P%!Vke-W3Q3T9^VgPz27$x`Wy;s;@KRxv9fL_TIdB_}x_A}cL^h84wC{c{;b zO}%kxsuemblKUe`Lb0hyq3mH~EudniGhK#cvdNWQ^@vMS=x{(DHYx4#PQ=018(#D* z+++wjOswXt_cJYCszLDc_3wCg!U?}k&XIK{ro4~8edDDxv#;LfexCk@tsYNEJ6+W8 z7yoI%zs~e|r;RyQ8{d=21+JZHt&U08;8Xn9BzA5`A!@kMQv~S8mKhNnCMrM5od@Qf z?x7Q3`m19>V@Le(4^_4=(=SZt{Vq 8cGPa}Wj0 JTpJhq(ooftZ;{zjwUA9Sw)PE zHQmgmcm!A>Ep=;*z7}JEup4Nwih^OLXTc}zQy}6OOI1?8tA$KNSv$|3;lx&U7EGK` zBcWeU2^502Pc!`Et^Me_?A1+HYnPwH(tfjbDWMFf9rsE0TH6VY%SFiA`_MfkR-J(i zU-W2O<{32!j3xb|kIkEe|3n*^@Ed*D204pga@$lHb(1=AYO*Z2)_D3>69_*PkT9aN zU`C%-DT3j5Jr(dlnc+|d0+I&3d4FP-BWG|ZM2IO3-s$rPPBTzHF(+X)E76TpufTc@ zvaZIB#5WjU3R+^;_-KguUfVKdK$WFE?AHfdv1z Y1cX7hH;ow)}Adr^(J&^sro&D12-~X{leM;bG}v+y-03 z*gF#7INHpVejApO5K9oTD%XDV8FICQJ%}}|( !R_t`C@uF)o`jW7xwrTGTTuz{V+VtiqpK*mlSM4P8r!Vj=&lTBw z`{1cEw_K-+UGy>qVx_Y4;xYvRE2N7&<5jyVeMsdF=|g^w jv{VWh{#!;eR) zrOHG5ZT+|^#!nr*b%8wcusR5B%KVWEr_01fCuz%0WysGDE*#`8Ty+CwPU}QbXP`M{ zt3{+~vbm%N5Bf|pL*2psoz#+jy@j^Rdwg*%l%hr83_dkyFErgi)-P52r4z>bf9{uL zVx%VTmwq|3OWL0iaUVQWS3)|a9t+w=P6nup{UC8@k_;JDVEy2$*<^xw;<9LvCa6#_ zui1oI{Z6pll6;4;52fYz_&ZL$zrdFJj2r`h?+WcRwOIOtNXH!QsC_%lEmzC^BTqGs z_$e+5%Q#+x(>aAzy^?#lNCT}=X14hBL{=>yw?{7zs3KEG<5fqmNBpr}R~OE4qm2{N zP;~EZvJ=3tzw^Tz)h( pew(Fk^S~0Otg*Ld zFYvP-)l$&z${%xY=KPip2ofzo?PWv!MUIxhTua-5@lgjv!df1|Mr%dD;6J#EmHhju zJ#}g3p5f)Ag@ 2@FYA z^{$m?qT!7X>P5%w>v`F(v^nDG0>(F#8VDN6IplpkmCjaXSGvrl!jYTV{PqKenUeqq z$>G@!E>zE(4xU`W#6bzb)$>$SEYwQ5_{mb6`{7co>xAjv^v#|Q^C*hO&$i*M6W1o^ z8jl8KUs&jHAtOmQ>04{afL!{^?y82E(p;XuZG!LZReYxO5(Z<%=uxymNpZUkx*bLK ziuJgUl8A`E$rkAnTOrreJUNNkSHy8Yu?)9vVQ3a9kgaF2`q^FuMcSy4?>L6B136zm zdai{_B)LfUx^6P;eC-0E*?21RwC_og#FhzBHW3fgTTE(n#prCUuQ^l=+F1)6!a|w; zG*+RZK%g{-E!GhpXu0cL7ab!FWNL@LdDz?cXfgCHINUjRiVSJKlPfX6oM^Wc&H9c| z-FqOQ->3QIRB1p!VcK3*T5@s1i?%DAO)MV&IU_?jaJ$=?xFO`aponHtXIr(B p2UBme8lyi+lOvvifmc zn>Ct--*nK^u6L0fA!WO);Vn KxCpLFuK6r+WCe+>5$oWo4eGh1<&XSJwbN4+pRxs7soH=cdVgK r02be+g8Re@Wl|w2)W* z6SFC9DW^qAY3A%nx}=B|&5sCQ3A(7OY^JMXxs%v2Vy~&C S@;hlGvf+XG^(^P^TX59~@ARX@_b$dX0t zR}x$`7Ec%(BCQc<1HQoC_?%fm3LV=OP%t`+7|u1hH_6z8VclBT++=?*L Q|sjUD34ZD(U&~_X_T~uGO2gh*jM^~`qV%TiM`+ZT||ve9e1AR&1%BhM&+X! z)Nu=mQg~0gL=&tVn gMB_}z$3=!8q{tNPu!0@vOmf#fc;M+~O&{*!c4 z6)ghYEqjCkkjdacH9^N@Q^CH$E $bv7Ov zef0UqQUcGK2LIpT-h8u8RP~p17)}s038j062}l;^hgwS20;~p3&tNoj?e=q@G#+Yj zvu)7#3w#tlM4t{)cX1QcUct^DZv(abu$Ni!ZGrC^iKWQ*{(k0_ms?Ta)*WO0b^Wnm z=IV;G;IF0iL)u2*CUq TSM6kWEIrV%`hD^I zwP#5!7HYhnf6OqEv46yg|1zW<)~wsTxU%mi*lhhw=q(0DdI=4cHRK!vwVCSH%iImX zE1`}5lTx(yIKL&q>E;H>wPwl}GySWcPJp18HO1Tj{j2UEaSY5~L3G;;o##(aDc%Sk zzYWjQg2E4GtcF)&bLf_>Mr6f} V3NG%TT@= OLuP5!yGZ;r4 z_tD687;L=w#a7#|=-Ga zIoy2lI*|0W%KKl>1aubNxu1>O=HPj6sITk= V+9EGzt0xH%{^!OJx<3F->Kt)DjKxTc$YV|`!z zKuNME(sH;C@#C-Zwhi5tG9*tNkuvslwF>Wk=6D$R$){a@kqF&FJsPvzLS|?+h^fdH zEw>Gg@qmbt`5{rs6GV!1!wggT %yyhj>bL`|hTVbiU|MOWqwj1~2duO2Xr|63~ z*{n%nB%H0pl_676ySDuB$J@pzc>cGD{3ejn^SE(|acctk!$#$gF#+mdFRcyi#EI=n zW>s*FK7{W!2 (7zPJfU(k7*QO%nnF*m9{^S67&>x!|Rzhy5>fjuO)fb>s|QMvNX zFD2_jM%>yI%}nm^HQz|m8BEX6mz8or3@nN+j%JNQr`3rsB~ ztxat8Z}D$&+Ox3O`|pfDD$I@o#l?gD00u#cC~4e>p+?@YBSDD2m){B%`z+fSi5iZ{ zT`Mvv(C%xWnN|irdYYGRD>LT33lDiL^hhXvk>@-OE7v~{2aBkGkQ?lZfg?6#qaY)u zmpO$^+`sIF#W_O#!uJPzirx#X^ZN|)s#{@rE<6u%n&^JYJ&EVnr98KeUOxR;W37P9 zY*!NE O0z-?&8iNC3#NZvz&KL=7XyHS>~KV0Dr5? z&Gl>UJ%$fRHqO^niC;K+mvv35M2nmcaOFR>K*etbuCNKhP^Vg5h$spf!=P$Jlc4&l z_&FCZ%8j$_S1F=gvqjR#OWihw+ 0K6a&1l4B8 z_rJSx4Er}uH#{3|Pd$L~q98j9yf7TVe}9Zn2m}maG-mv_3=9O{-2Lk*qvd~OP!IqN zzDc`-A;CZhFZ|Y1FbE2V-j?yg5VvaqLm@EW?Q&2!g7>xz4glZQ!3zNXqZj!PuK&W~ z1tLJVU*-h^pm$^tAnc9|ih$e(!wU!8F$4ktBK~I_^4}amZe+I+Lcl=a?Fu0f5a^B! z2DnM7`kP+}9LRecAQS+C+?D~5H;Qjp2mk?Kx2XnzU@*`vB>)ioj&%Sq6biUq4h*}) z7JwH9`lsAK{QsAJ052ST2O$IszXK3**B1a#7~l@Tn^*rw^?y7RhJgPcfd6WL000iS z<1_#S `9dz*eB9C(LnARKgu>VJaiPJIaQU#$L%|C`R> zj`!d6JMi1>2?D}^w=D(%Z?-VqV(^CPJMj(z!6A3*1H+JamE5$*ZKt`h1NMKM=3lV} z;)TO+J1YnRzthGb$W5NsZGce3e^^ESkA4sg0J+`nAUFVc2Q?fBx&sgaxvTi5OS!EW z41oXLNm<<30tO(Uw-w)X+VKA)v$xeVGdHru5fH%Pk+w9pVualwU{qqn;Zd@(vS+;U m5Jn{&9%Zu+MvVXeGzdLgduLlCV;txWQM@=$o`@?*;QT+m)&`>h delta 23828 zcmZU)Q+p*`7qwZjZQHhOJK3>qJ3Fq}X2rHuv27<6+jc+S)!heg_u2XbYmPDRG3MDL zSo<+pLOGC=ixXB*5Z2Yr#oX8))+=XOd)#G{8@cC#&MBqJEcDmQ7QJ>u?tRkQguKQf zJ~eDoW`Q(9I`<6Kl$KHm_%H%G#=0vum7+K pll(%haQj^-%tXdKbZd@NSi)Jtw)m~~8Tum-k$&JY}!+W~mR0Z~Vb-fXg? z)iX-98iKLGB1D!-J26)do efOQ?~VUh$m6?h=VxFW`&M#*PBz% zYbx+e@@cC !f{ HXzT)fvi5NI zq>EYLi($2^3a47D51VMBVv@Y&@-`WJ*#{4!OR2&w;@)-`q&Aj=P7a1y^}bULU?eqF z&t;BTfuq`C#~27VKLI8BeRyXU+THiGSOUbVP7K+nN(dG%#Pin8lPZ$WCElh73}NVW zlhe-(x5zi)?v18cbrc6SP@Lw4Lg&Ck-YIa6!KB4*lPHg2bcGZ_bBIr*==QV=z7EPD zcXWJ)5&kv~rT#gDI5pwl)28=pJUlZL9MMhluJhUn#1-zjm#8)UZEZn@AtxK6-~eo2 zf2SX>86e<0RX8aZ58dOGU-NZ4{uqnwKC~W0ot^eO_-*@o2;q!c!iWSpi%`!WixUN4 z{EbS0wq3~#hYdPDNSe2c*{>;svRv+ZSlv_HPfArwkHfnRHI_I8*QlfBf5qD}>U2P{ zY 3iJ~S5s7yz#$bZ(%9+qp#qF - H+n?Y6d7O}KA?U4VqV>
o+^-Vxa snhZunVvQDS;RKM*7pbnDq9r-f!p4FR{ji?yFaZ;6JLwTRnBULS#8~XZ z&{c}dOhF?pee3VBO;0lGFA+ H&oSVR`zfK`uF*S=2 zIecOIkky<+HdZb0MY56D@2NIg3@2XE*rNO8H^sPd@eqn}5S+>TM*kiG|Be!c#|EM< zj#AMib7b9a9k5Sjxuy#n-N+=B{*F6C9dBkq(7Svt+T+@boq|WI$O#u#I(2rlf{l(+ z4K)PiA~F4h{K9EGAUOqAK`{Vu!gH<+5}-Y+AWM_LED#=I;N0n*5zBS5+#C?!7t15* zj-rdHpO(h(PGuM(^Qu>~6#$Fb1>D3Hu^dgg9aR|=P$gG>Ub5xOo7GgtKt@!Xzy7SU zb%?4hv;GQzGeHhlL)@Vq-m$nz(v8w?nhHt0 ^8E6+TxNw={2i_4`f0RtuKGg^ zmvOqo1+B4?x`e9M!!#L|2?vTJk}TJ1cQ@;sEGZ2M&5b$-B8!*IJmy-}@%AV4fx7+q z+zbwwa7~#6hRuKR)`(@WE1v9AKo^d$CQj{WxbS`2!b4z`h&zi`=uD%B99?haABz`1 zzc^A`aMMcswQdkA&=5wW7xQ0GsHQ`{@;vGn{CFU|z1`m{H4YE31qfH_Ub7gY7Bo_x z!m0j>Ss@L(l9n#i4KE$mgqI 9ZS* qa2&R^rGlo1kuoa*?;D6)hby6gFX}a2?@7(k<_dxhw|5nw I`;1*XU^h@? zh5lfc*ze7+u<%BWl#E>~d1r!dZ>`fa`%MOpmET~h4xzNIaXal4ze9;Kix_B=FtkeY z+pz;26#==3QaRX%YThc1;E}`&6Q0{aLIm#uF#^