From df81c5d8852a3dd57aa33be6716db25e30e4b256 Mon Sep 17 00:00:00 2001 From: runs Date: Sat, 6 Jul 2019 11:42:41 +0200 Subject: [PATCH] birch fix! --- bamboo/init.lua | 4 +- birch/init.lua | 4 +- larch/init.lua | 213 +++++++++++++++++++++++++++++ larch/locale/larch.es.tr | 5 + larch/mod.conf | 3 + larch/textures/larch_leaves.png | Bin 0 -> 2662 bytes larch/textures/larch_moss.png | Bin 0 -> 1455 bytes larch/textures/larch_sapling.png | Bin 0 -> 1558 bytes larch/textures/larch_trunk.png | Bin 0 -> 3207 bytes larch/textures/larch_trunk_top.png | Bin 0 -> 2162 bytes larch/textures/larch_wood.png | Bin 0 -> 2097 bytes 11 files changed, 225 insertions(+), 4 deletions(-) create mode 100644 larch/init.lua create mode 100644 larch/locale/larch.es.tr create mode 100644 larch/mod.conf create mode 100644 larch/textures/larch_leaves.png create mode 100644 larch/textures/larch_moss.png create mode 100644 larch/textures/larch_sapling.png create mode 100644 larch/textures/larch_trunk.png create mode 100644 larch/textures/larch_trunk_top.png create mode 100644 larch/textures/larch_wood.png diff --git a/bamboo/init.lua b/bamboo/init.lua index 21bcf4c..536c4a6 100644 --- a/bamboo/init.lua +++ b/bamboo/init.lua @@ -124,10 +124,10 @@ minetest.register_decoration({ noise_params = { offset = 0.005, scale = 0.001, - spread = {x = 250, y = 250, z = 250}, + spread = {x = 240, y = 240, z = 240}, seed = 2776, octaves = 3, - persist = 0.66 + persist = 0.65 }, biomes = {"grassland"}, y_min = 2, diff --git a/birch/init.lua b/birch/init.lua index 8f0fea5..f9d1dc6 100644 --- a/birch/init.lua +++ b/birch/init.lua @@ -95,10 +95,10 @@ minetest.register_decoration({ noise_params = { offset = 0.008, scale = 0.001, - spread = {x = 250, y = 250, z = 250}, + spread = {x = 255, y = 255, z = 255}, seed = 2, octaves = 3, - persist = 0.66 + persist = 0.67 }, biomes = {"grassland"}, y_min = 10, diff --git a/larch/init.lua b/larch/init.lua new file mode 100644 index 0000000..2666ff4 --- /dev/null +++ b/larch/init.lua @@ -0,0 +1,213 @@ +-- +-- Larch +-- +local modname = "larch" +local modpath = minetest.get_modpath(modname) +local mg_name = minetest.get_mapgen_setting("mg_name") + +-- internationalization boilerplate +local S = minetest.get_translator(minetest.get_current_modname()) + +-- Larch + +local function grow_new_larch_tree(pos) + if not default.can_grow(pos) then + -- try a bit later again + minetest.get_node_timer(pos):start(math.random(240, 600)) + return + end + + minetest.place_schematic({x = pos.x-2, y = pos.y, z = pos.z-2}, modpath.."/schematics/larch.mts", "0", nil, true) +end + +-- +-- Decoration +-- + +if mg_name ~= "v6" and mg_name ~= "singlenode" then + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0005, + scale = 0.00005, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 32, + schematic = modpath.."/schematics/larch.mts", + flags = "place_center_x, place_center_z, force_placement", + rotation = "random", + }) +end + +-- +-- Nodes +-- + +minetest.register_node("larch:sapling", { + description = S("Larch Tree Sapling"), + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"larch_sapling.png"}, + inventory_image = "larch_sapling.png", + wield_image = "larch_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_new_larch_tree, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(2400,4800)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "larch:sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 6, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("larch:trunk", { + description = S("Larch Trunk"), + tiles = { + "larch_trunk_top.png", + "larch_trunk_top.png", + "larch_trunk.png" + }, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = "facedir", + is_ground_content = false, + on_place = minetest.rotate_node, + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + minetest.item_place_node(itemstack, player, pointed_thing, nil) + end +}) + +-- larch wood +minetest.register_node("larch:wood", { + description = S("Larch Wood"), + tiles = {"larch_wood.png"}, + paramtype2 = "facedir", + place_param2 = 0, + is_ground_content = false, + groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), +}) + +-- larch tree leaves +minetest.register_node("larch:leaves", { + description = S("Larch Leaves"), + drawtype = "allfaces_optional", + visual_scale = 1.2, + tiles = {"larch_leaves.png"}, + inventory_image = "larch_leaves.png", + wield_image = "larch_leaves.png", + paramtype = "light", + walkable = true, + waving = 1, + groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, + drop = { + max_items = 1, + items = { + {items = {"larch:sapling"}, rarity = 20}, + {items = {"larch:leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("larch:moss", { + description = S("Larch Moss"), + drawtype = "nodebox", + walkable = true, + paramtype = "light", + paramtype2 = "facedir", + tiles = {"larch_moss.png"}, + inventory_image = "larch_moss.png", + wield_image = "larch_moss.png", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.49, 0.5, 0.5, 0.5} + }, + groups = { + snappy = 2, flammable = 3, oddly_breakable_by_hand = 3, choppy = 2, carpet = 1, leafdecay = 3, leaves = 1 + }, + sounds = default.node_sound_leaves_defaults(), +}) + +-- +-- Craftitems +-- + +-- +-- Recipes +-- + +minetest.register_craft({ + output = "larch:wood 4", + recipe = {{"larch:trunk"}} +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "larch:trunk", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "larch:wood", + burntime = 7, +}) + + +minetest.register_lbm({ + name = "larch:convert_larch_saplings_to_node_timer", + nodenames = {"larch:sapling"}, + action = function(pos) + minetest.get_node_timer(pos):start(math.random(1200, 2400)) + end +}) + +default.register_leafdecay({ + trunks = {"larch:trunk"}, + leaves = {"larch:leaves"}, + radius = 3, +}) + +--Stairs + +if minetest.get_modpath("stairs") ~= nil then + stairs.register_stair_and_slab( + "larch_trunk", + "larch:trunk", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"larch_wood.png"}, + S("Larch Tree Stair"), + S("Larch Tree Slab"), + default.node_sound_wood_defaults() + ) +end diff --git a/larch/locale/larch.es.tr b/larch/locale/larch.es.tr new file mode 100644 index 0000000..065abe3 --- /dev/null +++ b/larch/locale/larch.es.tr @@ -0,0 +1,5 @@ +# textdomain: larch +Larch Sapling=RetoƱo de alerce +Larch Trunk=Madera de alerce +Larch Wood=Tablas de alerce +Larch Leaves=Hojas de alerce \ No newline at end of file diff --git a/larch/mod.conf b/larch/mod.conf new file mode 100644 index 0000000..d741038 --- /dev/null +++ b/larch/mod.conf @@ -0,0 +1,3 @@ +name = larch +description = Larch Tree +optional_depends = stairs \ No newline at end of file diff --git a/larch/textures/larch_leaves.png b/larch/textures/larch_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..3b92c9df610ea7dd712834da6779307f2c07195c GIT binary patch literal 2662 zcmV-s3YqnZP)WFU8GbZ8()Nlj2>E@cM*013)TL_t(o!*!Q?a8%_P z#((cQ$)?$Cl7-EZA>=agk`SY)AQ2TZD98%BV9~g-!_ZL}M>`5SZKuPy{r>goH{AmmucihHTEdo1Fdn$LHA%cKXenIlJfby|?Fi z-uFmg32I&)7p&{rACV&be8dOb!UH_tx>_YB?CgEF+hlfRm7ERjQLchK;vL1}4t=c# zPTI`rx>fQ*Z>i?U59Rg1HU;2~T`BkR3=8n_4aYdh874T!8V+Mr%r*fS9@pp5go&31 z&Txjq{EJcg35Ne50P!*CiXy(qTKPU}F$6B_XqJb00)W~Ylf2MdYDMH{5^mPU0aC$F zm5+Q3zQ-6Zv%Ph*`g`zc6$-wud_^yd*uXZnkO>`A03&gmLYH>@&d!xGlX1=ypnK!vDn6dZ zvTS7OwW!(}6U(wmreR&|Zn=fKnPiw(*v8kJK2X!k)6<_}X>_6N4IWTeMz50nflpMS z3sy&eCI2SF-Hft}xB2Y46Utu(_0f6qVRN_gmcqFqC@Iy>gZ^(A0{2Dk7tl9e3vO3G zUEiW!U^CsVUFuM8hMxWm`E51Q)1SfZHko1$$uxW#{3PpKNAvHMYWmhtzFa#{BaJx@361Nf3 z*(h3Km&)gxK39i&GbAQ#qM^sLdu0^#@ibGLrc^_%!FN|re+C0!WITuNWLm%Y-1>*q z6&R1QBl32OC9oVDdV?fj`yMxEoOKlk`bm{j;;x=W)xno~*TJ`knEcWzg zIM$YtrnX#OQm>mD_W>+u%5uq>P2Q(9XJ zsRZC)=v6g0lu?#tlS=B0RxpKZ2$|~ippCaQ$M2@7PmYA*Y9y{BA09We>2xBrEE~65 zUms1Fl!TikA3r0lZ>s(Q8-JNDmu2MwIDG~@9$3*?DMvzQ)kxgNNKDw-O?_Sy?~DRw zuoy#fC2*8-a*`|_JVj_(nB^>*Pz0;*ZRe-R#7& zY#PHiN^fhAvMh~*(_is_*Xc9*>?eVTg+^fmO0HopExf{yh>t-v4O|rth^NRTJ_i1>T;!t(li_ib(S$aT@6vmH8Qi55AG41W zjPhkxpfcZ*-*`Rvb9JKa`YipNMk)7ePy_7XHSExf%EV1FQZANdGkDhKR1`7XZj)5-y=bLhI5oX7O-cI4Ixt{CUTVe?iwC989Zwze2Cf$A7zz2umPz*WGFcI!&OshDBE~txM zBZHmD*03#=6`Eq@l;ADZ&QwJjrM?Qhu_coHmb#uI?UZ4N?#-$b*&8~dF5?kAMJ9d6 z?Q8^Yw-%8d?8GF)w&v&6uI4snSvK)8*th6oRnd$JG^4H!uaIOKJ_zhnPFa&1yA{An zZX`7ck*G%&g&&ue*vldtLZ-?nSQQD&!?duIr}#_o5#=c|xi(xShcG#Y&0+#5gctaV zpODAl;6Iep!bc((i7#{_Tkny$cK-YrEW8{J9tBT{R$5m<9;-T@kY}4WD{m>tJ$IR^ zBx1`YJV+;k$re-)2mPH?v!yM;KV7qdL6ldI8c=`Vd z)M!HQ;Rv5m7r8;|_$zbqavhVbAA{-N6$g&!+0X6P^u43=F&SkChl4$8dXE@9Ym-WY+_VUlQF`uM z(5P=ZQ%vGK)KupTjl|*N8vTrSMgi&6)CJlx(vD07QJx|*o2{W?tsmaf+}O7_QY@9E zsR&xisHxUoImRJp++U_^H9xvmDrTEh%+?zmi8e|)HI>y4rw>d7QI7mNtESq-TdJ8> z6|I(Ik(JUEjH_jvzER0E^-H?ok~L2Cm9M{usGHv9uF*xHOX{zH?e?>g8JAhspAVgyiY20N+r`! z6^yH|d58VM=hUIz%mu;h*!ZLZIMkcrU|W;i+O}0>^$L{Fn**A+6mE#lllOz&Dn15@ z1QZl#AUSC7?#qGdw&*>wJNTlSKEh9*1Dy=?^k=AuULu3R|70_8b99jyKCj8b$Odu1 z7axPep`&U|^a`o0_;zaPBAWrHQ8}F75qMF3cWQQk=#25sr&v7Hf5Ef60{hi}0WnXj UGZLlE9RL6T07*qoM6N<$g16!TFaQ7m literal 0 HcmV?d00001 diff --git a/larch/textures/larch_moss.png b/larch/textures/larch_moss.png new file mode 100644 index 0000000000000000000000000000000000000000..096aace7704b653d4da9bfecaa813132cc77a529 GIT binary patch literal 1455 zcmV;g1yK5lP)WFU8GbZ8()Nlj2>E@cM*00k3CL_t(o!|j$!Y*b|w z$IthD_c?R#yywoebV`}NDX4@>AhjxwQV0aCE;K|oYSa)DHyUMQOiW1J7)q-hrO2 zNrmIlhlasuYe)F{&Zip=TsWJ$^iO=lX00Q8%cc>H57a77D4i<)b+?>oDFO!ecU&d} zb?LXv7kvT#9eyPL}^ICwH&KHBG~u zfa1Bd4dJLz8yhM8yt>uftN2L7FxUV9_$-SxUOZbkuJ}kM+37t03t8qp-5cp_o_s4T{xYY$Hyv_ zio0w91N%F+U=E#f8EjO1WEVy#ws6zTxyMTPj(ShX#ev0s)vWUjeAyk>HIF}-8~$+l2aD9nE&h`7lYd#oQ?UD) zwgySUiNPbI=k`6I1t5TKioG8m?R{-E3c{JRXYiZ%>U? zuw}X^k(AwhmO`~mp;~qvN*RX`0@crfO_|%$;iX=c!_~4=%BHQOqDa;e9>S*vueIE> z6<5p7QJ)X+szS7 zeSV%Ah9gKahSjYe7ZU_?)5Z^v^@X3p7#))pGQ|;G7A4Yu^4syAB{`ue<98j0obISs z7d;B;FBct1wtLpd3i)hgxL8nBew$@F&0QN+$YpG#`Z<)*5XKACv;3lp)p6vDBPtMq`4I z(d}brzMpt@Df{J)>sZ%yhvV@{gwUo^fqo!+NFM+|`j$D$7z~*;<}Az_Y<|XERQ()g z4DynMFKe2n-4_7>0I~-MB?%`^4PHAWdvFi{VB*>WB?N^75svG8SUo&3TJDo&a%f@J zI1!5R0bSSir3gUFy?hjve9nuwa{f&2mA3UtB3>`fIF36qcx3dU2Y!;xPUoy-Yj~8} z?D)u~*-AsBzn9ujEad6)x3k*^&W=4T(Z0Q{T`MQ{3M(v!zX1s%NeW}$KfwS1002ov JPDHLkV1iV|re^>E literal 0 HcmV?d00001 diff --git a/larch/textures/larch_sapling.png b/larch/textures/larch_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..7005cb01957214971a7d3c148873e9b49ee9bfc4 GIT binary patch literal 1558 zcmV+x2I={UP)#p603B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00nwUL_t(Y$IX^sY#dh= z#(($Tnc3N0uXp|5jvGT9H))*aPt#I2&?YaHhzeC(kb(l0D@7$#iYNkA6;TBRBm}4u z65)Xgq*euq7l;rqpwfyWKuy%jO`O_EOltgxINo^e^{!{uyEAuYE)Nz6XyiDlDsf)! z!_~dt`ObIF(I+m?dwiH7`H*y>6ul$70uy2cN;gQ(6JFpeEfRVtN`QYk7gOFjxLjC!JO(CFto%Bc)*Ue1-2nQzk~=I>0>#-w<uhT`*L>}$B~>nSHbrq_Uz7+PAl%cx0Pzy=J<2H41cW`BjcN6@Wg?g zMhei8p|LqlvDjc?At0Nva9u@ftHbAdcbcIG|0u9*gtmd&#sMZKJd_eNHCaqf*4VNo zOD1bkT?tuS49Mjy(rLv@Kf1@%Y7tLAcUEkWfy5ZWTXXZmT1cDD4u?2~zP=2lQo!V7 z4W$I9PcLy*6h&K?OChf@#3ZqWQfB>CVcC-5r?Z%hLa)Z`N^dcPgU$GUgfY(hz{&Wu`Bg>SR10EXOW?p{%UD4SlZd{@y%Cfudc9YF0E?)AeR5bN^OlOx%OTlJp zy2e5&z;zY9y=f*VYgm@#$xrSw-Q6yLSQkL505>IBSZGizHn1$oz(5neA949|fYu3n z_7r&Mon`WQn_au|oI6*+aU`2JXV`n-Mhp^|on56;2?;|(E+?6o@VNi}cHETYjX#wb z8>GRv4A2ijf zCX=yfG-84v;jzbh(Rz)&)(ITO59>aQ#7h=re7k z+G38}x5JE$uh7+*A_x+EKccTMO`+g$;lc{7tq!&=(KYB9!fB$>3t7$}tjN~M4c7d&QWR%vff;W(1_-t#Gy0;Z;FbabRBmqRXH@~Bod zFMM;ixh{j_!vm(f+r@DtSFY3<8fxXuH#57ab<7tY~y(kP=#39DF|_pSLk)Ex|BcJL5PZ z3=Nr#V!5LE=`Sb6y1wZ6@PG+|7^x&FN74vlloCWbK}dmPOX9@PoU>^(VnUr@TauPm zhwuDwTx`gAJ@xojQ&|p4r!8Lo^^~xT&9UK+n5*-3Iy&|dhVSyqscG@VXFqCQIW;Xl zkhA+&eCZ317_Bv)=kcrG|3z%%jde3VGYA6WI7Z#bZT(056D}N>ms^@EkpKVy07*qo IM6N<$f`yIL%K!iX literal 0 HcmV?d00001 diff --git a/larch/textures/larch_trunk.png b/larch/textures/larch_trunk.png new file mode 100644 index 0000000000000000000000000000000000000000..a9140994158c362247b03cd58b1bdf273af94767 GIT binary patch literal 3207 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 literal 0 HcmV?d00001 diff --git a/larch/textures/larch_trunk_top.png b/larch/textures/larch_trunk_top.png new file mode 100644 index 0000000000000000000000000000000000000000..22b382925130e0c764c124978c50b309edfd8c72 GIT binary patch literal 2162 zcmV-&2#xoNP)aMPy{*|&blNiTDlHiCY=qd_2qQQj{K}3Zhx^yq( zA8_X)2q7EILU5r7F(^hPC?OFSNidViOq)vooa(CTs($r;|8Vi)Xc-Aw+F^euDt&yz`Us1c0T6LzWjfmVssHjHWX*DQMUh zd7jhlv`Euz!O{8O%_WB$y9a1@H(dFcM^?=*h~fk(1(s={l)_P3ZAePV>6ym^n++^6 z!zc!5MT{m3vRr_&hzb)wcbKI*d0sF*^I38%&is%xNr=;wrrW4f0-!2LilRUWL3gor88dq*)=X-YS8OCG;JMA z*Xn0|*Lnz>m>u(wOV%kL9Nb~OyFzPeiRdngD?*F!ed{YlQ52+UMxN(H zNx}oYO>`~8j`q-GL9gr7i~0kfy%V49Rp*|B+v?Z=><TeHiEy30j{gX3V`uoI24?}63#R-}e7`j3xY0kv+Ns|P}GSDQvbFnuPYr};tvhLZK1AkHwAq|-F&d0~>#E&ANIQF82T=2s*XOuYalHL|?m>CZYm^}uI% z{^eWTKAf?=S{khk9gV|})%#Y*W`7uzI|p`;XEjH{q?G8oeurCzj%%9~6i6urN@_G3 z4iA5#$-&V8fS*6}X`X&^lb2rYljQ|R;NtTnOIWo-(EXxGIN{;G$4ki&xmd-DpeUxAQ={7ICvRgxJC|Mgclw=mAJhIc` z8=v2#Kk)hYt<$o8oa0F~hJzD|qCk@ZsWgFUD3aKtWl@t2U>YRkMZr(5U*XX!Eq?vi z510lC{ei#my#3z^O;BVzFXoDS{9w1xg^0QWAMnpnW0Q!%+$SkH30_ z+s7Wid9}~=Ya48JY_hyqkY^>=^<`@zfJ%~oxN(5e1n=#8`00mSedv=YAipwBCv=(yk6&rmyR0Ce21y;@z2480a^fXunugLON=ku5LpO{I zj^DgFVtcjJ`y)FohST^iv=04&zhJZ?;Hj6ecT%SB)Jtk4&dXBQRe2WVd3h+fj$O-T z8k7rzII9hZNk)I*v%YL$C`sGZx&Kn54r)I4PhMSR8kB+bx(>(VkQZLr#ndHI2qu2Q z!8n(oaS@H`v{3j zC6|^he)-eK>2)0@ewmilwGL7Ww9EHxJZBh+C@J{v7uPTqWO+fH=Z44!8HS{tlA;|Kwyb4+7 zyE>u)bWP$%8Lq8Z-M$|$$kCOCN|FTAD9LeW3ZLq@wDC9^hjqTI)37@4ZytCIr*RGY zeEkTMj8iXJknsG4W^a-+m=uhs9-*NlbzLV-%UkMj;?bXVYPMF@t&&@>>+tut20Xaw z))G5^Pk7_TsJ;~)jl(*yDmACsT7BzoG#q5b{PARpYnx<+;DcbJj=F*{PRl|SCK*pZ zxk=O3>p4}BniO=JCNKVZmnh9>yZVCkJpDfIochdWK2kuEB&7<35G*wuZtop3J@ZLW z>}A_*cifu!RUn!a6a@?Hum0a325c-_%)*RY2ebO-l;@In#w#3+0-`vhxM6Z`^pd zMxkMz|EN|TbRKb%Km76f>Kju(_Y z;O#x12k-CUTJYMB@PPl8bG%Rkz(0 oV)HgCJJq)!ifiZdZF=?oKNrDJSYW15qyPW_07*qoM6N<$g5whzZ2$lO literal 0 HcmV?d00001 diff --git a/larch/textures/larch_wood.png b/larch/textures/larch_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0cc37821f2b39052a20a37d60c64f6a2bb0b68 GIT binary patch literal 2097 zcmV-12+sG3P)WFU8GbZ8()Nlj2>E@cM*00)&xL_t(o!$p@ruVhP7 z#D9^Qb^899`({Rf&?0PB7+|mx!dpH777ky94~B^WCKeJ71_lxcX%Rel`)2NR_o>QE zjOw?vbBsP!Co3v4B2s_-SAX16BQ;b}RUly_kc`fxyP;rF&?2({!#xOrsc<#b#at8f zK^%idWG2vb6`2Nz%0hAk#9#dKkD!Z)!JLyb6S^1?G-AyKEdb=~Meev6nTb3A7%t8^ zxt$ZU;NroV$yy7yKm|6MCW$d{bKc*t#J4a1OK0-_?Hiekw~rsW=AyA(M6*%p=EcOy z1RzGxG(u!9uD2_d$;*c~?kh1j%$<6yH^e1_HSbtBX2DuTY&ZonUOs$BnRCc+8FbNV zkQie?!?3`@x!!M#eP=ece#WaZD`~1c{PyFL6 z9>G*o4K#E$0@OuUVQ#?w|G;^9z7RC?4D2|t5mYBxx%a4M$XIJ)?ntkQCTZsL6BZZZ zZ~pF|5uzn#7rDWps|hniqiVW~YGZ^`S#&3cA%P?o#%yr!ePuW<;SJqMbz?33Fjgfg zu^Qsf{`3#IXM!25#D`-_qJb7gZ<2*$S+qI#RfytnaW~^S3kN!(DMlD!iQ4FHOv2ou zAuBo8;{AGMj6q!1_Z!~cE!C@-S#*h}aWkrt?4oH(j+sz_tQirT8!}{&Rjm7Z5Y%vl z`X>Yh?hL`lvFMe=Drj?7HQ@uZrdTY&;ZBizn>MP0YPLRfkquQFp}C3}0q*SUZ#)9J zAPbkEjY1m<3!Wl~3(atW8(zsg?*xNYg9hx;MlJ{y)rriI8pA=od0>KGoNM6)$ptVv z8(NqR(vs?hN1!vfybR($epoCYn^Y@_Bbaq!ED((0%sG(^RcwZ;=mNPY_Rn&woy=LC znBSlqGp92V3o4Nt**E5W@%8#l{Num9vk0UnOw62H`C1?+Gxwb%WMVU;$ZBR5F}7xO z6#_2f!dyv_2xm7k2!lS68P$93dpC!jeWPnn7Me0fj6vmvbw2m z3WykhHYi1Pz+WV)(wJQ+dufpJJ|1q_5UMt407EuHBRDc*6k!defNR)FJG}PYAxQL z2f2#Zr#FtL3%Bcy798OWz#?b^m6$boiUadO<)Uig<3S37s^l0BRb<{V1z~}QG2Cz< z{{2@!U~=3ahhSkIv_!w(HpIZ!bD!iq7c$#qG~?HOBGD*J z9jjy*#Gm}Z@9t`bbG@J3yU8pL56m_RwIcm0V~mGcHIk4!E1TQ>ju6K%u;6;0 zxP$>_BD?Sym>JjWB=pef|Nj1ea1UNSe`2nMT9_HWg^OXv>*3^DNZJ-2(C5~KFF*c> z%y|3o#;T-T+cl5N4mj?-ny9rlk0g!@#Hc&!=F{s1xkKJCHQ`S6;u4}VF&XQ2-{xY* z?RMk&g7<3w3JTTs>}%tBU=m$DwC!#`-ua^T@#Kc;&1=qUmtSn zWH+)MP}Q4c^!5V@RyPq&Jw9NMU|C(rjG5xWv+WVtsDul$cRDhlvcSc+EaESJ`E%}% z6tdRIag0X+4+jIfn~-BI+QiC5S8g>3jb7uRX@``pf61vIfi=7EB7Ck4I$9#$QP*R!HV-Qj|(G~c( zkZQ&_c)dLH-rtz!9OEFXFn6+=Hh+j*lN43C=YxjENE{zeK;tG>PO|$q9FPq