From 530a2171b4c80d59bb2bb4c1ec6549f7ac7767ec Mon Sep 17 00:00:00 2001
From: "DESKTOP-7R8JEQQ\\k" <1076390229@qq.com>
Date: Tue, 24 Jun 2025 14:54:19 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=A1=8C=E5=8D=8F=E8=AE=AE=E8=B0=83?=
=?UTF-8?q?=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Game/Controller/NewGroupController.lua | 7 +-
.../Game/View/Family/FamilyBanDesk.lua | 82 ++++++++++------
.../Game/View/Family/FamilyMyFamily.lua | 89 ++++++++++--------
.../Game/View/Family/FamilyMyfamilyList.lua | 2 +
.../Game/View/Family/FamilySelectNumber.lua | 57 +++++++++++
.../Family/BanDesk/Component/item_banItem.xml | 2 +-
.../Family/SelectNumber/com_SelectNumber.xml | 22 +++++
wb_new_ui/assets/Family/package.xml | 1 +
.../ART/base/Family/ui/Family_fui.bytes | Bin 99736 -> 100693 bytes
9 files changed, 193 insertions(+), 69 deletions(-)
create mode 100644 lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua
create mode 100644 wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml
diff --git a/lua_probject/base_project/Game/Controller/NewGroupController.lua b/lua_probject/base_project/Game/Controller/NewGroupController.lua
index 5c1ec519..8a693d52 100644
--- a/lua_probject/base_project/Game/Controller/NewGroupController.lua
+++ b/lua_probject/base_project/Game/Controller/NewGroupController.lua
@@ -1270,13 +1270,16 @@ end
---@param id 亲友圈id
---@param tableId 同桌id
---@param table 同桌玩家
-function M:FG_SetBanTable1(id, tableId, table, callback)
+---@param tableName 同桌备注&名字
+function M:FG_SetBanTable1(id, tableId, players, name, callback)
local _data = {}
_data.id = id
_data.tableId = tableId
- _data.table = table
+ _data.table = players
+ _data.tableName = name
print("发送同桌协议")
+ pt(_data)
local _client = ControllerManager.GroupClient
_client:send(Protocol.SET_BAN_TABLE, _data, function(res)
callback(res)
diff --git a/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua b/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua
index 83fddce4..0dff9842 100644
--- a/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua
@@ -1,3 +1,5 @@
+local FamilySelectNumber = import(".FamilySelectNumber")
+
--region LOCAL
local BanDesk = {}
@@ -25,20 +27,19 @@ end
--[[ 禁止同桌数据
BanDesk.BanData = {
- { name = "备注1", players = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥2", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
- { name = "备注2", players = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥3", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
- { name = "备注3", players = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥4", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
+ { name = "备注1", deskList = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥2", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
+ { name = "备注2", deskList = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥3", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
+ { name = "备注3", deskList = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥4", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
}]]
function BanDesk:TryShow(r)
- if not self._view then
- self:Init()
- end
+
+ local view = BanDesk.New()
root = r
HideMainView()
- self:Show()
+ view:Show()
end
function BanDesk:Show()
@@ -51,9 +52,21 @@ function BanDesk:Close()
ShowMainView()
end
-function BanDesk:Init()
+function BanDesk.New()
setmetatable(BanDesk, {__index = BaseView})
- self:InitView("ui://Family/com_banDesk")
+ local inst = setmetatable({}, {__index = BanDesk})
+ inst._close_destroy = true
+ inst._full = true
+ inst._animation = false
+ inst._full_offset = false
+ inst._anim_pop = 0
+ BaseWindow.init(inst, 'ui://Family/com_banDesk')
+ inst:Init()
+ inst._root_view:GetChild("win_mode").visible = false
+ return inst
+end
+
+function BanDesk:Init()
self.btn_close = self._view:GetChild("btn_close")
self.list_banItem = self._view:GetChild("list_banItem")
@@ -62,11 +75,8 @@ function BanDesk:Init()
self:Close()
end)
- --self.list_banItem_model = {}
self.list_banItem.itemRenderer = function(index, obj)
- --self.list_banItem_model[index]
-
local data = self.BanData[index +1]
local tex_name = obj:GetChild("tex_name")
@@ -85,15 +95,27 @@ function BanDesk:Init()
local btn_addPlayer = playerObj:GetChild("btn_addPlayer")
local tex_name = playerObj:GetChild("tex_name")
- local player = data.players[playerIndex + 1]
+ local player = data.deskList[playerIndex + 1]
tex_name.text = player.name
ImageLoad.Load(loader_icon, player.portrait)
end
- list_BanedPlayers.numItems = #data.players
- list_BanedPlayers:AddItemFromPool():GetController("cStyle").selectedIndex = 1
+ list_BanedPlayers.numItems = #data.deskList
+
+ local add_play = list_BanedPlayers:AddItemFromPool()
+ add_play:GetController("cStyle").selectedIndex = 1
+ add_play:GetChild("btn_addPlayer").onClick:Set(function()
+
+ local view = FamilySelectNumber.New()
+ view:Show(root._group.id, function(number)
+ data.deskList[#data.deskList + 1] = number.uid
+ local fgCtr = ControllerManager.GetController(NewGroupController)
+ fgCtr:FG_SetBanTable1(root._group.id, data.deskId, data.deskList, data.deskName, function() self:Reflash() end)
+ end)
+ end)
+
end
end
@@ -107,26 +129,28 @@ function BanDesk:Reflash()
pt(res)
self.BanData = res.Data.ban_list
self.list_banItem.numItems = #self.BanData
- self:GetBanTableCallback()
+ self:GetBanTableCallback(res)
end)
end
-function BanDesk:GetBanTableCallback()
+function BanDesk:GetBanTableCallback(res)
print("BanDesk:GetBanTableCallback")
- -- 最后一个添加ban按钮
- local addBanItem = self.list_banItem:AddItemFromPool()
- local btn_addBanItem = addBanItem:GetChild("btn_addBanItem")
- addBanItem:GetController("cStyle").selectedIndex = 1
- btn_addBanItem.onClick:Set(function()
- local fgCtr = ControllerManager.GetController(NewGroupController)
- local groupId = root._group.id
- local banList = {}
- fgCtr:FG_SetBanTable1(groupId, -1, banList, function(res)
- print("收到同桌协议")
- pt(res)
- end)
+ self.BanData = res.Data.ban_list
+ self.list_banItem.numItems = #self.BanData
+
+ -- 最后一个添加ban按钮
+ local addBanItem = self.list_banItem:AddItemFromPool()
+ local btn_addBanItem = addBanItem:GetChild("btn_addBanItem")
+ addBanItem:GetController("cStyle").selectedIndex = 1
+ btn_addBanItem.onClick:Set(function()
+ local fgCtr = ControllerManager.GetController(NewGroupController)
+ local groupId = root._group.id
+ local banList = {}
+ fgCtr:FG_SetBanTable1(groupId, -1, banList, "新建关系", function()
+ self:Reflash()
end)
+ end)
end
diff --git a/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua b/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua
index d52f657e..222bd5ac 100644
--- a/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilyMyFamily.lua
@@ -39,22 +39,21 @@ end
function FamilyMyFamily:Refalsh()
- --local family = root._group
- local family = DataManager.groups.groupMap[self.groupId]
+ self.family = DataManager.groups.groupMap[self.groupId]
- self.tex_fName.text = family.name
- self.tex_playerName.text = "亲友圈号:" .. family.id
- self.tex_fNumber.text = family.member_num
- self.tex_cradNum.text = family.diamo
- self.tex_nocice.text = family.notice
- ImageLoad.Load(family.o_portrait, self.loader_icon)
+ self.tex_fName.text = self.family.name
+ self.tex_playerName.text = "亲友圈号:" .. self.family.id
+ self.tex_fNumber.text = self.family.member_num
+ self.tex_cradNum.text = self.family.diamo
+ self.tex_nocice.text = self.family.notice
+ ImageLoad.Load(self.family.o_portrait, self.loader_icon)
- self.cStyle.selectedIndex = family.lev -1
+ self.cStyle.selectedIndex = self.family.lev -1
-- index = 0 是显示隐藏按钮
- self.showNumber = family.isShow
- print("family.isShow",family.isShow)
- pt(family)
+ self.showNumber = self.family.isShow
+ print("self.family.isShow",self.family.isShow)
+ pt(self.family)
if self.showNumber == 0 then
self.cDisplayNumber.selectedIndex = 1
self.tex_fNumber.text = "*"
@@ -70,6 +69,7 @@ function FamilyMyFamily:Init()
self._full = true
self._animation = false
self._full_offset = false
+ self._anim_pop = 0
BaseWindow.init(self, 'ui://Family/com_myFamily')
-- 隐藏背景图
self._root_view:GetChild("win_mode").visible = false
@@ -128,8 +128,7 @@ function FamilyMyFamily:Init()
self.btn_checkNumber.onClick:Set(function()
self:Close()
- local family = DataManager.groups.groupMap[self.groupId]
- root:OpenAllNumber(family)
+ root:OpenAllNumber(self.family)
end)
self.btn_applyMsg.onClick:Set(function()
@@ -139,8 +138,8 @@ function FamilyMyFamily:Init()
self.btn_quitFamily.onClick:Set(function()
local fgCtr = ControllerManager.GetController(NewGroupController)
- print("发送了退出协议 familyid = ",root._group.id)
- fgCtr:FG_ExitGroup(root._group.id, function(res)
+ print("发送了退出协议 familyid = ",self.family.id)
+ fgCtr:FG_ExitGroup(self.family.id, function(res)
pt(res)
end)
end)
@@ -158,26 +157,25 @@ function FamilyMyFamily:Init()
end)
self.btn_confirmNotice.onClick:Set(function()
- local family = root._group
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_UpdateGroupInfo(
- family.id,
- family.name,
+ self.family.id,
+ self.family.name,
self.input_notice.text,
- not family.ban,
- family.dissolve_opt,
- family.kick_opt,
- family.apply,
- family.ban_chat1,
- family.ban_chat2,
- family.option,
+ not self.family.ban,
+ self.family.dissolve_opt,
+ self.family.kick_opt,
+ self.family.apply,
+ self.family.ban_chat1,
+ self.family.ban_chat2,
+ self.family.option,
0,
function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "更改公告失败,请稍后再试")
else
ViewUtil.ErrorTip(res.ReturnCode, "修改成功!")
- family.notice = self.input_notice.text
+ self.family.notice = self.input_notice.text
self:Refalsh()
self.cWindow.selectedIndex = 0
end
@@ -186,34 +184,51 @@ function FamilyMyFamily:Init()
end)
self.btn_hideNumber.onClick:Set(function()
- local family = root._group
+
+ if self.isShowContenting == true then
+ ViewUtil.ShowBannerOnScreenCenter("设置中,请稍后再试。。")
+ return
+ end
+
+ print("点击了")
+
local fgCtr = ControllerManager.GetController(NewGroupController)
- fgCtr:FG_SetGroupShow(0, family.id, function (res)
+ self.isShowContenting = true
+ fgCtr:FG_SetGroupShow(0, self.family.id, function (res)
print("收到协议M:FG_SetGroupShow")
pt(res)
+ self.isShowContenting = false
if res.ReturnCode ~= 0 then
+ ViewUtil.ShowBannerOnScreenCenter("设置失败,请稍后再试。。")
return
end
- --self.showNumber = 0
- local family = DataManager.groups.groupMap[self.groupId]
- family.isShow = 0
+ self.family.isShow = 0
self:Refalsh()
+ ViewUtil.ShowBannerOnScreenCenter("设置成功")
end)
end)
self.btn_showNumber.onClick:Set(function()
- local family = root._group
+ if self.isShowContenting == true then
+ ViewUtil.ShowBannerOnScreenCenter("设置中,请稍后再试。。")
+ return
+ end
+
+ print("点击了")
+
local fgCtr = ControllerManager.GetController(NewGroupController)
- fgCtr:FG_SetGroupShow(1, family.id, function (res)
+ self.isShowContenting = true
+ fgCtr:FG_SetGroupShow(1, self.family.id, function (res)
print("收到协议M:FG_SetGroupShow")
pt(res)
+ self.isShowContenting = false
if res.ReturnCode ~= 0 then
+ ViewUtil.ShowBannerOnScreenCenter("设置失败,请稍后再试。。")
return
end
- --self.showNumber = 1
- local family = DataManager.groups.groupMap[self.groupId]
- family.isShow = 1
+ self.family.isShow = 1
self:Refalsh()
+ ViewUtil.ShowBannerOnScreenCenter("设置成功")
end)
end)
diff --git a/lua_probject/base_project/Game/View/Family/FamilyMyfamilyList.lua b/lua_probject/base_project/Game/View/Family/FamilyMyfamilyList.lua
index c35b6948..54232cfe 100644
--- a/lua_probject/base_project/Game/View/Family/FamilyMyfamilyList.lua
+++ b/lua_probject/base_project/Game/View/Family/FamilyMyfamilyList.lua
@@ -26,6 +26,8 @@ function FamilyMyfamilyList.New(root)
Instance._full = true
Instance._close_destroy = true
Instance._full_offset = false
+ Instance._anim_pop = 0
+ Instance._animation = false
BaseWindow.init(Instance, "ui://Family/com_myFamilyList")
-- 隐藏背景图
diff --git a/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua b/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua
new file mode 100644
index 00000000..b4bf6d4c
--- /dev/null
+++ b/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua
@@ -0,0 +1,57 @@
+local FamilySelectNumber = {}
+
+function FamilySelectNumber.New()
+ setmetatable(FamilySelectNumber, { __index = BaseWindow})
+ local inst = setmetatable({}, { __index = FamilySelectNumber})
+ inst._full = true
+ inst._close_destroy = true
+ inst._full_offset = false
+ inst._anim_pop = 0
+ inst._animation = false
+
+ BaseWindow.init(inst, "ui://Family/com_SelectNumber")
+
+ inst:Init()
+
+ return inst
+end
+
+function FamilySelectNumber:Show(groupId, callback)
+ self.group = DataManager.groups.groupMap[groupId]
+ self.callback = callback
+ self.list_number.numItems = #self.group.members
+ BaseWindow.Show(self)
+end
+
+function FamilySelectNumber:Init()
+ self.list_number = self._view:GetChild("list_number")
+ self.btn_search = self._view:GetChild("btn_search")
+ self.btn_close = self._view:GetChild("btn_close")
+
+ self.btn_search.onClick:Set(function()
+
+ end)
+
+ self.btn_close.onClick:Set(function()
+ self:Close()
+ end)
+
+ self.list_number.itemRenderer = function(index, obj)
+ local i = index + 1
+ local player = self.group.members[i]
+ obj:GetController('lev').selectedIndex = player.lev - 1
+ obj:GetController('ban').selectedIndex = player.ban
+ obj:GetChild('name').text = player.nick
+ obj:GetChild('id').text = string.format("ID:%s", player.uid)
+ obj.onClick:Set(function()
+ if self.callback then
+ self.callback(player)
+ end
+ self.callback = nil
+ self:Close()
+ end)
+ end
+
+end
+
+return FamilySelectNumber
\ No newline at end of file
diff --git a/wb_new_ui/assets/Family/BanDesk/Component/item_banItem.xml b/wb_new_ui/assets/Family/BanDesk/Component/item_banItem.xml
index 269b2ea5..170c2ebe 100644
--- a/wb_new_ui/assets/Family/BanDesk/Component/item_banItem.xml
+++ b/wb_new_ui/assets/Family/BanDesk/Component/item_banItem.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml b/wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml
new file mode 100644
index 00000000..e2340fe6
--- /dev/null
+++ b/wb_new_ui/assets/Family/SelectNumber/com_SelectNumber.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wb_new_ui/assets/Family/package.xml b/wb_new_ui/assets/Family/package.xml
index ef85dd2a..485ea0e5 100644
--- a/wb_new_ui/assets/Family/package.xml
+++ b/wb_new_ui/assets/Family/package.xml
@@ -333,6 +333,7 @@
+
\ No newline at end of file
diff --git a/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes b/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes
index cd7c348c4efa2aa58eb9d2ea07011481181fcb56..7be91a5cb7c87eaf647bfea8d47196ea680414de 100644
GIT binary patch
delta 3481
zcmZwKdvI079l-J3J!fy?khxrW9H2m`h$sRfk(UUGpsnC5)?!<&?Innmf)e@wrIbl&
zZ2z$BMB&yRr=3ZC)KXi_lg$ra89YTF_xG@RFN})C?m!c9_We!$`-2LA2QJP_1ZRd
zF8Lo(ZgAn*iZO+kwhS7fKLno9*U{-+z^`dM(@m*23tP8T=JY9ar+ONd-nJD6?kO*P
zP&YDX%7AB84!9p^D{Nd=l`~l~cc~#{QbX-_oow3^oo$~BhmrYL$)p3jxNtB(I(~Da
z9#|OAK6j|y9gav?PmumA>A$it@0PKJ#`a6g?DJ}_QYG_Ui~HKkDvEJv#No+J-dD%fv+L;C8@3I;OvxSXu@U*d=&}q@YmoP
z&*mAjr13M{2-l}r?}BGgY^~JRJ#e$<%*$lS$R}}caXb$0NU?saA6LV@o-Mn?+z89t
zyWZ87cV1DMjNI|>`tfCO-m{F{Jn8wXQrj$pn>>@Dg30i?B-RM4wQ!r~%sgrzfIkJ*
zI?lp9p2L%{Y(0rD3Tp+ISNY{|9*s{W`#(hTQkTQEp2<|fulV?gxPge&NVp-*r#-vA
z^(%0TXG`CKoPHnph}1r~+p`QU*y1T^d>Wj+C>dJjaH@8~>*1O-v!K;6p8ag@kva|6
zd$!aL?;-m|Vu7%E9BwYw-U`e1+EHZvB;1i=%W_ap5X*^3cf!4%!!gvBKhT}tUt><7BENhIri^x0$H+arm
zLf=1yZX@c6NN<2!ioBWMh$^yqK(*TOBDmXg3EM71u3Ac5D{OYc+3Cs9N^-EgYgvYQ
z$L(;9XZ0bkg>yyK5sMvP3)g!#)C_4sec4B3ZiSmYy9bkl_9h~EEkA@iJiATA238Uk
zL}a?)-eTjdudt46*+6bFsq5g18Og}ar+I6#i9S!c82vQaNe_-NS7_}DB?BOcmy|j
zCPRfQXyG`CwT@T9ZN1Cs^K2bcB5xmP;M!jqj32p$Bz^dPuC#UXQDVxZ)?%i!h|
z+n>>aP_oCea7T(WYMJ9$|jgY4m<+{VnK~Mm
z2UGS$>y~PL`DedZx_WK>@|m|zyF=xctXjEf;nLfeE?Hf>X5}qQzooKM(qE^jlKRR;
mQk+CpF>z5bF}0YOR!mGUCT0{9GmD8?Nn+@l){~8Tv-vN@Sltr<
delta 3048
zcmZwJd2AI$9Ki9J+1*!2$V)x4fMC5)4&hNi6oHmYkwYs8Dqc^BC!obYKoChqJQ9x-
z5pg||dLTgr8xcYgZ9y(MYyqJf1gm(31gL1#D8$z9Z+2d~5H|h2eQ!SRH#0leYyHcq
z*Ir1yG@xCNDkYaLdMv)nd;Yqt99MC)jTJsOH~ZDmq0Ty7bSrn
z)FYqRF6F@vnr>wy?uH8eV5gNY&mgr{>dqj$tn5C6?6LCI>C%OU_FCF^IwAE|zDDw+
z=AOEJw7O8|cinGGzm-zLS1nyWVCA5z$&bbs>h{`?rgBTW@4c@=)i2l{WqRqh?YA>G
zQ}{NQzLS^PL}=cEvyT1C1W)0`aCtI&&MCYUu1RJKk0YeRp&0--CbR!ZvMPoPddFR}
z?Jj|@=iRN6ttP@H2{!k@qag0^{cxFMvz{WUyoKk%l?m1x;Vb#tEXmf5aD(HN%%SwW
zJNHVO^#DT$o?Ka4=S;ohBH^hJ@dZ
z87_BBq4M72z<$<0iWUYs~5YAi`_dHKdVrhFeQ6OyA!db_fsqh*po=H4n
z`4C+0*qa8+8slywG@rmVj#K?<`xR&^QA&h*F5H;orAnoGQOpCX>6Y(?3;MaPvF%cn
zs{4o=gv|!HB**!%jI}JotmSQRnPc@A!@{|uCK8h@-vC!SHe~wLpl){&ntR~}$M(T~
zg>EC_VR;5lU+v~wHW3?GNo0u79Ds`*8`hUUkz(0Eb}^|N;nEym$f(ICx``N1gk~#T
z;n?<^{jEk511(p>b&fr$TzWo|xX$t&a8r_{*TdacLbDpq^pAUPpIdh5P#2-egR?pQ
zkjgoF5-dkgxnoV1zaJh%$he1QGhE|1^`;w^LP#Ri^WjFva@^X}p&KL-nvdXu0dd!S
zS;*40i-^v`dN^F-*syv0hbZpgz7iVYvRpQ^W%rmYnKGMg=UaFuAKm3~GHLoj+bY-@
zH6++jgSQUyEa$`NfpNCCg{%`i+*;^y%QwTtIhG1prA8(+9+r-9X@WK9S_|v{;0nj)
za+<7!I}&?sm;&Wbq5Y%0nPvH5xG7gTT{G-Xy#tDONfDeWihCX`a4ZYTE=6+~
z&N@zAPcfHX%FDY%XtHp5l9>`+0m+I9^$xhkF$F56;TMU;!s-~@m}~pD_`&pC?((lq
zsHVXM#ja~`-aInpWQZSZ4qW0`ms9yu@Ph>VjqD$S+NeypmXC6sqy`?$ld~<