From af0ba80b30e108a63986d033baa73db4c05c4f72 Mon Sep 17 00:00:00 2001 From: max Date: Thu, 9 May 2024 21:47:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E5=96=84=E5=85=AC=E8=81=8A?= =?UTF-8?q?=E5=8E=85UI=20feat=EF=BC=9A=E5=85=AC=E8=81=8A=E5=8E=85=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E6=95=B0=E9=87=8F=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../public_chat/PublicChatMessageView.java | 21 +- .../RecommendCardListAdapter.java | 3 +- .../chwl/app/avroom/widget/MessageView.java | 309 ++++-------------- .../app/avroom/widget/RoomEffectBoxView.kt | 9 +- .../chwl/app/avroom/widget/RoomEffectView.kt | 5 +- .../avroom/widget/TemplateMessageAdapter.kt | 3 +- .../app/ui/search/SearchDetailFragment.java | 3 +- .../com/chwl/app/ui/utils/ImageLoadUtils.java | 20 +- .../app/ui/widget/TextSpannableBuilder.java | 196 +++++++++++ .../main/res/drawable/shape_f5f5f5_16dp.xml | 5 + app/src/main/res/values/colors.xml | 1 + .../hall/presenter/ModuleHallPresenter.java | 3 +- .../activity/HTeamMemberListActivity.java | 7 +- .../core/ChatRoomMessageAdapter.java | 2 +- .../ChatRoomMessageViewHolderBase.java | 78 ++++- .../ChatRoomMessageViewHolderHeadline.kt | 37 ++- .../ChatRoomMessageViewHolderPicture.java | 6 + .../ChatRoomMessageViewHolderText.java | 25 +- .../message/PublicChatRoomMessageActivity.kt | 15 +- .../PublicChatRoomMessageListPanel.java | 36 +- .../ui/message/headline/HeadlineSendDialog.kt | 14 +- .../public_chat_bg_headline.webp | Bin 0 -> 62468 bytes .../public_chat_bg_headline_empty.webp | Bin 0 -> 81058 bytes .../public_chat_ic_headline_empty_add.png | Bin 0 -> 2775 bytes .../public_chat_ic_want_headline.png | Bin 0 -> 54052 bytes .../res/layout/headline_send_dialog.xml | 46 ++- .../layout/public_chat_message_activity.xml | 98 +++++- .../public_chat_message_item_headline.xml | 16 + .../res/values-ar/strings.xml | 11 +- .../res/values-zh-rTW/strings.xml | 7 +- .../module_public_chat/res/values/strings.xml | 11 +- .../sadmin/utils/SaAttachmentToMsgUtil.java | 3 +- .../res/drawable/base_shape_theme_20dp.xml | 6 + .../bg_nim_water_drop_other_chatroom.xml | 18 + .../bg_nim_water_drop_self_chatroom.xml | 18 + .../bg_nim_water_drop_other_chatroom.xml | 18 + .../bg_nim_water_drop_self_chatroom.xml | 18 + .../res/layout/nim_chat_room_message_item.xml | 120 +++++++ .../api/model/chatroom/ChatRoomProvider.java | 1 + .../nim/uikit/common/util/sys/TimeUtil.java | 22 +- 40 files changed, 838 insertions(+), 373 deletions(-) create mode 100644 app/src/main/java/com/chwl/app/ui/widget/TextSpannableBuilder.java create mode 100644 app/src/main/res/drawable/shape_f5f5f5_16dp.xml create mode 100644 app/src/module_public_chat/res/drawable-xxhdpi/public_chat_bg_headline.webp create mode 100644 app/src/module_public_chat/res/drawable-xxhdpi/public_chat_bg_headline_empty.webp create mode 100644 app/src/module_public_chat/res/drawable-xxhdpi/public_chat_ic_headline_empty_add.png create mode 100644 app/src/module_public_chat/res/drawable-xxhdpi/public_chat_ic_want_headline.png create mode 100644 app/src/module_public_chat/res/layout/public_chat_message_item_headline.xml create mode 100644 modules/module_base/src/main/res/drawable/base_shape_theme_20dp.xml create mode 100644 nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_other_chatroom.xml create mode 100644 nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_self_chatroom.xml create mode 100644 nim_uikit/res/drawable/bg_nim_water_drop_other_chatroom.xml create mode 100644 nim_uikit/res/drawable/bg_nim_water_drop_self_chatroom.xml create mode 100644 nim_uikit/res/layout/nim_chat_room_message_item.xml diff --git a/app/src/main/java/com/chwl/app/avroom/public_chat/PublicChatMessageView.java b/app/src/main/java/com/chwl/app/avroom/public_chat/PublicChatMessageView.java index 93d70affd..ccb2b0ec3 100644 --- a/app/src/main/java/com/chwl/app/avroom/public_chat/PublicChatMessageView.java +++ b/app/src/main/java/com/chwl/app/avroom/public_chat/PublicChatMessageView.java @@ -38,6 +38,7 @@ import com.chwl.app.ui.utils.ImageLoadUtils; import com.chwl.app.ui.widget.DividerItemDecoration; import com.chwl.app.ui.widget.MyItemAnimator; import com.chwl.app.ui.widget.RecyclerViewNoViewpagerScroll; +import com.chwl.app.ui.widget.TextSpannableBuilder; import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil; import com.chwl.app.utils.RegexUtil; import com.chwl.core.DemoCache; @@ -45,7 +46,6 @@ import com.chwl.core.XConstants; import com.chwl.core.auth.AuthModel; import com.chwl.core.bean.attachmsg.RoomQueueMsgAttachment; import com.chwl.core.decoration.car.bean.CarInfo; -import com.chwl.core.helper.ImHelperUtils; import com.chwl.core.home.event.FollowRoomEvent; import com.chwl.core.home.model.CollectionRoomModel; import com.chwl.core.im.custom.bean.AuctionAttachment; @@ -56,19 +56,14 @@ import com.chwl.core.im.custom.bean.RoomBoxPrizeAttachment; import com.chwl.core.im.custom.bean.RoomFollowOwnerAttachment2; import com.chwl.core.im.custom.bean.RoomTipAttachment; import com.chwl.core.im.custom.bean.TarotAttachment; -import com.chwl.core.im.custom.bean.WelcomeAttachment; import com.chwl.core.level.UserLevelResourceType; import com.chwl.core.manager.AvRoomDataManager; -import com.chwl.core.manager.IMNetEaseManager; import com.chwl.core.monsterhunting.bean.MonsterDataBean; import com.chwl.core.monsterhunting.bean.MonsterHuntingResult; import com.chwl.core.noble.NobleUtil; import com.chwl.core.praise.PraiseModel; import com.chwl.core.room.bean.RoomInfo; -import com.chwl.core.room.bean.WelcomeInfo; -import com.chwl.core.room.model.AvRoomModel; import com.chwl.core.room.pk.attachment.RoomPkAttachment; -import com.chwl.core.user.UserModel; import com.chwl.core.user.bean.UserInfo; import com.chwl.core.utils.ExtensionUtil; import com.chwl.library.common.util.Utils; @@ -79,7 +74,6 @@ import com.chwl.library.utils.SingleToastUtil; import com.chwl.library.utils.SizeUtils; import com.example.lib_utils.UiUtils; import com.netease.nim.uikit.business.uinfo.UserInfoHelper; -import com.netease.nim.uikit.common.util.log.LogUtil; import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessageExtension; @@ -99,12 +93,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import io.reactivex.Single; -import io.reactivex.SingleSource; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; import io.reactivex.functions.Consumer; -import io.reactivex.functions.Function; -import com.chwl.app.avroom.widget.MessageView.SpannableBuilder; /** * 直播間消息界面 @@ -569,7 +558,7 @@ public class PublicChatMessageView extends FrameLayout { */ private void setMsgText(ChatRoomMessage chatRoomMessage, TextView tvContent) { ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); addCommonTag(chatRoomMessage, text, tvContent); String nickName = extension == null ? ResUtil.getString(R.string.avroom_widget_messageview_0116) : RegexUtil.getPrintableString(extension.getSenderNick()); text.append(nickName, new ForegroundColorSpan(greyColor)) @@ -607,7 +596,7 @@ public class PublicChatMessageView extends FrameLayout { tvContent.setText(text.build()); } - private void addCommonTag(ChatRoomMessage chatRoomMessage, @NonNull SpannableBuilder builder, TextView tvContent) { + private void addCommonTag(ChatRoomMessage chatRoomMessage, @NonNull TextSpannableBuilder builder, TextView tvContent) { ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); String userLevel = NobleUtil.getLevel(UserLevelResourceType.EXPER_URL, chatRoomMessage); boolean isOfficial = NobleUtil.getIsOfficial(UserInfo.IS_OFFICIAL, chatRoomMessage); @@ -652,7 +641,7 @@ public class PublicChatMessageView extends FrameLayout { String senderNick = chatRoomMessage.getChatRoomMessageExtension().getSenderNick(); senderNick = senderNick == null ? "" : senderNick; AuctionAttachment auctionAttachment = (AuctionAttachment) attachment; - SpannableBuilder builder = new SpannableBuilder(tvContent); + TextSpannableBuilder builder = new TextSpannableBuilder(tvContent); if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_TYPE_AUCTION_START) { builder.append(ResUtil.getString(R.string.avroom_widget_messageview_0117), new ForegroundColorSpan(roomTipNickColor)); } else if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_TYPE_AUCTION_FINISH) { @@ -698,7 +687,7 @@ public class PublicChatMessageView extends FrameLayout { String carName = NobleUtil.getCarName(CarInfo.CAR_NAME, chatRoomMessage); carName = TextUtils.isEmpty(carName) ? "" : "\"" + carName + "\""; - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); addCommonTag(chatRoomMessage, text, tvContent); text.append(senderNick, new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { diff --git a/app/src/main/java/com/chwl/app/avroom/recommendcard/RecommendCardListAdapter.java b/app/src/main/java/com/chwl/app/avroom/recommendcard/RecommendCardListAdapter.java index ec71cc989..2320beffd 100644 --- a/app/src/main/java/com/chwl/app/avroom/recommendcard/RecommendCardListAdapter.java +++ b/app/src/main/java/com/chwl/app/avroom/recommendcard/RecommendCardListAdapter.java @@ -4,6 +4,7 @@ import android.content.Context; import android.text.style.AbsoluteSizeSpan; import android.view.View; +import com.chwl.app.ui.widget.TextSpannableBuilder; import com.coorchice.library.SuperTextView; import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.chwl.app.R; @@ -34,7 +35,7 @@ public class RecommendCardListAdapter extends CommonAdapter implements OnClickListener { @@ -1213,7 +1030,7 @@ public class MessageView extends FrameLayout { FairyMsgAttachment attachment = (FairyMsgAttachment) chatRoomMessage.getAttachment(); FairyMsgInfoBean fairyMsgInfo = attachment.getFairyMsgInfo(); if (fairyMsgInfo == null) return; - SpannableBuilder builder = null; + TextSpannableBuilder builder = null; switch (attachment.getSecond()) { case CUSTOM_MSG_SUB_DRAW_GIFT_L1: case CUSTOM_MSG_SUB_DRAW_GIFT_L2: @@ -1255,8 +1072,8 @@ public class MessageView extends FrameLayout { } - private SpannableBuilder builderConvertMsg(TextView textView, @NonNull FairyMsgInfoBean fairyMsgInfo, String type) { - return new SpannableBuilder(textView) + private TextSpannableBuilder builderConvertMsg(TextView textView, @NonNull FairyMsgInfoBean fairyMsgInfo, String type) { + return new TextSpannableBuilder(textView) .append("厲害了!", new ForegroundColorSpan(whiteColor)) .append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new OriginalDrawStatusClickSpan(roomTipNickColor, false) { @@ -1269,8 +1086,8 @@ public class MessageView extends FrameLayout { .append(fairyMsgInfo.getRewardShowValue() + "鉆" + fairyMsgInfo.getRewardName(), new ForegroundColorSpan(roomTipColor)); } - private SpannableBuilder builderDrawMsg(TextView textView, @NonNull FairyMsgInfoBean fairyMsgInfo, String desc) { - SpannableBuilder builder = new SpannableBuilder(textView) + private TextSpannableBuilder builderDrawMsg(TextView textView, @NonNull FairyMsgInfoBean fairyMsgInfo, String desc) { + TextSpannableBuilder builder = new TextSpannableBuilder(textView) .append(desc, new ForegroundColorSpan(whiteColor)) .append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new OriginalDrawStatusClickSpan(roomTipNickColor, false) { @@ -1293,7 +1110,7 @@ public class MessageView extends FrameLayout { GiftCompoundAttachment giftCompoundAttachment = (GiftCompoundAttachment) chatRoomMessage.getAttachment(); if (giftCompoundAttachment.getSecond() == CUSTOM_MSG_SUB_GIFT_COMPOUND) { GiftCompoundMsgBean msgInfo = giftCompoundAttachment.getMsgBean(); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); text.append( msgInfo.getNick(), new ForegroundColorSpan(roomTipNickColor), @@ -1324,7 +1141,7 @@ public class MessageView extends FrameLayout { FansTeamMsgAttachment fansTeamMsgAttachment = (FansTeamMsgAttachment) chatRoomMessage.getAttachment(); if (fansTeamMsgAttachment.getSecond() == CUSTOM_MSG_SUB_FANS_TEAM_JOIN) { FansTeamMsgInfo msgInfo = fansTeamMsgAttachment.getFansTeamMsgInfo(); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); text.append(ResUtil.getString(R.string.avroom_widget_messageview_04), new ForegroundColorSpan(whiteColor)) .append(msgInfo.getNickname(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -1352,7 +1169,7 @@ public class MessageView extends FrameLayout { if (chatRoomMessage.getAttachment() instanceof VipMessageAttachment) { VipMessageAttachment datingAttachment = (VipMessageAttachment) chatRoomMessage.getAttachment(); VipMessageInfo notifyInfo = datingAttachment.getVipMessageInfo(); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); int second = datingAttachment.getSecond(); switch (second) { case CustomAttachment.CUSTOM_MSG_VIP_ROOM_OPEN: @@ -1401,7 +1218,7 @@ public class MessageView extends FrameLayout { if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY) { LuckyBagNoticeInfo noticeInfo = attachment.getLuckyBagNoticeInfo(); String nickName = RegexUtil.getPrintableString(noticeInfo.getNick()); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_011), new ForegroundColorSpan(textColor)) .append(nickName, new ForegroundColorSpan(roomTipNickColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_012), new ForegroundColorSpan(textColor)) @@ -1418,7 +1235,7 @@ public class MessageView extends FrameLayout { if (chatRoomMessage.getAttachment() instanceof DatingAttachment) { DatingAttachment datingAttachment = (DatingAttachment) chatRoomMessage.getAttachment(); DatingNotifyInfo notifyInfo = datingAttachment.getDatingNotifyInfo(); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); switch (second) { case CustomAttachment.CUSTOM_MSG_SUB_DATING_SELECT: text.append(ResUtil.getString(R.string.avroom_widget_messageview_015), new ForegroundColorSpan(whiteColor)) @@ -1512,7 +1329,7 @@ public class MessageView extends FrameLayout { TarotAttachment attachment = (TarotAttachment) chatRoomMessage.getAttachment(); TarotMsgBean tarotMsgBean = attachment.getTarotMsgBean(); String nickName = RegexUtil.getPrintableString(tarotMsgBean.getNick()); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); switch (attachment.getSecond()) { case CustomAttachment.CUSTOM_MESS_TAROT_SUCCESS: text.append(ResUtil.getString(R.string.avroom_widget_messageview_026), new ForegroundColorSpan(textColor)) @@ -1547,7 +1364,7 @@ public class MessageView extends FrameLayout { JoinMiniWorldNoticeAttachment joinMiniWorldNoticeAttachment = (JoinMiniWorldNoticeAttachment) chatRoomMessage.getAttachment(); String nick = TextUtils.isEmpty(joinMiniWorldNoticeAttachment.getNick()) ? "" : joinMiniWorldNoticeAttachment.getNick(); String worldName = TextUtils.isEmpty(joinMiniWorldNoticeAttachment.getWorldName()) ? "" : joinMiniWorldNoticeAttachment.getWorldName(); - SpannableBuilder append = new SpannableBuilder(tvContent) + TextSpannableBuilder append = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_028)) .append(" " + nick + " ", new OriginalDrawStatusClickSpan() { @Override @@ -1576,7 +1393,7 @@ public class MessageView extends FrameLayout { RedEnvelopeRoomMsg roomMsg = attachment.getRedEnvelopeRoomMsg(); String openNickname = RegexUtil.getPrintableString(roomMsg.getOpenRedEnvelopeUserNick()); String sendNickname = RegexUtil.getPrintableString(roomMsg.getRedEnvelopeMasterNick()); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(openNickname, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @Override @@ -1656,7 +1473,7 @@ public class MessageView extends FrameLayout { } boolean follow = roomFollowOwnerAttachment.isFollow(); - SpannableBuilder append = new SpannableBuilder(tvContent) + TextSpannableBuilder append = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_036)) .append(" " + nick + " ", new OriginalDrawStatusClickSpan() { @Override @@ -1691,7 +1508,7 @@ public class MessageView extends FrameLayout { } tvContent.setTextColor(Color.WHITE); RoomFollowOwnerAttachment2 roomFollowOwnerAttachment = (RoomFollowOwnerAttachment2) chatRoomMessage.getAttachment(); - SpannableBuilder append = new SpannableBuilder(tvContent) + TextSpannableBuilder append = new TextSpannableBuilder(tvContent) .append(mContext.getResources().getDrawable(R.drawable.bg_follow), ScreenUtil.dip2px(190), ScreenUtil.dip2px(40)); tvContent.setText(append.build()); } @@ -1699,7 +1516,7 @@ public class MessageView extends FrameLayout { private void invitePK(RoomPkAttachment attachment, TextView tvContent) { Map micMemberMap = attachment.getRoomPKInvitedUpMicMemberMap(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_041)); boolean isHaveInTeam = false; Iterator> iterator = micMemberMap.entrySet().iterator(); @@ -1743,7 +1560,7 @@ public class MessageView extends FrameLayout { private void openRoomPKModeMsg(RoomPkAttachment attachment, TextView tvContent) { RoomPkData roomPkData = attachment.getRoomPkData(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(String.format(Locale.getDefault(), ResUtil.getString(R.string.avroom_widget_messageview_046), roomPkData.getDuration()), new ForegroundColorSpan(whiteColor)); @@ -1761,7 +1578,7 @@ public class MessageView extends FrameLayout { } private void stopRoomPkModeMsg(TextView tvContent) { - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_050), new ForegroundColorSpan(whiteColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_051), new ForegroundColorSpan(greyColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_052), new ForegroundColorSpan(whiteColor)); @@ -1770,7 +1587,7 @@ public class MessageView extends FrameLayout { private void startRoomPk(RoomPkAttachment attachment, TextView textView) { RoomPkData roomPkData = attachment.getRoomPkData(); - SpannableBuilder text = new SpannableBuilder(textView) + TextSpannableBuilder text = new TextSpannableBuilder(textView) .append(String.format(Locale.getDefault(), ResUtil.getString(R.string.avroom_widget_messageview_053), roomPkData.getDuration()), new ForegroundColorSpan(greyColor)); @@ -1779,7 +1596,7 @@ public class MessageView extends FrameLayout { private void restartRoomPKModeMsg(RoomPkAttachment attachment, TextView tvContent) { RoomPkData roomPkData = attachment.getRoomPkData(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(String.format(Locale.getDefault(), ResUtil.getString(R.string.avroom_widget_messageview_054), roomPkData.getDuration()), new ForegroundColorSpan(whiteColor)); @@ -1798,7 +1615,7 @@ public class MessageView extends FrameLayout { private void roomPkResult(RoomPkAttachment attachment, TextView textView) { RoomPkData roomPkData = attachment.getRoomPkData(); - SpannableBuilder text = new SpannableBuilder(textView) + TextSpannableBuilder text = new TextSpannableBuilder(textView) .append(ResUtil.getString(R.string.avroom_widget_messageview_058), new ForegroundColorSpan(whiteColor)); Map teamMap = new HashMap<>(); PKTeamInfo blueTeam = null; @@ -1890,7 +1707,7 @@ public class MessageView extends FrameLayout { } private void startQueuingMicModeMsg(TextView tvContent) { - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_075), new ForegroundColorSpan(whiteColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_076), new ForegroundColorSpan(greyColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_077), new ForegroundColorSpan(whiteColor)); @@ -1898,7 +1715,7 @@ public class MessageView extends FrameLayout { } private void stopQueuingMicModeMsg(TextView tvContent) { - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_078), new ForegroundColorSpan(whiteColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_079), new ForegroundColorSpan(greyColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_080), new ForegroundColorSpan(whiteColor)); @@ -1908,7 +1725,7 @@ public class MessageView extends FrameLayout { private void switchToFreeMicMsg(TextView tvContent, ChatRoomMessage chatRoomMessage) { QueuingMicAttachment attachment = (QueuingMicAttachment) chatRoomMessage.getAttachment(); QueuingMicInfo queuingMicInfo = attachment.getQueuingMicInfo(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_081), new ForegroundColorSpan(whiteColor)) .append(String.format(Locale.getDefault(), ResUtil.getString(R.string.avroom_widget_messageview_082), JavaUtil.str2int(queuingMicInfo.getMicPos()) + 1), new ForegroundColorSpan(greyColor)) @@ -1919,7 +1736,7 @@ public class MessageView extends FrameLayout { private void switchToLockMicMsg(TextView tvContent, ChatRoomMessage chatRoomMessage) { QueuingMicAttachment attachment = (QueuingMicAttachment) chatRoomMessage.getAttachment(); QueuingMicInfo queuingMicInfo = attachment.getQueuingMicInfo(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_084), new ForegroundColorSpan(whiteColor)) .append(String.format(Locale.getDefault(), ResUtil.getString(R.string.avroom_widget_messageview_085), JavaUtil.str2int(queuingMicInfo.getMicPos()) + 1), new ForegroundColorSpan(greyColor)) @@ -1929,7 +1746,7 @@ public class MessageView extends FrameLayout { private void setDragonBarRunawayMsg(ChatRoomMessage chatRoomMessage, TextView tvContent) { ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(extension == null ? ResUtil.getString(R.string.avroom_widget_messageview_087) : RegexUtil.getPrintableString(extension.getSenderNick()), new ForegroundColorSpan(Color.WHITE), new OriginalDrawStatusClickSpan() { @@ -1948,7 +1765,7 @@ public class MessageView extends FrameLayout { private void setDragonBarCancelMsg(ChatRoomMessage chatRoomMessage, TextView tvContent) { ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(extension == null ? ResUtil.getString(R.string.avroom_widget_messageview_089) : RegexUtil.getPrintableString(extension.getSenderNick()), new ForegroundColorSpan(Color.WHITE), new OriginalDrawStatusClickSpan() { @@ -1978,7 +1795,7 @@ public class MessageView extends FrameLayout { } msg = msg.substring(0, msg.length() - 1); // 內容 - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(extension == null ? ResUtil.getString(R.string.avroom_widget_messageview_091) : RegexUtil.getPrintableString(extension.getSenderNick()), new ForegroundColorSpan(Color.WHITE), new OriginalDrawStatusClickSpan() { @@ -2000,7 +1817,7 @@ public class MessageView extends FrameLayout { private void setBoxMeMsg(ChatRoomMessage chatRoomMessage, TextView tvContent) { RoomBoxPrizeAttachment attachment = (RoomBoxPrizeAttachment) chatRoomMessage.getAttachment(); // 內容 - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append("厲害了 ", new ForegroundColorSpan(greyColor)) .append(attachment.getNick() + " ", new ForegroundColorSpan(roomTipColor)) .append("通過歡樂砸蛋" + "獲得 ", new ForegroundColorSpan(greyColor)) @@ -2018,7 +1835,7 @@ public class MessageView extends FrameLayout { RoomLuckySeaAttachment attachment = (RoomLuckySeaAttachment) chatRoomMessage.getAttachment(); RoomLuckySeaMsgBean bean = attachment.getRoomLuckySeaMsgInfo(); // 內容 - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.congratulation), new ForegroundColorSpan(greyColor)) .append(bean.getNick(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2057,7 +1874,7 @@ public class MessageView extends FrameLayout { private void setRadishMeMsg(ChatRoomMessage chatRoomMessage, TextView tvContent) { RoomBoxPrizeAttachment attachment = (RoomBoxPrizeAttachment) chatRoomMessage.getAttachment(); // 內容 - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_097), new ForegroundColorSpan(greyColor)) .append(attachment.getNick() + " ", new ForegroundColorSpan(roomTipColor)) .append(attachment.getBoxTypeStr() + ResUtil.getString(R.string.avroom_widget_messageview_098), new ForegroundColorSpan(greyColor)) @@ -2069,21 +1886,21 @@ public class MessageView extends FrameLayout { } private void setUpdateAudioMsg(TextView tvContent) { - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_099), new ForegroundColorSpan(roomTipColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_0100), new ForegroundColorSpan(greyColor)); tvContent.setText(text.build()); } private void setUpdateGiftEffectMsg(TextView tvContent) { - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_0101), new ForegroundColorSpan(roomTipColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_0102), new ForegroundColorSpan(greyColor)); tvContent.setText(text.build()); } private void setUpdateScreenMsg(TextView tvContent, String contentText) { - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_0103), new ForegroundColorSpan(roomTipColor)) .append(contentText, new ForegroundColorSpan(greyColor)); tvContent.setText(text.build()); @@ -2092,7 +1909,7 @@ public class MessageView extends FrameLayout { private void setUpdateRoomPureModeMsg(TextView tvContent, IMMessage message) { RoomNoticeAttachment attachment = (RoomNoticeAttachment) message.getAttachment(); RoomMessageViewNoticeInfo messageViewNoticeInfo = attachment.getRoomMessageViewNoticeInfo(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_0104), new ForegroundColorSpan(roomTipColor)) .append(messageViewNoticeInfo.getTips(), new ForegroundColorSpan(greyColor)); tvContent.setText(text.build()); @@ -2101,7 +1918,7 @@ public class MessageView extends FrameLayout { private void setCleanScreenMsg(TextView tvContent, IMMessage message) { CleanScreenAttachment attachment = (CleanScreenAttachment) message.getAttachment(); // 內容 - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(attachment.getRoleType() == 1 ? ResUtil.getString(R.string.avroom_widget_messageview_0105) : ResUtil.getString(R.string.avroom_widget_messageview_0106), new ForegroundColorSpan(Color.WHITE)) .append("(" + attachment.getNick() + ") ", new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { @@ -2120,7 +1937,7 @@ public class MessageView extends FrameLayout { } private void setMonsterNotifyMessage(TextView tvContent, String notifyMessage) { - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(notifyMessage, new ForegroundColorSpan(ContextCompat.getColor(getContext(), R.color.color_34D08B))); tvContent.setText(text.build()); } @@ -2134,7 +1951,7 @@ public class MessageView extends FrameLayout { */ private void setInviteUpMicMsg(TextView tvContent, RoomQueueMsgAttachment attachment) { String targetNick = RegexUtil.getPrintableString(attachment.targetNick); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(ResUtil.getString(R.string.avroom_widget_messageview_0108), new ForegroundColorSpan(greyColor)) .append(targetNick, new ForegroundColorSpan(roomTipColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_0109), new ForegroundColorSpan(greyColor)); @@ -2144,7 +1961,7 @@ public class MessageView extends FrameLayout { private void setKickMsg(TextView tvContent, RoomQueueMsgAttachment attachment) { String nick = RegexUtil.getPrintableString(attachment.handleNick); String targetNick = RegexUtil.getPrintableString(attachment.targetNick); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(targetNick, new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { @Override @@ -2173,7 +1990,7 @@ public class MessageView extends FrameLayout { private void setKickRoomMsg(TextView tvContent, RoomQueueMsgAttachment attachment) { String nick = RegexUtil.getPrintableString(attachment.handleNick); String targetNick = RegexUtil.getPrintableString(attachment.targetNick); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(targetNick, new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { @Override @@ -2202,7 +2019,7 @@ public class MessageView extends FrameLayout { private void setAddBlackMsg(TextView tvContent, RoomQueueMsgAttachment attachment) { String nick = RegexUtil.getPrintableString(attachment.handleNick); String targetNick = RegexUtil.getPrintableString(attachment.targetNick); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(targetNick, new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { @Override @@ -2251,7 +2068,7 @@ public class MessageView extends FrameLayout { */ private void setMsgText(ChatRoomMessage chatRoomMessage, TextView tvContent) { ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); addCommonTag(chatRoomMessage, text, tvContent); String nickName = extension == null ? ResUtil.getString(R.string.avroom_widget_messageview_0116) : RegexUtil.getPrintableString(extension.getSenderNick()); text.append(nickName, new ForegroundColorSpan(greyColor)) @@ -2289,7 +2106,7 @@ public class MessageView extends FrameLayout { tvContent.setText(text.build()); } - private void addCommonTag(ChatRoomMessage chatRoomMessage, @NonNull SpannableBuilder builder, TextView tvContent) { + private void addCommonTag(ChatRoomMessage chatRoomMessage, @NonNull TextSpannableBuilder builder, TextView tvContent) { ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); String userLevel = NobleUtil.getLevel(UserLevelResourceType.EXPER_URL, chatRoomMessage); boolean isOfficial = NobleUtil.getIsOfficial(UserInfo.IS_OFFICIAL, chatRoomMessage); @@ -2334,7 +2151,7 @@ public class MessageView extends FrameLayout { String senderNick = chatRoomMessage.getChatRoomMessageExtension().getSenderNick(); senderNick = senderNick == null ? "" : senderNick; AuctionAttachment auctionAttachment = (AuctionAttachment) attachment; - SpannableBuilder builder = new SpannableBuilder(tvContent); + TextSpannableBuilder builder = new TextSpannableBuilder(tvContent); if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_TYPE_AUCTION_START) { builder.append(ResUtil.getString(R.string.avroom_widget_messageview_0117), new ForegroundColorSpan(roomTipNickColor)); } else if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_TYPE_AUCTION_FINISH) { @@ -2362,7 +2179,7 @@ public class MessageView extends FrameLayout { */ private void setMsgRoomTip(TextView tvContent, RoomTipAttachment roomTipAttachment, ChatRoomMessage chatRoomMessage) { if (TextUtils.isEmpty(roomTipAttachment.getNick())) roomTipAttachment.setNick(""); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(RegexUtil.getPrintableString(roomTipAttachment.getNick()), new ForegroundColorSpan(roomTipColor)) .append(roomTipAttachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_TYPE_ROOM_TIP_SHARE_ROOM ? @@ -2378,7 +2195,7 @@ public class MessageView extends FrameLayout { */ private void setFollowRoomTip(TextView tvContent, RoomTipAttachment roomTipAttachment, ChatRoomMessage chatRoomMessage) { if (TextUtils.isEmpty(roomTipAttachment.getNick())) roomTipAttachment.setNick(""); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(RegexUtil.getPrintableString(roomTipAttachment.getNick()), new ForegroundColorSpan(roomTipColor)) .append(ResUtil.getString(R.string.avroom_widget_messageview_0125), new ForegroundColorSpan(greyColor)); @@ -2395,7 +2212,7 @@ public class MessageView extends FrameLayout { * @param chatRoomMessage - */ private void setMsgFace(TextView tvContent, FaceAttachment faceAttachment, ChatRoomMessage chatRoomMessage) { - SpannableBuilder builder = new SpannableBuilder(tvContent); + TextSpannableBuilder builder = new TextSpannableBuilder(tvContent); List faceReceiveInfos = faceAttachment.getFaceReceiveInfos(); FaceReceiveInfo faceReceiveInfo; FaceInfo faceInfo; @@ -2437,7 +2254,7 @@ public class MessageView extends FrameLayout { private void setMsgMultiGift(TextView tvContent, MultiGiftAttachment giftAttachment, ChatRoomMessage chatRoomMessage) { GiftInfo giftInfo = giftAttachment.getMultiGiftReceiveInfo().getGift(); String nick = RegexUtil.getPrintableString(giftAttachment.getMultiGiftReceiveInfo().getNick()); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2473,7 +2290,7 @@ public class MessageView extends FrameLayout { } } String nick = RegexUtil.getPrintableString(giftAttachment.getMultiLuckyGiftReceiveInfo().getNick()); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2528,7 +2345,7 @@ public class MessageView extends FrameLayout { } } String nick = RegexUtil.getPrintableString(giftAttachment.getMultiLuckyGiftReceiveInfo().getNick()); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2577,7 +2394,7 @@ public class MessageView extends FrameLayout { private void setMsgBatchGift(TextView tvContent, GiftBatchAttachment attachment, ChatRoomMessage chatRoomMessage) { GiftInfo giftInfo = attachment.getGiftMultiReceiverInfo().getGift(); String nick = RegexUtil.getPrintableString(attachment.getGiftMultiReceiverInfo().getNick()); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2624,7 +2441,7 @@ public class MessageView extends FrameLayout { MagicInfo magicInfo = MagicModel.get().getMagicInfo(multiMagicReceivedInfo.getMagicId()); String nick = RegexUtil.getPrintableString(multiMagicReceivedInfo.getNick()); boolean showEffect = multiMagicReceivedInfo.isNeedShowExplode(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @Override @@ -2658,7 +2475,7 @@ public class MessageView extends FrameLayout { MagicInfo magicInfo = MagicModel.get().getMagicInfo(magicMultiReceiverInfo.getMagicId()); String nick = RegexUtil.getPrintableString(magicMultiReceiverInfo.getNick()); boolean showEffect = magicMultiReceiverInfo.isNeedShowExplode(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @Override @@ -2710,7 +2527,7 @@ public class MessageView extends FrameLayout { boolean showEffect = magicReceivedInfo.isNeedShowExplodeEffect(); String nick = RegexUtil.getPrintableString(magicReceivedInfo.getNick()); String targetNick = RegexUtil.getPrintableString(magicReceivedInfo.getTargetNick()); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2753,7 +2570,7 @@ public class MessageView extends FrameLayout { String nick = RegexUtil.getPrintableString(giftReceiveInfo.getNick()); String targetNick = RegexUtil.getPrintableString(giftReceiveInfo.getTargetNick()); String num = "X" + giftReceiveInfo.getGiftNum(); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(getNewUserDrawable(chatRoomMessage), badgeWidth, badgeHeight) .append(nick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() { @@ -2808,7 +2625,7 @@ public class MessageView extends FrameLayout { String carName = NobleUtil.getCarName(CarInfo.CAR_NAME, chatRoomMessage); carName = TextUtils.isEmpty(carName) ? "" : "\"" + carName + "\""; - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); addCommonTag(chatRoomMessage, text, tvContent); text.append(senderNick, new ForegroundColorSpan(roomTipColor), new OriginalDrawStatusClickSpan() { @@ -2905,8 +2722,8 @@ public class MessageView extends FrameLayout { tvContent.setMovementMethod(new LinkMovementMethod()); } - private SpannableBuilder getNotificationBuilder(TextView tvContent, String senderNick, String desc, String tagNick, String carName) { - return new SpannableBuilder(tvContent) + private TextSpannableBuilder getNotificationBuilder(TextView tvContent, String senderNick, String desc, String tagNick, String carName) { + return new TextSpannableBuilder(tvContent) .append(senderNick, new ForegroundColorSpan(roomTipColor)) .append(desc, new ForegroundColorSpan(textColor)) .append(tagNick, new ForegroundColorSpan(roomTipColor)) @@ -2935,7 +2752,7 @@ public class MessageView extends FrameLayout { // 系統通知icon Drawable icNotification = mContext.getResources().getDrawable(R.drawable.ic_system_notification); int width = (int) (icNotification.getIntrinsicWidth() / (icNotification.getIntrinsicHeight() + 0.F) * sysIconHeight); - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append(icNotification, width, sysIconHeight) .append(" 恭喜 ", new ForegroundColorSpan(greyColor)) .append(senderNick, new ForegroundColorSpan(roomTipColor)) @@ -2957,7 +2774,7 @@ public class MessageView extends FrameLayout { } CarveUpGoldAttachment attachment = (CarveUpGoldAttachment) chatRoomMessage.getAttachment(); // 內容 - SpannableBuilder text = new SpannableBuilder(tvContent) + TextSpannableBuilder text = new TextSpannableBuilder(tvContent) .append("【簽到瓜分百萬】哇塞,恭喜 ", new ForegroundColorSpan(greyColor)) .append(attachment.getNick() + " ", new ForegroundColorSpan(roomTipColor)) .append("簽到獲得 ", new ForegroundColorSpan(greyColor)) @@ -2983,7 +2800,7 @@ public class MessageView extends FrameLayout { ChatRoomMessageExtension extension = chatRoomMessage.getChatRoomMessageExtension(); // 內容 String fromAccount = chatRoomMessage.getFromAccount(); - SpannableBuilder text = new SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); addCommonTag(chatRoomMessage, text, tvContent); text.append(extension == null ? "我" : RegexUtil.getPrintableString(extension.getSenderNick()), new ForegroundColorSpan(greyColor), diff --git a/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectBoxView.kt b/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectBoxView.kt index 9a6fc3af1..c92c5de22 100644 --- a/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectBoxView.kt +++ b/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectBoxView.kt @@ -35,18 +35,16 @@ import com.chwl.app.ui.utils.isDestroyed import com.chwl.app.ui.utils.load import com.chwl.app.ui.utils.loadAnim import com.chwl.app.ui.widget.SimpleAnimListener +import com.chwl.app.ui.widget.TextSpannableBuilder import com.chwl.app.ui.widget.drawgift.DrawGiftPlayHelper import com.chwl.app.utils.SpannableBuilder import com.chwl.core.XConstants import com.chwl.core.auth.AuthModel import com.chwl.core.decoration.car.bean.CarInfo import com.chwl.core.im.custom.bean.* -import com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY -import com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA import com.chwl.core.manager.AvRoomDataManager import com.chwl.core.manager.IMNetEaseManager import com.chwl.core.manager.RoomEvent -import com.chwl.core.monsterhunting.SimpleAnimationListener import com.chwl.core.room.bean.DatingNotifyInfo import com.chwl.core.super_admin.util.SuperAdminUtil import com.chwl.core.user.UserModel @@ -54,7 +52,6 @@ import com.chwl.core.user.bean.UserInfo import com.chwl.core.utils.extension.subAndReplaceDot import com.chwl.library.utils.ListUtils import com.chwl.library.utils.ResUtil -import com.chwl.library.utils.StringUtils import io.reactivex.Observable import io.reactivex.ObservableEmitter import io.reactivex.ObservableOnSubscribe @@ -720,7 +717,7 @@ class RoomEffectBoxView @JvmOverloads constructor( val textView = LayoutInflater.from(mContext) .inflate(R.layout.layout_member_in_notify, null) as SuperTextView // 內容 - val text = MessageView.SpannableBuilder(textView) + val text = TextSpannableBuilder(textView) .append(targetNicks[0], ForegroundColorSpan(Color.WHITE)) var enterText = ResUtil.getString(R.string.avroom_widget_roomeffectview_018) if (fromType == AVRoomActivity.FROM_TYPE_RECOMMEND) { @@ -1219,7 +1216,7 @@ class RoomEffectBoxView @JvmOverloads constructor( val msgBean = (chatRoomMessage.attachment as RoomRankAttachment).msgBean val rootView = LayoutInflater.from(mContext).inflate(R.layout.layout_room_rank_notify, null) val textView = rootView.findViewById(R.id.tv_content) - val text = MessageView.SpannableBuilder(textView) + val text = TextSpannableBuilder(textView) .append( ResUtil.getString(R.string.avroom_widget_roomeffectview_025), ForegroundColorSpan(Color.WHITE) diff --git a/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt b/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt index 6eb3681a8..b31fa10c0 100644 --- a/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt +++ b/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt @@ -39,6 +39,7 @@ import com.chwl.app.ui.utils.load import com.chwl.app.ui.utils.loadAnim import com.chwl.app.ui.webview.CommonWebViewActivity import com.chwl.app.ui.widget.SimpleAnimListener +import com.chwl.app.ui.widget.TextSpannableBuilder import com.chwl.app.ui.widget.drawgift.DrawGiftPlayHelper import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil import com.chwl.app.utils.MsgBuilder @@ -1416,7 +1417,7 @@ class RoomEffectView @JvmOverloads constructor( val textView = LayoutInflater.from(mContext) .inflate(R.layout.layout_member_in_notify, null) as SuperTextView // 內容 - val text = MessageView.SpannableBuilder(textView) + val text = TextSpannableBuilder(textView) .append(targetNicks[0], ForegroundColorSpan(Color.WHITE)) var enterText = ResUtil.getString(R.string.avroom_widget_roomeffectview_018) if (fromType == AVRoomActivity.FROM_TYPE_RECOMMEND) { @@ -1936,7 +1937,7 @@ class RoomEffectView @JvmOverloads constructor( val msgBean = (chatRoomMessage.attachment as RoomRankAttachment).msgBean val rootView = LayoutInflater.from(mContext).inflate(R.layout.layout_room_rank_notify, null) val textView = rootView.findViewById(R.id.tv_content) - val text = MessageView.SpannableBuilder(textView) + val text = TextSpannableBuilder(textView) .append( ResUtil.getString(R.string.avroom_widget_roomeffectview_025), ForegroundColorSpan(Color.WHITE) diff --git a/app/src/main/java/com/chwl/app/avroom/widget/TemplateMessageAdapter.kt b/app/src/main/java/com/chwl/app/avroom/widget/TemplateMessageAdapter.kt index 640c1392d..a7134fd90 100644 --- a/app/src/main/java/com/chwl/app/avroom/widget/TemplateMessageAdapter.kt +++ b/app/src/main/java/com/chwl/app/avroom/widget/TemplateMessageAdapter.kt @@ -8,6 +8,7 @@ import android.text.style.ForegroundColorSpan import android.view.View import android.widget.TextView import com.chwl.app.common.widget.OriginalDrawStatusClickSpan +import com.chwl.app.ui.widget.TextSpannableBuilder import com.chwl.app.utils.CommonJumpHelper import com.chwl.app.utils.SpannableBuilder import com.chwl.core.home.bean.BannerInfo @@ -65,7 +66,7 @@ class TemplateMessageAdapter(val listener: Listener?) { return } val nodeList = attachment.getNodeList() - val textBuilder = MessageView.SpannableBuilder(textView) + val textBuilder = TextSpannableBuilder(textView) nodeList.forEach { if (it is TemplateNode.NormalNode) { val textColor = parseColor(it.textColor) diff --git a/app/src/main/java/com/chwl/app/ui/search/SearchDetailFragment.java b/app/src/main/java/com/chwl/app/ui/search/SearchDetailFragment.java index f950d6c5a..e19907fc2 100644 --- a/app/src/main/java/com/chwl/app/ui/search/SearchDetailFragment.java +++ b/app/src/main/java/com/chwl/app/ui/search/SearchDetailFragment.java @@ -19,6 +19,7 @@ import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity; import com.chwl.app.ui.im.friend.FriendFragmentCpDelegate; import com.chwl.app.ui.search.presenter.SearchPresenter; import com.chwl.app.ui.search.view.ISearchView; +import com.chwl.app.ui.widget.TextSpannableBuilder; import com.chwl.core.bean.RoomHistoryInfo; import com.chwl.core.module_hall.hall.HallModel; import com.chwl.core.room.bean.SearchRoomInfo; @@ -139,7 +140,7 @@ public class SearchDetailFragment extends BaseMvpFragment callback) { GlideApp.with(view) .asBitmap() .load(bgUrl) @@ -559,25 +564,28 @@ public class ImageLoadUtils { try { NinePatchDrawable drawable = NinePatchBitmapFactory.createNinePatchDrawable(view.getResources(), resource); view.setBackground(drawable); + if (callback != null) { + callback.accept(true); + } } catch (Exception e) { e.printStackTrace(); + if (callback != null) { + callback.accept(false); + } } - - } @Override public void onLoadCleared(@Nullable Drawable placeholder) { - } @Override public void onLoadFailed(@Nullable Drawable errorDrawable) { super.onLoadFailed(errorDrawable); - LogUtils.d("onLoadFailed"); + if (callback != null) { + callback.accept(false); + } } }); - } - } diff --git a/app/src/main/java/com/chwl/app/ui/widget/TextSpannableBuilder.java b/app/src/main/java/com/chwl/app/ui/widget/TextSpannableBuilder.java new file mode 100644 index 000000000..bda7cdbfd --- /dev/null +++ b/app/src/main/java/com/chwl/app/ui/widget/TextSpannableBuilder.java @@ -0,0 +1,196 @@ +package com.chwl.app.ui.widget; + +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.TextUtils; +import android.widget.TextView; + +import com.chwl.app.common.widget.CustomAutoWidthImageSpan; +import com.chwl.app.common.widget.CustomImageSpan; + +public class TextSpannableBuilder { + public SpannableStringBuilder builder; + private TextView textView; + + public TextSpannableBuilder(TextView textView) { + builder = new SpannableStringBuilder(); + this.textView = textView; + } + + /** + * @param text 文字 + * @return -返回一個spannableStringBuilder + */ + public TextSpannableBuilder append(CharSequence text) { + if (TextUtils.isEmpty(text)) return this; + builder.append(text); + return this; + } + + /** + * @param drawable -icon url + * @return -返回一個spannableStringBuilder + */ + public TextSpannableBuilder appendImg(String drawable) { + if (TextUtils.isEmpty(drawable)) return this; + int start = builder.length(); + builder.append("-"); + CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, drawable); + builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + /** + * @param drawable -icon url + * @return -返回一個spannableStringBuilder + */ + public TextSpannableBuilder appendImg(String drawable, Object what) { + if (TextUtils.isEmpty(drawable)) return this; + int start = builder.length(); + builder.append("-"); + CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, drawable); + builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + builder.setSpan(what, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + /** + * @param drawable -icon url + * @param width 寬 + * @param height 高 + * @return -返回一個spannableStringBuilder + */ + public TextSpannableBuilder append(String drawable, int width, int height) { + if (TextUtils.isEmpty(drawable)) return this; + int start = builder.length(); + builder.append("-"); + CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, drawable, width, height); + builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + public TextSpannableBuilder append(String drawable, int width, int height, Object what) { + if (TextUtils.isEmpty(drawable)) return this; + int start = builder.length(); + builder.append("-"); + CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, drawable, width, height); + builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + builder.setSpan(what, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + /** + * 文本和背景分離的情況 + */ + public TextSpannableBuilder appendBgAndContent(String drawable, String content) { + if (TextUtils.isEmpty(drawable)) return this; + int start = builder.length(); + builder.append("-"); + CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, drawable, content); + builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + /** + * @param drawable -icon + * @param width 寬 + * @param height 高 + * @return -返回一個spannableStringBuilder + */ + public TextSpannableBuilder append(Drawable drawable, int width, int height) { + if (drawable == null) return this; + drawable.setBounds(0, 0, width, height); + int start = builder.length(); + builder.append("-"); + builder.setSpan(new CustomImageSpan(drawable), start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + /** + * @param imgUrl -icon url + * @param height 高 + * @return -返回一個spannableStringBuilder,自適應寬度 + */ + public TextSpannableBuilder append(String imgUrl, int height) { + if (TextUtils.isEmpty(imgUrl)) return this; + int start = builder.length(); + builder.append("-"); + builder.setSpan(new CustomAutoWidthImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, imgUrl, height) + , start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + public TextSpannableBuilder append(String imgUrl, int height, Object what) { + if (TextUtils.isEmpty(imgUrl)) return this; + int start = builder.length(); + builder.append("-"); + builder.setSpan(new CustomAutoWidthImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, imgUrl, height) + , start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + builder.setSpan(what, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + /** + * @param drawable -icon + * @param width 寬 + * @param height 高 + * @return -返回一個spannableStringBuilder + */ + public TextSpannableBuilder append(Drawable drawable, int width, int height, Object... whats) { + if (drawable == null) return this; + try { + drawable.setBounds(0, 0, width, height); + int start = builder.length(); + builder.append("-"); + builder.setSpan(new CustomImageSpan(drawable), start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + if (whats != null) { + for (int i = 0; i < whats.length; i++) { + builder.setSpan(whats[0], start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + } + } + } catch (Exception ex) { + + } + return this; + } + + /** + * @param text -文字 + * @param what -span類型 + * @return -返回一個spannableStringBuilder + */ + public TextSpannableBuilder append(CharSequence text, Object what) { + if (TextUtils.isEmpty(text)) return this; + int start = builder.length(); + builder.append(text); + builder.setSpan(what, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return this; + } + + /** + * 支持多個spannable 對同一段文字修改 + * + * @param text + * @param what + * @return + */ + public TextSpannableBuilder append(CharSequence text, Object... what) { + if (TextUtils.isEmpty(text)) return this; + int start = builder.length(); + builder.append(text); + for (int i = 0; i < what.length; i++) { + Object o = what[i]; + if (o == null) { + continue; + } + builder.setSpan(what[i], start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + } + return this; + } + + public SpannableStringBuilder build() { + return builder; + } +} diff --git a/app/src/main/res/drawable/shape_f5f5f5_16dp.xml b/app/src/main/res/drawable/shape_f5f5f5_16dp.xml new file mode 100644 index 000000000..0803ee75f --- /dev/null +++ b/app/src/main/res/drawable/shape_f5f5f5_16dp.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 5bc14305e..4a31c46e2 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -727,4 +727,5 @@ #10ECD6 #4D415E + #DE3446 diff --git a/app/src/module_labour_union/java/com/chwl/app/module_hall/hall/presenter/ModuleHallPresenter.java b/app/src/module_labour_union/java/com/chwl/app/module_hall/hall/presenter/ModuleHallPresenter.java index cdeabb469..8cc38079f 100644 --- a/app/src/module_labour_union/java/com/chwl/app/module_hall/hall/presenter/ModuleHallPresenter.java +++ b/app/src/module_labour_union/java/com/chwl/app/module_hall/hall/presenter/ModuleHallPresenter.java @@ -12,6 +12,7 @@ import com.chwl.app.avroom.widget.MessageView; import com.chwl.app.base.BaseMvpPresenter; import com.chwl.app.module_hall.HallDataManager; import com.chwl.app.module_hall.hall.view.IModuleHallView; +import com.chwl.app.ui.widget.TextSpannableBuilder; import com.chwl.core.auth.AuthModel; import com.chwl.core.module_hall.hall.HallModel; import com.chwl.core.module_hall.hall.bean.AuthInfo; @@ -117,7 +118,7 @@ public class ModuleHallPresenter extends BaseMvpPresenter { } public CharSequence getExitTips(Context context) { - MessageView.SpannableBuilder builder = new MessageView.SpannableBuilder(null); + TextSpannableBuilder builder = new TextSpannableBuilder(null); builder.append(ResUtil.getString(R.string.hall_presenter_modulehallpresenter_01)) .append(ResUtil.getString(R.string.hall_presenter_modulehallpresenter_02), new ForegroundColorSpan( ContextCompat.getColor(context, R.color.appColor))) diff --git a/app/src/module_labour_union/java/com/chwl/app/module_hall/team/activity/HTeamMemberListActivity.java b/app/src/module_labour_union/java/com/chwl/app/module_hall/team/activity/HTeamMemberListActivity.java index 53d4054c6..2342dd7bc 100644 --- a/app/src/module_labour_union/java/com/chwl/app/module_hall/team/activity/HTeamMemberListActivity.java +++ b/app/src/module_labour_union/java/com/chwl/app/module_hall/team/activity/HTeamMemberListActivity.java @@ -9,6 +9,7 @@ import android.view.View; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.chwl.app.ui.widget.TextSpannableBuilder; import com.netease.nim.uikit.business.ait.AitContactType; import com.netease.nim.uikit.business.ait.selector.AitContactSelectorActivity; import com.chwl.app.R; @@ -252,7 +253,7 @@ public class HTeamMemberListActivity extends BaseViewBindingActivity holder : holders) { viewType++; - addItemType(viewType, R.layout.nim_message_item, holder); + addItemType(viewType, R.layout.nim_chat_room_message_item, holder); holder2ViewType.put(holder, viewType); } diff --git a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderBase.java b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderBase.java index 77e93a385..47e4fb1ba 100644 --- a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderBase.java +++ b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderBase.java @@ -11,10 +11,18 @@ import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.core.util.Consumer; + import com.chwl.app.public_chat.core.ChatRoomMessageAdapter; +import com.chwl.app.ui.utils.ImageLoadUtils; +import com.chwl.app.ui.widget.TextSpannableBuilder; +import com.chwl.core.level.UserLevelResourceType; +import com.chwl.core.noble.NobleUtil; +import com.chwl.core.user.bean.UserInfo; +import com.example.lib_utils.UiUtils; import com.netease.nim.uikit.R; import com.netease.nim.uikit.api.model.team.AvatarClickListener; -import com.netease.nim.uikit.business.team.helper.TeamHelper; import com.netease.nim.uikit.common.ui.imageview.HeadImageView; import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; import com.netease.nim.uikit.common.ui.recyclerview.holder.NIMBaseViewHolder; @@ -27,8 +35,6 @@ import com.netease.nimlib.sdk.msg.MsgService; import com.netease.nimlib.sdk.msg.attachment.FileAttachment; import com.netease.nimlib.sdk.msg.constant.MsgDirectionEnum; import com.netease.nimlib.sdk.msg.constant.MsgStatusEnum; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; /** * 会话窗口消息列表项的ViewHolder基类,负责每个消息项的外层框架,包括头像,昵称,发送/接收进度条,重发按钮等。
@@ -43,7 +49,7 @@ public abstract class ChatRoomMessageViewHolderBase extends RecyclerViewHolder 6) { + return name.substring(0, 6) + ".."; } - return ""; + return name; } private void setContent() { @@ -379,18 +404,35 @@ public abstract class ChatRoomMessageViewHolderBase extends RecyclerViewHolder callback) { + String androidBubbleUrl = NobleUtil.getResource(UserInfo.BUBBLE_URL_ANDROID, message); + if (TextUtils.isEmpty(androidBubbleUrl)) return; + int padding = UiUtils.INSTANCE.dip2px(12); + contentContainer.setPadding(padding, padding, padding, padding); + ImageLoadUtils.loadNinePatchBg(contentContainer, androidBubbleUrl, callback); + } + private void setReadReceipt() { if (shouldDisplayReceipt() && !TextUtils.isEmpty(getMsgAdapter().getUuid()) && message.getUuid().equals(getMsgAdapter().getUuid())) { readReceiptTextView.setVisibility(View.VISIBLE); diff --git a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderHeadline.kt b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderHeadline.kt index 8253f3b4e..1119a02cc 100644 --- a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderHeadline.kt +++ b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderHeadline.kt @@ -1,14 +1,45 @@ package com.chwl.app.public_chat.core.viewholder +import android.view.View +import android.widget.TextView import com.chwl.app.R import com.chwl.core.im.custom.bean.HeadlineChangedAttachment +import com.example.lib_utils.ktx.getColorById +import com.example.lib_utils.spannable.SpannableTextBuilder import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter class ChatRoomMessageViewHolderHeadline(adapter: BaseMultiItemFetchLoadAdapter<*, *>) : - ChatRoomMessageViewHolderNotification(adapter) { + ChatRoomMessageViewHolderBase(adapter) { + + private var textView: TextView? = null override fun bindContentView() { - val nick = (message.attachment as? HeadlineChangedAttachment)?.headlineData?.nick ?: "" - notificationTextView.text = context.getString(R.string.headline_message_format, nick) + val data = (message.attachment as? HeadlineChangedAttachment)?.headlineData + val nick = data?.nick ?: "" + textView?.let { + SpannableTextBuilder(it).appendText( + context.getString( + R.string.headline_message_format, + nick + ) + ).setTextStyle(nick, textColor = context.getColorById(R.color.color_DE3446)).apply() + } + } + + override fun getContentResId(): Int { + return R.layout.public_chat_message_item_headline + } + + override fun shouldDisplayNick(): Boolean { + return false + } + + override fun inflateContentView() { + textView = + view.findViewById(R.id.tv_content) as TextView + } + + override fun isMiddleItem(): Boolean { + return true } } \ No newline at end of file diff --git a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderPicture.java b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderPicture.java index f9095f55a..7894e49a9 100644 --- a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderPicture.java +++ b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderPicture.java @@ -27,4 +27,10 @@ public class ChatRoomMessageViewHolderPicture extends ChatRoomMessageViewHolderT protected String thumbFromSourceFile(String path) { return path; } + + @Override + protected void onLoadBubble() { + super.onLoadBubble(); + loadCustomBubble(null); + } } diff --git a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderText.java b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderText.java index 7d55b5ced..03c368432 100644 --- a/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderText.java +++ b/app/src/module_public_chat/java/com/chwl/app/public_chat/core/viewholder/ChatRoomMessageViewHolderText.java @@ -1,13 +1,10 @@ package com.chwl.app.public_chat.core.viewholder; -import android.graphics.Color; import android.text.method.LinkMovementMethod; import android.text.style.ImageSpan; import android.widget.TextView; import androidx.core.content.ContextCompat; - -import com.chwl.app.public_chat.core.viewholder.ChatRoomMessageViewHolderBase; import com.netease.nim.uikit.R; import com.netease.nim.uikit.api.NimUIKit; import com.netease.nim.uikit.business.session.emoji.MoonUtil; @@ -36,12 +33,30 @@ public class ChatRoomMessageViewHolderText extends ChatRoomMessageViewHolderBase @Override protected void bindContentView() { - bodyTextView.setTextColor(ContextCompat.getColor(context,R.color.color_C6C6E9)); + loadTextColor(); bodyTextView.setOnClickListener(v -> onItemClick()); MoonUtil.identifyFaceExpression(NimUIKit.getContext(), bodyTextView, getDisplayText(), ImageSpan.ALIGN_BOTTOM); bodyTextView.setMovementMethod(LinkMovementMethod.getInstance()); bodyTextView.setOnLongClickListener(longClickListener); - bodyTextView.setLinkTextColor(Color.parseColor("#C6C6E9")); + } + + @Override + protected void onLoadBubble() { + super.onLoadBubble(); + loadCustomBubble(aBoolean -> { + if (aBoolean) { + bodyTextView.setTextColor(ContextCompat.getColor(context, R.color.color_333333)); + } + }); + } + + private void loadTextColor() { + int textColor = ContextCompat.getColor(context, R.color.color_333333); + if (isReceivedMessage()) { + textColor = ContextCompat.getColor(context, R.color.color_white); + } + bodyTextView.setTextColor(textColor); + bodyTextView.setLinkTextColor(textColor); } protected String getDisplayText() { diff --git a/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/PublicChatRoomMessageActivity.kt b/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/PublicChatRoomMessageActivity.kt index 94fc7548d..fd30f6f4a 100644 --- a/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/PublicChatRoomMessageActivity.kt +++ b/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/PublicChatRoomMessageActivity.kt @@ -9,7 +9,6 @@ import com.chwl.app.base.BaseBindingActivity import com.chwl.app.databinding.PublicChatMessageActivityBinding import com.chwl.app.public_chat.ui.message.headline.HeadlineSendDialog import com.chwl.core.initial.InitialModel -import com.chwl.core.user.UserModel import com.chwl.library.annatation.ActLayoutRes import com.chwl.library.utils.ResUtil import com.chwl.library.utils.SingleToastUtil @@ -57,6 +56,9 @@ class PublicChatRoomMessageActivity : BaseBindingActivity messages) { + Log.d("MAAAX", "onIncomingMessage messages.size:" + messages.size()); boolean needScrollToBottom = isLastMessageVisible(); boolean needRefresh = false; List addedListItems = new ArrayList<>(messages.size()); for (ChatRoomMessage message : messages) { - if (isMyMessage(message)) { + if (isMyMessage(message) && !filterMessage(message)) { items.add(message); addedListItems.add(message); needRefresh = true; @@ -269,6 +274,11 @@ public class PublicChatRoomMessageListPanel { } if (needRefresh) { sortMessages(items); + if (items.size() > maxMessageCount) { + for (int i = 0; i < maxMessageCount / 2; i++) { + items.remove(0); + } + } adapter.notifyDataSetChanged(); } @@ -357,6 +367,18 @@ public class PublicChatRoomMessageListPanel { && message.getSessionId().equals(container.account); } + public boolean filterMessage(ChatRoomMessage message) { + if (message.getMsgType() == MsgTypeEnum.notification) { + return true; + } + if (message.getAttachment() instanceof HeadlineChangedAttachment) { + if (((HeadlineChangedAttachment) message.getAttachment()).getHeadlineData() == null) { + return true; + } + } + return false; + } + /** * 刷新单条消息 */ @@ -487,7 +509,9 @@ public class PublicChatRoomMessageListPanel { private class MessageLoader implements BaseFetchLoadAdapter.RequestLoadMoreListener, BaseFetchLoadAdapter.RequestFetchMoreListener { - private int loadMsgCount = getLoadMsgCount(); + private int loadMsgCount = 100; + + private int historyMaxCount = 200; private ChatRoomMessage anchor; @@ -526,10 +550,6 @@ public class PublicChatRoomMessageListPanel { } } - private int getLoadMsgCount() { - return 50; - } - /** * 私聊聊天信息数(发起私聊限制需要用到) * @@ -568,8 +588,7 @@ public class PublicChatRoomMessageListPanel { total.addAll(0, messages); adapter.updateShowTimeItem(total, true, firstLoad); // 更新要显示时间的消息 updateReceipt(total); // 更新已读回执标签 - - if (noMoreMessage) { + if (noMoreMessage || total.size() >= historyMaxCount) { adapter.fetchMoreEnd(messages, true); } else { adapter.fetchMoreComplete(messages); @@ -582,7 +601,6 @@ public class PublicChatRoomMessageListPanel { } firstLoad = false; - loadMsgCount = NimUIKitImpl.getOptions().messageCountLoadOnce; } @Override diff --git a/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/headline/HeadlineSendDialog.kt b/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/headline/HeadlineSendDialog.kt index 80012d6f0..df8f12bcc 100644 --- a/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/headline/HeadlineSendDialog.kt +++ b/app/src/module_public_chat/java/com/chwl/app/public_chat/ui/message/headline/HeadlineSendDialog.kt @@ -6,6 +6,7 @@ import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope import com.chwl.app.R import com.chwl.app.base.BaseDialog +import com.chwl.app.common.widget.dialog.DialogManager import com.chwl.app.databinding.HeadlineSendDialogBinding import com.chwl.app.public_chat.ui.message.PublicChatRoomViewModel import com.chwl.app.ui.pay.ChargeActivity @@ -24,7 +25,9 @@ class HeadlineSendDialog : BaseDialog() { override var width = WindowManager.LayoutParams.MATCH_PARENT override var height = WindowManager.LayoutParams.WRAP_CONTENT override var gravity = Gravity.BOTTOM + private var dialogManager: DialogManager? = null override fun init() { + dialogManager = DialogManager(context) lifecycleScope.launch(Dispatchers.Main) { viewModel.sendHeadlineFlow.collect { if (it.isSuccess) { @@ -39,10 +42,14 @@ class HeadlineSendDialog : BaseDialog() { } } } + viewModel.loadingLiveData.observe(this) { + if (it) dialogManager?.showProgressDialog(context) + else dialogManager?.dismissDialog() + } viewModel.headlinePayMoneyLiveData.observe(this) { binding.tvBuy.text = getString(R.string.headline_buy_format, it?.toString() ?: "-") } - binding.tvBuy.singleClick { + binding.layoutBuy.singleClick { val message = getInputContent() if (message.isEmpty()) { SingleToastUtil.showToast(R.string.team_view_createteammessageactivity_05) @@ -92,4 +99,9 @@ class HeadlineSendDialog : BaseDialog() { ) tipDialog.show() } + + override fun onDestroy() { + super.onDestroy() + dialogManager?.dismissDialog() + } } \ No newline at end of file diff --git a/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_bg_headline.webp b/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_bg_headline.webp new file mode 100644 index 0000000000000000000000000000000000000000..5401abb75ad0c922f54791540ada461b450caca4 GIT binary patch literal 62468 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 literal 0 HcmV?d00001 diff --git a/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_bg_headline_empty.webp b/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_bg_headline_empty.webp new file mode 100644 index 0000000000000000000000000000000000000000..04c954a53aef6137f89509bc06e5a076afeea947 GIT binary patch literal 81058 zcmcdxV{;~q4sEx_*0yciwryi;+jh6MxwUQEwr#i1bKhTaKP35d&P+0s%$y`D(h?F` ze4rqj;vz~KN?cm7ARr(}|Ct#$2o)%Zu$+?ABsd7jZ@d<}Ev9FnN4dNvX-Y z{WH3bzysu|ZFko+rf%_YM{4p^6a6XzIXoP#em};mrMBz|w){R-D%0g5*YM{9?!>i% z(QDW?HA!G8k{3irr!vl}O%6T<3%4=0M%uI-MO0>kj7q)G1>P)gKL3ohh}lEbB;M50E(|6({;lvk%!mc`A`@a^3YtZBn< z5a@hDBMX$apc5r8JLxpxALhPr>?cpnEJD0_cr)S;Te5&(C!3kASnB>h1*SIGCQvTG z6hP1mXnFS%0b*MbUdV}3s?4>$%zJ5pLenk?P$`Qvvro7aSMP|KLm%LdG8R;9#ZbFw zAURL?L24lMSF$aSW5|Jn+=x)5j_xkgApMH5i`D$Hj@W6^1W*#TeLb)oFOSjMAO-7|}s`$Sjnn4l!*Q zz%cv={-DZz2U}4r-NO}Bg&QMPsepq4K}Ndwu@13b0)7mEYry|Y00zX8#}k8#Gnr*s zy@#Pug-iXN7hyC*c^DUCY!^)GjWZ}I2KnR;*B`G)_hmeVb}qb<-CYvNF2rC_&s|A{ z3gaIa5BPWS%vz1z9(MP7=KNQDy^sV$h31FRi{0-g*BL2BIzR#V2MOTjq#1L7E)DgZ z0#XvQW07it?n~4A8Uq5dJM;(xQHhjW(y*)!MC!)BwPi{PmedPH1p`nON9>m33{VC8 z$LuVR=Lc$e>TYY2y^G;U3^0}6r$4;Sy^!MY5Pw#_7Mc$6d?^<5e_^o@kA|pWqiEGV z=lP7i*;EX>&Nmqg$gV*gez9^jYl@N$63Gz5QvXS0+&Ps*&;pM_dhncHHyJk?a()nR z^KX<>f^JA#{Z=%M8Kj6Fp(H&M(j6l7oTjwCd;<@YM?XrhJOB6z59X0dRCYKI_3(n^ z*vSVT>qH=KM25%(S5o(NHb@)8g?-J>%&f@7hqEU(Hzn6M7o)DLB+>QxQo7^YXT~xI z(?zaB?Eo(Ti3nlzm_6toGch+dUCC?MMg2p@b!!)i++(43IR0Pf5*o7{Zt8`5f-t*b zpxYg&&{7!4MZ)kf(BPm!&^wA(2=h?ucTr zr!^JsxuQGZCCWyPR6+lnaYR*|pdg9zV7Z_)=HS$z0^p#;ARy3b92umAYxmDbel;AL z*WaTkSbF!4?;%zdn9usSJ6@b>x99Gz_mG#h?ff8unLuk`YE@ zn?a#d<`6InX!wo!T6fj6+Qirq;P4^%v-c)?3YGZ9_?&PUFbfO=+yOa%1oz6H002Tmw0Yh(Fw}uylFZmY&--4im zF#!~Sy`P~U!gs`b!EgVCfH|NGU~ZrAJ>Y%sD!|SkI)Dc-0pR?mys5i8`zD-X{K$V2 zT=!W85(D-CnxBSu`9ymQeQg0{-(x=?pI5J;K8R6 zAQxZ?DF5i&o!bKffklMVebvB%?|~m6F!vo4n6M@J4h5)FLgWr$f9QH(mC3p5J$0BinZtpNxEff|a>{35{qfKK4r>%j8_U=7gsW_SgB2q=A@cuD^OJ{w*O zz6TTnf$!AcbDwt~eRseU;Bi2}f9cU?Hoe>v6jGMM^=Zj55)rGv2k!WH;j*x!omnz# zL;C~by5q-7+)-2V_~fs`B>5^)#B?&PZFsZ@Cja^8Aa=~w8`XKHisz?#IX-K0Sr@WD zg<{GQw)|tr?X2J_J;0_{K|PvV@|^JSm6~U)l+M+sglT!2LPx89NL%hrDpBhZQYIJ= zj4FLFQvneLRubmO73pK8(9*|=k_A`^AaP!TRA5rMt3maPJ&dU7PNeXRy`4j#lEWS79JQw_Z@+I_!hD~dG5=hWn1ZPQo9kC-@| zQG^sC`DD-u1XF2#EzseB^#D=cHaV3fJwi&(H;UpT+~*+bH5XtlE#$O-Z9lyM!PZwE zQ>_x;jfKVyQ|X1dSjI7o_etwM7$$fnTvrwL7l@SbQAKf}yxHf{ka~`_Mr-Gy`!XgZ z%+9v>#`cU6oo5Lht6JGz>=1Bl<)RrPLY+eh@r=}`It z7;f9jD9cY)KJgy=_Zg1*S!>|nisn9b7mteB^9GICp3~g_`pYF!CAO9^@1n{Wbg9Da3Z8XYp*rgAUAeRapjR5h5dRn-Hko&*8b78>y3UcOuxO4)HH1G?#F`6se7 zvQ&Ib(Cl`%%hkM{nHeRn?iMF|`a&;}FPf8yQ!I0HLYZL@p)ve$vQxVfOgyC=X4bbp zJeMBhdHKWodg*Z={$sbqLUw(Z_=nWn8Fv7~^NnMFL}A|qX3KMO>BHnQCUj#9Zeg); zL?)-a((O%>V2znM7^w%0!=ZZ(8&nK%FB|C6I_8hY6#gbHeR~~P@|Fd{qPW%dvB3Zi z6bVA>jUXhMUt&&qD1VP;y+FS03J|p5OJUlMIx=_bL)!&jp|*XjTCP`hn|(3ito{15 z{P+frw};@6Uy#ybw=alkkKmqbktorSt-C81qUYR#Yh+=ZCX+=EN8|P+Ccnvp_io$w z7$zhQYG?X*QLJGo&?C%CJrcRe3J_w>W-F#rCJG`>sK<#++`uo6zeUQErW zdey!Nk*j`Uy$f4CqJP2?#DZ#-M)5waywOpxF(5($gac3Hv`v$!=@a${7&L}7VW{T# zRX_#Zn*14*A@4nx6)5dem79eo6S(fMGH7H#b5(O-rWRQO8J9k;XgdZD%bTFcRJT86 zxo{Xycp{SbD}>gWFYCzc;9nv2ikzj_F&RNb@%~C&R`J6~Y3pV%SUo1os*eM7x!y-L&WQzxsUBXS4=`i!A z{tTHMHv$ol60KH{NId7`5c5hw9JV!{`Ryb3w}saZ>!4MNrj+IqB3mD-Fy{+Lu$Gp% z2Z}`9cZ3hL(`Wn2*2j*?SjXOohUDrM?7WCw?J{wcnxU-z2<}cyU3Ab2%6i-+DBN1{ z*U_gbI*1r(FB<^LSjqc~un6uK{^kv#-%}Uc4t`BNqre1a%QAhl%=~E zt%|yb#Y)soho5S2QG=Ea9}U#eUi4&} za^8Z2r7aCXdKTv-%D$hJ7Tx-!J!m;}7UGT1GFMN&TIhVbxPWZz#G2B(8qL{N)-Rup zlS#M?zcfYCnWMZ4mDAn{^B7dl&q^H(ZnZ&ev<)t5Wzm?NGKWg5@c}qEW{g1ynG{8> zJ27f(3C~8_3(k}A_48(zEIY&Ez-f>1k%5@|Kqae=wdEg&*H;6-0JTYg+0O9jMkQ7k z@cm$Sr!e1KC86^hH9lKk9QBAa6MYJjZ->d@F)}sr$%qq$tQF67tsbFtz{a)_>)dLx zpq8u156_{1@QrcXv{R=S@$`NWwg=mZxKAxsZ3EimoZ0qQKBOY#cK)PC5?9EFRN~7+ z7zd}=`P&anEw9H!BD8x=)HTMDtbV84-zRWxXnf3=v$6O#UNMm~jj_}4{h>y; z?3Eu*m*hEL$x0#XGWvulKCt^0$57$^m~yz4zlsH%O))6-X0*#+4^VAPM8DXGAx|47 zV5;rScWCS7NUH6Eksmo%|4lBWhKC86322&oUtX5(`SB?-!;vhcKAD-2N9? zwP$-N+$=-D@35LBmBNKks~e&7vD z>!dQucIZ&8U(ZrP-YwLj7@swPKthJE?DoxeBRUsI01rkHY7x)@}CqR$bIwG z)o(2HC_t`OS-aOR<~3WQ^-O4Pn@vAyi^sh-qM`f@nD&I%Fj`(RGl~WqW@|en{+lz$ z=Y>pC+G$pANjOUWU*WY&rpITFG%RITvcb_C4~{kC{ZZ8laQ?zJ zmgM^Rju`>cnL_!w>9=ci<{cBTaj3;HJRyni@(S#n>>tY^CL``S6aK>o@4jf3$JPo1 zB%!aE@`YSvP2BTX{0~)@lB3Z$zTC%1>k500aQ!w5dx!^%;eho}xt0V`HSLI9>jc3g zHT%)h5_w>9{O`}`@n)Zv1Gj<&<{la$s}YVuY!El~DqiW{yW_i_U(v_Ed@`2iO6AM18ZL-hToRfP zZEYExdzBSRTz(@TT*eM%nhlBdkTL*wbEp~^X%BgwV4O7$j=n5kiq`!#EkC>%fpGzu z9w2SBl5^JSdwT<=6N8(8`PwHj#LC;DSrk zDnf`d-KEXN@LWP|r~I)al{>LrVHXoDNQ?KE0k29(m3-mQ7Y)jgx z-5ZvK^uzWTcl9(T#B2Zvm9~EZ?MoR(NFA{UOqCy6XQuB*_&H- zK-A&3B~6fIJUn%&q-EH{kupwNiglS~vaND<8na*hY1wY!!t!uw`(z5aP9rjaMuSVM zx)QIE<=qm<>yJ89#1sL=#*C)H$ILK{GqGV8Bx{>9Z?&|1Ih&>$f*U~e< z9k_!$^9EG>kte={l^km+l_Me~olekOjAleM`#o=`9hm?3!e!tiB-W}*liFU7Wc(K4 zJAtXr)fb$LZZ}DD5wA?#Is!4gW7Q2h!ma*3P<9Z^@v=O$M}}-epRllAbm%T(flQT2 zbloG#!RZAkh!YLOeoGep1p=LYkDl}ka*;%y&`kwh=Qmfh{frwRp5IziK>qY z)OAMocMl-gNj=_dOk?9|4LX?@cGv*$=_szsA>4^w?^6ai|LU+Kzi1!SVZN`=8KB)& zlz)#hu&SVznTqYd%P=J?{312wI^Qb`R9&)-YX6eZew+Ry*HuZMptV~L6ytYJm7;^| zdn}n%-MG|zB!OwT-!n>`w*Tp=3yDz;$yu%)XgL}F4zs z;I+l=nj0^~4SYfLb=jjdMKZmGqUWWBF4qC&@gEc~O3Jn%6HzrS@ONTB+q2z#(;>Tb zZ}TSc#ZJ(^{WQOWc1`K)+Im6=n2XbkHMq5DK!hmTd|>}U2PMTJnXRpv74O~3t(1HL zs-9x~nKk!!FEkUT+%WQ*c-}E(4ICvt)iVMtKtK#Itv$poe`Y}Zy$|71Mz|ZY60@jh zz_r%m9*)W-#Z1wlgT@JLC^v!fpKbzkQ}rSQf#|%z{`js2_Z63&{+Grc6Fqkw$^-GD zIQ?qvp@iAChhJrnO*F#VaaDF~1d_2DDi)eJ(%Y5jfhn;JA)5xJ-PI0_$> zZMlNS!*H?@qAC9HMIC^-zI$hFMerqZ3yYNg>|5`#MQaf`jDX>I@7xo$as0(U9wOhE zU5ZJ7qIK0!+$XvBkTk%CPD`t6R!?62eh~JymNV+>~Uudia}<$^eP` zkNG)#u!Jo;YEANS*VMK)L|kk{m~_aiPENrD0VCWtQU~;bl)@nlHa_yReI~*dpcbw~ z)qZO=P^C^u8TaDH<4i*H3Zm-6slbkSOQmpvYow!O-24?joE31VYUb)FzIRh&+iX@A z$vcE7;NfGV9mfScuCD=8RY#7F>*vqRu<0}Mt7ZSziHs1HD;gr};NG+{xmi8=yJFY( z&+QxImc8Sc&Z6Np3k1tbrI#)rIamzvQ0yO_wEDml&K6@rI~2#nv$=9v5kh~nZ25K? z;kaW)VIC`qCcYaw8MrW07A&1Gi#;PMuB%L=AhJVxI=slFSRuVMwbxYW?zA#nGdGka zE|fJ;b8FyuwsGHtY13mP*XJkM7936H-{!;j798*9m5Glr+ZgF!QKxSyIPg}t#z)X} zKB-o^xa}^ukIP7?jg)oj7`@;QLJ(*3aB9Q!!QkjkFqy(`xSgr(^CTUy0Guh~s{=s{ zc`xaJY}bqUE_d@jj)ZlnI)%ZaW}^F<8&sC1J-l00)#rHBXuT_D6tQ@q=3Lx9ko1Bu zx{`#t`N^HKht!52g^M1>*`kBSjT>81e}DiZJ@Oj`e3zb;c)0Y`Q#(pblB%=V44@z66)Q zsdNqgEKOF@?2MQD^X=ugv6Y{7)%s_2dzv1Z%L3_T&jIYX72NFfoXx7gqP4d)l`$N3D@M5FS@WJj%OTT?L<(q)*VK z=p0zw>N2h<1{u1e=4TJf%~dt+cL~nHiL|NneSScA&o$#EQNOD(Aw9{6QAu2TRE*u7 z^Eget3gV!`A5yX>N(YuHw35S#5M3>e9K0BxKfl`X32(mbM0#**rAlW|{ng{l_}sfC z1}lR&=PJ$L5l}N2hGNAZ!P(BK7~Uwb=$NhJ>kCnmQ9su@@6^u9W1I@PikCN~rsW#> zy||DrVM4$gpz5~PAC!{7ge~)|Y{UwPm%a-yEvH?NsFXl6hwu-*p z*Lf_|$8`Yw2E@P%%Dj&C~+T<3?4!t|_!F>6s)ttHIn=TqnDd;c+Y=0@g6Q3(?KW zYch!y9L-Kh0YivVqrr2Plf)?L(rxYM^do+4(5aToThp7wNnTX20MpQhb|qEwX@aI4 zY#(VSqkWN4B&|#&X)^TyU_S>wF;E&*)49w~tTGw){N)L{cP>w)MZ*}j+>X?wT@*xd z_i0(7Ce)(sP^&Jz3~h_SZ%dPy{}C*M0$D1IVL&_GsW9l3bMzUI>viW-xAS!3-2>>k z_;xhVH4YW_fOJ!MLUYG;a&CVk1K7bcAzg*O%PDoNr?C%lQo=iPzLZ6#N_jO%gr(tE zl50t?{I}gQ?u_cxni%?0uvU^hSO_K)>m-pBfg#LLvvn`)y;*Z4&uv3?N&XgG2MT?h z*k3+!t-z{t`oJE9uC-iU8NL2F9t%bSOU1WS4~q(lsVI2UMud<_&9437BzZM2r5{{` zk>?k2gCgYdW(odokvcl>8rZs2xjceP+5krEWJx@J?Z5w?bKPLPQb_;W-SDi#p35z{R04JQYrDqYz-;z?icjK=c?m~8&Mf^p`wYpqZaz^fHW{1CIVSbia=7F({MB(Z zKRr-yZ9c3IZp!`p3(zy?uGgW`F_ntBRahWos?)odQO=0|BD>>|klz%f{2s>Z-}l9y zayo)-Wqqkf+2Y>^nD80YTGJ-rEmGktbt8Ktgw3RIXQ%;**m(x?XKyl3a#ex8-wqc0(|>cB8+z+ z3htgRHfmi(Zz(1aT=#x9vzJtLd>F-{#F{9OLwoyq4!D5p#WTKtq&k&Sx9%-zG4(C6T zaQTe5L$wMc8HHK#gIy!73U_{7Zl{#iMAc9y%Lp!)47@d4W)hP^@fUDKoe`9wu^bnVR0JTi zj&JEd%gh_NTedjU8h3jGPmBQ!dSE%7$z^^;!}2iRf{uJSq{RG!mLkVob*aa|e^XZ! zO0jb5W|tHG(vaV${3&)wffz<5Pbf%=eEw!R&Q5dd9*u;v13!5ZhwYg~ID6|#R*Ui% z)eP&MQxSuxF2uyW<%&-Zw+ow-{BwrVNO#$I)qn=H>49MN;c+6j>iGe`j|9tasb^)M zb(rUTn#uLyC!2VEz(@6QAIPJv2O>rDeFS>LAreKEL{b6#hpux7Kj+q!begX?yK&fi zZWGt>Z5%) zm|IAjE>s7}l>bnjvv_m7gZsDW_{X?&YGy5Yw#|bH+i%}#2YsJI@R`}a8m=9u0@WTw z0$>59yMgT1LugUUy*tk+H+~9|5FCL;j+1>udALt0~P``x*Z+%M$>J#PTs_S3Id= zdxTEv5bWmq)rxrlidsd>sEB@A4DULR5{`{=h~27RDPpSCib?0%HUI(>%}|)ko0G%r zFUBj)wjbjd3Vdnya|(*^NY<>zd@k}p3a*H*wqW7#=rD^7#W0H$SxA$l3v{V#@?Y)e zd~S%gls&9bIov|8q!=(#hPqe(thhC69SLwtJmqQ_)ZZ0VEJ9lPu6!!H^fIeBiB0)# zK&pd+9d=7f;%`T^Th9u9F5{nRiWS#1~tx)Y{*xDpaQa0|bv zTHlY~!C5Pv08%97`1a<%BeAp2F;lFojaj5iOIK`M9*1P&X*@p{(wN|N4Ypv9(%wb> zt03%r>SmlJoy*yK*wJg}*xf4mUmUW(^%nbB{VxHG`D8bgtfGxj<#h?-p*R}1Li`hK zV#_rBPjB&q!4M=2XLbsZ z^zGpMF`T*x1ITelwJ`|k^Qs=zwH$)}rF)RY5U8)BLwZPGu} zs=+{b>erO&k>GIpZ#-YqvzHqd&K#PgjVS7gXiCKG9G$Xo^^bg&eZ4*7aLs5ahzZg? z7zQ;frskfTZC>PY zhHU`L5q2t-1zMpMuTwbP^;PrSf5{J_5e_YiyZ=x#p$l_@VbSyQR&ms+fzN3qFc+${5Crpvfk70BoWUvLn8qj>z79p5B(gqPWbI z0(DYGvfPUYs?QW_I0a*Vdc!{(>YYfLXLZ*Wak1c!!25}(w zuM}84r5@egT@|e_G7Nyyg!F~*3{P4--&b0k0lwQqb7sJ)T|abguNXX60019eBq>=v zIW(!P%}|+2gS^-4w(`%WmDp+=Bl!VVidC58&~{9zRosW1@;yh{D_Gi0H8=T(sA57u z-JC5{NkS}@VktCcehM5=yaBXPS;u%egybXHB6r=hI=N|a=FwE+eor?7jOJqMcZw4D ze1C~p06HaE@X!^_jOZ$|&PsylR%09+KJIo=p=L;z;6nFBF0%u4m%-F@m%DQUr$M5b zI*SQY<~)%3Qwu`gtA#QktP(C|Ep$pcBhwA!y*8w`@AoiFpN$}twi9J%7ZLPsW(l_v zImUhi2k2%tngJmxPK0jg&M=9Yh@dGjf`kQ*1~4k0 z+=0>>`bDgnWWRb;3P3yPeNV^oN?pRhx-C(B%fVSTo?)b7p~LEiLl1+K$qd)>ZCxg3lUZP^CeD7vPEUuqVN~L*R(~Xj>-@ccn|)x4vuHY&o~NGwJsGR^ z&8S;@66J%f0zcz%&%nIX2mIwk771J)L#;aJOTDREgqaCZW{7UhUfiI|;P)8%9-48u z;LPmc;u)L_=J@cVL&IXtRQ+$Pl+F}kXgM6(!q&}PMo3-F*Bz|43whB` zo#6r7Ia(@$CVrx4D&gZr<4O#q2R>3*xv=Fi4WpPCDvTO(Url;Rt9_?^ ztTqnTYA%v+@^pVUP!7M3qnKRp8`X2)>U?Q23A|h1c4`e0Cd-|^VZ6Xma;Zq_c{m;YnHIg!MctZ>`o$;HZStjJuNP|yAoRxeKGjONW?D<50!bpW~ zC{3_392rsmpLJ2k{WKV1ab`YCn3Qb6V4Vf%u_;lGhn>$OSi}5ctnkf#ccT>Sp;*(> z+bMjq_3xX(K0;FrRWRgJol)HtuwHNDvroju_>DgA@;)%NTPC2U;t8TlQ+uw%tHW3c zYv5eKa}9szRVUqik3v{4^=z>%x4nHJI)Ed^gliLp&(?*KRE0cc09=<f-agC0_gEEdnn(X^P}K-L#D(y-=HYF4E4Ey|FUhwQ_tr)OOAaN{om z%WaOCKt|pvPmR!C${XOlvzG|&RvZh^qnD6A(*IaAT2m)gV-LwQyBxQOdk3PHOJ3WA zRM25o`wddZ=EBOSV5vrtI9YpK4`IOQCY@7gO4Qq4Tlv(H<~CwY=xT&^4Bp@TKEqHP zLRXveuJny;j7vHw>{v)UM@VJvbZEfZV$)%8uvVF*&Qop^G7^80yi_i~sIq=`ALHw! zoV%nYF%Cv8ztWZ;^=wAkxxRW(YXjS~@M#Y*YuB1kPH<1CpvLc)Z0bJCZsYhISLmBx zzghrlE)l(~?Jj*ei^mOyomqe@1ZIN3RoPb&f=}hKS$MyHpg$CH!bl6=F)Lj1X(4WZrPCU0X|sKzHDbk|7Pt=0@xg_j)**@q%PUC}z(?1i^V~DQ|_XIUkKCV>fA;y%*Cij)r%vtZbpH zI-yNNcq^RYr?8^g>~h`g8-n%#7jUL_L~iD{+sT%i4Sr|+8-99Il+xeXUHr6x`GqM5 z_OR-07arDHHib3DBBFnY)FlloBn+=|)KY!MdH3mB&RJ!3KvvPG zU>d7Nd&WI8`MMKGXmUXR)aowAq_T6Dm?a)oBry;28|3Xs*W`)a7WVPQy2f(UQN0+m z$rbCf^S}$=K@+o!9YJ}cz~IyaPsC+lUwh2W(mjFR zF&}`DPcK(D-+wgD>0*X3GUA*Ee+!%jGNO>(G!Bt<>nFij5w95}X5GXK1ox$@NM95T z^9?eTa2?v_($Xu)!oWb{U*{ocSQSHbaSLwOWVJW--wHjfZ(%Rwkj@6z#*xLNi1zmh zlfSsuR+65O`zMQ*bfU2tYrTjJ|J4nq)^PMbd4)vF?Kx`mp#^NstHuK}$5T2bNP%2$ zerhp79fxGx59wu)^;;46eB0qtRvN;F>;!gwua*A(TJea*@I@Nt)B8XzhJrMkw&!2^ z-X{%q)o7Uh0D@*^;wXz3fOp4P9Q!?Y!RaS^wk&MX=y?>Nu~gqXb(_eNbz z10n)d#Z#2&n;RVg@8o}w7E4|5 zOT{?AuBMsx{-_mv-EF+#fM}86DdMUgGCQgwK3KaZb%}XU2?KQ zAYIaFCJ{lngjR(-K0^%`AKGgaU$4W&-$~B(u2!=f+1S`?@u*R6azE&u=A{IMBkZWI zmVr#_4V7aizZ}CcJgF7o$&mJRu5zdIbhaG3Qgid?$^GpxcT@{LEVKWCcz`O!wE~qX zJYUup29+{f4l3df2tbW$@l)OH$>jp%Z?(@KSoOg2v9GI^6dxrgFm!=&LB6xskp-q! zc20Y$=jLv)vi+O+BC;0FviU$}0akP#Pbb+7`yLLJCZAnQ+2%e`C3-6Z!o5JI#!MQ|vf{HghcuI-3l3AvWY4UT*%7I-I#Rh{bEAAMj|{TWCGfTh9cDs({0nHh4n(NwW+i^wQkjG~~S;|Ga%eHeO*-^|to_8z5Ql zQi3{-Z82nzjdS>i@o6w<52G$EqgLSMODs|nJT8`ntn2%bU?D|dSaw`AN)tdj-f0f` z!Jf69clJ6_=q`Q+JX%^%8G1b;wpaTR7LR^M(2gbV4pGYJ4-kok3`~_gT1#s;@Xq>I z=IY^wJKU23YqTfc)cxig*<%`y>^%3P1Q7{ZLN6PWK=9CmX5Gk_)7vX-Dy>OKiVM_= zb2_f`61EZ%LWNYBYt$G(3(w{jX+J8F)%cLRMNfx|OI^W$x`tA_@aHv345g(}zE-6V z?mIrF8j{dZ1+7FP3Fjm1mjJa>Oh)#Y(;ZvT2aBES`U}$uVYMi~IrYguDtUx5^9EB2d8!U6ce_$I3GO+idIK5P8;E zSl!_3lglZN_aU{*U8Y6!@EniLi`~AwscDBY47JM z)eow$b4Q+j>t2LNA>#b^&v9w4Vz-8682}1Y@c6gSynSlO^le>KJ=@n0(x2!j^Lz1w z1;Wk)0TCS|q%706h5#8+VtvghB`7W9(3&~OcV7J($-cc`$nV$tEQGj##r!i$U1>?X zUn(LqL4m|gD03>OmO%KOB?Ns^y`4`GHZE{S$)yjp3a6)h9WCR<7SuO7Bn-PMpHmJ7 zbd38dKi3$GJqnZa_$wa|6jJ%)H>z1CK^WFbwgKeKt6PHs;xI5v1NTkiY{|#KU@U>c zpg=qlm`fS2d<4kHsCN65Zuw}R&+6L)h~kE6mZyzyTX!+gPPzUF*{<+P zI`qIyjlW1{ddp?5fRtnLQ=;(k9D|Mg^F1d~87OeoY#BNOS&1_R2}`X>w$8ai5_GFe z39ln*>pwrM{IMzcEn!$eclIn^_j!I3B(a}9=Ty)`U?vUL7hypT*b99c5G(N*q;h3! zu>?$PF5MQBc=bNf`}?0g=-NkD1a{%lst47+qOGx^vvK@zTMnB7!|Wp%hhdLUvK$9) z@UP-NbJE)2oE9-1wKI*%6{Zc~aH!-UJ7%=rvv5Qsq#D&>mBgfdDF3jX&Gh(qdh@}p zE>R<_{A~9N_c^x8E|)y*Fe$e8b(ggsCD_j+MdX!MhN6oOqMx{i5t7Umg_Wq_)aLN# zPvB`HX5o6_@mR+UsO64X2-JDwrYTfO4Y?m9^-YWB7m#=!8h&$fN~vrT5goTQZB9&% zE52X`kREh=YS@~QhJ(lZZ~7QET(C-&d*GAZ!v7e$#Rsez4>Nb_c z)>L?czdclQFdKJ$5p1?qbDqYcAQ*JUq5#Jg*!)yh@9Uiwr-`nn(;?dfLvRrzG%uO) zS@c@D)sQ5;yP47_)&>7Gv79g>cEjhh6ZP$h{Y0NaN%162Lm5SJ9whHwtaKHBpq0OE zUoxK9-sT*-DoNNFwi_gT%pV^zJ3BZmvpiyKIQCdHw3@R;A&LmG-~vQoA@e6fo!93c z^)0ij+;l0o@z7wHv*um9$ZA@dBF)n(RD4C_qoX*y=pBYLp`bW-?HhjE*%mH-2e0dE zOM)rv>#}OAG2*l9oh!;F&W8Uz(#_(6uO^DwYO#C`hR$`+-&aYPp#C&-PS@}cyR7sY zwcKTY6*lyh)amMJ?_rLHvGbLUKQSS*Gn{cZ?=Z~arcwHJCz7~1{yW9kzHFk;qjD7s zXSko;l{f1@sqOnF!3jW_D_WuEQ>F8uoIz+9p1f71-^{XTxfO;oeeHH?P*$*6vKSg1 zaYmB3T3TD8Y1Gr%B6uJFO*^G3#cw2K6*Hd_NW%!uGR7Q#1Us)YW7bRe;c*)n78*jy zgMJ0mUMRl-bem(~`U$t(kUrDUZ>sOFoVmLzz|(b>%;SgbqJO&x)~rHzyr3fNw>c-M zzC!h9OXMWXisO%91;jdHJLPc#6Nd)TZ&G106<>?MJ;0bS(ZqkN$&U1qXd)gZY&HO? zZ=i#v;;S>t(<>j4&tF;NUqAx=Fue66?v|; zuG&$t^{)RAx0@St#tZJkSOd?nD9mg*ZCZRgG}Q3;CL*STJDVv{XO3FDVn)h9H?7w( zwUBU7O$x?W*F9J8GLdR@!9#yD$)gjbSZS!~upv&PFrkJ)FNb8GP(zjaK2PeR2E4f2 z`@8Y>G-}jI)yX+Q$;VS0^!WB42R^i6mZ*xqo(YKg3YAM+jVu-6toP_=Fss2DjDi3g zq_9HqOe@vAPWt5O~1}b z-@E2%$^)GTP7_rYpQ>`CR0~@Or&)WD+W?vT>_a80<0=*?v6?pA8~3}u;cR>YcrqNQ zE%JF_aZsLFH5AEa#YIrEpHeXryEj>|J_7!Bm%A|edz_jpg+G953e_e2Z@W{zi+=C1 zskQ^!=GnH1Hu}Tiz`u8(=STy8tF*_$uyW4SlC1&uH}cR@kA--qJOsj9K7*##KwEfY zOkk-O&SQJA45>>lsyvfU+N~Pv?S)_(5BTgdd{r{A9NR9kyRLXqcQK37BI!wjxa|n6 zew5SZ`8a}`aNq;kAA57a?r0yi4^;`lBda#?DTl{s5??L%V>Qm(E@I#(;(ei+lW8oD z3Q}crdRq~^$O{^FF#@KQU#oJ@((JxO3-uWn=Ye0EC#kq5JsTPzN@X$fW_5UyEL+`sdUtjkm|9xM5mVkCVKE zuQUxC#iJ;P*Q*3eS&iMmyEOND&|l*xv-QQozO1rwQu8MHaoMvZxd|*`mD5%n@DuArZ2!W*DTb{pSZ{KU$&_#< zr`q3`os#tgwpsxkWKT340g;;-5(*v2u621Q>p39FwehvJ4JyThLVEH9E8>f$ws$AF=S@W6w*}>D;Mm`eabH8Pm{e4X)QBz!VhtI`}1zoSl~AW z%UhOFSuQGh$}9u(zYn=L*zt%sS3qlW8`r&+h~kz1Gt<$ zwotB3OIvXIOr*z|hJ7er!!6J-Ubamlovo+7*j9dTzrP3bxIOvQFdHWRqfwU4YgZ^j zu1#HF@O=_P9AvFNrtcqB<8dHs%4Jk%Wk~PgB_f-9pSlhGV|l1wi8jH%`=$}#QxIyf z47-=n#4u!>cJIdf!IQ}r35f^zn2LEnmzAt;MMgjGr`>S$-6MbzC5H0Ywwae zH_&#aJJisSQGg?=cotmxQy=H2{SV4~fYAPQiQj_?D>ZW@GIc}&?>xUAdg*P?-b47G9M$`%!Ch!y`g#(BWo>-SxQvE#4Vr_9o8ZT?}G z%wBBW$sfz+s>U!>bwk2%An`N<*Hwa<4Nynh7pdZq7FJq4H%_=<71gO@*GF^8~Ths z+2Z*?^6S^{=HazV`mKc3Go~%%mH&dxkER}V6hF+q z2LI$m%obvecw0L_L1C4QiES}oc{FKc`T(*kgZcn8Fi|GLkUEk*lFns0!;zh#gc#KeP5Y(vY4*P(;H%RZ4{ag)AXag=hUqcv@P}_Q?Cier}-U}Ep#Md=3dDDB?|uVnF(%xO7!&hh&`LG%pCbDqbS=^zRRS^S zBHDfxp#s{rlKOPCXbT+aucZg!1W??O2>ciX-NMU}nn+D0Vo6 zoeXmdLV2q1@8)f239=CEgxk%1lRzUXno0$5t@cmi>=Y5C(;JLM-@(Gxp2<{l(k7*Z zDp;z%G?XjuKXzmg0F$@Wxpxot)R4MzARlU+j2j*BUp~u&t`*Y_E<&X}^F0Z&I*ZSP zGeuA6tJ0+>WhOh+_78Ez#k>jh9e>^|EYqOra3}>A#yJTMs0h!CD8EYuJi78Yf`O9a zW*kA_@;g%2!x(RGurr>v41c~XzkbYadW^jFXt*z3o0YhCSY03>22MXwjGei-fWJ-P zyOc;6hq1bu=>G8EI<>bzn$Iix)XYS)?4v-Aae;aOZG@{sF0w;(X<9#$5+CP8Uish_ z+*mZ*XD1)?cD$(X6#U=3$BYNz%lO)#FWad`q1L5`gA zH)4V6y9rz?fRL|z$%y!xpW!y5y_w!3RUAw#{+ykPN=s&Dg?!E5(PJf`5OyFYvHI1~ zx!=2vAGSW`(z8+QKLx@q@Y#B&j#~msBeI+}5(evu4HLLN zKdi&PK~NuZsb%-bRP*rFrVey-SS4d9EVS(D1JU&XFni1R?;%YGHm=Y^0PGiy3de9y z#O7LIOisk3H3Kr_yV55zf`j7M#&cVgy3eoS01mdq+m;*4g?N4Z`)+#3Aqw_RPnDd^ zTTIg4__lF%PTVsMP*BY_A(u~A19}YRM_E6?z*nG;8)?8Y=P=X|g5u(U$D6}hEOxp(~aAbp-V zhr~~R7?J6*MurU(Z(-@6h=3rK)z5XMV*SnmW&(5QZY?}(GU|1nF1ZVU5aY;woGf5S z8>ATm@1#@X4eBCqjcw6l1_{AduOqV5F(VzW$^t^&Vx$V5P zGOj*hkJ#w7Iq{OuP8y}Nb{eMaLI`-0sqD|3U(RBg_MG7q9%>IU2$hsAN$Zwc1j!QB zwS;qj7hCM}p=FW3s_sWq8VoW7Oe}y6K~V2_FV6ohT8Z8b);Sf2@+LK!K7egK%`1QV zvVcXg&%2pGyV~jrwC;+4{1G4f9KILbvls2K9ntE##xOeuuAz&+S7A1q-@1(ZmO(4Y zOcJko6^I$K6q3pR2C<8&V{?bGwD-JFg6kcwMIQ79FMtr<0A`05+%){qp>8k|)HC;s zL1bbim}OT8rGUjt;L;LoqtakqvLTl+BFK@Hy0doOUq&q^X6f;=zckWWTO5&F;Q1AitU0-m@rJ8?7?{*si5m`4s2EA^+A< z%kyn$cNkun`PY#b((i&t)XVJkO*m9t_nPsWtL);0IK^Z+o^IZL<^~o?rZWHd9#w8C zTUtyx33bSf;({pq9DRI8I={odCM@uZL9%=|y-Y92--69ftO zH$#8=eqM2C=DE29>R3FiP|Qwh`hgoWCV>b1YKFjGXu7rMy_B?Ja2BgvGY1Y>YEQ6W z574>YedOahLv2*+R+ZhFDLd4$h|stEIHLza-JwiA))L)C4?;!;_<(F@?J00y{GLZv zGMvwnU3Jc@R2ogJvGC??7#R*>kKMQ{nTb&3Eb`&z9VJc+z;RgZ>~qa36uajzNM5x8IWFgld|*(#<BPI-yxdGKU9NH$(A3kny$R zI~ta|?UU+F-n=BYdAqp?M(y0)MF11t`F&YE>Wz0Mcu1n*{93?;TPf0(EvIntAeOFS zv@?_3v(u6NG|n6)V0*B07!_k{rl2vgSbf`w4G{?_uXj zl0A}`WSSffY0FTxX|uD7)SuelHHH!67lyaenpA|oFsCfc5V^W}9K!dPAupLot^fFA z8dGa175OT$LLT_dCFPm#Q4*$7w7A2_#J@~~k4QPSE%al5=&!aIY|4Uf;pR3Q3K_9Y zPISZ=?sa54c8WbLFTTleXdos&|x z;mZMx%iakF(1_73-CiYaw-%0scQ&UWFP*PU!KVM8qt zqB%Q(VWj0Lf+im`bebXyNzq>!Xfi9P9~G)vm_$sfRXzaW-5fQpRxvmzi#d`bL8GT_ z<_E$0Ba(+B1ZQz6m&##=+z3LdjS^sXVH0H#I?)`5z|${l`l9l{6orO9=m6ysMs|KP zxYkw--Vx?h63)XjxJMdW*j5-;SD3tIKDhEuP};RI#kkz3pGF#OL}}|$e_0!-o^y5e1*!#sw#*I@%=X_HFuE|(tvbwZS^G%96EP*X zhY1jTuho?Q2kjbRS3xf|1$G$p1d73Tgt2dGx0l~!HbyN^eQzuX(*GRt2ZG62u(kgp zwv=#})W;kxQ-Ife0l3s(&UG6XR@s(K!ljF%2;%q6d|-z{30ph_%;p4zCy{$+kU*#N!Cns1_mz7n31pZT=Rm z(%we~H04918Pn#R(#ebz{f!z>}*3A$t{97~)lETE2Rlw;v z2ir826)3bCmXKj~DPTyUm#z(?;F!kRp6wDAc}Vef*Cmmp3rZCHw+LIyKRlCCk`SIk z(QVl$D>1y7Py#^GQ(?|A#+tWLBW}H-5(6ParVVeutiv|L!jnp*~?M(X|89wz2btDl7{L%g6xtDA1n_0kj|mmNRI$kIP(< z2-#XzIMp>BOd!!d77=I>H)$*4cRK2m(*1c^^RMyY^;m^L>KSu0Y{p885fa>NH@C^% zthDiDJj%WAm6QJAOK-{no>QU?p(-Br(0rqDLrBOOn)(4x@edd=*IIk3HnlE4e_cZ9 zdW*1GACoHI07ZY8`%A->(LTDL-8w@Jlqqi`X8_@uAt?}HTV(Hr8aTC%H|2kIkY&CE zG|>dwUAV~_|1GvQ_3sQcdD(GqiQ-^4J34l6GUCn@5B?7)P)e(P#PM@^&mT9--MsD&Q8RyNFrtK)3tgZ(TqLTGIG(ZMAwTd&MY$bGYd86U6 zAV-77$WnQV_{&wMZKwjZR(NhBiFJRxuF(TMIif-jF*NZz=rn*9XBTO|6pU`f7d~+f zBGXUOO}l-I6j54M`){koM5k><$&X@q6OiYP2C253M4)p1XdDuY>PDukp*7fJ-+mRq zA4G|rl?{|6hoc{@S$7`x)6{JlUO<3BIV{7zBUy5|fmA3ue7r+18cvdr0!;nPhKZGW z3S_$Q$BN~?@hc1zgrpxJO3pj>laR8n^+EZu*gL@&l%Y{bfSDc54$heV%mWuz=3GP) zdGmrrBhchHlp{(Ot+S`V1Q#PM{P!S}&>j*;c{(U8JC!YE(YH2)1x721{n4{HxjNdH zHo!V;ZKV6OG3bwg$8;~Lup)Q^>Ow6+FPIZ{WD#SAp6)=+n;i^R^RcJa!zA@CSdT!v zkOZ8VT%agloTH^*Iu%AmPdEE-r5OSr&&jT7nEKW^NuF2hM!wB^x}7Mo3$s*6DUtF+ z41^vqf5VYeN#2fbJ9&;cY`V8a+BRBRv+U*C2pQhvT8Nv>c@!gHfqyg%p>aOod{BRs z8~bNk(Xr<#Q90n2RkHNe5u&5}7DpSmqV?1TL29c6u#=kD7XCqmgPra{LI)hH*U(~u zSHqXsEQI6bp?A1nddaT3>gMg=>Zi2osir)7+FXl%D+MeDFjA!N!v2@&cxOxt;8_;7 z3<_UwOQ@5_IRC#Y7Si=AnlXY|1ST*y3*TtKcnb)Ek8O5$nghK)-) zMp$vz(647^T8$)u4Jou!RN3u(c}wBFQ6aL5;JKm{62q?9TjHp2)HiKd=ucaQK7&f( zleIBT3%F#3gg@#bVESv{2y z`j$w8UVJe0on+ep7xE(t-M0nB&n*EAb5j=%!TSV6NfL&m;#NBqHIXmH_DTcH#b@z%=)vP`bw7CfUrdt5s~DJ z2Tc8O9v_D}Ndp+(Ya^ojq0rbC*1yukf!TdHQ+Ixao#9VxWXv|y;6||?Mb${=-W=%^ z`G%%bD|$Va(MyF&&v%UpeiW>71XLm9mnYXTU(}lws z3ZQKaQ4Bm?xyf+ir2(OpkXKq_gnJ!}%3!2%SiaZ-YLK72gxa*n#k>_t-PI^kUCD4| zHa<=HCXqLt-9}@n-r9!(h9qsGAVI6>Q6`@hTi?)CRS)8Fy4|URABq-qBL<;)Qj{dANhf9@g<|hKwmP}zM@C2vg@3i2il8_B}xsO&nAsh)%dNdMCNwKa_? zbgFh6B(^|^lu}Cp-BgMg!CgRzo9Y6b$-7buZ{NGE2wLni=LfK^n&2++ljOXz9H_Qa z#C6f#^kD`*2Qv;Dv|wiero~{JTu_V z(J`{-g*sa=dX70z%XS@(F(LV<{(ucyCf|mL_A6Rl-MPIp!?K9;2`wV5N~IN`s~*Va zl5O^kp=ubb>2)94>c_YnoGC-vb%m#l@Glk&LcwCa`a-oV}6wD=r z4jJD)OU`pT>n@dnm56f%uwBlk1sp5?e`u}WlI*zZ8_Y1Ys+8t{4?DKa1Q(~1T~z>p z00Cfl6gNsB^5tKYC>^r^HC96e`|1WSXr0`VdZu}J(;&y`{7b0U^8T?NPffyC(MVzz zfx0u&!-LCXb3Lo#P{|pP$lrXEUiyqJDe^gR_Bmv%k-2dJBF6q2@S-hAVF*W8M5y*A z$`N1XwryI}0X!g#^esG%iNjV74%iAX+}Z2~D>sJ@xr2^^oO;fN^_zGQf`;@3<5pZH zin|$=`nhYQo9gDal_uN*cH4WYI^g6XeR-fl%&kFBqSrPZFRX+3Bk^NE)%-4j0tn(0 z(?D#@k8_4GB>jt~B$<;wA;qiDrVpWpv~$@qWYIZ;xlugOhnk!Un#MbldVwY#u)(50 zu-*Lg4v9o?(v^zcFXT0hTKs1NR@=|~-~~PKxRUb(M4oB6uC>{Wl&xpQUARXIvzoD&`XEBS~38l;%(wtZ0| z-4rSl=h$(zPfCDkoCBH0Y_QLN*?d!tJpyE?KL6q6zD zX4jhqOj|<@mZf_Kq?cdsjCBATK?SJ3vb++WceJE-#{N91$6h)Tfv$&WZZ(>90$|Rn z5=wPhHC!yBIzW{K6_Ia+?uIFDY|=zJ-#LUSwZ%-$L(bD;|JN=J%sgk9$+y*Qk|SnX zOI~2)Hzt{x2bFZiQBvi(D#6(``8~yM2M)Eo_<2>sn0; zj=`QQVRe_ww74g`J4!FVzoC5OG|-mID0Z1WIGH+tT;VFY=8_K6U1h~5?u~0p2=?k2 zd9aOSDV`JqPF)R!r9_YBUO~aL1(J}T&#W|T){)$~QbzK;rZrJTm1Ut|`?OdQwlGb0 zvp1|Y>n735C`X6f(!j;VlGMf$m?dqGeHmk8Lj9H5cfR}xAxib?^*>_=GT#G?GgMjI zmn9Sq-gVF`H|xCVugk;rcMg{^bxD(|svIt7j1Icsp5CEEiV?M}qEX-w)i*P~<9NuOrYK?k5!RhDFtdeYiWvh|~lp24bFTrw}3R`GUCO*4< zj|p(`BO^c%bL}}~i?bGY&;u7T6ihxqpiX6F9xgvDqBt`k<7%wnyfB{T;C+P$(B}at zq;=l4t(@h8#7=^j{M9{~owZ|pTzMZOKt*$}3;pn7I|xcgQbN02EJ7PkmJyWD_?^rN za@Gb3Z?4f?#2A}0@{uJp8PmdZL*{hDrZ#ssT6a;~r2)qBK9Op%k}v45&u|}lOmWXdwUi(jOEh>)WKei>dM^LM20TqqTJ(Qj4^)D zaC!xN`+~n?IX@9jDXyZ1pAHBZlqZ*M0&H|%>lxw>OuTRYz|TWp%;s&-siIh3iAi~w z|Jz_o50R}*U9)aP&GFrc7QaW@uI)YLK2bVQu;iiTGNXtnuPd-*Jr8j_j4}Dew$^=p z1Sk=6%70SlCS9#vMF<&!9?_ziw$4rf{VT-&z>3)niK;nw(OQzKoqD#o>@k?DBOKUw z4DU?;@`;M$ie9B!4Jt8iMG)U5^K%c1{Zbva1L~%VYg?$5gn z6g=^djgX15j4ueBSaA1hrU~DRC$S&eVLX!jbWhTTV#*c~INIrw#G;3dC=tHYZCdol zbDm=r8k7oRri0^ATq+%;q4`$EhjlXh&0jW8?qnh4`b_@7}a6M%QUBlOYVHX7f(Csb@dHo)&T37TStf7QG!)Hdl(i%D%dHdL|%CsEg zm_jaL&o_&i&xePVZj9AnYXNQqn289o6*N}P=j+#p7KaljZFYIU785^$@Vw=zBPS5M zkt7PT7jfX7KrgFp%y9@OeU7xs`#Bg~eK&6uy9#k<6`>}A1%6V=~A049tTAzTi4bTgga$Da%{<;#9fqP zt(9WbN`idoWGjlTfdZjFaUoeB0&n)mG-P;!Z*6I#r-ZI)`~0%% zzjy=2mSrrH+ASxRyRHOY-;P7xiY-qBPuk2SNp&6{_{M-XNYzZX!@W^oL+%oJ9B!Ul zh@TXBbA1>_MaW5!kp9pco$YI=Kt-{wcmKx*KK6h5N9ru*ucJrGx=$C!D~h@*)C3b^e4^Zu$yl>2sH zGF*2#B!^quC?xhix_Q(!^APKRl}MSoy5s}1=QKegnf*n3uUg9kQ7Wa4q?ReGxnai(WhK*A3iQyQx6>iSM zZDIn_4_|VJwwo3{5k*kj?|TYGm*$r%hHdy`PV7}&a(3r?7hi=|8+Haj9#)aY4_6qS zdr4^_#gVnzVQ&I*1Gcj_ou#0sHdokXG|+r`eE^^9tXk&w+`?pZtR|G-vjmAPm&Aq@W-+^sA2nH5W{VD<&f|=vJH#^@U;tK-1!Jcg z*y;hZDx43b%5JtNXGQ5kwe^@iFK;^DkYqL$;)3nY<@VhodVaZ7=|Ux`>qfsmKNWk~Q5b_*x6MbYNk&?YU>ATg zp`P4++K=&QG7s12xYi)DAG1(j0SI;zg2+EwkbdEQ8N;}Nvhaf4gG_lh-&#)!e1eO+ zkt_OP<`YtU^n|h#NPsvsc-oNi-o=7CO0G>cdPx3aF26UR@Ovf|4EIpAGI7anBpu;I z^!~$L$BF3E)K_rBT$6P;TYm;!FZ6?jUyA6I87ak}v6JXMllskw#tN!B?-wUGqc@ELG zA|+J>6QR7OV9#iz{@A6U`rt*rI~XN}M0F73#%H7<{aB>e($2YRVRoiPKnljs-hfv) zRLRdk3Ly^{c*|{FSo>ch|6pcMIx{l`gk@kl+&rP)$$Id5%)7vz5pw1G8Ix8gFJquA z#VSjBtuHC%+(d80#x%v1jpUbTmaUEg;v1nd5crU6X`*FCT@%h^appVpT&aXn_-zjpi+QIOhjX$fTa~L7SphVg8M$ zh0q}|4A{}0+RAJn9=Mt@d3XLkPjK}9d>*7_vv!FRza(yQuZ)3yh$>(XphO1Lp@Mmy z0Q~1SjySljM(ChI#!;3OS4S1h+NUcXdBzlGN7}J3?V=rUUZ?n)ez?_Jye>P_j@<-) zpKO+I$g40nRnLqoeeMO9Y%C#f>j?@--X3S%dDqnV@R$?<2e+*$W!Ra21u=Mtx4EkG zG#<_}El_UCn}WcbT46oqa{Le$1GfhZ1#w%D&`7zE`)Ll+D8Oi#8u{_;zA|s$=}LkG z?&*V6%|sNU>_@9)-PYg8fKspO7+|qt&JjXuzRc_sk#_tYb9Lv1z-L&#AAfGHFu}*4 z(2~r^C?7MnwYAax>e!6s zyelT&{FcH_(PAYEKI**uJ$d-Oi)YUD*22NME^yKDqZ?ib&jX)_BC!Bf)%&Xxq6u#` zDkYZ^i6~a;G!VDwpap2x^tLz4l@QY_nl7f0vkQS?A!X51ok19))bdg!AW0yMYw*eE ztVjdbpAm_1S%zhR0}nsiNZ5}16wG;BDN4aXFYGInKQ*0M72Q^eV-eES(iq2Nokn5<*))683B4HMHQK_Yc*^#x7V0pEIoC1mC}Iyx4ufH zBEkNjIgkPZ5RWumi>bL0D>U;C7_bpMGsSK0UyqJHW#NKV2xumIuLe^NYqiPMwLM|6 zNSruoPBcEf=|X7fpxSaI@oI4F@b42v9xv2R<}sJlWz2AGYL-!Ty}M*cs{R(!$^hB? zhoP

kC9{__Ja6zr6=LV4k33S7q2UjG(7#CV-is%)aU?>emX>qXAe=DG|q*2fLYh zp^aAgh4HkyASG>ANb92{!~1ZB$ah*YbG!UVjl+)HwMzg70aF!HMTo;NUMZb9##NzX z7BZYztmx75V*xBMja8VtU5_up#^Rp$X4XcXy7@!i9SHD*tcw`tt5X1-+T9X_6=qq; z)SAgV>OD0>eau`Yx+LL|qNV*s>3V_`=^{kfu>YgU5}PxmorL0vKCVvMQXXMLf;nb% zs2+lF40GYYe2RJu@Xe~i+R6)*&mRV@xCce)es(UDOzUj(*jRYD#JTG?f2ZXSY54by zCtn)6NcMHCj<7YE%^IqREO(bSdVG1>ywM;FMz^AQ1iwpvv5Yi!2a&KT1krRRpEF;<`0TrmFI=Zmh|6>4O2NyPc}#%JWW_5K%;7l5FuG8tV0Tah>+ znb-YJk3OuMz@7x#-r1w7Zoctt1WsAXTF+r9oVM7=6#rtDk@uEp$o(9* zVUu6m`Qkk)XBT(g*%poEyHDp=sepb9%N_x+g))zWIU#uqHeh`Y!~zXwAs?jT!6^2Z zeN!>Exf$@WdRDT!FAjV;2bG_H*H_x^_+8?2YtBWXPHfHCZ9}InX3W(7iN%TU9 zGU~s0Mgm46+KPWu>@4$h+e3mwnhmV~5yAzakg6rMUrK9l!M~d~(IL%Sk8_(ybEH~o z^iuO76k|;?X}?hb;;KfX)03@8N^v+wJ><8kNlNU1+5g6mfgA_|fL6POSdAvW3Cl)J z`6tY+LgAq78APkNYoLG`ot#z_1D9!;S1t6 z#ET>8Go=k+l^b<+1It3GD$L}DK#D1Xe!X@=kSMAP0`z|09tA$QN|~aF4N+7RU$xpq zUH*Pe!$ywW$7B18IXOi_{TDdbD3hedqAEkuTN?3odAqTu@a&795S3K|?MvLraIDXu z!}nK(dbWfY$ZA2vjcQElTtR>hd8kzlOl3f{4F9di6w(^LkPnG5IaiQwpGW*5LDqpC ztQm`%BL;6w&FP0gTjWG!XOxaYCu)C>j0Tkv4_Z`*v4`U4C6nO?P(u)J8cv%yBda4k zOL7y5k8j#8k~PAY{cH!`%0zBNhVn2=v0ZYhWpR84bp4^f^IX2Tfsv}r{_UF#Mt1Tb z{Imw><#S4F`OAlN-i*%QKaF+GSJ)ZHHha7rfy|gk8*gpoWkEZ>WS{hbax5w3rH4O| zYyc2Ivl7q!>TL1X-UUWquEo&cQGpHu^xhUsMs7vc(2NMW9K^FkhcPrxR6Tv8D}kHJ z?ON9rf7I@IYJM%b@DJEDX!q9$K*jnZIe8f9^y3=X&qzS^I$}0qFiC|c7ze_wLL4GP zuaVFWx)u)H*hm+rG`=ha0QtfLd52u_M*0L|Z!{I;Pu2uJ>+e4O6r zb8oPY@02WN5C-MD*jWV2YPOlHFP&+MSgN^~6TznVnhtFI0+LB&{L7)U*MOM?mBk$~ z$&cTb#^?&sy~e9HD-ZX{>%UJUhPy~Apy`?#$sb&GMb#%mQ{ zv_4@RlAx>iN`Yd8>p$^-X>9h^PsVQnlSq$k#oZ6^T)M5xK-}3^wR2E_YcT|GcH*CN zV(p@yyzeWGlfW-`KlQny@J{=NX^D9)j}gxDjteN0e#X+|-?;HlzMIG-k_jS`HjiJ> zxeD}rZ0G93pXf&(GqK2*c630*AcFnHs%uU!1Z_}6b}Xp+vZ4JfC<2|NFd(qN=Q5~u z3Mjcdje#U|g39E3iRl6H%pVPv{z-5Wd1z8rx^yj*f_B5D(f*v{-Xx#w1{=0o zD1qK{74@lYX`KAwpj(fVHUI2uTQby(ok*vSeI?2+QWLWm++VO9v*&FP6c}b66JUs< zi^y(jQm=XetKEdI_*;*T1z7lT*;xpU*B8l^$MUzKI-oz~Yi14f@HJ>k+X(>d*;P^s ze4ti-CL^gaaY=n>QofB8{~lHX+MPZz@`QvzlS+3M z3KpN;-hE^R6*;lYje`jc$jr1!Kfu=mzML!K1%`{JRMqeTq2~>ABJ<(g3((lmr*7b> z`$@VWQjHZrEW;E5k!@5K5b*uF51mwY%a{@d&ki1Tk}0M z6*=7I`&zoVLU_K69>aootOjnlEc&yLi-W(+-PyVK)e&GNHj4Oq+6i#4ZrqHs$N7uH z7T&+tfC#vCD@+Ea?UW;2KzH3RJ?GLo%~0#J`$-eViV3<-Y29Ziv6Pqn4ql?^sWTht zcyprskC;T2!rC{tGChidrMK^{z2vp^-N6uD5*>CG^x6>f;?&H$dus4tp7L8aF2IZI zUDxUZRa-|VPV>dU!_%G(;~Up*)S`uXTTG#z$>a0sWQd=@$q;RS2-#>)EYX7OHAX7X zZ;er=mI_|AXIHOAlKV=RKvk;OQLFOPInjaoRxjdBgWJ8H$&|L;ZP&~*7am#9P2QUvY1MHX^u1gpkG z;S^#S=7hYeeuG`^<7pel+4<<*xd%T_hW2*Cn~uD}^l#zW;`1)-irn;L>j5c{<*t61 zkWS3?8X|)>)!6W{76X$tOO}??=+RkKdA>aa-4EVG?kpO<+NwV-R27613(NBivyCzq z>(1JZrHZ-PShp=6-f8A*yIvTeDOjBx*6B+WJFEoO-Khlt+SKvDe>Yv7bBPjB{*$Wz z8$rX4*NmB=rG*XrkEutu!w(^=bH|XaVfhPY>ESJGW`ovl*~{JUN!nk;M&Toy{afqU z6IM7Tz>-nkBB+;y>3XBz4~2OUM4diPNwxF2`HD-=8{C8ew8HnpG@Bntp{rUoepl9y z5~2B_wx_uCBo(YT)+%E!$*=pXW+Y#%ZiEhodl=4D{!b+xcJ^i+PsH^tk1>`!)IINW zP@wYwX&ugZrO)j(-I?NLt7eQs=s6+%J${=cm2!%*j5+hzxG}N!fehqA{t)39&~pGi z%o}qj-Frnf+tfdzNtH~D7#C7lgL4lvd{fF}6jrYwx^x!+tK)rYs_cSb)F58ye-fo_ zd4z63=`z@J0(VP~5URsNc+77`Uj6BfQs#PuHWcMO4Ds&FD|PjyBP6Wrp9$^TpY{Qf zTVayBw(n43C%f1UPG<14d}o-vwl?_CXwjNTBk0TlJcE4DQuJWNaUY}ext zl+|MtO*Uw!m?5z-3~?ah1m5!$&&thFnZEFK6qx%7ytM(`+v$$jZozQBHiRhDYZWdO zrOy*M?ca8!T82vxPU|X)F~BcaZLXKQ1qF$PGTt0-$%XIn@bOxVnlBQUd_IL(#916; znIU^3y3rV;HSY{A^JjFpnEz{?<%qBa<_Gm_MVLef^?QbVhTHcuCs@aB5AdzFcfoqH z@@uE;vFdY=s}QbffwOp!Wn!u|o;}J?jqZ`biF&jkpbdg)9J6Jf1r-Ot9=M;zz ziQau1ne?*9aG9gK@D?*6#BHgxGVw=t|Q)EeHk7SpD_z-4H zLqKi9RD@?ZCRd9{yyo}<#%tv6S3ll+?qdbU2V!!2A$RYBeq)2ynTPZOY=FItbFI?} zf)(Wadg11-%(b+bh_$@J?OfNZ^W3J(=c*FE^`?b(N>I!o6{aywh(NEs*C6a-bKRaH z$2lFRS)^-8zq+kDdjcMw`4hO-I(*yXZwtpmbL^jVKHj+XnGe2rCu=Va?!rk)*3tP2 z-e}2@Ek+tY$@SRzpZyxm?MSxN<7c6XK5g$!317+BvGO*<#15iDqtz{uq;JW1yMBma zy-Exzo=HqZ*RWXn>cdC{Au}6Ng<)BxY8(;etv|ab>*v5GRjIHSzh@pK468VG*sXrlD10n=zdJfuhn1U%smjTDv#$f z>qDCv^Ta5>PtY*DMGU)f$!&C5R;#D!Elp>cn}OG00E`!-^}J+fF6TC|LD7WgsMF;yJ(fkT zQHD@NJqvkYoY)eJBTE$>BuBAl(g903E8Oi9eU5EHal;A_sKr|96CTG`tv0w>sST|1 z6fY2iJJvpD8^vYxTw!>!*ac(p1m2?9T5z>2m$zKsADF63cB4@;$JY~^_Sh-rfkjZ% zA71AVh%huodpLbDf{PrN<&oBzJw%u(?xb zP$=IWRDRiC_qzu4d;G`C&r`Wso| zy_F}TkH%(&E*E(!1)IJM2ktX!Bl`>H%2UPzcK7dj@@4-W8Yh8Y(W4 zamZvuf8q{$-z3^a#NE|)Tz=1vOECARx;?v$1i1qeXdP`7fAu?#8Aqyp;y5z+Hj>a!T+( zODa44yWWbgkSbZbkF{pK)!?t>D);07MilHO9Lpu0 zglXz$rrztibSL}Xdiz)*=3uCBHb&q)taV+~cBy0iCttdYbPG{<@bJpDa^ntg>dwEO z$Nm@K7DUXu>Y*5agjOTf(TNCyS;SDUNJs=vFDJOlCRKiU{Pa&^tID~wIu#%Ot(>MK zTG@!U$wFJ%k-59?_!u8n18;1x1ae3E)BaYd*?fv^%6@iZ1^q8?Q(^9{0zboE<;HKX zf8*K&rv#b%bRrgbWB~%k+vYcrR+mVvTy6CZjJvz zL7WIMwFmvr=6?DoQ+)Po2^A$D9tiS;Q@E?hu*emXd=-{oB?&yG6fdGC&Nwee{PSD8-sg)(!qO58*|j6 zf4_!$5GH6}o8ELS?8^ea7D1*KWIiS6THrshfGv5dCZB0Q$Vv7_2*H@wENGFNz)y`? z6TL{crO@#;^Y*HNe~Qh&ZqiSEZuUMo4i0~mQ?h;AX6mvO`E8)zzN`&6;l+UVpM@S_ z8h(wqM7`Q3C}yM{>nx!9fDYgOPP3bb){fKKqEy0p=VRr(y*%qqb>j|K-9lEfya{v4ZfZ1eOrZLX2>#l^MNhT z$P;fJ91aJNyJ26{(>w|YpWtqK=&UqK-{a=3UJF~&6P}_vS4!g1GGSm46tF`31&oKr z8Eq^iIUt>%;}(%9Zt7%8P|zJ5wH|*apt^g5QBfe3ak6a9EIP7sg&WZF-#){|yD1h$ z_iGLT(mXTgQ)py5L=a=a7!Y$)U zF_wG6EKSA|-*I$1_NFM#U@(DS`{xo1*Evao%$pXS5BsNyi<;b4B)0212ckf^^3GOD zolyfVC;b!?Kn=`45}LtC-!LeFT(9O>6W3+c&nH`c_D8IhzBVdUzUh~SX6E!;R@u8$qRb*%>XnHs zk#eR$hzP>`^Ug#b(DBf_r*`16d_Ct9A&gWDR~9Yd76px_9(ZFE_Owt2ZIKg!H1x+O zVhY$OG!NS>&eH-#lbl~@#`1^c8Cg(Zu4S@MFncJjuUgo~tcq)C;muQ1I>db`+O}cA zNFABHs!&;~#* zW5&lxz#oe5=2u62*a_~B0A@7lb*XZkcWBPdhWtE#vZ2@~X#BDfZ^R+JB z<7$U5&qdY)w@0AL$O#hGAh2i^N1q}NF_Lha_}vkX(Aj4GkW$p|%QWRToG4~vJ>t5I zaTh$2&5Z3auuM}>2LF3K@ymG}dMnG3>5&mux}yVXySRr+$BY2(`|M@CExug)OP}yh zR8=XV9dQ*kz@EnT_1~qS>Ae+@Lt}ja^9u|j`!M; zklVgOzQc%ja4oPsjNwI)xd>6boPtjY#BVD7b$)adVU-jJx?}}K#=rm$lc-0Hq*Q{g zBLB;D|CXNKauZWB!F?J3wrR+1)g}3xTo&B>bP3>*l4%G>^X^=`4E_-RXdyxkd6>wC zp}qH9VG@PBd}nr{XIf)kEq5mYl+j1sJr2F_+yN3vO_?XTd@(4;R5n#weOl zXA49`94;2n4Ledp=nggo%CqI`g@w(Ot`4QmopEHiqrXd4PN+>awEgX@Iq)XA$&Hp? zBU)6UtI?2Ql6V1BUH_z??Wku!GoFWYUO%Vy*~_)MT`e)ElNSe5w4R5=pi&4sI{iM(kJoN&r-!_R)?a80&*Nr51BuKQHK zr6JJj15LA2vEt;3?q!dG-+GHk-VEQ2jbwXcqF2wOgaS|0Vwg^bS6*~6&&*D<?bD?zKs z@r`~FpI_fv`l|Ce?hR|!%!Z(Pn171rOwc^Yn)zprZG#z+b_jvaH-@>%S5j^JK=E=8ovGZKRG#jEyn8V>6#3sC5?MDhf>(1 z#rq>moeUuw-%!QyB$n-#Q*%$?<$;A!%zv9|K-{?W*tm&NDDIv}-KoIE={`z7Xex3c zQJI9drBSSTrC%Ffha2-vNVn_TD$LQz&N|X-A@`1${B~R^!A+LoF8M&1$5nR4Os%jxH}cv zLuz_PI=0W0X~(XnJysmx5AYO-E?tYxcZy@N-}RK?LJX|KISa{_Mk41kG!whKrp}(l z-}2=}OP|}%=-2kx_l&u4b&_fQF0jk|(SF@*m7+giX8d#ObsR&Oq4oZegn6jg9WwKW z*NWInVQb6gfliI)Oa9lDddofp+!QuR+Nq%^*N{wr9GsZ8zFGy~{@%(=>V_W6Ry9j) z66q$ zPp*vyeQb=q;5yS1VMu_a328GqL}>kDx8O%q4{1Cmyh()oj$#bWY+L@H)JX1Kka#Sb z?->13)_qLf@r(6Nx))k9_q{?dO?5Abn4FT|cNNRM-((jTr%K{Txv#m^ZFgmg3)bK+ zB`E}WeS1)x^NTLlv` z0xD9((AMjpjKaKjbB;IuE#R>zO`bM9-7gY0_cx))PnzdLvAd|eCBm>#aYM19^%s*Q zXB02XOe)8Q8S|=6jnL&7-lwJ{|EkaZe%xmiQcTAYWI<(pz{&zRts4&cGHY%KjMXCZKi<523OBypa1Zrq2P9{` z;!dPDk3wKbSr)cvvh+W=CCxQ{7YWSg9^A6COdTmd&kisUPnU6zeTx!V0H+Lecizbi zgK_mEAy`QxEI-oCA1Yod7tjN)b5u+1XASN}5IFN-b{|9HRsp}<_2dnU4?3CN{%YN| zGj6osOo|HG8!7z%PD5$6{${N8Erz(unL8}zS06;n9$;O2T2LFqU`W&!tICTwy zS9ole}E>fsY6Y}nxqZX=)0PwnaJWi6>gS4qJK@;84 z`xlm2h?wuQkh^SDM5Y{npc`SKtQ{P5!cNjnIr z_T;iNqR4KQ%&0Wz{nE9U5J9ol%gm(&9mIs0uM*Qrx+nSoAM_HV$sA4jc?#wK8|h^p zKZ@*7cGs=HTK~-K{>8V)12H$>c--T(#=3l~By-BCNo{16EOG3L=C&`JV%xf`$U40G zM2!zSTp3S0?((78T|3I%N_`t9$ML`ZpJ}^$cS5g1fp$3jSLAWdrfC^4lRaFhMj$8k z1U+{}jh0+@jt5O7W&lCQZjg<|Cwc+wU)J>K87=$I#{$B#GgpT`)g_D2oN|wo#?joH z=(X$$_WOADnY!4iKN_4L4grHJcscLH{a+8SvBU!sKtJRi`R08bbfMwl#u`saSQM>3 z=6cL|+F_iB%tXKW;{dQQl^=z|Cn+Wp z3-h>r(V#CICH@e-J^m$T$s&flJAH@}1_5brv^>%dd{lV;zJAKz z9D6Ba$?rJ#x7dXY$E6LZ>J^9>I%D~Dkvf11stM8r9y(u~|9Sjr?%ALy^QGbE;A^4LY!~_Nc=!_vPB5J^!o?q%m7$R!i9+n1(=qh%>y~^wH0uSc~ z?;arU4SGRGva=(-U}F3OD4v=fYM6&$@Ih7PNPkM*M4!a-Ti=^b4H{4)fNd#X(__~m z&nMzp3{bdZYgC>L9seGY(08~YkvA(H^hx6CaF>ZL$**Lcy!uu=%wXEf?o>uP^LP)% zU^vaFL6M8$wNEp)t3r?~^@k`u%1s>Md(=UB$68d_Fz>^H{U?k49bd+Wd6&jNCV1=< zqm(q8#b)ep5u5mo(3-`#lB5kBVI=avPD=JE!zvg;GXv7i-%44F9cF69bp z<(0}aHEd|tGiLd`0mlgyl5rlhoh}-XDS|b+teEDB=^?^XNo~BkWCLUgc;$iCy|~s1 zTNqDbd{+7BSh-OO$a3`YIdCpnFXEV6`^V?x(I}r$YZ#??-5i~Q6-5m4C71#nL?2V! z5dH4Ql3(&}<6mBLrvA`}L`XwcYKv-ifICP_?;4LGQ-C%6d=Xn5A&~3THYjUH%25JM zydTE}8l4}Jw;`#F%Yv*Rh_Juzy;9`Rn`e@^S4wOeI|*>_G6y%JY;`l^+yjz`vcgra8$B! zbw1RXu7Tyhvv3p+`gL-1WRT>PWLErWS@?q}IlDCIfJ9lD;~CuHy5@6d_~cwWVV4j_ zW&av$ULP2@9MP~LmS_lYX<;+pjA_#M%kS9P5wlz=sdV**fjVZP_KuBD&=h>q&yu@* zn*Q|GKxwx!K*${sXdVFKuVeB4Hf*A%T1DROQV5L1NA@>P>jLP^O*p$GRnM9i1?@~QoD?k>1{&Kxp%)>W7^9WfFnFh+6k6%Wa2S0Gfo_lLE zy1F=~aDsI!+%bEn2;lEFK>Rve>j1i*%3|)8wrOHbPg#)G^U0PKaC{r}96Eq~vm^K1 zrE@XdY@EN1Kv{aosl*aeQ@o2br!4cUO5Nxc}7hkiPEs|yUZh;JC zujE2LccK=QVkVJX7|Y-zc7*mjZo66_9nwJp$GYZ|Vj{Mn-Y7I&9R>=T9fYjiItJ+i z5k=#Kf7~0VOCHPvVT;G?`a#`TaJyH*WH7O^BK&l=LIU9IMla3>yb8&I*MhKPJlVIW z0t0$|Uq^?>%FS0f)A-W~xUj53 z+}4n(U`{tybM4}cVDSpqfj5A)yvl2`nM>?OOyhl2cCj04h;HHza! zIw*iNunI#Vti&*;;?`ksEGLcA-WA3_Cr$U4G(s+2>5XfcHnZcP!?dt~vh%a0R89>q z51Tpq0NL7Vd^g+c>|U{d!U)Wc{ns1+uvKEh-J5i7WMbu#>24bEO}nr{`e<7X6|btx z;LCpfcN$6B#(~mBOiTp>LFzDV)8n(&t>ruj8nqTgs;V6h>zVeqFBA`x0>O^ho5)He zr2!GZbf%(hJBH}YPCN^=eHhu?g6cWCVrp&k5W{oqer9hoEs5EtK*^Uhq5U};iYV7P_Q!l^h>v~xuP3r5D!pmc+!+Ma=*x`>jbG7?Mlf>lG9rxmtJ7{AZtV#YBm z>=^ktlv}_cy(-gXg8DLzE=FG0`$m`S2#7fdQ+vvON-J=!%jz>IE`M_OQ4zmb@`*d_ zxF#huwU#7-CsL(oAFTB2;SKQ7(r!2;_H=m(l>@R> zGqis4D#Oo7{5XMazPZj395DN?DCB`rfGi0Kx`w=Ocu-M)As}4_Z*Mhhdm<3%&UY&k zeXq`^M4~7l@)taapDvbC-zxZ(F0ywwSGMT$>7v~$33mrbl&$8;?krDUbvd2}&gdbL zLJuZuQBr*rEV4=3N#~BTgX>9qq^>;Pz9;U&lcH!k-AAAL29M^mn$uXWBo_Vwate4} zDjiJ{f`(c|xC$6p>j>Lhy*e^v)#6JYQYOe=uEvFf$cS9u)f6de<2hq1F%?>+1@u^T z=~zf_+%CgQ5z|pX-L;PX49gsjRtkhC_k&8=Dw(+NQMCw#35W8 zFw>th{clxcFG6>mWXxI0i5q|mX|MxV=|EQFg=7#5baJ)DMSz9vL|+z91GnyoLh`!h)q(iLsPs8)aOl4FSo3tsg=uddp*z zRcfx*`$rwfgK5&LDM}s19J?7hKC87wBc&%%#cGpd%%%;7YvI7PiE4RVd8;!?B}Y_u z5{;aSJXV*6Owkd0V+-OC5%Fn@!=jp?3*zQ{F&@l3=|qiCj0xjVy+qA1{(-K-;N%n` zesJ_zw&zzzAWJ+hEcv2LL^|D7V&=AbnCln%5Of0qPP$qHtzDx^$PeD6UdM4bk zEAt-Hx8vp1an1D#DVC4Qy%Y?498m4`A*mWwKoq}j zL~iwg0w$`6&;V}c^$zoUjW%mXVf;e##sal$kPB6d=+`hY3vxZ8!)#ezSn*B+PYN+8hJOBfdbm5*l|p z?%mZ@m3>c@L{pL>(zF&K60b^TZmUC34bbg`CkTXW(^W<~XO14-oLb4P)vv!62mR}+mpkBqG z9F%uG2BWGs*W+wcC`#GON*(W{Hd(iXEsiB9PuC~)Br8U}rFr|C-mGd*QHOjosv{|)J|*?>$NXhD1s6KmT>i` z6k`JEo*9RDS(}HZwr_pt7;2ll{z}^syd3>9G8ua+lD3+-bOkgMEj}_l_me$PON$z6 zH&3)8iZ2)y>dUN!Q~u$FEU~EAb9=JP~Y^i5%Tk z3Dy&~_Ws1nOPhAzsS|2CMrZD#_+;+|AHAOhT z9|N_9UQZ&2s98F-kVxv#wQ;)8RlaCiA-B$O&)iwbM|f{-?iGm#b@J9eKq!ELsY)|J z+IZ*$hv7e$-uGp_aENzSZ$+P5#jtbJ8}+FR7yaZ}9)k+uz(|PZ>8=-P+gfSFWe1(! zJURXrgbbqTEidicQUT$&6kiLQY4`XlFwj%N3K*EZsA`eY_Nb?U-(Co5S2(~Y?S|Js z!V>^Ys^66a=319c-^)B`QkVh|DSSpr_#0@5CA!Tn*(8oy4c;J15O9u=DcE)UbS!NO zH0xo8{duA!&YhBZt&c$T1Ue^=h&uF@LL-@;dgQ;a#DWJSE{$!G<(9fviVKNw9M46; z3A2`gE-r)@hv{lJxZ;+PMwb_Bb`lEDJiV-ElF(P!qu`4X*`mk;v1lh`D4&Kg?Zi*U zt+9#2%&3h&hoZ$J*j_oOipqLhFkpL;)JW8Hv>I#@;%A3uBk)r@R$iq7sgA|BM=J#s+`co1Dpv>G2 zQLs+m|KMOndp~K2=QkwDZm>BISUh-gwKo+dO-}8w=na9L5qak45Onc3C#W(u#wGTr z+qPyBV@%Zp3|LyR5AbviBWt~=)guXf`y0jMsd2YOys3KCH=;pOb-UBUKMQgqNpDy0 zZ90_#8Qcw=^yJ=y?Hr;<9O1JzC3o-`>G5Cd}+By+ZH7aj5#Zwgd#tqPxY0Hj6bdYNEJ6c#M`k`5@>@1jEf=AgN?f= z#I;vgxG*O45|xg$mVz!8!L_|jA{Mre4s$H$+(9d*g zC@fKaQiiRr%vUx=7Ek{8DE(wp@Upbv0H8DnktI^wA*e}nn%7BEPZav4FJ#RUIKg_H zWIghokv&Yrl48L(DHX3XP&TCOUU1n4`p2qpU^N>M(k5cus^TMyz&<>j9j)-5LJ-6g z(vXx8E=yULW78x@ePU@Bf)5`E8LyTyIJX3qlWd9}#~*PiXL8ALrHI|^^&oJzPMnquA%&JJQHYDvgER8Bb!t;oj%*z%|x5Jx({dUbIF zeq3QlgFw4%5RX1>As!$9qVC$723_DCc_v>a7= zRCFkET|&0gjbZLt7(wdn;U#*=!rL}%@2XP3OcZg`MLz2t$D9Mkztu1I!WbJ}-}98F z{tvtxCH;LI=N)jj@Qs6RTD8jAEOSSN9Ma^nSm>AEJ<}XHzR#v z8W`&&Phr)Gw8#vgj4f!M=!l^{+be=DIiVV&FXCZrKmdO;txJ)>XmEgXok$L^Q+B!9LiL&XLt!9`A%mGRo*teQ~oUPNT0r`BksArKL`a z!f`3QCd3*Znsq7WruPBYBUSS9!I#&{zb1yIGG*71Gs5X?V~Jy`-%z&WeVK9(Zjv?{ z@5>K&n@F-oY?1W)!%4FB-4?+%cMLgD zgKaImJ+^zhx)X6R!1X){VHT84IT{2J@$w%`5T2O}PESx@%>b~Y)k@mJ@5i8UHT=>~8IRtkH`C8JQFB|Yfzhyy;)?p;C3i;r67OU*#*0S*s!U_-D zey&hSAT zbi|Dn8$-j8x74=0( zh+*LJbk355YR)m!Fb+|ql#Ob|p++i?ffazDaXo_6Yh-WAt6{S{ytD6y9_&t=EiKcP zL`9j)Ky0w$useW8bF*|MVqi>neJL1Jg4Ru(&6>(`TZTdH4lny=KWKJ#J;k}Y4MC25 zCDp7WUeiZqRS0_?TaAMzy|A0DgAe2GF^1{#g_fn2El!!R^1e&9%2cUU=DKn#l|J-h zDqzrM+#XxFIM2`PQ^N&ml{5x(SuwIxy*Iwnb{7zj-RoGU1`y2Rc$(+`5=NkBG+*;o znRE( z_>_-_oTB6#@7t6Pg%o>f@F}{L+mpyUY2sl64w-zoxh0gNxRR$*7zzB>jo()ywyURR zM+k~@)e;&GC>itAFR0DVkD-U~!ydI@M8kX8#ldSzeC|;^t56srnkD|CE$*@lxm)CA zTb<(^g=pTuW&FlOc#p>jkR8p9PH?*EK6Lk6mREL6$1%=9fH3L?yio#bMaCXmLL2gn z`E%=Dbx2#d(HNZ?EtFUyf=Z#)IKtn48p(cUlaJR`EjSm36eGav4d#`pO=you z{*DF`BF!cGBagH}yHO+}BnB>^5ut`oVb6naKOF)51z=`8paA%Ji4M&pCf=K^QQT}1 z0kh=d4a&ucZe_`?@0HtZR#Nj!`7+>vy%V}1&U|J-EzLb7^>zyZC#woV;9EfH+7d!Y1m`T6cK+y@t`VQh`}|sTf=yXTP`?=`2}1!!l1a1l=ov_ zy5wT1xoK(8KapB~ANmd625Zab+o_sAk1fz#);(?R%dy_zeZ{~ODhV`A0`OybvDmMj?TMF zST?g|<0WuLtvI_)55D)*1q|lI>0myRmgwpAA&*(-tT-y72MVVLAe*ax`D0E2JEMn* z#*)gAUlZ&3C^n=O>UEnjI(4dT4pm=%4W?@?9zfQG!DFD|^5z961Ajaz=YWA!Gd}jq zf41AUbL>qRLNQ5d3Fl>PdQo`;8?f7CkKt3GoEqV!ghy@aQ&HEg2wPkY1vkswhxsgV znIEo-aFO0)b{O3gx#;6sAOn1#ozcHKtQZOyo zLMTD@_-}p4&Y5*p^t$&v|4Yc{cjKUZqR|J2L}jVsciuvs8tf`S?dZAy|7}Tb6TZ;` zvjH@};)t93h7IJGU9@{Es}%>$Zo*H)(F1ZphDa|G}PW52D%MaF^ z&P|16S%os6e0g`^T-SQ!Lxb!yT~oU4*P6@$<1`X)RmuGji{iJ5GcDRD(2UhWYkYEHP? zWZ~>eM1PoDyfrzg=)z)`J(Jqc9;0%(pxw~iiom3O1XwUxZyY$eB*8ZvQ`!DhNQo$~bMpq@Q-o~2V6#~6-XHlj>O;xZ?4HdPD2``avY zIPz6y&b6xA@Q_5$FBrOktWSK@z8jo`w=Bb|CS+yqYm0CB%z#o0?<>sA8w=i9?*BLP zrN9kaQxo9M!o+v8@udsDg7Ota*uXIIq8tGE&OQ&~(h%!Py~oOs^OcrLp$w3uCkxON zW>lp@5p_36XWZ#=njJ~Zl&z)AkK^VCocIqK%JgDmN0i)ec8*-R)B}=w4)QNMV*g*R z2SSeJaFhGaN%@yMU(A zYN^nOO}*MjSIFW3yx;&+hwELLHkyDSDFPZcZiFxl*QQua^MYg0kQm7imsibwiHcIn z_JhZ=N3HfZ#eHX(P8&rNcla*Pp7w;={Dy{CdwBTzKN7LEzkUhP&M9VCLy$YiXndUu zgpDY^V$@~m5xh)_7zDcp5z|%W-Y5j6{rEnwJ4@Rw3~6u=Ur-a+tN$D`VuO%Hp!OWN zC?8!s{?obiR#0d+RVCVN83f~?bGHTWJtN9vl0{8-$-KblmzP@8#Yylew3fC_coLpKR#8tW z{kN5nl688=_W9HuYyG?*M0Us^zvZD%5Cq1}5Pm=b4= zOVO$fis}v_U14Z=r;b7dMGYu#<$4+v1l1K z5NhRILg#P2vL`K$D&FKmRNVP=|E?c4t?^K36x_Z7m>nj_u9K?4s9aPT31pXdDOURmxN0Uze zw$dOYf7%A6aBG&68^y2B;w6ew3THUJ5GNv5OJ&eJSta!OW2Q})arbq&L6FXARYKs( z&e~4GWuKMuy65fsR*IEFHQ-Oa2f(J#>utu0yKX$4@|G6*M{ZXjC&4u5HSXbG_0gOR&wA? z;EX4I;ZJ4gmhl4x4AmAjz?xvh_UjId9I;~67~Z{u`=Q92GMMFjo);z{W(-w0o6=}F zYHa@h4rVtIuSn&A7qZn@XaWF) z_0BAmX+0K#bow3aegdRHMbL|j^Uw~I;?f+!#Iahy7a@%ejY05Ba>}{(63&b0r+Pe6 zYo>~#dqKYvFmmZKO1gG9W4$(EX?UlD^5a2sDx{nS`KqN`$nAe>x1r;X3{=)6!@8!V ze!fXJ{|pBL@ip_UmWLrM)|=3Gt2V|&@?$_YW1hqw7CG#e((H^l&p@wp9~U+ z8Tu`@YbFVC>m6WJ%#T%RH$y|gQ0qWK3E!FkXv|bM5cU1y7V(Y!lc3XZ-(Q^uo0?Iz?cvK7pMd!-9DZUeDU8cZ_mHoviNpkqV)6WzlnH~a z^dbLqRR|P0x_lkSWH@w19=F^*p%@*f|K(V> zT(72`U_xu((!goFWO9aoMsD^aFA^~{`dy+yRua51v4iTal&eN5Xc$_r6X1dp9D6QF z0BwJ|%X=Xxy_9XDwN~Ka5-Watyuy4XuAH8d%>$Q zAK#P-!wY5Etr!6%*&3$NZhu}T5;ewqu?7d$fiSZ|RwThFPJOH~4v&e@KtVpEfR}#T2sAh`Ib6M_IwEdjl zb-na7TKw6BA!W*l5j63^WT(w zDhkh}_*qTfU1qPDk)w+$*G*WEs{`T(k8B{rIK4x>4Za*Wtd5JV%lxvVPaUQZeQ=f= z5Xj7@>=CHqi#pKSC>T7Hh)--1CbH$B6?8HPK??zj2G(RaNL8_d+Z)yW3KEL7v3>(S z+WdBuJS|mdo)_1`o>d%l1DLB@zj5v$u7nmhD$9)Nr+fuiLpjGoCRqjf~#9ayp zA;RzW@FaafGnRfYrGTgPdWO} zs(vqo_rVV%ht!&*50f>@BpCm)B54loH;N3#9(r%9IwiiMWci7*v(S}o#gOHb*O5^80QEk|LURrTHas*oLDm>u zDHK+=U1X&L6% z@+^vARI?~M-Ejic9na(I?*0y9{H3X9up-#tFX^oC26Yys;O0XUy2PRFbH=O?9L5P@wSN!k7LE!Z|b?V7NfUS$EO7_TT4OAs9 z?SOz)EIJ^~q2%6XcaG)7PsRH(RP*S^bdxAFAjWhTSbP@GGWMg+d*o>zG8j6j4|Pd4 zw)H9p7jL-rVscfN?3x;^T6bdUYqs-5%V-?y9(jQ4@?|T>lN@O2M1ANEaln}ahE&cj z9u-Z)l+uog$7zuU8(8qNYUs;Hpp=pV7Hjo6U!Y|xiQpAU0_HMVc5L<{f~L{#qb6Yr zH!Nzt6t-@BX|-B!K@+M3TWudxcG^4sXL!PvCLUAf?E`2Z6&_&j?se+N;KavhV%l29 zf6bSQ250>31S}lbx|GloIj+I(;QjY?yzm?TTyG2m4Ix3YP@C-R3$pxHP2isJ5DuL* z@~1EY*3SGy8;E#({5Zd@L&shxaxD@KyQ*u|DIO<1n9XQyjH=udhsE=N{P}3My+39|KMlz!sNPvq^=0f zcEj=HTSRj`^b6fQsPKx4h7n#DBv889Wo=wQvZZI*2mU6%W*&!UY#%#k-pDEWgpK+) z#!(fzRP%cBTBk&y-Tg!69df!H5Yq_d+YdCypI@^Mc?q|hIAxza>HuM}L>$6iQ=Bx> zYBC=fGBVbnd2HK5DO;qSKNhINy$X|d0wf%)_>H)y(~OwL6Ai@YqSJCI^OSf3?qmw% zh2O@Qqu?3qJ0)r}52p*nkXm0net~J5VuqWJ-lHUG2QYEPrHHUkX?L!ktxc zt8}IX!}%j+ovbHIcv95QhS;=%`pyXsO02b_kFkOi7f%mgEmg0B)-O9zQ^lX0>?*T{ zU`6F~!+~2>@x)Y$y~_oZq|wQnB>4ObHpk9i+L)uFC=rJ*pR{m-;&7pe#HJ*)UQv?0 z;u`53|Iy@V&Q%}UHA(lAt1_4~-6FSM}#(ro{`u<m-Vo2q1x#UXYpu|OltINx`721AyJs!&TC0x0wu!Dw?js{ym*qQM>a>#Ps@1ED zvmQhR`r=a7Z-}^#1vsK0aCq)ui{Z@()xEofigxAR8yMadnV_tD6P)%p`?D(t(HR*f z9~Jf|^KRVi&8Vu8_~*i!|AgAvC>0*zucd2*0})nQ)EU}IYE{$rLYB)eeQNHptwx>2 z0{H>Y52^xIFZ;;)0e-sfznr0G)b%Wpb8n>u600YV~ALto0w0LoPFvsr_-~2kQ|0K}U@Ff)6<9Bu}xka&?{#|@J?-VwHq4c&CA%JLl&YDMVTX&6 zUT*~uaF5c7ehQh^++TYXsBB!C9VLs}MAxP2%e_Nk>-VWqfVf!yB#BVWfB!h<+poLb zuRCZEI_kRDlcwz7(1D!-sH;@#V?e7Y#j3hjMIt5qfS=mfv$8(n`?%7}d=j9mA*P37 zcaTwq2r6l}iXh7)+6OTbrA+bMeYN{<^ag8-2`E*WSWhwxBcC@k~ zMGarFi5G=7G3=i53M+&j;xv0`{p3um?IEKMs)c(!)|$I2E>`oWhq0h|Q|3hZnI#V! z8#a7Ode*bpgmX`9X>Ea8pAeXB*6&d$6*A6f4HTtHHu7)|M@bfAC*P_|K%gOL1Td!8 z*4ze@euBY_xQYGFj+tprq{71}Ji|dKvE0M@u;w(&>>H@d##!H9YBFs=jISJStW0_% z2WpkKHH>CVeUj#nG|ha2G_r<^&+QcfdllAKe&dt%M*V@t_tD%5N^**nHRaYH1I_A& zC63}5Q|GR)$mWPLD#fjTd8gS}PVvDu7{S(>u_Qq|Pn~x`llJiU4=Mh|OuE2h?yV}3 zL_mcHruf>uCK&gc+~?Cky`Mx7j_g$-;;pJ`ZesJ~qwcRRnw42UGIa1TQk_?4yU1B2 z)S;X`Mp?B${Z2v7y1b(}K{R*sWh23Oul=*)qg0Kdv!D^b`ATxj%3%Tt)ayl)$hnpU%};^J8C_L|QtDcZXrNGrc(qsfmN zWBG60?$f5#B0?8ykgffngF0|0*cUa>9Ps`M&h|3#-)z}z8N6mf@1-21t^TVT&Sirq ze^6Vhci>wj@aZ3@r^OAZ4z(WE7}nInN(ttHTItz& zqi2<1=}ggt(WX?kg5DTL7s7evaPl@laNhSQzH6{AX!IqD8}$TQq<-AO!0W(OmfEe$ zlD!Kg|2uDr@Wx~lBapC&xjS!6%Kw+Dx5y|l#zLR+vTE7@05ylP$aTU3#kmwC4f70~ z+>T?Al0el+mCEJfNGeZX!kUyF$Mfs|0vWP{Z&8)(e^!EEgkg4Z<1dBstiv_5I1tn( zv2Zc^s4oK-3zC+ys{Pd#q2FeqYff}eX}mYBIl>!nlU?8ly#lY%G`mzGBo8b7dE$=& z)+-_QfkNATUKW`GvhDz=BSc~v3RVw~Cf^F`*taJqCQ%l-f~}KDEnJe^-)ve2Xh?ci zkv86EXbz&|9+R~V8(ic14j*BIJXGaGyKN9X|MjhhJ3$ZtBSQsge@c(TO?tF#Uk{xa z$+8A0>p=Q6_*c4Pkr(TJsx!`FfEeFodzDhW`0mzpIOVzi|YG&CY5|N%!U>r%onZ0^e znr%0nWQ25TI})cG-Y@uqtjBq+yVB_MbETgXGLJkdMf6}`6o+(;+-g7CdK*)G(ctww zxt1BHn*2@lUrM{CH%pV&L@nqCpEkL zK6#{*XpFK~WM(O91ElV3-jd<3f2#9Gp`q(_$%w6+o0jn}Bnu$+@xBtk>h{~8V(6(6 zk;-4Q*Z+!agvWr%_g9`~Tk6D=#5ZP!Q-VvlldK~Pm?UDc?Xd8f)=Y}Z`g3m(=LfSI--At)^BDn`{46Lu+=}V5 z{giQJ@D#xYT?tchv_{5%co7L^ddD{pw|3n4b@0~i@N$VG<{tc&s*qbbe=FEpvWpn) zxP+b}Hs(&+{Fz7;49s;3R=MfB{Jxj?TYERS>~23!`+WB>pW)d zBioizeS}QYd49Fwo_q3r14{+k(Z=HU)_|P;Xf3Z!zQ$rSqC)IcB$gbl2^9Q z!#3HlvWW-IDHEOrf#X7q_=a1XuKNDzH7`WM+4QZp(5tkkq)Jp4w(W4@T)yNB;G?9h zbwbmRZWp&-%nCClqyo&W0j+mPJ%A%!i6H<-K)Ao0e>?ftkVe1Ute)l&dPIvvmyw}8 z`*46`jqp0M^UNuDKm$zyN$@lIfu;~yVfXcFdv zy?l1hY$3cOg}LhCBv$Dl;k$#a4|KSDfY`)%P*+luTRYJZlq6wZ8U_=tj3O>~H^%0W3PAjOa#er! zwPe{3rb{rHL86u^42{mW1jCqwnE(s)LM=aRWlhr!+NGo9Di(l4(#5lCXpyZj4jdWP zIywgE`6E=?! z65lOxMDgDB&8KW@TSxqzJvAZcUYjJ8jSN-ZkoH(<CtM!}G|E^cf$b6dnv~7-_x3U(VO|OG zHfG>GeloY2v;rGeTh_0z_@~3JyR@zbbZ9Bm$aTL#gxo{qMMhgij2NuLcEkJp=scJ!qo`GvfQH1s0S8C zs$DhMeXoG6f{h?b9_qMrye-KaXu~OS^T9+T`RX#2HfED`RG$$&4b6sC1#^wYVPc2E zCn|~s@&~(LWz_>)_3=-qCDfWAJFVa%{4duJA~9?Iy&Lv9+vtM;G#koGsZQ6|hb$>9 zum<-TrC4~Y##H_pg@=vh6i4%|eOeb{2II6*=~jB9a$s+>uPvf|h-&@eg1WJ&Oo?(f zC0&F(=VFXMI)rRSuUI-QNkgE?g52olljxh>8H8b9`fCx}{wT4>_h+IjoM&grLNtpR zWex44FZM(d#SC>v$CW}i_9`LowjP*?ks4rROA@4uaa z+6ml`2QbM<(d7#XJj#>yT)|X(sJuI90w_mZIN{i~ll*-25cT?B$@72rKY{4 zIkUs=ex`hAyzB7`y*S4j^fJ#y!&vE{$u+M?Gf>?9Ix+Y1lUGwB6lMK4n!@Gh5CLmm zqyl{G()JW6slJy+K1<2RPchKY0@qtv77%$N(Wf7~qBQo-p=^y2lOa(z-JUcS z5qB>!FvMElYr&JKD-9^bg=bG@m6@v@2gFS~&Fg{kn23*fPBMzsa_Rv1PDwnHHzzlX zR5Z2P3bd=5?njhV5jSqAvcqo=kOugTH~V|WGQ@0NOLvo@{fkaOWXz3m$IO3XABcsM`!4CC|?RN-PtAqd=IQc+|3P3;rQ#zjz0EY0Adv&ci zn&Fmo8ov0uUQr&eTnFH{73fDn`lgekF*N zqb(wdi1U~m-@_HqqgU*9b)lY4Xj@%MwUayqdRI#1!}ib>IsT3k0UhLtD0@9knk&Od zqHPmB6M~PGPzHl+i`Zl6z|+=eAV-la2$Gac^hc{Ho1+ zX+l{BRcWwDZg^-iTew8u!W`=`s^n3!`*Z7fXKaf2Ol z6d)&Frb#-I8(4r%#Fi~yixw^bgkKUl5afALnDMi1m74+1SDmPoo-M9>Tjsia=Hfi| zA#&{I(|6|Cc<0~0BcCPFTHbm~hWbQC6K!1B5VGhZ6WywOJ z6jh084Wh<~t4R=bqdVTXa9}u{0IR<4p6^_GlW0zkSzcvEr!boeC)E|r1xwN)cmR*z zR&=>jkFI@s9f}oi0-Ycmka?1@+p;W%!+6|3Q{=CYA-Btz?1 zM0s3ntQ)n=bQgWMmtqsgI>XDaP@yTij>dljQsUkcGZX#4-1!3Mb7BBKfVUQ)#0n6f z{l^}xd*ZoE9W8+5YnH`@;pO&1Qa)BR(3|jY=)b~ef7`TNMFKBUveU_7&$85hG6xrq zVqClW*F|_e_^P|Aw7kGBD5rTR#No?8hY5UHza1Uc+f@xhv?)Q?I_#%Nv%|zXCg)$& zA`wxtBB1!AGnsx$qbW~MU}9itPxX27?_~Be5gu3sM;EeRIHhi!>+K#;+d>qiVE9_CU7Um%Tfo-J7 zs`exq3Gv3XlbQeU))0C!ZuVW83K!~E6W9$dGQ6m`L43Ci8+g`y zT0c;6#rw>+h%BOOI|zBI6d)mXe|2`a{mzmlnX=$TMEq{ypM2V=O0ytoQx~SLPW1OP368loau6x$ap1Vi zSD|(bF|B@QzF6tW7!ghu|g2lhO-~IFySh& zdTA^bFk2k_q6`ERtB|QT1`O^cd0rPVoNt)faGfi+(7d=%3>AUONpGqRUA8N#fyIi6 z*Jo`M(42yPRA5&o-r4{h%Dfq8q<~&{Gq^%n!4jJ94iwUNMd7!2hhs0H5VxLfEV2hw zZvkVk`8!yNg;%?B)e=kE4ArLTC3K0?ab`HEY8+`dFsfo7d?K)tOoDC|S&1SXwYx-s zRma%^lkF#>8PLHTZ+b2;Z+6HRRLDVo?4}L<$R0f!Au`SMZAkDUJO@ewvhz_T(R_8{ zT~+-Qs3>x!{39@0rl0diwY>L}Pe7p?ODdB#1fbxz>0Qb90)@^R#b!i`5!E*9a6tQH zl@CDSdXgsP*P%i>+l7Bfk4gp|3EE2JaI8jG7`AR;>4E(;8R}zXG*-0f*X&dCR=lzc z_I12uzKEjdEII8`$#r(aQAuD~1y!P!Dkb=xfCh9n^`{H$LVN%Q zTpy{R9c;~fCk>LccNBM>HYT`o0yMe~P4Ja&D8~%)8 z4rR(!Cv$9|$1GZHWWEsR$yJY85J?SYx?WZc{BXGRwOmPjQU&@D6%|JRuDHz}a`lr` zr971EE0FI$1Z%r^w@0>Vz-WC&FKy@g$9=D@6*1ms0~tE)h5#e0AP;kSS*Msb&X*4y zQ5yFM^eia4)=ufBV^4Fm%KrgEzVxQBAFFL3;6~QLh)Kx_IT6G1mf@chE?O54S81Eb zG}Pg(lE`^5NODDk*trW8Dpr^0mcJ}{l|#WUyXC^$o*^HN!Zr$%ORc|zske*U(=><* z=d6!T=!@3kni*!R(yTD^80;pu;0mAot$DD3JzQX-%^5^DZ2?Mx2**1!X^Q5&QS)Qe z^WwSS1ALW&Y)CV`4v18zn`tHo+fhoh)4Gh4!x`wH>q)+Yg$)aWZW4&h8Y@Zid98an zdBC(^CE3a!mJ6?<_-4v?K~BK{8GUVhl4d!p0Z#B4ex|4-ZcxLjj3*E2YHVU+xL!*` z`z8=f?a_8;01J`uh4pHfxF8%V)GjvOoOKq3X$aDya174f`@7}xX{@FXdU)gOUFn%k zNy@`gWR-(Ak6l5A#s9qPkjIkBah%0cLb6e77PkN4u=I3e*9oSUXVM%w+N9!s9Irk* zq5F0@%3?(vEwr!Q+dQ>dx3{Tj4fiu2tVh8bXZBCHw$qDF%qMBcvl1~)dIGxu&h4m}ZcH6gU zw@GPx*IFgMXLZ1+AT8>U;{qIW&|veDJ!!y^$V#Z zE2LL)hv}7GWehzJwCqQbFmRD+&!wc-;>}JqLv=8tG9Ms})MudS;SNfXj+H$!r*x6> z=5sC{FQhdnn8G$YtAZmmF)9?UWe3>L6y76KwQIg^yUj;q!K*gvgrcexV7y+Yh6n}M z%UvBLgN%7oq6h`l_elEcjj88QJ5!e2%r(!8oe7Q*_c!D^bwf`&@dngq5)x6vJq;P@ zxFbiHN_Oj0!&ovg>PoLXIc@^xqO#_qmSGzizlJil$ppmv;e3YG>?DYEH9bj;V;48# zA;TKtwPBN3l7QKpNC40ziKjIsOtvuQSQ3E!kH@a|d2`&Yg-yu06P|abQIZa&GWk`9 zLJ)mwE{mD?q@4oSjZ(?JgPnhNTXRvcz#Y3x7^qRW)BukM>Nc2ou-B)995z09!v-@C z5m$U?(C+0!-2gG7oS5Z<@VV-GA6?xI*#{oVG`((JE16_|S$(IKJq%-Y3Y_eQ_MPGt zaMTr5KDy;);mRhfQ(zTnvr>-Bdb@dXbg9tgM9d+d3-sXWJ76@{pXCU2$^2yO1FYW( zOQ=R>H$ovEftlB!LB-i#5^ckGQu^NomwgGkPK4M*0_NK4Q=!>7_D*lXXd8tU9tyNW_X~~wHQe}ry9LjR+4KU_$n46E zNoe>aIxbDpe^3_yQ@%&b7Qgro3@#W$^>mDL#)|@%HXR!DHc39a&?B4c-P%Ai~ zgKH>#ZR$}FrfCLSu>Ei(NRY^X`<`J)Uk*dJ|Awf!y5~fbqMH@a)IG|IJ-eCYVvKZ> zi_{lmLYs5?E+q$lKTW5}Lnx(Jl;x%XPG4@^b7m8t5|pQQsUI^3p~$TZKoh~hvptF1 zj^e#iYl-w5{6Xy=>dRN_E&YgeS)6sh;c)fV%-jS9QDxM!od~5y2i5U%MQm-=2^1cA z7Xt4a@AVx#VOzO3Yd5`I)WiA!T8wu}EBVn!=tZa%^1r2XeG^zV8aVf~7Bf;sF4c=R z>E5BkAOqq8J*9H|-Xt_%Gz=cc{*#mtWIU>8c(s^v1hl83XE`!5LxJdR%Ih(gg~>b; z{;X894>l2No84u5Uvt6<4>i8rko-+lXxk}mQEbiE9`TSlD;W{|+~3hFJju78t!n3K zwFa2l=qDr&hNDhl^63x-nq%eq&kZ;ye`^a%$6!MVV%*r`>Un#ps>rU{{7Kgr41OC( zZ$R*K32*W#uHA@^8mK-^*M7Hb>SEj)i)!ytZ0;L!I7oZEM7`UF$m52~fS6Zs7zMId zE&6bn-k>?$zV*o8WK+VTWU~G|bLgLoLW2MuYK#%qUvW^&1RG#1 z$-;T9pIWtIY4FD1bhkw~wzr%T0?SdS;jBL`oC-SEGF}2O+@$z=S`>LwRjP~)5ie$X zg(v+dIc~LlWXT6w4eHkH$2iG)AVTJh{5d!rPU|{>~wH4M5ioWjlY3Imh;rp7JJBNd*6~vr&mKxwp zN3CYB-`v(H$m8r1MH$&V0aWyfP0PN~o!Qajo+aP?y-{fKf;tkDOO0&FLw_gT z*s`xN_c(rNb4>bj1S?$AWqP)EO}TS=0XIq9{v^@JNw|^g#HS4YxI%t;@#OOeujctO2JOvi%%%&c9K6$lIBk5*pIT8Cru1H}m$H z>Ov&S@#{-fbH^fP=~=IMl9-j#F(RZ8>5s1YI2}BhOyM8mSd&S{!L|sqJ}j0jUa<%3 zRV|@C1(Y20YHew5HwVg})Nx^2hDciVim`@pz8X3g(VFY^>W+hwp2_=1L~@0mm7@M| z(RfEq*xLRELMJW3nq`Q^T9u0Se;~Q{qo@weq5K3RLM~I405UJ~t>Uu&=*cqc46skA z3HlU?Flr-b+LjS7w{*u4XNk*0lZb+d+@3)l<)m9PVai-b3RbGovSAkp4S73BqFLyJzW; zLy~g^Ls-PhOLU3i^U&0HnSfYeq;$@Y>IA#HhsIyXBp72-i^Nw?`V(kHu*=n5i$#3- z8TK=Uq;QB;=;azA4t2=WFAoAbn333v0XPC6&u4v#X=>jRG9&zTgP)1ePS1!a?n)b! z7=_d9TclN2uaGvBPq)_Cg@@l|X76$S_%06?n}Y4|WeFjTbsx--2$&rEjg0tN;|=P% zVhVnQ-ZH2rbeE<@FW|7qi@D}v*wy|$?C>G$MzM^oVats9P#){lEYtGRd9dkGLN~5~@tFVy-N-q|j4L`YAthKx+ohY?KtN0-28a(8c)8zlF=!D^-K?c0Zvc7&e=~r}> z1Z>C#kg=Qf1g@_2X$ZSmPkS#Si!fYfwygZ64Lk!U0qI3w)x@tRI z__31=lRb9MQsoWh5^{Z7Y)+AS7}%PUJ#DHrHq&I4#F`rbjpJZ=n%v+wUQcJsoyq2P z`l!P6{wF}Xial|%8z#qKfdGG_{;$RmxU?Z7*`%@2#Yo=c6Ki|04*Fa4$HC;$vP~iG zg9Ul*oNVrXG0)%anm&dwAN~miDPpcB$AjjmCh#KD)u@q$z|;?VDztAvlm|*wd%sMu zQB#FII?F^_V(_=f#^BkK3S7KWn$#D%Kg3nQS!QnpuWL}NC$NgETbTHKFg`eHu>vO} z5}2O64gm4vcTdKKqKh?O9$%Tz|=}`azC^#HU-9m(MpwzojbRCB%u+ zr8SCB`n>xX8xwT_X%@JU>A1waNZ1gtASsxLlc6l@K{1Q)f=aYN8$8nlek%N|U|Xun zb22K5>Q*>#7ld4>R`V!W?NBA0!G$+7kg*Z&8@%{COqN;e(r$?+0bDN?~cV`9QsX=1dsrAEjF@%Q7K9`yrQ zBII)T!nya+I_Iw3d!2}P+c9i)IV%Xdsx?>0Xmb~_0h~~Rx2yWnUwlP-*-aFBMi{zG zlSCC9+$yAU$DQ{(dq*Vk=8AO#v-y^oAu9 zwWW`p8L&l~m$YhbCB+`K@UgWFtJdBIclV`dopwPT<8kq*UhRp?+JdW^O?&6VL{gx? zS_rNU|5+Y|$hzG&u~kf0;K#9%qNg%!fgvdVCcumhPm_e6R(vgnAY7;}YnmI+F@u|7 zCd@sSTY8t`^}Xw`%+(E<><>6C zXjKjEtEmdTf#-}``8B+Aq&AG!K~X2O&xo}pl80jnB^-~pEfnlxxjWo~lG*q%%s`he z0w)xYnvKlekZ}@9i5ELo73q6ZGlDhKni1y*29{cjbncN9dF{OA7|XFv#rS~I^O>?x zWEHxx$VQrzRWnISRW@Xl9(W+*lz)#nhAIuQcR_Yzfz19(JG#m;tx2Y8w#?jIPpThS z(}?J@ARPrJutPk6Hm@y`hsgWC_+sPA{I{{~{jAM219@PSq=q0n3ZTbQ425NYw17<2 zOZU)X`|`UE?~vc`1ruyPlI{h7X?j{We;#oJnW_M*5S(hU+%SsITaiKII(<8~=zOgG z`fJC2dg*?dyx}T@@1z3w%l;Z?Lp$pJjp@JW zQNyMTS_3zqCCYvNeT&iX^gjB&U5My-Y_h%eBTbp|o7KZ{wdJ+&vq7;u1p}N2 z#bdD(PAtKd%X?nEaO4Qys8dT;nc&);1xOE&p4G7-g61>*tCcZ}P8$y%u|9FWp5?LV z7S?dJg$)}o@aG6%%)!HDA@<;izpv+2h3CsMUTvcYq_r_}0owBIWV9XtWVl^QK6jLz z<75p~$?jlCgx9_s4&{$@BQ$#aMx1sHkmyoamQuJDy$ZKB4_q@semu-g4a?=8>p*Y_aT&YE zbFxs=_P#cC-2a)ifAc3s|JBcMZufxSX2kS-OgHG2$%WlHYLj1%)CDP{1@OAnVG>&F zCEr(6mNGkhF7sk(QubFRT9WAct%{wvX=CF^&8PF5+4wUAIqYn1yc`fC{Hj{GC7QI% z4y+G=ML6~p3%qG`?NTD_hE5)o?Y)he{N2qLZj@F(OxiG5MY-SeudTl32HR`%o?om& zr$c6ocrs?>cqX52$pZ#`^%@4#iB3zqmnp;Y-WKi zC5JxUiZsx|>=X8Rqwl+}ZRc$~QXx$7JR-O-u+nXbegX-o6#P+PsVwyA8K zUHB=)+ICRAT31waovk@Ng~yd#|BVMj8tYW#s(;SpQpD--;kw)HK@c*S2m0F@9nG6!3B=bDGLH}RYweK;<_Q5{W{c791k`Oc^#zm1$kbz9 zz9L8V3imN>%ekxg2dl2(%rLA1tkgi5ubAOYM@&-Y~kV4|M+BctXn$&B_EaiChpf zVKk3Zy44*eWe+rO{#Swhn@wJ~888f54R|KBL``hMnwcQ9_)2+WajnCxJX&a}xt_ca zM_qf-%Hm&+l5zJ+PAcrdF(;Dv?1Ch}TRrBK*U`Kj?(Xj?#yyx{HRs0Y+LM=18u=*1 z22h75qjaYGWP&(|a#n4Z+3p6|ecww?p(K$vD*cKacoBh))8DEN={3GrTinIWibn40T zSW{T;>C)8`!a2nLLAGyA>nN}8#X~%|%k$0MH`9HxS7H-@{ek7ecg9Z(1u=)z=k#?B zP+SN-*Dl7~z@Y0gG{|R2v|(Y4E4{Kb7htWy`D#ypDHhyI1A`izIs2n`Wd#X;l6K0& z8wDBgSuR|?ONT|u#MQuU_?#9U+K;{-bDl1t%L{T>a-Qg3(AdNRGWPEP*PE<@F*VT7 z*U)r}ZujP+MY254ib!mGFU0wKp=$R%X}Lqn-3@wb?}H$X0+5A%cSHC|Ujr!mhWYo!Lz-jj)R#giJ~H=NgL>SA z^GIwH!_3Q<6Z808a{~vInF1c{1tD)d+-<7}y$?vq7JQ5A&?mxyn%$NYV-^UMUp>)n z;gqBKqC51EW%!g899rk_lb2SZ!e-%aRL~I}x8Y$N8DmIdGFjA=unfV&fpG{IB*Ym| zNF*UW%5-bUU9D?fGWx)E=h5gnMK!XZ=&fPdlf7c&2fzDTHH0reJ}W=UJAl!av38$n^U=HymUv@Y{XkTMix*~jvve)rEO`d;u5C{i5psg9u5_z zu;z$%ge(10KX?zq5 zTUx~m4NPcMc$|>ie3`l&zJ-x*Il~aMQFPk7y((cQ;5VJUu6LmsdymsC?~N0!Z_oO7i+c!jD)}iZ* z>JE`HK#%CTm`eCt`7Vert4~{BP-FZEI*9fOS`FzNj41_9SF6vJ5M`}*GxPWI^^Ctt#=*vZk zgCtF4PQHB)aj4FpdEM{ZF(Tn-tJ5*q_y@xCc&vim+ny9XhX7&0dN(8FxACNy?Hhu0 zX5N@H`^^BRwtwM!Ly4jyq=&9EJ(D`M34*BR<=BaXr*h(6-VfV7ghBRf=lf-jRb#*k$X)JRk5>SZZb1`37X;}h1|DF zo)0GB*CRfSk~X!`?k^!;Z7yp<`aG@=r}Mm!DhBcd4~85=>@eZZ6w9hIdZ@zs_BdR7 z&trzVQE^jaEZtt7TJh9k)MmDe&0B@FFIBeTtmd@9I`kE1Yc;{AM8B~;U2lP0`9-q- zP2E{w!}8q`pMpDkuh=`V;*kzcxDT$8LKK>RwPz596TVH{2t)Ri-<&9rJAlKtMQe$aNia`2623wt4v>5OGGU7(IK zbvb5~bVB zjpbw-VhC+-HVTF<$%wr4GD+tq=#HD|izBt&vA`1*v5sem$%OWr&Y_Chj#So(oRxdg zlFJPsm1cNE5ET<3?BGK?ROZJ(%C;9edD6C){SR)ct+iIXI$+^*j6_g#BN%oS-*-KB zkzsK#Y*}Du&+lp<)J(xaaNc~mmv_>)Czenf1c$7%Q764JzTWH@$M(TgTh3Ot$?W zt;;b*U7E~GQX+Gs*2D2{Qgnu>irP$4=&{}-M|ZHkl^urKmXBAb8bTS6O{Y;mdFYk( zb*;F`N)N#0E#WXI6i>{Or~NnSI&*7}z5mFoSc@t-NL@{xg9MnmdK)tf`7zq~NAvk6 zDflY$FX#}fp8~tj63tS{l^sh*H_U3Wkf;Vdj=a+Z5fGPYPr8kVtO^#euu@KC?32R3 z3!5iM^o{0!MpfN{j~f^;<0Q_p0=#7V0GzRl?lY+%q_`Y>ykr8kJScsk3b)z7&8$8o??c%1O$^;m51dn za7jYc$zb!eALaBU2mkoAYfs#KW`QHo2Z|gq$_@TJ!L4g)Z$1%H=W!q6i-%|dZmN8p z6gdx8fqgbbP>nVLhvZRcJO73w1kk=ibe&^^`wT$cMjrc%F7U*vf@(CZC2tVFzo@B4 z;l@Q6P8#m-OjU4_5B=EOFGTwwHek9jp`<{fu%V_ibK0Bh&Y3J3e9E#w)bpb;)twlK z>Vq6ikAQ+QiR4a(%`tdXhGm!ZNva3gDP903?+DWIw(=<>^4u zCsW;V<98*5PRc0q48At&@7a!GXv`CkiK6Bds}B1i7v4^ha%7rA3v6R2u6#dzFj{FC z)#cxZ@q!`5W=dkqQ@XLJ|8;H78H~P_%XrP>KBkZD) z+$H>^gv!6K{D~(T@@QMK%NxC@GX%8%Aj`z=hKOh#Fvf2kD~wB-jzfNG>>;G z;K$u6#9b$aaiY&PcMP2nj|sjXP-v0lDuo$-!66!6y}PT2dHJ`c2(mF@C}UODb+0qc zvGjk8YUyWtqyy=z*VVmKLotAnIQnNM^!4@IZ3U0ffpjL02wmp~!()c=DiZr_AX@&3 zV_1UL*9$TIXYB^-vXD9ZeSmrosj@7`cw4UK4Z!IfXM(||z+dvvp60Y`;BV8AXaFTt zAq!mmf$72n@~Zm1c$y!$@xt{D*e8Krqny88^FIU4 z%}}xYDL)ruhR&(6vCjU0MUOTUSy|OgHOgIDUjXnq73;%ydSKdP8AUAwk$ zr1maNYQ;hWFqu&gbEm&K0YqEiRo_>E7sP5GEFw3sL#O$lzw;fSm@_e!rHetIC5*q@ zwb&C6KcNieTgtSKB3R%37WfCx^X-?$r1u7#(5aTsm&IHFwysUsyn0BX733A1%cdve zL<2yk!bV-r`(2<5W$AX6#7Nndn>{qO6MO$Mk*837a)d$?{}Hm&a#YL85EREivi{$V z&E45x_>16xV;c{!Ic!$N(ff!F17f3*_vReB}`avm~fJ&io*rTGpff3ZJg4}_Aa(&Zb_w_VG5g7 zkv9g;0@~q>H^%RPS~5qodrl^#X7dZ_jgWpMMolWOLvVu37YH=Z0mE*P-AioeEnt8l zXR(Utn6z$V1!QlvSZFW%g1rs=a3b?x_Z7LyQDAw(H>gX4^feu*+ zTL(RDy(nUiIx0*cp0|c%bdQ@YZ|uVi)s4m(|6ku}w!Wz@cUh5<#`UtL^wr~;h)c=s z_X;sB{%Kkr5XgX_xm?xYB9Kg+UUkc+R*XE5okq!=c{Dep*3{{rV6Yh-e8}0rJ3JPA zJvx!+y9q=1!h$s4_%8|osq2T;hBKg6QNbuA$f6;za*DvV?TNL(PD9Haz;M9aCC8y* zIC;?>cYQ+k6RZL$7X87@yQoh}U+gH}C-zJ9zL0-4u)=44r}@{S7bLLr~hX;=mUyq_`Z**3&Aq%$AYk zv25-7DXbXzF*<{~O^@fCUMf>?s#tj)hkyy_p1>*B-4o+W*JGgl=dAuCUL;(+F5P;p-QVxsbg~f@66qBJ`ht>x9Gy$XT`~FRZ_BBfl zMGdm_tg14JEGXDPM_7QnDZ`@JCxPtcJ+rZ)8INL~>!a#s`(opYI#f3<#~M>D*_Z2% z56ak|kuDJT^d?NF%^=K6@Q+%_gQ?lURK~PoW=OWqF&xDied8T5 zm^-r!xIX0NIO#U)DV{JrM4=l}U7kM>8DC8~R5Ef5=P@A38L$f*WC6Adfb<#C=yp{$ zWKQ)N-~z8cn`FZ|5roinmNf8*>{M|l%z{bOw}$+G#g7=osNz1z_BX>)Q9e;& zGhSv&r`}8DlFGl%(sSpM4IP*2+z{qcNk7zb35kv53`VF$QFm67v#b=68i3~Ckn=Y= zB_{T==>?cQ5U0;R|NdreF7gyd+BJ(Kux|KJySt>iY}@F3Qgm$Y0Fkzy*ed``1`tC_G65X@A^C+s!jZnXkIYT%ik#x4m{5xWXFw!rBQILFP$dtg7s z={tOIpAfF9kpz1phTTA}h@=P~AOVlj>p+%`bHO5-e8aJXcMNir#0Vt;2e>@9ZlJxmxSW&GyzVk<2NVFnw`mY= zELke}h!+8zG?m#RDNwDSzP45rIVtsSVZVGZP1`DbpR)1TvO6x1DCxp6XAr!X8rVTz zv5T{%i0~!F03@%tFG~e(ijs=O;Yupmm?;L0qpM2ObrYQ*9CxWj`^byN_@>mhK>&{Qyzg}zgGy^9dbdq*Kh!c6_1Dl|lOWNIO z^YWyRv+LOgXVA_QEj4?u_D#9G?{8k^GI7SyLlW{Fl=gRL<>J3UDhzN+5PPy6m(oH? z<<(Ux1;%^EN*2y{R6BgmF5~ffO7hy?rTIGhXXz{)(qR?&RGu#R-UC3I4O$vs)Kaj` zi1l7WiJjpVTq(*5N`k8<#Lh7+N_?r#0yWT|%P=zgo-~jDx`whEmMF!tp3}3(tE#pQ z`I+GsstMg>rV{CFyRG&-yy_kGi;9qN<`a1#U(Epa%vUI&qMz+Xage`6*{xkDp84KBIOB+J6>F#mjyh-BW@i71cs7o`!U=e5O zAbuQ^0O#E<&e;`{PaVcHkz8}V2ImTjtE(Fs?uDhK5*3@WiVzOs;0>DS9CvJkb)s3aAiGGWfpr5wN@YTZT3w){WR;Ns99-p>DdCC_@eU5dVoN*i%7oy^l7;#ltEX|`(RZm;vMc7aguDG z%X@-Ru9c`pA8CM?Tap89ME-2ZR%ZyQb<7%bk#?>JV@w61)HUv7yn!^Ot4tZ61KR)4 zF8NSbh$6GK2KKDesEAA3dx6&@Q3V|H9ET4UUH#I$iwLOp7lst79zd{t^=aZze1%^$~Cw0mGAu5gB&aeWvxc{L@W|^zBf-IX2xh zm8X}M3&()*ctww6ds*OxyTa;F+Rmx!i`$SX|EAMUF&Cd%UV(T5tb1aM1seb?BN}wJ z6}b#?>8bx83C#bVQ~P8Tt)ufD%pYx-YWH4mW$VqD-tE$QSPMjgQvszmv${)U2?h;c zsMuKBpxAL=v*9G9nN#9LZ%PguxDh@A(I*GbGQ6&+Rk`>8bIux>eJD(ZR#PhSiK;UK z?xS-QHhxq)Ge@8p=6>;LQVD>!s+Oj-MUySm?wT8^dD3RthRxv*r9TyARY%c_r$Hy% z&e(<%>1F9mKNpd;x{k_&xl1(J4}SFVf-6a#8r=C*qRs##CZ%GvV8T+r4fS5uX`KW!)i4lme-euBqnZ9iS2r76ngkWu}6rX>VtnhJNim!hE zLINwT*%)b?$PuRR#j){kObf@(w!o6ecJ9AtPBn2_=tmL1 ziRcpVp?@*8t%Cpg{8)MWkV}T&V=m0&-dw;~jrx=eJ35;?dit7s$BRa*;oP`YpN>I6 zmh=UMFrnVO#+^6Pq;xTle9^)bWaRb}_7?XywYcq{fQYg?ABkL`6OkQC(Xtbqx{@fcM3qi3U>*UQ%J?1Mf`{;-+7LyMgZ5==r<2wE!Qj^VcFaiwU(cR>?x{`b(T~n9iFm42^ zdSt)8y-jX@R@PSK0kS*5T*_4HYz-)Jjyo{(?0+(G-IGxF;DuC|hidg`GpbWjL)ITB zQvhWO!yTRI?JL~db!jAQM2R7-*(5#kjCN=r`40ss+D0WRS(51%bP$HJFi}%2H?7}9 zeI?X%C~EAwAL*G%?9?`?Jl@Nzg?jlWGTMkR+F{`=V=IobdX}ion6!|TnaFDP{J{Gp zSdUdq#e-Uz8N5F5QZC|fP7uL>@d7l5;D(^jD-o|xRtAEVg-^XK7*3V6mn*RO?;fr{aDIVKyn& zLP#_HZE0gcI;R+)f$MAXvJZztKYPKR|6{)HF3zay37S3kAWt{ecu)v+oh$({%&O(* z@ct*X6eYn7&~%yuO`uvJ#2jX@wC+|jH^MYts{f9%5O2LiQTFL|f9X7c+De<<)%a%q zgkoZwJ1xkAI}d3UM^S6+G9OOG%+WyMHF|pHQ1Vbp8r2U~Bq=dWx6HX&*MI{Sja*mj zd7g|>8G`{kb3P!Mdx(V;h8|JNh7!T=J)+KNm@4z?Qf78@b=BFIRnsA)r%KKdwkpB!y#ixjRG<$(7h=QA0F21B>(_hmTO>Z%_4gXk|8G=31oqvgWXckfXWT zyx6NKNKVA?+g-KW!1A%h&2o`##NUxgPt1iw@~0lOIV;hSvgrwi?o zM#>ZF7>v*vi(`w{bR%4mcRd9H7Z`!puR)3DqkmSB?yg(`dQd|}iYpVlbC4&i3;w>E z!;nq<%Gq(o!SCvzTb#v&e0flc+~&oDNx0G*-qrJREk!oA+b+8|i)=0DYq_Eb&@dZZ zv4*==dzSKJ8_3V#A95jzc9fMGRmfn{$Gf*_gRnW&79Z|-u8?(HS4XwAaxIQCkVqHN z2${IM9!{DaVhF*Ay{Ra54usuq6n+j?cH8LtpfCfIoSSXFkA0}9qIt})rs3gwnEwk7 zSLxByd!^BdT1p~#4TSr>=Pv;)WDFwl%gg1+J5e&ep$Ei>TD(B`MdOD?Ae6HSKr{q= zu>H#T>x)_B-f~yFZt2cQcjqDd^&atSYwm@VxdLtaW**?ziQ6+sd=0J4YgcurGV4F$ zje7xrJAcH9M1EBKIxgThr%u;9(qXw058~@B*4e$_h)^YOAOdt>jr5lC4(1q-H`|PF z-}QT-8uE=?@(@7QXEZjwFaiHoMTr%3`wX1m_|*8HJ9_XqC(Z_4DGqTOeX0obWyv~L zn`>Cr@<$sN^*&7|X=9bt;vu}dtqp}BN%y9Iz_eXO8;_N>Y3Prk_KI@Lvt-hG%xO0q z8iYiVoy@5UU+|X$q5j%VRdpH)S3~@TbtNPk6=8=*gmMlg%?mbiG5;|9@`i8gx`n*@ z^#gBMA_H|gr5G~?37rJceJYTsduaUCbzUhSKkkS)_pQ;$R)b5)#1*895a8U4(gk-x zo>xaDBv+8-SQHCu&#(3aziLSu7t-IgVI**cc;xLtiK__9@{+pM7oh%gkl!FV9z+*NXy=g z1~@_a$GPn_QIeS(Jp9NFgC_&Lh?w=G*X$=Ig)#=O&Q@a*SI_3zZUMNK;bauM&rde> zG6tav1%eFnyah=;Jj9#>Qu}TjJtF(uy zD<64q%@5AF^O&Is&Oo-F#qpo}9gp)^?+>rsDL`_Hf@oTIFCcRq+AdgN&>5%^N+#sB zIn14CajE}KUwO-qBXp#^NrXI`7W7g^D_hNM^@pAhOy5{Dn;ZJ|5mcwwfOlZluGZuC zV)7GEw5FMhk3UTIc60~L!||a*ss{_bNL37PyWk-9#k%EHuOQ=V7MBsR)+wHmp3hSD z-33pi2hOGzf7DpnL_HVrh>XQ*VBK3#h^(fr2vTPT zcwQrkjpW8oE(|rRll51-JW+R|Xu{04?9#Y3Lu)P}{c^+S@dnBBXYd%fo6)NNh1HdLW@zS*?E%;MKf@ z?mbWMRGTB{>ri2Mq(jvxv8wI9f-AKVeJXa5IbIU5klW5I0k8z8xDFOdPwb$Kj#w{( zu8%F6g;31Ae74j2Oo|~ESVl*8uZO<2KeLA{tf6-f?n-#)+`q4JF(Q(_<2FKGf-EU3 zedoMx>X`Rrq0Tu0BjOm++OC*pi?Djk(In{%I_a(w6f^Sc0x`U=XK`Q+*xI3Z2^=)O z(OmD~7_Y47F<5~}P~om2$~bvsv0A&ST~K5SoL?>_PH?0M3bMDZ4q4!niqnGAT}9tn zaM#F0JLdV+g7oG0ZN1kjMXss%t-vut!HoiP4v5Vq`(Y2TDYhX>7`f<4lf;wQh+avS z4XV3lwocRFw15?Y$gX4c_W*-5zKL&>E&|JQ^=l%d>;QJHkbkd1;j!}5abg-#qTdx|GNO8!JokL>ZTwG@=xVI zrFmrkP&0fsbvnQFF24CKhyV;&XTt9C@Y%cA{-Y>@c~m)zgGqC9pA_EA5GKROhk7o& zZO#Av0q7j#Ftn&?VZcaWW11y+!&RJpPtxn;Q$9rn01MP=qn>)}P0rPmTP&u$ zg|Fg-M)8)oOkP8^KH>&${KW$b9YHrbfSE&Mcy8q8HXJZon(%h!sv54A<3*Jt06lda>FKQC>IWw3sgnNE8iB5 z=m$Izlw|X5LVwMQXquS}hTwEC7=nGV)C=90DA6Q^YW+&uSqVH_fk10r`(qS%o|kKA z_IGv!F2ZBuSRc}nLbD*Q`G^^*&`C0&6#x+-10&Lxv&6lwo1jOj?k(c(u1;KATBUpv9BENOs@m35D zriVd_$&>m{Aq%2-p3RAF19@#Wr7g_D4lgP!(`{#IeIH=AbR9PsLm@-MZXDv}qa&D9 zf_iBIWg{1m3tnE@O_VW>-fR-iR^98}2jZJVMd>wytbQG5;Io7JJy=YU7fHFatSANc zQwESQin9*hbN~OO_{(RwSjVTiS$^Qi_ zuDx6@-HAT?zKhT~m^6>@PRx(^+Y-b_*hk}AF=>F+2!5B>P^Bf>|7#{(+ruzx-VD(( zUol+C1?RSOpT+;=b~H&ONFoE%H@~JEn`Rm&Bk<+9eIpLd?;hC)p_85ZS$hCdaHmw- z7wSJoJm9FP1aOBDT2c-fz9mPz`~Cd(96WfMNKTfv31dJN?l{i9vIo$4wxsfvy~3?V zhdDh2>ZjFPWPKhMjg~E@9+@!d1} zovpS@Z8jFf_jPx;!555?R&Gs-{d7+n5ox-u<(hI4#{Ni~_Urt1M5(L&K=}UIeSQXL z7fZ^4!Y9n#k)}~{+gM+51l7*h4=K3!!2$zQ{GkbfSL%X=Y?!pi`EHuclxPAYLLe&i zG5ODvSwDJsC7j9_@_WsAa)B9wO@CBde%_R!Pk)tZd5{zj(f;AB4!)E}&Y7IE2*N*~ z8xdXa^uJuM%)9@jRwog=z%F02wSc%yRl=c?+;;vdtx*V92FNN7)3cJZlFU&1q|d!I zi2cL^rwqh85vmBsu`PxR0upHk+V8>`z6!P>FE!zyOOPO&8YZ*VZ6)P5bM!gnpgRpR zC2ZJBd|GPfKo6z1b3rlW;ax_qrV;3cv6%z@)7Z?z(+8cqX%sRk=xPSvXCR>SToYMegfws21~&IC`T3cg-VkA~L)K zsiPHPRgN(#P({%9U!=5Kr}{R<$b-hX^DLLC{|xlNKQXkL!52krgq^|!-^8Q@7ycM{ z8->PWO{w!KGK_FQp-O~ydRumvg3Kktv-|RI_V`;`>bt>rBwN0+z*jN6hTdTI6+ndc z4;X@0R5rZ}4b(xStE+XC$dpQkordRfs^o$^Y@e*L{;dwoaYpA?JlC$?K9wW%3>IBD zRxbRYlt&;=kfOS!N|e_yTPjToxINi0c*~CCbmCF8g5D7iz*DyK zY8-U6ns^F=K!FN5u zG#ytf&5B=2C3Jz6`8qw_;=xH;`KDn3N!$Bw=E)%1ypKfDM$WMTQFErX5v9@pMh=Ac0PUJVb}s>$9p3+;8Sz#b^|K zIZ+z!vQYDb5%Tj3R1IH7-wlj4(5xNoVGshFiCqq=m=Y68FA0C1~KZ-C$x49JDwDHgJXF z?He?mynT_eOkvi_S85fOs3U5r$^6D!>z89--r3YkR4Ibph$(MjvcZe3(IY3RtzhdA zv%57OwJ+rMpKX09d+$ee+RU4ny1Vy)5QK=t)6Ij!uKXXF-+Kjq_qoKqZiLRpWV^*1 z!S5eg(Z-BWHS8~Vk5T}r*!5Ur+PKRJRFPN}`{YMQcxDHCm)#q0x}2&mfAw|ri0(L& zm|m<}FnVnLi>RfS4zfIGXRcyzfi1xKpNO_YEAVS2{yEs|z~P4!9o&CYSz3{s^KBrv zVg#AC6HHaGg#ugE(kcBUVcnsC<4;!4P-CoD8yzq=*6`W&HtO=cuFH{y%yPr{YX zI}V(6``mbQ+@O!aQSUPlcDelYw4R4a@(QMgFaK)5ki!=d`MJ>V{*a{LA`< zNN5vAsAT1=>#{Nn`8J8vQZFu#s8V6gm11)WPS8K1$z;%GWU#)HIx`+j+Loq2E=ky~ z%mA_8nKe1$O74EfznI@b2Q*HY{`e2?KH1QCVgZrgZO;J|l)(iIfE}R2MmR<_F$8mj@ItpBiG2ODDN;|zIdO5}| zExz`2$i-1T{#YxR2#+%)d%pj~^-}7JO+^jk- zlYTLc*0C00mOVMaVV=X}9uI%Y5U&*8MuY~&r24xszF%Q}`usb==k5zsrap|h^)-8J(&g^x__r<3D`Zl6D-FIZ zx!2-@+UP8@HIrbeqR)}GVgd-dJEPcIi!zhA`Y}tpOD5fEC-QM10dVKtR_hihvqJ+3>b|9Jd? z$SRV|L}TkxLa2s-1{Qv|7WA+BbY%%36{!$|a6#}O6Sn3q^ zxz8;TlA{8v+Ikg_)x!`Hy7r-f>)6pe)LeOvE)J6->+)-Ag@c*~E(+<0pw>B0nKkni zM~rxmxTLN$-2?N1N>_jS+KE(`$go;A&Lz#bA25#!eGnyv7X-HahPRJ`UQ7r-u!hFm zZs9-?jEI>olmK7*)M5o1Ua4Ew2*cs^{C_{4%pWyS>m4dJ^>tFlc08b>C+OuaTR``u zP)p)H=NVN#aT|^%G7x!YMXp}xS#*{vq0*CV;{1IJW5!7J$~rc;{Cx!bPoU#lhP_-S z>4Z}^^M!B^`8K^S6SbGLmC@w!zcfOc$0(vL#F2Wkq2tgUg}2J)uofYV(LQbwWK~wd z$%!h~9@hYJSx8_on#4}7$z#u^tGkW3Csvfytl*V!!S}Ls=`8k3_*`d!#md*y>p343 z#hg@_$!b(zmIYqo(~*_#?8-pI#IU^T^t**=!Cfb;6RJ6Uo-}fg)_KBw+&*V14CXB} zADppq+gIA#SCsLveyb2}B+JVN{5ll}T(tl07hJo{%n4AO1wsD=5nG-B(q|yJiec0m zfe%Oc#e-{lper+kfFG`ZQ#-Uj(DtqalyOV1Ds+B;gZaZ( z|KNZD!vP03ujw}C`T73QvBQ|m2*P#q1T8c+>`?@Lx62j}1th&J-B?1bICvqcN#fLi znXHf9g1qo1oMTkmNbP!QJEk`>Y&>u|;dj2B5uET=M;5k*0o9pdneKBvq5`2c26%LBG>RgxuI0qe%k=%(MfOeZ?#F*2 zq?5CSmG=+M#jYk?sEnTtPJYESCURI(Gs5@`W-mlMP5d0HCAK^;H|yPF5r|d~KMn$m z7!7wE6TT>bJ(jzlM1B{0VLylB>G7ii5>w422$bA5eQbU7y=cQy9fS56)rcL(@Y&Be zK=&xc5jf2w+lB=96`ga?hl=XK3QJTUx@wS$P}z@9i^qWBU>FOFb34%SYoGSiK9c}O zT;bu27P|$HQw7ujWLG8?)sFD(s6EZ!mI|`0D>4j8~hwH3e`Go zD2T&-Ht5Us5*ukTv3R~wetoFz^yeWoqvbg{0jLqX2%~S9?+_@L@ z_e)0bYe!nxSIR8{iGQ@Ykqqg=Z*`@ifqf#4{-4rb(3Ucf!EH7j%p8tTg9t0hm9P$y zj7_UTC?P5@0l7fm-_YyX1Ma|Gj4mB&)JwTuv-s6V(eNy!TXSnRwKfoZ0q-2Lve{f? z$0bOh7i>XQ9{1bh$Pq8Ae85cRocRXF-NJhZY8|TWc>VxnDnPyD93?Kxmt(DtnY;b^ zIf0#S^CIAio>Kubme0-Z`|~@t-}_vIPXD#b3_2$x3XN>2t;+tgL9u{wYQTq=S=GxC zeO4oP`@ADgRRY-bU*3r7cEgvZJ7u?yHyYEkHs|!V=ctvK9C19U!|SW}7~W@|uVo8^ zyf9SC6vTE|l6%J76QcbsL?q?C5ESrrxOKcUYQU{Qxoar|G_4{8AOQy==c3K~g{@%w z_2{9-+&eeAaBGN>4j*sx+G$?WH2$KyBw->3Luv|jS{!r|gyQJQ5;rs~!e+wp9@qft1MRcw&JHW7W zW(sRft_&0#y%Gy!`@nM63?RFd@o%`q^>PV#qEx;#veg4wgGZ~_9`Mw;BXi>*k?Ca1 z^MzU#7K`S}?R{0TLE%`V^T)WdTe=;YtOnQm6mQhGFhaI0sGj{IvD6MvPk~0Mc;1qzk?-+@TH5R#g$YnkfN<^Du@bUZ%qRoT zfF#UbAv6Rnquh;tt9Q&iGGsm2>ksw~wYki(G}J{alUK0n*2IWq%=VO~gk_B0U(IDB zA_>FzXA~ti<5ks@pGK(txx?P5Z3vvMK4ux#On5gi(+{PrFqC-?o*alhfN=jNFM4dg z_QC8`g$eiD2(I@A#GCrX4|KslVKpjkrtT&Bo%^)P581}`#?Qms~|U}N1EtCZxZ+7)dhl0`y5r#16rGxki9|5!F8;Yoyqh5 z1NK;->*Dcs)LM;5>kqJeOhHyo(h@+2RH(6u?$%*Fp8nbpsP@8Xxh zy|nHA4W^9RUW53k2YotZ_AAd)rdLJH#QMiM6nm>d?8NOu)|9ij(pHoMc(8 zhX^g8HaaRR3r(2rPa?UACUh=X0k2j<#vL)*n-vWp>uj7)Abc_G?Vyvbex+td-2oVW z`oHSud4B%?s1mM@mHmrc^6WF$XcH#@!v|ONg?5$C3c&0}&y=Eg{n0tDuhteSx+4>j z+7*TyPe(TI0^`4^-3)b=VBvpeupt>-q~r39Tm2#=Yi@MMd&jF>0Ki`#12y+oopelt z(~s_sP{s78hL)%LaZQlokA0!kG|=HQP9u(r(uzvVJs)A#+a+Vrz4#+#o3fX%$<>1K zig*tG8g)Y>t4swaLv=|7J<-U&Si&@6EKWiE%6H@_Np%ciD@_(&k64P^Qn@UxK%MA$ z$0U3$wdh3C&rPaG9GawFrVtBi8_S-V zmsW`UOXe`((J%-Yqq@og=bb1t8mPYM2s`2~Fs@`~YJCf47#a1D3Dg z`89QUI=7F#z{kl~0S)JQ{V7{AkkGH1)h}7C+J2&p`Vdz#TV=nMYnQ5ejZFUMufJxt zj6!CtLacOHJ7gs;YeE$t^h3Y#6ch+<>@f%ex_l5CE&@kIUK8fF3f-HeY5G`#cqpTW zI%?dE3iYaO~;Z2g#`DbkAYIoo0?Vb}BKUpA;QHWL{LEEp+W8=k$ zQC;n%jZ_FQ*eI{2EpylG5`4x6&>%R)Yj}Pf>#*S#+)Kyzxy8~EFHveov8QMb^_cP0-=I=D_l}n*~u5IsPJdBFxXl>o`Wy6{bx!<{1^ol9MoC+Ed)fnxH zL4Q}QotgW+c{qVWts~HdlHZosK^U^+x_x z8s*jBcSj1+_v_`}w|aou;RJ;ub6Bw0J5<+p9CSK!@UEHSNT97DIqdXd#CaQZNj5gu zFPF^}f$q5@;JkBPC80~5kt^-Vz;auWf0TS5WrYbsZj6#aZRIrS2KcNIv-1iE3D7H8 z6&mP4^gDx(h|=IUaiWAx`REY5l4DC39cQr0QN1k&YOc$q6HWR=8Sd&fPt0si^mYtb zTxFde@2*0C{@&g;_WOV7`TNcMk#q$w+4!k%yvz=i>Rhc4sar^MV{NV87q>bOWGf$e z+wLs^STY5$VfW&}@nJemb$DN-)#F-d^T+b?T6S9Oaml^U^5#X@Cb?@(Us~Win0s{z zYcz+XZxh%eWA`Q|MJKCr_G8CT13S-t$!-lh*UOB3#(PZLE5EAe%e53HxsMeGtCm#Q zL6@_V>COT{TlxjAa_!AjUZ5~q9;YRnr=zFn@Sx0FWR_tC9kbq7qYcSY<_Ovd1u6Ch z+z^Ik4+Q?;tM~SjA#>5+u$W9?3YPo?e$H6aHM&~&d~JbReB`$CEM+53_zHm(Y5o)B z$64c?2Xh$P@R|HDoG2ZWc4VOG;@Auc1I$Y3$@}(JT$OBnI+!mcxpq6WwaA$EURPL{ zo2-w#kWiI%3_;@2^+Weto1*me{HKG~?bc)tGKn;K{)!XwKA?$b=@l3m49re|6Qrz) z6_6XUUL`m`={N=xm2^h@*g{2{Y;B}dLkOC;H7Q6hbZ2?ZqrD~}!62#3W{N_~a~&lvkoj2}gRjz# zh)VeX;S^o9XD(G&P|WSW9j#O-?Ie@ZM?b?UrMbJ5>vg3q?54OZ<--tKX-+#0D3r>i zM%l=`H&;3$#O{=cjVEvQPl+O3UpNHyoG@=1_et~_$b}F9S3t6lhJ&sWwva}*@Q!Cq zcIggCc~Z9uHFs}1n`z9AE<^W`)QWnAqd+u!Y$SYjR@s5g&W;=1r3hT^_qnArV%LVi zETP6ba_bVOHa9^Q?swPedt%Tut^av)*-2Riy202f9N=3X{V`UZpD79TYKTG7V;cyD zN`VKxT6o?~-F)R`%LMQs9M)vJ>AHxERCAaV>>lHtzGQBFV_b4|X!*2`Z52WcQ^)T= z=UVK#AZp>xXU1`pYYd zT1}hDopk48J`$616qv@WnMMqKZDjkH?cix1*d$KH(T)xrg5V5ezJm(`hH4o z`*y6!IWA_}*u0cnYlcM>DNIPS2+$X^y$1z7e}#OP!lELg%yz1Q}{J zM-=(Z_>$Ioq}YTU#9o3L7ScBRDXK~lY+V;z2qZ=#Av*X9ndAmNH0tbY6r-%t9wyED zo_+e>THY31JU<5;_M*=7nVZekNJAw8I+3Ux0!P z;&(w%FEKZRbG%aTA-wugj2;?fM@b6igrg-*Sv&v1i12gKPR2y%1n9}X18&q-U(S7a47E3%BFQ=K^RNK5cT|dI#L~n&NM@N;o@d5^-=+M z-bP8BKff8Asm&kRfufd5SGp;#GP7KaMfZeZ2l|bv<5r~>)ho_1&W+qQpI)ICaxk)2ntH89OUErY-GU!@mrKmBM4393QQ z3;!F+=jy7<`l=u1B)3;qr!-m7VNsIMMrYr_mL+**nSlCcrzzmeD=-4iw|$3DQg>&6 zf|^G5w%T45k)J^039m-VXMFc~x*g(8x0=lZamhz7-+^#o91GxTb0V*m2Dn9a)5bM~ zS;$Uzx(g274Xdyk0OgF?7#j9?!}+}ynFZ^4zhLjcOPSMud?z6(>1;_9nKnt3GmuciO}O*S9i+vJ@3VUFDK_s61- zS#gI;ynV? zj&7a3ER?AET9Lqyq-oWJfmv$VNI9Hq-Gmm!j|#d$9^IoV0BSE0not3-VE5y8JYg+E zzC5sMi+;zqU^6l6+}ex>nkT2=t)O{PxnU*a*OJWYjfxhE~jxpc3%deL~s_N zJ7I@L4b@S+n=OdIoV~h>+`I*4V!Z@RV|G&XMP?o6kn(kLw#wO3gf1ik+Sf3LoA%_f z)PSPVio1-I7{Qfl8Ka)770@Ez(TWyYy9)yGhVy@_F1nlzgk-#~nk-{U3<~F0fceg<2Oj`+R}(Wq!UK*s6YCBr>k;Zvb7ln>%lqhrN%H6J>NSDw~NR*O9I)q zRu@-7KqP^lN+^0!QHUH4dRcOcXSI51C^v)NRxy?kz1)%Ku2hKP zWmZw21KERngfaV!LJ1U)Jjxa;Y2hz6xhs?Z2%^hg%OV=69I2iqmmr@0&ybCWUNkoV zf}_Q^LB*wdIvs-1UtpSl&G_zb6&#eU;Ex>m4SEnbytIY3~xo9xNg zjUPwNl4}QOX~zKT=>nE-4SvVCWd$c?8gi#~^*81x0twc;a9q@RMMN>*IY_Z%)m~QM z!6|hK!)2>bSxt4h_}eh#H4l>V_6YtOsT!@}V$RVyh^;+Y$FuGT%wt-DyhdZMnnkdH zNC5$JCIHVcOpRK-lbW{`KZli@09{)^kPb0$BN^^Q1mdRNq$Zv2vS1%i@BvC0hK=VY z6*>#ill;AVSsu}R6y66`nn~^bf`!&=?Ry=eNXJpW&%@+Gf z+r4T>p0c8Afpq~xv!{C}uhb5z*F3RS*7N^P|B2Pud?Tp~wk1N6#n;&k;aiU+=Cs{? zXF7>d`2AcceyV&{`)fP(v+0O~khEY4FjHC8$`9I(@VYI6#Y2pmUWYKu^}D}JXcp@6 zsi5EjWir5(dQyq++u*aJat7$n;(l;>;dYkLaUVi*@l5B|ChCU9jBju}2!g8&6=VD$F#p8xDqVmK>8G3q71-rQ;R zo>kMZuk(J#($}Aqj2ynr3&F$BGQ z7&>w&%JZE_q72K6!X9Tp?prMSRT!ZutyQbXbR$SQM$sBRd$VB_T`ivus_L8L*`QgA?G3Y+Cd&N z)NY|=de-F%#%M3L{74;qeZ-*lOLBF7A~OI6L#&jwq-lJU#?tT}1yIjY=@pbzkVvOT zc4J*`ame&i|1c0hVEPojF#QgAa)IRXU{bOWGe zu|}Gz>A6q@rGmfFb%5P!(7+uEi5z5Y7%RcbxA(sJDj9uQTq}jKAn5#)BC3c|LH$$m z3Nw#ZpS~JS6&iE4G7y|?kb#5%A{DQveVsg8g+aaPqrDo9!`x7;^O3e23^fVaKqP!i zzb6OqrKgX9bm{|zW2utj7ii_ej9YbETt!+L_?Kl8Q}I-1=61dQVxB2}j(EarWA0HU z%_tn_ICEDx@gDN8QkBYnFIn{JA%nruSff3;7^>k>e0Ku?2g|$8gx|ZfLV;DE+UGvy zJiHkCaD7LW;wcsVuKL%>0?uVq(UQ||0C*XagJ6(xy%nPFgy;4|BQUNr*kJeCRLn~=Jc#2VDB_Y3#lTX$Qv`wrGHTPG3FT$G}1Z(f-7aYBojh>xr$I(_c-7@Yt^;_Eh{M`vAM`uZY%L>H0f={=pu6z&bcT z8(lpyB;Rk)gBP9~=5jCJJqB!WQ?{h4>GAUDc-zPG03_5hJE6vXP%Jj14smMQE61ek z@%dP`0S9Zr0P}P~cKT=Ltw&584bs_5F}KFEn<=~FmyHg z^TIE?4UZ^kk~%BTw?2~NEbpg%QpNFGDORz_4St81HU4x(7+^TBMOS5sb4+Vds`7&J zZ~NQVBwYsL8N8sfo0 zc7%@Lk;}i<&RN(rNUxOJ)^X*P7pqM)|Nnf-@R91!yGwS$pY$4gSc&(dF_Mn-mug!< z^6Lv3FbOV5&Kwmz-r6W z5caE#-`#=CuE*5S4$I|toYmL6Ov+o`=X=5HKB5GxK6JV;aa0xr{d;I;L`M z4fj-j94%>T*o0Z*$kxdRBEUR|G=nc}+1C@fP+osS|5#1ZR(N2)+>26KBxI z=NLCuS6L~HiNURlbssoGx+%jpuxz)^3=l~thWF}ja;y)mJgQGf{s0ksJi}H3tEi$T z2arFCzK4%PG}73Ng%l?_?8eP5Nx7kn^=S3_yh+u$j!;M|P8(JLc?_h3g%+#~*((9; z^GK)pl|payeZT@Y@l zU4b1zH%1;yt-Ds=Ko$xP7=>bDpdPY@en0;3H~To;2t7VcaRHq7V0IkJOnN>EiI*k@ zGB@5eYZJNRc?)+|^ed7@+C~O@lflTWf@&qyJ&6AfM1X^l*{Q<2rEoC2Fv&i?6(5mU zsLOmkn`ON=b&}F#KiW6K-(C-4@-J2U1K%XfxOK_H8%G1n-g@OU3pSYVg%qQcT^QQI++CiuI0s4_W4XhFom+9c--NOrO-5A-`(o8$r*# z&??5EwM|F@1{V*6zC>Qv-&-|s<)G<4`2F06DduSzV$S6OG3yj=pWyU1dQ>0f9aqZ= z^(iNWxif=!)P0Z-Nee{-T~Il=_ZYP!B7CM$ivU>fB3mDOwnS8dDEwakeJA;T1$d5g za9(OkPlrfk|ITbe?t{Hf?T|-pfcdJr*=Fc(0WH5&QS;#WZ>pulq9jFt;7y5=+V-52 z`0A88>}4Ge-EG|=J~D}Whn$F)!u)^ntU@%Z!N2fF{)2+v%*0HI{qL8!k)LZ~TLoW- zFu(jpT)AQ=nEYz_8;uCinGpQ{JV3_~LXDfRIW^*ML?Bop9MzplR9HiSXQ2cC^Q`~? G0002Jl=$8N literal 0 HcmV?d00001 diff --git a/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_ic_headline_empty_add.png b/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_ic_headline_empty_add.png new file mode 100644 index 0000000000000000000000000000000000000000..2a9788b3666259ad8dc1fd10a50819399009143f GIT binary patch literal 2775 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 literal 0 HcmV?d00001 diff --git a/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_ic_want_headline.png b/app/src/module_public_chat/res/drawable-xxhdpi/public_chat_ic_want_headline.png new file mode 100644 index 0000000000000000000000000000000000000000..45657cbc751c62d5af3acf767814d51ae6888f83 GIT binary patch literal 54052 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 xjUeUM*0yQC=Bts|l=002ovPDHLkV1lQVEDitw literal 0 HcmV?d00001 diff --git a/app/src/module_public_chat/res/layout/headline_send_dialog.xml b/app/src/module_public_chat/res/layout/headline_send_dialog.xml index 89459e028..ec149a128 100644 --- a/app/src/module_public_chat/res/layout/headline_send_dialog.xml +++ b/app/src/module_public_chat/res/layout/headline_send_dialog.xml @@ -2,24 +2,50 @@ + android:layout_height="wrap_content" + android:background="@drawable/shape_white_top_18dp"> - + app:layout_constraintTop_toBottomOf="@id/et_content"> + + + + + diff --git a/app/src/module_public_chat/res/layout/public_chat_message_activity.xml b/app/src/module_public_chat/res/layout/public_chat_message_activity.xml index 9fd80c529..0c3d2a6ca 100644 --- a/app/src/module_public_chat/res/layout/public_chat_message_activity.xml +++ b/app/src/module_public_chat/res/layout/public_chat_message_activity.xml @@ -1,5 +1,6 @@ - + + + + + + + + + + + + + + + + + + + - - + app:layout_constraintTop_toBottomOf="@id/layout_headline" /> diff --git a/app/src/module_public_chat/res/layout/public_chat_message_item_headline.xml b/app/src/module_public_chat/res/layout/public_chat_message_item_headline.xml new file mode 100644 index 000000000..d86a70825 --- /dev/null +++ b/app/src/module_public_chat/res/layout/public_chat_message_item_headline.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/module_public_chat/res/values-ar/strings.xml b/app/src/module_public_chat/res/values-ar/strings.xml index 9e023ee92..f28f6ccfb 100644 --- a/app/src/module_public_chat/res/values-ar/strings.xml +++ b/app/src/module_public_chat/res/values-ar/strings.xml @@ -1,9 +1,10 @@ - 公聊廳 - 我要上頭條~ - 獲取公聊廳信息失敗 - %s 上頭條 - 尊貴的%s,上頭條了 + غرفة الدردشة العامة + اريد تصدر العناوين + فشل في الحصول على معلومات غرفة الدردشة العامة + تصدر العناوين %s + ~عزيزي%s، هيا تصدر العناوين رصيد العملات الذهبية غير كافي ،هل تريد إعادة الشحن علي الفور؟ + الرجاء إدخال المحتوي الذي تريد أن تتصدر عناوينهّ~ (يقتصر على 100 كلمة) \ No newline at end of file diff --git a/app/src/module_public_chat/res/values-zh-rTW/strings.xml b/app/src/module_public_chat/res/values-zh-rTW/strings.xml index 6decd42eb..062b0602a 100644 --- a/app/src/module_public_chat/res/values-zh-rTW/strings.xml +++ b/app/src/module_public_chat/res/values-zh-rTW/strings.xml @@ -2,9 +2,10 @@ 公聊廳 - 我要上頭條~ + 我要上頭條 獲取公聊廳信息失敗 - %s 上頭條 - 尊貴的%s,上頭條了 + %s上頭條 + 尊貴的%s,上頭條啦~ 金幣餘額不足,是否立即儲值? + 請輸入想上頭條的內容呀~(僅限100字) \ No newline at end of file diff --git a/app/src/module_public_chat/res/values/strings.xml b/app/src/module_public_chat/res/values/strings.xml index 2aba88dcc..4d1e8f353 100644 --- a/app/src/module_public_chat/res/values/strings.xml +++ b/app/src/module_public_chat/res/values/strings.xml @@ -1,9 +1,10 @@ - 公聊廳 - 我要上頭條~ - 獲取公聊廳信息失敗 - %s 上頭條 - 尊貴的%s,上頭條了 + Chatting + Broadcast + Failed to obtain chatting information + %s Broadcast + Honorable %s sent a broadcast~ The coin is insufficient,Would you like to recharge? + Please enter the content you want to broadcast~(100 characters) \ No newline at end of file diff --git a/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SaAttachmentToMsgUtil.java b/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SaAttachmentToMsgUtil.java index 1ac2b7726..2577c5cd2 100644 --- a/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SaAttachmentToMsgUtil.java +++ b/app/src/module_super_admin/java/com/chwl/app/sadmin/utils/SaAttachmentToMsgUtil.java @@ -6,6 +6,7 @@ import android.widget.TextView; import com.chwl.app.R; import com.chwl.app.avroom.widget.MessageView; +import com.chwl.app.ui.widget.TextSpannableBuilder; import com.chwl.core.im.custom.bean.CustomAttachment; import com.chwl.core.manager.AvRoomDataManager; import com.chwl.core.super_admin.attachment.SuperAdminOpAttachment; @@ -29,7 +30,7 @@ public class SaAttachmentToMsgUtil { return null; } String opName = null; - MessageView.SpannableBuilder text = new MessageView.SpannableBuilder(tvContent); + TextSpannableBuilder text = new TextSpannableBuilder(tvContent); text.append(AvRoomDataManager.get().isSuperAdmin(info.getHandleUid()) ? "" : ResUtil.getString(R.string.sadmin_utils_saattachmenttomsgutil_01), new ForegroundColorSpan(greyColor)); switch (opAttachment.getSecond()) { case CustomAttachment.CUSTOM_MSG_SUB_TYPE_SUPER_ADMIN_KICK_DOWN_MIC: diff --git a/modules/module_base/src/main/res/drawable/base_shape_theme_20dp.xml b/modules/module_base/src/main/res/drawable/base_shape_theme_20dp.xml new file mode 100644 index 000000000..8f85d38a1 --- /dev/null +++ b/modules/module_base/src/main/res/drawable/base_shape_theme_20dp.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_other_chatroom.xml b/nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_other_chatroom.xml new file mode 100644 index 000000000..2e7f46553 --- /dev/null +++ b/nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_other_chatroom.xml @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_self_chatroom.xml b/nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_self_chatroom.xml new file mode 100644 index 000000000..aa8426180 --- /dev/null +++ b/nim_uikit/res/drawable-ldrtl/bg_nim_water_drop_self_chatroom.xml @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/nim_uikit/res/drawable/bg_nim_water_drop_other_chatroom.xml b/nim_uikit/res/drawable/bg_nim_water_drop_other_chatroom.xml new file mode 100644 index 000000000..e52187f04 --- /dev/null +++ b/nim_uikit/res/drawable/bg_nim_water_drop_other_chatroom.xml @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/nim_uikit/res/drawable/bg_nim_water_drop_self_chatroom.xml b/nim_uikit/res/drawable/bg_nim_water_drop_self_chatroom.xml new file mode 100644 index 000000000..861b6ab7f --- /dev/null +++ b/nim_uikit/res/drawable/bg_nim_water_drop_self_chatroom.xml @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/nim_uikit/res/layout/nim_chat_room_message_item.xml b/nim_uikit/res/layout/nim_chat_room_message_item.xml new file mode 100644 index 000000000..fd8cfd705 --- /dev/null +++ b/nim_uikit/res/layout/nim_chat_room_message_item.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nim_uikit/src/com/netease/nim/uikit/api/model/chatroom/ChatRoomProvider.java b/nim_uikit/src/com/netease/nim/uikit/api/model/chatroom/ChatRoomProvider.java index a3ebf451e..a2c1d2f63 100644 --- a/nim_uikit/src/com/netease/nim/uikit/api/model/chatroom/ChatRoomProvider.java +++ b/nim_uikit/src/com/netease/nim/uikit/api/model/chatroom/ChatRoomProvider.java @@ -3,6 +3,7 @@ package com.netease.nim.uikit.api.model.chatroom; import com.netease.nim.uikit.api.model.SimpleCallback; import com.netease.nimlib.sdk.chatroom.constant.MemberQueryType; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember; +import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; import java.util.List; diff --git a/nim_uikit/src/com/netease/nim/uikit/common/util/sys/TimeUtil.java b/nim_uikit/src/com/netease/nim/uikit/common/util/sys/TimeUtil.java index e02885d5f..5f9d4833d 100644 --- a/nim_uikit/src/com/netease/nim/uikit/common/util/sys/TimeUtil.java +++ b/nim_uikit/src/com/netease/nim/uikit/common/util/sys/TimeUtil.java @@ -58,7 +58,7 @@ public class TimeUtil { } public static String getNowDatetime() { - SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH); return (formatter.format(new Date())); } @@ -69,7 +69,7 @@ public class TimeUtil { public static String getNowDateTime(String format) { Date date = new Date(); - SimpleDateFormat df = new SimpleDateFormat(format, Locale.getDefault()); + SimpleDateFormat df = new SimpleDateFormat(format, Locale.ENGLISH); return df.format(date); } @@ -85,7 +85,7 @@ public class TimeUtil { TimeZone timezone = TimeZone.getTimeZone("Asia/Shanghai"); Date date = new Date(currentTimeMillis()); - SimpleDateFormat formatter = new SimpleDateFormat(format, Locale.getDefault()); + SimpleDateFormat formatter = new SimpleDateFormat(format, Locale.ENGLISH); formatter.setTimeZone(timezone); GregorianCalendar gregorianCalendar = new GregorianCalendar(); @@ -99,7 +99,7 @@ public class TimeUtil { TimeZone timezone = TimeZone.getTimeZone("Asia/Shanghai"); Date date = new Date(currentTimeMillis()); - SimpleDateFormat formatter = new SimpleDateFormat(format, Locale.getDefault()); + SimpleDateFormat formatter = new SimpleDateFormat(format, Locale.ENGLISH); formatter.setTimeZone(timezone); return formatter.format(date); @@ -107,7 +107,7 @@ public class TimeUtil { public static String getDateTimeString(long milliseconds, String format) { Date date = new Date(milliseconds); - SimpleDateFormat formatter = new SimpleDateFormat(format, Locale.getDefault()); + SimpleDateFormat formatter = new SimpleDateFormat(format, Locale.ENGLISH); return formatter.format(date); } @@ -118,10 +118,10 @@ public class TimeUtil { Date date = new Date(milliseconds); Date firstDateThisYear = new Date(today.getYear(), 0, 0); if (!date.before(firstDateThisYear)) { - SimpleDateFormat dateformatter = new SimpleDateFormat("MM-dd", Locale.getDefault()); + SimpleDateFormat dateformatter = new SimpleDateFormat("MM-dd", Locale.ENGLISH); showDataString = dateformatter.format(date); } else { - SimpleDateFormat dateformatter = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); + SimpleDateFormat dateformatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); showDataString = dateformatter.format(date); } return showDataString; @@ -151,11 +151,11 @@ public class TimeUtil { } else if (isSameWeekDates(currentTime, today)) { dataString = getWeekOfDate(currentTime); } else { - SimpleDateFormat dateformatter = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); + SimpleDateFormat dateformatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); dataString = dateformatter.format(currentTime); } - SimpleDateFormat timeformatter24 = new SimpleDateFormat("HH:mm", Locale.getDefault()); + SimpleDateFormat timeformatter24 = new SimpleDateFormat("HH:mm", Locale.ENGLISH); timeStringBy24 = timeformatter24.format(currentTime); if (abbreviate) { @@ -178,8 +178,8 @@ public class TimeUtil { public static String getTodayTimeBucket(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); - SimpleDateFormat timeformatter0to11 = new SimpleDateFormat("KK:mm", Locale.getDefault()); - SimpleDateFormat timeformatter1to12 = new SimpleDateFormat("hh:mm", Locale.getDefault()); + SimpleDateFormat timeformatter0to11 = new SimpleDateFormat("KK:mm", Locale.ENGLISH); + SimpleDateFormat timeformatter1to12 = new SimpleDateFormat("hh:mm", Locale.ENGLISH); int hour = calendar.get(Calendar.HOUR_OF_DAY); if (hour >= 0 && hour < 5) { return ResUtil.getString(R.string.util_sys_timeutil_06) + timeformatter0to11.format(date);