From 172c94baad10ca37a294769053238610db8214a2 Mon Sep 17 00:00:00 2001
From: yaoqin <497681109@qq.com>
Date: Fri, 30 Jan 2026 16:20:22 +0800
Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E5=91=A8=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
power_leasing/src/views/account/myShops.vue | 200 +++++++++++++++---
.../src/views/account/orderDetail.vue | 55 ++++-
power_leasing/src/views/account/products.vue | 158 ++++++++++----
.../views/account/purchasedMachineDetail.vue | 10 +-
.../src/views/account/receiptRecord.vue | 151 ++++++++-----
power_leasing/src/views/account/shopNew.vue | 98 ++++++++-
power_leasing/src/views/cart/index.vue | 1 +
.../src/views/productDetail/index.js | 2 +
.../src/views/productDetail/index.vue | 14 +-
power_leasing/test.zip | Bin 2094360 -> 2100958 bytes
power_leasing/test/css/app.4bdb375c.css | 1 +
power_leasing/test/index.html | 2 +-
power_leasing/test/js/app.bf293dd7.js | 2 +
power_leasing/test/js/app.bf293dd7.js.map | 1 +
14 files changed, 541 insertions(+), 154 deletions(-)
create mode 100644 power_leasing/test/css/app.4bdb375c.css
create mode 100644 power_leasing/test/js/app.bf293dd7.js
create mode 100644 power_leasing/test/js/app.bf293dd7.js.map
diff --git a/power_leasing/src/views/account/myShops.vue b/power_leasing/src/views/account/myShops.vue
index e4db544..4284ca6 100644
--- a/power_leasing/src/views/account/myShops.vue
+++ b/power_leasing/src/views/account/myShops.vue
@@ -45,6 +45,7 @@
{{ shop.description || '这家店还没有描述~' }}
手续费率:{{ formatFeeRate(shop.feeRate) }}
+ 网络手续费:{{ shopNetworkFeeText }}
修改店铺
@@ -218,9 +219,27 @@
+ >
+ %
+
+
+
+
+
+
+
+ 是否开启
+
+
+ 网络手续费
+ {{ editNetworkFeeText }}
+
+
+
专用网络会增加2%的手续费,建议无法直连矿池的用户开启
+
@@ -286,11 +305,13 @@ export default {
image: '',
description: '',
feeRate: '',
+ networkFee: 0,
+ isOpen: false,
del: true,
state: 0
},
visibleEdit: false,
- editForm: { id: '', name: '', image: '', description: '', feeRate: '', gCode: '' },
+ editForm: { id: '', name: '', image: '', description: '', feeRate: '', gCode: '', isOpen: false, networkFee: 0 },
// 店铺配置列表
shopConfigs: [],
visibleConfigEdit: false,
@@ -335,6 +356,17 @@ export default {
if (this.shop.state === 2) return 'info'
return 'info'
},
+ shopNetworkFeeText() {
+ const fee = Number(this.shop.networkFee)
+ const feeValid = Number.isFinite(fee) && fee > 0
+ const isOpen = this.normalizeIsOpen(this.shop.isOpen)
+ if (!isOpen) return '0'
+ const rate = feeValid ? fee : 0
+ if (!rate) return '0'
+ const percent = rate * 100
+ const fixed = percent.toFixed(6)
+ return `${fixed.replace(/\.?0+$/, '')}%`
+ },
hasShop() {
return !!(this.shop && Number(this.shop.id) > 0)
},
@@ -352,6 +384,9 @@ export default {
const map = new Map((this.editCoinOptions || []).map(o => [String(o.value), String(o.label).toUpperCase()]))
return (this.configForm.payCoins || []).map(v => map.get(String(v)) || String(v).toUpperCase())
},
+ editNetworkFeeText() {
+ return this.editForm.isOpen ? '2%' : '0'
+ },
/* 提现弹窗标题:如 USDT提现 */
withdrawDialogTitle() {
const sym = String((this.currentWithdrawRow && this.currentWithdrawRow.payCoin) || '').toUpperCase() || ''
@@ -379,6 +414,34 @@ export default {
this.fetchMyShop()
},
methods: {
+ /**
+ * 专用网络状态解析(兼容 boolean/number/string)
+ */
+ normalizeIsOpen(value) {
+ if (value === true || value === 1) return true
+ if (typeof value === 'string') {
+ const v = value.trim().toLowerCase()
+ return v === 'true' || v === '1'
+ }
+ return false
+ },
+ /**
+ * 统一解析店铺数据结构(兼容 data/data.list/array/string)
+ */
+ normalizeShopData(raw) {
+ let data = raw && raw.data != null ? raw.data : raw
+ if (Array.isArray(data)) return data[0] || {}
+ if (typeof data === 'string') {
+ try {
+ const parsed = JSON.parse(data)
+ if (Array.isArray(parsed)) return parsed[0] || {}
+ return parsed || {}
+ } catch (e) {
+ return {}
+ }
+ }
+ return data || {}
+ },
/**
* 修改店铺:谷歌验证码输入(仅数字,最多6位)
*/
@@ -669,8 +732,9 @@ export default {
if (value === null || value === undefined || value === '') return '-'
const num = Number(value)
if (!Number.isFinite(num)) return '-'
- const fixed = num.toFixed(6)
- return fixed.replace(/\.?0+$/, '')
+ const percent = num * 100
+ const fixed = percent.toFixed(6)
+ return `${fixed.replace(/\.?0+$/, '')}%`
},
/**
* 修改弹窗 - 手续费输入:允许一个小数点,最多6位小数;允许尾随点
@@ -709,6 +773,9 @@ export default {
name: '',
image: '',
description: '',
+ feeRate: '',
+ networkFee: 0,
+ isOpen: false,
del: true,
state: 0
}
@@ -721,17 +788,23 @@ export default {
const res = await getMyShop()
// 预期格式:{"code":0,"data":{"del":true,"description":"","id":0,"image":"","name":"","state":0},"msg":""}
if (res && (res.code === 0 || res.code === 200) && res.data) {
+ const shopData = this.normalizeShopData(res.data)
+ const feeRaw = Number(shopData.networkFee)
+ const feeValid = Number.isFinite(feeRaw) && feeRaw > 0
+ const isOpen = this.normalizeIsOpen(shopData.isOpen) || feeValid
this.shop = {
- id: res.data.id,
- name: res.data.name,
- image: res.data.image,
- description: res.data.description,
- feeRate: res.data.feeRate,
- del: !!res.data.del,
- state: Number(res.data.state || 0)
+ id: shopData.id,
+ name: shopData.name,
+ image: shopData.image,
+ description: shopData.description,
+ feeRate: shopData.feeRate,
+ networkFee: feeValid ? feeRaw : 0,
+ isOpen,
+ del: !!shopData.del,
+ state: Number(shopData.state || 0)
}
// 同步加载钱包绑定
- this.fetchShopConfigs(res.data.id)
+ this.fetchShopConfigs(shopData.id)
} else {
// 当接口返回错误或没有数据时,重置店铺状态
this.resetShopState()
@@ -940,38 +1013,54 @@ export default {
this.visibleEdit = true
// 查询最新店铺详情
const res = await queryShop({ id: this.shop.id })
- if (res && (res.code === 0 || res.code === 200) && res.data) {
+ if (res && (res.code === 0 || res.code === 200)) {
+ const shopData = this.normalizeShopData(res.data)
+ const feeRaw = Number(shopData.networkFee)
+ const feeValid = Number.isFinite(feeRaw) && feeRaw > 0
+ const isOpen = this.normalizeIsOpen(shopData.isOpen) || feeValid
+ const feeRateNum = Number(shopData.feeRate)
+ const feeRatePercent = Number.isFinite(feeRateNum) ? (feeRateNum * 100) : ''
this.editForm = {
- id: res.data.id,
- name: res.data.name,
- image: res.data.image,
- description: res.data.description,
- feeRate: res.data.feeRate,
- gCode: ''
+ id: shopData.id,
+ name: shopData.name,
+ image: shopData.image,
+ description: shopData.description,
+ feeRate: feeRatePercent === '' ? '' : String(feeRatePercent),
+ gCode: '',
+ isOpen,
+ networkFee: feeValid ? feeRaw : 0
}
} else {
// 回退到当前展示的数据
+ const fallbackRateNum = Number(this.shop.feeRate)
+ const fallbackRatePercent = Number.isFinite(fallbackRateNum) ? (fallbackRateNum * 100) : ''
this.editForm = {
id: this.shop.id,
name: this.shop.name,
image: this.shop.image,
description: this.shop.description,
- feeRate: this.shop.feeRate,
- gCode: ''
+ feeRate: fallbackRatePercent === '' ? '' : String(fallbackRatePercent),
+ gCode: '',
+ isOpen: false,
+ networkFee: 0
}
this.$message.warning(res && res.msg ? res.msg : '未获取到店铺详情')
}
} catch (error) {
// 出错时回退到当前展示的数据
+ const fallbackRateNum = Number(this.shop.feeRate)
+ const fallbackRatePercent = Number.isFinite(fallbackRateNum) ? (fallbackRateNum * 100) : ''
this.editForm = {
id: this.shop.id,
name: this.shop.name,
image: this.shop.image,
description: this.shop.description,
- feeRate: this.shop.feeRate,
- gCode: ''
+ feeRate: fallbackRatePercent === '' ? '' : String(fallbackRatePercent),
+ gCode: '',
+ isOpen: false,
+ networkFee: 0
}
console.error('查询店铺详情失败:', error)
@@ -1014,19 +1103,19 @@ export default {
this.$message.warning('店铺描述不能超过300个字符')
return
}
- // 手续费比例:必填、0.01-0.1、最多6位小数
+ // 手续费比例:必填、1-10(百分比)且最多6位小数
const rateRaw = String(this.editForm.feeRate || '').trim()
if (!rateRaw) {
- this.$message.warning('请填写店铺手续费比例(0.01 - 0.1,最多6位小数)')
+ this.$message.warning('请填写店铺手续费比例(1 - 10,最多6位小数)')
return
}
const rateNum = Number(rateRaw)
const decOk = rateRaw.includes('.') ? ((rateRaw.split('.')[1] || '').length <= 6) : true
- if (!Number.isFinite(rateNum) || rateNum < 0.01 || rateNum > 0.1 || !decOk) {
- this.$message.warning('手续费比例需在 0.01 - 0.1 之间,且小数位不超过6位')
+ if (!Number.isFinite(rateNum) || rateNum < 1 || rateNum > 10 || !decOk) {
+ this.$message.warning('手续费比例需在 1 - 10 之间,且小数位不超过6位')
return
}
- this.editForm.feeRate = rateNum.toString()
+ this.editForm.feeRate = (rateNum / 100).toString()
// 谷歌验证码:必填 6 位数字
const gCode = String(this.editForm.gCode || '').trim()
@@ -1035,6 +1124,8 @@ export default {
return
}
+ const feeRaw = Number(this.editForm.networkFee)
+ this.editForm.networkFee = this.editForm.isOpen ? (Number.isFinite(feeRaw) && feeRaw > 0 ? feeRaw : 0.02) : 0
const payload = { ...this.editForm, gCode }
const res = await updateShop(payload)
if (res && (res.code === 0 || res.code === 200)) {
@@ -1203,6 +1294,57 @@ export default {
/* 余额数字红色显示 */
.balance-num { color: #ff4d4f; font-weight: 600; }
.balance-unit { color: #606266; }
+.fee-rate-input {
+ max-width: 220px;
+}
+.edit-network {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ padding: 8px 10px;
+ border-radius: 8px;
+ background: #f7f9fc;
+ border: 1px solid #eef2f7;
+ align-items: flex-start;
+}
+.edit-network-line {
+ display: inline-flex;
+ align-items: center;
+ gap: 12px;
+ flex-wrap: wrap;
+}
+.edit-network-label {
+ color: #606266;
+ font-size: 13px;
+}
+.edit-network-fee {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ color: #606266;
+ font-size: 13px;
+}
+.edit-fee-value {
+ display: inline-block;
+ min-width: 40px;
+ text-align: center;
+ padding: 2px 8px;
+ border-radius: 10px;
+ background: #eef2f7;
+ color: #606266;
+ font-weight: 600;
+}
+.edit-fee-value.on {
+ background: #fff7ed;
+ color: #c2410c;
+ border: 1px solid #fed7aa;
+}
+.edit-network-hint {
+ color: #909399;
+ font-size: 12px;
+ line-height: 1.4;
+ text-align: left;
+}
diff --git a/power_leasing/src/views/account/products.vue b/power_leasing/src/views/account/products.vue
index 9c11852..bcd8cdd 100644
--- a/power_leasing/src/views/account/products.vue
+++ b/power_leasing/src/views/account/products.vue
@@ -6,17 +6,6 @@
商品列表
-
-
-
-
-
-
-
筛选售价:
-
-
-
-
-
+
+
+
-
-
- {{ formatPayTypeHead(pt) }}
-
-
-
+ ASIC
+
+
+ GPU
+
+
+
+
筛选售价:
+
+
+
+
+
+
+
+ {{ formatPayTypeHead(pt) }}
+
+
+
+
@@ -158,7 +166,12 @@
- 修改
+ 修改
删除
@@ -197,6 +210,7 @@
:active-value="0"
:inactive-value="1"
:value="(updateMap[getRowId(scope.row)] && updateMap[getRowId(scope.row)].state) != null ? updateMap[getRowId(scope.row)].state : 1"
+ :disabled="Number(scope.row.saleState) === 1"
@change="handleToggleState(scope.row, $event)"
/>
@@ -244,7 +259,13 @@
- 删除
+ 删除
@@ -1589,6 +1610,16 @@ export default {
display: flex;
align-items: center;
}
+.price-select-bar.inline {
+ display: inline-flex;
+ align-items: center;
+ margin-right: 12px;
+}
+.price-select-bar.inline .price-label {
+ margin-right: 8px;
+ color: #606266;
+ font-size: 14px;
+}
.paytypes-bar {
display: flex;
align-items: center;
@@ -1623,6 +1654,39 @@ export default {
margin-top: 12px;
}
+.list-actions-row {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 16px;
+ margin: 6px 0 10px;
+}
+
+.machine-type-switch {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+.machine-type-switch .el-button {
+ border-radius: 18px;
+ padding: 6px 18px;
+ font-weight: 600;
+ color: #6b7280;
+ background: #f3f4f6;
+ border-color: #e5e7eb;
+}
+.machine-type-switch .el-button.active {
+ color: #fff;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ border-color: transparent;
+ box-shadow: 0 6px 12px rgba(118, 75, 162, 0.2);
+}
+.machine-type-switch .el-button:not(.active):hover {
+ color: #374151;
+ background: #e5e7eb;
+ border-color: #d1d5db;
+}
+
/* 编辑弹窗内:让下拉/单选与输入框左边缘对齐 */
.edit-form .align-like-input .el-form-item__content {
padding-left: 12px; /* 对齐到上方 el-input 的内边距视觉效果 */
diff --git a/power_leasing/src/views/account/purchasedMachineDetail.vue b/power_leasing/src/views/account/purchasedMachineDetail.vue
index 34b8021..63e355c 100644
--- a/power_leasing/src/views/account/purchasedMachineDetail.vue
+++ b/power_leasing/src/views/account/purchasedMachineDetail.vue
@@ -101,7 +101,7 @@
- {{ scope.row.power || '—' }}
+ {{ formatPowerWithUnit(scope.row && scope.row.power, scope.row && scope.row.unit) }}
@@ -218,6 +218,14 @@ export default {
return String(value)
}
},
+ /**
+ * 实时算力展示:拼接单位(unit 有则显示)
+ */
+ formatPowerWithUnit(power, unit) {
+ if (power === null || power === undefined || power === '') return '—'
+ const u = unit != null ? String(unit).trim() : ''
+ return u ? `${power} ${u}` : String(power)
+ },
/**
* 复制文本到剪贴板
* @param {string} text - 需要复制的内容
diff --git a/power_leasing/src/views/account/receiptRecord.vue b/power_leasing/src/views/account/receiptRecord.vue
index 8531bcd..1c5f087 100644
--- a/power_leasing/src/views/account/receiptRecord.vue
+++ b/power_leasing/src/views/account/receiptRecord.vue
@@ -38,7 +38,7 @@
border
stripe
size="small"
- style="width: 100%; table-layout: auto;"
+ style="width: 100%; table-layout: fixed;"
:row-key="getRowKey"
:expand-row-keys="expandedRowKeys"
:row-class-name="getRowClassName"
@@ -51,24 +51,33 @@
+
+ 付款网络/币种
+
+ {{ formatChain(scope.row.fromChain) || '-' }}
+ {{ String((scope.row.fromSymbol || scope.row.coin) || '') .toUpperCase() }}
+
+
订单号
{{ scope.row.orderId || '-' }}
- 付款链
- {{ formatChain(scope.row.fromChain) || '-' }}
+ 实收金额
+ {{ formatAmount(scope.row.receivedAmount, scope.row.toSymbol || scope.row.coin || '').text }}
- 付款币种
- {{ String((scope.row.fromSymbol || scope.row.coin) || '') .toUpperCase() }}
+ 应收金额
+ {{ formatAmount(scope.row.realAmount, scope.row.toSymbol || scope.row.coin || '').text }}
-
-
付款地址
-
- {{ scope.row.fromAddress || '-' }}
- 复制
-
+
+ 手续费
+ {{ formatAmount(scope.row.fee, scope.row.toSymbol || scope.row.coin || '').text }}
+
+
+
+ 手续费比例
+ {{ formatFeeRate(scope.row.feeRate) }}
@@ -77,45 +86,33 @@
{{ formatFullTime(scope.row.createTime) }}
-
+
- +{{ formatAmount(scope.row.realAmount, scope.row.toSymbol || scope.row.coin || '').text }}
+ +{{ formatAmount(scope.row.receivedAmount, scope.row.toSymbol || scope.row.coin || '').text }}
{{ (scope.row.toSymbol || scope.row.coin || '').toUpperCase() }}
- +{{ formatAmount(scope.row.realAmount, scope.row.toSymbol || scope.row.coin || '').text }}
+ +{{ formatAmount(scope.row.receivedAmount, scope.row.toSymbol || scope.row.coin || '').text }}
{{ (scope.row.toSymbol || scope.row.coin || '').toUpperCase() }}
-
+
{{ formatChain(scope.row.toChain) }}
{{ String(scope.row.coin || '').toUpperCase() }}
-
-
- {{ scope.row.toAddress }}
- 复制
-
-
-
-
- {{ scope.row.txHash }}
- 复制
-
-
{{ getStatusText(scope.row.status) }}
@@ -155,33 +152,53 @@ export default {
data() {
return {
loading: false,
+ useMock: true,
rows: [
- // {
- // orderId: '1234567890',
- // fromChain: 'tron',
- // fromSymbol: 'USDT',
- // fromAddress: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
- // toChain: 'tron',
- // coin: 'USDT',
- // toAddress: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
- // txHash: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
- // status: 2,
- // updateTime: '2024-01-15 14:30:25',
- // realAmount: 100,
- // },
- // {
- // orderId: '1234567890',
- // fromChain: 'tron',
- // fromSymbol: 'USDT',
- // fromAddress: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
- // toChain: 'tron',
- // coin: 'USDT',
- // toAddress: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
- // txHash: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
- // status: 1,
- // updateTime: '2024-01-15 14:30:25',
- // realAmount: 106,
- // }
+ {
+ orderId: '202401150001',
+ fromChain: 'tron',
+ fromSymbol: 'USDT',
+ toChain: 'tron',
+ toSymbol: 'USDT',
+ coin: 'USDT',
+ status: 1,
+ createTime: '2024-01-15 12:10:25',
+ updateTime: '2024-01-15 12:12:08',
+ realAmount: 100,
+ receivedAmount: 98,
+ feeRate: 0.02,
+ fee: 2
+ },
+ {
+ orderId: '202401150002',
+ fromChain: 'ethereum',
+ fromSymbol: 'ETH',
+ toChain: 'ethereum',
+ toSymbol: 'ETH',
+ coin: 'ETH',
+ status: 2,
+ createTime: '2024-01-15 13:22:40',
+ updateTime: '2024-01-15 13:25:55',
+ realAmount: 0.5,
+ receivedAmount: 0.49,
+ feeRate: 0.02,
+ fee: 0.01
+ },
+ {
+ orderId: '202401150003',
+ fromChain: 'bsc',
+ fromSymbol: 'USDT',
+ toChain: 'bsc',
+ toSymbol: 'USDT',
+ coin: 'USDT',
+ status: 0,
+ createTime: '2024-01-15 14:05:12',
+ updateTime: '2024-01-15 14:06:09',
+ realAmount: 200,
+ receivedAmount: 0,
+ feeRate: 0.01,
+ fee: 0
+ }
],
page: 1,
pageSize: 10,
@@ -253,6 +270,14 @@ export default {
const map = { tron: 'Tron (TRC20)', ethereum: 'Ethereum (ERC20)', bsc: 'BSC (BEP20)', polygon: 'Polygon' }
return map[chain] || chain || '-'
},
+ formatFeeRate(value) {
+ if (value === null || value === undefined || value === '') return '-'
+ const num = Number(value)
+ if (!Number.isFinite(num)) return '-'
+ const percent = num * 100
+ const fixed = percent.toFixed(6)
+ return `${fixed.replace(/\.?0+$/, '')}%`
+ },
getStatusType(status) {
const map = { 0: 'danger', 1: 'success', 2: 'warning', 3: 'danger' }
return map[status] || 'info'
@@ -281,6 +306,11 @@ export default {
this.page = 1
},
async fetchList() {
+ if (this.useMock) {
+ this.rows = this.withKeys(this.rows)
+ this.total = this.rows.length
+ return
+ }
this.loading = true
try {
const params = {
@@ -329,16 +359,21 @@ export default {
width: 100% !important;
}
+.receipt-page :deep(.el-table__header),
+.receipt-page :deep(.el-table__body) {
+ width: 100% !important;
+}
+
.receipt-page :deep(.el-table__body-wrapper) {
overflow-x: hidden;
}
/* 展开详情样式 */
-.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; padding: 8px 4px; }
-.detail-item { display: grid; grid-template-columns: 90px 1fr; align-items: center; gap: 8px; }
+.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; padding: 8px 4px; }
+.detail-item { display: grid; grid-template-columns: 96px 1fr; align-items: center; gap: 8px; }
.detail-item-full { grid-column: 1 / -1; }
.detail-label { color: #666; font-size: 13px; text-align: left; }
-.detail-value { color: #333; font-size: 13px; text-align: left; }
+.detail-value { color: #333; font-size: 13px; text-align: left; display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.detail-value.address { font-family: "Monaco", "Menlo", monospace; word-break: break-all; }
/* 单行等宽省略 */
diff --git a/power_leasing/src/views/account/shopNew.vue b/power_leasing/src/views/account/shopNew.vue
index 6248b4b..57de9d2 100644
--- a/power_leasing/src/views/account/shopNew.vue
+++ b/power_leasing/src/views/account/shopNew.vue
@@ -31,14 +31,31 @@
+ >
+ %
+
- 为提升您的店铺曝光,您可为平台交易设置手续费比例,该手续费为商家向平台支付的交易佣金,手续费比例将作为影响店铺排名的关键因素,该比例越高,您的店铺排名就越靠前。
+ 该手续费为商家向平台支付的交易佣金,比例越高店铺排名越靠前。
+
+
+
+
+
+
+ 是否开启
+
+
+ 网络手续费
+ {{ networkFeeText }}
+
+
+
专用网络会增加2%的手续费,建议无法直连矿池的用户开启
@@ -55,9 +72,14 @@ import { getAddShop } from "@/api/shops";
export default {
data() {
return {
- form: { name: "", description: "", image: "", feeRate: "" },
+ form: { name: "", description: "", image: "", feeRate: "", isOpen: false, networkFee: 0 },
};
},
+ computed: {
+ networkFeeText() {
+ return this.form.isOpen ? '2%' : '0'
+ }
+ },
mounted() {},
methods: {
// 简单的emoji检测:覆盖常见表情平面与符号范围
@@ -175,11 +197,11 @@ export default {
return
}
- // 手续费比例校验:必填、0.01-0.1 且最多6位小数
+ // 手续费比例校验:必填、1-10(百分比)且最多6位小数
const rateRaw = String(this.form.feeRate || '').trim()
if (!rateRaw) {
this.$message({
- message: '请填写店铺手续费比例(0.01 - 0.1,最多6位小数)',
+ message: '请填写店铺手续费比例(1 - 10,最多6位小数)',
type: 'warning',
showClose: true
})
@@ -187,15 +209,16 @@ export default {
}
const rateNum = Number(rateRaw)
const decOk = rateRaw.includes('.') ? ((rateRaw.split('.')[1] || '').length <= 6) : true
- if (!Number.isFinite(rateNum) || rateNum < 0.01 || rateNum > 0.1 || !decOk) {
+ if (!Number.isFinite(rateNum) || rateNum < 1 || rateNum > 10 || !decOk) {
this.$message({
- message: '手续费比例需在 0.01 - 0.1 之间,且小数位不超过6位',
+ message: '手续费比例需在 1 - 10 之间,且小数位不超过6位',
type: 'warning',
showClose: true
})
return
}
- this.form.feeRate = rateNum.toString()
+ this.form.feeRate = (rateNum / 100).toString()
+ this.form.networkFee = this.form.isOpen ? 0.02 : 0
this.fetchAddShop(this.form)
},
@@ -211,10 +234,10 @@ export default {
}
.row {
display: grid;
- grid-template-columns: 140px 1fr;
+ grid-template-columns: 120px 1fr;
gap: 12px;
align-items: center;
- margin-bottom: 12px;
+ margin-bottom: 14px;
}
.label {
color: #666;
@@ -222,6 +245,59 @@ export default {
white-space: nowrap; /* 左侧文字不换行 */
word-break: keep-all;
}
+.fee-rate-input {
+ max-width: 220px;
+}
+.network-card {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ padding: 10px 12px;
+ border-radius: 10px;
+ background: #f7f9fc;
+ border: 1px solid #eef2f7;
+ width: 100%;
+ align-items: flex-start;
+}
+.network-line {
+ display: inline-flex;
+ align-items: center;
+ gap: 12px;
+ flex-wrap: wrap;
+}
+.network-label {
+ color: #606266;
+ font-size: 13px;
+}
+.network-fee {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ color: #606266;
+ font-size: 13px;
+}
+.fee-value {
+ display: inline-block;
+ min-width: 40px;
+ text-align: center;
+ padding: 2px 8px;
+ border-radius: 10px;
+ background: #eef2f7;
+ color: #606266;
+ font-weight: 600;
+}
+.fee-value.on {
+ background: #fff7ed;
+ color: #c2410c;
+ border: 1px solid #fed7aa;
+}
+.network-hint {
+ color: #909399;
+ font-size: 12px;
+ line-height: 1.4;
+ width: 100%;
+ text-align: left;
+}
.actions-center {
grid-column: 1 / -1; /* 跨两列,居中显示 */
text-align: center;
diff --git a/power_leasing/src/views/cart/index.vue b/power_leasing/src/views/cart/index.vue
index 99f1577..35739aa 100644
--- a/power_leasing/src/views/cart/index.vue
+++ b/power_leasing/src/views/cart/index.vue
@@ -1955,6 +1955,7 @@ export default {
orderMiningInfoDtoList.push({
coinConfigId: coinConfigId,
coin: config.coin || '', // 用户选择的币种/算法框里的币种
+ algorithm: config.algorithm || config.originalAlgorithm || '', // 算法传参
poolName: config.poolName || '',
poolUser: poolUser,
walletAddress: walletAddress,
diff --git a/power_leasing/src/views/productDetail/index.js b/power_leasing/src/views/productDetail/index.js
index 10da66d..f1a01e0 100644
--- a/power_leasing/src/views/productDetail/index.js
+++ b/power_leasing/src/views/productDetail/index.js
@@ -864,6 +864,8 @@ export default {
duration: 3000,
showClose: true
})
+ // 重新拉取店铺机器列表,刷新 inCart 状态
+ try { await this.fetchGetMachineInfo(this.buildQueryParams()) } catch (e) { /* noop */ }
}
this.confirmAddDialog.visible = false
diff --git a/power_leasing/src/views/productDetail/index.vue b/power_leasing/src/views/productDetail/index.vue
index 8d212df..7b7e0fd 100644
--- a/power_leasing/src/views/productDetail/index.vue
+++ b/power_leasing/src/views/productDetail/index.vue
@@ -126,7 +126,7 @@
:cell-style="{ textAlign: 'left' }"
>
-
+
+
+
+ 已添加
+ 未添加
+
+
{W{Ha51MY;4=-dEf7xAK(1wp6co8n!38C
zYG!(_^fO>PCjb;tSq>Zm1LS|2g^u8FL}K7SrMt|HI-$e^0y5>NpNF)Ab<&_Kc_7WKo8;Fy$j&t8{NWpxmiW|
zzSSO6?I?AAtV-y)*`NJ6X#XpNLb^04YI!&EzxSO6
z+$DNya~YT7<-`R6K|!pgTR=4@FUox-_bdzE|H}MFiw%s-E||m$mm`
zPOeF-*eWsYwYQfr)1+ztC#BOzgAZ-iRnrV0xcq)Lf-WXt&A3!>4q)F9uUyS93gOD%
zC4G%-biI7ZC-A1mL;Rr?k}|~}5Bs>YVKqoyx_@Y;|D~=j_-U8I(Bkz*g3J)BB$TUY
zx1yW*^x|3b#G^O*^IbLP-0%IZ&1SrTH>#w}>!Mj2=e5P=*%ZiSyo{Xv+f%`G0O)7k
zH565T+!bql3}qjm0<|hG^p(W%x9_&^1ejCptD0g*Xa|y-ewRdP5Ui_7daX0P!wWAH
z$s=SR}h|NMr3N21{q_Oy7(x2n>|
zeFt9&C)f2h*r5PvNm6DKN_G2_b^
zTHo<^{^~-GY1u+=x+8kfOJ0wr(7B6$Sx00~l7s0Vrpt{(d3(35T;%u*hmfv{+S|d9
zt=ZbKLB7Cfe>Q3ydGa@dR~DYu=P$)Wix7zZ-`^T5%_0~wk~De=pT-Jbpq6(D-w`iD
z*m6CsAxW2aK%%lae}RW-;@o$3UTaL^Xx`cfXgim{Csn{ehu=?)@8e=i+f-OQatKL9
z^PR+Ad!~^B4_fu(sV~}5CdfspZ+|+b+pXfAGs@2ewxKEWdo|q|!q@k5yH!W`Ah6R<
zf7Yz~l8V?!KRW+Sm9Tt53JcxOmWORB8gOYX>bj!s!pV_MsPgC+UTsm{+
zSg9K&_b>Y0AqAFW=Q$?~uQtl;KN25hFbF*^vicWU99+f&)|1vG?Pd$WNbQJ#<|zP~
zaXpb0SYJq?zm{);u;t=l^`BOXho!X7%4M-cpngI(C4WlB+p*AdqbKLY=ni^d8-Se_
zUql}-0Q=<_i*Yj{A+PB&-g%X>N#tDdr;j(`TslpX2V>P}v<_|De|0|gyiGMGj^&K!
zHI6yDH2XnQs&_6rH=i4|I0~kL-ly;^SWU(pkSh~YIYB~H`t?@KcNiC2{9f%hJ{`_X
z;w685TJ(miSjyz|G>VKW&mj58vu&(}
z(S@J+=4H(0CB7PuKT7<_ljWI6vKKdwvnOZ}c9A?YndyB#yv(@&NmN^m{GMxO@fv#$
zz*O2e6nubwX@)VP<{O3_dy+=PJ0?$t>e$w#`%_rn3OS&EG*i=7+nZ5L
zVu9iie+Bsu2EUdrqWSs7Q|eSZ?b}u-KolopkHEn>76og4*{Nhr!*X-^%Y`C!6~8MX
z;jo@~)kAu-PP~4ZwiEzMv%z7Fcl)K=$;DEs7`%>H1gJg)Q6h_3@aI%^yrN=A$}+%!
zF}kbY=KOoT+z{N+@OjpA%@~|eZ_mayyOm-NU(ylWA$Xd4RB>qw7Z@PWIPnbwcx**`
zTX}2;db4;o!N1Io>U74gHwjYNv6#cfJkH`RkR~v9HVB~pzN{V9@izaOGJ@Q_I%0-M_Ly3XZ+W7<{uJW)3Gje^D|)+IT1A3|~rTIjRfU(3@Vm
zeQm%8APmoc>&>@PQ6`g9MWqt~C;ftARjfRoS>)nON;yQ{w&f?$Np@1_Ckzj`=C$fy
z0za6Ocr|?8RT!*7sdNS9z&M@
zGU%>^=wmpR%_-SPJUIj)j-zxYj`=iwUHlf?=Ld;)byfaD*kvfh-{Ck4_S=3sh3JOK
zrKT+9V>*W}aTshmWi|(R+vm|dh`PSi1^o}=X-qfkR$fhvkWM~L=2`M=I$`5j*BUKy
zXkN|5ws&65KFODCy8i%ntl?h1%^PkvzV=vcFC5++YG?g`x!ThesUtqq1S;%b`;Y
zEG3rJS&+PYIm=*rj!e92T*tm0zA{18|JmIZWw
zgq3wog&OZ1urOk%p~AE&BSdn{h6ZhC*TG95y$iG{Z;tw=!b9fVLSc`eZlsTGaCQwJ~3Xf&86YLNg5-Gsaloe{x`PT97WQ$>npF
zaLN6+M$-HVh{#}qzMIyBvy_`6Qt`Le299-gkn_V0d}hrf#(X_ReudxU4@TY{MUZc!
zvfZd1rq#Muk_WB$%hsT^Um5)Dh_F)4BPPPZTU?&i7`X8Au{j|GioaE0L=V^buO$ff
zH7f=}k{4N)OI2mq$3aIzP+HZ(4ctNY#lCdgmGx_Y;$nTqUVaI?Mf>mINwJoAt>WY?
zA#I`AQ*xu_n1;&HlW~^WKPWjux$B_uDnX|n#uWU9y%3rnOaT}L9SscSD1Byaq*UPs)djCI>3qXO+^YXf%z@S|wBe==zhAzZmXiLs2U--Q
zX4ZOERBScW_hbeq^zQg)@O@bg+wDhB=9N}djZN?*p)d8vYv$dBiMNg&A2GaVZ7nMU
zi?aTQL`gstTCu)Pp*&%bJWm)EWPl)G9>=DU6^%`?GJnVKIp
zqGPsXu4f|lgcq(wM>niOvd8%Xtcu8sB08Z#Yn1aFHM1!E{`?C=!K`m5F@bJQ
zDSd>xE4)L1%Tb_hPn0XBQ_dSm$gEW8$HQ{jXP~B-VC}kc8GY{9+stCF{FGy}bD&YJYsxWWPQ3+~$O2m^Y~
ziSejp+*>3y=+e4CV&@mdlU&*!7FMlD_F^N(ma97#1D3h|KVkL^KGwZRbR-z7ZYbX8
zU?=%j;p=aBf*t?#yZ4C3p_
zTD}Ea(6_p7oQIO_oG$=jYkb!{ULDy~uq;041JjX98+=wGRp^?m0Xi)IB-^g_Z8!NN
zL0vE34qzl_GIse=-Ro#%yiDIjF_d{6L=a}P4zRNm0@cE(Km_)i2F*5#zhlMbwa1Tq
z3_)_)z`PI*89VM^^&VV(rtLNS4-UteXRy_iW7Ei)UN#CPuvW6ziOtqw-!GSf%B
z?BPFsdJaaS+lAO0L|iCj`?7-~+^C$>bj#qRQySuW6
zG{m;~B8lEi3aTua*eEpJzi4akS7YOCM%|`nCcotb+Kj$PjeXSg)Go62_{``hHH&>D
z!;s$7jlH^7JMw3Gp9!Qh2caPx%c;<$8}!R0TQv@A
zS^BAzdk9Tkrp{OS)QMWt_@}=)Hsj|}9Qp7St`$oO;18v`K-G8ymzG<3F?rDlt9ew}5|#P~@5D1lv8ze5wb-gr^6o0?m(erG}{3
z=MGyS%)G^#RV0u2#mL)Z`?n2K+@vpb*#rQaKn}6eC9{S_bc2A~K+3e?H%bl@Klh7k
zo8Wj-Te>$k6X!oaERAaYMA#T|CUV#gY+uwn?|5YyPx#H#$iM#)Eq1=|t|;!BBH1`I
zn&TT>YC@mp38qrPo`=2GwK?!(iOS!L1I?t_SxY&!^Qb(Ay`q#w43cwpZnNq$iUYth
z3C&D*whW2%b9o*7%O9ZhY>H6T9JRYmO|ec6wpJ!8eklp%eBD%R+#EN?*i8Du$v@}C
zi>(E+JqC-kc-bf2k#W-JlDDq;<2MF9J>k(oi8Wnr@`7nglXL_uwp)j%tir&s5aQpyq@_Pw6TAzwo9%Kv%FvDw>6
zP!rlY3j9aCeickV#NE;x+<51oO0QXQQ!Bk0&1kiVpeyeH$jE2x_*srwc&MX)B%8fy
z2cI*$@uqxHSMwMYvxCij>M|it89`ex{`kW_u3sYbwidHj{Aa_Th=+9>3+6zuE
z>@IRagmztr^9b)U<*{i8oQ@8o8u|K+K1D^h#b)NfInMx_76NE{fVbJyKb`@x)1dp_
z92ujSBoYRL3fo7g*v{NwAKT1u+dAsFx+eIJ_Ad-rn|Fhzwms|a^)A2>$3e#0in@!*
zjnmBo@78?+uEIYk!NSFKLquPNp`RxrdV8&=f)P;$)p&Ehl2n`98!%3(FBN^rf~UF6
z0It0?L@5QOgNOg{H-j2f)*t8RRsVFZl4fhluhMhpqKsm7ZM(Dan{SNh%LYc!*)AJ6
z>P3mJ@)Lz%<$d1fe0$&sGW6^z#OH%2Y+`-CkYzmmcbeF?MF`#rEbpZjTcG~qzuzW<
zR8#X)wMJ~jouk^5An5GXu_$Zo=Sgc7rq%t?h@MG)Cc*5!KO7Nw=JQh=&|X|N1h46~
z{R~Hu$T`{V>>fmSNNwS^gAhEZjJC<`aAp!VrgDnqkje6ER~3M?CYt_=MMisCgF
zXj)--q@AtjelPQkZKeS;zv6T5n*uHxs3e&8vjH)Wzubj?!eua7Oxy%pM^%ewc<34i
zHf!+TGslc2a(hjZ_q`R6{zAs^eyG5S}=Ukk+k6
z=hXMtTx2O16`ld17xvWmU2%4%%Q5(T@qom7DsQZ{j@#*ZEhF3hJ46-oYSE58`DZ;0O8=t-TGGGQU9klF=YaOj&l8WpvbZ?2xYUPUCzG
zMb$vxKDfgjYU-WhNbCG%vc*W9ZL-Bg+T^ka!JY%T!-IfF52E7)_}d|#w`g-q<|itI
zs{JgN6<98By_Kur8g#a2WDL9Ka657G7bZmFMnkYl$zDFW$;
zf~WIx32p(LYPxB=&LEyEl`idN#Isi75VpP6UbkAGUb3iL=34SJuhc&aJvqep`#PVn
zla`WO1h7zXC7Wk<3d7#Nc(6KJmlBtd94avs>g2YL?`+>5pg31%6EE7JcZJ>p3o!yr
z{9NpZZ5Vb#999Bsrrt@#8g)c7?+oTAa`GxSb76srWyCOh0TtSRp5W^V&|{EQStuDvD
zb|eG(15QGbdnTE2h&yjy=7XW+Nviq#8b6CdlkfGZrOwv_qRBB}gkx!>NcwCTAh1px
zU6B?RrzjZK-CKX8@1WLr<1(FjbyqD_yp})g;2{f+*M8ClXkceO>Z2C(CF4TQi6Y;p
zY0e$b=Ng1@@;_BAnM*K4->hPFCH&||Qbq@~#`eVj4Ajujy_D%0W=TG%D%3w1@#?uw
z8f?BG&&k#h+PFkt)=-9B9O>JL9h;KSu&d~qfD`J#4fY^rrjA$;rot31ouw}cO4-YjE0M~i0382TNZFhqoF_Cc26
z9Ew6ClluXCC5aE`4hRP%iFEd0N25Ug(BUo)d}hMYKmtpX5U4TWcMGipuVpr3y~?Oo|UQsTVweB7&5i5Kz_j@9I!XZ44Qpw*N&gu6$}AMD}p-do^^Gh&57%qB6+-<;8U(f;0pJnYMNNc&_ru9y-^F?
z=YSu@{tOzwlaJBQ3$+Q42!l6K5@@{jWMkqqt&L(1;Sb@TT&oqf>i7E`wUpL;pB#Vm
zpr4u8pG@eGdzu6Ki1;X9XjKezjNUUcehlw>xq@jKLN0RX378yD^bRAhNS{EvXW~33
zl0(rFgmMgV(NdWghMu2N`@6-Y#lNFN%qad+6{dV0z&|KprPq#&$Fl@%YSKX!Wxp;g
zMztMy2H0z9X44@XlE{R54v5&+=0I~ng}D|p^r4@){sKTqa_sC5wKc<5En!7UkWEJPL%Gj+d$*
zCnLd9TcHHDtczk90*(dh#DD(1%q;J~^EmSz>JO$KA5%BijU%sA|2=)*2cZ6N|JWsL+kk@NcUFQf{Wt2_A#V6
zDaFQi
z9ozcib1qtE%EBs&!~}x9#}HVVot_v4evcQSYFfq1(=)wZ-AwBxatK@L
z&^Uhp>4K1Kg=dqa7&^!EN|b&Al13SUIDTgmBDqR{J-(J>HfjjrW_-l*)r8?we4Xx)
zo5%1V{oJMOA4yf#eK2TIF?5#tYT3T-|L)&)+@<1=p#
zQb{Kk2|n$~GM_s7y5Px#@2?
z^@E!d`>Yi4y6#btMV1YJu|F|yQTZtbJ>PSd*MX>(b6@?D*3OS1j8T2Q#OL7dj0X__
z4KGH~I0HVwWxWdtBlh;s*zb|2OhNC#=?k-!)$arabNdeDjYhjYI&cA3a6cB@?SDMNy;V+1pQI{xOOQnw})iU(E
zCgX}wE$H0t!+K0*uaNJscY>tbGGZ#gmjB^8`8ha-x18;$htcwU&h~p&UP1s-o(5eA
zlETD5Ys^o11AhOr|TN3`BmuKh;;ZSzHr^9A34P?O5LzaGP=%j>CZ
za0e8wBv*FN;#yMag9SnKi@tgxjGHII=Xk=dy08)_+3#LWs~e@nWr(b3$PL#(z%R>>
z6BWgRUw!e8uv>83mnezaMz4bFs7AB7z`EKmb(ewLv%P&q0vM|ZbSXc;gBl6SyBJ+6
z@C8$mV9}{a8HU$>@lUVj2%0~^+n$zziDLHbQAaknM(sQK{p~DUsawPNL2j6bX8RqIjL`XLST;BH8pWow%Kb^=kP59;f7C=U{Y;
z2+?oY|3WuCyYAt*_+_G7V89cf{>7Ej(n+=N^8v5x8S`PA#z5k6R9;xx?VDrijR%Kz
zY)AkhaC>xc`u8Ha(;v7G{cQxTh|@I^C^lVTt>_J1>{%~6K4gsu@nf4)
zTy}`K8wt$7D?Ei5?tlT9!bn)ANTswg|1lB`9e~&a5?8c)qFfeNoxbE|@t4G;(Q1WY
z?M(QzeXb`mkUdH=tX6otzh-=9NRi1@*)U|8##hW+&gn6waUe2Ev3o$q(w^LKRb5q!
z&Jl97Qr5Y?uTeE`Mm;nJdx1(@(BR;RbhQ5%uHZ&rbs7E+m@WWr%E1vXNtFoe(u~9C
zg?;fP(;^Fx(#1-aMHCApiP_uT7*ta?=_R|3mNwN~opTu({{`EEF@+38%W7}F-Ts>&s+7Jw3+=+^>gYR%(hRYKKl3o9jN^U+w0
zl$Y6o+h~a1dKPfr9g{~(SjWLKJu+i5>Rdm9uyR1mlmkCg#`C8d7<{QJCLm4T>Vi05
z>g6=#+g$NEa^>g=2k_r(PavMOxP&THf408Xo}&2V{XX`Vv>i0nK#{x+yNNK`gj8?D
zbnX?Nl7s=gvNP>|bpN;SWUoPR29xz6E$imtQm2XWNeVgESuL_;X)?iZV|O`@
ze<;~PHq&n8!m>GBfhV``y!3>Ev#USJ0?sz({M&)aa{2OoX`Z$xakGxtb6eP#IOnx@
zTogN|ck5u>JImnhSRO*P`5F7BFWL5N^!SQfd-u^T(6h_u3SOtnRIKz|n$$P&2tyxJ
z+h`x$xRCDF<7=IF6d(MsRtYcxWmGrO1u+fr^1pmrXw|lmIkGj|!~%Eg6D?SG;1?)g
z2kC%Og!IYRepKTkYt5peGYRnkLeEg_jCj0m<68E8gazc`R%s!U7b$7Jc-HZcICv2>
zjZ`^$i+|NWBg+c%YG_~G#eXv<;uIxz&}w?saC)y0pn6}M*>q)~<6bi*hGK-LX#HF<
z`1?GXJK8i+|Ma>6zu^^QGsd<{YH`VW+rt6Gz(qdZq}hP0fx_-N{aO-V^E{{A75dm0
z`j@iOu$N=mP`ux>=KexYVrHQR&dl
zx&EQsUwwE`@7~DdQO|lcyr>|?mPKV?^g;F3mRz7bs-adAlFN261&t)MxYX(?NBuJs
zg)ekzI9F@+aE231S`Odkhe%zS`y~-x&yhW*Q+&!m$aP{c4iKMwN4g<`Rm@_73GB#;`kNU+ha1oC#Gx*
z+8|toO~yxfOX({fU*8#G%5y612QFS6bX4~;sY5a|bKC-+?us!t-@_#N82~v`DR;u`
zgZ_lx*ptr>d;Po0g|@uA?WCqP$4Mpo|wV!cw!l%(EdY5
zjLEQA%7Z2YSV&da;XYsX-;@jZUDZ5gSi-Heea?fG3tQJZa
z1ao-1WXx4b_ubr>ji&y@j}IMu4fkOC+2?R=ZvHe5*Z<*ITSYSOah`&ic{;4G{V79G
z3w?}uAmF-{vr{tyRlqvc=HZ>uXUEbdufC>BW>mgIpIVSM=J!kTHC;E3GNSfMuOXpl
zsk2zApgsM@u9ZLt58?!{=ztul%ZpU7;LFlY`eeva;H{Y5FMdef5Kvt2v9YI?6Tv@l
zALy999iHd!<0)XYUf@&$6(UM>8_4b07mB4&$ow8|@@
zS)_+-0Ttr8#${pv|FsVWmdhEIcb?0dv~6ej+zrA@MKIm-svkJLoPS#Unwu#jA!?=H
zu!0onxl(Am?0*Bq8;PLyw0DbjSwM@Sh+4wqmK36*CHuz~n9wd9ssh-jMPaC2C7U#s#TNxD_Te5v=V{yR}|)c1Jdf=GE7t2jitRT1WUm=78Q`8wihl|-mGWz*QJ
zqUL+C*HpMfrUUK?(pS+vdzELj1gHJTzd&9|rG|@})0Nw3G@$^ZhTLp7XPU7GTWsMh
z3T!zDJ{FGr;bq>L>(V5gN4h)1(PQCs3=-DnBc>=YGv=R|b%d~MbwDBg550t=B
z5z_(xl$&uObJ`)A*0I%?2N8rhY_xDllZ|k%-q;+;IEyu)a-xpv>n;cq^wP)rbo2WZbYjGs=pSG3#4r;;tt{~RGto|@wboLyP)F@>JXrMXnzmD=fBQ8!n$
zWrY~XG0ZJ)^IuJhHEcMXME2{FzkaosJP!gc89cD?3UYK#2_PR8$8`x25bUU=XiSgQ
zy~5;0`AP`&tv@?A$bPe+2revoT=EU9=CC
zTvs~m{a25m8A1Q%FSL^dZ>MXT-wu&7yvSjpinPz6al-Je82dU2H~BT(^4VMG75xJ=
zqzCn&D#CM{ENYL9(>&C1AJ>tTZqHa&C(jQ#4T}BWHT>M5-!;G*<+V5zRzsTQaX38l
zVNEouSD(Vc^LC%0H9(j>e^0N=!ng&cg_p?~dPOYdiN82LY7L`Z=a9YmTGEETQV^tT
zoL`X<%VmQU^#HV!u;MHAjkZ~{GY)_b6VdW~#g$+I$Z&^Gms+C~Z)Kx`?E*k6h}B=yq9qrhpzWH^I9k^|HkI!AARvweu!w{
zb9FIz0q!`eQ`JoyaQdSmGvP73+{Bu@1!xbcxG>+eHDIOPIh7EWXQhu{3T*(~lcI3^
zvD!x}W}){g0@2WOc+}Z>{Y6vIu`5en?Y%-Z$a9VhpTLZ=zegIJ`R;OXb0;SiSplNe
zRAo=M3;bNx`uJL`7p8wMXZC2c?1Q`2n%N7lz}D#-b8}mx_FF^auh+;7l53}IhdS!o
zyODoW?$t=$V-3L3b~xm6pe8V3&cUmIWZRe}$esC!wn@w$GkMi%2n5Yg%iu^JZ;>F}
zcqWDvcx)jCIl6CkFQnW)tV%>~U!21vh9^<5FdF{1*yteS=T-GVQ33a*G#HIKQac#*
z?U(xz8lhBgsdy22S5H1Uh69|M+9^d+$3eUoiS<762+hZ?FSWb1f*>
zhq@oxI-6WkZ6<&l<`?&A~ml~KGJxIoJJqfX8#*n-56-u$R;V4$hL9huDL!uRLSw|x0KpgyzW=a1FI
z#5e%h#G8`e*}n;8+PRtg=fZwwe(ZVMSKJ=}8nyjBKMClz6deAU<>~K0Vv+tbxiD-n
z`&GSQ*S$q`02UyhA}&oVoOwnrRh_vZz8t64kLy&NEoi+Q52Tbijn9}HH6J;-@?~tx
zTVO>YDEnYm)uYj=gY07d1PRxr`C)q5ptj{s=r%0Vt(w&
zyWk_w%rklj{!{yd%KE&ck})22RT3#t(0wzP_MoZxa_ltkIm7Y@BBZRFxUO!>k*!MQ
zGJjQ_$s%U^0?_eL{uoY6h)y+&=f^MZq#FCAYWu-p7(H9G`N&uKA+V$d>@
zK0<=Dxc%y{gVK`CrA~=+6xSOR`_K-ARJe0K9ztW>aTW3_(PLk>W0rn<2{C7#J87ou
zHyuf)$$+xcnB^zlpZa{$7}HimN@DB@iF(>){|Oa8b{#?Y6}y7~vpDg@<5;O+dH#n0
zP7;&HT}0C=D88}Px4$C8!^QxYX$gQOoRkM-{m8DP!7EvDrQuJNORFp4X8%pG^_k
z$YjQ9@~wH+u;k<%Ow~kum^q7Khy_3DW-x&+2@qHUgQM)ahY4;Nl-|7w$yD#3#{r!Q
zRnRTZ@4A#flO&Js+uwrh-uQ0Wm=~&N-I$EYq47;zjF~J7KP*e&(EXgJ^G8%I;JAV<
z>u}A78eJ38q+qb^d4nieEu-kjKYyVxz_LU_6
zyMYM&9BY^B4qqA#Md6P^Qg5&Cih9}Ll9e8Dw*LGO-znoxrG>X{2yrW8RQ$u6Rav!q
zTIcYtkzfqY70o183T|sL8gq0!TznKw3Yd6IutL0o{C>A}b5Am39$40*Q{;$8WD&B!
zo(voLe!IlqU0ga;NMQr9DW<#gdvt3lb-3(6Wo1iy4H=5Ni$hC(&d1+-k*`|#5O}X`
z#{GiwIAbo`m0@I}%tp(A%dU7d`;PXPWzi%UaV*TW^nMaSlG$!ok%lyiEId2Nb=_
zIKn#DK?t>A>!gUpefc^C&PlX+Kx_y-(PWVG$O5<)m=f+
zuv~I}_ZXR_SQ>FpSp|7>O38lJ@j(cS)}7-jR@SOj3iIL+#{Ci9P}A_-56^7!S7U?S
zb0MmQe4_n|Dfa!UkBopt^e0=GKES!=mh?4=CxF@8jm~PXXq7e{I->|fo%>uEWr_v}
zk>_e#_YN23z1vmduu3`~;HUCCD$k63{&%f4TZl&qo%HBGANyEj%g?pVCcxEFDh=>2
z%bkR9u@T6CJRbIDwb9-`AH#qt%8kL2j#`fE;2WW4ZfXj5TV8QnkCnGe0mz!Ov%7+e
z>gZDq*p(%hd*$eH1&c5jiBmJn!3%s+P}1r6>tF)BGca6Fpqg4h+1LNN=29L(ErWD`E+4F3g>xS86Ov2Mw9
zvv7^iiL1m>!F
z*D77?dUsP1lllHv@@%WCFQ0rK4cy7R6tzVGN~8V!1e3==6&Yd`i(Dqa&UyN}G*(>1
z&bcclLgmZ5D!o+A*YFlihX2{57TUJeEW+?Zq6{09IDO8$BC?#a1F#iS#$w-Ee=r!p
zkg`C2fTEAow{RqT#R?C4(q|cv7k5ZApnF$P`pzDs2?{a0Kl)wUXw{ic3RqpN#oBu(
zdRyJ2a}%(4K?c8CS6k2@oM}$}J|B=lo+J73%AIs_WXA#DM9;@VXq#1IK6sF97m|s+
zA`qQABb1%a0XM)Y2Pl0@dDz4qTlRgWLUF68p{Pq8In)=}C{Xk{_T}_x1i3)lA7Q4L
z!sp0MF)*e)UNI^Avt1WmZhJ|*#@1>;#c3jXkgfBCWPdARj|Qgjy38O@J{GK1E${_;
z4w!epu}*OsaDPnL;4gVOS_3iJZbrLdj9q){TCI?Qx5HdbJ>SQSEyBO6M-&cW4BE<9$k2(oiWp*Zo
z$Wy*<5N7#qYn3_4SyhZ%5?nte5|&3@@eQ>8B@+)G0|`@9h&*`_%7yg&rr}J?OtN#o
zr?f^Zc)q_$fLL=Ksv$G{n{~oZi4e)y&Re5@epoHN&a7#0B@(f(LQRt52m!aMRVL6k
znM=Dm>GW_d_;6KbBLG5cHsExIVb)KaSuz
zHk9+^Q`DOGU^l#pT)LTx9?IJM>*#y>tYR5a93W02xIqNAcbGnj(nlj!g&oP{1&+?Q
zSL`k+O)^_`u{dV^6p9(awvlixBFm79KKa~M@ugF%miJU#(k*2F4;^b{X3lxD3A;KT8fHO
zp6Ny6x%OGnH+*lri^c-PkQ#Xxx~XOHO^{ImD5K(G5_~n9fodf7NU@l^(_Gq&09u&q
z#^V;hZA}%O5PA3`C2cCw6B)c?e9_04Mlxq7wYmAjId;X7v#YpLCrq{iJZ{
zKl@mq1=~Lq(i1ZyJ**|GKs?=kUqQO*Oi!TBzKzz!Eob&>ae~FYgwM4s!`OKK%jgyE
zT9I>DfO`E^m$@RlSD`ynsx(o!|u0kE(MIUP8g)
z;A{@|lWm>xw1dtMl7|g&*l6(eA4ngR18vP4pb^oXJxEcXgHBMZ<2f~9)MCTDTX1MC
zb2hqmSBQwiMm~3e`qAx`VhN&X!vq-K-b8rcsy^Ei-)N;}nBw3o#CMXK42iG16<`kT
zq)fh9wuC(%aVs42Xdw;U2FM#5utcPbqv@6=cOt($jj>zOndj~geqHOVM1BZ8pzS)DO9D#^&A^xMsP$Tl~-0w7C7M&SGisl4-
z^7XNSZSaw(hn5xOlw|OfEvOkU{;g{Uq6~%xyRP4w!S-#D5T}!4@<)=ot?@98XFia~
z*eefI8oyaI#Pp8l)utK{fh2DOrzk*1U4Vr@1#5bLbpRU5iQCC!Cb7JpHFfO{SByV!Ssp#Vto~%b}
z#m6!}-sCXyQ449|16R#F2FcjbzCv_6M^pYg1{8m2QU4nlWj7p^}Y_
zgWNx7GYkm{-gIviLhBC@X>9hly*KBL{s%LSJ#|6Z)@u(*8kzr^LLuzLf}iL22u&=xyhqxg
zKAD97s4fWv{|m#(SRk*{x6uEie!~0@^;0)gFC$bX45X2eJ1C6$e+>Ui3jMzV>OXDn
zVDIX}^#7aGINZbF2>zdQ>k}iWmi_IDBnLQuL%N7&ZVAJ>O-DaLz8It!9j)pc#V_q~o59=RSe
zkA-LNw>ckoAu2aD;C^G$*q#a0gKbr&N0i{S(e*@g*~}2YdE-w07^>admAYNH4mMuU
zLCfzpamHo?uPE7p}iWtNc#A>N=$k;_n$8!^=TKnl!BL|?ux
zm3$HZWH`4Hm{z#_@PQ`i-r$UPMT1R@cM5Yie6cYO$W7!kO84Cqi4at7Vv`T^$@6nq
zD!WP(N%-lNp*64tTEc}G7WnDpGK{Ep#6quqex^ifDargp;_6V@F7;KnqB^ek67&Bh
z>VJv7|2LUwBLEoo|1x~BJ3gyodq6?*452~L{!6a)|3~mOHfQBwGd1O6w061Ze)Yjv
zNn!q|jlh#~@X+0IZGB4J@CFszbLi?0qsUdFDqYk|q_uZ*tEl+RQJ4o!U;=LL5)+GU
z8w1W67u#ntKo0@&$kr-(KP#Okay
zUg*$vmvQJe&O8!SURdpiBmSA8W5Bv2mzevzps*#&q@zu3R_aFgOD5xO&!#rx>fXIX
zg(F(kAnueSTPH7TYip72sA;auo29mL$~-g1G`UL6$kUR!y7Ok`pD<(E@?~PyRtevY
zkE`Pkpn65NJp0PjqvU6cy{Um0p}>B9!SCodInRrk`RXCfNV*$MuqwG^Q9ZX
zhK$wM#>i*Md*$=963=>*COAPFGIYF3zw_F
zZ{j~mY;t_m26psE&;5ezYzMV^?@t`aLeOfavp@LZkFX+EFPh>8eP*a~#nZK$CFz5HISBWMIm
zFPX`xk?Yaz_44=}dH&pAIq(`Ri{oH3;gztfSa)oq>X(6c9CeS@ZHpI3xh%`D
zTJvLOC*|$O3|=!Xx(_MH<)YmAL%2;E@#}M3wVxkV3$_2ZQf&K>AjTBS}AcE+Fg5LT-WC@jgNVIcBq;Adt1%C)b{o)!{E|i#qU|_
zb?aMYr~R(;bDpnAClB-5UEq1Xw#38y67kmh8opNA!8|*E(4d?CnG3L32}%+8-h=Oi
zNq%TB0qdeeV|g-X;Cc@+0Y7N~Y}2PjQ*-y6YI}tw^vPrlk>!}!k4ojCN6}~h@GN9C
z(>eY{^eE7{%Hr(4yQq;3MfJCA9JQ)oanK^VVdjz>u~3+wHTMnAe=+McetHJC!|0_t
zIlvJt#^N#lKLBGuoWDRbGdt(be@u}70w$jL)L&WluYSLN`x+x!nu!!qLy|PVr)s;D
zr4>^NJ#vyjI%=Ib@1MHNJ8~Q4GPDYJrAvTwvh{{Lo6>d~l=tnd(*?SO8&U88s#dDz
zenM;k{GPKQwt#@AkM(CxyIJ=6J_I~FnPw_I4h(IF$2b=K5!xR1u8%P7f25VJJy`Z{
zz2`4q+<1Ta*=PR#;53}F)s?fY6Ys5k@)mu(api9tpMAOh=u;pZZQ(gi1_?Mw2~IDa
zR2UifOw-M>0k1fA*i|!YGTucuk?sT8$|8)NZi0|vRI3Y%k)iT{&lIXJo32TK8V^DT
zU+=TbY6a-Q_|_4h4!Xyvf0fN@FlsC!;Maf!O(al*!?}nk#^tGjv9YoAq{ie$?cjLt
zG8&Q1hzyw@B{HOug1>Vk1L-*N>_w+yBJn_~Y1hn}2j`ePLkd~6vuq|!F1s;d!GPHx
zhF(TA-6lO07e|nckK%vE@IU!H{I{uBZKFa(icVCgzdy1QF^{sye<&L6#C{?NrIOyK
ziSPjeVAU=g)&0QG0OzwaruVF8&ZRV)uW%Px#{pwX18KelECHwxEQ;bYU1Z6UP?>@Y
z4{|ebne5}ofGRzU;1Z0=z%`Tlb6;8B47v7
z3gDnac0pCu6G5S{e@H+L!l2iL6T&t$0xP){?*%qxPt_{FE&~!f$RhrV{U^WJD(ITV
zk)$fy?zY)>-Q<+W3MkRM;nY&v>Z8y68y~g4cxUa#k3b2j)FCJmpg;t&rl9f)yo34k
zS*OV)$@lDl0L5e!$&%0o5SDhbdtpDt>(nAe@S-3@u*F6Rf3bZ>DFw;^=%jE`(-ZVx
zkcI8iF2^wzvX)E!O~E^(7<$y-Z)6>N-i24>UpTt-2t0uVmHb7IIZ!J*24GctCS~c`
z`q{gHEEG8zzJ%zuSZ%(^XyK4T3)?8AftDSnd{)i!UaCM#bmiIj2Ne^rC9;0<1u6=X_mUYy25PoHZC_P%mp*UNi%
zku@^Cf89jfBZob}ls(96T|5S6aFpOM7`RzG=vKuwPmlAX(ucHWk>fX`DrT0PiirtL
zqcWnU$cWUSVDW8Yn`D%bK2}ZAEzlUp(_Q(|-dY7Hhy}7!y=s(ASP|>pMj-IM*w7`L
z&^6rb8X-^8IRhFKedq>~fW<5^8Jqn9^LXCye`d3wZvrheGRQ5Fl<((Ldl~mK1eo
zRTPXh03+?sDG_VPVZiT{X4OC;1fnt3n3_Uc1d&+HY{hcx_!({Gq?;AH+`to&H7XVI
z5Lty;11hVP=^hYW5`hGK5cUsd+E3a@uOa7K@
zo78fO1Rn`d_BFt!>FjG|VcP=gVI77Iseq{{ne(I3u1>s_$_w
zqML8j;b6PO48gkks-Rd29n*W
zFV-JET)lS#)($+is9AH+BMNY2Mt$OaHk<9kX#pTCcMmLY?_AwmNSK<5?=lDke>S_s
zHaNuq0RP|RPybBTjvy;&5x7u8D`<+mQC+n0AAReeU1{B2ff=vfJG#33DYvtI{r3mQ
zczdcRWvW)~_3(U9S<2Lau}pb20W8lhYFwX2JO|M50sCM$Ixzwl&^^+{_>~f5fOWzt
z;qa)7Hv7E=0Q(|g4Mpu=#`X>lf9}g8cY*d97g#!MQhuDGmttz_Z{
zI(L3``6?Bu)>htMTe`>r2w3GAQ$!j9O_xIL0DYjWXWpuKvpB`vFJQ?Gf0{%#^oUaH
z>Qh9vLjx}C%6#T^a{-oQ0Zr22fPpNYVNYERKB14y%6|CtU*Q?BUDJTiGa$@YGcJy)
z!EOQf-c_|`@L-zL2y3nV`=$mS
zL}axmk&}ZEg61%Te@x~ry6VKJ
z&e)FS&CW@E9rdq%-MVmR?bB00JzGC~(6KAN#piDN7nWKd+}e2O9MXIs_+&Z&m%*Ml
z$`l)=f>YRi5Q1f+w%@3l^qG6)NRETE2VkYb&%W277^TXKp@RJd`Jl#bYh`3vgUyhv!^}!C
zADGD`grlT}(ifS$Fd&9$iauvo06xrsK>MK!adlArs#8Y!b!FE)Y6GDiFb&2fW+O%X
zB=D4bLoD0Gf4)(41=L&n`f|#@`b|2tc|%*pJc4!9Ttw#!8}^(DJM@gP;7&vz0TD=V
zW+5>D^}m6{^9|sjILGvsRHu?=H#4q8xKw{v627@WFl%^*TEnN^QBU&YX1rm~DQ^k<;&0TYN?UL$g
z5WTClf2Xsa18c$?mI=07wq5nCdazMU^(j7%$xI{e5Tg;=C_wzN>lzd3D7+E`i=Pxg
zAgEH7s<%_r=WNI9Gsry1-&zwT8lqJG45m&s+=E3ni3~j16r({Ii@Q?rLz~|w2~-x*
zBYYc3864EeW8wmmo&Ys!+SY>mtf&auYlo}%f8K3|-#*o=&-FySrJHVXXK
z(Ut$!6b|@Oxlx5Z;JSkC0UPe^bQmFCXUH(G&vC__sW*8K
zkGdq})NIIoCRIAsySAW^a~aA6!c1Q>=FB5U7>$Khz7YC7!CK(r7@6&fDFIznl!jbR
zf71_r@xIO}b8{1)u1eQ^Y{3
zN1~6nYE^^S*T`{;9IVGcw6|{#TPC{O2#&`@G=GX2AMBN=$+sX|l}M>AIDE~cp4(A!
zfy1q#WW#6eDzUMP`x#BP6C|0P5CAV3e+v<_Q_>1R51+Q)NE8+&I76?`mc<_6nZOIe
z(5g7e9L8&^SrbVR|HUt@C|xRQ^dY@T$e<@h11-J-G8|l|Tx>H3pmbibD_m$c@wW0c
zGo=usfa$6B4KG_a0;GH1s890Cl!I+;9g**JaS0PPdV~iEj36)wo^Y5glN8vFe{x51
zw)6nobRk{$QGB!O^g4oUu)$%;O*iCUW}LRNQKt6}dg!21yhYN>aXADRe*%Dffvn~a4cD`#7sM?uZIeMCix@bEW?f2Uw-DFKe4`ag-igtW!`gmSu2gs=s2FvBS#jSBASXJc}%lJfBa_Cq^R9)
zvJyUSLXN;uH!T2=k9+0Z25_ok0#l^3*;fAB!Z{bF(A7X|+al3)l(D*g(f0PcAKPYz2i__E3(I;^;+QXXcpEaw~l8?u|<1i5*0@S)h
z?}Ize1@;LE&E{aU2R$F{hTyirWT3=HMjc%+i)?T${*r_-d8Jcb3xCAg4~z0?~=reb)%3;tT5^#1;uhq%8`ogg{#Y
z);P)7f;vg+Dijs6e*o6vHE(kH7|jlx_ZP|o=1@*y|HSNqeD_Hv`pBjb7KbI+MYr5tmxT>IG^4?s
zJOkB@ESLs}w$BAZm>~QhLzjhgJ^{bXn%$V0ok*A*pGSV!e;61vB2yX8GIT6wXxV?dgk;X{IApWsHB8}(06`lT{^n@
z@a%TZ^Y0H%w=Uel^Lp~#wUry|x9=x*I>m*L#qwNx-usZhoq}7X)xD9KL4Gf5_}@a_j2gkrnIP)WglmPvhbgbI4_H&gReE2TBFt@V2@_g*qSXw(|zJ
zo5%IAowxq-QQ6wn*X9%vYVH@y4IkZ2YAEe{-J;R4!<4sQjp==S$spL<0g?PzV*QMw
z#HKsfPVUy#*?X@0PTj_ohZ^;^ACX(}H}!a!E%CR?47TW{U?
z6ta}bHXfLIoJ{_6HA_7vOH_BpC+W%>u3
z&LH#xX}hcZdd;4PuW4KiSIN$wZoPHRzki2nt%@7ciT~}`+Vyu~ME}eW
zf9qery?SpMz6HhDKYrXl!N&d1qsQooI04dK>+CiE+{MSP-B`VMmgNIDejVV79OTQ-)^42ik3N94uK(>VU?}U4
zK84{zlY~XLZd`4>e`fXJC4kn(XP?7Zt&4a36MtTR_#JNS(bKJuZo>T6t}MY4e{c?$
zPJ)8(U%f1PUb}F8b@^=T=DF6zYjl^OTW(W}!ihGdCNkQbGdhZpuuT-xHr{y$y4G5!
zPm1-rV{!8yc1GJi1#095OX`>iueOj11q(%TYjtiSXLVlEkS{q}w64-uUHeCMzJ
zsq1v5YoFfpmoGp|%6ZpTKK9Q5f8O1}fk*=iqK%`U`1kH1`rkaadhf5lIk1P$4A2LF
zMmwb2Dq&L;0&GJ7LEm0c)~@*v-=_-Xh4=5Qe?Pjg{^+Ci
zcYeV02w$DMiCg>dV`A31(RNc=?Bs>Ztq)G9OX{PYG5iG3N#~fJ?A3c0=+qeglNrI{
z=rn1cFt|7o{)40b*YDD!zj6G`+QTKWebgud00Ug{PkjpAwwBMgo%rg#GZ=zI?7*!H
zkJfH{7@GdZ$=iV4v_HBle?YU=R?cC}=#QV03dfF&0`TMbaT$ph(2Ni7Z+!M8-bmc|
zl1>i^!&k>z-@ggH!FD2Xq!2xK3N45P{J0_HG_-|{fBek)?Z5bcf4SBA=xhj2KmCGE
zv2_aJf|n6ry$Sfg_ST)XV?X*!KOhbgX!_?qfbZUeDb5e{1q&QaIrrDVWpqrlY7TjSMJgQk>dd7
zegDP!qw}p>7m)IjAY}jQhsb5%z~24>w~?-GfX@0&M06m^>o<=v(1;-ME*QV&f4_aE_1zVi%EsG&28dDK
z0w)GQ!;&H1_z3WA{l`CTeEX4q54isF#$V2EeEbbH#lnQ>;{ChV{i}%Z>yO^?tWA
z`($n98(72Y%3m-O=B2;3K7+lzzIOH&%n}3zN~Zx?)|bCUic9*0^#F&)6q*2tTi091
z&%%BH`cUMjf9w&F_6k5}8IKR`T;lz!%Z%kiku}QS_l_5RvHk4|E_2iIN2=qx`xi
ztgt~UlmzSe$Y6P(tTn^#HL8e*otTvlo;9jm%)W^R6UFr`E08DNL$?VbgAoyE_1>xV
zN4IFq{OU4@VfTZ}%WkhPXWHFfGW~*5U`m$TU1@Hse?B44?lIm~Ztjv&?Sdxg+NK*x
zrDLl3$Jy0kxui+M2`>LJ1fJOrKuuxym~0z~*2tIENi&%YAxr4q-Noc$Z5sr$kh<(V
z9IADPY3yHZ9m0jYXB0U?rqcH@H&g
zjeEiq@l^*L3EDNO8JOJ?>%CB)%~Ode<)MzF(W}&EgvKi1?(Z*@y4sKl&KPLkob{X6
z6v{-TPwGKLT#dSAAIKs6bGJa=M@CT;rm`Q8Q+BcqopNWpaBdjd1`XI)q
zVjHqjNb8k(nl!AE<3whHaMCF?VYy}Se-zPl5mIak+u`5Y&g+;gH(*
zIU+>kb~z$~Mrw|TJf?CT$&U<=rGr=xc45i6RacwX`CfCFahe^u(k43VRqST8iDv2B
z6z`NVEvF`mqxN$D(k=h9quey4B9t;7P8mAUC}#*#!n6%uqIDnSk&HFeROl%EzkPd9BNw?IY{cvZIDv?`;nq;2G8PRnnd2o+}Oa_Sh9Fcct7519zPMI
z&+*Kl+p;`LU^~da9hRtCD|%a{fB*1(|Ku6A%1_=>bN~#y_>U{CODFMif?l<7t$@Qo
zs7P+3j%BcVv(F@Oo!+&m>7n8BaJg44iU0sF8+z4%+AUVqRoeL%C-xNfI8M|`9*@4U
z8IR(BR^7ECaropgOdE4n6-|xUlwLFllvmJQ(HT=Q
z)1n!6qKQc|(bF(EIF=t9e;67bPLp)_vxd7TAbYZ)-_{Dmc3)K@I0h&hP#hivEJqoh
z8)Lc{IWVtuvPUT+Mwnk0cj7a)J%hH^N`l|*Ajx;aFUI|)ljwB#*VF4akNv|OZ^KjG
zuFLWmR|*QZ4Er(~%pSeB{*{>AmhRPqZnk*0E=90Mwwf2mknhMWe>WKVw^&Fp?s7h8
zLaP(Tv9hGmCNzpZv^)jiFuSFvIHe{5>dJ4J4wS)aXd&m}n8t@q$C|dv2Dx$Ibu8Ms
z##im~>#^jG@%q70Syvs*jqTmHj|iek-Z{z)gf|nkogD}q5xKc#{np*qjnfo1YhQ?@
z0TJgYrBf{Os!52qf4sWn&C5@Af#bkguTEsg#luf3i!F}?-6(=}!Q%n#_~f1$4JB@faQ$f^<#QWhXq
zT_8!fb(l4&+2gjOX+Tcvq$p4lQA0pS9QfK@qYJ-dIo2zho
z%-E!mU_$L0f-bbuV2AU}Q+y<(B}y8XNgx4ZdOy
zO05FY8t8+Se+7CE`_r(~w$s9DWTbN`sR{gI?I=Wk!tj>(tSXTS$OVr>Mtih+ZTOZz{iV^kGrxE}=WI#2rh!|Fg9UdNwl*0ve
z0gzg^vXzvnF9ww#qX^jNW_LGrrborR##CkFyt?k-$lzF7$J)4~L&GCj8`sV5(jELg
zIF#0Ff2CATce1q
zSMf8bl12-KJ{MCfO?eZknC6=01}N|g8KfxCz)cpsL{q#X3yB7unloW$E|p8n3&)%D
zRH{j8YcON7FucOT=QMpEc|;n<$+Nt{0VxSbe^>;MA8X13?PcBujkxUDj#{gXkUvtv
zQj*lG$vLKWlc7kt+gPdF^k|C%;f$IcK?mt^Y
zNxbS#hLSpt3Qha*EfHMWWRk=-oi$c0!|ODtiyYeo78o0_`_+e!)-GHpF+%UQE-kO#
zJ0%pk_2q9@R~`y=t}jJZj=o(DZx+Tyf1MGe+dd4>JATJs`jdbBfxmPg1JN#A$KbZ*
zbFGu#w$7cyOVkhVuP&cnTe%II7Do8ozl^a{C*K7gPIWOF9P8hFd*jd7lwh8iW&P0s
zra^u52+sV`L6Q46PBlTohxSCsSI>-`zf^6gMKaU=A2Pyzr%ck5YGNr=TTdthe+j+y
zSh6#!SZH!RPA=Lcp9Wy+sGP~*>DZRKl}N!eAIkeecSLdwY2O*u-e(-UQIG2GZ9ft~
zcTA&V*QyJ6%@I~A=|}$xI&p#`DH`CpQiKuyLbA5^lsu7r9v^Q~U)WC?$X*3k&-f?q
zbf#fUsmx%2RZse7o4%6Hy8qQRfB(a`XvKNHv8OkVJ;FH0FTY*;^diR7-TTtN`aQ<|
ze)ZC@=%u3=
zqe;q+qILSr2eh}<&&w>gGbh%&@N
zh#?Mb7eg$xWrzitA;Mzt_J>;oi2-wAA9=zHwGp!6WrJ6`)4-zK{L#z!OQ$Y%atSu+
z=8BC%<)_F^^2aOw!w&$de~IOg-5@eKQ0gG$u*-Iyw~GX&2$D;<1H68NO?1!)R@?ql?S|#rcO%%-Y%&dL=XaD?JAbIOIKRAR%Sl`
zdQ7^dkhI?f)Sfk~e|1_{obIs^taFx-r9T*l4Y%xAb+3q~nN%(vuR|KOn(h6{^wd?*
ztN`n0?*cm!^O}$)z_vIXzWiZ092lsRiB$4k2^!pv9`n!rWp(9h=(?n<8Jf&
zjjIVTbOs^h0^
ziF&9XO4F5x|J_MCf~XTk7u(r2K@YH`9X*ff_a9Bpf1^}so2WT<+@6}_PHcsk(~D4U
zCzIrK<>vG!6xfr;iILo68n+YSmFDrXe56Sr)GM#HY>&Kfy>;R)rMfYvRW-OF@yW0t
zWKFFc=w%zO=@9ayOBXQ#nbU-u-TySM6y3}2HIFD7v{gacjI9q-a=ABS4W*84W&{CBhB)6js(
z&WoC5TSWkxJv4*{+p_baDQ*G*!i($%52AqS4$eP2;Zdba9Ss9fNOW%@hyi_DQ$f42
z{?S5aJ4tD~j0ZRb{3#sf+E@{iJnQJO4*S=2f0RS1N7?%AuSgtRAct0D544|73{4&;
zDuq51ZQDi&ReFwT>dTJ8
zXQZ<@*)yqADtgAh-Db)2XU82Cz;$AdQAFsPH^yLGJJ#54q<=JLY(u;^!x(wp>fnHo
ze*uDU@iuHR$zht>Wx{ULypk7-g4sk+NW8Z-E92SG@x0p**{+=4iC)oh%y5c-`4%B5
z05`3%qL63=6Dlp|&XctM$EZLedxepT52ssqPWtCg$x*YU
z#>yFVek2uDBuB=k{&Uu&Iv?4gOS7aUu6=Oe{jee=ZEG
z)-L#lwZ!}>Q%1m#92@zvW6qHD!kXb&26MmX*bc|ourjDDhe9D~7o|iCe{GH>w$++J)u$8hA*m<3%4#TzOi{5QWkn@N<@`@_
zCSP-U8UTgzgY$Y!0w}Ee?bxU|Vx>@i$3MKeJupYWQlv_xpq
zC+)oDGeaS4<{Ns^+QDtcE$*dWp?{9A;ZkP=rx3Hm=hWPx2LKBPhl
zMqQB@D;mPF`rs4xi4;6d!hFJk*ZFK8tIkJqet~i%zGaczH!S-n${9e_|64*&iFGi`1ZxLmObrm}VE)5Jo1lgkF)U4^GU#o3$`b
zO`#xbR(AJ*Nr43;p2p8x-fYD&=7Ecop!z74cWGh+CE>SB@naJqv0TfnbC`^z!SvC+
zkQ7|3$f_rXPLr&328}ONL(VWEO+;W&)7CJ7;nLCdNADqed=#74e;{TgUWAfy3&+Gf
z3VPj^tmWeYJu4Lmi%yJg<6UExChlgoO?k=p;vHi$~X{`0(
zz06vnbtc(x%KPdZoXkW9gXZZA(~rR}>4%aOu}x|zI;lC+e={WR96d1DfIe4_2`dPs
zaBF&MG@*}mvUHH(g2b~<2M$>;$c}Hk|DzOsoA~WvqpH#e_%9XnpD{c`mJOBXikOJy
zlQ5rnNc@vSP97`FNUG4yz>KC9-6pVc`B;UU-5uE4&_s^;VSO^`l7Y8R440NdNplff
zZfH^6l}!jff6_JStEl}pzW2D>g3!H5eW8u|8dqs8S+c>-cqY)K^(xX%C`3Ef&cT7s
zTpxl^>htflZd|2w2g}sn{%Yg1&l3bbc`~R>(Hf&@kUIaBf8t~M6RjmAKB#r_NB`5$
zvz;;^kSnK663y1hZ_)Ba8A|6-;td|;`jG}Kzidv2e{%5gObX3-sKRRnpiEaGN$9%-
zqEN0`jtP;Hp?#7B!JlXi(Ow}(VYYtrcI%_F9CD3rtEDRx>ik(WY8^fAKl&4v%l(mY
zd79A*Q)*ng&Wb|+?O5y9Z8=dE$js<*LZ?FH3Z*Qt5UkO|hO!W%ZUH&W=aQ5X6}(Dl
zeaGCUf7^TA5-*LYH!UOvtlJ28s?^AW6IZQb1*efh`wRcAX3&crJR)sz1x=E+LO1{O
zQj5r?zx-0%_w$F!Rli6FT*w7!>DznL5qN@Fl6cLpmUPVLa=!>nT9hC4B%G+r0WQ0z
zv(TdO!Y=&S@e@_~Au
ze@pyDJj=wzhdc>ah8WAo%wO
zC)RJ@SiOIX!i~ZZmQUx0+d(e|+3uW_EtTC-)RXV7t=w3@eShl&H0Y|W;-yfnX|t2#
zj7kcjeFr*-Eq;0;2&0Ho%6(2AzPGk=e@OsA#+vX1fmP?Sxt!K5#&o%t{?g|gA0PKm
z+yd=u>)R>!#+hNeeKpEn!>I0R%iiQR;f!SRyT`DDbU0>w4ezDAc7;bsbKK_5YhAe0
z`tCV`LUvPC%pVK-Zp)>IS!SYE0-q@v!rR{2i>KEc<@D!!FmgP|;=kOFBfn@E^0i
zAYPx|rjP~R`Ezkum08FPCxXFve=PQh+8w%%Q2>p4_1>xIH4k<6QEe5Qu}+AHhCy0^Gopf*4Oj)L72WUwyH0NGh{F^4D;o4emPM+NCLMOE
zNtkg472)vK}ZoBBTEzhXfp(I&D`Z`S~66-gb+V2Z8;N
zN_*(0hCf-WXDhTF0}|U6f9!_b4)3oSb$1pvd$FlcTV}N)KcHvvxnSf*&GKGk*gUEI
z>#uk2*L3Z9`p>WEKL_YPFX2B2VH@baRbV0L+?W-!D!tH{n=+jgdHRH7H#{?2HymTm
z%~};u1C_@8{j}Y*>6K?Gd{T>6rKq-Qvd>7X=L2ZOHpR;ErZ;O>e=wsO;m$7^3+QJ+
zBfU~y8jH)hUY|+4GP4qN`}@OBCcT5>)^uuznWnonPCvEyB2D7Z2^eKoV3cRE+z#ri
zx>4HYIL1QOa>>8Y4lut=x=c?@k(nf2+T+B8f2O6I007H<*#f-leZGv1=oTivf(>n!4VXI8O`M=zHED646pQfjKX}`J|JeG?uh7zS_51bP*HE6*
zd0QZ`ZCa+AK(~MpE`$JrN%bVS$!A2ucMd350u;6ZvGF&AA|SL7-?6B64joiXQt*iP
z;6<<+H6KK1f1&|R9vly2N6CX<^^{k7T1-Oi!jlh%rydNe1bbRC`Qc#n5>A1qM^0VQ
zia!~Kd@?v40hIxG?CgG-PNvj%`(%=t!s1r(9|_0+RgJ7I1dQ}V_z8jxgq0L9HlQiF
zaqB5wtbE*hvXtk&Qy`2R{ry^_Mp;)y+fgbZPqnA}e+(e3NJuB~kAo$Hcum2HCZj3L
zpyY{lgckTX*MS5Tj-s@dlCqXG+E1-o!(`Ofg-MO8Q!*s9>F<|*VYSY^FfoF1K(12m
zB*O$iF3JaO~jz&F4(RHJ>pS+@Pual;Jbwitu0q2U
z5aeD0$UOu(V-R`4;G$hmVnccqp*xMt7rQY70wefJcU;j^c2W8@X(Ve^Ob;<$Gq3
zO&9wq{arM%4pPtzzuQsbWPtsPzI?jFTUl8SfBXLa;O|NIAi4PCks3A}IH$=Gnd1)5
zlx&}vn#CXS4-NRx#dGI+wqu6r2Y|9`CY$DG%!4!LJ(bXE+>?%6RLBt`O#(WYF(;6r
zgF;ItvEjk-Sc+t^CB%v{Faceo9*jCV1vAD)WzrDmBHt>~Y7+D3%~%J7lZDvWL`s!L
zf0$P@NF&S@g4Q4FMb<1bo)NdTfgI4TQQQji940g%l+7ZZlPgW)R?S81=(1U~)FzhA
zg~bB_F(ihsO$ygXj*wTX)M}==%uTrpKXK7cA~bp2Dp>$;V&O~eocw(*GnPHLb4JHk
z`~X`)am*|{&g21mfn22UQy27469vjAfAi@l`A_^2boy$R_Lmks%F3Fxii;*1(jyQd
z__AJwZ6X8UBAk*vnIlw1ufd;r^5?k2&h68~FuYT8#PGxEv|fW}wNgzy8$^d=_|2s5
zLr*L^&FmA4wdSFs%YGdyI(kP%BJNPi{LX5MO$MTF0!>7oLYav|6S~@AD|Ux1e`SXS
zO_exHM9{$9R^&X~?_x|VL4*yU{cTYJ)GrkkV8R3&TmU_O%|Y)XHt?TrJT~ZBnCUAV
z(u3|)EHQBa6-z){;aK9rpA1VZ8B1g&MJ&Oox+Pb^5~JiwSYjcTxPT=d`*jGm*sQu{
zUlK15&(w;}6p)_J6tJDoln?uKf4&f!R=xo9vf-g!vc4lkmrrDHD{cV24p&X$Bj$L)s{-lysa?YBD<56bS!iRub%bceUZje?+_u(TyBK
zM3J4pf3>ohhmCHgUd@s}3(fSz6FWJb=Vp`iQ>EOIBRj0D2V4dIaJ
z(eaHdEB@85SC`M`Fnafc+h{Mibkx84NuK6HJMG^(C!Wy^UOnPWKoVkwCcTrD
z)88-s0u@L`8ug7p8Y17bf3105lKlUXd^VzisEqd2XDAia1+5wg(W-%Tz<`s`R#ASe
z4)|-N<6zVS7RM|JAjQylp!vkkju=WX?(4O$FR%aYn1A&fz`>16M_2DH_vJGK!$W<<
zw1wCzVOLj6*EDYO=p%;cwr~J#KWv$#E1|z&%b%@z<_tWy(npS1e^2G%KTpH-{voUC
zw2~OmZ->}^
zuz(t|e)M9m0EyU7dO{Jj>l4BBryz)(I4m*c#Nr^l=*)R_UUdv~zb#!(Y;hSx7mr;B
zdDF#0sJ1HSeUfxmf3$F*b;qitxv?XBKaozrsP&uI)-FFn552qp;a^zt-&scHPl8vd
z@(TDxL@Tri5S^HjNp=yzZwYDRpttiE|Nh`IeTWW|QVI}Yym*^_by?FFStmiM;v!R-
zHNA|UiB;tdy#Nizodx)xsIn6c8=%vCJgU2}N;K7d+fVB0f3WY}UM*9BNybZ}E1>Hn
ziHAUpywcN}OK6yEn(XhVVY2XIE|q43Au=%mBPYzxZYekJCYr=t#R?rkb@w1BFsS_-
z**Oe9I&uU}z(JR_mA`zfe*oN8Cd)NevR0|*_{LXx0p+#!FZDM+u#l!f09YbvY~jb(3~8*
zKk^7cA(j_KycS=nlmk9P4-ZUv3jg3|FqQGxEBm~16K!CQ?*+VO2ErsU*r>7I;G6|G
zJ~el2f8y#ts1?V352yo)lbs^Zn&@$q&*w)Xem$Uu0#5_Y69gZ9@wL}X_j%xXRkJ9i
z;$leZW_LIBiaBjGs$R_NYO@*m_6!f^2AOZq*vJSPb=~YP;0RV~bZ`jCKQMGByDOct
zbtC)AEAXFxtLp$ma$BVp28Q!PL!&v3{6>CIf6JP0)NRLeaT%k9$F+exa4USo+{_0R3;nZmW-5@8X76&;0$v3_1S@&4igdy(T=iY0Z>OBhC&LdT~G?Lh?
z&I6SCGb~SN0-Fdi1s*BMue@XUE^&|y7!_XSuY}bKj5M{imO;znFO&(>o
zt3@3y#38qI{yQ(H-pz7i#!(Nsx;VN2xy>#_B`hK6QQyeoBIfyk^)%7AkuT&&A4{Ui
zx>2K<%3{+JlDCnR4j=^zPR!Ja+{P6^xG-BvXC6g8pM&(jA^0QAN
zuwgV>L-Zl%m)|6K!cb|QJGcJmR=fOWENUq;?_kJROe&amK~94T$Z|<_<>jd)z%?#m
zI4ye&Fp7_&A#ke%t-9I*seQsuf5|*QYh1DP5jX~N-45Wi;SKB1|
z&-Z2e^0`<*?laAo;p;X)oTe?h0w8Of06hM-%dkT27aEHvB6tta=2D4C{}9;mNntTK
z8$d7|M16E~LRRm+zjom|jV5h#LTaW5$ohJR#IC#*W=w38nNKuRrvf@If2QOi1xO`q
zaOW)$;-HVXO|x9|&F*T?Xw!r(V=tS@>8|*sNyKkb7;d|GYrtPJb)I?;<4TlOh%gQo
z<;g|_%%w^7IwZ8>69n$+#qTc$!2_2%^+n+qs9^@N!z?#9H6pKldVBrR=V%oE{tIYE
zD~klX(k{DC2izQzB9h``e`GP%B7@2QVgqs1ybE3pW1Y;daxb$q{viqARmDJ(qT
z+9H&F+miNof=Fgqg-8Ul?5na}wSm6<%UEs5hN?J^%g>{<&MN3pZC+K7!4r*%DVDfBt3To%hgMM=109
zol_g%e#H3K**}AvfKNXA!asTDKaaji0}x3j@O+_=dtBQ4&`^$P@A=V@La#=Mv9W=n
zfsvdUZ-gieZBvZYU_L*XmSUv_hDOF>W1);0GaLeir{SLP
z2Slu5Y}-_0!E~Ope`>G0#Yqw7Ev3QMbk7EX+@M45^#69>P;x&
z4s~h{0FSQo`&qex{icT(IWFR>G-1go$(?w3h?_S{-8tzbB*?J(1upB6%&dum8N4O|
zbfR-9Or~lBf1}^;*$x^{K~a1bL@O4ZgXb7Mz!-q=Cvk~pzyF{8FTQ{gcK|4p8)c>R
z#7zwF@IYb$ZIu9BOOtu4J5h>W#+ef$Zoy28OJ(SZt#p?Fw3Z%co3Nu)vike^xy4^c
zj-*1{QnJ_uCIBetWB0<#2-j3JoNo^@I&8u&m!7OCxy%P6}vU2HKca
z=me4!4%YMn-cw7rr?L~eG=(sdF)Rrl05Zot0|bxYBWou;2|iXI!q?*}LPoI@y#|%1
zPPX1~X9FZ5cfw6Qej9o?0k9|Z)>gRHs`N2ap@FdJE;{{V!*mv69+6CLWHh||#hs;L
znz$=wf61i+Z}|9VWOy1>xDURkn9o-4q~SyS#SmMFR?_&74;TrQ9gtu^ZPk
zIxGH$&)cX}lyMaX7JVTtL3)X~xUIUEfqzLYe^Uv(JVSo;6xV5nMj1MCeA7mvku6pQUGVX>`ZF>+bj8mU*r
z<*5^C+2IAjYK+pDT~nGiV{}JptddD18VIGaHbrS%U|UFOn4}QU8Dy0SILx?P_*fEA
ze?s_oC4F3+OnP%L?gYxsyEv8yyP-NtpIaeKpnHK%gsyMw9EAcy(-Q_g7a&ZT6l$r&
zsfVGOI4U`~)EOy2HjoF3CKKl7ac4p0l@L}dE?RSQX2rtW{vA1Xx$W?q?F4CuUU3)3
zh98%9IX1*@xQB=H!@Vk(1Eb~gV0kJ*f4Kz3^Kq?Wv@kkEmoYRl+Ve&I@Yv``E{|63
z*kz1Fm$7*rIk=P`8XRMg9~&l+Cl~bvMQeW9oUvRG)fBZk(4NR-Kx>e5R8TJ*D+LU;
zZ!gO{pjL&|Bsct>zW{$gfWMzKGXK6S^Z#OG)N8+ZGIQ|B|1CX%pIP?v;9@~)SwXMfJEFD+pYJfVR+@#3P%?H*;485i#d=~C!3
zrF1$mkIXoxNist7en`?~-qGYDzl}f=beO}r=;^?oXJ+swVXE42&;mgQRNK!*wn55@
z7V1D>oU>}hJYEnL^U|l{i;WK+`O9Ce-doOR@;MC9iB3VRHEG&r+_Y7gBz3UeXVa&8vBz{w@vTre`W5FDU#H=eu5WYT8qsbjwSgnf1VMXZa
z%Q1x~C+s8K7q*0vfhIb->cO*oPCVTCYK3_hA}iw$@o*oEdyXeQ?)mQpafo?sHudlt
z(V!n*XSj`6%TuMogyui^9z@lrN`HeBa9VGG&gDN?)}kE~yK`?n&zr{UyldpljXCHY
z1XY`s2$?dcZ3pim;mHE$(_|}Qfu!CsdSW_&BB|gNGhUFtsr(+XSP+W}^Y9nZ;L=W$
zqZ)$&dWrS^VB<^;~
z3A}Anb7zvEpd-ntjj+*PUL2jUNhI%HG-x0x%Ym7lb7x?q1U*I@@VWOkjvk}A7+aSy
zRVfz`m_^ProSzJNdC&_)mJGC_8&^tdDR?5cDq
z`8we|66whbBp64!#llls<)^gTAs5LH*ZsFo)5sn=Gg|9ggfq)DeGzFrdY;)c=(tAg
z6-7ZBnhEE%%FZhtDt~lLy~r_@o5AVy;!mg2tldeJbCwZZcQ6;#b(7qPb>=)fIFhGU
zF8DE)9~((ym=5_dP#D6r8RSPkH&g&s2mTlw8KR0;6*?Up9>Opj=7T#f`Ma0M*=`CK
z_=-8zh&;rM*8G`p0;GQQGd$D^mU6(Vqc?rf0`MVK6HbFVAb(I5`m($i?7egLAFN+B
z45yM#aeh`Qp)w)9PA$@XFFO1Q$on<)1oBExdnr5UH!Q@!IOQx-qFST=vPp9EqXb~0
z>uVYf4r$m*q+2QNUyOPkn9{se0~(e+JXfl~_6+5s-uAtFc_*sH%q1E&V{E7pZ0X=|
zn(4uF)*BXPrGFGlJg8IE_$5i4kuK9D=?fiB43DLMB^hX>d1IHiK}IewoZ$`R<;hnYi}`&6xm+_t{u0x+_0F6BEH=8T4qBqY1KX
z+oU~~Z1WfSn=I5rOF`lk3p4icpH|!aO?cU&=6}0!u_HC#ja_niz8eq;yUO2W_xHor
z;jIcud&5@F!nEvkn#b-+AizLWx*Vh(HkP!|NLDBLCuVv&RI~{(ku!e+`CvL?SXLt0
zQQ7NsN{k9R2$M{_*qCFPLQvmn;z`CrkK2=n7>Ol(Ss3IJ3%mak`X`0@0-lO&!6CO@
zn18z4n4&n3Sw?cXHe^onO{O7->vxW?KY9l~TD|vI|Hj3&@4gC0afg;Arc9meR0odO
zAm$)mIX0k~imhU0NNA26@lxuOHbIurJtF??tkBTCWelf0@u3`A*x6u_Rrnzb|PYEc0(tA2Y=|X$vN@u?{@del;ZKQ7qG|}xS5>^k1fMR
zdMuruO-`=o;~}P~UaV?);gY3XuL6n@k`$-3NfT?`JO>k?HuTk%r3}m?;XWi
zkvWUZ5E!7cvfN>kinWH)C(aupBr4{3wh4IVdS=2wlnhpK$`+XcM679ThLa$KSAP{(
zzV+Y!nC+n&bMW^ECuqn3!bt?n(|B|&Z`EN>BiV&?qqGBgaJkw5bR#_S$dQ!HG8up5
zMDD55@OTi?z7I7YQ_e<|$AEleB60uKWB%ZKS$cs^aJ*Hke27Z8gT}IWLSE(|9;m&7h6i7@Y
z3}%y%qeC8D@IU=r6tj#AdVifUBQdX1ya27opq7NDE3H_LNj!ScgP&Rpn6VS|MPvR2
z^5k$vJmb+_?12)g#Tzvbs^!k<4rG)Hqx2b;&Ya*yjL=7MG4{i@L2dXpGi%ZUNJ;@A
z_K+745G9phL$gwIxq@K}$&>-lGA{P40a^e;?82~N9yP3M?cWE&2$^bziYro*
z5mKKPEdi$UEPw1wz!Chr*NAx&5l=2uiGT)lGb{T6+*msDwMJ@k@pW^dD0F>&x)vay
zh};YB2RSYlR^H0;@i~3R&1r(G=dFu(
zXjaJZdIq<7Jv2#x;gNKAco*}Vn&r_|Vr?E=ESa3HJb%KZcIn8f2MZ%3!}$Tw!@62D
z4edE#Va66t0WTe0fApTb{`I9>{=*O8=f=g`VOWg*M6iJ4Z{oDrW(V_(E_rlxY-D7h
zkRRx7$;1arT`?7#9vt<*em8!V!;fc`VrtPv=0^*;!J(m%!f1D^G;5WZHLk6^-}>zG
zKXi?3Vt+9!%#92c3Pbs!F3+pWEGnG(oVwFGdQ9V0c(-~;$>4GkVVZyvlUk8+iF1Y6
zHF%JYlShN*c-yTs7uDQl7!(S_149F&BLj%bT+WGMY$RNOF%n9w>w;soK6$fs@rx+m
zQkg7MwT~Q8_$__ic2HWwDl+J$zqU^Pi2e-3P=62}_n=auc66i=GUaT-gGLG$*~9Gu
z(D&HzPnJWBVS-g534XXhNbgZHhb?nnixlGp!t_|&hz5ZUb2p;F+{i#WE(yhc5(M`m
z3lBw~47&zkgC&t?BrmM+H)_Uat0-zCnogtWii;zd)^!yBlh0!XP$^14sg%3>VdlyxjB=AP}_u+CeBrtlNvN5voqBSvg~P0p@cLUJnS6H@41vxskD>b
z3zUHEvmJ^*>C_?xyGXl>>|M=j$e#JoU%JCGmauBGRtJyFLN52%;`YYIhDTU#o5Ijo&vx?M;Pk-s
z&~&Vw9AoLaC9cVLXbFL8oa}IXNnz#Gw3NTY%gTXlaInIWY>cSF#4O$5F?^PC(|>D7
z0cECCYK~W$L~uB4|KIhI9nd37J!t$3dtlnE5%?yx2Nljh!
z5ef&Azl3k7`-Xq(99}ZtxY)WG`c?@UivRZN*YV#lins6m?oJjIUp)fM~xM)~mbb!Skj|~s^nq6BP92zW-lt%~SX&5L0+vDoW^K#`!a^&BU
z;lTpQ*OkkWyj=sMLj(Bl(CEl8{#!todHkI#koWoFu~8{6dSQ&kE)R~4=Ho=HeVAfn
zAIY#0FFt`DJ8L)?)y##ZMSuPX9cOvUjUvlP-yLNP1<
zYA(1%Jazj`Pxoxks1|cNUiIy_{vGe@@;NwO`cMu!XgH2Z^OP0y*aTQ5@%3HA=D_Lc
zQ}Q7Ox-t=<(2P&%)U%`qstj-o0iE$l2~rwgE&RzAsvQiRa7ZAgEPuW6SdCy6Oi-lr
z5<1!L1(2-dFWGmvGbFozI^tEoi^dEPDkNRfdk!Eg5HR|B_X1{APLo!mWD}00^QyS=
z{*WjIhr8LxZ%S*FaH6?G!80cv#S><}mWG=mt{U`L-kVi4mVC
z&VdZd0LuV@ZGv&5TRv;J*gYJ{nVG6dJMXRQq&_DS@v9g`qkm-7!_W)ptv96PDoB7F
zf*^2JAr>t$){d_d%_`6t*E(44H-2sy&73q3CWnlAj!|=IrqP#)(J-A7G%Nwp1IiZH
z0AFx==aEbd<^)kuKy{oTDh~h2RTe^Nu@(74YQ}!2RNcoyRf(mS&IR&rOe>)6X;PDg
z95qpwg`AaQ`+uVXM-Z!@6oPDRGEXVF#eDEa<}M|cFi_$!B{v3PHbcc?6*989sFM*6
zDItOqDiTB6bcF|Sd@`n_F1ASN@b8xy)Iy;v%3KSq?e7>I+qKQJwtFai+cnLln+y+W
z5&!{`#avOFHms^y(e%6&mry8bbs7PzH77mvORbp=IDa4L%Y+n#Ek!bDDqU7Ebl-_|
zDXP5DE-^4Lwm-CZD*gG#kNZa-aD6<_AMl`x0)K$%5A*?a?LD@7|Ety)S2q62<2Bis
ztxJDhyL^p~%7MIHs|fWMSp^o#J9|r71$`i`fD<8;>DE`y3ldoY+#L}jIUs9(hY8(oZ_!&@y8Yq*FhDT>;GmtTAVv!uMi
z|1?qM+I!&FBZ;%?N|8G94b)3Z=QE1WdVIT
zazsob6vN0Du@7Vda%T};hm>;^DI4By@Wqr3^ndfD<=p>$HnZmiEgg<|>=Pq5`B;3M
za3q{E3(*)QO{D&%LLh1hL!4UtR(PB9$>%g7U_Ebmvsf+*Sf+4p$8ye~-H=yxdp-qX
zzJYojc|b(ml=VwDz0(bf1JdAg4DKs+{Tr^^`U^&*ZS