From c0c57ca204a88acb81d3dfc366537efa45178189 Mon Sep 17 00:00:00 2001 From: AntumDeluge Date: Thu, 8 Jun 2017 16:24:49 -0700 Subject: [PATCH] Add 'mypaint' mod @ Git commit c1d4dd5: https://github.com/DonBatman/mypaint/tree/c1d4dd5 --- README.md | 3 + mods/modpacks/mymods/README.md | 2 + mods/modpacks/mymods/mypaint/README.md | 5 + mods/modpacks/mymods/mypaint/depends.txt | 1 + mods/modpacks/mymods/mypaint/description.txt | 1 + .../mymods/mypaint/extras/mypaint.xcf | Bin 0 -> 7516 bytes .../mypaint/extras/mypaint_inv_can_base.xcf | Bin 0 -> 15246 bytes mods/modpacks/mymods/mypaint/init.lua | 31 +++ mods/modpacks/mymods/mypaint/mod.conf | 1 + .../mymods/mypaint/models/mypaint_can.obj | 106 +++++++++ mods/modpacks/mymods/mypaint/paint.lua | 213 ++++++++++++++++++ .../mymods/mypaint/textures/mypaint_brush.png | Bin 0 -> 300 bytes .../mypaint/textures/mypaint_brush_color.png | Bin 0 -> 124 bytes .../mypaint/textures/mypaint_can_base.png | Bin 0 -> 338 bytes .../mypaint/textures/mypaint_can_color.png | Bin 0 -> 128 bytes .../mypaint/textures/mypaint_inv_can_base.png | Bin 0 -> 4494 bytes .../textures/mypaint_inv_can_color.png | Bin 0 -> 1792 bytes .../mypaint/textures/mypaint_scraper.png | Bin 0 -> 712 bytes 18 files changed, 363 insertions(+) create mode 100644 mods/modpacks/mymods/mypaint/README.md create mode 100644 mods/modpacks/mymods/mypaint/depends.txt create mode 100644 mods/modpacks/mymods/mypaint/description.txt create mode 100644 mods/modpacks/mymods/mypaint/extras/mypaint.xcf create mode 100644 mods/modpacks/mymods/mypaint/extras/mypaint_inv_can_base.xcf create mode 100644 mods/modpacks/mymods/mypaint/init.lua create mode 100644 mods/modpacks/mymods/mypaint/mod.conf create mode 100644 mods/modpacks/mymods/mypaint/models/mypaint_can.obj create mode 100644 mods/modpacks/mymods/mypaint/paint.lua create mode 100644 mods/modpacks/mymods/mypaint/textures/mypaint_brush.png create mode 100644 mods/modpacks/mymods/mypaint/textures/mypaint_brush_color.png create mode 100644 mods/modpacks/mymods/mypaint/textures/mypaint_can_base.png create mode 100644 mods/modpacks/mymods/mypaint/textures/mypaint_can_color.png create mode 100644 mods/modpacks/mymods/mypaint/textures/mypaint_inv_can_base.png create mode 100644 mods/modpacks/mymods/mypaint/textures/mypaint_inv_can_color.png create mode 100644 mods/modpacks/mymods/mypaint/textures/mypaint_scraper.png diff --git a/README.md b/README.md index 853389ce..8c41868d 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m * [mydoors][] ([CC-BY / CC-BY-SA][lic.mydoors] / [WTFPL][lic.wtfpl] / [DWYWFPL][lic.dwywpl]) -- version: [63aef13 Git][ver.mydoors] *2017-03-31* ([patched][patch.mydoors]) * [myfences][] ([DWYWPL][lic.dwywpl]) -- version: [c6e529a Git][ver.myfences] *2016-04-04* * [mylights][] ([DWYWPL][lic.dwywpl]) -- version: [437fc0c Git][ver.mylights] *2016-03-23* + * [mypaint][] ([DWYWPL][lic.dwywpl]) -- version: [c1d4dd5 Git][ver.mypaint] *2016-03-25* * [myroofs][] ([DWYWPL][lic.dwywpl]) -- version: [6da6148 Git][ver.myroofs] *2016-03-23* * [mysheetmetal][] ([DWYWPL][lic.dwywpl]) -- version: [7c5ab71 Git][ver.mysheetmetal] *2016-04-12* ([patched][patch.mysheetmetal]) * [mywoodslopes][] ([DWYWPL][lic.dwywpl]) -- version: [3a1b531 Git][ver.mywoodslopes] *2016-03-23* @@ -263,6 +264,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m [mydoors]: https://forum.minetest.net/viewtopic.php?t=10626 [myfences]: https://forum.minetest.net/viewtopic.php?t=14275 [mylights]: https://forum.minetest.net/viewtopic.php?t=13154 +[mypaint]: https://forum.minetest.net/viewtopic.php?t=14274 [myroofs]: https://forum.minetest.net/viewtopic.php?t=11416 [mysheetmetal]: https://forum.minetest.net/viewtopic.php?t=11702 [mywoodslopes]: https://forum.minetest.net/viewtopic.php?t=11433 @@ -472,6 +474,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m [ver.mydoors]: https://github.com/minetest-mods/mydoors/tree/63aef13 [ver.myfences]: https://github.com/DonBatman/myfences/tree/c6e529a [ver.mylights]: https://github.com/minetest-mods/mylights/tree/437fc0c +[ver.mypaint]: https://github.com/DonBatman/mypaint/tree/c1d4dd5 [ver.myroofs]: https://github.com/minetest-mods/myroofs/tree/6da6148 [ver.mysheetmetal]: https://github.com/minetest-mods/mysheetmetal/tree/7c5ab71 [ver.mywoodslopes]: https://github.com/minetest-mods/mywoodslopes/tree/3a1b531 diff --git a/mods/modpacks/mymods/README.md b/mods/modpacks/mymods/README.md index f592bfdd..c86d7a3a 100644 --- a/mods/modpacks/mymods/README.md +++ b/mods/modpacks/mymods/README.md @@ -9,6 +9,7 @@ - [mydoors][] (DWYWPL) - [myfences][] (DWYWPL) - [mylights][] (DWYWPL) +- [mypaint][] (DWYWPL) - [myroofs][] (DWYWPL) - [mysheetmetal][] (DWYWPL) - [mywoodslopes][] (DWYWPL) @@ -22,6 +23,7 @@ [mydoors]: https://forum.minetest.net/viewtopic.php?t=10626 [myfences]: https://forum.minetest.net/viewtopic.php?t=14275 [mylights]: https://forum.minetest.net/viewtopic.php?t=13154 +[mypaint]: https://forum.minetest.net/viewtopic.php?t=14274 [myroofs]: https://forum.minetest.net/viewtopic.php?t=11416 [mysheetmetal]: https://forum.minetest.net/viewtopic.php?t=11702 [mywoodslopes]: https://forum.minetest.net/viewtopic.php?t=11433 diff --git a/mods/modpacks/mymods/mypaint/README.md b/mods/modpacks/mymods/mypaint/README.md new file mode 100644 index 00000000..7fb22c04 --- /dev/null +++ b/mods/modpacks/mymods/mypaint/README.md @@ -0,0 +1,5 @@ +# mypaint + +Use paint cans and brushes to paint items. + +Licence - DWYWPL diff --git a/mods/modpacks/mymods/mypaint/depends.txt b/mods/modpacks/mymods/mypaint/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/modpacks/mymods/mypaint/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/modpacks/mymods/mypaint/description.txt b/mods/modpacks/mymods/mypaint/description.txt new file mode 100644 index 00000000..2e3166e9 --- /dev/null +++ b/mods/modpacks/mymods/mypaint/description.txt @@ -0,0 +1 @@ +Provides paint brushes and buckets for other mods to use to paint their items. diff --git a/mods/modpacks/mymods/mypaint/extras/mypaint.xcf b/mods/modpacks/mymods/mypaint/extras/mypaint.xcf new file mode 100644 index 0000000000000000000000000000000000000000..1704bc5a8d3eeb1035f33eb3fa554e7e0889bcd2 GIT binary patch literal 7516 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 literal 0 HcmV?d00001 diff --git a/mods/modpacks/mymods/mypaint/init.lua b/mods/modpacks/mymods/mypaint/init.lua new file mode 100644 index 00000000..ad544a27 --- /dev/null +++ b/mods/modpacks/mymods/mypaint/init.lua @@ -0,0 +1,31 @@ +mypaint = {} +mypaint.colors = { + red = {"Red", "ff0000"}, + green = {"Green", "00ff00"}, + white = {"White", "ffffff"}, + black = {"Black", "000000"}, + blue = {"Blue", "0000ff"}, + brown = {"Brown", "190B07"}, + cyan = {"Cyan", "00ffff"}, + darkgreen = {"Dark Green", "005000"}, + darkgrey = {"Dark Grey", "1C1C1C"}, + grey = {"Grey", "848484"}, + magenta = {"Magenta", "ff00ff"}, + orange = {"Orange", "ff7700"}, + pink = {"Pink", "FE2E9A"}, + violet = {"Violet", "7f007f"}, + yellow = {"Yellow", "ffff00"}, +} +mypaint.paintables = {} + +mypaint.register = function(names, colors) + local ctable = {} + for _, color in ipairs(colors) do + ctable[color] = true + end + for _, name in ipairs(names) do + mypaint.paintables[name] = ctable + end +end + +dofile(minetest.get_modpath("mypaint").."/paint.lua") diff --git a/mods/modpacks/mymods/mypaint/mod.conf b/mods/modpacks/mymods/mypaint/mod.conf new file mode 100644 index 00000000..1b32cb0c --- /dev/null +++ b/mods/modpacks/mymods/mypaint/mod.conf @@ -0,0 +1 @@ +name = mypaint diff --git a/mods/modpacks/mymods/mypaint/models/mypaint_can.obj b/mods/modpacks/mymods/mypaint/models/mypaint_can.obj new file mode 100644 index 00000000..4bbb61d6 --- /dev/null +++ b/mods/modpacks/mymods/mypaint/models/mypaint_can.obj @@ -0,0 +1,106 @@ +# Blender v2.77 (sub 0) OBJ File: '' +# www.blender.org +o Cylinder +v -0.000000 -0.500000 0.250000 +v -0.000000 0.000000 0.250000 +v -0.125000 -0.500000 0.216506 +v -0.125000 0.000000 0.216506 +v -0.216506 -0.500000 0.125000 +v -0.216506 0.000000 0.125000 +v -0.250000 -0.500000 0.000000 +v -0.250000 0.000000 0.000000 +v -0.216506 -0.500000 -0.125000 +v -0.216506 0.000000 -0.125000 +v -0.125000 -0.500000 -0.216506 +v -0.125000 0.000000 -0.216506 +v -0.000000 -0.500000 -0.250000 +v -0.000000 0.000000 -0.250000 +v 0.125000 -0.500000 -0.216506 +v 0.125000 0.000000 -0.216506 +v 0.216506 -0.500000 -0.125000 +v 0.216506 0.000000 -0.125000 +v 0.250000 -0.500000 -0.000000 +v 0.250000 0.000000 -0.000000 +v 0.216506 -0.500000 0.125000 +v 0.216506 0.000000 0.125000 +v 0.125000 -0.500000 0.216506 +v 0.125000 0.000000 0.216506 +vt 0.999881 0.000119 +vt 0.999881 0.322018 +vt 0.916568 0.322018 +vt 0.916567 0.000119 +vt 0.833254 0.322018 +vt 0.833254 0.000119 +vt 0.749941 0.322018 +vt 0.749940 0.000119 +vt 0.666627 0.322018 +vt 0.666627 0.000119 +vt 0.583314 0.322018 +vt 0.583313 0.000119 +vt 0.500000 0.322018 +vt 0.500000 0.000119 +vt 0.416687 0.322018 +vt 0.416686 0.000119 +vt 0.333373 0.322018 +vt 0.333373 0.000119 +vt 0.250060 0.322018 +vt 0.250060 0.000119 +vt 0.166746 0.322018 +vt 0.166746 0.000119 +vt 0.114068 0.633186 +vt 0.041916 0.591529 +vt 0.000260 0.519378 +vt 0.000260 0.436064 +vt 0.041916 0.363912 +vt 0.114068 0.322256 +vt 0.197381 0.322256 +vt 0.269533 0.363912 +vt 0.311190 0.436064 +vt 0.311190 0.519377 +vt 0.269533 0.591529 +vt 0.197381 0.633186 +vt 0.083433 0.322018 +vt 0.083433 0.000119 +vt 0.000119 0.322018 +vt 0.000119 0.000119 +vt 0.197241 0.322256 +vt 0.269392 0.363913 +vt 0.311049 0.436064 +vt 0.311049 0.519378 +vt 0.269392 0.591529 +vt 0.197241 0.633186 +vt 0.113927 0.633186 +vt 0.041776 0.591529 +vt 0.000119 0.519377 +vt 0.000119 0.436064 +vt 0.041776 0.363912 +vt 0.113927 0.322256 +vn -0.258800 0.000000 0.965900 +vn -0.707100 0.000000 0.707100 +vn -0.965900 0.000000 0.258800 +vn -0.965900 0.000000 -0.258800 +vn -0.707100 0.000000 -0.707100 +vn -0.258800 0.000000 -0.965900 +vn 0.258800 0.000000 -0.965900 +vn 0.707100 0.000000 -0.707100 +vn 0.965900 0.000000 -0.258800 +vn 0.965900 0.000000 0.258800 +vn 0.000000 1.000000 0.000000 +vn 0.707100 0.000000 0.707100 +vn 0.258800 0.000000 0.965900 +vn 0.000000 -1.000000 0.000000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/4/2 4/3/2 6/5/2 5/6/2 +f 5/6/3 6/5/3 8/7/3 7/8/3 +f 7/8/4 8/7/4 10/9/4 9/10/4 +f 9/10/5 10/9/5 12/11/5 11/12/5 +f 11/12/6 12/11/6 14/13/6 13/14/6 +f 13/14/7 14/13/7 16/15/7 15/16/7 +f 15/16/8 16/15/8 18/17/8 17/18/8 +f 17/18/9 18/17/9 20/19/9 19/20/9 +f 19/20/10 20/19/10 22/21/10 21/22/10 +f 4/23/11 2/24/11 24/25/11 22/26/11 20/27/11 18/28/11 16/29/11 14/30/11 12/31/11 10/32/11 8/33/11 6/34/11 +f 21/22/12 22/21/12 24/35/12 23/36/12 +f 23/36/13 24/35/13 2/37/13 1/38/13 +f 1/39/14 3/40/14 5/41/14 7/42/14 9/43/14 11/44/14 13/45/14 15/46/14 17/47/14 19/48/14 21/49/14 23/50/14 diff --git a/mods/modpacks/mymods/mypaint/paint.lua b/mods/modpacks/mymods/mypaint/paint.lua new file mode 100644 index 00000000..d565e927 --- /dev/null +++ b/mods/modpacks/mymods/mypaint/paint.lua @@ -0,0 +1,213 @@ +local BRUSH_USES = 3 +local CAN_USES = 100 + +function check_paintcan(pos, node) + local name = node.name + if string.sub(name, 1, 14) ~= "mypaint:paint_" then + return + end + local color = string.sub(name, 15) + local meta = minetest.get_meta(pos) + stack = ItemStack("mypaint:brush_"..color) + if minetest.setting_getbool("creative_mode") then + return stack + end + local uses = meta:get_int("mypaint:uses") - 1 + meta:set_int("mypaint:uses", uses) + if uses <= 0 then + minetest.dig_node(pos) + else + local info = meta:get_string("infotext") + info = string.gsub(info, "%(.*%)", "("..uses.." uses)") + meta:set_string("infotext", info) + end + return stack +end + +function paint_node(pos, node, col, itemstack) + local s, e + local nname = node.name + s, e = string.find(nname, "_[^_]+$") + local color + if s and e then + color = string.sub(nname, s + 1, e) + if mypaint.colors[color] then + nname = string.sub(nname, 1, s - 1) + if color == col then + return + end + end + end + + for name, colors in pairs(mypaint.paintables) do + if (nname == name) then + if not col then + if color then + minetest.set_node(pos, {name = name, param2 = node.param2}) + end + return + end + if not colors[col] then + return + end + minetest.set_node(pos, {name = name.."_"..col, param2 = node.param2}) + if not minetest.setting_getbool("creative_mode") then + local wear = itemstack:get_wear() + 65535 / BRUSH_USES + if wear < 65535 then + itemstack:set_wear(wear) + else + itemstack = ItemStack("mypaint:brush") + end + return itemstack + end + end + end +end + +minetest.register_tool("mypaint:brush", { + description = "Paint Brush", + inventory_image = "mypaint_brush.png", + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + local pos = pointed_thing.under + local node = minetest.get_node(pos) + if string.sub(node.name, 1, 8) ~= "mypaint:" then + return + end + return check_paintcan(pos, node) + end +}) + +minetest.register_tool("mypaint:scraper", { + description = "Paint Scraper", + inventory_image = "mypaint_scraper.png", + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + local pos = pointed_thing.under + local node = minetest.get_node(pos) + return paint_node(pos, node, nil, itemstack) + end +}) + +for color, entry in pairs(mypaint.colors) do + local desc = entry[1] + local cstring = entry[2] + + minetest.register_tool("mypaint:brush_"..color, { + description = "Paint Brush ("..desc.." Paint)", + inventory_image = "mypaint_brush.png^(mypaint_brush_color.png^[colorize:#"..cstring..")", + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + local pos = pointed_thing.under + local node = minetest.get_node(pos) + local ret = check_paintcan(pos, node) + if ret then + return ret + end + return paint_node(pos, node, color, itemstack) + end, + }) + + minetest.register_node("mypaint:paint_"..color, { + description = desc.." Paint", + drawtype = "mesh", + paramtype = "light", + paramtype2 = "facedir", + mesh = "mypaint_can.obj", + tiles = {"(mypaint_can_color.png^[colorize:#"..cstring..")^mypaint_can_base.png"}, + stack_max = 1, + drop = "", + groups = {oddly_breakable_by_hand = 3, dig_immediate = 3, not_in_creative_inventory = 1}, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0., 0.25}, + } + }, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if not digger then + return + end + local inv = digger:get_inventory() + if not inv then + return + end + local itemstack = ItemStack("mypaint:paintcan_"..color) + local uses = tonumber(oldmetadata.fields["mypaint:uses"]) + if not uses then + uses = 100 + end + if uses <= 0 then + return + end + itemstack:set_wear((CAN_USES - uses) * (65535 / CAN_USES)) + if inv:room_for_item("main", itemstack) then + inv:add_item("main", itemstack) + else + minetest.add_item(pos, itemstack) + end + end + }) + + minetest.register_tool("mypaint:paintcan_"..color, { + description = desc.." Paint", + inventory_image = "mypaint_inv_can_base.png^(mypaint_inv_can_color.png^[colorize:#"..cstring..":alpha)", + on_place = function(itemstack, user, pointed_thing) + local pname = "mypaint:paint_"..color + local paint = ItemStack(pname) + paint = minetest.item_place_node(paint, user, pointed_thing) + if not minetest.setting_getbool("creative_mode") then + if not paint or (paint:get_count() > 0) then + return + end + end + local pos = pointed_thing.under + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + if node.name ~= pname or (meta:get_int("mypaint:uses") > 0) then + pos = pointed_thing.above + node = minetest.get_node(pos) + meta = minetest.get_meta(pos) + if node.name ~= pname or (meta:get_int("mypaint:uses") > 0) then + return + end + end + local uses = math.floor(CAN_USES - itemstack:get_wear() / (65535 / CAN_USES)) + meta:set_int("mypaint:uses", uses) + meta:set_string("infotext", desc.." Paint ("..uses.." uses)") + itemstack:take_item() + return itemstack + end + }) + + minetest.register_craft({ + output = "mypaint:paintcan_"..color, + recipe = { + {"bucket:bucket_water","dye:"..color} + }, + replacements = {{"bucket:bucket_water","bucket:bucket_empty"}}, + }) +end + +minetest.register_craft({ + output = 'mypaint:brush', + recipe = { + {'wool:white'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'mypaint:scraper', + recipe = { + {'default:steel_ingot', ''}, + {'', 'group:stick'}, + } +}) + diff --git a/mods/modpacks/mymods/mypaint/textures/mypaint_brush.png b/mods/modpacks/mymods/mypaint/textures/mypaint_brush.png new file mode 100644 index 0000000000000000000000000000000000000000..d3e605e99d75f1deb6b7829773260c86bfecd26f GIT binary patch literal 300 zcmV+{0n`48P))#{_i~+4c00XRcP){|}tl|s+3_4DBIn)x( za+{yhJpNp(%0qah|KcPUNG<&AVNyc;W_oQW{kD@}JMb&;U;_@3vxgAgwFMV1kO!#Y yIf=O?#vTl8_FzI9NG;fq1`@4N>i+eQc;ydVNkagwmc#4-0000$V^U$cS$+wR`w z-x%V4zn*{TLfORS>n$eFFj3OxdDAw-P7bIC3JTrp8kK8h*~;!$Q@S89SBA!*+Eqm|nbe>aI7X%dRnPPvwdz+4)m`9pi0_ zzQR9z5`h}w@815~KFfI@yT`9J8Go#|bDt{_+1B-Kmhzg^d%;ycYz>E`3clwz>Hm|g U(|MmdKI;Vst0J-9Z(*OVf literal 0 HcmV?d00001 diff --git a/mods/modpacks/mymods/mypaint/textures/mypaint_can_color.png b/mods/modpacks/mymods/mypaint/textures/mypaint_can_color.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ece7985c6d82e6d80f55c41a9c92195a22de8d GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=?w&4=Ar-gYUUC#s7pg*K+dvwj;78#5xxRb_m-q!77#La535B!Fvh2)<>gLR?0;%_O^>bP0l+XkK DOxPX! literal 0 HcmV?d00001 diff --git a/mods/modpacks/mymods/mypaint/textures/mypaint_inv_can_base.png b/mods/modpacks/mymods/mypaint/textures/mypaint_inv_can_base.png new file mode 100644 index 0000000000000000000000000000000000000000..ee4ad449f46cb8440b857095e4e6de31bb778e98 GIT binary patch literal 4494 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 literal 0 HcmV?d00001 diff --git a/mods/modpacks/mymods/mypaint/textures/mypaint_inv_can_color.png b/mods/modpacks/mymods/mypaint/textures/mypaint_inv_can_color.png new file mode 100644 index 0000000000000000000000000000000000000000..74b0fbc629c066f1bdd8b5be6b26712ecfe9c07e GIT binary patch literal 1792 zcmV+b2mknqP)E<=74W>_p<=H z9C*s_`vftJ!}yMHOcUI_0D1tX0L&8HKHsyC?3?4gu>p|K_*BkD!%cutS~>?`Xa5Gj z%Z0+>Xv*hBUZ(`m0W1Ny4B#93{&oO=j++4ih@6I{JSSqX0a)g}a6iP5T%HS`GdaS& z9b|!#3BPd0e>AgW!^V^Pu~ZlL%afS*TU{7^bT z=7k$`(Sc2#AdI&SjP}4m=Uc55%x=Z4sl? z4Z>>TH2fTZ^JezYr~ufg3vB0%=sR5Q*W}0|19Lf)0XiWW`?`RzND$_?f)uXFET)k= z*pSHgK~&9Cc>=&r z0AINKGXQRv{$mB8Co`2qhGfx4D;E@o@g%$DgcCATBh2nt)iNu4; zOopcT{)@~G;qLDZ5rBtcfL&v@v+Gy^isC{lAl5{GIDn3sJrV&wb^t>EpxAn1P%2rS z6|hEyQ%?X*m^KI3s*5Ys81*lj*~3yVm>dRx`jEyCqGTtJT%ss8cmY$UXk3T^3p8w& zAoc*3s%&zXPyaiYq892u>9EUM>Nvh%G3{8M-`o zXi!(y{y6}dnLSA3&j7fCc|nK~Zf4Jx0YGgHdZ%kdd5;dgw@g>)%G!U0N>5YYLsBTo zA|Wdxa0)SEf#10-omo^& z?Xl02nY}2v{)YgL5aa<3?-8t;)FMmC1z={+i{I`LqZ$A%F=44olwaiY9e(ah%G-{N z|A1+)t+9k&kK)`k1^~d<03M)B4V9uGP$sG4+XTB#KM$3jO9W)X%wDG9?@;9IFDRHG zswtvu7l4_a0&vRRPXIVd>d#_zPay2%%yZ^btnB7A0US27C!<&16qVc(DXeCqAM&dR zt+6s70P#9!@Kw%WPIm)UZakCBy4S^wk<*&;vO^2zv(|vY;*W582>y zX*xg#9cFn7tACnkiE%BgZg|$@chiEUE{WvwfM9f(9fnNtG8N;ovH@s|Hg{R3LJhwe z8Q&_<@9`dkuK8gjwT6|wfG*#e5g3#TfSElZX>CRWO)@r!!HLk{A{TUdKF%U95$H)C zJpjAR?CGJ$j}bPm2ovHC1M$;P@aSN5(^I$EAr<9@uxARut&A<_SPS^KMzEy-APApf zn!77wX&cfZe6y;a4)UhKs`#MQYuN&C%U(1Q!5 zl4Jof5Wr%&ETPtnu#u?dmE5m|TvvN|~+|zBe2Ik2ZD>@y8NeFBSzrL{Lhxvb>Co zV-&DnDN}DH7_Au38$tu;Pv#^wfNRB~IKWv8!0T!i9fkmWc(O<{24nm+5y<6Cx+a_{ z6cm61-c+jqSm)S$ejEMEj3Wj*7IFqg4NQ#bbh}`tP*7W&n?z9rB7Aywi+U@e>k`0= zj~ZyiAb@olwBeQcc?IyQa+9tTj0xyif5C|tk3uir>ey`B5a7b8P!fT$$l%0_=R-&Y zTmqp11n#_SsZ0jZgEik`ovy=LUxJ>v_TsUFi<7(Sgn>r!!}VA-yF#;*FrM?`-+ow7 z(6(SSOyo7wXGSIU67-8plc7YBAq)cIB;oUp<>~vu2a`%;o==}15fui#lzweFme#v! zXaE3bj~O|1AjAo1655@l=bxbf0GvB+C+t1op2l2C6Zdp}tJSNsGoBOk=n5ai