From baeba626110490d72302fd2dc5028d870f20875f Mon Sep 17 00:00:00 2001 From: miochen1226 Date: Tue, 17 Oct 2023 17:05:03 +0800 Subject: [PATCH] code refector --- NES_EMU.xcodeproj/project.pbxproj | 30 ++-- .../UserInterfaceState.xcuserstate | Bin 321316 -> 328370 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 32 ++++ Shared/NES/Apu/Apu.swift | 67 +++++---- Shared/NES/Apu/AudioDriver.swift | 18 +-- Shared/NES/Apu/IApu.swift | 1 + .../NES/AudioDriveImp/AudioController.swift | 36 ++--- Shared/NES/AudioDriveImp/AudioDriveImp.swift | 49 +++--- .../NES/AudioDriveImp/AudioUnitPlayer.swift | 7 +- Shared/NES/CPU/Cpu.swift | 36 ++--- Shared/NES/CPU/CpuInternalRam.swift | 3 +- Shared/NES/CPU/CpuMemoryBus.swift | 6 +- Shared/NES/CPU/Define/CpuRegDef.swift | 6 +- Shared/NES/CPU/Define/OpCodeDef.swift | 12 -- Shared/NES/CPU/ICpu.swift | 2 +- Shared/NES/CPU/OpCodeEntry.swift | 12 +- Shared/NES/CPU/OpCodeTable.swift | 2 +- Shared/NES/Cartridge/Cartridge.swift | 6 +- Shared/NES/Common/BaseDef.swift | 18 +-- Shared/NES/Common/Memory.swift | 17 ++- Shared/NES/PPU/Bitfield8WithPpuRegister.swift | 50 +++---- Shared/NES/PPU/IPpu.swift | 4 +- Shared/NES/PPU/OAM.swift | 18 +-- Shared/NES/PPU/Ppu.swift | 139 ++++++++++-------- .../{PpuControl1.swift => PpuControl.swift} | 35 +++-- .../PPU/{PpuControl2.swift => PpuMask.swift} | 3 +- Shared/NES/PPU/PpuMemoryBus.swift | 7 +- 27 files changed, 300 insertions(+), 316 deletions(-) delete mode 100644 Shared/NES/CPU/Define/OpCodeDef.swift rename Shared/NES/PPU/{PpuControl1.swift => PpuControl.swift} (65%) rename Shared/NES/PPU/{PpuControl2.swift => PpuMask.swift} (97%) diff --git a/NES_EMU.xcodeproj/project.pbxproj b/NES_EMU.xcodeproj/project.pbxproj index b518339..dec4ced 100644 --- a/NES_EMU.xcodeproj/project.pbxproj +++ b/NES_EMU.xcodeproj/project.pbxproj @@ -50,8 +50,6 @@ 3530B88826C7FBE600A2858C /* ICpu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530B88626C7FBE600A2858C /* ICpu.swift */; }; 3530B88E26C7FC4200A2858C /* ICartridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530B88D26C7FC4200A2858C /* ICartridge.swift */; }; 3530B88F26C7FC4200A2858C /* ICartridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530B88D26C7FC4200A2858C /* ICartridge.swift */; }; - 3530B89426C7FE4B00A2858C /* OpCodeDef.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530B89326C7FE4B00A2858C /* OpCodeDef.swift */; }; - 3530B89526C7FE4B00A2858C /* OpCodeDef.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530B89326C7FE4B00A2858C /* OpCodeDef.swift */; }; 3530B89D26C8006100A2858C /* CpuRegDef.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530B89C26C8006100A2858C /* CpuRegDef.swift */; }; 3530B89E26C8006100A2858C /* CpuRegDef.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530B89C26C8006100A2858C /* CpuRegDef.swift */; }; 3530FA3326BF6C8B00CF18DD /* Nes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530FA3226BF6C8B00CF18DD /* Nes.swift */; }; @@ -106,8 +104,8 @@ 356CF0902A87BFD70093A24F /* GameScene+GameController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356CF08E2A87BFD70093A24F /* GameScene+GameController.swift */; }; 356CF0922A87C0BF0093A24F /* GameScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356CF0912A87C0BF0093A24F /* GameScene.swift */; }; 356CF0932A87C0BF0093A24F /* GameScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356CF0912A87C0BF0093A24F /* GameScene.swift */; }; - 356CF0952A87FF780093A24F /* PpuControl2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356CF0942A87FF780093A24F /* PpuControl2.swift */; }; - 356CF0962A87FF780093A24F /* PpuControl2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356CF0942A87FF780093A24F /* PpuControl2.swift */; }; + 356CF0952A87FF780093A24F /* PpuMask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356CF0942A87FF780093A24F /* PpuMask.swift */; }; + 356CF0962A87FF780093A24F /* PpuMask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356CF0942A87FF780093A24F /* PpuMask.swift */; }; 35714DD22AD3E5FB004A7A3F /* DmcChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35714DD12AD3E5FB004A7A3F /* DmcChannel.swift */; }; 35714DD32AD3E5FB004A7A3F /* DmcChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35714DD12AD3E5FB004A7A3F /* DmcChannel.swift */; }; 358D403526C66CEB005AAAD8 /* SpriteFetchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 358D403426C66CEB005AAAD8 /* SpriteFetchData.swift */; }; @@ -116,8 +114,8 @@ 3592DB1E2AD96E51003D52AD /* IApu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3592DB1C2AD96E51003D52AD /* IApu.swift */; }; 35B78E2E2A86091100B1E42F /* Mapper4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B78E2D2A86091100B1E42F /* Mapper4.swift */; }; 35B78E2F2A86091100B1E42F /* Mapper4.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B78E2D2A86091100B1E42F /* Mapper4.swift */; }; - 35B9C57926C28F9A00E13D57 /* PpuControl1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9C57826C28F9A00E13D57 /* PpuControl1.swift */; }; - 35B9C57A26C28F9A00E13D57 /* PpuControl1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9C57826C28F9A00E13D57 /* PpuControl1.swift */; }; + 35B9C57926C28F9A00E13D57 /* PpuControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9C57826C28F9A00E13D57 /* PpuControl.swift */; }; + 35B9C57A26C28F9A00E13D57 /* PpuControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9C57826C28F9A00E13D57 /* PpuControl.swift */; }; 35B9C57E26C291C700E13D57 /* PpuMemory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9C57D26C291C700E13D57 /* PpuMemory.swift */; }; 35B9C57F26C291C700E13D57 /* PpuMemory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9C57D26C291C700E13D57 /* PpuMemory.swift */; }; 35B9C58326C29A5400E13D57 /* PpuMemoryBus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9C58226C29A5400E13D57 /* PpuMemoryBus.swift */; }; @@ -160,7 +158,6 @@ 3530B87F26C7FAC400A2858C /* IPpu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IPpu.swift; sourceTree = ""; }; 3530B88626C7FBE600A2858C /* ICpu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICpu.swift; sourceTree = ""; }; 3530B88D26C7FC4200A2858C /* ICartridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICartridge.swift; sourceTree = ""; }; - 3530B89326C7FE4B00A2858C /* OpCodeDef.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpCodeDef.swift; sourceTree = ""; }; 3530B89C26C8006100A2858C /* CpuRegDef.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CpuRegDef.swift; sourceTree = ""; }; 3530FA3226BF6C8B00CF18DD /* Nes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Nes.swift; sourceTree = ""; }; 3530FA3726BF6DCF00CF18DD /* Cpu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cpu.swift; sourceTree = ""; }; @@ -192,12 +189,12 @@ 356CF08B2A87935C0093A24F /* AudioController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioController.swift; sourceTree = ""; }; 356CF08E2A87BFD70093A24F /* GameScene+GameController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GameScene+GameController.swift"; sourceTree = ""; }; 356CF0912A87C0BF0093A24F /* GameScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameScene.swift; sourceTree = ""; }; - 356CF0942A87FF780093A24F /* PpuControl2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PpuControl2.swift; sourceTree = ""; }; + 356CF0942A87FF780093A24F /* PpuMask.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PpuMask.swift; sourceTree = ""; }; 35714DD12AD3E5FB004A7A3F /* DmcChannel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DmcChannel.swift; sourceTree = ""; }; 358D403426C66CEB005AAAD8 /* SpriteFetchData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpriteFetchData.swift; sourceTree = ""; }; 3592DB1C2AD96E51003D52AD /* IApu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IApu.swift; sourceTree = ""; }; 35B78E2D2A86091100B1E42F /* Mapper4.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mapper4.swift; sourceTree = ""; }; - 35B9C57826C28F9A00E13D57 /* PpuControl1.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PpuControl1.swift; sourceTree = ""; }; + 35B9C57826C28F9A00E13D57 /* PpuControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PpuControl.swift; sourceTree = ""; }; 35B9C57D26C291C700E13D57 /* PpuMemory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PpuMemory.swift; sourceTree = ""; }; 35B9C58226C29A5400E13D57 /* PpuMemoryBus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PpuMemoryBus.swift; sourceTree = ""; }; 35B9C5A126C3191600E13D57 /* Mapper0.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Mapper0.swift; sourceTree = ""; }; @@ -386,8 +383,8 @@ isa = PBXGroup; children = ( 3530FA4526BF70BB00CF18DD /* Ppu.swift */, - 35B9C57826C28F9A00E13D57 /* PpuControl1.swift */, - 356CF0942A87FF780093A24F /* PpuControl2.swift */, + 35B9C57826C28F9A00E13D57 /* PpuControl.swift */, + 356CF0942A87FF780093A24F /* PpuMask.swift */, 35B9C57D26C291C700E13D57 /* PpuMemory.swift */, 35B9C58226C29A5400E13D57 /* PpuMemoryBus.swift */, 35265B3F26C566540031E1A6 /* Bitfield8WithPpuRegister.swift */, @@ -446,7 +443,6 @@ 3530B89226C7FE3F00A2858C /* Define */ = { isa = PBXGroup; children = ( - 3530B89326C7FE4B00A2858C /* OpCodeDef.swift */, 3530B89C26C8006100A2858C /* CpuRegDef.swift */, ); path = Define; @@ -569,11 +565,11 @@ 3547C22D26BECE62008DB9B9 /* Memory.swift in Sources */, 3530B88026C7FAC400A2858C /* IPpu.swift in Sources */, 3530B89D26C8006100A2858C /* CpuRegDef.swift in Sources */, - 356CF0952A87FF780093A24F /* PpuControl2.swift in Sources */, + 356CF0952A87FF780093A24F /* PpuMask.swift in Sources */, 3505EAB52A6F83AE00B14943 /* BaseChannel.swift in Sources */, 3530FA3326BF6C8B00CF18DD /* Nes.swift in Sources */, 3505EABB2A6F89F300B14943 /* NoiseChannel.swift in Sources */, - 35B9C57926C28F9A00E13D57 /* PpuControl1.swift in Sources */, + 35B9C57926C28F9A00E13D57 /* PpuControl.swift in Sources */, 352575F726BD4829005AB816 /* ContentView.swift in Sources */, 3547C22826BEBDB0008DB9B9 /* BaseDef.swift in Sources */, 35265B4026C566540031E1A6 /* Bitfield8WithPpuRegister.swift in Sources */, @@ -595,7 +591,6 @@ 35B9C57E26C291C700E13D57 /* PpuMemory.swift in Sources */, 3530FA5726BF880E00CF18DD /* Mapper.swift in Sources */, 35714DD22AD3E5FB004A7A3F /* DmcChannel.swift in Sources */, - 3530B89426C7FE4B00A2858C /* OpCodeDef.swift in Sources */, 3538AD5A2AD91F0000787E9A /* Nes+GetSprite.swift in Sources */, 3539627C2A83619800CF1E97 /* VirtualConteollerView.swift in Sources */, 3530FA6126C0590300CF18DD /* OpCodeTable.swift in Sources */, @@ -630,7 +625,7 @@ files = ( 3530FA5326BF7A6B00CF18DD /* OpCodeEntry.swift in Sources */, 3547C22E26BECE62008DB9B9 /* Memory.swift in Sources */, - 356CF0962A87FF780093A24F /* PpuControl2.swift in Sources */, + 356CF0962A87FF780093A24F /* PpuMask.swift in Sources */, 35DEF54E2A84FF9D00AE8149 /* OAM.swift in Sources */, 3530B88126C7FAC400A2858C /* IPpu.swift in Sources */, 3530B89E26C8006100A2858C /* CpuRegDef.swift in Sources */, @@ -639,7 +634,7 @@ 3505EAB62A6F83AE00B14943 /* BaseChannel.swift in Sources */, 3530FA3426BF6C8B00CF18DD /* Nes.swift in Sources */, 3505EABC2A6F89F300B14943 /* NoiseChannel.swift in Sources */, - 35B9C57A26C28F9A00E13D57 /* PpuControl1.swift in Sources */, + 35B9C57A26C28F9A00E13D57 /* PpuControl.swift in Sources */, 352575F826BD4829005AB816 /* ContentView.swift in Sources */, 3547C22926BEBDB0008DB9B9 /* BaseDef.swift in Sources */, 35265B4126C566540031E1A6 /* Bitfield8WithPpuRegister.swift in Sources */, @@ -657,7 +652,6 @@ 35B9C57F26C291C700E13D57 /* PpuMemory.swift in Sources */, 3530FA5826BF880E00CF18DD /* Mapper.swift in Sources */, 356883212ADA377C0009AE7C /* IRenderer.swift in Sources */, - 3530B89526C7FE4B00A2858C /* OpCodeDef.swift in Sources */, 3530FA6226C0590300CF18DD /* OpCodeTable.swift in Sources */, 3538AD5E2AD91FA200787E9A /* Nes+SaveState.swift in Sources */, 352AFFE52A6E6DD100F811F8 /* Apu.swift in Sources */, diff --git a/NES_EMU.xcodeproj/project.xcworkspace/xcuserdata/mio.xcuserdatad/UserInterfaceState.xcuserstate b/NES_EMU.xcodeproj/project.xcworkspace/xcuserdata/mio.xcuserdatad/UserInterfaceState.xcuserstate index 6ac01f318c71b8643e513b5bf8869fbc0c245403..cd372bfb3bef5840642b05bb0f1870ee69d73d01 100644 GIT binary patch literal 328370 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¨pK@1I5{>sE_n&`bD_T# z`rDwN2R)4=+yVW3=odgw_4uM(a(q4|lUL+FODCr=$vb6|OXSbe`V}RStsrt1i=;GM zEQ_2?B3oGNlDsW>JBy@Oxip)kSGlZ6k&BW`@*)>YBA1h?!+d2f#FtWxJG99U?anaN(@_p;VaDWRp{5s4Bt2m!}pT!Gs9ibugfNBL}-1H4EH2I z%`^N&Vz{9QQ(qF?_g)BKwnnF~gsdKPP`l{+j$P`Frv}@{i=7$%D{83OzLv z9)o@p^wa=+0(xrrZh@W}zFTw2zw-?1%JN;8x=LpFl+5s%#;(hAC5A_yVO@J-SVtqk zPZt>0btZ<*F43YVxV(G}q*- z3)V#>gmttX=s4(~FQQ1It_LBkOV-uZrRvgk^>vxLW9p8r>sChtI4?r~67(-azXSSL zpr_xw*PwqL`Zu6|GgsHMfUtKy3+wtZLYfA_KhVF^n1#Da2wMT+Fh)oN8E?x7N3@)U zb?4Vz$PB47x-(lxozZuTWH_d7T%O@riQ#)>>M#?x>n7Aq$}^lOF?_#>B2()cnBg^b z*Vav|n_h>y>*{9I&8)k=j(Qs(Lcbe&>PYW_{$uDrfu2V3KZE{r=)cI--B4h7bAjQl z%#bEPmFc))R_7@Tek-KZ;C{?zV2ZX zRkwkA&ilyW%DP9m=ltymK1w^S8|===QqT*x|Ev z&(%F&_d?x^buZPuT(_g{l{yN)AEDn5{ZG*U4E-S&%K|J1!L z+)+o{Z`ZxY4*!%L{*8*~AeK`yiWMb@tpM>$hPW5{gEGW#2x8qnN4RdEnZBd^#ph(u zolaKkE&eJ4`Kj&~=1A}JpKKky&wq>L_($De`Aj@0W#WGf>mPz8mNkK8_~RS#hr;tx zZBp$dkSRLOU>w9YEtHdsXi{AWWJ;UTrSvH=Wk|J8bx3tgbxL)H*cM_thzf{Ghyp|v zL^VVWL@h*JE_GBMWXhBe#*~dfiuwXb(I5w-*s0|4$a_qM$YUxDk-SOsAyToH>*rJ| zRZkXEX^8E!sSHHgn68+)+^O!V<0Olzo@`Oa^6b)aj`+Qo~atARYzrXoy`Q8X=k>nju;sS|QpXR^?J>6&RjZ zU^tQ)+GU2$Muwge!&YE;1v8uo(IGRW?YLVSxk*h+@igw#bcn8O>N<$-A{ov~<)?9{ zq-oq@HJfUAv)R<#)Vw^y+a!kGB8n_Z-OUW|Of60=Ni9t+OD#{WNZpmnrdC4qLkvKq z3N{3he(@p@qYz^dYaqsRsZ|Ar_vO3HsWr^7R%V!#yUb#y#IO|@KEVt(LrlmFw-Uo< zyUeNQQZF#V=ONZ*Q!heH6^Zbb)a&^yd`-&2G>J;_L~OCXNfsJxKgx0VZi+^U=yP9c zm*nu67D~xQK2Ggpho7WAO?{U7JoQED%hcY~SE;X4-$3jJu{*>b5PL#A4&w0;dqM0C zu@A%(a;a|%4u34f;V-IQ!C{&<<8EnNh_oiHBZ+Bh zQ4PqZ^$=+xF|v7nItMboI1|pc|`H>`+TO)Pmjzayih`T0UB)?6T>6sq zrRnkM%hH#pC#0`PPfSmOI1=J0i1a&f5yUYNFNQc4BH_LS;-$Itlmf!31%%TX;dmM0 z<&6j@l@PW9!dn>OT!@#+2x%5~ORdB7ooV_$mrXB*I3b%}3h{~}8Qzt?n;B-AAq@)B zE;);7{DyXGYIebC`u_BqJi`YhhLee5b6Y&gza$T(pJav)ryof_n%0O- z=JXbbS37ONxH?>eo#`tG_C1X68 z{ww`=`k(Z_>Hq4>>dWgZ>f1n^1MwD!^ow^Z#M>awgLpf{J0Q-7xFA>GHjlAhFh5zZ zE_2mu8RJ43=3bNuzoHMm7iBv zPh&;Iu|6$v<$uMCv@> z4RIC3)e!H2NPo_K5buYWgZMzM{=@>uA?-5tLy6-l%u$~6Ag<%pEaD@~@zGK?9{Fsn zKc6{X08yUwP(O+|){i#dTtAv-*ozNBY2$lk9ZgZJ=pw)FOY1LVk>eq*&(>cKaYKH&#k|;{ZG z6^O4wd=2935Z{3KCd9WOz76r6T>b6>!%qqfzhH(tWrpuHGW@W_uoW2o%nW~l_^!;5 zcI0k;OtJo-`u`Z=zYuq2Gi4CpFAia*GNX_XX4**zKOj+u*)uGo&4?1hj9x;xyNDv4 zGZ&Wm)` za3+$8W@4F|OgvMYNo10lx=bpQ&eUfznPW1?X1Zm%XL@9MW{wlOW_o3MXZmDL$n?$h z%k<9-$egH}ni-TCoEefiDKk`aU*?p|smfetSmyN18JXdk5pDWq&dQvfIVW>&<~-$R z8LET!K%@pY)%RaO+zat*i2ERZ2k{4p`yu`e@mGkyL;M5cL5P1t{13_2J@7}~?o5r)n%90fyH7)&r&V6eephrtPh8wL*yJ{STpgkXrk5Q8C( zij^=VV5oy34MPToV`1nHLr)lvhoLtr{)OQL82Z650EU4u3`U!IFq{O#$*7nG!>KR~ zgW(JqM!;|u%IWFnz;GT67r-zQhS8|F1BNmDB1UFLWkzQ%%8bceoEe)Lm$@W!X=Z%p zvdra~37IQ06El-ClQUB?S7xrtT%DPkxh8XMW?E)?2AS(JGcq$X*JoyB8ZtLzZp_Ti z+?2UFGbeLPW^U%z%x#%@ncFjWWaeiUWEN%?W$w%@&Me6+%`D3-&#cJYmC0sSX70|c z%B;@Zlesr@U*`TyF7rTUO=fN8!OXhM`pkyRLz#zR7z+bnm=8k^hOIEX1;bt#{zm)u zXzxP%dbA&m_7|f4RcL<;+Go-JQM7*v?RTU7esrirhojKJj}FJ8!%66HAv#=%4s+09 zB|1Eg4zHraC+P4SIx5l8gpLt(JRTiSN5`?~I2|4DK*xL0aWgu;hK`@2<8SCBppzM$ zYS5`SI-P+|m!MMvIxR-0_2~30I=zQZ`_SoMbZ(E%9(2y2^B{CSADyp6=bO>_E_8kv zonJ)fkI;EPx>TZz8C|02(hFUNq03lwnLfS$+y9Tf_kfS0YWw~-jnIVb%cqIh!orgJL|uL1 zysFwldu`={d5M~a`a)M#gL}b@!k{Bo?g*3=#^zMiC1$c83oY{(6nbzOQopEbR>Q$@ zKc>e0ae2X{7RJ3`W>u}du4-YzGjD#Oh5Zy+kXVoiS63`a)TO7mMNRS3@&ZrGQVb^Q zPjn?3V)N^&8WQOVJf|k`d3nJ@S^}2&^Q)^WD;lb5Yw8QjDr;vZhE&X-UudhXX^^YV zo>-WuuAQH#D@3*%X4Tfst1qky&#A3R#H!{kz^`iShRj$0Qh4CQF}pAQbM-Ul7RHv; zHzej2`m1KtRn#phbkgq&YX;orTdX>GVrtnpHLD_$i!a;VeJ5d+_@4#F6HY~l)K3CKFuDswbEv^5z>I~`r^9E_EFk4fF1!EJc zYG&3h`sc0kwOWcFT5Mbx$Y3{+m{(i3B)yvUsR{g4Uf|TKDf1>N@n|Ne`TOukHTIud zWa$w*yE_z+(k%V2YTUn;7li-&oU>lUhN`hAW>wWB3Pba4u%Y-Ny@vi$)A_wcWzf>` z*qZ6BigVPs|12-Cwx|rOV+37kxh`(6#{74AfxksDqhaUGtF1X;1k=+vN=ZYXRbCKl zVH(Zf&gn^UYEn5ZE{=L1#2P9Z7SzL%r>7yQY2=j`OmA6n*On)PI#UKm&O}4y9D7AWMS3zL)nxSL1-=%R zhBb|Bz2X%!s+(#3acUBLi*Fq^+72(Mu20zJRMgZYs?&>MQqwS$7u>EDqa~fKGDHo< z4mm_=`oMobNI5VlO&^&QaWCDBVQZUC#4#=EX|-98oP;I41%hhq z-CBH)tM>j-_jpWApht_1J*y#=ph9cKVQ4B-lj>DoFh-*(gE0vkO-CITd%!Vd-pqsM z8^u%A`1-W?4qzh%bl^(eSQpf%*Z&MPjeg|?w*Ml}>d;ml=`=ftDxR%IJ)p${5N5tT z7zCzgyIPI=xRwv1n!0dLlVMFy=TtSF6UqxB|3&r8V-pt4_UC&lYirmHw+i3u6Ajv^ zvwp}a^|dtzxAj6bp%Yu&*3m=_y6HlX^1ZnZ`*byp!Q}Os%(#>EU<)GaCV=<-pQMD+pBRx$Sn%*)`s%d#zY*X2!?f_otDLkvD;43eftTjvq zqojkZ_JQGQ(@M9aW;T{X4zbi-yj4vyaO5h`qb%U17jK)IR;a~k9o+pLe){sJnpUL6 zgJ%rS53__{{GOUXtVQ=JtU#=?E|I9QRn#o3sBeChxKmA{q(uWzZJDasRjSX_s3#ne zrU=$n9cJwRm73PX7E^uTo>6S{zkW_9ZLgZ-cfl^1N#m_4Z9 z%lMh#k?571dji<>faBmNLP7SJ^57?dMo}%s-2cl5TTRPChkvGtg{8x<8_7LlytcM_ zM(yHeo@ZK0(Bkv)5VfWO<!RywJjU1``;Lsq8oL?08+#ag8haUg8~Ygh8vBuc z9_edHUrYM=q(7DPb)>H+eFNzikbYsxC_5U^4KSY2cN<(S3@{GHz9ao2b>ESG30y|v zFtNd;Kf7(;(UISGWIP%Bj*QrLvRK`BWHe#lQM;&adAq0Ko-gZtxaZ6I`Ji`qj83B) zJCBSm(w~+zdPskIW;>6J0b^L+d1MT+ok#jJRvRNm>|;5T^k=2*sg&O_H?#u#HIi#>2&+g{d^wFf3;p6UJG_*~U4>D&r}}xyEWEA~=WiOG$q& z>6einduf)Feg)~zC;bJazc6L2Rkp(!>pQF(xdT`(Vpy)!u)LUg!06hGad|}>m#x6% zGR7rZQX}5LP8u&G{Uu4`6{Np3Lo%;6UZ;?G ztxV=+*x+Wo0h@jGm#2ZL@A|h!R??_=>NCoo`t+*~6G{t`GBQtn#ygDvG2Uss%ecXK zxA7k1y~g{D_mloA(qB#bYe;`B>8~UG^`yUn^f!|JCeq)WGOC{Xj1TK~8XpCW%u}EK z77fPLl=~g&Z)Gsv)&^rMz{p(n8DA!SQiGAX>dQYzcL5V+7d8gu%K;SMHZoUz#&<}+ zCTV<+^lLLjafgw)>ND=dhIKto1)Q_m_z5(@88VIA-9mTP2vW&B1ljk{&jcsqmf z6Nd2mG=#Mv-y8pAF#cft(fE^bzwu||FUDVuzZriw{z3XXNdF(w-%0wrNWX#fca#1e z(%(yZ?A5zJW&BIAjHYbG`GBb%gAoT9vM+U zO*Ya$PWmTE|0Lo@qX# zYNM%E?xbH~RMj!6a2(>lk6_5!p|QBgbeh8A5}C!<4iicX(rCJnu}G$KOiNAYnwFW) zGc7l*Fr9D0u<&)#zd`ypN&gn<-zGiG`@5uvd4HeuAEZnxRTeMp-*}Q%)=Z6cXg?Y}j zo#FVr=>^k^rmd!zOfQ>WF}-TqW_peEUy%Mw(tkzzuSvg~^xu$v59#-kejn+-O_^R- zaeUkKPKPUjk`KY!u-5TN{q8fFnHiB~56U?=>9v07ui_KF=_b{s-zX zO}S!Gx*{-q%{pdWe@P3j1t~Ch1D9sKnKScd!E7*#X32cC`55!D zr2mujcx~lx;&jAi5tmI|4sp4}Wty|7STn8-punVZXRBLOa8K-I`%_ibHCCwJ% zI%h_u*~5&CSiiVjinBy;PVF_IcqSDCL>NW4ZSu|G&G zI0ghG(7#8WT9BK~DMsQg=A?PGd5w9kd7XK^`Bw97=G%!INZfJ6fv*#Y8${fR#GOPO z&>BKqVakld*x8qPL+&N!d+_}}M&eM-FcwkPDa4IoB#vz(u@y*sl99NDxM3QJ&oIOI zY@cV$&z{(hxZ$kB#Ba-HA#Er}l#y8AwE4J}1**1=1 zHtt$c^uj`oi{Tc zE!{0R*8zRCrKilJ4|5YsA2y}o{AobyJAKv9eC$7lke1^tgJdWzC&*BS4i{df(lXR? zGN`l+vkbQsSw>h!T1Ht$TgF(%TE-CjJP;)CB&5yH-We^;wBO|DPgqh^rzFz3^P(s)>W` zts$;9WjR-+aYeg*#}CvEu&iV>YHt6ydNzdYWM>`s;llvL6Q}w8v)~wq zwU(Q^`I(5Tqx>bx6*!h?t-aoI8^aMCH6$$W496!eTP#mmp0+$=dDilr z<$22smKTXToj44cVVln)?rh>3i6i2G=~Cj(O<7)2aonaF$2S;`%d{?gd6RK$JMXYH zjN>Pa#!rbmPwTOFfyR6b`)U_stKrK3Ssxtev-eo`F&6g{w<2lzmN+=?%ZSAvEk7%! zaldRDFJOJ{uX3M#VH#EiXJ}ykWzCXVwBlVauz1noLaAY_`Bn}vTH9MYSUXxfSvy;g zvUag{wH8=m?k^$kQsOQn?sDR;AZ`_LR}yy>aaR*}P0GqEFj^%AMr$_)qjuCG*L2h& z*XI4N6=1ZU02r;9X=+CuS_jK8_U@K%=`EAkei!4hJr2ClntFtF6kxQDB<_Z!bu@7q z9(HIw*=m$wv=+-S-UO`rzsz9lnC>K6OUrI`DJVK+6mQ8SOu$;kPz+i_*042Vjap;Y zxV6MuYQ^|)HF0Z*TT9$J;?@%f`+6I3FzzYh?nqfDswhrXo?BZh7>b(fKMuzoj=(?~ zz4U!;z4VdqrLDCL#rec(p8u@%GKx3{)`FQ#b~nsq*yR9-r&-TnAfm6^khG$&%ka2E zD_LdVeH*Rt-8YB0d(hWf&trY^;+w7*6Xb|SZ}o6L>xv34-&VDxQB>)n7BuXdz84xh}%ru<0YfXFUl-F!>D?hu?VMu|9)!SUYopFw_D#-SbRff@%h7q(pY@ox{I;+ zf%QY{4(m?qN7j$6pIAS&erElgI1CuK6892uFB6A#s#l4_I@N2$Z71&al=Tah#oe8L zgR}Ml)_sh{H#8RCqMX_A-43hxUK@+8z~Y~b#lMJqQ)SVHGaaz~wzHlI+ix+6R<2Df z+S=Rjur6uqK-}9&8(-MODJLOHY0N2kH4Vr4tp)=ehS zcC1X|`{0>(yDBAkk`q}#12G|DLjX7L*s zINKy<7Wbr4r5}8k24lHxh5{pQ2~1q}9VV0(WR9(#u~=n0#WvSgZJTGSvDMn<+fKFB z5%(Q&-xK!(aX%7=8T@|YekSf0;(jIWx0J0xWpT06Mcd9`EdH*s_@~xI^KIuJw!*x{ zh7;M7whM{-Lqic~J75y61By8Run9#RN2j&)mA0!HikNr)m9$+$+}|0Zc!TX`1;v{f zioA|Nl>~}>RyvC9wMQ_v^|sp;6mMfF^6cotLxs{ZxWV=?L-B6gJ+^yo_u1~ZJz(2t zd(gJY1~-*?#J3|ppZNB~cObqa@tuh8O#D&AcS+eEQBizcMe!-1$ZJO*@;LfXnYZv_ zn^kNDtN0p2aXaza(TBD-f#Sd=dEI+iPSR6H4D6P&{kGWI*TmunwjGSc4~gfJww=Uh zc=)01Q`;_3W%~?0G%v6o+V%z37I{N+Ym2$-G_dyAzExPKQ1%FXdh%BEE`7qNwQ%)9$4jH39Pd5g!^Ap7Zode zksV7%ctOiPQYLXw20_N#T_Dk3Y&Y6XcC+1Lx7uxXyWL@T5`Pl$0BH#Eg~Sgfei-q? zi7z641o0zNcDG8RUs+hRhZ%`Lk9`q8MqB0P+m1kNg$~+2je%HB{Adlt836Gx&!z2E z_PGqhQ-~j%v{w^9E<+6G+v^n!>tqa122&km4AW=O8iq^kSU6%Bo-Sj^PC)#hf}CT& zh+(+Yey)9){XF|}`wIK{_6zJ6+E)^9BHm2Ag?KCRHsbBXJBSCKF5=xO`^74Tmlx^S z^x1wD!%#Z`k@sOYqda})!)^Ak73|?!hT%HmwG$BSx5*gxE6nTOuaNc3I44`a9{vKrEN+om zj2tGE7UTu{8;r#l?OW|H*`X&HkEwyZv?IW5maaFCo5^_zA?95kHamNyJYk zeoD%YgWBcJ`CVn8X#bG0sGWhx;|xS~pxCx6qBTt7ZpPv_#81;q;y%_lTXHXDVl!tP z`z2owu(;p;3uEzT;-@F=zY?F}If(W@9Xf@@zhxF@fT}KRSuywML-oy$c8(4*h>rF$ zh-^c|{}iOF<5+;`C~)W;n>=;+n?YwjA|07pLtqP8J|$2o}Wu&tAI(~H`y;*qzCj$t6tfw7XdA;K|ICh^!u z^DW0d${5TKDc2?v9pfE%dY5z*6JMWnpvTMbC`5BOH#{OQD>K|EqOi}F&57yetFVy9`P$O8!9?3a9qS#ypXYYJ`Ce($Hk0A zytkLWz^y;2zsBM!2Ud<4i&x1ku4F7;EVFpQAz8f9aT{atCdbW=TO3KpYR4MKTE{xa zdI!b>7ZZO8@s|>R8S$4Be+BWYh`*BftBAik<+xpC@lIvh;<$&gc#Xzl(|!p4mNph! zfyKuei%$@Lt;XV0VA1h();K2OuWOtyU$DbF>q?D}t&W!&jxP~^L(=gI@fmK2aBO$T zPw_T7@DvXnxoCww-J9k@hRf(ApSoo$9F1>KbhWf{EUA3R|eyq z8jN`1A7he@te<|cjm9HSqca~gI@=R}mrA3v6KHgHb{++FC4K|(n5E!)4>m3?E4ZfM zCbh+#2B!ohog(q~C7n3_=>E(sq_ew|ZSr>ZU>5QLW+Ba9wt2BjGYgCbi?qZBI++)M z+%3-IWg<6$$V0uwr3EQ;jsua-q0V8>;m#uG2vgb^7f{uzzP z5)hf!oh^3{#4Gem)%EUnYA@jK!(MKbLft6aRdMELJ+%!R*eNj73b+=d5lf3^supIUlNgSRoQs`HoToWYcb?%q z(|MNjY$pbZFzBxmzm53Uh~G{;=Gbo#|0eNo5&w3|d5((Xc}j2Xynx~Oj)voVO^b{> z+GuPA8n0nAUQ7JD8jUv`qPNx>dW~}(V-Y>x`$;Eyybm&DG3C6Iv3Lh#@k4p!_%?g+ za&t3wQA_GR=SGD?*imq}^MCHAosT-7V;DZ>-0XbZ`GoUH=N9Kv&ZnKvIG-i{W8yy{ z{!`*VBmQ&ZcM<;u@m~`E74cuEoX@KmzSQZrt|!7OZetkk)-c@5Hb&%{SU>$k8;7mH z;SR>(PU64OIK&?Bwa!oTElkAkVUub3ihkOr0rIsIE}4?f-Nf%pI`(KtU_xi)pvu3;{C zWlFk+laP~ijUXX6GaOxGT=L=U8(lb@eGUnEuybAGY^kw0jYbVCi_0#f=&~^sh5QVH zcwHroM4!v=3b=x0*KWNM6|J>fjA!^>Xs{C*vzebIW;mCxt1^p7n6YNX(UJ) zLU@*oWSi(}lp#DCM7fp%LgAP+2=zI;wbWL)E>t+YK<2R9VM1v^E_2<$IK13-g=>}T zO4n7ct6kT)u614Kx}Jm{B=jVq7YV&d=tDwZ68e$QpM(J<3{1IhR5?tdi?+Zbu45b? zr*U|K+(omO_k|&CAhrUC_c0LfC*gPv#0LT5$QOE9M!tY0@2&&c79CvkLkBG4X4ex8 z#>Yt*lyp5w!igEe_>Aj$1;*!O7*9e^>teGO5(cN!SRiR=z3SSo(D<56W8vX~X<^=R zeadir*Y%$3eb)!B4_!N4J6#{SK6ZUV!Y~qG%!^2XF&|07C=y1KFouM&B#cYBK2vf0 zvil7=mB8^EhU3W^j>VL}3%lGIj@C9DTLH)47>>V_FkZv)FW@-9(9O?89TV)8RQcM3 zqdU)yli8E*b|e^+?)D^@GQ-i`+1(XfxsSr!MKFWN)$Rh!T?9)ra~J(lFR5g?MfWi> zjqamm8f~zR?gC~}EolsEL3+6d0Y-OkcOQ3OcRzQ3_W<`m_i^sy-6xRXAi+t3iv%|b z9umAH_(<@R5FjC#a%0NEzTAaMAMGw;ForZ3qfLGEgfllx7+*R&V+;iR4?s@JScddKA`&1GpkuaHr zDI`oKVHyeLBupovf`l0)RHoeZDvyg)9#3aH&eV9E)x_f|Z9KLDk8tFjbYDP1LgVow z@R)BY_>+lErQz0Fz8ASMY3*IGc zeh;I2t@~Dm#Pu?Xb2A8Xr+X6v@h7*N{+4!h90I zWgQ9iBs7q)fP{r9_d_a(k0}qP-A^(QwWAM&CE9~&;jA_gTLHvZ8Hn3R(2hQEzYY)& zIeBrv=l*~}2upcd()}R`86JG#{@DGQ0^z4JglDj>b{Fevn|UhT*{oT&-R`{#hkIlW z&pu2jEy$1VzZr)=x%az&cK_o3)%~0MclRIeKiz+kKqQ<)!cr2>C1Du}=aI0SgcT&5 zPr?N$k51vxldBj+PkYAUg_=RUsL3E+-p1jP=g=d9LyttlO4T5Gj%6M6(oM6#2-c#%`dQ2X($KtViY#zG@BSo0;t4M$uzlMZsNw|)L z>q)qQgd0h?DdlmgEcz6i=m{|vZ`N2$Hrd2=Z7j9|i&Ghk7%}1C75NYrPX$=)6zLRY zqMX5$Geo%_U~!J;6vko|39FNyxg@N~ki}Y$?4oI-=Tw=+wVVH%WMlgttj}C*?g>VbR-@ zyPECo_V#5gzN@kLK6~^h@9h?Lwy}8RS@aGCi{4=*yr;709RU`(JC!fW>)!N#6N}!H zy~SYBJD!9Ol3pVTA7;j)*XnhEE3b{Qh~0>DR&!5)#XRN}^pITnyg`Me{Jx6C`yJIOoQJH^JQGH2&C6;hh ze-XV8kVxL8j6}>t_a(jOl91t^2=59ndy?lppON?-BhkAOBnsa*N1{H*t{KM5y;mwQ zu99J7dm_9m8H_^uRthc5_1^Ui#v8mhdT;XH?7hXC^se@<@vil*BVj)YKa&7!{woQ; zk?=bSe~|De34f9BcglOK3gaCeR6@_Fm5J; zwk5&~ci!+L-zmaG@FS18i+nvmH+kJkG>qtVcw(TD?u&P2#Vn#NDOdl-$MdO!1i?%n16!uzH7 zEAQ9d-QI7=(2)$C$k3S#N0Ffm8M>08fDC#vaAe?9-n}Y~->ar^Kci7lO`}27OrxP& z8;wVvMqe&y^yQJkpqfTsd(fDBX)nA92v<6I5fG1~CeW-K1Bv3MezNgHs^0U3t1!Pp8g`WTFUGMu2n7y^vGaIXuQ$S{c7 zKcZam08sNm=bPZ0$Z#wp!%0csBr;%cLq<4G^RXv+zH)}+5E;iA49CLea2(dP;0q1N zDqpn%xj{HJJcY(JtMUMdpZmUGAnqbVJn8$A3?&(Y_>B)9 zzOkv>w-*$Wp%i03AC7Fs*l$7_R{EUdG#K~$epO)nMTT+W;eu&l{`PkSjeea!%b)Gf z@#p&U{O$bt{`US3WSC5bDP)*RhG}FdC&P3yRFGi?87j#zGv)83(CF`~3>p1AqcNe; zIJ;@cSlveBk*Cq$2Q>OIc7h)<`N@la0BFqX-r)`=_UaWD8RcsejsBDTLqMY+{nVVK zzmN=7nbGJk@-sh8{t?V9p2Ezce>Cf(=Qd*&3)ZS!`HTHH1P&ucze#3s9t@*@H0z+} zrV*?Kar&dWL3j9Fez)J__xgQ)zdzs)`a}M(AM>SJGR!B#sbr`lLp>Q9$gqG63(2sE z42#LIp7Y@Ji6g#gw zo?>G$@Mi`udzO7*Imo}zznJlh20t_DUqXhnGUWG6f1_+o{b$S8lF&Qo)!=+@nEag|d4EXPC zH$LZn+&Ik3fZ=lO#=&yfCzRET4REjd-*?;mf8btVZU+2Mkl_mLUSMtp+C|&NnAm2^ ztPhmy0bBl}|0Q-WY$d~$N&m}axGKYY;Whso%$9Fww)|>l%iASj%d zvE<0aJThDh65Azk`ykLE=KlUq{d*aSpZP!c@A7})|I+`J|7-tl|2O_UWVoITH;~~* zGTcOlo5_GddXfyQ$*_hDYg7JxsuBO8%K-mRAn|8L;yR7Q+t^gga3>@2t~L^n{HP+3 z2NDDA$go}|G0*`d20He6CeZPCEY94@4mHFT$5T1=*}YXl0{Q?C7z0>^x;+^X$dJkm z#=y}5*48d66{ujg@d;)d12fq;_sM2#qdxm;4XjfF^Ar}VWfq@e zEV6w`2zLnc7^n}N#aL_zEC?(NED9_RED4+zI6ZJi0291t$nY!~o+HEaWWb|_7s&t{ z{}LHs<6lVy&Q@7ms?50p%NdKWYAn9iH0OG=jm1`A@k++xRb<$vv3RY_;vrAh4BQe} z%}7KCw>=p^2lsl0B;FcGF{U;KZkG+?8<@y<{EW^2a|#X#)!l*n6b|o|IeaUVFb@Tu zW*|NscqH&>;IY8wz~g}@0#63E1fC+pJ7jp54DXQvOCBGP;X^X)Aj3{Fd_;ziQ-Nnx z5MOAwFLynR;>!%gPc#reV{7zS2thynWgCgDK;rw1M6}AM8i_kWVt!s;cP7g2Bv1X> z^?+5}75I{|_yrk0PX@js!>$Zj+!J8_!UKDmRs4ck#r&gT6|?d7*CA2dA5hkz0?Inn zS1^hBN5do{(4kD?-$Awv71RZ@g4w~GU~Vuk*e;kKY#+oj)NV3-Lk0{T_mW{B8NMaM zcVzgU3_pVh6;9VH=dn19F&)#e$q(9Jn|Fe#9_l9Z6qFf5`%0VDu{Kc{VIt; zwhooQw8s!8=3l&hfpTpkF?dpttwRN29DYd#3(4?nW+VoSf@~csD6d2P#z+jx>rlTp zL!!RZmumkUEDkCQQ9)%P>QBHJloz6YKNO5XXE4HGbOqf(PtY6m1^vN5Fc=I4!({lI zL>-A)BxaMCLt-w8c_g+YF`vZtsbEwwi@{Q5g+4e5W>M^*!YFpqR_MioHWpif#W{?{ zDiU$zy1d8~guel-(2ux-iLf@`WxH}cz+!!H0b{X&#Lmg!LK2V4kj2x2XUaWv@C?>N zi(MF1XT!vaUDK%2XTPSgcy4gH+(!q`V|}!!KTIes$VI_x7>gGNF9}{6yexQm@QUE7 z;FZCvf>)EslPHjAAWduS|Ths$gd z2cU}<2e!f33NUV9Fy2jKPYp)+99SE?zg>)p#9nMsN50}Q`bAo6KN5V5;rJ+teUib= zB=*e^$1TBU6da$HaqP#ydXC}PKOM)O9~Z39(tA0$O#$*%8OY-f6HW{AR`6p6a%XtP)vr_Dk!dzQDi4K94eF+Bo%sqk$6Yw zKcPEAcZD{D?hf4(x;J!R=zbDsl9(WI7KyV-#NB|Q@+lX~GSgWD94Jd|Q%eOF*IG^n=lCOC7 zl5@M(-0y_mV?4e~VqG%yK8f`i^0+hfiNfQ@GLH=~av^z%QCyG?&~?7_&?5Foy6k z%Ak=Qtl8{4JK^5pzTh$3hs5Q{a6b|=JdGiITzC+u3LlSUM)74Q0Y>80nt8mI4H{)9rs7R)D7FHMlNpLrNW4ZhkKuBl zc>KVTJDBi98mqj@wQ0~8o)w5sgIpL+@bHmHR=Y^MtSA@?GUqE7# z#MLCOA#p8<>quNrA~J9riMNxON`+UdFkYIsDGzRe!mAjJcW5x)DLcMr-Uh^b+F)!2 z7*{hG(Ki3lU|i3Jjj!ar%0yZBQx^Puv+DsE?+kBXFy2MtUCA)kg*Idep23C34u0vT5r@^RU^;j6LDw$n;Tqg0}41zoxevOg%T=@C$3*i^TTf;AfUk<+# zel@&}L<}4sAQ5)?K@vBS_z;N?llTaUSfzR_72d9r_*U0JBin<-_ZW$rH4>ksTqAYC zgFzCXZ6mQ2Nc@tK_!WtdYb1UH62p7)x`+3)dzwV-V^}I*f5tN7Xbq4b!}}SFKasd4 z8UC5Xr!r*m_b~Gs9{z)M(rl%1b@*>Q3lyJe?g`9Mv((fgc@f3oKqOzr@i}G~|7Pa& znL`mA=@Mc71|nS}1rdFOi|`R4Vu*+lDS|cb7f5`O#H}R0MB>XNzCz-wBm&ddNZg)^ zsQv~bJ$qh1aEWd}g!vl~U)OMai`o-*j4&MEZ^QA(;}~K71|q{qd_%=C!u$>N>>U}^ zv$vT!c_;BrcICPPNBB26O4mi#H8MV81db7`*}a{NV9oBG%y5j@BJ4D|+>H^3Y#QIi z_%GsSi#y_bX=Lg17iq}_B4OD)MnW==9~>^27N#`9PLqpFh?GSpMkYljN2WxkMy5r| zBhyLTLE=slKO*sC5+Q%9CYmN6X9C2@B$avq7_WQgMh zk&6@@SIRi<0asi;!!Z|*3z~PV61gG*SC#0hBUj2S?#m?14Utg7O7GR7xB+O^_tXdu*luh3*IbfA!i<6pjg!QM998ML60S2&2{H zFSOA=PjHCxQ3LRe3MBE#s7R8K8NShDqdjDNquphE4Hz;;dtt~ZiRtuam8c{}`$zFW za7}bTbYS#2l8z?n7?O_tf9#c==&lY~QMTFddcr~{@vdUAApv^Z*v znxf{YC2Eb@qIQyclGKZ&-X!%QsV_9Dn$XoL06m}a-B}wy<5S@bZPY5=(6Z}(dE$<(etAhL@y+1I7vk$!48ikX%tDLNg6}aSdzw( zbaE=Hy1tBFrn1OfUrOUO18!_$(bmRdE3n8sUq;uGRIHg~=J_(;l2e&);jUp1jk5CD zHLqXOs3Lk-^lrxD29iw4=shHvGi33BDD!=pyD|EpY?dvIs)rd>@UZZ&0j@s3Qe*M) zsN(xFD*L{a?1u@Z1$jQod|yUih`t!z8ht7Ha`ctxtI=)I*P`1=a+2gC$xV`nBri!m zlKdnEND7h^N<~%Qm(h1}FUh@BHz3MglBSbXLDGy=OkInL^~}AbAC>`PY%NN{TM_Jw zqy%HJ16vxE+D?vWg$L>}wiXo|M$$}`#TZ+Q!W#8*CblRouS_4<+YviCRtyqj<4Ky8 zj2TIqotasTS!2xeWz5D%oWn?rIawE7)m#@n@I;L(e+*})VCo;kc`EZrVn;{BoXnUW z8pV>>bcSMSY(lIoHZe9SHaRvWHZ?Xa2I>$+4N0{m%_r$plIlpRC#iv?1tcv@#VVBH zVl2U3%??VARWTH`qa&mx%nhr2P_oo^c0_BSxQL;+m?Z7&h}h|}S?pJsyRKg$Gl(5t zP_9j8F?LSuTn6J(l1@v;mXVa<`4O@6V=Ebq7cdyv=JeIEi(nR|Gn+Gu`h3mZVC;&R zvJe%M7ow!IVHsl=$qNRDwx&14*g{n7#@J1?z;xT>v}KJvYEj4edP z9w$jVLL$Z%qGC_wb&oxTg(&GFwkV2g`(4;-l+{-=STDwy&wZv99L2RdDBjHdO2JXtk1l59k9{WN! zC>h&D($&e>mn2===zBfqLS5IKmAcJ27svKA>L|-V(lzA;qZbce%$#=&o}Z|jHF);? z1>*_}>k{*8>l#ee6$@%A=fo2A^;NYs(ZsCc(X+;k8Cf|ZF|uOVP%WizW8dip-Es@! zSDs_UevIvBNyGGCpN#!X(vAO2`VTef8_EmD&#J0UAi2Vl`b1rQ;k>HaLVIoHf_aIW zhWbKRRfBuMjKZKJR_+LtXy1p(d7WQZ+jPtR9naMbS{v8Jv*OwD9FlG#>1L8{At|{w zo)>Qy&yTk!X*Ee}NW%2sF6OOdu9#f(qTRy zuc(`yP~$kv$76|VB$b${mCs*WStD}gI33T#(R-;J4vb4@jh`FwmV4rPou9?DM6`HjpYT+6{NhN zt4cxdr!6SxQorA3-#||Gn(qczUcE@n5 z(|T}Ba1taNh6mDO8aif_-7$2meXwop2*l*HjTmfo3?DXl^jMq2Il?*IW*t8C;Fuz6 zOb@2TgrLL5+MS~Z+eTR(gGY=VI&$zByVW{)_^_cxW5v9&w>*Ec&&AQ9u{`lhZf`Y{2`4u%Y<8>7^^_6v1^BX2s)yzyR4p%fFrKcKoFmw-) zwB>c-Ea7Zj*R0sUbwVTMU8dYEXT;%)RD^ddf9>pllfEW?R{U&sn;hcrhrd54zLb>~ z1D$7*aSU{x&7`y|SZOf~!toI4rH#Zd)e7_=NzXSGD1N!nSWt)}Y0YzG{OSWqUqjN1 zjXtF^uV>NUK+@LcqA!i3Gf?X5A(CEdik^E$t}iX}TjOwqnT*3SzLJcmNP4yL%&Dlq zV8y&dtf5YJ@bz!Qqy^m&e^@7`;&;dIiQgN)FMfagf%wMwgYivqr1u(0SigClq&G-< zlccvudYhzoNP3r~_fqjk;*aW%*A0k29)BYKWPD5fDK;j2pQH~k1jI=2Ly~row3DQd zNctGRI&)%!+yTYxz*$iKZHM2p%0#%jqG48T-MmRv^^WSQ*;O;D;m%Av_!FM`2~~CI z0azDT&=gH+MO{@zO~b!p)A}oT>ry^xsjHk*)qp;2K^@{%f2pMGte96-y`;RraByPG z4O=yHwU(9%TWw8cU7{f|3AVkqe(|v3LxzPHlZd>Ebb?%14a|PYYC3T5D_Pq8lGJ?4)5@d%P3>kPQ;vjlUOvKmGwp zpOW+$NuQInYi)c-d}sWl_{SuDLDH8beMQpO3}ALESSlN;7FIPZiOS=lcvSRtDI??9-6q>L0@OU#xBKqb}%Rn;>~hZWg|4INtW zwSx6--Ggi5-^BOC_mYJ5rEf|4p;6mF68|p#6CV7;zmNYA|B<9`NZLcv-Zg!<#ea_P zpbj8!AIivzHZUzO|42GqS5;ewQkNH;c=!)mD=O#467wtSDjI6*$_q|7{HK*PN-L@t zBqEyAr1;+@InCs`-T0Ec5}e}p2}$3P^nIhRQrCMxwyyVfVY#krNk`%QkUr;)8S|^F z>Kld*eIqM7CpWKMe#f%@3zdeL*uR3&iJ#*A8*1m5^{<`5272`vSD$wa8%@M~i6x1d zGQ#-KYwbJ4>uPHo8nZSO9Mh>YFLdv5-0>%k8a<}(*kXs%<@SVP@v_M!{c9FfSHFH# zm#zhRt}GZ+i_^c7jS;5=W0nTkgc+c+zA?M;=*FChu?3ZtiNwsr%-0QK7wMR86N0fJ za}!JIC*ixAq2$qxxyfT2^BVcmV9Z%t)9_}`UcLKt>D#aWfPwf;tm?D`Qkvzgu9(e| zuqPC=Ut5PiGBecAJWwb9r(aRfnBUm0Q3AI^Ec3xtY)O4XVqS@d#cG8=!tGs77<3{$ z5-RB&i0Pngi;eABRtFF3wq{7-(8dmp9UD8X8D2D^v2){5jfO@Zy?_#$<*O-Nc|q@B z%ob&2Yuvd?IR_glKP6-2SRTbyNny3Jh`z;qrlQOTDq+^nH#${ z7Ob|~8ug7FOSKzf*J5U)=-N8ZOiU4~W>qCXoz(Q#_>%dF1Ai&d6|~##_4xynlqRY{ zeU&NyOvsg4g`2y!2KU`+e-O1Ck{LmWaAaCA7Ff_w0gGv=tE*VDCL9f-@#KGl9;K|T zPUWH?L`f+O=)Ws=^@LzEzs08~PEs3t^~4~4oH7;W^B{a?DqyXihTzToUe{iy*Bz_t zuRB3ETsKe`Mukb`9bM3Le|vxFT5sng@Gb82CaE$NP70sCFD zqz6eqtD}OF-ns{sPkLl?TGC(l;4O{nzmL;xP2~o1ydCWwkLqx2`&9c+I=q>?y(1Qn z;*=#&_IH#Ghd!$*`#j2CMcHpr))|!jSECboZx0;<^@UD?hC$;X6BL0;p()Tboo*=p zJrw^QS_Pd7odGR{RzMd(E1}DvE1;{OYoN!Wx1dj<@1Y-|{m?JaZ_ppmUrMsWy5hSY z;voZcG;}P~9qI}7h6BcsA4n8U@*)Qm71?1R=k}k@w-#p&8IjXcjaF zIvqL_IvXMgWf{H`C!9)MneK7hW3{?zG;kk=v@vZ4{tNXQCJhNeP5 zq^JU_gc8tf2z6I97n%pvLa4{0dI)t_bTM=(bUCyNx(Y%a7F`G30Nn)L0wFI&YoYbf z!_d3XZk=vKI|z9hVTTa!2*fdB3-pOjhpg#Fq7FwIAs>YL8HxHCiTW9d`WcD(894(& z{ftD|k;v1?1<)dB352>DiMkqzx*B;i^bqtqv=>4>j6z$DItD`eqlQ665E30V8X60o z3^^e;eP#@?7XcT0E5YOlsguIVN-Ht|` zj$Q~MkE73l&V|l{kl)ewLQg{PLf`0gW5E5Gj!mgX^uS&0;6N^g6@NMK&Y#+`ysT!IK)4Whfqi3 zhC+yATpTKez~DI4&A7!7;u(khk2?!$giwxgD91RIV;ssc?t17(2=z8D39W(FLAOG; zLn!Aslylq$2=zG*X`kF1azk?=Fnsa@&^tQac+~57BQzB{9l8m66hhq;=R>IPV$?^m z2!WyE0T4c4Y=*3m9dbg5yVwi)A#hV1hQLiR%2$l?72{qiMjaK`Lkl2qTf789n#E^A zV4|2H)L${~@#5vs`4GxijJy`V3Vp598S|h%5Yjh>Ak>=?b!J=%p&pF?flziM%5K~Q zJp?@hJq^78ZG}*79wyG#f&D znASoYp_if0AjDz%5!w&^3jGeD4a{Ak?obb?CxkXJp8ySkPKN9d>e7t5G@~xfs7rGR zGy$3jO@^jI<of7XwoPa)K!74>LEJz7zZHq@C-gbE>) z!G^rs${^(5hWy)*Z`)GnJP37XyAZkvx&%r=xNmGo&xZ7DNY97A`>ugdPTxA{R_J!< z4(Lv36NG&F9)(a3z9*n9(9_Ufoz9QE_yX{KkCze3N#n0hH9YG zp|hYy2zm7{gO)?9pev!PAmqu9{P^#OHbTgUANlYjAAaP+k9_!%5C3b>>(HCf+t9nv z`_PBbP6+iFXb%m7aL)u9pv#~Kpy#0%Ak;+waRd-YU3yPY7)p91B??)IkvK9dtupCpmQNG66z5435IDKu9B!1))5VVrT{gCL(B$2}M(>1B-snBhk2+nf7c>=6LtrYl143QJK7l@iz(Twygm#EqA=FnKZ69|- zUdRsxAutz*osP#Lv{M{qh$GK&K4D=lIB7|@yXoC{uy<|7^E%ZHvIw{$YA#M)T z5kj1$U7!L8?NoXU)D7wZq3%k-Tj@9`08N09ZYkQJv;jgJmZA+y(T1hSe<|``x(r$l zp$w(hLu(C5VeoK+xQkLIebh-(7 zP(IWFLcS*;-xKr@4;i4|&G$%!& zID|T!G#x@7Ce4THp#{(q=yYfWbRmSiO+p<_x&pcdLVHbG2ccdjA-|Izfxy(HCm`f; z(u)wvJn2(t5A-ec1N4(lH~C};Z8~`pgm#;Z^d_GLp)Dq(EhZzK$ z#6JajoC=<&g6FASAr2BC2|5Pq3k`;bLPgLhXe=}yGD1Em2t}Y61P-U30xg10gOI1G zDCg93Ae3<`c$>Nkx(Y&lP6hu{Z-Y|MgV4j!qtIsPS?G1>EePe93I?X3ywgTQ$ip<` zVVVg-olZl$O+z}<2m zAmph6tX7~6Dn5t4gb;7VUg$gMN9bqhHwbCWK;6$c2I>wW?iqcc{?I_E5JLUTKpV`! zeKErZIUx_^gUX=E&@^Z|gnF8>2s#Zy{meKU0y8tf%na1ej4Pm9Ah0@P9ds*nKlC63 zc4nZCW;_L9a(^d9_PK3ZjyLVha2Kqc}}i9A#y50w=V+N^RmguGOu z%_`?ZsG~~MOXY>oMG*2+iTqTey(+JUu7hrXZibQ&@>lr;v{R>>nF9@gQ0AFv|CuPm z%zL5NAk^th)a6XnyOsogiV`=)l^RKBL}s;OC<%F^_0YV#gu zZ~76R@HIct1X-K5qAeYew`myt89*eHnaw=rvk)1Zu0qbHayBhy8#~y=VUF?tyeH6c zvunA5(%gc5H}iHgT{Y8HGjBKZUNe0(OJOdlc(2)F+*h+@WaFlqd8gT4^wR7P4&vQr z|6-rbE(d|}g67w7JvUN@vOK^;Ji$}gV{?0K{suMpfRFiRd1rp5 zJ4;!IeKpT#QxLT9b_=^|QH2+InOAuoZ?t%eckn&7_yK>rg`Knzxu`sy;ey z^&|Ri)eIf9(m|_s^rA2Q&_%0wWN0Nrt2xZWZM1S5t<2wQ6?V|d{H@I2Y8!uYkpJgB ziY{8YlUA3x8U(Ey;my{q@n-9ec(b*RTgNhjkW3JsYuu)-tq~ zp>+v6&{yld?B{p9+eSZaYGLj+gK+n4w&0H2-odlD&$jNfZFOq$9-pDNwqMbJ@6ch} z#<-=nW@u}Mwq0;TZF|xibF`g_+->Dz*oTbbL++*W68|K=Y~at__K z)m>XNv~%a}D)2V7k+0nce2kp!$GPRSbolNb*2xkZ}#4&-%OvBB! zleyg@WNnwhQgq#J8#~#4SjG`g63bbE8*86S9`@b75PNICmF?)Qy}sJ(tGz7k&vKssXVF=QQe4Xo$kyRz zoeL2VJ9VNf!x_a`2g zAn0u0o#pL(CwJpUJKJ^VN<2YTUg0%f=RMqQXLsBAQ*_lig*l`mPiJp-wv)~~*@Lb+ z>#FlXj__9ybh(ZjvC}T@t;-#Fze^b&#@k(<=2@QSCG^&%7VlCQIlBDF&*-d6C%W(} z5kz9QUF^1t?z-r%%LHWZB6F9yxSuWygFw|m*IUs=*SnCT>!ZAixx3cjE#9FH@ADBl z==wQd(vmi`qXY7E^@qEQ^4Gn3;541)0ZavUnw`hjr2D`-) z#{_iPZ4UO^%|5&9uDf@;d$+rHyL-30ce|HIkKHR#leekOd+4yc4!eKC*EGg1yEml; zt&yjDPjuJ4AG+%o%Y(t*&ygGSMLXS zmi{XX9BvzT<2vYcGJ-=~1h6tSN_@NM@w6a;;5<$fMSUw!q}_gS9jC0@q6ea8~Z zcqX!*Q$Y|`hO+28>>>Q~Vfqg9U4=bKW!!SudwjshxPvfv5N6J>Ml_`bt!YO`I^#CN zB5)sJGK6_QY&vctY!)fZ#k^rztRRO%%o}Fju&w-#dBYBKGzj{ctzQlF-mez#B11nJ z`pM9*Egg`d->>wbH*T_D921z#ROIQG$UHJxjvW0~k&7GXX9xYU0R0VkidU$H{sz?GT|Vba^fsU&ZfbzN4ba1Y#mF?ky8|wAB?tz3XW%tl z&rRHdn;Cc)m3fXAsEYRndT*fj2I^?wr+9Cm_Xc`z;J18FV{|r9X9GLZnMlSE%XlW> zwg%2dR|D;8pxYYg-UsSx;A%EwM*~aP&VK&pA5L;Q2qJxRk#a=V;|sp#2g2yjK-@{B zJBb{|NaTo=Bhs6ZdWqCaq+TMIl7$SBd3Zb0o+9-Xxd-n@{=otM|q5CltYFn8KPu}dV`w0O>OG%J|Cj1C_P2}L=(In)rz*X$Joi)Y(QPnCbS!d5%N;Fuv<{CCTmCmbCQ z)$vdr57qHd9S@ats9uJqAm7mW_+EzUc&L0s3()CMoetf{@BGO@PI3nO9_srTb_1ok zh1+ni!yZG&!=9otat-TCKkR>){SO<3H-{}I19vve`@>eUnzgJ)Kf}B`>x13yg$PGBcA1XUg8z1@j3n-JK`I@r4cfW z_=#3@r8~XQ-w690F#!FI7=ybT5l1}pSVlHF9I=W`6tR_U{K+A7IpP?0I6~$Tm$@1Q zBXv3Q9`56Q9;79|BF9KMM#?d=Khv2>GIK~}A@(^k16f9TcjR__g$zY<{$szPH$__`JK%UWeqKDBkjFw@v45KUX818zsyB;miXn980#`~k+=R-c` zGwNfvqh%W1kneC~qkA%*Ec7wvTAt<;WE~^dm{}|!jdU_u#YPI*OfegFMX3)WV))^c@7S(MV`P;Vs#a(t629I z`wG>l&YOIJ-NwohD@Uvxv5oneCg?9#u2>z$>M(W)$rSKU5RAKr*ZH2_Odx|C*07HC z6tNo}j?>||1K9Prqx^+^kJIHiUB>A$PM2}IjMHVDTaA-F?ls<^CiWd?-*I*M0Quv- zL*}@S{7MgGiql`5{^BBuVjPoM!76f*Gj0RsirY*v+c0C?NzQN{8RKLeA0XR!^N+ue z`+0~8JVqtl=6HJ_|0>n+U5)>SZ_(FyJ&(8V@$Hd$d}sP0>-d2TVl1)55l<2+%q5kp zK@e}}@wag&^2B>TzBccnoA{6UjQY5__y*`Iz6;&xNgu-K&j5zuz4%E?WjZrSW)8lW z_+@0X5hF6B=Rm3Cr>RgdEne1@BHc%HMcnCOV$H0{JG(H+e0a*u`Fc<4^QHS>DOM<;l99 zEc4_mK`=!>Q|>~?Qy!%fPw)bAPLXqp?xwuU=h*XS}5Qs!^RcsYPwx<9%e9+K9&dj0{s-;Qgs>=}8~L z2xmAGn9MY$GoMAck*VpdVIAw)$PRX+zp4BAf9}(q<06-XV45t`zQWB<`SX|arFBHo>r!7{R0$!c;b#NAHYgSV&s!9k923>l`$Fzx>tt_DHEP25X4 z9^fIK#?jMjr{j*Mu{i z=MpkZFU57-$j#iwojlG{R7RfZ@=Sk`mwAoXsll7bH(iI*doz_)xY-%EVul%?(T-@w zGLCpAlE^$3kVZO7S&p5~$j3L~|87t)qlE384uV9v6K|k2-buU*_n7D&6ZM(+B(f(~ zMZUy3yw69}qds5p4bA9*Oo@{)Lt+B5CC*|tGA7EHsMAE9Ch9b?7?~1xu!}$Wms6bO z0+)keX23P*d8V8*%OK}WIcGk{8`$&Ax2VMj*ze4Se1~plwxTWV=}2F~iC`e3(e2Dw z;*fo&>@#JbIX4KByq)CjBpoGrJL!I&M;A$7;Ju^4$fcA{mT5CJkpK z<1t`TGIK~}A&betE|b=ww8oW?j!s+>CwBl5f^Sl;;ujH0uRk z;$`$St2TA0%a_>YtZ!+=B39xSXXTQIcam@9DW0JU{$_GjUgdRaU=PW z5TwYOqK_1Pq}Dc(+TzbW2M@pg(ENXcL)d+=V0_figWgugg} zUCj2*?Ay4Ld$^Z!JU~TWKu@#1Gh0uy^)&k}-r-$7#|~zHjqYZ*r6+v|LszqhGl9wY z#%9Yn+r7+oFSFBF!fMuHU$Zyhd!H@;?A`3;7{~dSlR+@&Q|xKZ_xy-G&FR2EqKL-3 zb4D?iam1siIWo+dj*jLmBa0Q}u!eQWFee{(J7){Uczf<0=wq&bhs^E46l9;P-+84d z&y!Tww|RCxZ$JOfbeN<3jh)ZC5(KG_Vt=W1c%P5ZXR0izcA4sXO8u73{E9hKd()S2 zA{dHJQ+1lE(^Q?N>NHip)LHoVK&pOImm*_oA$FO%kKg$deWsq`4CjJi{&n0)X>Oq$ z5AYD>d4?*yh#kzg>-oO9`Sv?smie;GPr`fibuxbyx#(v8Mr4?8m-Dx>on8Ecdzycm zvz+G=SA$?dh- z9Ecef#t?^HFPw}%7iM9n3pY`OcNWULa4+_|P>&0BxKM|SWL+fZqMOj&qC2^pdnt?D zi@v5ccDHB*-d*I~Mc!TH-9_GAG>sW}d(lc(vlbmL(&3^4wqbvZ4&k;IxvfQdTy&B% zoC|_9yG+wrn$FVXNvpuKJdgdQ*`jaybYV2iV=>JE+8yROUHe!263|<#lTC7VqHw#oyA1ANY}9Xoj6HmS?eD zF77}lWLP|pBHYjtH?ZVQe#W=5WGcE`qQfQY$;TZo+0Jk1afu$6=y8c2mz=;(m*_Ix z4C!V_x7T!gP1j@kZI~ndHRMj0J6-N{{iT1v$9&57$eu29y3Fa_=|evvh++uCFhjcC zr_W>^ZZ5rmO_(dagdOZ=ALr0>`jsHa2q9yJj2SoL?lKFzWAz04HmGM`2G+nN4OrYB)M>xZIE^##omX^Xd zuv8~YOLHIh^AP3H$5OYqv1mbRfCZf>c(OYLxJe+HnFr8-%v zlcnP@!%{OWHN(<5L9pyv>}1*9+)Ftg=M8G&-DS10hh-n|F`rSNuV{dMEc5oVPITc{ zdeED`$g|8%EgQ%nWLUPE!$Gjz?8~3y3%U`@VsyFOJuTnI@BGQ%oI#Jv^|<_M5M=2w z>ss7b){T^*ED!K7kMJ12gDlyzK1YXHI?U2v)(`x|FUX(O72RdYndSbohB2D4=r3zL zvq+P=yzHnb**Lw(hfK&Xze_ z-`R3!>nK~+Y`f0xNN42DmN#3s*}mCqnX~20j%Om1naw=rvyc_!u$o+Soo$wEvt;iI zf)%o?coVx{Q5(Bo(VSM;^@{fBYK6B~bf*`6@$L%mu9(DB5=bNoZ?DK=CEi`Jmi6T0 z+gY)Nef*9NR~+PI5crP=E3d(~vhoIWx6-$=(zmkmL7qZ~E8Wn_=c$3-R@OrHmG!8P zov-|wUuZ^4TBC=Rg>0snZOGxj9OQU6=X&ff=N4|~F3M1r7pTgs_*QeOqqiKr<$QoQ zbH3qQzUN20pVJim<>)U*e>pvIXF0md(Ou3|beEILLef~mYV?+q#|E~u6Ze<1mt!2~ zUv#&s4rX5^$0|8i$+5~FSM?^0{tU$3tcqqhqZrFLg#!$k7!Q}nYgdj=Yn8O86M^lD)Km0c#Sux$=lSX4s|iZ8Z)dh!s-6e?L{AkVCT6b8O>DY zG9P(!<;|5hcMZDDl{r_=T>H+o@7%rEcdmWs{=#oPQvd*`%&bPA8 z`|G^FPM7N{@&r$zzjf89!~1-Q4%anAck3GS6Yc0oXY{vD=5+%Z#9(5H!=0|P^L5FX zWt~~pEeL`)+rV zKBGQg@ePac)_QNP&n1r%j^Q@edu#nE&T@gvL9ij<8m>o28}zc_5xl*@+Z(*SK~Ec= z<#}G@Wn|eP%LZ?6=z{JyxRVY0f?(ryJVjla5y4PKFdCh0oWx9$v8Rppw9(CNOk)Y| zY~xzilg}o$ptFsaf*?P{wcLR2@^zQ5yL{c{`#$q!&wmbG<-di#^6OyV`5*HcpYtR3 znm+)yls_0*^JUGKH9rQk<-4JL+46l4`R2@D&I)o+V!od9ci?->*Fpa89N-W-&)0eW zc`gP)ft&?;F3@vI?PJB5#9FNM!g1#cF5v+y9g^AP3n z_9i>pG#ESDWJjAO;=N6FvnidWWU&%&Z(7TG^6|$v>1WenyuHcWo4mcrcd^NiHrdf8 zJKE&FHp#MCmd)PYT%E>*lgLK?34$$dZi^e+Vn|0JFbCK_$=q7GKrlNbemvTJ7)4a`3 z$W_#wmb9Tgo#={NDjLOD?6N2x{T5AO8Y#$El)*CWxG0A;=((tvZOB-(8##;QEIN+9 ziY^C%|42|=3Ym-VMAl+ii_21pCy}@K8LA?8ac$n?ee_g39eXIA#cbxY1sxUZsM!0( zd)Ut(97L9_-raf~H*zz#atC*zr>zxv0`G5qmgjkqH>rgjTkFt}X6SHhYwUSzPwaJT z7~u@ZZnus`pIfIfgCvqU83ZM|D3Pf|rV^P-Uc;Ov&1r?dTVg*Y_EXXo`zdihC4I4< z68kBc#8eW{Nr}H-qK}eHma_u)RFca&bX20Fl3nPiv$+gXnw#^}xg`|X^_8vX#G4mcf+S463wx;4)7lr@%Q$cdGEE{fZ6x@`+Lp4 zw=56fhW5Ihy)`lC-ujqrZwp$}4)g6b-(GL;_4ZzG?~Py}cCa^*RUG7M5bV2!+qsJ} zcx&JNJcnNQ>2%+l)S@=^_=bjj$M@)UUvpa0208ZWcV9nrx^FD8#G&7P)0n|bl9`Qe z_hqvY-R#@KR<^N&zqt?u`)}hBD)KDV(8vA{_yIZgw-15?AMy!bBi{l29O#5j4vZ!S zc@9iqGBO>I=|B=G%w;9II*>~qvK^4^fNTe3JFuNy?BP@p9Q4f}e3+M!<6sZWeQ*}5 z+05@8;4p6g;Bnmk!T#%nZ&t@JANMi}I95&NoGaWY55w~{4-#+pjFHn_Nd7T=(#XHpDYZ}ss#{5iE zS|H02yFb!_A;e<8N7f+Uk%OEIf}_`SJ9klr`>0DjzQ7wt8(@y3qi{1v?d7O>j{18? z&2%(_Ww@E6Ie6pfT6Uo0qdGpS{_nF`^Rp?+sE9_vA3zsdwhUz`Iv5x z)#oc@Ip)@nxvyhC(S+u-qAlh<)|p?KLIR1%dra12`ah=sWBNaq&Qh{)U&rj?nB2$K zlg}n}b*u!l9CKgC%yG;d$9x0F{t1G=s!@l!e8?xvArqbarIWvO@^^^au;0J$=3eaS z@2+&CCw=hV-}}+q-+KGod&k|uaorrZ`{QBmxJI$X>P$zPuS@R z{hYA76FNDelM_AIh1z^(oB3TFDJI^Oul8~=FYA8-8Qjel=K_J7Or z01qSozXOP5Fhe=cMP&Lf;2N4C$A4!2uRFcijyeB3#8LhZf|FljwM<8dnUEYI^Ic6Q25ozm5*=6LT^Yh*mt zhkis5g>UK9Fh(#Ndp@;_Tx2@6o^9-AANF|4Y^RR!7kWA6{!d-t67rtDnLBV7r*(T; z-qQ~u^XW&a$w%nr^fxp_-qY^qbX(l~X}zA7_jFHWJ{^X*+c8 z9!@V{5&Av70v(_BEu7v=2|F;)X?Jq^4-Rsee>ue&&IQ4l>(Kj|TQSd>GTg`gJV+&; z2aa^UU`&rVSnGf}1r2yE_}nV4|_Rv++zJ0rQ+q!S2qcvVf&zu>!k0>zg=R zj5|DQp0n=otlgdc6T3Tmg8#6)vvzmx8g9fLo-@xmcX+N0Wx1bMu%B}uV=w1E=L>$M zDJ?M1xej!qE8Q4_dpjrZxw*)DPTq6=op?^)=QdElX5>Am_j7tb=f=*-dF}|u(D^x? zpSv6c=L2f;A@ZD;=e&N;>*f4H(nv=q7ebil!X23D!oA3T;RoctAom5iFWAEcnJ>tE zp(l25A&jZGj|=YLg10YTkDXt<1%LOV+rC&99bJ5a=Ximtyo#I`-{KwWP#14rwA+jJ zcX2TpEF+7x=;h*ie#f3Jp25%;-P^^hL2yZiOLleXW@NZzwo6aq-AmrRaM=u( zv&mr%=D56p0_^v){a)V2PVD)zJzuux%Lh5aUzqpufB4QW+xg{-TnU0J_ITx5ZlE-` zV(u$;dgWfq@gU`SluGF2N@eWiif*px=8A5vyiN`5<%)i;*vpmo`G`-^)s-*#hHv>E zcYfs;n$eOrv`1%Gy3(Cq^d+1D3__n*hA|SoUeW6nyh0V`nIIID z=2q_DZtkTV4^o~-sl=01<~d%VDzEZ7HF%46sKfhw#HW1Dmwdywe9w>kLNi*@hW2!# zE8XcuU&0x{AcioEk&Gdh@l0e22_!O$+00`BX{581ELO6bwX7$fO%zeW4tBGT-#Nfx zj&YoSImKBna5)G$-B9QnuIDCh;dcDr;|S?FRF(&Lm`A9{6FkkcJkLwKLN%)MCbf8% zx_rnd)Z+`jrXh`J%+EBX1+8gEN4oGU5ey`X=pa-|#!_}&O0H6Jm6EH}H1t+#K8siq zgsyp&+SK8FJ_dvyM*ZC+*G=|& zQy=;vSLy4}Rq1=UkNdIP(leRGY~;GR3c9(uCT}Cx&8yjr{oQPTH+%E8Zn&Gj*;oivla5Tdi6@<#)O$8pM z5>KL!@{38wO_$FKLKWOf1$(LBJ}S763SUsnZ~TEBR5%iZ9x>M=UD3}YJ?RsK9y8lx zW~*qnie{^5wu*xoODy(KabggvBy%O1E6H3*=1MYGTF44=Si`y?^mtvq#4SADkVfo5 z&yVZ*aXmlo%_ln2mwrT`&nLb8q#JnhUdr)c5PEtTdV5-ir>Bq*geq6$1!SoF3e|$p zv%S#uvqSLDJUcQ7J$EN^KUaarc$`G!el86iKBvPf)p?%}(P0%GR@uTnbXet24h5kX zlUYIr%g7EwFTIKGU-Hkru5l9XaZ}jhn3_Lmh9`v9CJY zg3x?%-@;0k-yi--)rRWHS+fw`FoAL-zW<+H(Et*5c**V z_VR;&<_A6fFeL~zeuU@n&otIkWB1v3G5(pxdTOkv#=fba3NNyNY*wR2XMluOI?3{par_1BmVHY>oR_rA#A-92`X3_?A1*-MUIw_u)L_Rwb# zy6oc~``AMtx7F8v`|7gqGuUt67g@*(wz8dF?BzH9M25ac`I~<@8HB>j9d7`PhsQC2$xOvvgu9FIB;*fY%fTSjzck+T zyG5b?dgyP){u$Uw|I=IvLJ=XZ<$ClUQ5IcC$R8npgsvkh@;EQ?3e~8N9Ynm1Jw&vk zJ)Q7YgxnGOjtIk!B1WR`2zeu9jqv?O%w|4%j#x}OvPTqigul>pgq|bhjX1|eQZ&r*dKsfzpq>Z9WUF?e&p?jSU<6lNUwF2B%^!3;(J14j|h zbY>#|K=}vGC6(o@U=_LK;aePd7}*D2;BpX(3~(!va!1-v%bV${G0v zHF%3!)I-;iI*#m$yN>KdUvwNffI$pl7&?#Cb)>A3DY)y%c`P6evqxqkdt^2%*^8Wm zbUEl9nxTV1_B3b{_7Np>R2j-5d(=bdE=tc)dX9RT*N{I-{wVpQJHOhBq+d zh(1gtlU3xR`w<%`W)J(3e}w#g4<|I@2xmCYC9Vdck)^nnN05EwOT0og+{s9}N7~KE zchU7oU5}J^WDE2>QqGZ`=}LEcG8kQt)bYr9EFg_^bUZSPm8`~nkJR}{U5}J?uzCy6zK8c=3%Q^Z=5c0qB42`*l z>$nG9kJ0g%YE%#_D;jp2zBW>;>G(STn?!A;!JO+`--GKc*ZH z@EWqme1N`VycMJC7`GDR)??gyOe^G%`IYYIIA#dL7)cD{h{s*WxSf~`3fN3B+t`WQ zj*&O!58O(O+%bOzq1X`DV&+&k5L+6VV`YxL3*E=whupDp$I2ZmV{A{n8M_kS$+(-* z*|_&lIQ_;oqA@=sZ(IvnBX^wKadO8EW+=mv zH%{I-oyWy7fl0WVxCG>n%i*^mH2yk#OXEMJ17;k*h$8;sJZ@zC)gTlfLg(@BBi?<) zmqpL<4`GJ*XQ;x9m?2*O@vmc!_+OAaUha6g<2%!p?$}Sf{PFU~%O5XqysYulnaOPQ z96z6h$R1zFpV()-p5y;U-uRQ8LGF0DZ$UY^N43?qWDFtk% zm>ujw_9^@Mf5uBeXzHEZgBzLZMyAR+wF2&As=QO5;u++gTATNHpAV6Ds=QO>oht9t zZ;*FtBYr^dQ{&Ow)Zc>8G~e5_%6v*&%rY&Rg)Bz)X-jb*)AHFw5hch!P5xBoZ5jMA8AMjdoF<8!{`YZ}vn*0iG|^3RZehWs-k8O%^dFq*L}K<*j3p5dJt>nUUl z?q!C~XUIO|F#pe>-x-&KkpHL5P@?ZM(YKi>SK_VQj&C!uGH>CVNR&14eLh0wM41z1 zPSkgz854b@iJj<5H)KuJbz)z9r-=iQJyG_=Xnd=QDae_4JP6Ia1ACp>kUmVrE@rxu znZG0ZOxb51zP?C&E`b~-oL|X5GXs z+=iKF-9;J7BJ->VDbFLwJxl+yWSrF>Z_di&L=Z~8n-{4^Tii!-58PUEUj{J}`IFs8 zax7*@jwcD-C(mU*=15*l5&MxnS@vYvlmFo)r#TyhQuLhS?G$-a9>ATX$eB`!CwZD` zxR(@nk>V~=enh`1&1i}5GNnD8a4#v{8HT(mqmeg7-jwmUgA|>oOvC&sGnqv$a?aN0 z?8?~d>@Jvbb~@Y8_w36-XimU2T!-H0+=s5`xQ{s%kbjQ+bL5{R|D0EOof^EwJG_fK znbVHW{EEKk=z5M@nG?Z4WS=t*JI>Gx7X^K>@vS$xZW z^CUEH5W1f?hFEksPv7%Wn2Q^kw}>TVuoN@QTTeclD58YzxRq4dQ*WR&x8lxI@8Lem zA%Cj9rM`xosd`S;b81~a;A8AG)%~Q(m>NcZbetN6e}|+FXB0Y5)p@GUQ+=bUx=vk; zzEky`x(u_Y=CB&KlbXi{+kscPAanUc>$)YLDVm9+|FN^fPXcfBl8zv#YVG>#-|04Mp6|t4y zF~g$69OF2?g*0=d-H+U9a;M3i_B78>g%@xyX|kuuk@h)X(~w5|gluWeXhAmyFdjXp z$(xoyB66q6ohEmh&eP19=5Es5MVh-#+k(E+^qsZ?_mH-i{rrLaX@`Q);%j+~_weT8 zp)5pai_Zk1C1rRK_p+oWx?dvyl8^Wjcd|tOCGs!%fgfp02RidBJ?MqoTq66D6nvjc z^u1&;87yTv`d%XM5?Po0#-AKP&r9^YM9)jE2BGv@u+Q|0Jb|9mpXGU8;uWe<9XFHy z1-edefV)nYH@z`G(*&LS?URt-J_)7E@3&4u>B$t}&5V0^9p6JnZzdpjMhr7xk+rQTdRkyRWDLd&kF5^^v5kWZ+G{L8*W*UOqC|1$ZPwZp9}>q9>x zh-5I)xbtPQFLNKuvRFwjaxdFJKKfp!?`85X`y1X^+VtIQy(Uoqv?d84ci~P$cv7Fz6P?k5dp5SB5m^A|5 zYt}}#vYlP*LFZW~kUvY;S-Q?LL)Q5ql&#b3o4AGBF^As_31z=PO=QoOJzMr{eP@4$ zzO%pN7rdP{tU#uWXCcc_mRB}_mS;BvfW3vp0o9wUBG6F*~VYUn=Nm) zyxH<*yX|bZoqd_BL1;xOu0{S8kKra(G{u`MX0wGeL1<+e>||v<8q$cy{6s4{^DFYN zlz(L(!WfE9SB@rzIO0i1_Lb{#A1gPp6}eaLWH-l9_!Re%qhr765%QZJA;0Mn%ISozbGqR+a^%f%8#&<&z-{Na?VM%t>e|Qt)9X(=95JcCCIyaH~Wx# zwcM-aUaj-h=3MP&*0_l^ZhFnl=zER6*SKrH1rl0wALV!u`PWpS2Hz2eH`nCyR}jk8 zS#A|Rp%rc=*RAC0K3D$S0Ssd#^5@E*JC5|CuYHYovCp-QXpElMHl+ovX-7x8;AYkiMb~RbF$Q_p z#xa4(Ol3NWB(VlL*V+BLr_sYY9jr6sx+U1hx|3YOt>l&BT6CUwFM7^%Cw>bfl&9xB zGvrm`MP9}Xd2djYw=hSZ`^b|!PwqUq^K_l3>%6}BcT1l9dAiP%Jud+{^HP|Lj`MV! zmrf>m$e8Cg@{Xh9JRRqq7ygX|k*-!PU*%p{rF%ws-g*sz#Y zxWf%**szg8He-$r7lY77xi`waQSOcIeB*80!ClC|u_Cf>tcsi)tMewcsl)qxi2K6Gk`FhO% zi1x%_NBKKA7laDRpnJbr5h{?q;Bl(pMhe_WK@HqUK`qQsV1|PF=)a%=-|+)K(g)cK z^j)Cu0&f+>qw|6(OheZN@)s;e#sd8oY+)-q*^ONm{Kh}Hl|tPX%2`;J2avZ=-a>f` zbzNw_LU&U5Jnv%vg&$z%!cVBj7sy=r4d2oTxeN7QC}UwZ-rVGdHdW?R+TwmTCF4Fe zEhdAdtR|mL$iGScP214xrd=H77{~dSQ=ADxoA0Iqm3R_wZI*lUi@c2c-mK%z?qsvP zn`PbnJ^J0;l;*Ue4YF^JLcg1*GM$;oyLk?&$h}$a&2n#E#%78sVLLkCyode#!2x97 ze3ZX}(3YE!bBivw=wr($(y^y47lTmI{m5M8MvC4+_M*Dzyr?01F4A++PyB)ziaODi z?wFydFa0n_Q3`Sw$?Z2OLPfeRTFwe`kiV!1d5dH%lC?~H(K11)|kJz1M(MlK^MjIvHN0g`mKr3 z*0*Uw1PRE!HII$B^{w)6)%jLkZ#{_oTjk&SHz&Bn)gV+-itD(M(zx>y*-NTXoj0kC z+$CVPEG9n`*BQmnLjEqS3 z%*e>d$cT*WEu)k|MkPrlj&q!GoNsE-r@d2n2E0eO%;7C~AKAm(qq}fDhwC|fFhh|)T>fzR!{zsP9>T)EU>*xt%o1!o z{0M(=99@UodAOa2M-YkZ;d&0Ym2f?uNlr?1d`7M_naDym3Q?ANyhCG}(wtVbLFO}^ zu$MEkpON*zN5m#&>#VIy2D!nK{URW;^;lb3X_>>&&xN(Aio0Icq;>f8heU zKYNqg=}#AKO!yZvBQX$d4*Rg!fV({gzWydLs&#RY(1hIa!2%{55v)Q zguD@Yj?i<2oDqxoimzGDR`#Ofh?AV=EIN*e!oDM}avhyV==_|n&&hf&HEBpkMtrCK zE=1V59LRpocKmIKuyfUr^PDcvt>7>^i1bd8uj4%;WsdYcMh-#t$dTwSQqPfkj-1Pv z$R8+`m9-d4_!!%oiI$$7n>|D0K@VlC_0$Y!>&gWbq{ zUgq;MpWnwho(5qTba$a9-u1$C-1EY5VuP?KJBiYFl)j^6kIIdW`1=cCQKhl>s0viV z9inU|ssW8~hp6{xfqO)aLGCEIqvVdVmnfY_={#ya@<+)ZwSn*0i=0t59rY`}a}3#{ zBDq0Q5O&e7FWU7*zxyuQ$;I?!A`98cMP6jRDCKnPb@^ppp&*5@mCN#9mjAN6mu0=&gl4p&HSOp?UxqW2FPO&y z7PAz)zWfbqko)o`4seJg{KirK1okzPv z^l|=0*U_>@pC^jTL~}m~yBda`ujV8VzJsd;(DT)z6z6ryp!citUTs7Zn(`hk(fL)K zUv>YhvR~~=cXV-8&a3*odNl~U_9DKSYc2SgImmqNdwxXrYy0^fU0?eTU0?J2<(jQr zbBAj;xy@bN;o2jf1Yt4m5mOMkW8{vJJEj~Jd4np*A0vNE8#>YjIb(Dj^CA8Dh_QUm z3RdAgV{{y&+{jUb>GAF=Rw$wyvTf`Hg%ExMniOWL(ez#e4`sSazp+b^55vk2u3rG2~1`RtNE7i z_<^7Jg~RwRZ~RU;wsFI5Z^(J$4iC`rjRX>du$yVfK}o#jO&#CV@y*IqqXxBjoBGIn zQ`VcZ`r9F4H+v%Q&Atr4-EZ2$%^?g!{+kQX@6EF~^HzRzaH|hfS%=)Wj`KIVzjX@T z-O}@|o5+7l{#)_bNvy5MCMP9!7@Lj^ltA{_>eQqT4QNCYn$ih*V`YsU%uq%#hVke* z)|O+Ju@fD~>Nr-%vHLm55p*1TjK8q&*lXxI_7=C1H})P6dBRg{!T(Ymb~{8q$rc>b)2ol$sZ?woXl}{a!1BH`n{vyJNmuz5?RPjPKr{2caZarZtpZl z-aGQ%k@t?S@3`L`Te;Hgdyh;&@QIb+LLiTt)$9KV5@xA$w z{^&h^Eb_<8A1`mbtnrIj!V11&4c;@}cH$3lhI3rt64At9+wry%e;2vq9|d9e(vpEp zWF{*)$W31C=3W8hzgL*rbY(Kmymt&e+|P#hx!;0;*vNhT-`D?r`R`9>9`OZ z|C;4&W*a-$%^v(dyKg7=WxsDH_hY%k1LXEMS;G8Hmaqr zfu0|D#|I7ROgBD2&ky=CfI)o1Fh(+lx#;@ALKY+MgJrB_6*_;go{h-=;3(IFu!rez z=0n?jIGm;IC4$F6*rPC#W9yGnV2HvPJ=)24==sra{D+Po#iHX!_jt$?bo?kO2zwmj z1yZ5w$Fe>yfL%Pci^s1~0(XC02H781{-6BGU))0WC(nbh1brtsD?!%@Y4L6P z8zW%}cAX%9g1iZ`Cg?dq&j~fCNge7UdqP)qoG^mXj6>dp$xKD=1i2IBPSAORt`l^f zu$ArDb%I?d=sUr#6MkYpzaW3Y#USiyz^gd(X&+|ej!*w3J_t+9Kn`pr(N+@mpQ!W1 zvQ$9+MEMh|Q5}0vY(g_y@IGxAg6xS?n9fY*B6p(q@wY_667`)ZZ=$S;KcnZwBiKsf zALu#p9M{qDGaWzE@w1e?NIG=W*ZL~tJcKffG= z`8yk7NwWL98e#wcyBbN(O3I6^B-u)m_em;;zLRQUyGgPpHRe6^oTTR@Jty_z6Q(f( z@0q0Mq%T>-5|*)&)ySPBZ_<9`O_DcB-lX3-#$Wu+Nlqbu(t{urWZ@0kGKN+B#o~cNlW$-%+t6|H-Rxm6`}l>^$eUc= zRVIP--C{KUl|lp?^Jq^QQ*)TbehX+wM zlsZmXi7MDfN*$-HjeVzVKu2_)vKzLMQr?udk+L6lozkvTe!@_O^CfboJj2r+?5X8WEqCe>jKxk;PhuLMV>7A0U^$zyi`0ktjXyZf-<-r=QlBM~DCA5n zXX^jwOyqeGdNGXTq#zY(kp0CBl%OF4aOR7kN4n6Ro{U1*X~#1GdDGfK+Ud+d=V|9K5BbyX;2$0ap>)nn z=Nn4bmC3B;5OSxxK`eHXE*@J;uj}+Fkw3ls>CGP7Gf)wU8ic=ri)9X2X2RhRO zxzpQ9`o4@r-t@AjpUqqrvY4glIsF!X!Y5T7uN5$HVQ=jb`3on_Q> zMm=YAhm7u!aV;Cz%r^9&aTneoqwE>4aE2=OuEjb>r8WyH^jpD^qpx1t60N2 z4kPDFx_qe^O&E+jzVsd5QGndQ%HCz;Dpk;+t~1~swq z%)Z6UAMr6mu#?QA8ONvSI(vFR+YQyST`RG<!Z z*10TUH9F2}BUx=E>sH($>(3nE5blumD93P*tPhbptK9xpR47{tQj-RqXOlnMYsi|d z4CT>rHXF}Yows)D9B*=#zSzO(5&o4&LC z$WQF!9CBvYW%iorA-fK;yJPm_#0H@pFOr#T*h!Au*hh|%=s8C@Dk6Ul`E$shL;f6% zX-aci(S~*mV-nMt!EENU5Z_}Co#&7}huk^j&at1v{Kg-g;2-|uG*`J7g#68|P|h@@ zClgu7j_=an-wNf-kFDe^jGQ^;%qeHiTGXK)?;v+h-RFD{yU8hg&X4ge=G;v^W>)v&df6nJ>)rw_sRPbrFaAV=hc5+`SUj5 zJz64vUitI3rz0QIAKyUU!3&skdHx2pM)v&O(Qp1C=r;c-#xsG*Okn}5*u!4-@e7Cf4O#Oa z$4>Igoc}bph{JvJd;k0oc+69t2ccJFensY2ULYm9f2B4(naXDVsAPV(?F_EJ#S1>Z%^f-TW;L3sXW?#LAUB9aHS05sOp)g)V z{zB==h&vR@!Yk;$P!a6Dkb4v=MI+iEdm-5i$zG^8ed*6f=(&(P6q<#O3+cF!tc8}b zf>o?x7xq%Y) z>_ucRau=N!(RmS_7fp$?i^}Wo7lw-FL(Zawd5z*!p&sq&L|1y?O^bero{J7-Fhd!^ zEaWXJZ&7)R%3Jg+zGgWqS*%;x9P!vkF&!6s%JU#pJdEV%y11;xUnW1cQM?dEvF+j|C`B3M zFW!^^%*C0-&yW;^O1NW*T6AFypD~RY%tGfSRuj}A-cYNJ<^}6>cm4Xbs zL{_q+^HQ&&=TfC8i~ObJFC~Aedb~qpbYH4DEg6K|r6%H>Qo1gs=TdX9^HO$RO7>D4 z&~Ygpm)gfK97d*6$M_4IDHTO*5Gt+T(l3yTG}v_MOk_dc(z(cs+@<9#{RVQD)^q9V z)T9n|sgLeU%U=3j`l8#?TXAOT2SKQezRJ{~BcoZ2-pklX8J(BWUm0DO`HB6=Uq=2i zzw$e$u)#9txWFZ@1fjBF$X+%x*~p2FmzBG$t(GlBdE_lCYuN@gq8U0a+X|a0+mpde z<#TjgR>x)MvyiX&nibe~*|qFN*JTf2&t>H;YtLo>;5aAvm;X4;{UB6M&T`(oTpRRI zP6y@OvE0=lRNi}(FFd;!TqYX1D}(hkVFdp%6upxq{3UWUip^ z3VN=f=L)h`u;&Wz(Gp!(Xh#QRuh5n5j7QE2htNgE7b#5(KE_*Al)2*f{D|xo_wzgd zpyP_+L?C}f`76p_@ecQR$P*HI9)v38M(#=_aZaUjyg^mo#8xZGUa2|l>4a`84P-Dw z8O0c6uQUM}D=lLu-{D)V^b>McI>-^^t#pjPkh{_~Zg7j+$XiL?O7d2EOajkH3PNvq zgEwAAzBjty%s1@tjX${?geqsG6nd|$>&mTZM+fYq@&E=Qe`WbA4`(D(u$Rg+`GR?T z$qr<%e3;+(gA>SIS>KgUfj-9X3NRv;)i$ciUscytbzRLJswG3G)iRTfoVZ6dZ&0l&^^v`r?A2tirtfO)(08>?^vBuN zZ-#h* zl%yst>5>1oanb>Ct2p7fzFpD+gbtLwYEzN@=K^(o9} zAz$$|?os_4_VXvQSC_rI?A0TQLg&@5a1VE=q2C%dQo}}S$XY|sHL{X}T-ZyEiZrAN z&1iu)tzOCh-~5(0Pqn*mn*4uJI-E*Vx5L9tWYfocWe6-qOQc z?)cVPyvbXaxkViD+(+*osMsY1=jJqh?q1 zT~qFw`mWiZ(Tqdhn%=6Wo@>fkb1BPM$trfRA05{W$3AMF$3AN6xaKu(5X&8OUQ5@t zWUZBs3}hk;*|F_fxp|rV$X}}l9r+Yz*7}XxL8!Jn*7j}HZc0CfFq~10LFct+GZ*=5 z%U|2~S9=NT*~C`9MgO(G!yD9=z4leEqwm^x(RFQGsqKC0q(t62vewCip6k3yVO~Se zb*fMg9oNxu9Ua%{K`%Z;$8`oWn4yfoF6!vI&OGd*j=Xj3y3W@uN9T1`vljX5*hHP^ zAoO->ocZ>DjU0bO;mYK*~SJt}Uu!fCnW*d60dw}EEa$OzQ)p1=N*Nr2d2k5x&Q=SK* zdSPTk*Y$Ff7kTU1MZH24LFe^K@H+C>YfN8eiVm}8t%q3*6ujl%YNFXT)HITbOa#D~Lc^k;upco}7OL;1x z=LYp@Ngs6FK*tSq++Ya98HJ7;e99!IuoPW4Sc&hVfxHduqQNG%pz{Vh*oFKJPI4~@ zy^|ehzSDsT*wZ^lhz>#xL!==+zDs`(J=D-f8tS^C{0(*8(AFBdL&H+oM?;-9ti{{7 zN5gmM$zWt}D0@TM8|u5^WTrBm#W=g6ybZVFts2VNa1VR=nLjy;jvLxX!w1+$L;GlG zAC2_fNY9N@@*?RdfV_?5Z6t3ac^lbABfl#e>AaC`H*)_*Re6)P$k|ArjrL)ijZ@=} zjT`YH`fmIM^H{(l^xk+Qx^ArN#=35->&EWT_z=Hx6nAKRf`4$2#)(0wiQG-(ZX$P+ zv}8cvP4wMF{wDG_v5_W~sDhkLbljv4^=LqAdN6{~jKh02(Qy+UH~E}d%wawY*^I1B zzGWx7(RUMlH_>+!+iqgpO%5Y}lPf{!-DDKOneX;vF7EiQ@9JIe(ex#Jn@wNl6$(;< z3drA7*G+ZZ)E%1IN>iOSeV6xWiF-8l22F=D5!su{-cF*rlIFZ~SDF`(S@dBwxgIzb%bF(aDCl`4si@eP$A#XEzn^mVKI&W4N_ixsa z#`HnXX8LUQ7x#kDdpU8(_u4ZOeZRMYRjg$_dVlXnbp74|4k7=0^1mnlduKSu1uhZI zwII|yIdV78hI5+dLD$W7-MlbGk-d2}blhCW&70AJ_mQc2N4n6BL5xMe%@?qkrTBf) z{2SIFZ}UxTMegQuHn->IayHj%Yaz)S^4Sp%%WC7XNTJ z2(`>eNh(qq*;`hp9!+VEeYCWXmiE!o9a_3WOW$M5{tRR=LmAGO$lh`tzRQ-*YPo}5 ze9sT)xuyIqo(OIcf9<|;Rd{dT!g70m$E0{Cj! z?c;fX{O#p$pUCqd)FBPF-XRlN$WBfwB72AWG^7d5k-LMp>ChHkchGeQc{_|j&mH9K zFqP@dWH!stbq5`HID|cSILe>sxWm7k;tc1|c?Vs0khQ}Tp7JaRbquiSjyB!V7COF2 zTIBCooOkGtGdu3&EbiDTFTSl#ZRm<`vQsbmpz}_n7>oR!afU-32i@AM7c zpp)#K{^39L-6;}Xce0gE-lx+&Y`U|&ol~Lb&T@9nOjdG`i`UR~XB~HLLNi+MK05B) zfzEW}19aY5*PUhUJb_8rb?0f=b!T_)JO|l3FJKY7k+ZWdyX2+@I_Tn^x~#){bdkAB zEO(H-%L8=RRnJ}Z+%+8;k-w|_UFGjuh@$Ae>+6)E98HnCtFF5`r)w|z@ezX;+p5!{W@I7|5>8^5ieT=_9f2jW{cfJ6y|NZqxbH*?mmOr%)vgouVO9ocbC8W7Pj#d z_R{?zNBEsTh(Y%52|NozJpx`p?jHK?Vb?vpRS$W4$l9Ycy6y1>Rd^Hc*u!Rev_rQ& zK4u8RvFRQ*-Q!axq3a&gnaMZky2m;;Aa9SYe9KOB-eV6xB7cvw*v~DI>z?+}(;a$NpcXpqS)YcuN6)78V+6AIl)b0yJ@wu5 zb7o;LJ(uI`p7QqGg}3S{XU~27!Xf@83LW>fkDgDlk6!lC%RYMPxtE@Mr6VJmDT=(k zVhk&BX0Mna)H^+8X@)oHJp+5{y@(}zjh*z~hWx$t z-CN(i-J$mn{K`@OAN2}`~J#NY`AX(-mmYoAk;4)87W9jT6Ep-C9;x( z+>}P%eie|npS=Ba-meDs(XS5f->(5S-me#O_S0uS@7wQg5bB>DckJJm;pn^nGHj~< zYSyCn{(I1M|9$*|{Qc$c@ApanQ=H)(7r4ZgAT+=m46w%mnaM^@UM4>U@je6Wdw}c% zWE~*qfJVGa3v@i74ejW|P<)32W})K&Iv%i)udwR@D_Dih12!P*09gkd!tcHTzwrmh z`I~={eLy&8c@%^`lJlb~v}YWCPkrQ#KDr)+2Bt#hfv;od17#mrks8!T#{+F-pp6WC z4|f>Yh3@pk9R~Je0PZnx5poZdd!XC{*Ru&*AE@(z@(+}Mp!@^n9VqKSJrC6Lz>8ew zDly1DC^(#OZ?u)mMrX9(Wo<8S$qpEixZ|*yZ00EcV&}u`d{_iJ9~R3U##nzUp<|HHH3 z4Tj4;yf$^w_wXjjJ=|7?d!OOm>506_8Y;fMJR z9S=Xw-<;$$Iv=j<;j#|D&qM5b_*3k9gu9POhU_C!@ghZ#bA&EOe9ks>Fv2^H%!&6H zDf7sVbV2r!AE3LDdLF6gkz*K-{3GQbX(uD+vyiX&niYJ5jgS13fB27Z>|~^!kF@iV zSFq`kvX6Wmghsu9oTJi_k*s7V7kMbo8#G48qjWr~6>VrwC%R%Yqikl>hm2zallTmM zk8<}>vzWs?7O)8UM}3ceN9l32t&XmV_Z#hvMsMJEuA=+Vx*z?3M?q*zKx%AcOnNer z8Fv^{fI<|-9mc#)Y20H>TjU-i_ZYdyc$+bO(fJrVA0z*m8OSlp&)M|=U82iU5y^b>R_BZ zjw?$u`ZJUf_#VfN#XiP;fu6@LU@`KKlYiVMw(>2z(EYd{IE~!nu5*k3pJU_W>}1>% zyv=w!887>IS;xycUdQ8gJiZtuC`B3M9^V-Kj@R#ayBKd5<7FK`kip12Ugq&KkJtBj zJ&)J(cv;6U!KTOC^mtv5U&A^!vKjfuALC{a`ZNR1{In$_amP=8CX$38G$9!&u#*Y8 zpP=svdC8Cb6Xc)Z8=deP6{$=$YEX+hbV2qBA2WpEj6v=R-e$ribUi`d39?RDkDe!N z$4(~fM$Z#|?upyLTTo?y=t9`G0)Pk0`LCWeuml-R^XT~B-ko0ur?#G(|(rYG9; z#Bx-i5-pH(qIaLT2R%&E!6bK_R2T0t=~JdNlP{Qy&L^!#&yzNw=Sg~=R{o_hh*z%RO1wlhcx(jL1LvRb-f49vx5C@njuOu7g~Y8_XaE~cdk$Z~V zQ{O)9rftMz*k>o&1ijryu78@=pJcaL%Ih=@+<& z{GSKpqc+a`+`E3hm4As3LNhY)I+dt`jm)S)eRMse1@h03e?~iOWJVwQVS_V1W(dQW zkL)w_JYxf!`4+ine8(Q_d4{|*WStR76wzGc26~?HGziU1MP76~Q^zxPJo7b5PzoK- ztiT&or760e*%Eu6Dep|XnAwRg=zQh}^g{lbpRtCcICEA;Dq>HwhO>}e{LBFkaReKg zrR!Pp&(ifQTbtz$vo2vDvvfM^0grKyS|7K<_Sv$}mVLIqXIG{g)oF~gXUjXg zE8c3hoU{8ffPsu-20ET?AG6nCAG7UawtdXj^K3oO{(+y^&wt1}Ti)67&X#w!ZOp#H zRbseFEb@Pm7F+(}U7Y#Fe17Bt&x6n$Z!)I}_B5w14QPm+%;`X9~nUon?3xD+;a|cn3KpmN7gyl@m6#0a*v1Td2ULwU>|dJJXgnabv(BM zZ(tvDbv(Bwb*M*sbUn8VwlP=UxwbL)L;9ifxq}#t{B!5>EvIniygbz6117PG1K88N zKk;qO`-cd0Jx~65x}J9fcbIn@`vw*Cyw!YJ=j(a?NXB3<^JlRH`h`znZ^ueGnX$}$S!{2SB~;0x?XUS)0{!q3uIpqO9FB(4DkXll9mi)B0nYZ zo(tbb#|s#0 z!J@HzjrUk|mdjj4_lx9TbRRu04v>Gb{EO{macZ)W6a6pFM*&`?CbBQq_hNl7*7xF$ z$i3Ls7x!Q=@-CKj@l-zN3-r8L&x`fEcr82m9oty^7kXa&AK^rBo{QMbVw+iA=#svPez1ZRG=mrFrtNeT*4hc5J?AGWe&5H_+z*GoP_{w4A+ znTf3|S;}(0VGZlq$ZyELM9)hii6R=gm)zhMPlM1>d6&w%G$WbGK`!#5=cTVxm8R%; zsg9TGcxih&(G?vp?Zt=mX9BujI)!P-yVNe0&S4%pU%H5|kbmh9oZ(pz`r4Ua*QPi2 z^z|nGAcni#=MhhW&@vlYrt4+$FVpohTU+K1%d%o0%XGS|D8+G)Wu<9MTV!7*`!d;= z>3dmU1~8CuxWh92E}M_HS|;lV%k{9r9aogco2>YV;f!J| z&nF};cHf~ z3fo?}j*VW8I->aOxO5Ro8YSjkhT(zB@*vqQJ z{DXb0x`BPHvX52vu}aUY^t>vOq#(39#0%s?-qrb#ceT8$3-cPqDM@L{BLC`U*u?62 zICJ&cAhagnRchl+*2ukP3e%a%Y!fSaE5CCU+1EVAKGr-B zLTi(u@3pCTk(|i8R@SwzUiyBrt&!} z(Dm9i*v49U*V@L~ZS26d*V^{lAK1$ogZve4%WHjxr;}E%w!`6I$vK5 zJ+CiKIpkk2|N6J7PeYoZ`}NKF2)WmP$|Rh#eg?C!ll9(a{Wr+IUe@(;uGjH;9j`yg zVSeK%a<9LNe%I@FLm0`Cb;FCKL*@-KZ;*L|zBlN3gPu3Yx}gF#y`c)a-eA)kY9afE zdNkkzi3`B zpdckEMOn)8CUw#AmPWjb{9EMTBL9}|^rR2{u$wJ|n1$S1Yg zp0~)bW*8h(v;@3MAogk z-rAl{bfFs`&>Ls@tthb*S6s-WEVER?Ere;c7(ss@irUTCjU11w_V~2 zce&3a5_m>Z5Zdk=-Y)xgJKt{S+jYIYGIDRP&Re{TyxV2nuIKG~-rkq~4CG@zWfnT# zuH)?+*vvL`ynQ!&*vme2zWp@1-hK|7-Y)O<%UmS}oo|mN4*9=LPf42L%x@R)6BmQf zj(~hr<8A8Wcgc>%v_jWA^o%Nq3<30 zIf%XNILZIdmUqW>ywwglciiJ4kAu+8lw`rr+3Dx(^mBIVV5bgt>R_jzv-3CnuGo2; zzwvW->Sm{Ic6!I1dfBO$ozB_moSn|usgs@YJmCN5*yYaWL1h+g5iE!0&_IpD>J(jA1<9d-rEdV+OOC%a<%-3Cmc?YSyulEo^5e-|+)K zVI#Y3WcLw%=NNzS5C0KP1n04z-B-AVz3-0Y4)=J-6B0=ZLf?gWfmEa+J(4BfISMPfdpzFQ5-mB}MULqfU?oY2$1n2zZy?+|b zI3{q4%S02y%^>u1S!z&|I@IHH-0SDB_?i`XpP!$R6omG9lYKhd*AAKX+5A46-}e#w z@b>$T^EW4h(0;w`_p|rcr2&mt$ZFQIfz3P#LI+Zi3U6^BJ??$Lh7Sy8C?oLm51hfC z4%pLyi$UlYJ^u0*wRoHQc;{cf!8yOIVOBq@9y&ZVwSR;+dRe3J{pjW zHn_vlUVKP@+~KI7d-N~<;lCjCM;WT~7PYaFKm5!;^z+A7zGYVsI_7&nX5YsOQW%+z z*~PK3jK|%NeTJWT>=IYFhPV0C&->HQ`_s?+)6e_U&pYnzkLN^>$G!D&Kl`|h$44@n zaZJFrj=SISJKW=85c;bz-u18cbfPPJID)tN>kp0xp%eN$p}!Ndp3vV3{hjc$PfX); zW-*6wqLKH6yeDFV(BE}vMsr%B&%eLp5YGAgca8<2f70U)|Kue<`uS%dV{nIm+~J?e z=;WU`?s6Y{`1dW`<==OCkCtp@FF$ht=bg-mpMNqR1t^3!JvodKxYJ2z{a2P6)I|RO z>X8tHPNgId{`*t@`&0h=Q?`4mIIm*^r^-`_D#&w6o>MJw_fxHDM@KrN?^8YKNpIZm z)M|8c>Sho+oq-DI?6i!h7qF9`*v~-@^B@$i z>u}k_OX8agFUK2Hr8+tdmp@$QaOa219o~UH3}6tSpto?nh3hT+Q@-G9cCed0c!%(P z{DQpUwiRw$;c|!n%~h`B&fzu_9!ES6c#Q7DpOF-V&V=zYZ_)+3IJ1^Nv5B+Z_-rW} zVFzdBKP&rL+0TA}>}O>^EBo1Dj70vkwtRL5vzg16EMymQpZ%4iIOps?oJ8km&k%#` zXJtJrXGB0UQt=|`$bj4t#nEjNqkvDR76# ztmGg!?hyG31#yqa#>gEhcck2rdXDT&SGpsAr2LWcN6H&1Yowkd^&B}Ln~q$}5@e73 z9vw%X;9pK5Z{#^HAa|tPk#a}s{JgHu>-zi)q$D+I(f9dGWF{N(pU*`lTA|DH&OE;# z`@8TWuTh^K^k*Q0k^h3uFHB)NdcN=l^Z1f)Si^cYv6bx{CxR$0^Z#>XzTj;x+#x;) zMd><9*HN-Y$r+WCJm@$|$5DkTiri6t7e%$9J)O{Tl&n#`_z;<+WR8+KYA7}lH49mz z=A!SYg?xoAL@i?_tB^nHAo{(S0%u-q#30=9;x0~dmjvwmlI|~sNJAE~qvK0?$xi`F zQI-n4K~>(QEj{VW0GxA4=1apFg}q*~lS_7TN!CkpURupMHlt(zo>J)2PUOC1FPEZ; zLC2SLd`Z?z_j!cOmt?*y^W|jN!)1HEEbHZb==<`k6rmU;ko|HQ%Fz@#FYEELF8n)3 zq031@=!!SGQj0Fge8u;8#m2A5eq|Q=zOn)xUs=lrHkFF@ecU<#XhXo`amxaz<}r z3)|SiZuamaKeHd%qc8A02wg2e9eObn?{oEU?gXK0>9Fr>Imv_U*NPzfHQBGpeyuXq zkpJ3SG^Q!dX+;~_F^ow}L(kV{W82qseQhyI*of@czT*(TbBw<@$tlhd!3}IAMz1j$ zc!{joNK9^Ijj@lISCKiU7&Y+jG42~vm-;lM3C)l>M&_8-*m{iaW4`1E&IO_Cc6hxo z@6ekm*!OjruWx53yV-|bT>pbVIl(`;!*zGKewnLW=N56?4MI24Bm0f~*ys&s-LRD# zCDHkfve?KC`TaXep&RnvkoAUsZ*-&^J@A${`Y@cye8tz;^o>>6%8dq5&Ubk2ig5H@(x%$3f^;cFOZ6_HnB=Z=>^D@1y5i z9q5ewx8%Pyh))>CNX9UZrO172E8pUrTi)i@Pw4#C0d##U5;>fv4D8lmqv+2gvR<2W714P^wQktuE>pD~q%tVX|aKe3;K9N~A4A#dD2{D<6e za>m_3&Nw~CJ>&_A$bBb_yE_?{4wFi}?Ob!1owG1^12r9C_pAji1MtEJEgZ znd4=SKf|*ibkCXh?C@T1X0VArh(YFi`o8ywCqd|b2)nqSo=jvx{`)z}O;L*D4)@DY z9$nvekNcgG`@Y=w<-Y$BgZPA@$ba8H?#p^#&ij6^+_&ZXYgordHnSHyxqlvezJG;l z*zw|3MK;IAa{UARDv6lz3Kd|)&C1`-05A^t83*PjB z?L5qbw|UqWnIGE5L)|}={oxe8U@zU3bG=*e={lcNX|zkDNO|`QH5$Wq&5A}@uQC!!f-}0mQR_4%#Wrc>myko zt!6Fjv4clj+0G7j^F8uEI*ooG=fatfJEMcg?)cc-JdO!MPhP-Ip6LFG?w{!XiLE^; zN^xxDNf~V9NkwW?7u`Q;#Je=3KO-5(1f26k<|i}xg1M|@72A>X$sYD{fJ68`pUCwj zoM`m>#P$;clA+&()TAW?zRLuCC+Ist&k1@?D2uEKvL;li?pU%O?pW66S8-Mx@`hL0#9Y6h%pOOFRK~C^5r#Qno?EmT0Ae5Mj zbY#Rii83eV=4J9z3Rx3tQU@6m^_!^Q#P?`HH*6(w5;l>j-$eZ;>Njy73s{U@CoV_c zL^%`XOtj_1eaM=q>qK2Ax_9Cq97p!Ve~1f0&(fpEXU=>!4EKNb3m1dXb8qoHFNJxH z61vA$vI=Bnv_mr4b)8jkRoJ2fO*6103Z~PVg_M2q&5tZgQKu+zXP0Wh5^JD1>vu zN>Ylll&3azX-;d}(UETSpcj1@&SbvgYgVudS;IE48JWXm4wE@-56Af%S;PM0G-rwA z0vEZ$Rpbx7z^l~9nW35N#2rJAf@I0EQI2ZVpcZv#Oe@;Zo=$Y7I|CWaP)0DCu`FRd zTiA|slF6KGFZo<7?-k>Vg z|JTxehjm@}dmsPS#{mu;q#|zIh#LnELUEwx7BvjTfrFfgB1$N!h~gqqG56Mr_OSXj zEZe(m@3Ou3uyH@S@B3WW+}Bl&$-Se1JGMZXC|7}Wt(9zD$<~$J zK&1sNCL8UQO0jLF^ZXhLDo2xq_p7{?BWSMtB+p>?%GxWxiT29cD}Tn9=&$@8fAMc9 zsB$TGuM$Qz+7eF!{kR;>RoqCGVT>S+bbO;Ki_lqR8TPG`&uR+U&VFv^F3xa24`Sac z=Xiprc@E80v{tcm6|Ggi=39Q?XS{or-?_-&=&#xs`&ONXXI4Fq4XS#_un0ObobkAk zFx!Vs!FFMG4qJ@=F#TaG@D5=c*u)mRL)Z>>;yuD1LU)+%Fx_D<@DjdF*lXwy(;xN= zf1)!ygpI?iQjHokq8ep#dg)~TCu; zQlEy{zIroSkciu;J_cJ?_nhjQt53y^S9jypmymN=}$WHau&x{a&vq8#1T@8l_- z#m3cNMr-vqcpJ^tHCNYM{WJdJ-%wCPYmESV*9fCJ?x03(wAZLd1LDzH!;Uphymtyal>#=do61Jkhrv93TILZl5a}zi747zK+%Ln}ToX_!H zYJP*gYuY(NYlO}Soe?&UXhaj56GK<*9HBeHz7bb)71Pifk;z;%M`(`F9AW1OJ4a}Z zaL*CjxQ?Cd#=A%C;{f_2>=5xzD5w>}GiwcDKHIs4=lP1C`3*N->#tBy+upS!sDu96 z`fEoKO~IxT69{yKx0$p$>L&U5?} z3hFkXC#ht!iUQnt-L-7S)^*F-i=FEp<|wyv2X}KX|Kma2cU|{U_Zz(9ck-Gt&ut-+t8j)*f`S0kv5Lh9XXcS%)_^gv~i@?$YrcRbEM`-&5`SH6OsGS z8tEn??HzfXQ{2E!xP{2u&>#6C_Ps0;&%EqPR^uHndxQ`9Clu7HN;Pa>uNG0XpcOW* z=SJ#vq%-}voPi7`h2hM>ZPd#nAJ3_$xn2<)ap(2iNxhTktf#Zy?c9Tn>)E*8gZO^+ z+)F*(^?u|RY+UamTI*jzB{bL9Twinj7~DgBt@UkPzXSHJ-<5dWLHz{!(w{VR)_1e@ zAL8Rs&>$S|*x(ATrkGO7aN`a3VDAPuax*q=a3}g3=x^{iPw^}-@G|H50o_pnRq&iB zHxgBc%W&UO+N0Xx8%6a&V^k9Mjk0gl2u5-h^C-YgMAF-7gqF=(k z(XaC+x})7nBRA2gCbe<*jkGpuNMkfN(%eXMBYQWpb0a(Zdy#@hgBZdv+(4sIjA1<5 z8%-hy`!@2;8+m4(SiUjWl*6jkPzvga7duPx3U+;YJ#JhsNHa@rPXC zGrr^-+<%iAXm8S#7PO*0zD<)(*u2T*=x;Kb3FvH+#x$lg3vEr7aV@*CaT6Oiv2l~5 zoZvJ!aSOL|7h0QWZKAb_)+Vp;8s5FhJG_VXCLi-jC}?^qI-3q=4kg&2>8t!43YtZt zxmg14q?z_+0~pSDCUPZLp}(2_W;4mezpt77o8_{SYgmJKYIYFq%{;5wo%lY@Y~Ji4 z&hjXJkIl~WA)oREU-JV$@hkqEX8R@gFg>q z9>l&e=Xe75660QCUPNz>;t*!nI1+6coDmHFyBchc5(YHQ=RHg0RhL zm(ktc&h72o{=esZhu>m*_uc;2P!Q{uW3|TWjMW+IMq=G|tbJqK(w^S9l~~=eZX(vc zvG$F%Z>-kX`7AEIi6xSLn`k&FBj3gX;IT!6jf>Y+cbA&u}3am|RMGu`Nc_lWDmBxa#KPJ5j8xEz*~ z$0|1A9pda8=QiSwpf%3UaW`=bxA8E~;Wpwv!EMC3jX1XvXXiLO`}>iCxIg(j6m$%s zw__C1xQmYNqNAJcX!DLX@96zIYVX*IF4&@@&W`r%cssB0S19PzoXeSt=1%L_fc8$C z*@>+?9p)Hz?xeqy{!aJuKOW){9^(lvpu5wr{DJ3mwsq%9R3#kko$cJY9Ualw+3&ow zeLMFhkt9ZQ6-%&h=Ui5D4Qp6S5gXClc^f)A>+F1*8>!${+;nGm(D@Aa^8ngAzr)2) z(4`pz$fN|{r_1wv6AHRkBa-^Kk*?aiwnBSX?OnBZ?MVXqyQVOLQH*5*6IqJxuInkr zbGrH_U3XyXuDdyb_O4pH>g@U;XL+0_d4}iE-SrFp2?gEk+s(e+?AuLix0=*Ob2rW1 zGvfO8^|DrG7SCQ=CXks@yu?%Yxf3t$L?w5v5SMa@9xL3eRq3z zznA}EUGyZh+=1W)lAZ{i)gzt2Zp2nF%pBR&G%@w(%6$2X+~_Kt6Z-(kG=_`wWk zBx6WrGE+#$y~pc|-%2TE*f;)q_Hzh-e#F~5-rn(UI^NFl=dg9Wt>d4@d&j@X%be$R zw8y{A@1dZFJ$l%qhiCRE#QXQ~je2|;3VMd4xo2nm8PZdG&tBNOr;U4FfgA5R4*fkR zF^f55v4F*7ft`E4fX<#ed%lHzdw$3TKINBC(Cbok_ll+o z&1s3&UhRoPb1%)kH21P|FFW_r+G{N1naGvcyO($GmB9@3_p(DT`}R7AXZEf}7bdWj z>$rt8+>aaY{V-4QGWvVFk=}3M9eTTy-e2%F-|-{fqxWy2AmK7vpglo*g7$>2bf+i1 z8H#sEuy4XuOhapeofGCUpM_k*CJu50_ndGF_n%3GO1{ zJ#3!vF`w``U!uQHIPJIs&+KE1K6dEi9s67i1$}*!zP(5ynIWWL_r7V^y05MK&SW-o zS;h)hQGosXuEjU#Tfyzzh3E9u-1i|K!T0I=3byX6wXe>;U-2zJVdK8P^JggNr@LQ$ zI?xFl_lrkszdrOwb3e`fH1`|ERHmb~UnchMmxa6Tw}>U=upIsUc4FUtZ{V5zn=%OR z*na~jc$8;(0o(UK&%1oe7udMJ8|nWeKZksDM-|rs53E_d~BR(jEf+uw~8B>sUrNc<<{|HQ}4=7;^ zH=uLCH=$sl?>ewMHW+vf`?w#?13%;f+6R7t?FQO;pq-O1p%VI&^(WV-A&s$paty5) zfbQh+*gDyBlI@&4omtFAd-AnxU=tdX?VD`hmk~QL=cI6hiDwqlor@_ zNE>=E5ce>|Jq&RVLo%3&ZHLTbK8wgk?+~3sbPjRHLrT#)WEXqz-b40t2<=0TaTePS zt%PR|9gg=OTE-o`%y;~b`xt8Xln{1Hv2jX0Y@8BJ6Wm8i9G&TgcSz|?AG}A3jZ<`| z=uXj{l0z;l@jFa$$0=LUnxZr1C?~LQihWaVLs!ZpyubxM!@eo@O|fsvPyEUs_&uil z8w!S9iq2s=hq>cnwjS1;mU!=BZeUm}9nn6lE2CI|9fx`5u-ExJ6b$!`h9@x%&BNDI zjP~KSA8zmA2eI*R_c7dk4A(!rg8O)Yhk2C8c@j4={6~J{PdsOY<`I<%qZ)2xg!U2b z>4e4+@g&fX%Nf8J(#gh6j99@c-13M**5Rf{Y(npd?dTk#bHokYgsn%|dc>XF%^B`T z`-q2l2lsGAGd%N(OuYXUx9~jQgo2TpM@CW~?IRn}ijH)lJ3Y}qvM(u&!0sc*GJ%OK zWew{o#&bq$9=U^^?8c3ZJdM_oI!8XpS?oLVNuJ?3bdUT3ckJPx3;Dq2U?q&AvI zX&$9{l)XpUd6b<;X&vR3NA;mUZeUb0gV8=}I9K4lN9i18$5FNz<-3lK!Z#W{g_UR? zeF*nGTKniz*n7157;WRx?qjt37_EP_{?Sk4{zkvWyL`aMd=d)AxRWupxQqrw84AYQcdQ-9PGc>;-&o&h?AM`STy@%E`*F4(*NX%OG6FX;ZVcl| z#XF3f#T>Hm4&xT%H!#k7jN6Cqak|Ip9_QPPy9Jw%y952>UO?-(*LjQg`H%~I$}gc{ z{G~J?nkF=-B{m-4o;W(w4V#a56XQoRnz85|KM{M6cMIdw$zTTh#}{&lb9m;2YII=& zOYuD>=$>$f`*G(J9>(SqUglNaz|Iri;{(3odw$|q{@`LLNR6U3v2?_9QZ=XcrZ2ut zsyj*5p6WJIr=u~|#;NmJgnd(U@cmM^a~!vvdLuVu-_$#~hx>Q{y{V6)GgW8myVyF_ z)~U8m{fsa8if_@L`eP`VSc^`K!!swAJ+y+<$pZL+xVVW zH6@8zc(1E&<~hC&1?l0`r5;g4W5;y+rFX`+PxtN9^{4Akw_o~jM&f&?k0+IEbo={@ zg7gh|PWm>kql{hnjiuj?&UBsW4`9P|8>ZVZ-G=FJ@Cmxpee0(m<5qAr@J zYMyH6sdk>)jd*&JKtF6f)wiEIh#{nqiO#8Zocc81hJtCA;T@;>%}w(yrtQGDpLP)U zH|-b|+>P%)&BoInLjN@V)AUa}&+EL!yL`Y${2K}~bZ6ATb21vx7~dtM1@_L+o?+(< z4H<*6afXdEY@A`=3|$#%T*cL_U<=#Pnql9JJ!sC*oS`|x-WlF8!=Gsx?lt349z$z} ztuvnG1zzG6UgHh)XZ#ilrq`zro;iIDZg0B1rhgF%W`xn2PISfYGkS74Hl8tpQH*5* z6Pd|u<}sf|EMY5qImA&sXNKk(H*+g)W`^JY3_H)zIz#7-H+hE-`It}n9NjZ3(U8V8 zBL=NA+tC5dGd0iDJhK;9FdD5h-SbR)&zy|k=gf4bF@ss?pSc$M&U_rtoaNij^8IFc z$63oL<2LTYjn8_RM|g(wypH}^`e(hz2Ykc#{KT*P!NpLJ8HM)DSUS=LcaqtgzVt_b z=9NrkIyy6LoN41s8)q(I4eljVcjj?UVdG32XKKy7lY7wY?<@*3HD|txd&qPTnOZZo zX4*UR0-xayGQZ|qw9l?d9An647yrZi&HgtO%yI8?G|w5tP~7+&?Q`rsNBbP@bF|Ny zLl*ky^sN4bL=~}8V%4r zw==%uT>H+o?_8~O6B)oDG|$yM*FDUg!7SXv+__xMLTo*EDa%>GN_L}jt{vz86$<7x zX9(VL-bQ?jd5`ftFX2Y!y~g`|&R5uY-Vf-Xr#~y83gOhC7Io-^?yMw|@tmv?jKX)x z8i$>;v}b9}(wSxBEF1fKjDjq;omE6Jy0ea9Uw=NUZ{lUVc$-wsW?L9w- zTx>l58rE)vx!6r7NeL*QZxD}lX z?6}Yt3lo@zZ?y0TXVJXyGrmOo!tb#6qD!#xqN-Fw|04a1>d=%Hw4yDs#4(JCOkpb1 z@m&_p#omh+;7%54UsT9ebS~P(9u9Dbqa5c>&hi>IUS#7%@ADC#@Ht=cEkE#cC|K;C z7uO(y+Sq%scV8SuG>vJ7{>8q*;v{Uc*d~iTbMaHyU`Zt1@I96+#GNd0CrfOtFZmJOOMc^zP>>x)b@XO8p*cFU z+hOPIj&vpwHGPoh2hCT`{# zbS|~!Qn$Kv0ybFcJ1u*ml_-JagImp%jvHM5EYI^5+L!+w^8Y$QKp47nYf_7*xaVBG zx!viB&fG+7oNMD;8|V6dxzkxr9{Jcf*T%Uv&Ml^dt+?&nGESp4_h#I4?(N*g8N7S0 zJIK|Z`v~XwFchrNxx$t!hLD8~R@})e_#Szh^P*^k_PplUF3-++cFyZfU-akc&(ohb zhVj@w?@F#>Dyz_)XX`xA$=g9WdpW=%?3|}NPj{ZqyeD{?=XjY{d4sq3f?q?y%IZW= zhs$U{G)>UEvL$Y1rS6qFR}MhuN;|I{%5X+9nz7h^rS_GRS%z&_p20I${u2sT*=v>C zS><;8{YAm5qu70w_Ep+f*>9DtSGkW>Pw@=T^AdJl^#LFADc)h#*L)ia^1VlX6uR?u z=j+aIM+Z95h0D1Do%uTRCt=_GY0O|2OIgEC%CT?0ee(}<40oM>0~OrL9XyH7d^_jA zfY$u;_DYR;8(2LL?W-5E zm@VjB{UWwlQ=fihuo~ZDjpjAycmnNfp5;~E!^Uea@EQ8o=wI^(fAMc9D7=))RHYTV z3wx4)=M)aWcPSi#y$kJJsI^dMq0T}Z7v`{>JXWy@I~VFMv~Qt1F1(8~Xf1q@vuG~V zT&TIw&V_a^)LQ743qR*8zQxvsKk+NS^JgfywgEb?wd1w<9KvtpTJN|v9N%K?U`8<( zH?npj)0oTE*m&&{^sm*w){U%PPcbEIrIa1G?X?f^2#@h3Ze*?Rvi4=p$;`5=XJTPk{oH+Do*TxQ!CG zQKG-Z?Ui(+2fgV_f6~xhGM`0wPDw5+xdvO8XfLsG$pP$JqOrujB{yT+k~_JZ$9Ng{ zUh*~H@gu+RI~VyU6l}f(H?p}ZzV+r7w4x2(cXKQq=|XojZ|+4O{CT)J5!-LpxLMO? zceD9IDA?lPwZ%WX#cy@X3T(VZ+m;9L&up>l7L8k;=XKuXZQkX5-1C-ivF(*Ph`y~I=tNiC!d6>uwdGb@ZuOnEj>d0p>r7@d58G~a3tN|wi|(!YT+hAe*{Wmf z2Yk$@xXrEK@I5x%X0vS(v_!|Y_Qc`4ZtI5k-lk=nmTmUgHh_uPV%rqbnZ^wKrndR! z+q7-dwrwHqb=wwh;zc}jdwuM^Jp*^J-PYUh=NwP)G|%!X?_s~~zQgv<_>!;r1N&|N zHx!h*(bCHJ?xntWsSQhQSek(6lxi*=#1Q=UODB56N?z1!-8TyKE)bu!d{VUbcaaoIq!p9e3Jdr<>fFif^>DoO{r`^IhEdPVGBC!QMN6!^S)R z4h6eH=-;J(S6%86MI)Nhoc`$EHJWjF&aO1l$zTTBclk!U)>4GVUH08&-(6+w;y7+) z*AqOAeRsXcE4;>=yn{a%c7252T{?ID*XfpbUxL=%RS2gB5!4|P?Yp}%mSyb5J?{Q6 z6qI|va`#`JjOOxrxbN~sXfL;Qx%P7H`fl-symce(Cz z-Q^ef4Bw^vEA*G^-&2iR*m#f5J<&9#87=67o%h&xkA3${W(rf8&MfAT#R3+y9<6&e zu^D^svG*Q(@A2+?_Mm;w0S@s1I zwe#M~Xn_8``uDacj?UPAZx4Dg0o{9NW9z-1v)9ghbI8S=?$y56&U@YK-u-CYdldWb zy^))_m4|p1-*K;f_u6;wmwdzb{KT*P!GFE~hJt-M_vzf%5VyRq3C(Fq8`{xp#4BoTF{B^^dtdI2a-r;F!nxR?*s1SfIB(hP7b(} z1B=L~fI`;sAkSda1JCgS@9;i;cLzS*OEW@`xcoM(wL*DIBXNED2xm?Xc-18xQhf3IrJ3eIFL%aF!e^=X~ula$W z(RE1EAx(!br4rTg`#S8~9`1u}4$s6Ehd1FH9j?H4IeZJg^I=;Y_B{^U;;=O4L*fGUJzmm_vLGLkWjr(*fW4Xjf*ll;z}+PXTM#$7ycDdmO!;JGmSG{-gf=M}5bmzT;8f@#t546AF&$ zJXV)_L=jDA266?X8Ou0QnM@|W)3GJk@K`A~@Gx%Y*o(Y^Z*=TU-p02%9>PAy?Q=Yg zCNw98mbAe;AMZ(T`jUbTkB>sf@d-?18Z*#x+-)DX#qrg+m*dy6o?>i$yqx2l;zoSy z0i?N1CK znZelcgztC4W+!ZR!goL6`}n(yf)nrYYbZEb3;UmJL0jy9ay;JoR?#h>cJ6Ckc(GhG6Scsa%D9PucfW zCi7WDHp|H65YO``e}#h6?&!2_PTS^meH!B1p7vc&`>v;b*VCST+D@nKQ{kVh@XuBF zpI6wj!vCzomKEL6R*}Ge|J*=EFp4p_!wPK`+A3z@+gD_vu|iwL3RYsH3foi^QH*^m sPH>u=xP{xXQN<#ktV`{jW-w{=ffB?f(D%^Z)<%pyKiW1L5mep#T5? literal 321316 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

poMpR%aL?uFVUG^>m~l@c_OWLb8`#8Fwxjbs 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 + + + + + + + + diff --git a/Shared/NES/Apu/Apu.swift b/Shared/NES/Apu/Apu.swift index f28face..1123be2 100644 --- a/Shared/NES/Apu/Apu.swift +++ b/Shared/NES/Apu/Apu.swift @@ -108,9 +108,45 @@ extension Apu: IApu { break } } + + func enableSound() { + pulseChannel0?.getLengthCounter().setEnabled(true) + pulseChannel1?.getLengthCounter().setEnabled(true) + triangleChannel?.getLengthCounter().setEnabled(true) + noiseChannel?.getLengthCounter().setEnabled(true) + + } } class Apu: NSObject { + enum ApuChannel { + case PulseChannel1 + case PulseChannel2 + case TriangleChannel + case NoiseChannel + case DmcChannel + } + + static let kAvgNumScreenPpuCycles:Float32 = 89342 - 0.5 + static let kCpuCyclesPerSec:Float32 = (kAvgNumScreenPpuCycles / 3) * 60.0 + static let sampleRate: Double = 44100 + static let kCpuCyclesPerSample:Float32 = Apu.kCpuCyclesPerSec/Float(sampleRate) + + + var audioDriver: AudioDriver? + var frameCounter: FrameCounter? + + var pulseChannel0: PulseChannel? + var pulseChannel1: PulseChannel? + var triangleChannel: TriangleChannel? + var noiseChannel: NoiseChannel? + var dmcChannel:DmcChannel? + var elapsedCpuCycles: Float = 0 + var sampleSum = 0 + var numSamples = 0 + var channelVolumes:[ApuChannel:Float32] = [:] + var evenFrame = false + func stopPlayer() { audioDriver?.audioUnitPlayer.stop() } @@ -184,8 +220,7 @@ class Apu: NSObject { channelVolume = channelVolumes[ApuChannel.PulseChannel1] ?? 0 - switch (channel) - { + switch channel { case .PulseChannel1: channelValue = pulseChannel0?.getValue() ?? 0 break @@ -225,32 +260,4 @@ class Apu: NSObject { let interrupt = frameCounter?.enableIRQ ?? 0 return interrupt } - - enum ApuChannel { - case PulseChannel1 - case PulseChannel2 - case TriangleChannel - case NoiseChannel - case DmcChannel - } - - static let kAvgNumScreenPpuCycles:Float32 = 89342 - 0.5 - static let kCpuCyclesPerSec:Float32 = (kAvgNumScreenPpuCycles / 3) * 60.0 - static let sampleRate: Double = 44100 - static let kCpuCyclesPerSample:Float32 = Apu.kCpuCyclesPerSec/Float(sampleRate) - - - var audioDriver: AudioDriver? - var frameCounter: FrameCounter? - - var pulseChannel0: PulseChannel? - var pulseChannel1: PulseChannel? - var triangleChannel: TriangleChannel? - var noiseChannel: NoiseChannel? - var dmcChannel:DmcChannel? - var elapsedCpuCycles: Float = 0 - var sampleSum = 0 - var numSamples = 0 - var channelVolumes:[ApuChannel:Float32] = [:] - var evenFrame = false } diff --git a/Shared/NES/Apu/AudioDriver.swift b/Shared/NES/Apu/AudioDriver.swift index c963b50..0b15fea 100644 --- a/Shared/NES/Apu/AudioDriver.swift +++ b/Shared/NES/Apu/AudioDriver.swift @@ -9,7 +9,7 @@ import Foundation import AVFAudio import AVFoundation -class NesFrameProvider : FrameProvider{ +class NesFrameProvider : IFrameProvider{ var frames:[Float32] = [] let lockInput = NSLock() @@ -19,16 +19,14 @@ class NesFrameProvider : FrameProvider{ lockInput.unlock() } - func dequeue(byteSize: UInt32)-> FrameObj { - let frameObj = FrameObj() + func dequeue(byteSize: UInt32)-> AudioFrameObj { + let frameObj = AudioFrameObj() let floatCount:Int = Int(byteSize/4) lockInput.lock() - if(frames.count >= byteSize/4) - { - for _ in 0..= byteSize/4 { + for _ in 0.. FrameObj { + func getNextFrame(_ byteSize: UInt32) -> AudioFrameObj { return dequeue(byteSize:byteSize) } } @@ -48,14 +46,14 @@ class NesFrameProvider : FrameProvider{ class AudioDriver: NSObject { let nesFrameProvider = NesFrameProvider() var audioUnitPlayer: AudioUnitPlayer! + required override init() { super.init() audioUnitPlayer = AudioUnitPlayer(frameProvider: nesFrameProvider) audioUnitPlayer.start() } - func enqueue(inputFrame: Float32) - { + func enqueue(inputFrame: Float32) { nesFrameProvider.enqueue(inputFrame: inputFrame) } } diff --git a/Shared/NES/Apu/IApu.swift b/Shared/NES/Apu/IApu.swift index a39d52e..2de4be5 100644 --- a/Shared/NES/Apu/IApu.swift +++ b/Shared/NES/Apu/IApu.swift @@ -11,4 +11,5 @@ protocol IApu: HandleCpuReadWriteProtocol { func execute(_ cpuCycles: UInt32) func startPlayer() func stopPlayer() + func enableSound() } diff --git a/Shared/NES/AudioDriveImp/AudioController.swift b/Shared/NES/AudioDriveImp/AudioController.swift index 718959d..e55ce46 100644 --- a/Shared/NES/AudioDriveImp/AudioController.swift +++ b/Shared/NES/AudioDriveImp/AudioController.swift @@ -8,8 +8,11 @@ import Foundation import AVFoundation -class AudioController: NSObject -{ +class AudioController: NSObject { + static var sharedInstance = AudioController() + var remoteIOUnit: AudioComponentInstance! + var frameProvider: IFrameProvider? + func start() { AudioOutputUnitStart(remoteIOUnit) } @@ -18,8 +21,7 @@ class AudioController: NSObject AudioOutputUnitStop(remoteIOUnit) } - func getAudioUnitSubType()->UInt32 - { + func getAudioUnitSubType() -> UInt32 { #if os(iOS) return kAudioUnitSubType_RemoteIO #else @@ -28,10 +30,7 @@ class AudioController: NSObject } func initAudioComponent() { - - let audioUnitSubType:UInt32 = getAudioUnitSubType() - - + let audioUnitSubType: UInt32 = getAudioUnitSubType() var audioComponentDesc = AudioComponentDescription(componentType: OSType(kAudioUnitType_Output), componentSubType: OSType(audioUnitSubType), componentManufacturer: OSType(kAudioUnitManufacturer_Apple), @@ -83,15 +82,6 @@ class AudioController: NSObject if frameObj!.isFloat { let floatCount = Int(frameObj?.countFloat ?? 0) if floatCount==0 { - /* - var empty:[Float32] = [] - for _ in 0...reqByteSize-1 - { - empty.append(0) - } - abl?[0].mDataByteSize = 10 - memcpy(abl?[0].mData, &empty, Int(reqByteSize)) - */ return 0 } @@ -101,15 +91,13 @@ class AudioController: NSObject } else { let byteCount = Int(frameObj?.byteCount ?? 0) - if(byteCount==0) - { + if byteCount==0 { return 0 } let pointer = UnsafeRawPointer(frameObj!.buffer!) var randBuffer:[Float32] = [] - for index in 0.. AudioFrameObj +} + +protocol IAudioDrive { + var frameProvider: IFrameProvider? { get set } + init(frameProvider: IFrameProvider) + func start() + func stop() +} + +class AudioFrameObj: NSObject { var isFloat = true var arrayFloat: [Float32] = [] var bufferFloat: UnsafeMutablePointer? @@ -30,15 +26,16 @@ class FrameObj: NSObject var buffer: UnsafeMutablePointer? var byteCount: UInt32 = 0 + + deinit { + arrayFloat.removeAll() + if bufferFloat != nil { + bufferFloat?.deallocate() + } + + if buffer != nil { + buffer?.deallocate() + } + } } -protocol FrameProvider { - func getNextFrame(_ byteSize: UInt32) -> FrameObj -} - -protocol AudioDriveImp { - var frameProvider: FrameProvider? { get set } - init(frameProvider: FrameProvider) - func start() - func stop() -} diff --git a/Shared/NES/AudioDriveImp/AudioUnitPlayer.swift b/Shared/NES/AudioDriveImp/AudioUnitPlayer.swift index 8d5dd12..7bf89c7 100644 --- a/Shared/NES/AudioDriveImp/AudioUnitPlayer.swift +++ b/Shared/NES/AudioDriveImp/AudioUnitPlayer.swift @@ -8,9 +8,10 @@ import Foundation import AVFoundation -class AudioUnitPlayer:NSObject, AudioDriveImp { +class AudioUnitPlayer: NSObject, IAudioDrive { + var frameProvider: IFrameProvider? - required init(frameProvider: FrameProvider) { + required init(frameProvider: IFrameProvider) { self.frameProvider = frameProvider super.init() self.initEngine() @@ -27,6 +28,4 @@ class AudioUnitPlayer:NSObject, AudioDriveImp { func stop() { AudioController.sharedInstance.stop() } - - var frameProvider: FrameProvider? } diff --git a/Shared/NES/CPU/Cpu.swift b/Shared/NES/CPU/Cpu.swift index 59fe50c..bf38a88 100644 --- a/Shared/NES/CPU/Cpu.swift +++ b/Shared/NES/CPU/Cpu.swift @@ -9,22 +9,7 @@ import Foundation class CpuBase: NSObject, Codable { - - override init() { - super.init() - initOpTable() - } - - func initOpTable() { - let array = OpCodeTable.GetOpCodeTable() - opCodeTable.removeAll() - for item in array { - opCodeTable[item.opCode] = item - } - } - var opCodeTable:[UInt8:OpCodeEntry] = [:] - var PC:UInt16 = 0 // Program counter var SP:UInt8 = 0 // Stack pointer var A:UInt8 = 0 // Accumulator @@ -39,6 +24,11 @@ class CpuBase: NSObject, Codable { var cycles:UInt32 = 0 var totalCycles:UInt32 = 0 + override init() { + super.init() + initOpTable() + } + enum CodingKeys: String, CodingKey { case PC case SP @@ -53,6 +43,14 @@ class CpuBase: NSObject, Codable { case totalCycles } + func initOpTable() { + let array = OpCodeTable.GetOpCodeTable() + opCodeTable.removeAll() + for item in array { + opCodeTable[item.opCode] = item + } + } + required init(from decoder: Decoder) throws { print("Cpu.decoder") super.init() @@ -114,8 +112,7 @@ extension Cpu:ICpu { func handleCpuRead(_ cpuAddress: UInt16) -> UInt8 { var result:UInt8 = 0 - switch (cpuAddress) - { + switch (cpuAddress) { case CpuMemory.kSpriteDmaReg: // $4014 result = spriteDmaRegister break @@ -138,9 +135,8 @@ extension Cpu:ICpu { return result } - func handleCpuWrite(_ cpuAddress:UInt16, value:UInt8) { - switch (cpuAddress) - { + func handleCpuWrite(_ cpuAddress: UInt16, value: UInt8) { + switch (cpuAddress) { case CpuMemory.kSpriteDmaReg: // $4014 // Initiate a DMA transfer from the input page to sprite ram. diff --git a/Shared/NES/CPU/CpuInternalRam.swift b/Shared/NES/CPU/CpuInternalRam.swift index ac0ca03..c185623 100644 --- a/Shared/NES/CPU/CpuInternalRam.swift +++ b/Shared/NES/CPU/CpuInternalRam.swift @@ -22,7 +22,8 @@ class CpuInternalRam: HandleCpuReadWriteProtocol, Codable { try container.encode(memory, forKey: .memory) } init() { - memory = CpuInternalMemory.init().initialize(initSize:KB(2)) + memory = CpuInternalMemory() + memory.initial(size: Int(KB(2))) } func handleCpuRead(_ cpuAddress: UInt16) -> UInt8 { diff --git a/Shared/NES/CPU/CpuMemoryBus.swift b/Shared/NES/CPU/CpuMemoryBus.swift index f366644..830d470 100644 --- a/Shared/NES/CPU/CpuMemoryBus.swift +++ b/Shared/NES/CPU/CpuMemoryBus.swift @@ -35,9 +35,9 @@ struct CpuMemory { static let kStackBase:UInt16 = 0x0100 // Range [$0100,$01FF] (page 1) - // PPU memory-mapped registers - static let kPpuControlReg1:UInt16 = 0x2000 // (W) - static let kPpuControlReg2:UInt16 = 0x2001 // (W) + // PPU memory-mapped registers + static let kPpuControlReg:UInt16 = 0x2000 // (W) + static let kPpuMaskReg:UInt16 = 0x2001 // (W) static let kPpuStatusReg:UInt16 = 0x2002 // (R) static let kPpuSprRamAddressReg:UInt16 = 0x2003 // (W) \_ OAMADDR static let kPpuSprRamIoReg:UInt16 = 0x2004 // (W) / OAMDATA diff --git a/Shared/NES/CPU/Define/CpuRegDef.swift b/Shared/NES/CPU/Define/CpuRegDef.swift index 9d8c6e2..c8cfab2 100644 --- a/Shared/NES/CPU/Define/CpuRegDef.swift +++ b/Shared/NES/CPU/Define/CpuRegDef.swift @@ -7,10 +7,8 @@ import Foundation -class CpuRegDef:NSObject -{ - enum StatusFlag:UInt8 - { +class CpuRegDef: NSObject { + enum StatusFlag:UInt8 { case Carry = 0b00000001//(1<<0) case Zero = 0b00000010//(1<<1) case IrqDisabled = 0b00000100// Interrupt (IRQ) disabled diff --git a/Shared/NES/CPU/Define/OpCodeDef.swift b/Shared/NES/CPU/Define/OpCodeDef.swift deleted file mode 100644 index 7f4215e..0000000 --- a/Shared/NES/CPU/Define/OpCodeDef.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// AddressMode.swift -// NES_EMU -// -// Created by mio on 2021/8/14. -// - -import Foundation - -protocol OpCodeDef { - -} diff --git a/Shared/NES/CPU/ICpu.swift b/Shared/NES/CPU/ICpu.swift index 7b928f2..6fa0706 100644 --- a/Shared/NES/CPU/ICpu.swift +++ b/Shared/NES/CPU/ICpu.swift @@ -8,7 +8,7 @@ import Foundation protocol ICpu:HandleCpuReadWriteProtocol { - func initialize(cpuMemoryBus:CpuMemoryBus,apu: IApu,controllerPorts: IControllerPorts) + func initialize(cpuMemoryBus: CpuMemoryBus, apu: IApu, controllerPorts: IControllerPorts) func reset() func execute(_ cpuCyclesElapsed: inout UInt32) diff --git a/Shared/NES/CPU/OpCodeEntry.swift b/Shared/NES/CPU/OpCodeEntry.swift index 430cf94..8489a91 100644 --- a/Shared/NES/CPU/OpCodeEntry.swift +++ b/Shared/NES/CPU/OpCodeEntry.swift @@ -7,7 +7,6 @@ import Foundation - enum OpCodeEntryTtype { case ADC case AND @@ -67,7 +66,7 @@ enum OpCodeEntryTtype { case TYA } -public enum AddressMode:UInt32 { +public enum AddressMode: UInt32 { case Immedt = 0x0001 // Immediate : #value case Implid = 0x0002 // Implied : no operand case Accumu = 0x0004 // Accumulator : no operand @@ -85,8 +84,7 @@ public enum AddressMode:UInt32 { //case JmpOrBranchOperand = Relatv|Absolu|Indrct } -class OpCodeEntry:OpCodeDef -{ +class OpCodeEntry: NSObject { var opCode:UInt8 = 0 var opCodeName:OpCodeEntryTtype = .ADC var numBytes:UInt8 = 0 @@ -94,8 +92,7 @@ class OpCodeEntry:OpCodeDef var pageCrossCycles:UInt8 = 0 // 0 or 1 var addrMode:AddressMode = .Immedt - func initial(opCode:Int,opCodeName:OpCodeEntryTtype,numBytes:Int,numCycles:Int,pageCrossCycles:Int,addrMode:AddressMode)->OpCodeEntry - { + func initial(opCode:Int, opCodeName: OpCodeEntryTtype, numBytes:Int,numCycles: Int, pageCrossCycles: Int, addrMode: AddressMode) -> OpCodeEntry { self.opCode = UInt8(opCode) self.opCodeName = opCodeName self.numBytes = UInt8(numBytes) @@ -105,8 +102,7 @@ class OpCodeEntry:OpCodeDef return self } - func getName()->String - { + func getName() -> String { return String(describing: opCodeName) } } diff --git a/Shared/NES/CPU/OpCodeTable.swift b/Shared/NES/CPU/OpCodeTable.swift index 5cde597..f447d78 100644 --- a/Shared/NES/CPU/OpCodeTable.swift +++ b/Shared/NES/CPU/OpCodeTable.swift @@ -7,7 +7,7 @@ import Foundation -class OpCodeTable:OpCodeDef { +class OpCodeTable { static func GetOpCodeTable() -> [OpCodeEntry] { var array:[OpCodeEntry] = [] for obj in opCodeTable { diff --git a/Shared/NES/Cartridge/Cartridge.swift b/Shared/NES/Cartridge/Cartridge.swift index 655ca6a..74fc71c 100644 --- a/Shared/NES/Cartridge/Cartridge.swift +++ b/Shared/NES/Cartridge/Cartridge.swift @@ -214,7 +214,7 @@ class Cartridge: CartridgeBase { var readIndex = 16 for _ in 0..UInt8 -{ +func BIT(_ n: Int) -> UInt8 { return UInt8(1<UInt16 -{ +func BIT16(_ n: Int) -> UInt16 { return UInt16(1<UInt16 -{ +func BITS16(_ bitsIn: [Int]) -> UInt16 { var result:UInt16 = 0 - for bit in bitsIn - { + for bit in bitsIn { let dig = 1<UInt8 -{ +func BITS(_ bitsIn: [UInt8]) -> UInt8 { var result:UInt8 = 0 for bit in bitsIn { @@ -89,8 +84,7 @@ func testBits(target:UInt16, value: UInt16) -> Bool { return readBits(target: target, value: value) != 0 } -func readBits(target:UInt16, value:UInt16)->UInt16 -{ +func readBits(target:UInt16, value:UInt16) -> UInt16 { return target & value } diff --git a/Shared/NES/Common/Memory.swift b/Shared/NES/Common/Memory.swift index ba029a4..3fc7735 100644 --- a/Shared/NES/Common/Memory.swift +++ b/Shared/NES/Common/Memory.swift @@ -21,7 +21,7 @@ class Memory:NSObject, Codable { super.init() let values = try decoder.container(keyedBy: CodingKeys.self) - memorySize = try values.decode(UInt.self, forKey: .memorySize) + memorySize = try values.decode(Int.self, forKey: .memorySize) rawBuffer = UnsafeMutablePointer.allocate(capacity: Int(memorySize)) dataArray = try values.decode([UInt8].self, forKey: .dataArray) @@ -53,9 +53,12 @@ class Memory:NSObject, Codable { rawBuffer.deallocate() } - func initial(size: UInt) { + func initial(size: Int) { memorySize = size rawBuffer = UnsafeMutablePointer.allocate(capacity: Int(size)) + for index in 0..! = nil private var dataArray:[UInt8] = [] } @@ -112,12 +115,13 @@ class CpuInternalMemory: Memory { override init() { super.init() } - - func initialize(initSize:UInt) -> CpuInternalMemory { + /* + func initialize(initSize:Int) -> CpuInternalMemory { memorySize = initSize initial(size: initSize) return self } + */ } class NameTableMemory: Memory { @@ -131,12 +135,13 @@ class NameTableMemory: Memory { super.init() } + /* init(initSize: UInt) { super.init() memorySize = initSize initial(size: initSize) } - + */ override func read(_ address: UInt16) -> UInt8 { assert(address < 2048) return rawBuffer[Int(address)] diff --git a/Shared/NES/PPU/Bitfield8WithPpuRegister.swift b/Shared/NES/PPU/Bitfield8WithPpuRegister.swift index 103256b..1878191 100644 --- a/Shared/NES/PPU/Bitfield8WithPpuRegister.swift +++ b/Shared/NES/PPU/Bitfield8WithPpuRegister.swift @@ -8,35 +8,29 @@ import Foundation class Bitfield8WithPpuRegister { - /*var field: UInt8 = 0 - var ppuRegisters:PpuRegisterMemory? = nil - var regAddressSelf:Int = 0 - */ + var ppuRegisters: PpuRegisterMemory? = nil + var regAddressSelf: Int = 0 + func MapCpuToPpuRegister(_ cpuAddress: UInt16) -> UInt16 { let ppuRegAddress = (cpuAddress - CpuMemory.kPpuRegistersBase ) % CpuMemory.kPpuRegistersSize return ppuRegAddress } - func reload() { - field = ppuRegisters?.rawRef(address: regAddressSelf) ?? 0 - } - func initialize(ppuRegisterMemory: PpuRegisterMemory, regAddress: UInt16) { ppuRegisters = ppuRegisterMemory //load default value regAddressSelf = Int(MapCpuToPpuRegister(regAddress)) - field = ppuRegisters?.rawRef(address: regAddressSelf) ?? 0 } func value() -> UInt8 { return field } - func read(_ bits:UInt8) -> UInt8 { + func read(_ bits: UInt8) -> UInt8 { return field & bits } - func test(_ bits:UInt8) -> Bool { + func test(_ bits: UInt8) -> Bool { let ret = read(bits) if ret == 0 { @@ -58,44 +52,40 @@ class Bitfield8WithPpuRegister { func set(_ bits: UInt8) { field |= bits - writeValueToMemory() } func setValue(_ value: UInt8) -> UInt8 { field = value - writeValueToMemory() return field } - func set(bits:UInt8, enabled: UInt8) { - if ((enabled) != 0) - { + func set(bits: UInt8, enabled: UInt8) { + if (enabled) != 0 { set(bits) } else { clear(bits) } - - writeValueToMemory() } - func clear(_ bits:UInt8) - { + func clear(_ bits: UInt8) { field &= ~bits - writeValueToMemory() - } - - func writeValueToMemory() - { - ppuRegisters?.putValue(address: regAddressSelf, value: field) } func clearAll() { field = 0 - writeValueToMemory() } - var field: UInt8 = 0 - var ppuRegisters:PpuRegisterMemory? = nil - var regAddressSelf:Int = 0 + private var field: UInt8 { + get { + return ppuRegisters?.rawRef(address: regAddressSelf) ?? 0 + } + set { + writeValueToMemory(value: newValue) + } + } + + private func writeValueToMemory(value: UInt8) { + ppuRegisters?.putValue(address: regAddressSelf, value: value) + } } diff --git a/Shared/NES/PPU/IPpu.swift b/Shared/NES/PPU/IPpu.swift index cd5fdec..f74ee8b 100644 --- a/Shared/NES/PPU/IPpu.swift +++ b/Shared/NES/PPU/IPpu.swift @@ -8,7 +8,7 @@ import Foundation protocol IPpu:HandleCpuReadWriteProtocol,HandlePpuReadWriteProtocol { - func initialize(ppuMemoryBus:PpuMemoryBus,nes:Nes,renderer:IRenderer) - func execute(_ cpuCycles:UInt32, completedFrame: inout Bool) + func initialize(ppuMemoryBus: PpuMemoryBus, nes: Nes, renderer: IRenderer) + func execute(_ cpuCycles: UInt32, completedFrame: inout Bool) func reset() } diff --git a/Shared/NES/PPU/OAM.swift b/Shared/NES/PPU/OAM.swift index 05f8400..501895b 100644 --- a/Shared/NES/PPU/OAM.swift +++ b/Shared/NES/PPU/OAM.swift @@ -7,11 +7,14 @@ import Foundation -class OAM: Codable { - init(){ - +class OAM: NSObject, Codable { + enum CodingKeys: String, CodingKey { + case spriteDatas } + var spriteDatas:[SpriteData] = [] + var memPointer:UnsafeMutablePointer = UnsafeMutablePointer.allocate(capacity: 64) + override init() {} deinit { memPointer.deallocate() } @@ -34,14 +37,11 @@ class OAM: Codable { let rawMemory = UnsafeMutableRawPointer(memPointer) memcpy(rawMemory.advanced(by: Int(address)), &valueSet, 1) } - var spriteDatas:[SpriteData] = [] - enum CodingKeys: String, CodingKey { - case spriteDatas - } //var paletteColorsData:[PixelColor] = [] required init(from decoder: Decoder) throws { + super.init() let values = try decoder.container(keyedBy: CodingKeys.self) spriteDatas = try values.decode([SpriteData].self, forKey: .spriteDatas) @@ -58,12 +58,10 @@ class OAM: Codable { try container.encode(spriteDatas, forKey: .spriteDatas) } - func beforeSave(){ + func beforeSave() { spriteDatas.removeAll() for i in 0 ..< 64 { spriteDatas.append(getSprite(i)) } } - - var memPointer:UnsafeMutablePointer = UnsafeMutablePointer.allocate(capacity: 64) } diff --git a/Shared/NES/PPU/Ppu.swift b/Shared/NES/PPU/Ppu.swift index 6329e1a..79c1439 100644 --- a/Shared/NES/PPU/Ppu.swift +++ b/Shared/NES/PPU/Ppu.swift @@ -14,8 +14,45 @@ struct BgTileFetchData { } class PpuBase : NSObject, Codable { + var nes:Nes? = nil + var palette = PaletteMemory.init() + var renderer: IRenderer? = nil + var ppuStatusReg: Bitfield8WithPpuRegister = Bitfield8WithPpuRegister.init() + var ppuControlReg: Bitfield8WithPpuRegister = Bitfield8WithPpuRegister.init() + var ppuMaskReg: Bitfield8WithPpuRegister = Bitfield8WithPpuRegister.init() + var numSpritesToRender:Int = 0 + var vramAndScrollFirstWrite: Bool = false + var ppuRegisters: PpuRegisterMemory = PpuRegisterMemory.init() + var tempVRamAddress: UInt16 = 0 + var vramAddress: UInt16 = 0 + var fineX: UInt8 = 0 // Fine x scroll (3 bits), "Loopy x" + var vramBufferedValue: UInt8 = 0 + var cycle: UInt32 = 0 + var evenFrame: Bool = false + var vblankFlagSetThisFrame: Bool = false + var ppuMemoryBus: PpuMemoryBus? = nil + var spriteFetchData: [SpriteFetchData] = [] + var nameTables = NameTableMemory() + var kScreenWidth:UInt32 = 256 + var kScreenHeight:UInt32 = 240 + var renderSprite0 = false + var oam = OAM() + var oam2 = OAM() + var kNumPaletteColors:UInt = 64 + var paletteColors:UnsafeMutablePointer! + var bgTileFetchDataPipeline_0 = BgTileFetchData.init() + var bgTileFetchDataPipeline_1 = BgTileFetchData.init() + private var paletteColorsData:[PixelColor] = [] + + override init() { + super.init() + initial() + } + + func initial() { + nameTables.initial(size: Int(KB(2))) + } - override init() {} enum CodingKeys: String, CodingKey { case ppuRegisters case kNumPaletteColors @@ -80,6 +117,7 @@ class PpuBase : NSObject, Codable { required init(from decoder: Decoder) throws { print("Ppu.decoder") super.init() + initial() let values = try decoder.container(keyedBy: CodingKeys.self) ppuRegisters = try values.decode(PpuRegisterMemory.self, forKey: .ppuRegisters) kNumPaletteColors = try values.decode(UInt.self, forKey: .kNumPaletteColors) @@ -94,8 +132,8 @@ class PpuBase : NSObject, Codable { palette = try values.decode(PaletteMemory.self, forKey: .palette) ppuStatusReg.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuStatusReg) - ppuControlReg1.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuControlReg1) - ppuControlReg2.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuControlReg2) + ppuControlReg.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuControlReg) + ppuMaskReg.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuMaskReg) initPaletteColors() @@ -120,36 +158,6 @@ class PpuBase : NSObject, Codable { try container.encode(oam2, forKey: .oam2) try container.encode(palette, forKey: .palette) } - - var palette = PaletteMemory.init() - var renderer: IRenderer? = nil - var ppuStatusReg: Bitfield8WithPpuRegister = Bitfield8WithPpuRegister.init() - var ppuControlReg1: Bitfield8WithPpuRegister = Bitfield8WithPpuRegister.init() - var ppuControlReg2: Bitfield8WithPpuRegister = Bitfield8WithPpuRegister.init() - var numSpritesToRender:Int = 0 - var vramAndScrollFirstWrite: Bool = false - var ppuRegisters: PpuRegisterMemory = PpuRegisterMemory.init() - var tempVRamAddress: UInt16 = 0 - var vramAddress: UInt16 = 0 - var fineX: UInt8 = 0 // Fine x scroll (3 bits), "Loopy x" - var vramBufferedValue: UInt8 = 0 - var cycle: UInt32 = 0 - var evenFrame: Bool = false - var vblankFlagSetThisFrame: Bool = false - var nes:Nes? = nil - var ppuMemoryBus: PpuMemoryBus? = nil - var spriteFetchData: [SpriteFetchData] = [] - var nameTables = NameTableMemory.init(initSize: KB(2)) - var kScreenWidth:UInt32 = 256 - var kScreenHeight:UInt32 = 240 - var renderSprite0 = false - var oam = OAM() - var oam2 = OAM() - var kNumPaletteColors:UInt = 64 - var paletteColors:UnsafeMutablePointer! - var bgTileFetchDataPipeline_0 = BgTileFetchData.init() - var bgTileFetchDataPipeline_1 = BgTileFetchData.init() - private var paletteColorsData:[PixelColor] = [] } extension Ppu: IPpu { @@ -164,11 +172,11 @@ extension Ppu: IPpu { // See http://wiki.nesdev.com/w/index.php/PPU_power_up_state ppuStatusReg.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuStatusReg) - ppuControlReg1.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuControlReg1) - ppuControlReg2.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuControlReg2) + ppuControlReg.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuControlReg) + ppuMaskReg.initialize(ppuRegisterMemory: ppuRegisters,regAddress: CpuMemory.kPpuMaskReg) - writePpuRegister(CpuMemory.kPpuControlReg1, value: 0) - writePpuRegister(CpuMemory.kPpuControlReg2, value: 0) + writePpuRegister(CpuMemory.kPpuControlReg, value: 0) + writePpuRegister(CpuMemory.kPpuMaskReg, value: 0) writePpuRegister(CpuMemory.kPpuVRamAddressReg1, value: 0) writePpuRegister(CpuMemory.kPpuVRamIoReg, value: 0) @@ -199,14 +207,16 @@ extension Ppu: IPpu { let ppuCycles = cpuToPpuCycles(cpuCycles) completedFrame = false - let renderingEnabled = ppuControlReg2.test(UInt8(PpuControl2.RenderBackground|PpuControl2.RenderSprites)) + let renderingEnabled = ppuMaskReg.test(UInt8(PpuMask.RenderBackground|PpuMask.RenderSprites)) for _ in 0 ..< ppuCycles { - let x = cycle % kNumScanlineCycles // offset in current scanline - let y = cycle / kNumScanlineCycles // scanline + // offset in current scanline + let x = cycle % kNumScanlineCycles + // scanline + let y = cycle / kNumScanlineCycles - if ( (y <= 239) || y == 261 ) // Visible and Pre-render scanlines - { + // Visible and Pre-render scanlines + if y <= 239 || y == 261 { if renderingEnabled { if x == 64 { // Cycles 1-64: Clear secondary OAM to $FF @@ -216,8 +226,7 @@ extension Ppu: IPpu { // Cycles 65-256: Sprite evaluation performSpriteEvaluation(x: x, y: y) } - else if (x == 260) - { + else if x == 260 { //@TODO: This is a dirty hack for Mapper4 (MMC3) and the like to get around the fact that // my PPU implementation doesn't perform Sprite fetches as expected (must fetch even if no // sprites found on scanline, and fetch each sprite separately like I do for tiles). For now @@ -287,7 +296,7 @@ extension Ppu: IPpu { if y == 241 && x == 1 { setVBlankFlag() - if ppuControlReg1.test(PpuControl1.NmiOnVBlank) { + if ppuControlReg.test(PpuControl.NmiOnVBlank) { nes?.SignalCpuNmi() } } @@ -302,7 +311,9 @@ extension Ppu: IPpu { assert(cpuAddress >= CpuMemory.kPpuRegistersBase && cpuAddress < CpuMemory.kPpuRegistersEnd) var result:UInt8 = 0 switch cpuAddress { - case CpuMemory.kPpuStatusReg: // $2002 + + // $2002 + case CpuMemory.kPpuStatusReg: //@HACK: Some games like Bomberman and Burger Time poll $2002.7 (VBlank flag) expecting the // bit to be set before the NMI executes. On actual hardware, this results in a race condition // where sometimes the bit won't be set, or the NMI won't occur. See: @@ -344,7 +355,7 @@ extension Ppu: IPpu { vramBufferedValue = ppuMemoryBus!.read(vramAddress) // Advance vram pointer - let advanceOffset:UInt16 = PpuControl1.getPpuAddressIncrementSize(ppuControlReg1.value()) + let advanceOffset:UInt16 = PpuControl.getPpuAddressIncrementSize(ppuControlReg.value()) vramAddress += advanceOffset break default: @@ -363,21 +374,22 @@ extension Ppu: IPpu { writePpuRegister(cpuAddress, value: value) switch (cpuAddress) { - case CpuMemory.kPpuControlReg1: // $2000 + case CpuMemory.kPpuControlReg: // $2000 setVRamAddressNameTable(v: &tempVRamAddress, value: value & 0x3) - let oldPpuControlReg1:Bitfield8 = Bitfield8.init() - oldPpuControlReg1.set(oldValue) + let oldPpuControlReg:Bitfield8 = Bitfield8.init() + oldPpuControlReg.set(oldValue) - let enabledNmiOnVBlank = !oldPpuControlReg1.test(PpuControl1.NmiOnVBlank) && ppuControlReg1.test(PpuControl1.NmiOnVBlank) + let enabledNmiOnVBlank = !oldPpuControlReg.test(PpuControl.NmiOnVBlank) && ppuControlReg.test(PpuControl.NmiOnVBlank) if enabledNmiOnVBlank && ppuStatusReg.test(PpuStatus.InVBlank) { // In vblank (and $2002 not read yet, which resets this bit) nes!.SignalCpuNmi() } break - case CpuMemory.kPpuControlReg2: //$2001 + case CpuMemory.kPpuMaskReg: //$2001 + break case CpuMemory.kPpuSprRamIoReg: // $2004 // Write value to sprite ram at address in $2003 (OAMADDR) and increment address @@ -425,7 +437,7 @@ extension Ppu: IPpu { ppuMemoryBus?.write(vramAddress, value: value) } - let advanceOffset = PpuControl1.getPpuAddressIncrementSize(ppuControlReg1.value()) + let advanceOffset = PpuControl.getPpuAddressIncrementSize(ppuControlReg.value()) vramAddress = vramAddress + advanceOffset; break default: @@ -466,9 +478,6 @@ class Ppu: PpuBase { func writePpuRegister(_ cpuAddress:UInt16, value: UInt8) { ppuRegisters.write(address: mapCpuToPpuRegister(cpuAddress), value: value) - ppuStatusReg.reload() - ppuControlReg1.reload() - ppuControlReg2.reload() } func setVRamAddressFineY(v:inout UInt16, value: UInt8) { @@ -503,7 +512,7 @@ class Ppu: PpuBase { func performSpriteEvaluation(x:UInt32, y: UInt32) { // See http://wiki.nesdev.com/w/index.php/PPU_sprite_evaluation - let isSprite8x16:Bool = ppuControlReg1.test(PpuControl1.SpriteSize8x16) + let isSprite8x16:Bool = ppuControlReg.test(PpuControl.SpriteSize8x16) var spriteHeight: UInt8 = 8 if isSprite8x16 { @@ -594,7 +603,7 @@ class Ppu: PpuBase { func fetchSpriteData(_ y:UInt32) { // See http://wiki.nesdev.com/w/index.php/PPU_rendering#Cycles_257-320 - let isSprite8x16 = ppuControlReg1.test(PpuControl1.SpriteSize8x16) + let isSprite8x16 = ppuControlReg.test(PpuControl.SpriteSize8x16) if numSpritesToRender == 0 { return @@ -612,7 +621,7 @@ class Ppu: PpuBase { var tileIndex:UInt8 = 0 // 8x8 sprite, oam byte 1 is tile index if !isSprite8x16 { - if ppuControlReg1.test(PpuControl1.SpritePatternTableAddress8x8) { + if ppuControlReg.test(PpuControl.SpritePatternTableAddress8x8) { patternTableAddress = 0x1000 } else { @@ -692,7 +701,7 @@ class Ppu: PpuBase { } // Load bg tile row data (2 bytes) at v into pipeline let v = vramAddress - let patternTableAddress:UInt16 = PpuControl1.getBackgroundPatternTableAddress(ppuControlReg1.value()) + let patternTableAddress:UInt16 = PpuControl.getBackgroundPatternTableAddress(ppuControlReg.value()) let tileIndexAddress:UInt16 = 0x2000 | (v & 0x0FFF) let attributeAddress:UInt16 = 0x23C0 | (v & 0x0C00) | ((v >> 4) & 0x38) | ((v >> 2) & 0x07) @@ -744,15 +753,15 @@ class Ppu: PpuBase { return } // See http://wiki.nesdev.com/w/index.php/PPU_rendering - var bgRenderingEnabled = ppuControlReg2.test(UInt8(PpuControl2.RenderBackground)) - var spriteRenderingEnabled = ppuControlReg2.test(UInt8(PpuControl2.RenderSprites)) + var bgRenderingEnabled = ppuMaskReg.test(UInt8(PpuMask.RenderBackground)) + var spriteRenderingEnabled = ppuMaskReg.test(UInt8(PpuMask.RenderSprites)) // Consider bg/sprites as disabled (for this pixel) if we're not supposed to render it in the left-most 8 pixels - if !ppuControlReg2.test(UInt8(PpuControl2.BackgroundShowLeft8)) && x < 8 { + if !ppuMaskReg.test(UInt8(PpuMask.BackgroundShowLeft8)) && x < 8 { bgRenderingEnabled = false } - if !ppuControlReg2.test(UInt8(PpuControl2.SpritesShowLeft8)) && x < 8 { + if !ppuMaskReg.test(UInt8(PpuMask.SpritesShowLeft8)) && x < 8 { spriteRenderingEnabled = false } @@ -880,7 +889,7 @@ class Ppu: PpuBase { } func onFrameComplete() { - let renderingEnabled = ppuControlReg2.test(UInt8(PpuControl2.RenderBackground|PpuControl2.RenderSprites)) + let renderingEnabled = ppuMaskReg.test(UInt8(PpuMask.RenderBackground|PpuMask.RenderSprites)) // For odd frames, the cycle at the end of the scanline (340,239) is skipped if !evenFrame && renderingEnabled { cycle = cycle + 1 diff --git a/Shared/NES/PPU/PpuControl1.swift b/Shared/NES/PPU/PpuControl.swift similarity index 65% rename from Shared/NES/PPU/PpuControl1.swift rename to Shared/NES/PPU/PpuControl.swift index 851a3ea..ae4e1c6 100644 --- a/Shared/NES/PPU/PpuControl1.swift +++ b/Shared/NES/PPU/PpuControl.swift @@ -7,25 +7,32 @@ import Foundation -class PpuStatus { +struct PpuStatus { static let VRAMWritesIgnored:UInt8 = BIT(4) static let SpriteOverflow:UInt8 = BIT(5) static let PpuHitSprite0:UInt8 = BIT(6) static let InVBlank:UInt8 = BIT(7) } -class PpuControl1 { +class PpuControl { + static let NameTableAddressMask = BIT(0)|BIT(1)//PpuControl1Type.NameTableAddressMask.rawValue + static let PpuAddressIncrement = BIT(2)//PpuControl1Type.PpuAddressIncrement.rawValue + static let SpritePatternTableAddress8x8 = BIT(3)//PpuControl1Type.SpritePatternTableAddress8x8.rawValue + static let BackgroundPatternTableAddress = BIT(4)//PpuControl1Type.BackgroundPatternTableAddress.rawValue + static let SpriteSize8x16 = BIT(5)//PpuControl1Type.SpriteSize8x16.rawValue + static let PpuMasterSlaveSelect = BIT(6)//PpuControl1Type.PpuMasterSlaveSelect.rawValue + static let NmiOnVBlank = BIT(7)//PpuControl1Type.NmiOnVBlank.rawValue - static func getNameTableAddress(_ ppuControl1: UInt16) -> UInt16 { - return PpuMemory.kNameTable0 + ((UInt16)(ppuControl1 & UInt16(NameTableAddressMask))) * PpuMemory.kNameAttributeTableSize + static func getNameTableAddress(_ ppuControl: UInt16) -> UInt16 { + return PpuMemory.kNameTable0 + ((UInt16)(ppuControl & UInt16(NameTableAddressMask))) * PpuMemory.kNameAttributeTableSize } - static func getAttributeTableAddress(_ ppuControl1: UInt16) -> UInt16 { - return getNameTableAddress(ppuControl1) + PpuMemory.kNameTableSize + static func getAttributeTableAddress(_ ppuControl: UInt16) -> UInt16 { + return getNameTableAddress(ppuControl) + PpuMemory.kNameTableSize } - static func getBackgroundPatternTableAddress(_ ppuControl1: UInt8) -> UInt16 { - if ((ppuControl1 & BackgroundPatternTableAddress)) != 0 { + static func getBackgroundPatternTableAddress(_ ppuControl: UInt8) -> UInt16 { + if ((ppuControl & BackgroundPatternTableAddress)) != 0 { return 0x1000 } else { @@ -33,20 +40,12 @@ class PpuControl1 { } } - static func getPpuAddressIncrementSize(_ ppuControl1: UInt8) -> UInt16 { - if((ppuControl1 & PpuAddressIncrement)) != 0 { + static func getPpuAddressIncrementSize(_ ppuControl: UInt8) -> UInt16 { + if((ppuControl & PpuAddressIncrement)) != 0 { return 32 } else { return 1 } } - - static let NameTableAddressMask = BIT(0)|BIT(1)//PpuControl1Type.NameTableAddressMask.rawValue - static let PpuAddressIncrement = BIT(2)//PpuControl1Type.PpuAddressIncrement.rawValue - static let SpritePatternTableAddress8x8 = BIT(3)//PpuControl1Type.SpritePatternTableAddress8x8.rawValue - static let BackgroundPatternTableAddress = BIT(4)//PpuControl1Type.BackgroundPatternTableAddress.rawValue - static let SpriteSize8x16 = BIT(5)//PpuControl1Type.SpriteSize8x16.rawValue - static let PpuMasterSlaveSelect = BIT(6)//PpuControl1Type.PpuMasterSlaveSelect.rawValue - static let NmiOnVBlank = BIT(7)//PpuControl1Type.NmiOnVBlank.rawValue } diff --git a/Shared/NES/PPU/PpuControl2.swift b/Shared/NES/PPU/PpuMask.swift similarity index 97% rename from Shared/NES/PPU/PpuControl2.swift rename to Shared/NES/PPU/PpuMask.swift index 7b7dff8..991760b 100644 --- a/Shared/NES/PPU/PpuControl2.swift +++ b/Shared/NES/PPU/PpuMask.swift @@ -7,8 +7,7 @@ import Foundation -class PpuControl2 { - +class PpuMask { static let DisplayType = BIT(0) // 0 = Color, 1 = Monochrome static let BackgroundShowLeft8 = BIT(1) // 0 = BG invisible in left 8-pixel column, 1 = No clipping static let SpritesShowLeft8 = BIT(2) // 0 = Sprites invisible in left 8-pixel column, 1 = No clipping diff --git a/Shared/NES/PPU/PpuMemoryBus.swift b/Shared/NES/PPU/PpuMemoryBus.swift index a25de9a..5da0bbe 100644 --- a/Shared/NES/PPU/PpuMemoryBus.swift +++ b/Shared/NES/PPU/PpuMemoryBus.swift @@ -8,8 +8,10 @@ import Foundation class PpuMemoryBus { + var ppu:IPpu? + var cartridge:ICartridge? - func initialize(ppu:IPpu, cartridge: ICartridge) { + func initialize(ppu: IPpu, cartridge: ICartridge) { self.ppu = ppu self.cartridge = cartridge } @@ -42,7 +44,4 @@ class PpuMemoryBus { } return cartridge!.handlePpuWrite(ppuAddress, value: value) } - - var ppu:IPpu? - var cartridge:ICartridge? }