From 4ceecffc8b60cd190179e461f360fc4078fa5c54 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 5 Nov 2022 00:54:09 +0100 Subject: [PATCH 1/5] Add ocean temple --- .../mcl_structures_ocean_temple.mts | Bin 0 -> 1257 bytes mods/MAPGEN/mcl_structures/shipwrecks.lua | 110 ++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts new file mode 100644 index 0000000000000000000000000000000000000000..0260dfca226d7f7f07d33fc741dfe6965e1145b2 GIT binary patch literal 1257 zcmeYb3HD`RVGv>vVGydv0vI?Mm=iOL7^HHObK>)pQxo&73W_p|a}$d)^HSrJiZYY4 z85BWs#U+WEMa5QNDjq|LJhGCU#3W=DDTzhd3?kUfXHZAh2C@KIAK3Ev{L+%tA_h@} z_TtpU_?*PNlGLI+1~HIuaz<)#NwF1}iZ9Mh%*la>mnY`r6eIh_pkmJ3nBJ<@3OuYO zvGNJKYh&X7h9xVs$j@Z$Hg(T7?UvwgH~Ci+oYm^5qgnOYuyd)y0mC)(=P`0E_u?~M z&m@0vtHFl%brVm$QuO+wGwZ*|g&3O+{^uROO07OLWuCXftp6+-zin5S$6Ry&Jw5T~ zwR!sA1KWSkII3^n+GQLXGGo<~`>m5ch6)wy&bK>eeg16C-tdO9z|XUK*t*uM?|=L% zb6&J&PxrIqZv@weSwdNlC*D?IAHILVTDCo;D@=X^TiLEJuZ5Gpm!7_HgX1=5;49ff^?mrs*e8x|aAwfU*M`o7j3soVZt;#+(563^7a454sGyM01k&&yw&D?IM^ z<H|@2fY~Wj#ue4qBMP-wk(@9OmLKUu8}C+^(pYA`u)cAv)i>&t3`c>U_R!a{nUdmGrV z74gsgvS!&^xjhV@wS_Hqse5-zzpvJ1d}Fv>bIs9WPyTnC-*C2O?9yw9J+<-C5^Hm@ z5LxdVMY^ZuXSx^7R_QaE_xMOLw>-O{x2JWrj_aB9#>cWjY;AGs`4^rrwkxRJN&l2q z&35|DQmN+?wiq-eNv`fwE&7uCY`Ixf*y<-6@Yn07KmMp6nDshxr{0O(q4w+F8Ejmcce}Ab3U0c1PDx;n)cLT+-5NUM_F&%XDgpO z^G_^f|NA=Mo-M74=gjNI|Lun!ZM|3V;8gy(Y-zIvjkDWU+BS9UdehB&ESs(cWr)75?E9D9a89}9L&W)Vxy@ZJ w8C9C8m#%BFZ;E>DwOKmsvPOdGo-FHwm8JZNTUlGKGAEp<$^FBARq+2K03z>RE&u=k literal 0 HcmV?d00001 diff --git a/mods/MAPGEN/mcl_structures/shipwrecks.lua b/mods/MAPGEN/mcl_structures/shipwrecks.lua index a6dbb4981..e8b43634b 100644 --- a/mods/MAPGEN/mcl_structures/shipwrecks.lua +++ b/mods/MAPGEN/mcl_structures/shipwrecks.lua @@ -172,3 +172,113 @@ mcl_structures.register_structure("shipwreck",{ } } }) + +local spawnon = { "mcl_stairs:slab_prismarine_dark"} + +mcl_structures.register_structure("ocean_temple",{ + place_on = {"group:sand","mcl_core:gravel"}, + spawn_by = {"group:water"}, + num_spawn_by = 4, + noise_params = { + offset = 0, + scale = 0.00022, + spread = {x = 250, y = 250, z = 250}, + seed = 32345, + octaves = 3, + persist = 0.001, + flags = "absvalue", + }, + sidelen = 32, + flags = "force_placement", + biomes = ocean_biomes, + y_max = water_level-4, + y_min = mcl_vars.mg_overworld_min, + filenames = { + modpath .. "/schematics/mcl_structures_ocean_temple.mts", + }, + y_offset = function(pr) return pr:next(-2,0) end, + after_place = function(p,def,pr) + local p1 = vector.offset(p,-9,0,-9) + local p2 = vector.offset(p,9,32,9) + mcl_structures.spawn_mobs("mobs_mc:guardian",spawnon,p1,p2,pr,5,true) + mcl_structures.spawn_mobs("mobs_mc:guardian_elder",spawnon,p1,p2,pr,1,true) + mcl_structures.construct_nodes(p1,p2,{"group:wall"}) + end, + loot = { + ["mcl_chests:chest_small"] = { + stacks_min = 3, + stacks_max = 10, + items = { + { itemstring = "mcl_sus_stew:stew", weight = 10, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_core:paper", weight = 8, amount_min = 1, amount_max = 12 }, + { itemstring = "mcl_farming:wheat_item", weight = 7, amount_min = 8, amount_max = 21 }, + { itemstring = "mcl_farming:carrot_item", weight = 7, amount_min = 4, amount_max = 8 }, + { itemstring = "mcl_farming:potato_item_poison", weight = 7, amount_min = 2, amount_max = 6 }, + { itemstring = "mcl_farming:potato_item", weight = 7, amount_min = 2, amount_max = 6 }, + --{ itemstring = "TODO:moss_block", weight = 7, amount_min = 1, amount_max = 4 }, + { itemstring = "mcl_core:coal_lump", weight = 6, amount_min = 2, amount_max = 8 }, + { itemstring = "mcl_mobitems:rotten_flesh", weight = 5, amount_min = 5, amount_max = 24 }, + { itemstring = "mcl_farming:potato_item", weight = 3, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_armor:helmet_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + { itemstring = "mcl_armor:chestplate_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + { itemstring = "mcl_armor:leggings_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + { itemstring = "mcl_armor:boots_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + --{ itemstring = "TODO:bamboo", weight = 2, amount_min = 1, amount_max = 3 }, + { itemstring = "mcl_farming:pumpkin", weight = 2, amount_min = 1, amount_max = 3 }, + { itemstring = "mcl_tnt:tnt", weight = 1, amount_min = 1, amount_max = 2 }, + + }, + { + stacks_min = 2, + stacks_max = 6, + items = { + { itemstring = "mcl_core:iron_ingot", weight = 90, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:iron_nugget", weight = 50, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_core:emerald", weight = 40, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_dye:blue", weight = 20, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_core:gold_ingot", weight = 10, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:gold_nugget", weight = 10, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_experience:bottle", weight = 5, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_core:diamond", weight = 5, amount_min = 1, amount_max = 1 }, + } + },{ + stacks_min = 3, + stacks_max = 3, + items = { + --{ itemstring = "FIXME TREASURE MAP", weight = 8, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:paper", weight = 20, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_mobitems:feather", weight = 10, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_books:book", weight = 5, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_clock:clock", weight = 1, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_compass:compass", weight = 1, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_maps:empty_map", weight = 1, amount_min = 1, amount_max = 1 }, + + } + }, + } + } +}) + +mcl_structures.register_structure_spawn({ + name = "mobs_mc:guardian", + y_min = mcl_vars.mg_overworld_min, + y_max = mcl_vars.mg_overworld_max, + chance = 10, + interval = 60, + limit = 9, + spawnon = spawnon, +}) + +mcl_structures.register_structure_spawn({ + name = "mobs_mc:guardian_elder", + y_min = mcl_vars.mg_overworld_min, + y_max = mcl_vars.mg_overworld_max, + chance = 100, + interval = 60, + limit = 4, + spawnon = spawnon, +}) From 04cb919f2bf9b0cc676689fdf0070360b6a97bfe Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 5 Nov 2022 00:55:17 +0100 Subject: [PATCH 2/5] structure-spawning: make water spawns possible --- mods/MAPGEN/mcl_structures/api.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mods/MAPGEN/mcl_structures/api.lua b/mods/MAPGEN/mcl_structures/api.lua index b33f171d7..cf47b4e30 100644 --- a/mods/MAPGEN/mcl_structures/api.lua +++ b/mods/MAPGEN/mcl_structures/api.lua @@ -227,9 +227,19 @@ local function process_queue() minetest.after(0.5,process_queue) end -function mcl_structures.spawn_mobs(mob,spawnon,p1,p2,pr,n) +function mcl_structures.spawn_mobs(mob,spawnon,p1,p2,pr,n,water) n = n or 1 - local sp = minetest.find_nodes_in_area_under_air(p1,p2,spawnon) + local sp = {} + if water then + local nn = minetest.find_nodes_in_area(p1,p2,spawnon) + for k,v in pairs(nn) do + if minetest.get_item_group(minetest.get_node(vector.offset(v,0,1,0)).name,"water") > 0 then + table.insert(sp,v) + end + end + else + sp = minetest.find_nodes_in_area_under_air(p1,p2,spawnon) + end table.shuffle(sp) for i,node in pairs(sp) do if not peaceful and i <= n then From 61b5783e73ba3b8eab1b9fb5e9e44061e0429af7 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 5 Nov 2022 00:59:43 +0100 Subject: [PATCH 3/5] Make temple rarer --- mods/MAPGEN/mcl_structures/shipwrecks.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/MAPGEN/mcl_structures/shipwrecks.lua b/mods/MAPGEN/mcl_structures/shipwrecks.lua index e8b43634b..3bd0a24c2 100644 --- a/mods/MAPGEN/mcl_structures/shipwrecks.lua +++ b/mods/MAPGEN/mcl_structures/shipwrecks.lua @@ -181,7 +181,7 @@ mcl_structures.register_structure("ocean_temple",{ num_spawn_by = 4, noise_params = { offset = 0, - scale = 0.00022, + scale = 0.0000122, spread = {x = 250, y = 250, z = 250}, seed = 32345, octaves = 3, From 54d4a97a27ea01e192a10f32acfd54dd6bcfd703 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Thu, 10 Nov 2022 12:59:33 -0700 Subject: [PATCH 4/5] Add Ocean Temple Loot --- mods/MAPGEN/mcl_structures/shipwrecks.lua | 42 ++++++----------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/mods/MAPGEN/mcl_structures/shipwrecks.lua b/mods/MAPGEN/mcl_structures/shipwrecks.lua index 3bd0a24c2..49cc2a33f 100644 --- a/mods/MAPGEN/mcl_structures/shipwrecks.lua +++ b/mods/MAPGEN/mcl_structures/shipwrecks.lua @@ -211,52 +211,30 @@ mcl_structures.register_structure("ocean_temple",{ items = { { itemstring = "mcl_sus_stew:stew", weight = 10, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_core:paper", weight = 8, amount_min = 1, amount_max = 12 }, - { itemstring = "mcl_farming:wheat_item", weight = 7, amount_min = 8, amount_max = 21 }, - { itemstring = "mcl_farming:carrot_item", weight = 7, amount_min = 4, amount_max = 8 }, - { itemstring = "mcl_farming:potato_item_poison", weight = 7, amount_min = 2, amount_max = 6 }, - { itemstring = "mcl_farming:potato_item", weight = 7, amount_min = 2, amount_max = 6 }, - --{ itemstring = "TODO:moss_block", weight = 7, amount_min = 1, amount_max = 4 }, - { itemstring = "mcl_core:coal_lump", weight = 6, amount_min = 2, amount_max = 8 }, - { itemstring = "mcl_mobitems:rotten_flesh", weight = 5, amount_min = 5, amount_max = 24 }, - { itemstring = "mcl_farming:potato_item", weight = 3, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_armor:helmet_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:chestplate_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:leggings_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:boots_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - --{ itemstring = "TODO:bamboo", weight = 2, amount_min = 1, amount_max = 3 }, - { itemstring = "mcl_farming:pumpkin", weight = 2, amount_min = 1, amount_max = 3 }, + { itemstring = "mcl_fishing:fish_raw", weight = 5, amount_min = 8, amount_max = 21 }, + { itemstring = "mcl_fishing:salmon_raw", weight = 7, amount_min = 4, amount_max = 8 }, { itemstring = "mcl_tnt:tnt", weight = 1, amount_min = 1, amount_max = 2 }, - }, { stacks_min = 2, stacks_max = 6, items = { - { itemstring = "mcl_core:iron_ingot", weight = 90, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:iron_nugget", weight = 50, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_core:emerald", weight = 40, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_dye:blue", weight = 20, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_core:gold_ingot", weight = 10, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:gold_nugget", weight = 10, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_core:iron_ingot", weight = 10, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:goldblock", weight = 1, amount_min = 1, amount_max = 2 }, { itemstring = "mcl_experience:bottle", weight = 5, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_core:diamond", weight = 5, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_fishing:fishing_rod", weight = 1, amount_min = 1, amount_max = 1 }, } - },{ - stacks_min = 3, - stacks_max = 3, + }, + { + stacks_min = 4, + stacks_max = 4, items = { --{ itemstring = "FIXME TREASURE MAP", weight = 8, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:paper", weight = 20, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_mobitems:feather", weight = 10, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_books:book", weight = 5, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_books:book", weight = 1, amount_min = 1, amount_max = 5 }, { itemstring = "mcl_clock:clock", weight = 1, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_compass:compass", weight = 1, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_maps:empty_map", weight = 1, amount_min = 1, amount_max = 1 }, - } }, } From 63225c20e53aaed0f49c92a241c3e4b2afa89d59 Mon Sep 17 00:00:00 2001 From: cora Date: Mon, 14 Nov 2022 03:46:19 +0100 Subject: [PATCH 5/5] change schematics for gold and sponges instead of chests --- .../mcl_structures_ocean_temple.mts | Bin 1257 -> 1359 bytes .../mcl_structures_ocean_temple_2.mts | Bin 0 -> 1406 bytes mods/MAPGEN/mcl_structures/shipwrecks.lua | 1 + 3 files changed, 1 insertion(+) create mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple_2.mts diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts index 0260dfca226d7f7f07d33fc741dfe6965e1145b2..0a16fa9b245ab3c4f4a5942cb7ed5256f98031d0 100644 GIT binary patch delta 1160 zcmV;31b6%C3C{|UAps1LB4!sBZDVX-b8v5NXJvCbb8v5NXJub^Wpt5;SAP<1V{Bhz zZ*pZiXK!p|Vr*|?YXBB)V{Bh{VQg%3I&gAnb8TUAX>Mg-FaQ>9V{Bh{VQg%3I&gAn zb8TUAX>Mg-GXNHCV{Bh{VQg%3I&gAnb8TUAX>Mg-GCEomo$cfD z>QljR2^Sef#ge1-lBO6BhkuC5SH>3b#L`7;J|eLs5HN=2(=xQeT_uN_XMqo)FAQki zE;t(lOB^M7Ce6PK+*~}MPs;%H3Zuf5o=ZTQe+O{0p4B_4?a6#Is5SR|u@5`lM<~DC z6e>hpRNsVG@ti@c=r0} zDd+R4)}I-lDYA8xPd&|V2b8O0_)-e~VzZK`Ma?|$vCGMnaOV@yNayxl>L~9FZ(X9;o0WQ6wku=yC5GQ3B}_lbS*ux3x9PCAU&t|{Nu#;0Pm$| z%>(oTk5$-+<_^>~Exc8rSFNF_WL|{ow3F_k(ft zc0Z`muA+0G=XLbFE{wokPtIEv=!ww#6bpKv(*FCD+*_2^^RouM?@O-GdHzG;{2fYX;yVxH$Nn3oI1 z@)$j9uJZ+V!2H4lv~Fo=vF&}UC4f2RI)$}(E~&w7mMx(;nyw4YuFEmQq+2%>R2@rL zaxKd*nFn$YNgQQ7$BD-l+zw)vl5)0KikQy=+Ph8}5P$lR2L2UuRy{)UtQcla_gDOfiKs=EoRnwIoXfzY5zu1c!pq2(x}kikkVKvZ}^-$Nn^L3Wq4?xuwJi&tTNHDVAgn!oyB^VxL3cY!&3)s-IVLkZ7t~Hr`;Ju$sXEr|M-A-`F8S zHjc9p2)D+6H51MUF@F_^`5g#`TU;^5>7SZ=L_1@&4a7T+uHpK;?lFMx4&dMZ{&PU4 z=YYJP@IMp=`)cC}8{avvb(nw#Y#O3&rz66c{$X1&Sh-$q%p4nz!{7xGM_GhC4EZGL zyXRS)a1Pz&4I$2;wG^C1YaXNhK0xCU>hMs_Hy$&KL?~JrY@NPOIg!;`cbd(xnnnSu a;a%Ge&Z~J4t4DxXJpsa*`^FFSX$T#uvrh*A delta 1049 zcmV+!1m^qC3h4=uAqWWo17T@$02+~@6p=kkk)T!=7Hwl}Ut?%xb98e$V`yb_bYF9A zVQg%ZApsYEFnFBpT#b6GAPfa`T_0e(eOzDtR%0N9ADIP}wH2!>3YK2ZL zDSGoUiKRfmF|41S0Sc!|4mGa=AHlUSuS>-^DU6He$Lta5`0Bw&C(oL;15@7T_MEnSw%gGQhws%qSMGT# zjxs%)#RvK;mbtMl)O@-(wAFmx2jh9w2d13QjBl08nqy?Gl}|m*?+3OEG29mg-_@+- zaaFT_4t(5lw5=TJgSCU}bHDH5@8|_~w^WK&AFu{?y7cQ4WA}B-*w_f$2~p}Z^FJi@ zVQf8!Rbd#7W_!lQMlBy>dn3&bMh#x++ycL;x!=+)@SNOtUIyS8_iJp<(d>1zKDP|d zE@!5AHr6NiYgwn37_C-QUOKboA1A(rxMj9~{?ZPu)zS==acB}(K|a0`isyIe&T+?1 z^!)8@rH>QeLVT8EJe&`f#V&2QU-=zCvVW?0f!(a+-LG;dj`wwr5fjuv@n8V z8LN&Za`bKHr#4zvtK_gBX)v6Qb>Z*G6t$ftg1y4AQ_E7Od0z(XQxU?m8xwGf6D}oh zlvwuU4VpA+r;fOKx3v+oaD|`icThDYx{T-8S!`#CbJcY?-tDDI#k|4cf-VVvt4fzw z>#vvN@h?$o>sh%j$h%cPukJ9hsczeRMO}o|3>uuOmq~o%1rf5*&LR+;8vmAAa6E+h zcR`qc0m17Q?|8@QXPK{ve%{fxFrWB#jfV3&Ox&Nyp$GlzZ$AcRdJN3#f&YiX;q@g5R?{e8HN0v&!FhEL TVYLN>)dOJ2d~N&()e-;VIVKNg diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple_2.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..8a5a6a3137f3119e3c89cb7a2484e0ff01037d84 GIT binary patch literal 1406 zcmeYb3HD`RVGv>vVGydv0vLE1m=iOL7^HHObK>)pQxo&73W_p|a}$d)^HSrJiZYY4 z85BWs#U+WEMa5QNDjq|LJhGCU#3W=DDTzhd3}Rpf1^IdDsl`?hI=(!$gh2$Gy$tHe z#(^wGHV^Em`25n6)FK8^g!bap#Q2=Vypq(SJO&|sHOHsFxKomNFV5=sS|iERllXHR&*Fj=Pa-}meM__&lHC<+jOH$1Ceg>Ls78<*C`&Z*kZC zY~4=(H5Q?+tt%(~Ssid`zgN<_rrm|~-sHEm*leE+&Bi)-}` z9Pg8@ncbe7|1WQE&)xN{4U73Vr@twX?em}Vdu@Dht+JlF+sgAt{!h5lUiA22X07t# zi7%#y++Xo@aX|KknTK6+v!>?rG~7pFb)4^ocdsHb?&Z^{3niFFq+PwY$!9 z-Y$JvMc6s@@~vx(r%B8W3yw1?7Ma&>w`oUOUtLgN)RdaJ*Dd+#Q*C?1YsEz#X)mn! z)3R=*inj_j}5n=qcAeZ)V*8KFuM(|MjivB5`HY(=Fi_KD5c{bEg>wq^`%1PyV+&Bd@J^CQ+-zXuBmcwz?%Mxn;%-m7qFkv_qlOz zt*q|8{rOv63ZBO--yn8gRd>hPO{yXbUhXn@C|xb@A8j4p;4WZML9jW{p#-gI5@-@9s!b1Ru6 zlzuGmKD6r6ldHF~%WWR&dga=3-)E`Z{_1NMpH%IuX}#qx>TA*p973CYgruxp&KxTg zV|%>zV}6{(^X8fLqBDNVb}WnDlhk+le&tKSw`VSv17BJ3cyY#k1pl4>icAEJG?qfO|A6oD@3YaXj*OE!R zqM0i5$@5CR!1;<(dwE_n>`}PFS^7dRU!#<5?a~QNIh8%%jx+SSXB=|Yy