From 91f213c2aa9f21876256c2343c9dc8e9fe22dcb0 Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Sat, 11 Nov 2023 14:44:23 +0100 Subject: [PATCH] High score table initial data. --- bin/DMGTRIS.GBC | Bin 131072 -> 131072 bytes bin/DMGTRIS.map | 434 ++++++++++++++++++++-------------------- bin/DMGTRIS.pocket | Bin 131072 -> 131072 bytes bin/DMGTRIS.sym | 354 ++++++++++++++++---------------- src/hiscore.asm | 32 ++- src/include/globals.asm | 9 +- src/sram.asm | 36 ++-- 7 files changed, 438 insertions(+), 427 deletions(-) diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 6a229e6b6314a6f137cc485eb031a539862d5759..99d536afbd09b69ea252355ca4f7f8d3a9169e35 100644 GIT binary patch delta 8165 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 Urt;D#>C)I|>{qiivGbb$1L`KL8~^|S delta 8165 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 bU0rFNEJ8Z_t7)3pa?}3;Q_tev diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index 0888c13..be144a9 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -422,123 +422,123 @@ ROM0 bank #0: $30f3 = NextByte SECTION: $3113-$325c ($014a bytes) ["Progress Data"] $3113 = sProgressData - SECTION: $325d-$333c ($00e0 bytes) ["Score Functions"] - $325d = ScoreInit - $3285 = IncreaseScore - $32bd = IncreaseScore.doConvert - $32bf = !0 - $32d5 = IncreaseScore.carry - $32d7 = IncreaseScore.postConvert - $32e4 = !1 - $32eb = IncreaseScore.preAddDigit - $3313 = IncreaseScore.addDigit - $3329 = IncreaseScore.nextDigit - SECTION: $333d-$3409 ($00cd bytes) ["Input Functions"] - $333d = InputInit - $334f = GetInput - $334f = GetInput.btns - $335c = GetInput.readA - $3360 = GetInput.setA - $336b = GetInput.clearA - $336e = GetInput.readB - $3372 = GetInput.setB - $337d = GetInput.clearB - $3380 = GetInput.readSelect - $3384 = GetInput.setSelect - $338f = GetInput.clearSelect - $3392 = GetInput.readStart - $3396 = GetInput.setStart - $33a1 = GetInput.clearStart - $33a4 = GetInput.dpad - $33b1 = GetInput.readUp - $33b5 = GetInput.setUp - $33c0 = GetInput.clearUp - $33c3 = GetInput.readDown - $33c7 = GetInput.setDown - $33d2 = GetInput.clearDown - $33d5 = GetInput.readLeft - $33d9 = GetInput.setLeft - $33e4 = GetInput.clearLeft - $33e7 = GetInput.readRight - $33eb = GetInput.setRight - $33f6 = GetInput.clearRight - $33f9 = GetInput.priorities - $3404 = GetInput.zero - SECTION: $340a-$34d4 ($00cb bytes) ["Title Function Trampolines"] - $340a = SwitchToTitle - $3413 = TitleEventLoopHandler - $341d = TitleVBlankHandler - $3427 = PersistLevel - $3435 = DrawSpeedMain - $3485 = DrawSpeedSettings - SECTION: $34d5-$359a ($00c6 bytes) ["Time Functions"] - $34d5 = TimeInit - $34f5 = StartCountdown - $3503 = ResetGameTime - $350e = CheckTorikan - $3525 = CheckTorikan.failure - $3527 = CheckTorikan.success - $352a = HandleTimers - $3550 = HandleTimers.reduce - $355d = HandleTimers.clock - $3577 = HandleTimers.go - SECTION: $359b-$364c ($00b2 bytes) ["Progress Functions"] - $359b = SetProgress - $35a6 = SetProgress.loop - $35aa = SetProgress.correct - $35d1 = SetProgress.wvr_u1 - $35dd = SetProgress.wvr_u2 - $35eb = SetProgress.wvr_u3 - $35f7 = SetProgress.wvr_u4 - $3605 = SetProgress.wvr_u5 - $3611 = SetProgress.wvr_u6 - $361f = SetProgress.wvr_u7 - $362b = SetProgress.wvr_u8 - $3639 = SetProgress.wvr_u9 - $3645 = SetProgress.wvr_u10 - SECTION: $364d-$36de ($0092 bytes) ["Code Entry Point"] - $364d = Main - $3676 = Main.notgbc - $367c = Main.wvr_u1 - $36a3 = EventLoop - $36b9 = EventLoop.eventloopjumps - $36c2 = EventLoopPostHandler - $36c4 = EventLoopPostHandler.wvb_u2 - $36d6 = EventLoopPostHandler.vblankjumps - SECTION: $36df-$3756 ($0078 bytes) ["Hi Score Data"] - $36df = sHiscoreDefaultData - SECTION: $3757-$37a8 ($0052 bytes) ["Tile Functions"] - $3757 = LoadTitleTiles - $3775 = LoadGameplayTiles - $378b = LoadGameplayTiles.gbc - $379a = LoadGameplayTiles.dmg - SECTION: $37a9-$37e4 ($003c bytes) ["Time Data"] - $37a9 = sFramesToCS - SECTION: $37e5-$3812 ($002e bytes) ["Memory Functions"] - $37e5 = UnsafeMemCopy - $37ee = SafeMemCopy.wvr_u1 - $37ee = SafeMemCopy - $37fd = UnsafeMemSet - $3805 = SafeMemSet - $3805 = SafeMemSet.wvr_u2 - SECTION: $3813-$3838 ($0026 bytes) ["Gameplay Function Trampolines"] - $3813 = SwitchToGameplay - $381c = SwitchToGameplayBig - $3825 = GamePlayEventLoopHandler - $382f = GamePlayBigEventLoopHandler - SECTION: $3839-$385d ($0025 bytes) ["Interrupt Initialization Functions"] - $3839 = EnableScreenSquish - $3853 = DisableScreenSquish - SECTION: $385e-$387f ($0022 bytes) ["OAM Functions"] - $385e = CopyOAMHandler - $386a = ClearOAM - SECTION: $3880-$388e ($000f bytes) ["Banking Functions"] - $3880 = BankingInit - SECTION: $388f-$3898 ($000a bytes) ["OAM DMA Code"] - $388f = OAMDMA - $3899 = OAMDMAEnd - EMPTY: $3899-$3fff ($0767 bytes) - TOTAL EMPTY: $0770 bytes + SECTION: $325d-$339c ($0140 bytes) ["Hi Score Data"] + $325d = sHiscoreDefaultData + SECTION: $339d-$347c ($00e0 bytes) ["Score Functions"] + $339d = ScoreInit + $33c5 = IncreaseScore + $33fd = IncreaseScore.doConvert + $33ff = !0 + $3415 = IncreaseScore.carry + $3417 = IncreaseScore.postConvert + $3424 = !1 + $342b = IncreaseScore.preAddDigit + $3453 = IncreaseScore.addDigit + $3469 = IncreaseScore.nextDigit + SECTION: $347d-$3549 ($00cd bytes) ["Input Functions"] + $347d = InputInit + $348f = GetInput + $348f = GetInput.btns + $349c = GetInput.readA + $34a0 = GetInput.setA + $34ab = GetInput.clearA + $34ae = GetInput.readB + $34b2 = GetInput.setB + $34bd = GetInput.clearB + $34c0 = GetInput.readSelect + $34c4 = GetInput.setSelect + $34cf = GetInput.clearSelect + $34d2 = GetInput.readStart + $34d6 = GetInput.setStart + $34e1 = GetInput.clearStart + $34e4 = GetInput.dpad + $34f1 = GetInput.readUp + $34f5 = GetInput.setUp + $3500 = GetInput.clearUp + $3503 = GetInput.readDown + $3507 = GetInput.setDown + $3512 = GetInput.clearDown + $3515 = GetInput.readLeft + $3519 = GetInput.setLeft + $3524 = GetInput.clearLeft + $3527 = GetInput.readRight + $352b = GetInput.setRight + $3536 = GetInput.clearRight + $3539 = GetInput.priorities + $3544 = GetInput.zero + SECTION: $354a-$3614 ($00cb bytes) ["Title Function Trampolines"] + $354a = SwitchToTitle + $3553 = TitleEventLoopHandler + $355d = TitleVBlankHandler + $3567 = PersistLevel + $3575 = DrawSpeedMain + $35c5 = DrawSpeedSettings + SECTION: $3615-$36da ($00c6 bytes) ["Time Functions"] + $3615 = TimeInit + $3635 = StartCountdown + $3643 = ResetGameTime + $364e = CheckTorikan + $3665 = CheckTorikan.failure + $3667 = CheckTorikan.success + $366a = HandleTimers + $3690 = HandleTimers.reduce + $369d = HandleTimers.clock + $36b7 = HandleTimers.go + SECTION: $36db-$378c ($00b2 bytes) ["Progress Functions"] + $36db = SetProgress + $36e6 = SetProgress.loop + $36ea = SetProgress.correct + $3711 = SetProgress.wvr_u1 + $371d = SetProgress.wvr_u2 + $372b = SetProgress.wvr_u3 + $3737 = SetProgress.wvr_u4 + $3745 = SetProgress.wvr_u5 + $3751 = SetProgress.wvr_u6 + $375f = SetProgress.wvr_u7 + $376b = SetProgress.wvr_u8 + $3779 = SetProgress.wvr_u9 + $3785 = SetProgress.wvr_u10 + SECTION: $378d-$381e ($0092 bytes) ["Code Entry Point"] + $378d = Main + $37b6 = Main.notgbc + $37bc = Main.wvr_u1 + $37e3 = EventLoop + $37f9 = EventLoop.eventloopjumps + $3802 = EventLoopPostHandler + $3804 = EventLoopPostHandler.wvb_u2 + $3816 = EventLoopPostHandler.vblankjumps + SECTION: $381f-$3870 ($0052 bytes) ["Tile Functions"] + $381f = LoadTitleTiles + $383d = LoadGameplayTiles + $3853 = LoadGameplayTiles.gbc + $3862 = LoadGameplayTiles.dmg + SECTION: $3871-$38ac ($003c bytes) ["Time Data"] + $3871 = sFramesToCS + SECTION: $38ad-$38da ($002e bytes) ["Memory Functions"] + $38ad = UnsafeMemCopy + $38b6 = SafeMemCopy.wvr_u1 + $38b6 = SafeMemCopy + $38c5 = UnsafeMemSet + $38cd = SafeMemSet + $38cd = SafeMemSet.wvr_u2 + SECTION: $38db-$3900 ($0026 bytes) ["Gameplay Function Trampolines"] + $38db = SwitchToGameplay + $38e4 = SwitchToGameplayBig + $38ed = GamePlayEventLoopHandler + $38f7 = GamePlayBigEventLoopHandler + SECTION: $3901-$3925 ($0025 bytes) ["Interrupt Initialization Functions"] + $3901 = EnableScreenSquish + $391b = DisableScreenSquish + SECTION: $3926-$3947 ($0022 bytes) ["OAM Functions"] + $3926 = CopyOAMHandler + $3932 = ClearOAM + SECTION: $3948-$3956 ($000f bytes) ["Banking Functions"] + $3948 = BankingInit + SECTION: $3957-$3960 ($000a bytes) ["OAM DMA Code"] + $3957 = OAMDMA + $3961 = OAMDMAEnd + EMPTY: $3961-$3fff ($069f bytes) + TOTAL EMPTY: $06a8 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -2536,7 +2536,7 @@ ROMX bank #6: TOTAL EMPTY: $1187 bytes SRAM bank #0: - SECTION: $a000-$a60e ($060f bytes) ["Persistent Globals"] + SECTION: $a000-$ab86 ($0b87 bytes) ["Persistent Globals"] $a000 = rCheck $a006 = rLastProfile $a007 = rProfileName @@ -2650,14 +2650,14 @@ SRAM bank #0: $a290 = rSelectedStartLevel9 $a292 = rUnused9 $a2c7 = rScoreTableDMGT - $a33f = rScoreTableTGM1 - $a3b7 = rScoreTableTGM3 - $a42f = rScoreTableDEAT - $a4a7 = rScoreTableSHIR - $a51f = rScoreTableCHIL - $a597 = rScoreTableMYCO - EMPTY: $a60f-$bfff ($19f1 bytes) - TOTAL EMPTY: $19f1 bytes + $a407 = rScoreTableTGM1 + $a547 = rScoreTableTGM3 + $a687 = rScoreTableDEAT + $a7c7 = rScoreTableSHIR + $a907 = rScoreTableCHIL + $aa47 = rScoreTableMYCO + EMPTY: $ab87-$bfff ($1479 bytes) + TOTAL EMPTY: $1479 bytes WRAM0 bank #0: SECTION: $c000-$c3ff ($0400 bytes) ["GBC Shadow Tilemap"] @@ -2719,96 +2719,96 @@ WRAM0 bank #0: $cd1f = wRightSlamTimer $cd20 = wMovementLastFrame $cd21 = wReturnToSmall - SECTION: $cd22-$cda7 ($0086 bytes) ["Hi Score Variables"] + SECTION: $cd22-$ce83 ($0162 bytes) ["Hi Score Variables"] $cd22 = wTargetHSTable $cd24 = wWorkingCopy - SECTION: $cda8-$cde8 ($0041 bytes) ["Stack"] - $cda8 = wStack - $cde9 = wStackEnd - SECTION: $cde9-$ce14 ($002c bytes) ["TGM3 RNG Variables"] - $cde9 = wTGM3Bag - $ce0c = wTGM3Droughts - $ce13 = wTGM3GeneratedIdx - $ce14 = wTGM3WorstDroughtIdx - SECTION: $ce15-$ce27 ($0013 bytes) ["Level Variables"] - $ce15 = wBoneActivationLevel - $ce17 = wInvisActivationLevel - $ce19 = wKillScreenActivationLevel - $ce1b = wKillScreenActivationLevelBCD - $ce1d = wLastLockLevel - $ce1f = wStaffRollDuration - $ce21 = wBigStaffRoll - $ce22 = wBonesActive - $ce23 = wInvisActive - $ce24 = wKillScreenActive - $ce25 = wLockLevel - $ce26 = wShouldGoStaffRoll - $ce27 = wNoMoreLocks - SECTION: $ce28-$ce39 ($0012 bytes) ["Grade Variables"] - $ce28 = wDecayRate - $ce29 = wGradePoints - $ce2a = wInternalGrade - $ce2b = wDisplayedGrade - $ce2c = wEffectTimer - $ce2d = wRankingDisqualified - $ce2e = wDecayCounter - $ce2f = wGradeGauge - $ce30 = wSMult - $ce31 = wDMult - $ce32 = wTMult - $ce33 = wSRate - $ce34 = wDRate - $ce35 = wTRate - $ce36 = wQRate - $ce37 = wTGM1level300RequirementMet - $ce38 = wTGM1level500RequirementMet - $ce39 = wTGM1level999RequirementMet - SECTION: $ce3a-$ce43 ($000a bytes) ["Progress Variables"] - $ce3a = wProgress0B1 - $ce3b = wProgress0B2 - $ce3c = wProgress1B1 - $ce3d = wProgress1B2 - $ce3e = wProgress2B1 - $ce3f = wProgress2B2 - $ce40 = wProgress3B1 - $ce41 = wProgress3B2 - $ce42 = wProgress4B1 - $ce43 = wProgress4B2 - SECTION: $ce44-$ce4c ($0009 bytes) ["Globals"] - $ce44 = wSwapABState - $ce45 = wRNGModeState - $ce46 = wRotModeState - $ce47 = wDropModeState - $ce48 = wSpeedCurveState - $ce49 = wAlways20GState - $ce4a = wInitialA - $ce4b = wInitialB - $ce4c = wInitialC - SECTION: $ce4d-$ce52 ($0006 bytes) ["Time Variables"] - $ce4d = wMinutes - $ce4e = wSeconds - $ce4f = wFrames - $ce50 = wCountDown - $ce52 = wCountDownZero - SECTION: $ce53-$ce57 ($0005 bytes) ["Title Variables"] - $ce53 = wSelected - $ce54 = wTitleMode - $ce55 = wProfileName - SECTION: $ce58-$ce5b ($0004 bytes) ["Banking Variables"] - $ce58 = wBankBackup - SECTION: $ce5c-$ce5f ($0004 bytes) ["Gameplay Variables"] - $ce5c = wRollLine - $ce5d = wInStaffRoll - $ce5e = wBigModeTransfered - $ce5f = wGameOverIgnoreInput - SECTION: $ce60-$ce62 ($0003 bytes) ["GBC Variables"] - $ce60 = wOuterReps - $ce61 = wInnerReps - $ce62 = wTitlePal - SECTION: $ce63-$ce63 ($0001 byte) ["SRAM Variables"] - $ce63 = wTarget - EMPTY: $ce64-$cfff ($019c bytes) - TOTAL EMPTY: $019c bytes + SECTION: $ce84-$cec4 ($0041 bytes) ["Stack"] + $ce84 = wStack + $cec5 = wStackEnd + SECTION: $cec5-$cef0 ($002c bytes) ["TGM3 RNG Variables"] + $cec5 = wTGM3Bag + $cee8 = wTGM3Droughts + $ceef = wTGM3GeneratedIdx + $cef0 = wTGM3WorstDroughtIdx + SECTION: $cef1-$cf03 ($0013 bytes) ["Level Variables"] + $cef1 = wBoneActivationLevel + $cef3 = wInvisActivationLevel + $cef5 = wKillScreenActivationLevel + $cef7 = wKillScreenActivationLevelBCD + $cef9 = wLastLockLevel + $cefb = wStaffRollDuration + $cefd = wBigStaffRoll + $cefe = wBonesActive + $ceff = wInvisActive + $cf00 = wKillScreenActive + $cf01 = wLockLevel + $cf02 = wShouldGoStaffRoll + $cf03 = wNoMoreLocks + SECTION: $cf04-$cf15 ($0012 bytes) ["Grade Variables"] + $cf04 = wDecayRate + $cf05 = wGradePoints + $cf06 = wInternalGrade + $cf07 = wDisplayedGrade + $cf08 = wEffectTimer + $cf09 = wRankingDisqualified + $cf0a = wDecayCounter + $cf0b = wGradeGauge + $cf0c = wSMult + $cf0d = wDMult + $cf0e = wTMult + $cf0f = wSRate + $cf10 = wDRate + $cf11 = wTRate + $cf12 = wQRate + $cf13 = wTGM1level300RequirementMet + $cf14 = wTGM1level500RequirementMet + $cf15 = wTGM1level999RequirementMet + SECTION: $cf16-$cf1f ($000a bytes) ["Progress Variables"] + $cf16 = wProgress0B1 + $cf17 = wProgress0B2 + $cf18 = wProgress1B1 + $cf19 = wProgress1B2 + $cf1a = wProgress2B1 + $cf1b = wProgress2B2 + $cf1c = wProgress3B1 + $cf1d = wProgress3B2 + $cf1e = wProgress4B1 + $cf1f = wProgress4B2 + SECTION: $cf20-$cf28 ($0009 bytes) ["Globals"] + $cf20 = wSwapABState + $cf21 = wRNGModeState + $cf22 = wRotModeState + $cf23 = wDropModeState + $cf24 = wSpeedCurveState + $cf25 = wAlways20GState + $cf26 = wInitialA + $cf27 = wInitialB + $cf28 = wInitialC + SECTION: $cf29-$cf2e ($0006 bytes) ["Time Variables"] + $cf29 = wMinutes + $cf2a = wSeconds + $cf2b = wFrames + $cf2c = wCountDown + $cf2e = wCountDownZero + SECTION: $cf2f-$cf33 ($0005 bytes) ["Title Variables"] + $cf2f = wSelected + $cf30 = wTitleMode + $cf31 = wProfileName + SECTION: $cf34-$cf37 ($0004 bytes) ["Banking Variables"] + $cf34 = wBankBackup + SECTION: $cf38-$cf3b ($0004 bytes) ["Gameplay Variables"] + $cf38 = wRollLine + $cf39 = wInStaffRoll + $cf3a = wBigModeTransfered + $cf3b = wGameOverIgnoreInput + SECTION: $cf3c-$cf3e ($0003 bytes) ["GBC Variables"] + $cf3c = wOuterReps + $cf3d = wInnerReps + $cf3e = wTitlePal + SECTION: $cf3f-$cf3f ($0001 byte) ["SRAM Variables"] + $cf3f = wTarget + EMPTY: $cf40-$cfff ($00c0 bytes) + TOTAL EMPTY: $00c0 bytes HRAM bank #0: SECTION: $ff80-$ff9a ($001b bytes) ["High Field Variables"] @@ -2899,8 +2899,8 @@ HRAM bank #0: TOTAL EMPTY: $0003 bytes SUMMARY: - ROM0: 14480 bytes used / 1904 free + ROM0: 14680 bytes used / 1704 free ROMX: 64126 bytes used / 34178 free in 6 banks - SRAM: 1551 bytes used / 6641 free in 1 bank - WRAM0: 3684 bytes used / 412 free + SRAM: 2951 bytes used / 5241 free in 1 bank + WRAM0: 3904 bytes used / 192 free HRAM: 124 bytes used / 3 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 4cfbbaa65e8c694e65c1e31d5ea0b2d6c84ef2c8..08d6ab205390e739564eec9cd7903b00fe3eba04 100644 GIT binary patch delta 8165 zcmb_g4RjmDo!?nmUv?~6wyelbWbatEvvv}H+mRc2kpn@HKuk+M9<*E<5|WnY8m?TM zz(H)nhXa%ZSS|{Ew1^xZZ9^)+@8OitcP_$-WU?L}^nsx*Pgm|Z*!O63KoZ!7)%|C8 zC9NTW^xipH?QeebpPB#sXXZCEJ2K)J8F2{5^gl-FBk~fW^b)y`C_O~(C5k;F_mCYj z!==;d9B@&Z+e4@&4+w2+GkM^L53%xKuFW+GmRu%nr%o(W|E8M_5N zXSv`|NI;n(p9M4f5ywcAAs<3 zmKc@TX(eFzr9y_i4-B-LCPOwx=^)}-XWg(s!m2&Q3Jlb%2xJ|Oyo|m}9Z=dy7{^}* zubczi8Nsp+P;xSq{q#MzinwyH{X#*gTkC;VkUP(U(Ed8=)mN2Fe@&a6QNWdAhiuu$^aPv#C_sa!hphr z`!CN#ihAf{glb4@hGJw+xWce}F>fjUbk1eH`oKWde~%wy+e-JLr7MqPW@1(|=kSLb zo}WJ}#UHynt?w>@@QfXFXDtSdS7j~iyGz6e=e9Iqa&(vcqmPWE@ z@!9#li|phLXH>9^$akgEs;{F`sFQc4AoGpNs6ceK9@y6n)>p7?LZyt@m?7s*>5qMB#R+}oyRuKKR&Eg(IEl^SVx(1lYHn&p9T12J z*38qHXA+r%nMCGL=Gn||GS4NiZ^?=(Gj%Ee{Zkv^4He=&txozEY?a-lRjz=?Lw3rQ zL>Yc4rN-IYh9?<@Coz{G5O&!BT>ygj**NB@hrw+R)}JBtK2#5@UoD|u zcnj8Zz}oJrGpxbbs~dZXxPhx4)_kOu=eSNjl!A%c2$9tylr*B6 zhBm8VKcKUYt_|q3TF?2j2URpvv@XPxPRkja#Z{yGQYF;O_CBq~!Z@Y1ISTXk?9;T+ zlDH5zEVGltsU3z-g&L?E<=h+_>zc1OQ;}9HCm>!SJ&6iUfTg$>f9D&Pm&O~E(zwhK zr7SLEqRffQ4MZuA%R!>J;&LNV+;O=H=2l$pB#I+0cM-)Im%EAB)Nm_Zn~ygvzQQ6~ z;|bXo7v{;Doe+>UOIQV(Ei7uS4M=OPKY(HSKH{sDDh828wTqu##altA(9}{fi3qfxEHC-rzXzTXJ zJp~+nqKHSIEaGEN6|wzSMI8OLj+2K%iY*>iOF5KC_BF~E5V60p5BllfY3`~226JEi z*J4v|{j0I5zy6D{smFeZQL)edR&46Ee?E>D`|5Y$V$W?MSU2FxCyh(MmE;MG?Qzej z5p^SZYWro1kAhYn_Ld1p5tLUu$m*(Yt|1;exe+19R@O%Q#NqA1d za~hsc;rR?61)jgbb7p#{{P}cRK}0;&JV`71-GV*dCaR%4BX~1$fyq3U_xSsDo zr^Wku4t*v*%lmi>nWVzv0;%{thBjfl`jB70cE<~$GEF4uW~WZ$kHr(bFOZwY;07oT zHJITnHyxRwg>%ped|GU1X>=ok!6DcQZNRcbT+_0s^yD-+t{IKp+w!QjX>u9`>7w%7 zu^GQVjqDVkkUr>uP3AM$m`-NiR4@^T+846$x~2VL$BF5oL=;a>i-8XR@cYv}LDRqN zYc%iuY3FvRLC$KHkopIpT95FKkZnCI>udod6J|}=V!|aRY&BsUV8xqv#;Ihdx2N%| z9pLO(s^edgi!uJ({>mJS#M?Zzw)%iK59{3iJglq_+;x%2-g`amL{}~B>AIZV5>lFN40*}8|$c3GuGm|HGv`24hAF}+Zx@U}ZU54hc zAzKNNjt!ki!r5>^&+`|x5V@7e3yHjl$cyPQsg3Rm_H+V3*-gOi02)$xyR_0m4u`5Z zx6(>}3lqn#EF>cCt^463GNddf(PufkR*AoSRt*ZH?OrWJ-3a%JR-!KDY*12Nnu6aj zw6BII67YhoFgT>8S_!ljhL+Q~suK=vj;N=Usj+frJU${m(_1@S)mn+~+N=0TG&}gp zc22n=sLU;3yl=1KFQkG>O#$O4_bRo8R8W~$!1(#S%KSnqs00caAKk0e6;eT^9&oeX zXj*QDAT1y_$vnL|Fib*bBCzo=T<6Qv^hUU~uXebrU%Gmp)Z8!qJC>^Zq+5HWWs9Us z`V*PAq!qo=!8U26P1@TdUEha4Tas1iQS*c3mA%OiL&?)2+x^*#4s(B#{+z?UP(JgT z-sCUc$)8t&z<8pUVrB#}7U}trCwduXZbwWxU{Ha4Zi|tv-Jv+QC%V~e<%wQZNQzG` z8KtwtMx@Nz6G=8C_J^9=*Y)E+=TIpFI}2u16lZ+&`iPm72H|oB{nakca4&|d^w^%z zuWipoB2rmBTxc(p=JiWm{jrthsHv`lfIuk;xt(NJy@z%me6$K*r z4g>pZJ-jKWTg$O(X0c8e^7;;iq#KcNcV<=EbH#Fc_l~n5VX<$!P;F%~Pl`A-_s2(F z=wifnkQi~Jn&Ea(W!@@Wv)ykIzOx;_yC1I2pnOHf@-Sss6BE=Ji;1~VV@gcSMvbu+ z8E6}mR~EdoU!Q_v7@iHv{=8#7;{JtXpA`|FKLW9B!AHuQ%L9@KFs2w{o56AVjH}=2;K{?Zh{m0LChms39~QX z)fn^ejA)G6m$=55eVNc0vo9Hq0bhm-BhP3fW-E>u<}}7$WWF?p+x8bmYW5KBEoRIf z!bCAc8^U3j5BeAqBj>Be@PuKbk6}IqZgIv?U!o25kYOfG_QKr7&qUyq1+%{m;;9f!PbwJ|_pPdHaHUswz zsbOteuobb=RAUrtB5?hn&FcVq5WC2$yN7s3*zhW0@~(u^x>E_0a~4YLJ|#@PY1X<+ z36pC!zARjHCsBm3oI#fy3&Ms&iK1hwH7YPu+b-XsmQ0N|C0%Q%vz}_SxVIBN4mNWv z^r90!yFjqI3PcxtfdQhsKy<@b86cqOjn$}axRVUPHJcThibeB8p=h2c6#eo%C=9YT zRkBZR%RaRQeVlXZM{sFNZ}QQ#23yXUSns22VWgz*taTY4cG>+zvpIFZMG;6p3f zExobBK2&Gf(wiRJaPU#@*bN7Fd-p|9U>LT&UreE`$d{u#;I1h&pV1(Ube$yEOKE%{ zg|duqE9{D%11bDq8d7xMJdpC_F`SUFga?nKKQTV~0oW*_?Ws`O3Z*IgbP+zEhr=N} zk;frCRfK;i!gq@B{UZFR2+tIuEnR4?q6lk?u(1FITSiI825&>c_*H`_WSP&=>0FZi z#Ls3=!uMil_P+3Ymdt(dDTyPoLl>c;1+aeDsgoCHUstX0(mp^=MV3R7<$0KKjW7#5 zz{Y~h(IadF8UOuq^cwQO>MG$Qu-nvtT{SGW*wiTMj=dR0l`JGYyU~hR?9lHFjeG%Zi(L5q!a+hB2ni}2kdSsj+OQgVJwNZ3 zs+uK7M7ki5$jr$7BzD(o)a<5CajxuJYBldr+DPokYScOB!oKX=>J?mNf|@Okq1wpc zM%vT@3eA6|=IEZw}6&adk1Co1#OL)XF-qpt*1 z4vhd=$_1q+Msl`GUkVuE5`)Q1ANqowL=ywix1 ze-Xr;Mh{}uPn6H6)%iKjB5g2_#pP}EdOdV;vbQg`^$FDO>@O8^nHgnC3$RZK|0LJ#*hvtHcQ7sBvWA8qQ zc(@vPrc&5_+_+o)A%(qp{7wqjO@*?~}kU}HDLP&Es3I2t><9PT-b5^lY2mJ&kpYnAZiX1xBmNeNpwQ6*fX zvAPn<`_W+8Mw1e5y-riYt=DNv2q~(Bmn&F;eeLT75qfRb%oC<0>A>ap0__rqfA13USkXPG}z*kKqR~RCB)fOs}E03Q`BpaklBhuhtK_{#7 U+f-f}C0!c(jQwhsCU#!^zsjbpWdHyG delta 8165 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