From 3bc39d6e426ba0586d3a51890c99f595ea126062 Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Fri, 10 Nov 2023 08:49:26 +0100 Subject: [PATCH] Tetry done. --- bin/DMGTRIS.GBC | Bin 131072 -> 131072 bytes bin/DMGTRIS.map | 344 +++++++++++++++++++++------------------- bin/DMGTRIS.pocket | Bin 131072 -> 131072 bytes bin/DMGTRIS.sym | 273 ++++++++++++++++--------------- src/include/globals.asm | 1 + src/res/title_data.inc | 48 ++++++ src/state_title.asm | 27 +++- 7 files changed, 393 insertions(+), 300 deletions(-) diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 000c5e2535bbe15bad2104d0e4bfdfe5c35c3f25..017c7f31cff3aeffa8438b765079d5f71205d099 100644 GIT binary patch delta 1490 zcma)3Z)h839KK(gWT{?~OLH~3i@86su3g2Y%WxFIdiZa-EqAFngne)*tBPNyh~NjS z$p;7fE%_pO00B;o+U#)?U&_`MsCTUiBJbGj_G2p7=2RLtvM*r{OC# zxf6#5p7HOhdrL!H<+Fi9myLtl;B-NZvI6i4k>xo^v9VYvN^@Ndq@rvn3Mslrj4}|E zM3LtNNb>z4(jo&km|&R@16cm6-e#a09GU=hl7S@6^+TACvkx+1aG#z3w?UG(osCZd z5dE*r8=iI{C4lC_XqV#9JjtgpLr8R7@6IeRF$T|Q5E6_XEhHsnyd)2a7+wJf^Y^Fl zkIWH1iL+=;M6h+?B#-uDYfe$NAG)H9Ahx?>v%3Rq44uI-_3)A)(n%3muGK(D^xLVN zP<9f`!$*O?53}J-ai##l9{fu^j3JLe+*lrg$Sedv@r?&yyCA(n z&yo(6#8e`xk(noCY7$Bw^Seyrd$Y+(d}K(GU!DXXg;3;4MLz1*@xzU(*}Q{Cd;LiFJ!HWnkIZ%~c%+*@DB}a$LO{84SS+;!L zmY3V|bw^&e!RNkhqxGD19jQSL(H~Xoddn%OS!)O`BDiF&*-(`%YPFg<41TKdlbM%q z*!es55q3Z6-cLTrk>fcd;eodk!%F9Y7v$6_@Y(}G_IY!mccC{gk0{0$9*8C0Y7tgX zZV={N!ZF48%>ya%(-vWe+aXRzK3C-S4r@c|fYX{|^ZMjQmrWbn|M=#?1-HH9dv^0+ zi*L6VQU%BNnoDqe+dI6+Ik!)?6)*47%$0QGiYd=1pioV!&-++s{5JYmPXa@kmooBl zyP!_Fh-4S!Ql?fz;of2~@2BLcT<2vUP=7@SV2%~1xaLVFYL9I z+Ra|Xd^1O43PZ}!wfgmkH4a}GQDGpy5F4nMro_nEbK9*gIG*SEeSe?t^Zng%J|E@t zQDdi&_PZQzLRANMQ*PL&(d(wAI(7vtF6ESBdmlRAQjFtBvM`XU>20nS^h`n*sI3V< zt!|zcZ&ibM*WbLyVdt4Du&t%m&C$AE8Sy2~R zc{QE1%*ks+9O0FuHARZT2p@|{O-Qdvev&+lv7XFdS`P;rpsE4dIq2ZT0t4ziJcx_V zoM*}&Bc1X|2t6sqE8-O%W<1@PANbdpQXB8E_{@N;+OJsrU_fPi*VAC7dV|eKZ(=4} zk+Vn@qflcerrrPVw*O;#a*bS!GT3OY5mEC=?q)G6YsuuUs6Zw+Taov8sp13a@jNO9 z3(i<9IU`}8&!g8cUXFa0B^PYCG@2MZ;K)jzT0M~8bKHn3jU#-mh7{>VOc+tMeM_-e zd2sT8d1&FGlZSpDE(_uz6S`sc3&fs?NC`tg@(W_vgv#v^o>)Hfu*8E-fKmZm0(b=Q z3gW5>wV8-zH0QWxMoz6Ai%-nRO4)HTB1!XtIAum%b;E)joN!p=p%;$rM7*0Y2IhiY z2~%Khh+f+wid_y)Ijr)~q+_QvEL^x^&qreY6bd~b(;|0a7~h;QhC7DuTgY;Y4!TkF EFA@B&yZ`_I diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index 133ff74..7c11296 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -583,172 +583,182 @@ ROMX bank #3: ROMX bank #4: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_TITLE"] - SECTION: $4008-$4758 ($0751 bytes) ["Title Functions Banked"] - $4008 = SwitchToTitleB - $400e = SwitchToTitleB.wvr_u1 - $4017 = !0 - $403a = SwitchToTitleB.wvb_u2 - $4041 = SwitchToTitleB.wvbe_u3 - $4047 = SwitchTitleMode - $4058 = SwitchTitleMode.wvr_u4 - $4061 = !1 - $406c = SwitchTitleMode.jumps - $407b = SwitchTitleMode.switchMain - $40a8 = SwitchTitleMode.notsgb - $40c9 = SwitchTitleMode.notmgb - $40f1 = SwitchTitleMode.agb - $410b = SwitchTitleMode.done - $4113 = SwitchTitleMode.switchProfile - $411b = SwitchTitleMode.switchSettings - $412f = SwitchTitleMode.switchRecords - $4137 = SwitchTitleMode.switchCredits - $413f = TitleEventLoopHandlerB - $414d = TitleEventLoopHandlerB.jumps - $415c = TitleEventLoopHandlerB.eventLoopMain - $417f = TitleEventLoopHandlerB.d0 - $4193 = TitleEventLoopHandlerB.eventLoopProfile - $4194 = TitleEventLoopHandlerB.eventLoopSettings - $41be = TitleEventLoopHandlerB.d1 - $41d3 = TitleEventLoopHandlerB.l1 - $41e8 = TitleEventLoopHandlerB.r1 - $41fc = TitleEventLoopHandlerB.eventLoopRecords - $41fd = TitleEventLoopHandlerB.eventLoopCredits - $41fe = TitleVBlankHandlerB - $420c = TitleVBlankHandlerB.jumps - $421b = TitleVBlankHandlerB.vblankMain - $4225 = TitleVBlankHandlerB.notselected_u5 - $422a = TitleVBlankHandlerB.selected_u5 - $422d = TitleVBlankHandlerB.done_u5 - $4237 = TitleVBlankHandlerB.notselected_u6 - $423c = TitleVBlankHandlerB.selected_u6 - $423f = TitleVBlankHandlerB.done_u6 - $4249 = TitleVBlankHandlerB.notselected_u7 - $424e = TitleVBlankHandlerB.selected_u7 - $4251 = TitleVBlankHandlerB.done_u7 - $425b = TitleVBlankHandlerB.notselected_u8 - $4260 = TitleVBlankHandlerB.selected_u8 - $4263 = TitleVBlankHandlerB.done_u8 - $426d = TitleVBlankHandlerB.notselected_u9 - $4272 = TitleVBlankHandlerB.selected_u9 - $4275 = TitleVBlankHandlerB.done_u9 - $427f = TitleVBlankHandlerB.notselected_u10 - $4284 = TitleVBlankHandlerB.selected_u10 - $4287 = TitleVBlankHandlerB.done_u10 - $4311 = TitleVBlankHandlerB.disabled - $431d = TitleVBlankHandlerB.profile - $432c = TitleVBlankHandlerB.vblankProfile - $432d = TitleVBlankHandlerB.vblankSettings - $4337 = TitleVBlankHandlerB.notselected_u11 - $433c = TitleVBlankHandlerB.selected_u11 - $433f = TitleVBlankHandlerB.done_u11 - $4349 = TitleVBlankHandlerB.notselected_u12 - $434e = TitleVBlankHandlerB.selected_u12 - $4351 = TitleVBlankHandlerB.done_u12 - $435b = TitleVBlankHandlerB.notselected_u13 - $4360 = TitleVBlankHandlerB.selected_u13 - $4363 = TitleVBlankHandlerB.done_u13 - $436d = TitleVBlankHandlerB.notselected_u14 - $4372 = TitleVBlankHandlerB.selected_u14 - $4375 = TitleVBlankHandlerB.done_u14 - $437f = TitleVBlankHandlerB.notselected_u15 - $4384 = TitleVBlankHandlerB.selected_u15 - $4387 = TitleVBlankHandlerB.done_u15 - $4391 = TitleVBlankHandlerB.notselected_u16 - $4396 = TitleVBlankHandlerB.selected_u16 - $4399 = TitleVBlankHandlerB.done_u16 - $43a3 = TitleVBlankHandlerB.notselected_u17 - $43a8 = TitleVBlankHandlerB.selected_u17 - $43ab = TitleVBlankHandlerB.done_u17 - $43b5 = TitleVBlankHandlerB.notselected_u18 - $43ba = TitleVBlankHandlerB.selected_u18 - $43bd = TitleVBlankHandlerB.done_u18 - $4447 = TitleVBlankHandlerB.disabled1 - $4453 = TitleVBlankHandlerB.buttons - $446f = TitleVBlankHandlerB.vblankRecords - $4470 = TitleVBlankHandlerB.vblankCredits - $4471 = MainHandleA - $447f = MainHandleA.jumps - $4491 = MainHandleA.tosettings - $4496 = MainHandleUp - $44a2 = !2 - $44a8 = MainHandleDown - $44b4 = !3 - $44b9 = SettingsHandleA - $44c6 = SettingsHandleB - $44cb = SettingsHandleDown - $44d7 = !4 - $44dc = SettingsHandleUp - $44e8 = !5 - $44ee = SettingsHandleLeft - $44ff = SettingsHandleLeft.jumps - $4517 = SettingsHandleLeft.buttons - $4526 = !6 - $452f = SettingsHandleLeft.rng - $453e = !7 - $4547 = SettingsHandleLeft.rot - $4556 = !8 - $455f = SettingsHandleLeft.drop - $456e = !9 - $4577 = SettingsHandleLeft.curve - $4589 = !10 - $4595 = SettingsHandleLeft.hig - $45a4 = !11 - $45ad = SettingsHandleRight - $45be = SettingsHandleRight.jumps - $45d6 = SettingsHandleRight.buttons - $45e5 = !12 - $45ed = SettingsHandleRight.rng - $45fc = !13 - $4604 = SettingsHandleRight.rot - $4613 = !14 - $461b = SettingsHandleRight.drop - $462a = !15 - $4632 = SettingsHandleRight.curve - $4644 = !16 - $464f = SettingsHandleRight.hig - $465e = !17 - $4666 = DecrementLevel - $467f = IncrementLevel - $4698 = InitSpeedCurve - $46ab = GetEnd - $46b6 = !18 - $46be = !19 - $46c6 = !20 - $46ce = !21 - $46d6 = !22 - $46de = !23 - $46e2 = GetStart - $46ed = !24 - $46f5 = !25 - $46fd = !26 - $4705 = !27 - $470d = !28 - $4715 = !29 - $4719 = CheckLevelRange - $4735 = CheckLevelRange.notatend - $4758 = CheckLevelRange.notatstart - SECTION: $4759-$4d40 ($05e8 bytes) ["Title Screen Static Data"] - $4759 = sEasterM0 - $475e = sEasterM1 - $4763 = sEasterC0 - $476e = sEasterC1 - $4779 = sEasterA0 - $4784 = sEasterA1 - $478f = sEasterS0 - $4794 = sEasterS1 - $4799 = sBUTTONSMode - $47a1 = sRNGMode - $47b5 = sROTMode - $47c5 = sDROPMode - $47d9 = sCURVEMode - $47f5 = sHIGMode - $47fd = sDisabled - $4801 = sTitleScreenMainMap - $4aa1 = sTitleScreenSettingsMap - $4aa1 = sTitleScreenMainMapEnd - $4d41 = sTitleScreenSettingsMapEnd - EMPTY: $4d41-$7fff ($32bf bytes) - TOTAL EMPTY: $32bf bytes + SECTION: $4008-$47ef ($07e8 bytes) ["Title Screen Static Data"] + $4008 = sEasterM0 + $400d = sEasterM1 + $4012 = sEasterC0 + $401d = sEasterC1 + $4028 = sEasterA0 + $4033 = sEasterA1 + $403e = sEasterS0 + $4043 = sEasterS1 + $4048 = sBUTTONSMode + $4050 = sRNGMode + $4064 = sROTMode + $4074 = sDROPMode + $4088 = sCURVEMode + $40a4 = sHIGMode + $40ac = sDisabled + $40b0 = sTetryButtons + $40f0 = sTetryRNG + $4130 = sTetryROT + $4170 = sTetryDROP + $41b0 = sTetryCURVE + $41f0 = sTetryHIG + $4230 = sTetrySTART + $4270 = sTetryEXIT + $42b0 = sTitleScreenMainMap + $4550 = sTitleScreenSettingsMap + $4550 = sTitleScreenMainMapEnd + $47f0 = sTitleScreenSettingsMapEnd + SECTION: $47f0-$4f77 ($0788 bytes) ["Title Functions Banked"] + $47f0 = SwitchToTitleB + $47f6 = SwitchToTitleB.wvr_u1 + $47ff = !0 + $4822 = SwitchToTitleB.wvb_u2 + $4829 = SwitchToTitleB.wvbe_u3 + $482f = SwitchTitleMode + $4840 = SwitchTitleMode.wvr_u4 + $4849 = !1 + $4854 = SwitchTitleMode.jumps + $4863 = SwitchTitleMode.switchMain + $4890 = SwitchTitleMode.notsgb + $48b1 = SwitchTitleMode.notmgb + $48d9 = SwitchTitleMode.agb + $48f3 = SwitchTitleMode.done + $48fb = SwitchTitleMode.switchProfile + $4903 = SwitchTitleMode.switchSettings + $4917 = SwitchTitleMode.switchRecords + $491f = SwitchTitleMode.switchCredits + $4927 = TitleEventLoopHandlerB + $4935 = TitleEventLoopHandlerB.jumps + $4944 = TitleEventLoopHandlerB.eventLoopMain + $4967 = TitleEventLoopHandlerB.d0 + $497b = TitleEventLoopHandlerB.eventLoopProfile + $497c = TitleEventLoopHandlerB.eventLoopSettings + $49a6 = TitleEventLoopHandlerB.d1 + $49bb = TitleEventLoopHandlerB.l1 + $49d0 = TitleEventLoopHandlerB.r1 + $49e4 = TitleEventLoopHandlerB.eventLoopRecords + $49e5 = TitleEventLoopHandlerB.eventLoopCredits + $49e6 = TitleVBlankHandlerB + $49f4 = TitleVBlankHandlerB.jumps + $4a03 = TitleVBlankHandlerB.vblankMain + $4a0d = TitleVBlankHandlerB.notselected_u5 + $4a12 = TitleVBlankHandlerB.selected_u5 + $4a15 = TitleVBlankHandlerB.done_u5 + $4a1f = TitleVBlankHandlerB.notselected_u6 + $4a24 = TitleVBlankHandlerB.selected_u6 + $4a27 = TitleVBlankHandlerB.done_u6 + $4a31 = TitleVBlankHandlerB.notselected_u7 + $4a36 = TitleVBlankHandlerB.selected_u7 + $4a39 = TitleVBlankHandlerB.done_u7 + $4a43 = TitleVBlankHandlerB.notselected_u8 + $4a48 = TitleVBlankHandlerB.selected_u8 + $4a4b = TitleVBlankHandlerB.done_u8 + $4a55 = TitleVBlankHandlerB.notselected_u9 + $4a5a = TitleVBlankHandlerB.selected_u9 + $4a5d = TitleVBlankHandlerB.done_u9 + $4a67 = TitleVBlankHandlerB.notselected_u10 + $4a6c = TitleVBlankHandlerB.selected_u10 + $4a6f = TitleVBlankHandlerB.done_u10 + $4af9 = TitleVBlankHandlerB.disabled + $4b05 = TitleVBlankHandlerB.profile + $4b14 = TitleVBlankHandlerB.vblankProfile + $4b15 = TitleVBlankHandlerB.vblankSettings + $4b1f = TitleVBlankHandlerB.notselected_u11 + $4b24 = TitleVBlankHandlerB.selected_u11 + $4b27 = TitleVBlankHandlerB.done_u11 + $4b31 = TitleVBlankHandlerB.notselected_u12 + $4b36 = TitleVBlankHandlerB.selected_u12 + $4b39 = TitleVBlankHandlerB.done_u12 + $4b43 = TitleVBlankHandlerB.notselected_u13 + $4b48 = TitleVBlankHandlerB.selected_u13 + $4b4b = TitleVBlankHandlerB.done_u13 + $4b55 = TitleVBlankHandlerB.notselected_u14 + $4b5a = TitleVBlankHandlerB.selected_u14 + $4b5d = TitleVBlankHandlerB.done_u14 + $4b67 = TitleVBlankHandlerB.notselected_u15 + $4b6c = TitleVBlankHandlerB.selected_u15 + $4b6f = TitleVBlankHandlerB.done_u15 + $4b79 = TitleVBlankHandlerB.notselected_u16 + $4b7e = TitleVBlankHandlerB.selected_u16 + $4b81 = TitleVBlankHandlerB.done_u16 + $4b8b = TitleVBlankHandlerB.notselected_u17 + $4b90 = TitleVBlankHandlerB.selected_u17 + $4b93 = TitleVBlankHandlerB.done_u17 + $4b9d = TitleVBlankHandlerB.notselected_u18 + $4ba2 = TitleVBlankHandlerB.selected_u18 + $4ba5 = TitleVBlankHandlerB.done_u18 + $4c2f = TitleVBlankHandlerB.disabled1 + $4c3b = TitleVBlankHandlerB.buttons + $4c60 = !2 + $4c68 = TitleVBlankHandlerB.donetetry + $4c8e = TitleVBlankHandlerB.vblankRecords + $4c8f = TitleVBlankHandlerB.vblankCredits + $4c90 = MainHandleA + $4c9e = MainHandleA.jumps + $4cb0 = MainHandleA.tosettings + $4cb5 = MainHandleUp + $4cc1 = !3 + $4cc7 = MainHandleDown + $4cd3 = !4 + $4cd8 = SettingsHandleA + $4ce5 = SettingsHandleB + $4cea = SettingsHandleDown + $4cf6 = !5 + $4cfb = SettingsHandleUp + $4d07 = !6 + $4d0d = SettingsHandleLeft + $4d1e = SettingsHandleLeft.jumps + $4d36 = SettingsHandleLeft.buttons + $4d45 = !7 + $4d4e = SettingsHandleLeft.rng + $4d5d = !8 + $4d66 = SettingsHandleLeft.rot + $4d75 = !9 + $4d7e = SettingsHandleLeft.drop + $4d8d = !10 + $4d96 = SettingsHandleLeft.curve + $4da8 = !11 + $4db4 = SettingsHandleLeft.hig + $4dc3 = !12 + $4dcc = SettingsHandleRight + $4ddd = SettingsHandleRight.jumps + $4df5 = SettingsHandleRight.buttons + $4e04 = !13 + $4e0c = SettingsHandleRight.rng + $4e1b = !14 + $4e23 = SettingsHandleRight.rot + $4e32 = !15 + $4e3a = SettingsHandleRight.drop + $4e49 = !16 + $4e51 = SettingsHandleRight.curve + $4e63 = !17 + $4e6e = SettingsHandleRight.hig + $4e7d = !18 + $4e85 = DecrementLevel + $4e9e = IncrementLevel + $4eb7 = InitSpeedCurve + $4eca = GetEnd + $4ed5 = !19 + $4edd = !20 + $4ee5 = !21 + $4eed = !22 + $4ef5 = !23 + $4efd = !24 + $4f01 = GetStart + $4f0c = !25 + $4f14 = !26 + $4f1c = !27 + $4f24 = !28 + $4f2c = !29 + $4f34 = !30 + $4f38 = CheckLevelRange + $4f54 = CheckLevelRange.notatend + $4f77 = CheckLevelRange.notatstart + EMPTY: $4f78-$7fff ($3088 bytes) + TOTAL EMPTY: $3088 bytes ROMX bank #5: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY"] @@ -2654,7 +2664,7 @@ HRAM bank #0: SUMMARY: ROM0: 13160 bytes used / 3224 free - ROMX: 61489 bytes used / 36815 free in 6 banks + ROMX: 62056 bytes used / 36248 free in 6 banks SRAM: 14 bytes used / 8178 free in 1 bank WRAM0: 3541 bytes used / 555 free HRAM: 124 bytes used / 3 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 42087738027421540d29b0f2444eaf4eec59d83f..9d7e23ba2302adc3d58337cf010db4618e812d39 100644 GIT binary patch delta 1490 zcma)3Z)h839KK)vE!9hMX|7)GV(w3@YgcjUG8{#)9{yWy%UvoCVILgIs^SNyh~NjS z$p;61a>dzRw+}Ufw8JSYM5)uQ247)I+hf8MiXirbD>NWG*KLdxGJls#+By|Hj(dOa z^FGh-dEVa@i@{q| z-0?&GPX%_>e5FCI{8|5@OXk6CaH=51SP_JT#0os5SdI(FXugwyRE!PBAVqgeF$O}i zBni9-NuduUT4KNf6D$*E0Ly>XI}B8VOA~=kGLWSCK8Of$_I@S;t!L-|ZIBckXY-RF z#QrPuhNn}=38481+NF3jPYNl_5SComJ2Q(6$KV+aVuEp^h2^AzmlPnu;T3Q&e}4-9 z$Q%`tIE&^)L`N4%3TQ7i=M-c6pfkpZQoB1gyEDMX&>0+4w;+oWos@v(n+?Q7pOeZB zNvo?o}njA5#WKsLmK9JLL+Z$WJDvsYvhV% zUvI$tXwJUrE;cS-T{FKhO#6>r0fJNr)rFCe(&LKSi$S8eK+Tpcbqka8twJMwi$ zKGl}5yYiX?KJ#rGt>x@%NDb+T{;1j4noc3zUPEvZ!6kdmfhuHCuU4%g2vGH(th{pF z$?x4q*!`qyKlva>j^)gR2i{5ysT~KNQ&K0v=L`hd=d6XEg`T`JteRhVfJ?mDB&?p; zAk4K0@2lo-9!N=_HVHdg9pZHKb5&{Yur_5coYGyJ*CsZ)Y}z>f$2Jenx7xeDXEqPE z_;&dqRd9W;wg|3odx!Vs@+wxW)1TrKWyiJbtE@* zLL1~hgFI}Irwww%Ad`l9*$+oTC^@sKFanVF4CKv10Jz{lzCLGJkT)j-F!JcUVNacv zS$q0xIfCFjHM+DsHBt+emZzg@w-Mp(sq->tPoI-Jt$E}5SNN@zYWaoJAG77xPmi+Y M(cK5PO{q}%3liwmcK`qY delta 986 zcmY+CUr19?9LMjOb6w}Qy0zG*LAyR^QZ`wUL7=;O?>!ONgn9`|11kthtssev?ZKX{ z)b8vd=F1$3DGVt?*Xq|F*0}g!MTHOIgV;d5X-bToox4A7!R4Iu`~E)P^Znh+^?GTq zmmWKfG_zkqO{nVdUfKl*D4lj%uH#m~>{L%luJ@7S9nIR0B?|q?n%?GWQOCx${@R+* zv+Cw)N!fwQHP|ItX>{Ck%~kXh?z&(P2c;Z1IH=(mbdsff$gh!KI}>l^q}g7=^kDX~ z4;4~GV)`(9KXbOWCL(fjivZ{HfaW})UIiHYiNqT@h6&e-*-JiDoVutDv$pO`VJ%_q zCG3~zX+y0N~$u)8@>R_X}MmUpCayN@nSxY*1B?F{$vlV%dR~dXDHJ&?z z!Ga?iP0YyH>viiW*29y}vgCvfCq+f!Ax~EF)arozp5q2oX&4b|DN>{sDQ-a3wk_3S z5x^k;7NA9dP67G_xFSkNjOeDxClY%+EXVbJ*(XXNBPzFr1!DOsz>)x35lTgHir^N( zBTB1A)Mg}>(VXMD2{|-2EIlCA!cohC^jW9Ww$6pllI;6uz2yREgy;Y(