From 73d4d4b4bb4415466255d6efb5932ff8269cc357 Mon Sep 17 00:00:00 2001 From: aerinon Date: Tue, 15 Feb 2022 12:21:24 -0700 Subject: [PATCH] Fix for Hera Basement Cage item inheriting last pot checked Update indicators on keysanity menu for overworld map option --- Items.py | 20 ++++++++++---------- Main.py | 2 +- RELEASENOTES.md | 3 +++ Regions.py | 20 ++++++++++---------- Rom.py | 22 +++++++++++----------- asm/hudadditions.asm | 30 +++++++++++++++++++++++++++++- data/base2current.bps | Bin 82774 -> 83384 bytes 7 files changed, 64 insertions(+), 33 deletions(-) diff --git a/Items.py b/Items.py index 99828fb6..7c737a08 100644 --- a/Items.py +++ b/Items.py @@ -61,19 +61,19 @@ item_table = {'Bow': (True, False, None, 0x0B, 200, 'You have\nchosen the\narche 'Progressive Sword': (True, False, 'Sword', 0x5E, 150, 'a better copy\nof your sword\nfor your time', 'the unknown sword', 'sword-wielding kid', 'sword for sale', 'fungus for some slasher', 'sword boy fights again', 'a sword'), 'Progressive Glove': (True, False, None, 0x61, 150, 'a way to lift\nheavier things', 'and the lift upgrade', 'body-building kid', 'some glove for sale', 'fungus for gloves', 'body-building boy lifts again', 'a glove'), 'Silver Arrows': (True, False, None, 0x58, 100, 'Do you fancy\nsilver tipped\narrows?', 'and the ganonsbane', 'ganon-killing kid', 'ganon doom for sale', 'fungus for pork', 'archer boy shines again', 'the silver arrows'), - 'Green Pendant': (True, False, 'Crystal', [0x04, 0x38, 0x62, 0x00, 0x69, 0x01], 999, None, None, None, None, None, None, None), - 'Blue Pendant': (True, False, 'Crystal', [0x02, 0x34, 0x60, 0x00, 0x69, 0x02], 999, None, None, None, None, None, None, None), - 'Red Pendant': (True, False, 'Crystal', [0x01, 0x32, 0x60, 0x00, 0x69, 0x03], 999, None, None, None, None, None, None, None), + 'Green Pendant': (True, False, 'Crystal', [0x04, 0x38, 0x62, 0x00, 0x69, 0x01, 0x01], 999, None, None, None, None, None, None, None), + 'Blue Pendant': (True, False, 'Crystal', [0x02, 0x34, 0x60, 0x00, 0x69, 0x02, 0x02], 999, None, None, None, None, None, None, None), + 'Red Pendant': (True, False, 'Crystal', [0x01, 0x32, 0x60, 0x00, 0x69, 0x03, 0x02], 999, None, None, None, None, None, None, None), 'Triforce': (True, False, None, 0x6A, 777, '\n YOU WIN!', 'and the triforce', 'victorious kid', 'victory for sale', 'fungus for the win', 'greedy boy wins game again', 'the Triforce'), 'Power Star': (True, False, None, 0x6B, 100, 'a small victory', 'and the power star', 'star-struck kid', 'star for sale', 'see stars with shroom', 'mario powers up again', 'a Power Star'), 'Triforce Piece': (True, False, None, 0x6C, 100, 'a small victory', 'and the thirdforce', 'triangular kid', 'triangle for sale', 'fungus for triangle', 'wise boy has triangle again', 'a Triforce Piece'), - 'Crystal 1': (True, False, 'Crystal', [0x02, 0x34, 0x64, 0x40, 0x7F, 0x06], 999, None, None, None, None, None, None, None), - 'Crystal 2': (True, False, 'Crystal', [0x10, 0x34, 0x64, 0x40, 0x79, 0x06], 999, None, None, None, None, None, None, None), - 'Crystal 3': (True, False, 'Crystal', [0x40, 0x34, 0x64, 0x40, 0x6C, 0x06], 999, None, None, None, None, None, None, None), - 'Crystal 4': (True, False, 'Crystal', [0x20, 0x34, 0x64, 0x40, 0x6D, 0x06], 999, None, None, None, None, None, None, None), - 'Crystal 5': (True, False, 'Crystal', [0x04, 0x32, 0x64, 0x40, 0x6E, 0x06], 999, None, None, None, None, None, None, None), - 'Crystal 6': (True, False, 'Crystal', [0x01, 0x32, 0x64, 0x40, 0x6F, 0x06], 999, None, None, None, None, None, None, None), - 'Crystal 7': (True, False, 'Crystal', [0x08, 0x34, 0x64, 0x40, 0x7C, 0x06], 999, None, None, None, None, None, None, None), + 'Crystal 1': (True, False, 'Crystal', [0x02, 0x34, 0x64, 0x40, 0x7F, 0x06, 0x04], 999, None, None, None, None, None, None, None), + 'Crystal 2': (True, False, 'Crystal', [0x10, 0x34, 0x64, 0x40, 0x79, 0x06, 0x04], 999, None, None, None, None, None, None, None), + 'Crystal 3': (True, False, 'Crystal', [0x40, 0x34, 0x64, 0x40, 0x6C, 0x06, 0x04], 999, None, None, None, None, None, None, None), + 'Crystal 4': (True, False, 'Crystal', [0x20, 0x34, 0x64, 0x40, 0x6D, 0x06, 0x04], 999, None, None, None, None, None, None, None), + 'Crystal 5': (True, False, 'Crystal', [0x04, 0x32, 0x64, 0x40, 0x6E, 0x06, 0x03], 999, None, None, None, None, None, None, None), + 'Crystal 6': (True, False, 'Crystal', [0x01, 0x32, 0x64, 0x40, 0x6F, 0x06, 0x03], 999, None, None, None, None, None, None, None), + 'Crystal 7': (True, False, 'Crystal', [0x08, 0x34, 0x64, 0x40, 0x7C, 0x06, 0x04], 999, None, None, None, None, None, None, None), 'Single Arrow': (False, False, None, 0x43, 3, 'a lonely arrow\nsits here.', 'and the arrow', 'stick-collecting kid', 'sewing needle for sale', 'fungus for arrow', 'archer boy sews again', 'an arrow'), 'Arrows (10)': (False, False, None, 0x44, 30, 'This will give\nyou ten shots\nwith your bow!', 'and the arrow pack', 'stick-collecting kid', 'sewing kit for sale', 'fungus for arrows', 'archer boy sews again', 'ten arrows'), 'Arrow Upgrade (+10)': (False, False, None, 0x54, 100, 'increase arrow\nstorage, low\nlow price', 'and the quiver', 'quiver-enlarging kid', 'arrow boost for sale', 'witch and more skewers', 'upgrade boy sews more again', 'arrow capacity'), diff --git a/Main.py b/Main.py index d00ed5ad..c48c8a37 100644 --- a/Main.py +++ b/Main.py @@ -31,7 +31,7 @@ from Utils import output_path, parse_player_names from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config -__version__ = '1.0.1.4-v' +__version__ = '1.0.1.5-v' from source.classes.BabelFish import BabelFish diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 43f3786a..914b2aff 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -144,6 +144,9 @@ Same as above but both small keys and bigs keys of the dungeon are not allowed o #### Volatile +* 1.0.1.5 + * Fix for Hera Basement Cage item inheriting last pot checked + * Update indicators on keysanity menu for overworld map option * 1.0.1.4 * Reverted SRAM change (the underlying refactor isn't done yet) * 1.0.1.3 diff --git a/Regions.py b/Regions.py index b1226401..fa1107e8 100644 --- a/Regions.py +++ b/Regions.py @@ -1378,16 +1378,16 @@ location_table = {'Mushroom': (0x180013, 0x186338, False, 'in the woods'), 'Ice Block Drop': (None, None, False, None), 'Zelda Pickup': (None, None, False, None), 'Zelda Drop Off': (None, None, False, None), - 'Eastern Palace - Prize': ([0x1209D, 0x53E76, 0x53E77, 0x180052, 0x180070, 0xC6FE], None, True, 'Eastern Palace'), - 'Desert Palace - Prize': ([0x1209E, 0x53E7A, 0x53E7B, 0x180053, 0x180072, 0xC6FF], None, True, 'Desert Palace'), - 'Tower of Hera - Prize': ([0x120A5, 0x53E78, 0x53E79, 0x18005A, 0x180071, 0xC706], None, True, 'Tower of Hera'), - 'Palace of Darkness - Prize': ([0x120A1, 0x53E7C, 0x53E7D, 0x180056, 0x180073, 0xC702], None, True, 'Palace of Darkness'), - 'Swamp Palace - Prize': ([0x120A0, 0x53E88, 0x53E89, 0x180055, 0x180079, 0xC701], None, True, 'Swamp Palace'), - 'Thieves\' Town - Prize': ([0x120A6, 0x53E82, 0x53E83, 0x18005B, 0x180076, 0xC707], None, True, 'Thieves\' Town'), - 'Skull Woods - Prize': ([0x120A3, 0x53E7E, 0x53E7F, 0x180058, 0x180074, 0xC704], None, True, 'Skull Woods'), - 'Ice Palace - Prize': ([0x120A4, 0x53E86, 0x53E87, 0x180059, 0x180078, 0xC705], None, True, 'Ice Palace'), - 'Misery Mire - Prize': ([0x120A2, 0x53E84, 0x53E85, 0x180057, 0x180077, 0xC703], None, True, 'Misery Mire'), - 'Turtle Rock - Prize': ([0x120A7, 0x53E80, 0x53E81, 0x18005C, 0x180075, 0xC708], None, True, 'Turtle Rock'), + 'Eastern Palace - Prize': ([0x1209D, 0x53E76, 0x53E77, 0x180052, 0x180070, 0xC6FE, 0x186FE2], None, True, 'Eastern Palace'), + 'Desert Palace - Prize': ([0x1209E, 0x53E7A, 0x53E7B, 0x180053, 0x180072, 0xC6FF, 0x186FE3], None, True, 'Desert Palace'), + 'Tower of Hera - Prize': ([0x120A5, 0x53E78, 0x53E79, 0x18005A, 0x180071, 0xC706, 0x186FEA], None, True, 'Tower of Hera'), + 'Palace of Darkness - Prize': ([0x120A1, 0x53E7C, 0x53E7D, 0x180056, 0x180073, 0xC702, 0x186FE6], None, True, 'Palace of Darkness'), + 'Swamp Palace - Prize': ([0x120A0, 0x53E88, 0x53E89, 0x180055, 0x180079, 0xC701, 0x186FE5], None, True, 'Swamp Palace'), + 'Thieves\' Town - Prize': ([0x120A6, 0x53E82, 0x53E83, 0x18005B, 0x180076, 0xC707, 0x186FEB], None, True, 'Thieves\' Town'), + 'Skull Woods - Prize': ([0x120A3, 0x53E7E, 0x53E7F, 0x180058, 0x180074, 0xC704, 0x186FE8], None, True, 'Skull Woods'), + 'Ice Palace - Prize': ([0x120A4, 0x53E86, 0x53E87, 0x180059, 0x180078, 0xC705, 0x186FE9], None, True, 'Ice Palace'), + 'Misery Mire - Prize': ([0x120A2, 0x53E84, 0x53E85, 0x180057, 0x180077, 0xC703, 0x186FE7], None, True, 'Misery Mire'), + 'Turtle Rock - Prize': ([0x120A7, 0x53E80, 0x53E81, 0x18005C, 0x180075, 0xC708, 0x186FEC], None, True, 'Turtle Rock'), 'Kakariko Shop - Left': (None, None, False, 'for sale in Kakariko'), 'Kakariko Shop - Middle': (None, None, False, 'for sale in Kakariko'), 'Kakariko Shop - Right': (None, None, False, 'for sale in Kakariko'), diff --git a/Rom.py b/Rom.py index c8a2f1c1..0a032719 100644 --- a/Rom.py +++ b/Rom.py @@ -35,7 +35,7 @@ from source.item.FillUtil import valid_pot_items JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '749534eb511d0cfeb7c7b5a81803d4bb' +RANDOMIZERBASEHASH = '20444676b021133e7c8e50ecc152ebd4' class JsonRom(object): @@ -1500,20 +1500,20 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False): exists_flag = any(x for x in world.get_dungeon(dungeon, player).dungeon_items if x.type == 'Compass') rom.write_byte(0x53E96+ow_map_index, 0x1 if exists_flag else 0x0) - rom.write_byte(0x18003C, compass_mode) - # Bitfield - enable free items to show up in menu - # - # ----dcba - # d - Compass - # c - Map - # b - Big Key - # a - Small Key - # + # Bitfield - enable free items to show up in menu + # + # ----dcba + # d - Compass + # c - Map + # b - Big Key + # a - Small Key + # + enable_menu_map_check = world.overworld_map[player] != 'default' and world.shuffle[player] != 'none' rom.write_byte(0x180045, ((0x01 if world.keyshuffle[player] else 0x00) | (0x02 if world.bigkeyshuffle[player] else 0x00) - | (0x04 if world.mapshuffle[player] else 0x00) + | (0x04 if world.mapshuffle[player] or enable_menu_map_check else 0x00) | (0x08 if world.compassshuffle[player] else 0x00))) # free roaming items in menu # Map reveals diff --git a/asm/hudadditions.asm b/asm/hudadditions.asm index 7f9eb342..607993de 100644 --- a/asm/hudadditions.asm +++ b/asm/hudadditions.asm @@ -141,7 +141,7 @@ DrHudDungeonItemsAdditions: iny #2 lda.w #$24f5 : sta $1644, y ; blank out map spot lda $7ef368 : and.l $0098c0, x : beq + ; must have map - lda #$2826 : sta $1644, y ; check mark + JSR MapIndicatorShort : STA $1644, Y + iny #2 cpx #$001a : bne + tya : !add #$003c : tay @@ -164,6 +164,34 @@ DrHudDungeonItemsAdditions: plp : ply : plx : rtl } +MapIndicatorLong: + PHX + LDA.l OldHudToNewHudTable, X : TAX + JSR MapIndicator + PLX +RTL + +MapIndicatorShort: + PHX + TXA : LSR : TAX + JSR MapIndicator + PLX +RTS + +OldHudToNewHudTable: + dw 1, 2, 3, 10, 4, 6, 5, 8, 11, 9, 7, 12, 13 + +IndicatorCharacters: + ; check G P R C + dw $2426, $2590, $2599, $259B, $258C + +MapIndicator: + LDA.l CrystalPendantFlags_3, X : AND #$00FF + PHX + ASL : TAX : LDA.l IndicatorCharacters, X + PLX +RTS + BkStatus: lda $7ef366 : and.l $0098c0, x : bne +++ ; has the bk already lda.l BigKeyStatus, x : bne ++ diff --git a/data/base2current.bps b/data/base2current.bps index 52ccfd778b51ba1371d27273a02b921c8144a021..b642cd455f524f0928ea78b842930f25999aeb25 100644 GIT binary patch delta 10271 zcmW++4O~pw-@kWes_A`tp%=YOS1A;EEfu|pZ4<(>Bn%}nA+MXzoI7=^Nz-jQrmL>p zTT`Zy3_FOWEwM7#)v~*6c9&&YTDxW+ZLGySr~jN!=X>7nxxahP`MsWgD786vz@~aG zPHR4zjla+wD3?q-!(UT%oZ%}~sB}ox0Y~G6Xhy-+GWapR7SD%m_#D?!Wf+{vGBu&73O&f~_(ZAh zJjnNDD%F`cpYfh`jl^SB^T6=$iki4l+5AvVTn0^t;2y!Fu-@w+Lhd;gp&H{rprwEw}<7CM#7$_7!I9ikgdTiCkng2~qOogNEJ{H*a!!35>@L*VHH%4K9j_+2zs^g`c znrOYo=hmuXukkyTHETR-(nwM`wUiVtKdmJWwzUon9MbMO-U{%6xN1SwZxCZ<2*?gV%NRdj!N2|urBPGPjfw&A^&RH+I4 z0MR_CA>4oB2NKFO#GLyGk7np0=2`J(+yzLeq{Lgj1+A*#CfpqR;IpUmTQbR1e$q!g4;!9?; zt~4`v48OCdhXh&RAfvu5LW zO#jRh32_F#O>D5O!NwkBZbL39T$t!oYWgOr6ZM!X=l&#g*w)JzzLoc95T&N=sVy#w z;LqVhtq8M38iMEuK=+fmP^s>-H^#z+)R{h)i&ZCy0w%PsbfhttTTPKaLnSGuf2O42 zYzditSxIK=lr<7U$vWoV+zh&WOnk$DdshU4aUNZX2sU|iEk$t5qif@EpGVjJ;XcnU z&2XP*m$+rP)3fV5EL#yJ5ahw`69q?lFXCxt^n^XH37s7Vt{P9bKlkK8BsHm z&ziHbYGIo0tl4201s!I57}s`WJ1~0Rryg=#f|w# zNz9AfOG3v`*s?M)oRI|f+W-Q|T;rm2h1uF?Lj?U}BX7dy4URcC82V4<3{>mS5HmY> zmP7Z<^!U&+(t+Fc*?;E&|43@E(&(wQpUyv$*1FBAuu&emwJBYJzTx8eF5Dc6ru$zJ zGe_P^PghukX(wS*W)i**KFQpn_~Z-zm{j&f;aetR!oO@-_`i*5x^pc&ddOL~*8Tn8 z=D6xt2B5}*q<_CL^M{(Zn!u5j*#AOo&;OzK#Ef?Ro7 zSu@{O+1mn7^cqQUR|!w(908Sf7p_|Ek1OEb)r4Zf=j^U3gD`FILWRX?-r(em^r5=s zAsaao)fGlC=HHwoc&E=QwY030zRBhHq@-y7qRvi)ak-`(S{y`XY2KZvd8& zDruj4zpk>uB76(%-vW&FEw=}9J09LSvA^+lIp?EsruA|FlLQE9s!rH8LOD=`kYLtO}tzi@^M#7wq1+wSh2;y zu!oWFd#VOv16jW(g=3}ro{}QOcoZ``^-FRtOUOFZb5k(^6TX4cB%t~KYpb9fzx<3W zIWkEMxN4n?l1wlPNm8w^r#c($*N6>$*-v(l#WOA+DEx`jFmO727x?uG=Ck z1k(!H5aP*K;nH8br3u}{(_-6dp%lL)?Oj;>41?#txYUo1 zQ$=d(v95LL3i?oYQH4Gjo|8r6aqw^1qJUMB8|^6>!zXX75Q}kWWjr@uCv6!y_HG0? zPeIw*5PSkGUAxK4b^2qijdar`AcBHU=-~8Ni?%_!3EHjmpXC4RsXn_VCmz)=6~1kg z>1_W{r73z?g3_QVd!)VPS{?4-(0U3+eMeop#%_U2*F_;ct6t}~X5o+K^I!Fh#VroT zaot7sIE`|2>f7(e^wTr%sT>RfS`IV@95@=_flleM%LYMzicy}fIF>72dl@eKVh$J! z`s^M$S%gw^&$VahC)4z3dm4HSJ?%Ybpg1cDpAY9{g+}YudIo8r$zw8MQySrmzQ2%0lBQ1F1|lCw$ylM;Z#j-AzTj!vU28_uF&Nw zY5f%@V+>%k#sc$Tcpv<8 zy)T{v#W}%2H?PoV4rBq<%WtmG>p`W)ecIzaD(u`a39aSJ4Z(rY5}@uw(n)vDnUotaum^3>E+l)T zeNzkq;yIk0JI4k82#^*iO$G*oD{7*0$9T@X&eQeOvuCf5)IAKus_%ro?Og%8a-%1^ z?0Ud$OnX4eYc`aAonjOgL|2 zDDDY&pnM`^H%bMrX|Qu+2wngmZ(JTc=_cA6Z)U{UH;vJ9G5dEk&~E0}PYL;Tz$4d0_mSZ_KXjX;Oj&wI9oo z_G}Fq$ksrcwAX6X<;kYadrgjDX>uf^REGhFFlbN0OYNU_7yVDh8R2Dlly}M5X&rv?s;);kG_?9+(xhO#`|ogkG@UIfNS!C6v?nc>)B^7<-cXC zG_KVS-CjDV@j@e7;c<;Os{5k4FB))(Yp4ACxQmUWP^0vutu!50H%d`Q-)*V*JGzw& z(is~G)EA8UUchcmFq-5YtkH%b^t(e>()Q&I=qG-(Z9L+}hHhte&IgFtFPXu%0q8mx=xvihAowg9=sz`ZS)``v z2gDideQjZ`{37qHD{2b_yOROcngU~6xBz@gnS_-r`ovzhoxxb?FosO9o!<50_ApXvPq<>0FY_prmy{NyJ^-G{1e z3|1=;)^6FxLn%B}5P_e84+>U#`7a|oEh4kvq;<-H#U?)?h-~BE(qw}38{SHPK&cqkP-G#GV zoTtBTPdV0=po~OYb{+N>W+4t5zt>NIXTgv67EGHiefvaO9BFa7eqHiMX7jmGnZ|RY z9z|9lyCb1El9`imP@CC#ZWM)aVKE0aKE_oT#%95xy&sMG@;RS5etp#qJn!@2f-Jn@1)c_e!e9ul>;@m8bM)+`-)MQ4E~0e}m$; z7xETN8uXXEE8%hx(e^>Wg$Dlv*G(T{<Zb!HmVIe|c)DRRz4Y7_09T0jT zbVoP}p)bPG2nmGa5sr%*V!U$t8zks(|MtRYVS=;!wY24{BIEzDE~MuFzJi`b2k;=s z7ezR)oIa#J1U9wQV1Szp`-@gOI4^#r&OH9sj?IPfia2~U+@}bfllAwpBgVrpCT*yx z*%+EOL}mS5e}sA@WoLanM7f`-DQ?@fk<`jsFg?~~3g1jpJ&|n0f+6b6-|W%htd%^& zNpxdLhg*O_)#P>#Zb|hf~pRvjF2e#p*f5; z)Qz=beV)cybPqWTS;`5t_WOjvqRc*k8Rw$GBj*hs11ac~-%Fk^K#oAWqotCow^9GC;ib&p6M=Q*Modv&b-sM_x$_mace) zEcsVW62=?uCi4Wg*Wqtux=TKaAA0skjr&Y4B`OjoDMu@6yunw7ej2^a0O&a=Z=w+~ z%(Rg&X9B6gmQ*LrHsIdsgxQ7!fqKqt1GY~+G6=bOP3q*?$QAPrGDwimBez<6tryrd z@0X3e*5My*eTg)8acyuugjr!Nst4Atwv4bAL$UQgl*)#Ou$R@Bt&0Dw%$fkLrr6qL z?QIJS)M_rHQd!$;=32vR>uc*vG?4k1EN)XWjWh-ro=Zew5Wvg;apyFdXL zCtz$R+jOe|^RtSzvhX@-Vn>r)BgfO>WJd%^qoA?%M%xxZ`vZoe*D7nUgwwiBfD2MG z34q%VxP2v@KUL*iqC&*BO(@}zM!gFImE>Kvhr^Wg`ch5=$k%WkMF%NI?=A@xD`#&8 zqlYL#)aSy56I)D$%9Ab%x&;Dm{#R_c-Z5BrEaQci5ntNvs zC@t7gxvPTC|A0+%_|u&#+*q3jS2bNo{tNphh?A}1*YE+q{t~n{ARepB`C?8+%Q6F# z5p}1*iv5M?6ux8TuMvTU;qLbWTbxNL5CLwLx^B8ST!PYtDl(r{Qe6pLLWzQW59gLO z7M8?ZDJ*#_+RaRhzVja2BDoybne+kwX409|%W*~6nbh{h4eL6SX7*g1-I??|J7&fm z@+mhd@s0}HTVh;3;|^L8+OPbsf4M%WLKTnYv0LMMnW@RW#zw8!?z+vsV!cxtD!sLF zdZn*y5Ze{nq)pl3#7t5uXcV<|u!$3HWn(v)8PO)Q{?gGs8vuFs=%&mz=<0i&SuVJ) z-?jQG>2+a^(|P^QLUbI@omlAIUbFwug{VGSqogKje) zT$apy(1DeaRv}O_LFKCb%CGO2KG$WA80bvu4_++4@RO@PbP z8aJ2M;xcwex#|rP{A+626(jFdtvGwB;3sKmK}Pf9>=@AlDlCuuD-+^27i%Wj%!%As%cdd%+t?N z!T8WC6h6!Q$cT&saO%!VaukcrJj?kjRhYF%msJ4sVT4yTy}wekRgw_@OTFJLz(ms& zQ0NoOpb2)^PgfoFTGqr&t%5raw%XG{YAPcHsc0CYty}D0P8PKl(@qEU&J~m$#zZZ- zqxYSChm6+=4l?+`s_l1~{Y!3e+4FADlzs)N$p~HjwWB{# zO%;bXO+L=V(R%z0Ev;3(lx$(=GBnOnTdTR?BV6JUE&=6$c7qo@53=);hp5LGCs@*` zm#n>``6LXbrlf$@j`{Wa%tqs?YEH_*h0Ny@AFOSld~J-`b#zc2l{s1;+(_e1>XfpD zfD<>NA|q z^nN`hc&ATb8C-~7xawt&2td`zsv0@lD zC>|7x-Z0o1!#h;VXwGOJ5)bNP)$|HR+aLTx*iTZ%E#*etZt=~?u)b%kV8IP7h6&yk zmM}h5P;`{S{(|SpJg7L<`2jsYB%UhH_WmyHbjr^1qYIXm(avR>x*U}1_YzD)9G2~! z9Gx7^C5+do_F+AyF>PIq4FQt}9mdHH%Q*H^z&VlJyT;;uAFv}b<-Q{@ zUdeoiR0q-^V{Ob`>6n?0RCc&gR8m}Rx=RH&Kl25bsN#+8?c6Ts@-Ifwmy4vJ9m;)vBHUFYw}ogAW$SwM!cN-y=@)UbxHji)2?HJm0C{5 z$uwJ-ZKX7RvrGC-S0Y&(I_C`cqG2DB{=STnWhbnO zE^MmGYxsVXXAzd;9qc{EdvW-k@bh!e&wYudPGv$qy~c$tyGBliYsx#bz0)FZMGo&_ zI-kx<9v`4x0-Q2 zqM`G1>i({Ge#-0@Tr=bp-M7}EL|W@cfrY|zEq0iXE#aRWn-az332{*C8+%w~!QR|( z|8*gl?@_KTz)~VpBAMmu%V6N)w<#U#d%ONcqUC-t$p(2}BVFPCc|hgnGNo-a#b6Vz zGfN*=xgJz+c3&CXv?WxgRS*i-HO!iHz6h}j;g^G$ z;bvrc{vjmv$hfxDgSYH<3~7?$lHzjOB6kc?V!PUm$P;iz;5pMb4Km?~&08w!PMmJJ z=DiWC-4}F5WrO{}%z?8TgKS(ERJ5&u8yo!v3OOuq+>iS~+omJ-qox$cE-U%RfI(x^ z0^!`{B{ez%{}hha1>w`+938M*V_!*@aO>brU7&cELnT?x6*$0Gx|wb*vhI08OyYuJ zakbO;eTm{DiOsVm(3fm97NM9W@;FyDA9HSgPPh>$^Bxf}(qoco~bMfkIRqhRxVn9{l^ z#9OR>T+y(FjHJ@uW(LDUWbhx#n$=GC8q|A*D3*kxWzWU}*ws2-2yg!hU$*)SmnPRi zS3|sTM&1Ls$WZQ|#c0C*mg#`m<4kE{F!B1Z#n%H3Ji>cLxxHCco=pp75Py+ zj%`9-;xET0p$kDt+u*eLQI#-yR3(`LFK9)%1{BU`*5@B+F(bR$#(+0rawfir)LcUs zE@CK?1IhzHe2Hns@%gxo`y!y*1P`>A+JCydvdVWR;5I?u6OB^Gg_Rl!GIoTo zx^qNh^COA8UyKazxo8pA)z4VMkxuLg$Qxw@W4Ds|_HeK3;cKpk&8~;9yB@ybdibX6 z;jdkpZGpGy2xPevCkx#oXOmhZhrUL_1k}s{=-##cU|M>%T`*(h2@<3G43Wc^8k5u_WcSlw*Y&A|v)i#C`0)vC&|#a| z28sR~3JZEk(Slt-BSF^*j=Bvn_I!~0g1ztS1shArZ)%ll7dPX5#>uqhyeE#2gT-IO zdc=&bB1Nn+1lTT87z7w4B3$9OUmOsK?!na;qNaZoRMT?pp-;8>kyM)5#O(g4@xMJ~ zaEGJ{?%rGhal}Y6K(#*NKRYA8CrW+UBa1_V*`Qli76}0Od<2yN(R0)7r z{~}?nE^lXLgN?E5|BB=WDH~<_s8fRDv8Lr;ZgzFaa;jpNJ5`Z6oGl6M;GM5y@rfqa zZ=T?GbEkYmBCT!u@75|?M}IGX;(^Y_2+kd5{ZJu&bDJkTPVyPNH&JnuFC+@yI=^LH zNcx}}MNY=Ct?t;|7ajXp|X4n3<;M_k3&u#|mfzW^pm%#=>q@zKB zam%}lo;?GWFatj96Vo5TKzRD`t?^#Aq>b_bZg`#*P~AnXu) z_D{Xr6NYYLrf&h4ntO{nBQ4S=5DqQH=fLMf6a8n;_@1=rw@mwie<%D6I1+vWvHbMq9fEi=gUQW?_q@MRU(~8g0+Sm=hj){$^YjJjQ#V|L_ z!*c}p$@(Xxk8VT4MamC@@vlfJlRAT}BSr^@VAvRDrH`^#L%a|1p#RI*bF8Kxew0ny~B4w?h;C zZ+c1l7`r}4>3n9Z03VT&vY>7==<{g7%*MVc#sjZV#0F(87;s2E)`C5VZ*N86n5D;B zBgWWS#KUY%7_T;?V3^rxd1el_{PvcMEh^XK#>jczIBHroE1g>Z#5MKUp`YWKUj%rp zAR>YpCB$Q=>|XXF0z8U*D}N;Ek)GHVV2MAxEucL=0By~*6Rn6vkk-dj5QlgoIr@)U zFq@GuDj`1Jao_}SHp@7 z;U7FgMn!?Ct4=itFp)?o5(>Uav_B8`x;`*U#{L}tArY^iTp8z8+mYgpCU=D~t52&4 zt9N}wDO^x+p+h+upDr4s#@=J^S(&6;mngdN<@77(t(n#W>vHQ_>o#k=)!*7v1(*9U z9rr`=#Ws=}r~HFw_is8#Z=lHkdV^mxvm$WLf&DnKv!Vjd3vXebM&K%m#(K+Y-Opxz zY9Rx;k&`xFtw(C0)7;Ju?}_;5xKCT5?fu&5GNvG{vjv4q-hBA` z-K!73))tmC$nXdWsFhCF((7uOiDmTCVzP_%ucY@KR6lrQ{k?wnB#N0d3Ga7j$1m?} zd~AJX{T-!SI$K#M<1-o0^I($Q?rW{qyH;prh^ZHAJk}oUsGE$Rk%-d|&v{W=_kPa* E1NgNls{jB1 delta 9391 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