From b998ab1b3ae8cb7f21fab30819a013b7d8e00aec Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Fri, 26 Feb 2016 07:30:38 -0800 Subject: [PATCH] Add a simple, but stylish fence gate. This fence gate builds on NDT_CONNECTED by assuming fence nodes will automatically connect to it's sides properly. The fence gate will open and close just like doors, with sounds, but it only opens one way. The gate sticks out quite a bit and can be bumped into, so the fence may be used as some sort of path switch. The fence gate offers no form of protection and can be opened and closed by anyone. This is done on purpose - the fencegate isn't meant to provide protection from players, as fences can be trivially jumped over. Instead, these fences should be used for protecting crops from hungry sheep, or keeping rabbits in their pen, or just decoration. Mods can also modify the mod to add protection, of course. A recipe is added to make these. It's 4 sticks and 2 wood (any) as follows: stick wood stick stick wood stick The collision box of the open gate is such that if two gates are connected but mirrored (making an M shape) then you can walk a large entity that's larger than 1.0 wide through the opening. The gate of an opened fence can also be stood upon or bumped into. I've mixed together some sounds to provide a somewhat light sound experience, one that one would expect from a small gate latching open and close. This change requires #873, otherwise it doesn't connect to fences. --- mods/doors/README.txt | 20 +++- mods/doors/init.lua | 59 ++++++++++ mods/doors/models/doors_fencegate_closed.obj | 106 ++++++++++++++++++ mods/doors/models/doors_fencegate_open.obj | 112 +++++++++++++++++++ mods/doors/sounds/doors_fencegate_close.ogg | Bin 0 -> 10032 bytes mods/doors/sounds/doors_fencegate_open.ogg | Bin 0 -> 8942 bytes 6 files changed, 293 insertions(+), 4 deletions(-) create mode 100644 mods/doors/models/doors_fencegate_closed.obj create mode 100644 mods/doors/models/doors_fencegate_open.obj create mode 100644 mods/doors/sounds/doors_fencegate_close.ogg create mode 100644 mods/doors/sounds/doors_fencegate_open.ogg diff --git a/mods/doors/README.txt b/mods/doors/README.txt index 02a1e9e3..deff667c 100644 --- a/mods/doors/README.txt +++ b/mods/doors/README.txt @@ -7,9 +7,10 @@ License of source code: Copyright (C) 2012 PilzAdam modified by BlockMen (added sounds, glassdoors[glass, obsidian glass], trapdoor) Steel trapdoor added by sofar. -Copyright (C) 2015 sofar@foo-projects.org +Copyright (C) 2016 sofar@foo-projects.org Re-implemented most of the door algorithms, added meshes, UV wrapped texture Added doors API to facilitate coding mods accessing and operating doors. +Added Fence Gate model, code, and sounds This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it @@ -43,9 +44,6 @@ following textures created by sofar (CC-BY-SA-3.0) doors_trapdoor_steel_side.png door_trapdoor_side.png -Door 3d models by sofar (CC-BY-SA-3.0) - door_a.obj - door_b.obj Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen: WTFPL door_obsidian_glass.png @@ -57,6 +55,14 @@ All other textures (created by PilzAdam): WTFPL Door textures were converted to the new texture map by sofar, paramat and red-001, under the same license as the originals. +Models: +-------------------------------------- +Door 3d models by sofar (CC-BY-SA-3.0) + - door_a.obj + - door_b.obj +Fence gate models by sofar (CC-BY-SA-3.0) + - fencegate_open.obj + - fencegate_closed.obj License of sounds -------------------------------------- @@ -64,3 +70,9 @@ Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen door_open.ogg Closing-Sound created by bennstir (CC BY 3.0) door_close.ogg +fencegate_open.ogg: + http://www.freesound.org/people/mhtaylor67/sounds/126041/ - CC0 +fencegate_close.ogg: + http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - CC-BY-3.0 + http://www.freesound.org/people/rivernile7/sounds/249573/ - CC-BY-3.0 + diff --git a/mods/doors/init.lua b/mods/doors/init.lua index 01778284..32d2845c 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -642,3 +642,62 @@ minetest.register_craft({ } }) + +----fence gate---- + +local fence = { + description = "Fence Gate", + drawtype = "mesh", + tiles = {"default_wood.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + drop = "doors:gate_closed", + connect_sides = { "left", "right" }, + groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, + flammable = 2, fence = 1}, + on_rightclick = function(pos, clicker) + local node = minetest.get_node(pos) + local def = minetest.registered_nodes[node.name] + minetest.swap_node(pos, {name = def.gate, param2 = node.param2}) + minetest.sound_play(def.sound, {pos = pos, gain = 0.3, + max_hear_distance = 8}) + end, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + }, +} + +local fence_closed = table.copy(fence) +fence_closed.mesh = "doors_fencegate_closed.obj" +fence_closed.gate = "doors:gate_open" +fence_closed.sound = "doors_fencegate_open" +fence_closed.collision_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, +} + +local fence_open = table.copy(fence) +fence_open.mesh = "doors_fencegate_open.obj" +fence_open.gate = "doors:gate_closed" +fence_open.sound = "doors_fencegate_close" +fence_open.groups.not_in_creative_inventory = 1 +fence_open.collision_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/4, -3/8, 1/2, 1/4}, + {-5/8, -3/8, -14/16, -3/8, 3/8, 0}}, +} + +minetest.register_node("doors:gate_closed", fence_closed) +minetest.register_node("doors:gate_open", fence_open) + +minetest.register_craft({ + output = "doors:gate_closed", + recipe = { + {"default:stick", "group:wood", "default:stick"}, + {"default:stick", "group:wood", "default:stick"}, + }, +}) + diff --git a/mods/doors/models/doors_fencegate_closed.obj b/mods/doors/models/doors_fencegate_closed.obj new file mode 100644 index 00000000..60eb4d74 --- /dev/null +++ b/mods/doors/models/doors_fencegate_closed.obj @@ -0,0 +1,106 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_closed.blend' +# www.blender.org +mtllib gate_closed.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500000 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500000 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500000 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500000 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500000 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500000 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500000 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500000 -0.125000 +v -0.375000 0.187500 0.062500 +v -0.375000 0.312500 0.062500 +v -0.375000 0.187500 -0.062500 +v -0.375000 0.312500 -0.062500 +v 0.375000 0.187500 0.062500 +v 0.375000 0.312500 0.062500 +v 0.375000 0.187500 -0.062500 +v 0.375000 0.312500 -0.062500 +v -0.374831 0.187348 0.062500 +v -0.156342 0.187363 0.062500 +v -0.374831 0.187348 -0.062500 +v -0.156342 0.187363 -0.062500 +v 0.374981 -0.343683 0.062500 +v 0.375065 -0.187304 0.062500 +v 0.374981 -0.343683 -0.062500 +v 0.375065 -0.187304 -0.062500 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.578000 -0.816100 0.000000 +vn 0.576200 0.817300 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/2 24/3/2 23/19/2 19/20/2 +f 22/1/4 18/4/4 17/21/4 21/22/4 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/2 32/28/2 31/29/2 27/30/2 +f 30/31/4 26/32/4 25/33/4 29/34/4 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 diff --git a/mods/doors/models/doors_fencegate_open.obj b/mods/doors/models/doors_fencegate_open.obj new file mode 100644 index 00000000..6c6a9cf4 --- /dev/null +++ b/mods/doors/models/doors_fencegate_open.obj @@ -0,0 +1,112 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_open.blend' +# www.blender.org +mtllib gate_open.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500000 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500000 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500000 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500000 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500000 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500000 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500000 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500000 -0.125000 +v 0.434859 0.187500 -0.872359 +v 0.434859 0.312500 -0.872359 +v 0.559859 0.187500 -0.872359 +v 0.559859 0.312500 -0.872359 +v 0.434859 0.187500 -0.122359 +v 0.434859 0.312500 -0.122359 +v 0.559859 0.187500 -0.122359 +v 0.559859 0.312500 -0.122359 +v 0.434859 0.187348 -0.872190 +v 0.434859 0.187363 -0.653701 +v 0.559859 0.187348 -0.872190 +v 0.559859 0.187363 -0.653701 +v 0.434859 -0.343683 -0.122379 +v 0.434859 -0.187304 -0.122294 +v 0.559859 -0.343683 -0.122379 +v 0.559859 -0.187304 -0.122294 +v 0.499560 -0.442900 0.005495 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vt 0.312500 0.625000 +vt 0.312500 0.500000 +vt 0.187500 0.500000 +vt 0.187500 0.625000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.816100 -0.578000 +vn 0.000000 0.817300 0.576200 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/3 24/3/3 23/19/3 19/20/3 +f 22/1/1 18/4/1 17/21/1 21/22/1 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/3 32/28/3 31/29/3 27/30/3 +f 30/31/1 26/32/1 25/33/1 29/34/1 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 +f 17/41/2 18/42/2 20/43/2 19/44/2 diff --git a/mods/doors/sounds/doors_fencegate_close.ogg b/mods/doors/sounds/doors_fencegate_close.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d42590ffb1417852a5d3549b4ca337f9e7119339 GIT binary patch literal 10032 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 O0Eh=DnBoC8$o~L@cublA literal 0 HcmV?d00001 diff --git a/mods/doors/sounds/doors_fencegate_open.ogg b/mods/doors/sounds/doors_fencegate_open.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f6dfd1d9778240796820c052213903889e7e2896 GIT binary patch literal 8942 zcmaiZcU%+C*7t^HC?eee0YVc3sDutSK~&mYg{na}L(nK^U5bLPyMJ+r$;PEMu(74WY#X1=3OA)lXa zl7a9;d_BBuT?mv0$h9)c4FK-2LXPi^5F?7@e-cHK!r4#K;%2^h^k0dU`Y((W$i41z z$N8L*mlNW)i>>)FI6?;@BaM=mMoG&f#OE?d|H()SG=%oAtdROua|oac03rmKgl0a0 zi^RgCZp=LoSMS5GajWaIhQej^t-3`C@q&3d>Je7r_XpxJ07c-Tnm-3AQVl9d61{Xi zAx!KNNJS`vZ7!5H7WID@8p_TfR}IQXnwM5$3j3W%4PWy)Y@ z5qWLnFgoRBIO(mFcw}h1bR!puMqWHRbV0gvB#co#B0Wq;ewT;jq~_1{cMK6V?f5V{ zwN4mGQw`LBPPvhT)U8&;Ly}O23Xl+T_MAXG0OaI~N9Kw%u<%qf0G$B9qH4nN!4v-R zG5li{oDq5wOA8tUfP($BBlEOl7qk;ZunD5adGS$+RCo1pmN^#J1^{CdCJj%H6UTD) z007NVip;+rneQCA6cGz0g_ltQL;#=xhmpH#dQmI!TE7{FT<W%bZJJt~`@DpMzyi*R4|K%haw5NXUq6QeMg= z^nF~+MD>AGZYGu~9qhN1*`9-C_)CdZ1q`H1P})5EzTM1Z?EtAW5M(v}0Jjq~1?F9!Ti25vu>T|fojSO|5umgGod~i6M(9yq z7D;6J_cXx;1@3TY9s8S3wTRx3Nbiu8(Waac`y~?&jbS;=AScd5(al7`VOSn#s({0o zyICZ=S=IYYq&Q6M1kL!RM1pf#a#3-*WLLpjbH(ca zl^Ks6Tm%5TMYOy`w9q0NXplIzE|H01UHChch=!L`_mJG*IS#U40u5^6{r92quLS@A zrjIW;x(DF~Y@(y+vl!E}qiBs$Q_TOB42IWh+ zCc0GxFj-yEdNcfdCRkk&&*#yL;>+i-i>v~LfD_=w_-r7a6Qari0QXtY49EwGwtdK@ zcyt$P5sr>jF3dFTQx?xk>{33H^@I(XpJ@kjGZXuCzGgld(h&#!qYVOH>f&!-xYn%C0e*B-bk^Z(@cq;4m09!(h1#Mw3JhWDN{BFsAGp7*337 zvH>Q^pO7)&ze)2IU`*~i8kgR{Vq$ry|6pig5#xG|qw zFbXnx)Cc41V>9M9lj4KBe&$#!90t@%9z+JUas#0({-rbK)0WSuj~k9%gG@ozz$D>7 z*_kAVW1T5nQy(8(y_;RCo7HJUP-l>PD+xE1;xhqr$L+-Q%DGK=<8X>N3$hzdF&s+{ zvN6NhSU7xAG{@Jq2BwJ_^)dB*VB_Op)97P^b;m8es*kz7*M(YrExWJjZKISt zT92%BXM9(-y8Cur>g5l~OT)E3!x*0_Gn`F|n-#Y^PU{#HyK7*v{lJPGGd~vO#Ena- z=&C+nR$a!_@SXSF`rg~>&-I=?^|AQXuBtsN1Rwsvm5+nrEKsmFc!2C zsR30Yy+h8idt?GYSUe#D34Lq}20!Ej7IY*mEM8em)Xq>BDOzW&>&j}!BJm;5zE6if zzm`MS1(`Txi4?6j){QE!voyt5g`+JQ^J}l`x}fUJ?eOIt5h(gJ0$OG%FA;4inO~c% ztd&oQN1qVPPe4bB=EEeH^6Uppz9I6=(2t7qIPAnlI}*^*qWL^lk!KrV1ZEHl{iq6L zL?J(L+4Zs78G}&Z;K=-1b6wYRFGF1rsz*%+gwoSNI`-+TAo51kv?x$INKmWWAe5dC zsvbsgN7nP`x`0r49b^Xxb+&#|1zP^V%$6y?ecZOEsm>gKJb0OC{%6~=I&kol`R&)y z#T1FsDl*Kj7g=v@8YSNVyIXO#;Rb>Ea-BIL5=rK=TSqk@@O>?QEa1%BVY-j1-kam2 zP)o+TlzHgsRDpxLm5=d*49eie9WcATs*W3`__})7UBk0u)`azz4tSVr`638~tk1+( zw2&u5!Q;@)<1I&$F?R0M1rQ7XARUfcLdY?IQ7n-T+?`Jnlurnf5@nVUq zni*!Si_cF?w2Z1sOhDsNTwtu91tav$u!8nE;6Zp94SNUgpGrAkUFB)eaGl$3x^TJTu$ zBco)c8EmQkhp}|Et6FNJ-ktZ|N;7!ksCQfK@&r5Wy{>|5)mQ8_OYe8w0iU}U-#~z( zw(wC_!^jRQM#`hm9#pXdVb6l@M3BIEiXQVya$;F^bl8#0T)e0(HTIp#tIz5iC#!87RbS#{uFr`Bhb z&Xn^j1R&BfgP}&DEcOmsj_W$bl_=-L(9d2{C|PagMJWXuLE0vaHu8O~qbB#)Mht^s zo}9fQ%092%l28n;01yg_3qk-oD1#$Fd;@vAgjlA5#wq}ST0{@aqwoi_KXTX*LIqUB zcA5v)K+%gv?U#+jbJW%Y@4;XXRc8sk4p)WHD=B>m7n}Y;;?2x4HCsV|xL^bYW+A|A zBOoM{{;qRie0KTAEwzJMvRD9l$McGP*S;gSydhMiNA?RBpws0U`ZtY zebZ0{Cq_w>Hw{Whwxq!l4Me4oAo8q)kffw!O?IV_0D>PWbw)@)2qA$yD<~`|A|xb* z6cZFjN+KmB-c;8-FD*d`2!a`8OSTD%BF{)kNwn7v)c!W@YLX5cm~Ijw@pHDGKf)`) zmHSil+GT`_jUX~&S?{-_P|{=BZKr>RXoWnt`JUgY+-=&!M#rM2z-dLxmV3|lAD!hH z@6lvk6V2#@;bDVj$$!K${ag2I^>S9czn+@l`0aMG^pVu~{L(j8#dD)E5-L6>XHM|+ zEYz3UJA`k=!VjwW&v5}ntzecC`uY)9 ziJ^6NysixVJKIT;mD-`F1Vy9=l{nZD;+znDdg6&5!;^lM!LQk%<6^)MK^&VI3+>K% z$9-xzYVMwStIFjlpk042;rID0E@>i(t9rP#A^1`ko?ZX`>_)o(ZQVHt#-U8%nRYK1(=RA7Y zTV0xlt zUhciA$${IYDzaYJ7Ju;R(kb%%8tON&8G1T*BL}#(E6|($sd(qWuU<_2LsX|pRhe{? z2e2?=lxD*g@c_Lz+Xa#T2)(g~FFVVuM(#0OAdSq<(@A_k{YAkM8L*4m+ob(r& z)WmfZ8@oM6KyE9dAZ)(q1K&|=fKs8B$E!6d8-}^NA z8)sWHy2tZR(#ojs4UExc*2(%pK?jED{>9n~{N;tMt={y(atOoP(aQRHR(j&KhF*e* zYLmwk*ycj{`=qmXJoWF4ssThYv}eMq9D+d18Auf{y8NmY^*7VQ>a$m=39;X%GCT!j zi*4;jG@ibHwOVW%)|a3X0}l+HdKZeV)lUqKSnkLSa3RAVHj>-Y?^Ue2S5Fq4ik4~# zyyi~B{wa)4_9&1oe=p+g%rB552v$TdXiny06|i9J@ylpjvBaMB{XIyKhxtsi}Him`)DN6C5y zRm~!hk)imV-JKjs8oFiW56KlPj`*Y9qSl)QPBLgeffEcPXsexV9w0QGdY5oB;m-Ty zN7@=~whvJ?hfrBA)>x{A0h+8g-|d8msx#X!I>N7ztWDdd9l5A0q#KPtQjHi6+*3PR zs%18J*q_&H+CEAt;V(?FO8M0t-kU;5^!Wa5^lXW?OAP&_;hypMfkmCyt>=!x?M6ix zl45p^WjoGq{%(<&->AAU?ZjDL^6k`|l9MTQ`w*N!r~k4$36fj;`pN#qtv>7m`|k|y zskCxA%|>P1V$JP?-xia`d-F4`Y#9*vqN8TAtDl}ib-a=M>e{lo;Y4RQ*>C_d*;n1F zbEKijGP|Lfww_d1lJ)h`OmvFvr)S$5Q3A9heS#i6qdKQgDga-2=6>*%(v8(!fvN%QA z2X7DdUg7_kVa^F$y5Y}1)y%II;*EdGj658>%N}P9p)nZZavd$b(NE7%_uRzKWy#{{ z65o!7g&X~4zmViWl{qNW_diFGpEfy6(dK3ymQTg)=+5>)#2TVM>^9oD33>U}s2;-G)rzfc{~vOI8g>xXV5L}U~z zsfRe{m-&DfxQTPjl^rrH|3kX+w4z(^igs~UOg}ddM?dnJ;YWfkkw(Dh$x|6kH~ysk z*Rg`XNES?L>Bfy&QXIWVh5Uq?Rae<-nS=uTSi(po*Vmw+UvwoazIvu%Ca+;gh*bBB zw1Dk<#rF&1;yX6$)6c79$61!>&22KEegqTKV{`$yflVM1+NzV(bTj>Xxk8GjF#oVD zTvRCkjvJy^^xP{U2;2Z;H^$pP_=56c&3waYFXhF#qo=M}S{wUK-}?7nF{x~}igomS zdUg~CkupksajoUg{U(=3f4EB?3_WSw6Yo!-xbUa3b+7vqd8wAch)A9J-50NtYVv#oe z^qls!{>JQg4No})&S%Gd2w1<&x!0l9pw3_T;TF#CPkcxCY}s57p3E+hH-(H_SD!bN^l&NZs2F@VO)$QgiRN z4^PO&Y**d&dp2vGvhlWuT?jK=r%K{cC7-MsV}|OU-suoRZ5Dp8Z^|3DTcv2ESHfu# zw`^Xda!Z{m5IIG(i?0mVdsyv!7<@5ELgH|v3|SF9>rDP=?a4{x57sn-$R6Ax!+)&d&8+POH~Y6!))1#jB8Ua(HTvf2O1*Ql@+9BJ-!2e>S54_S40SXwUfY(aB_LjCP zuIEXuSD2BFJu@rS}e&nb{b~<5M|g&CX#z=yhD;$fmFG7isq$r?qJ7j!FKyqO4EC+55C@Qo-`7Bn_s{tcU-4V9%?3@Y_$RRo@kI$OVdu_w#&7`}Wbe3Zm6*MIKnf?^ z{jsEy>qVP-6Y}G;g6k6pTQaiDl6)#R0~$0`>n6fO=1fiRGr+f{S0I74gC7%Ft>2#h zCSeoZY%CG_^084m{TT)Rdm9J*H-E?Pzn|qW1Sa*(ldDvKb~_?DG*9xJgn|rbqUiGu zO!1<-WQkfAOKndzY;Z%vf$GcC<#?(5gSg}?wf$TK&2JCu?y|Gcm34KrsO?o>Mx>Sa zg{Y+lUn^~|6b-?g``z_sgx*A6kb0zRgrRf;$DdAWZIDln*x1;(^4_0meb_NiWk`E> z_3c8Z_uQ+me(cvtz8Q{QSEpSndoFG-w4?QD(;}DAKv`#T0qyvX3Kbjdm4i;LmFKC) z#i{S5bZ&i;4fyIa_6D-n)7dp{S;rnlbHBYf#Y4KFXRd0pB-r2Q5Su2!S8=pYJ(h>u zVm5x>3v&^^8?75O^6($ctxU!FpReqhC&zhxRy}#EKTHDBu4Va`0)-WvY`*w)9g(-% z-*e0?rY=p|22TGo=Bzs0!>Rc~43cw!fwPg0m@xjHZ+Mh$!Z9KGbou03VR!sqnybeY z`-m`&5WhSR_yf%w+UoS~qpo;I^y+H!<2Azp1N}^&H0-Tm*t*4`@jy2b3hiciifYB0tv*jBhvWCBNkwI zW!=U$O_fR&V%wL{{Fq)&W0$sWdYCbSbXAvl@rpqa`h5(;Wi`=kQo>_qI}v}eSvn34 z4NH>M6@59zlS0eev@ucQ{25^(KgEOo)C@nxG#62SnOR7n(FlC0)W}aVSB8@cq=$ z!h9cl(O|j}_fYjzvZky8pp-+`#*g4-g4}%04hZEyh!GqOX|hi}4~Bn%uczAznrMr( zg(uIcONfX{JPQNh9CgXoEbepPPsJ=Vl%1d^CjkD$Ob1wQF`PGUbeXRjS%q`o}v9Y!%h1oIuTtq-#&p+=YgoB);3_@ z6iCH8LG1T>4FKX{RD~hazEk87_3@_>8dGQRdkB~)pGK&`yVdlPI<&bcH7T>PENB|a zS54d5^hBFa!u*I=GA|}kWBJoifpg3u7C=RCQ_#-6%jaWL{H)1@^Z8->#stC^OWxh79g`~$ zl5E|^D}vR$Y2V5y{&@$}x~DNxds1&=+n#dvqDZWQx_Ib ztqX8OypabIpKc#4enDYbMuf5Af6)bSpvbZtsG$W#C#P@c0)Soyk3jS z$(P$S1Yn?@+n9j4MZGId$@B8wyyfu)T%r9h)WA_N4Kd9I$e|8~O@(rCg#NOeQZ2uTcmhZ;$-D7ed+4hi`|@RUI%88RrGTA8!8Bg zElSkDoFRk$tYAO}?IYHJ`zPJ+3j&vwE?tZ2cVxN3P_yJGwE8uZKaBH|(8r585~pCm z9UgVz_BIF*{_*=C=-#U-x5WIcr?^6$j={Ine0SKXbNsyl=VuTgdgRC?fES&Z8iFce zHofp9)ntjLcMQ|;>>vM)9CZV7)8of%Kq6M*R1U*C~qx=INU4+mqeqdum`~;>IajBB7hIXd#Ym?_5uS_XvZI@*hSoCY#TB6eL z_9e6LiBA4rYfwB#p79I0=PMs6HfXbzmxX#CQMGpAP_OmSSyI<<{pIv*f~A({km?hG z8A)dJ_q)|HSpx;HcGldVZHq5{i#9RPifr8AEe%=ir>N%X7FFfmdIjKF?j|P1FZ;T!mMlkeL+oIu%*J@&Qv^~aR*Y2`{9n1|r(&jew+@bT$O}Jh zwE0>8rN*tkPx8D$o4$RG{5fT@0taH^%kZ`kQCZ=l3id8+wt2YYsao#40`rY`WrSOU tu~=#rIG!|NY6HO-wyr~`&%{ArEYvf6Dbup<5ou^#eFfv8LI4@S{{sa|+l&AJ literal 0 HcmV?d00001