From 81d3c2983f10215911e65a8a13ca638e00e14718 Mon Sep 17 00:00:00 2001 From: wule Date: Mon, 31 Aug 2026 09:54:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E7=9A=84=E6=89=A3?= =?UTF-8?q?=E8=B4=B9=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/Model/DBModel/user_payment_record.cs | 4 +- .../WXAdminAccountBalanceForm.Designer.cs | 4 +- .../AdminForms/WXAdminAccountBalanceForm.cs | 100 +++++++++- .../WXOemAccountBalanceForm.Designer.cs | 61 +++--- .../ShopForms/WXOemAccountBalanceForm.cs | 14 +- .../ShopForms/WXOemAccountBalanceForm.resx | 180 +++++++----------- 6 files changed, 220 insertions(+), 143 deletions(-) diff --git a/AllBase/Model/DBModel/user_payment_record.cs b/AllBase/Model/DBModel/user_payment_record.cs index 591877b..0dd19da 100644 --- a/AllBase/Model/DBModel/user_payment_record.cs +++ b/AllBase/Model/DBModel/user_payment_record.cs @@ -10,13 +10,15 @@ namespace AllBase.Model.DBModel { public long id { get; set; } /// - /// 变动类型,1:充值,2:采购花费,3:产品退款到账,4:运费退款到账,5:采购收款,6:产品退款扣除,7:运费退款扣除,16:礼物单话费,20:中转运费,23:作废运费返还 26退货包裹扣费 + /// 变动类型,1:充值,2:采购花费,3:产品退款到账,4:运费退款到账,5:采购收款,6:产品退款扣除,7:运费退款扣除,16:礼物单话费,20:中转运费,23:作废运费返还 26:退货包裹扣费, + /// 30:支付宝在线充值,31:云仓退货支出 /// public int? type { get; set; } /// /// 充值或花费的金额(元) /// public decimal amount { get; set; } + public decimal oem_amount { get; set; } /// /// 充值或花费后的当前账户余额(元) /// diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs index a2ca444..85aae18 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.Designer.cs @@ -455,7 +455,9 @@ namespace TemuKJD.WXForms.AdminForms "管理员充值", "支付宝充值", "拍单扣除/作废返还", - "超重扣费"}); + "超重扣费支出", + "退货包裹扣费支出", + "云仓退货扣费支出"}); this.cmbType.Location = new System.Drawing.Point(63, 50); this.cmbType.Name = "cmbType"; this.cmbType.Size = new System.Drawing.Size(90, 25); diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs index 0404867..b62c420 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminAccountBalanceForm.cs @@ -100,8 +100,12 @@ namespace TemuKJD.WXForms.AdminForms data3 += "&type_in=30"; if (cmbType.Text == "拍单扣除/作废返还") data3 += "&type_in=20,23"; - if (cmbType.Text == "超重扣费") + if (cmbType.Text == "超重扣费支出") data3 += "&type_in=24"; + if (cmbType.Text == "退货包裹扣费支出") + data3 += "&type_in=26"; + if (cmbType.Text == "云仓退货扣费支出") + data3 += "&type_in=31"; if (!string.IsNullOrEmpty(txtOutOrderId.Text.Trim())) data3 += "&order_id_in=" + txtOutOrderId.Text.Trim(); if (!string.IsNullOrEmpty(txtShopOrderNo.Text.Trim())) @@ -172,6 +176,100 @@ namespace TemuKJD.WXForms.AdminForms pictureBox2.Visible = false; } + public async Task GetAllBalanceList() + { + Invoke(new Action(() => + { + this.dgvPayment.Rows.Clear(); + dgvPayment.CellValueChanged -= dgvPayment_CellValueChanged; + })); + + await Task.Run(() => + { + int pageCount = 1; + int pageSize = 50; + var url3 = BaseClass.BuildWXObjString("user/get_user_balance"); + var data3 = UserLogin.GetSignaturex(); + Invoke(new Action(() => + { + if (!string.IsNullOrEmpty(txtUserName.Text.Trim())) + data3 += "&user_name_in=" + txtUserName.Text.Trim(); + data3 += "&create_time_begin=" + dtpTimeBegin.Value.ToString("yyyy-MM-dd HH:mm:ss"); + data3 += "&create_time_end=" + dtpTimeEnd.Value.ToString("yyyy-MM-dd HH:mm:ss"); + if (cmbType.Text == "充值") + data3 += "&type_in=1,30"; + if (cmbType.Text == "管理员充值") + data3 += "&type_in=1"; + if (cmbType.Text == "支付宝充值") + data3 += "&type_in=30"; + if (cmbType.Text == "拍单扣除/作废返还") + data3 += "&type_in=20,23"; + if (cmbType.Text == "超重扣费支出") + data3 += "&type_in=24"; + if (cmbType.Text == "退货包裹扣费支出") + data3 += "&type_in=26"; + if (cmbType.Text == "云仓退货扣费支出") + data3 += "&type_in=31"; + if (!string.IsNullOrEmpty(txtOutOrderId.Text.Trim())) + data3 += "&order_id_in=" + txtOutOrderId.Text.Trim(); + if (!string.IsNullOrEmpty(txtShopOrderNo.Text.Trim())) + data3 += "&remark_fulltext=" + txtShopOrderNo.Text.Trim(); + data3 += "&page=" + ucSplitPage1.CurrentPage; + data3 += "&page_size=" + ucSplitPage1.PageSize; + pageSize = ucSplitPage1.PageSize; + })); + var html3 = GetHtml.PostUtf8(url3, data3); + if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) + html3 = GetHtml.PostUtf8(url3, data3); + if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) + { + BaseMsgForm.ShowError("查询失败:" + BaseRegex.GetStringJsonByRegs(ref html3, html3, "msg")); + return; + } + + List paymentList = new List(); + paymentList = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(html3)["data"].ParseToString()); + foreach (var payment in paymentList) + { + Invoke(new Action(() => + { + var rowIndex = this.dgvPayment.Rows.Add( + true, + ((EnumOrderPaymentType)payment.type.ParseToInt()).ParseToString(), + payment.user_name, + payment.order_id, + payment.amount, + payment.balance, + payment.create_time.ToString("yyyy-MM-dd HH:mm:ss"), + payment.remark + ); + var row = this.dgvPayment.Rows[rowIndex]; + row.Height = 60; + + var rowExists = dgvPayment.Rows.Cast() + .Where(r => r.Cells["colOrderId"].Value.ParseToString() == payment.order_id && r.Cells["colType"].Value.ParseToString() == "中转仓作废返还收入").ToList(); + if (rowExists.Count > 1) + { + var c = Color.FromArgb(Randomx.GetId(127, 200), Randomx.GetId(127, 200), Randomx.GetId(127, 200)); + foreach (var rowExist in rowExists) + { + rowExist.Cells["colOrderId"].Style.BackColor = c; + } + } + })); + } + int count = BaseRegex.GetIntJson(ref html3, "count"); + pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt(); + pageCount = Math.Max(pageCount, 1); + ucSplitPage1.TotalPage = pageCount; + }); + Invoke(new Action(() => + { + GetProfit(); + dgvPayment.CellValueChanged += dgvPayment_CellValueChanged; + })); + } + private async void ucSplitPage1_PageChange(object obj) { pictureBox2.Visible = true; diff --git a/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.Designer.cs index 1593e0b..8fed6f6 100644 --- a/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.Designer.cs +++ b/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.Designer.cs @@ -103,15 +103,16 @@ namespace Work._29Tools.Forms.UserForms this.txtSearch = new System.Windows.Forms.TextBox(); this.pictureBox2 = new System.Windows.Forms.PictureBox(); this.dgvPayment = new TemuKJD.UserComponent.DataGridViewEx(); + this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colType = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOrderId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOmeAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colBalance = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colCreateTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colRemark = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.panel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); this.splitContainer2.Panel1.SuspendLayout(); @@ -399,7 +400,9 @@ namespace Work._29Tools.Forms.UserForms "管理员充值", "支付宝充值", "拍单扣除/作废返还", - "超重扣费"}); + "超重扣费支出", + "退货包裹扣费支出", + "云仓退货扣费支出"}); this.cmbType.Location = new System.Drawing.Point(55, 20); this.cmbType.Name = "cmbType"; this.cmbType.Size = new System.Drawing.Size(121, 25); @@ -880,6 +883,7 @@ namespace Work._29Tools.Forms.UserForms this.colUserName, this.colOrderId, this.colAmount, + this.colOmeAmount, this.colBalance, this.colCreateTime, this.colRemark}); @@ -894,6 +898,20 @@ namespace Work._29Tools.Forms.UserForms this.dgvPayment.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvPayment_CellContentClick); this.dgvPayment.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvPayment_CellValueChanged); // + // ucSplitPage1 + // + this.ucSplitPage1.CurrentPage = 1; + this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; + this.ucSplitPage1.IsShowPageSize = true; + this.ucSplitPage1.Location = new System.Drawing.Point(903, 0); + this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); + this.ucSplitPage1.Name = "ucSplitPage1"; + this.ucSplitPage1.PageSize = 50; + this.ucSplitPage1.Size = new System.Drawing.Size(459, 25); + this.ucSplitPage1.TabIndex = 1163; + this.ucSplitPage1.TotalPage = 1; + this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); + // // colCheck // this.colCheck.FillWeight = 20F; @@ -931,6 +949,14 @@ namespace Work._29Tools.Forms.UserForms this.colAmount.Name = "colAmount"; this.colAmount.ReadOnly = true; // + // colOmeAmount + // + this.colOmeAmount.FillWeight = 60F; + this.colOmeAmount.HeaderText = "归属利润"; + this.colOmeAmount.Name = "colOmeAmount"; + this.colOmeAmount.ReadOnly = true; + this.colOmeAmount.Visible = false; + // // colBalance // this.colBalance.FillWeight = 60F; @@ -953,20 +979,6 @@ namespace Work._29Tools.Forms.UserForms this.colRemark.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.colRemark.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // - // ucSplitPage1 - // - this.ucSplitPage1.CurrentPage = 1; - this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; - this.ucSplitPage1.IsShowPageSize = true; - this.ucSplitPage1.Location = new System.Drawing.Point(903, 0); - this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); - this.ucSplitPage1.Name = "ucSplitPage1"; - this.ucSplitPage1.PageSize = 50; - this.ucSplitPage1.Size = new System.Drawing.Size(459, 25); - this.ucSplitPage1.TabIndex = 1163; - this.ucSplitPage1.TotalPage = 1; - this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); - // // WXOemAccountBalanceForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1015,14 +1027,6 @@ namespace Work._29Tools.Forms.UserForms private System.Windows.Forms.DateTimePicker dtpTimeEnd; private System.Windows.Forms.DateTimePicker dtpTimeBegin; private DevComponents.DotNetBar.PanelEx btnSearch; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; - private System.Windows.Forms.DataGridViewTextBoxColumn colType; - private System.Windows.Forms.DataGridViewTextBoxColumn colUserName; - private System.Windows.Forms.DataGridViewTextBoxColumn colOrderId; - private System.Windows.Forms.DataGridViewTextBoxColumn colAmount; - private System.Windows.Forms.DataGridViewTextBoxColumn colBalance; - private System.Windows.Forms.DataGridViewTextBoxColumn colCreateTime; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemark; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtUserName; private DevComponents.DotNetBar.PanelEx btnSearchShop; @@ -1071,5 +1075,14 @@ namespace Work._29Tools.Forms.UserForms private System.Windows.Forms.Label label12; private System.Windows.Forms.Label label13; private System.Windows.Forms.Label lblProfit; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colType; + private System.Windows.Forms.DataGridViewTextBoxColumn colUserName; + private System.Windows.Forms.DataGridViewTextBoxColumn colOrderId; + private System.Windows.Forms.DataGridViewTextBoxColumn colAmount; + private System.Windows.Forms.DataGridViewTextBoxColumn colOmeAmount; + private System.Windows.Forms.DataGridViewTextBoxColumn colBalance; + private System.Windows.Forms.DataGridViewTextBoxColumn colCreateTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemark; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.cs b/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.cs index 97341b5..b93557a 100644 --- a/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.cs @@ -57,7 +57,10 @@ namespace Work._29Tools.Forms.UserForms await Task.Run(() => { GetBalanceList(); }); pictureBox2.Visible = false; - +#if DEBUG + this.colOmeAmount.Visible = true; +#endif + } private void ChkAll_Click(object sender, EventArgs e) @@ -140,11 +143,15 @@ namespace Work._29Tools.Forms.UserForms data3 += "&type_in=30"; if (cmbType.Text == "拍单扣除/作废返还") data3 += "&type_in=20,23"; - if (cmbType.Text == "超重扣费") + if (cmbType.Text == "超重扣费支出") data3 += "&type_in=24"; + if (cmbType.Text == "退货包裹扣费支出") + data3 += "&type_in=26"; + if (cmbType.Text == "云仓退货扣费支出") + data3 += "&type_in=31"; data3 += "&page=" + ucSplitPage1.CurrentPage; data3 += "&page_size=" + ucSplitPage1.PageSize; - pageSize = ucSplitPage1.PageSize; + pageSize = ucSplitPage1.PageSize; })); var html3 = GetHtml.PostUtf8(url3, data3); if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) @@ -174,6 +181,7 @@ namespace Work._29Tools.Forms.UserForms payment.user_name, payment.order_id, payment.amount, + payment.oem_amount, payment.balance, payment.create_time.ToString("yyyy-MM-dd HH:mm:ss"), payment.remark diff --git a/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.resx b/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.resx index 84f2509..05b5953 100644 --- a/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.resx +++ b/TEMUKJD/WXForms/ShopForms/WXOemAccountBalanceForm.resx @@ -117,150 +117,104 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + True - - + + + True + + True - - - - - AAABAAEAQEAQAAAAAABoCgAAFgAAACgAAABAAAAAgAAAAAEABAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAV3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3UAAAAAAHd3d3d3d3d3d3d3d3d3d3d3d3d3 - d3d3d3d3d3cAAABXd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3UAAHd3d3d3d3d3d3d3d3d3d3d3 - d3d3d3d3d3d3d3d3dwAHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cAd3d3d3d4/4d3d3d3d3 - d3d3d3d3d3d3d3d4/4d3d3dwV3d3d3d/iI/3d3d3d3d3d3d3d3d3d3d3d4+Ij3d3d3V3d3d3d/h3d/h3 - d3d3d3d3d3d3d3d3d3d493d/93d3d3d4iIiH+Hd3f4iIiIiIiIiIiP///////4j3d3iIiId3d4////93 - d3d/////////////h3d3d3d4iPd3f3j4/3d3d3d3f4d3d493d3d3d3d3d3d3d3d3d3f3j4j4f3d/h3d3 - d3d4+Hd3+HeIiIiIiIiIiIiIiIiId/h4/4ePd3iHd3d3d3eP+I+HeP/////////////////4f4d3ePh3 - f4d3d3d3d3eIh3d3d3d3d3d3d3d3d3d3d493j4j/h3eIh3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3f4d4 - iId3d3d3d3+I93d3j3j3j///iP+Hf3iHj///h3d/h3d3d3d3f4d3f4f/d3j4d/iIiIj/iId/+P/4iIh3 - d3+Hd3d3d3d/h3d/h3+Hf4d3j3d3d493d3+Hj3d/h3d3f4d3d3d3d3iHd3+HeId4d3ePd/h4j3d3f4eP - iI+Id3d/h3d3d3d4j4d3f4j/////h493949/h3f/+I+Ij/h3d3+Hd3iI//iPh3d/h4+Ij4h3j3j3j3j3 - d4+Hj3d/h3d3f4d4/4iHd3+HeP+Hf4d/h3ePj4f4d/h3f4f/j///d3d/h3iHd3d3j4d3/4d/h3+Hd4+I - d/h3+HeP+IiPj4d3d3+HeId3d3f4d3ePh/////93j4d3d3d3ePd3d3iId3d3f4d4h3d3ePd3d3j3j/iP - iHeP//////+H//iPj/iPd3d/h3iHd3d/h3d3d/h/h3+Hd3iIiP+IiHePh/h4/4h3d3+HePiIh493d3d3 - iHiHeId3d3d3+Hd3d3h3h3eId3d3f4d3iIh393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d/+IiIiI+H - d3d3d3d3d3d3d4+Hd3d3d3d3d3d3d3d3d3+IiIiIh3d3d3d3d3d3d3d3ePh3d3d3d3d3d3d3d3d3f4d3 - d3d3d3d3d4/////////4ePd3d3d3d3d3d3d3d3d/h3d3d3d3d3d3d3d3d3j///+Hj4d4iIj/////iIiI - iPh3d3d3d3d3d3d3d3d3eIiIiHj4d3iIiIj/iP+IiIiIh3d3d3d3d3d3d3d3d3d3d3d3j4d3d3d3d4+H - j4d3d3d3d3d3d3d3d3d3d3d3d3f///////////h3ePh4+Hd3d3d3d3d3d3d3d3d3d3d3d/+IiIiIiIiI - h3d3j4ePh3d3d3d3d3d3d3d3d3d3d3d3+Hd3d3d3d3d3d3d493/3d3d3d3d3d3d3d3d3d3d3d3ePh4// - //////h3d3f/d/93d3d3d3d3d3d3d3d3d3d3d3j4eP+IiIiIh3d3d3/3f/d3d3d3d3d3d3d3d3d3d3d3 - d4+Hj4d3d3d3d3d3d/h4+Hd3d3d3d3d3d3d3d3d3d3d3ePh4/3d3d3d3d3d3f4ePh3d3d3d3d3d3d3d3 - d3d3d3d3j4d/93d3d3d3d4j/+Hj4d3d3d3d3d3d3d3d3d3d3d3d4+Hf/d3d3d3eP/4iIh4+Hd3d3d3d3 - d3d3d3d3d3d3d3eP93j4d3d3eP+Hd3d3ePd3d3d3d3d3d3d3d3d3d3d3d3f/d4+Hd3ePh3j//4d3/3d3 - d3d3d3d3d3d3d3d3d3d3d3j4ePh3d/93/4iI/4ePh3d3d3d3d3d3d3d3d3d3d3d3d4+Hj4d4+H/4d3d/ - +H/4d3d3d3d3d3d3d3d3d3d3d3d3ePd/h3/3j4d3d3f4ePh3d3d3d3d3d3d3d3d3d3d3d3d3/3j3f4f/ - d3d3d494+Hd3d3d3d3d3d3d3d3d3d3d3d3ePePh/h/93d3d3j3f4d3d3d3d3d3d3d3d3d3d4h3d3d493 - +H/3j3d3d3ePePh3d3d3d3d3d3d3d3d3eHj4d3d3j3j4ePePh3d3d/h4+Hd3d3d3d3d3d3d3d3d/h4+H - d3j4ePd3+Hj4d3eP93+Hd3d3d3d3d3d3d3d3d3j4eP+I/4d/h3ePh4/4j/93j3d3d3d3d3d3d3d3d3d3 - d4+HeIiId/93d3j4d4/4h3j4d3d3d3d3d3d3d3d3d3d3ePiHd3eP93d3d4+Id3d4/4d3d3d3d3d3d3d3 - d3d3d3d3j/////h3d3d3eP/4j//4d3d3d3d3d3d3V3d3d3d3d3d3iP+Ih3d3d3d3eI//iHd3d3d3d3d3 - d3UHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cAd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 - d3d3d3dwAHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwAAV3d3d3d3d3d3d3d3d3d3d3d3d3d3 - d3d3d3d3d3d1AAAAd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwAAAAAAV3d3d3d3d3d3d3d3d3d3 - d3d3d3d3d3d3d3UAAAD/gAAAAAAB//gAAAAAAAAf4AAAAAAAAAfAAAAAAAAAA8AAAAAAAAADgAAAAAAA - AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA - AAAAAAABwAAAAAAAAAPAAAAAAAAAA+AAAAAAAAAH+AAAAAAAAB//gAAAAAAB/w== - \ No newline at end of file